aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG57
-rw-r--r--Zotlabs/Daemon/Cron.php2
-rw-r--r--Zotlabs/Daemon/Notifier.php2
-rw-r--r--Zotlabs/Lib/AConfig.php2
-rw-r--r--Zotlabs/Lib/Apps.php2
-rw-r--r--Zotlabs/Lib/Enotify.php18
-rw-r--r--Zotlabs/Lib/ExtendedZip.php57
-rw-r--r--Zotlabs/Lib/SuperCurl.php2
-rw-r--r--Zotlabs/Lib/System.php2
-rw-r--r--Zotlabs/Lib/ThreadItem.php3
-rw-r--r--Zotlabs/Module/Acl.php5
-rw-r--r--Zotlabs/Module/Admin.php2003
-rw-r--r--Zotlabs/Module/Admin/Accounts.php206
-rw-r--r--Zotlabs/Module/Admin/Channels.php186
-rw-r--r--Zotlabs/Module/Admin/Dbsync.php68
-rw-r--r--Zotlabs/Module/Admin/Features.php74
-rw-r--r--Zotlabs/Module/Admin/Logs.php101
-rw-r--r--Zotlabs/Module/Admin/Plugins.php470
-rw-r--r--Zotlabs/Module/Admin/Profs.php169
-rw-r--r--Zotlabs/Module/Admin/Queue.php54
-rw-r--r--Zotlabs/Module/Admin/Security.php123
-rw-r--r--Zotlabs/Module/Admin/Site.php323
-rw-r--r--Zotlabs/Module/Admin/Themes.php233
-rw-r--r--Zotlabs/Module/Api.php2
-rw-r--r--Zotlabs/Module/Apps.php1
-rw-r--r--Zotlabs/Module/Channel.php10
-rw-r--r--Zotlabs/Module/Connect.php4
-rw-r--r--Zotlabs/Module/Connedit.php8
-rw-r--r--Zotlabs/Module/Directory.php4
-rw-r--r--Zotlabs/Module/Dirsearch.php4
-rw-r--r--Zotlabs/Module/Display.php3
-rw-r--r--Zotlabs/Module/Events.php4
-rw-r--r--Zotlabs/Module/Fhublocs.php4
-rw-r--r--Zotlabs/Module/Help.php102
-rw-r--r--Zotlabs/Module/Import.php4
-rw-r--r--Zotlabs/Module/Item.php123
-rw-r--r--Zotlabs/Module/Magic.php2
-rw-r--r--Zotlabs/Module/Mail.php4
-rw-r--r--Zotlabs/Module/Manage.php2
-rw-r--r--Zotlabs/Module/Network.php8
-rw-r--r--Zotlabs/Module/New_channel.php9
-rw-r--r--Zotlabs/Module/Oembed.php2
-rw-r--r--Zotlabs/Module/Pdledit.php8
-rw-r--r--Zotlabs/Module/Photo.php9
-rw-r--r--Zotlabs/Module/Photos.php64
-rw-r--r--Zotlabs/Module/Pubsites.php23
-rw-r--r--Zotlabs/Module/Rate.php10
-rw-r--r--Zotlabs/Module/Ratings.php14
-rw-r--r--Zotlabs/Module/Register.php17
-rw-r--r--Zotlabs/Module/Rpost.php5
-rw-r--r--Zotlabs/Module/Search_ac.php2
-rw-r--r--Zotlabs/Module/Settings.php1297
-rw-r--r--Zotlabs/Module/Settings/Account.php135
-rw-r--r--Zotlabs/Module/Settings/Channel.php556
-rw-r--r--Zotlabs/Module/Settings/Display.php240
-rw-r--r--Zotlabs/Module/Settings/Featured.php37
-rw-r--r--Zotlabs/Module/Settings/Features.php53
-rw-r--r--Zotlabs/Module/Settings/Oauth.php160
-rw-r--r--Zotlabs/Module/Settings/Tokens.php172
-rw-r--r--Zotlabs/Module/Setup.php28
-rw-r--r--Zotlabs/Module/Theme_info.php71
-rw-r--r--Zotlabs/Module/Webpages.php326
-rw-r--r--Zotlabs/Module/Xrd.php2
-rw-r--r--Zotlabs/Render/Comanche.php70
-rwxr-xr-xZotlabs/Render/SmartyTemplate.php12
-rw-r--r--Zotlabs/Render/Theme.php2
-rw-r--r--Zotlabs/Web/SubModule.php43
-rwxr-xr-xboot.php54
-rw-r--r--doc/Developers.md2
-rw-r--r--doc/Features.md2
-rw-r--r--doc/Plugins.md12
-rw-r--r--doc/Privacy.md6
-rw-r--r--doc/Translations.md2
-rw-r--r--doc/account_basics.bb2
-rw-r--r--doc/addons_gnusocial.bb8
-rw-r--r--doc/ca/general.bb2
-rw-r--r--doc/campaign.bb18
-rw-r--r--doc/channels.bb2
-rw-r--r--doc/cloud.bb2
-rw-r--r--doc/comanche.bb51
-rw-r--r--doc/connecting_to_channels.bb2
-rw-r--r--doc/connecting_to_channels.md2
-rw-r--r--doc/context/en/connedit/help.html12
-rw-r--r--doc/context/es-es/connedit/help.html12
-rw-r--r--doc/contributor/covenant.html106
-rw-r--r--doc/de/general.bb2
-rw-r--r--doc/develop.bb4
-rw-r--r--doc/developers.bb4
-rw-r--r--doc/diaspora_compat.bb68
-rw-r--r--doc/diaspora_compat.md60
-rw-r--r--doc/extra_features.bb2
-rw-r--r--doc/faq_admins.bb2
-rw-r--r--doc/faq_members.bb4
-rw-r--r--doc/feature/access_tokens.bb47
-rw-r--r--doc/general.bb4
-rw-r--r--doc/hidden_configs.bb4
-rw-r--r--doc/permissions.bb2
-rw-r--r--doc/plugins.bb6
-rw-r--r--doc/problems-following-an-update.bb2
-rw-r--r--doc/project/governance.bb45
-rw-r--r--doc/project/history.md (renamed from doc/history.md)18
-rw-r--r--doc/project/toc.html6
-rw-r--r--doc/project/versions.bb30
-rw-r--r--doc/red2pi.bb2
-rw-r--r--doc/sv/main.bb4
-rw-r--r--doc/toc.html6
-rw-r--r--doc/zot.md2
-rw-r--r--include/account.php37
-rw-r--r--include/acl_selectors.php7
-rw-r--r--include/attach.php219
-rw-r--r--include/bbcode.php7
-rw-r--r--include/channel.php48
-rw-r--r--include/connections.php2
-rw-r--r--include/contact_widgets.php2
-rw-r--r--include/conversation.php25
-rwxr-xr-xinclude/dba/dba_driver.php2
-rw-r--r--include/dir_fns.php4
-rw-r--r--include/event.php7
-rw-r--r--include/features.php442
-rw-r--r--include/help.php111
-rw-r--r--include/import.php215
-rwxr-xr-xinclude/items.php83
-rw-r--r--include/message.php2
-rw-r--r--include/nav.php5
-rw-r--r--include/network.php8
-rwxr-xr-xinclude/oembed.php15
-rw-r--r--include/permissions.php6
-rw-r--r--include/photo/photo_driver.php7
-rw-r--r--include/photos.php3
-rwxr-xr-xinclude/plugin.php12
-rw-r--r--include/security.php2
-rw-r--r--include/text.php102
-rw-r--r--include/widgets.php110
-rw-r--r--include/zot.php48
-rwxr-xr-xinstall/htconfig.sample.php4
-rw-r--r--install/sample-nginx.conf2
-rw-r--r--install/schema_mysql.sql1
-rw-r--r--install/schema_postgres.sql5
-rw-r--r--install/update.php17
-rw-r--r--library/IXR_Library.php26
-rw-r--r--library/bootstrap/css/bootstrap-theme.css.map1
-rw-r--r--library/bootstrap/css/bootstrap-theme.min.css.map1
-rw-r--r--library/bootstrap/css/bootstrap.css.map1
-rw-r--r--library/bootstrap/css/bootstrap.min.css.map1
-rw-r--r--library/foundation/css/foundation.css8912
-rw-r--r--library/foundation/css/foundation.min.css3
-rw-r--r--library/foundation/js/foundation.js9069
-rw-r--r--library/foundation/js/foundation/foundation.abide.js408
-rw-r--r--library/foundation/js/foundation/foundation.accordion.js88
-rw-r--r--library/foundation/js/foundation/foundation.alert.js43
-rw-r--r--library/foundation/js/foundation/foundation.clearing.js586
-rw-r--r--library/foundation/js/foundation/foundation.dropdown.js463
-rw-r--r--library/foundation/js/foundation/foundation.equalizer.js104
-rw-r--r--library/foundation/js/foundation/foundation.interchange.js359
-rw-r--r--library/foundation/js/foundation/foundation.joyride.js932
-rw-r--r--library/foundation/js/foundation/foundation.js725
-rw-r--r--library/foundation/js/foundation/foundation.magellan.js215
-rw-r--r--library/foundation/js/foundation/foundation.offcanvas.js152
-rw-r--r--library/foundation/js/foundation/foundation.orbit.js476
-rw-r--r--library/foundation/js/foundation/foundation.reveal.js498
-rw-r--r--library/foundation/js/foundation/foundation.slider.js281
-rw-r--r--library/foundation/js/foundation/foundation.tab.js249
-rw-r--r--library/foundation/js/foundation/foundation.tooltip.js339
-rw-r--r--library/foundation/js/foundation/foundation.topbar.js458
-rw-r--r--library/fullcalendar/CHANGELOG.txt68
-rw-r--r--library/fullcalendar/CONTRIBUTING.txt27
-rw-r--r--library/fullcalendar/fullcalendar.css204
-rw-r--r--library/fullcalendar/fullcalendar.js2348
-rw-r--r--library/fullcalendar/fullcalendar.min.css4
-rw-r--r--library/fullcalendar/fullcalendar.min.js10
-rw-r--r--library/fullcalendar/fullcalendar.print.css2
-rw-r--r--library/fullcalendar/gcal.js2
-rw-r--r--library/fullcalendar/lang-all.js4
-rw-r--r--library/fullcalendar/locale-all.js5
-rw-r--r--library/justifiedGallery/jquery.justifiedGallery.js196
-rw-r--r--library/justifiedGallery/jquery.justifiedGallery.min.js6
-rw-r--r--library/justifiedGallery/justifiedGallery.css116
-rw-r--r--library/justifiedGallery/justifiedGallery.min.css6
-rwxr-xr-xutil/add_addon_repo20
-rwxr-xr-xutil/add_theme_repo20
-rwxr-xr-xutil/add_widget_repo20
-rwxr-xr-xutil/config6
-rw-r--r--util/hmessages.po9358
-rwxr-xr-xutil/pconfig7
-rw-r--r--util/typo.php7
-rw-r--r--view/css/conversation.css35
-rw-r--r--view/css/mod_webpages.css74
-rw-r--r--view/es-es/hmessages.po10991
-rw-r--r--view/es-es/hstrings.php2516
-rw-r--r--view/js/acl.js24
-rw-r--r--view/js/autocomplete.js13
-rw-r--r--view/js/main.js8
-rw-r--r--view/js/mod_network.js2
-rw-r--r--view/js/mod_settings.js22
-rw-r--r--view/nl/hmessages.po11553
-rw-r--r--view/nl/hstrings.php2778
-rw-r--r--view/pdl/mod_search.pdl2
-rw-r--r--view/pdl/mod_webpages.pdl2
-rw-r--r--view/theme/redbasic/css/narrow_navbar.css20
-rw-r--r--view/theme/redbasic/php/config.php240
-rw-r--r--view/theme/redbasic/php/theme.php3
-rwxr-xr-xview/tpl/acl_selector.tpl13
-rwxr-xr-xview/tpl/admin_plugins_details.tpl3
-rwxr-xr-xview/tpl/admin_security.tpl3
-rwxr-xr-xview/tpl/admin_site.tpl9
-rw-r--r--view/tpl/cloud_actionspanel.tpl1
-rwxr-xr-xview/tpl/comment_item.tpl2
-rwxr-xr-xview/tpl/contact_block.tpl23
-rwxr-xr-xview/tpl/cover_photo_widget.tpl51
-rwxr-xr-xview/tpl/event_head.tpl18
-rwxr-xr-xview/tpl/field_combobox.tpl10
-rwxr-xr-xview/tpl/field_themeselect.tpl10
-rwxr-xr-xview/tpl/filer_dialog.tpl2
-rwxr-xr-xview/tpl/install_settings.tpl2
-rwxr-xr-xview/tpl/jot-header.tpl25
-rwxr-xr-xview/tpl/jot.tpl157
-rwxr-xr-xview/tpl/msg-header.tpl53
-rwxr-xr-xview/tpl/nav.tpl43
-rwxr-xr-xview/tpl/photo_view.tpl3
-rwxr-xr-xview/tpl/profed_head.tpl36
-rwxr-xr-xview/tpl/settings_account.tpl7
-rw-r--r--view/tpl/sitesearch.tpl5
-rw-r--r--view/tpl/webpage_export_list.tpl124
-rw-r--r--view/tpl/website_import_tools.tpl37
-rw-r--r--view/tpl/website_portation_tools.tpl72
-rw-r--r--view/tpl/zcard_embed.tpl4
226 files changed, 39709 insertions, 36112 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 67077b767..660b82897 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,60 @@
+Hubzilla 1.14 (not released)
+ - Upgrade fullcalendar library to version 3
+ - Whitelist button tag in htmlpurifier
+ - Upgrade justifiedGallery library to version 3.6.3
+ - Pubsites improvements
+ - Upgrade foundation library to version 6.2.3
+ - Ability to move photos to another album
+ - Submodules for settings page
+ - Submodules for admin page
+ - Remove chatroom suggestions
+ - Revamped and improved theme select backend
+ - Theme preview
+ â» Techlevels for pro server role
+ - BBcode checklist
+ - Improve save to folder modal dialog
+ - Case insensitive sort apps
+ - Add authors to post distribution
+ - Redirect to plugin page after enabling to show configuration settings if applicable
+ - Move allowed email domains to admin->security page
+ - Display text around the searched query in documentation search
+ - Comanche observer conditionals
+ - Remove ratings
+ - Context help for /connedit
+ - Comanche conditionals
+ - Cover photo enhancements (does not disappear after initial scrolldown)
+ - Website import/export
+ - Server roles (basic, standard and pro)
+
+ Bugfixes
+ - do not show hidden channels in /randprof
+ - Various postgres fixes
+ - Illegal offset errors in include/conversation:status_editor() when no permissions array is passed
+ - Patch foundation-6.2.3 to work with jquery-3.1
+ - Custom/expert permissions bug
+ - Mail: return array instead of object
+ - Don't send purge_all notification to self
+ - Saved search: tags and connection searches weren't being saved
+ - Do not allow PERMS_PUBLIC as a choice for writable permission limits
+ - Force cover photos as well as profile photos to be public. As a side effect 'thing' photos will also be considered public
+ - Make lock switching actually work with multiple acl forms
+ - Create smarty dir before any templates can be initialised
+ - Fix aconfig
+ - Broken doc search
+ - Puclic forum check with custom/exoert permissions
+
+ Plugins
+ - Diaspora: third party on other network comment issue
+ - Diaspora: comment fix (hubzilla originated comment with plugin activated by comment author not making it to Diaspora)
+ - Cdav: provide calendar list view
+ - Diaspora: allow comments on public diaspora posts which were imported by subscribing to public tags.
+ - Wppost: add blog_id parameter for WordPress MU sites such as WordPress.com
+ - Wppost: don't log the password in normal mode
+ - Hubwall: provide choice of sender addresses, the real admin email, postmaster, or noreply.
+ - Chord: General cleanup of chord app
+ - Chord: Update chord binary for modern linux systems
+ - Start grouping addons by server_role
+
Hubzilla 1.12
- extensible permissions so you can create a new permission rule such as "can write to my wiki" or "can see me naked".
- guest access tokens can do anything you let them, including create posts and administer your channel
diff --git a/Zotlabs/Daemon/Cron.php b/Zotlabs/Daemon/Cron.php
index c66b62f55..613c2e705 100644
--- a/Zotlabs/Daemon/Cron.php
+++ b/Zotlabs/Daemon/Cron.php
@@ -64,7 +64,7 @@ class Cron {
// delete expired access tokens
- $r = q("select atoken_id from atoken where atoken_expires != '%s' && atoken_expires < %s",
+ $r = q("select atoken_id from atoken where atoken_expires != '%s' and atoken_expires < %s",
dbesc(NULL_DATE),
db_utcnow()
);
diff --git a/Zotlabs/Daemon/Notifier.php b/Zotlabs/Daemon/Notifier.php
index ebc9d83a5..c0997138e 100644
--- a/Zotlabs/Daemon/Notifier.php
+++ b/Zotlabs/Daemon/Notifier.php
@@ -238,7 +238,7 @@ class Notifier {
$channel = $s[0];
$uid = $item_id;
$recipients = array();
- $r = q("select abook_xchan from abook where abook_channel = %d",
+ $r = q("select abook_xchan from abook where abook_channel = %d and abook_self = 0",
intval($item_id)
);
if($r) {
diff --git a/Zotlabs/Lib/AConfig.php b/Zotlabs/Lib/AConfig.php
index 24ec97dfa..ab8648a18 100644
--- a/Zotlabs/Lib/AConfig.php
+++ b/Zotlabs/Lib/AConfig.php
@@ -15,7 +15,7 @@ class AConfig {
}
static public function Set($account_id,$family,$key,$value) {
- return XConfig::Get('a_' . $account_id,$family,$key,$value);
+ return XConfig::Set('a_' . $account_id,$family,$key,$value);
}
static public function Delete($account_id,$family,$key) {
diff --git a/Zotlabs/Lib/Apps.php b/Zotlabs/Lib/Apps.php
index 19ed1b612..a646d8a30 100644
--- a/Zotlabs/Lib/Apps.php
+++ b/Zotlabs/Lib/Apps.php
@@ -112,7 +112,7 @@ class Apps {
static public function app_name_compare($a,$b) {
- return strcmp($a['name'],$b['name']);
+ return strcasecmp($a['name'],$b['name']);
}
diff --git a/Zotlabs/Lib/Enotify.php b/Zotlabs/Lib/Enotify.php
index 56c717468..92b9fddbd 100644
--- a/Zotlabs/Lib/Enotify.php
+++ b/Zotlabs/Lib/Enotify.php
@@ -116,10 +116,13 @@ class Enotify {
$itemlink = $params['link'];
- // ignore like/unlike activity on posts - they probably require a sepearate notification preference
+ // ignore like/unlike activity on posts - they probably require a separate notification preference
- if (array_key_exists('item',$params) && (! visible_activity($params['item'])))
+ if (array_key_exists('item',$params) && (! visible_activity($params['item']))) {
+ logger('notification: not a visible activity. Ignoring.');
+ pop_lang();
return;
+ }
$parent_mid = $params['parent_mid'];
@@ -386,8 +389,11 @@ class Enotify {
// Mark some notifications as seen right away
// Note! The notification have to be created, because they are used to send emails
// So easiest solution to hide them from Notices is to mark them as seen right away.
- // Another option would be to not add them to the DB, and change how emails are handled (probably would be better that way)
+ // Another option would be to not add them to the DB, and change how emails are handled
+ // (probably would be better that way)
+
$always_show_in_notices = get_pconfig($recip['channel_id'],'system','always_show_in_notices');
+
if (!$always_show_in_notices) {
if (($params['type'] == NOTIFY_WALL) || ($params['type'] == NOTIFY_MAIL) || ($params['type'] == NOTIFY_INTRO)) {
$seen = 1;
@@ -459,7 +465,7 @@ class Enotify {
// use $_SESSION['zid_override'] to force zid() to use
// the recipient address instead of the current observer
- $_SESSION['zid_override'] = $recip['channel_address'] . '@' . \App::get_hostname();
+ $_SESSION['zid_override'] = channel_reddress($recip);
$_SESSION['zrl_override'] = z_root() . '/channel/' . $recip['channel_address'];
$textversion = zidify_links($textversion);
@@ -654,12 +660,12 @@ class Enotify {
require_once('include/conversation.php');
- // Call localize_item with the "brief" flag to get a one line status for activities.
+ // Call localize_item to get a one line status for activities.
// This should set $item['localized'] to indicate we have a brief summary.
localize_item($item);
- if($item_localize) {
+ if($item['localize']) {
$itemem_text = $item['localize'];
}
else {
diff --git a/Zotlabs/Lib/ExtendedZip.php b/Zotlabs/Lib/ExtendedZip.php
new file mode 100644
index 000000000..a40110c55
--- /dev/null
+++ b/Zotlabs/Lib/ExtendedZip.php
@@ -0,0 +1,57 @@
+<?php
+
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+namespace Zotlabs\Lib;
+
+/**
+ * Description of ExtendedZip
+ *
+ * @author andrew
+ */
+class ExtendedZip extends \ZipArchive {
+
+ // Member function to add a whole file system subtree to the archive
+ public function addTree($dirname, $localname = '') {
+ if ($localname)
+ $this->addEmptyDir($localname);
+ $this->_addTree($dirname, $localname);
+ }
+
+ // Internal function, to recurse
+ protected function _addTree($dirname, $localname) {
+ $dir = opendir($dirname);
+ while ($filename = readdir($dir)) {
+ // Discard . and ..
+ if ($filename == '.' || $filename == '..')
+ continue;
+
+ // Proceed according to type
+ $path = $dirname . '/' . $filename;
+ $localpath = $localname ? ($localname . '/' . $filename) : $filename;
+ if (is_dir($path)) {
+ // Directory: add & recurse
+ $this->addEmptyDir($localpath);
+ $this->_addTree($path, $localpath);
+ }
+ else if (is_file($path)) {
+ // File: just add
+ $this->addFile($path, $localpath);
+ }
+ }
+ closedir($dir);
+ }
+
+ // Helper function
+ public static function zipTree($dirname, $zipFilename, $flags = 0, $localname = '') {
+ $zip = new self();
+ $zip->open($zipFilename, $flags);
+ $zip->addTree($dirname, $localname);
+ $zip->close();
+ }
+
+}
diff --git a/Zotlabs/Lib/SuperCurl.php b/Zotlabs/Lib/SuperCurl.php
index 1c8583ff5..462a62b36 100644
--- a/Zotlabs/Lib/SuperCurl.php
+++ b/Zotlabs/Lib/SuperCurl.php
@@ -105,7 +105,7 @@ class SuperCurl {
$opts['cookie'] = 'PHPSESSID=' . trim(file_get_contents('store/[data]/cookien_' . $this->magicauth));
$c = channelx_by_n($this->magicauth);
if($c)
- $url = zid($this->url,$c['channel_address'] . '@' . \App::get_hostname());
+ $url = zid($this->url,channel_reddress($c));
}
if($this->custom)
$opts['custom'] = $this->custom;
diff --git a/Zotlabs/Lib/System.php b/Zotlabs/Lib/System.php
index 4479bf597..6ccfd664c 100644
--- a/Zotlabs/Lib/System.php
+++ b/Zotlabs/Lib/System.php
@@ -45,7 +45,7 @@ class System {
static public function get_server_role() {
if(is_array(\App::$config) && is_array(\App::$config['system']) && \App::$config['system']['server_role'])
return \App::$config['system']['server_role'];
- return 'pro';
+ return 'standard';
}
static public function get_std_version() {
diff --git a/Zotlabs/Lib/ThreadItem.php b/Zotlabs/Lib/ThreadItem.php
index eee3b2a4f..f50b9680e 100644
--- a/Zotlabs/Lib/ThreadItem.php
+++ b/Zotlabs/Lib/ThreadItem.php
@@ -246,10 +246,11 @@ class ThreadItem {
}
$server_role = get_config('system','server_role');
+
$has_bookmarks = false;
if(is_array($item['term'])) {
foreach($item['term'] as $t) {
- if(($server_role != 'basic') && ($t['ttype'] == TERM_BOOKMARK))
+ if((get_account_techlevel() > 0) && ($t['ttype'] == TERM_BOOKMARK))
$has_bookmarks = true;
}
}
diff --git a/Zotlabs/Module/Acl.php b/Zotlabs/Module/Acl.php
index 03dc6c5d3..1acd8e320 100644
--- a/Zotlabs/Module/Acl.php
+++ b/Zotlabs/Module/Acl.php
@@ -66,12 +66,13 @@ class Acl extends \Zotlabs\Web\Controller {
// These queries require permission checking. We'll create a simple array of xchan_hash for those with
// the requisite permissions which we can check against.
- $x = q("select xchan from abconfig where chan = %d and cat = 'their_perms' and k = '%s' and v = 1",
+ $x = q("select xchan from abconfig where chan = %d and cat = 'their_perms' and k = '%s' and v = '1'",
intval(local_channel()),
dbesc(($type === 'm') ? 'post_mail' : 'tag_deliver')
);
$permitted = ids_to_array($x,'xchan');
+
}
@@ -249,7 +250,7 @@ class Acl extends \Zotlabs\Web\Controller {
);
if($z) {
foreach($z as $zz) {
- if(in_array($zz['id'],$permitted)) {
+ if(in_array($zz['hash'],$permitted)) {
$r[] = $zz;
}
}
diff --git a/Zotlabs/Module/Admin.php b/Zotlabs/Module/Admin.php
index 085d13fd7..e6a29fd8d 100644
--- a/Zotlabs/Module/Admin.php
+++ b/Zotlabs/Module/Admin.php
@@ -1,7 +1,6 @@
<?php
namespace Zotlabs\Module;
-use \Zotlabs\Storage\GitRepo as GitRepo;
/**
* @file mod/admin.php
@@ -19,94 +18,29 @@ require_once('include/account.php');
class Admin extends \Zotlabs\Web\Controller {
+ private $sm = null;
+
+ function __construct() {
+ $this->sm = new \Zotlabs\Web\SubModule();
+ }
+
function post(){
logger('admin_post', LOGGER_DEBUG);
if(! is_site_admin()) {
return;
}
-
- // urls
if (argc() > 1) {
- switch (argv(1)) {
- case 'site':
- $this->admin_page_site_post($a);
- break;
- case 'accounts':
- $this->admin_page_accounts_post($a);
- break;
- case 'channels':
- $this->admin_page_channels_post($a);
- break;
- case 'plugins':
- if (argc() > 2 && argv(2) === 'addrepo') {
- $this->admin_page_plugins_post('addrepo');
- break;
- }
- if (argc() > 2 && argv(2) === 'installrepo') {
- $this->admin_page_plugins_post('installrepo');
- break;
- }
- if (argc() > 2 && argv(2) === 'removerepo') {
- $this->admin_page_plugins_post('removerepo');
- break;
- }
- if (argc() > 2 && argv(2) === 'updaterepo') {
- $this->admin_page_plugins_post('updaterepo');
- break;
- }
- if (argc() > 2 &&
- is_file("addon/" . argv(2) . "/" . argv(2) . ".php")){
- @include_once("addon/" . argv(2) . "/" . argv(2) . ".php");
- if(function_exists(argv(2).'_plugin_admin_post')) {
- $func = argv(2) . '_plugin_admin_post';
- $func($a);
- }
- }
- goaway(z_root() . '/admin/plugins/' . argv(2) );
- break;
- case 'themes':
- $theme = argv(2);
- if (is_file("view/theme/$theme/php/config.php")){
- require_once("view/theme/$theme/php/config.php");
- // fixme add parent theme if derived
- if (function_exists("theme_admin_post")){
- theme_admin_post($a);
- }
- }
- info(t('Theme settings updated.'));
- if(is_ajax()) return;
-
- goaway(z_root() . '/admin/themes/' . $theme );
- break;
- case 'logs':
- $this->admin_page_logs_post($a);
- break;
- case 'hubloc':
- $this->admin_page_hubloc_post($a);
- break;
- case 'security':
- $this->admin_page_security_post($a);
- break;
- case 'features':
- $this->admin_page_features_post($a);
- break;
- case 'dbsync':
- $this->admin_page_dbsync_post($a);
- break;
- case 'profs':
- $this->admin_page_profs_post($a);
- break;
- }
+ $this->sm->call('post');
}
goaway(z_root() . '/admin' );
}
/**
- * @param App &$a
* @return string
*/
+
function get() {
logger('admin_content', LOGGER_DEBUG);
@@ -119,59 +53,25 @@ class Admin extends \Zotlabs\Web\Controller {
/*
* Page content
*/
+
$o = '';
- // urls
- if (argc() > 1){
- switch (argv(1)) {
- case 'site':
- $o = $this->admin_page_site($a);
- break;
- case 'accounts':
- $o = $this->admin_page_accounts($a);
- break;
- case 'channels':
- $o = $this->admin_page_channels($a);
- break;
- case 'plugins':
- $o = $this->admin_page_plugins($a);
- break;
- case 'themes':
- $o = $this->admin_page_themes($a);
- break;
- // case 'hubloc':
- // $o = $this->admin_page_hubloc($a);
- // break;
- case 'security':
- $o = $this->admin_page_security($a);
- break;
- case 'features':
- $o = $this->admin_page_features($a);
- break;
- case 'logs':
- $o = $this->admin_page_logs($a);
- break;
- case 'dbsync':
- $o = $this->admin_page_dbsync($a);
- break;
- case 'profs':
- $o = $this->admin_page_profs($a);
- break;
- case 'queue':
- $o = $this->admin_page_queue($a);
- break;
- default:
- notice( t('Item not found.') );
+ if(argc() > 1) {
+ $o = $this->sm->call('get');
+ if($o === false) {
+ notice( t('Item not found.') );
}
- } else {
- $o = $this->admin_page_summary($a);
+ }
+ else {
+ $o = $this->admin_page_summary();
}
if(is_ajax()) {
echo $o;
killme();
return '';
- } else {
+ }
+ else {
return $o;
}
}
@@ -183,7 +83,7 @@ class Admin extends \Zotlabs\Web\Controller {
* @param App &$a
* @return string HTML from parsed admin_summary.tpl
*/
- function admin_page_summary(&$a) {
+ function admin_page_summary() {
// list total user accounts, expirations etc.
$accounts = array();
@@ -255,1870 +155,5 @@ class Admin extends \Zotlabs\Web\Controller {
}
- /**
- * @brief POST handler for Admin Site Page.
- *
- * @param App &$a
- */
- function admin_page_site_post(&$a){
- if (!x($_POST, 'page_site')){
- return;
- }
-
- check_form_security_token_redirectOnErr('/admin/site', 'admin_site');
-
- $sitename = ((x($_POST,'sitename')) ? notags(trim($_POST['sitename'])) : '');
- $banner = ((x($_POST,'banner')) ? trim($_POST['banner']) : false);
- $admininfo = ((x($_POST,'admininfo')) ? trim($_POST['admininfo']) : false);
- $language = ((x($_POST,'language')) ? notags(trim($_POST['language'])) : '');
- $theme = ((x($_POST,'theme')) ? notags(trim($_POST['theme'])) : '');
- $theme_mobile = ((x($_POST,'theme_mobile')) ? notags(trim($_POST['theme_mobile'])) : '');
- // $site_channel = ((x($_POST,'site_channel')) ? notags(trim($_POST['site_channel'])) : '');
- $maximagesize = ((x($_POST,'maximagesize')) ? intval(trim($_POST['maximagesize'])) : 0);
-
- $register_policy = ((x($_POST,'register_policy')) ? intval(trim($_POST['register_policy'])) : 0);
-
- $access_policy = ((x($_POST,'access_policy')) ? intval(trim($_POST['access_policy'])) : 0);
- $invite_only = ((x($_POST,'invite_only')) ? True : False);
- $abandon_days = ((x($_POST,'abandon_days')) ? intval(trim($_POST['abandon_days'])) : 0);
-
- $register_text = ((x($_POST,'register_text')) ? notags(trim($_POST['register_text'])) : '');
- $frontpage = ((x($_POST,'frontpage')) ? notags(trim($_POST['frontpage'])) : '');
- $mirror_frontpage = ((x($_POST,'mirror_frontpage')) ? intval(trim($_POST['mirror_frontpage'])) : 0);
- $directory_server = ((x($_POST,'directory_server')) ? trim($_POST['directory_server']) : '');
- $allowed_sites = ((x($_POST,'allowed_sites')) ? notags(trim($_POST['allowed_sites'])) : '');
- $allowed_email = ((x($_POST,'allowed_email')) ? notags(trim($_POST['allowed_email'])) : '');
- $not_allowed_email = ((x($_POST,'not_allowed_email')) ? notags(trim($_POST['not_allowed_email'])) : '');
- $force_publish = ((x($_POST,'publish_all')) ? True : False);
- $disable_discover_tab = ((x($_POST,'disable_discover_tab')) ? False : True);
- $login_on_homepage = ((x($_POST,'login_on_homepage')) ? True : False);
- $enable_context_help = ((x($_POST,'enable_context_help')) ? True : False);
- $global_directory = ((x($_POST,'directory_submit_url')) ? notags(trim($_POST['directory_submit_url'])) : '');
- $no_community_page = !((x($_POST,'no_community_page')) ? True : False);
- $default_expire_days = ((array_key_exists('default_expire_days',$_POST)) ? intval($_POST['default_expire_days']) : 0);
-
- $verifyssl = ((x($_POST,'verifyssl')) ? True : False);
- $proxyuser = ((x($_POST,'proxyuser')) ? notags(trim($_POST['proxyuser'])) : '');
- $proxy = ((x($_POST,'proxy')) ? notags(trim($_POST['proxy'])) : '');
- $timeout = ((x($_POST,'timeout')) ? intval(trim($_POST['timeout'])) : 60);
- $delivery_interval = ((x($_POST,'delivery_interval'))? intval(trim($_POST['delivery_interval'])) : 0);
- $delivery_batch_count = ((x($_POST,'delivery_batch_count') && $_POST['delivery_batch_count'] > 0)? intval(trim($_POST['delivery_batch_count'])) : 1);
- $poll_interval = ((x($_POST,'poll_interval')) ? intval(trim($_POST['poll_interval'])) : 0);
- $maxloadavg = ((x($_POST,'maxloadavg')) ? intval(trim($_POST['maxloadavg'])) : 50);
- $feed_contacts = ((x($_POST,'feed_contacts')) ? intval($_POST['feed_contacts']) : 0);
- $verify_email = ((x($_POST,'verify_email')) ? 1 : 0);
-
- set_config('system', 'feed_contacts', $feed_contacts);
- set_config('system', 'delivery_interval', $delivery_interval);
- set_config('system', 'delivery_batch_count', $delivery_batch_count);
- set_config('system', 'poll_interval', $poll_interval);
- set_config('system', 'maxloadavg', $maxloadavg);
- set_config('system', 'frontpage', $frontpage);
- set_config('system', 'mirror_frontpage', $mirror_frontpage);
- set_config('system', 'sitename', $sitename);
- set_config('system', 'login_on_homepage', $login_on_homepage);
- set_config('system', 'enable_context_help', $enable_context_help);
- set_config('system', 'verify_email', $verify_email);
- set_config('system', 'default_expire_days', $default_expire_days);
-
- if($directory_server)
- set_config('system','directory_server',$directory_server);
-
- if ($banner == '') {
- del_config('system', 'banner');
- } else {
- set_config('system', 'banner', $banner);
- }
-
- if ($admininfo == ''){
- del_config('system', 'admininfo');
- } else {
- require_once('include/text.php');
- linkify_tags($a, $admininfo, local_channel());
- set_config('system', 'admininfo', $admininfo);
- }
- set_config('system', 'language', $language);
- set_config('system', 'theme', $theme);
- if ( $theme_mobile === '---' ) {
- del_config('system', 'mobile_theme');
- } else {
- set_config('system', 'mobile_theme', $theme_mobile);
- }
- // set_config('system','site_channel', $site_channel);
- set_config('system','maximagesize', $maximagesize);
-
- set_config('system','register_policy', $register_policy);
- set_config('system','invitation_only', $invite_only);
- set_config('system','access_policy', $access_policy);
- set_config('system','account_abandon_days', $abandon_days);
- set_config('system','register_text', $register_text);
- set_config('system','allowed_sites', $allowed_sites);
- set_config('system','allowed_email', $allowed_email);
- set_config('system','not_allowed_email', $not_allowed_email);
- set_config('system','publish_all', $force_publish);
- set_config('system','disable_discover_tab', $disable_discover_tab);
- if ($global_directory == '') {
- del_config('system', 'directory_submit_url');
- } else {
- set_config('system', 'directory_submit_url', $global_directory);
- }
-
- set_config('system','no_community_page', $no_community_page);
- set_config('system','no_utf', $no_utf);
- set_config('system','verifyssl', $verifyssl);
- set_config('system','proxyuser', $proxyuser);
- set_config('system','proxy', $proxy);
- set_config('system','curl_timeout', $timeout);
-
- info( t('Site settings updated.') . EOL);
- goaway(z_root() . '/admin/site' );
- }
-
- /**
- * @brief Admin page site.
- *
- * @param App $a
- * @return string
- */
- function admin_page_site(&$a) {
-
- /* Installed langs */
- $lang_choices = array();
- $langs = glob('view/*/hstrings.php');
-
- if(is_array($langs) && count($langs)) {
- if(! in_array('view/en/hstrings.php',$langs))
- $langs[] = 'view/en/';
- asort($langs);
- foreach($langs as $l) {
- $t = explode("/",$l);
- $lang_choices[$t[1]] = $t[1];
- }
- }
-
- /* Installed themes */
- $theme_choices_mobile["---"] = t("Default");
- $theme_choices = array();
- $files = glob('view/theme/*');
- if($files) {
- foreach($files as $file) {
- $vars = '';
- $f = basename($file);
- if (file_exists($file . '/library'))
- continue;
- if (file_exists($file . '/mobile'))
- $vars = t('mobile');
- if (file_exists($file . '/experimental'))
- $vars .= t('experimental');
- if (file_exists($file . '/unsupported'))
- $vars .= t('unsupported');
- if ($vars) {
- $theme_choices[$f] = $f . ' (' . $vars . ')';
- $theme_choices_mobile[$f] = $f . ' (' . $vars . ')';
- }
- else {
- $theme_choices[$f] = $f;
- $theme_choices_mobile[$f] = $f;
- }
- }
- }
-
- $dir_choices = null;
- $dirmode = get_config('system','directory_mode');
- $realm = get_directory_realm();
-
- // directory server should not be set or settable unless we are a directory client
-
- if($dirmode == DIRECTORY_MODE_NORMAL) {
- $x = q("select site_url from site where site_flags in (%d,%d) and site_realm = '%s'",
- intval(DIRECTORY_MODE_SECONDARY),
- intval(DIRECTORY_MODE_PRIMARY),
- dbesc($realm)
- );
- if($x) {
- $dir_choices = array();
- foreach($x as $xx) {
- $dir_choices[$xx['site_url']] = $xx['site_url'];
- }
- }
- }
-
- /* Banner */
-
- $banner = get_config('system', 'banner');
- if($banner === false)
- $banner = get_config('system','sitename');
-
- $banner = htmlspecialchars($banner);
-
- /* Admin Info */
- $admininfo = get_config('system', 'admininfo');
-
- /* Register policy */
- $register_choices = Array(
- REGISTER_CLOSED => t("No"),
- REGISTER_APPROVE => t("Yes - with approval"),
- REGISTER_OPEN => t("Yes")
- );
-
- /* Acess policy */
- $access_choices = Array(
- ACCESS_PRIVATE => t("My site is not a public server"),
- ACCESS_PAID => t("My site has paid access only"),
- ACCESS_FREE => t("My site has free access only"),
- ACCESS_TIERED => t("My site offers free accounts with optional paid upgrades")
- );
-
- // $ssl_choices = array(
- // SSL_POLICY_NONE => t("No SSL policy, links will track page SSL state"),
- // SSL_POLICY_FULL => t("Force all links to use SSL")
- // );
-
- $discover_tab = get_config('system','disable_discover_tab');
- // $disable public streams by default
- if($discover_tab === false)
- $discover_tab = 1;
- // now invert the logic for the setting.
- $discover_tab = (1 - $discover_tab);
-
-
- $homelogin = get_config('system','login_on_homepage');
- $enable_context_help = get_config('system','enable_context_help');
-
- $t = get_markup_template("admin_site.tpl");
- return replace_macros($t, array(
- '$title' => t('Administration'),
- '$page' => t('Site'),
- '$submit' => t('Submit'),
- '$registration' => t('Registration'),
- '$upload' => t('File upload'),
- '$corporate' => t('Policies'),
- '$advanced' => t('Advanced'),
-
- '$baseurl' => z_root(),
- // name, label, value, help string, extra data...
- '$sitename' => array('sitename', t("Site name"), htmlspecialchars(get_config('system','sitename'), ENT_QUOTES, 'UTF-8'),''),
- '$banner' => array('banner', t("Banner/Logo"), $banner, ""),
- '$admininfo' => array('admininfo', t("Administrator Information"), $admininfo, t("Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here")),
- '$language' => array('language', t("System language"), get_config('system','language'), "", $lang_choices),
- '$theme' => array('theme', t("System theme"), get_config('system','theme'), t("Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"), $theme_choices),
- '$theme_mobile' => array('theme_mobile', t("Mobile system theme"), get_config('system','mobile_theme'), t("Theme for mobile devices"), $theme_choices_mobile),
- // '$site_channel' => array('site_channel', t("Channel to use for this website's static pages"), get_config('system','site_channel'), t("Site Channel")),
- '$feed_contacts' => array('feed_contacts', t('Allow Feeds as Connections'),get_config('system','feed_contacts'),t('(Heavy system resource usage)')),
- '$maximagesize' => array('maximagesize', t("Maximum image size"), intval(get_config('system','maximagesize')), t("Maximum size in bytes of uploaded images. Default is 0, which means no limits.")),
- '$register_policy' => array('register_policy', t("Does this site allow new member registration?"), get_config('system','register_policy'), "", $register_choices),
- '$invite_only' => array('invite_only', t("Invitation only"), get_config('system','invitation_only'), t("Only allow new member registrations with an invitation code. Above register policy must be set to Yes.")),
- '$access_policy' => array('access_policy', t("Which best describes the types of account offered by this hub?"), get_config('system','access_policy'), "This is displayed on the public server site list.", $access_choices),
- '$register_text' => array('register_text', t("Register text"), htmlspecialchars(get_config('system','register_text'), ENT_QUOTES, 'UTF-8'), t("Will be displayed prominently on the registration page.")),
- '$frontpage' => array('frontpage', t("Site homepage to show visitors (default: login box)"), get_config('system','frontpage'), t("example: 'public' to show public stream, 'page/sys/home' to show a system webpage called 'home' or 'include:home.html' to include a file.")),
- '$mirror_frontpage' => array('mirror_frontpage', t("Preserve site homepage URL"), get_config('system','mirror_frontpage'), t('Present the site homepage in a frame at the original location instead of redirecting')),
- '$abandon_days' => array('abandon_days', t('Accounts abandoned after x days'), get_config('system','account_abandon_days'), t('Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit.')),
- '$allowed_sites' => array('allowed_sites', t("Allowed friend domains"), get_config('system','allowed_sites'), t("Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains")),
- '$allowed_email' => array('allowed_email', t("Allowed email domains"), get_config('system','allowed_email'), t("Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains")),
- '$not_allowed_email' => array('not_allowed_email', t("Not allowed email domains"), get_config('system','not_allowed_email'), t("Comma separated list of domains which are not allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains, unless allowed domains have been defined.")),
- '$verify_email' => array('verify_email', t("Verify Email Addresses"), get_config('system','verify_email'), t("Check to verify email addresses used in account registration (recommended).")),
- '$force_publish' => array('publish_all', t("Force publish"), get_config('system','publish_all'), t("Check to force all profiles on this site to be listed in the site directory.")),
- '$disable_discover_tab' => array('disable_discover_tab', t('Import Public Streams'), $discover_tab, t('Import and allow access to public content pulled from other sites. Warning: this content is unmoderated.')),
- '$login_on_homepage' => array('login_on_homepage', t("Login on Homepage"),((intval($homelogin) || $homelogin === false) ? 1 : '') , t("Present a login box to visitors on the home page if no other content has been configured.")),
- '$enable_context_help' => array('enable_context_help', t("Enable context help"),((intval($enable_context_help) === 1 || $enable_context_help === false) ? 1 : 0) , t("Display contextual help for the current page when the help button is pressed.")),
-
- '$directory_server' => (($dir_choices) ? array('directory_server', t("Directory Server URL"), get_config('system','directory_server'), t("Default directory server"), $dir_choices) : null),
-
- '$proxyuser' => array('proxyuser', t("Proxy user"), get_config('system','proxyuser'), ""),
- '$proxy' => array('proxy', t("Proxy URL"), get_config('system','proxy'), ""),
- '$timeout' => array('timeout', t("Network timeout"), (x(get_config('system','curl_timeout'))?get_config('system','curl_timeout'):60), t("Value is in seconds. Set to 0 for unlimited (not recommended).")),
- '$delivery_interval' => array('delivery_interval', t("Delivery interval"), (x(get_config('system','delivery_interval'))?get_config('system','delivery_interval'):2), t("Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers.")),
- '$delivery_batch_count' => array('delivery_batch_count', t('Deliveries per process'),(x(get_config('system','delivery_batch_count'))?get_config('system','delivery_batch_count'):1), t("Number of deliveries to attempt in a single operating system process. Adjust if necessary to tune system performance. Recommend: 1-5.")),
- '$poll_interval' => array('poll_interval', t("Poll interval"), (x(get_config('system','poll_interval'))?get_config('system','poll_interval'):2), t("Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval.")),
- '$maxloadavg' => array('maxloadavg', t("Maximum Load Average"), ((intval(get_config('system','maxloadavg')) > 0)?get_config('system','maxloadavg'):50), t("Maximum system load before delivery and poll processes are deferred - default 50.")),
- '$default_expire_days' => array('default_expire_days', t('Expiration period in days for imported (grid/network) content'), intval(get_config('system','default_expire_days')), t('0 for no expiration of imported content')),
- '$form_security_token' => get_form_security_token("admin_site"),
- ));
- }
-
- function admin_page_hubloc_post(&$a){
- check_form_security_token_redirectOnErr('/admin/hubloc', 'admin_hubloc');
- require_once('include/zot.php');
-
- //prepare for ping
-
- if ( $_POST['hublocid']) {
- $hublocid = $_POST['hublocid'];
- $arrhublocurl = q("SELECT hubloc_url FROM hubloc WHERE hubloc_id = %d ",
- intval($hublocid)
- );
- $hublocurl = $arrhublocurl[0]['hubloc_url'] . '/post';
-
- //perform ping
- $m = zot_build_packet(\App::get_channel(),'ping');
- $r = zot_zot($hublocurl,$m);
- //handle results and set the hubloc flags in db to make results visible
- $r2 = $r['body'];
- $r3 = $r2['success'];
- if ( $r3['success'] == True ){
- //set HUBLOC_OFFLINE to 0
- logger(' success = true ',LOGGER_DEBUG);
- } else {
- //set HUBLOC_OFFLINE to 1
- logger(' success = false ', LOGGER_DEBUG);
- }
-
- //unfotunatly zping wont work, I guess return format is not correct
- //require_once('mod/zping.php');
- //$r = zping_content($hublocurl);
- //logger('zping answer: ' . $r, LOGGER_DEBUG);
-
- //in case of repair store new pub key for tested hubloc (all channel with this hubloc) in db
- //after repair set hubloc flags to 0
- }
-
- goaway(z_root() . '/admin/hubloc' );
- }
-
- function trim_array_elems($arr) {
- $narr = array();
-
- if($arr && is_array($arr)) {
- for($x = 0; $x < count($arr); $x ++) {
- $y = trim($arr[$x]);
- if($y)
- $narr[] = $y;
- }
- }
- return $narr;
- }
-
- function admin_page_security_post(&$a){
- check_form_security_token_redirectOnErr('/admin/security', 'admin_security');
-
- logger('post: ' . print_r($_POST,true));
-
- $block_public = ((x($_POST,'block_public')) ? True : False);
- set_config('system','block_public',$block_public);
-
- $ws = $this->trim_array_elems(explode("\n",$_POST['whitelisted_sites']));
- set_config('system','whitelisted_sites',$ws);
-
- $bs = $this->trim_array_elems(explode("\n",$_POST['blacklisted_sites']));
- set_config('system','blacklisted_sites',$bs);
-
- $wc = $this->trim_array_elems(explode("\n",$_POST['whitelisted_channels']));
- set_config('system','whitelisted_channels',$wc);
-
- $bc = $this->trim_array_elems(explode("\n",$_POST['blacklisted_channels']));
- set_config('system','blacklisted_channels',$bc);
-
- $embed_sslonly = ((x($_POST,'embed_sslonly')) ? True : False);
- set_config('system','embed_sslonly',$embed_sslonly);
-
- $we = $this->trim_array_elems(explode("\n",$_POST['embed_allow']));
- set_config('system','embed_allow',$we);
-
- $be = $this->trim_array_elems(explode("\n",$_POST['embed_deny']));
- set_config('system','embed_deny',$be);
-
- $ts = ((x($_POST,'transport_security')) ? True : False);
- set_config('system','transport_security_header',$ts);
-
- $cs = ((x($_POST,'content_security')) ? True : False);
- set_config('system','content_security_policy',$cs);
-
- goaway(z_root() . '/admin/security');
- }
-
-
-
-
- function admin_page_features_post(&$a) {
-
- check_form_security_token_redirectOnErr('/admin/features', 'admin_manage_features');
-
- logger('postvars: ' . print_r($_POST,true));
-
- $arr = array();
- $features = get_features(false);
-
- foreach($features as $fname => $fdata) {
- foreach(array_slice($fdata,1) as $f) {
- $feature = $f[0];
-
- if(array_key_exists('feature_' . $feature,$_POST))
- $val = intval($_POST['feature_' . $feature]);
- else
- $val = 0;
- set_config('feature',$feature,$val);
-
- if(array_key_exists('featurelock_' . $feature,$_POST))
- set_config('feature_lock',$feature,$val);
- else
- del_config('feature_lock',$feature);
- }
- }
-
- goaway(z_root() . '/admin/features' );
-
- }
-
- function admin_page_features(&$a) {
-
- if((argc() > 1) && (argv(1) === 'features')) {
- $arr = array();
- $features = get_features(false);
-
- foreach($features as $fname => $fdata) {
- $arr[$fname] = array();
- $arr[$fname][0] = $fdata[0];
- foreach(array_slice($fdata,1) as $f) {
-
- $set = get_config('feature',$f[0]);
- if($set === false)
- $set = $f[3];
- $arr[$fname][1][] = array(
- array('feature_' .$f[0],$f[1],$set,$f[2],array(t('Off'),t('On'))),
- array('featurelock_' .$f[0],sprintf( t('Lock feature %s'),$f[1]),(($f[4] !== false) ? 1 : 0),'',array(t('Off'),t('On')))
- );
- }
- }
-
- $tpl = get_markup_template("admin_settings_features.tpl");
- $o .= replace_macros($tpl, array(
- '$form_security_token' => get_form_security_token("admin_manage_features"),
- '$title' => t('Manage Additional Features'),
- '$features' => $arr,
- '$submit' => t('Submit'),
- ));
-
- return $o;
- }
- }
-
-
-
-
-
- function admin_page_hubloc(&$a) {
- $hubloc = q("SELECT hubloc_id, hubloc_addr, hubloc_host, hubloc_status FROM hubloc");
-
- if(! $hubloc){
- notice( t('No server found') . EOL);
- goaway(z_root() . '/admin/hubloc');
- }
-
- $t = get_markup_template('admin_hubloc.tpl');
- return replace_macros($t, array(
- '$hubloc' => $hubloc,
- '$th_hubloc' => array(t('ID'), t('for channel'), t('on server'), t('Status')),
- '$title' => t('Administration'),
- '$page' => t('Server'),
- '$queues' => $queues,
- //'$accounts' => $accounts, /*$accounts is empty here*/
- '$pending' => array( t('Pending registrations'), $pending),
- '$plugins' => array( t('Active plugins'), \App::$plugins ),
- '$form_security_token' => get_form_security_token('admin_hubloc')
- ));
- }
-
- function admin_page_security(&$a) {
-
- $whitesites = get_config('system','whitelisted_sites');
- $whitesites_str = ((is_array($whitesites)) ? implode($whitesites,"\n") : '');
-
- $blacksites = get_config('system','blacklisted_sites');
- $blacksites_str = ((is_array($blacksites)) ? implode($blacksites,"\n") : '');
-
-
- $whitechannels = get_config('system','whitelisted_channels');
- $whitechannels_str = ((is_array($whitechannels)) ? implode($whitechannels,"\n") : '');
-
- $blackchannels = get_config('system','blacklisted_channels');
- $blackchannels_str = ((is_array($blackchannels)) ? implode($blackchannels,"\n") : '');
-
-
- $whiteembeds = get_config('system','embed_allow');
- $whiteembeds_str = ((is_array($whiteembeds)) ? implode($whiteembeds,"\n") : '');
-
- $blackembeds = get_config('system','embed_deny');
- $blackembeds_str = ((is_array($blackembeds)) ? implode($blackembeds,"\n") : '');
-
- $embed_coop = intval(get_config('system','embed_coop'));
-
- if((! $whiteembeds) && (! $blackembeds)) {
- $embedhelp1 = t("By default, unfiltered HTML is allowed in embedded media. This is inherently insecure.");
- }
-
- $embedhelp2 = t("The recommended setting is to only allow unfiltered HTML from the following sites:");
- $embedhelp3 = t("https://youtube.com/<br />https://www.youtube.com/<br />https://youtu.be/<br />https://vimeo.com/<br />https://soundcloud.com/<br />");
- $embedhelp4 = t("All other embedded content will be filtered, <strong>unless</strong> embedded content from that site is explicitly blocked.");
-
- $t = get_markup_template('admin_security.tpl');
- return replace_macros($t, array(
- '$title' => t('Administration'),
- '$page' => t('Security'),
- '$form_security_token' => get_form_security_token('admin_security'),
- '$block_public' => array('block_public', t("Block public"), get_config('system','block_public'), t("Check to block public access to all otherwise public personal pages on this site unless you are currently authenticated.")),
- '$transport_security' => array('transport_security', t('Set "Transport Security" HTTP header'),intval(get_config('system','transport_security_header')),''),
- '$content_security' => array('content_security', t('Set "Content Security Policy" HTTP header'),intval(get_config('system','content_security_policy')),''),
- '$whitelisted_sites' => array('whitelisted_sites', t('Allow communications only from these sites'), $whitesites_str, t('One site per line. Leave empty to allow communication from anywhere by default')),
- '$blacklisted_sites' => array('blacklisted_sites', t('Block communications from these sites'), $blacksites_str, ''),
- '$whitelisted_channels' => array('whitelisted_channels', t('Allow communications only from these channels'), $whitechannels_str, t('One channel (hash) per line. Leave empty to allow from any channel by default')),
- '$blacklisted_channels' => array('blacklisted_channels', t('Block communications from these channels'), $blackchannels_str, ''),
- '$embed_sslonly' => array('embed_sslonly',t('Only allow embeds from secure (SSL) websites and links.'), intval(get_config('system','embed_sslonly')),''),
- '$embed_allow' => array('embed_allow', t('Allow unfiltered embedded HTML content only from these domains'), $whiteembeds_str, t('One site per line. By default embedded content is filtered.')),
- '$embed_deny' => array('embed_deny', t('Block embedded HTML from these domains'), $blackembeds_str, ''),
-
-// '$embed_coop' => array('embed_coop', t('Cooperative embed security'), $embed_coop, t('Enable to share embed security with other compatible sites/hubs')),
-
- '$submit' => t('Submit')
- ));
- }
-
-
-
-
- function admin_page_dbsync(&$a) {
- $o = '';
-
- if(argc() > 3 && intval(argv(3)) && argv(2) === 'mark') {
- set_config('database', 'update_r' . intval(argv(3)), 'success');
- if(intval(get_config('system','db_version')) <= intval(argv(3)))
- set_config('system','db_version',intval(argv(3)) + 1);
- info( t('Update has been marked successful') . EOL);
- goaway(z_root() . '/admin/dbsync');
- }
-
- if(argc() > 2 && intval(argv(2))) {
- require_once('install/update.php');
- $func = 'update_r' . intval(argv(2));
- if(function_exists($func)) {
- $retval = $func();
- if($retval === UPDATE_FAILED) {
- $o .= sprintf( t('Executing %s failed. Check system logs.'), $func);
- }
- elseif($retval === UPDATE_SUCCESS) {
- $o .= sprintf( t('Update %s was successfully applied.'), $func);
- set_config('database',$func, 'success');
- }
- else
- $o .= sprintf( t('Update %s did not return a status. Unknown if it succeeded.'), $func);
- }
- else
- $o .= sprintf( t('Update function %s could not be found.'), $func);
-
- return $o;
- }
-
- $failed = array();
- $r = q("select * from config where `cat` = 'database' ");
- if(count($r)) {
- foreach($r as $rr) {
- $upd = intval(substr($rr['k'],8));
- if($rr['v'] === 'success')
- continue;
- $failed[] = $upd;
- }
- }
- if(! count($failed))
- return '<div class="generic-content-wrapper-styled"><h3>' . t('No failed updates.') . '</h3></div>';
-
- $o = replace_macros(get_markup_template('failed_updates.tpl'),array(
- '$base' => z_root(),
- '$banner' => t('Failed Updates'),
- '$desc' => '',
- '$mark' => t('Mark success (if update was manually applied)'),
- '$apply' => t('Attempt to execute this update step automatically'),
- '$failed' => $failed
- ));
-
- return $o;
- }
-
- function admin_page_queue($a) {
- $o = '';
-
- $expert = ((array_key_exists('expert',$_REQUEST)) ? intval($_REQUEST['expert']) : 0);
-
- if($_REQUEST['drophub']) {
- require_once('hubloc.php');
- hubloc_mark_as_down($_REQUEST['drophub']);
- remove_queue_by_posturl($_REQUEST['drophub']);
- }
-
- if($_REQUEST['emptyhub']) {
- remove_queue_by_posturl($_REQUEST['emptyhub']);
- }
-
- $r = q("select count(outq_posturl) as total, max(outq_priority) as priority, outq_posturl from outq
- where outq_delivered = 0 group by outq_posturl order by total desc");
-
- for($x = 0; $x < count($r); $x ++) {
- $r[$x]['eurl'] = urlencode($r[$x]['outq_posturl']);
- $r[$x]['connected'] = datetime_convert('UTC',date_default_timezone_get(),$r[$x]['connected'],'Y-m-d');
- }
-
- $o = replace_macros(get_markup_template('admin_queue.tpl'), array(
- '$banner' => t('Queue Statistics'),
- '$numentries' => t('Total Entries'),
- '$priority' => t('Priority'),
- '$desturl' => t('Destination URL'),
- '$nukehub' => t('Mark hub permanently offline'),
- '$empty' => t('Empty queue for this hub'),
- '$lastconn' => t('Last known contact'),
- '$hasentries' => ((count($r)) ? true : false),
- '$entries' => $r,
- '$expert' => $expert
- ));
-
- return $o;
- }
-
- /**
- * @brief Handle POST actions on accounts admin page.
- *
- * This function is called when on the admin user/account page the form was
- * submitted to handle multiple operations at once. If one of the icons next
- * to an entry are pressed the function admin_page_accounts() will handle this.
- *
- * @param App $a
- */
- function admin_page_accounts_post($a) {
- $pending = ( x($_POST, 'pending') ? $_POST['pending'] : array() );
- $users = ( x($_POST, 'user') ? $_POST['user'] : array() );
- $blocked = ( x($_POST, 'blocked') ? $_POST['blocked'] : array() );
-
- check_form_security_token_redirectOnErr('/admin/accounts', 'admin_accounts');
-
- // change to switch structure?
- // account block/unblock button was submitted
- if (x($_POST, 'page_users_block')) {
- for ($i = 0; $i < count($users); $i++) {
- // if account is blocked remove blocked bit-flag, otherwise add blocked bit-flag
- $op = ($blocked[$i]) ? '& ~' : '| ';
- q("UPDATE account SET account_flags = (account_flags $op%d) WHERE account_id = %d",
- intval(ACCOUNT_BLOCKED),
- intval($users[$i])
- );
- }
- notice( sprintf( tt("%s account blocked/unblocked", "%s account blocked/unblocked", count($users)), count($users)) );
- }
- // account delete button was submitted
- if (x($_POST, 'page_accounts_delete')) {
- foreach ($users as $uid){
- account_remove($uid, true, false);
- }
- notice( sprintf( tt("%s account deleted", "%s accounts deleted", count($users)), count($users)) );
- }
- // registration approved button was submitted
- if (x($_POST, 'page_users_approve')) {
- foreach ($pending as $hash) {
- account_allow($hash);
- }
- }
- // registration deny button was submitted
- if (x($_POST, 'page_users_deny')) {
- foreach ($pending as $hash) {
- account_deny($hash);
- }
- }
-
- goaway(z_root() . '/admin/accounts' );
- }
-
- /**
- * @brief Generate accounts admin page and handle single item operations.
- *
- * This function generates the accounts/account admin page and handles the actions
- * if an icon next to an entry was clicked. If several items were selected and
- * the form was submitted it is handled by the function admin_page_accounts_post().
- *
- * @param App &$a
- * @return string
- */
- function admin_page_accounts(&$a){
- if (argc() > 2) {
- $uid = argv(3);
- $account = q("SELECT * FROM account WHERE account_id = %d",
- intval($uid)
- );
-
- if (! $account) {
- notice( t('Account not found') . EOL);
- goaway(z_root() . '/admin/accounts' );
- }
-
- check_form_security_token_redirectOnErr('/admin/accounts', 'admin_accounts', 't');
-
- switch (argv(2)){
- case 'delete':
- // delete user
- account_remove($uid,true,false);
-
- notice( sprintf(t("Account '%s' deleted"), $account[0]['account_email']) . EOL);
- break;
- case 'block':
- q("UPDATE account SET account_flags = ( account_flags | %d ) WHERE account_id = %d",
- intval(ACCOUNT_BLOCKED),
- intval($uid)
- );
-
- notice( sprintf( t("Account '%s' blocked") , $account[0]['account_email']) . EOL);
- break;
- case 'unblock':
- q("UPDATE account SET account_flags = ( account_flags & ~%d ) WHERE account_id = %d",
- intval(ACCOUNT_BLOCKED),
- intval($uid)
- );
-
- notice( sprintf( t("Account '%s' unblocked"), $account[0]['account_email']) . EOL);
- break;
- }
-
- goaway(z_root() . '/admin/accounts' );
- }
-
- /* get pending */
- $pending = q("SELECT account.*, register.hash from account left join register on account_id = register.uid where (account_flags & %d )>0 ",
- intval(ACCOUNT_PENDING)
- );
-
- /* get accounts */
-
- $total = q("SELECT count(*) as total FROM account");
- if (count($total)) {
- \App::set_pager_total($total[0]['total']);
- \App::set_pager_itemspage(100);
- }
-
- $serviceclass = (($_REQUEST['class']) ? " and account_service_class = '" . dbesc($_REQUEST['class']) . "' " : '');
-
- $key = (($_REQUEST['key']) ? dbesc($_REQUEST['key']) : 'account_id');
- $dir = 'asc';
- if(array_key_exists('dir',$_REQUEST))
- $dir = ((intval($_REQUEST['dir'])) ? 'asc' : 'desc');
-
- $base = z_root() . '/admin/accounts?f=';
- $odir = (($dir === 'asc') ? '0' : '1');
-
- $users = q("SELECT `account_id` , `account_email`, `account_lastlog`, `account_created`, `account_expires`, " . "`account_service_class`, ( account_flags & %d ) > 0 as `blocked`, " .
- "(SELECT %s FROM channel as ch " .
- "WHERE ch.channel_account_id = ac.account_id and ch.channel_removed = 0 ) as `channels` " .
- "FROM account as ac where true $serviceclass order by $key $dir limit %d offset %d ",
- intval(ACCOUNT_BLOCKED),
- db_concat('ch.channel_address', ' '),
- intval(\App::$pager['itemspage']),
- intval(\App::$pager['start'])
- );
-
- // function _setup_users($e){
- // $accounts = Array(
- // t('Normal Account'),
- // t('Soapbox Account'),
- // t('Community/Celebrity Account'),
- // t('Automatic Friend Account')
- // );
-
- // $e['page_flags'] = $accounts[$e['page-flags']];
- // $e['register_date'] = relative_date($e['register_date']);
- // $e['login_date'] = relative_date($e['login_date']);
- // $e['lastitem_date'] = relative_date($e['lastitem_date']);
- // return $e;
- // }
- // $users = array_map("_setup_users", $users);
-
- $t = get_markup_template('admin_accounts.tpl');
- $o = replace_macros($t, array(
- // strings //
- '$title' => t('Administration'),
- '$page' => t('Accounts'),
- '$submit' => t('Submit'),
- '$select_all' => t('select all'),
- '$h_pending' => t('Registrations waiting for confirm'),
- '$th_pending' => array( t('Request date'), t('Email') ),
- '$no_pending' => t('No registrations.'),
- '$approve' => t('Approve'),
- '$deny' => t('Deny'),
- '$delete' => t('Delete'),
- '$block' => t('Block'),
- '$unblock' => t('Unblock'),
- '$odir' => $odir,
- '$base' => $base,
- '$h_users' => t('Accounts'),
- '$th_users' => array(
- [ t('ID'), 'account_id' ],
- [ t('Email'), 'account_email' ],
- [ t('All Channels'), 'channels' ],
- [ t('Register date'), 'account_created' ],
- [ t('Last login'), 'account_lastlog' ],
- [ t('Expires'), 'account_expires' ],
- [ t('Service Class'), 'account_service_class'] ),
-
- '$confirm_delete_multi' => t('Selected accounts will be deleted!\n\nEverything these accounts had posted on this site will be permanently deleted!\n\nAre you sure?'),
- '$confirm_delete' => t('The account {0} will be deleted!\n\nEverything this account has posted on this site will be permanently deleted!\n\nAre you sure?'),
-
- '$form_security_token' => get_form_security_token("admin_accounts"),
-
- // values //
- '$baseurl' => z_root(),
-
- '$pending' => $pending,
- '$users' => $users,
- ));
- $o .= paginate($a);
-
- return $o;
- }
-
-
- /**
- * @brief Channels admin page.
- *
- * @param App &$a
- */
- function admin_page_channels_post(&$a) {
- $channels = ( x($_POST, 'channel') ? $_POST['channel'] : Array() );
-
- check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels');
-
- $xor = db_getfunc('^');
-
- if (x($_POST,'page_channels_block')){
- foreach($channels as $uid){
- q("UPDATE channel SET channel_pageflags = ( channel_pageflags $xor %d ) where channel_id = %d",
- intval(PAGE_CENSORED),
- intval( $uid )
- );
- \Zotlabs\Daemon\Master::Summon(array('Directory',$uid,'nopush'));
- }
- notice( sprintf( tt("%s channel censored/uncensored", "%s channels censored/uncensored", count($channels)), count($channels)) );
- }
- if (x($_POST,'page_channels_code')){
- foreach($channels as $uid){
- q("UPDATE channel SET channel_pageflags = ( channel_pageflags $xor %d ) where channel_id = %d",
- intval(PAGE_ALLOWCODE),
- intval( $uid )
- );
- }
- notice( sprintf( tt("%s channel code allowed/disallowed", "%s channels code allowed/disallowed", count($channels)), count($channels)) );
- }
- if (x($_POST,'page_channels_delete')){
- foreach($channels as $uid){
- channel_remove($uid,true);
- }
- notice( sprintf( tt("%s channel deleted", "%s channels deleted", count($channels)), count($channels)) );
- }
-
- goaway(z_root() . '/admin/channels' );
- }
-
- /**
- * @brief
- *
- * @param App &$a
- * @return string
- */
- function admin_page_channels(&$a){
- if (argc() > 2) {
- $uid = argv(3);
- $channel = q("SELECT * FROM channel WHERE channel_id = %d",
- intval($uid)
- );
-
- if (! $channel) {
- notice( t('Channel not found') . EOL);
- goaway(z_root() . '/admin/channels' );
- }
-
- switch(argv(2)) {
- case "delete":{
- check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels', 't');
- // delete channel
- channel_remove($uid,true);
-
- notice( sprintf(t("Channel '%s' deleted"), $channel[0]['channel_name']) . EOL);
- }; break;
-
- case "block":{
- check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels', 't');
- $pflags = $channel[0]['channel_pageflags'] ^ PAGE_CENSORED;
- q("UPDATE channel SET channel_pageflags = %d where channel_id = %d",
- intval($pflags),
- intval( $uid )
- );
- \Zotlabs\Daemon\Master::Summon(array('Directory',$uid,'nopush'));
-
- notice( sprintf( (($pflags & PAGE_CENSORED) ? t("Channel '%s' censored"): t("Channel '%s' uncensored")) , $channel[0]['channel_name'] . ' (' . $channel[0]['channel_address'] . ')' ) . EOL);
- }; break;
-
- case "code":{
- check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels', 't');
- $pflags = $channel[0]['channel_pageflags'] ^ PAGE_ALLOWCODE;
- q("UPDATE channel SET channel_pageflags = %d where channel_id = %d",
- intval($pflags),
- intval( $uid )
- );
-
- notice( sprintf( (($pflags & PAGE_ALLOWCODE) ? t("Channel '%s' code allowed"): t("Channel '%s' code disallowed")) , $channel[0]['channel_name'] . ' (' . $channel[0]['channel_address'] . ')' ) . EOL);
- }; break;
-
- default:
- break;
- }
- goaway(z_root() . '/admin/channels' );
- }
-
-
- $key = (($_REQUEST['key']) ? dbesc($_REQUEST['key']) : 'channel_id');
- $dir = 'asc';
- if(array_key_exists('dir',$_REQUEST))
- $dir = ((intval($_REQUEST['dir'])) ? 'asc' : 'desc');
-
- $base = z_root() . '/admin/channels?f=';
- $odir = (($dir === 'asc') ? '0' : '1');
-
-
-
- /* get channels */
-
- $total = q("SELECT count(*) as total FROM channel where channel_removed = 0 and channel_system = 0");
- if($total) {
- \App::set_pager_total($total[0]['total']);
- \App::set_pager_itemspage(100);
- }
-
- $channels = q("SELECT * from channel where channel_removed = 0 and channel_system = 0 order by $key $dir limit %d offset %d ",
- intval(\App::$pager['itemspage']),
- intval(\App::$pager['start'])
- );
-
- if($channels) {
- for($x = 0; $x < count($channels); $x ++) {
- if($channels[$x]['channel_pageflags'] & PAGE_CENSORED)
- $channels[$x]['blocked'] = true;
- else
- $channels[$x]['blocked'] = false;
-
- if($channels[$x]['channel_pageflags'] & PAGE_ALLOWCODE)
- $channels[$x]['allowcode'] = true;
- else
- $channels[$x]['allowcode'] = false;
- }
- }
-
- $t = get_markup_template("admin_channels.tpl");
- $o = replace_macros($t, array(
- // strings //
- '$title' => t('Administration'),
- '$page' => t('Channels'),
- '$submit' => t('Submit'),
- '$select_all' => t('select all'),
- '$delete' => t('Delete'),
- '$block' => t('Censor'),
- '$unblock' => t('Uncensor'),
- '$code' => t('Allow Code'),
- '$uncode' => t('Disallow Code'),
- '$h_channels' => t('Channel'),
- '$base' => $base,
- '$odir' => $odir,
- '$th_channels' => array(
- [ t('UID'), 'channel_id' ],
- [ t('Name'), 'channel_name' ],
- [ t('Address'), 'channel_address' ]),
-
- '$confirm_delete_multi' => t('Selected channels will be deleted!\n\nEverything that was posted in these channels on this site will be permanently deleted!\n\nAre you sure?'),
- '$confirm_delete' => t('The channel {0} will be deleted!\n\nEverything that was posted in this channel on this site will be permanently deleted!\n\nAre you sure?'),
-
- '$form_security_token' => get_form_security_token("admin_channels"),
-
- // values //
- '$baseurl' => z_root(),
- '$channels' => $channels,
- ));
- $o .= paginate($a);
-
- return $o;
- }
-
-
- /**
- * Plugins admin page
- *
- * @param App $a
- * @return string
- */
- function admin_page_plugins(&$a){
-
- /*
- * Single plugin
- */
- if (\App::$argc == 3){
- $plugin = \App::$argv[2];
- if (!is_file("addon/$plugin/$plugin.php")){
- notice( t("Item not found.") );
- return '';
- }
-
- $enabled = in_array($plugin,\App::$plugins);
- $info = get_plugin_info($plugin);
- $x = check_plugin_versions($info);
-
- // disable plugins which are installed but incompatible versions
-
- if($enabled && ! $x) {
- $enabled = false;
- $idz = array_search($plugin, \App::$plugins);
- if ($idz !== false) {
- unset(\App::$plugins[$idz]);
- uninstall_plugin($plugin);
- set_config("system","addon", implode(", ",\App::$plugins));
- }
- }
- $info['disabled'] = 1-intval($x);
-
- if (x($_GET,"a") && $_GET['a']=="t"){
- check_form_security_token_redirectOnErr('/admin/plugins', 'admin_plugins', 't');
-
- // Toggle plugin status
- $idx = array_search($plugin, \App::$plugins);
- if ($idx !== false){
- unset(\App::$plugins[$idx]);
- uninstall_plugin($plugin);
- info( sprintf( t("Plugin %s disabled."), $plugin ) );
- } else {
- \App::$plugins[] = $plugin;
- install_plugin($plugin);
- info( sprintf( t("Plugin %s enabled."), $plugin ) );
- }
- set_config("system","addon", implode(", ",\App::$plugins));
- goaway(z_root() . '/admin/plugins' );
- }
- // display plugin details
- require_once('library/markdown.php');
-
- if (in_array($plugin, \App::$plugins)){
- $status = 'on';
- $action = t('Disable');
- } else {
- $status = 'off';
- $action = t('Enable');
- }
-
- $readme = null;
- if (is_file("addon/$plugin/README.md")){
- $readme = file_get_contents("addon/$plugin/README.md");
- $readme = Markdown($readme);
- } else if (is_file("addon/$plugin/README")){
- $readme = "<pre>". file_get_contents("addon/$plugin/README") ."</pre>";
- }
-
- $admin_form = '';
-
- $r = q("select * from addon where plugin_admin = 1 and aname = '%s' limit 1",
- dbesc($plugin)
- );
-
- if($r) {
- @require_once("addon/$plugin/$plugin.php");
- if(function_exists($plugin.'_plugin_admin')) {
- $func = $plugin.'_plugin_admin';
- $func($a, $admin_form);
- }
- }
-
-
- $t = get_markup_template('admin_plugins_details.tpl');
- return replace_macros($t, array(
- '$title' => t('Administration'),
- '$page' => t('Plugins'),
- '$toggle' => t('Toggle'),
- '$settings' => t('Settings'),
- '$baseurl' => z_root(),
-
- '$plugin' => $plugin,
- '$status' => $status,
- '$action' => $action,
- '$info' => $info,
- '$str_author' => t('Author: '),
- '$str_maintainer' => t('Maintainer: '),
- '$str_minversion' => t('Minimum project version: '),
- '$str_maxversion' => t('Maximum project version: '),
- '$str_minphpversion' => t('Minimum PHP version: '),
- '$str_requires' => t('Requires: '),
- '$disabled' => t('Disabled - version incompatibility'),
-
- '$admin_form' => $admin_form,
- '$function' => 'plugins',
- '$screenshot' => '',
- '$readme' => $readme,
-
- '$form_security_token' => get_form_security_token('admin_plugins'),
- ));
- }
-
-
- /*
- * List plugins
- */
- $plugins = array();
- $files = glob('addon/*/');
- if($files) {
- foreach($files as $file) {
- if (is_dir($file)){
- list($tmp, $id) = array_map('trim', explode('/', $file));
- $info = get_plugin_info($id);
- $enabled = in_array($id,\App::$plugins);
- $x = check_plugin_versions($info);
-
- // disable plugins which are installed but incompatible versions
-
- if($enabled && ! $x) {
- $enabled = false;
- $idz = array_search($id, \App::$plugins);
- if ($idz !== false) {
- unset(\App::$plugins[$idz]);
- uninstall_plugin($id);
- set_config("system","addon", implode(", ",\App::$plugins));
- }
- }
- $info['disabled'] = 1-intval($x);
-
- $plugins[] = array( $id, (($enabled)?"on":"off") , $info);
- }
- }
- }
-
- usort($plugins,'self::plugin_sort');
-
-
- $admin_plugins_add_repo_form= replace_macros(
- get_markup_template('admin_plugins_addrepo.tpl'), array(
- '$post' => 'admin/plugins/addrepo',
- '$desc' => t('Enter the public git repository URL of the plugin repo.'),
- '$repoURL' => array('repoURL', t('Plugin repo git URL'), '', ''),
- '$repoName' => array('repoName', t('Custom repo name'), '', '', t('(optional)')),
- '$submit' => t('Download Plugin Repo')
- )
- );
- $newRepoModalID = random_string(3);
- $newRepoModal = replace_macros(
- get_markup_template('generic_modal.tpl'), array(
- '$id' => $newRepoModalID,
- '$title' => t('Install new repo'),
- '$ok' => t('Install'),
- '$cancel' => t('Cancel')
- )
- );
-
- $reponames = $this->listAddonRepos();
- $addonrepos = [];
- foreach($reponames as $repo) {
- $addonrepos[] = array('name' => $repo, 'description' => '');
- // TODO: Parse repo info to provide more information about repos
- }
-
- $t = get_markup_template('admin_plugins.tpl');
- return replace_macros($t, array(
- '$title' => t('Administration'),
- '$page' => t('Plugins'),
- '$submit' => t('Submit'),
- '$baseurl' => z_root(),
- '$function' => 'plugins',
- '$plugins' => $plugins,
- '$disabled' => t('Disabled - version incompatibility'),
- '$form_security_token' => get_form_security_token('admin_plugins'),
- '$managerepos' => t('Manage Repos'),
- '$installedtitle' => t('Installed Plugin Repositories'),
- '$addnewrepotitle' => t('Install a New Plugin Repository'),
- '$expandform' => false,
- '$form' => $admin_plugins_add_repo_form,
- '$newRepoModal' => $newRepoModal,
- '$newRepoModalID' => $newRepoModalID,
- '$addonrepos' => $addonrepos,
- '$repoUpdateButton' => t('Update'),
- '$repoBranchButton' => t('Switch branch'),
- '$repoRemoveButton' => t('Remove')
- ));
- }
-
- function listAddonRepos() {
- $addonrepos = [];
- $addonDir = __DIR__ . '/../../extend/addon/';
- if(is_dir($addonDir)) {
- if ($handle = opendir($addonDir)) {
- while (false !== ($entry = readdir($handle))) {
- if ($entry != "." && $entry != "..") {
- $addonrepos[] = $entry;
- }
- }
- closedir($handle);
- }
- }
- return $addonrepos;
- }
-
- static public function plugin_sort($a,$b) {
- return(strcmp(strtolower($a[2]['name']),strtolower($b[2]['name'])));
- }
-
-
- /**
- * @param array $themes
- * @param string $th
- * @param int $result
- */
- function toggle_theme(&$themes, $th, &$result) {
- for($x = 0; $x < count($themes); $x ++) {
- if($themes[$x]['name'] === $th) {
- if($themes[$x]['allowed']) {
- $themes[$x]['allowed'] = 0;
- $result = 0;
- }
- else {
- $themes[$x]['allowed'] = 1;
- $result = 1;
- }
- }
- }
- }
-
- /**
- * @param array $themes
- * @param string $th
- * @return int
- */
- function theme_status($themes, $th) {
- for($x = 0; $x < count($themes); $x ++) {
- if($themes[$x]['name'] === $th) {
- if($themes[$x]['allowed']) {
- return 1;
- }
- else {
- return 0;
- }
- }
- }
- return 0;
- }
-
-
- /**
- * @param array $themes
- * @return string
- */
- function rebuild_theme_table($themes) {
- $o = '';
- if(count($themes)) {
- foreach($themes as $th) {
- if($th['allowed']) {
- if(strlen($o))
- $o .= ',';
- $o .= $th['name'];
- }
- }
- }
- return $o;
- }
-
-
- /**
- * @brief Themes admin page.
- *
- * @param App &$a
- * @return string
- */
- function admin_page_themes(&$a){
-
- $allowed_themes_str = get_config('system', 'allowed_themes');
- $allowed_themes_raw = explode(',', $allowed_themes_str);
- $allowed_themes = array();
- if(count($allowed_themes_raw))
- foreach($allowed_themes_raw as $x)
- if(strlen(trim($x)))
- $allowed_themes[] = trim($x);
-
- $themes = array();
- $files = glob('view/theme/*');
- if($files) {
- foreach($files as $file) {
- $f = basename($file);
- $is_experimental = intval(file_exists($file . '/.experimental'));
- $is_supported = 1-(intval(file_exists($file . '/.unsupported'))); // Is not used yet
- $is_allowed = intval(in_array($f,$allowed_themes));
- $themes[] = array('name' => $f, 'experimental' => $is_experimental, 'supported' => $is_supported, 'allowed' => $is_allowed);
- }
- }
-
- if(! count($themes)) {
- notice( t('No themes found.'));
- return '';
- }
-
- /*
- * Single theme
- */
-
- if (\App::$argc == 3){
- $theme = \App::$argv[2];
- if(! is_dir("view/theme/$theme")){
- notice( t("Item not found.") );
- return '';
- }
-
- if (x($_GET,"a") && $_GET['a']=="t"){
- check_form_security_token_redirectOnErr('/admin/themes', 'admin_themes', 't');
-
- // Toggle theme status
-
- $this->toggle_theme($themes, $theme, $result);
- $s = $this->rebuild_theme_table($themes);
- if($result)
- info( sprintf('Theme %s enabled.', $theme));
- else
- info( sprintf('Theme %s disabled.', $theme));
-
- set_config('system', 'allowed_themes', $s);
- goaway(z_root() . '/admin/themes' );
- }
-
- // display theme details
- require_once('library/markdown.php');
-
- if ($this->theme_status($themes,$theme)) {
- $status="on"; $action= t("Disable");
- } else {
- $status="off"; $action= t("Enable");
- }
-
- $readme=Null;
- if (is_file("view/theme/$theme/README.md")){
- $readme = file_get_contents("view/theme/$theme/README.md");
- $readme = Markdown($readme);
- } else if (is_file("view/theme/$theme/README")){
- $readme = "<pre>". file_get_contents("view/theme/$theme/README") ."</pre>";
- }
-
- $admin_form = '';
- if (is_file("view/theme/$theme/php/config.php")){
- require_once("view/theme/$theme/php/config.php");
- if(function_exists("theme_admin")){
- $admin_form = theme_admin($a);
- }
- }
-
- $screenshot = array( get_theme_screenshot($theme), t('Screenshot'));
- if(! stristr($screenshot[0],$theme))
- $screenshot = null;
-
- $t = get_markup_template('admin_plugins_details.tpl');
- return replace_macros($t, array(
- '$title' => t('Administration'),
- '$page' => t('Themes'),
- '$toggle' => t('Toggle'),
- '$settings' => t('Settings'),
- '$baseurl' => z_root(),
-
- '$plugin' => $theme,
- '$status' => $status,
- '$action' => $action,
- '$info' => get_theme_info($theme),
- '$function' => 'themes',
- '$admin_form' => $admin_form,
- '$str_author' => t('Author: '),
- '$str_maintainer' => t('Maintainer: '),
- '$screenshot' => $screenshot,
- '$readme' => $readme,
-
- '$form_security_token' => get_form_security_token('admin_themes'),
- ));
- }
-
- /*
- * List themes
- */
-
- $xthemes = array();
- if($themes) {
- foreach($themes as $th) {
- $xthemes[] = array($th['name'],(($th['allowed']) ? "on" : "off"), get_theme_info($th['name']));
- }
- }
-
- $t = get_markup_template('admin_plugins.tpl');
- return replace_macros($t, array(
- '$title' => t('Administration'),
- '$page' => t('Themes'),
- '$submit' => t('Submit'),
- '$baseurl' => z_root(),
- '$function' => 'themes',
- '$plugins' => $xthemes,
- '$experimental' => t('[Experimental]'),
- '$unsupported' => t('[Unsupported]'),
- '$form_security_token' => get_form_security_token('admin_themes'),
- ));
- }
-
-
- /**
- * @brief POST handler for logs admin page.
- *
- * @param App &$a
- */
- function admin_page_logs_post(&$a) {
- if (x($_POST, 'page_logs')) {
- check_form_security_token_redirectOnErr('/admin/logs', 'admin_logs');
-
- $logfile = ((x($_POST,'logfile')) ? notags(trim($_POST['logfile'])) : '');
- $debugging = ((x($_POST,'debugging')) ? true : false);
- $loglevel = ((x($_POST,'loglevel')) ? intval(trim($_POST['loglevel'])) : 0);
-
- set_config('system','logfile', $logfile);
- set_config('system','debugging', $debugging);
- set_config('system','loglevel', $loglevel);
- }
-
- info( t('Log settings updated.') );
- goaway(z_root() . '/admin/logs' );
- }
-
- /**
- * @brief Logs admin page.
- *
- * @param App $a
- * @return string
- */
- function admin_page_logs(&$a){
-
- $log_choices = Array(
- LOGGER_NORMAL => 'Normal',
- LOGGER_TRACE => 'Trace',
- LOGGER_DEBUG => 'Debug',
- LOGGER_DATA => 'Data',
- LOGGER_ALL => 'All'
- );
-
- $t = get_markup_template('admin_logs.tpl');
-
- $f = get_config('system', 'logfile');
-
- $data = '';
-
- if(!file_exists($f)) {
- $data = t("Error trying to open <strong>$f</strong> log file.\r\n<br/>Check to see if file $f exist and is
- readable.");
- }
- else {
- $fp = fopen($f, 'r');
- if(!$fp) {
- $data = t("Couldn't open <strong>$f</strong> log file.\r\n<br/>Check to see if file $f is readable.");
- }
- else {
- $fstat = fstat($fp);
- $size = $fstat['size'];
- if($size != 0)
- {
- if($size > 5000000 || $size < 0)
- $size = 5000000;
- $seek = fseek($fp,0-$size,SEEK_END);
- if($seek === 0) {
- $data = escape_tags(fread($fp,$size));
- while(! feof($fp))
- $data .= escape_tags(fread($fp,4096));
- }
- }
- fclose($fp);
- }
- }
-
- return replace_macros($t, array(
- '$title' => t('Administration'),
- '$page' => t('Logs'),
- '$submit' => t('Submit'),
- '$clear' => t('Clear'),
- '$data' => $data,
- '$baseurl' => z_root(),
- '$logname' => get_config('system','logfile'),
-
- // name, label, value, help string, extra data...
- '$debugging' => array('debugging', t("Debugging"),get_config('system','debugging'), ""),
- '$logfile' => array('logfile', t("Log file"), get_config('system','logfile'), t("Must be writable by web server. Relative to your top-level webserver directory.")),
- '$loglevel' => array('loglevel', t("Log level"), get_config('system','loglevel'), "", $log_choices),
-
- '$form_security_token' => get_form_security_token('admin_logs'),
- ));
- }
-
- function admin_page_plugins_post($action) {
- switch ($action) {
- case 'updaterepo':
- if (array_key_exists('repoName', $_REQUEST)) {
- $repoName = $_REQUEST['repoName'];
- } else {
- json_return_and_die(array('message' => 'No repo name provided.', 'success' => false));
- }
- $extendDir = __DIR__ . '/../../store/[data]/git/sys/extend';
- $addonDir = $extendDir . '/addon';
- if (!file_exists($extendDir)) {
- if (!mkdir($extendDir, 0770, true)) {
- logger('Error creating extend folder: ' . $extendDir);
- json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false));
- } else {
- if (!symlink(__DIR__ . '/../../extend/addon', $addonDir)) {
- logger('Error creating symlink to addon folder: ' . $addonDir);
- json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false));
- }
- }
- }
- $repoDir = __DIR__ . '/../../store/[data]/git/sys/extend/addon/' . $repoName;
- if (!is_dir($repoDir)) {
- logger('Repo directory does not exist: ' . $repoDir);
- json_return_and_die(array('message' => 'Invalid addon repo.', 'success' => false));
- }
- if (!is_writable($repoDir)) {
- logger('Repo directory not writable to web server: ' . $repoDir);
- json_return_and_die(array('message' => 'Repo directory not writable to web server.', 'success' => false));
- }
- $git = new GitRepo('sys', null, false, $repoName, $repoDir);
- try {
- if ($git->pull()) {
- $files = array_diff(scandir($repoDir), array('.', '..'));
- foreach ($files as $file) {
- if (is_dir($repoDir . '/' . $file) && $file !== '.git') {
- $source = '../extend/addon/' . $repoName . '/' . $file;
- $target = realpath(__DIR__ . '/../../addon/') . '/' . $file;
- unlink($target);
- if (!symlink($source, $target)) {
- logger('Error linking addons to /addon');
- json_return_and_die(array('message' => 'Error linking addons to /addon', 'success' => false));
- }
- }
- }
- json_return_and_die(array('message' => 'Repo updated.', 'success' => true));
- } else {
- json_return_and_die(array('message' => 'Error updating addon repo.', 'success' => false));
- }
- } catch (\PHPGit\Exception\GitException $e) {
- json_return_and_die(array('message' => 'Error updating addon repo.', 'success' => false));
- }
- case 'removerepo':
- if (array_key_exists('repoName', $_REQUEST)) {
- $repoName = $_REQUEST['repoName'];
- } else {
- json_return_and_die(array('message' => 'No repo name provided.', 'success' => false));
- }
- $extendDir = __DIR__ . '/../../store/[data]/git/sys/extend';
- $addonDir = $extendDir . '/addon';
- if (!file_exists($extendDir)) {
- if (!mkdir($extendDir, 0770, true)) {
- logger('Error creating extend folder: ' . $extendDir);
- json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false));
- } else {
- if (!symlink(__DIR__ . '/../../extend/addon', $addonDir)) {
- logger('Error creating symlink to addon folder: ' . $addonDir);
- json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false));
- }
- }
- }
- $repoDir = __DIR__ . '/../../store/[data]/git/sys/extend/addon/' . $repoName;
- if (!is_dir($repoDir)) {
- logger('Repo directory does not exist: ' . $repoDir);
- json_return_and_die(array('message' => 'Invalid addon repo.', 'success' => false));
- }
- if (!is_writable($repoDir)) {
- logger('Repo directory not writable to web server: ' . $repoDir);
- json_return_and_die(array('message' => 'Repo directory not writable to web server.', 'success' => false));
- }
- // TODO: remove directory and unlink /addon/files
- if (rrmdir($repoDir)) {
- json_return_and_die(array('message' => 'Repo deleted.', 'success' => true));
- } else {
- json_return_and_die(array('message' => 'Error deleting addon repo.', 'success' => false));
- }
- case 'installrepo':
- require_once('library/markdown.php');
- if (array_key_exists('repoURL', $_REQUEST)) {
- require __DIR__ . '/../../library/PHPGit.autoload.php'; // Load PHPGit dependencies
- $repoURL = $_REQUEST['repoURL'];
- $extendDir = __DIR__ . '/../../store/[data]/git/sys/extend';
- $addonDir = $extendDir . '/addon';
- if (!file_exists($extendDir)) {
- if (!mkdir($extendDir, 0770, true)) {
- logger('Error creating extend folder: ' . $extendDir);
- json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false));
- } else {
- if (!symlink(__DIR__ . '/../../extend/addon', $addonDir)) {
- logger('Error creating symlink to addon folder: ' . $addonDir);
- json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false));
- }
- }
- }
- if (!is_writable($extendDir)) {
- logger('Directory not writable to web server: ' . $extendDir);
- json_return_and_die(array('message' => 'Directory not writable to web server.', 'success' => false));
- }
- $repoName = null;
- if (array_key_exists('repoName', $_REQUEST) && $_REQUEST['repoName'] !== '') {
- $repoName = $_REQUEST['repoName'];
- } else {
- $repoName = GitRepo::getRepoNameFromURL($repoURL);
- }
- if (!$repoName) {
- logger('Invalid git repo');
- json_return_and_die(array('message' => 'Invalid git repo', 'success' => false));
- }
- $repoDir = $addonDir . '/' . $repoName;
- $tempRepoBaseDir = __DIR__ . '/../../store/[data]/git/sys/temp/';
- $tempAddonDir = $tempRepoBaseDir . $repoName;
-
- if (!is_writable($addonDir) || !is_writable($tempAddonDir)) {
- logger('Temp repo directory or /extend/addon not writable to web server: ' . $tempAddonDir);
- json_return_and_die(array('message' => 'Temp repo directory not writable to web server.', 'success' => false));
- }
- rename($tempAddonDir, $repoDir);
-
- if (!is_writable(realpath(__DIR__ . '/../../addon/'))) {
- logger('/addon directory not writable to web server: ' . $tempAddonDir);
- json_return_and_die(array('message' => '/addon directory not writable to web server.', 'success' => false));
- }
- $files = array_diff(scandir($repoDir), array('.', '..'));
- foreach ($files as $file) {
- if (is_dir($repoDir . '/' . $file) && $file !== '.git') {
- $source = '../extend/addon/' . $repoName . '/' . $file;
- $target = realpath(__DIR__ . '/../../addon/') . '/' . $file;
- unlink($target);
- if (!symlink($source, $target)) {
- logger('Error linking addons to /addon');
- json_return_and_die(array('message' => 'Error linking addons to /addon', 'success' => false));
- }
- }
- }
- $git = new GitRepo('sys', $repoURL, false, $repoName, $repoDir);
- $repo = $git->probeRepo();
- json_return_and_die(array('repo' => $repo, 'message' => '', 'success' => true));
- }
- case 'addrepo':
- require_once('library/markdown.php');
- if (array_key_exists('repoURL', $_REQUEST)) {
- require __DIR__ . '/../../library/PHPGit.autoload.php'; // Load PHPGit dependencies
- $repoURL = $_REQUEST['repoURL'];
- $extendDir = __DIR__ . '/../../store/[data]/git/sys/extend';
- $addonDir = $extendDir . '/addon';
- $tempAddonDir = __DIR__ . '/../../store/[data]/git/sys/temp';
- if (!file_exists($extendDir)) {
- if (!mkdir($extendDir, 0770, true)) {
- logger('Error creating extend folder: ' . $extendDir);
- json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false));
- } else {
- if (!symlink(__DIR__ . '/../../extend/addon', $addonDir)) {
- logger('Error creating symlink to addon folder: ' . $addonDir);
- json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false));
- }
- }
- }
- if (!is_dir($tempAddonDir)) {
- if (!mkdir($tempAddonDir, 0770, true)) {
- logger('Error creating temp plugin repo folder: ' . $tempAddonDir);
- json_return_and_die(array('message' => 'Error creating temp plugin repo folder: ' . $tempAddonDir, 'success' => false));
- }
- }
- $repoName = null;
- if (array_key_exists('repoName', $_REQUEST) && $_REQUEST['repoName'] !== '') {
- $repoName = $_REQUEST['repoName'];
- } else {
- $repoName = GitRepo::getRepoNameFromURL($repoURL);
- }
- if (!$repoName) {
- logger('Invalid git repo');
- json_return_and_die(array('message' => 'Invalid git repo: ' . $repoName, 'success' => false));
- }
- $repoDir = $tempAddonDir . '/' . $repoName;
- if (!is_writable($tempAddonDir)) {
- logger('Temporary directory for new addon repo is not writable to web server: ' . $tempAddonDir);
- json_return_and_die(array('message' => 'Temporary directory for new addon repo is not writable to web server.', 'success' => false));
- }
- // clone the repo if new automatically
- $git = new GitRepo('sys', $repoURL, true, $repoName, $repoDir);
-
- $remotes = $git->git->remote();
- $fetchURL = $remotes['origin']['fetch'];
- if ($fetchURL !== $git->url) {
- if (rrmdir($repoDir)) {
- $git = new GitRepo('sys', $repoURL, true, $repoName, $repoDir);
- } else {
- json_return_and_die(array('message' => 'Error deleting existing addon repo.', 'success' => false));
- }
- }
- $repo = $git->probeRepo();
- $repo['readme'] = $repo['manifest'] = null;
- foreach ($git->git->tree('master') as $object) {
- if ($object['type'] == 'blob' && (strtolower($object['file']) === 'readme.md' || strtolower($object['file']) === 'readme')) {
- $repo['readme'] = Markdown($git->git->cat->blob($object['hash']));
- } else if ($object['type'] == 'blob' && strtolower($object['file']) === 'manifest.json') {
- $repo['manifest'] = $git->git->cat->blob($object['hash']);
- }
- }
- json_return_and_die(array('repo' => $repo, 'message' => '', 'success' => true));
- } else {
- json_return_and_die(array('message' => 'No repo URL provided', 'success' => false));
- }
- break;
- default:
- break;
- }
- }
-
- function admin_page_profs_post(&$a) {
-
- if(array_key_exists('basic',$_REQUEST)) {
- $arr = explode(',',$_REQUEST['basic']);
- for($x = 0; $x < count($arr); $x ++)
- if(trim($arr[$x]))
- $arr[$x] = trim($arr[$x]);
- set_config('system','profile_fields_basic',$arr);
-
- if(array_key_exists('advanced',$_REQUEST)) {
- $arr = explode(',',$_REQUEST['advanced']);
- for($x = 0; $x < count($arr); $x ++)
- if(trim($arr[$x]))
- $arr[$x] = trim($arr[$x]);
- set_config('system','profile_fields_advanced',$arr);
- }
- goaway(z_root() . '/admin/profs');
- }
-
-
- if(array_key_exists('field_name',$_REQUEST)) {
- if($_REQUEST['id']) {
- $r = q("update profdef set field_name = '%s', field_type = '%s', field_desc = '%s' field_help = '%s', field_inputs = '%s' where id = %d",
- dbesc($_REQUEST['field_name']),
- dbesc($_REQUEST['field_type']),
- dbesc($_REQUEST['field_desc']),
- dbesc($_REQUEST['field_help']),
- dbesc($_REQUEST['field_inputs']),
- intval($_REQUEST['id'])
- );
- }
- else {
- $r = q("insert into profdef ( field_name, field_type, field_desc, field_help, field_inputs ) values ( '%s' , '%s', '%s', '%s', '%s' )",
- dbesc($_REQUEST['field_name']),
- dbesc($_REQUEST['field_type']),
- dbesc($_REQUEST['field_desc']),
- dbesc($_REQUEST['field_help']),
- dbesc($_REQUEST['field_inputs'])
- );
- }
- }
-
-
- // add to chosen array basic or advanced
-
- goaway(z_root() . '/admin/profs');
- }
-
- function admin_page_profs(&$a) {
-
- if((argc() > 3) && argv(2) == 'drop' && intval(argv(3))) {
- $r = q("delete from profdef where id = %d",
- intval(argv(3))
- );
- // remove from allowed fields
-
- goaway(z_root() . '/admin/profs');
- }
-
- if((argc() > 2) && argv(2) === 'new') {
- return replace_macros(get_markup_template('profdef_edit.tpl'),array(
- '$header' => t('New Profile Field'),
- '$field_name' => array('field_name',t('Field nickname'),$_REQUEST['field_name'],t('System name of field')),
- '$field_type' => array('field_type',t('Input type'),(($_REQUEST['field_type']) ? $_REQUEST['field_type'] : 'text'),''),
- '$field_desc' => array('field_desc',t('Field Name'),$_REQUEST['field_desc'],t('Label on profile pages')),
- '$field_help' => array('field_help',t('Help text'),$_REQUEST['field_help'],t('Additional info (optional)')),
- '$submit' => t('Save')
- ));
- }
-
- if((argc() > 2) && intval(argv(2))) {
- $r = q("select * from profdef where id = %d limit 1",
- intval(argv(2))
- );
- if(! $r) {
- notice( t('Field definition not found') . EOL);
- goaway(z_root() . '/admin/profs');
- }
-
- return replace_macros(get_markup_template('profdef_edit.tpl'),array(
- '$id' => intval($r[0]['id']),
- '$header' => t('Edit Profile Field'),
- '$field_name' => array('field_name',t('Field nickname'),$r[0]['field_name'],t('System name of field')),
- '$field_type' => array('field_type',t('Input type'),$r[0]['field_type'],''),
- '$field_desc' => array('field_desc',t('Field Name'),$r[0]['field_desc'],t('Label on profile pages')),
- '$field_help' => array('field_help',t('Help text'),$r[0]['field_help'],t('Additional info (optional)')),
- '$submit' => t('Save')
- ));
- }
-
- $basic = '';
- $barr = array();
- $fields = get_profile_fields_basic();
- if(! $fields)
- $fields = get_profile_fields_basic(1);
- if($fields) {
- foreach($fields as $k => $v) {
- if($basic)
- $basic .= ', ';
- $basic .= trim($k);
- $barr[] = trim($k);
- }
- }
-
- $advanced = '';
- $fields = get_profile_fields_advanced();
- if(! $fields)
- $fields = get_profile_fields_advanced(1);
- if($fields) {
- foreach($fields as $k => $v) {
- if(in_array(trim($k),$barr))
- continue;
- if($advanced)
- $advanced .= ', ';
- $advanced .= trim($k);
- }
- }
-
- $all = '';
- $fields = get_profile_fields_advanced(1);
- if($fields) {
- foreach($fields as $k => $v) {
- if($all)
- $all .= ', ';
- $all .= trim($k);
- }
- }
-
- $r = q("select * from profdef where true");
- if($r) {
- foreach($r as $rr) {
- if($all)
- $all .= ', ';
- $all .= $rr['field_name'];
- }
- }
-
-
- $o = replace_macros(get_markup_template('admin_profiles.tpl'),array(
- '$title' => t('Profile Fields'),
- '$basic' => array('basic',t('Basic Profile Fields'),$basic,''),
- '$advanced' => array('advanced',t('Advanced Profile Fields'),$advanced,t('(In addition to basic fields)')),
- '$all' => $all,
- '$all_desc' => t('All available fields'),
- '$cust_field_desc' => t('Custom Fields'),
- '$cust_fields' => $r,
- '$edit' => t('Edit'),
- '$drop' => t('Delete'),
- '$new' => t('Create Custom Field'),
- '$submit' => t('Submit')
- ));
-
- return $o;
-
-
- }
}
diff --git a/Zotlabs/Module/Admin/Accounts.php b/Zotlabs/Module/Admin/Accounts.php
new file mode 100644
index 000000000..143d00a3b
--- /dev/null
+++ b/Zotlabs/Module/Admin/Accounts.php
@@ -0,0 +1,206 @@
+<?php
+
+namespace Zotlabs\Module\Admin;
+
+
+
+class Accounts {
+
+ /**
+ * @brief Handle POST actions on accounts admin page.
+ *
+ * This function is called when on the admin user/account page the form was
+ * submitted to handle multiple operations at once. If one of the icons next
+ * to an entry are pressed the function admin_page_accounts() will handle this.
+ *
+ */
+
+ function post() {
+ $pending = ( x($_POST, 'pending') ? $_POST['pending'] : array() );
+ $users = ( x($_POST, 'user') ? $_POST['user'] : array() );
+ $blocked = ( x($_POST, 'blocked') ? $_POST['blocked'] : array() );
+
+ check_form_security_token_redirectOnErr('/admin/accounts', 'admin_accounts');
+
+ // change to switch structure?
+ // account block/unblock button was submitted
+ if (x($_POST, 'page_users_block')) {
+ for ($i = 0; $i < count($users); $i++) {
+ // if account is blocked remove blocked bit-flag, otherwise add blocked bit-flag
+ $op = ($blocked[$i]) ? '& ~' : '| ';
+ q("UPDATE account SET account_flags = (account_flags $op%d) WHERE account_id = %d",
+ intval(ACCOUNT_BLOCKED),
+ intval($users[$i])
+ );
+ }
+ notice( sprintf( tt("%s account blocked/unblocked", "%s account blocked/unblocked", count($users)), count($users)) );
+ }
+ // account delete button was submitted
+ if (x($_POST, 'page_accounts_delete')) {
+ foreach ($users as $uid){
+ account_remove($uid, true, false);
+ }
+ notice( sprintf( tt("%s account deleted", "%s accounts deleted", count($users)), count($users)) );
+ }
+ // registration approved button was submitted
+ if (x($_POST, 'page_users_approve')) {
+ foreach ($pending as $hash) {
+ account_allow($hash);
+ }
+ }
+ // registration deny button was submitted
+ if (x($_POST, 'page_users_deny')) {
+ foreach ($pending as $hash) {
+ account_deny($hash);
+ }
+ }
+
+ goaway(z_root() . '/admin/accounts' );
+ }
+
+ /**
+ * @brief Generate accounts admin page and handle single item operations.
+ *
+ * This function generates the accounts/account admin page and handles the actions
+ * if an icon next to an entry was clicked. If several items were selected and
+ * the form was submitted it is handled by the function admin_page_accounts_post().
+ *
+ * @return string
+ */
+
+ function get(){
+ if (argc() > 2) {
+ $uid = argv(3);
+ $account = q("SELECT * FROM account WHERE account_id = %d",
+ intval($uid)
+ );
+
+ if (! $account) {
+ notice( t('Account not found') . EOL);
+ goaway(z_root() . '/admin/accounts' );
+ }
+
+ check_form_security_token_redirectOnErr('/admin/accounts', 'admin_accounts', 't');
+
+ switch (argv(2)){
+ case 'delete':
+ // delete user
+ account_remove($uid,true,false);
+
+ notice( sprintf(t("Account '%s' deleted"), $account[0]['account_email']) . EOL);
+ break;
+ case 'block':
+ q("UPDATE account SET account_flags = ( account_flags | %d ) WHERE account_id = %d",
+ intval(ACCOUNT_BLOCKED),
+ intval($uid)
+ );
+
+ notice( sprintf( t("Account '%s' blocked") , $account[0]['account_email']) . EOL);
+ break;
+ case 'unblock':
+ q("UPDATE account SET account_flags = ( account_flags & ~%d ) WHERE account_id = %d",
+ intval(ACCOUNT_BLOCKED),
+ intval($uid)
+ );
+
+ notice( sprintf( t("Account '%s' unblocked"), $account[0]['account_email']) . EOL);
+ break;
+ }
+
+ goaway(z_root() . '/admin/accounts' );
+ }
+
+ /* get pending */
+ $pending = q("SELECT account.*, register.hash from account left join register on account_id = register.uid where (account_flags & %d )>0 ",
+ intval(ACCOUNT_PENDING)
+ );
+
+ /* get accounts */
+
+ $total = q("SELECT count(*) as total FROM account");
+ if (count($total)) {
+ \App::set_pager_total($total[0]['total']);
+ \App::set_pager_itemspage(100);
+ }
+
+ $serviceclass = (($_REQUEST['class']) ? " and account_service_class = '" . dbesc($_REQUEST['class']) . "' " : '');
+
+ $key = (($_REQUEST['key']) ? dbesc($_REQUEST['key']) : 'account_id');
+ $dir = 'asc';
+ if(array_key_exists('dir',$_REQUEST))
+ $dir = ((intval($_REQUEST['dir'])) ? 'asc' : 'desc');
+
+ $base = z_root() . '/admin/accounts?f=';
+ $odir = (($dir === 'asc') ? '0' : '1');
+
+ $users = q("SELECT `account_id` , `account_email`, `account_lastlog`, `account_created`, `account_expires`, " . "`account_service_class`, ( account_flags & %d ) > 0 as `blocked`, " .
+ "(SELECT %s FROM channel as ch " .
+ "WHERE ch.channel_account_id = ac.account_id and ch.channel_removed = 0 ) as `channels` " .
+ "FROM account as ac where true $serviceclass order by $key $dir limit %d offset %d ",
+ intval(ACCOUNT_BLOCKED),
+ db_concat('ch.channel_address', ' '),
+ intval(\App::$pager['itemspage']),
+ intval(\App::$pager['start'])
+ );
+
+ // function _setup_users($e){
+ // $accounts = Array(
+ // t('Normal Account'),
+ // t('Soapbox Account'),
+ // t('Community/Celebrity Account'),
+ // t('Automatic Friend Account')
+ // );
+
+ // $e['page_flags'] = $accounts[$e['page-flags']];
+ // $e['register_date'] = relative_date($e['register_date']);
+ // $e['login_date'] = relative_date($e['login_date']);
+ // $e['lastitem_date'] = relative_date($e['lastitem_date']);
+ // return $e;
+ // }
+ // $users = array_map("_setup_users", $users);
+
+ $t = get_markup_template('admin_accounts.tpl');
+ $o = replace_macros($t, array(
+ // strings //
+ '$title' => t('Administration'),
+ '$page' => t('Accounts'),
+ '$submit' => t('Submit'),
+ '$select_all' => t('select all'),
+ '$h_pending' => t('Registrations waiting for confirm'),
+ '$th_pending' => array( t('Request date'), t('Email') ),
+ '$no_pending' => t('No registrations.'),
+ '$approve' => t('Approve'),
+ '$deny' => t('Deny'),
+ '$delete' => t('Delete'),
+ '$block' => t('Block'),
+ '$unblock' => t('Unblock'),
+ '$odir' => $odir,
+ '$base' => $base,
+ '$h_users' => t('Accounts'),
+ '$th_users' => array(
+ [ t('ID'), 'account_id' ],
+ [ t('Email'), 'account_email' ],
+ [ t('All Channels'), 'channels' ],
+ [ t('Register date'), 'account_created' ],
+ [ t('Last login'), 'account_lastlog' ],
+ [ t('Expires'), 'account_expires' ],
+ [ t('Service Class'), 'account_service_class'] ),
+
+ '$confirm_delete_multi' => t('Selected accounts will be deleted!\n\nEverything these accounts had posted on this site will be permanently deleted!\n\nAre you sure?'),
+ '$confirm_delete' => t('The account {0} will be deleted!\n\nEverything this account has posted on this site will be permanently deleted!\n\nAre you sure?'),
+
+ '$form_security_token' => get_form_security_token("admin_accounts"),
+
+ // values //
+ '$baseurl' => z_root(),
+
+ '$pending' => $pending,
+ '$users' => $users,
+ ));
+ $o .= paginate($a);
+
+ return $o;
+ }
+
+
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Admin/Channels.php b/Zotlabs/Module/Admin/Channels.php
new file mode 100644
index 000000000..b9b345105
--- /dev/null
+++ b/Zotlabs/Module/Admin/Channels.php
@@ -0,0 +1,186 @@
+<?php
+
+namespace Zotlabs\Module\Admin;
+
+
+class Channels {
+
+
+ /**
+ * @brief Channels admin page.
+ *
+ * @param App &$a
+ */
+ function post() {
+
+ $channels = ( x($_POST, 'channel') ? $_POST['channel'] : Array() );
+
+ check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels');
+
+ $xor = db_getfunc('^');
+
+ if (x($_POST,'page_channels_block')){
+ foreach($channels as $uid){
+ q("UPDATE channel SET channel_pageflags = ( channel_pageflags $xor %d ) where channel_id = %d",
+ intval(PAGE_CENSORED),
+ intval( $uid )
+ );
+ \Zotlabs\Daemon\Master::Summon(array('Directory',$uid,'nopush'));
+ }
+ notice( sprintf( tt("%s channel censored/uncensored", "%s channels censored/uncensored", count($channels)), count($channels)) );
+ }
+ if (x($_POST,'page_channels_code')){
+ foreach($channels as $uid){
+ q("UPDATE channel SET channel_pageflags = ( channel_pageflags $xor %d ) where channel_id = %d",
+ intval(PAGE_ALLOWCODE),
+ intval( $uid )
+ );
+ }
+ notice( sprintf( tt("%s channel code allowed/disallowed", "%s channels code allowed/disallowed", count($channels)), count($channels)) );
+ }
+ if (x($_POST,'page_channels_delete')){
+ foreach($channels as $uid){
+ channel_remove($uid,true);
+ }
+ notice( sprintf( tt("%s channel deleted", "%s channels deleted", count($channels)), count($channels)) );
+ }
+
+ goaway(z_root() . '/admin/channels' );
+ }
+
+
+ /**
+ * @brief
+ *
+ * @return string
+ */
+
+ function get() {
+ if(argc() > 2) {
+ $uid = argv(3);
+ $channel = q("SELECT * FROM channel WHERE channel_id = %d",
+ intval($uid)
+ );
+
+ if(! $channel) {
+ notice( t('Channel not found') . EOL);
+ goaway(z_root() . '/admin/channels' );
+ }
+
+ switch(argv(2)) {
+ case "delete":{
+ check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels', 't');
+ // delete channel
+ channel_remove($uid,true);
+
+ notice( sprintf(t("Channel '%s' deleted"), $channel[0]['channel_name']) . EOL);
+ }; break;
+
+ case "block":{
+ check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels', 't');
+ $pflags = $channel[0]['channel_pageflags'] ^ PAGE_CENSORED;
+ q("UPDATE channel SET channel_pageflags = %d where channel_id = %d",
+ intval($pflags),
+ intval( $uid )
+ );
+ \Zotlabs\Daemon\Master::Summon(array('Directory',$uid,'nopush'));
+
+ notice( sprintf( (($pflags & PAGE_CENSORED) ? t("Channel '%s' censored"): t("Channel '%s' uncensored")) , $channel[0]['channel_name'] . ' (' . $channel[0]['channel_address'] . ')' ) . EOL);
+ }; break;
+
+ case "code":{
+ check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels', 't');
+ $pflags = $channel[0]['channel_pageflags'] ^ PAGE_ALLOWCODE;
+ q("UPDATE channel SET channel_pageflags = %d where channel_id = %d",
+ intval($pflags),
+ intval( $uid )
+ );
+
+ notice( sprintf( (($pflags & PAGE_ALLOWCODE) ? t("Channel '%s' code allowed"): t("Channel '%s' code disallowed")) , $channel[0]['channel_name'] . ' (' . $channel[0]['channel_address'] . ')' ) . EOL);
+ }; break;
+
+ default:
+ break;
+ }
+ goaway(z_root() . '/admin/channels' );
+ }
+
+
+ $key = (($_REQUEST['key']) ? dbesc($_REQUEST['key']) : 'channel_id');
+ $dir = 'asc';
+ if(array_key_exists('dir',$_REQUEST))
+ $dir = ((intval($_REQUEST['dir'])) ? 'asc' : 'desc');
+
+ $base = z_root() . '/admin/channels?f=';
+ $odir = (($dir === 'asc') ? '0' : '1');
+
+
+
+ /* get channels */
+
+ $total = q("SELECT count(*) as total FROM channel where channel_removed = 0 and channel_system = 0");
+ if($total) {
+ \App::set_pager_total($total[0]['total']);
+ \App::set_pager_itemspage(100);
+ }
+
+ $channels = q("SELECT * from channel where channel_removed = 0 and channel_system = 0 order by $key $dir limit %d offset %d ",
+ intval(\App::$pager['itemspage']),
+ intval(\App::$pager['start'])
+ );
+
+ if($channels) {
+ for($x = 0; $x < count($channels); $x ++) {
+ if($channels[$x]['channel_pageflags'] & PAGE_CENSORED)
+ $channels[$x]['blocked'] = true;
+ else
+ $channels[$x]['blocked'] = false;
+
+ if($channels[$x]['channel_pageflags'] & PAGE_ALLOWCODE)
+ $channels[$x]['allowcode'] = true;
+ else
+ $channels[$x]['allowcode'] = false;
+ }
+ }
+
+ $t = get_markup_template("admin_channels.tpl");
+ $o = replace_macros($t, array(
+ // strings //
+ '$title' => t('Administration'),
+ '$page' => t('Channels'),
+ '$submit' => t('Submit'),
+ '$select_all' => t('select all'),
+ '$delete' => t('Delete'),
+ '$block' => t('Censor'),
+ '$unblock' => t('Uncensor'),
+ '$code' => t('Allow Code'),
+ '$uncode' => t('Disallow Code'),
+ '$h_channels' => t('Channel'),
+ '$base' => $base,
+ '$odir' => $odir,
+ '$th_channels' => array(
+ [ t('UID'), 'channel_id' ],
+ [ t('Name'), 'channel_name' ],
+ [ t('Address'), 'channel_address' ]),
+
+ '$confirm_delete_multi' => t('Selected channels will be deleted!\n\nEverything that was posted in these channels on this site will be permanently deleted!\n\nAre you sure?'),
+ '$confirm_delete' => t('The channel {0} will be deleted!\n\nEverything that was posted in this channel on this site will be permanently deleted!\n\nAre you sure?'),
+
+ '$form_security_token' => get_form_security_token("admin_channels"),
+
+ // values //
+ '$baseurl' => z_root(),
+ '$channels' => $channels,
+ ));
+ $o .= paginate($a);
+
+ return $o;
+ }
+
+
+
+
+
+
+
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Admin/Dbsync.php b/Zotlabs/Module/Admin/Dbsync.php
new file mode 100644
index 000000000..305126c7d
--- /dev/null
+++ b/Zotlabs/Module/Admin/Dbsync.php
@@ -0,0 +1,68 @@
+<?php
+
+namespace Zotlabs\Module\Admin;
+
+
+
+class Dbsync {
+
+
+
+
+ function get() {
+ $o = '';
+
+ if(argc() > 3 && intval(argv(3)) && argv(2) === 'mark') {
+ set_config('database', 'update_r' . intval(argv(3)), 'success');
+ if(intval(get_config('system','db_version')) <= intval(argv(3)))
+ set_config('system','db_version',intval(argv(3)) + 1);
+ info( t('Update has been marked successful') . EOL);
+ goaway(z_root() . '/admin/dbsync');
+ }
+
+ if(argc() > 2 && intval(argv(2))) {
+ require_once('install/update.php');
+ $func = 'update_r' . intval(argv(2));
+ if(function_exists($func)) {
+ $retval = $func();
+ if($retval === UPDATE_FAILED) {
+ $o .= sprintf( t('Executing %s failed. Check system logs.'), $func);
+ }
+ elseif($retval === UPDATE_SUCCESS) {
+ $o .= sprintf( t('Update %s was successfully applied.'), $func);
+ set_config('database',$func, 'success');
+ }
+ else
+ $o .= sprintf( t('Update %s did not return a status. Unknown if it succeeded.'), $func);
+ }
+ else
+ $o .= sprintf( t('Update function %s could not be found.'), $func);
+
+ return $o;
+ }
+
+ $failed = array();
+ $r = q("select * from config where `cat` = 'database' ");
+ if(count($r)) {
+ foreach($r as $rr) {
+ $upd = intval(substr($rr['k'],8));
+ if($rr['v'] === 'success')
+ continue;
+ $failed[] = $upd;
+ }
+ }
+ if(! count($failed))
+ return '<div class="generic-content-wrapper-styled"><h3>' . t('No failed updates.') . '</h3></div>';
+
+ $o = replace_macros(get_markup_template('failed_updates.tpl'),array(
+ '$base' => z_root(),
+ '$banner' => t('Failed Updates'),
+ '$desc' => '',
+ '$mark' => t('Mark success (if update was manually applied)'),
+ '$apply' => t('Attempt to execute this update step automatically'),
+ '$failed' => $failed
+ ));
+
+ return $o;
+ }
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Admin/Features.php b/Zotlabs/Module/Admin/Features.php
new file mode 100644
index 000000000..504caae79
--- /dev/null
+++ b/Zotlabs/Module/Admin/Features.php
@@ -0,0 +1,74 @@
+<?php
+
+namespace Zotlabs\Module\Admin;
+
+
+
+class Features {
+
+
+ function post() {
+
+ check_form_security_token_redirectOnErr('/admin/features', 'admin_manage_features');
+
+ logger('postvars: ' . print_r($_POST,true));
+
+ $arr = array();
+ $features = get_features(false);
+
+ foreach($features as $fname => $fdata) {
+ foreach(array_slice($fdata,1) as $f) {
+ $feature = $f[0];
+
+ if(array_key_exists('feature_' . $feature,$_POST))
+ $val = intval($_POST['feature_' . $feature]);
+ else
+ $val = 0;
+ set_config('feature',$feature,$val);
+
+ if(array_key_exists('featurelock_' . $feature,$_POST))
+ set_config('feature_lock',$feature,$val);
+ else
+ del_config('feature_lock',$feature);
+ }
+ }
+
+ goaway(z_root() . '/admin/features' );
+
+ }
+
+ function get() {
+
+ if((argc() > 1) && (argv(1) === 'features')) {
+ $arr = array();
+ $features = get_features(false);
+
+ foreach($features as $fname => $fdata) {
+ $arr[$fname] = array();
+ $arr[$fname][0] = $fdata[0];
+ foreach(array_slice($fdata,1) as $f) {
+
+ $set = get_config('feature',$f[0]);
+ if($set === false)
+ $set = $f[3];
+ $arr[$fname][1][] = array(
+ array('feature_' .$f[0],$f[1],$set,$f[2],array(t('Off'),t('On'))),
+ array('featurelock_' .$f[0],sprintf( t('Lock feature %s'),$f[1]),(($f[4] !== false) ? 1 : 0),'',array(t('Off'),t('On')))
+ );
+ }
+ }
+
+ $tpl = get_markup_template("admin_settings_features.tpl");
+ $o .= replace_macros($tpl, array(
+ '$form_security_token' => get_form_security_token("admin_manage_features"),
+ '$title' => t('Manage Additional Features'),
+ '$features' => $arr,
+ '$submit' => t('Submit'),
+ ));
+
+ return $o;
+ }
+ }
+
+
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Admin/Logs.php b/Zotlabs/Module/Admin/Logs.php
new file mode 100644
index 000000000..c83fc6a9a
--- /dev/null
+++ b/Zotlabs/Module/Admin/Logs.php
@@ -0,0 +1,101 @@
+<?php
+
+namespace Zotlabs\Module\Admin;
+
+
+class Logs {
+
+
+
+ /**
+ * @brief POST handler for logs admin page.
+ *
+ */
+
+ function post() {
+ if (x($_POST, 'page_logs')) {
+ check_form_security_token_redirectOnErr('/admin/logs', 'admin_logs');
+
+ $logfile = ((x($_POST,'logfile')) ? notags(trim($_POST['logfile'])) : '');
+ $debugging = ((x($_POST,'debugging')) ? true : false);
+ $loglevel = ((x($_POST,'loglevel')) ? intval(trim($_POST['loglevel'])) : 0);
+
+ set_config('system','logfile', $logfile);
+ set_config('system','debugging', $debugging);
+ set_config('system','loglevel', $loglevel);
+ }
+
+ info( t('Log settings updated.') );
+ goaway(z_root() . '/admin/logs' );
+ }
+
+ /**
+ * @brief Logs admin page.
+ *
+ * @return string
+ */
+
+ function get() {
+
+ $log_choices = Array(
+ LOGGER_NORMAL => 'Normal',
+ LOGGER_TRACE => 'Trace',
+ LOGGER_DEBUG => 'Debug',
+ LOGGER_DATA => 'Data',
+ LOGGER_ALL => 'All'
+ );
+
+ $t = get_markup_template('admin_logs.tpl');
+
+ $f = get_config('system', 'logfile');
+
+ $data = '';
+
+ if(!file_exists($f)) {
+ $data = t("Error trying to open <strong>$f</strong> log file.\r\n<br/>Check to see if file $f exist and is
+ readable.");
+ }
+ else {
+ $fp = fopen($f, 'r');
+ if(!$fp) {
+ $data = t("Couldn't open <strong>$f</strong> log file.\r\n<br/>Check to see if file $f is readable.");
+ }
+ else {
+ $fstat = fstat($fp);
+ $size = $fstat['size'];
+ if($size != 0)
+ {
+ if($size > 5000000 || $size < 0)
+ $size = 5000000;
+ $seek = fseek($fp,0-$size,SEEK_END);
+ if($seek === 0) {
+ $data = escape_tags(fread($fp,$size));
+ while(! feof($fp))
+ $data .= escape_tags(fread($fp,4096));
+ }
+ }
+ fclose($fp);
+ }
+ }
+
+ return replace_macros($t, array(
+ '$title' => t('Administration'),
+ '$page' => t('Logs'),
+ '$submit' => t('Submit'),
+ '$clear' => t('Clear'),
+ '$data' => $data,
+ '$baseurl' => z_root(),
+ '$logname' => get_config('system','logfile'),
+
+ // name, label, value, help string, extra data...
+ '$debugging' => array('debugging', t("Debugging"),get_config('system','debugging'), ""),
+ '$logfile' => array('logfile', t("Log file"), get_config('system','logfile'), t("Must be writable by web server. Relative to your top-level webserver directory.")),
+ '$loglevel' => array('loglevel', t("Log level"), get_config('system','loglevel'), "", $log_choices),
+
+ '$form_security_token' => get_form_security_token('admin_logs'),
+ ));
+ }
+
+
+
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Admin/Plugins.php b/Zotlabs/Module/Admin/Plugins.php
new file mode 100644
index 000000000..9e48b4b86
--- /dev/null
+++ b/Zotlabs/Module/Admin/Plugins.php
@@ -0,0 +1,470 @@
+<?php
+
+namespace Zotlabs\Module\Admin;
+
+use \Zotlabs\Storage\GitRepo as GitRepo;
+
+class Plugins {
+
+
+ function post() {
+
+ if(argc() > 2 && is_file("addon/" . argv(2) . "/" . argv(2) . ".php")) {
+ @include_once("addon/" . argv(2) . "/" . argv(2) . ".php");
+ if(function_exists(argv(2).'_plugin_admin_post')) {
+ $func = argv(2) . '_plugin_admin_post';
+ $func($a);
+ }
+
+ goaway(z_root() . '/admin/plugins/' . argv(2) );
+
+ }
+ elseif(argc() > 2) {
+ switch(argv(2)) {
+ case 'updaterepo':
+ if (array_key_exists('repoName', $_REQUEST)) {
+ $repoName = $_REQUEST['repoName'];
+ }
+ else {
+ json_return_and_die(array('message' => 'No repo name provided.', 'success' => false));
+ }
+ $extendDir = 'store/[data]/git/sys/extend';
+ $addonDir = $extendDir . '/addon';
+ if (!file_exists($extendDir)) {
+ if (!mkdir($extendDir, 0770, true)) {
+ logger('Error creating extend folder: ' . $extendDir);
+ json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false));
+ }
+ else {
+ if (!symlink('extend/addon', $addonDir)) {
+ logger('Error creating symlink to addon folder: ' . $addonDir);
+ json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false));
+ }
+ }
+ }
+ $repoDir = 'store/[data]/git/sys/extend/addon/' . $repoName;
+ if (!is_dir($repoDir)) {
+ logger('Repo directory does not exist: ' . $repoDir);
+ json_return_and_die(array('message' => 'Invalid addon repo.', 'success' => false));
+ }
+ if (!is_writable($repoDir)) {
+ logger('Repo directory not writable to web server: ' . $repoDir);
+ json_return_and_die(array('message' => 'Repo directory not writable to web server.', 'success' => false));
+ }
+ $git = new GitRepo('sys', null, false, $repoName, $repoDir);
+ try {
+ if ($git->pull()) {
+ $files = array_diff(scandir($repoDir), array('.', '..'));
+ foreach ($files as $file) {
+ if (is_dir($repoDir . '/' . $file) && $file !== '.git') {
+ $source = 'extend/addon/' . $repoName . '/' . $file;
+ $target = realpath('addon/') . '/' . $file;
+ unlink($target);
+ if (!symlink($source, $target)) {
+ logger('Error linking addons to /addon');
+ json_return_and_die(array('message' => 'Error linking addons to /addon', 'success' => false));
+ }
+ }
+ }
+ json_return_and_die(array('message' => 'Repo updated.', 'success' => true));
+ } else {
+ json_return_and_die(array('message' => 'Error updating addon repo.', 'success' => false));
+ }
+ } catch (\PHPGit\Exception\GitException $e) {
+ json_return_and_die(array('message' => 'Error updating addon repo.', 'success' => false));
+ }
+ case 'removerepo':
+ if (array_key_exists('repoName', $_REQUEST)) {
+ $repoName = $_REQUEST['repoName'];
+ } else {
+ json_return_and_die(array('message' => 'No repo name provided.', 'success' => false));
+ }
+ $extendDir = 'store/[data]/git/sys/extend';
+ $addonDir = $extendDir . '/addon';
+ if (!file_exists($extendDir)) {
+ if (!mkdir($extendDir, 0770, true)) {
+ logger('Error creating extend folder: ' . $extendDir);
+ json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false));
+ } else {
+ if (!symlink('extend/addon', $addonDir)) {
+ logger('Error creating symlink to addon folder: ' . $addonDir);
+ json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false));
+ }
+ }
+ }
+ $repoDir = 'store/[data]/git/sys/extend/addon/' . $repoName;
+ if (!is_dir($repoDir)) {
+ logger('Repo directory does not exist: ' . $repoDir);
+ json_return_and_die(array('message' => 'Invalid addon repo.', 'success' => false));
+ }
+ if (!is_writable($repoDir)) {
+ logger('Repo directory not writable to web server: ' . $repoDir);
+ json_return_and_die(array('message' => 'Repo directory not writable to web server.', 'success' => false));
+ }
+ // TODO: remove directory and unlink /addon/files
+ if (rrmdir($repoDir)) {
+ json_return_and_die(array('message' => 'Repo deleted.', 'success' => true));
+ } else {
+ json_return_and_die(array('message' => 'Error deleting addon repo.', 'success' => false));
+ }
+ case 'installrepo':
+ require_once('library/markdown.php');
+ if (array_key_exists('repoURL', $_REQUEST)) {
+ require_once('library/PHPGit.autoload.php'); // Load PHPGit dependencies
+ $repoURL = $_REQUEST['repoURL'];
+ $extendDir = 'store/[data]/git/sys/extend';
+ $addonDir = $extendDir . '/addon';
+ if (!file_exists($extendDir)) {
+ if (!mkdir($extendDir, 0770, true)) {
+ logger('Error creating extend folder: ' . $extendDir);
+ json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false));
+ } else {
+ if (!symlink('extend/addon', $addonDir)) {
+ logger('Error creating symlink to addon folder: ' . $addonDir);
+ json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false));
+ }
+ }
+ }
+ if (!is_writable($extendDir)) {
+ logger('Directory not writable to web server: ' . $extendDir);
+ json_return_and_die(array('message' => 'Directory not writable to web server.', 'success' => false));
+ }
+ $repoName = null;
+ if (array_key_exists('repoName', $_REQUEST) && $_REQUEST['repoName'] !== '') {
+ $repoName = $_REQUEST['repoName'];
+ } else {
+ $repoName = GitRepo::getRepoNameFromURL($repoURL);
+ }
+ if (!$repoName) {
+ logger('Invalid git repo');
+ json_return_and_die(array('message' => 'Invalid git repo', 'success' => false));
+ }
+ $repoDir = $addonDir . '/' . $repoName;
+ $tempRepoBaseDir = 'store/[data]/git/sys/temp/';
+ $tempAddonDir = $tempRepoBaseDir . $repoName;
+
+ if (!is_writable($addonDir) || !is_writable($tempAddonDir)) {
+ logger('Temp repo directory or /extend/addon not writable to web server: ' . $tempAddonDir);
+ json_return_and_die(array('message' => 'Temp repo directory not writable to web server.', 'success' => false));
+ }
+ rename($tempAddonDir, $repoDir);
+
+ if (!is_writable(realpath('addon/'))) {
+ logger('/addon directory not writable to web server: ' . $tempAddonDir);
+ json_return_and_die(array('message' => '/addon directory not writable to web server.', 'success' => false));
+ }
+ $files = array_diff(scandir($repoDir), array('.', '..'));
+ foreach ($files as $file) {
+ if (is_dir($repoDir . '/' . $file) && $file !== '.git') {
+ $source = 'extend/addon/' . $repoName . '/' . $file;
+ $target = realpath('addon/') . '/' . $file;
+ unlink($target);
+ if (!symlink($source, $target)) {
+ logger('Error linking addons to /addon');
+ json_return_and_die(array('message' => 'Error linking addons to /addon', 'success' => false));
+ }
+ }
+ }
+ $git = new GitRepo('sys', $repoURL, false, $repoName, $repoDir);
+ $repo = $git->probeRepo();
+ json_return_and_die(array('repo' => $repo, 'message' => '', 'success' => true));
+ }
+ case 'addrepo':
+ require_once('library/markdown.php');
+ if (array_key_exists('repoURL', $_REQUEST)) {
+ require_once('library/PHPGit.autoload.php'); // Load PHPGit dependencies
+ $repoURL = $_REQUEST['repoURL'];
+ $extendDir = 'store/[data]/git/sys/extend';
+ $addonDir = $extendDir . '/addon';
+ $tempAddonDir = 'store/[data]/git/sys/temp';
+ if (!file_exists($extendDir)) {
+ if (!mkdir($extendDir, 0770, true)) {
+ logger('Error creating extend folder: ' . $extendDir);
+ json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false));
+ } else {
+ if (!symlink('extend/addon', $addonDir)) {
+ logger('Error creating symlink to addon folder: ' . $addonDir);
+ json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false));
+ }
+ }
+ }
+ if (!is_dir($tempAddonDir)) {
+ if (!mkdir($tempAddonDir, 0770, true)) {
+ logger('Error creating temp plugin repo folder: ' . $tempAddonDir);
+ json_return_and_die(array('message' => 'Error creating temp plugin repo folder: ' . $tempAddonDir, 'success' => false));
+ }
+ }
+ $repoName = null;
+ if (array_key_exists('repoName', $_REQUEST) && $_REQUEST['repoName'] !== '') {
+ $repoName = $_REQUEST['repoName'];
+ } else {
+ $repoName = GitRepo::getRepoNameFromURL($repoURL);
+ }
+ if (!$repoName) {
+ logger('Invalid git repo');
+ json_return_and_die(array('message' => 'Invalid git repo: ' . $repoName, 'success' => false));
+ }
+ $repoDir = $tempAddonDir . '/' . $repoName;
+ if (!is_writable($tempAddonDir)) {
+ logger('Temporary directory for new addon repo is not writable to web server: ' . $tempAddonDir);
+ json_return_and_die(array('message' => 'Temporary directory for new addon repo is not writable to web server.', 'success' => false));
+ }
+ // clone the repo if new automatically
+ $git = new GitRepo('sys', $repoURL, true, $repoName, $repoDir);
+
+ $remotes = $git->git->remote();
+ $fetchURL = $remotes['origin']['fetch'];
+ if ($fetchURL !== $git->url) {
+ if (rrmdir($repoDir)) {
+ $git = new GitRepo('sys', $repoURL, true, $repoName, $repoDir);
+ } else {
+ json_return_and_die(array('message' => 'Error deleting existing addon repo.', 'success' => false));
+ }
+ }
+ $repo = $git->probeRepo();
+ $repo['readme'] = $repo['manifest'] = null;
+ foreach ($git->git->tree('master') as $object) {
+ if ($object['type'] == 'blob' && (strtolower($object['file']) === 'readme.md' || strtolower($object['file']) === 'readme')) {
+ $repo['readme'] = Markdown($git->git->cat->blob($object['hash']));
+ } else if ($object['type'] == 'blob' && strtolower($object['file']) === 'manifest.json') {
+ $repo['manifest'] = $git->git->cat->blob($object['hash']);
+ }
+ }
+ json_return_and_die(array('repo' => $repo, 'message' => '', 'success' => true));
+ } else {
+ json_return_and_die(array('message' => 'No repo URL provided', 'success' => false));
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+
+ function get() {
+
+ /*
+ * Single plugin
+ */
+
+ if (\App::$argc == 3){
+ $plugin = \App::$argv[2];
+ if (!is_file("addon/$plugin/$plugin.php")){
+ notice( t("Item not found.") );
+ return '';
+ }
+
+ $enabled = in_array($plugin,\App::$plugins);
+ $info = get_plugin_info($plugin);
+ $x = check_plugin_versions($info);
+
+ // disable plugins which are installed but incompatible versions
+
+ if($enabled && ! $x) {
+ $enabled = false;
+ $idz = array_search($plugin, \App::$plugins);
+ if ($idz !== false) {
+ unset(\App::$plugins[$idz]);
+ uninstall_plugin($plugin);
+ set_config("system","addon", implode(", ",\App::$plugins));
+ }
+ }
+ $info['disabled'] = 1-intval($x);
+
+ if (x($_GET,"a") && $_GET['a']=="t"){
+ check_form_security_token_redirectOnErr('/admin/plugins', 'admin_plugins', 't');
+ $pinstalled = false;
+ // Toggle plugin status
+ $idx = array_search($plugin, \App::$plugins);
+ if ($idx !== false){
+ unset(\App::$plugins[$idx]);
+ uninstall_plugin($plugin);
+ $pinstalled = false;
+ info( sprintf( t("Plugin %s disabled."), $plugin ) );
+ } else {
+ \App::$plugins[] = $plugin;
+ install_plugin($plugin);
+ $pinstalled = true;
+ info( sprintf( t("Plugin %s enabled."), $plugin ) );
+ }
+ set_config("system","addon", implode(", ",\App::$plugins));
+
+ if($pinstalled) {
+ @require_once("addon/$plugin/$plugin.php");
+ if(function_exists($plugin.'_plugin_admin'))
+ goaway(z_root() . '/admin/plugins/' . $plugin);
+ }
+ goaway(z_root() . '/admin/plugins' );
+ }
+ // display plugin details
+ require_once('library/markdown.php');
+
+ if (in_array($plugin, \App::$plugins)){
+ $status = 'on';
+ $action = t('Disable');
+ } else {
+ $status = 'off';
+ $action = t('Enable');
+ }
+
+ $readme = null;
+ if (is_file("addon/$plugin/README.md")){
+ $readme = file_get_contents("addon/$plugin/README.md");
+ $readme = Markdown($readme);
+ } else if (is_file("addon/$plugin/README")){
+ $readme = "<pre>". file_get_contents("addon/$plugin/README") ."</pre>";
+ }
+
+ $admin_form = '';
+
+ $r = q("select * from addon where plugin_admin = 1 and aname = '%s' limit 1",
+ dbesc($plugin)
+ );
+
+ if($r) {
+ @require_once("addon/$plugin/$plugin.php");
+ if(function_exists($plugin.'_plugin_admin')) {
+ $func = $plugin.'_plugin_admin';
+ $func($a, $admin_form);
+ }
+ }
+
+
+ $t = get_markup_template('admin_plugins_details.tpl');
+ return replace_macros($t, array(
+ '$title' => t('Administration'),
+ '$page' => t('Plugins'),
+ '$toggle' => t('Toggle'),
+ '$settings' => t('Settings'),
+ '$baseurl' => z_root(),
+
+ '$plugin' => $plugin,
+ '$status' => $status,
+ '$action' => $action,
+ '$info' => $info,
+ '$str_author' => t('Author: '),
+ '$str_maintainer' => t('Maintainer: '),
+ '$str_minversion' => t('Minimum project version: '),
+ '$str_maxversion' => t('Maximum project version: '),
+ '$str_minphpversion' => t('Minimum PHP version: '),
+ '$str_serverroles' => t('Compatible Server Roles: '),
+ '$str_requires' => t('Requires: '),
+ '$disabled' => t('Disabled - version incompatibility'),
+
+ '$admin_form' => $admin_form,
+ '$function' => 'plugins',
+ '$screenshot' => '',
+ '$readme' => $readme,
+
+ '$form_security_token' => get_form_security_token('admin_plugins'),
+ ));
+ }
+
+
+ /*
+ * List plugins
+ */
+ $plugins = array();
+ $files = glob('addon/*/');
+ if($files) {
+ foreach($files as $file) {
+ if (is_dir($file)){
+ list($tmp, $id) = array_map('trim', explode('/', $file));
+ $info = get_plugin_info($id);
+ $enabled = in_array($id,\App::$plugins);
+ $x = check_plugin_versions($info);
+
+ // disable plugins which are installed but incompatible versions
+
+ if($enabled && ! $x) {
+ $enabled = false;
+ $idz = array_search($id, \App::$plugins);
+ if ($idz !== false) {
+ unset(\App::$plugins[$idz]);
+ uninstall_plugin($id);
+ set_config("system","addon", implode(", ",\App::$plugins));
+ }
+ }
+ $info['disabled'] = 1-intval($x);
+
+ $plugins[] = array( $id, (($enabled)?"on":"off") , $info);
+ }
+ }
+ }
+
+ usort($plugins,'self::plugin_sort');
+
+
+ $admin_plugins_add_repo_form= replace_macros(
+ get_markup_template('admin_plugins_addrepo.tpl'), array(
+ '$post' => 'admin/plugins/addrepo',
+ '$desc' => t('Enter the public git repository URL of the plugin repo.'),
+ '$repoURL' => array('repoURL', t('Plugin repo git URL'), '', ''),
+ '$repoName' => array('repoName', t('Custom repo name'), '', '', t('(optional)')),
+ '$submit' => t('Download Plugin Repo')
+ )
+ );
+ $newRepoModalID = random_string(3);
+ $newRepoModal = replace_macros(
+ get_markup_template('generic_modal.tpl'), array(
+ '$id' => $newRepoModalID,
+ '$title' => t('Install new repo'),
+ '$ok' => t('Install'),
+ '$cancel' => t('Cancel')
+ )
+ );
+
+ $reponames = $this->listAddonRepos();
+ $addonrepos = [];
+ foreach($reponames as $repo) {
+ $addonrepos[] = array('name' => $repo, 'description' => '');
+ // TODO: Parse repo info to provide more information about repos
+ }
+
+ $t = get_markup_template('admin_plugins.tpl');
+ return replace_macros($t, array(
+ '$title' => t('Administration'),
+ '$page' => t('Plugins'),
+ '$submit' => t('Submit'),
+ '$baseurl' => z_root(),
+ '$function' => 'plugins',
+ '$plugins' => $plugins,
+ '$disabled' => t('Disabled - version incompatibility'),
+ '$form_security_token' => get_form_security_token('admin_plugins'),
+ '$managerepos' => t('Manage Repos'),
+ '$installedtitle' => t('Installed Plugin Repositories'),
+ '$addnewrepotitle' => t('Install a New Plugin Repository'),
+ '$expandform' => false,
+ '$form' => $admin_plugins_add_repo_form,
+ '$newRepoModal' => $newRepoModal,
+ '$newRepoModalID' => $newRepoModalID,
+ '$addonrepos' => $addonrepos,
+ '$repoUpdateButton' => t('Update'),
+ '$repoBranchButton' => t('Switch branch'),
+ '$repoRemoveButton' => t('Remove')
+ ));
+ }
+
+ function listAddonRepos() {
+ $addonrepos = [];
+ $addonDir = 'extend/addon/';
+ if(is_dir($addonDir)) {
+ if ($handle = opendir($addonDir)) {
+ while (false !== ($entry = readdir($handle))) {
+ if ($entry != "." && $entry != "..") {
+ $addonrepos[] = $entry;
+ }
+ }
+ closedir($handle);
+ }
+ }
+ return $addonrepos;
+ }
+
+ static public function plugin_sort($a,$b) {
+ return(strcmp(strtolower($a[2]['name']),strtolower($b[2]['name'])));
+ }
+
+
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Admin/Profs.php b/Zotlabs/Module/Admin/Profs.php
new file mode 100644
index 000000000..b3da09cb7
--- /dev/null
+++ b/Zotlabs/Module/Admin/Profs.php
@@ -0,0 +1,169 @@
+<?php
+
+namespace Zotlabs\Module\Admin;
+
+
+class Profs {
+
+ function post() {
+
+ if(array_key_exists('basic',$_REQUEST)) {
+ $arr = explode(',',$_REQUEST['basic']);
+ for($x = 0; $x < count($arr); $x ++)
+ if(trim($arr[$x]))
+ $arr[$x] = trim($arr[$x]);
+ set_config('system','profile_fields_basic',$arr);
+
+ if(array_key_exists('advanced',$_REQUEST)) {
+ $arr = explode(',',$_REQUEST['advanced']);
+ for($x = 0; $x < count($arr); $x ++)
+ if(trim($arr[$x]))
+ $arr[$x] = trim($arr[$x]);
+ set_config('system','profile_fields_advanced',$arr);
+ }
+ goaway(z_root() . '/admin/profs');
+ }
+
+
+ if(array_key_exists('field_name',$_REQUEST)) {
+ if($_REQUEST['id']) {
+ $r = q("update profdef set field_name = '%s', field_type = '%s', field_desc = '%s' field_help = '%s', field_inputs = '%s' where id = %d",
+ dbesc($_REQUEST['field_name']),
+ dbesc($_REQUEST['field_type']),
+ dbesc($_REQUEST['field_desc']),
+ dbesc($_REQUEST['field_help']),
+ dbesc($_REQUEST['field_inputs']),
+ intval($_REQUEST['id'])
+ );
+ }
+ else {
+ $r = q("insert into profdef ( field_name, field_type, field_desc, field_help, field_inputs ) values ( '%s' , '%s', '%s', '%s', '%s' )",
+ dbesc($_REQUEST['field_name']),
+ dbesc($_REQUEST['field_type']),
+ dbesc($_REQUEST['field_desc']),
+ dbesc($_REQUEST['field_help']),
+ dbesc($_REQUEST['field_inputs'])
+ );
+ }
+ }
+
+
+ // add to chosen array basic or advanced
+
+ goaway(z_root() . '/admin/profs');
+ }
+
+ function get() {
+
+ if((argc() > 3) && argv(2) == 'drop' && intval(argv(3))) {
+ $r = q("delete from profdef where id = %d",
+ intval(argv(3))
+ );
+ // remove from allowed fields
+
+ goaway(z_root() . '/admin/profs');
+ }
+
+ if((argc() > 2) && argv(2) === 'new') {
+ return replace_macros(get_markup_template('profdef_edit.tpl'),array(
+ '$header' => t('New Profile Field'),
+ '$field_name' => array('field_name',t('Field nickname'),$_REQUEST['field_name'],t('System name of field')),
+ '$field_type' => array('field_type',t('Input type'),(($_REQUEST['field_type']) ? $_REQUEST['field_type'] : 'text'),''),
+ '$field_desc' => array('field_desc',t('Field Name'),$_REQUEST['field_desc'],t('Label on profile pages')),
+ '$field_help' => array('field_help',t('Help text'),$_REQUEST['field_help'],t('Additional info (optional)')),
+ '$submit' => t('Save')
+ ));
+ }
+
+ if((argc() > 2) && intval(argv(2))) {
+ $r = q("select * from profdef where id = %d limit 1",
+ intval(argv(2))
+ );
+ if(! $r) {
+ notice( t('Field definition not found') . EOL);
+ goaway(z_root() . '/admin/profs');
+ }
+
+ return replace_macros(get_markup_template('profdef_edit.tpl'),array(
+ '$id' => intval($r[0]['id']),
+ '$header' => t('Edit Profile Field'),
+ '$field_name' => array('field_name',t('Field nickname'),$r[0]['field_name'],t('System name of field')),
+ '$field_type' => array('field_type',t('Input type'),$r[0]['field_type'],''),
+ '$field_desc' => array('field_desc',t('Field Name'),$r[0]['field_desc'],t('Label on profile pages')),
+ '$field_help' => array('field_help',t('Help text'),$r[0]['field_help'],t('Additional info (optional)')),
+ '$submit' => t('Save')
+ ));
+ }
+
+ $basic = '';
+ $barr = array();
+ $fields = get_profile_fields_basic();
+ if(! $fields)
+ $fields = get_profile_fields_basic(1);
+ if($fields) {
+ foreach($fields as $k => $v) {
+ if($basic)
+ $basic .= ', ';
+ $basic .= trim($k);
+ $barr[] = trim($k);
+ }
+ }
+
+ $advanced = '';
+ $fields = get_profile_fields_advanced();
+ if(! $fields)
+ $fields = get_profile_fields_advanced(1);
+ if($fields) {
+ foreach($fields as $k => $v) {
+ if(in_array(trim($k),$barr))
+ continue;
+ if($advanced)
+ $advanced .= ', ';
+ $advanced .= trim($k);
+ }
+ }
+
+ $all = '';
+ $fields = get_profile_fields_advanced(1);
+ if($fields) {
+ foreach($fields as $k => $v) {
+ if($all)
+ $all .= ', ';
+ $all .= trim($k);
+ }
+ }
+
+ $r = q("select * from profdef where true");
+ if($r) {
+ foreach($r as $rr) {
+ if($all)
+ $all .= ', ';
+ $all .= $rr['field_name'];
+ }
+ }
+
+
+ $o = replace_macros(get_markup_template('admin_profiles.tpl'),array(
+ '$title' => t('Profile Fields'),
+ '$basic' => array('basic',t('Basic Profile Fields'),$basic,''),
+ '$advanced' => array('advanced',t('Advanced Profile Fields'),$advanced,t('(In addition to basic fields)')),
+ '$all' => $all,
+ '$all_desc' => t('All available fields'),
+ '$cust_field_desc' => t('Custom Fields'),
+ '$cust_fields' => $r,
+ '$edit' => t('Edit'),
+ '$drop' => t('Delete'),
+ '$new' => t('Create Custom Field'),
+ '$submit' => t('Submit')
+ ));
+
+ return $o;
+
+
+ }
+
+
+
+
+
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Admin/Queue.php b/Zotlabs/Module/Admin/Queue.php
new file mode 100644
index 000000000..4986de925
--- /dev/null
+++ b/Zotlabs/Module/Admin/Queue.php
@@ -0,0 +1,54 @@
+<?php
+
+namespace Zotlabs\Module\Admin;
+
+
+
+class Queue {
+
+
+
+ function get() {
+
+ $o = '';
+
+ $expert = ((array_key_exists('expert',$_REQUEST)) ? intval($_REQUEST['expert']) : 0);
+
+ if($_REQUEST['drophub']) {
+ require_once('hubloc.php');
+ hubloc_mark_as_down($_REQUEST['drophub']);
+ remove_queue_by_posturl($_REQUEST['drophub']);
+ }
+
+ if($_REQUEST['emptyhub']) {
+ remove_queue_by_posturl($_REQUEST['emptyhub']);
+ }
+
+ $r = q("select count(outq_posturl) as total, max(outq_priority) as priority, outq_posturl from outq
+ where outq_delivered = 0 group by outq_posturl order by total desc");
+
+ for($x = 0; $x < count($r); $x ++) {
+ $r[$x]['eurl'] = urlencode($r[$x]['outq_posturl']);
+ $r[$x]['connected'] = datetime_convert('UTC',date_default_timezone_get(),$r[$x]['connected'],'Y-m-d');
+ }
+
+ $o = replace_macros(get_markup_template('admin_queue.tpl'), array(
+ '$banner' => t('Queue Statistics'),
+ '$numentries' => t('Total Entries'),
+ '$priority' => t('Priority'),
+ '$desturl' => t('Destination URL'),
+ '$nukehub' => t('Mark hub permanently offline'),
+ '$empty' => t('Empty queue for this hub'),
+ '$lastconn' => t('Last known contact'),
+ '$hasentries' => ((count($r)) ? true : false),
+ '$entries' => $r,
+ '$expert' => $expert
+ ));
+
+ return $o;
+ }
+
+
+
+
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Admin/Security.php b/Zotlabs/Module/Admin/Security.php
new file mode 100644
index 000000000..a1e4bf537
--- /dev/null
+++ b/Zotlabs/Module/Admin/Security.php
@@ -0,0 +1,123 @@
+<?php
+
+namespace Zotlabs\Module\Admin;
+
+
+class Security {
+
+ function post() {
+ check_form_security_token_redirectOnErr('/admin/security', 'admin_security');
+
+ $allowed_email = ((x($_POST,'allowed_email')) ? notags(trim($_POST['allowed_email'])) : '');
+ $not_allowed_email = ((x($_POST,'not_allowed_email')) ? notags(trim($_POST['not_allowed_email'])) : '');
+
+ set_config('system','allowed_email', $allowed_email);
+ set_config('system','not_allowed_email', $not_allowed_email);
+
+ $block_public = ((x($_POST,'block_public')) ? True : False);
+ set_config('system','block_public',$block_public);
+
+ $ws = $this->trim_array_elems(explode("\n",$_POST['whitelisted_sites']));
+ set_config('system','whitelisted_sites',$ws);
+
+ $bs = $this->trim_array_elems(explode("\n",$_POST['blacklisted_sites']));
+ set_config('system','blacklisted_sites',$bs);
+
+ $wc = $this->trim_array_elems(explode("\n",$_POST['whitelisted_channels']));
+ set_config('system','whitelisted_channels',$wc);
+
+ $bc = $this->trim_array_elems(explode("\n",$_POST['blacklisted_channels']));
+ set_config('system','blacklisted_channels',$bc);
+
+ $embed_sslonly = ((x($_POST,'embed_sslonly')) ? True : False);
+ set_config('system','embed_sslonly',$embed_sslonly);
+
+ $we = $this->trim_array_elems(explode("\n",$_POST['embed_allow']));
+ set_config('system','embed_allow',$we);
+
+ $be = $this->trim_array_elems(explode("\n",$_POST['embed_deny']));
+ set_config('system','embed_deny',$be);
+
+ $ts = ((x($_POST,'transport_security')) ? True : False);
+ set_config('system','transport_security_header',$ts);
+
+ $cs = ((x($_POST,'content_security')) ? True : False);
+ set_config('system','content_security_policy',$cs);
+
+ goaway(z_root() . '/admin/security');
+ }
+
+
+
+ function get() {
+
+ $whitesites = get_config('system','whitelisted_sites');
+ $whitesites_str = ((is_array($whitesites)) ? implode($whitesites,"\n") : '');
+
+ $blacksites = get_config('system','blacklisted_sites');
+ $blacksites_str = ((is_array($blacksites)) ? implode($blacksites,"\n") : '');
+
+
+ $whitechannels = get_config('system','whitelisted_channels');
+ $whitechannels_str = ((is_array($whitechannels)) ? implode($whitechannels,"\n") : '');
+
+ $blackchannels = get_config('system','blacklisted_channels');
+ $blackchannels_str = ((is_array($blackchannels)) ? implode($blackchannels,"\n") : '');
+
+
+ $whiteembeds = get_config('system','embed_allow');
+ $whiteembeds_str = ((is_array($whiteembeds)) ? implode($whiteembeds,"\n") : '');
+
+ $blackembeds = get_config('system','embed_deny');
+ $blackembeds_str = ((is_array($blackembeds)) ? implode($blackembeds,"\n") : '');
+
+ $embed_coop = intval(get_config('system','embed_coop'));
+
+ if((! $whiteembeds) && (! $blackembeds)) {
+ $embedhelp1 = t("By default, unfiltered HTML is allowed in embedded media. This is inherently insecure.");
+ }
+
+ $embedhelp2 = t("The recommended setting is to only allow unfiltered HTML from the following sites:");
+ $embedhelp3 = t("https://youtube.com/<br />https://www.youtube.com/<br />https://youtu.be/<br />https://vimeo.com/<br />https://soundcloud.com/<br />");
+ $embedhelp4 = t("All other embedded content will be filtered, <strong>unless</strong> embedded content from that site is explicitly blocked.");
+
+ $t = get_markup_template('admin_security.tpl');
+ return replace_macros($t, array(
+ '$title' => t('Administration'),
+ '$page' => t('Security'),
+ '$form_security_token' => get_form_security_token('admin_security'),
+ '$block_public' => array('block_public', t("Block public"), get_config('system','block_public'), t("Check to block public access to all otherwise public personal pages on this site unless you are currently authenticated.")),
+ '$transport_security' => array('transport_security', t('Set "Transport Security" HTTP header'),intval(get_config('system','transport_security_header')),''),
+ '$content_security' => array('content_security', t('Set "Content Security Policy" HTTP header'),intval(get_config('system','content_security_policy')),''),
+ '$allowed_email' => array('allowed_email', t("Allowed email domains"), get_config('system','allowed_email'), t("Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains")),
+ '$not_allowed_email' => array('not_allowed_email', t("Not allowed email domains"), get_config('system','not_allowed_email'), t("Comma separated list of domains which are not allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains, unless allowed domains have been defined.")),
+ '$whitelisted_sites' => array('whitelisted_sites', t('Allow communications only from these sites'), $whitesites_str, t('One site per line. Leave empty to allow communication from anywhere by default')),
+ '$blacklisted_sites' => array('blacklisted_sites', t('Block communications from these sites'), $blacksites_str, ''),
+ '$whitelisted_channels' => array('whitelisted_channels', t('Allow communications only from these channels'), $whitechannels_str, t('One channel (hash) per line. Leave empty to allow from any channel by default')),
+ '$blacklisted_channels' => array('blacklisted_channels', t('Block communications from these channels'), $blackchannels_str, ''),
+ '$embed_sslonly' => array('embed_sslonly',t('Only allow embeds from secure (SSL) websites and links.'), intval(get_config('system','embed_sslonly')),''),
+ '$embed_allow' => array('embed_allow', t('Allow unfiltered embedded HTML content only from these domains'), $whiteembeds_str, t('One site per line. By default embedded content is filtered.')),
+ '$embed_deny' => array('embed_deny', t('Block embedded HTML from these domains'), $blackembeds_str, ''),
+
+// '$embed_coop' => array('embed_coop', t('Cooperative embed security'), $embed_coop, t('Enable to share embed security with other compatible sites/hubs')),
+
+ '$submit' => t('Submit')
+ ));
+ }
+
+
+ function trim_array_elems($arr) {
+ $narr = array();
+
+ if($arr && is_array($arr)) {
+ for($x = 0; $x < count($arr); $x ++) {
+ $y = trim($arr[$x]);
+ if($y)
+ $narr[] = $y;
+ }
+ }
+ return $narr;
+ }
+
+
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Admin/Site.php b/Zotlabs/Module/Admin/Site.php
new file mode 100644
index 000000000..8397cabbd
--- /dev/null
+++ b/Zotlabs/Module/Admin/Site.php
@@ -0,0 +1,323 @@
+<?php
+
+namespace Zotlabs\Module\Admin;
+
+
+class Site {
+
+
+ /**
+ * @brief POST handler for Admin Site Page.
+ *
+ * @param App &$a
+ */
+ function post(){
+ if (!x($_POST, 'page_site')) {
+ return;
+ }
+
+ check_form_security_token_redirectOnErr('/admin/site', 'admin_site');
+
+ $sitename = ((x($_POST,'sitename')) ? notags(trim($_POST['sitename'])) : '');
+ $server_role = ((x($_POST,'server_role')) ? notags(trim($_POST['server_role'])) : 'standard');
+
+ $banner = ((x($_POST,'banner')) ? trim($_POST['banner']) : false);
+
+ $admininfo = ((x($_POST,'admininfo')) ? trim($_POST['admininfo']) : false);
+ $language = ((x($_POST,'language')) ? notags(trim($_POST['language'])) : '');
+ $theme = ((x($_POST,'theme')) ? notags(trim($_POST['theme'])) : '');
+ $theme_mobile = ((x($_POST,'theme_mobile')) ? notags(trim($_POST['theme_mobile'])) : '');
+ // $site_channel = ((x($_POST,'site_channel')) ? notags(trim($_POST['site_channel'])) : '');
+ $maximagesize = ((x($_POST,'maximagesize')) ? intval(trim($_POST['maximagesize'])) : 0);
+
+ $register_policy = ((x($_POST,'register_policy')) ? intval(trim($_POST['register_policy'])) : 0);
+
+ $access_policy = ((x($_POST,'access_policy')) ? intval(trim($_POST['access_policy'])) : 0);
+ $invite_only = ((x($_POST,'invite_only')) ? True : False);
+ $abandon_days = ((x($_POST,'abandon_days')) ? intval(trim($_POST['abandon_days'])) : 0);
+
+ $register_text = ((x($_POST,'register_text')) ? notags(trim($_POST['register_text'])) : '');
+ $frontpage = ((x($_POST,'frontpage')) ? notags(trim($_POST['frontpage'])) : '');
+ $mirror_frontpage = ((x($_POST,'mirror_frontpage')) ? intval(trim($_POST['mirror_frontpage'])) : 0);
+ $directory_server = ((x($_POST,'directory_server')) ? trim($_POST['directory_server']) : '');
+ $allowed_sites = ((x($_POST,'allowed_sites')) ? notags(trim($_POST['allowed_sites'])) : '');
+ $force_publish = ((x($_POST,'publish_all')) ? True : False);
+ $disable_discover_tab = ((x($_POST,'disable_discover_tab')) ? False : True);
+ $login_on_homepage = ((x($_POST,'login_on_homepage')) ? True : False);
+ $enable_context_help = ((x($_POST,'enable_context_help')) ? True : False);
+ $global_directory = ((x($_POST,'directory_submit_url')) ? notags(trim($_POST['directory_submit_url'])) : '');
+ $no_community_page = !((x($_POST,'no_community_page')) ? True : False);
+ $default_expire_days = ((array_key_exists('default_expire_days',$_POST)) ? intval($_POST['default_expire_days']) : 0);
+
+ $verifyssl = ((x($_POST,'verifyssl')) ? True : False);
+ $proxyuser = ((x($_POST,'proxyuser')) ? notags(trim($_POST['proxyuser'])) : '');
+ $proxy = ((x($_POST,'proxy')) ? notags(trim($_POST['proxy'])) : '');
+ $timeout = ((x($_POST,'timeout')) ? intval(trim($_POST['timeout'])) : 60);
+ $delivery_interval = ((x($_POST,'delivery_interval'))? intval(trim($_POST['delivery_interval'])) : 0);
+ $delivery_batch_count = ((x($_POST,'delivery_batch_count') && $_POST['delivery_batch_count'] > 0)? intval(trim($_POST['delivery_batch_count'])) : 1);
+ $poll_interval = ((x($_POST,'poll_interval')) ? intval(trim($_POST['poll_interval'])) : 0);
+ $maxloadavg = ((x($_POST,'maxloadavg')) ? intval(trim($_POST['maxloadavg'])) : 50);
+ $feed_contacts = ((x($_POST,'feed_contacts')) ? intval($_POST['feed_contacts']) : 0);
+ $verify_email = ((x($_POST,'verify_email')) ? 1 : 0);
+ $techlevel_lock = ((x($_POST,'techlock')) ? intval($_POST['techlock']) : 0);
+
+ $techlevel = null;
+ if(array_key_exists('techlevel',$_POST))
+ $techlevel = intval($_POST['techlevel']);
+
+
+
+ set_config('system', 'server_role', $server_role);
+ set_config('system', 'feed_contacts', $feed_contacts);
+ set_config('system', 'delivery_interval', $delivery_interval);
+ set_config('system', 'delivery_batch_count', $delivery_batch_count);
+ set_config('system', 'poll_interval', $poll_interval);
+ set_config('system', 'maxloadavg', $maxloadavg);
+ set_config('system', 'frontpage', $frontpage);
+ set_config('system', 'mirror_frontpage', $mirror_frontpage);
+ set_config('system', 'sitename', $sitename);
+ set_config('system', 'login_on_homepage', $login_on_homepage);
+ set_config('system', 'enable_context_help', $enable_context_help);
+ set_config('system', 'verify_email', $verify_email);
+ set_config('system', 'default_expire_days', $default_expire_days);
+ set_config('system', 'techlevel_lock', $techlevel_lock);
+
+ if(! is_null($techlevel))
+ set_config('system', 'techlevel', $techlevel);
+
+ if($directory_server)
+ set_config('system','directory_server',$directory_server);
+
+ if ($banner == '') {
+ del_config('system', 'banner');
+ } else {
+ set_config('system', 'banner', $banner);
+ }
+
+ if ($admininfo == ''){
+ del_config('system', 'admininfo');
+ } else {
+ require_once('include/text.php');
+ linkify_tags($a, $admininfo, local_channel());
+ set_config('system', 'admininfo', $admininfo);
+ }
+ set_config('system', 'language', $language);
+ set_config('system', 'theme', $theme);
+ if ( $theme_mobile === '---' ) {
+ del_config('system', 'mobile_theme');
+ } else {
+ set_config('system', 'mobile_theme', $theme_mobile);
+ }
+ // set_config('system','site_channel', $site_channel);
+ set_config('system','maximagesize', $maximagesize);
+
+ set_config('system','register_policy', $register_policy);
+ set_config('system','invitation_only', $invite_only);
+ set_config('system','access_policy', $access_policy);
+ set_config('system','account_abandon_days', $abandon_days);
+ set_config('system','register_text', $register_text);
+ set_config('system','allowed_sites', $allowed_sites);
+ set_config('system','publish_all', $force_publish);
+ set_config('system','disable_discover_tab', $disable_discover_tab);
+ if ($global_directory == '') {
+ del_config('system', 'directory_submit_url');
+ } else {
+ set_config('system', 'directory_submit_url', $global_directory);
+ }
+
+ set_config('system','no_community_page', $no_community_page);
+ set_config('system','no_utf', $no_utf);
+ set_config('system','verifyssl', $verifyssl);
+ set_config('system','proxyuser', $proxyuser);
+ set_config('system','proxy', $proxy);
+ set_config('system','curl_timeout', $timeout);
+
+ info( t('Site settings updated.') . EOL);
+ goaway(z_root() . '/admin/site' );
+ }
+
+ /**
+ * @brief Admin page site.
+ *
+ * @return string
+ */
+
+ function get() {
+
+ /* Installed langs */
+ $lang_choices = array();
+ $langs = glob('view/*/hstrings.php');
+
+ if(is_array($langs) && count($langs)) {
+ if(! in_array('view/en/hstrings.php',$langs))
+ $langs[] = 'view/en/';
+ asort($langs);
+ foreach($langs as $l) {
+ $t = explode("/",$l);
+ $lang_choices[$t[1]] = $t[1];
+ }
+ }
+
+ /* Installed themes */
+ $theme_choices_mobile["---"] = t("Default");
+ $theme_choices = array();
+ $files = glob('view/theme/*');
+ if($files) {
+ foreach($files as $file) {
+ $vars = '';
+ $f = basename($file);
+ if (file_exists($file . '/library'))
+ continue;
+ if (file_exists($file . '/mobile'))
+ $vars = t('mobile');
+ if (file_exists($file . '/experimental'))
+ $vars .= t('experimental');
+ if (file_exists($file . '/unsupported'))
+ $vars .= t('unsupported');
+ if ($vars) {
+ $theme_choices[$f] = $f . ' (' . $vars . ')';
+ $theme_choices_mobile[$f] = $f . ' (' . $vars . ')';
+ }
+ else {
+ $theme_choices[$f] = $f;
+ $theme_choices_mobile[$f] = $f;
+ }
+ }
+ }
+
+ $dir_choices = null;
+ $dirmode = get_config('system','directory_mode');
+ $realm = get_directory_realm();
+
+ // directory server should not be set or settable unless we are a directory client
+
+ if($dirmode == DIRECTORY_MODE_NORMAL) {
+ $x = q("select site_url from site where site_flags in (%d,%d) and site_realm = '%s'",
+ intval(DIRECTORY_MODE_SECONDARY),
+ intval(DIRECTORY_MODE_PRIMARY),
+ dbesc($realm)
+ );
+ if($x) {
+ $dir_choices = array();
+ foreach($x as $xx) {
+ $dir_choices[$xx['site_url']] = $xx['site_url'];
+ }
+ }
+ }
+
+ /* Banner */
+
+ $banner = get_config('system', 'banner');
+ if($banner === false)
+ $banner = get_config('system','sitename');
+
+ $banner = htmlspecialchars($banner);
+
+ /* Admin Info */
+ $admininfo = get_config('system', 'admininfo');
+
+ /* Register policy */
+ $register_choices = Array(
+ REGISTER_CLOSED => t("No"),
+ REGISTER_APPROVE => t("Yes - with approval"),
+ REGISTER_OPEN => t("Yes")
+ );
+
+ /* Acess policy */
+ $access_choices = Array(
+ ACCESS_PRIVATE => t("My site is not a public server"),
+ ACCESS_PAID => t("My site has paid access only"),
+ ACCESS_FREE => t("My site has free access only"),
+ ACCESS_TIERED => t("My site offers free accounts with optional paid upgrades")
+ );
+
+ $discover_tab = get_config('system','disable_discover_tab');
+ // $disable public streams by default
+ if($discover_tab === false)
+ $discover_tab = 1;
+ // now invert the logic for the setting.
+ $discover_tab = (1 - $discover_tab);
+
+ $server_roles = [
+ 'basic' => t('Basic/Minimal Social Networking'),
+ 'standard' => t('Standard Configuration (default)'),
+ 'pro' => t('Professional')
+ ];
+
+
+ $techlevels = [
+ '0' => t('Beginner/Basic'),
+ '1' => t('Novice - not skilled but willing to learn'),
+ '2' => t('Intermediate - somewhat comfortable'),
+ '3' => t('Advanced - very comfortable'),
+ '4' => t('Expert - I can write computer code'),
+ '5' => t('Wizard - I probably know more than you do')
+ ];
+
+
+
+
+ $homelogin = get_config('system','login_on_homepage');
+ $enable_context_help = get_config('system','enable_context_help');
+
+ $t = get_markup_template("admin_site.tpl");
+ return replace_macros($t, array(
+ '$title' => t('Administration'),
+ '$page' => t('Site'),
+ '$submit' => t('Submit'),
+ '$registration' => t('Registration'),
+ '$upload' => t('File upload'),
+ '$corporate' => t('Policies'),
+ '$advanced' => t('Advanced'),
+
+ '$baseurl' => z_root(),
+ // name, label, value, help string, extra data...
+ '$sitename' => array('sitename', t("Site name"), htmlspecialchars(get_config('system','sitename'), ENT_QUOTES, 'UTF-8'),''),
+
+ '$server_role' => array('server_role', t("Server Configuration/Role"), get_config('system','server_role'),'',$server_roles),
+
+ '$techlevel' => [ 'techlevel', t('Site default technical skill level'), get_config('system','techlevel'), t('Used to provide a member experience matched to technical comfort level'), $techlevels ],
+
+ '$techlock' => [ 'techlock', t('Lock the technical skill level setting'), get_config('system','techlevel_lock'), t('Members can set their own technical comfort level by default') ],
+
+
+ '$banner' => array('banner', t("Banner/Logo"), $banner, ""),
+ '$admininfo' => array('admininfo', t("Administrator Information"), $admininfo, t("Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here")),
+ '$language' => array('language', t("System language"), get_config('system','language'), "", $lang_choices),
+ '$theme' => array('theme', t("System theme"), get_config('system','theme'), t("Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"), $theme_choices),
+ '$theme_mobile' => array('theme_mobile', t("Mobile system theme"), get_config('system','mobile_theme'), t("Theme for mobile devices"), $theme_choices_mobile),
+ // '$site_channel' => array('site_channel', t("Channel to use for this website's static pages"), get_config('system','site_channel'), t("Site Channel")),
+ '$feed_contacts' => array('feed_contacts', t('Allow Feeds as Connections'),get_config('system','feed_contacts'),t('(Heavy system resource usage)')),
+ '$maximagesize' => array('maximagesize', t("Maximum image size"), intval(get_config('system','maximagesize')), t("Maximum size in bytes of uploaded images. Default is 0, which means no limits.")),
+ '$register_policy' => array('register_policy', t("Does this site allow new member registration?"), get_config('system','register_policy'), "", $register_choices),
+ '$invite_only' => array('invite_only', t("Invitation only"), get_config('system','invitation_only'), t("Only allow new member registrations with an invitation code. Above register policy must be set to Yes.")),
+ '$access_policy' => array('access_policy', t("Which best describes the types of account offered by this hub?"), get_config('system','access_policy'), "This is displayed on the public server site list.", $access_choices),
+ '$register_text' => array('register_text', t("Register text"), htmlspecialchars(get_config('system','register_text'), ENT_QUOTES, 'UTF-8'), t("Will be displayed prominently on the registration page.")),
+ '$frontpage' => array('frontpage', t("Site homepage to show visitors (default: login box)"), get_config('system','frontpage'), t("example: 'public' to show public stream, 'page/sys/home' to show a system webpage called 'home' or 'include:home.html' to include a file.")),
+ '$mirror_frontpage' => array('mirror_frontpage', t("Preserve site homepage URL"), get_config('system','mirror_frontpage'), t('Present the site homepage in a frame at the original location instead of redirecting')),
+ '$abandon_days' => array('abandon_days', t('Accounts abandoned after x days'), get_config('system','account_abandon_days'), t('Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit.')),
+ '$allowed_sites' => array('allowed_sites', t("Allowed friend domains"), get_config('system','allowed_sites'), t("Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains")),
+ '$verify_email' => array('verify_email', t("Verify Email Addresses"), get_config('system','verify_email'), t("Check to verify email addresses used in account registration (recommended).")),
+ '$force_publish' => array('publish_all', t("Force publish"), get_config('system','publish_all'), t("Check to force all profiles on this site to be listed in the site directory.")),
+ '$disable_discover_tab' => array('disable_discover_tab', t('Import Public Streams'), $discover_tab, t('Import and allow access to public content pulled from other sites. Warning: this content is unmoderated.')),
+ '$login_on_homepage' => array('login_on_homepage', t("Login on Homepage"),((intval($homelogin) || $homelogin === false) ? 1 : '') , t("Present a login box to visitors on the home page if no other content has been configured.")),
+ '$enable_context_help' => array('enable_context_help', t("Enable context help"),((intval($enable_context_help) === 1 || $enable_context_help === false) ? 1 : 0) , t("Display contextual help for the current page when the help button is pressed.")),
+
+ '$directory_server' => (($dir_choices) ? array('directory_server', t("Directory Server URL"), get_config('system','directory_server'), t("Default directory server"), $dir_choices) : null),
+
+ '$proxyuser' => array('proxyuser', t("Proxy user"), get_config('system','proxyuser'), ""),
+ '$proxy' => array('proxy', t("Proxy URL"), get_config('system','proxy'), ""),
+ '$timeout' => array('timeout', t("Network timeout"), (x(get_config('system','curl_timeout'))?get_config('system','curl_timeout'):60), t("Value is in seconds. Set to 0 for unlimited (not recommended).")),
+ '$delivery_interval' => array('delivery_interval', t("Delivery interval"), (x(get_config('system','delivery_interval'))?get_config('system','delivery_interval'):2), t("Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers.")),
+ '$delivery_batch_count' => array('delivery_batch_count', t('Deliveries per process'),(x(get_config('system','delivery_batch_count'))?get_config('system','delivery_batch_count'):1), t("Number of deliveries to attempt in a single operating system process. Adjust if necessary to tune system performance. Recommend: 1-5.")),
+ '$poll_interval' => array('poll_interval', t("Poll interval"), (x(get_config('system','poll_interval'))?get_config('system','poll_interval'):2), t("Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval.")),
+ '$maxloadavg' => array('maxloadavg', t("Maximum Load Average"), ((intval(get_config('system','maxloadavg')) > 0)?get_config('system','maxloadavg'):50), t("Maximum system load before delivery and poll processes are deferred - default 50.")),
+ '$default_expire_days' => array('default_expire_days', t('Expiration period in days for imported (grid/network) content'), intval(get_config('system','default_expire_days')), t('0 for no expiration of imported content')),
+ '$form_security_token' => get_form_security_token("admin_site"),
+ ));
+ }
+
+
+
+
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Admin/Themes.php b/Zotlabs/Module/Admin/Themes.php
new file mode 100644
index 000000000..63a9a1670
--- /dev/null
+++ b/Zotlabs/Module/Admin/Themes.php
@@ -0,0 +1,233 @@
+<?php
+
+namespace Zotlabs\Module\Admin;
+
+
+class Themes {
+
+ function post() {
+
+ $theme = argv(2);
+ if (is_file("view/theme/$theme/php/config.php")){
+ require_once("view/theme/$theme/php/config.php");
+ // fixme add parent theme if derived
+ if (function_exists("theme_admin_post")){
+ theme_admin_post($a);
+ }
+ }
+ info(t('Theme settings updated.'));
+ if(is_ajax())
+ return;
+
+ goaway(z_root() . '/admin/themes/' . $theme );
+ }
+
+
+
+
+
+ /**
+ * @brief Themes admin page.
+ *
+ * @return string
+ */
+
+ function get(){
+
+ $allowed_themes_str = get_config('system', 'allowed_themes');
+ $allowed_themes_raw = explode(',', $allowed_themes_str);
+ $allowed_themes = array();
+ if(count($allowed_themes_raw))
+ foreach($allowed_themes_raw as $x)
+ if(strlen(trim($x)))
+ $allowed_themes[] = trim($x);
+
+ $themes = array();
+ $files = glob('view/theme/*');
+ if($files) {
+ foreach($files as $file) {
+ $f = basename($file);
+ $is_experimental = intval(file_exists($file . '/.experimental'));
+ $is_supported = 1-(intval(file_exists($file . '/.unsupported'))); // Is not used yet
+ $is_allowed = intval(in_array($f,$allowed_themes));
+ $themes[] = array('name' => $f, 'experimental' => $is_experimental, 'supported' => $is_supported, 'allowed' => $is_allowed);
+ }
+ }
+
+ if(! count($themes)) {
+ notice( t('No themes found.'));
+ return '';
+ }
+
+ /*
+ * Single theme
+ */
+
+ if (\App::$argc == 3){
+ $theme = \App::$argv[2];
+ if(! is_dir("view/theme/$theme")){
+ notice( t("Item not found.") );
+ return '';
+ }
+
+ if (x($_GET,"a") && $_GET['a']=="t"){
+ check_form_security_token_redirectOnErr('/admin/themes', 'admin_themes', 't');
+
+ // Toggle theme status
+
+ $this->toggle_theme($themes, $theme, $result);
+ $s = $this->rebuild_theme_table($themes);
+ if($result)
+ info( sprintf('Theme %s enabled.', $theme));
+ else
+ info( sprintf('Theme %s disabled.', $theme));
+
+ set_config('system', 'allowed_themes', $s);
+ goaway(z_root() . '/admin/themes' );
+ }
+
+ // display theme details
+ require_once('library/markdown.php');
+
+ if ($this->theme_status($themes,$theme)) {
+ $status="on"; $action= t("Disable");
+ } else {
+ $status="off"; $action= t("Enable");
+ }
+
+ $readme=Null;
+ if (is_file("view/theme/$theme/README.md")){
+ $readme = file_get_contents("view/theme/$theme/README.md");
+ $readme = Markdown($readme);
+ } else if (is_file("view/theme/$theme/README")){
+ $readme = "<pre>". file_get_contents("view/theme/$theme/README") ."</pre>";
+ }
+
+ $admin_form = '';
+ if (is_file("view/theme/$theme/php/config.php")){
+ require_once("view/theme/$theme/php/config.php");
+ if(function_exists("theme_admin")){
+ $admin_form = theme_admin($a);
+ }
+ }
+
+ $screenshot = array( get_theme_screenshot($theme), t('Screenshot'));
+ if(! stristr($screenshot[0],$theme))
+ $screenshot = null;
+
+ $t = get_markup_template('admin_plugins_details.tpl');
+ return replace_macros($t, array(
+ '$title' => t('Administration'),
+ '$page' => t('Themes'),
+ '$toggle' => t('Toggle'),
+ '$settings' => t('Settings'),
+ '$baseurl' => z_root(),
+
+ '$plugin' => $theme,
+ '$status' => $status,
+ '$action' => $action,
+ '$info' => get_theme_info($theme),
+ '$function' => 'themes',
+ '$admin_form' => $admin_form,
+ '$str_author' => t('Author: '),
+ '$str_maintainer' => t('Maintainer: '),
+ '$screenshot' => $screenshot,
+ '$readme' => $readme,
+
+ '$form_security_token' => get_form_security_token('admin_themes'),
+ ));
+ }
+
+ /*
+ * List themes
+ */
+
+ $xthemes = array();
+ if($themes) {
+ foreach($themes as $th) {
+ $xthemes[] = array($th['name'],(($th['allowed']) ? "on" : "off"), get_theme_info($th['name']));
+ }
+ }
+
+ $t = get_markup_template('admin_plugins.tpl');
+ return replace_macros($t, array(
+ '$title' => t('Administration'),
+ '$page' => t('Themes'),
+ '$submit' => t('Submit'),
+ '$baseurl' => z_root(),
+ '$function' => 'themes',
+ '$plugins' => $xthemes,
+ '$experimental' => t('[Experimental]'),
+ '$unsupported' => t('[Unsupported]'),
+ '$form_security_token' => get_form_security_token('admin_themes'),
+ ));
+ }
+
+
+
+ /**
+ * @param array $themes
+ * @param string $th
+ * @param int $result
+ */
+ function toggle_theme(&$themes, $th, &$result) {
+ for($x = 0; $x < count($themes); $x ++) {
+ if($themes[$x]['name'] === $th) {
+ if($themes[$x]['allowed']) {
+ $themes[$x]['allowed'] = 0;
+ $result = 0;
+ }
+ else {
+ $themes[$x]['allowed'] = 1;
+ $result = 1;
+ }
+ }
+ }
+ }
+
+ /**
+ * @param array $themes
+ * @param string $th
+ * @return int
+ */
+ function theme_status($themes, $th) {
+ for($x = 0; $x < count($themes); $x ++) {
+ if($themes[$x]['name'] === $th) {
+ if($themes[$x]['allowed']) {
+ return 1;
+ }
+ else {
+ return 0;
+ }
+ }
+ }
+ return 0;
+ }
+
+
+ /**
+ * @param array $themes
+ * @return string
+ */
+ function rebuild_theme_table($themes) {
+ $o = '';
+ if(count($themes)) {
+ foreach($themes as $th) {
+ if($th['allowed']) {
+ if(strlen($o))
+ $o .= ',';
+ $o .= $th['name'];
+ }
+ }
+ }
+ return $o;
+ }
+
+
+
+
+
+
+
+
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Api.php b/Zotlabs/Module/Api.php
index 71c8dc865..4fd59acc4 100644
--- a/Zotlabs/Module/Api.php
+++ b/Zotlabs/Module/Api.php
@@ -29,7 +29,7 @@ class Api extends \Zotlabs\Web\Controller {
try {
$request = OAuth1Request::from_request();
}
- catch(Exception $e) {
+ catch(\Exception $e) {
echo "<pre>"; var_dump($e); killme();
}
diff --git a/Zotlabs/Module/Apps.php b/Zotlabs/Module/Apps.php
index 4bdec4573..4dab621b2 100644
--- a/Zotlabs/Module/Apps.php
+++ b/Zotlabs/Module/Apps.php
@@ -1,7 +1,6 @@
<?php
namespace Zotlabs\Module;
-//require_once('include/apps.php');
use \Zotlabs\Lib as Zlib;
diff --git a/Zotlabs/Module/Channel.php b/Zotlabs/Module/Channel.php
index 59cb9f06c..795f0869a 100644
--- a/Zotlabs/Module/Channel.php
+++ b/Zotlabs/Module/Channel.php
@@ -120,8 +120,9 @@ class Channel extends \Zotlabs\Web\Controller {
'deny_gid' => $channel['channel_deny_gid']
);
}
- else
- $channel_acl = array();
+ else {
+ $channel_acl = [ 'allow_cid' => '', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '' ];
+ }
if($perms['post_wall']) {
@@ -133,14 +134,15 @@ class Channel extends \Zotlabs\Web\Controller {
'nickname' => \App::$profile['channel_address'],
'lockstate' => (((strlen(\App::$profile['channel_allow_cid'])) || (strlen(\App::$profile['channel_allow_gid'])) || (strlen(\App::$profile['channel_deny_cid'])) || (strlen(\App::$profile['channel_deny_gid']))) ? 'lock' : 'unlock'),
'acl' => (($is_owner) ? populate_acl($channel_acl,true, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_stream'), get_post_aclDialogDescription(), 'acl_dialog_post') : ''),
- 'permissions' => (($is_owner) ? $channel_acl : ''),
+ 'permissions' => $channel_acl,
'showacl' => (($is_owner) ? 'yes' : ''),
'bang' => '',
'visitor' => (($is_owner || $observer) ? true : false),
'profile_uid' => \App::$profile['profile_uid'],
'editor_autocomplete' => true,
'bbco_autocomplete' => 'bbcode',
- 'bbcode' => true
+ 'bbcode' => true,
+ 'jotnets' => true
);
$o .= status_editor($a,$x);
diff --git a/Zotlabs/Module/Connect.php b/Zotlabs/Module/Connect.php
index 962c05cce..dec375104 100644
--- a/Zotlabs/Module/Connect.php
+++ b/Zotlabs/Module/Connect.php
@@ -60,13 +60,13 @@ class Connect extends \Zotlabs\Web\Controller {
$observer = \App::get_observer();
if(($observer) && ($_POST['submit'] === t('Continue'))) {
if($observer['xchan_follow'])
- $url = sprintf($observer['xchan_follow'],urlencode(\App::$data['channel']['channel_address'] . '@' . \App::get_hostname()));
+ $url = sprintf($observer['xchan_follow'],urlencode(channel_reddress(\App::$data['channel'])));
if(! $url) {
$r = q("select * from hubloc where hubloc_hash = '%s' order by hubloc_id desc limit 1",
dbesc($observer['xchan_hash'])
);
if($r)
- $url = $r[0]['hubloc_url'] . '/follow?f=&url=' . urlencode(\App::$data['channel']['channel_address'] . '@' . \App::get_hostname());
+ $url = $r[0]['hubloc_url'] . '/follow?f=&url=' . urlencode(channel_reddress(\App::$data['channel']));
}
}
if($url)
diff --git a/Zotlabs/Module/Connedit.php b/Zotlabs/Module/Connedit.php
index 217249469..43feac189 100644
--- a/Zotlabs/Module/Connedit.php
+++ b/Zotlabs/Module/Connedit.php
@@ -663,13 +663,9 @@ class Connedit extends \Zotlabs\Web\Controller {
$rating_text = $xl[0]['xlink_rating_text'];
}
- $poco_rating = get_config('system','poco_rating_enable');
+ $rating_enabled = get_config('system','rating_enabled');
- // if unset default to enabled
- if($poco_rating === false)
- $poco_rating = true;
-
- if($poco_rating) {
+ if($rating_enabled) {
$rating = replace_macros(get_markup_template('rating_slider.tpl'),array(
'$min' => -10,
'$val' => $rating_val
diff --git a/Zotlabs/Module/Directory.php b/Zotlabs/Module/Directory.php
index 560038ffc..691e48520 100644
--- a/Zotlabs/Module/Directory.php
+++ b/Zotlabs/Module/Directory.php
@@ -84,7 +84,7 @@ class Directory extends \Zotlabs\Web\Controller {
$search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
- if(strpos($search,'=') && local_channel() && get_pconfig(local_channel(),'feature','expert'))
+ if(strpos($search,'=') && local_channel() && feature_enabled(local_channel(),'feature','advanced_dirsearch'))
$advanced = $search;
@@ -239,7 +239,7 @@ class Directory extends \Zotlabs\Web\Controller {
$page_type = '';
- if($rr['total_ratings'])
+ if($rr['total_ratings'] && get_config('system','rating_enabled'))
$total_ratings = sprintf( tt("%d rating", "%d ratings", $rr['total_ratings']), $rr['total_ratings']);
else
$total_ratings = '';
diff --git a/Zotlabs/Module/Dirsearch.php b/Zotlabs/Module/Dirsearch.php
index 8f60910f1..ebd6c3715 100644
--- a/Zotlabs/Module/Dirsearch.php
+++ b/Zotlabs/Module/Dirsearch.php
@@ -448,9 +448,9 @@ class Dirsearch extends \Zotlabs\Web\Controller {
$register = 'closed';
if(strpos($rr['site_url'],'https://') !== false)
- $ret['sites'][] = array('url' => $rr['site_url'], 'access' => $access, 'register' => $register, 'sellpage' => $rr['site_sellpage'], 'location' => $rr['site_location'], 'project' => $rr['site_project']);
+ $ret['sites'][] = array('url' => $rr['site_url'], 'access' => $access, 'register' => $register, 'sellpage' => $rr['site_sellpage'], 'location' => $rr['site_location'], 'project' => $rr['site_project'], 'version' => $rr['site_version']);
else
- $insecure[] = array('url' => $rr['site_url'], 'access' => $access, 'register' => $register, 'sellpage' => $rr['site_sellpage'], 'location' => $rr['site_location'], 'project' => $rr['site_project']);
+ $insecure[] = array('url' => $rr['site_url'], 'access' => $access, 'register' => $register, 'sellpage' => $rr['site_sellpage'], 'location' => $rr['site_location'], 'project' => $rr['site_project'], 'version' => $rr['site_version']);
}
if($insecure) {
$ret['sites'] = array_merge($ret['sites'],$insecure);
diff --git a/Zotlabs/Module/Display.php b/Zotlabs/Module/Display.php
index 35ed0c894..e9441bbdf 100644
--- a/Zotlabs/Module/Display.php
+++ b/Zotlabs/Module/Display.php
@@ -73,7 +73,8 @@ class Display extends \Zotlabs\Web\Controller {
'expanded' => true,
'editor_autocomplete' => true,
'bbco_autocomplete' => 'bbcode',
- 'bbcode' => true
+ 'bbcode' => true,
+ 'jotnets' => true
);
$o = '<div id="jot-popup">';
diff --git a/Zotlabs/Module/Events.php b/Zotlabs/Module/Events.php
index d27de9989..2bff4676e 100644
--- a/Zotlabs/Module/Events.php
+++ b/Zotlabs/Module/Events.php
@@ -118,7 +118,7 @@ class Events extends \Zotlabs\Web\Controller {
goaway($onerror_url);
}
- $share = ((intval($_POST['share'])) ? intval($_POST['share']) : 0);
+ $share = ((intval($_POST['distr'])) ? intval($_POST['distr']) : 0);
$channel = \App::get_channel();
@@ -469,7 +469,7 @@ class Events extends \Zotlabs\Web\Controller {
'$t_orig' => $t_orig,
'$sh_text' => t('Share this event'),
'$sh_checked' => $sh_checked,
- '$share' => array('share', t('Share this event'), $sh_checked, '', array(t('No'),t('Yes'))),
+ '$share' => array('distr', t('Share this event'), $sh_checked, '', array(t('No'),t('Yes'))),
'$preview' => t('Preview'),
'$perms_label' => t('Permission settings'),
// populating the acl dialog was a permission description from view_stream because Cal.php, which
diff --git a/Zotlabs/Module/Fhublocs.php b/Zotlabs/Module/Fhublocs.php
index f5b439421..cdf323a41 100644
--- a/Zotlabs/Module/Fhublocs.php
+++ b/Zotlabs/Module/Fhublocs.php
@@ -42,7 +42,7 @@ class Fhublocs extends \Zotlabs\Web\Controller {
if($y)
$primary_address = $y[0]['xchan_addr'];
- $hub_address = $rr['channel']['channel_address'] . '@' . \App::get_hostname();
+ $hub_address = channel_reddress($rr['channel']);
$primary = (($hub_address === $primary_address) ? 1 : 0);
@@ -61,7 +61,7 @@ class Fhublocs extends \Zotlabs\Web\Controller {
dbesc($rr['channel_guid']),
dbesc($rr['channel_guid_sig']),
dbesc($rr['channel_hash']),
- dbesc($rr['channel_address'] . '@' . \App::get_hostname()),
+ dbesc(channel_reddress($rr)),
intval($primary),
dbesc(z_root()),
dbesc(base64url_encode(rsa_sign(z_root(),$rr['channel_prvkey']))),
diff --git a/Zotlabs/Module/Help.php b/Zotlabs/Module/Help.php
index cc46c550b..54d4aecfb 100644
--- a/Zotlabs/Module/Help.php
+++ b/Zotlabs/Module/Help.php
@@ -17,6 +17,7 @@ require_once('include/help.php');
class Help extends \Zotlabs\Web\Controller {
function get() {
+
nav_set_selected('help');
if($_REQUEST['search']) {
@@ -31,13 +32,14 @@ class Help extends \Zotlabs\Web\Controller {
if($r) {
$o .= '<ul class="help-searchlist">';
foreach($r as $rr) {
- $dirname = dirname($rr['sid']);
- $fname = basename($rr['sid']);
+ $dirname = dirname($rr['v']);
+ $fname = basename($rr['v']);
$fname = substr($fname,0,strrpos($fname,'.'));
$path = trim(substr($dirname,4),'/');
- $o .= '<li><a href="help/' . (($path) ? $path . '/' : '') . $fname . '" >' . ucwords(str_replace('_',' ',notags($fname))) . '</a><br />' .
- str_replace('$Projectname',\Zotlabs\Lib\System::get_platform_name(),substr($rr['text'],0,200)) . '...<br /><br /></li>';
+ $o .= '<li><a href="help/' . (($path) ? $path . '/' : '') . $fname . '" >' . ucwords(str_replace('_',' ',notags($fname))) . '</a><br />'
+ . '<b><i>' . 'help/' . (($path) ? $path . '/' : '') . $fname . '</i></b><br />' .
+ '...' . str_replace('$Projectname',\Zotlabs\Lib\System::get_platform_name(),$rr['text']) . '...<br /><br /></li>';
}
$o .= '</ul>';
@@ -47,100 +49,18 @@ class Help extends \Zotlabs\Web\Controller {
return $o;
}
-
- global $lang;
-
- $doctype = 'markdown';
-
- $text = '';
-
- if(argc() > 1) {
- $path = '';
- for($x = 1; $x < argc(); $x ++) {
- if(strlen($path))
- $path .= '/';
- $path .= argv($x);
- }
- $title = basename($path);
-
- $text = load_doc_file('doc/' . $path . '.md');
- \App::$page['title'] = t('Help:') . ' ' . ucwords(str_replace('-',' ',notags($title)));
-
- if(! $text) {
- $text = load_doc_file('doc/' . $path . '.bb');
- if($text)
- $doctype = 'bbcode';
- \App::$page['title'] = t('Help:') . ' ' . ucwords(str_replace('_',' ',notags($title)));
- }
- if(! $text) {
- $text = load_doc_file('doc/' . $path . '.html');
- if($text)
- $doctype = 'html';
- \App::$page['title'] = t('Help:') . ' ' . ucwords(str_replace('-',' ',notags($title)));
- }
- }
-
- if(! $text) {
- $text = load_doc_file('doc/Site.md');
- \App::$page['title'] = t('Help');
- }
- if(! $text) {
- $doctype = 'bbcode';
- $text = load_doc_file('doc/main.bb');
- \App::$page['title'] = t('Help');
- }
-
- if(! strlen($text)) {
- header($_SERVER["SERVER_PROTOCOL"] . ' 404 ' . t('Not Found'));
- $tpl = get_markup_template("404.tpl");
- return replace_macros($tpl, array(
- '$message' => t('Page not found.' )
- ));
- }
-
- if($doctype === 'html')
- $content = $text;
- if($doctype === 'markdown') {
- require_once('library/markdown.php');
- # escape #include tags
- $text = preg_replace('/#include/ism', '%%include', $text);
- $content = Markdown($text);
- $content = preg_replace('/%%include/ism', '#include', $content);
- }
- if($doctype === 'bbcode') {
- require_once('include/bbcode.php');
- $content = bbcode($text);
- // bbcode retargets external content to new windows. This content is internal.
- $content = str_replace(' target="_blank"','',$content);
- }
-
- $content = preg_replace_callback("/#include (.*?)\;/ism", 'self::preg_callback_help_include', $content);
-
+
+ $content = get_help_content();
+
+
return replace_macros(get_markup_template("help.tpl"), array(
'$title' => t('$Projectname Documentation'),
- '$content' => translate_projectname($content)
+ '$content' => $content
));
}
- private static function preg_callback_help_include($matches) {
-
- if($matches[1]) {
- $include = str_replace($matches[0],load_doc_file($matches[1]),$matches[0]);
- if(preg_match('/\.bb$/', $matches[1]) || preg_match('/\.txt$/', $matches[1])) {
- require_once('include/bbcode.php');
- $include = bbcode($include);
- $include = str_replace(' target="_blank"','',$include);
- }
- elseif(preg_match('/\.md$/', $matches[1])) {
- require_once('library/markdown.php');
- $include = Markdown($include);
- }
- return $include;
- }
-
- }
}
diff --git a/Zotlabs/Module/Import.php b/Zotlabs/Module/Import.php
index d27f013b9..9574de07c 100644
--- a/Zotlabs/Module/Import.php
+++ b/Zotlabs/Module/Import.php
@@ -209,7 +209,7 @@ class Import extends \Zotlabs\Web\Controller {
dbesc($channel['channel_guid']),
dbesc($channel['channel_guid_sig']),
dbesc($channel['channel_hash']),
- dbesc($channel['channel_address'] . '@' . \App::get_hostname()),
+ dbesc(channel_reddress($channel)),
dbesc('zot'),
intval(($seize) ? 1 : 0),
dbesc(z_root()),
@@ -252,7 +252,7 @@ class Import extends \Zotlabs\Web\Controller {
dbesc(z_root() . "/photo/profile/l/" . $channel['channel_id']),
dbesc(z_root() . "/photo/profile/m/" . $channel['channel_id']),
dbesc(z_root() . "/photo/profile/s/" . $channel['channel_id']),
- dbesc($channel['channel_address'] . '@' . \App::get_hostname()),
+ dbesc(channel_reddress($channel)),
dbesc(z_root() . '/channel/' . $channel['channel_address']),
dbesc(z_root() . '/follow?f=&url=%s'),
dbesc(z_root() . '/poco/' . $channel['channel_address']),
diff --git a/Zotlabs/Module/Item.php b/Zotlabs/Module/Item.php
index 97b1e883d..ac2067356 100644
--- a/Zotlabs/Module/Item.php
+++ b/Zotlabs/Module/Item.php
@@ -755,71 +755,64 @@ class Item extends \Zotlabs\Web\Controller {
$plink = z_root() . '/channel/' . $channel['channel_address'] . '/?f=&mid=' . $mid;
}
-
-
-
-
- $datarray['aid'] = $channel['channel_account_id'];
- $datarray['uid'] = $profile_uid;
-
- $datarray['owner_xchan'] = (($owner_hash) ? $owner_hash : $owner_xchan['xchan_hash']);
- $datarray['author_xchan'] = $observer['xchan_hash'];
- $datarray['created'] = $created;
- $datarray['edited'] = (($orig_post) ? datetime_convert() : $created);
- $datarray['expires'] = $expires;
- $datarray['commented'] = (($orig_post) ? datetime_convert() : $created);
- $datarray['received'] = (($orig_post) ? datetime_convert() : $created);
- $datarray['changed'] = (($orig_post) ? datetime_convert() : $created);
- $datarray['mid'] = $mid;
- $datarray['parent_mid'] = $parent_mid;
- $datarray['mimetype'] = $mimetype;
- $datarray['title'] = $title;
- $datarray['body'] = $body;
- $datarray['app'] = $app;
- $datarray['location'] = $location;
- $datarray['coord'] = $coord;
- $datarray['verb'] = $verb;
- $datarray['obj_type'] = $obj_type;
- $datarray['allow_cid'] = $str_contact_allow;
- $datarray['allow_gid'] = $str_group_allow;
- $datarray['deny_cid'] = $str_contact_deny;
- $datarray['deny_gid'] = $str_group_deny;
- $datarray['item_private'] = $private;
- $datarray['item_wall'] = $item_wall;
- $datarray['attach'] = $attachments;
- $datarray['thr_parent'] = $thr_parent;
- $datarray['postopts'] = $postopts;
- $datarray['item_unseen'] = $item_unseen;
- $datarray['item_wall'] = $item_wall;
- $datarray['item_origin'] = $item_origin;
- $datarray['item_type'] = $webpage;
- $datarray['item_thread_top'] = $item_thread_top;
- $datarray['item_unseen'] = $item_unseen;
- $datarray['item_starred'] = $item_starred;
- $datarray['item_uplink'] = $item_uplink;
- $datarray['item_consensus'] = $item_consensus;
- $datarray['item_notshown'] = $item_notshown;
- $datarray['item_nsfw'] = $item_nsfw;
- $datarray['item_relay'] = $item_relay;
- $datarray['item_mentionsme'] = $item_mentionsme;
- $datarray['item_nocomment'] = $item_nocomment;
- $datarray['item_obscured'] = $item_obscured;
- $datarray['item_verified'] = $item_verified;
- $datarray['item_retained'] = $item_retained;
- $datarray['item_rss'] = $item_rss;
- $datarray['item_deleted'] = $item_deleted;
- $datarray['item_hidden'] = $item_hidden;
- $datarray['item_unpublished'] = $item_unpublished;
- $datarray['item_delayed'] = $item_delayed;
- $datarray['item_pending_remove'] = $item_pending_remove;
- $datarray['item_blocked'] = $item_blocked;
-
- $datarray['layout_mid'] = $layout_mid;
- $datarray['public_policy'] = $public_policy;
- $datarray['comment_policy'] = map_scope($comment_policy);
- $datarray['term'] = $post_tags;
- $datarray['plink'] = $plink;
- $datarray['route'] = $route;
+ $datarray['aid'] = $channel['channel_account_id'];
+ $datarray['uid'] = $profile_uid;
+ $datarray['owner_xchan'] = (($owner_hash) ? $owner_hash : $owner_xchan['xchan_hash']);
+ $datarray['author_xchan'] = $observer['xchan_hash'];
+ $datarray['created'] = $created;
+ $datarray['edited'] = (($orig_post) ? datetime_convert() : $created);
+ $datarray['expires'] = $expires;
+ $datarray['commented'] = (($orig_post) ? datetime_convert() : $created);
+ $datarray['received'] = (($orig_post) ? datetime_convert() : $created);
+ $datarray['changed'] = (($orig_post) ? datetime_convert() : $created);
+ $datarray['mid'] = $mid;
+ $datarray['parent_mid'] = $parent_mid;
+ $datarray['mimetype'] = $mimetype;
+ $datarray['title'] = $title;
+ $datarray['body'] = $body;
+ $datarray['app'] = $app;
+ $datarray['location'] = $location;
+ $datarray['coord'] = $coord;
+ $datarray['verb'] = $verb;
+ $datarray['obj_type'] = $obj_type;
+ $datarray['allow_cid'] = $str_contact_allow;
+ $datarray['allow_gid'] = $str_group_allow;
+ $datarray['deny_cid'] = $str_contact_deny;
+ $datarray['deny_gid'] = $str_group_deny;
+ $datarray['attach'] = $attachments;
+ $datarray['thr_parent'] = $thr_parent;
+ $datarray['postopts'] = $postopts;
+ $datarray['item_unseen'] = intval($item_unseen);
+ $datarray['item_wall'] = intval($item_wall);
+ $datarray['item_origin'] = intval($item_origin);
+ $datarray['item_type'] = $webpage;
+ $datarray['item_private'] = intval($private);
+ $datarray['item_thread_top'] = intval($item_thread_top);
+ $datarray['item_unseen'] = intval($item_unseen);
+ $datarray['item_starred'] = intval($item_starred);
+ $datarray['item_uplink'] = intval($item_uplink);
+ $datarray['item_consensus'] = intval($item_consensus);
+ $datarray['item_notshown'] = intval($item_notshown);
+ $datarray['item_nsfw'] = intval($item_nsfw);
+ $datarray['item_relay'] = intval($item_relay);
+ $datarray['item_mentionsme'] = intval($item_mentionsme);
+ $datarray['item_nocomment'] = intval($item_nocomment);
+ $datarray['item_obscured'] = intval($item_obscured);
+ $datarray['item_verified'] = intval($item_verified);
+ $datarray['item_retained'] = intval($item_retained);
+ $datarray['item_rss'] = intval($item_rss);
+ $datarray['item_deleted'] = intval($item_deleted);
+ $datarray['item_hidden'] = intval($item_hidden);
+ $datarray['item_unpublished'] = intval($item_unpublished);
+ $datarray['item_delayed'] = intval($item_delayed);
+ $datarray['item_pending_remove'] = intval($item_pending_remove);
+ $datarray['item_blocked'] = intval($item_blocked);
+ $datarray['layout_mid'] = $layout_mid;
+ $datarray['public_policy'] = $public_policy;
+ $datarray['comment_policy'] = map_scope($comment_policy);
+ $datarray['term'] = $post_tags;
+ $datarray['plink'] = $plink;
+ $datarray['route'] = $route;
if($iconfig)
$datarray['iconfig'] = $iconfig;
diff --git a/Zotlabs/Module/Magic.php b/Zotlabs/Module/Magic.php
index 6798f72a9..9ee5f9324 100644
--- a/Zotlabs/Module/Magic.php
+++ b/Zotlabs/Module/Magic.php
@@ -140,7 +140,7 @@ class Magic extends \Zotlabs\Web\Controller {
\Zotlabs\Zot\Verify::create('auth',$channel['channel_id'],$token,$x[0]['hubloc_url']);
- $target_url = $x[0]['hubloc_callback'] . '/?f=&auth=' . urlencode($channel['channel_address'] . '@' . \App::get_hostname())
+ $target_url = $x[0]['hubloc_callback'] . '/?f=&auth=' . urlencode(channel_reddress($channel))
. '&sec=' . $token . '&dest=' . urlencode($dest) . '&version=' . ZOT_REVISION;
if($delegate)
diff --git a/Zotlabs/Module/Mail.php b/Zotlabs/Module/Mail.php
index 043c28078..a61b02cdf 100644
--- a/Zotlabs/Module/Mail.php
+++ b/Zotlabs/Module/Mail.php
@@ -60,7 +60,7 @@ class Mail extends \Zotlabs\Web\Controller {
if($j['permissions']['data']) {
$permissions = crypto_unencapsulate($j['permissions'],$channel['channel_prvkey']);
if($permissions)
- $permissions = json_decode($permissions);
+ $permissions = json_decode($permissions, true);
logger('decrypted permissions: ' . print_r($permissions,true), LOGGER_DATA);
}
else
@@ -332,7 +332,7 @@ class Mail extends \Zotlabs\Web\Controller {
'delete' => t('Delete message'),
'dreport' => t('Delivery report'),
'recall' => t('Recall message'),
- 'can_recall' => (($channel['channel_hash'] == $message['from_xchan']) ? true : false),
+ 'can_recall' => (($channel['channel_hash'] == $message['from_xchan'] && get_account_techlevel() > 0) ? true : false),
'is_recalled' => (intval($message['mail_recalled']) ? t('Message has been recalled.') : ''),
'date' => datetime_convert('UTC',date_default_timezone_get(),$message['created'], 'c'),
);
diff --git a/Zotlabs/Module/Manage.php b/Zotlabs/Module/Manage.php
index 8f815d6d4..ec9ef4c06 100644
--- a/Zotlabs/Module/Manage.php
+++ b/Zotlabs/Module/Manage.php
@@ -143,7 +143,7 @@ class Manage extends \Zotlabs\Web\Controller {
$create = array( 'new_channel', t('Create a new channel'), t('Create New'));
$delegates = q("select * from abook left join xchan on abook_xchan = xchan_hash where
- abook_channel = %d and abook_xchan in ( select xchan from abconfig where chan = %d and cat = 'their_perms' and k = 'delegate' and v = 1 )",
+ abook_channel = %d and abook_xchan in ( select xchan from abconfig where chan = %d and cat = 'their_perms' and k = 'delegate' and v = '1' )",
intval(local_channel()),
intval(local_channel())
);
diff --git a/Zotlabs/Module/Network.php b/Zotlabs/Module/Network.php
index 0128adc2c..4f831c050 100644
--- a/Zotlabs/Module/Network.php
+++ b/Zotlabs/Module/Network.php
@@ -61,6 +61,7 @@ class Network extends \Zotlabs\Web\Controller {
$search = (($_GET['search']) ? $_GET['search'] : '');
if($search) {
+ $_GET['netsearch'] = escape_tags($search);
if(strpos($search,'@') === 0) {
$r = q("select abook_id from abook left join xchan on abook_xchan = xchan_hash where xchan_name = '%s' and abook_channel = %d limit 1",
dbesc(substr($search,1)),
@@ -138,7 +139,7 @@ class Network extends \Zotlabs\Web\Controller {
if($_GET['pf'] === '1')
$deftag = '@' . t('forum') . '+' . intval($cid) . '+';
else
- $def_acl = array('allow_cid' => '<' . $r[0]['abook_xchan'] . '>');
+ $def_acl = [ 'allow_cid' => '<' . $r[0]['abook_xchan'] . '>', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '' ];
}
if(! $update) {
@@ -159,7 +160,7 @@ class Network extends \Zotlabs\Web\Controller {
'allow_gid' => $channel['channel_allow_gid'],
'deny_cid' => $channel['channel_deny_cid'],
'deny_gid' => $channel['channel_deny_gid']
- );
+ );
$private_editing = ((($group || $cid) && (! intval($_GET['pf']))) ? true : false);
@@ -176,7 +177,8 @@ class Network extends \Zotlabs\Web\Controller {
'profile_uid' => local_channel(),
'editor_autocomplete' => true,
'bbco_autocomplete' => 'bbcode',
- 'bbcode' => true
+ 'bbcode' => true,
+ 'jotnets' => true
);
if($deftag)
$x['pretext'] = $deftag;
diff --git a/Zotlabs/Module/New_channel.php b/Zotlabs/Module/New_channel.php
index 26883b6e2..8e6fd1d37 100644
--- a/Zotlabs/Module/New_channel.php
+++ b/Zotlabs/Module/New_channel.php
@@ -125,11 +125,16 @@ class New_channel extends \Zotlabs\Web\Controller {
}
}
+ $privacy_role = ((x($_REQUEST,'permissions_role')) ? $_REQUEST['permissions_role'] : "" );
+
+ $perm_roles = \Zotlabs\Access\PermissionRoles::roles();
+ if((get_account_techlevel() < 4) && $privacy_role !== 'custom')
+ unset($perm_roles[t('Other')]);
+
$name = array('name', t('Name or caption'), ((x($_REQUEST,'name')) ? $_REQUEST['name'] : ''), t('Examples: "Bob Jameson", "Lisa and her Horses", "Soccer", "Aviation Group"'), "*");
$nickhub = '@' . \App::get_hostname();
$nickname = array('nickname', t('Choose a short nickname'), ((x($_REQUEST,'nickname')) ? $_REQUEST['nickname'] : ''), sprintf( t('Your nickname will be used to create an easy to remember channel address e.g. nickname%s'), $nickhub), "*");
- $privacy_role = ((x($_REQUEST,'permissions_role')) ? $_REQUEST['permissions_role'] : "" );
- $role = array('permissions_role' , t('Channel role and privacy'), ($privacy_role) ? $privacy_role : 'social', t('Select a channel role with your privacy requirements.') . ' <a href="help/roles" target="_blank">' . t('Read more about roles') . '</a>',get_roles());
+ $role = array('permissions_role' , t('Channel role and privacy'), ($privacy_role) ? $privacy_role : 'social', t('Select a channel role with your privacy requirements.') . ' <a href="help/roles" target="_blank">' . t('Read more about roles') . '</a>',$perm_roles);
$o = replace_macros(get_markup_template('new_channel.tpl'), array(
'$title' => t('Create Channel'),
diff --git a/Zotlabs/Module/Oembed.php b/Zotlabs/Module/Oembed.php
index b02182053..6f61ab4d8 100644
--- a/Zotlabs/Module/Oembed.php
+++ b/Zotlabs/Module/Oembed.php
@@ -22,7 +22,7 @@ class Oembed extends \Zotlabs\Web\Controller {
}
else {
- echo "<html><body>";
+ echo "<html><head><base target=\"_blank\" /></head><body>";
$src = base64url_decode(argv(1));
$j = oembed_fetch_url($src);
echo $j->html;
diff --git a/Zotlabs/Module/Pdledit.php b/Zotlabs/Module/Pdledit.php
index 5cb00f165..618444480 100644
--- a/Zotlabs/Module/Pdledit.php
+++ b/Zotlabs/Module/Pdledit.php
@@ -9,6 +9,9 @@ class Pdledit extends \Zotlabs\Web\Controller {
return;
if(! $_REQUEST['module'])
return;
+ if(! feature_enabled(local_channel(),'advanced_theming'))
+ return;
+
if(! trim($_REQUEST['content'])) {
del_pconfig(local_channel(),'system','mod_' . $_REQUEST['module'] . '.pdl');
goaway(z_root() . '/pdledit/' . $_REQUEST['module']);
@@ -26,6 +29,11 @@ class Pdledit extends \Zotlabs\Web\Controller {
notice( t('Permission denied.') . EOL);
return;
}
+
+ if(! feature_enabled(local_channel(),'advanced_theming')) {
+ notice( t('Feature disabled.') . EOL);
+ return;
+ }
if(argc() > 1)
$module = 'mod_' . argv(1) . '.pdl';
diff --git a/Zotlabs/Module/Photo.php b/Zotlabs/Module/Photo.php
index 66aaec49f..a16206299 100644
--- a/Zotlabs/Module/Photo.php
+++ b/Zotlabs/Module/Photo.php
@@ -133,7 +133,16 @@ class Photo extends \Zotlabs\Web\Controller {
$allowed = (($r[0]['uid']) ? perm_is_allowed($r[0]['uid'],$observer_xchan,'view_storage') : true);
$sql_extra = permissions_sql($r[0]['uid']);
+
+ if(! $sql_extra)
+ $sql_extra = ' and true ';
+
+ // Only check permissions on normal photos. Those photos we don't check includes
+ // profile photos, xchan photos (which are also profile photos), 'thing' photos,
+ // and cover photos
+ $sql_extra = " and (( photo_usage = 0 $sql_extra ) or photo_usage != 0 )";
+
$channel = channelx_by_n($r[0]['uid']);
// Now we'll see if we can access the photo
diff --git a/Zotlabs/Module/Photos.php b/Zotlabs/Module/Photos.php
index 6aeac7af7..040a90aaa 100644
--- a/Zotlabs/Module/Photos.php
+++ b/Zotlabs/Module/Photos.php
@@ -50,7 +50,7 @@ class Photos extends \Zotlabs\Web\Controller {
- function post() {
+ function post() {
logger('mod-photos: photos_post: begin' , LOGGER_DEBUG);
@@ -106,24 +106,6 @@ class Photos extends \Zotlabs\Web\Controller {
/*
- * RENAME photo album
- */
-
- $newalbum = notags(trim($_REQUEST['albumname']));
- if($newalbum != $album) {
-
- // @fixme - syncronise with DAV or disallow completely
-
- goaway(z_root() . '/' . $_SESSION['photo_return']);
-
- // $x = photos_album_rename($page_owner_uid,$album,$newalbum);
- // if($x) {
- // $newurl = str_replace(bin2hex($album),bin2hex($newalbum),$_SESSION['photo_return']);
- // goaway(z_root() . '/' . $newurl);
- // }
- }
-
- /*
* DELETE photo album and all its photos
*/
@@ -229,15 +211,25 @@ class Photos extends \Zotlabs\Web\Controller {
goaway(z_root() . '/photos/' . \App::$data['channel']['channel_address'] . '/album/' . $_SESSION['album_return']);
}
-
-
- if((\App::$argc > 2) && ((x($_POST,'desc') !== false) || (x($_POST,'newtag') !== false)) || (x($_POST,'albname') !== false)) {
-
+
+ if((argc() > 2) && array_key_exists('move_to_album',$_POST)) {
+ $m = q("select folder from attach where hash = '%s' and uid = %d limit 1",
+ dbesc(argv(2)),
+ intval($page_owner_uid)
+ );
+ if(($m) && ($m[0]['folder'] != $_POST['move_to_album'])) {
+ attach_move($page_owner_uid,argv(2),$_POST['move_to_album']);
+ if(! ($_POST['desc'] && $_POST['newtag']))
+ goaway(z_root() . '/' . $_SESSION['photo_return']);
+ }
+ }
+
+ if((argc() > 2) && ((x($_POST,'desc') !== false) || (x($_POST,'newtag') !== false))) {
$desc = ((x($_POST,'desc')) ? notags(trim($_POST['desc'])) : '');
$rawtags = ((x($_POST,'newtag')) ? notags(trim($_POST['newtag'])) : '');
$item_id = ((x($_POST,'item_id')) ? intval($_POST['item_id']) : 0);
- $albname = ((x($_POST,'albname')) ? notags(trim($_POST['albname'])) : '');
+
$is_nsfw = ((x($_POST,'adult')) ? intval($_POST['adult']) : 0);
$acl->set_from_array($_POST);
@@ -245,10 +237,6 @@ class Photos extends \Zotlabs\Web\Controller {
$resource_id = argv(2);
- if(! strlen($albname))
- $albname = datetime_convert('UTC',date_default_timezone_get(),'now', 'Y');
-
-
if((x($_POST,'rotate') !== false) &&
( (intval($_POST['rotate']) == 1) || (intval($_POST['rotate']) == 2) )) {
logger('rotate');
@@ -464,14 +452,15 @@ class Photos extends \Zotlabs\Web\Controller {
}
}
-
- goaway(z_root() . '/' . $_SESSION['photo_return']);
- return; // NOTREACHED
-
+
$sync = attach_export_data(\App::$data['channel'],$resource_id);
if($sync)
build_sync_packet($page_owner_uid,array('file' => array($sync)));
+
+ goaway(z_root() . '/' . $_SESSION['photo_return']);
+ return; // NOTREACHED
+
}
@@ -1023,12 +1012,22 @@ class Photos extends \Zotlabs\Web\Controller {
$edit = null;
if($can_post) {
+
+ $m = q("select folder from attach where hash = '%s' and uid = %d limit 1",
+ dbesc($ph[0]['resource_id']),
+ intval($ph[0]['uid'])
+ );
+ if($m)
+ $album_hash = $m[0]['folder'];
+
$album_e = $ph[0]['album'];
$caption_e = $ph[0]['description'];
$aclselect_e = (($_is_owner) ? populate_acl($ph[0], true, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_storage')) : '');
$albums = ((array_key_exists('albums', \App::$data)) ? \App::$data['albums'] : photos_albums_list(\App::$data['channel'],\App::$data['observer']));
$_SESSION['album_return'] = bin2hex($ph[0]['album']);
+
+ $folder_list = attach_folder_select_list($ph[0]['uid']);
$edit = array(
'edit' => t('Edit photo'),
@@ -1037,6 +1036,7 @@ class Photos extends \Zotlabs\Web\Controller {
'rotateccw' => t('Rotate CCW (left)'),
'albums' => $albums['albums'],
'album' => $album_e,
+ 'album_select' => [ 'move_to_album', t('Move photo to album'), $album_hash, '', $folder_list ],
'newalbum_label' => t('Enter a new album name'),
'newalbum_placeholder' => t('or select an existing one (doubleclick)'),
'nickname' => \App::$data['channel']['channel_address'],
diff --git a/Zotlabs/Module/Pubsites.php b/Zotlabs/Module/Pubsites.php
index 0dda08e6d..1c9cd5121 100644
--- a/Zotlabs/Module/Pubsites.php
+++ b/Zotlabs/Module/Pubsites.php
@@ -16,7 +16,9 @@ class Pubsites extends \Zotlabs\Web\Controller {
$url = $directory['url'] . '/dirsearch';
}
$url .= '/sites';
-
+
+ $rating_enabled = get_config('system','rating_enabled');
+
$o .= '<div class="generic-content-wrapper">';
$o .= '<div class="section-title-wrapper"><h2>' . t('Public Hubs') . '</h2></div>';
@@ -28,12 +30,20 @@ class Pubsites extends \Zotlabs\Web\Controller {
if($ret['success']) {
$j = json_decode($ret['body'],true);
if($j) {
- $o .= '<table class="table table-striped table-hover"><tr><td>' . t('Hub URL') . '</td><td>' . t('Access Type') . '</td><td>' . t('Registration Policy') . '</td><td>' . t('Stats') . '</td><td>' . t('Software') . '</td><td colspan="2">' . t('Ratings') . '</td></tr>';
+ $o .= '<table class="table table-striped table-hover"><tr><td>' . t('Hub URL') . '</td><td>' . t('Access Type') . '</td><td>' . t('Registration Policy') . '</td><td>' . t('Stats') . '</td><td>' . t('Software') . '</td>';
+ if($rating_enabled)
+ $o .= '<td colspan="2">' . t('Ratings') . '</td>';
+ $o .= '</tr>';
if($j['sites']) {
foreach($j['sites'] as $jj) {
- $m = parse_url($jj['url']);
- if(strpos($jj['project'],\Zotlabs\Lib\System::get_platform_name()) === false)
+ if(! $jj['project'])
continue;
+ if(strpos($jj['version'],' ')) {
+ $x = explode(' ', $jj['version']);
+ if($x[1])
+ $jj['version'] = $x[1];
+ }
+ $m = parse_url($jj['url']);
$host = strtolower(substr($jj['url'],strpos($jj['url'],'://')+3));
$rate_links = ((local_channel()) ? '<td><a href="rate?f=&target=' . $host . '" class="btn-btn-default"><i class="fa fa-check-square-o"></i> ' . t('Rate') . '</a></td>' : '');
$location = '';
@@ -44,7 +54,10 @@ class Pubsites extends \Zotlabs\Web\Controller {
$location = '<br />&nbsp;';
}
$urltext = str_replace(array('https://'), '', $jj['url']);
- $o .= '<tr><td><a href="'. (($jj['sellpage']) ? $jj['sellpage'] : $jj['url'] . '/register' ) . '" ><i class="fa fa-link"></i> ' . $urltext . '</a>' . $location . '</td><td>' . $jj['access'] . '</td><td>' . $jj['register'] . '</td><td>' . '<a target="stats" href="https://hubchart-tarine.rhcloud.com/hub.jsp?hubFqdn=' . $m['host'] . '"><i class="fa fa-area-chart"></i></a></td><td>' . ucwords($jj['project']) . '</td><td><a href="ratings/' . $host . '" class="btn-btn-default"><i class="fa fa-eye"></i> ' . t('View') . '</a></td>' . $rate_links . '</tr>';
+ $o .= '<tr><td><a href="'. (($jj['sellpage']) ? $jj['sellpage'] : $jj['url'] . '/register' ) . '" ><i class="fa fa-link"></i> ' . $urltext . '</a>' . $location . '</td><td>' . $jj['access'] . '</td><td>' . $jj['register'] . '</td><td>' . '<a target="stats" href="https://hubchart-tarine.rhcloud.com/hub.jsp?hubFqdn=' . $m['host'] . '"><i class="fa fa-area-chart"></i></a></td><td>' . ucwords($jj['project']) . (($jj['version']) ? ' ' . $jj['version'] : '') . '</td>';
+ if($rating_enabled)
+ $o .= '<td><a href="ratings/' . $host . '" class="btn-btn-default"><i class="fa fa-eye"></i> ' . t('View') . '</a></td>' . $rate_links ;
+ $o .= '</tr>';
}
}
diff --git a/Zotlabs/Module/Rate.php b/Zotlabs/Module/Rate.php
index 2f769b36b..c03aaa54f 100644
--- a/Zotlabs/Module/Rate.php
+++ b/Zotlabs/Module/Rate.php
@@ -119,8 +119,8 @@ class Rate extends \Zotlabs\Web\Controller {
// return;
// }
- $poco_rating = get_config('system','poco_rating_enable');
- if((! $poco_rating) && ($poco_rating !== false)) {
+ $rating_enabled = get_config('system','rating_enabled');
+ if(! $rating_enabled) {
notice('Ratings are disabled on this site.');
return;
}
@@ -141,11 +141,7 @@ class Rate extends \Zotlabs\Web\Controller {
$rating_text = '';
}
- // if unset default to enabled
- if($poco_rating === false)
- $poco_rating = true;
-
- if($poco_rating) {
+ if($rating_enabled) {
$rating = replace_macros(get_markup_template('rating_slider.tpl'),array(
'$min' => -10,
'$val' => $rating_val
diff --git a/Zotlabs/Module/Ratings.php b/Zotlabs/Module/Ratings.php
index 969fb5015..055b16ca3 100644
--- a/Zotlabs/Module/Ratings.php
+++ b/Zotlabs/Module/Ratings.php
@@ -21,12 +21,9 @@ class Ratings extends \Zotlabs\Web\Controller {
if($x)
$url = $x['url'];
- $poco_rating = get_config('system','poco_rating_enable');
- // if unset default to enabled
- if($poco_rating === false)
- $poco_rating = true;
+ $rating_enabled = get_config('system','rating_enabled');
- if(! $poco_rating)
+ if(! $rating_enabled)
return;
if(argc() > 1)
@@ -87,12 +84,9 @@ class Ratings extends \Zotlabs\Web\Controller {
return;
}
- $poco_rating = get_config('system','poco_rating_enable');
- // if unset default to enabled
- if($poco_rating === false)
- $poco_rating = true;
+ $rating_enabled = get_config('system','rating_enabled');
- if(! $poco_rating)
+ if(! $rating_enabled)
return;
$site_target = ((array_key_exists('target',\App::$data) && array_key_exists('site_url',\App::$data['target'])) ?
diff --git a/Zotlabs/Module/Register.php b/Zotlabs/Module/Register.php
index 4cdd27001..1d8944d8e 100644
--- a/Zotlabs/Module/Register.php
+++ b/Zotlabs/Module/Register.php
@@ -38,7 +38,7 @@ class Register extends \Zotlabs\Web\Controller {
}
- function post() {
+ function post() {
$max_dailies = intval(get_config('system','max_daily_registrations'));
if($max_dailies) {
@@ -174,7 +174,7 @@ class Register extends \Zotlabs\Web\Controller {
- function get() {
+ function get() {
$registration_is = '';
$other_sites = '';
@@ -205,6 +205,12 @@ class Register extends \Zotlabs\Web\Controller {
return;
}
}
+
+ $privacy_role = ((x($_REQUEST,'permissions_role')) ? $_REQUEST['permissions_role'] : "");
+
+ $perm_roles = \Zotlabs\Access\PermissionRoles::roles();
+ if((get_account_techlevel() < 4) && $privacy_role !== 'custom')
+ unset($perm_roles[t('Other')]);
// Configurable terms of service link
@@ -231,8 +237,7 @@ class Register extends \Zotlabs\Web\Controller {
$name = array('name', t('Name or caption'), ((x($_REQUEST,'name')) ? $_REQUEST['name'] : ''), t('Examples: "Bob Jameson", "Lisa and her Horses", "Soccer", "Aviation Group"'));
$nickhub = '@' . str_replace(array('http://','https://','/'), '', get_config('system','baseurl'));
$nickname = array('nickname', t('Choose a short nickname'), ((x($_REQUEST,'nickname')) ? $_REQUEST['nickname'] : ''), sprintf( t('Your nickname will be used to create an easy to remember channel address e.g. nickname%s'), $nickhub));
- $privacy_role = ((x($_REQUEST,'permissions_role')) ? $_REQUEST['permissions_role'] : "");
- $role = array('permissions_role' , t('Channel role and privacy'), ($privacy_role) ? $privacy_role : 'social', t('Select a channel role with your privacy requirements.') . ' <a href="help/roles" target="_blank">' . t('Read more about roles') . '</a>',get_roles());
+ $role = array('permissions_role' , t('Channel role and privacy'), ($privacy_role) ? $privacy_role : 'social', t('Select a channel role with your privacy requirements.') . ' <a href="help/roles" target="_blank">' . t('Read more about roles') . '</a>',$perm_roles);
$tos = array('tos', $label_tos, '', '', array(t('no'),t('yes')));
$server_role = get_config('system','server_role');
@@ -254,11 +259,11 @@ class Register extends \Zotlabs\Web\Controller {
'$invite_code' => $invite_code,
'$auto_create' => $auto_create,
'$name' => $name,
- '$role' => $role,
+ '$role' => $role,
'$default_role' => $default_role,
'$nickname' => $nickname,
'$enable_tos' => $enable_tos,
- '$tos' => $tos,
+ '$tos' => $tos,
'$email' => $email,
'$pass1' => $password,
'$pass2' => $password2,
diff --git a/Zotlabs/Module/Rpost.php b/Zotlabs/Module/Rpost.php
index 525f053de..1349cd1c5 100644
--- a/Zotlabs/Module/Rpost.php
+++ b/Zotlabs/Module/Rpost.php
@@ -126,7 +126,10 @@ class Rpost extends \Zotlabs\Web\Controller {
'source' => ((x($_REQUEST,'source')) ? strip_tags($_REQUEST['source']) : ''),
'return_path' => 'rpost/return',
'bbco_autocomplete' => 'bbcode',
- 'bbcode' => true
+ 'editor_autocomplete'=> true,
+ 'bbcode' => true,
+ 'jotnets' => true
+
);
$editor = status_editor($a,$x);
diff --git a/Zotlabs/Module/Search_ac.php b/Zotlabs/Module/Search_ac.php
index 4e936d97b..a3bc18054 100644
--- a/Zotlabs/Module/Search_ac.php
+++ b/Zotlabs/Module/Search_ac.php
@@ -72,7 +72,7 @@ class Search_ac extends \Zotlabs\Web\Controller {
);
echo json_encode($o);
- logger('search_ac: ' . print_r($x,true));
+ logger('search_ac: ' . print_r($x,true),LOGGER_ALL,LOG_INFO);
killme();
}
diff --git a/Zotlabs/Module/Settings.php b/Zotlabs/Module/Settings.php
index 2679b364b..76794e21c 100644
--- a/Zotlabs/Module/Settings.php
+++ b/Zotlabs/Module/Settings.php
@@ -6,6 +6,8 @@ require_once('include/security.php');
class Settings extends \Zotlabs\Web\Controller {
+ private $sm = null;
+
function init() {
if(! local_channel())
return;
@@ -22,6 +24,8 @@ class Settings extends \Zotlabs\Web\Controller {
\App::$argc = 2;
\App::$argv[] = 'channel';
}
+
+ $this->sm = new \Zotlabs\Web\SubModule();
}
@@ -33,633 +37,24 @@ class Settings extends \Zotlabs\Web\Controller {
if($_SESSION['delegate'])
return;
- $channel = \App::get_channel();
-
// logger('mod_settings: ' . print_r($_REQUEST,true));
-
- if((argc() > 1) && (argv(1) === 'oauth') && x($_POST,'remove')){
- check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth');
-
- $key = $_POST['remove'];
- q("DELETE FROM tokens WHERE id='%s' AND uid=%d",
- dbesc($key),
- local_channel());
- goaway(z_root()."/settings/oauth/");
- return;
- }
-
- if((argc() > 2) && (argv(1) === 'oauth') && (argv(2) === 'edit'||(argv(2) === 'add')) && x($_POST,'submit')) {
-
- check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth');
-
- $name = ((x($_POST,'name')) ? $_POST['name'] : '');
- $key = ((x($_POST,'key')) ? $_POST['key'] : '');
- $secret = ((x($_POST,'secret')) ? $_POST['secret'] : '');
- $redirect = ((x($_POST,'redirect')) ? $_POST['redirect'] : '');
- $icon = ((x($_POST,'icon')) ? $_POST['icon'] : '');
- $ok = true;
- if($name == '') {
- $ok = false;
- notice( t('Name is required') . EOL);
- }
- if($key == '' || $secret == '') {
- $ok = false;
- notice( t('Key and Secret are required') . EOL);
- }
-
- if($ok) {
- if ($_POST['submit']==t("Update")){
- $r = q("UPDATE clients SET
- client_id='%s',
- pw='%s',
- clname='%s',
- redirect_uri='%s',
- icon='%s',
- uid=%d
- WHERE client_id='%s'",
- dbesc($key),
- dbesc($secret),
- dbesc($name),
- dbesc($redirect),
- dbesc($icon),
- intval(local_channel()),
- dbesc($key));
- } else {
- $r = q("INSERT INTO clients (client_id, pw, clname, redirect_uri, icon, uid)
- VALUES ('%s','%s','%s','%s','%s',%d)",
- dbesc($key),
- dbesc($secret),
- dbesc($name),
- dbesc($redirect),
- dbesc($icon),
- intval(local_channel())
- );
- $r = q("INSERT INTO xperm (xp_client, xp_channel, xp_perm) VALUES ('%s', %d, '%s') ",
- dbesc($key),
- intval(local_channel()),
- dbesc('all')
- );
- }
- }
- goaway(z_root()."/settings/oauth/");
- return;
- }
-
- if((argc() > 1) && (argv(1) == 'featured')) {
- check_form_security_token_redirectOnErr('/settings/featured', 'settings_featured');
-
- call_hooks('feature_settings_post', $_POST);
-
- build_sync_packet();
- return;
- }
-
-
- if((argc() > 1) && (argv(1) == 'tokens')) {
- check_form_security_token_redirectOnErr('/settings/tokens', 'settings_tokens');
- $token_errs = 0;
- if(array_key_exists('token',$_POST)) {
- $atoken_id = (($_POST['atoken_id']) ? intval($_POST['atoken_id']) : 0);
- $name = trim(escape_tags($_POST['name']));
- $token = trim($_POST['token']);
- if((! $name) || (! $token))
- $token_errs ++;
- if(trim($_POST['expires']))
- $expires = datetime_convert(date_default_timezone_get(),'UTC',$_POST['expires']);
- else
- $expires = NULL_DATE;
- $max_atokens = service_class_fetch(local_channel(),'access_tokens');
- if($max_atokens) {
- $r = q("select count(atoken_id) as total where atoken_uid = %d",
- intval(local_channel())
- );
- if($r && intval($r[0]['total']) >= $max_tokens) {
- notice( sprintf( t('This channel is limited to %d tokens'), $max_tokens) . EOL);
- return;
- }
- }
- }
- if($token_errs) {
- notice( t('Name and Password are required.') . EOL);
+ if(argc() > 1) {
+ if($this->sm->call('post') !== false) {
return;
}
- if($atoken_id) {
- $r = q("update atoken set atoken_name = '%s', atoken_token = '%s', atoken_expires = '%s'
- where atoken_id = %d and atoken_uid = %d",
- dbesc($name),
- dbesc($token),
- dbesc($expires),
- intval($atoken_id),
- intval($channel['channel_id'])
- );
- }
- else {
- $r = q("insert into atoken ( atoken_aid, atoken_uid, atoken_name, atoken_token, atoken_expires )
- values ( %d, %d, '%s', '%s', '%s' ) ",
- intval($channel['channel_account_id']),
- intval($channel['channel_id']),
- dbesc($name),
- dbesc($token),
- dbesc($expires)
- );
- }
-
- $atoken_xchan = substr($channel['channel_hash'],0,16) . '.' . $name;
-
- $all_perms = \Zotlabs\Access\Permissions::Perms();
-
- if($all_perms) {
- foreach($all_perms as $perm => $desc) {
- if(array_key_exists('perms_' . $perm, $_POST)) {
- set_abconfig($channel['channel_id'],$atoken_xchan,'my_perms',$perm,intval($_POST['perms_' . $perm]));
- }
- else {
- set_abconfig($channel['channel_id'],$atoken_xchan,'my_perms',$perm,0);
- }
- }
- }
-
-
- info( t('Token saved.') . EOL);
- return;
- }
-
-
-
- if((argc() > 1) && (argv(1) === 'features')) {
- check_form_security_token_redirectOnErr('/settings/features', 'settings_features');
-
- // Build list of features and check which are set
- $features = get_features();
- $all_features = array();
- foreach($features as $k => $v) {
- foreach($v as $f)
- $all_features[] = $f[0];
- }
- foreach($all_features as $k) {
- if(x($_POST,"feature_$k"))
- set_pconfig(local_channel(),'feature',$k, 1);
- else
- set_pconfig(local_channel(),'feature',$k, 0);
- }
- build_sync_packet();
- return;
- }
-
- if((argc() > 1) && (argv(1) == 'display')) {
-
- check_form_security_token_redirectOnErr('/settings/display', 'settings_display');
-
- $themespec = explode(':', \App::$channel['channel_theme']);
- $existing_theme = $themespec[0];
- $existing_schema = $themespec[1];
-
- $theme = ((x($_POST,'theme')) ? notags(trim($_POST['theme'])) : $existing_theme);
-
- if(! $theme)
- $theme = 'redbasic';
-
- $mobile_theme = ((x($_POST,'mobile_theme')) ? notags(trim($_POST['mobile_theme'])) : '');
- $preload_images = ((x($_POST,'preload_images')) ? intval($_POST['preload_images']) : 0);
- $user_scalable = ((x($_POST,'user_scalable')) ? intval($_POST['user_scalable']) : 0);
- $nosmile = ((x($_POST,'nosmile')) ? intval($_POST['nosmile']) : 0);
- $title_tosource = ((x($_POST,'title_tosource')) ? intval($_POST['title_tosource']) : 0);
- $channel_list_mode = ((x($_POST,'channel_list_mode')) ? intval($_POST['channel_list_mode']) : 0);
- $network_list_mode = ((x($_POST,'network_list_mode')) ? intval($_POST['network_list_mode']) : 0);
-
- $channel_divmore_height = ((x($_POST,'channel_divmore_height')) ? intval($_POST['channel_divmore_height']) : 400);
- if($channel_divmore_height < 50)
- $channel_divmore_height = 50;
- $network_divmore_height = ((x($_POST,'network_divmore_height')) ? intval($_POST['network_divmore_height']) : 400);
- if($network_divmore_height < 50)
- $network_divmore_height = 50;
-
- $browser_update = ((x($_POST,'browser_update')) ? intval($_POST['browser_update']) : 0);
- $browser_update = $browser_update * 1000;
- if($browser_update < 10000)
- $browser_update = 10000;
-
- $itemspage = ((x($_POST,'itemspage')) ? intval($_POST['itemspage']) : 20);
- if($itemspage > 100)
- $itemspage = 100;
-
- if ($mobile_theme == "---")
- del_pconfig(local_channel(),'system','mobile_theme');
- else {
- set_pconfig(local_channel(),'system','mobile_theme',$mobile_theme);
- }
-
- set_pconfig(local_channel(),'system','preload_images',$preload_images);
- set_pconfig(local_channel(),'system','user_scalable',$user_scalable);
- set_pconfig(local_channel(),'system','update_interval', $browser_update);
- set_pconfig(local_channel(),'system','itemspage', $itemspage);
- set_pconfig(local_channel(),'system','no_smilies',1-intval($nosmile));
- set_pconfig(local_channel(),'system','title_tosource',$title_tosource);
- set_pconfig(local_channel(),'system','channel_list_mode', $channel_list_mode);
- set_pconfig(local_channel(),'system','network_list_mode', $network_list_mode);
- set_pconfig(local_channel(),'system','channel_divmore_height', $channel_divmore_height);
- set_pconfig(local_channel(),'system','network_divmore_height', $network_divmore_height);
-
- $newschema = '';
- if($theme == $existing_theme){
- // call theme_post only if theme has not been changed
- if( ($themeconfigfile = $this->get_theme_config_file($theme)) != null){
- require_once($themeconfigfile);
- if(class_exists(ucfirst($theme) . 'Config')) {
- $clsname = ucfirst($theme) . 'Config';
- $theme_config = new $clsname();
- $schemas = $theme_config->get_schemas();
- if(array_key_exists($_POST['schema'],$schemas))
- $newschema = $_POST['schema'];
- if($newschema === '---')
- $newschema = '';
- }
-
- theme_post($a);
- }
- }
-
- logger('theme: ' . $theme . (($newschema) ? ':' . $newschema : ''));
-
- $_SESSION['theme'] = $theme . (($newschema) ? ':' . $newschema : '');
-
- $r = q("UPDATE channel SET channel_theme = '%s' WHERE channel_id = %d",
- dbesc($theme . (($newschema) ? ':' . $newschema : '')),
- intval(local_channel())
- );
-
- call_hooks('display_settings_post', $_POST);
- build_sync_packet();
- goaway(z_root() . '/settings/display' );
- return; // NOTREACHED
- }
-
-
- if(argc() > 1 && argv(1) === 'account') {
-
- check_form_security_token_redirectOnErr('/settings/account', 'settings_account');
-
- call_hooks('account_settings_post', $_POST);
- // call_hooks('settings_account', $_POST);
-
- $errs = array();
-
- $email = ((x($_POST,'email')) ? trim(notags($_POST['email'])) : '');
- $account = \App::get_account();
- if($email != $account['account_email']) {
- if(! valid_email($email))
- $errs[] = t('Not valid email.');
- $adm = trim(get_config('system','admin_email'));
- if(($adm) && (strcasecmp($email,$adm) == 0)) {
- $errs[] = t('Protected email address. Cannot change to that email.');
- $email = \App::$user['email'];
- }
- if(! $errs) {
- $r = q("update account set account_email = '%s' where account_id = %d",
- dbesc($email),
- intval($account['account_id'])
- );
- if(! $r)
- $errs[] = t('System failure storing new email. Please try again.');
- }
- }
-
- if($errs) {
- foreach($errs as $err)
- notice($err . EOL);
- $errs = array();
- }
-
-
- if((x($_POST,'npassword')) || (x($_POST,'confirm'))) {
-
- $origpass = trim($_POST['origpass']);
-
- require_once('include/auth.php');
- if(! account_verify_password($email,$origpass)) {
- $errs[] = t('Password verification failed.');
- }
-
- $newpass = trim($_POST['npassword']);
- $confirm = trim($_POST['confirm']);
-
- if($newpass != $confirm ) {
- $errs[] = t('Passwords do not match. Password unchanged.');
- }
-
- if((! x($newpass)) || (! x($confirm))) {
- $errs[] = t('Empty passwords are not allowed. Password unchanged.');
- }
-
- if(! $errs) {
- $salt = random_string(32);
- $password_encoded = hash('whirlpool', $salt . $newpass);
- $r = q("update account set account_salt = '%s', account_password = '%s', account_password_changed = '%s'
- where account_id = %d",
- dbesc($salt),
- dbesc($password_encoded),
- dbesc(datetime_convert()),
- intval(get_account_id())
- );
- if($r)
- info( t('Password changed.') . EOL);
- else
- $errs[] = t('Password update failed. Please try again.');
- }
- }
-
-
- if($errs) {
- foreach($errs as $err)
- notice($err . EOL);
- }
- goaway(z_root() . '/settings/account' );
- }
-
-
- check_form_security_token_redirectOnErr('/settings', 'settings');
-
- call_hooks('settings_post', $_POST);
-
- $set_perms = '';
-
- $role = ((x($_POST,'permissions_role')) ? notags(trim($_POST['permissions_role'])) : '');
- $oldrole = get_pconfig(local_channel(),'system','permissions_role');
-
- if(($role != $oldrole) || ($role === 'custom')) {
-
- if($role === 'custom') {
- $hide_presence = (((x($_POST,'hide_presence')) && (intval($_POST['hide_presence']) == 1)) ? 1: 0);
- $publish = (((x($_POST,'profile_in_directory')) && (intval($_POST['profile_in_directory']) == 1)) ? 1: 0);
- $def_group = ((x($_POST,'group-selection')) ? notags(trim($_POST['group-selection'])) : '');
- $r = q("update channel set channel_default_group = '%s' where channel_id = %d",
- dbesc($def_group),
- intval(local_channel())
- );
-
- $global_perms = \Zotlabs\Access\Permissions::Perms();
-
- foreach($global_perms as $k => $v) {
- \Zotlabs\Access\PermissionLimits::Set(local_channel(),$k,intval($_POST[$k]));
- }
- $acl = new \Zotlabs\Access\AccessList($channel);
- $acl->set_from_array($_POST);
- $x = $acl->get();
-
- $r = q("update channel set channel_allow_cid = '%s', channel_allow_gid = '%s',
- channel_deny_cid = '%s', channel_deny_gid = '%s' where channel_id = %d",
- dbesc($x['allow_cid']),
- dbesc($x['allow_gid']),
- dbesc($x['deny_cid']),
- dbesc($x['deny_gid']),
- intval(local_channel())
- );
- }
- else {
- $role_permissions = \Zotlabs\Access\PermissionRoles::role_perms($_POST['permissions_role']);
- if(! $role_permissions) {
- notice('Permissions category could not be found.');
- return;
- }
- $hide_presence = 1 - (intval($role_permissions['online']));
- if($role_permissions['default_collection']) {
- $r = q("select hash from groups where uid = %d and gname = '%s' limit 1",
- intval(local_channel()),
- dbesc( t('Friends') )
- );
- if(! $r) {
- require_once('include/group.php');
- group_add(local_channel(), t('Friends'));
- group_add_member(local_channel(),t('Friends'),$channel['channel_hash']);
- $r = q("select hash from groups where uid = %d and gname = '%s' limit 1",
- intval(local_channel()),
- dbesc( t('Friends') )
- );
- }
- if($r) {
- q("update channel set channel_default_group = '%s', channel_allow_gid = '%s', channel_allow_cid = '', channel_deny_gid = '', channel_deny_cid = '' where channel_id = %d",
- dbesc($r[0]['hash']),
- dbesc('<' . $r[0]['hash'] . '>'),
- intval(local_channel())
- );
- }
- else {
- notice( sprintf('Default privacy group \'%s\' not found. Please create and re-submit permission change.', t('Friends')) . EOL);
- return;
- }
- }
- // no default collection
- else {
- q("update channel set channel_default_group = '', channel_allow_gid = '', channel_allow_cid = '', channel_deny_gid = '',
- channel_deny_cid = '' where channel_id = %d",
- intval(local_channel())
- );
- }
-
- $x = \Zotlabs\Access\Permissions::FilledPerms($role_permissions['perms_connect']);
- foreach($x as $k => $v) {
- set_abconfig(local_channel(),$channel['channel_hash'],'my_perms',$k, $v);
- if($role_permissions['perms_auto']) {
- set_pconfig(local_channel(),'autoperms',$k,$v);
- }
- else {
- del_pconfig(local_channel(),'autoperms',$k);
- }
- }
-
- if($role_permissions['limits']) {
- foreach($role_permissions['limits'] as $k => $v) {
- \Zotlabs\Access\PermissionLimits::Set(local_channel(),$k,$v);
- }
- }
- if(array_key_exists('directory_publish',$role_permissions)) {
- $publish = intval($role_permissions['directory_publish']);
- }
- }
-
- set_pconfig(local_channel(),'system','hide_online_status',$hide_presence);
- set_pconfig(local_channel(),'system','permissions_role',$role);
- }
-
- $username = ((x($_POST,'username')) ? notags(trim($_POST['username'])) : '');
- $timezone = ((x($_POST,'timezone_select')) ? notags(trim($_POST['timezone_select'])) : '');
- $defloc = ((x($_POST,'defloc')) ? notags(trim($_POST['defloc'])) : '');
- $openid = ((x($_POST,'openid_url')) ? notags(trim($_POST['openid_url'])) : '');
- $maxreq = ((x($_POST,'maxreq')) ? intval($_POST['maxreq']) : 0);
- $expire = ((x($_POST,'expire')) ? intval($_POST['expire']) : 0);
- $evdays = ((x($_POST,'evdays')) ? intval($_POST['evdays']) : 3);
- $photo_path = ((x($_POST,'photo_path')) ? escape_tags(trim($_POST['photo_path'])) : '');
- $attach_path = ((x($_POST,'attach_path')) ? escape_tags(trim($_POST['attach_path'])) : '');
-
- $channel_menu = ((x($_POST['channel_menu'])) ? htmlspecialchars_decode(trim($_POST['channel_menu']),ENT_QUOTES) : '');
-
- $expire_items = ((x($_POST,'expire_items')) ? intval($_POST['expire_items']) : 0);
- $expire_starred = ((x($_POST,'expire_starred')) ? intval($_POST['expire_starred']) : 0);
- $expire_photos = ((x($_POST,'expire_photos'))? intval($_POST['expire_photos']) : 0);
- $expire_network_only = ((x($_POST,'expire_network_only'))? intval($_POST['expire_network_only']) : 0);
-
- $allow_location = (((x($_POST,'allow_location')) && (intval($_POST['allow_location']) == 1)) ? 1: 0);
-
- $blocktags = (((x($_POST,'blocktags')) && (intval($_POST['blocktags']) == 1)) ? 0: 1); // this setting is inverted!
- $unkmail = (((x($_POST,'unkmail')) && (intval($_POST['unkmail']) == 1)) ? 1: 0);
- $cntunkmail = ((x($_POST,'cntunkmail')) ? intval($_POST['cntunkmail']) : 0);
- $suggestme = ((x($_POST,'suggestme')) ? intval($_POST['suggestme']) : 0);
-
- $post_newfriend = (($_POST['post_newfriend'] == 1) ? 1: 0);
- $post_joingroup = (($_POST['post_joingroup'] == 1) ? 1: 0);
- $post_profilechange = (($_POST['post_profilechange'] == 1) ? 1: 0);
- $adult = (($_POST['adult'] == 1) ? 1 : 0);
-
- $cal_first_day = (((x($_POST,'first_day')) && (intval($_POST['first_day']) == 1)) ? 1: 0);
-
- $channel = \App::get_channel();
- $pageflags = $channel['channel_pageflags'];
- $existing_adult = (($pageflags & PAGE_ADULT) ? 1 : 0);
- if($adult != $existing_adult)
- $pageflags = ($pageflags ^ PAGE_ADULT);
-
-
- $notify = 0;
-
- if(x($_POST,'notify1'))
- $notify += intval($_POST['notify1']);
- if(x($_POST,'notify2'))
- $notify += intval($_POST['notify2']);
- if(x($_POST,'notify3'))
- $notify += intval($_POST['notify3']);
- if(x($_POST,'notify4'))
- $notify += intval($_POST['notify4']);
- if(x($_POST,'notify5'))
- $notify += intval($_POST['notify5']);
- if(x($_POST,'notify6'))
- $notify += intval($_POST['notify6']);
- if(x($_POST,'notify7'))
- $notify += intval($_POST['notify7']);
- if(x($_POST,'notify8'))
- $notify += intval($_POST['notify8']);
-
-
- $vnotify = 0;
-
- if(x($_POST,'vnotify1'))
- $vnotify += intval($_POST['vnotify1']);
- if(x($_POST,'vnotify2'))
- $vnotify += intval($_POST['vnotify2']);
- if(x($_POST,'vnotify3'))
- $vnotify += intval($_POST['vnotify3']);
- if(x($_POST,'vnotify4'))
- $vnotify += intval($_POST['vnotify4']);
- if(x($_POST,'vnotify5'))
- $vnotify += intval($_POST['vnotify5']);
- if(x($_POST,'vnotify6'))
- $vnotify += intval($_POST['vnotify6']);
- if(x($_POST,'vnotify7'))
- $vnotify += intval($_POST['vnotify7']);
- if(x($_POST,'vnotify8'))
- $vnotify += intval($_POST['vnotify8']);
- if(x($_POST,'vnotify9'))
- $vnotify += intval($_POST['vnotify9']);
- if(x($_POST,'vnotify10'))
- $vnotify += intval($_POST['vnotify10']);
- if(x($_POST,'vnotify11'))
- $vnotify += intval($_POST['vnotify11']);
-
- $always_show_in_notices = x($_POST,'always_show_in_notices') ? 1 : 0;
-
- $channel = \App::get_channel();
-
- $err = '';
-
- $name_change = false;
-
- if($username != $channel['channel_name']) {
- $name_change = true;
- require_once('include/channel.php');
- $err = validate_channelname($username);
- if($err) {
- notice($err);
- return;
- }
- }
-
- if($timezone != $channel['channel_timezone']) {
- if(strlen($timezone))
- date_default_timezone_set($timezone);
- }
-
- set_pconfig(local_channel(),'system','use_browser_location',$allow_location);
- set_pconfig(local_channel(),'system','suggestme', $suggestme);
- set_pconfig(local_channel(),'system','post_newfriend', $post_newfriend);
- set_pconfig(local_channel(),'system','post_joingroup', $post_joingroup);
- set_pconfig(local_channel(),'system','post_profilechange', $post_profilechange);
- set_pconfig(local_channel(),'system','blocktags',$blocktags);
- set_pconfig(local_channel(),'system','channel_menu',$channel_menu);
- set_pconfig(local_channel(),'system','vnotify',$vnotify);
- set_pconfig(local_channel(),'system','always_show_in_notices',$always_show_in_notices);
- set_pconfig(local_channel(),'system','evdays',$evdays);
- set_pconfig(local_channel(),'system','photo_path',$photo_path);
- set_pconfig(local_channel(),'system','attach_path',$attach_path);
- set_pconfig(local_channel(),'system','cal_first_day',$cal_first_day);
-
- $r = q("update channel set channel_name = '%s', channel_pageflags = %d, channel_timezone = '%s', channel_location = '%s', channel_notifyflags = %d, channel_max_anon_mail = %d, channel_max_friend_req = %d, channel_expire_days = %d $set_perms where channel_id = %d",
- dbesc($username),
- intval($pageflags),
- dbesc($timezone),
- dbesc($defloc),
- intval($notify),
- intval($unkmail),
- intval($maxreq),
- intval($expire),
- intval(local_channel())
- );
- if($r)
- info( t('Settings updated.') . EOL);
-
- if(! is_null($publish)) {
- $r = q("UPDATE profile SET publish = %d WHERE is_default = 1 AND uid = %d",
- intval($publish),
- intval(local_channel())
- );
- }
-
- if($name_change) {
- $r = q("update xchan set xchan_name = '%s', xchan_name_date = '%s' where xchan_hash = '%s'",
- dbesc($username),
- dbesc(datetime_convert()),
- dbesc($channel['channel_hash'])
- );
- $r = q("update profile set fullname = '%s' where uid = %d and is_default = 1",
- dbesc($username),
- intval($channel['channel_id'])
- );
- }
-
- \Zotlabs\Daemon\Master::Summon(array('Directory',local_channel()));
-
- build_sync_packet();
-
-
- //$_SESSION['theme'] = $theme;
- if($email_changed && \App::$config['system']['register_policy'] == REGISTER_VERIFY) {
-
- // FIXME - set to un-verified, blocked and redirect to logout
- // Why? Are we verifying people or email addresses?
-
}
goaway(z_root() . '/settings' );
return; // NOTREACHED
}
-
+
function get() {
- $o = '';
nav_set_selected('settings');
-
if((! local_channel()) || ($_SESSION['delegate'])) {
notice( t('Permission denied.') . EOL );
return login();
@@ -670,682 +65,14 @@ class Settings extends \Zotlabs\Web\Controller {
if($channel)
head_set_icon($channel['xchan_photo_s']);
- $yes_no = array(t('No'),t('Yes'));
-
- if((argc() > 1) && (argv(1) === 'oauth')) {
-
- if((argc() > 2) && (argv(2) === 'add')) {
- $tpl = get_markup_template("settings_oauth_edit.tpl");
- $o .= replace_macros($tpl, array(
- '$form_security_token' => get_form_security_token("settings_oauth"),
- '$title' => t('Add application'),
- '$submit' => t('Submit'),
- '$cancel' => t('Cancel'),
- '$name' => array('name', t('Name'), '', t('Name of application')),
- '$key' => array('key', t('Consumer Key'), random_string(16), t('Automatically generated - change if desired. Max length 20')),
- '$secret' => array('secret', t('Consumer Secret'), random_string(16), t('Automatically generated - change if desired. Max length 20')),
- '$redirect' => array('redirect', t('Redirect'), '', t('Redirect URI - leave blank unless your application specifically requires this')),
- '$icon' => array('icon', t('Icon url'), '', t('Optional')),
- ));
- return $o;
- }
-
- if((argc() > 3) && (argv(2) === 'edit')) {
- $r = q("SELECT * FROM clients WHERE client_id='%s' AND uid=%d",
- dbesc(argv(3)),
- local_channel());
-
- if (!count($r)){
- notice(t('Application not found.'));
- return;
- }
- $app = $r[0];
-
- $tpl = get_markup_template("settings_oauth_edit.tpl");
- $o .= replace_macros($tpl, array(
- '$form_security_token' => get_form_security_token("settings_oauth"),
- '$title' => t('Add application'),
- '$submit' => t('Update'),
- '$cancel' => t('Cancel'),
- '$name' => array('name', t('Name'), $app['clname'] , ''),
- '$key' => array('key', t('Consumer Key'), $app['client_id'], ''),
- '$secret' => array('secret', t('Consumer Secret'), $app['pw'], ''),
- '$redirect' => array('redirect', t('Redirect'), $app['redirect_uri'], ''),
- '$icon' => array('icon', t('Icon url'), $app['icon'], ''),
- ));
- return $o;
- }
-
- if((argc() > 3) && (argv(2) === 'delete')) {
- check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth', 't');
-
- $r = q("DELETE FROM clients WHERE client_id='%s' AND uid=%d",
- dbesc(argv(3)),
- local_channel());
- goaway(z_root()."/settings/oauth/");
- return;
- }
-
-
- $r = q("SELECT clients.*, tokens.id as oauth_token, (clients.uid=%d) AS my
- FROM clients
- LEFT JOIN tokens ON clients.client_id=tokens.client_id
- WHERE clients.uid IN (%d,0)",
- local_channel(),
- local_channel());
-
-
- $tpl = get_markup_template("settings_oauth.tpl");
- $o .= replace_macros($tpl, array(
- '$form_security_token' => get_form_security_token("settings_oauth"),
- '$baseurl' => z_root(),
- '$title' => t('Connected Apps'),
- '$add' => t('Add application'),
- '$edit' => t('Edit'),
- '$delete' => t('Delete'),
- '$consumerkey' => t('Client key starts with'),
- '$noname' => t('No name'),
- '$remove' => t('Remove authorization'),
- '$apps' => $r,
- ));
- return $o;
-
- }
- if((argc() > 1) && (argv(1) === 'featured')) {
- $settings_addons = "";
-
- $o = '';
-
- $r = q("SELECT * FROM `hook` WHERE `hook` = 'feature_settings' ");
- if(! $r)
- $settings_addons = t('No feature settings configured');
-
- call_hooks('feature_settings', $settings_addons);
-
- $tpl = get_markup_template("settings_addons.tpl");
- $o .= replace_macros($tpl, array(
- '$form_security_token' => get_form_security_token("settings_featured"),
- '$title' => t('Feature/Addon Settings'),
- '$settings_addons' => $settings_addons
- ));
- return $o;
- }
-
-
- /*
- * ACCOUNT SETTINGS
- */
-
-
- if((argc() > 1) && (argv(1) === 'account')) {
- $account_settings = "";
-
- call_hooks('account_settings', $account_settings);
-
- $email = \App::$account['account_email'];
-
-
- $tpl = get_markup_template("settings_account.tpl");
- $o .= replace_macros($tpl, array(
- '$form_security_token' => get_form_security_token("settings_account"),
- '$title' => t('Account Settings'),
- '$origpass' => array('origpass', t('Current Password'), ' ',''),
- '$password1'=> array('npassword', t('Enter New Password'), '', ''),
- '$password2'=> array('confirm', t('Confirm New Password'), '', t('Leave password fields blank unless changing')),
- '$submit' => t('Submit'),
- '$email' => array('email', t('Email Address:'), $email, ''),
- '$removeme' => t('Remove Account'),
- '$removeaccount' => t('Remove this account including all its channels'),
- '$account_settings' => $account_settings
- ));
- return $o;
- }
-
- if((argc() > 1) && (argv(1) === 'tokens')) {
- $atoken = null;
- $atoken_xchan = '';
-
- if(argc() > 2) {
- $id = argv(2);
-
- $atoken = q("select * from atoken where atoken_id = %d and atoken_uid = %d",
- intval($id),
- intval(local_channel())
- );
-
- if($atoken) {
- $atoken = $atoken[0];
- $atoken_xchan = substr($channel['channel_hash'],0,16) . '.' . $atoken['atoken_name'];
- }
-
- if($atoken && argc() > 3 && argv(3) === 'drop') {
- atoken_delete($id);
- $atoken = null;
- $atoken_xchan = '';
- }
- }
-
- $t = q("select * from atoken where atoken_uid = %d",
- intval(local_channel())
- );
-
- $desc = t('Use this form to create temporary access identifiers to share things with non-members. These identities may be used in Access Control Lists and visitors may login using these credentials to access private content.');
-
- $desc2 = t('You may also provide <em>dropbox</em> style access links to friends and associates by adding the Login Password to any specific site URL as shown. Examples:');
-
- $global_perms = \Zotlabs\Access\Permissions::Perms();
-
- $existing = get_all_perms(local_channel(),(($atoken_xchan) ? $atoken_xchan : ''));
-
- if($atoken_xchan) {
- $theirs = q("select * from abconfig where chan = %d and xchan = '%s' and cat = 'their_perms'",
- intval(local_channel()),
- dbesc($atoken_xchan)
- );
- $their_perms = array();
- if($theirs) {
- foreach($theirs as $t) {
- $their_perms[$t['k']] = $t['v'];
- }
- }
- }
- foreach($global_perms as $k => $v) {
- $thisperm = get_abconfig(local_channel(),$contact['abook_xchan'],'my_perms',$k);
-//fixme
-
- $checkinherited = \Zotlabs\Access\PermissionLimits::Get(local_channel(),$k);
-
- if($existing[$k])
- $thisperm = "1";
-
- $perms[] = array('perms_' . $k, $v, ((array_key_exists($k,$their_perms)) ? intval($their_perms[$k]) : ''),$thisperm, 1, (($checkinherited & PERMS_SPECIFIC) ? '' : '1'), '', $checkinherited);
- }
-
-
-
- $tpl = get_markup_template("settings_tokens.tpl");
- $o .= replace_macros($tpl, array(
- '$form_security_token' => get_form_security_token("settings_tokens"),
- '$title' => t('Guest Access Tokens'),
- '$desc' => $desc,
- '$desc2' => $desc2,
- '$tokens' => $t,
- '$atoken' => $atoken,
- '$url1' => z_root() . '/channel/' . $channel['channel_address'],
- '$url2' => z_root() . '/photos/' . $channel['channel_address'],
- '$name' => array('name', t('Login Name') . ' <span class="required">*</span>', (($atoken) ? $atoken['atoken_name'] : ''),''),
- '$token'=> array('token', t('Login Password') . ' <span class="required">*</span>',(($atoken) ? $atoken['atoken_token'] : autoname(8)), ''),
- '$expires'=> array('expires', t('Expires (yyyy-mm-dd)'), (($atoken['atoken_expires'] && $atoken['atoken_expires'] != NULL_DATE) ? datetime_convert('UTC',date_default_timezone_get(),$atoken['atoken_expires']) : ''), ''),
- '$them' => t('Their Settings'),
- '$me' => t('My Settings'),
- '$perms' => $perms,
- '$inherited' => t('inherited'),
- '$notself' => '1',
- '$permlbl' => t('Individual Permissions'),
- '$permnote' => t('Some permissions may be inherited from your channel\'s <a href="settings"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can <strong>not</strong> change those settings here.'),
- '$submit' => t('Submit')
- ));
- return $o;
- }
-
-
-
-
-
- if((argc() > 1) && (argv(1) === 'features')) {
- $arr = array();
- $features = get_features();
-
- foreach($features as $fname => $fdata) {
- $arr[$fname] = array();
- $arr[$fname][0] = $fdata[0];
- foreach(array_slice($fdata,1) as $f) {
- $arr[$fname][1][] = array('feature_' .$f[0],$f[1],((intval(feature_enabled(local_channel(),$f[0]))) ? "1" : ''),$f[2],array(t('Off'),t('On')));
- }
- }
-
- $tpl = get_markup_template("settings_features.tpl");
- $o .= replace_macros($tpl, array(
- '$form_security_token' => get_form_security_token("settings_features"),
- '$title' => t('Additional Features'),
- '$features' => $arr,
- '$submit' => t('Submit'),
- ));
-
- return $o;
- }
-
-
-
-
-
- if((argc() > 1) && (argv(1) === 'connectors')) {
-
- $settings_connectors = "";
-
- call_hooks('connector_settings', $settings_connectors);
-
- $r = null;
-
- $tpl = get_markup_template("settings_connectors.tpl");
-
- $o .= replace_macros($tpl, array(
- '$form_security_token' => get_form_security_token("settings_connectors"),
- '$title' => t('Connector Settings'),
- '$submit' => t('Submit'),
- '$settings_connectors' => $settings_connectors
- ));
-
+ $o = $this->sm->call('get');
+ if($o !== false)
return $o;
- }
-
- /*
- * DISPLAY SETTINGS
- */
-
- if((argc() > 1) && (argv(1) === 'display')) {
-
-
- $default_theme = get_config('system','theme');
- if(! $default_theme)
- $default_theme = 'redbasic';
-
- $themespec = explode(':', \App::$channel['channel_theme']);
- $existing_theme = $themespec[0];
- $existing_schema = $themespec[1];
-
- $theme = (($existing_theme) ? $existing_theme : $default_theme);
-
- $default_mobile_theme = get_config('system','mobile_theme');
- if(! $mobile_default_theme)
- $mobile_default_theme = 'none';
-
- $allowed_themes_str = get_config('system','allowed_themes');
- $allowed_themes_raw = explode(',',$allowed_themes_str);
- $allowed_themes = array();
- if(count($allowed_themes_raw))
- foreach($allowed_themes_raw as $x)
- if(strlen(trim($x)) && is_dir("view/theme/$x"))
- $allowed_themes[] = trim($x);
-
-
- $themes = array();
- $files = glob('view/theme/*');
- if($allowed_themes) {
- foreach($allowed_themes as $th) {
- $f = $th;
- $is_experimental = file_exists('view/theme/' . $th . '/experimental');
- $unsupported = file_exists('view/theme/' . $th . '/unsupported');
- $is_mobile = file_exists('view/theme/' . $th . '/mobile');
- $is_library = file_exists('view/theme/'. $th . '/library');
- $mobile_themes["---"] = t("No special theme for mobile devices");
-
- if (!$is_experimental or ($is_experimental && (get_config('experimentals','exp_themes')==1 or get_config('experimentals','exp_themes')===false))){
- $theme_name = (($is_experimental) ? sprintf(t('%s - (Experimental)'), $f) : $f);
- if (! $is_library) {
- if($is_mobile) {
- $mobile_themes[$f] = $themes[$f] = $theme_name . ' (' . t('mobile') . ')';
- }
- else {
- $mobile_themes[$f] = $themes[$f] = $theme_name;
- }
- }
- }
-
- }
- }
-
- $theme_selected = ((array_key_exists('theme',$_SESSION) && $_SESSION['theme']) ? $_SESSION['theme'] : $theme);
-
- $mobile_theme_selected = (!x($_SESSION,'mobile_theme')? $default_mobile_theme : $_SESSION['mobile_theme']);
-
- $preload_images = get_pconfig(local_channel(),'system','preload_images');
- $preload_images = (($preload_images===false)? '0': $preload_images); // default if not set: 0
-
- $user_scalable = get_pconfig(local_channel(),'system','user_scalable');
- $user_scalable = (($user_scalable===false)? '1': $user_scalable); // default if not set: 1
-
- $browser_update = intval(get_pconfig(local_channel(), 'system','update_interval'));
- $browser_update = (($browser_update == 0) ? 80 : $browser_update / 1000); // default if not set: 40 seconds
-
- $itemspage = intval(get_pconfig(local_channel(), 'system','itemspage'));
- $itemspage = (($itemspage > 0 && $itemspage < 101) ? $itemspage : 20); // default if not set: 20 items
-
- $nosmile = get_pconfig(local_channel(),'system','no_smilies');
- $nosmile = (($nosmile===false)? '0': $nosmile); // default if not set: 0
-
- $title_tosource = get_pconfig(local_channel(),'system','title_tosource');
- $title_tosource = (($title_tosource===false)? '0': $title_tosource); // default if not set: 0
-
- $theme_config = "";
- if(($themeconfigfile = $this->get_theme_config_file($theme)) != null){
- require_once($themeconfigfile);
- if(class_exists(ucfirst($theme) . 'Config')) {
- $clsname = ucfirst($theme) . 'Config';
- $theme_config = new $clsname();
- $schemas = $theme_config->get_schemas();
- }
- $theme_config = theme_content($a);
- }
-
-logger('schemas: ' . print_r($schemas,true));
-
- $tpl = get_markup_template("settings_display.tpl");
- $o = replace_macros($tpl, array(
- '$ptitle' => t('Display Settings'),
- '$d_tset' => t('Theme Settings'),
- '$d_ctset' => t('Custom Theme Settings'),
- '$d_cset' => t('Content Settings'),
- '$form_security_token' => get_form_security_token("settings_display"),
- '$submit' => t('Submit'),
- '$baseurl' => z_root(),
- '$uid' => local_channel(),
-
- '$theme' => (($themes) ? array('theme', t('Display Theme:'), $theme_selected, '', $themes, 'preview') : false),
- '$schema' => (($schemas) ? array('schema', t('Select scheme'), $existing_schema, '' , $schemas) : ''),
- '$mobile_theme' => (($mobile_themes) ? array('mobile_theme', t('Mobile Theme:'), $mobile_theme_selected, '', $mobile_themes, '') : false),
- '$preload_images' => array('preload_images', t("Preload images before rendering the page"), $preload_images, t("The subjective page load time will be longer but the page will be ready when displayed"), $yes_no),
- '$user_scalable' => array('user_scalable', t("Enable user zoom on mobile devices"), $user_scalable, '', $yes_no),
- '$ajaxint' => array('browser_update', t("Update browser every xx seconds"), $browser_update, t('Minimum of 10 seconds, no maximum')),
- '$itemspage' => array('itemspage', t("Maximum number of conversations to load at any time:"), $itemspage, t('Maximum of 100 items')),
- '$nosmile' => array('nosmile', t("Show emoticons (smilies) as images"), 1-intval($nosmile), '', $yes_no),
- '$title_tosource' => array('title_tosource', t("Link post titles to source"), $title_tosource, '', $yes_no),
- '$layout_editor' => t('System Page Layout Editor - (advanced)'),
- '$theme_config' => $theme_config,
- '$expert' => feature_enabled(local_channel(),'expert'),
- '$channel_list_mode' => array('channel_list_mode', t('Use blog/list mode on channel page'), get_pconfig(local_channel(),'system','channel_list_mode'), t('(comments displayed separately)'), $yes_no),
- '$network_list_mode' => array('network_list_mode', t('Use blog/list mode on grid page'), get_pconfig(local_channel(),'system','network_list_mode'), t('(comments displayed separately)'), $yes_no),
- '$channel_divmore_height' => array('channel_divmore_height', t('Channel page max height of content (in pixels)'), ((get_pconfig(local_channel(),'system','channel_divmore_height')) ? get_pconfig(local_channel(),'system','channel_divmore_height') : 400), t('click to expand content exceeding this height')),
- '$network_divmore_height' => array('network_divmore_height', t('Grid page max height of content (in pixels)'), ((get_pconfig(local_channel(),'system','network_divmore_height')) ? get_pconfig(local_channel(),'system','network_divmore_height') : 400) , t('click to expand content exceeding this height')),
-
-
- ));
-
- call_hooks('display_settings',$o);
- return $o;
- }
-
- if(argv(1) === 'channel') {
-
- require_once('include/acl_selectors.php');
- require_once('include/permissions.php');
-
-
- $p = q("SELECT * FROM `profile` WHERE `is_default` = 1 AND `uid` = %d LIMIT 1",
- intval(local_channel())
- );
- if(count($p))
- $profile = $p[0];
-
- load_pconfig(local_channel(),'expire');
-
- $channel = \App::get_channel();
-
- $global_perms = \Zotlabs\Access\Permissions::Perms();
+ $o = '';
- $permiss = array();
-
- $perm_opts = array(
- array( t('Nobody except yourself'), 0),
- array( t('Only those you specifically allow'), PERMS_SPECIFIC),
- array( t('Approved connections'), PERMS_CONTACTS),
- array( t('Any connections'), PERMS_PENDING),
- array( t('Anybody on this website'), PERMS_SITE),
- array( t('Anybody in this network'), PERMS_NETWORK),
- array( t('Anybody authenticated'), PERMS_AUTHED),
- array( t('Anybody on the internet'), PERMS_PUBLIC)
- );
-
- $limits = \Zotlabs\Access\PermissionLimits::Get(local_channel());
-
- foreach($global_perms as $k => $perm) {
- $options = array();
- foreach($perm_opts as $opt) {
- $options[$opt[1]] = $opt[0];
- }
- $permiss[] = array($k,$perm,$limits[$k],'',$options);
- }
-
-
- //logger('permiss: ' . print_r($permiss,true));
-
-
-
- $username = $channel['channel_name'];
- $nickname = $channel['channel_address'];
- $timezone = $channel['channel_timezone'];
- $notify = $channel['channel_notifyflags'];
- $defloc = $channel['channel_location'];
-
- $maxreq = $channel['channel_max_friend_req'];
- $expire = $channel['channel_expire_days'];
- $adult_flag = intval($channel['channel_pageflags'] & PAGE_ADULT);
- $sys_expire = get_config('system','default_expire_days');
-
- // $unkmail = \App::$user['unkmail'];
- // $cntunkmail = \App::$user['cntunkmail'];
-
- $hide_presence = intval(get_pconfig(local_channel(), 'system','hide_online_status'));
-
-
- $expire_items = get_pconfig(local_channel(), 'expire','items');
- $expire_items = (($expire_items===false)? '1' : $expire_items); // default if not set: 1
-
- $expire_notes = get_pconfig(local_channel(), 'expire','notes');
- $expire_notes = (($expire_notes===false)? '1' : $expire_notes); // default if not set: 1
-
- $expire_starred = get_pconfig(local_channel(), 'expire','starred');
- $expire_starred = (($expire_starred===false)? '1' : $expire_starred); // default if not set: 1
-
- $expire_photos = get_pconfig(local_channel(), 'expire','photos');
- $expire_photos = (($expire_photos===false)? '0' : $expire_photos); // default if not set: 0
-
- $expire_network_only = get_pconfig(local_channel(), 'expire','network_only');
- $expire_network_only = (($expire_network_only===false)? '0' : $expire_network_only); // default if not set: 0
-
-
- $suggestme = get_pconfig(local_channel(), 'system','suggestme');
- $suggestme = (($suggestme===false)? '0': $suggestme); // default if not set: 0
-
- $post_newfriend = get_pconfig(local_channel(), 'system','post_newfriend');
- $post_newfriend = (($post_newfriend===false)? '0': $post_newfriend); // default if not set: 0
-
- $post_joingroup = get_pconfig(local_channel(), 'system','post_joingroup');
- $post_joingroup = (($post_joingroup===false)? '0': $post_joingroup); // default if not set: 0
-
- $post_profilechange = get_pconfig(local_channel(), 'system','post_profilechange');
- $post_profilechange = (($post_profilechange===false)? '0': $post_profilechange); // default if not set: 0
-
- $blocktags = get_pconfig(local_channel(),'system','blocktags');
- $blocktags = (($blocktags===false) ? '0' : $blocktags);
-
- $timezone = date_default_timezone_get();
-
- $opt_tpl = get_markup_template("field_checkbox.tpl");
- if(get_config('system','publish_all')) {
- $profile_in_dir = '<input type="hidden" name="profile_in_directory" value="1" />';
- }
- else {
- $profile_in_dir = replace_macros($opt_tpl,array(
- '$field' => array('profile_in_directory', t('Publish your default profile in the network directory'), $profile['publish'], '', $yes_no),
- ));
- }
-
- $suggestme = replace_macros($opt_tpl,array(
- '$field' => array('suggestme', t('Allow us to suggest you as a potential friend to new members?'), $suggestme, '', $yes_no),
-
- ));
-
- $subdir = ((strlen(\App::get_path())) ? '<br />' . t('or') . ' ' . z_root() . '/channel/' . $nickname : '');
- $tpl_addr = get_markup_template("settings_nick_set.tpl");
-
- $prof_addr = replace_macros($tpl_addr,array(
- '$desc' => t('Your channel address is'),
- '$nickname' => $nickname,
- '$subdir' => $subdir,
- '$basepath' => \App::get_hostname()
- ));
-
- $stpl = get_markup_template('settings.tpl');
-
- $acl = new \Zotlabs\Access\AccessList($channel);
- $perm_defaults = $acl->get();
-
- require_once('include/group.php');
- $group_select = mini_group_select(local_channel(),$channel['channel_default_group']);
-
- require_once('include/menu.php');
- $m1 = menu_list(local_channel());
- $menu = false;
- if($m1) {
- $menu = array();
- $current = get_pconfig(local_channel(),'system','channel_menu');
- $menu[] = array('name' => '', 'selected' => ((! $current) ? true : false));
- foreach($m1 as $m) {
- $menu[] = array('name' => htmlspecialchars($m['menu_name'],ENT_COMPAT,'UTF-8'), 'selected' => (($m['menu_name'] === $current) ? ' selected="selected" ' : false));
- }
- }
-
- $evdays = get_pconfig(local_channel(),'system','evdays');
- if(! $evdays)
- $evdays = 3;
-
- $permissions_role = get_pconfig(local_channel(),'system','permissions_role');
- if(! $permissions_role)
- $permissions_role = 'custom';
-
- $permissions_set = (($permissions_role != 'custom') ? true : false);
-
- $vnotify = get_pconfig(local_channel(),'system','vnotify');
- $always_show_in_notices = get_pconfig(local_channel(),'system','always_show_in_notices');
- if($vnotify === false)
- $vnotify = (-1);
-
- $o .= replace_macros($stpl,array(
- '$ptitle' => t('Channel Settings'),
-
- '$submit' => t('Submit'),
- '$baseurl' => z_root(),
- '$uid' => local_channel(),
- '$form_security_token' => get_form_security_token("settings"),
- '$nickname_block' => $prof_addr,
- '$h_basic' => t('Basic Settings'),
- '$username' => array('username', t('Full Name:'), $username,''),
- '$email' => array('email', t('Email Address:'), $email, ''),
- '$timezone' => array('timezone_select' , t('Your Timezone:'), $timezone, '', get_timezones()),
- '$defloc' => array('defloc', t('Default Post Location:'), $defloc, t('Geographical location to display on your posts')),
- '$allowloc' => array('allow_location', t('Use Browser Location:'), ((get_pconfig(local_channel(),'system','use_browser_location')) ? 1 : ''), '', $yes_no),
-
- '$adult' => array('adult', t('Adult Content'), $adult_flag, t('This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)'), $yes_no),
-
- '$h_prv' => t('Security and Privacy Settings'),
- '$permissions_set' => $permissions_set,
- '$server_role' => \Zotlabs\Lib\System::get_server_role(),
- '$perms_set_msg' => t('Your permissions are already configured. Click to view/adjust'),
-
- '$hide_presence' => array('hide_presence', t('Hide my online presence'),$hide_presence, t('Prevents displaying in your profile that you are online'), $yes_no),
-
- '$lbl_pmacro' => t('Simple Privacy Settings:'),
- '$pmacro3' => t('Very Public - <em>extremely permissive (should be used with caution)</em>'),
- '$pmacro2' => t('Typical - <em>default public, privacy when desired (similar to social network permissions but with improved privacy)</em>'),
- '$pmacro1' => t('Private - <em>default private, never open or public</em>'),
- '$pmacro0' => t('Blocked - <em>default blocked to/from everybody</em>'),
- '$permiss_arr' => $permiss,
- '$blocktags' => array('blocktags',t('Allow others to tag your posts'), 1-$blocktags, t('Often used by the community to retro-actively flag inappropriate content'), $yes_no),
-
- '$lbl_p2macro' => t('Advanced Privacy Settings'),
-
- '$expire' => array('expire',t('Expire other channel content after this many days'),$expire, t('0 or blank to use the website limit.') . ' ' . ((intval($sys_expire)) ? sprintf( t('This website expires after %d days.'),intval($sys_expire)) : t('This website does not expire imported content.')) . ' ' . t('The website limit takes precedence if lower than your limit.')),
- '$maxreq' => array('maxreq', t('Maximum Friend Requests/Day:'), intval($channel['channel_max_friend_req']) , t('May reduce spam activity')),
- '$permissions' => t('Default Post and Publish Permissions'),
- '$permdesc' => t("\x28click to open/close\x29"),
- '$aclselect' => populate_acl($perm_defaults, false, \Zotlabs\Lib\PermissionDescription::fromDescription(t('Use my default audience setting for the type of object published'))),
- '$allow_cid' => acl2json($perm_defaults['allow_cid']),
- '$allow_gid' => acl2json($perm_defaults['allow_gid']),
- '$deny_cid' => acl2json($perm_defaults['deny_cid']),
- '$deny_gid' => acl2json($perm_defaults['deny_gid']),
- '$suggestme' => $suggestme,
- '$group_select' => $group_select,
- '$role' => array('permissions_role' , t('Channel permissions category:'), $permissions_role, '', get_roles()),
-
- '$profile_in_dir' => $profile_in_dir,
- '$hide_friends' => $hide_friends,
- '$hide_wall' => $hide_wall,
- '$unkmail' => $unkmail,
- '$cntunkmail' => array('cntunkmail', t('Maximum private messages per day from unknown people:'), intval($channel['channel_max_anon_mail']) ,t("Useful to reduce spamming")),
-
-
- '$h_not' => t('Notification Settings'),
- '$activity_options' => t('By default post a status message when:'),
- '$post_newfriend' => array('post_newfriend', t('accepting a friend request'), $post_newfriend, '', $yes_no),
- '$post_joingroup' => array('post_joingroup', t('joining a forum/community'), $post_joingroup, '', $yes_no),
- '$post_profilechange' => array('post_profilechange', t('making an <em>interesting</em> profile change'), $post_profilechange, '', $yes_no),
- '$lbl_not' => t('Send a notification email when:'),
- '$notify1' => array('notify1', t('You receive a connection request'), ($notify & NOTIFY_INTRO), NOTIFY_INTRO, '', $yes_no),
- '$notify2' => array('notify2', t('Your connections are confirmed'), ($notify & NOTIFY_CONFIRM), NOTIFY_CONFIRM, '', $yes_no),
- '$notify3' => array('notify3', t('Someone writes on your profile wall'), ($notify & NOTIFY_WALL), NOTIFY_WALL, '', $yes_no),
- '$notify4' => array('notify4', t('Someone writes a followup comment'), ($notify & NOTIFY_COMMENT), NOTIFY_COMMENT, '', $yes_no),
- '$notify5' => array('notify5', t('You receive a private message'), ($notify & NOTIFY_MAIL), NOTIFY_MAIL, '', $yes_no),
- '$notify6' => array('notify6', t('You receive a friend suggestion'), ($notify & NOTIFY_SUGGEST), NOTIFY_SUGGEST, '', $yes_no),
- '$notify7' => array('notify7', t('You are tagged in a post'), ($notify & NOTIFY_TAGSELF), NOTIFY_TAGSELF, '', $yes_no),
- '$notify8' => array('notify8', t('You are poked/prodded/etc. in a post'), ($notify & NOTIFY_POKE), NOTIFY_POKE, '', $yes_no),
-
-
- '$lbl_vnot' => t('Show visual notifications including:'),
-
- '$vnotify1' => array('vnotify1', t('Unseen grid activity'), ($vnotify & VNOTIFY_NETWORK), VNOTIFY_NETWORK, '', $yes_no),
- '$vnotify2' => array('vnotify2', t('Unseen channel activity'), ($vnotify & VNOTIFY_CHANNEL), VNOTIFY_CHANNEL, '', $yes_no),
- '$vnotify3' => array('vnotify3', t('Unseen private messages'), ($vnotify & VNOTIFY_MAIL), VNOTIFY_MAIL, t('Recommended'), $yes_no),
- '$vnotify4' => array('vnotify4', t('Upcoming events'), ($vnotify & VNOTIFY_EVENT), VNOTIFY_EVENT, '', $yes_no),
- '$vnotify5' => array('vnotify5', t('Events today'), ($vnotify & VNOTIFY_EVENTTODAY), VNOTIFY_EVENTTODAY, '', $yes_no),
- '$vnotify6' => array('vnotify6', t('Upcoming birthdays'), ($vnotify & VNOTIFY_BIRTHDAY), VNOTIFY_BIRTHDAY, t('Not available in all themes'), $yes_no),
- '$vnotify7' => array('vnotify7', t('System (personal) notifications'), ($vnotify & VNOTIFY_SYSTEM), VNOTIFY_SYSTEM, '', $yes_no),
- '$vnotify8' => array('vnotify8', t('System info messages'), ($vnotify & VNOTIFY_INFO), VNOTIFY_INFO, t('Recommended'), $yes_no),
- '$vnotify9' => array('vnotify9', t('System critical alerts'), ($vnotify & VNOTIFY_ALERT), VNOTIFY_ALERT, t('Recommended'), $yes_no),
- '$vnotify10' => array('vnotify10', t('New connections'), ($vnotify & VNOTIFY_INTRO), VNOTIFY_INTRO, t('Recommended'), $yes_no),
- '$vnotify11' => array('vnotify11', t('System Registrations'), ($vnotify & VNOTIFY_REGISTER), VNOTIFY_REGISTER, '', $yes_no),
- '$always_show_in_notices' => array('always_show_in_notices', t('Also show new wall posts, private messages and connections under Notices'), $always_show_in_notices, 1, '', $yes_no),
-
- '$evdays' => array('evdays', t('Notify me of events this many days in advance'), $evdays, t('Must be greater than 0')),
-
- '$h_advn' => t('Advanced Account/Page Type Settings'),
- '$h_descadvn' => t('Change the behaviour of this account for special situations'),
- '$pagetype' => $pagetype,
- '$expert' => feature_enabled(local_channel(),'expert'),
- '$hint' => t('Please enable expert mode (in <a href="settings/features">Settings > Additional features</a>) to adjust!'),
- '$lbl_misc' => t('Miscellaneous Settings'),
- '$photo_path' => array('photo_path', t('Default photo upload folder'), get_pconfig(local_channel(),'system','photo_path'), t('%Y - current year, %m - current month')),
- '$attach_path' => array('attach_path', t('Default file upload folder'), get_pconfig(local_channel(),'system','attach_path'), t('%Y - current year, %m - current month')),
- '$menus' => $menu,
- '$menu_desc' => t('Personal menu to display in your channel pages'),
- '$removeme' => t('Remove Channel'),
- '$removechannel' => t('Remove this channel.'),
- '$firefoxshare' => t('Firefox Share $Projectname provider'),
- '$cal_first_day' => array('first_day', t('Start calendar week on monday'), ((get_pconfig(local_channel(),'system','cal_first_day')) ? 1 : ''), '', $yes_no),
- ));
-
- call_hooks('settings_form',$o);
-
- //$o .= '</form>' . "\r\n";
-
- return $o;
- }
- }
-
- function get_theme_config_file($theme){
+ }
+}
- $base_theme = \App::$theme_info['extends'];
-
- if (file_exists("view/theme/$theme/php/config.php")){
- return "view/theme/$theme/php/config.php";
- }
- if (file_exists("view/theme/$base_theme/php/config.php")){
- return "view/theme/$base_theme/php/config.php";
- }
- return null;
- }
-
-}
diff --git a/Zotlabs/Module/Settings/Account.php b/Zotlabs/Module/Settings/Account.php
new file mode 100644
index 000000000..cd5ed1fca
--- /dev/null
+++ b/Zotlabs/Module/Settings/Account.php
@@ -0,0 +1,135 @@
+<?php
+
+namespace Zotlabs\Module\Settings;
+
+class Account {
+
+ function post() {
+ check_form_security_token_redirectOnErr('/settings/account', 'settings_account');
+
+ call_hooks('account_settings_post', $_POST);
+
+ $errs = array();
+
+ $email = ((x($_POST,'email')) ? trim(notags($_POST['email'])) : '');
+ $techlevel = ((array_key_exists('techlevel',$_POST)) ? intval($_POST['techlevel']) : 0);
+
+ $account = \App::get_account();
+ if($email != $account['account_email']) {
+ if(! valid_email($email))
+ $errs[] = t('Not valid email.');
+ $adm = trim(get_config('system','admin_email'));
+ if(($adm) && (strcasecmp($email,$adm) == 0)) {
+ $errs[] = t('Protected email address. Cannot change to that email.');
+ $email = \App::$account['account_email'];
+ }
+ if(! $errs) {
+ $r = q("update account set account_email = '%s' where account_id = %d",
+ dbesc($email),
+ intval($account['account_id'])
+ );
+ if(! $r)
+ $errs[] = t('System failure storing new email. Please try again.');
+ }
+ }
+ if($techlevel != $account['account_level']) {
+ $r = q("update account set account_level = %d where account_id = %d",
+ intval($techlevel),
+ intval($account['account_id'])
+ );
+ info( t('Technical skill level updated') . EOL);
+ }
+
+ if($errs) {
+ foreach($errs as $err)
+ notice($err . EOL);
+ $errs = array();
+ }
+
+
+ if((x($_POST,'npassword')) || (x($_POST,'confirm'))) {
+
+ $origpass = trim($_POST['origpass']);
+
+ require_once('include/auth.php');
+ if(! account_verify_password($email,$origpass)) {
+ $errs[] = t('Password verification failed.');
+ }
+
+ $newpass = trim($_POST['npassword']);
+ $confirm = trim($_POST['confirm']);
+
+ if($newpass != $confirm ) {
+ $errs[] = t('Passwords do not match. Password unchanged.');
+ }
+
+ if((! x($newpass)) || (! x($confirm))) {
+ $errs[] = t('Empty passwords are not allowed. Password unchanged.');
+ }
+
+ if(! $errs) {
+ $salt = random_string(32);
+ $password_encoded = hash('whirlpool', $salt . $newpass);
+ $r = q("update account set account_salt = '%s', account_password = '%s', account_password_changed = '%s'
+ where account_id = %d",
+ dbesc($salt),
+ dbesc($password_encoded),
+ dbesc(datetime_convert()),
+ intval(get_account_id())
+ );
+ if($r)
+ info( t('Password changed.') . EOL);
+ else
+ $errs[] = t('Password update failed. Please try again.');
+ }
+ }
+
+
+ if($errs) {
+ foreach($errs as $err)
+ notice($err . EOL);
+ }
+ goaway(z_root() . '/settings/account' );
+ }
+
+
+
+ function get() {
+ $account_settings = "";
+
+ call_hooks('account_settings', $account_settings);
+
+ $email = \App::$account['account_email'];
+
+ $techlevels = [
+ '0' => t('Beginner/Basic'),
+ '1' => t('Novice - not skilled but willing to learn'),
+ '2' => t('Intermediate - somewhat comfortable'),
+ '3' => t('Advanced - very comfortable'),
+ '4' => t('Expert - I can write computer code'),
+ '5' => t('Wizard - I probably know more than you do')
+ ];
+
+
+ $def_techlevel = \App::$account['account_level'];
+ $techlock = get_config('system','techlevel_lock');
+
+ $tpl = get_markup_template("settings_account.tpl");
+ $o .= replace_macros($tpl, array(
+ '$form_security_token' => get_form_security_token("settings_account"),
+ '$title' => t('Account Settings'),
+ '$origpass' => array('origpass', t('Current Password'), ' ',''),
+ '$password1'=> array('npassword', t('Enter New Password'), '', ''),
+ '$password2'=> array('confirm', t('Confirm New Password'), '', t('Leave password fields blank unless changing')),
+ '$techlevel' => [ 'techlevel', t('Your technical skill level'), $def_techlevel, t('Used to provide a member experience matched to your comfort level'), $techlevels ],
+ '$techlock' => $techlock,
+ '$submit' => t('Submit'),
+ '$email' => array('email', t('Email Address:'), $email, ''),
+ '$removeme' => t('Remove Account'),
+ '$removeaccount' => t('Remove this account including all its channels'),
+ '$account_settings' => $account_settings
+ ));
+ return $o;
+ }
+
+}
diff --git a/Zotlabs/Module/Settings/Channel.php b/Zotlabs/Module/Settings/Channel.php
new file mode 100644
index 000000000..a7d8b883f
--- /dev/null
+++ b/Zotlabs/Module/Settings/Channel.php
@@ -0,0 +1,556 @@
+<?php
+
+namespace Zotlabs\Module\Settings;
+
+
+class Channel {
+
+
+ function post() {
+
+ $channel = \App::get_channel();
+
+ check_form_security_token_redirectOnErr('/settings', 'settings');
+
+ call_hooks('settings_post', $_POST);
+
+ $set_perms = '';
+
+ $role = ((x($_POST,'permissions_role')) ? notags(trim($_POST['permissions_role'])) : '');
+ $oldrole = get_pconfig(local_channel(),'system','permissions_role');
+
+ if(($role != $oldrole) || ($role === 'custom')) {
+
+ if($role === 'custom') {
+ $hide_presence = (((x($_POST,'hide_presence')) && (intval($_POST['hide_presence']) == 1)) ? 1: 0);
+ $publish = (((x($_POST,'profile_in_directory')) && (intval($_POST['profile_in_directory']) == 1)) ? 1: 0);
+ $def_group = ((x($_POST,'group-selection')) ? notags(trim($_POST['group-selection'])) : '');
+ $r = q("update channel set channel_default_group = '%s' where channel_id = %d",
+ dbesc($def_group),
+ intval(local_channel())
+ );
+
+ $global_perms = \Zotlabs\Access\Permissions::Perms();
+
+ foreach($global_perms as $k => $v) {
+ \Zotlabs\Access\PermissionLimits::Set(local_channel(),$k,intval($_POST[$k]));
+ }
+ $acl = new \Zotlabs\Access\AccessList($channel);
+ $acl->set_from_array($_POST);
+ $x = $acl->get();
+
+ $r = q("update channel set channel_allow_cid = '%s', channel_allow_gid = '%s',
+ channel_deny_cid = '%s', channel_deny_gid = '%s' where channel_id = %d",
+ dbesc($x['allow_cid']),
+ dbesc($x['allow_gid']),
+ dbesc($x['deny_cid']),
+ dbesc($x['deny_gid']),
+ intval(local_channel())
+ );
+ }
+ else {
+ $role_permissions = \Zotlabs\Access\PermissionRoles::role_perms($_POST['permissions_role']);
+ if(! $role_permissions) {
+ notice('Permissions category could not be found.');
+ return;
+ }
+ $hide_presence = 1 - (intval($role_permissions['online']));
+ if($role_permissions['default_collection']) {
+ $r = q("select hash from groups where uid = %d and gname = '%s' limit 1",
+ intval(local_channel()),
+ dbesc( t('Friends') )
+ );
+ if(! $r) {
+ require_once('include/group.php');
+ group_add(local_channel(), t('Friends'));
+ group_add_member(local_channel(),t('Friends'),$channel['channel_hash']);
+ $r = q("select hash from groups where uid = %d and gname = '%s' limit 1",
+ intval(local_channel()),
+ dbesc( t('Friends') )
+ );
+ }
+ if($r) {
+ q("update channel set channel_default_group = '%s', channel_allow_gid = '%s', channel_allow_cid = '', channel_deny_gid = '', channel_deny_cid = '' where channel_id = %d",
+ dbesc($r[0]['hash']),
+ dbesc('<' . $r[0]['hash'] . '>'),
+ intval(local_channel())
+ );
+ }
+ else {
+ notice( sprintf('Default privacy group \'%s\' not found. Please create and re-submit permission change.', t('Friends')) . EOL);
+ return;
+ }
+ }
+ // no default collection
+ else {
+ q("update channel set channel_default_group = '', channel_allow_gid = '', channel_allow_cid = '', channel_deny_gid = '',
+ channel_deny_cid = '' where channel_id = %d",
+ intval(local_channel())
+ );
+ }
+
+ $x = \Zotlabs\Access\Permissions::FilledPerms($role_permissions['perms_connect']);
+ foreach($x as $k => $v) {
+ set_abconfig(local_channel(),$channel['channel_hash'],'my_perms',$k, $v);
+ if($role_permissions['perms_auto']) {
+ set_pconfig(local_channel(),'autoperms',$k,$v);
+ }
+ else {
+ del_pconfig(local_channel(),'autoperms',$k);
+ }
+ }
+
+ if($role_permissions['limits']) {
+ foreach($role_permissions['limits'] as $k => $v) {
+ \Zotlabs\Access\PermissionLimits::Set(local_channel(),$k,$v);
+ }
+ }
+ if(array_key_exists('directory_publish',$role_permissions)) {
+ $publish = intval($role_permissions['directory_publish']);
+ }
+ }
+
+ set_pconfig(local_channel(),'system','hide_online_status',$hide_presence);
+ set_pconfig(local_channel(),'system','permissions_role',$role);
+ }
+
+ $username = ((x($_POST,'username')) ? notags(trim($_POST['username'])) : '');
+ $timezone = ((x($_POST,'timezone_select')) ? notags(trim($_POST['timezone_select'])) : '');
+ $defloc = ((x($_POST,'defloc')) ? notags(trim($_POST['defloc'])) : '');
+ $openid = ((x($_POST,'openid_url')) ? notags(trim($_POST['openid_url'])) : '');
+ $maxreq = ((x($_POST,'maxreq')) ? intval($_POST['maxreq']) : 0);
+ $expire = ((x($_POST,'expire')) ? intval($_POST['expire']) : 0);
+ $evdays = ((x($_POST,'evdays')) ? intval($_POST['evdays']) : 3);
+ $photo_path = ((x($_POST,'photo_path')) ? escape_tags(trim($_POST['photo_path'])) : '');
+ $attach_path = ((x($_POST,'attach_path')) ? escape_tags(trim($_POST['attach_path'])) : '');
+
+ $channel_menu = ((x($_POST['channel_menu'])) ? htmlspecialchars_decode(trim($_POST['channel_menu']),ENT_QUOTES) : '');
+
+ $expire_items = ((x($_POST,'expire_items')) ? intval($_POST['expire_items']) : 0);
+ $expire_starred = ((x($_POST,'expire_starred')) ? intval($_POST['expire_starred']) : 0);
+ $expire_photos = ((x($_POST,'expire_photos'))? intval($_POST['expire_photos']) : 0);
+ $expire_network_only = ((x($_POST,'expire_network_only'))? intval($_POST['expire_network_only']) : 0);
+
+ $allow_location = (((x($_POST,'allow_location')) && (intval($_POST['allow_location']) == 1)) ? 1: 0);
+
+ $blocktags = (((x($_POST,'blocktags')) && (intval($_POST['blocktags']) == 1)) ? 0: 1); // this setting is inverted!
+ $unkmail = (((x($_POST,'unkmail')) && (intval($_POST['unkmail']) == 1)) ? 1: 0);
+ $cntunkmail = ((x($_POST,'cntunkmail')) ? intval($_POST['cntunkmail']) : 0);
+ $suggestme = ((x($_POST,'suggestme')) ? intval($_POST['suggestme']) : 0);
+
+ $post_newfriend = (($_POST['post_newfriend'] == 1) ? 1: 0);
+ $post_joingroup = (($_POST['post_joingroup'] == 1) ? 1: 0);
+ $post_profilechange = (($_POST['post_profilechange'] == 1) ? 1: 0);
+ $adult = (($_POST['adult'] == 1) ? 1 : 0);
+
+ $cal_first_day = (((x($_POST,'first_day')) && (intval($_POST['first_day']) == 1)) ? 1: 0);
+
+ $pageflags = $channel['channel_pageflags'];
+ $existing_adult = (($pageflags & PAGE_ADULT) ? 1 : 0);
+ if($adult != $existing_adult)
+ $pageflags = ($pageflags ^ PAGE_ADULT);
+
+
+ $notify = 0;
+
+ if(x($_POST,'notify1'))
+ $notify += intval($_POST['notify1']);
+ if(x($_POST,'notify2'))
+ $notify += intval($_POST['notify2']);
+ if(x($_POST,'notify3'))
+ $notify += intval($_POST['notify3']);
+ if(x($_POST,'notify4'))
+ $notify += intval($_POST['notify4']);
+ if(x($_POST,'notify5'))
+ $notify += intval($_POST['notify5']);
+ if(x($_POST,'notify6'))
+ $notify += intval($_POST['notify6']);
+ if(x($_POST,'notify7'))
+ $notify += intval($_POST['notify7']);
+ if(x($_POST,'notify8'))
+ $notify += intval($_POST['notify8']);
+
+
+ $vnotify = 0;
+
+ if(x($_POST,'vnotify1'))
+ $vnotify += intval($_POST['vnotify1']);
+ if(x($_POST,'vnotify2'))
+ $vnotify += intval($_POST['vnotify2']);
+ if(x($_POST,'vnotify3'))
+ $vnotify += intval($_POST['vnotify3']);
+ if(x($_POST,'vnotify4'))
+ $vnotify += intval($_POST['vnotify4']);
+ if(x($_POST,'vnotify5'))
+ $vnotify += intval($_POST['vnotify5']);
+ if(x($_POST,'vnotify6'))
+ $vnotify += intval($_POST['vnotify6']);
+ if(x($_POST,'vnotify7'))
+ $vnotify += intval($_POST['vnotify7']);
+ if(x($_POST,'vnotify8'))
+ $vnotify += intval($_POST['vnotify8']);
+ if(x($_POST,'vnotify9'))
+ $vnotify += intval($_POST['vnotify9']);
+ if(x($_POST,'vnotify10'))
+ $vnotify += intval($_POST['vnotify10']);
+ if(x($_POST,'vnotify11'))
+ $vnotify += intval($_POST['vnotify11']);
+
+ $always_show_in_notices = x($_POST,'always_show_in_notices') ? 1 : 0;
+
+ $err = '';
+
+ $name_change = false;
+
+ if($username != $channel['channel_name']) {
+ $name_change = true;
+ require_once('include/channel.php');
+ $err = validate_channelname($username);
+ if($err) {
+ notice($err);
+ return;
+ }
+ }
+
+ if($timezone != $channel['channel_timezone']) {
+ if(strlen($timezone))
+ date_default_timezone_set($timezone);
+ }
+
+ set_pconfig(local_channel(),'system','use_browser_location',$allow_location);
+ set_pconfig(local_channel(),'system','suggestme', $suggestme);
+ set_pconfig(local_channel(),'system','post_newfriend', $post_newfriend);
+ set_pconfig(local_channel(),'system','post_joingroup', $post_joingroup);
+ set_pconfig(local_channel(),'system','post_profilechange', $post_profilechange);
+ set_pconfig(local_channel(),'system','blocktags',$blocktags);
+ set_pconfig(local_channel(),'system','channel_menu',$channel_menu);
+ set_pconfig(local_channel(),'system','vnotify',$vnotify);
+ set_pconfig(local_channel(),'system','always_show_in_notices',$always_show_in_notices);
+ set_pconfig(local_channel(),'system','evdays',$evdays);
+ set_pconfig(local_channel(),'system','photo_path',$photo_path);
+ set_pconfig(local_channel(),'system','attach_path',$attach_path);
+ set_pconfig(local_channel(),'system','cal_first_day',$cal_first_day);
+
+ $r = q("update channel set channel_name = '%s', channel_pageflags = %d, channel_timezone = '%s', channel_location = '%s', channel_notifyflags = %d, channel_max_anon_mail = %d, channel_max_friend_req = %d, channel_expire_days = %d $set_perms where channel_id = %d",
+ dbesc($username),
+ intval($pageflags),
+ dbesc($timezone),
+ dbesc($defloc),
+ intval($notify),
+ intval($unkmail),
+ intval($maxreq),
+ intval($expire),
+ intval(local_channel())
+ );
+ if($r)
+ info( t('Settings updated.') . EOL);
+
+ if(! is_null($publish)) {
+ $r = q("UPDATE profile SET publish = %d WHERE is_default = 1 AND uid = %d",
+ intval($publish),
+ intval(local_channel())
+ );
+ }
+
+ if($name_change) {
+ $r = q("update xchan set xchan_name = '%s', xchan_name_date = '%s' where xchan_hash = '%s'",
+ dbesc($username),
+ dbesc(datetime_convert()),
+ dbesc($channel['channel_hash'])
+ );
+ $r = q("update profile set fullname = '%s' where uid = %d and is_default = 1",
+ dbesc($username),
+ intval($channel['channel_id'])
+ );
+ }
+
+ \Zotlabs\Daemon\Master::Summon(array('Directory',local_channel()));
+
+ build_sync_packet();
+
+
+ if($email_changed && \App::$config['system']['register_policy'] == REGISTER_VERIFY) {
+
+ // FIXME - set to un-verified, blocked and redirect to logout
+ // Why? Are we verifying people or email addresses?
+
+ }
+
+ goaway(z_root() . '/settings' );
+ return; // NOTREACHED
+ }
+
+ function get() {
+
+ require_once('include/acl_selectors.php');
+ require_once('include/permissions.php');
+
+
+ $yes_no = array(t('No'),t('Yes'));
+
+
+ $p = q("SELECT * FROM `profile` WHERE `is_default` = 1 AND `uid` = %d LIMIT 1",
+ intval(local_channel())
+ );
+ if(count($p))
+ $profile = $p[0];
+
+ load_pconfig(local_channel(),'expire');
+
+ $channel = \App::get_channel();
+
+ $global_perms = \Zotlabs\Access\Permissions::Perms();
+
+ $permiss = array();
+
+ $perm_opts = array(
+ array( t('Nobody except yourself'), 0),
+ array( t('Only those you specifically allow'), PERMS_SPECIFIC),
+ array( t('Approved connections'), PERMS_CONTACTS),
+ array( t('Any connections'), PERMS_PENDING),
+ array( t('Anybody on this website'), PERMS_SITE),
+ array( t('Anybody in this network'), PERMS_NETWORK),
+ array( t('Anybody authenticated'), PERMS_AUTHED),
+ array( t('Anybody on the internet'), PERMS_PUBLIC)
+ );
+
+ $limits = \Zotlabs\Access\PermissionLimits::Get(local_channel());
+
+ foreach($global_perms as $k => $perm) {
+ $options = array();
+ foreach($perm_opts as $opt) {
+ if((! strstr($perm,'view')) && $opt[1] == PERMS_PUBLIC)
+ continue;
+ $options[$opt[1]] = $opt[0];
+ }
+ $permiss[] = array($k,$perm,$limits[$k],'',$options);
+ }
+
+
+ //logger('permiss: ' . print_r($permiss,true));
+
+
+
+ $username = $channel['channel_name'];
+ $nickname = $channel['channel_address'];
+ $timezone = $channel['channel_timezone'];
+ $notify = $channel['channel_notifyflags'];
+ $defloc = $channel['channel_location'];
+
+ $maxreq = $channel['channel_max_friend_req'];
+ $expire = $channel['channel_expire_days'];
+ $adult_flag = intval($channel['channel_pageflags'] & PAGE_ADULT);
+ $sys_expire = get_config('system','default_expire_days');
+
+// $unkmail = \App::$user['unkmail'];
+// $cntunkmail = \App::$user['cntunkmail'];
+
+ $hide_presence = intval(get_pconfig(local_channel(), 'system','hide_online_status'));
+
+
+ $expire_items = get_pconfig(local_channel(), 'expire','items');
+ $expire_items = (($expire_items===false)? '1' : $expire_items); // default if not set: 1
+
+ $expire_notes = get_pconfig(local_channel(), 'expire','notes');
+ $expire_notes = (($expire_notes===false)? '1' : $expire_notes); // default if not set: 1
+
+ $expire_starred = get_pconfig(local_channel(), 'expire','starred');
+ $expire_starred = (($expire_starred===false)? '1' : $expire_starred); // default if not set: 1
+
+ $expire_photos = get_pconfig(local_channel(), 'expire','photos');
+ $expire_photos = (($expire_photos===false)? '0' : $expire_photos); // default if not set: 0
+
+ $expire_network_only = get_pconfig(local_channel(), 'expire','network_only');
+ $expire_network_only = (($expire_network_only===false)? '0' : $expire_network_only); // default if not set: 0
+
+
+ $suggestme = get_pconfig(local_channel(), 'system','suggestme');
+ $suggestme = (($suggestme===false)? '0': $suggestme); // default if not set: 0
+
+ $post_newfriend = get_pconfig(local_channel(), 'system','post_newfriend');
+ $post_newfriend = (($post_newfriend===false)? '0': $post_newfriend); // default if not set: 0
+
+ $post_joingroup = get_pconfig(local_channel(), 'system','post_joingroup');
+ $post_joingroup = (($post_joingroup===false)? '0': $post_joingroup); // default if not set: 0
+
+ $post_profilechange = get_pconfig(local_channel(), 'system','post_profilechange');
+ $post_profilechange = (($post_profilechange===false)? '0': $post_profilechange); // default if not set: 0
+
+ $blocktags = get_pconfig(local_channel(),'system','blocktags');
+ $blocktags = (($blocktags===false) ? '0' : $blocktags);
+
+ $timezone = date_default_timezone_get();
+
+ $opt_tpl = get_markup_template("field_checkbox.tpl");
+ if(get_config('system','publish_all')) {
+ $profile_in_dir = '<input type="hidden" name="profile_in_directory" value="1" />';
+ }
+ else {
+ $profile_in_dir = replace_macros($opt_tpl,array(
+ '$field' => array('profile_in_directory', t('Publish your default profile in the network directory'), $profile['publish'], '', $yes_no),
+ ));
+ }
+
+ $suggestme = replace_macros($opt_tpl,array(
+ '$field' => array('suggestme', t('Allow us to suggest you as a potential friend to new members?'), $suggestme, '', $yes_no),
+
+ ));
+
+ $subdir = ((strlen(\App::get_path())) ? '<br />' . t('or') . ' ' . z_root() . '/channel/' . $nickname : '');
+
+ $tpl_addr = get_markup_template("settings_nick_set.tpl");
+
+ $prof_addr = replace_macros($tpl_addr,array(
+ '$desc' => t('Your channel address is'),
+ '$nickname' => $nickname,
+ '$subdir' => $subdir,
+ '$basepath' => \App::get_hostname()
+ ));
+
+ $stpl = get_markup_template('settings.tpl');
+
+ $acl = new \Zotlabs\Access\AccessList($channel);
+ $perm_defaults = $acl->get();
+
+ require_once('include/group.php');
+ $group_select = mini_group_select(local_channel(),$channel['channel_default_group']);
+
+ require_once('include/menu.php');
+ $m1 = menu_list(local_channel());
+ $menu = false;
+ if($m1) {
+ $menu = array();
+ $current = get_pconfig(local_channel(),'system','channel_menu');
+ $menu[] = array('name' => '', 'selected' => ((! $current) ? true : false));
+ foreach($m1 as $m) {
+ $menu[] = array('name' => htmlspecialchars($m['menu_name'],ENT_COMPAT,'UTF-8'), 'selected' => (($m['menu_name'] === $current) ? ' selected="selected" ' : false));
+ }
+ }
+
+ $evdays = get_pconfig(local_channel(),'system','evdays');
+ if(! $evdays)
+ $evdays = 3;
+
+ $permissions_role = get_pconfig(local_channel(),'system','permissions_role');
+ if(! $permissions_role)
+ $permissions_role = 'custom';
+
+ $permissions_set = (($permissions_role != 'custom') ? true : false);
+
+ $perm_roles = \Zotlabs\Access\PermissionRoles::roles();
+ if((get_account_techlevel() < 4) && $permissions_role !== 'custom')
+ unset($perm_roles[t('Other')]);
+
+ $vnotify = get_pconfig(local_channel(),'system','vnotify');
+ $always_show_in_notices = get_pconfig(local_channel(),'system','always_show_in_notices');
+ if($vnotify === false)
+ $vnotify = (-1);
+
+ $o .= replace_macros($stpl,array(
+ '$ptitle' => t('Channel Settings'),
+
+ '$submit' => t('Submit'),
+ '$baseurl' => z_root(),
+ '$uid' => local_channel(),
+ '$form_security_token' => get_form_security_token("settings"),
+ '$nickname_block' => $prof_addr,
+ '$h_basic' => t('Basic Settings'),
+ '$username' => array('username', t('Full Name:'), $username,''),
+ '$email' => array('email', t('Email Address:'), $email, ''),
+ '$timezone' => array('timezone_select' , t('Your Timezone:'), $timezone, '', get_timezones()),
+ '$defloc' => array('defloc', t('Default Post Location:'), $defloc, t('Geographical location to display on your posts')),
+ '$allowloc' => array('allow_location', t('Use Browser Location:'), ((get_pconfig(local_channel(),'system','use_browser_location')) ? 1 : ''), '', $yes_no),
+
+ '$adult' => array('adult', t('Adult Content'), $adult_flag, t('This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)'), $yes_no),
+
+ '$h_prv' => t('Security and Privacy Settings'),
+ '$permissions_set' => $permissions_set,
+ '$server_role' => \Zotlabs\Lib\System::get_server_role(),
+ '$perms_set_msg' => t('Your permissions are already configured. Click to view/adjust'),
+
+ '$hide_presence' => array('hide_presence', t('Hide my online presence'),$hide_presence, t('Prevents displaying in your profile that you are online'), $yes_no),
+
+ '$lbl_pmacro' => t('Simple Privacy Settings:'),
+ '$pmacro3' => t('Very Public - <em>extremely permissive (should be used with caution)</em>'),
+ '$pmacro2' => t('Typical - <em>default public, privacy when desired (similar to social network permissions but with improved privacy)</em>'),
+ '$pmacro1' => t('Private - <em>default private, never open or public</em>'),
+ '$pmacro0' => t('Blocked - <em>default blocked to/from everybody</em>'),
+ '$permiss_arr' => $permiss,
+ '$blocktags' => array('blocktags',t('Allow others to tag your posts'), 1-$blocktags, t('Often used by the community to retro-actively flag inappropriate content'), $yes_no),
+
+ '$lbl_p2macro' => t('Channel Permission Limits'),
+
+ '$expire' => array('expire',t('Expire other channel content after this many days'),$expire, t('0 or blank to use the website limit.') . ' ' . ((intval($sys_expire)) ? sprintf( t('This website expires after %d days.'),intval($sys_expire)) : t('This website does not expire imported content.')) . ' ' . t('The website limit takes precedence if lower than your limit.')),
+ '$maxreq' => array('maxreq', t('Maximum Friend Requests/Day:'), intval($channel['channel_max_friend_req']) , t('May reduce spam activity')),
+ '$permissions' => t('Default Access Control List (ACL)'),
+ '$permdesc' => t("\x28click to open/close\x29"),
+ '$aclselect' => populate_acl($perm_defaults, false, \Zotlabs\Lib\PermissionDescription::fromDescription(t('Use my default audience setting for the type of object published'))),
+ '$allow_cid' => acl2json($perm_defaults['allow_cid']),
+ '$allow_gid' => acl2json($perm_defaults['allow_gid']),
+ '$deny_cid' => acl2json($perm_defaults['deny_cid']),
+ '$deny_gid' => acl2json($perm_defaults['deny_gid']),
+ '$suggestme' => $suggestme,
+ '$group_select' => $group_select,
+ '$role' => array('permissions_role' , t('Channel permissions category:'), $permissions_role, '', $perm_roles),
+
+ '$profile_in_dir' => $profile_in_dir,
+ '$hide_friends' => $hide_friends,
+ '$hide_wall' => $hide_wall,
+ '$unkmail' => $unkmail,
+ '$cntunkmail' => array('cntunkmail', t('Maximum private messages per day from unknown people:'), intval($channel['channel_max_anon_mail']) ,t("Useful to reduce spamming")),
+
+
+ '$h_not' => t('Notification Settings'),
+ '$activity_options' => t('By default post a status message when:'),
+ '$post_newfriend' => array('post_newfriend', t('accepting a friend request'), $post_newfriend, '', $yes_no),
+ '$post_joingroup' => array('post_joingroup', t('joining a forum/community'), $post_joingroup, '', $yes_no),
+ '$post_profilechange' => array('post_profilechange', t('making an <em>interesting</em> profile change'), $post_profilechange, '', $yes_no),
+ '$lbl_not' => t('Send a notification email when:'),
+ '$notify1' => array('notify1', t('You receive a connection request'), ($notify & NOTIFY_INTRO), NOTIFY_INTRO, '', $yes_no),
+ '$notify2' => array('notify2', t('Your connections are confirmed'), ($notify & NOTIFY_CONFIRM), NOTIFY_CONFIRM, '', $yes_no),
+ '$notify3' => array('notify3', t('Someone writes on your profile wall'), ($notify & NOTIFY_WALL), NOTIFY_WALL, '', $yes_no),
+ '$notify4' => array('notify4', t('Someone writes a followup comment'), ($notify & NOTIFY_COMMENT), NOTIFY_COMMENT, '', $yes_no),
+ '$notify5' => array('notify5', t('You receive a private message'), ($notify & NOTIFY_MAIL), NOTIFY_MAIL, '', $yes_no),
+ '$notify6' => array('notify6', t('You receive a friend suggestion'), ($notify & NOTIFY_SUGGEST), NOTIFY_SUGGEST, '', $yes_no),
+ '$notify7' => array('notify7', t('You are tagged in a post'), ($notify & NOTIFY_TAGSELF), NOTIFY_TAGSELF, '', $yes_no),
+ '$notify8' => array('notify8', t('You are poked/prodded/etc. in a post'), ($notify & NOTIFY_POKE), NOTIFY_POKE, '', $yes_no),
+
+
+ '$lbl_vnot' => t('Show visual notifications including:'),
+
+ '$vnotify1' => array('vnotify1', t('Unseen grid activity'), ($vnotify & VNOTIFY_NETWORK), VNOTIFY_NETWORK, '', $yes_no),
+ '$vnotify2' => array('vnotify2', t('Unseen channel activity'), ($vnotify & VNOTIFY_CHANNEL), VNOTIFY_CHANNEL, '', $yes_no),
+ '$vnotify3' => array('vnotify3', t('Unseen private messages'), ($vnotify & VNOTIFY_MAIL), VNOTIFY_MAIL, t('Recommended'), $yes_no),
+ '$vnotify4' => array('vnotify4', t('Upcoming events'), ($vnotify & VNOTIFY_EVENT), VNOTIFY_EVENT, '', $yes_no),
+ '$vnotify5' => array('vnotify5', t('Events today'), ($vnotify & VNOTIFY_EVENTTODAY), VNOTIFY_EVENTTODAY, '', $yes_no),
+ '$vnotify6' => array('vnotify6', t('Upcoming birthdays'), ($vnotify & VNOTIFY_BIRTHDAY), VNOTIFY_BIRTHDAY, t('Not available in all themes'), $yes_no),
+ '$vnotify7' => array('vnotify7', t('System (personal) notifications'), ($vnotify & VNOTIFY_SYSTEM), VNOTIFY_SYSTEM, '', $yes_no),
+ '$vnotify8' => array('vnotify8', t('System info messages'), ($vnotify & VNOTIFY_INFO), VNOTIFY_INFO, t('Recommended'), $yes_no),
+ '$vnotify9' => array('vnotify9', t('System critical alerts'), ($vnotify & VNOTIFY_ALERT), VNOTIFY_ALERT, t('Recommended'), $yes_no),
+ '$vnotify10' => array('vnotify10', t('New connections'), ($vnotify & VNOTIFY_INTRO), VNOTIFY_INTRO, t('Recommended'), $yes_no),
+ '$vnotify11' => array('vnotify11', t('System Registrations'), ($vnotify & VNOTIFY_REGISTER), VNOTIFY_REGISTER, '', $yes_no),
+ '$always_show_in_notices' => array('always_show_in_notices', t('Also show new wall posts, private messages and connections under Notices'), $always_show_in_notices, 1, '', $yes_no),
+
+ '$evdays' => array('evdays', t('Notify me of events this many days in advance'), $evdays, t('Must be greater than 0')),
+
+ '$h_advn' => t('Advanced Account/Page Type Settings'),
+ '$h_descadvn' => t('Change the behaviour of this account for special situations'),
+ '$pagetype' => $pagetype,
+ '$lbl_misc' => t('Miscellaneous Settings'),
+ '$photo_path' => array('photo_path', t('Default photo upload folder'), get_pconfig(local_channel(),'system','photo_path'), t('%Y - current year, %m - current month')),
+ '$attach_path' => array('attach_path', t('Default file upload folder'), get_pconfig(local_channel(),'system','attach_path'), t('%Y - current year, %m - current month')),
+ '$menus' => $menu,
+ '$menu_desc' => t('Personal menu to display in your channel pages'),
+ '$removeme' => t('Remove Channel'),
+ '$removechannel' => t('Remove this channel.'),
+ '$firefoxshare' => t('Firefox Share $Projectname provider'),
+ '$cal_first_day' => array('first_day', t('Start calendar week on monday'), ((get_pconfig(local_channel(),'system','cal_first_day')) ? 1 : ''), '', $yes_no),
+ ));
+
+ call_hooks('settings_form',$o);
+
+ //$o .= '</form>' . "\r\n";
+
+ return $o;
+ }
+}
diff --git a/Zotlabs/Module/Settings/Display.php b/Zotlabs/Module/Settings/Display.php
new file mode 100644
index 000000000..8da875de7
--- /dev/null
+++ b/Zotlabs/Module/Settings/Display.php
@@ -0,0 +1,240 @@
+<?php
+
+namespace Zotlabs\Module\Settings;
+
+
+class Display {
+
+ /*
+ * DISPLAY SETTINGS
+ */
+
+ function post() {
+ check_form_security_token_redirectOnErr('/settings/display', 'settings_display');
+
+ $themespec = explode(':', \App::$channel['channel_theme']);
+ $existing_theme = $themespec[0];
+ $existing_schema = $themespec[1];
+
+ $theme = ((x($_POST,'theme')) ? notags(trim($_POST['theme'])) : $existing_theme);
+
+ if(! $theme)
+ $theme = 'redbasic';
+
+ $mobile_theme = ((x($_POST,'mobile_theme')) ? notags(trim($_POST['mobile_theme'])) : '');
+ $preload_images = ((x($_POST,'preload_images')) ? intval($_POST['preload_images']) : 0);
+ $user_scalable = ((x($_POST,'user_scalable')) ? intval($_POST['user_scalable']) : 0);
+ $nosmile = ((x($_POST,'nosmile')) ? intval($_POST['nosmile']) : 0);
+ $title_tosource = ((x($_POST,'title_tosource')) ? intval($_POST['title_tosource']) : 0);
+ $channel_list_mode = ((x($_POST,'channel_list_mode')) ? intval($_POST['channel_list_mode']) : 0);
+ $network_list_mode = ((x($_POST,'network_list_mode')) ? intval($_POST['network_list_mode']) : 0);
+
+ $channel_divmore_height = ((x($_POST,'channel_divmore_height')) ? intval($_POST['channel_divmore_height']) : 400);
+ if($channel_divmore_height < 50)
+ $channel_divmore_height = 50;
+ $network_divmore_height = ((x($_POST,'network_divmore_height')) ? intval($_POST['network_divmore_height']) : 400);
+ if($network_divmore_height < 50)
+ $network_divmore_height = 50;
+
+ $browser_update = ((x($_POST,'browser_update')) ? intval($_POST['browser_update']) : 0);
+ $browser_update = $browser_update * 1000;
+ if($browser_update < 10000)
+ $browser_update = 10000;
+
+ $itemspage = ((x($_POST,'itemspage')) ? intval($_POST['itemspage']) : 20);
+ if($itemspage > 100)
+ $itemspage = 100;
+
+ if ($mobile_theme == "---")
+ del_pconfig(local_channel(),'system','mobile_theme');
+ else {
+ set_pconfig(local_channel(),'system','mobile_theme',$mobile_theme);
+ }
+
+ set_pconfig(local_channel(),'system','preload_images',$preload_images);
+ set_pconfig(local_channel(),'system','user_scalable',$user_scalable);
+ set_pconfig(local_channel(),'system','update_interval', $browser_update);
+ set_pconfig(local_channel(),'system','itemspage', $itemspage);
+ set_pconfig(local_channel(),'system','no_smilies',1-intval($nosmile));
+ set_pconfig(local_channel(),'system','title_tosource',$title_tosource);
+ set_pconfig(local_channel(),'system','channel_list_mode', $channel_list_mode);
+ set_pconfig(local_channel(),'system','network_list_mode', $network_list_mode);
+ set_pconfig(local_channel(),'system','channel_divmore_height', $channel_divmore_height);
+ set_pconfig(local_channel(),'system','network_divmore_height', $network_divmore_height);
+
+ $newschema = '';
+ if($theme == $existing_theme){
+ // call theme_post only if theme has not been changed
+ if( ($themeconfigfile = $this->get_theme_config_file($theme)) != null){
+ require_once($themeconfigfile);
+ if(class_exists('\\Zotlabs\\Theme\\' . ucfirst($theme) . 'Config')) {
+ $clsname = '\\Zotlabs\\Theme\\' . ucfirst($theme) . 'Config';
+ $theme_config = new $clsname();
+ $schemas = $theme_config->get_schemas();
+ if(array_key_exists($_POST['schema'],$schemas))
+ $newschema = $_POST['schema'];
+ if($newschema === '---')
+ $newschema = '';
+ $theme_config->post();
+ }
+ }
+ }
+
+ logger('theme: ' . $theme . (($newschema) ? ':' . $newschema : ''));
+
+ $_SESSION['theme'] = $theme . (($newschema) ? ':' . $newschema : '');
+
+ $r = q("UPDATE channel SET channel_theme = '%s' WHERE channel_id = %d",
+ dbesc($theme . (($newschema) ? ':' . $newschema : '')),
+ intval(local_channel())
+ );
+
+ call_hooks('display_settings_post', $_POST);
+ build_sync_packet();
+ goaway(z_root() . '/settings/display' );
+ return; // NOTREACHED
+ }
+
+
+ function get() {
+
+ $yes_no = array(t('No'),t('Yes'));
+
+ $default_theme = get_config('system','theme');
+ if(! $default_theme)
+ $default_theme = 'redbasic';
+
+ $themespec = explode(':', \App::$channel['channel_theme']);
+ $existing_theme = $themespec[0];
+ $existing_schema = $themespec[1];
+
+ $theme = (($existing_theme) ? $existing_theme : $default_theme);
+
+ $default_mobile_theme = get_config('system','mobile_theme');
+ if(! $mobile_default_theme)
+ $mobile_default_theme = 'none';
+
+ $allowed_themes_str = get_config('system','allowed_themes');
+ $allowed_themes_raw = explode(',',$allowed_themes_str);
+ $allowed_themes = array();
+ if(count($allowed_themes_raw))
+ foreach($allowed_themes_raw as $x)
+ if(strlen(trim($x)) && is_dir("view/theme/$x"))
+ $allowed_themes[] = trim($x);
+
+
+ $themes = array();
+ $files = glob('view/theme/*');
+ if($allowed_themes) {
+ foreach($allowed_themes as $th) {
+ $f = $th;
+ $is_experimental = file_exists('view/theme/' . $th . '/experimental');
+ $unsupported = file_exists('view/theme/' . $th . '/unsupported');
+ $is_mobile = file_exists('view/theme/' . $th . '/mobile');
+ $is_library = file_exists('view/theme/'. $th . '/library');
+ $mobile_themes["---"] = t("No special theme for mobile devices");
+
+ if (!$is_experimental or ($is_experimental && (get_config('experimentals','exp_themes')==1 or get_config('experimentals','exp_themes')===false))){
+ $theme_name = (($is_experimental) ? sprintf(t('%s - (Experimental)'), $f) : $f);
+ if (! $is_library) {
+ if($is_mobile) {
+ $mobile_themes[$f] = $themes[$f] = $theme_name . ' (' . t('mobile') . ')';
+ }
+ else {
+ $mobile_themes[$f] = $themes[$f] = $theme_name;
+ }
+ }
+ }
+
+ }
+ }
+
+ $theme_selected = ((array_key_exists('theme',$_SESSION) && $_SESSION['theme']) ? $_SESSION['theme'] : $theme);
+
+ $mobile_theme_selected = (!x($_SESSION,'mobile_theme')? $default_mobile_theme : $_SESSION['mobile_theme']);
+
+ $preload_images = get_pconfig(local_channel(),'system','preload_images');
+ $preload_images = (($preload_images===false)? '0': $preload_images); // default if not set: 0
+
+ $user_scalable = get_pconfig(local_channel(),'system','user_scalable');
+ $user_scalable = (($user_scalable===false)? '1': $user_scalable); // default if not set: 1
+
+ $browser_update = intval(get_pconfig(local_channel(), 'system','update_interval'));
+ $browser_update = (($browser_update == 0) ? 80 : $browser_update / 1000); // default if not set: 40 seconds
+
+ $itemspage = intval(get_pconfig(local_channel(), 'system','itemspage'));
+ $itemspage = (($itemspage > 0 && $itemspage < 101) ? $itemspage : 20); // default if not set: 20 items
+
+ $nosmile = get_pconfig(local_channel(),'system','no_smilies');
+ $nosmile = (($nosmile===false)? '0': $nosmile); // default if not set: 0
+
+ $title_tosource = get_pconfig(local_channel(),'system','title_tosource');
+ $title_tosource = (($title_tosource===false)? '0': $title_tosource); // default if not set: 0
+
+ $theme_config = "";
+ if(($themeconfigfile = $this->get_theme_config_file($theme)) != null){
+ require_once($themeconfigfile);
+ if(class_exists('\\Zotlabs\\Theme\\' . ucfirst($theme) . 'Config')) {
+ $clsname = '\\Zotlabs\\Theme\\' . ucfirst($theme) . 'Config';
+ $thm_config = new $clsname();
+ $schemas = $thm_config->get_schemas();
+ $theme_config = $thm_config->get();
+ }
+ }
+
+ // logger('schemas: ' . print_r($schemas,true));
+
+ $tpl = get_markup_template("settings_display.tpl");
+ $o = replace_macros($tpl, array(
+ '$ptitle' => t('Display Settings'),
+ '$d_tset' => t('Theme Settings'),
+ '$d_ctset' => t('Custom Theme Settings'),
+ '$d_cset' => t('Content Settings'),
+ '$form_security_token' => get_form_security_token("settings_display"),
+ '$submit' => t('Submit'),
+ '$baseurl' => z_root(),
+ '$uid' => local_channel(),
+
+ '$theme' => (($themes) ? array('theme', t('Display Theme:'), $theme_selected, '', $themes, 'preview') : false),
+ '$schema' => array('schema', t('Select scheme'), $existing_schema, '' , $schemas),
+
+ '$mobile_theme' => (($mobile_themes) ? array('mobile_theme', t('Mobile Theme:'), $mobile_theme_selected, '', $mobile_themes, '') : false),
+ '$preload_images' => array('preload_images', t("Preload images before rendering the page"), $preload_images, t("The subjective page load time will be longer but the page will be ready when displayed"), $yes_no),
+ '$user_scalable' => array('user_scalable', t("Enable user zoom on mobile devices"), $user_scalable, '', $yes_no),
+ '$ajaxint' => array('browser_update', t("Update browser every xx seconds"), $browser_update, t('Minimum of 10 seconds, no maximum')),
+ '$itemspage' => array('itemspage', t("Maximum number of conversations to load at any time:"), $itemspage, t('Maximum of 100 items')),
+ '$nosmile' => array('nosmile', t("Show emoticons (smilies) as images"), 1-intval($nosmile), '', $yes_no),
+ '$title_tosource' => array('title_tosource', t("Link post titles to source"), $title_tosource, '', $yes_no),
+ '$layout_editor' => t('System Page Layout Editor - (advanced)'),
+ '$theme_config' => $theme_config,
+ '$expert' => feature_enabled(local_channel(),'advanced_theming'),
+ '$channel_list_mode' => array('channel_list_mode', t('Use blog/list mode on channel page'), get_pconfig(local_channel(),'system','channel_list_mode'), t('(comments displayed separately)'), $yes_no),
+ '$network_list_mode' => array('network_list_mode', t('Use blog/list mode on grid page'), get_pconfig(local_channel(),'system','network_list_mode'), t('(comments displayed separately)'), $yes_no),
+ '$channel_divmore_height' => array('channel_divmore_height', t('Channel page max height of content (in pixels)'), ((get_pconfig(local_channel(),'system','channel_divmore_height')) ? get_pconfig(local_channel(),'system','channel_divmore_height') : 400), t('click to expand content exceeding this height')),
+ '$network_divmore_height' => array('network_divmore_height', t('Grid page max height of content (in pixels)'), ((get_pconfig(local_channel(),'system','network_divmore_height')) ? get_pconfig(local_channel(),'system','network_divmore_height') : 400) , t('click to expand content exceeding this height')),
+
+
+ ));
+
+ call_hooks('display_settings',$o);
+ return $o;
+ }
+
+
+ function get_theme_config_file($theme){
+
+ $base_theme = \App::$theme_info['extends'];
+
+ if (file_exists("view/theme/$theme/php/config.php")){
+ return "view/theme/$theme/php/config.php";
+ }
+ if (file_exists("view/theme/$base_theme/php/config.php")){
+ return "view/theme/$base_theme/php/config.php";
+ }
+ return null;
+ }
+
+
+
+
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Settings/Featured.php b/Zotlabs/Module/Settings/Featured.php
new file mode 100644
index 000000000..7d7b1a734
--- /dev/null
+++ b/Zotlabs/Module/Settings/Featured.php
@@ -0,0 +1,37 @@
+<?php
+
+namespace Zotlabs\Module\Settings;
+
+
+class Featured {
+
+ function post() {
+ check_form_security_token_redirectOnErr('/settings/featured', 'settings_featured');
+
+ call_hooks('feature_settings_post', $_POST);
+
+ build_sync_packet();
+ return;
+ }
+
+ function get() {
+ $settings_addons = "";
+
+ $o = '';
+
+ $r = q("SELECT * FROM `hook` WHERE `hook` = 'feature_settings' ");
+ if(! $r)
+ $settings_addons = t('No feature settings configured');
+
+ call_hooks('feature_settings', $settings_addons);
+
+ $tpl = get_markup_template("settings_addons.tpl");
+ $o .= replace_macros($tpl, array(
+ '$form_security_token' => get_form_security_token("settings_featured"),
+ '$title' => t('Feature/Addon Settings'),
+ '$settings_addons' => $settings_addons
+ ));
+ return $o;
+ }
+
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Settings/Features.php b/Zotlabs/Module/Settings/Features.php
new file mode 100644
index 000000000..2d9bc0c88
--- /dev/null
+++ b/Zotlabs/Module/Settings/Features.php
@@ -0,0 +1,53 @@
+<?php
+
+namespace Zotlabs\Module\Settings;
+
+
+class Features {
+
+ function post() {
+ check_form_security_token_redirectOnErr('/settings/features', 'settings_features');
+
+ // Build list of features and check which are set
+ // We will not create any settings for features that are above our techlevel
+
+ $features = get_features();
+ $all_features = array();
+ foreach($features as $k => $v) {
+ foreach($v as $f)
+ $all_features[] = $f[0];
+ }
+ foreach($all_features as $k) {
+ if(x($_POST,"feature_$k"))
+ set_pconfig(local_channel(),'feature',$k, 1);
+ else
+ set_pconfig(local_channel(),'feature',$k, 0);
+ }
+ build_sync_packet();
+ return;
+ }
+
+ function get() {
+ $arr = array();
+ $features = get_features();
+
+ foreach($features as $fname => $fdata) {
+ $arr[$fname] = array();
+ $arr[$fname][0] = $fdata[0];
+ foreach(array_slice($fdata,1) as $f) {
+ $arr[$fname][1][] = array('feature_' .$f[0],$f[1],((intval(feature_enabled(local_channel(),$f[0]))) ? "1" : ''),$f[2],array(t('Off'),t('On')));
+ }
+ }
+
+ $tpl = get_markup_template("settings_features.tpl");
+ $o .= replace_macros($tpl, array(
+ '$form_security_token' => get_form_security_token("settings_features"),
+ '$title' => t('Additional Features'),
+ '$features' => $arr,
+ '$submit' => t('Submit'),
+ ));
+
+ return $o;
+ }
+
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Settings/Oauth.php b/Zotlabs/Module/Settings/Oauth.php
new file mode 100644
index 000000000..c612c7667
--- /dev/null
+++ b/Zotlabs/Module/Settings/Oauth.php
@@ -0,0 +1,160 @@
+<?php
+
+namespace Zotlabs\Module\Settings;
+
+
+class Oauth {
+
+
+ function post() {
+
+ if(x($_POST,'remove')){
+ check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth');
+
+ $key = $_POST['remove'];
+ q("DELETE FROM tokens WHERE id='%s' AND uid=%d",
+ dbesc($key),
+ local_channel());
+ goaway(z_root()."/settings/oauth/");
+ return;
+ }
+
+ if((argc() > 2) && (argv(2) === 'edit' || argv(2) === 'add') && x($_POST,'submit')) {
+
+ check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth');
+
+ $name = ((x($_POST,'name')) ? $_POST['name'] : '');
+ $key = ((x($_POST,'key')) ? $_POST['key'] : '');
+ $secret = ((x($_POST,'secret')) ? $_POST['secret'] : '');
+ $redirect = ((x($_POST,'redirect')) ? $_POST['redirect'] : '');
+ $icon = ((x($_POST,'icon')) ? $_POST['icon'] : '');
+ $ok = true;
+ if($name == '') {
+ $ok = false;
+ notice( t('Name is required') . EOL);
+ }
+ if($key == '' || $secret == '') {
+ $ok = false;
+ notice( t('Key and Secret are required') . EOL);
+ }
+
+ if($ok) {
+ if ($_POST['submit']==t("Update")){
+ $r = q("UPDATE clients SET
+ client_id='%s',
+ pw='%s',
+ clname='%s',
+ redirect_uri='%s',
+ icon='%s',
+ uid=%d
+ WHERE client_id='%s'",
+ dbesc($key),
+ dbesc($secret),
+ dbesc($name),
+ dbesc($redirect),
+ dbesc($icon),
+ intval(local_channel()),
+ dbesc($key));
+ } else {
+ $r = q("INSERT INTO clients (client_id, pw, clname, redirect_uri, icon, uid)
+ VALUES ('%s','%s','%s','%s','%s',%d)",
+ dbesc($key),
+ dbesc($secret),
+ dbesc($name),
+ dbesc($redirect),
+ dbesc($icon),
+ intval(local_channel())
+ );
+ $r = q("INSERT INTO xperm (xp_client, xp_channel, xp_perm) VALUES ('%s', %d, '%s') ",
+ dbesc($key),
+ intval(local_channel()),
+ dbesc('all')
+ );
+ }
+ }
+ goaway(z_root()."/settings/oauth/");
+ return;
+ }
+ }
+
+ function get() {
+
+ if((argc() > 2) && (argv(2) === 'add')) {
+ $tpl = get_markup_template("settings_oauth_edit.tpl");
+ $o .= replace_macros($tpl, array(
+ '$form_security_token' => get_form_security_token("settings_oauth"),
+ '$title' => t('Add application'),
+ '$submit' => t('Submit'),
+ '$cancel' => t('Cancel'),
+ '$name' => array('name', t('Name'), '', t('Name of application')),
+ '$key' => array('key', t('Consumer Key'), random_string(16), t('Automatically generated - change if desired. Max length 20')),
+ '$secret' => array('secret', t('Consumer Secret'), random_string(16), t('Automatically generated - change if desired. Max length 20')),
+ '$redirect' => array('redirect', t('Redirect'), '', t('Redirect URI - leave blank unless your application specifically requires this')),
+ '$icon' => array('icon', t('Icon url'), '', t('Optional')),
+ ));
+ return $o;
+ }
+
+ if((argc() > 3) && (argv(2) === 'edit')) {
+ $r = q("SELECT * FROM clients WHERE client_id='%s' AND uid=%d",
+ dbesc(argv(3)),
+ local_channel());
+
+ if (!count($r)){
+ notice(t('Application not found.'));
+ return;
+ }
+ $app = $r[0];
+
+ $tpl = get_markup_template("settings_oauth_edit.tpl");
+ $o .= replace_macros($tpl, array(
+ '$form_security_token' => get_form_security_token("settings_oauth"),
+ '$title' => t('Add application'),
+ '$submit' => t('Update'),
+ '$cancel' => t('Cancel'),
+ '$name' => array('name', t('Name'), $app['clname'] , ''),
+ '$key' => array('key', t('Consumer Key'), $app['client_id'], ''),
+ '$secret' => array('secret', t('Consumer Secret'), $app['pw'], ''),
+ '$redirect' => array('redirect', t('Redirect'), $app['redirect_uri'], ''),
+ '$icon' => array('icon', t('Icon url'), $app['icon'], ''),
+ ));
+ return $o;
+ }
+
+ if((argc() > 3) && (argv(2) === 'delete')) {
+ check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth', 't');
+
+ $r = q("DELETE FROM clients WHERE client_id='%s' AND uid=%d",
+ dbesc(argv(3)),
+ local_channel());
+ goaway(z_root()."/settings/oauth/");
+ return;
+ }
+
+
+ $r = q("SELECT clients.*, tokens.id as oauth_token, (clients.uid=%d) AS my
+ FROM clients
+ LEFT JOIN tokens ON clients.client_id=tokens.client_id
+ WHERE clients.uid IN (%d,0)",
+ local_channel(),
+ local_channel());
+
+
+ $tpl = get_markup_template("settings_oauth.tpl");
+ $o .= replace_macros($tpl, array(
+ '$form_security_token' => get_form_security_token("settings_oauth"),
+ '$baseurl' => z_root(),
+ '$title' => t('Connected Apps'),
+ '$add' => t('Add application'),
+ '$edit' => t('Edit'),
+ '$delete' => t('Delete'),
+ '$consumerkey' => t('Client key starts with'),
+ '$noname' => t('No name'),
+ '$remove' => t('Remove authorization'),
+ '$apps' => $r,
+ ));
+ return $o;
+
+ }
+
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Settings/Tokens.php b/Zotlabs/Module/Settings/Tokens.php
new file mode 100644
index 000000000..0ae960785
--- /dev/null
+++ b/Zotlabs/Module/Settings/Tokens.php
@@ -0,0 +1,172 @@
+<?php
+
+namespace Zotlabs\Module\Settings;
+
+
+
+class Tokens {
+
+ function post() {
+
+ $channel = \App::get_channel();
+
+ check_form_security_token_redirectOnErr('/settings/tokens', 'settings_tokens');
+ $token_errs = 0;
+ if(array_key_exists('token',$_POST)) {
+ $atoken_id = (($_POST['atoken_id']) ? intval($_POST['atoken_id']) : 0);
+ $name = trim(escape_tags($_POST['name']));
+ $token = trim($_POST['token']);
+ if((! $name) || (! $token))
+ $token_errs ++;
+ if(trim($_POST['expires']))
+ $expires = datetime_convert(date_default_timezone_get(),'UTC',$_POST['expires']);
+ else
+ $expires = NULL_DATE;
+ $max_atokens = service_class_fetch(local_channel(),'access_tokens');
+ if($max_atokens) {
+ $r = q("select count(atoken_id) as total where atoken_uid = %d",
+ intval(local_channel())
+ );
+ if($r && intval($r[0]['total']) >= $max_tokens) {
+ notice( sprintf( t('This channel is limited to %d tokens'), $max_tokens) . EOL);
+ return;
+ }
+ }
+ }
+ if($token_errs) {
+ notice( t('Name and Password are required.') . EOL);
+ return;
+ }
+ if($atoken_id) {
+ $r = q("update atoken set atoken_name = '%s', atoken_token = '%s', atoken_expires = '%s'
+ where atoken_id = %d and atoken_uid = %d",
+ dbesc($name),
+ dbesc($token),
+ dbesc($expires),
+ intval($atoken_id),
+ intval($channel['channel_id'])
+ );
+ }
+ else {
+ $r = q("insert into atoken ( atoken_aid, atoken_uid, atoken_name, atoken_token, atoken_expires )
+ values ( %d, %d, '%s', '%s', '%s' ) ",
+ intval($channel['channel_account_id']),
+ intval($channel['channel_id']),
+ dbesc($name),
+ dbesc($token),
+ dbesc($expires)
+ );
+ }
+
+ $atoken_xchan = substr($channel['channel_hash'],0,16) . '.' . $name;
+
+ $all_perms = \Zotlabs\Access\Permissions::Perms();
+
+ if($all_perms) {
+ foreach($all_perms as $perm => $desc) {
+ if(array_key_exists('perms_' . $perm, $_POST)) {
+ set_abconfig($channel['channel_id'],$atoken_xchan,'my_perms',$perm,intval($_POST['perms_' . $perm]));
+ }
+ else {
+ set_abconfig($channel['channel_id'],$atoken_xchan,'my_perms',$perm,0);
+ }
+ }
+ }
+
+
+ info( t('Token saved.') . EOL);
+ return;
+ }
+
+
+ function get() {
+
+ $channel = \App::get_channel();
+
+ $atoken = null;
+ $atoken_xchan = '';
+
+ if(argc() > 2) {
+ $id = argv(2);
+
+ $atoken = q("select * from atoken where atoken_id = %d and atoken_uid = %d",
+ intval($id),
+ intval(local_channel())
+ );
+
+ if($atoken) {
+ $atoken = $atoken[0];
+ $atoken_xchan = substr($channel['channel_hash'],0,16) . '.' . $atoken['atoken_name'];
+ }
+
+ if($atoken && argc() > 3 && argv(3) === 'drop') {
+ atoken_delete($id);
+ $atoken = null;
+ $atoken_xchan = '';
+ }
+ }
+
+ $t = q("select * from atoken where atoken_uid = %d",
+ intval(local_channel())
+ );
+
+ $desc = t('Use this form to create temporary access identifiers to share things with non-members. These identities may be used in Access Control Lists and visitors may login using these credentials to access private content.');
+
+ $desc2 = t('You may also provide <em>dropbox</em> style access links to friends and associates by adding the Login Password to any specific site URL as shown. Examples:');
+
+ $global_perms = \Zotlabs\Access\Permissions::Perms();
+
+ $existing = get_all_perms(local_channel(),(($atoken_xchan) ? $atoken_xchan : ''));
+
+ if($atoken_xchan) {
+ $theirs = q("select * from abconfig where chan = %d and xchan = '%s' and cat = 'their_perms'",
+ intval(local_channel()),
+ dbesc($atoken_xchan)
+ );
+ $their_perms = array();
+ if($theirs) {
+ foreach($theirs as $t) {
+ $their_perms[$t['k']] = $t['v'];
+ }
+ }
+ }
+ foreach($global_perms as $k => $v) {
+ $thisperm = get_abconfig(local_channel(),$contact['abook_xchan'],'my_perms',$k);
+//fixme
+
+ $checkinherited = \Zotlabs\Access\PermissionLimits::Get(local_channel(),$k);
+
+ if($existing[$k])
+ $thisperm = "1";
+
+ $perms[] = array('perms_' . $k, $v, ((array_key_exists($k,$their_perms)) ? intval($their_perms[$k]) : ''),$thisperm, 1, (($checkinherited & PERMS_SPECIFIC) ? '' : '1'), '', $checkinherited);
+ }
+
+
+
+ $tpl = get_markup_template("settings_tokens.tpl");
+ $o .= replace_macros($tpl, array(
+ '$form_security_token' => get_form_security_token("settings_tokens"),
+ '$title' => t('Guest Access Tokens'),
+ '$desc' => $desc,
+ '$desc2' => $desc2,
+ '$tokens' => $t,
+ '$atoken' => $atoken,
+ '$url1' => z_root() . '/channel/' . $channel['channel_address'],
+ '$url2' => z_root() . '/photos/' . $channel['channel_address'],
+ '$name' => array('name', t('Login Name') . ' <span class="required">*</span>', (($atoken) ? $atoken['atoken_name'] : ''),''),
+ '$token'=> array('token', t('Login Password') . ' <span class="required">*</span>',(($atoken) ? $atoken['atoken_token'] : autoname(8)), ''),
+ '$expires'=> array('expires', t('Expires (yyyy-mm-dd)'), (($atoken['atoken_expires'] && $atoken['atoken_expires'] != NULL_DATE) ? datetime_convert('UTC',date_default_timezone_get(),$atoken['atoken_expires']) : ''), ''),
+ '$them' => t('Their Settings'),
+ '$me' => t('My Settings'),
+ '$perms' => $perms,
+ '$inherited' => t('inherited'),
+ '$notself' => '1',
+ '$permlbl' => t('Individual Permissions'),
+ '$permnote' => t('Some permissions may be inherited from your channel\'s <a href="settings"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can <strong>not</strong> change those settings here.'),
+ '$submit' => t('Submit')
+ ));
+ return $o;
+ }
+
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Setup.php b/Zotlabs/Module/Setup.php
index 4553b6866..22a7be99e 100644
--- a/Zotlabs/Module/Setup.php
+++ b/Zotlabs/Module/Setup.php
@@ -43,11 +43,12 @@ class Setup extends \Zotlabs\Web\Controller {
killme();
}
- if (x($_POST, 'pass'))
+ if (x($_POST, 'pass')) {
$this->install_wizard_pass = intval($_POST['pass']);
- else
+ }
+ else {
$this->install_wizard_pass = 1;
-
+ }
}
/**
@@ -73,7 +74,9 @@ class Setup extends \Zotlabs\Web\Controller {
$phpath = trim($_POST['phpath']);
$adminmail = trim($_POST['adminmail']);
$siteurl = trim($_POST['siteurl']);
- $advanced = ((intval($_POST['advanced'])) ? 1 : 0);
+ $server_role = trim($_POST['server_role']);
+ if(! $server_role)
+ $server_role = 'standard';
// $siteurl should not have a trailing slash
@@ -84,7 +87,7 @@ class Setup extends \Zotlabs\Web\Controller {
$db = \DBA::dba_factory($dbhost, $dbport, $dbuser, $dbpass, $dbdata, $dbtype, true);
if(! \DBA::$dba->connected) {
- echo 'Database Connect failed: ' . DBA::$dba->error;
+ echo 'Database Connect failed: ' . \DBA::$dba->error;
killme();
}
return;
@@ -101,7 +104,9 @@ class Setup extends \Zotlabs\Web\Controller {
$timezone = notags(trim($_POST['timezone']));
$adminmail = notags(trim($_POST['adminmail']));
$siteurl = notags(trim($_POST['siteurl']));
- $advanced = ((intval($_POST['advanced'])) ? 'pro' : 'basic');
+ $server_role = notags(trim($_POST['server_role']));
+ if(! $server_role)
+ $server_role = 'standard';
if($siteurl != z_root()) {
$test = z_fetch_url($siteurl."/setup/testrewrite");
@@ -130,7 +135,7 @@ class Setup extends \Zotlabs\Web\Controller {
'$dbpass' => $dbpass,
'$dbdata' => $dbdata,
'$dbtype' => $dbtype,
- '$server_role' => $advanced,
+ '$server_role' => $server_role,
'$timezone' => $timezone,
'$siteurl' => $siteurl,
'$site_id' => random_string(),
@@ -327,6 +332,12 @@ class Setup extends \Zotlabs\Web\Controller {
$siteurl = notags(trim($_POST['siteurl']));
$timezone = ((x($_POST,'timezone')) ? ($_POST['timezone']) : 'America/Los_Angeles');
+ $server_roles = [
+ 'basic' => t('Basic/Minimal Social Networking'),
+ 'standard' => t('Standard Configuration (default)'),
+ 'pro' => t('Professional')
+ ];
+
$tpl = get_markup_template('install_settings.tpl');
$o .= replace_macros($tpl, array(
'$title' => $install_title,
@@ -344,7 +355,8 @@ class Setup extends \Zotlabs\Web\Controller {
'$adminmail' => array('adminmail', t('Site administrator email address'), $adminmail, t('Your account email address must match this in order to use the web admin panel.')),
'$siteurl' => array('siteurl', t('Website URL'), z_root(), t('Please use SSL (https) URL if available.')),
- '$advanced' => array('advanced', t('Enable $Projectname <strong>advanced</strong> features?'), 1, t('Some advanced features, while useful - may be best suited for technically proficient audiences')),
+
+ '$server_role' => array('server_role', t("Server Configuration/Role"), 'standard','',$server_roles),
'$timezone' => array('timezone', t('Please select a default timezone for your website'), $timezone, '', get_timezones()),
diff --git a/Zotlabs/Module/Theme_info.php b/Zotlabs/Module/Theme_info.php
new file mode 100644
index 000000000..e27ec9444
--- /dev/null
+++ b/Zotlabs/Module/Theme_info.php
@@ -0,0 +1,71 @@
+<?php
+
+namespace Zotlabs\Module;
+
+
+class Theme_info extends \Zotlabs\Web\Controller {
+
+ function get() {
+ $theme = argv(1);
+ if(! $theme)
+ killme();
+
+ $schemalist = array();
+
+ $theme_config = "";
+ if(($themeconfigfile = $this->get_theme_config_file($theme)) != null){
+ require_once($themeconfigfile);
+ if(class_exists('\\Zotlabs\\Theme\\' . ucfirst($theme) . 'Config')) {
+ $clsname = '\\Zotlabs\\Theme\\' . ucfirst($theme) . 'Config';
+ $th_config = new $clsname();
+ $schemas = $th_config->get_schemas();
+ if($schemas) {
+ foreach($schemas as $k => $v) {
+ $schemalist[] = [ 'key' => $k, 'val' => $v ];
+ }
+ }
+ $theme_config = $th_config->get();
+ }
+ }
+ $info = get_theme_info($theme);
+ if($info) {
+ // unfortunately there will be no translation for this string
+ $desc = $info['description'];
+ $version = $info['version'];
+ $credits = $info['credits'];
+ }
+ else {
+ $desc = '';
+ $version = '';
+ $credits = '';
+ }
+
+ $ret = [
+ 'theme' => $theme,
+ 'img' => get_theme_screenshot($theme),
+ 'desc' => $desc,
+ 'version' => $version,
+ 'credits' => $credits,
+ 'schemas' => $schemalist,
+ 'config' => $theme_config
+ ];
+ json_return_and_die($ret);
+
+ }
+
+
+ function get_theme_config_file($theme){
+
+ $base_theme = \App::$theme_info['extends'];
+
+ if (file_exists("view/theme/$theme/php/config.php")){
+ return "view/theme/$theme/php/config.php";
+ }
+ if (file_exists("view/theme/$base_theme/php/config.php")){
+ return "view/theme/$base_theme/php/config.php";
+ }
+ return null;
+ }
+
+
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Webpages.php b/Zotlabs/Module/Webpages.php
index 0a48d43c6..0da699c73 100644
--- a/Zotlabs/Module/Webpages.php
+++ b/Zotlabs/Module/Webpages.php
@@ -41,7 +41,6 @@ class Webpages extends \Zotlabs\Web\Controller {
$uid = local_channel();
$owner = 0;
- $channel = null;
$observer = \App::get_observer();
$channel = \App::get_channel();
@@ -62,6 +61,28 @@ class Webpages extends \Zotlabs\Web\Controller {
case 'importselected':
$_SESSION['action'] = null;
break;
+ case 'export_select_list':
+ $_SESSION['action'] = null;
+ if(!$uid) {
+ $_SESSION['export'] = null;
+ break;
+ }
+ require_once('include/import.php');
+
+ $pages = get_webpage_elements($channel, 'pages');
+ $layouts = get_webpage_elements($channel, 'layouts');
+ $blocks = get_webpage_elements($channel, 'blocks');
+ $o .= replace_macros(get_markup_template('webpage_export_list.tpl'), array(
+ '$title' => t('Export Webpage Elements'),
+ '$exportbtn' => t('Export selected'),
+ '$action' => $_SESSION['export'], // value should be 'zipfile' or 'cloud'
+ '$pages' => $pages['pages'],
+ '$layouts' => $layouts['layouts'],
+ '$blocks' => $blocks['blocks'],
+ ));
+ $_SESSION['export'] = null;
+ return $o;
+
default :
$_SESSION['action'] = null;
break;
@@ -115,9 +136,11 @@ class Webpages extends \Zotlabs\Web\Controller {
'deny_gid' => $channel['channel_deny_gid']
);
}
- else
- $channel_acl = array();
+ else {
+ $channel_acl = [ 'allow_cid' => '', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '' ];
+ }
+
$is_owner = ($uid && $uid == $owner);
$o = profile_tabs($a, $is_owner, \App::$profile['channel_address']);
@@ -127,7 +150,7 @@ class Webpages extends \Zotlabs\Web\Controller {
'nickname' => \App::$profile['channel_address'],
'lockstate' => (($channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
'acl' => (($is_owner) ? populate_acl($channel_acl,false, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_pages')) : ''),
- 'permissions' => (($is_owner) ? $channel_acl : ''),
+ 'permissions' => $channel_acl,
'showacl' => (($is_owner) ? true : false),
'visitor' => true,
'hide_location' => true,
@@ -233,7 +256,6 @@ class Webpages extends \Zotlabs\Web\Controller {
}
function post() {
-
$action = $_REQUEST['action'];
if( $action ){
switch ($action) {
@@ -313,7 +335,8 @@ class Webpages extends \Zotlabs\Web\Controller {
// If the website elements were imported from a zip file, delete the temporary decompressed files
if ($cloud === false && $website && $elements) {
- rrmdir($website); // Delete the temporary decompressed files
+ $_SESSION['tempimportpath'] = $website;
+ //rrmdir($website); // Delete the temporary decompressed files
}
break;
@@ -381,16 +404,299 @@ class Webpages extends \Zotlabs\Web\Controller {
if(!(empty($_SESSION['import_pages']) && empty($_SESSION['import_blocks']) && empty($_SESSION['import_layouts']))) {
info( t('Import complete.') . EOL);
}
+ if(isset($_SESSION['tempimportpath'])) {
+ rrmdir($_SESSION['tempimportpath']); // Delete the temporary decompressed files
+ unset($_SESSION['tempimportpath']);
+ }
+ break;
+
+ case 'exportzipfile':
+
+ if(isset($_POST['w_download'])) {
+ $_SESSION['action'] = 'export_select_list';
+ $_SESSION['export'] = 'zipfile';
+ if(isset($_POST['zipfilename']) && $_POST['zipfilename'] !== '') {
+ $filename = filter_var($_POST['zipfilename'], FILTER_SANITIZE_ENCODED);
+ } else {
+ $filename = 'website.zip';
+ }
+ $_SESSION['zipfilename'] = $filename;
+
+ }
+
+ break;
+
+ case 'exportcloud':
+ if(isset($_POST['exportcloudpath']) && $_POST['exportcloudpath'] !== '') {
+ $_SESSION['action'] = 'export_select_list';
+ $_SESSION['export'] = 'cloud';
+ $_SESSION['exportcloudpath'] = filter_var($_POST['exportcloudpath'], FILTER_SANITIZE_ENCODED);
+ }
+
+ break;
+
+ case 'cloud':
+ case 'zipfile':
+
+ $channel = \App::get_channel();
+
+ $tmp_folder_name = random_string(10);
+ $zip_folder_name = random_string(10);
+ $zip_filename = $_SESSION['zipfilename'];
+ $tmp_folderpath = '/tmp/' . $tmp_folder_name;
+ $zip_folderpath = '/tmp/' . $zip_folder_name;
+ if (!mkdir($zip_folderpath, 0770, false)) {
+ logger('Error creating zip file export folder: ' . $zip_folderpath, LOGGER_NORMAL);
+ json_return_and_die(array('message' => 'Error creating zip file export folder'));
+ }
+ $zip_filepath = '/tmp/' . $zip_folder_name . '/' . $zip_filename;
+
+ $checkedblocks = $_POST['block'];
+ $blocks = [];
+ if (!empty($checkedblocks)) {
+ foreach ($checkedblocks as $mid) {
+ $b = q("select iconfig.v, iconfig.k, mimetype, title, body from iconfig
+ left join item on item.id = iconfig.iid
+ where mid = '%s' and item.uid = %d and iconfig.cat = 'system' and iconfig.k = 'BUILDBLOCK' order by iconfig.v asc limit 1",
+ dbesc($mid),
+ intval($channel['channel_id'])
+ );
+ if($b) {
+ $b = $b[0];
+ $blockinfo = array(
+ 'body' => $b['body'],
+ 'mimetype' => $b['mimetype'],
+ 'title' => $b['title'],
+ 'name' => $b['v'],
+ 'json' => array(
+ 'title' => $b['title'],
+ 'name' => $b['v'],
+ 'mimetype' => $b['mimetype'],
+ )
+ );
+ switch ($blockinfo['mimetype']) {
+ case 'text/html':
+ $block_ext = 'html';
+ break;
+ case 'text/bbcode':
+ $block_ext = 'bbcode';
+ break;
+ case 'text/markdown':
+ $block_ext = 'md';
+ break;
+ case 'application/x-pdl':
+ $block_ext = 'pdl';
+ break;
+ case 'application/x-php':
+ $block_ext = 'php';
+ break;
+ default:
+ $block_ext = 'bbcode';
+ break;
+ }
+ $block_filename = $blockinfo['name'] . '.' . $block_ext;
+ $tmp_blockfolder = $tmp_folderpath . '/blocks/' . $blockinfo['name'];
+ $block_filepath = $tmp_blockfolder . '/' . $block_filename;
+ $blockinfo['json']['contentfile'] = $block_filename;
+ $block_jsonpath = $tmp_blockfolder . '/block.json';
+ if (!is_dir($tmp_blockfolder) && !mkdir($tmp_blockfolder, 0770, true)) {
+ logger('Error creating temp export folder: ' . $tmp_blockfolder, LOGGER_NORMAL);
+ json_return_and_die(array('message' => 'Error creating temp export folder'));
+ }
+ file_put_contents($block_filepath, $blockinfo['body']);
+ file_put_contents($block_jsonpath, json_encode($blockinfo['json'], JSON_UNESCAPED_SLASHES));
+ }
+ }
+ }
+
+ $checkedlayouts = $_POST['layout'];
+ $layouts = [];
+ if (!empty($checkedlayouts)) {
+ foreach ($checkedlayouts as $mid) {
+ $l = q("select iconfig.v, iconfig.k, mimetype, title, body from iconfig
+ left join item on item.id = iconfig.iid
+ where mid = '%s' and item.uid = %d and iconfig.cat = 'system' and iconfig.k = 'PDL' order by iconfig.v asc limit 1",
+ dbesc($mid),
+ intval($channel['channel_id'])
+ );
+ if($l) {
+ $l = $l[0];
+ $layoutinfo = array(
+ 'body' => $l['body'],
+ 'mimetype' => $l['mimetype'],
+ 'description' => $l['title'],
+ 'name' => $l['v'],
+ 'json' => array(
+ 'description' => $l['title'],
+ 'name' => $l['v'],
+ 'mimetype' => $l['mimetype'],
+ )
+ );
+ switch ($layoutinfo['mimetype']) {
+ case 'text/bbcode':
+ default:
+ $layout_ext = 'bbcode';
+ break;
+ }
+ $layout_filename = $layoutinfo['name'] . '.' . $layout_ext;
+ $tmp_layoutfolder = $tmp_folderpath . '/layouts/' . $layoutinfo['name'];
+ $layout_filepath = $tmp_layoutfolder . '/' . $layout_filename;
+ $layoutinfo['json']['contentfile'] = $layout_filename;
+ $layout_jsonpath = $tmp_layoutfolder . '/layout.json';
+ if (!is_dir($tmp_layoutfolder) && !mkdir($tmp_layoutfolder, 0770, true)) {
+ logger('Error creating temp export folder: ' . $tmp_layoutfolder, LOGGER_NORMAL);
+ json_return_and_die(array('message' => 'Error creating temp export folder'));
+ }
+ file_put_contents($layout_filepath, $layoutinfo['body']);
+ file_put_contents($layout_jsonpath, json_encode($layoutinfo['json'], JSON_UNESCAPED_SLASHES));
+ }
+ }
+ }
+
+ $checkedpages = $_POST['page'];
+ $pages = [];
+ if (!empty($checkedpages)) {
+ foreach ($checkedpages as $mid) {
+
+ $p = q("select * from iconfig left join item on iconfig.iid = item.id
+ where item.uid = %d and item.mid = '%s' and iconfig.cat = 'system' and iconfig.k = 'WEBPAGE' and item_type = %d",
+ intval($channel['channel_id']),
+ dbesc($mid),
+ intval(ITEM_TYPE_WEBPAGE)
+ );
+
+ if($p) {
+ foreach ($p as $pp) {
+ // Get the associated layout
+ $layoutinfo = array();
+ if($pp['layout_mid']) {
+ $l = q("select iconfig.v, iconfig.k, mimetype, title, body from iconfig
+ left join item on item.id = iconfig.iid
+ where mid = '%s' and item.uid = %d and iconfig.cat = 'system' and iconfig.k = 'PDL' order by iconfig.v asc limit 1",
+ dbesc($pp['layout_mid']),
+ intval($channel['channel_id'])
+ );
+ if($l) {
+ $l = $l[0];
+ $layoutinfo = array(
+ 'body' => $l['body'],
+ 'mimetype' => $l['mimetype'],
+ 'description' => $l['title'],
+ 'name' => $l['v'],
+ 'json' => array(
+ 'description' => $l['title'],
+ 'name' => $l['v'],
+ )
+ );
+ switch ($layoutinfo['mimetype']) {
+ case 'text/bbcode':
+ default:
+ $layout_ext = 'bbcode';
+ break;
+ }
+ $layout_filename = $layoutinfo['name'] . '.' . $layout_ext;
+ $tmp_layoutfolder = $tmp_folderpath . '/layouts/' . $layoutinfo['name'];
+ $layout_filepath = $tmp_layoutfolder . '/' . $layout_filename;
+ $layoutinfo['json']['contentfile'] = $layout_filename;
+ $layout_jsonpath = $tmp_layoutfolder . '/layout.json';
+ if (!is_dir($tmp_layoutfolder) && !mkdir($tmp_layoutfolder, 0770, true)) {
+ logger('Error creating temp export folder: ' . $tmp_layoutfolder, LOGGER_NORMAL);
+ json_return_and_die(array('message' => 'Error creating temp export folder'));
+ }
+ file_put_contents($layout_filepath, $layoutinfo['body']);
+ file_put_contents($layout_jsonpath, json_encode($layoutinfo['json'], JSON_UNESCAPED_SLASHES));
+ }
+ }
+ switch ($pp['mimetype']) {
+ case 'text/html':
+ $page_ext = 'html';
+ break;
+ case 'text/bbcode':
+ $page_ext = 'bbcode';
+ break;
+ case 'text/markdown':
+ $page_ext = 'md';
+ break;
+ case 'application/x-pdl':
+ $page_ext = 'pdl';
+ break;
+ case 'application/x-php':
+ $page_ext = 'php';
+ break;
+ default:
+ break;
+ }
+ $pageinfo = array(
+ 'title' => $pp['title'],
+ 'body' => $pp['body'],
+ 'pagelink' => $pp['v'],
+ 'mimetype' => $pp['mimetype'],
+ 'contentfile' => $pp['v'] . '.' . $page_ext,
+ 'layout' => ((x($layoutinfo,'name')) ? $layoutinfo['name'] : ''),
+ 'json' => array(
+ 'title' => $pp['title'],
+ 'pagelink' => $pp['v'],
+ 'mimetype' => $pp['mimetype'],
+ 'layout' => ((x($layoutinfo,'name')) ? $layoutinfo['name'] : ''),
+ )
+ );
+ $page_filename = $pageinfo['pagelink'] . '.' . $page_ext;
+ $tmp_pagefolder = $tmp_folderpath . '/pages/' . $pageinfo['pagelink'];
+ $page_filepath = $tmp_pagefolder . '/' . $page_filename;
+ $page_jsonpath = $tmp_pagefolder . '/page.json';
+ $pageinfo['json']['contentfile'] = $page_filename;
+ if (!is_dir($tmp_pagefolder) && !mkdir($tmp_pagefolder, 0770, true)) {
+ logger('Error creating temp export folder: ' . $tmp_pagefolder, LOGGER_NORMAL);
+ json_return_and_die(array('message' => 'Error creating temp export folder'));
+ }
+ file_put_contents($page_filepath, $pageinfo['body']);
+ file_put_contents($page_jsonpath, json_encode($pageinfo['json'], JSON_UNESCAPED_SLASHES));
+ }
+ }
+ }
+ }
+ if($action === 'zipfile') {
+ // Generate the zip file
+ \Zotlabs\Lib\ExtendedZip::zipTree($tmp_folderpath, $zip_filepath, \ZipArchive::CREATE);
+ // Output the file for download
+ header('Content-disposition: attachment; filename="' . $zip_filename . '"');
+ header("Content-Type: application/zip");
+ $success = readfile($zip_filepath);
+ } elseif ($action === 'cloud') { // Only zipfile or cloud should be possible values for $action here
+ if(isset($_SESSION['exportcloudpath'])) {
+ require_once('include/attach.php');
+ $cloudpath = urldecode($_SESSION['exportcloudpath']);
+ $channel = \App::get_channel();
+ $dirpath = get_dirpath_by_cloudpath($channel, $cloudpath);
+ if(!$dirpath) {
+ $x = attach_mkdirp($channel, $channel['channel_hash'], array('pathname' => $cloudpath));
+ $folder_hash = (($x['success']) ? $x['data']['hash'] : '');
+
+ if (!$x['success']) {
+ logger('Failed to create cloud file folder', LOGGER_NORMAL);
+ }
+ $dirpath = get_dirpath_by_cloudpath($channel, $cloudpath);
+ if (!is_dir($dirpath)) {
+ logger('Failed to create cloud file folder', LOGGER_NORMAL);
+ }
+ }
+
+ $success = copy_folder_to_cloudfiles($channel, $channel['channel_hash'], $tmp_folderpath, $cloudpath);
+ }
+ }
+ if(!$success) {
+ logger('Error exporting webpage elements', LOGGER_NORMAL);
+ }
+
+ rrmdir($zip_folderpath); rrmdir($tmp_folderpath); // delete temporary files
+
break;
-
default :
break;
}
+
}
-
-
-
}
}
diff --git a/Zotlabs/Module/Xrd.php b/Zotlabs/Module/Xrd.php
index d71fae695..3ed19962b 100644
--- a/Zotlabs/Module/Xrd.php
+++ b/Zotlabs/Module/Xrd.php
@@ -43,7 +43,7 @@ class Xrd extends \Zotlabs\Web\Controller {
header("Content-type: application/xrd+xml");
- $aliases = array('acct:' . $r[0]['channel_address'] . '@' . \App::get_hostname(), z_root() . '/channel/' . $r[0]['channel_address'], z_root() . '/~' . $r[0]['channel_address']);
+ $aliases = array('acct:' . channel_reddress($r[0]), z_root() . '/channel/' . $r[0]['channel_address'], z_root() . '/~' . $r[0]['channel_address']);
for($x = 0; $x < count($aliases); $x ++) {
if($aliases[$x] === $resource)
diff --git a/Zotlabs/Render/Comanche.php b/Zotlabs/Render/Comanche.php
index 820897ee9..562a9f791 100644
--- a/Zotlabs/Render/Comanche.php
+++ b/Zotlabs/Render/Comanche.php
@@ -99,18 +99,72 @@ class Comanche {
}
}
-
+ function get_condition_var($v) {
+ if($v) {
+ $x = explode('.',$v);
+ if($x[0] == 'config')
+ return get_config($x[1],$x[2]);
+ elseif($x[0] === 'observer') {
+ if(count($x) > 1) {
+ $y = \App::get_observer();
+ if(! $y)
+ return false;
+ if($x[1] == 'address')
+ return $y['xchan_addr'];
+ elseif($x[1] == 'name')
+ return $y['xchan_name'];
+ return false;
+ }
+ return get_observer_hash();
+ }
+ else
+ return false;
+ }
+ return false;
+ }
function test_condition($s) {
-
- // This is extensible. The first version of variable testing supports tests of the form
+ // This is extensible. The first version of variable testing supports tests of the forms:
+ // [if $config.system.foo == baz] which will check if get_config('system','foo') is the string 'baz';
+ // [if $config.system.foo != baz] which will check if get_config('system','foo') is not the string 'baz';
+ // You may check numeric entries, but these checks are evaluated as strings.
+ // [if $config.system.foo {} baz] which will check if 'baz' is an array element in get_config('system','foo')
+ // [if $config.system.foo {*} baz] which will check if 'baz' is an array key in get_config('system','foo')
// [if $config.system.foo] which will check for a return of a true condition for get_config('system','foo');
// The values 0, '', an empty array, and an unset value will all evaluate to false.
- if(preg_match("/[\$]config[\.](.*?)/",$s,$matches)) {
- $x = explode('.',$s);
- if(get_config($x[1],$x[2]))
+ if(preg_match('/[\$](.*?)\s\=\=\s(.*?)$/',$s,$matches)) {
+ $x = $this->get_condition_var($matches[1]);
+ if($x == trim($matches[2]))
+ return true;
+ return false;
+ }
+ if(preg_match('/[\$](.*?)\s\!\=\s(.*?)$/',$s,$matches)) {
+ $x = $this->get_condition_var($matches[1]);
+ if($x != trim($matches[2]))
+ return true;
+ return false;
+ }
+
+ if(preg_match('/[\$](.*?)\s\{\}\s(.*?)$/',$s,$matches)) {
+ $x = $this->get_condition_var($matches[1]);
+ if(is_array($x) && in_array(trim($matches[2]),$x))
+ return true;
+ return false;
+ }
+
+ if(preg_match('/[\$](.*?)\s\{\*\}\s(.*?)$/',$s,$matches)) {
+ $x = $this->get_condition_var($matches[1]);
+ if(is_array($x) && array_key_exists(trim($matches[2]),$x))
+ return true;
+ return false;
+ }
+
+ if(preg_match('/[\$](.*?)$/',$s,$matches)) {
+ $x = $this->get_condition_var($matches[1]);
+ if($x)
return true;
+ return false;
}
return false;
@@ -231,7 +285,7 @@ class Comanche {
$path = 'library/bootstrap/js/bootstrap.min.js';
break;
case 'foundation':
- $path = 'library/foundation/js/foundation.min.js';
+ $path = 'library/foundation/js/foundation.js';
$init = "\r\n" . '<script>$(document).ready(function() { $(document).foundation(); });</script>';
break;
}
@@ -403,4 +457,4 @@ class Comanche {
return;
}
-} \ No newline at end of file
+}
diff --git a/Zotlabs/Render/SmartyTemplate.php b/Zotlabs/Render/SmartyTemplate.php
index 532d6e42f..ffe58e286 100755
--- a/Zotlabs/Render/SmartyTemplate.php
+++ b/Zotlabs/Render/SmartyTemplate.php
@@ -15,7 +15,10 @@ class SmartyTemplate implements TemplateEngine {
? \App::$config['system']['smarty3_folder'] : '');
if (!$basecompiledir) $basecompiledir = str_replace('Zotlabs','',dirname(__dir__)) . "/" . TEMPLATE_BUILD_PATH;
if (!is_dir($basecompiledir)) {
- echo "<b>ERROR:</b> folder <tt>$basecompiledir</tt> does not exist."; killme();
+ @os_mkdir(TEMPLATE_BUILD_PATH, STORAGE_DEFAULT_PERMISSIONS, true);
+ if (!is_dir($basecompiledir)) {
+ echo "<b>ERROR:</b> folder <tt>$basecompiledir</tt> does not exist."; killme();
+ }
}
if(!is_writable($basecompiledir)){
echo "<b>ERROR:</b> folder <tt>$basecompiledir</tt> must be writable by webserver."; killme();
@@ -27,6 +30,13 @@ class SmartyTemplate implements TemplateEngine {
public function replace_macros($s, $r) {
$template = '';
+
+ // these are available for use in all templates
+
+ $r['$z_baseurl'] = z_root();
+ $r['$z_server_role'] = \Zotlabs\Lib\System::get_server_role();
+ $r['$z_techlevel'] = get_account_techlevel();
+
if(gettype($s) === 'string') {
$template = $s;
$s = new SmartyInterface();
diff --git a/Zotlabs/Render/Theme.php b/Zotlabs/Render/Theme.php
index 62068bc82..9f9009d72 100644
--- a/Zotlabs/Render/Theme.php
+++ b/Zotlabs/Render/Theme.php
@@ -66,6 +66,8 @@ class Theme {
$chosen_theme = $page_theme;
}
}
+ if(array_key_exists('theme_preview',$_GET))
+ $chosen_theme = $_GET['theme_preview'];
// Allow theme selection of the form 'theme_name:schema_name'
diff --git a/Zotlabs/Web/SubModule.php b/Zotlabs/Web/SubModule.php
new file mode 100644
index 000000000..5f49b9292
--- /dev/null
+++ b/Zotlabs/Web/SubModule.php
@@ -0,0 +1,43 @@
+<?php
+
+namespace Zotlabs\Web;
+
+
+class SubModule {
+
+ private $controller = false;
+
+ /**
+ * Initiate sub-modules. By default the submodule name is in argv(1), though this is configurable.
+ * Example: Given a URL path such as /admin/plugins, and the Admin module initiates sub-modules.
+ * This means we'll look for a class Plugins in Zotlabs/Module/Admin/Plugins.php
+ * The specific methods and calling parameters are up to the top level module controller logic.
+ *
+ * **If** you were to provide sub-module support on the photos module, you would probably use
+ * $whicharg = 2, as photos are typically called with a URL path of /photos/channel_address/submodule_name
+ * where submodule_name might be something like album or image.
+ */
+
+
+ function __construct($whicharg = 1) {
+
+ if(argc() < ($whicharg + 1))
+ return;
+
+ $filename = 'Zotlabs/Module/' . ucfirst(argv(0)) . '/'. ucfirst(argv($whicharg)) . '.php';
+ $modname = '\\Zotlabs\\Module\\' . ucfirst(argv(0)) . '\\' . ucfirst(argv($whicharg));
+ if(file_exists($filename)) {
+ $this->controller = new $modname();
+ }
+ }
+
+ function call($method) {
+ if(! $this->controller)
+ return false;
+ if(method_exists($this->controller,$method))
+ return $this->controller->$method();
+ return false;
+ }
+
+}
+
diff --git a/boot.php b/boot.php
index d50ffbc17..1f01e13ca 100755
--- a/boot.php
+++ b/boot.php
@@ -44,10 +44,10 @@ require_once('include/account.php');
define ( 'PLATFORM_NAME', 'hubzilla' );
-define ( 'STD_VERSION', '1.13' );
+define ( 'STD_VERSION', '1.13.3' );
define ( 'ZOT_REVISION', '1.1' );
-define ( 'DB_UPDATE_VERSION', 1181 );
+define ( 'DB_UPDATE_VERSION', 1183 );
/**
@@ -150,15 +150,6 @@ define ( 'MAX_IMAGE_LENGTH', -1 );
define ( 'DEFAULT_DB_ENGINE', 'MyISAM' );
/**
- * SSL redirection policies
- */
-
-define ( 'SSL_POLICY_NONE', 0 );
-define ( 'SSL_POLICY_FULL', 1 );
-define ( 'SSL_POLICY_SELFSIGN', 2 ); // NOT supported in Red
-
-
-/**
* log levels
*/
@@ -168,6 +159,15 @@ define ( 'LOGGER_DEBUG', 2 );
define ( 'LOGGER_DATA', 3 );
define ( 'LOGGER_ALL', 4 );
+
+/**
+ * Server roles
+ */
+
+define ( 'SERVER_ROLE_BASIC', 0x0001 );
+define ( 'SERVER_ROLE_STANDARD', 0x0002 );
+define ( 'SERVER_ROLE_PRO', 0x0004 );
+
/**
* registration policies
*/
@@ -612,11 +612,11 @@ function sys_boot() {
if(UNO)
App::$config['system']['server_role'] = 'basic';
else
- App::$config['system']['server_role'] = 'pro';
+ App::$config['system']['server_role'] = 'standard';
}
if(! (array_key_exists('server_role',App::$config['system']) && App::$config['system']['server_role']))
- App::$config['system']['server_role'] = 'pro';
+ App::$config['system']['server_role'] = 'standard';
App::$timezone = ((App::$config['system']['timezone']) ? App::$config['system']['timezone'] : 'UTC');
date_default_timezone_set(App::$timezone);
@@ -697,6 +697,7 @@ function startup() {
class ZotlabsAutoloader {
static public function loader($className) {
+ $debug = false;
$filename = str_replace('\\', '/', $className) . ".php";
if(file_exists($filename)) {
include($filename);
@@ -760,7 +761,7 @@ class miniApp {
class App {
public static $install = false; // true if we are installing the software
-
+ public static $role = 0; // server role (constant, not the string)
public static $account = null; // account record of the logged-in account
public static $channel = null; // channel record of the current channel of the logged-in account
public static $observer = null; // xchan record of the page observer
@@ -1044,6 +1045,31 @@ class App {
}
}
+ public static function get_role() {
+ if(! self::$role)
+ return self::set_role();
+ return self::$role;
+ }
+
+ public static function set_role() {
+ $role_str = \Zotlabs\Lib\System::get_server_role();
+ switch($role_str) {
+ case 'basic':
+ $role = SERVER_ROLE_BASIC;
+ break;
+ case 'pro':
+ $role = SERVER_ROLE_PRO;
+ break;
+ case 'standard':
+ default:
+ $role = SERVER_ROLE_STANDARD;
+ break;
+ }
+ self::$role = $role;
+ return $role;
+ }
+
+
public static function get_scheme() {
return self::$scheme;
}
diff --git a/doc/Developers.md b/doc/Developers.md
index b19b4fc2f..ef02c8327 100644
--- a/doc/Developers.md
+++ b/doc/Developers.md
@@ -18,7 +18,7 @@ to notify us to merge your work.
**Translations**
-Our translations are managed through Transifex. If you wish to help out translating the $Projectname to another language, sign up on transifex.com, visit [https://www.transifex.com/projects/p/red-matrix/](https://www.transifex.com/projects/p/red-matrix/) and request to join one of the existing language teams or create a new one. Notify one of the core developers when you have a translation update which requires merging, or ask about merging it yourself if you're comfortable with git and PHP. We have a string file called 'messages.po' which is gettext compliant and a handful of email templates, and from there we automatically generate the application's language files.
+Our translations are managed through Transifex. If you wish to help out translating $Projectname to another language, sign up on transifex.com, visit [https://www.transifex.com/projects/p/red-matrix/](https://www.transifex.com/projects/p/red-matrix/) and request to join one of the existing language teams or create a new one. Notify one of the core developers when you have a translation update which requires merging, or ask about merging it yourself if you're comfortable with git and PHP. We have a string file called 'messages.po' which is gettext compliant and a handful of email templates, and from there we automatically generate the application's language files.
[Translations - More Info](help/Translations)
diff --git a/doc/Features.md b/doc/Features.md
index 3c5105582..a43fd73fa 100644
--- a/doc/Features.md
+++ b/doc/Features.md
@@ -1,7 +1,7 @@
Extra Features
==============
-The default interface of the $Projectname was designed to be uncluttered. There are a huge number of extra features (some of which are extremely useful) which you can turn on and get the most of the application. These are found under the [Extra Features](settings/features) link of your [Settings](settings) page.
+The default interface of $Projectname was designed to be uncluttered. There are a huge number of extra features (some of which are extremely useful) which you can turn on and get the most of the application. These are found under the [Extra Features](settings/features) link of your [Settings](settings) page.
**Content Expiration**
diff --git a/doc/Plugins.md b/doc/Plugins.md
index 90ff0fb7d..88b42185b 100644
--- a/doc/Plugins.md
+++ b/doc/Plugins.md
@@ -1,9 +1,9 @@
-Creating Plugins/Addons for the $Projectname
+Creating Plugins/Addons for $Projectname
==========================================
-So you want to make the $Projectname do something it doesn't already do. There are lots of ways. But let's learn how to write a plugin or addon.
+So you want to make $Projectname do something it doesn't already do. There are lots of ways. But let's learn how to write a plugin or addon.
In your $Projectname folder/directory, you will probably see a sub-directory called 'addon'. If you don't have one already, go ahead and create it.
@@ -49,7 +49,7 @@ In our case, we'll call them randplace_load() and randplace_unload(), as that is
* pluginname_uninstall()
-Next we'll talk about **hooks**. Hooks are places in the $Projectname code where we allow plugins to do stuff. There are a [lot of these](help/Hooks), and they each have a name. What we normally do is use the pluginname_load() function to register a "handler function" for any hooks you are interested in. Then when any of these hooks are triggered, your code will be called.
+Next we'll talk about **hooks**. Hooks are places in $Projectname code where we allow plugins to do stuff. There are a [lot of these](help/Hooks), and they each have a name. What we normally do is use the pluginname_load() function to register a "handler function" for any hooks you are interested in. Then when any of these hooks are triggered, your code will be called.
We register hook handlers with the 'register_hook()' function. It takes 3 arguments. The first is the hook we wish to catch, the second is the filename of the file to find our handler function (relative to the base of your $Projectname installation), and the third is the function name of your handler function. So let's create our randplace_load() function right now.
@@ -246,18 +246,18 @@ we will create an argc/argv list for use by your module functions
***Porting Friendica Plugins***
-The $Projectname uses a similar plugin architecture to the Friendica project. The authentication, identity, and permissions systems are completely different. Many Friendica can be ported reasonably easily by renaming a few functions - and then ensuring that the permissions model is adhered to. The functions which need to be renamed are:
+$Projectname uses a similar plugin architecture to the Friendica project. The authentication, identity, and permissions systems are completely different. Many Friendica plugins can be ported reasonably easily by renaming a few functions - and then ensuring that the permissions model is adhered to. The functions which need to be renamed are:
* Friendica's pluginname_install() is pluginname_load()
* Friendica's pluginname_uninstall() is pluginname_unload()
-The $Projectname has _install and _uninstall functions but these are used differently.
+$Projectname has _install and _uninstall functions but these are used differently.
* Friendica's "plugin_settings" hook is called "feature_settings"
* Friendica's "plugin_settings_post" hook is called "feature_settings_post"
-Changing these will often allow your plugin to function, but please double check all your permission and identity code because the concepts behind it are completely different in the $Projectname. Many structured data names (especially DB schema columns) are also quite different.
+Changing these will often allow your plugin to function, but please double check all your permission and identity code because the concepts behind it are completely different in $Projectname. Many structured data names (especially DB schema columns) are also quite different.
#include doc/macros/main_footer.bb;
diff --git a/doc/Privacy.md b/doc/Privacy.md
index 089977d7e..1ac019f5a 100644
--- a/doc/Privacy.md
+++ b/doc/Privacy.md
@@ -36,11 +36,11 @@ Any information or anything posted by you within $Projectname MAY be public or v
Your profile photo, your channel name, and the location (URL or network address) of your channel are visible to anybody on the internet and privacy controls will not affect the display of these items.
-You MAY additionally provide other profile information. Any information which you provide in your "default" or **public profile** MAY be transmitted to other hubs in the $Projectname and additionally MAY be displayed in the channel directory. You can restrict the viewing of this profile information. It may be restricted only to members of your hub, or only connections (friends), or other limited sets of viewers as you desire. If you wish for your profile to be restricted, you must set the appropriate privacy setting, or simply DO NOT provide additional information.
+You MAY additionally provide other profile information. Any information which you provide in your "default" or **public profile** MAY be transmitted to other hubs in $Projectname and additionally MAY be displayed in the channel directory. You can restrict the viewing of this profile information. It may be restricted only to members of your hub, or only connections (friends), or other limited sets of viewers as you desire. If you wish for your profile to be restricted, you must set the appropriate privacy setting, or simply DO NOT provide additional information.
**Content**
-Content you provide (status posts, photos, files, etc.) belongs to you. The $Projectname default is to publish content openly and visible to anybody on the internet (PUBLIC). You MAY control this in your channel settings and restrict the default permissions or you MAY restrict the visibility of any single published item separately (PRIVATE). $Projectname developers will ensure that restricted content is ONLY visible to those in the restriction list - to the best of their ability.
+Content you provide (status posts, photos, files, etc.) belongs to you. $Projectname default is to publish content openly and visible to anybody on the internet (PUBLIC). You MAY control this in your channel settings and restrict the default permissions or you MAY restrict the visibility of any single published item separately (PRIVATE). $Projectname developers will ensure that restricted content is ONLY visible to those in the restriction list - to the best of their ability.
Content (especially status posts) that you share with other networks or that you have made visible to anybody on the internet (PUBLIC) cannot easily be taken back once it has been published. It MAY be shared with other networks and made available through RSS/Atom feeds. It may also be syndicated on other $Projectname sites. It MAY appear on other networks and websites and be visible in internet searches. If you do not wish this default behaviour please adjust your channel settings and restrict who can see your content.
@@ -56,7 +56,7 @@ $Projectname developers will ensure that any content you provide which is design
Privacy for your identity is another aspect. Because you have a decentralized identity in $Projectname, your privacy extends beyond your home hub. If you want to have complete control of your privacy and security you should run your own hub on a dedicated server. For many people, this is complicated and may stretch their technical abilities. So let's list a few precautions you can make to assure your privacy as much as possible.
-A decentralized identity has a lot of advantages and gives you al lot of interesting features, but you should be aware of the fact that your identity is known by other hubs in the $Projectname network. One of those advantages is that other channels can serve you customized content and allow you to see private things (such as private photos which others wish to share with you). Because of this those channels need to know who you are. But we understand that sometimes those other channels know more from you than you might desire. For instance the plug-in Visage that can tell a channel owner the last time you visit their profile. You can easily OPT-OUT of this low level and we think, harmless tracking.
+A decentralized identity has a lot of advantages and gives you al lot of interesting features, but you should be aware of the fact that your identity is known by other hubs in $Projectname network. One of those advantages is that other channels can serve you customized content and allow you to see private things (such as private photos which others wish to share with you). Because of this those channels need to know who you are. But we understand that sometimes those other channels know more from you than you might desire. For instance the plug-in Visage that can tell a channel owner the last time you visit their profile. You can easily OPT-OUT of this low level and we think, harmless tracking.
* You can enable [Do Not Track (DNT)](http://donottrack.us/) in your web browser. We respect this new privacy policy proposal. All modern browsers support DNT. You will find it in the privacy settings of your browsers or else you can consult the web browser's manual. This will not affect the functionality of $Projectname. This setting is probably enough for most people.
diff --git a/doc/Translations.md b/doc/Translations.md
index 226fa2e1a..654ba1b83 100644
--- a/doc/Translations.md
+++ b/doc/Translations.md
@@ -1,4 +1,4 @@
-Translating the $Projectname
+Translating $Projectname
==========================
Translation Process
diff --git a/doc/account_basics.bb b/doc/account_basics.bb
index ba2380df7..664949d6e 100644
--- a/doc/account_basics.bb
+++ b/doc/account_basics.bb
@@ -10,7 +10,7 @@ Please provide a valid email address. Your email address is never published. Thi
[b]Password[/b]
-Enter a password of your choice, and repeat it in the second box to ensure it was typed correctly. As the $Projectname offers a decentralised identity, your account can log you in to many other websites.
+Enter a password of your choice, and repeat it in the second box to ensure it was typed correctly. As $Projectname offers a decentralised identity, your account can log you in to many other websites.
[b]Terms Of Service[/b]
diff --git a/doc/addons_gnusocial.bb b/doc/addons_gnusocial.bb
index dfdce5f6a..d9aed9ac5 100644
--- a/doc/addons_gnusocial.bb
+++ b/doc/addons_gnusocial.bb
@@ -8,7 +8,7 @@ https://yourgnusocialinstance.org/settings/oauthapps
Next, click the link to Register a new application. That brings up the new application form. Here's what to do on each field.
-Icon. I uploaded the $Projectname icon located at this link, after saving it to my computer:
+Icon. I uploaded $Projectname icon located at this link, after saving it to my computer:
https://github.com/redmatrix/hubzilla/blob/master/images/rm-32.png
@@ -39,7 +39,7 @@ Then click on the icon or the name of the application for the information you'll
Now open up a new tab or window and go to your $Projectname account, to Settings > Feature settings. Find the StatusNet Posting Settings.
-Insert the strings of numbers given on the GNUsocial site into the $Projectname fields for Consumer Key and Consumer Secret.
+Insert the strings of numbers given on the GNUsocial site into $Projectname fields for Consumer Key and Consumer Secret.
The Base API Path (remember the trailing /) will be your instance domain, plus the /api/ following. It will probably look like this:
@@ -51,9 +51,9 @@ StatusNet application name: Insert the name you gave to the application over on
Click Submit.
-A button will appear for you to "Sign in to StatusNet." Click it and that will open a tab or window on the GNUsocial site for you to click "Allow." Once clicked and successfully authorized, a security code number will appear. Copy it and go back to the $Projectname app you just left and insert it in the field: "Copy the security code from StatusNet here." Click Submit.
+A button will appear for you to "Sign in to StatusNet." Click it and that will open a tab or window on the GNUsocial site for you to click "Allow." Once clicked and successfully authorized, a security code number will appear. Copy it and go back to $Projectname app you just left and insert it in the field: "Copy the security code from StatusNet here." Click Submit.
-If successful, your information from the GNUsocial instance should appear in the $Projectname app.
+If successful, your information from the GNUsocial instance should appear in $Projectname app.
You now have several options to choose, if you desire, and those will need to be confirmed by clicking "Submit" also. The most interesting is "Send public postings to StatusNet by default." This option automatically sends any post of yours made in your $Projectname account to your GNUsocial instance.
diff --git a/doc/ca/general.bb b/doc/ca/general.bb
index f7d556130..dace92775 100644
--- a/doc/ca/general.bb
+++ b/doc/ca/general.bb
@@ -2,7 +2,7 @@
[zrl=[baseurl]/help/Privacy]Politica de Privacitat[/zrl]
-[zrl=[baseurl]/help/history]Història de $Projectname[/zrl]
+[zrl=[baseurl]/help/project/history]Història de $Projectname[/zrl]
[h3]Recursos Externs[/h3]
[zrl=[baseurl]/help/external-resource-links]Enllaços a Recursos Externs[/zrl]
diff --git a/doc/campaign.bb b/doc/campaign.bb
index 48f28f0c0..750412ba3 100644
--- a/doc/campaign.bb
+++ b/doc/campaign.bb
@@ -4,7 +4,7 @@
[b][color= grey][size=18]Single-click sign on, nomadic identity, censorship-resistance, privacy, self-hosting[/size][/color][/b]
-We started the $Projectname project by asking ourselves a few questions:
+We started $Projectname project by asking ourselves a few questions:
- Imagine if it was possible to just access the content of different web sites, without the need to enter usernames and passwords for every site. Such a feature would permit Single-Click user identification: the ability to access sites simply by clicking on links to remote sites.
Authentication just happens automagically behind the scenes. Forget about remembering multiple user names with multiple passwords when accessing different sites online.
@@ -52,7 +52,7 @@ Think of it this way: the internet is nothing, but a bunch of permissions and a
[b][color= grey][size=20]The Matrix is Born![/size][/color][/b]
-After asking and striving to answer a number of such questions, we realized that we were imagining a general purpose communication network with a number of unique, and potentially game-changing, features. We called it the $Projectname and started thinking of it as an over-lay on top of the internet as it exists today; an operating system re-invented as a communication network, with its own permissions, access control lists, protocol, connectors to others services, and open-ended possibilities via its API. The sum of the matrix is greater than it's parts. We're not building website, but a way for websites to link together and grow into something that is unique and ever-changing, with autonomy and privacy.
+After asking and striving to answer a number of such questions, we realized that we were imagining a general purpose communication network with a number of unique, and potentially game-changing, features. We called it $Projectname and started thinking of it as an over-lay on top of the internet as it exists today; an operating system re-invented as a communication network, with its own permissions, access control lists, protocol, connectors to others services, and open-ended possibilities via its API. The sum of the matrix is greater than it's parts. We're not building website, but a way for websites to link together and grow into something that is unique and ever-changing, with autonomy and privacy.
It's a lot of work, for anyone. So far, we've got a team of a handful of volunteers, code geeks, brave early adopters, system administrators and other good people, willing to give the project a shot. We're motivated by our commitment to a free web, where privacy is built-in, and corporations don't have a stranglehold on our daily communication.
@@ -60,7 +60,7 @@ We need your help to finish it and release it to the world!
[b][color= grey][size=20]What have we written so far[/size][/color][/b]
-As of the today, the $Projectname is in developer preview (alpha) state. It is not ready for everyday use, but some of the initial set of core features are implemented (again, in alpha state). These include:
+As of the today, $Projectname is in developer preview (alpha) state. It is not ready for everyday use, but some of the initial set of core features are implemented (again, in alpha state). These include:
- Zot, the protocol powering the matrix
- Single-signon logins.
@@ -71,7 +71,7 @@ As of the today, the $Projectname is in developer preview (alpha) state. It is
[b][color= grey][size=20]Our TO-DO List[/size][/color][/b]
-However, in addition to finishing and polishing the above, there are a number of features that have to implemented to make the $Projectname ready for daily use. If we meet our fundraising goal, we hope to dive into the following road map, by order of priority:
+However, in addition to finishing and polishing the above, there are a number of features that have to implemented to make $Projectname ready for daily use. If we meet our fundraising goal, we hope to dive into the following road map, by order of priority:
- A professionally designed user interface (UI), interface that is adaptive to any user level, from end users who want to use the Matrix as a social network, to tinkerers who will put together a customized blog using Comanche, to hackers who will develop and extend the matrix using a built-in code editor, that hooks to the API and the git.
@@ -145,7 +145,7 @@ You get one of your $Projectname t-shirts, as well as our undying gratitude.
Each contributor at this level gets their own $Projectname virtual private server, installed, hosted and supported by us for a period of 1 year.
-[b][color= grey][size=20]Why are we so excited about the $Projectname?[/size][/color][/b]
+[b][color= grey][size=20]Why are we so excited about $Projectname?[/size][/color][/b]
{SOMETHING ABOUT THE POTENTIAL IMPACT OF RED, ITS INNOVATIONS, ETC&gt;
@@ -167,7 +167,7 @@ Perhaps you're good at writing and documenting stuff. Grab an account at one of
[b]1. Is Red a social network?[/b]
-The $Projectname is not a social network. We're thinking of it as a general purpose communication network, with sharing, and public/private communications built into the matrix.
+$Projectname is not a social network. We're thinking of it as a general purpose communication network, with sharing, and public/private communications built into the matrix.
[b]2. What is the difference between Red and Friendica?[/b]
@@ -177,7 +177,7 @@ Friendica is really, really good at sending postcards. It can do all sorts of th
What Friendica can't do, is wave a postcard at somebody and expect them to believe that holding this postcard prove you are who you say you are. Sure, if you've been sending somebody postcards, they might accept that it is you in the picture, but somebody who has never heard of you will not accept ownership of a postcard as proof of identity.
-The $Projectname offers a passport.
+$Projectname offers a passport.
You can still use it to send postcards. At the same time, when you wave your passport at somebody, they do accept it as proof of identity. No longer do you need to register at every single site you use. You already have an account - it's just not necessarily at our site - so we'll ask to see your passport instead.
@@ -194,7 +194,7 @@ We use MySQL as our database (this include any forks such as, MariaDB or Percona
[b]5. How is the Affinity Slider different from Mozilla's Persona?[/b]
{COMPLETE}
-[b]6. Does the $Projectname use encryption? Details please![/b]
+[b]6. Does $Projectname use encryption? Details please![/b]
Yes, we do our best to use free and open source encryption libraries to help achieve privacy from general, mass surveillance.
@@ -207,7 +207,7 @@ For more info on our initial implementation of encrypted communication, check ou
[b]7. What do you mean by decentralization? [/b]
-[b]8. Can I build my own website with in the $Projectname?[/b]
+[b]8. Can I build my own website with in $Projectname?[/b]
Yes. The short explanation: We've got this spiffy idea we're calling &quot;Comanche&quot;, which will allow non-programmers to build complete custom websites, and any such website will be able to connect to any other website or channel in the matrix. The goal of Comanche is to hide the technical complexities of communicating in the matrix, while encouraging people to use their creativity and put together their own unique presence on the matrix.
diff --git a/doc/channels.bb b/doc/channels.bb
index 14d588266..eca8dd0e6 100644
--- a/doc/channels.bb
+++ b/doc/channels.bb
@@ -28,7 +28,7 @@ Once you have done this, your channel is ready to use. At [observer=1][observer.
[h3]The grid, permissions and delegation[/h3]
-The &quot;Grid&quot; page contains all recent posts from across the $Projectname network, again in reverse chronologial order. The exact posts that appear here depend largely on your permissions. At their most permissive, you will receive posts from complete strangers. At the other end of the scale, you may see posts from only your friends - or if you're feeling really anti-social, only your own posts.
+The &quot;Grid&quot; page contains all recent posts from across $Projectname network, again in reverse chronologial order. The exact posts that appear here depend largely on your permissions. At their most permissive, you will receive posts from complete strangers. At the other end of the scale, you may see posts from only your friends - or if you're feeling really anti-social, only your own posts.
As mentioned at the start, many other kinds of channel are possible, however, the creation procedure is the same. The difference between channels lies primarily in the permissions assigned. For example, a channel for sharing documents with colleagues at work would probably want more permissive settings for &quot;Can write to my &quot;public&quot; file storage&quot; than a personal account. For more information, see the [zrl=[baseurl]/help/roles]permissions section[/zrl].
diff --git a/doc/cloud.bb b/doc/cloud.bb
index 3e0ac1fd3..2ad22806b 100644
--- a/doc/cloud.bb
+++ b/doc/cloud.bb
@@ -1,6 +1,6 @@
[b]Personal Cloud Storage[/b]
-The $Projectname provides an ability to store privately and/or share arbitrary files with friends.
+$Projectname provides an ability to store privately and/or share arbitrary files with friends.
You may either upload files from your computer into your storage area, or copy them directly from the operating system using the WebDAV protocol.
diff --git a/doc/comanche.bb b/doc/comanche.bb
index 6a96d5251..4b198d657 100644
--- a/doc/comanche.bb
+++ b/doc/comanche.bb
@@ -65,17 +65,23 @@ By default, $nav is placed in the &quot;nav&quot; page region and $content is pl
To select a theme for your page, use the 'theme' tag.
[code]
- [theme]apw[/theme]
+ [theme]suckerberg[/theme]
[/code]
-This will select the theme named &quot;apw&quot;. By default your channel's preferred theme will be used.
+This will select the theme named &quot;suckerberg&quot;. By default your channel's preferred theme will be used.
[code]
- [theme=passion]apw[/theme]
+ [theme=passion]suckerberg[/theme]
[/code]
-This will select the theme named &quot;apw&quot; and select the &quot;passion&quot; schema (theme variant).
+This will select the theme named &quot;suckerberg&quot; and select the &quot;passion&quot; schema (theme variant). Alternatively it may be possible to use a condensed theme notation for this.
+[code]
+ [theme]suckerberg:passion[/theme]
+
+[/code]
+
+The condensed notation isn't part of Comanche itself but is recognised by $Projectname platform as a theme specifier.
[b]Regions[/b]
Each region has a name, as noted above. You will specify the region of interest using a 'region' tag, which includes the name. Any content you wish placed in this region should be placed between the opening region tag and the closing tag.
@@ -164,7 +170,42 @@ The 'comment' tag is used to delimit comments. These comments will not appear on
[comment]This is a comment[/comment]
[/code]
-
+
+[b]Conditional Execution[/b]
+You can use an 'if' construct to make decisions. These are currently based on system configuration variable or the current observer.
+
+[code]
+ [if $config.system.foo]
+ ... the configuration variable system.foo evaluates to 'true'.
+ [else]
+ ... the configuration variable system.foo evaluates to 'false'.
+ [/if]
+
+ [if $observer]
+ ... this content will only be show to authenticated viewers
+ [/if]
+
+[/code]
+
+ The 'else' clause is optional.
+
+ Several tests are supported besides boolean evaluation.
+
+[code]
+ [if $config.system.foo == bar]
+ ... the configuration variable system.foo is equal to the string 'bar'
+ [/if]
+ [if $config.system.foo != bar]
+ ... the configuration variable system.foo is not equal to the string 'bar'
+ [/if]
+ [if $config.system.foo {} bar ]
+ ... the configuration variable system.foo is a simple array containing a value 'bar'
+ [/if]
+ [if $config.system.foo {*} bar]
+ ... the configuration variable system.foo is a simple array containing a key named 'bar'
+ [/if]
+[/code]
+
[b]Complex Example[/b]
[code]
[comment]use an existing page template which provides a banner region plus 3 columns beneath it[/comment]
diff --git a/doc/connecting_to_channels.bb b/doc/connecting_to_channels.bb
index be37eb25c..291323f75 100644
--- a/doc/connecting_to_channels.bb
+++ b/doc/connecting_to_channels.bb
@@ -1,6 +1,6 @@
[b]Connecting To Channels[/b]
-Connections in the $Projectname can take on a great many different meanings. But let's keep it simple, you want to be friends with somebody like you are familiar with from social networking. How do you do it?
+Connections in $Projectname can take on a great many different meanings. But let's keep it simple, you want to be friends with somebody like you are familiar with from social networking. How do you do it?
First, you need to find some channels to connect to. There are two primary ways of doing this. Firstly, setting the &quot;Can send me their channel stream and posts&quot; permission to &quot;Anybody in this network&quot; will bring posts from complete strangers to your matrix. This will give you a lot of public content and should hopefully help you find interesting, entertaing people, forums, and channels.
diff --git a/doc/connecting_to_channels.md b/doc/connecting_to_channels.md
index 60834c244..349f58b67 100644
--- a/doc/connecting_to_channels.md
+++ b/doc/connecting_to_channels.md
@@ -1,6 +1,6 @@
# Connecting To Channels #
-Connections in the $Projectname can take on a great many different meanings. But let's keep it simple, you want to be friends with somebody like you are familiar with from social networking. How do you do it?
+Connections in $Projectname can take on a great many different meanings. But let's keep it simple, you want to be friends with somebody like you are familiar with from social networking. How do you do it?
First, you need to find some channels to connect to. There are two primary ways of doing this. Firstly, setting the "Can send me their channel stream and posts" permission to "Anybody in this network" will bring posts from complete strangers to your matrix. This will give you a lot of public content and should hopefully help you find interesting, entertaing people, forums, and channels.
diff --git a/doc/context/en/connedit/help.html b/doc/context/en/connedit/help.html
new file mode 100644
index 000000000..9eb62ecc7
--- /dev/null
+++ b/doc/context/en/connedit/help.html
@@ -0,0 +1,12 @@
+<dl class="dl-horizontal">
+ <dt>General</dt>
+ <dd>This page allows you to change or edit any individual settings for a particular connection or delete a connection completely. You may have arrived at this page after creating or approving a new connection. If so, you are not required to do anything. Your connection has already been established. You <strong>may</strong> wish to add them to a group or adjust special permissions, and this page is presented so that you may do this while the opportunity is fresh.</dd>
+ <dt><a href='#' onclick='contextualHelpFocus(".section-title-wrapper", 0); return false;' title="Click to highlight element...">Connection Tools</a></dt>
+ <dd>The <a href='#' onclick='contextualHelpFocus(".section-title-wrapper", 0); return false;' title="Click to highlight element...">Connection Tools</a> menu access several settings. View Profile, View Recent Activity, Refresh Permissions, set or reset flags (Block, Ignore, Archive, Hide) and Delete the connection.</dd>
+ <dt><a href='#' onclick='contextualHelpFocus("#group-sidebar", 0); return false;' title="Click to highlight element...">Privacy Groups</a></dt>
+ <dd>Each connection may be assigned to one or more Privacy Groups for grouping collections of friends with access to specific posts, media and other content. You may add them to an existing privacy group here, or create a new privacy group. When you add them to an existing group the action is immediate and you are not required to submit a form. </dd>
+ <dt><a href='#' onclick='contextualHelpFocus("#perms-tool", 0); return false;' title="Click to highlight element...">Individual Permissions</a></dt>
+ <dd>Granting of permissions is usually automatic and require no action on your part. However you may wish to adjust specific permsisions for this connection which are different than for others.</dd>
+ <dt>Feature Specific Settings</dt>
+ <dd>A number of individual settings are controlled through additional features which may or may not be activated on your hub or for your channel. Several optional features have settings for each connection, and those may be set on this page through additional form tabs which may be present.</dd>
+</dl>
diff --git a/doc/context/es-es/connedit/help.html b/doc/context/es-es/connedit/help.html
new file mode 100644
index 000000000..000f28950
--- /dev/null
+++ b/doc/context/es-es/connedit/help.html
@@ -0,0 +1,12 @@
+<dl class="dl-horizontal">
+ <dt>General</dt>
+ <dd>Esta página le permite cambiar o modificar cualquier ajuste individual para una conexión en concreto o eliminar una conexión completamente. Ha podido llegar a esta página tras crear o aprobar una conexión nueva. Si es así, no tiene por qué hacer nada. Su conexión ya se ha establecido. <strong>Es posible</strong> que desee añadirla a un grupo o ajustar para ella permisos especiales; si es así, esta página se presenta de modo que usted pueda hacerlo mientras todo el proceso es aún reciente.</dd>
+ <dt><a href='#' onclick='contextualHelpFocus(".section-title-wrapper", 0); return false;' title="Pulsar para resaltar el elemento...">Conexiones</a></dt>
+ <dd>El menú <a href='#' onclick='contextualHelpFocus(".section-title-wrapper", 0); return false;' title="Pulsar para resaltar el elemento...">Conexiones</a> le da acceso a varios ajustes: "Ver el perfil", "Ver la actividad reciente", "Recargar los permisos", añadir o quitar estados ("flags") ("Bloquear", "Ignorar", "Archivar", "Ocultar") y eliminar la conexión.</dd>
+ <dt><a href='#' onclick='contextualHelpFocus("#group-sidebar", 0); return false;' title="Pulsar para resaltar el elemento...">Grupos de canales</a></dt>
+ <dd>Todas las conexiones se puede incluir en uno o varios grupos de canales para formar conjuntos de amigos con acceso a publicaciones concretas, ficheros multimedia y otros tipos de contenido. Puede añadirla aquí a un grupo de canales ya existente o crear un grupo nuevo. Cuando añade la conexión a un grupo que ya existe, el efecto es inmediato y no será requerido para confirmarlo.</dd>
+ <dt><a href='#' onclick='contextualHelpFocus("#perms-tool", 0); return false;' title="Pulsar para resaltar el elemento...">Permisos individuales</a></dt>
+ <dd>La concesión de permisos es, generalmente, automática y no requiere ninguna acción por su parte. Sin embargo, puede, si lo desea, ajustar permisos especiales, diferentes de los permisos concedidos a otros, para una conexión concreta.</dd>
+ <dt>Ajustes de funcionalidades concretas</dt>
+ <dd>Una serie de ajustes individuales se controlan mediante funcionalidades adicionales que pueden, o no, estar activadas en un hub o para su canal en concreto. Varias funcionalidades adicionales tienen ajustes para cada conexión, Estas funcionalidades se pueden configurar en esta página, de forma adicional, mediante pestañas que pueden estar presentes.</dd>
+</dl>
diff --git a/doc/contributor/covenant.html b/doc/contributor/covenant.html
new file mode 100644
index 000000000..4facac24e
--- /dev/null
+++ b/doc/contributor/covenant.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+
+<html lang="en">
+<head>
+ <meta charset="utf-8"/>
+ <title>Contributor Covenant 1.4.0</title>
+ <style>
+ body {
+ font-family: monospace;
+ padding: 4em;
+ }
+ a {
+ color: #990000;
+ }
+ </style>
+ <link rel="alternate" hreflang="de" href="version/1/3/0/de/" />
+ <link rel="alternate" hreflang="es" href="version/1/4/es/" />
+ <link rel="alternate" hreflang="fr" href="version/1/3/0/fr/" />
+ <link rel="alternate" hreflang="hu" href="version/1/3/0/hu/" />
+ <link rel="alternate" hreflang="it" href="version/1/3/0/it/" />
+ <link rel="alternate" hreflang="ja" href="version/1/3/0/ja/" />
+ <link rel="alternate" hreflang="pl" href="version/1/4/pl/" />
+ <link rel="alternate" hreflang="pt" href="version/1/3/0/pt/" />
+ <link rel="alternate" hreflang="pt" href="version/1/3/0/pt_br/" />
+ <link rel="alternate" hreflang="ru" href="version/1/3/0/ru/" />
+ <link rel="alternate" hreflang="sl" href="version/1/4/sl/" />
+ <link rel="alternate" hreflang="uk" href="version/1/4/uk/" />
+</head>
+
+<body>
+
+<h1>Contributor Covenant Code of Conduct</h1>
+
+<h2>Our Pledge</h2>
+
+<p>In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age, body
+size, disability, ethnicity, gender identity and expression, level of experience,
+nationality, personal appearance, race, religion, or sexual identity and
+orientation.</p>
+
+<h2>Our Standards</h2>
+
+<p>Examples of behavior that contributes to creating a positive environment
+include:</p>
+
+<ul>
+ <li>Using welcoming and inclusive language</li>
+ <li>Being respectful of differing viewpoints and experiences</li>
+ <li>Gracefully accepting constructive criticism</li>
+ <li>Focusing on what is best for the community</li>
+ <li>Showing empathy towards other community members</li>
+</ul>
+
+<p>Examples of unacceptable behavior by participants include:</p>
+
+<ul>
+ <li>The use of sexualized language or imagery and unwelcome sexual attention or advances</li>
+ <li>Trolling, insulting/derogatory comments, and personal or political attacks</li>
+ <li>Public or private harassment</li>
+ <li>Publishing others' private information, such as a physical or electronic address, without explicit permission</li>
+ <li>Other conduct which could reasonably be considered inappropriate in a professional setting</li>
+</ul>
+
+<h2>Our Responsibilities</h2>
+
+<p>Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.</p>
+
+<p>Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.</p>
+
+<h2>Scope</h2>
+
+<p>This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an appointed
+representative at an online or offline event. Representation of a project may be
+further defined and clarified by project maintainers.</p>
+
+<h2>Enforcement</h2>
+
+<p>Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at project&#x40;hubzilla.org. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an incident.
+Further details of specific enforcement policies may be posted separately.</p>
+
+<p>Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.</p>
+
+<h2>Attribution</h2>
+
+<p>This Code of Conduct is adapted from the <a href="http://contributor-covenant.org">Contributor Covenant</a>, version 1.4,
+available at <a href="http://contributor-covenant.org/version/1/4/">http://contributor-covenant.org/version/1/4</a>.</p>
+
+</body>
+</html>
diff --git a/doc/de/general.bb b/doc/de/general.bb
index eb1c0f158..6660370d7 100644
--- a/doc/de/general.bb
+++ b/doc/de/general.bb
@@ -2,7 +2,7 @@
[zrl=[baseurl]/help/Privacy]Informationen zum Datenschutz[/zrl]
-[zrl=[baseurl]/help/history]Zur Geschichte von $Projectname[/zrl]
+[zrl=[baseurl]/help/project/history]Zur Geschichte von $Projectname[/zrl]
[h3]Externe Ressourcen[/h3]
[zrl=[baseurl]/help/external-resource-links]Links zu externen Ressourcen[/zrl]
diff --git a/doc/develop.bb b/doc/develop.bb
index ef3ea5bd0..20e987a5a 100644
--- a/doc/develop.bb
+++ b/doc/develop.bb
@@ -20,12 +20,12 @@
[zrl=[baseurl]/help/api_posting]Posting to $Projectname using the API[/zrl]
[zrl=[baseurl]/help/developer_function_primer]Red Functions 101[/zrl]
[zrl=[baseurl]/doc/html/]Code Reference (Doxygen generated - sets cookies)[/zrl]
-[zrl=[baseurl]/help/to_do_doco]To-Do list for the $Projectname Documentation Project[/zrl]
+[zrl=[baseurl]/help/to_do_doco]To-Do list for $Projectname Documentation Project[/zrl]
[zrl=[baseurl]/help/to_do_code]To-Do list for Developers[/zrl]
[zrl=[baseurl]/help/roadmap]Roadmap[/zrl]
[zrl=[baseurl]/help/git_for_non_developers]Git for Non-Developers[/zrl]
[zrl=[baseurl]/help/dev_beginner]Step-for-step manual for beginning developers[/zrl]
[h3]External Resources[/h3]
-[url=https://zothub.com/channel/one]Development Channel[/url]
+[url=https://grid.reticu.li/channel/hubzilla]Development Channel[/url]
[url=https://federated.social/channel/postgres]Postgres-specific $Projectname Admin Support Channel[/url]
diff --git a/doc/developers.bb b/doc/developers.bb
index 6f7752577..f8489640b 100644
--- a/doc/developers.bb
+++ b/doc/developers.bb
@@ -1,6 +1,6 @@
[b]$Projectname Developer Guide[/b]
-We're pretty relaxed when it comes to developers. We don't have a lot of rules. Some of us are over-worked and if you want to help we're happy to let you help. That said, attention to a few guidelines will make the process smoother and make it easier to work together. We have developers from across the globe with different abilities and different cultural backgrounds and different levels of patience. Our primary rule is to respect others. Sometimes this is hard and sometimes we have very different opinions of how things should work, but if everybody makes an effort, we'll get along just fine.
+We're pretty relaxed when it comes to developers. We don't have a lot of rules. Some of us are over-worked and if you want to help we're happy to let you help. That said, attention to a few guidelines will make the process smoother and make it easier to work together. All developers are expected to abide by our [zrl=[baseurl]/help/contributor/covenant]code of conduct[/zrl]. We have developers from across the globe with different abilities and different cultural backgrounds and different levels of patience. Our primary rule is to respect others. Sometimes this is hard and sometimes we have very different opinions of how things should work, but if everybody makes an effort, we'll get along just fine.
[b]Here is how you can join us.[/b]
@@ -19,7 +19,7 @@ to notify us to merge your work.
[b]Translations[/b]
-Our translations are managed through Transifex. If you wish to help out translating the $Projectname to another language, sign up on transifex.com, visit [url=https://www.transifex.com/projects/p/red-matrix/]https://www.transifex.com/projects/p/red-matrix/[/url] and request to join one of the existing language teams or create a new one. Notify one of the core developers when you have a translation update which requires merging, or ask about merging it yourself if you're comfortable with git and PHP. We have a string file called 'messages.po' which is gettext compliant and a handful of email templates, and from there we automatically generate the application's language files.
+Our translations are managed through Transifex. If you wish to help out translating $Projectname to another language, sign up on transifex.com, visit [url=https://www.transifex.com/projects/p/red-matrix/]https://www.transifex.com/projects/p/red-matrix/[/url] and request to join one of the existing language teams or create a new one. Notify one of the core developers when you have a translation update which requires merging, or ask about merging it yourself if you're comfortable with git and PHP. We have a string file called 'messages.po' which is gettext compliant and a handful of email templates, and from there we automatically generate the application's language files.
[zrl=[baseurl]/help/Translations]Translations - More Info[/zrl]
diff --git a/doc/diaspora_compat.bb b/doc/diaspora_compat.bb
new file mode 100644
index 000000000..f27a63b9d
--- /dev/null
+++ b/doc/diaspora_compat.bb
@@ -0,0 +1,68 @@
+[h3]Diaspora Compatibility[/h3]
+
+The Diaspora Protocol addon allows a site to communicate using the Diaspora protocol, which allows communications and connections to be made with Diaspora members (and also Friendica members, since that network also provides the Diaspora Protocol).
+
+This addon is available in the 'basic' and 'standard' server configurations. It is not available with and the plugin is disabled completely when you are using the 'pro' server configuration. The reason for this is that the Diaspora protocol is not very sophisticated and many $projectname features do not work well with it.
+
+Members will have to be aware of limitations of the protocol or limit their own activities to those which are compatible with Diaspora. The 'pro' server configuration is free from these limitations and you may use all of the project features and abilities without regard for how they translate to other networks. Many features are unique to $Projectname and are supported by the &quot;Zot&quot; protocol, which is our native communications language between servers/hubs.
+
+If you are using a configuration which allows direct Diaspora communications you should be aware of the limitations presented here.
+
+[ul]
+[*]Private mail retraction (unsend) is not possible for Diaspora connections.
+
+[*]Private posts and their associated comments are sent in plaintext email notifications in Diaspora and Friendica. This is a major privacy issue and affects any private communications you have where *any* member of the conversation is on another network. Be aware of it.
+
+[*]Access control only works on posts and comments. Diaspora members will get permission denied trying to access any other access controlled hubzilla objects such as files, photos, webpages, chatrooms, etc. In the case of private photos that are linked to posts, they will see a "prohibited sign" instead of the photo. Diaspora has no concept of private media and provides an illusion of photo privacy by using obscured URLs rather than protecting the photo from snooping by unauthorised viewers.
+
+There is no workaround except to make your media resources public (to everybody on the internet).
+
+
+[*]Edited posts will not be delivered. Diaspora members will see the original post/comment without edits. There is no mechanism in the protocol to update an existing post. We cannot delete it and submit another invisibly because the message-id will change and we need to keep the same message-id on our own network. The only workaround is to delete the post/comment and do it over. (If this is a post, this will delete any existing likes/comments). We may eventually provide a way to delete the out of date copy only from Diaspora and keep it intact on networks that can handle edits.
+
+[*]Nomadic identity ($projectname 'standard' only) will not work with Diaspora. We may eventually provide an **option** which will allow you to "start sharing" from all of your clones when you make the first connection. The Diaspora person does not have to accept this, but it will allow your communications to continue if they accept this connection. Without this option, if you go to another server from where you made the connection originally or you make the connection before creating the clone, you will need to connect with them again from the new location.
+
+[*]Post expiration is not supported on Diaspora. We may provide you an option to not send expiring posts to that network. In the future this may be provided with a remote delete request.
+
+[*]End-to-end encryption is not supported. We will translate these posts into a lock icon, which can never be unlocked from the Diaspora side.
+
+[*]Message verification will eventually be supported.
+
+[*]Multiple profiles are not supported. Diaspora members can only see your default profile.
+
+[*]Birthday events will not appear in Diaspora. Other events will be translated and sent as a post, but all times will either be in the origination channel's timezone or in GMT. We do not know the recipient's timezone because Diaspora doesn't have this concept.
+
+[*]We currently allow tags to be hijacked by default. An option is provided to allow you to prevent the other end of the network from hijacking your tags and point them at its own resources.
+
+[*]Community tags will not work. We will send a tagging activity as a comment. It won't do anything.
+
+[*]Privacy tags (@!somebody) will not be available to Diaspora members. These tags may have to be stripped or obscured to prevent them from being hijacked - which could result in privacy issues.
+
+[*]Plus-tagged hubzilla forums should work from Diaspora.
+
+
+[*]You cannot use Diaspora channels as channel sources.
+
+
+[*]Dislikes of posts will be converted to comments and you will have the option to send these as comments or not send them to Diaspora (which does not provide dislike). Currently they are not sent.
+
+[*]We will do the same for both likes and dislikes of [b][i]comments[/i][/b]. They can either be sent as comments or you will have the ability to prevent them from being transmitted to Diaspora. Currently they are not sent.
+
+[*]Emojis are currently untranslated.
+
+[*]"observer tags" will be converted to empty text.
+
+
+[*]Embedded apps will be translated into links.
+
+
+[*]Embedded page design elements (work in progress) will be either stripped or converted to an error message.
+
+[*]Diaspora members will not appear in the directory.
+
+
+[*]There are differences in oembed compatibility between the networks. Some embedded resources will turn into a link on one side or the other.
+
+[/ul]
+
+#include doc/macros/main_footer.bb;
diff --git a/doc/diaspora_compat.md b/doc/diaspora_compat.md
deleted file mode 100644
index 255b565a2..000000000
--- a/doc/diaspora_compat.md
+++ /dev/null
@@ -1,60 +0,0 @@
-##Diaspora Compatibility
-
-Diaspora protocol compatibility is presently considered an ***experimental*** feature. It may not be available on all sites and presents some serious compatibility issues with hubzilla. At the moment these compatibility issues will be shared with "Friendica-over-Diaspora" protocol communications.
-
-Private mail retraction (unsend) will not be possible on Diaspora.
-
-Private posts and their associated comments are sent in plaintext email notifications in Diaspora and Friendica. This is a major privacy issue and affects any private communications you have where *any* member of the conversation is on another network. Be aware of it.
-
-Access control only works on posts and comments. Diaspora members will get permission denied trying to access any other access controlled hubzilla objects such as files, photos, webpages, chatrooms, etc. In the case of private photos that are linked to posts, they will see a "prohibited sign" instead of the photo. Diaspora has no concept of private media. There is no workaround except to make your media resources public (to everybody on the internet).
-
-
-Edited posts will not be delivered. Diaspora members will see the original post/comment without edits. There is no mechanism in the protocol to update an existing post. We cannot delete it and submit another invisibly because the message-id will change and we need to keep the same message-id on our own network. The only workaround is to delete the post/comment and do it over. We may eventually provide a way to delete the out of date copy only from Diaspora and keep it intact on networks that can handle edits.
-
-Some comments from external services will not deliver to Diaspora, as they have no Diaspora service discovery. Currently this applies to comments from WordPress blogs which are imported into your stream; but will extend to most any service that has no Diaspora discover mechanism.
-
-
-Nomadic identity will not work with Diaspora. We will eventually provide an **option** which will allow you to "start sharing" from all of your clones when you make the first connection. The Diaspora person does not have to accept this, but it will allow your communications to continue if they accept this connection. Without this option, if you go to another server from where you made the connection originally or you make the connection before creating the clone, you will need to make friends with them again from the new location.
-
-Post expiration is not supported on Diaspora. We will provide you an option to not send expiring posts to that network. In the future this may be provided with a remote delete request.
-
-End-to-end encryption is not supported. We will translate these posts into a lock icon, which can never be unlocked from the Diaspora side.
-
-Message verification will eventually be supported.
-
-Multiple profiles are not supported. Diaspora members can only see your default profile.
-
-Birthday events will not appear in Diaspora. Other events will be translated and sent as a post, but all times will either be in the origination channel's timezone or in GMT. We do not know the recipient's timezone because Diaspora doesn't have this concept.
-
-We currently allow tags to be hijacked by default. We will provide an option to allow you to prevent the other end of the network from hijacking your tags and point them at its own resources.
-
-Community tags will not work. We will send a tagging activity as a comment. It won't do anything.
-
-Privacy tags (@!somebody) will not be available to Diaspora members. These tags may have to be stripped or obscured to prevent them from being hijacked - which could result in privacy issues.
-
-Plus-tagged hubzilla forums should work from Diaspora.
-
-Premium channel redirects will not be sent. If you allow Diaspora connections, they will not see that you have a premium channel.
-
-You cannot use Diaspora channels as channel sources.
-
-
-Dislikes of posts will be converted to comments and you will have the option to send these as comments or not send them to Diaspora (which does not provide dislike). Currently they are not sent.
-
-We will do the same for both likes and dislikes of comments. They can either be sent as comments or you will have the ability to prevent them from being transmitted to Diaspora. Currently they are not sent.
-
-
-"observer tags" will be converted to empty text.
-
-
-Embedded apps will be translated into links.
-
-
-Embedded page design elements (work in progress) will be either stripped or converted to an error message.
-
-Diaspora members will not appear in the directory.
-
-
-There are differences in oembed compatibility between the networks. Some embedded resources will turn into a link on one side or the other.
-
-#include doc/macros/main_footer.bb;
diff --git a/doc/extra_features.bb b/doc/extra_features.bb
index 9fb43d9a1..0044a06a7 100644
--- a/doc/extra_features.bb
+++ b/doc/extra_features.bb
@@ -1,7 +1,7 @@
// multiple of these have been enabled by default. should we note this here somewhere, move it or remove them from this file?
[b]Features[/b]
-The default interface of the $Projectname was designed to be uncluttered. There are a huge number of extra features (some of which are extremely useful) which you can turn on and get the most of the application. These are found under the Extra Features link of your Settings page.
+The default interface of $Projectname was designed to be uncluttered. There are a huge number of extra features (some of which are extremely useful) which you can turn on and get the most of the application. These are found under the Extra Features link of your Settings page.
[b]Content Expiration[/b]
diff --git a/doc/faq_admins.bb b/doc/faq_admins.bb
index 63418c1dc..0b54a41de 100644
--- a/doc/faq_admins.bb
+++ b/doc/faq_admins.bb
@@ -1,4 +1,4 @@
-[size=large][b]The $Projectname FAQ[/b][/size]
+[size=large][b]$Projectname FAQ[/b][/size]
[toc]
diff --git a/doc/faq_members.bb b/doc/faq_members.bb
index 7af61df9b..c7f50314d 100644
--- a/doc/faq_members.bb
+++ b/doc/faq_members.bb
@@ -1,11 +1,11 @@
-[size=large][b]The $Projectname FAQ[/b][/size]
+[size=large][b]$Projectname FAQ[/b][/size]
[toc]
[h3]I am able to edit a post's text after I saved it, but is there a way to change the permissions?[/h3]
Short anser: No, there isn't. There are reasons. You are able to change permissons to your files, photos and the likes, but not to posts after you have saved them. The main reason is: Once you have saved a post it is being distributed either to the public channel and from there to other $Projectname servers or to those you intended it to go. Just like you cannot reclaim something you gave to another person, you cannot change permissions to $Projectname posts. We would need to track everywhere your posting goes, keep track of everyone you allowed to see it and then keep track of from whom to delete it.
-If a posting is public this is even harder, as the $Projectname is a global network and there is no way to follow a post, let alone reclaim it reliably. Other networks that may receive your post have no reliable way to delete or reclaim the post.
+If a posting is public this is even harder, as $Projectname is a global network and there is no way to follow a post, let alone reclaim it reliably. Other networks that may receive your post have no reliable way to delete or reclaim the post.
[h3]I downloaded my channel and imported it (cloned my identity) to another site but there is no content, no posts, no photos. What is wrong???[/h3]
Posts and photos/files are provided separately from the channel basic information. This is due to memory limitations dealing with years of conversations and photo archives. Posts and conversations can be synced separately from the basic channel information. Photos and file archives can be transferred using a plugin tool such as 'redfiles', which is currently listed as "experimental". When creating this feature we thought that keeping all your contacts was the most important task. Your friends have already seen your old content. Posts/conversations were next in priority and these may now be synced. Files and photos are the last bit to get completely working. Once we find someone willing to finish implementing this, it will be done. :)
diff --git a/doc/feature/access_tokens.bb b/doc/feature/access_tokens.bb
new file mode 100644
index 000000000..eb5c03717
--- /dev/null
+++ b/doc/feature/access_tokens.bb
@@ -0,0 +1,47 @@
+Feature: Zot Access Tokens
+Status: Draft
+Date: 15 July 2016
+
+
+Purpose:
+
+In order to facilitate sharing of private resources with non-members or members of federation nodes with limited identification discovery, Hubzilla should provide members with a mechanism to create and manage temporary ("throwaway") logins, aka "Zot Access Tokens". These tokens/credentials may be used to authenticate to a hubzilla site for the sole purpose of accessing privileged or access controlled resources (files, photos, posts, webpages, chatrooms, etc.).
+
+
+Scope:
+
+Zot Access Tokens do not convey membership in the site or network. In particular, they do not provide an account or channel; which may be necessary to interact with the hub owner or with others in the network or federation of networks. In most cases they can only be used to consume restricted resources and do not have an ability to create those resources, however this ability may be provided by custom configurations or in future releases or addons.
+
+For instance the ability for a temporary login to access a chatroom may provide suitable permission to create chat messages inside that chatroom.
+
+
+Implementation:
+
+Zot Access Tokens are managed through a "tab" of the settings page. Access to this tab may be controlled by site configuration. On this page, channels may create, edit, list, and remove any access tokens under their control.
+
+The form to create/edit accepts three parameters, a human readable name, a password or access token, and an optional expiration. Once expired, the access token is no longer valid, may no longer be used, and will be automatically purged from the list of temporary accounts. The password field in the create/edit forms displays the text of the access token and not an obscured password. By default we will create a token using the autoname() function, which generally produces a random character sequence which is "pronounceable", hence easy to convey or remember. This can be changed to any other character sequence which is acceptable to the site password complexity policy. (In most Hubzilla installations this imposes a minimum of three characters, but may be extended by plugin or site policy).
+
+
+Usage:
+
+We do not specify mechanisms for sharing these tokens with others. Any communication method may be used. Any tokens you have created are added to the Access Control List selector and may be used anywhere that Access Control Lists are provided.
+
+ Example: A visitor arrives at your site. She has an access token you have provided, and attempts to visit one of your photo albums (which is restricted to be viewed only by yourself and one temporary identity). Permission is denied.
+
+The visitor now selects "Login" from the menu navigation bar. This presents a login page. She enters the name and password you have provided her, and she can now view the restricted photo album.
+
+
+Alternatively, you may share a link to a protected file by adding a parameter "&zat=abc123" to the URL, where the string "abc123" is the access token or password for the temporary login. No further negotiation is required, and the file is presented.
+
+Zot Acess Tokens are represented internally as an authenticated "observer". Querying the observer in code should return a pseudo or system generated xchan with an unknown protocol and a default profile photo. It will match (successfully) any access control rule which allows authenticated observers.
+
+Security Considerations:
+
+The URL form of authentication is inherently less secure than using a login, but may be preferable for some uses of this feature. It probably should not be transmitted over non-SSL links.
+
+
+Future development:
+
+It might be desirable for future implementations to provide an options for single-use, where the access token is removed promptly following first use.
+
+ \ No newline at end of file
diff --git a/doc/general.bb b/doc/general.bb
index bbc85c900..cc5de5a56 100644
--- a/doc/general.bb
+++ b/doc/general.bb
@@ -1,7 +1,9 @@
[h2]Project and site information[/h2]
[h3]$Projectname[/h3]
[zrl=[baseurl]/help/Privacy]Privacy Policy[/zrl]
-[zrl=[baseurl]/help/history]$Projectname history[/zrl]
+[zrl=[baseurl]/help/project/governance]Project Governance[/zrl]
+[zrl=[baseurl]/help/contributor/convenant]Project Covenant and Code of Conduct[/zrl]
+[zrl=[baseurl]/help/project/history]$Projectname history[/zrl]
[h3]External resources[/h3]
[zrl=[baseurl]/help/external-resource-links]List of external resources[/zrl]
[url=https://github.com/redmatrix/hubzilla]Main Website[/url]
diff --git a/doc/hidden_configs.bb b/doc/hidden_configs.bb
index 6e093dbfc..f34c253ce 100644
--- a/doc/hidden_configs.bb
+++ b/doc/hidden_configs.bb
@@ -41,7 +41,7 @@ Options are:
[*= system.block_public_search ] Similar to block_public, except only blocks public access to search features. Useful for sites that want to be public, but keep getting hammered by search engines.
[*= system.cron_hour ] Specify an hour in which to run cron_daily. By default with no config, this will run at midnight UTC.
[*= system.default_permissions_role ] If set to a valid permissions role name, use that role for the first channel created by a new account and don't ask for the "Channel Type" on the channel creation form. Examples of valid names are: 'social', 'social_restricted', 'social_private', 'forum', 'forum_restricted' and 'forum_private'. Read more about permissions roles [zrl=[baseurl]/help/roles]here[/zrl].
- [*= system.default_photo_profile ] Set the profile photo that new channels start with. This should contain the name of a directory located under [font=courier]images/default_profile_photos/[/font], or be left unset. If not set then 'rainbow_man' is assumed.
+ [*= system.default_profile_photo ] Set the profile photo that new channels start with. This should contain the name of a directory located under [font=courier]images/default_profile_photos/[/font], or be left unset. If not set then 'rainbow_man' is assumed.
[*= system.directorytags ] Set the number of keyword tags displayed on the directory page. Default is 50 unless set to a positive integer.
[*= system.disable_directory_keywords ] If '1', do not show directory keywords. If the hub is a directory server, prevent returning tags to any directory clients. Please do not set this for directory servers in the RED_GLOBAL realm.
[*= system.disable_discover_tab ] This allows you to completely disable the ability to discover public content from external sites.
@@ -67,7 +67,7 @@ Options are:
[*= system.paranoia ] As the pconfig, but on a site-wide basis. Can be overwritten by member settings.
[*= system.photo_cache_time ] How long to cache photos, in seconds. Default is 86400 (1 day). Longer time increases performance, but it also means it takes longer for changed permissions to apply.
[*= system.platform_name ] What to report as the platform name in webpages and statistics. (*) Must be set in .htconfig.php
- [*= system.poco_rating_enable ] Distributed reputation reporting and data collection may be disabled. If your site does not participate in distributed reputation you will also not be able to make use of the data from your connections on other sites. By default and in the absence of any setting it is enabled. Individual members can opt out by restricting who can see their connections or by not providing any reputation information for their connections.
+ [*= system.rating_enabled ] Distributed reputation reporting and data collection. This feature is currently being re-worked.
[*= system.poke_basic ] Reduce the number of poke verbs to exactly 1 ("poke"). Disable other verbs.
[*= system.proc_run_use_exec ] If 1, use the exec system call in proc_run to run background tasks. By default we use proc_open and proc_close. On some (currently rare) systems this does not work well.
[*= system.projecthome ] Display the project page on your home page for logged out viewers.
diff --git a/doc/permissions.bb b/doc/permissions.bb
index cc831dd61..0721c763d 100644
--- a/doc/permissions.bb
+++ b/doc/permissions.bb
@@ -28,7 +28,7 @@ We highly recommend that you use the "typical social network" settings when you
[*= Anybody On This Hub ] Anybody with a channel on the same hub/website as you will have permission approved. Anybody who is registered at a different hub will have this permission denied.
- [*= Anybody in this network ] Anybody in the $Projectname will have this permission approved. Even complete strangers. However, anybody not logged in/authenticated will have this permission denied.
+ [*= Anybody in this network ] Anybody in $Projectname will have this permission approved. Even complete strangers. However, anybody not logged in/authenticated will have this permission denied.
[*= Anybody authenticated ] This is similar to "anybody in this network" except that it can include anybody who can authenticate by any means - and therefore [i]may[/i] include visitors from other networks.
diff --git a/doc/plugins.bb b/doc/plugins.bb
index f2f0b04e8..a320de790 100644
--- a/doc/plugins.bb
+++ b/doc/plugins.bb
@@ -45,7 +45,7 @@ In our case, we'll call them randplace_load() and randplace_unload(), as that is
pluginname_uninstall()
[/code]
-Next we'll talk about [b]hooks[/b]. Hooks are places in the $Projectname code where we allow plugins to do stuff. There are a [url=[baseurl]/help/hooklist]lot of these[/url], and they each have a name. What we normally do is use the pluginname_load() function to register a &quot;handler function&quot; for any hooks you are interested in. Then when any of these hooks are triggered, your code will be called.
+Next we'll talk about [b]hooks[/b]. Hooks are places in $Projectname code where we allow plugins to do stuff. There are a [url=[baseurl]/help/hooklist]lot of these[/url], and they each have a name. What we normally do is use the pluginname_load() function to register a &quot;handler function&quot; for any hooks you are interested in. Then when any of these hooks are triggered, your code will be called.
We register hook handlers with the 'Zotlabs\Extend\Hook::register()' function. It typically takes 3 arguments. The first is the hook we wish to catch, the second is the filename of the file to find our handler function (relative to the base of your $Projectname installation), and the third is the function name of your handler function. So let's create our randplace_load() function right now.
@@ -295,13 +295,13 @@ If you want to keep your plugin hidden from the siteinfo page, simply create a f
***Porting Friendica Plugins***
-The $Projectname uses a similar plugin architecture to the Friendica project. The authentication, identity, and permissions systems are completely different. Many Friendica can be ported reasonably easily by renaming a few functions - and then ensuring that the permissions model is adhered to. The functions which need to be renamed are:
+$Projectname uses a similar plugin architecture to the Friendica project. The authentication, identity, and permissions systems are completely different. Many Friendica can be ported reasonably easily by renaming a few functions - and then ensuring that the permissions model is adhered to. The functions which need to be renamed are:
[li] Friendica's pluginname_install() is pluginname_load()[/li]
[li] Friendica's pluginname_uninstall() is pluginname_unload()[/li]
-The $Projectname has _install and _uninstall functions but these are used differently.
+$Projectname has _install and _uninstall functions but these are used differently.
[li] Friendica's &quot;plugin_settings&quot; hook is called &quot;feature_settings&quot;[/li]
diff --git a/doc/problems-following-an-update.bb b/doc/problems-following-an-update.bb
index 3bc7e9a51..2d1fefc5b 100644
--- a/doc/problems-following-an-update.bb
+++ b/doc/problems-following-an-update.bb
@@ -28,7 +28,7 @@ We use the Smarty3 template engine to generate pages. These templates are compi
[b]Theme Issues[/b]
-There are many themes for The $Projectname. Only Redbasic is officialy supported by the core developers. This applies [i]even if a core developer happens to support an additional theme[/i]. This means new features are only guaranteed to work in Redbasic.
+There are many themes for $Projectname. Only Redbasic is officialy supported by the core developers. This applies [i]even if a core developer happens to support an additional theme[/i]. This means new features are only guaranteed to work in Redbasic.
Redbasic uses a few javascript libraries that are done differently, or entirely absent in other themes. This means new features may only work properly in Redbasic. Before reporting an issue, therefore, you should switch to Redbasic to see if it exists there. If the issue goes away, this is not a bug - it's a theme that isn't up to date.
diff --git a/doc/project/governance.bb b/doc/project/governance.bb
new file mode 100644
index 000000000..e13f6218c
--- /dev/null
+++ b/doc/project/governance.bb
@@ -0,0 +1,45 @@
+[h2]$Projectname Governance[/h2]
+
+Governance relates to the management of a project and particularly how this relates to conflict resolution.
+
+This project uses a dual-governance model.
+
+The project as a whole and the repository were created initially by Mike Macgirvin; who controls the project copyright, and the project license, and manages the project as a Self Appointed Benevolent Dictator for Life. He holds veto power over any project proposal or decision and his word is final.
+
+That said, Mike has no interest in running the day to day activities of the project and influencing its direction, other than to protect his own work from sabotage.
+
+The internal project structure contains multiple "configurations" known as 'basic', 'standard', and 'pro'. Mike's veto power extends to any proposal or decision which he feels might adversely affect the 'pro' configuration.
+
+The 'basic and 'standard' configurations are controlled completely by the community. If the proposal or decision is crafted in such a way that its effects are limited to these configurations, Mike will consider relinquishing his power of veto and convert it to a normal community vote.
+
+Mario Vavti has done an incredible amount of work on the usability and theming of the project and holds veto power over any proposal or decision which might impact usability and "look and feel"; and his decision is also final.
+
+Mario's veto power is likewise restricted to anything using the standard project 'theme'. If a new theme is created and an otherwise vetoed decision is implemented entirely in this different theme and has no impact on the standard project theme, his veto [b]may[/b] also be turned into a normal community vote.
+
+This ability to work around a veto is at the discretion of Mike and Mario. They [b]may[/b] choose to relinquish their veto if the scope of the work is limited as described above, and in most circumstances they will leave the decision to the community. They are not obligated to do so.
+
+[h3]Community Governance[/h3]
+
+Beyond those two special cases, the project is maintained and decisions made by the 'community'. The governance structure is still evolving. Until the structure is finalised, decisions are made in the following order:
+
+[ol]
+[*] Lazy Consensus
+
+If a project proposal is made to one of the community governance forums and there are no serious objections in a "reasonable" amount of time from date of proposal (we usually provide 2-3 days for all interested parties to weigh in), no vote needs to be taken and the proposal will be considered approved. Some concerns may be raised at this time, but if these are addressed during discussion and work-arounds provided, it will still be considered approved.
+
+[*] Veto
+
+If a proposal is vetoed, it is not necessarily the final word. See above on how to convert a veto into a normal community vote. This can be done by framing the proposal so that it does not impact the 'pro' configuration or the standard theme.
+
+[*] Community Vote
+
+A decision which does not have a clear mandate or clear consensus, but is not vetoed, can be taken to a community vote. At present this is a simple popular vote in one of the applicable community forums. At this time, popular vote decides the outcome. This may change in the future if the community adopts a 'council' governance model. This document will be updated at that time with the updated governance rules.
+[/ol]
+
+Community Voting does not always provide a pleasant outcome and can generate polarised factions in the community (hence the reason why other models are under consideration). If the proposal is 'down voted' there are still several things which can be done and the proposal re-submitted with slightly different parameters (convert to an addon, convert to an optional feature which is disabled by default, etc.). If interest in the feature is high and the vote is "close", it can generate lots of bad feelings amongst the losing voters. On such close votes, it is [b]strongly recommended[/b] that the proposer take steps to address any concerns that were raised and re-submit.
+
+
+
+
+
+
diff --git a/doc/history.md b/doc/project/history.md
index 7360c6b22..99cbfec7a 100644
--- a/doc/history.md
+++ b/doc/project/history.md
@@ -53,4 +53,22 @@ The Redmatrix community held a vote and the project was renamed "Hubzilla", with
Mike stepped down as active coordinator for the project in early 2015 and turned management over to the community. He remains active as a Hubzilla developer.
+##And Then...
+
+In 2016, the project was re-architected to support multiple server "roles". These correspond to sub-projects which can be isolated from each other in terms of supported feature sets, but all use and support the same code-base and developers are able to work together on common features and goals. The roles primarily differ in target audience, project [governance](help/project/governance) and decision making structures, and this results in slightly different features and idealogy. They all share a common code repository.
+
+Those roles are:
+
+### Basic
+
+Entry level server. Supported by and governed by the Hubzilla community. Most advanced or complex features have been stripped away to ease federation with external services. It is best suited as a FOSS social network tool.
+
+### Standard
+
+The standard Hubzilla server. This provides a wide range of useful features and is supported by and governed by the Hubzilla community. It is best suited as an open source community and cloud server.
+
+### Pro
+
+This is a specially crafted server with a unique feature set. It is supported by and governed by Mike Macgirvin dba "Zotlabs". Federation with external services has been stripped away in order to support a wide range of more technically advanced and complex features; and also includes features and modes which may not have the support or backing of the Hubzilla open source community. It is best suited for business and workplace applications.
+
#include doc/macros/main_footer.bb;
diff --git a/doc/project/toc.html b/doc/project/toc.html
new file mode 100644
index 000000000..b9489de3d
--- /dev/null
+++ b/doc/project/toc.html
@@ -0,0 +1,6 @@
+<h3>Project Information</h3>
+<ul>
+<li><a href="help/project/governance">Project Governance</a></li>
+<li><a href="help/project/history">Project History</a></li>
+<li><a href="help/project/versions">Versions and Versioning</a></li>
+</ul>
diff --git a/doc/project/versions.bb b/doc/project/versions.bb
new file mode 100644
index 000000000..451cd0448
--- /dev/null
+++ b/doc/project/versions.bb
@@ -0,0 +1,30 @@
+[h2]Versions and Releases[/h2]
+
+$Projectname currently uses a standard version numbering sequence of $x.$y(.$z), for instance '1.12' or '1.12.1'. The first digit is the major version number. Major versions are released "roughly" once per year; often in December.
+
+The second digit is the minor release number. If this number is odd, it is a development version. If the number is even, it is a released version. Minor versions are released (moved from dev to master) typically once per month when development is 'stable', but this is likely to increase. Going forward minor releases will be made somewhere between one and three months; corresponding to a stable code point and when there is general community consensus that the current code base is stable enough to consider a release.
+
+The final digit is an interface or patch designator.
+
+The release process involves changing the version number (by definition the minor version number will be odd, and the minor number will be incremented). Once a year for a major release the major version will be incremented, and the minor number reset to 0.
+
+The release candidate is moved to a new branch; and testing will commence/continue for a period of 1-2 weeks afterward or until any significant issues have been resolved. This branch is usually labelled with RC (release candidate); for instance 1.8RC represents the pending release of version 1.8. At this time, the minor version number on the dev branch is incremented to the next odd number. (For instance 1.9). New development can then take place in the dev branch.
+
+Bug fixes should always be applied to 'dev' and from there merged forward (typically with git cherry-pick) to the RC branch and if necessary applied to the master or official release branch.
+
+At the time a release candidate is produced, the language strings file is frozen until a release is made. Translation work may continue, but all translations should be submitted to 'dev' and merged forward to RC.
+
+
+Once RC testing is completed, RC is merged to 'master' and the RC version designator removed; resulting in one final checkin to change the version number. The CHANGELOG file should also be updated at or just prior to this time. If there are merge conflicts during this final merge, the merge will be abandoned; and 'git merge -s ours' applied. This results in a replacement of master with the contents of the RC branch. Conflicts often arise with string updates which were made to master after the last release and cannot easily be resolved without hand editing. Since this is a release of tested code, hand editing is discouraged, and the replacement merge strategy should be used instead. It is assumed that RC now contains the most recent well-tested code.
+
+Once the release is live and merged to master, the RC branch may be removed.
+
+Fixes may be made to master after release. Where possible these should be made to dev and 'git cherry-pick' used to merge forward; which preserves the commit info and prevents merge conflicts in the next cycle. Only rarely does a patch only apply to the master branch. If necessary this can be made. If the change is severe, the interface version number should be incremented. This is at the discretion of the community. In any event, a 'git pull' of the master branch should always result in the latest release with any post-release patches applied.
+
+The interface number (the $z in $x.$y.$z) should be incremented in dev whenever a change is made which changes the interfaces or API in incompatible ways so that any external packages (especially addons and API clients) relying on a the current behaviour can discover and change their own interfaces accordingly at the point that it changed.
+
+
+
+
+
+ \ No newline at end of file
diff --git a/doc/red2pi.bb b/doc/red2pi.bb
index 18e7d325a..28db7dc70 100644
--- a/doc/red2pi.bb
+++ b/doc/red2pi.bb
@@ -1,4 +1,4 @@
-[b]How to install the $Projectname on a Raspberry Pi[/b]
+[b]How to install $Projectname on a Raspberry Pi[/b]
You just bought a Raspberry Pi and want to run the RED Matrix with your own domain name?
diff --git a/doc/sv/main.bb b/doc/sv/main.bb
index a5c1d4f7a..27a7a742e 100644
--- a/doc/sv/main.bb
+++ b/doc/sv/main.bb
@@ -13,7 +13,7 @@ Zot är en fantastisk ny kommunikationsprotokoll uppfunnit speciellt för $Proje
[h3]Kom igång[/h3]
[zrl=[baseurl]/help/Privacy]Privacy Policy[/zrl]
[zrl=[baseurl]/help/registration]Account Registration[/zrl]
-[zrl=[baseurl]/help/accounts_profiles_channels_basics]You at the $Projectname: accounts, profiles and channels in short[/zrl]
+[zrl=[baseurl]/help/accounts_profiles_channels_basics]You at $Projectname: accounts, profiles and channels in short[/zrl]
[zrl=[baseurl]/help/profiles]Profiles[/zrl]
[zrl=[baseurl]/help/channels]Channels[/zrl]
[zrl=[baseurl]/help/sv/roles]Behörighetsförval för kanaler[/zrl]
@@ -43,7 +43,7 @@ Zot är en fantastisk ny kommunikationsprotokoll uppfunnit speciellt för $Proje
[zrl=[baseurl]/help/faq_admins]FAQ For Admins[/zrl]
[h3]Teknisk dokumentation[/h3]
-[zrl=[baseurl]/help/history]$Projectname history[/zrl]
+[zrl=[baseurl]/help/project/history]$Projectname history[/zrl]
[zrl=[baseurl]/help/Zot---A-High-Level-Overview]A high level overview of Zot[/zrl]
[zrl=[baseurl]/help/zot]An introduction to Zot[/zrl]
[zrl=[baseurl]/help/zot_structures]Zot Stuctures[/zrl]
diff --git a/doc/toc.html b/doc/toc.html
new file mode 100644
index 000000000..ac21959cf
--- /dev/null
+++ b/doc/toc.html
@@ -0,0 +1,6 @@
+<ul>
+<li><a href="help/general">Project/Site Information</a></li>
+<li><a href="help/members">For Members</a></li>
+<li><a href="help/admins">For Administrators</a></li>
+<li><a href="help/develop">For Developers</a></li>
+</ul>
diff --git a/doc/zot.md b/doc/zot.md
index 1e454e495..06c4d6083 100644
--- a/doc/zot.md
+++ b/doc/zot.md
@@ -57,7 +57,7 @@ In order to implement high performance communications, the data transfer format
Bi-directional encryption is based on RSA 4096-bit keys expressed in DER/ASN.1 format using the PKCS#8 encoding variant, with AES-256-CBC used for block encryption of variable length or large items.
-Some aspects of well known "federation protocols" (webfinger, salmon, activitystreams, portablecontacts, etc.) may be used in zot, but we are not tied to them and will not be bound by them. The $Projectname project is attempting some rather novel developments in decentralised communications and if there is any need to diverge from such "standard protocols" we will do so without question or hesitation.
+Some aspects of well known "federation protocols" (webfinger, salmon, activitystreams, portablecontacts, etc.) may be used in zot, but we are not tied to them and will not be bound by them. $Projectname project is attempting some rather novel developments in decentralised communications and if there is any need to diverge from such "standard protocols" we will do so without question or hesitation.
In order to create a globally unique ID, we will base it on a whirlpool hash of the identity URL of the origination node and a psuedo-random number, which should provide us with a 256 bit ID with an extremely low probability of collision (256 bits represents approximately 115 quattuorviginitillion or 1.16 X 10^77 unique numbers). This will be represented in communications as a base64url-encoded string. We will not depend on probabilities however and the ID must also be attached to a public key with public key cryptography used to provide an assurance of identity which has not been copied or somehow collided in whirlpool hash space.
diff --git a/include/account.php b/include/account.php
index 5c44f13ca..47310912f 100644
--- a/include/account.php
+++ b/include/account.php
@@ -14,6 +14,13 @@ require_once('include/crypto.php');
require_once('include/channel.php');
+function get_account_by_id($account_id) {
+ $r = q("select * from account where account_id = %d",
+ intval($account_id)
+ );
+ return (($r) ? $r[0] : false);
+}
+
function check_account_email($email) {
$result = array('error' => false, 'message' => '');
@@ -112,6 +119,7 @@ function create_account($arr) {
$flags = ((x($arr,'account_flags')) ? intval($arr['account_flags']) : ACCOUNT_OK);
$roles = ((x($arr,'account_roles')) ? intval($arr['account_roles']) : 0 );
$expires = ((x($arr,'expires')) ? intval($arr['expires']) : NULL_DATE);
+ $techlevel = ((array_key_exists('techlevel',$arr)) ? intval($arr['techlevel']) : intval(get_config('system','techlevel')));
$default_service_class = get_config('system','default_service_class');
@@ -171,16 +179,17 @@ function create_account($arr) {
$r = q("INSERT INTO account
( account_parent, account_salt, account_password, account_email, account_language,
- account_created, account_flags, account_roles, account_expires, account_service_class )
- VALUES ( %d, '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s' )",
+ account_created, account_flags, account_roles, account_level, account_expires, account_service_class )
+ VALUES ( %d, '%s', '%s', '%s', '%s', '%s', %d, %d, %d, '%s', '%s' )",
intval($parent),
dbesc($salt),
dbesc($password_encoded),
dbesc($email),
dbesc(get_best_language()),
dbesc(datetime_convert()),
- dbesc($flags),
- dbesc($roles),
+ intval($flags),
+ intval($roles),
+ intval($techlevel),
dbesc($expires),
dbesc($default_service_class)
);
@@ -751,3 +760,23 @@ function upgrade_bool_message($bbcode = false) {
$x = upgrade_link($bbcode);
return t('This action is not available under your subscription plan.') . (($x) ? ' ' . $x : '') ;
}
+
+
+function get_account_techlevel($account_id = 0) {
+
+ $role = \Zotlabs\Lib\System::get_server_role();
+ if($role == 'basic')
+ return 0;
+ if($role == 'standard')
+ return 5;
+
+ if(! $account_id) {
+ $x = \App::get_account();
+ }
+ else {
+ $x = get_account_by_id($account_id);
+ }
+
+ return (($x) ? intval($x['account_level']) : 0);
+
+} \ No newline at end of file
diff --git a/include/acl_selectors.php b/include/acl_selectors.php
index 9bee942e2..362776b44 100644
--- a/include/acl_selectors.php
+++ b/include/acl_selectors.php
@@ -148,11 +148,6 @@ function populate_acl($defaults = null,$show_jotnets = true, $emptyACL_descripti
array_walk($deny_cid,'fixacl');
array_walk($deny_gid,'fixacl');
}
-
- $jotnets = '';
- if($show_jotnets) {
- call_hooks('jot_networks', $jotnets);
- }
$r = q("SELECT id, hash, gname FROM groups WHERE deleted = 0 AND uid = %d ORDER BY gname ASC",
intval(local_channel())
@@ -181,8 +176,6 @@ function populate_acl($defaults = null,$show_jotnets = true, $emptyACL_descripti
'$allowgid' => json_encode($allow_gid),
'$denycid' => json_encode($deny_cid),
'$denygid' => json_encode($deny_gid),
- '$jnetModalTitle' => t('Other networks and post services'),
- '$jotnets' => $jotnets,
'$aclModalTitle' => t('Permissions'),
'$aclModalDesc' => $dialog_description,
'$aclModalDismiss' => t('Close'),
diff --git a/include/attach.php b/include/attach.php
index 172840b96..237b06217 100644
--- a/include/attach.php
+++ b/include/attach.php
@@ -1994,3 +1994,222 @@ function get_filename_by_cloudname($cloudname, $channel, $storepath) {
}
return null;
}
+
+
+// recursively copy a directory into cloud files
+function copy_folder_to_cloudfiles($channel, $observer_hash, $srcpath, $cloudpath)
+{
+ if (!is_dir($srcpath) || !is_readable($srcpath)) {
+ logger('Error reading source path: ' . $srcpath, LOGGER_NORMAL);
+ return false;
+ }
+ $nodes = array_diff(scandir($srcpath), array('.', '..'));
+ foreach ($nodes as $node) {
+ $clouddir = $cloudpath . '/' . $node; // Sub-folder in cloud files destination
+ $nodepath = $srcpath . '/' . $node; // Sub-folder in source path
+ if(is_dir($nodepath)) {
+ $x = attach_mkdirp($channel, $observer_hash, array('pathname' => $clouddir));
+ if(!$x['success']) {
+ logger('Error creating cloud path: ' . $clouddir, LOGGER_NORMAL);
+ return false;
+ }
+ // Recursively call this function where the source and destination are the subfolders
+ $success = copy_folder_to_cloudfiles($channel, $observer_hash, $nodepath, $clouddir);
+ if(!$success) {
+ logger('Error copying contents of folder: ' . $nodepath, LOGGER_NORMAL);
+ return false;
+ }
+ } elseif (is_file($nodepath) && is_readable($nodepath)) {
+ $x = attach_store($channel, $observer_hash, 'import',
+ array(
+ 'directory' => $cloudpath,
+ 'src' => $nodepath,
+ 'filename' => $node,
+ 'filesize' => @filesize($nodepath),
+ 'preserve_original' => true)
+ );
+ if(!$x['success']) {
+ logger('Error copying file: ' . $nodepath , LOGGER_NORMAL);
+ logger('Return value: ' . json_encode($x), LOGGER_NORMAL);
+ return false;
+ }
+ } else {
+ logger('Error scanning source path', LOGGER_NORMAL);
+ return false;
+ }
+ }
+
+ return true;
+}
+/**
+ * attach_move()
+ * This function performs an in place directory-to-directory move of a stored attachment or photo.
+ * The data is physically moved in the store/nickname storage location and the paths adjusted
+ * in the attach structure (and if applicable the photo table). The new 'album name' is recorded
+ * for photos and will show up immediately there.
+ * This takes a channel_id, attach.hash of the file to move (this is the same as a photo resource_id), and
+ * the attach.hash of the new parent folder, which must already exist. If $new_folder_hash is blank or empty,
+ * the file is relocated to the root of the channel's storage area.
+ *
+ * @fixme: this operation is currently not synced to clones !!
+ */
+
+function attach_move($channel_id,$resource_id,$new_folder_hash) {
+
+ $c = channelx_by_n($channel_id);
+ if(! $c)
+ return false;
+
+ $r = q("select * from attach where hash = '%s' and uid = %d limit 1",
+ dbesc($resource_id),
+ intval($channel_id)
+ );
+ if(! $r)
+ return false;
+
+ $oldstorepath = $r[0]['content'];
+
+ if($new_folder_hash) {
+ $n = q("select * from attach where hash = '%s' and uid = %d limit 1",
+ dbesc($new_folder_hash),
+ intval($channel_id)
+ );
+ if(! $n)
+ return;
+ $newdirname = $n[0]['filename'];
+ $newstorepath = $n[0]['content'] . '/' . $resource_id;
+ }
+ else {
+ $newstorepath = 'store/' . $c['channel_address'] . '/' . $resource_id;
+ }
+
+ rename($oldstorepath,$newstorepath);
+
+ // duplicate detection. If 'overwrite' is specified, return false because we can't yet do that.
+
+ $filename = $r[0]['filename'];
+
+ $s = q("select filename, id, hash, filesize from attach where filename = '%s' and folder = '%s' ",
+ dbesc($filename),
+ dbesc($new_folder_hash)
+ );
+
+ if($s) {
+ $overwrite = get_pconfig($channel_id,'system','overwrite_dup_files');
+ if($overwrite) {
+ // @fixme
+ return;
+ }
+ else {
+ if(strpos($filename,'.') !== false) {
+ $basename = substr($filename,0,strrpos($filename,'.'));
+ $ext = substr($filename,strrpos($filename,'.'));
+ }
+ else {
+ $basename = $filename;
+ $ext = '';
+ }
+
+ $v = q("select filename from attach where ( filename = '%s' OR filename like '%s' ) and folder = '%s' ",
+ dbesc($basename . $ext),
+ dbesc($basename . '(%)' . $ext),
+ dbesc($new_folder_hash)
+ );
+
+ if($v) {
+ $x = 1;
+
+ do {
+ $found = false;
+ foreach($v as $vv) {
+ if($vv['filename'] === $basename . '(' . $x . ')' . $ext) {
+ $found = true;
+ break;
+ }
+ }
+ if($found)
+ $x++;
+ }
+ while($found);
+ $filename = $basename . '(' . $x . ')' . $ext;
+ }
+ else
+ $filename = $basename . $ext;
+ }
+ }
+
+ $t = q("update attach set content = '%s', folder = '%s', filename = '%s' where id = %d",
+ dbesc($newstorepath),
+ dbesc($new_folder_hash),
+ dbesc($filename),
+ intval($r[0]['id'])
+ );
+
+ if($r[0]['is_photo']) {
+ $t = q("update photo set album = '%s', filename = '%s' where resource_id = '%s' and uid = %d",
+ dbesc($newdirname),
+ dbesc($filename),
+ dbesc($resource_id),
+ intval($channel_id)
+ );
+
+ $t = q("update photo set content = '%s' where resource_id = '%s' and uid = %d and imgscale = 0",
+ dbesc($newstorepath),
+ dbesc($resource_id),
+ intval($channel_id)
+ );
+ }
+
+ return true;
+
+}
+
+
+function attach_folder_select_list($channel_id) {
+
+ $r = q("select * from attach where is_dir = 1 and uid = %d",
+ intval($channel_id)
+ );
+
+ $out = [];
+ $out[''] = '/';
+
+ if($r) {
+ foreach($r as $rv) {
+ $x = attach_folder_rpaths($r,$rv);
+ if($x)
+ $out[$x[0]] = $x[1];
+ }
+ }
+ return $out;
+}
+
+function attach_folder_rpaths($all_folders,$that_folder) {
+
+ $path = '/' . $that_folder['filename'];
+ $current_hash = $that_folder['hash'];
+ $parent_hash = $that_folder['folder'];
+ $error = false;
+ $found = false;
+
+ if($parent_hash) {
+ do {
+ foreach($all_folders as $selected) {
+ if(! $selected['is_dir'])
+ continue;
+ if($selected['hash'] == $parent_hash) {
+ $path = '/' . $selected['filename'] . $path;
+ $current_hash = $selected['hash'];
+ $parent_hash = $selected['folder'];
+ $found = true;
+ break;
+ }
+ }
+ if(! $found)
+ $error = true;
+ }
+ while((! $found) && (! $error) && ($parent_hash != ''));
+ }
+ return (($error) ? false : [ $current_hash , $path ]);
+
+} \ No newline at end of file
diff --git a/include/bbcode.php b/include/bbcode.php
index db3a1011b..70c75e5c4 100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -666,8 +666,7 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false)
$Text = preg_replace("/\[zrl\=([$URLSearchString]*)\](.*?)\[\/zrl\]/ism", '<a class="zrl" href="$1" target="_blank" >$2</a>', $Text);
}
- // Remove bookmarks from UNO
- if (get_config('system','server_role') === 'basic')
+ if (get_account_techlevel() < 2)
$Text = str_replace('<span class="bookmark-identifier">#^</span>', '', $Text);
// Perform MAIL Search
@@ -769,11 +768,14 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false)
}
// Check for list text
$Text = str_replace("[*]", "<li>", $Text);
+ $Text = str_replace("[]", "<li><input type=\"checkbox\" disabled=\"disabled\">", $Text);
+ $Text = str_replace("[x]", "<li><input type=\"checkbox\" checked=\"checked\" disabled=\"disabled\">", $Text);
// handle nested lists
$endlessloop = 0;
while ((((strpos($Text, "[/list]") !== false) && (strpos($Text, "[list") !== false)) ||
+ ((strpos($Text, "[/checklist]") !== false) && (strpos($Text, "[checklist]") !== false)) ||
((strpos($Text, "[/ol]") !== false) && (strpos($Text, "[ol]") !== false)) ||
((strpos($Text, "[/ul]") !== false) && (strpos($Text, "[ul]") !== false)) ||
((strpos($Text, "[/dl]") !== false) && (strpos($Text, "[dl") !== false)) ||
@@ -785,6 +787,7 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false)
$Text = preg_replace("/\[list=((?-i)I)\](.*?)\[\/list\]/ism", '<ul class="listupperroman" style="list-style-type: upper-roman;">$2</ul>', $Text);
$Text = preg_replace("/\[list=((?-i)a)\](.*?)\[\/list\]/ism", '<ul class="listloweralpha" style="list-style-type: lower-alpha;">$2</ul>', $Text);
$Text = preg_replace("/\[list=((?-i)A)\](.*?)\[\/list\]/ism", '<ul class="listupperalpha" style="list-style-type: upper-alpha;">$2</ul>', $Text);
+ $Text = preg_replace("/\[checklist\](.*?)\[\/checklist\]/ism", '<ul class="checklist" style="list-style-type: none;">$1</ul>', $Text);
$Text = preg_replace("/\[ul\](.*?)\[\/ul\]/ism", '<ul class="listbullet" style="list-style-type: circle;">$1</ul>', $Text);
$Text = preg_replace("/\[ol\](.*?)\[\/ol\]/ism", '<ul class="listdecimal" style="list-style-type: decimal;">$1</ul>', $Text);
$Text = preg_replace("/\[li\](.*?)\[\/li\]/ism", '<li>$1</li>', $Text);
diff --git a/include/channel.php b/include/channel.php
index 1179697a4..5beb4a53c 100644
--- a/include/channel.php
+++ b/include/channel.php
@@ -297,7 +297,7 @@ function create_identity($arr) {
dbesc($guid),
dbesc($sig),
dbesc($hash),
- dbesc($ret['channel']['channel_address'] . '@' . App::get_hostname()),
+ dbesc(channel_reddress($ret['channel'])),
intval($primary),
dbesc(z_root()),
dbesc(base64url_encode(rsa_sign(z_root(),$ret['channel']['channel_prvkey']))),
@@ -319,7 +319,7 @@ function create_identity($arr) {
dbesc(z_root() . "/photo/profile/l/{$newuid}"),
dbesc(z_root() . "/photo/profile/m/{$newuid}"),
dbesc(z_root() . "/photo/profile/s/{$newuid}"),
- dbesc($ret['channel']['channel_address'] . '@' . App::get_hostname()),
+ dbesc(channel_reddress($ret['channel'])),
dbesc(z_root() . '/channel/' . $ret['channel']['channel_address']),
dbesc(z_root() . '/follow?f=&url=%s'),
dbesc(z_root() . '/poco/' . $ret['channel']['channel_address']),
@@ -918,7 +918,7 @@ function profile_load($nickname, $profile = '') {
App::$profile = $p[0];
App::$profile_uid = $p[0]['profile_uid'];
- App::$page['title'] = App::$profile['channel_name'] . " - " . App::$profile['channel_address'] . "@" . App::get_hostname();
+ App::$page['title'] = App::$profile['channel_name'] . " - " . channel_reddress(App::$profile);
App::$profile['permission_to_view'] = $can_view_profile;
@@ -1033,7 +1033,7 @@ function profile_sidebar($profile, $block = 0, $show_connect = true, $zcard = fa
$connect_url = rconnect_url($profile['uid'],get_observer_hash());
$connect = (($connect_url) ? t('Connect') : '');
if($connect_url)
- $connect_url = sprintf($connect_url,urlencode($profile['channel_address'] . '@' . App::get_hostname()));
+ $connect_url = sprintf($connect_url,urlencode(channel_reddress($profile)));
// premium channel - over-ride
@@ -1103,8 +1103,8 @@ function profile_sidebar($profile, $block = 0, $show_connect = true, $zcard = fa
require_once('include/widgets.php');
- if(! feature_enabled($profile['uid'],'hide_rating'))
- $z = widget_rating(array('target' => $profile['channel_hash']));
+// if(! feature_enabled($profile['uid'],'hide_rating'))
+ $z = widget_rating(array('target' => $profile['channel_hash']));
$o .= replace_macros($tpl, array(
'$zcard' => $zcard,
@@ -1381,6 +1381,11 @@ function zid($s,$address = '') {
if (! strlen($s) || strpos($s,'zid='))
return $s;
+ $m = parse_url($s);
+ $fragment = ((array_key_exists('fragment',$m) && $m['fragment']) ? $m['fragment'] : false);
+ if($fragment !== false)
+ $s = str_replace('#' . $fragment,'',$s);
+
$has_params = ((strpos($s,'?')) ? true : false);
$num_slashes = substr_count($s, '/');
if (! $has_params)
@@ -1401,6 +1406,11 @@ function zid($s,$address = '') {
else
$zurl = $s;
+ // put fragment at the end
+
+ if($fragment)
+ $zurl .= '#' . $fragment;
+
$arr = array('url' => $s, 'zid' => urlencode($myaddr), 'result' => $zurl);
call_hooks('zid', $arr);
@@ -1627,13 +1637,24 @@ function notifications_on($channel_id,$value) {
function get_channel_default_perms($uid) {
+
+ $ret = [];
+
$r = q("select abook_xchan from abook where abook_channel = %d and abook_self = 1 limit 1",
intval($uid)
);
- if($r)
- return load_abconfig($uid,$r[0]['abook_xchan'],'my_perms');
+ if($r) {
+ $x = load_abconfig($uid,$r[0]['abook_xchan'],'my_perms');
+ if($x) {
+ foreach($x as $xv) {
+ if(intval($xv['v'])) {
+ $ret[] = $xv['k'];
+ }
+ }
+ }
+ }
- return array();
+ return $ret;
}
@@ -1758,7 +1779,7 @@ function get_zcard($channel,$observer_hash = '',$args = array()) {
// $translate = intval(($scale / 1.0) * 100);
- $channel['channel_addr'] = $channel['channel_address'] . '@' . App::get_hostname();
+ $channel['channel_addr'] = channel_reddress($channel);
$zcard = array('chan' => $channel);
$r = q("select height, width, resource_id, imgscale, mimetype from photo where uid = %d and imgscale = %d and photo_usage = %d",
@@ -1820,7 +1841,7 @@ function get_zcard_embed($channel,$observer_hash = '',$args = array()) {
$pphoto = array('mimetype' => $channel['xchan_photo_mimetype'], 'width' => 300 , 'height' => 300, 'href' => $channel['xchan_photo_l']);
}
- $channel['channel_addr'] = $channel['channel_address'] . '@' . App::get_hostname();
+ $channel['channel_addr'] = channel_reddress($channel);
$zcard = array('chan' => $channel);
$r = q("select height, width, resource_id, imgscale, mimetype from photo where uid = %d and imgscale = %d and photo_usage = %d",
@@ -1873,3 +1894,8 @@ function channelx_by_n($id) {
return(($r) ? $r[0] : false);
}
+function channel_reddress($channel) {
+ if(! ($channel && array_key_exists('channel_address',$channel)))
+ return '';
+ return strtolower($channel['channel_address'] . '@' . App::get_hostname());
+} \ No newline at end of file
diff --git a/include/connections.php b/include/connections.php
index 4f685388c..017117dda 100644
--- a/include/connections.php
+++ b/include/connections.php
@@ -608,7 +608,7 @@ function random_profile() {
for($i = 0; $i < $retryrandom; $i++) {
- $r = q("select xchan_url from xchan left join hubloc on hubloc_hash = xchan_hash where xchan_addr not like '%s' and hubloc_connected > %s - interval %s order by $randfunc limit 1",
+ $r = q("select xchan_url from xchan left join hubloc on hubloc_hash = xchan_hash where xchan_addr not like '%s' and xchan_hidden = 0 and hubloc_connected > %s - interval %s order by $randfunc limit 1",
dbesc('sys@%'),
db_utcnow(), db_quoteinterval('30 day')
);
diff --git a/include/contact_widgets.php b/include/contact_widgets.php
index 85c46b0d1..8f76bb4bc 100644
--- a/include/contact_widgets.php
+++ b/include/contact_widgets.php
@@ -13,7 +13,7 @@ function findpeople_widget() {
}
}
- $advanced_search = ((local_channel() && get_pconfig(local_channel(),'feature','expert')) ? t('Advanced') : false);
+ $advanced_search = ((local_channel() && feature_enabled(local_channel(),'advanced_dirsearch')) ? t('Advanced') : false);
return replace_macros(get_markup_template('peoplefind.tpl'),array(
'$findpeople' => t('Find Channels'),
diff --git a/include/conversation.php b/include/conversation.php
index 7d1473fe2..e515fb26a 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -941,12 +941,9 @@ function item_photo_menu($item){
$clean_url = normalise_link($item['author-link']);
}
- $poco_rating = get_config('system','poco_rating_enable');
- // if unset default to enabled
- if($poco_rating === false)
- $poco_rating = true;
+ $rating_enabled = get_config('system','rating_enabled');
- $ratings_url = (($poco_rating) ? z_root() . '/ratings/' . urlencode($item['author_xchan']) : '');
+ $ratings_url = (($rating_enabled) ? z_root() . '/ratings/' . urlencode($item['author_xchan']) : '');
$post_menu = Array(
t("View Source") => $vsrc_link,
@@ -1200,8 +1197,6 @@ function status_editor($a, $x, $popup = false) {
$tpl = get_markup_template('jot.tpl');
- $jotplugins = '';
-
$preview = t('Preview');
if(x($x, 'hide_preview'))
$preview = '';
@@ -1218,8 +1213,18 @@ function status_editor($a, $x, $popup = false) {
if(! $cipher)
$cipher = 'aes256';
+ // avoid illegal offset errors
+ if(! array_key_exists('permissions',$x))
+ $x['permissions'] = [ 'allow_cid' => '', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '' ];
+
+ $jotplugins = '';
call_hooks('jot_tool', $jotplugins);
+ $jotnets = '';
+ if(x($x,'jotnets')) {
+ call_hooks('jot_networks', $jotnets);
+ }
+
$o .= replace_macros($tpl, array(
'$return_path' => ((x($x, 'return_path')) ? $x['return_path'] : App::$query_string),
'$action' => z_root() . '/item',
@@ -1276,6 +1281,8 @@ function status_editor($a, $x, $popup = false) {
'$preview' => $preview,
'$source' => ((x($x, 'source')) ? $x['source'] : ''),
'$jotplugins' => $jotplugins,
+ '$jotnets' => $jotnets,
+ '$jotnets_label' => t('Other networks and post services'),
'$defexpire' => $defexpire,
'$feature_expire' => $feature_expire,
'$expires' => t('Set expiration date'),
@@ -1618,6 +1625,8 @@ function profile_tabs($a, $is_owner = false, $nickname = null){
$uid = ((App::$profile['profile_uid']) ? App::$profile['profile_uid'] : local_channel());
+ $account_id = ((App::$profile['profile_uid']) ? App::$profile['channel_account_id'] : App::$channel['channel_account_id']);
+
if($uid == local_channel()) {
$cal_link = '';
@@ -1720,7 +1729,7 @@ function profile_tabs($a, $is_owner = false, $nickname = null){
);
}
- if(feature_enabled($uid,'wiki') && (get_config('system','server_role') !== 'basic')) {
+ if(feature_enabled($uid,'wiki') && (get_account_techlevel($account_id) > 3)) {
$tabs[] = array(
'label' => t('Wiki'),
'url' => z_root() . '/wiki/' . $nickname,
diff --git a/include/dba/dba_driver.php b/include/dba/dba_driver.php
index f6091f6e1..7225a9be2 100755
--- a/include/dba/dba_driver.php
+++ b/include/dba/dba_driver.php
@@ -62,6 +62,8 @@ class DBA {
if(is_object(self::$dba) && self::$dba->connected) {
+ if($server === 'localhost')
+ $port = $set_port;
$dns = ((self::$dbtype == DBTYPE_POSTGRES) ? 'postgres' : 'mysql')
. ':host=' . $server . (is_null($port) ? '' : ';port=' . $port)
. ';dbname=' . $db;
diff --git a/include/dir_fns.php b/include/dir_fns.php
index 9f1be1a42..53a81b242 100644
--- a/include/dir_fns.php
+++ b/include/dir_fns.php
@@ -423,7 +423,7 @@ function local_dir_update($uid, $force) {
$arr = array('channel_id' => $uid, 'hash' => $hash, 'profile' => $profile);
call_hooks('local_dir_update', $arr);
- $address = $p[0]['channel_address'] . '@' . App::get_hostname();
+ $address = channel_reddress($p[0]);
if (perm_is_allowed($uid, '', 'view_profile')) {
import_directory_profile($hash, $arr['profile'], $address, 0);
@@ -439,5 +439,5 @@ function local_dir_update($uid, $force) {
}
$ud_hash = random_string() . '@' . App::get_hostname();
- update_modtime($hash, $ud_hash, $p[0]['channel_address'] . '@' . App::get_hostname(),(($force) ? UPDATE_FLAGS_FORCED : UPDATE_FLAGS_UPDATED));
+ update_modtime($hash, $ud_hash, channel_reddress($p[0]),(($force) ? UPDATE_FLAGS_FORCED : UPDATE_FLAGS_UPDATED));
}
diff --git a/include/event.php b/include/event.php
index 407736a23..153654120 100644
--- a/include/event.php
+++ b/include/event.php
@@ -378,6 +378,7 @@ function event_store_event($arr) {
`event_repeat` = '%s',
`event_sequence` = %d,
`event_priority` = %d,
+ `event_vdata` = '%s',
`allow_cid` = '%s',
`allow_gid` = '%s',
`deny_cid` = '%s',
@@ -399,6 +400,7 @@ function event_store_event($arr) {
dbesc($arr['event_repeat']),
intval($arr['event_sequence']),
intval($arr['event_priority']),
+ dbesc($arr['event_vdata']),
dbesc($arr['allow_cid']),
dbesc($arr['allow_gid']),
dbesc($arr['deny_cid']),
@@ -419,8 +421,8 @@ function event_store_event($arr) {
$hash = random_string() . '@' . App::get_hostname();
$r = q("INSERT INTO event ( uid,aid,event_xchan,event_hash,created,edited,dtstart,dtend,summary,description,location,etype,
- adjust,nofinish, event_status, event_status_date, event_percent, event_repeat, event_sequence, event_priority, allow_cid,allow_gid,deny_cid,deny_gid)
- VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', %d, '%s', %d, %d, '%s', '%s', '%s', '%s' ) ",
+ adjust,nofinish, event_status, event_status_date, event_percent, event_repeat, event_sequence, event_priority, event_vdata, allow_cid,allow_gid,deny_cid,deny_gid)
+ VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', %d, '%s', %d, %d, '%s', '%s', '%s', '%s', '%s' ) ",
intval($arr['uid']),
intval($arr['account']),
dbesc($arr['event_xchan']),
@@ -441,6 +443,7 @@ function event_store_event($arr) {
dbesc($arr['event_repeat']),
intval($arr['event_sequence']),
intval($arr['event_priority']),
+ dbesc($arr['event_vdata']),
dbesc($arr['allow_cid']),
dbesc($arr['allow_gid']),
dbesc($arr['deny_cid']),
diff --git a/include/features.php b/include/features.php
index 356de35a2..1ccdbf015 100644
--- a/include/features.php
+++ b/include/features.php
@@ -36,97 +36,419 @@ function get_feature_default($feature) {
}
+function feature_level($feature,$def) {
+ $x = get_config('feature_level',$feature);
+ if($x !== false)
+ return intval($x);
+ return $def;
+}
+
function get_features($filtered = true) {
- $server_role = get_config('system','server_role');
+ $server_role = \Zotlabs\Lib\System::get_server_role();
if($server_role === 'basic' && $filtered)
return array();
- $arr = array(
+ $arr = [
// General
- 'general' => array(
+ 'general' => [
+
t('General Features'),
- // This is per post, and different from fixed expiration 'expire' which isn't working yet
- array('content_expire', t('Content Expiration'), t('Remove posts/comments and/or private messages at a future time'), false, get_config('feature_lock','content_expire')),
- array('multi_profiles', t('Multiple Profiles'), t('Ability to create multiple profiles'), false, get_config('feature_lock','multi_profiles')),
- array('advanced_profiles', t('Advanced Profiles'), t('Additional profile sections and selections'),false,get_config('feature_lock','advanced_profiles')),
- array('profile_export', t('Profile Import/Export'), t('Save and load profile details across sites/channels'),false,get_config('feature_lock','profile_export')),
- array('webpages', t('Web Pages'), t('Provide managed web pages on your channel'),false,get_config('feature_lock','webpages')),
- array('wiki', t('Wiki'), t('Provide a wiki for your channel'),(($server_role === 'basic') ? false : true),get_config('feature_lock','wiki')),
- array('hide_rating', t('Hide Rating'), t('Hide the rating buttons on your channel and profile pages. Note: People can still rate you somewhere else.'),false,get_config('feature_lock','hide_rating')),
- array('private_notes', t('Private Notes'), t('Enables a tool to store notes and reminders (note: not encrypted)'),false,get_config('feature_lock','private_notes')),
- array('nav_channel_select', t('Navigation Channel Select'), t('Change channels directly from within the navigation dropdown menu'),false,get_config('feature_lock','nav_channel_select')),
- array('photo_location', t('Photo Location'), t('If location data is available on uploaded photos, link this to a map.'),false,get_config('feature_lock','photo_location')),
- array('ajaxchat', t('Access Controlled Chatrooms'), t('Provide chatrooms and chat services with access control.'),true,get_config('feature_lock','ajaxchat')),
- array('smart_birthdays', t('Smart Birthdays'), t('Make birthday events timezone aware in case your friends are scattered across the planet.'),true,get_config('feature_lock','smart_birthdays')),
- array('expert', t('Expert Mode'), t('Enable Expert Mode to provide advanced configuration options'),false,get_config('feature_lock','expert')),
- array('premium_channel', t('Premium Channel'), t('Allows you to set restrictions and terms on those that connect with your channel'),false,get_config('feature_lock','premium_channel')),
- ),
+
+
+ [
+ 'multi_profiles',
+ t('Multiple Profiles'),
+ t('Ability to create multiple profiles'),
+ false,
+ get_config('feature_lock','multi_profiles'),
+ feature_level('multi_profiles',3),
+ ],
+
+ [
+ 'advanced_profiles',
+ t('Advanced Profiles'),
+ t('Additional profile sections and selections'),
+ false,
+ get_config('feature_lock','advanced_profiles'),
+ feature_level('advanced_profiles',1),
+ ],
+
+ [
+ 'profile_export',
+ t('Profile Import/Export'),
+ t('Save and load profile details across sites/channels'),
+ false,
+ get_config('feature_lock','profile_export'),
+ feature_level('profile_export',3),
+ ],
+
+ [
+ 'webpages',
+ t('Web Pages'),
+ t('Provide managed web pages on your channel'),
+ false,
+ get_config('feature_lock','webpages'),
+ feature_level('webpages',3),
+ ],
+
+ [
+ 'wiki',
+ t('Wiki'),
+ t('Provide a wiki for your channel'),
+ false,
+ get_config('feature_lock','wiki'),
+ feature_level('wiki',2),
+ ],
+/*
+ [
+ 'hide_rating',
+ t('Hide Rating'),
+ t('Hide the rating buttons on your channel and profile pages. Note: People can still rate you somewhere else.'),
+ false,
+ get_config('feature_lock','hide_rating'),
+ feature_level('hide_rating',3),
+ ],
+*/
+ [
+ 'private_notes',
+ t('Private Notes'),
+ t('Enables a tool to store notes and reminders (note: not encrypted)'),
+ false,
+ get_config('feature_lock','private_notes'),
+ feature_level('private_notes',1),
+ ],
+
+ [
+ 'nav_channel_select',
+ t('Navigation Channel Select'),
+ t('Change channels directly from within the navigation dropdown menu'),
+ false,
+ get_config('feature_lock','nav_channel_select'),
+ feature_level('nav_channel_select',3),
+ ],
+
+ [
+ 'photo_location',
+ t('Photo Location'),
+ t('If location data is available on uploaded photos, link this to a map.'),
+ false,
+ get_config('feature_lock','photo_location'),
+ feature_level('photo_location',2),
+ ],
+
+ [
+ 'ajaxchat',
+ t('Access Controlled Chatrooms'),
+ t('Provide chatrooms and chat services with access control.'),
+ true,
+ get_config('feature_lock','ajaxchat'),
+ feature_level('ajaxchat',1),
+ ],
+
+ [
+ 'smart_birthdays',
+ t('Smart Birthdays'),
+ t('Make birthday events timezone aware in case your friends are scattered across the planet.'),
+ true,
+ get_config('feature_lock','smart_birthdays'),
+ feature_level('smart_birthdays',2),
+ ],
+
+ [
+ 'advanced_dirsearch',
+ t('Advanced Directory Search'),
+ t('Allows creation of complex directory search queries'),
+ false,
+ get_config('feature_lock','advanced_dirsearch'),
+ feature_level('advanced_dirsearch',4),
+ ],
+
+ [
+ 'advanced_theming',
+ t('Advanced Theme and Layout Settings'),
+ t('Allows fine tuning of themes and page layouts'),
+ false,
+ get_config('feature_lock','advanced_theming'),
+ feature_level('advanced_theming',4),
+ ],
+ ],
// Post composition
- 'composition' => array(
+ 'composition' => [
+
t('Post Composition Features'),
-// array('richtext', t('Richtext Editor'), t('Enable richtext editor'),falseget_config('feature_lock','richtext')),
-// array('markdown', t('Use Markdown'), t('Allow use of "Markdown" to format posts'),false,get_config('feature_lock','markdown')),
- array('large_photos', t('Large Photos'), t('Include large (1024px) photo thumbnails in posts. If not enabled, use small (640px) photo thumbnails'),false,get_config('feature_lock','large_photos')),
- array('channel_sources', t('Channel Sources'), t('Automatically import channel content from other channels or feeds'),false,get_config('feature_lock','channel_sources')),
- array('content_encrypt', t('Even More Encryption'), t('Allow optional encryption of content end-to-end with a shared secret key'),false,get_config('feature_lock','content_encrypt')),
- array('consensus_tools', t('Enable Voting Tools'), t('Provide a class of post which others can vote on'),false,get_config('feature_lock','consensus_tools')),
- array('disable_comments', t('Disable Comments'), t('Provide the option to disable comments for a post'),false,get_config('feature_lock','disable_comments')),
- array('delayed_posting', t('Delayed Posting'), t('Allow posts to be published at a later date'),false,get_config('feature_lock','delayed_posting')),
- array('suppress_duplicates', t('Suppress Duplicate Posts/Comments'), t('Prevent posts with identical content to be published with less than two minutes in between submissions.'),true,get_config('feature_lock','suppress_duplicates')),
-
- ),
+
+ [
+ 'large_photos',
+ t('Large Photos'),
+ t('Include large (1024px) photo thumbnails in posts. If not enabled, use small (640px) photo thumbnails'),
+ false,
+ get_config('feature_lock','large_photos'),
+ feature_level('large_photos',1),
+ ],
+
+ [
+ 'channel_sources',
+ t('Channel Sources'),
+ t('Automatically import channel content from other channels or feeds'),
+ false,
+ get_config('feature_lock','channel_sources'),
+ feature_level('channel_sources',3),
+ ],
+
+ [
+ 'content_encrypt',
+ t('Even More Encryption'),
+ t('Allow optional encryption of content end-to-end with a shared secret key'),
+ false,
+ get_config('feature_lock','content_encrypt'),
+ feature_level('content_encrypt',3),
+ ],
+
+ [
+ 'consensus_tools',
+ t('Enable Voting Tools'),
+ t('Provide a class of post which others can vote on'),
+ false,
+ get_config('feature_lock','consensus_tools'),
+ feature_level('consensus_tools',3),
+ ],
+
+ [
+ 'disable_comments',
+ t('Disable Comments'),
+ t('Provide the option to disable comments for a post'),
+ false,
+ get_config('feature_lock','disable_comments'),
+ feature_level('disable_comments',2),
+ ],
+
+ [
+ 'delayed_posting',
+ t('Delayed Posting'),
+ t('Allow posts to be published at a later date'),
+ false,
+ get_config('feature_lock','delayed_posting'),
+ feature_level('delayed_posting',2),
+ ],
+
+ [
+ 'content_expire',
+ t('Content Expiration'),
+ t('Remove posts/comments and/or private messages at a future time'),
+ false,
+ get_config('feature_lock','content_expire'),
+ feature_level('content_expire',1),
+ ],
+
+ [
+ 'suppress_duplicates',
+ t('Suppress Duplicate Posts/Comments'),
+ t('Prevent posts with identical content to be published with less than two minutes in between submissions.'),
+ true,
+ get_config('feature_lock','suppress_duplicates'),
+ feature_level('suppress_duplicates',1),
+ ],
+
+ ],
// Network Tools
- 'net_module' => array(
+ 'net_module' => [
+
t('Network and Stream Filtering'),
- array('archives', t('Search by Date'), t('Ability to select posts by date ranges'),false,get_config('feature_lock','archives')),
- array('groups', t('Privacy Groups'), t('Enable management and selection of privacy groups'),true,get_config('feature_lock','groups')),
- array('savedsearch', t('Saved Searches'), t('Save search terms for re-use'),false,get_config('feature_lock','savedsearch')),
- array('personal_tab', t('Network Personal Tab'), t('Enable tab to display only Network posts that you\'ve interacted on'),false,get_config('feature_lock','personal_tab')),
- array('new_tab', t('Network New Tab'), t('Enable tab to display all new Network activity'),false,get_config('feature_lock','new_tab')),
- array('affinity', t('Affinity Tool'), t('Filter stream activity by depth of relationships'),false,get_config('feature_lock','affinity')),
- array('connfilter', t('Connection Filtering'), t('Filter incoming posts from connections based on keywords/content'),false,get_config('feature_lock','connfilter')),
- array('suggest', t('Suggest Channels'), t('Show channel suggestions'),false,get_config('feature_lock','suggest')),
- ),
+
+ [
+ 'archives',
+ t('Search by Date'),
+ t('Ability to select posts by date ranges'),
+ false,
+ get_config('feature_lock','archives'),
+ feature_level('archives',1),
+ ],
+
+ [
+ 'groups',
+ t('Privacy Groups'),
+ t('Enable management and selection of privacy groups'),
+ true,
+ get_config('feature_lock','groups'),
+ feature_level('groups',0),
+ ],
+
+ [
+ 'savedsearch',
+ t('Saved Searches'),
+ t('Save search terms for re-use'),
+ false,
+ get_config('feature_lock','savedsearch'),
+ feature_level('savedsearch',2),
+ ],
+
+ [
+ 'personal_tab',
+ t('Network Personal Tab'),
+ t('Enable tab to display only Network posts that you\'ve interacted on'),
+ false,
+ get_config('feature_lock','personal_tab'),
+ feature_level('personal_tab',1),
+ ],
+
+ [
+ 'new_tab',
+ t('Network New Tab'),
+ t('Enable tab to display all new Network activity'),
+ false,
+ get_config('feature_lock','new_tab'),
+ feature_level('new_tab',2),
+ ],
+
+ [
+ 'affinity',
+ t('Affinity Tool'),
+ t('Filter stream activity by depth of relationships'),
+ false,
+ get_config('feature_lock','affinity'),
+ feature_level('affinity',1),
+ ],
+
+ [
+ 'suggest',
+ t('Suggest Channels'),
+ t('Show friend and connection suggestions'),
+ false,
+ get_config('feature_lock','suggest'),
+ feature_level('suggest',1),
+ ],
+
+ [
+ 'connfilter',
+ t('Connection Filtering'),
+ t('Filter incoming posts from connections based on keywords/content'),
+ false,
+ get_config('feature_lock','connfilter'),
+ feature_level('connfilter',3),
+ ],
+
+
+ ],
// Item tools
- 'tools' => array(
+ 'tools' => [
+
t('Post/Comment Tools'),
- array('commtag', t('Community Tagging'), t('Ability to tag existing posts'),false,get_config('feature_lock','commtag')),
- array('categories', t('Post Categories'), t('Add categories to your posts'),false,get_config('feature_lock','categories')),
- array('emojis', t('Emoji Reactions'), t('Add emoji reaction ability to posts'),true,get_config('feature_lock','emojis')),
- array('filing', t('Saved Folders'), t('Ability to file posts under folders'),false,get_config('feature_lock','filing')),
- array('dislike', t('Dislike Posts'), t('Ability to dislike posts/comments'),false,get_config('feature_lock','dislike')),
- array('star_posts', t('Star Posts'), t('Ability to mark special posts with a star indicator'),false,get_config('feature_lock','star_posts')),
- array('tagadelic', t('Tag Cloud'), t('Provide a personal tag cloud on your channel page'),false,get_config('feature_lock','tagedelic')),
- ),
- );
+
+ [
+ 'commtag',
+ t('Community Tagging'),
+ t('Ability to tag existing posts'),
+ false,
+ get_config('feature_lock','commtag'),
+ feature_level('commtag',1),
+ ],
+
+ [
+ 'categories',
+ t('Post Categories'),
+ t('Add categories to your posts'),
+ false,
+ get_config('feature_lock','categories'),
+ feature_level('categories',1),
+ ],
+
+ [
+ 'emojis',
+ t('Emoji Reactions'),
+ t('Add emoji reaction ability to posts'),
+ true,
+ get_config('feature_lock','emojis'),
+ feature_level('emojis',1),
+ ],
+
+ [
+ 'filing',
+ t('Saved Folders'),
+ t('Ability to file posts under folders'),
+ false,
+ get_config('feature_lock','filing'),
+ feature_level('filing',2),
+ ],
+
+ [
+ 'dislike',
+ t('Dislike Posts'),
+ t('Ability to dislike posts/comments'),
+ false,
+ get_config('feature_lock','dislike'),
+ feature_level('dislike',1),
+ ],
+
+ [
+ 'star_posts',
+ t('Star Posts'),
+ t('Ability to mark special posts with a star indicator'),
+ false,
+ get_config('feature_lock','star_posts'),
+ feature_level('star_posts',1),
+ ],
+
+ [
+ 'tagadelic',
+ t('Tag Cloud'),
+ t('Provide a personal tag cloud on your channel page'),
+ false,
+ get_config('feature_lock','tagadelic'),
+ feature_level('tagadelic',2),
+ ],
+ ],
+ ];
+
+
+ if($server_role === 'pro') {
+ $arr['general'][] = [
+ 'premium_channel',
+ t('Premium Channel'),
+ t('Allows you to set restrictions and terms on those that connect with your channel'),
+ false,
+ get_config('feature_lock','premium_channel'),
+ feature_level('premium_channel',4),
+ ];
+ }
+
+ $techlevel = get_account_techlevel();
// removed any locked features and remove the entire category if this makes it empty
if($filtered) {
+ $narr = [];
foreach($arr as $k => $x) {
+ $narr[$k] = [ $arr[$k][0] ];
$has_items = false;
- for($y = 0; $y < count($arr[$k]); $y ++) {
+ for($y = 0; $y < count($arr[$k]); $y ++) {
+ $disabled = false;
if(is_array($arr[$k][$y])) {
- if($arr[$k][$y][4] === false) {
- $has_items = true;
+ if($arr[$k][$y][5] > $techlevel) {
+ $disabled = true;
+ }
+ if($arr[$k][$y][4] !== false) {
+ $disabled = true;
}
- else {
- unset($arr[$k][$y]);
+ if(! $disabled) {
+ $has_items = true;
+ $narr[$k][$y] = $arr[$k][$y];
}
}
}
if(! $has_items) {
- unset($arr[$k]);
+ unset($narr[$k]);
}
}
}
-
- call_hooks('get_features',$arr);
- return $arr;
+ else {
+ $narr = $arr;
+ }
+ call_hooks('get_features',$narr);
+ return $narr;
}
diff --git a/include/help.php b/include/help.php
index 7f57f3334..5538fbc1e 100644
--- a/include/help.php
+++ b/include/help.php
@@ -1,5 +1,104 @@
<?php
+function get_help_content($tocpath = false) {
+
+ global $lang;
+
+ $doctype = 'markdown';
+
+ $text = '';
+
+ $path = (($tocpath !== false) ? $tocpath : '');
+
+ if($tocpath === false && argc() > 1) {
+ $path = '';
+ for($x = 1; $x < argc(); $x ++) {
+ if(strlen($path))
+ $path .= '/';
+ $path .= argv($x);
+ }
+ }
+
+ if($path) {
+ $title = basename($path);
+ if(! $tocpath)
+ \App::$page['title'] = t('Help:') . ' ' . ucwords(str_replace('-',' ',notags($title)));
+
+ $text = load_doc_file('doc/' . $path . '.md');
+
+ if(! $text) {
+ $text = load_doc_file('doc/' . $path . '.bb');
+ if($text)
+ $doctype = 'bbcode';
+ }
+ if(! $text) {
+ $text = load_doc_file('doc/' . $path . '.html');
+ if($text)
+ $doctype = 'html';
+ }
+ }
+
+ if($tocpath === false) {
+ if(! $text) {
+ $text = load_doc_file('doc/Site.md');
+ \App::$page['title'] = t('Help');
+ }
+ if(! $text) {
+ $doctype = 'bbcode';
+ $text = load_doc_file('doc/main.bb');
+ \App::$page['title'] = t('Help');
+ }
+
+ if(! $text) {
+ header($_SERVER["SERVER_PROTOCOL"] . ' 404 ' . t('Not Found'));
+ $tpl = get_markup_template("404.tpl");
+ return replace_macros($tpl, array(
+ '$message' => t('Page not found.' )
+ ));
+ }
+ }
+
+ if($doctype === 'html')
+ $content = $text;
+ if($doctype === 'markdown') {
+ require_once('library/markdown.php');
+ # escape #include tags
+ $text = preg_replace('/#include/ism', '%%include', $text);
+ $content = Markdown($text);
+ $content = preg_replace('/%%include/ism', '#include', $content);
+ }
+ if($doctype === 'bbcode') {
+ require_once('include/bbcode.php');
+ $content = bbcode($text);
+ // bbcode retargets external content to new windows. This content is internal.
+ $content = str_replace(' target="_blank"','',$content);
+ }
+
+ $content = preg_replace_callback("/#include (.*?)\;/ism", 'preg_callback_help_include', $content);
+ return translate_projectname($content);
+
+}
+
+function preg_callback_help_include($matches) {
+
+ if($matches[1]) {
+ $include = str_replace($matches[0],load_doc_file($matches[1]),$matches[0]);
+ if(preg_match('/\.bb$/', $matches[1]) || preg_match('/\.txt$/', $matches[1])) {
+ require_once('include/bbcode.php');
+ $include = bbcode($include);
+ $include = str_replace(' target="_blank"','',$include);
+ }
+ elseif(preg_match('/\.md$/', $matches[1])) {
+ require_once('library/markdown.php');
+ $include = Markdown($include);
+ }
+ return $include;
+ }
+
+}
+
+
+
function load_doc_file($s) {
$lang = \App::$language;
if(! isset($lang))
@@ -17,8 +116,9 @@ function load_doc_file($s) {
}
function find_doc_file($s) {
- if(file_exists($s))
+ if(file_exists($s)) {
return file_get_contents($s);
+ }
return '';
}
@@ -40,8 +140,13 @@ function search_doc_files($s) {
$r = fetch_post_tags($r,true);
for($x = 0; $x < count($r); $x ++) {
-
- $r[$x]['text'] = $r[$x]['body'];
+ $position = stripos($r[$x]['body'], $s);
+ $dislen = 300;
+ $start = $position-floor($dislen/2);
+ if ( $start < 0) {
+ $start = 0;
+ }
+ $r[$x]['text'] = substr($r[$x]['body'], $start, $dislen);
$r[$x]['rank'] = 0;
if($r[$x]['term']) {
diff --git a/include/import.php b/include/import.php
index 84881a420..ddffb2ac3 100644
--- a/include/import.php
+++ b/include/import.php
@@ -1312,8 +1312,12 @@ function scan_webpage_elements($path, $type, $cloud = false) {
}
$content = file_get_contents($folder . '/' . $contentfilename);
if (!$content) {
- logger('Failed to get file content for ' . $metadata['contentfile']);
- return false;
+ if(is_readable($folder . '/' . $contentfilename)) {
+ $content = '';
+ } else {
+ logger('Failed to get file content for ' . $metadata['contentfile']);
+ return false;
+ }
}
$elements[] = $metadata;
}
@@ -1395,12 +1399,12 @@ function scan_webpage_elements($path, $type, $cloud = false) {
);
$arr['mid'] = $arr['parent_mid'] = $iteminfo[0]['mid'];
$arr['created'] = $iteminfo[0]['created'];
- $arr['edited'] = (($element['edited']) ? datetime_convert('UTC', 'UTC', $element['edited']) : datetime_convert());
} else { // otherwise, generate the creation times and unique id
- $arr['created'] = (($element['created']) ? datetime_convert('UTC', 'UTC', $element['created']) : datetime_convert());
- $arr['edited'] = datetime_convert('UTC', 'UTC', '0000-00-00 00:00:00');
+ $arr['created'] = datetime_convert('UTC', 'UTC');
$arr['mid'] = $arr['parent_mid'] = item_message_id();
}
+ // Update the edited time whether or not the element already exists
+ $arr['edited'] = datetime_convert('UTC', 'UTC');
// Import the actual element content
$arr['body'] = file_get_contents($element['path']);
// The element owner is the channel importing the elements
@@ -1415,7 +1419,7 @@ function scan_webpage_elements($path, $type, $cloud = false) {
'application/x-pdl',
'application/x-php'
];
- // Blocks and pages can have any mimetype, but layouts must be text/bbcode
+ // Blocks and pages can have any of the valid mimetypes, but layouts must be text/bbcode
if((in_array($element['mimetype'], $mimetypes)) && ($type === 'page' || $type === 'block') ) {
$arr['mimetype'] = $element['mimetype'];
} else {
@@ -1424,7 +1428,7 @@ function scan_webpage_elements($path, $type, $cloud = false) {
// Verify ability to use html or php!!!
$execflag = false;
- if ($arr['mimetype'] === 'application/x-php') {
+ if ($arr['mimetype'] === 'application/x-php' || $arr['mimetype'] === 'text/html') {
$z = q("select account_id, account_roles, channel_pageflags from account "
. "left join channel on channel_account_id = account_id where channel_id = %d limit 1",
intval(local_channel())
@@ -1432,10 +1436,15 @@ function scan_webpage_elements($path, $type, $cloud = false) {
if ($z && (($z[0]['account_roles'] & ACCOUNT_ROLE_ALLOWCODE) || ($z[0]['channel_pageflags'] & PAGE_ALLOWCODE))) {
$execflag = true;
+ } else {
+ logger('Unable to import element "' . $name .'" because AllowCode permission is denied.');
+ notice( t('Unable to import element "' . $name .'" because AllowCode permission is denied.') . EOL);
+ $element['import_success'] = 0;
+ return $element;
}
}
- $z = q("select * from iconfig where v = '%s' and k = '%s' and cat = 'service' limit 1",
+ $z = q("select * from iconfig where v = '%s' and k = '%s' and cat = 'system' limit 1",
dbesc($name),
dbesc($namespace)
);
@@ -1472,3 +1481,193 @@ function scan_webpage_elements($path, $type, $cloud = false) {
return $element;
}
+
+function get_webpage_elements($channel, $type = 'all') {
+ $elements = array();
+ if(!$channel['channel_id']) {
+ return null;
+ }
+ switch ($type) {
+ case 'all':
+ // If all, execute all the pages, layouts, blocks case statements
+ case 'pages':
+ $elements['pages'] = null;
+ $owner = $channel['channel_id'];
+
+ $sql_extra = item_permissions_sql($owner);
+
+
+ $r = q("select * from iconfig left join item on iconfig.iid = item.id
+ where item.uid = %d and iconfig.cat = 'system' and iconfig.k = 'WEBPAGE' and item_type = %d
+ $sql_extra order by item.created desc",
+ intval($owner),
+ intval(ITEM_TYPE_WEBPAGE)
+ );
+
+ $pages = null;
+
+ if($r) {
+ $elements['pages'] = array();
+ $pages = array();
+ foreach($r as $rr) {
+ unobscure($rr);
+
+ //$lockstate = (($rr['allow_cid'] || $rr['allow_gid'] || $rr['deny_cid'] || $rr['deny_gid']) ? 'lock' : 'unlock');
+
+ $element_arr = array(
+ 'type' => 'webpage',
+ 'title' => $rr['title'],
+ 'body' => $rr['body'],
+ 'created' => $rr['created'],
+ 'edited' => $rr['edited'],
+ 'mimetype' => $rr['mimetype'],
+ 'pagetitle' => $rr['v'],
+ 'mid' => $rr['mid'],
+ 'layout_mid' => $rr['layout_mid']
+ );
+ $pages[$rr['iid']][] = array(
+ 'url' => $rr['iid'],
+ 'pagetitle' => $rr['v'],
+ 'title' => $rr['title'],
+ 'created' => datetime_convert('UTC',date_default_timezone_get(),$rr['created']),
+ 'edited' => datetime_convert('UTC',date_default_timezone_get(),$rr['edited']),
+ 'bb_element' => '[element]' . base64url_encode(json_encode($element_arr)) . '[/element]',
+ //'lockstate' => $lockstate
+ );
+ $elements['pages'][] = $element_arr;
+ }
+
+ }
+ if($type !== 'all') {
+ break;
+ }
+
+ case 'layouts':
+ $elements['layouts'] = null;
+ $owner = $channel['channel_id'];
+
+ $sql_extra = item_permissions_sql($owner);
+
+
+ $r = q("select * from iconfig left join item on iconfig.iid = item.id
+ where item.uid = %d and iconfig.cat = 'system' and iconfig.k = 'PDL' and item_type = %d
+ $sql_extra order by item.created desc",
+ intval($owner),
+ intval(ITEM_TYPE_PDL)
+ );
+
+ $layouts = null;
+
+ if($r) {
+ $elements['layouts'] = array();
+ $layouts = array();
+ foreach($r as $rr) {
+ unobscure($rr);
+
+ $elements['layouts'][] = array(
+ 'type' => 'layout',
+ 'description' => $rr['title'], // description of the layout
+ 'body' => $rr['body'],
+ 'created' => $rr['created'],
+ 'edited' => $rr['edited'],
+ 'mimetype' => $rr['mimetype'],
+ 'name' => $rr['v'], // name of reference for the layout
+ 'mid' => $rr['mid'],
+ );
+ }
+
+ }
+
+ if($type !== 'all') {
+ break;
+ }
+
+ case 'blocks':
+ $elements['blocks'] = null;
+ $owner = $channel['channel_id'];
+
+ $sql_extra = item_permissions_sql($owner);
+
+
+ $r = q("select iconfig.iid, iconfig.k, iconfig.v, mid, title, body, mimetype, created, edited from iconfig
+ left join item on iconfig.iid = item.id
+ where uid = %d and iconfig.cat = 'system' and iconfig.k = 'BUILDBLOCK'
+ and item_type = %d order by item.created desc",
+ intval($owner),
+ intval(ITEM_TYPE_BLOCK)
+ );
+
+ $blocks = null;
+
+ if($r) {
+ $elements['blocks'] = array();
+ $blocks = array();
+ foreach($r as $rr) {
+ unobscure($rr);
+
+ $elements['blocks'][] = array(
+ 'type' => 'block',
+ 'title' => $rr['title'],
+ 'body' => $rr['body'],
+ 'created' => $rr['created'],
+ 'edited' => $rr['edited'],
+ 'mimetype' => $rr['mimetype'],
+ 'name' => $rr['v'],
+ 'mid' => $rr['mid']
+ );
+ }
+
+ }
+
+ if($type !== 'all') {
+ break;
+ }
+
+ default:
+ break;
+ }
+ return $elements;
+}
+
+/* creates a compressed zip file */
+
+function create_zip_file($files = array(), $destination = '', $overwrite = false) {
+ //if the zip file already exists and overwrite is false, return false
+ if (file_exists($destination) && !$overwrite) {
+ return false;
+ }
+ //vars
+ $valid_files = array();
+ //if files were passed in...
+ if (is_array($files)) {
+ //cycle through each file
+ foreach ($files as $file) {
+ //make sure the file exists
+ if (file_exists($file)) {
+ $valid_files[] = $file;
+ }
+ }
+ }
+
+ //if we have good files...
+ if (count($valid_files)) {
+ //create the archive
+ $zip = new ZipArchive();
+ if ($zip->open($destination, $overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
+ return false;
+ }
+ //add the files
+ foreach ($valid_files as $file) {
+ $zip->addFile($file, $file);
+ }
+ //debug
+ //echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status;
+ //close the zip -- done!
+ $zip->close();
+
+ //check to make sure the file exists
+ return file_exists($destination);
+ } else {
+ return false;
+ }
+}
diff --git a/include/items.php b/include/items.php
index 0373dcb0d..ba39fd7ac 100755
--- a/include/items.php
+++ b/include/items.php
@@ -113,6 +113,26 @@ function collect_recipients($item, &$private_envelope) {
// if($policy === 'pub')
// $recipients[] = $sys['xchan_hash'];
}
+
+ // Add the authors of any posts in this thread, if they are known to us.
+ // This is specifically designed to forward wall-to-wall posts to the original author,
+ // in case they aren't a connection but have permission to write on our wall.
+ // This is important for issue tracker channels. It should be a no-op for most channels.
+ // Whether or not they will accept the delivery is not determined here, but should
+ // be taken into account by zot:process_delivery()
+
+ $r = q("select author_xchan from item where parent = %d",
+ intval($item['parent'])
+ );
+ if($r) {
+ foreach($r as $rv) {
+ if(! in_array($rv['author_xchan'],$recipients)) {
+ $recipients[] = $rv['author_xchan'];
+ }
+ }
+ }
+
+
}
// This is a somewhat expensive operation but important.
@@ -214,11 +234,10 @@ function can_comment_on_post($observer_xchan, $item) {
return true;
break;
case 'public':
- // We don't allow public comments yet, until a policy
- // for dealing with anonymous comments is in place with
- // a means to moderate comments. Until that time, return
- // false.
- return false;
+ // We don't really allow or support public comments yet, but anonymous
+ // folks won't ever reach this point (as $observer_xchan will be empty).
+ // This means the viewer has an xchan and we can identify them.
+ return true;
break;
case 'any connections':
case 'contacts':
@@ -695,8 +714,9 @@ function get_item_elements($x,$allow_code = false) {
// hub and verify that they are legit - or else we're going to toss the post. We only need to do this
// once, and after that your hub knows them. Sure some info is in the post, but it's only a transit identifier
// and not enough info to be able to look you up from your hash - which is the only thing stored with the post.
-
- if(($xchan_hash = import_author_xchan($x['author'])) !== false)
+
+ $xchan_hash = import_author_xchan($x['author']);
+ if($xchan_hash)
$arr['author_xchan'] = $xchan_hash;
else
return array();
@@ -705,7 +725,8 @@ function get_item_elements($x,$allow_code = false) {
if($arr['author_xchan'] === make_xchan_hash($x['owner']['guid'],$x['owner']['guid_sig']))
$arr['owner_xchan'] = $arr['author_xchan'];
else {
- if(($xchan_hash = import_author_xchan($x['owner'])) !== false)
+ $xchan_hash = import_author_xchan($x['owner']);
+ if($xchan_hash)
$arr['owner_xchan'] = $xchan_hash;
else
return array();
@@ -1166,7 +1187,7 @@ function encode_item_xchan($xchan) {
$ret['name'] = $xchan['xchan_name'];
$ret['address'] = $xchan['xchan_addr'];
- $ret['url'] = (($xchan['hubloc_url']) ? $xchan['hubloc_url'] : $xchan['xchan_url']);
+ $ret['url'] = $xchan['xchan_url'];
$ret['network'] = $xchan['xchan_network'];
$ret['photo'] = array('mimetype' => $xchan['xchan_photo_mimetype'], 'src' => $xchan['xchan_photo_m']);
$ret['guid'] = $xchan['xchan_guid'];
@@ -1624,9 +1645,23 @@ function item_store($arr, $allow_exec = false, $deliver = true) {
$arr['expires'] = ((x($arr,'expires') !== false) ? datetime_convert('UTC','UTC',$arr['expires']) : NULL_DATE);
$arr['commented'] = ((x($arr,'commented') !== false) ? datetime_convert('UTC','UTC',$arr['commented']) : datetime_convert());
$arr['comments_closed'] = ((x($arr,'comments_closed') !== false) ? datetime_convert('UTC','UTC',$arr['comments_closed']) : NULL_DATE);
+ $arr['html'] = ((array_key_exists('html',$arr)) ? $arr['html'] : '');
+
+ if($deliver) {
+ $arr['received'] = datetime_convert();
+ $arr['changed'] = datetime_convert();
+ }
+ else {
+
+ // When deliver flag is false, we are *probably* performing an import or bulk migration.
+ // If one updates the changed timestamp it will be made available to zotfeed and delivery
+ // will still take place through backdoor methods. Since these fields are rarely used
+ // otherwise, just preserve the original timestamp.
+
+ $arr['received'] = ((x($arr,'received') !== false) ? datetime_convert('UTC','UTC',$arr['received']) : datetime_convert());
+ $arr['changed'] = ((x($arr,'changed') !== false) ? datetime_convert('UTC','UTC',$arr['changed']) : datetime_convert());
+ }
- $arr['received'] = datetime_convert();
- $arr['changed'] = datetime_convert();
$arr['location'] = ((x($arr,'location')) ? notags(trim($arr['location'])) : '');
$arr['coord'] = ((x($arr,'coord')) ? notags(trim($arr['coord'])) : '');
$arr['parent_mid'] = ((x($arr,'parent_mid')) ? notags(trim($arr['parent_mid'])) : '');
@@ -2033,8 +2068,22 @@ function item_store_update($arr,$allow_exec = false, $deliver = true) {
$arr['comments_closed'] = $orig[0]['comments_closed'];
$arr['commented'] = $orig[0]['commented'];
- $arr['received'] = datetime_convert();
- $arr['changed'] = datetime_convert();
+
+ if($deliver) {
+ $arr['received'] = datetime_convert();
+ $arr['changed'] = datetime_convert();
+ }
+ else {
+
+ // When deliver flag is false, we are *probably* performing an import or bulk migration.
+ // If one updates the changed timestamp it will be made available to zotfeed and delivery
+ // will still take place through backdoor methods. Since these fields are rarely used
+ // otherwise, just preserve the original timestamp.
+
+ $arr['received'] = $orig[0]['received'];
+ $arr['changed'] = $orig[0]['changed'];
+ }
+
$arr['route'] = ((array_key_exists('route',$arr)) ? trim($arr['route']) : $orig[0]['route']);
$arr['diaspora_meta'] = ((x($arr,'diaspora_meta')) ? $arr['diaspora_meta'] : $orig[0]['diaspora_meta']);
$arr['location'] = ((x($arr,'location')) ? notags(trim($arr['location'])) : $orig[0]['location']);
@@ -2213,7 +2262,7 @@ function store_diaspora_comment_sig($datarray, $channel, $parent_item, $post_id,
logger('storing diaspora comment signature',LOGGER_DEBUG);
- $diaspora_handle = $channel['channel_address'] . '@' . App::get_hostname();
+ $diaspora_handle = channel_reddress($channel);
$signed_text = $datarray['mid'] . ';' . $parent_item['mid'] . ';' . $signed_body . ';' . $diaspora_handle;
@@ -2243,6 +2292,11 @@ function store_diaspora_comment_sig($datarray, $channel, $parent_item, $post_id,
function send_status_notifications($post_id,$item) {
+ // only send notifications for comments
+
+ if($item['mid'] == $item['parent_mid'])
+ return;
+
$notify = false;
$unfollowed = false;
@@ -2258,6 +2312,7 @@ function send_status_notifications($post_id,$item) {
if($item['author_xchan'] === $r[0]['channel_hash'])
return;
+
// I'm the owner - notify me
if($item['owner_hash'] === $r[0]['channel_hash'])
diff --git a/include/message.php b/include/message.php
index d3d8181ae..0ba1978f0 100644
--- a/include/message.php
+++ b/include/message.php
@@ -75,7 +75,7 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
if($recip)
$recip_handle = $recip[0]['xchan_addr'];
- $sender_handle = $channel['channel_address'] . '@' . App::get_hostname();
+ $sender_handle = channel_reddress($channel);
$handles = $recip_handle . ';' . $sender_handle;
diff --git a/include/nav.php b/include/nav.php
index 025da71b3..c2a058457 100644
--- a/include/nav.php
+++ b/include/nav.php
@@ -63,6 +63,7 @@ EOT;
$server_role = get_config('system','server_role');
$basic = (($server_role === 'basic') ? true : false);
+ $techlevel = get_account_techlevel();
// nav links: array of array('href', 'text', 'extra css classes', 'title')
$nav = Array();
@@ -144,10 +145,10 @@ EOT;
$homelink = (($observer) ? $observer['xchan_url'] : '');
}
- if((App::$module != 'home') && (! (local_channel())))
+ if(! local_channel())
$nav['home'] = array($homelink, t('Home'), "", t('Home Page'),'home_nav_btn');
- if((App::$config['system']['register_policy'] == REGISTER_OPEN) && (! $_SESSION['authenticated']))
+ if(((get_config('system','register_policy') == REGISTER_OPEN) || (get_config('system','register_policy') == REGISTER_APPROVE)) && (! $_SESSION['authenticated']))
$nav['register'] = array('register',t('Register'), "", t('Create an account'),'register_nav_btn');
if(! get_config('system','hide_help')) {
diff --git a/include/network.php b/include/network.php
index fe001b362..c23005935 100644
--- a/include/network.php
+++ b/include/network.php
@@ -1148,8 +1148,10 @@ function discover_by_webbie($webbie) {
if($link['rel'] === PROTOCOL_ZOT) {
logger('discover_by_webbie: zot found for ' . $webbie, LOGGER_DEBUG);
- if(array_key_exists('zot',$x) && $x['zot']['success'])
+ if(array_key_exists('zot',$x) && $x['zot']['success']) {
$i = import_xchan($x['zot']);
+ return true;
+ }
else {
$z = z_fetch_url($link['href']);
if($z['success']) {
@@ -2008,11 +2010,11 @@ function get_site_info() {
$admin = array();
foreach($r as $rr) {
if($rr['channel_pageflags'] & PAGE_HUBADMIN)
- $admin[] = array( 'name' => $rr['channel_name'], 'address' => $rr['channel_address'] . '@' . App::get_hostname(), 'channel' => z_root() . '/channel/' . $rr['channel_address']);
+ $admin[] = array( 'name' => $rr['channel_name'], 'address' => channel_reddress($rr), 'channel' => z_root() . '/channel/' . $rr['channel_address']);
}
if(! $admin) {
foreach($r as $rr) {
- $admin[] = array( 'name' => $rr['channel_name'], 'address' => $rr['channel_address'] . '@' . App::get_hostname(), 'channel' => z_root() . '/channel/' . $rr['channel_address']);
+ $admin[] = array( 'name' => $rr['channel_name'], 'address' => channel_reddress($rr), 'channel' => z_root() . '/channel/' . $rr['channel_address']);
}
}
}
diff --git a/include/oembed.php b/include/oembed.php
index fe6f10d71..085637a00 100755
--- a/include/oembed.php
+++ b/include/oembed.php
@@ -156,9 +156,12 @@ function oembed_fetch_url($embedurl){
if ($action !== 'block') {
// try oembed autodiscovery
$redirects = 0;
- $result = z_fetch_url($furl, false, $redirects, array('timeout' => 15, 'accept_content' => "text/*", 'novalidate' => true ));
+ $result = z_fetch_url($furl, false, $redirects, array('timeout' => 30, 'accept_content' => "text/*", 'novalidate' => true ));
+
if($result['success'])
$html_text = $result['body'];
+ else
+ logger('fetch failure: ' . $furl);
if($html_text) {
$dom = @DOMDocument::loadHTML($html_text);
@@ -171,7 +174,10 @@ function oembed_fetch_url($embedurl){
foreach($entries as $e){
$href = $e->getAttributeNode("href")->nodeValue;
$x = z_fetch_url($href . '&maxwidth=' . App::$videowidth);
- $txt = $x['body'];
+ if($x['success'])
+ $txt = $x['body'];
+ else
+ logger('fetch failed: ' . $href);
break;
}
// soundcloud is now using text/json+oembed instead of application/json+oembed,
@@ -180,7 +186,10 @@ function oembed_fetch_url($embedurl){
foreach($entries as $e){
$href = $e->getAttributeNode("href")->nodeValue;
$x = z_fetch_url($href . '&maxwidth=' . App::$videowidth);
- $txt = $x['body'];
+ if($x['success'])
+ $txt = $x['body'];
+ else
+ logger('json fetch failed: ' . $href);
break;
}
}
diff --git a/include/permissions.php b/include/permissions.php
index 637193973..d21b45550 100644
--- a/include/permissions.php
+++ b/include/permissions.php
@@ -6,8 +6,14 @@ require_once('include/security.php');
* @file include/permissions.php
*
* This file conntains functions to check and work with permissions.
+ *
+ * Most of this file is obsolete and has been superceded by extensible permissions in v1.12; it is left here
+ * for reference and because we haven't yet checked that all functions have been replaced and are available
+ * elsewhere (typically Zotlabs/Access/*).
*/
+
+
/**
* @brief Return an array with all available permissions.
*
diff --git a/include/photo/photo_driver.php b/include/photo/photo_driver.php
index 6de75d497..35cf77707 100644
--- a/include/photo/photo_driver.php
+++ b/include/photo/photo_driver.php
@@ -358,6 +358,7 @@ abstract class photo_driver {
`photo_usage` = %d,
`title` = '%s',
`description` = '%s',
+ `os_path` = '%s',
`allow_cid` = '%s',
`allow_gid` = '%s',
`deny_cid` = '%s',
@@ -382,6 +383,7 @@ abstract class photo_driver {
intval($p['photo_usage']),
dbesc($p['title']),
dbesc($p['description']),
+ dbesc($p['os_path']),
dbesc($p['allow_cid']),
dbesc($p['allow_gid']),
dbesc($p['deny_cid']),
@@ -391,8 +393,8 @@ abstract class photo_driver {
}
else {
$r = q("INSERT INTO `photo`
- ( `aid`, `uid`, `xchan`, `resource_id`, `created`, `edited`, `filename`, mimetype, `album`, `height`, `width`, `content`, `os_storage`, `filesize`, `imgscale`, `photo_usage`, `title`, `description`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` )
- VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s' )",
+ ( `aid`, `uid`, `xchan`, `resource_id`, `created`, `edited`, `filename`, mimetype, `album`, `height`, `width`, `content`, `os_storage`, `filesize`, `imgscale`, `photo_usage`, `title`, `description`, `os_path`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` )
+ VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s' )",
intval($p['aid']),
intval($p['uid']),
dbesc($p['xchan']),
@@ -411,6 +413,7 @@ abstract class photo_driver {
intval($p['photo_usage']),
dbesc($p['title']),
dbesc($p['description']),
+ dbesc($p['os_path']),
dbesc($p['allow_cid']),
dbesc($p['allow_gid']),
dbesc($p['deny_cid']),
diff --git a/include/photos.php b/include/photos.php
index d14c12d84..a3018816c 100644
--- a/include/photos.php
+++ b/include/photos.php
@@ -588,6 +588,8 @@ function photos_album_rename($channel_id, $oldname, $newname) {
);
}
+
+
/**
* @brief
*
@@ -713,6 +715,7 @@ function profile_photo_set_profile_perms($uid, $profileid = 0) {
if($profileid) {
$r = q("SELECT photo, profile_guid, id, is_default, uid
FROM profile WHERE uid = %d and ( profile.id = %d OR profile.profile_guid = '%s') LIMIT 1",
+ intval($uid),
intval($profileid),
dbesc($profileid)
);
diff --git a/include/plugin.php b/include/plugin.php
index cb206d944..663d17959 100755
--- a/include/plugin.php
+++ b/include/plugin.php
@@ -404,6 +404,18 @@ function check_plugin_versions($info) {
return false;
}
}
+ if(array_key_exists('serverroles',$info)) {
+ $role = \Zotlabs\Lib\System::get_server_role();
+ if(! (
+ stristr($info['serverroles'],'*')
+ || stristr($info['serverroles'],'any')
+ || stristr($info['serverroles'],$role))) {
+ logger('serverrole limit: ' . $info['name'],LOGGER_NORMAL,LOG_WARNING);
+ return false;
+
+ }
+ }
+
if(array_key_exists('requires',$info)) {
$arr = explode(',',$info['requires']);
diff --git a/include/security.php b/include/security.php
index 83bf51bc0..9b508d339 100644
--- a/include/security.php
+++ b/include/security.php
@@ -265,7 +265,7 @@ function change_channel($change_channel) {
);
if($x) {
$_SESSION['my_url'] = $x[0]['xchan_url'];
- $_SESSION['my_address'] = $r[0]['channel_address'] . '@' . App::get_hostname();
+ $_SESSION['my_address'] = channel_reddress($r[0]);
App::set_observer($x[0]);
App::set_perms(get_all_perms(local_channel(), $hash));
diff --git a/include/text.php b/include/text.php
index a2a6d918b..9c4a4a5c5 100644
--- a/include/text.php
+++ b/include/text.php
@@ -138,31 +138,74 @@ function purify_html($s, $allow_position = false) {
$def = $config->getHTMLDefinition(true);
//data- attributes used by the foundation library
- $def->info_global_attr['data-options'] = new HTMLPurifier_AttrDef_Text;
- $def->info_global_attr['data-magellan-expedition'] = new HTMLPurifier_AttrDef_Text;
- $def->info_global_attr['data-magellan-destination'] = new HTMLPurifier_AttrDef_Text;
- $def->info_global_attr['data-magellan-arrival'] = new HTMLPurifier_AttrDef_Text;
- $def->info_global_attr['data-offcanvas'] = new HTMLPurifier_AttrDef_Text;
- $def->info_global_attr['data-topbar'] = new HTMLPurifier_AttrDef_Text;
- $def->info_global_attr['data-orbit'] = new HTMLPurifier_AttrDef_Text;
- $def->info_global_attr['data-orbit-slide-number'] = new HTMLPurifier_AttrDef_Text;
+
+ // f6 navigation
+
+ //dropdown menu
+ $def->info_global_attr['data-dropdown-menu'] = new HTMLPurifier_AttrDef_Text;
+ //drilldown menu
+ $def->info_global_attr['data-drilldown'] = new HTMLPurifier_AttrDef_Text;
+ //accordion menu
+ $def->info_global_attr['data-accordion-menu'] = new HTMLPurifier_AttrDef_Text;
+ //responsive navigation
+ $def->info_global_attr['data-responsive-menu'] = new HTMLPurifier_AttrDef_Text;
+ $def->info_global_attr['data-responsive-toggle'] = new HTMLPurifier_AttrDef_Text;
+ //magellan
+ $def->info_global_attr['data-magellan'] = new HTMLPurifier_AttrDef_Text;
+ $def->info_global_attr['data-magellan-target'] = new HTMLPurifier_AttrDef_Text;
+
+ // f6 containers
+
+ //accordion
+ $def->info_global_attr['data-accordion'] = new HTMLPurifier_AttrDef_Text;
+ $def->info_global_attr['data-accordion-item'] = new HTMLPurifier_AttrDef_Text;
+ $def->info_global_attr['data-tab-content'] = new HTMLPurifier_AttrDef_Text;
+ //dropdown
$def->info_global_attr['data-dropdown'] = new HTMLPurifier_AttrDef_Text;
- $def->info_global_attr['data-dropdown-content'] = new HTMLPurifier_AttrDef_Text;
- $def->info_global_attr['data-reveal-id'] = new HTMLPurifier_AttrDef_Text;
+ //off-canvas
+ $def->info_global_attr['data-off-canvas-wrapper'] = new HTMLPurifier_AttrDef_Text;
+ $def->info_global_attr['data-off-canvas'] = new HTMLPurifier_AttrDef_Text;
+ $def->info_global_attr['data-off-canvas-content'] = new HTMLPurifier_AttrDef_Text;
+ //reveal
$def->info_global_attr['data-reveal'] = new HTMLPurifier_AttrDef_Text;
- $def->info_global_attr['data-alert'] = new HTMLPurifier_AttrDef_Text;
+ //tabs
+ $def->info_global_attr['data-tabs'] = new HTMLPurifier_AttrDef_Text;
+ $def->info_global_attr['data-tabs-content'] = new HTMLPurifier_AttrDef_Text;
+
+ // f6 media
+
+ //orbit
+ $def->info_global_attr['data-orbit'] = new HTMLPurifier_AttrDef_Text;
+ $def->info_global_attr['data-slide'] = new HTMLPurifier_AttrDef_Text;
+ //tooltip
$def->info_global_attr['data-tooltip'] = new HTMLPurifier_AttrDef_Text;
- $def->info_global_attr['data-joyride'] = new HTMLPurifier_AttrDef_Text;
- $def->info_global_attr['data-id'] = new HTMLPurifier_AttrDef_Text;
- $def->info_global_attr['data-text'] = new HTMLPurifier_AttrDef_Text;
- $def->info_global_attr['data-class'] = new HTMLPurifier_AttrDef_Text;
- $def->info_global_attr['data-prev-tex'] = new HTMLPurifier_AttrDef_Text;
- $def->info_global_attr['data-button'] = new HTMLPurifier_AttrDef_Text;
- $def->info_global_attr['data-accordion'] = new HTMLPurifier_AttrDef_Text;
- $def->info_global_attr['data-tab'] = new HTMLPurifier_AttrDef_Text;
+
+ // f6 plugins
+
+ //abide - the use is pointless since we can't do anything with forms
+
+ //equalizer
$def->info_global_attr['data-equalizer'] = new HTMLPurifier_AttrDef_Text;
$def->info_global_attr['data-equalizer-watch'] = new HTMLPurifier_AttrDef_Text;
+ //interchange - potentially dangerous since it can load content
+
+ //toggler
+ $def->info_global_attr['data-toggler'] = new HTMLPurifier_AttrDef_Text;
+
+ //sticky
+ $def->info_global_attr['data-sticky'] = new HTMLPurifier_AttrDef_Text;
+ $def->info_global_attr['data-sticky-container'] = new HTMLPurifier_AttrDef_Text;
+
+ // f6 common
+
+ $def->info_global_attr['data-options'] = new HTMLPurifier_AttrDef_Text;
+ $def->info_global_attr['data-toggle'] = new HTMLPurifier_AttrDef_Text;
+ $def->info_global_attr['data-close'] = new HTMLPurifier_AttrDef_Text;
+ $def->info_global_attr['data-open'] = new HTMLPurifier_AttrDef_Text;
+ $def->info_global_attr['data-position'] = new HTMLPurifier_AttrDef_Text;
+
+
//data- attributes used by the bootstrap library
$def->info_global_attr['data-dismiss'] = new HTMLPurifier_AttrDef_Text;
$def->info_global_attr['data-target'] = new HTMLPurifier_AttrDef_Text;
@@ -191,12 +234,15 @@ function purify_html($s, $allow_position = false) {
$def->info_global_attr['data-offset-bottom'] = new HTMLPurifier_AttrDef_Text;
//some html5 elements
+ //Block
$def->addElement('section', 'Block', 'Flow', 'Common');
$def->addElement('nav', 'Block', 'Flow', 'Common');
$def->addElement('article', 'Block', 'Flow', 'Common');
$def->addElement('aside', 'Block', 'Flow', 'Common');
$def->addElement('header', 'Block', 'Flow', 'Common');
$def->addElement('footer', 'Block', 'Flow', 'Common');
+ //Inline
+ $def->addElement('button', 'Inline', 'Inline', 'Common');
if($allow_position) {
@@ -936,7 +982,7 @@ function searchbox($s,$id='search-box',$url='/search',$save = false) {
'$action_url' => z_root() . '/' . $url,
'$search_label' => t('Search'),
'$save_label' => t('Save'),
- '$savedsearch' => feature_enabled(local_channel(),'savedsearch')
+ '$savedsearch' => ($save && feature_enabled(local_channel(),'savedsearch'))
));
}
@@ -2267,11 +2313,11 @@ function design_tools() {
}
/**
- * @brief Creates website import tools menu
+ * @brief Creates website portation tools menu
*
* @return string
*/
-function website_import_tools() {
+function website_portation_tools() {
$channel = App::get_channel();
$sys = false;
@@ -2282,7 +2328,7 @@ function website_import_tools() {
$sys = true;
}
- return replace_macros(get_markup_template('website_import_tools.tpl'), array(
+ return replace_macros(get_markup_template('website_portation_tools.tpl'), array(
'$title' => t('Import'),
'$import_label' => t('Import website...'),
'$import_placeholder' => t('Select folder to import'),
@@ -2290,7 +2336,15 @@ function website_import_tools() {
'$file_import_text' => t('Import from cloud files:'),
'$desc' => t('/cloud/channel/path/to/folder'),
'$hint' => t('Enter path to website files'),
- '$select' => t('Select folder'),
+ '$select' => t('Select folder'),
+ '$export_label' => t('Export website...'),
+ '$file_download_text' => t('Export to a zip file'),
+ '$filename_desc' => t('website.zip'),
+ '$filename_hint' => t('Enter a name for the zip file.'),
+ '$cloud_export_text' => t('Export to cloud files'),
+ '$cloud_export_desc' => t('/path/to/export/folder'),
+ '$cloud_export_hint' => t('Enter a path to a cloud files destination.'),
+ '$cloud_export_select' => t('Specify folder'),
));
}
diff --git a/include/widgets.php b/include/widgets.php
index 68db74703..9cd15dd59 100644
--- a/include/widgets.php
+++ b/include/widgets.php
@@ -209,7 +209,9 @@ function widget_savedsearch($arr) {
if((! local_channel()) || (! feature_enabled(local_channel(),'savedsearch')))
return '';
- $search = ((x($_GET,'search')) ? $_GET['search'] : '');
+ $search = ((x($_GET,'netsearch')) ? $_GET['netsearch'] : '');
+ if(! $search)
+ $search = ((x($_GET,'search')) ? $_GET['search'] : '');
if(x($_GET,'searchsave') && $search) {
$r = q("select * from `term` where `uid` = %d and `ttype` = %d and `term` = '%s' limit 1",
@@ -287,6 +289,40 @@ function widget_savedsearch($arr) {
return $o;
}
+function widget_sitesearch($arr) {
+
+ $search = ((x($_GET,'search')) ? $_GET['search'] : '');
+
+ $srchurl = App::$query_string;
+
+ $srchurl = rtrim(preg_replace('/search\=[^\&].*?(\&|$)/is','',$srchurl),'&');
+ $srchurl = rtrim(preg_replace('/submit\=[^\&].*?(\&|$)/is','',$srchurl),'&');
+ $srchurl = str_replace(array('?f=','&f='),array('',''),$srchurl);
+
+
+ $hasq = ((strpos($srchurl,'?') !== false) ? true : false);
+ $hasamp = ((strpos($srchurl,'&') !== false) ? true : false);
+
+ if(($hasamp) && (! $hasq))
+ $srchurl = substr($srchurl,0,strpos($srchurl,'&')) . '?f=&' . substr($srchurl,strpos($srchurl,'&')+1);
+
+ $o = '';
+
+ $saved = array();
+
+ $tpl = get_markup_template("sitesearch.tpl");
+ $o = replace_macros($tpl, array(
+ '$title' => t('Search'),
+ '$searchbox' => searchbox($search, 'netsearch-box', $srchurl . (($hasq) ? '' : '?f='), false),
+ '$saved' => $saved,
+ ));
+
+ return $o;
+}
+
+
+
+
function widget_filer($arr) {
if(! local_channel())
@@ -566,7 +602,7 @@ function widget_settings_menu($arr) {
);
- if(get_features()) {
+ if(get_account_techlevel() > 0 && get_features()) {
$tabs[] = array(
'label' => t('Additional features'),
'url' => z_root().'/settings/features',
@@ -594,14 +630,11 @@ function widget_settings_menu($arr) {
);
}
- // IF can go away when UNO export and import is fully functional
- if(get_config('system','server_role') !== 'basic') {
- $tabs[] = array(
- 'label' => t('Export channel'),
- 'url' => z_root() . '/uexport',
- 'selected' => ''
- );
- }
+ $tabs[] = array(
+ 'label' => t('Export channel'),
+ 'url' => z_root() . '/uexport',
+ 'selected' => ''
+ );
$tabs[] = array(
'label' => t('Connected apps'),
@@ -609,7 +642,7 @@ function widget_settings_menu($arr) {
'selected' => ((argv(1) === 'oauth') ? 'active' : ''),
);
- if(get_config('system','server_role') !== 'basic') {
+ if(get_account_techlevel() > 2) {
$tabs[] = array(
'label' => t('Guest Access Tokens'),
'url' => z_root() . '/settings/tokens',
@@ -779,7 +812,7 @@ function widget_design_tools($arr) {
return design_tools();
}
-function widget_website_import_tools($arr) {
+function widget_website_portation_tools($arr) {
// mod menu doesn't load a profile. For any modules which load a profile, check it.
// otherwise local_channel() is sufficient for permissions.
@@ -791,7 +824,7 @@ function widget_website_import_tools($arr) {
if(! local_channel())
return '';
- return website_import_tools();
+ return website_portation_tools();
}
function widget_findpeople($arr) {
@@ -963,6 +996,14 @@ function widget_suggestedchats($arr) {
if(! feature_enabled(App::$profile['profile_uid'],'ajaxchat'))
return '';
+ // There are reports that this tool does not ever remove chatrooms on dead sites,
+ // and also will happily link to private chats which you cannot enter.
+ // For those reasons, it will be disabled until somebody decides it's worth
+ // fixing and comes up with a plan for doing so.
+
+ return '';
+
+
// probably should restrict this to your friends, but then the widget will only work
// if you are logged in locally.
@@ -1286,8 +1327,8 @@ function widget_random_block($arr) {
function widget_rating($arr) {
- $poco_rating = get_config('system','poco_rating_enable');
- if((! $poco_rating) && ($poco_rating !== false)) {
+ $rating_enabled = get_config('system','rating_enabled');
+ if(! $rating_enabled) {
return;
}
@@ -1459,13 +1500,38 @@ function widget_tasklist($arr) {
function widget_helpindex($arr) {
- $o .= '<div class="widget">' . '<h3>' . t('Documentation') . '</h3>';
- $o .= '<ul class="nav nav-pills nav-stacked">';
- $o .= '<li><a href="help/general">' . t('Project/Site Information') . '</a></li>';
- $o .= '<li><a href="help/members">' . t('For Members') . '</a></li>';
- $o .= '<li><a href="help/admins">' . t('For Administrators') . '</a></li>';
- $o .= '<li><a href="help/develop">' . t('For Developers') . '</a></li>';
- $o .= '</ul></div>';
+
+ $o .= '<div class="widget">';
+ $o .= '<h3>' . t('Documentation') . '</h3>';
+
+ $level_0 = get_help_content('toc');
+
+ $level_0 = preg_replace('/\<ul(.*?)\>/','<ul class="nav nav-pills nav-stacked">',$level_0);
+
+ $levels = array();
+
+
+ if(argc() > 2) {
+ $path = '';
+ for($x = 1; $x < argc(); $x ++) {
+ $path .= argv($x) . '/';
+ $y = get_help_content($path . 'toc');
+ if($y)
+ $levels[] = preg_replace('/\<ul(.*?)\>/','<ul class="nav nav-pills nav-stacked">',$y);
+ }
+ }
+
+ if($level_0)
+ $o .= $level_0;
+ if($levels) {
+ foreach($levels as $l) {
+ $o .= '<br /><br />';
+ $o .= $l;
+ }
+ }
+
+ $o .= '</div>';
+
return $o;
}
diff --git a/include/zot.php b/include/zot.php
index 01b29f74b..49b66bc62 100644
--- a/include/zot.php
+++ b/include/zot.php
@@ -1593,7 +1593,7 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $
}
$channel = $r[0];
- $DR->addto_recipient($channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . App::get_hostname() . '>');
+ $DR->addto_recipient($channel['channel_name'] . ' <' . channel_reddress($channel) . '>');
/* blacklisted channels get a permission denied, no special message to tip them off */
@@ -2082,7 +2082,7 @@ function process_mail_delivery($sender, $arr, $deliveries) {
}
$channel = $r[0];
- $DR->addto_recipient($channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . App::get_hostname() . '>');
+ $DR->addto_recipient($channel['channel_name'] . ' <' . channel_reddress($channel) . '>');
/* blacklisted channels get a permission denied, no special message to tip them off */
@@ -2844,6 +2844,7 @@ function import_site($arr, $pubkey) {
$site_location = htmlspecialchars($arr['location'],ENT_COMPAT,'UTF-8',false);
$site_realm = htmlspecialchars($arr['realm'],ENT_COMPAT,'UTF-8',false);
$site_project = htmlspecialchars($arr['project'],ENT_COMPAT,'UTF-8',false);
+ $site_version = ((array_key_exists('version',$arr)) ? htmlspecialchars($arr['version'],ENT_COMPAT,'UTF-8',false) : '');
// You can have one and only one primary directory per realm.
// Downgrade any others claiming to be primary. As they have
@@ -2863,14 +2864,16 @@ function import_site($arr, $pubkey) {
|| ($siterecord['site_location'] != $site_location)
|| ($siterecord['site_register'] != $register_policy)
|| ($siterecord['site_project'] != $site_project)
- || ($siterecord['site_realm'] != $site_realm)) {
+ || ($siterecord['site_realm'] != $site_realm)
+ || ($siterecord['site_version'] != $site_version) ) {
+
$update = true;
// logger('import_site: input: ' . print_r($arr,true));
// logger('import_site: stored: ' . print_r($siterecord,true));
- $r = q("update site set site_dead = 0, site_location = '%s', site_flags = %d, site_access = %d, site_directory = '%s', site_register = %d, site_update = '%s', site_sellpage = '%s', site_realm = '%s', site_type = %d, site_project = '%s'
+ $r = q("update site set site_dead = 0, site_location = '%s', site_flags = %d, site_access = %d, site_directory = '%s', site_register = %d, site_update = '%s', site_sellpage = '%s', site_realm = '%s', site_type = %d, site_project = '%s', site_version = '%s'
where site_url = '%s'",
dbesc($site_location),
intval($site_directory),
@@ -2882,6 +2885,7 @@ function import_site($arr, $pubkey) {
dbesc($site_realm),
intval(SITE_TYPE_ZOT),
dbesc($site_project),
+ dbesc($site_version),
dbesc($url)
);
if(! $r) {
@@ -2899,8 +2903,8 @@ function import_site($arr, $pubkey) {
else {
$update = true;
- $r = q("insert into site ( site_location, site_url, site_access, site_flags, site_update, site_directory, site_register, site_sellpage, site_realm, site_type, site_project )
- values ( '%s', '%s', %d, %d, '%s', '%s', %d, '%s', '%s', %d, '%s' )",
+ $r = q("insert into site ( site_location, site_url, site_access, site_flags, site_update, site_directory, site_register, site_sellpage, site_realm, site_type, site_project, site_version )
+ values ( '%s', '%s', %d, %d, '%s', '%s', %d, '%s', '%s', %d, '%s', '%s' )",
dbesc($site_location),
dbesc($url),
intval($access_policy),
@@ -2911,7 +2915,8 @@ function import_site($arr, $pubkey) {
dbesc($sellpage),
dbesc($site_realm),
intval(SITE_TYPE_ZOT),
- dbesc($site_project)
+ dbesc($site_project),
+ dbesc($site_version)
);
if(! $r) {
logger('import_site: record create failed. ' . print_r($arr,true));
@@ -3527,7 +3532,7 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) {
if(array_key_exists('item',$arr) && is_array($arr['item'][0])) {
$DR = new Zotlabs\Zot\DReport(z_root(),$d['hash'],$d['hash'],$arr['item'][0]['message_id'],'channel sync processed');
- $DR->addto_recipient($channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . App::get_hostname() . '>');
+ $DR->addto_recipient($channel['channel_name'] . ' <' . channel_reddress($channel) . '>');
}
else
$DR = new Zotlabs\Zot\DReport(z_root(),$d['hash'],$d['hash'],'sync packet','channel sync delivered');
@@ -3708,6 +3713,8 @@ function zotinfo($arr) {
}
}
+ $ztarget_hash = (($ztarget && $zsig) ? make_xchan_hash($ztarget,$zsig) : '' );
+
$r = null;
if(strlen($zhash)) {
@@ -3785,18 +3792,12 @@ function zotinfo($arr) {
}
else {
// check if it has characteristics of a public forum based on custom permissions.
- $t = q("select * from abconfig where abconfig.cat = 'my_perms' and abconfig.chan = %d and abconfig.xchan = '%s' and abconfig.k in ('tag_deliver', 'send_stream') ",
- intval($e['channel_id']),
- dbesc($e['channel_hash'])
- );
-
- $ch = 0;
-
- if($t) {
- foreach($t as $tt) {
- if($tt['k'] == 'tag_deliver' && $tt['v'] == 1)
+ $m = \Zotlabs\Access\Permissions::FilledAutoperms($e['channel_id']);
+ if($m) {
+ foreach($m as $k => $v) {
+ if($k == 'tag_deliver' && intval($v) == 1)
$ch ++;
- if($tt['k'] == 'send_stream' && $tt['v'] == 0)
+ if($k == 'send_stream' && intval($v) == 0)
$ch ++;
}
if($ch == 2)
@@ -3889,9 +3890,6 @@ function zotinfo($arr) {
$ret['follow_url'] = z_root() . '/follow?f=&url=%s';
- $ztarget_hash = (($ztarget && $zsig)
- ? make_xchan_hash($ztarget,$zsig)
- : '' );
$permissions = get_all_perms($e['channel_id'],$ztarget_hash,false);
@@ -3965,9 +3963,6 @@ function zotinfo($arr) {
require_once('include/channel.php');
$ret['site']['channels'] = channel_total();
-
- $ret['site']['version'] = Zotlabs\Lib\System::get_platform_name() . ' ' . STD_VERSION . '[' . DB_UPDATE_VERSION . ']';
-
$ret['site']['admin'] = get_config('system','admin_email');
$visible_plugins = array();
@@ -3985,6 +3980,7 @@ function zotinfo($arr) {
$ret['site']['location'] = get_config('system','site_location');
$ret['site']['realm'] = get_directory_realm();
$ret['site']['project'] = Zotlabs\Lib\System::get_platform_name() . ' ' . Zotlabs\Lib\System::get_server_role();
+ $ret['site']['version'] = Zotlabs\Lib\System::get_project_version();
}
@@ -4036,7 +4032,7 @@ function check_zotinfo($channel,$locations,&$ret) {
dbesc($channel['channel_guid']),
dbesc($channel['channel_guid_sig']),
dbesc($channel['channel_hash']),
- dbesc($channel['channel_address'] . '@' . App::get_hostname()),
+ dbesc(channel_reddress($channel)),
intval(1),
dbesc(z_root()),
dbesc(base64url_encode(rsa_sign(z_root(),$channel['channel_prvkey']))),
diff --git a/install/htconfig.sample.php b/install/htconfig.sample.php
index e5c743ac1..f37b3dc79 100755
--- a/install/htconfig.sample.php
+++ b/install/htconfig.sample.php
@@ -47,9 +47,9 @@ App::$config['system']['location_hash'] = 'if the auto install failed, put a uni
// Choices are 'basic', 'standard', and 'pro'.
// basic sets up the sevrer for basic social networking and removes "complicated" features
// standard provides most desired features except e-commerce
-// pro gives you access to everything
+// pro gives you access to everything, but removes cross-platform federation/emulation
-App::$config['system']['server_role'] = 'pro';
+App::$config['system']['server_role'] = 'standard';
// These lines set additional security headers to be sent with all responses
diff --git a/install/sample-nginx.conf b/install/sample-nginx.conf
index e9a80d226..85178596a 100644
--- a/install/sample-nginx.conf
+++ b/install/sample-nginx.conf
@@ -92,7 +92,7 @@ server {
# otherwise fall back to front controller
# allow browser to cache them
# added .htm for advanced source code editor library
- location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {
+ location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|map|ttf|woff|woff2|svg)$ {
expires 30d;
try_files $uri /index.php?q=$uri&$args;
}
diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql
index 5e5b9d5be..9a4f58880 100644
--- a/install/schema_mysql.sql
+++ b/install/schema_mysql.sql
@@ -1151,6 +1151,7 @@ CREATE TABLE IF NOT EXISTS `site` (
`site_dead` smallint NOT NULL DEFAULT '0',
`site_type` smallint NOT NULL DEFAULT '0',
`site_project` char(255) NOT NULL DEFAULT '',
+ `site_version` varchar(32) NOT NULL DEFAULT '',
PRIMARY KEY (`site_url`),
KEY `site_flags` (`site_flags`),
KEY `site_update` (`site_update`),
diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql
index 44711c190..caa182b14 100644
--- a/install/schema_postgres.sql
+++ b/install/schema_postgres.sql
@@ -219,7 +219,7 @@ CREATE TABLE "cal" (
"pass" text NOT NULL,
"ctag" text NOT NULL,
"synctoken" text NOT NULL,
- "cal_types" text NOT NULL DEFAULT "0",
+ "cal_types" text NOT NULL DEFAULT '0',
PRIMARY KEY ("cal_id")
);
create index "cal_hash_idx" on cal ("cal_hash");
@@ -940,7 +940,7 @@ create index "photo_album" on photo ("album");
create index "photo_imgscale" on photo ("imgscale");
create index "photo_profile" on photo ("profile");
create index "photo_flags" on photo ("photo_flags");
-create index "photo_type" on photo ("type");
+create index "photo_mimetype" on photo ("mimetype");
create index "photo_aid" on photo ("aid");
create index "photo_xchan" on photo ("xchan");
create index "photo_filesize" on photo ("filesize");
@@ -1131,6 +1131,7 @@ CREATE TABLE "site" (
"site_dead" smallint NOT NULL DEFAULT '0',
"site_type" smallint NOT NULL DEFAULT '0',
"site_project" text NOT NULL DEFAULT '',
+ "site_version" text NOT NULL DEFAULT '',
PRIMARY KEY ("site_url")
);
create index "site_flags" on site ("site_flags");
diff --git a/install/update.php b/install/update.php
index 3d0e5b00d..9fd362fff 100644
--- a/install/update.php
+++ b/install/update.php
@@ -1,6 +1,6 @@
<?php
-define( 'UPDATE_VERSION' , 1181 );
+define( 'UPDATE_VERSION' , 1183 );
/**
*
@@ -2429,3 +2429,18 @@ function update_r1180() {
return UPDATE_FAILED;
}
+function update_r1181() {
+ if(\Zotlabs\Lib\System::get_server_role() == 'pro') {
+ q("update account set account_level = 5 where true");
+ }
+ return UPDATE_SUCCESS;
+}
+
+function update_r1182() {
+
+ $r1 = q("alter table site add site_version varchar(32) not null default '' ");
+
+ if($r1)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
diff --git a/library/IXR_Library.php b/library/IXR_Library.php
index 9e2537701..c249c4845 100644
--- a/library/IXR_Library.php
+++ b/library/IXR_Library.php
@@ -44,7 +44,7 @@ class IXR_Value
var $data;
var $type;
- function IXR_Value($data, $type = false)
+ function __construct($data, $type = false)
{
$this->data = $data;
if (!$type) {
@@ -188,7 +188,7 @@ class IXR_Message
// The XML parser
var $_parser;
- function IXR_Message($message)
+ function __construct($message)
{
$this->message =& $message;
}
@@ -346,7 +346,7 @@ class IXR_Server
var $message;
var $capabilities;
- function IXR_Server($callbacks = false, $data = false, $wait = false)
+ function __construct($callbacks = false, $data = false, $wait = false)
{
$this->setCapabilities();
if ($callbacks) {
@@ -549,7 +549,7 @@ class IXR_Request
var $args;
var $xml;
- function IXR_Request($method, $args)
+ function __construct($method, $args)
{
$this->method = $method;
$this->args = $args;
@@ -595,13 +595,13 @@ class IXR_Client
var $useragent;
var $response;
var $message = false;
- var $debug = false;
+ var $debug = true;
var $timeout;
// Storage place for an error message
var $error = false;
- function IXR_Client($server, $path = false, $port = 80, $timeout = 15)
+ function __construct($server, $path = false, $port = 80, $timeout = 15)
{
if (!$path) {
// Assume we have been given a URL instead
@@ -742,7 +742,7 @@ class IXR_Error
var $code;
var $message;
- function IXR_Error($code, $message)
+ function __construct($code, $message)
{
$this->code = $code;
$this->message = htmlspecialchars($message);
@@ -788,7 +788,7 @@ class IXR_Date {
var $second;
var $timezone;
- function IXR_Date($time)
+ function __construct($time)
{
// $time can be a PHP timestamp or an ISO one
if (is_numeric($time)) {
@@ -846,7 +846,7 @@ class IXR_Base64
{
var $data;
- function IXR_Base64($data)
+ function __construct($data)
{
$this->data = $data;
}
@@ -868,7 +868,7 @@ class IXR_IntrospectionServer extends IXR_Server
var $signatures;
var $help;
- function IXR_IntrospectionServer()
+ function __construct()
{
$this->setCallbacks();
$this->setCapabilities();
@@ -1030,7 +1030,7 @@ class IXR_ClientMulticall extends IXR_Client
{
var $calls = array();
- function IXR_ClientMulticall($server, $path = false, $port = 80)
+ function __construct($server, $path = false, $port = 80)
{
parent::IXR_Client($server, $path, $port);
$this->useragent = 'The Incutio XML-RPC PHP Library (multicall client)';
@@ -1101,7 +1101,7 @@ class IXR_ClientSSL extends IXR_Client
* @param string $server URL of the Server to connect to
* @since 0.1.0
*/
- function IXR_ClientSSL($server, $path = false, $port = 443, $timeout = false)
+ function __construct($server, $path = false, $port = 443, $timeout = false)
{
parent::IXR_Client($server, $path, $port, $timeout);
$this->useragent = 'The Incutio XML-RPC PHP Library for SSL';
@@ -1291,7 +1291,7 @@ class IXR_ClassServer extends IXR_Server
var $_objects;
var $_delim;
- function IXR_ClassServer($delim = '.', $wait = false)
+ function __construct($delim = '.', $wait = false)
{
$this->IXR_Server(array(), false, $wait);
$this->_delimiter = $delim;
diff --git a/library/bootstrap/css/bootstrap-theme.css.map b/library/bootstrap/css/bootstrap-theme.css.map
new file mode 100644
index 000000000..d876f60fb
--- /dev/null
+++ b/library/bootstrap/css/bootstrap-theme.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["bootstrap-theme.css","less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"AAAA;;;;GAIG;ACeH;;;;;;EAME,yCAAA;EC2CA,4FAAA;EACQ,oFAAA;CFvDT;ACgBC;;;;;;;;;;;;ECsCA,yDAAA;EACQ,iDAAA;CFxCT;ACMC;;;;;;;;;;;;;;;;;;ECiCA,yBAAA;EACQ,iBAAA;CFnBT;AC/BD;;;;;;EAuBI,kBAAA;CDgBH;ACyBC;;EAEE,uBAAA;CDvBH;AC4BD;EErEI,sEAAA;EACA,iEAAA;EACA,2FAAA;EAAA,oEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;EAuC2C,0BAAA;EAA2B,mBAAA;CDjBvE;ACpBC;;EAEE,0BAAA;EACA,6BAAA;CDsBH;ACnBC;;EAEE,0BAAA;EACA,sBAAA;CDqBH;ACfG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CD6BL;ACbD;EEtEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CD8DD;AC5DC;;EAEE,0BAAA;EACA,6BAAA;CD8DH;AC3DC;;EAEE,0BAAA;EACA,sBAAA;CD6DH;ACvDG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CDqEL;ACpDD;EEvEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CDsGD;ACpGC;;EAEE,0BAAA;EACA,6BAAA;CDsGH;ACnGC;;EAEE,0BAAA;EACA,sBAAA;CDqGH;AC/FG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CD6GL;AC3FD;EExEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CD8ID;AC5IC;;EAEE,0BAAA;EACA,6BAAA;CD8IH;AC3IC;;EAEE,0BAAA;EACA,sBAAA;CD6IH;ACvIG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CDqJL;AClID;EEzEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CDsLD;ACpLC;;EAEE,0BAAA;EACA,6BAAA;CDsLH;ACnLC;;EAEE,0BAAA;EACA,sBAAA;CDqLH;AC/KG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CD6LL;ACzKD;EE1EI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CD8ND;AC5NC;;EAEE,0BAAA;EACA,6BAAA;CD8NH;AC3NC;;EAEE,0BAAA;EACA,sBAAA;CD6NH;ACvNG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CDqOL;AC1MD;;EClCE,mDAAA;EACQ,2CAAA;CFgPT;ACrMD;;EE3FI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF0FF,0BAAA;CD2MD;ACzMD;;;EEhGI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EFgGF,0BAAA;CD+MD;ACtMD;EE7GI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;ECnBF,oEAAA;EH+HA,mBAAA;ECjEA,4FAAA;EACQ,oFAAA;CF8QT;ACjND;;EE7GI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;ED2CF,yDAAA;EACQ,iDAAA;CFwRT;AC9MD;;EAEE,+CAAA;CDgND;AC5MD;EEhII,sEAAA;EACA,iEAAA;EACA,2FAAA;EAAA,oEAAA;EACA,4BAAA;EACA,uHAAA;ECnBF,oEAAA;EHkJA,mBAAA;CDkND;ACrND;;EEhII,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;ED2CF,wDAAA;EACQ,gDAAA;CF+ST;AC/ND;;EAYI,0CAAA;CDuNH;AClND;;;EAGE,iBAAA;CDoND;AC/LD;EAfI;;;IAGE,YAAA;IE7JF,yEAAA;IACA,oEAAA;IACA,8FAAA;IAAA,uEAAA;IACA,4BAAA;IACA,uHAAA;GH+WD;CACF;AC3MD;EACE,8CAAA;EC3HA,2FAAA;EACQ,mFAAA;CFyUT;ACnMD;EEtLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CD+MD;AC1MD;EEvLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CDuND;ACjND;EExLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CD+ND;ACxND;EEzLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CDuOD;ACxND;EEjMI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH4ZH;ACrND;EE3MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHmaH;AC3ND;EE5MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH0aH;ACjOD;EE7MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHibH;ACvOD;EE9MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHwbH;AC7OD;EE/MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH+bH;AChPD;EElLI,8MAAA;EACA,yMAAA;EACA,sMAAA;CHqaH;AC5OD;EACE,mBAAA;EC9KA,mDAAA;EACQ,2CAAA;CF6ZT;AC7OD;;;EAGE,8BAAA;EEnOE,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EFiOF,sBAAA;CDmPD;ACxPD;;;EAQI,kBAAA;CDqPH;AC3OD;ECnME,kDAAA;EACQ,0CAAA;CFibT;ACrOD;EE5PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHoeH;AC3OD;EE7PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH2eH;ACjPD;EE9PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHkfH;ACvPD;EE/PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHyfH;AC7PD;EEhQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHggBH;ACnQD;EEjQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHugBH;ACnQD;EExQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EFsQF,sBAAA;EC3NA,0FAAA;EACQ,kFAAA;CFqeT","file":"bootstrap-theme.css","sourcesContent":["/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-default.disabled,\n.btn-primary.disabled,\n.btn-success.disabled,\n.btn-info.disabled,\n.btn-warning.disabled,\n.btn-danger.disabled,\n.btn-default[disabled],\n.btn-primary[disabled],\n.btn-success[disabled],\n.btn-info[disabled],\n.btn-warning[disabled],\n.btn-danger[disabled],\nfieldset[disabled] .btn-default,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-danger {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n text-shadow: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n}\n.btn-default {\n background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #dbdbdb;\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n background-color: #e0e0e0;\n background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n background-color: #e0e0e0;\n border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #e0e0e0;\n background-image: none;\n}\n.btn-primary {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n background-color: #265a88;\n background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n background-color: #265a88;\n border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #265a88;\n background-image: none;\n}\n.btn-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n background-color: #419641;\n background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n background-color: #419641;\n border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #419641;\n background-image: none;\n}\n.btn-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n background-color: #2aabd2;\n background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n background-color: #2aabd2;\n border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #2aabd2;\n background-image: none;\n}\n.btn-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n background-color: #eb9316;\n background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n background-color: #eb9316;\n border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #eb9316;\n background-image: none;\n}\n.btn-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n background-color: #c12e2a;\n background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n background-color: #c12e2a;\n border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #c12e2a;\n background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-color: #e8e8e8;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-color: #2e6da4;\n}\n.navbar-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);\n}\n.navbar-inverse {\n background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n@media (max-width: 767px) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n }\n}\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.alert-success {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n border-color: #b2dba1;\n}\n.alert-info {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n border-color: #9acfea;\n}\n.alert-warning {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n border-color: #f5e79e;\n}\n.alert-danger {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n border-color: #dca7a7;\n}\n.progress {\n background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n}\n.progress-bar {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n}\n.progress-bar-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n}\n.progress-bar-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n}\n.progress-bar-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n}\n.progress-bar-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n}\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.list-group {\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 #286090;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n text-shadow: none;\n}\n.panel {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.panel-default > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n}\n.panel-primary > .panel-heading {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n}\n.panel-success > .panel-heading {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n}\n.panel-info > .panel-heading {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n}\n.panel-warning > .panel-heading {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n}\n.panel-danger > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n}\n.well {\n background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n border-color: #dcdcdc;\n -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */","/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n .box-shadow(none);\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n border-radius: @navbar-border-radius;\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]} \ No newline at end of file
diff --git a/library/bootstrap/css/bootstrap-theme.min.css.map b/library/bootstrap/css/bootstrap-theme.min.css.map
new file mode 100644
index 000000000..94813e900
--- /dev/null
+++ b/library/bootstrap/css/bootstrap-theme.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":";;;;AAmBA,YAAA,aAAA,UAAA,aAAA,aAAA,aAME,YAAA,EAAA,KAAA,EAAA,eC2CA,mBAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBDvCR,mBAAA,mBAAA,oBAAA,oBAAA,iBAAA,iBAAA,oBAAA,oBAAA,oBAAA,oBAAA,oBAAA,oBCsCA,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBDlCR,qBAAA,sBAAA,sBAAA,uBAAA,mBAAA,oBAAA,sBAAA,uBAAA,sBAAA,uBAAA,sBAAA,uBAAA,+BAAA,gCAAA,6BAAA,gCAAA,gCAAA,gCCiCA,mBAAA,KACQ,WAAA,KDlDV,mBAAA,oBAAA,iBAAA,oBAAA,oBAAA,oBAuBI,YAAA,KAyCF,YAAA,YAEE,iBAAA,KAKJ,aErEI,YAAA,EAAA,IAAA,EAAA,KACA,iBAAA,iDACA,iBAAA,4CAAA,iBAAA,qEAEA,iBAAA,+CCnBF,OAAA,+GH4CA,OAAA,0DACA,kBAAA,SAuC2C,aAAA,QAA2B,aAAA,KArCtE,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAgBN,aEtEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAiBN,aEvEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAkBN,UExEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,gBAAA,gBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,iBAAA,iBAEE,iBAAA,QACA,aAAA,QAMA,mBAAA,0BAAA,yBAAA,0BAAA,yBAAA,yBAAA,oBAAA,2BAAA,0BAAA,2BAAA,0BAAA,0BAAA,6BAAA,oCAAA,mCAAA,oCAAA,mCAAA,mCAME,iBAAA,QACA,iBAAA,KAmBN,aEzEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAoBN,YE1EI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,kBAAA,kBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,mBAAA,mBAEE,iBAAA,QACA,aAAA,QAMA,qBAAA,4BAAA,2BAAA,4BAAA,2BAAA,2BAAA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,+BAAA,sCAAA,qCAAA,sCAAA,qCAAA,qCAME,iBAAA,QACA,iBAAA,KA2BN,eAAA,WClCE,mBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,EAAA,IAAA,IAAA,iBD2CV,0BAAA,0BE3FI,iBAAA,QACA,iBAAA,oDACA,iBAAA,+CAAA,iBAAA,wEACA,iBAAA,kDACA,OAAA,+GF0FF,kBAAA,SAEF,yBAAA,+BAAA,+BEhGI,iBAAA,QACA,iBAAA,oDACA,iBAAA,+CAAA,iBAAA,wEACA,iBAAA,kDACA,OAAA,+GFgGF,kBAAA,SASF,gBE7GI,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GACA,OAAA,0DCnBF,kBAAA,SH+HA,cAAA,ICjEA,mBAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBD6DV,sCAAA,oCE7GI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SD2CF,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBD0EV,cAAA,iBAEE,YAAA,EAAA,IAAA,EAAA,sBAIF,gBEhII,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GACA,OAAA,0DCnBF,kBAAA,SHkJA,cAAA,IAHF,sCAAA,oCEhII,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SD2CF,mBAAA,MAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBDgFV,8BAAA,iCAYI,YAAA,EAAA,KAAA,EAAA,gBAKJ,qBAAA,kBAAA,mBAGE,cAAA,EAqBF,yBAfI,mDAAA,yDAAA,yDAGE,MAAA,KE7JF,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,UFqKJ,OACE,YAAA,EAAA,IAAA,EAAA,qBC3HA,mBAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,gBDsIV,eEtLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAKF,YEvLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAMF,eExLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAOF,cEzLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAeF,UEjMI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFuMJ,cE3MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFwMJ,sBE5MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFyMJ,mBE7MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF0MJ,sBE9MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF2MJ,qBE/MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF+MJ,sBElLI,iBAAA,yKACA,iBAAA,oKACA,iBAAA,iKFyLJ,YACE,cAAA,IC9KA,mBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,EAAA,IAAA,IAAA,iBDgLV,wBAAA,8BAAA,8BAGE,YAAA,EAAA,KAAA,EAAA,QEnOE,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFiOF,aAAA,QALF,+BAAA,qCAAA,qCAQI,YAAA,KAUJ,OCnME,mBAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,EAAA,IAAA,IAAA,gBD4MV,8BE5PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFyPJ,8BE7PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF0PJ,8BE9PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF2PJ,2BE/PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF4PJ,8BEhQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF6PJ,6BEjQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFoQJ,MExQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFsQF,aAAA,QC3NA,mBAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,EAAA,IAAA,EAAA,qBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,EAAA,IAAA,EAAA","sourcesContent":["/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n .box-shadow(none);\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n border-radius: @navbar-border-radius;\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]} \ No newline at end of file
diff --git a/library/bootstrap/css/bootstrap.css.map b/library/bootstrap/css/bootstrap.css.map
new file mode 100644
index 000000000..f010c82d1
--- /dev/null
+++ b/library/bootstrap/css/bootstrap.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["bootstrap.css","less/normalize.less","less/print.less","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/mixins/reset-text.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,4EAA4E;ACG5E;EACE,wBAAA;EACA,2BAAA;EACA,+BAAA;CDDD;ACQD;EACE,UAAA;CDND;ACmBD;;;;;;;;;;;;;EAaE,eAAA;CDjBD;ACyBD;;;;EAIE,sBAAA;EACA,yBAAA;CDvBD;AC+BD;EACE,cAAA;EACA,UAAA;CD7BD;ACqCD;;EAEE,cAAA;CDnCD;AC6CD;EACE,8BAAA;CD3CD;ACmDD;;EAEE,WAAA;CDjDD;AC2DD;EACE,0BAAA;CDzDD;ACgED;;EAEE,kBAAA;CD9DD;ACqED;EACE,mBAAA;CDnED;AC2ED;EACE,eAAA;EACA,iBAAA;CDzED;ACgFD;EACE,iBAAA;EACA,YAAA;CD9ED;ACqFD;EACE,eAAA;CDnFD;AC0FD;;EAEE,eAAA;EACA,eAAA;EACA,mBAAA;EACA,yBAAA;CDxFD;AC2FD;EACE,YAAA;CDzFD;AC4FD;EACE,gBAAA;CD1FD;ACoGD;EACE,UAAA;CDlGD;ACyGD;EACE,iBAAA;CDvGD;ACiHD;EACE,iBAAA;CD/GD;ACsHD;EACE,gCAAA;KAAA,6BAAA;UAAA,wBAAA;EACA,UAAA;CDpHD;AC2HD;EACE,eAAA;CDzHD;ACgID;;;;EAIE,kCAAA;EACA,eAAA;CD9HD;ACgJD;;;;;EAKE,eAAA;EACA,cAAA;EACA,UAAA;CD9ID;ACqJD;EACE,kBAAA;CDnJD;AC6JD;;EAEE,qBAAA;CD3JD;ACsKD;;;;EAIE,2BAAA;EACA,gBAAA;CDpKD;AC2KD;;EAEE,gBAAA;CDzKD;ACgLD;;EAEE,UAAA;EACA,WAAA;CD9KD;ACsLD;EACE,oBAAA;CDpLD;AC+LD;;EAEE,+BAAA;KAAA,4BAAA;UAAA,uBAAA;EACA,WAAA;CD7LD;ACsMD;;EAEE,aAAA;CDpMD;AC4MD;EACE,8BAAA;EACA,gCAAA;KAAA,6BAAA;UAAA,wBAAA;CD1MD;ACmND;;EAEE,yBAAA;CDjND;ACwND;EACE,0BAAA;EACA,cAAA;EACA,+BAAA;CDtND;AC8ND;EACE,UAAA;EACA,WAAA;CD5ND;ACmOD;EACE,eAAA;CDjOD;ACyOD;EACE,kBAAA;CDvOD;ACiPD;EACE,0BAAA;EACA,kBAAA;CD/OD;ACkPD;;EAEE,WAAA;CDhPD;AACD,qFAAqF;AElFrF;EA7FI;;;IAGI,mCAAA;IACA,uBAAA;IACA,oCAAA;YAAA,4BAAA;IACA,6BAAA;GFkLL;EE/KC;;IAEI,2BAAA;GFiLL;EE9KC;IACI,6BAAA;GFgLL;EE7KC;IACI,8BAAA;GF+KL;EE1KC;;IAEI,YAAA;GF4KL;EEzKC;;IAEI,uBAAA;IACA,yBAAA;GF2KL;EExKC;IACI,4BAAA;GF0KL;EEvKC;;IAEI,yBAAA;GFyKL;EEtKC;IACI,2BAAA;GFwKL;EErKC;;;IAGI,WAAA;IACA,UAAA;GFuKL;EEpKC;;IAEI,wBAAA;GFsKL;EEhKC;IACI,cAAA;GFkKL;EEhKC;;IAGQ,kCAAA;GFiKT;EE9JC;IACI,uBAAA;GFgKL;EE7JC;IACI,qCAAA;GF+JL;EEhKC;;IAKQ,kCAAA;GF+JT;EE5JC;;IAGQ,kCAAA;GF6JT;CACF;AGnPD;EACE,oCAAA;EACA,sDAAA;EACA,gYAAA;CHqPD;AG7OD;EACE,mBAAA;EACA,SAAA;EACA,sBAAA;EACA,oCAAA;EACA,mBAAA;EACA,oBAAA;EACA,eAAA;EACA,oCAAA;EACA,mCAAA;CH+OD;AG3OmC;EAAW,iBAAA;CH8O9C;AG7OmC;EAAW,iBAAA;CHgP9C;AG9OmC;;EAAW,iBAAA;CHkP9C;AGjPmC;EAAW,iBAAA;CHoP9C;AGnPmC;EAAW,iBAAA;CHsP9C;AGrPmC;EAAW,iBAAA;CHwP9C;AGvPmC;EAAW,iBAAA;CH0P9C;AGzPmC;EAAW,iBAAA;CH4P9C;AG3PmC;EAAW,iBAAA;CH8P9C;AG7PmC;EAAW,iBAAA;CHgQ9C;AG/PmC;EAAW,iBAAA;CHkQ9C;AGjQmC;EAAW,iBAAA;CHoQ9C;AGnQmC;EAAW,iBAAA;CHsQ9C;AGrQmC;EAAW,iBAAA;CHwQ9C;AGvQmC;EAAW,iBAAA;CH0Q9C;AGzQmC;EAAW,iBAAA;CH4Q9C;AG3QmC;EAAW,iBAAA;CH8Q9C;AG7QmC;EAAW,iBAAA;CHgR9C;AG/QmC;EAAW,iBAAA;CHkR9C;AGjRmC;EAAW,iBAAA;CHoR9C;AGnRmC;EAAW,iBAAA;CHsR9C;AGrRmC;EAAW,iBAAA;CHwR9C;AGvRmC;EAAW,iBAAA;CH0R9C;AGzRmC;EAAW,iBAAA;CH4R9C;AG3RmC;EAAW,iBAAA;CH8R9C;AG7RmC;EAAW,iBAAA;CHgS9C;AG/RmC;EAAW,iBAAA;CHkS9C;AGjSmC;EAAW,iBAAA;CHoS9C;AGnSmC;EAAW,iBAAA;CHsS9C;AGrSmC;EAAW,iBAAA;CHwS9C;AGvSmC;EAAW,iBAAA;CH0S9C;AGzSmC;EAAW,iBAAA;CH4S9C;AG3SmC;EAAW,iBAAA;CH8S9C;AG7SmC;EAAW,iBAAA;CHgT9C;AG/SmC;EAAW,iBAAA;CHkT9C;AGjTmC;EAAW,iBAAA;CHoT9C;AGnTmC;EAAW,iBAAA;CHsT9C;AGrTmC;EAAW,iBAAA;CHwT9C;AGvTmC;EAAW,iBAAA;CH0T9C;AGzTmC;EAAW,iBAAA;CH4T9C;AG3TmC;EAAW,iBAAA;CH8T9C;AG7TmC;EAAW,iBAAA;CHgU9C;AG/TmC;EAAW,iBAAA;CHkU9C;AGjUmC;EAAW,iBAAA;CHoU9C;AGnUmC;EAAW,iBAAA;CHsU9C;AGrUmC;EAAW,iBAAA;CHwU9C;AGvUmC;EAAW,iBAAA;CH0U9C;AGzUmC;EAAW,iBAAA;CH4U9C;AG3UmC;EAAW,iBAAA;CH8U9C;AG7UmC;EAAW,iBAAA;CHgV9C;AG/UmC;EAAW,iBAAA;CHkV9C;AGjVmC;EAAW,iBAAA;CHoV9C;AGnVmC;EAAW,iBAAA;CHsV9C;AGrVmC;EAAW,iBAAA;CHwV9C;AGvVmC;EAAW,iBAAA;CH0V9C;AGzVmC;EAAW,iBAAA;CH4V9C;AG3VmC;EAAW,iBAAA;CH8V9C;AG7VmC;EAAW,iBAAA;CHgW9C;AG/VmC;EAAW,iBAAA;CHkW9C;AGjWmC;EAAW,iBAAA;CHoW9C;AGnWmC;EAAW,iBAAA;CHsW9C;AGrWmC;EAAW,iBAAA;CHwW9C;AGvWmC;EAAW,iBAAA;CH0W9C;AGzWmC;EAAW,iBAAA;CH4W9C;AG3WmC;EAAW,iBAAA;CH8W9C;AG7WmC;EAAW,iBAAA;CHgX9C;AG/WmC;EAAW,iBAAA;CHkX9C;AGjXmC;EAAW,iBAAA;CHoX9C;AGnXmC;EAAW,iBAAA;CHsX9C;AGrXmC;EAAW,iBAAA;CHwX9C;AGvXmC;EAAW,iBAAA;CH0X9C;AGzXmC;EAAW,iBAAA;CH4X9C;AG3XmC;EAAW,iBAAA;CH8X9C;AG7XmC;EAAW,iBAAA;CHgY9C;AG/XmC;EAAW,iBAAA;CHkY9C;AGjYmC;EAAW,iBAAA;CHoY9C;AGnYmC;EAAW,iBAAA;CHsY9C;AGrYmC;EAAW,iBAAA;CHwY9C;AGvYmC;EAAW,iBAAA;CH0Y9C;AGzYmC;EAAW,iBAAA;CH4Y9C;AG3YmC;EAAW,iBAAA;CH8Y9C;AG7YmC;EAAW,iBAAA;CHgZ9C;AG/YmC;EAAW,iBAAA;CHkZ9C;AGjZmC;EAAW,iBAAA;CHoZ9C;AGnZmC;EAAW,iBAAA;CHsZ9C;AGrZmC;EAAW,iBAAA;CHwZ9C;AGvZmC;EAAW,iBAAA;CH0Z9C;AGzZmC;EAAW,iBAAA;CH4Z9C;AG3ZmC;EAAW,iBAAA;CH8Z9C;AG7ZmC;EAAW,iBAAA;CHga9C;AG/ZmC;EAAW,iBAAA;CHka9C;AGjamC;EAAW,iBAAA;CHoa9C;AGnamC;EAAW,iBAAA;CHsa9C;AGramC;EAAW,iBAAA;CHwa9C;AGvamC;EAAW,iBAAA;CH0a9C;AGzamC;EAAW,iBAAA;CH4a9C;AG3amC;EAAW,iBAAA;CH8a9C;AG7amC;EAAW,iBAAA;CHgb9C;AG/amC;EAAW,iBAAA;CHkb9C;AGjbmC;EAAW,iBAAA;CHob9C;AGnbmC;EAAW,iBAAA;CHsb9C;AGrbmC;EAAW,iBAAA;CHwb9C;AGvbmC;EAAW,iBAAA;CH0b9C;AGzbmC;EAAW,iBAAA;CH4b9C;AG3bmC;EAAW,iBAAA;CH8b9C;AG7bmC;EAAW,iBAAA;CHgc9C;AG/bmC;EAAW,iBAAA;CHkc9C;AGjcmC;EAAW,iBAAA;CHoc9C;AGncmC;EAAW,iBAAA;CHsc9C;AGrcmC;EAAW,iBAAA;CHwc9C;AGvcmC;EAAW,iBAAA;CH0c9C;AGzcmC;EAAW,iBAAA;CH4c9C;AG3cmC;EAAW,iBAAA;CH8c9C;AG7cmC;EAAW,iBAAA;CHgd9C;AG/cmC;EAAW,iBAAA;CHkd9C;AGjdmC;EAAW,iBAAA;CHod9C;AGndmC;EAAW,iBAAA;CHsd9C;AGrdmC;EAAW,iBAAA;CHwd9C;AGvdmC;EAAW,iBAAA;CH0d9C;AGzdmC;EAAW,iBAAA;CH4d9C;AG3dmC;EAAW,iBAAA;CH8d9C;AG7dmC;EAAW,iBAAA;CHge9C;AG/dmC;EAAW,iBAAA;CHke9C;AGjemC;EAAW,iBAAA;CHoe9C;AGnemC;EAAW,iBAAA;CHse9C;AGremC;EAAW,iBAAA;CHwe9C;AGvemC;EAAW,iBAAA;CH0e9C;AGzemC;EAAW,iBAAA;CH4e9C;AG3emC;EAAW,iBAAA;CH8e9C;AG7emC;EAAW,iBAAA;CHgf9C;AG/emC;EAAW,iBAAA;CHkf9C;AGjfmC;EAAW,iBAAA;CHof9C;AGnfmC;EAAW,iBAAA;CHsf9C;AGrfmC;EAAW,iBAAA;CHwf9C;AGvfmC;EAAW,iBAAA;CH0f9C;AGzfmC;EAAW,iBAAA;CH4f9C;AG3fmC;EAAW,iBAAA;CH8f9C;AG7fmC;EAAW,iBAAA;CHggB9C;AG/fmC;EAAW,iBAAA;CHkgB9C;AGjgBmC;EAAW,iBAAA;CHogB9C;AGngBmC;EAAW,iBAAA;CHsgB9C;AGrgBmC;EAAW,iBAAA;CHwgB9C;AGvgBmC;EAAW,iBAAA;CH0gB9C;AGzgBmC;EAAW,iBAAA;CH4gB9C;AG3gBmC;EAAW,iBAAA;CH8gB9C;AG7gBmC;EAAW,iBAAA;CHghB9C;AG/gBmC;EAAW,iBAAA;CHkhB9C;AGjhBmC;EAAW,iBAAA;CHohB9C;AGnhBmC;EAAW,iBAAA;CHshB9C;AGrhBmC;EAAW,iBAAA;CHwhB9C;AGvhBmC;EAAW,iBAAA;CH0hB9C;AGzhBmC;EAAW,iBAAA;CH4hB9C;AG3hBmC;EAAW,iBAAA;CH8hB9C;AG7hBmC;EAAW,iBAAA;CHgiB9C;AG/hBmC;EAAW,iBAAA;CHkiB9C;AGjiBmC;EAAW,iBAAA;CHoiB9C;AGniBmC;EAAW,iBAAA;CHsiB9C;AGriBmC;EAAW,iBAAA;CHwiB9C;AGviBmC;EAAW,iBAAA;CH0iB9C;AGziBmC;EAAW,iBAAA;CH4iB9C;AG3iBmC;EAAW,iBAAA;CH8iB9C;AG7iBmC;EAAW,iBAAA;CHgjB9C;AG/iBmC;EAAW,iBAAA;CHkjB9C;AGjjBmC;EAAW,iBAAA;CHojB9C;AGnjBmC;EAAW,iBAAA;CHsjB9C;AGrjBmC;EAAW,iBAAA;CHwjB9C;AGvjBmC;EAAW,iBAAA;CH0jB9C;AGzjBmC;EAAW,iBAAA;CH4jB9C;AG3jBmC;EAAW,iBAAA;CH8jB9C;AG7jBmC;EAAW,iBAAA;CHgkB9C;AG/jBmC;EAAW,iBAAA;CHkkB9C;AGjkBmC;EAAW,iBAAA;CHokB9C;AGnkBmC;EAAW,iBAAA;CHskB9C;AGrkBmC;EAAW,iBAAA;CHwkB9C;AGvkBmC;EAAW,iBAAA;CH0kB9C;AGzkBmC;EAAW,iBAAA;CH4kB9C;AG3kBmC;EAAW,iBAAA;CH8kB9C;AG7kBmC;EAAW,iBAAA;CHglB9C;AG/kBmC;EAAW,iBAAA;CHklB9C;AGjlBmC;EAAW,iBAAA;CHolB9C;AGnlBmC;EAAW,iBAAA;CHslB9C;AGrlBmC;EAAW,iBAAA;CHwlB9C;AGvlBmC;EAAW,iBAAA;CH0lB9C;AGzlBmC;EAAW,iBAAA;CH4lB9C;AG3lBmC;EAAW,iBAAA;CH8lB9C;AG7lBmC;EAAW,iBAAA;CHgmB9C;AG/lBmC;EAAW,iBAAA;CHkmB9C;AGjmBmC;EAAW,iBAAA;CHomB9C;AGnmBmC;EAAW,iBAAA;CHsmB9C;AGrmBmC;EAAW,iBAAA;CHwmB9C;AGvmBmC;EAAW,iBAAA;CH0mB9C;AGzmBmC;EAAW,iBAAA;CH4mB9C;AG3mBmC;EAAW,iBAAA;CH8mB9C;AG7mBmC;EAAW,iBAAA;CHgnB9C;AG/mBmC;EAAW,iBAAA;CHknB9C;AGjnBmC;EAAW,iBAAA;CHonB9C;AGnnBmC;EAAW,iBAAA;CHsnB9C;AGrnBmC;EAAW,iBAAA;CHwnB9C;AGvnBmC;EAAW,iBAAA;CH0nB9C;AGznBmC;EAAW,iBAAA;CH4nB9C;AG3nBmC;EAAW,iBAAA;CH8nB9C;AG7nBmC;EAAW,iBAAA;CHgoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AGvoBmC;EAAW,iBAAA;CH0oB9C;AGzoBmC;EAAW,iBAAA;CH4oB9C;AG3oBmC;EAAW,iBAAA;CH8oB9C;AG7oBmC;EAAW,iBAAA;CHgpB9C;AG/oBmC;EAAW,iBAAA;CHkpB9C;AGjpBmC;EAAW,iBAAA;CHopB9C;AGnpBmC;EAAW,iBAAA;CHspB9C;AGrpBmC;EAAW,iBAAA;CHwpB9C;AGvpBmC;EAAW,iBAAA;CH0pB9C;AGzpBmC;EAAW,iBAAA;CH4pB9C;AG3pBmC;EAAW,iBAAA;CH8pB9C;AG7pBmC;EAAW,iBAAA;CHgqB9C;AG/pBmC;EAAW,iBAAA;CHkqB9C;AGjqBmC;EAAW,iBAAA;CHoqB9C;AGnqBmC;EAAW,iBAAA;CHsqB9C;AGrqBmC;EAAW,iBAAA;CHwqB9C;AGvqBmC;EAAW,iBAAA;CH0qB9C;AGzqBmC;EAAW,iBAAA;CH4qB9C;AG3qBmC;EAAW,iBAAA;CH8qB9C;AG7qBmC;EAAW,iBAAA;CHgrB9C;AG/qBmC;EAAW,iBAAA;CHkrB9C;AGjrBmC;EAAW,iBAAA;CHorB9C;AGnrBmC;EAAW,iBAAA;CHsrB9C;AGrrBmC;EAAW,iBAAA;CHwrB9C;AGvrBmC;EAAW,iBAAA;CH0rB9C;AGzrBmC;EAAW,iBAAA;CH4rB9C;AG3rBmC;EAAW,iBAAA;CH8rB9C;AG7rBmC;EAAW,iBAAA;CHgsB9C;AG/rBmC;EAAW,iBAAA;CHksB9C;AGjsBmC;EAAW,iBAAA;CHosB9C;AGnsBmC;EAAW,iBAAA;CHssB9C;AGrsBmC;EAAW,iBAAA;CHwsB9C;AGvsBmC;EAAW,iBAAA;CH0sB9C;AGzsBmC;EAAW,iBAAA;CH4sB9C;AG3sBmC;EAAW,iBAAA;CH8sB9C;AG7sBmC;EAAW,iBAAA;CHgtB9C;AG/sBmC;EAAW,iBAAA;CHktB9C;AGjtBmC;EAAW,iBAAA;CHotB9C;AGntBmC;EAAW,iBAAA;CHstB9C;AGrtBmC;EAAW,iBAAA;CHwtB9C;AGvtBmC;EAAW,iBAAA;CH0tB9C;AGztBmC;EAAW,iBAAA;CH4tB9C;AG3tBmC;EAAW,iBAAA;CH8tB9C;AG7tBmC;EAAW,iBAAA;CHguB9C;AG/tBmC;EAAW,iBAAA;CHkuB9C;AGjuBmC;EAAW,iBAAA;CHouB9C;AGnuBmC;EAAW,iBAAA;CHsuB9C;AGruBmC;EAAW,iBAAA;CHwuB9C;AGvuBmC;EAAW,iBAAA;CH0uB9C;AGzuBmC;EAAW,iBAAA;CH4uB9C;AG3uBmC;EAAW,iBAAA;CH8uB9C;AG7uBmC;EAAW,iBAAA;CHgvB9C;AIthCD;ECgEE,+BAAA;EACG,4BAAA;EACK,uBAAA;CLy9BT;AIxhCD;;EC6DE,+BAAA;EACG,4BAAA;EACK,uBAAA;CL+9BT;AIthCD;EACE,gBAAA;EACA,8CAAA;CJwhCD;AIrhCD;EACE,4DAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,uBAAA;CJuhCD;AInhCD;;;;EAIE,qBAAA;EACA,mBAAA;EACA,qBAAA;CJqhCD;AI/gCD;EACE,eAAA;EACA,sBAAA;CJihCD;AI/gCC;;EAEE,eAAA;EACA,2BAAA;CJihCH;AI9gCC;EEnDA,2CAAA;EACA,qBAAA;CNokCD;AIvgCD;EACE,UAAA;CJygCD;AIngCD;EACE,uBAAA;CJqgCD;AIjgCD;;;;;EGvEE,eAAA;EACA,gBAAA;EACA,aAAA;CP+kCD;AIrgCD;EACE,mBAAA;CJugCD;AIjgCD;EACE,aAAA;EACA,wBAAA;EACA,uBAAA;EACA,uBAAA;EACA,mBAAA;EC6FA,yCAAA;EACK,oCAAA;EACG,iCAAA;EEvLR,sBAAA;EACA,gBAAA;EACA,aAAA;CP+lCD;AIjgCD;EACE,mBAAA;CJmgCD;AI7/BD;EACE,iBAAA;EACA,oBAAA;EACA,UAAA;EACA,8BAAA;CJ+/BD;AIv/BD;EACE,mBAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,WAAA;EACA,iBAAA;EACA,uBAAA;EACA,UAAA;CJy/BD;AIj/BC;;EAEE,iBAAA;EACA,YAAA;EACA,aAAA;EACA,UAAA;EACA,kBAAA;EACA,WAAA;CJm/BH;AIx+BD;EACE,gBAAA;CJ0+BD;AQjoCD;;;;;;;;;;;;EAEE,qBAAA;EACA,iBAAA;EACA,iBAAA;EACA,eAAA;CR6oCD;AQlpCD;;;;;;;;;;;;;;;;;;;;;;;;EASI,oBAAA;EACA,eAAA;EACA,eAAA;CRmqCH;AQ/pCD;;;;;;EAGE,iBAAA;EACA,oBAAA;CRoqCD;AQxqCD;;;;;;;;;;;;EAQI,eAAA;CR8qCH;AQ3qCD;;;;;;EAGE,iBAAA;EACA,oBAAA;CRgrCD;AQprCD;;;;;;;;;;;;EAQI,eAAA;CR0rCH;AQtrCD;;EAAU,gBAAA;CR0rCT;AQzrCD;;EAAU,gBAAA;CR6rCT;AQ5rCD;;EAAU,gBAAA;CRgsCT;AQ/rCD;;EAAU,gBAAA;CRmsCT;AQlsCD;;EAAU,gBAAA;CRssCT;AQrsCD;;EAAU,gBAAA;CRysCT;AQnsCD;EACE,iBAAA;CRqsCD;AQlsCD;EACE,oBAAA;EACA,gBAAA;EACA,iBAAA;EACA,iBAAA;CRosCD;AQ/rCD;EAwOA;IA1OI,gBAAA;GRqsCD;CACF;AQ7rCD;;EAEE,eAAA;CR+rCD;AQ5rCD;;EAEE,0BAAA;EACA,cAAA;CR8rCD;AQ1rCD;EAAuB,iBAAA;CR6rCtB;AQ5rCD;EAAuB,kBAAA;CR+rCtB;AQ9rCD;EAAuB,mBAAA;CRisCtB;AQhsCD;EAAuB,oBAAA;CRmsCtB;AQlsCD;EAAuB,oBAAA;CRqsCtB;AQlsCD;EAAuB,0BAAA;CRqsCtB;AQpsCD;EAAuB,0BAAA;CRusCtB;AQtsCD;EAAuB,2BAAA;CRysCtB;AQtsCD;EACE,eAAA;CRwsCD;AQtsCD;ECrGE,eAAA;CT8yCD;AS7yCC;;EAEE,eAAA;CT+yCH;AQ1sCD;ECxGE,eAAA;CTqzCD;ASpzCC;;EAEE,eAAA;CTszCH;AQ9sCD;EC3GE,eAAA;CT4zCD;AS3zCC;;EAEE,eAAA;CT6zCH;AQltCD;EC9GE,eAAA;CTm0CD;ASl0CC;;EAEE,eAAA;CTo0CH;AQttCD;ECjHE,eAAA;CT00CD;ASz0CC;;EAEE,eAAA;CT20CH;AQttCD;EAGE,YAAA;EE3HA,0BAAA;CVk1CD;AUj1CC;;EAEE,0BAAA;CVm1CH;AQxtCD;EE9HE,0BAAA;CVy1CD;AUx1CC;;EAEE,0BAAA;CV01CH;AQ5tCD;EEjIE,0BAAA;CVg2CD;AU/1CC;;EAEE,0BAAA;CVi2CH;AQhuCD;EEpIE,0BAAA;CVu2CD;AUt2CC;;EAEE,0BAAA;CVw2CH;AQpuCD;EEvIE,0BAAA;CV82CD;AU72CC;;EAEE,0BAAA;CV+2CH;AQnuCD;EACE,oBAAA;EACA,oBAAA;EACA,iCAAA;CRquCD;AQ7tCD;;EAEE,cAAA;EACA,oBAAA;CR+tCD;AQluCD;;;;EAMI,iBAAA;CRkuCH;AQ3tCD;EACE,gBAAA;EACA,iBAAA;CR6tCD;AQztCD;EALE,gBAAA;EACA,iBAAA;EAMA,kBAAA;CR4tCD;AQ9tCD;EAKI,sBAAA;EACA,kBAAA;EACA,mBAAA;CR4tCH;AQvtCD;EACE,cAAA;EACA,oBAAA;CRytCD;AQvtCD;;EAEE,wBAAA;CRytCD;AQvtCD;EACE,kBAAA;CRytCD;AQvtCD;EACE,eAAA;CRytCD;AQhsCD;EA6EA;IAvFM,YAAA;IACA,aAAA;IACA,YAAA;IACA,kBAAA;IGtNJ,iBAAA;IACA,wBAAA;IACA,oBAAA;GXq6CC;EQ7nCH;IAhFM,mBAAA;GRgtCH;CACF;AQvsCD;;EAGE,aAAA;EACA,kCAAA;CRwsCD;AQtsCD;EACE,eAAA;EA9IqB,0BAAA;CRu1CtB;AQpsCD;EACE,mBAAA;EACA,iBAAA;EACA,kBAAA;EACA,+BAAA;CRssCD;AQjsCG;;;EACE,iBAAA;CRqsCL;AQ/sCD;;;EAmBI,eAAA;EACA,eAAA;EACA,wBAAA;EACA,eAAA;CRisCH;AQ/rCG;;;EACE,uBAAA;CRmsCL;AQ3rCD;;EAEE,oBAAA;EACA,gBAAA;EACA,gCAAA;EACA,eAAA;EACA,kBAAA;CR6rCD;AQvrCG;;;;;;EAAW,YAAA;CR+rCd;AQ9rCG;;;;;;EACE,uBAAA;CRqsCL;AQ/rCD;EACE,oBAAA;EACA,mBAAA;EACA,wBAAA;CRisCD;AYv+CD;;;;EAIE,+DAAA;CZy+CD;AYr+CD;EACE,iBAAA;EACA,eAAA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;CZu+CD;AYn+CD;EACE,iBAAA;EACA,eAAA;EACA,YAAA;EACA,uBAAA;EACA,mBAAA;EACA,uDAAA;UAAA,+CAAA;CZq+CD;AY3+CD;EASI,WAAA;EACA,gBAAA;EACA,kBAAA;EACA,yBAAA;UAAA,iBAAA;CZq+CH;AYh+CD;EACE,eAAA;EACA,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,sBAAA;EACA,sBAAA;EACA,eAAA;EACA,0BAAA;EACA,uBAAA;EACA,mBAAA;CZk+CD;AY7+CD;EAeI,WAAA;EACA,mBAAA;EACA,eAAA;EACA,sBAAA;EACA,8BAAA;EACA,iBAAA;CZi+CH;AY59CD;EACE,kBAAA;EACA,mBAAA;CZ89CD;AaxhDD;ECHE,mBAAA;EACA,kBAAA;EACA,mBAAA;EACA,oBAAA;Cd8hDD;AaxhDC;EAqEF;IAvEI,aAAA;Gb8hDD;CACF;Aa1hDC;EAkEF;IApEI,aAAA;GbgiDD;CACF;Aa5hDD;EA+DA;IAjEI,cAAA;GbkiDD;CACF;AazhDD;ECvBE,mBAAA;EACA,kBAAA;EACA,mBAAA;EACA,oBAAA;CdmjDD;AathDD;ECvBE,mBAAA;EACA,oBAAA;CdgjDD;AehjDG;EACE,mBAAA;EAEA,gBAAA;EAEA,mBAAA;EACA,oBAAA;CfgjDL;AehiDG;EACE,YAAA;CfkiDL;Ae3hDC;EACE,YAAA;Cf6hDH;Ae9hDC;EACE,oBAAA;CfgiDH;AejiDC;EACE,oBAAA;CfmiDH;AepiDC;EACE,WAAA;CfsiDH;AeviDC;EACE,oBAAA;CfyiDH;Ae1iDC;EACE,oBAAA;Cf4iDH;Ae7iDC;EACE,WAAA;Cf+iDH;AehjDC;EACE,oBAAA;CfkjDH;AenjDC;EACE,oBAAA;CfqjDH;AetjDC;EACE,WAAA;CfwjDH;AezjDC;EACE,oBAAA;Cf2jDH;Ae5jDC;EACE,mBAAA;Cf8jDH;AehjDC;EACE,YAAA;CfkjDH;AenjDC;EACE,oBAAA;CfqjDH;AetjDC;EACE,oBAAA;CfwjDH;AezjDC;EACE,WAAA;Cf2jDH;Ae5jDC;EACE,oBAAA;Cf8jDH;Ae/jDC;EACE,oBAAA;CfikDH;AelkDC;EACE,WAAA;CfokDH;AerkDC;EACE,oBAAA;CfukDH;AexkDC;EACE,oBAAA;Cf0kDH;Ae3kDC;EACE,WAAA;Cf6kDH;Ae9kDC;EACE,oBAAA;CfglDH;AejlDC;EACE,mBAAA;CfmlDH;Ae/kDC;EACE,YAAA;CfilDH;AejmDC;EACE,WAAA;CfmmDH;AepmDC;EACE,mBAAA;CfsmDH;AevmDC;EACE,mBAAA;CfymDH;Ae1mDC;EACE,UAAA;Cf4mDH;Ae7mDC;EACE,mBAAA;Cf+mDH;AehnDC;EACE,mBAAA;CfknDH;AennDC;EACE,UAAA;CfqnDH;AetnDC;EACE,mBAAA;CfwnDH;AeznDC;EACE,mBAAA;Cf2nDH;Ae5nDC;EACE,UAAA;Cf8nDH;Ae/nDC;EACE,mBAAA;CfioDH;AeloDC;EACE,kBAAA;CfooDH;AehoDC;EACE,WAAA;CfkoDH;AepnDC;EACE,kBAAA;CfsnDH;AevnDC;EACE,0BAAA;CfynDH;Ae1nDC;EACE,0BAAA;Cf4nDH;Ae7nDC;EACE,iBAAA;Cf+nDH;AehoDC;EACE,0BAAA;CfkoDH;AenoDC;EACE,0BAAA;CfqoDH;AetoDC;EACE,iBAAA;CfwoDH;AezoDC;EACE,0BAAA;Cf2oDH;Ae5oDC;EACE,0BAAA;Cf8oDH;Ae/oDC;EACE,iBAAA;CfipDH;AelpDC;EACE,0BAAA;CfopDH;AerpDC;EACE,yBAAA;CfupDH;AexpDC;EACE,gBAAA;Cf0pDH;Aa1pDD;EElCI;IACE,YAAA;Gf+rDH;EexrDD;IACE,YAAA;Gf0rDD;Ee3rDD;IACE,oBAAA;Gf6rDD;Ee9rDD;IACE,oBAAA;GfgsDD;EejsDD;IACE,WAAA;GfmsDD;EepsDD;IACE,oBAAA;GfssDD;EevsDD;IACE,oBAAA;GfysDD;Ee1sDD;IACE,WAAA;Gf4sDD;Ee7sDD;IACE,oBAAA;Gf+sDD;EehtDD;IACE,oBAAA;GfktDD;EentDD;IACE,WAAA;GfqtDD;EettDD;IACE,oBAAA;GfwtDD;EeztDD;IACE,mBAAA;Gf2tDD;Ee7sDD;IACE,YAAA;Gf+sDD;EehtDD;IACE,oBAAA;GfktDD;EentDD;IACE,oBAAA;GfqtDD;EettDD;IACE,WAAA;GfwtDD;EeztDD;IACE,oBAAA;Gf2tDD;Ee5tDD;IACE,oBAAA;Gf8tDD;Ee/tDD;IACE,WAAA;GfiuDD;EeluDD;IACE,oBAAA;GfouDD;EeruDD;IACE,oBAAA;GfuuDD;EexuDD;IACE,WAAA;Gf0uDD;Ee3uDD;IACE,oBAAA;Gf6uDD;Ee9uDD;IACE,mBAAA;GfgvDD;Ee5uDD;IACE,YAAA;Gf8uDD;Ee9vDD;IACE,WAAA;GfgwDD;EejwDD;IACE,mBAAA;GfmwDD;EepwDD;IACE,mBAAA;GfswDD;EevwDD;IACE,UAAA;GfywDD;Ee1wDD;IACE,mBAAA;Gf4wDD;Ee7wDD;IACE,mBAAA;Gf+wDD;EehxDD;IACE,UAAA;GfkxDD;EenxDD;IACE,mBAAA;GfqxDD;EetxDD;IACE,mBAAA;GfwxDD;EezxDD;IACE,UAAA;Gf2xDD;Ee5xDD;IACE,mBAAA;Gf8xDD;Ee/xDD;IACE,kBAAA;GfiyDD;Ee7xDD;IACE,WAAA;Gf+xDD;EejxDD;IACE,kBAAA;GfmxDD;EepxDD;IACE,0BAAA;GfsxDD;EevxDD;IACE,0BAAA;GfyxDD;Ee1xDD;IACE,iBAAA;Gf4xDD;Ee7xDD;IACE,0BAAA;Gf+xDD;EehyDD;IACE,0BAAA;GfkyDD;EenyDD;IACE,iBAAA;GfqyDD;EetyDD;IACE,0BAAA;GfwyDD;EezyDD;IACE,0BAAA;Gf2yDD;Ee5yDD;IACE,iBAAA;Gf8yDD;Ee/yDD;IACE,0BAAA;GfizDD;EelzDD;IACE,yBAAA;GfozDD;EerzDD;IACE,gBAAA;GfuzDD;CACF;Aa/yDD;EE3CI;IACE,YAAA;Gf61DH;Eet1DD;IACE,YAAA;Gfw1DD;Eez1DD;IACE,oBAAA;Gf21DD;Ee51DD;IACE,oBAAA;Gf81DD;Ee/1DD;IACE,WAAA;Gfi2DD;Eel2DD;IACE,oBAAA;Gfo2DD;Eer2DD;IACE,oBAAA;Gfu2DD;Eex2DD;IACE,WAAA;Gf02DD;Ee32DD;IACE,oBAAA;Gf62DD;Ee92DD;IACE,oBAAA;Gfg3DD;Eej3DD;IACE,WAAA;Gfm3DD;Eep3DD;IACE,oBAAA;Gfs3DD;Eev3DD;IACE,mBAAA;Gfy3DD;Ee32DD;IACE,YAAA;Gf62DD;Ee92DD;IACE,oBAAA;Gfg3DD;Eej3DD;IACE,oBAAA;Gfm3DD;Eep3DD;IACE,WAAA;Gfs3DD;Eev3DD;IACE,oBAAA;Gfy3DD;Ee13DD;IACE,oBAAA;Gf43DD;Ee73DD;IACE,WAAA;Gf+3DD;Eeh4DD;IACE,oBAAA;Gfk4DD;Een4DD;IACE,oBAAA;Gfq4DD;Eet4DD;IACE,WAAA;Gfw4DD;Eez4DD;IACE,oBAAA;Gf24DD;Ee54DD;IACE,mBAAA;Gf84DD;Ee14DD;IACE,YAAA;Gf44DD;Ee55DD;IACE,WAAA;Gf85DD;Ee/5DD;IACE,mBAAA;Gfi6DD;Eel6DD;IACE,mBAAA;Gfo6DD;Eer6DD;IACE,UAAA;Gfu6DD;Eex6DD;IACE,mBAAA;Gf06DD;Ee36DD;IACE,mBAAA;Gf66DD;Ee96DD;IACE,UAAA;Gfg7DD;Eej7DD;IACE,mBAAA;Gfm7DD;Eep7DD;IACE,mBAAA;Gfs7DD;Eev7DD;IACE,UAAA;Gfy7DD;Ee17DD;IACE,mBAAA;Gf47DD;Ee77DD;IACE,kBAAA;Gf+7DD;Ee37DD;IACE,WAAA;Gf67DD;Ee/6DD;IACE,kBAAA;Gfi7DD;Eel7DD;IACE,0BAAA;Gfo7DD;Eer7DD;IACE,0BAAA;Gfu7DD;Eex7DD;IACE,iBAAA;Gf07DD;Ee37DD;IACE,0BAAA;Gf67DD;Ee97DD;IACE,0BAAA;Gfg8DD;Eej8DD;IACE,iBAAA;Gfm8DD;Eep8DD;IACE,0BAAA;Gfs8DD;Eev8DD;IACE,0BAAA;Gfy8DD;Ee18DD;IACE,iBAAA;Gf48DD;Ee78DD;IACE,0BAAA;Gf+8DD;Eeh9DD;IACE,yBAAA;Gfk9DD;Een9DD;IACE,gBAAA;Gfq9DD;CACF;Aa18DD;EE9CI;IACE,YAAA;Gf2/DH;Eep/DD;IACE,YAAA;Gfs/DD;Eev/DD;IACE,oBAAA;Gfy/DD;Ee1/DD;IACE,oBAAA;Gf4/DD;Ee7/DD;IACE,WAAA;Gf+/DD;EehgED;IACE,oBAAA;GfkgED;EengED;IACE,oBAAA;GfqgED;EetgED;IACE,WAAA;GfwgED;EezgED;IACE,oBAAA;Gf2gED;Ee5gED;IACE,oBAAA;Gf8gED;Ee/gED;IACE,WAAA;GfihED;EelhED;IACE,oBAAA;GfohED;EerhED;IACE,mBAAA;GfuhED;EezgED;IACE,YAAA;Gf2gED;Ee5gED;IACE,oBAAA;Gf8gED;Ee/gED;IACE,oBAAA;GfihED;EelhED;IACE,WAAA;GfohED;EerhED;IACE,oBAAA;GfuhED;EexhED;IACE,oBAAA;Gf0hED;Ee3hED;IACE,WAAA;Gf6hED;Ee9hED;IACE,oBAAA;GfgiED;EejiED;IACE,oBAAA;GfmiED;EepiED;IACE,WAAA;GfsiED;EeviED;IACE,oBAAA;GfyiED;Ee1iED;IACE,mBAAA;Gf4iED;EexiED;IACE,YAAA;Gf0iED;Ee1jED;IACE,WAAA;Gf4jED;Ee7jED;IACE,mBAAA;Gf+jED;EehkED;IACE,mBAAA;GfkkED;EenkED;IACE,UAAA;GfqkED;EetkED;IACE,mBAAA;GfwkED;EezkED;IACE,mBAAA;Gf2kED;Ee5kED;IACE,UAAA;Gf8kED;Ee/kED;IACE,mBAAA;GfilED;EellED;IACE,mBAAA;GfolED;EerlED;IACE,UAAA;GfulED;EexlED;IACE,mBAAA;Gf0lED;Ee3lED;IACE,kBAAA;Gf6lED;EezlED;IACE,WAAA;Gf2lED;Ee7kED;IACE,kBAAA;Gf+kED;EehlED;IACE,0BAAA;GfklED;EenlED;IACE,0BAAA;GfqlED;EetlED;IACE,iBAAA;GfwlED;EezlED;IACE,0BAAA;Gf2lED;Ee5lED;IACE,0BAAA;Gf8lED;Ee/lED;IACE,iBAAA;GfimED;EelmED;IACE,0BAAA;GfomED;EermED;IACE,0BAAA;GfumED;EexmED;IACE,iBAAA;Gf0mED;Ee3mED;IACE,0BAAA;Gf6mED;Ee9mED;IACE,yBAAA;GfgnED;EejnED;IACE,gBAAA;GfmnED;CACF;AgBvrED;EACE,8BAAA;ChByrED;AgBvrED;EACE,iBAAA;EACA,oBAAA;EACA,eAAA;EACA,iBAAA;ChByrED;AgBvrED;EACE,iBAAA;ChByrED;AgBnrED;EACE,YAAA;EACA,gBAAA;EACA,oBAAA;ChBqrED;AgBxrED;;;;;;EAWQ,aAAA;EACA,wBAAA;EACA,oBAAA;EACA,2BAAA;ChBqrEP;AgBnsED;EAoBI,uBAAA;EACA,8BAAA;ChBkrEH;AgBvsED;;;;;;EA8BQ,cAAA;ChBirEP;AgB/sED;EAoCI,2BAAA;ChB8qEH;AgBltED;EAyCI,uBAAA;ChB4qEH;AgBrqED;;;;;;EAOQ,aAAA;ChBsqEP;AgB3pED;EACE,uBAAA;ChB6pED;AgB9pED;;;;;;EAQQ,uBAAA;ChB8pEP;AgBtqED;;EAeM,yBAAA;ChB2pEL;AgBjpED;EAEI,0BAAA;ChBkpEH;AgBzoED;EAEI,0BAAA;ChB0oEH;AgBjoED;EACE,iBAAA;EACA,YAAA;EACA,sBAAA;ChBmoED;AgB9nEG;;EACE,iBAAA;EACA,YAAA;EACA,oBAAA;ChBioEL;AiB7wEC;;;;;;;;;;;;EAOI,0BAAA;CjBoxEL;AiB9wEC;;;;;EAMI,0BAAA;CjB+wEL;AiBlyEC;;;;;;;;;;;;EAOI,0BAAA;CjByyEL;AiBnyEC;;;;;EAMI,0BAAA;CjBoyEL;AiBvzEC;;;;;;;;;;;;EAOI,0BAAA;CjB8zEL;AiBxzEC;;;;;EAMI,0BAAA;CjByzEL;AiB50EC;;;;;;;;;;;;EAOI,0BAAA;CjBm1EL;AiB70EC;;;;;EAMI,0BAAA;CjB80EL;AiBj2EC;;;;;;;;;;;;EAOI,0BAAA;CjBw2EL;AiBl2EC;;;;;EAMI,0BAAA;CjBm2EL;AgBjtED;EACE,iBAAA;EACA,kBAAA;ChBmtED;AgBtpED;EACA;IA3DI,YAAA;IACA,oBAAA;IACA,mBAAA;IACA,6CAAA;IACA,uBAAA;GhBotED;EgB7pEH;IAnDM,iBAAA;GhBmtEH;EgBhqEH;;;;;;IA1CY,oBAAA;GhBktET;EgBxqEH;IAlCM,UAAA;GhB6sEH;EgB3qEH;;;;;;IAzBY,eAAA;GhB4sET;EgBnrEH;;;;;;IArBY,gBAAA;GhBgtET;EgB3rEH;;;;IARY,iBAAA;GhBysET;CACF;AkBn6ED;EACE,WAAA;EACA,UAAA;EACA,UAAA;EAIA,aAAA;ClBk6ED;AkB/5ED;EACE,eAAA;EACA,YAAA;EACA,WAAA;EACA,oBAAA;EACA,gBAAA;EACA,qBAAA;EACA,eAAA;EACA,UAAA;EACA,iCAAA;ClBi6ED;AkB95ED;EACE,sBAAA;EACA,gBAAA;EACA,mBAAA;EACA,kBAAA;ClBg6ED;AkBr5ED;Eb4BE,+BAAA;EACG,4BAAA;EACK,uBAAA;CL43ET;AkBr5ED;;EAEE,gBAAA;EACA,mBAAA;EACA,oBAAA;ClBu5ED;AkBp5ED;EACE,eAAA;ClBs5ED;AkBl5ED;EACE,eAAA;EACA,YAAA;ClBo5ED;AkBh5ED;;EAEE,aAAA;ClBk5ED;AkB94ED;;;EZrEE,2CAAA;EACA,qBAAA;CNw9ED;AkB74ED;EACE,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;ClB+4ED;AkBr3ED;EACE,eAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,uBAAA;EACA,uBAAA;EACA,uBAAA;EACA,mBAAA;EbxDA,yDAAA;EACQ,iDAAA;EAyHR,uFAAA;EACK,0EAAA;EACG,uEAAA;CLwzET;AmBh8EC;EACE,sBAAA;EACA,WAAA;EdUF,uFAAA;EACQ,+EAAA;CLy7ET;AKx5EC;EACE,YAAA;EACA,WAAA;CL05EH;AKx5EC;EAA0B,YAAA;CL25E3B;AK15EC;EAAgC,YAAA;CL65EjC;AkBj4EC;EACE,UAAA;EACA,8BAAA;ClBm4EH;AkB33EC;;;EAGE,0BAAA;EACA,WAAA;ClB63EH;AkB13EC;;EAEE,oBAAA;ClB43EH;AkBx3EC;EACE,aAAA;ClB03EH;AkB92ED;EACE,yBAAA;ClBg3ED;AkBx0ED;EAtBI;;;;IACE,kBAAA;GlBo2EH;EkBj2EC;;;;;;;;IAEE,kBAAA;GlBy2EH;EkBt2EC;;;;;;;;IAEE,kBAAA;GlB82EH;CACF;AkBp2ED;EACE,oBAAA;ClBs2ED;AkB91ED;;EAEE,mBAAA;EACA,eAAA;EACA,iBAAA;EACA,oBAAA;ClBg2ED;AkBr2ED;;EAQI,iBAAA;EACA,mBAAA;EACA,iBAAA;EACA,oBAAA;EACA,gBAAA;ClBi2EH;AkB91ED;;;;EAIE,mBAAA;EACA,mBAAA;EACA,mBAAA;ClBg2ED;AkB71ED;;EAEE,iBAAA;ClB+1ED;AkB31ED;;EAEE,mBAAA;EACA,sBAAA;EACA,mBAAA;EACA,iBAAA;EACA,uBAAA;EACA,oBAAA;EACA,gBAAA;ClB61ED;AkB31ED;;EAEE,cAAA;EACA,kBAAA;ClB61ED;AkBp1EC;;;;;;EAGE,oBAAA;ClBy1EH;AkBn1EC;;;;EAEE,oBAAA;ClBu1EH;AkBj1EC;;;;EAGI,oBAAA;ClBo1EL;AkBz0ED;EAEE,iBAAA;EACA,oBAAA;EAEA,iBAAA;EACA,iBAAA;ClBy0ED;AkBv0EC;;EAEE,gBAAA;EACA,iBAAA;ClBy0EH;AkB5zED;ECnQE,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CnBkkFD;AmBhkFC;EACE,aAAA;EACA,kBAAA;CnBkkFH;AmB/jFC;;EAEE,aAAA;CnBikFH;AkBx0ED;EAEI,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;ClBy0EH;AkB/0ED;EASI,aAAA;EACA,kBAAA;ClBy0EH;AkBn1ED;;EAcI,aAAA;ClBy0EH;AkBv1ED;EAiBI,aAAA;EACA,iBAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;ClBy0EH;AkBr0ED;EC/RE,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CnBumFD;AmBrmFC;EACE,aAAA;EACA,kBAAA;CnBumFH;AmBpmFC;;EAEE,aAAA;CnBsmFH;AkBj1ED;EAEI,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;ClBk1EH;AkBx1ED;EASI,aAAA;EACA,kBAAA;ClBk1EH;AkB51ED;;EAcI,aAAA;ClBk1EH;AkBh2ED;EAiBI,aAAA;EACA,iBAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;ClBk1EH;AkBz0ED;EAEE,mBAAA;ClB00ED;AkB50ED;EAMI,sBAAA;ClBy0EH;AkBr0ED;EACE,mBAAA;EACA,OAAA;EACA,SAAA;EACA,WAAA;EACA,eAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,mBAAA;EACA,qBAAA;ClBu0ED;AkBr0ED;;;EAGE,YAAA;EACA,aAAA;EACA,kBAAA;ClBu0ED;AkBr0ED;;;EAGE,YAAA;EACA,aAAA;EACA,kBAAA;ClBu0ED;AkBn0ED;;;;;;;;;;EC1ZI,eAAA;CnByuFH;AkB/0ED;ECtZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CL0rFT;AmBxuFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CL+rFT;AkBz1ED;EC5YI,eAAA;EACA,sBAAA;EACA,0BAAA;CnBwuFH;AkB91ED;ECtYI,eAAA;CnBuuFH;AkB91ED;;;;;;;;;;EC7ZI,eAAA;CnBuwFH;AkB12ED;ECzZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CLwtFT;AmBtwFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CL6tFT;AkBp3ED;EC/YI,eAAA;EACA,sBAAA;EACA,0BAAA;CnBswFH;AkBz3ED;ECzYI,eAAA;CnBqwFH;AkBz3ED;;;;;;;;;;EChaI,eAAA;CnBqyFH;AkBr4ED;EC5ZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CLsvFT;AmBpyFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CL2vFT;AkB/4ED;EClZI,eAAA;EACA,sBAAA;EACA,0BAAA;CnBoyFH;AkBp5ED;EC5YI,eAAA;CnBmyFH;AkBh5EC;EACE,UAAA;ClBk5EH;AkBh5EC;EACE,OAAA;ClBk5EH;AkBx4ED;EACE,eAAA;EACA,gBAAA;EACA,oBAAA;EACA,eAAA;ClB04ED;AkBvzED;EAwEA;IAtIM,sBAAA;IACA,iBAAA;IACA,uBAAA;GlBy3EH;EkBrvEH;IA/HM,sBAAA;IACA,YAAA;IACA,uBAAA;GlBu3EH;EkB1vEH;IAxHM,sBAAA;GlBq3EH;EkB7vEH;IApHM,sBAAA;IACA,uBAAA;GlBo3EH;EkBjwEH;;;IA9GQ,YAAA;GlBo3EL;EkBtwEH;IAxGM,YAAA;GlBi3EH;EkBzwEH;IApGM,iBAAA;IACA,uBAAA;GlBg3EH;EkB7wEH;;IA5FM,sBAAA;IACA,cAAA;IACA,iBAAA;IACA,uBAAA;GlB62EH;EkBpxEH;;IAtFQ,gBAAA;GlB82EL;EkBxxEH;;IAjFM,mBAAA;IACA,eAAA;GlB62EH;EkB7xEH;IA3EM,OAAA;GlB22EH;CACF;AkBj2ED;;;;EASI,cAAA;EACA,iBAAA;EACA,iBAAA;ClB81EH;AkBz2ED;;EAiBI,iBAAA;ClB41EH;AkB72ED;EJthBE,mBAAA;EACA,oBAAA;Cds4FD;AkB10EC;EAyBF;IAnCM,kBAAA;IACA,iBAAA;IACA,iBAAA;GlBw1EH;CACF;AkBx3ED;EAwCI,YAAA;ClBm1EH;AkBr0EC;EAUF;IAdQ,kBAAA;IACA,gBAAA;GlB60EL;CACF;AkBn0EC;EAEF;IANQ,iBAAA;IACA,gBAAA;GlB20EL;CACF;AoBp6FD;EACE,sBAAA;EACA,iBAAA;EACA,oBAAA;EACA,mBAAA;EACA,uBAAA;EACA,+BAAA;MAAA,2BAAA;EACA,gBAAA;EACA,uBAAA;EACA,8BAAA;EACA,oBAAA;EC0CA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,mBAAA;EhB+JA,0BAAA;EACG,uBAAA;EACC,sBAAA;EACI,kBAAA;CL+tFT;AoBv6FG;;;;;;EdnBF,2CAAA;EACA,qBAAA;CNk8FD;AoB16FC;;;EAGE,YAAA;EACA,sBAAA;CpB46FH;AoBz6FC;;EAEE,WAAA;EACA,uBAAA;Ef2BF,yDAAA;EACQ,iDAAA;CLi5FT;AoBz6FC;;;EAGE,oBAAA;EE7CF,cAAA;EAGA,0BAAA;EjB8DA,yBAAA;EACQ,iBAAA;CL05FT;AoBz6FG;;EAEE,qBAAA;CpB26FL;AoBl6FD;EC3DE,YAAA;EACA,uBAAA;EACA,mBAAA;CrBg+FD;AqB99FC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBg+FP;AqB99FC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBg+FP;AqB99FC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBg+FP;AqB99FG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBs+FT;AqBn+FC;;;EAGE,uBAAA;CrBq+FH;AqBh+FG;;;;;;;;;EAGE,uBAAA;EACI,mBAAA;CrBw+FT;AoBv9FD;ECZI,YAAA;EACA,uBAAA;CrBs+FH;AoBx9FD;EC9DE,YAAA;EACA,0BAAA;EACA,sBAAA;CrByhGD;AqBvhGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrByhGP;AqBvhGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrByhGP;AqBvhGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrByhGP;AqBvhGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB+hGT;AqB5hGC;;;EAGE,uBAAA;CrB8hGH;AqBzhGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrBiiGT;AoB7gGD;ECfI,eAAA;EACA,uBAAA;CrB+hGH;AoB7gGD;EClEE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBklGD;AqBhlGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBklGP;AqBhlGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBklGP;AqBhlGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBklGP;AqBhlGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBwlGT;AqBrlGC;;;EAGE,uBAAA;CrBulGH;AqBllGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrB0lGT;AoBlkGD;ECnBI,eAAA;EACA,uBAAA;CrBwlGH;AoBlkGD;ECtEE,YAAA;EACA,0BAAA;EACA,sBAAA;CrB2oGD;AqBzoGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB2oGP;AqBzoGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB2oGP;AqBzoGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB2oGP;AqBzoGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBipGT;AqB9oGC;;;EAGE,uBAAA;CrBgpGH;AqB3oGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrBmpGT;AoBvnGD;ECvBI,eAAA;EACA,uBAAA;CrBipGH;AoBvnGD;EC1EE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBosGD;AqBlsGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBosGP;AqBlsGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBosGP;AqBlsGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBosGP;AqBlsGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB0sGT;AqBvsGC;;;EAGE,uBAAA;CrBysGH;AqBpsGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrB4sGT;AoB5qGD;EC3BI,eAAA;EACA,uBAAA;CrB0sGH;AoB5qGD;EC9EE,YAAA;EACA,0BAAA;EACA,sBAAA;CrB6vGD;AqB3vGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB6vGP;AqB3vGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB6vGP;AqB3vGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB6vGP;AqB3vGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBmwGT;AqBhwGC;;;EAGE,uBAAA;CrBkwGH;AqB7vGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrBqwGT;AoBjuGD;EC/BI,eAAA;EACA,uBAAA;CrBmwGH;AoB5tGD;EACE,eAAA;EACA,oBAAA;EACA,iBAAA;CpB8tGD;AoB5tGC;;;;;EAKE,8BAAA;EfnCF,yBAAA;EACQ,iBAAA;CLkwGT;AoB7tGC;;;;EAIE,0BAAA;CpB+tGH;AoB7tGC;;EAEE,eAAA;EACA,2BAAA;EACA,8BAAA;CpB+tGH;AoB3tGG;;;;EAEE,eAAA;EACA,sBAAA;CpB+tGL;AoBttGD;;ECxEE,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CrBkyGD;AoBztGD;;EC5EE,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CrByyGD;AoB5tGD;;EChFE,iBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CrBgzGD;AoB3tGD;EACE,eAAA;EACA,YAAA;CpB6tGD;AoBztGD;EACE,gBAAA;CpB2tGD;AoBptGC;;;EACE,YAAA;CpBwtGH;AuBl3GD;EACE,WAAA;ElBoLA,yCAAA;EACK,oCAAA;EACG,iCAAA;CLisGT;AuBr3GC;EACE,WAAA;CvBu3GH;AuBn3GD;EACE,cAAA;CvBq3GD;AuBn3GC;EAAY,eAAA;CvBs3Gb;AuBr3GC;EAAY,mBAAA;CvBw3Gb;AuBv3GC;EAAY,yBAAA;CvB03Gb;AuBv3GD;EACE,mBAAA;EACA,UAAA;EACA,iBAAA;ElBuKA,gDAAA;EACQ,2CAAA;KAAA,wCAAA;EAOR,mCAAA;EACQ,8BAAA;KAAA,2BAAA;EAGR,yCAAA;EACQ,oCAAA;KAAA,iCAAA;CL2sGT;AwBr5GD;EACE,sBAAA;EACA,SAAA;EACA,UAAA;EACA,iBAAA;EACA,uBAAA;EACA,uBAAA;EACA,yBAAA;EACA,oCAAA;EACA,mCAAA;CxBu5GD;AwBn5GD;;EAEE,mBAAA;CxBq5GD;AwBj5GD;EACE,WAAA;CxBm5GD;AwB/4GD;EACE,mBAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,cAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,iBAAA;EACA,gBAAA;EACA,iBAAA;EACA,uBAAA;EACA,uBAAA;EACA,sCAAA;EACA,mBAAA;EnBsBA,oDAAA;EACQ,4CAAA;EmBrBR,qCAAA;UAAA,6BAAA;CxBk5GD;AwB74GC;EACE,SAAA;EACA,WAAA;CxB+4GH;AwBx6GD;ECzBE,YAAA;EACA,cAAA;EACA,iBAAA;EACA,0BAAA;CzBo8GD;AwB96GD;EAmCI,eAAA;EACA,kBAAA;EACA,YAAA;EACA,oBAAA;EACA,wBAAA;EACA,eAAA;EACA,oBAAA;CxB84GH;AwBx4GC;;EAEE,sBAAA;EACA,eAAA;EACA,0BAAA;CxB04GH;AwBp4GC;;;EAGE,YAAA;EACA,sBAAA;EACA,WAAA;EACA,0BAAA;CxBs4GH;AwB73GC;;;EAGE,eAAA;CxB+3GH;AwB33GC;;EAEE,sBAAA;EACA,8BAAA;EACA,uBAAA;EE3GF,oEAAA;EF6GE,oBAAA;CxB63GH;AwBx3GD;EAGI,eAAA;CxBw3GH;AwB33GD;EAQI,WAAA;CxBs3GH;AwB92GD;EACE,WAAA;EACA,SAAA;CxBg3GD;AwBx2GD;EACE,QAAA;EACA,YAAA;CxB02GD;AwBt2GD;EACE,eAAA;EACA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,oBAAA;CxBw2GD;AwBp2GD;EACE,gBAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,OAAA;EACA,aAAA;CxBs2GD;AwBl2GD;EACE,SAAA;EACA,WAAA;CxBo2GD;AwB51GD;;EAII,cAAA;EACA,0BAAA;EACA,4BAAA;EACA,YAAA;CxB41GH;AwBn2GD;;EAWI,UAAA;EACA,aAAA;EACA,mBAAA;CxB41GH;AwBv0GD;EAXE;IApEA,WAAA;IACA,SAAA;GxB05GC;EwBv1GD;IA1DA,QAAA;IACA,YAAA;GxBo5GC;CACF;A2BpiHD;;EAEE,mBAAA;EACA,sBAAA;EACA,uBAAA;C3BsiHD;A2B1iHD;;EAMI,mBAAA;EACA,YAAA;C3BwiHH;A2BtiHG;;;;;;;;EAIE,WAAA;C3B4iHL;A2BtiHD;;;;EAKI,kBAAA;C3BuiHH;A2BliHD;EACE,kBAAA;C3BoiHD;A2BriHD;;;EAOI,YAAA;C3BmiHH;A2B1iHD;;;EAYI,iBAAA;C3BmiHH;A2B/hHD;EACE,iBAAA;C3BiiHD;A2B7hHD;EACE,eAAA;C3B+hHD;A2B9hHC;EClDA,8BAAA;EACG,2BAAA;C5BmlHJ;A2B7hHD;;EC/CE,6BAAA;EACG,0BAAA;C5BglHJ;A2B5hHD;EACE,YAAA;C3B8hHD;A2B5hHD;EACE,iBAAA;C3B8hHD;A2B5hHD;;ECnEE,8BAAA;EACG,2BAAA;C5BmmHJ;A2B3hHD;ECjEE,6BAAA;EACG,0BAAA;C5B+lHJ;A2B1hHD;;EAEE,WAAA;C3B4hHD;A2B3gHD;EACE,kBAAA;EACA,mBAAA;C3B6gHD;A2B3gHD;EACE,mBAAA;EACA,oBAAA;C3B6gHD;A2BxgHD;EtB/CE,yDAAA;EACQ,iDAAA;CL0jHT;A2BxgHC;EtBnDA,yBAAA;EACQ,iBAAA;CL8jHT;A2BrgHD;EACE,eAAA;C3BugHD;A2BpgHD;EACE,wBAAA;EACA,uBAAA;C3BsgHD;A2BngHD;EACE,wBAAA;C3BqgHD;A2B9/GD;;;EAII,eAAA;EACA,YAAA;EACA,YAAA;EACA,gBAAA;C3B+/GH;A2BtgHD;EAcM,YAAA;C3B2/GL;A2BzgHD;;;;EAsBI,iBAAA;EACA,eAAA;C3By/GH;A2Bp/GC;EACE,iBAAA;C3Bs/GH;A2Bp/GC;EC3KA,6BAAA;EACC,4BAAA;EAOD,8BAAA;EACC,6BAAA;C5B4pHF;A2Bt/GC;EC/KA,2BAAA;EACC,0BAAA;EAOD,gCAAA;EACC,+BAAA;C5BkqHF;A2Bv/GD;EACE,iBAAA;C3By/GD;A2Bv/GD;;EC/KE,8BAAA;EACC,6BAAA;C5B0qHF;A2Bt/GD;EC7LE,2BAAA;EACC,0BAAA;C5BsrHF;A2Bl/GD;EACE,eAAA;EACA,YAAA;EACA,oBAAA;EACA,0BAAA;C3Bo/GD;A2Bx/GD;;EAOI,YAAA;EACA,oBAAA;EACA,UAAA;C3Bq/GH;A2B9/GD;EAYI,YAAA;C3Bq/GH;A2BjgHD;EAgBI,WAAA;C3Bo/GH;A2Bn+GD;;;;EAKM,mBAAA;EACA,uBAAA;EACA,qBAAA;C3Bo+GL;A6B9sHD;EACE,mBAAA;EACA,eAAA;EACA,0BAAA;C7BgtHD;A6B7sHC;EACE,YAAA;EACA,gBAAA;EACA,iBAAA;C7B+sHH;A6BxtHD;EAeI,mBAAA;EACA,WAAA;EAKA,YAAA;EAEA,YAAA;EACA,iBAAA;C7BusHH;A6BrsHG;EACE,WAAA;C7BusHL;A6B7rHD;;;EV0BE,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CnBwqHD;AmBtqHC;;;EACE,aAAA;EACA,kBAAA;CnB0qHH;AmBvqHC;;;;;;EAEE,aAAA;CnB6qHH;A6B/sHD;;;EVqBE,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CnB+rHD;AmB7rHC;;;EACE,aAAA;EACA,kBAAA;CnBisHH;AmB9rHC;;;;;;EAEE,aAAA;CnBosHH;A6B7tHD;;;EAGE,oBAAA;C7B+tHD;A6B7tHC;;;EACE,iBAAA;C7BiuHH;A6B7tHD;;EAEE,UAAA;EACA,oBAAA;EACA,uBAAA;C7B+tHD;A6B1tHD;EACE,kBAAA;EACA,gBAAA;EACA,oBAAA;EACA,eAAA;EACA,eAAA;EACA,mBAAA;EACA,0BAAA;EACA,uBAAA;EACA,mBAAA;C7B4tHD;A6BztHC;EACE,kBAAA;EACA,gBAAA;EACA,mBAAA;C7B2tHH;A6BztHC;EACE,mBAAA;EACA,gBAAA;EACA,mBAAA;C7B2tHH;A6B/uHD;;EA0BI,cAAA;C7BytHH;A6BptHD;;;;;;;EDpGE,8BAAA;EACG,2BAAA;C5Bi0HJ;A6BrtHD;EACE,gBAAA;C7ButHD;A6BrtHD;;;;;;;EDxGE,6BAAA;EACG,0BAAA;C5Bs0HJ;A6BttHD;EACE,eAAA;C7BwtHD;A6BntHD;EACE,mBAAA;EAGA,aAAA;EACA,oBAAA;C7BmtHD;A6BxtHD;EAUI,mBAAA;C7BitHH;A6B3tHD;EAYM,kBAAA;C7BktHL;A6B/sHG;;;EAGE,WAAA;C7BitHL;A6B5sHC;;EAGI,mBAAA;C7B6sHL;A6B1sHC;;EAGI,WAAA;EACA,kBAAA;C7B2sHL;A8B12HD;EACE,iBAAA;EACA,gBAAA;EACA,iBAAA;C9B42HD;A8B/2HD;EAOI,mBAAA;EACA,eAAA;C9B22HH;A8Bn3HD;EAWM,mBAAA;EACA,eAAA;EACA,mBAAA;C9B22HL;A8B12HK;;EAEE,sBAAA;EACA,0BAAA;C9B42HP;A8Bv2HG;EACE,eAAA;C9By2HL;A8Bv2HK;;EAEE,eAAA;EACA,sBAAA;EACA,8BAAA;EACA,oBAAA;C9By2HP;A8Bl2HG;;;EAGE,0BAAA;EACA,sBAAA;C9Bo2HL;A8B74HD;ELHE,YAAA;EACA,cAAA;EACA,iBAAA;EACA,0BAAA;CzBm5HD;A8Bn5HD;EA0DI,gBAAA;C9B41HH;A8Bn1HD;EACE,8BAAA;C9Bq1HD;A8Bt1HD;EAGI,YAAA;EAEA,oBAAA;C9Bq1HH;A8B11HD;EASM,kBAAA;EACA,wBAAA;EACA,8BAAA;EACA,2BAAA;C9Bo1HL;A8Bn1HK;EACE,mCAAA;C9Bq1HP;A8B/0HK;;;EAGE,eAAA;EACA,uBAAA;EACA,uBAAA;EACA,iCAAA;EACA,gBAAA;C9Bi1HP;A8B50HC;EAqDA,YAAA;EA8BA,iBAAA;C9B6vHD;A8Bh1HC;EAwDE,YAAA;C9B2xHH;A8Bn1HC;EA0DI,mBAAA;EACA,mBAAA;C9B4xHL;A8Bv1HC;EAgEE,UAAA;EACA,WAAA;C9B0xHH;A8B9wHD;EA0DA;IAjEM,oBAAA;IACA,UAAA;G9ByxHH;E8BztHH;IA9DQ,iBAAA;G9B0xHL;CACF;A8Bp2HC;EAuFE,gBAAA;EACA,mBAAA;C9BgxHH;A8Bx2HC;;;EA8FE,uBAAA;C9B+wHH;A8BjwHD;EA2BA;IApCM,8BAAA;IACA,2BAAA;G9B8wHH;E8B3uHH;;;IA9BM,0BAAA;G9B8wHH;CACF;A8B/2HD;EAEI,YAAA;C9Bg3HH;A8Bl3HD;EAMM,mBAAA;C9B+2HL;A8Br3HD;EASM,iBAAA;C9B+2HL;A8B12HK;;;EAGE,YAAA;EACA,0BAAA;C9B42HP;A8Bp2HD;EAEI,YAAA;C9Bq2HH;A8Bv2HD;EAIM,gBAAA;EACA,eAAA;C9Bs2HL;A8B11HD;EACE,YAAA;C9B41HD;A8B71HD;EAII,YAAA;C9B41HH;A8Bh2HD;EAMM,mBAAA;EACA,mBAAA;C9B61HL;A8Bp2HD;EAYI,UAAA;EACA,WAAA;C9B21HH;A8B/0HD;EA0DA;IAjEM,oBAAA;IACA,UAAA;G9B01HH;E8B1xHH;IA9DQ,iBAAA;G9B21HL;CACF;A8Bn1HD;EACE,iBAAA;C9Bq1HD;A8Bt1HD;EAKI,gBAAA;EACA,mBAAA;C9Bo1HH;A8B11HD;;;EAYI,uBAAA;C9Bm1HH;A8Br0HD;EA2BA;IApCM,8BAAA;IACA,2BAAA;G9Bk1HH;E8B/yHH;;;IA9BM,0BAAA;G9Bk1HH;CACF;A8Bz0HD;EAEI,cAAA;C9B00HH;A8B50HD;EAKI,eAAA;C9B00HH;A8Bj0HD;EAEE,iBAAA;EF3OA,2BAAA;EACC,0BAAA;C5B8iIF;A+BxiID;EACE,mBAAA;EACA,iBAAA;EACA,oBAAA;EACA,8BAAA;C/B0iID;A+BliID;EA8nBA;IAhoBI,mBAAA;G/BwiID;CACF;A+BzhID;EAgnBA;IAlnBI,YAAA;G/B+hID;CACF;A+BjhID;EACE,oBAAA;EACA,oBAAA;EACA,mBAAA;EACA,kCAAA;EACA,2DAAA;UAAA,mDAAA;EAEA,kCAAA;C/BkhID;A+BhhIC;EACE,iBAAA;C/BkhIH;A+Bt/HD;EA6jBA;IArlBI,YAAA;IACA,cAAA;IACA,yBAAA;YAAA,iBAAA;G/BkhID;E+BhhIC;IACE,0BAAA;IACA,wBAAA;IACA,kBAAA;IACA,6BAAA;G/BkhIH;E+B/gIC;IACE,oBAAA;G/BihIH;E+B5gIC;;;IAGE,gBAAA;IACA,iBAAA;G/B8gIH;CACF;A+B1gID;;EAGI,kBAAA;C/B2gIH;A+BtgIC;EAmjBF;;IArjBM,kBAAA;G/B6gIH;CACF;A+BpgID;;;;EAII,oBAAA;EACA,mBAAA;C/BsgIH;A+BhgIC;EAgiBF;;;;IAniBM,gBAAA;IACA,eAAA;G/B0gIH;CACF;A+B9/HD;EACE,cAAA;EACA,sBAAA;C/BggID;A+B3/HD;EA8gBA;IAhhBI,iBAAA;G/BigID;CACF;A+B7/HD;;EAEE,gBAAA;EACA,SAAA;EACA,QAAA;EACA,cAAA;C/B+/HD;A+Bz/HD;EAggBA;;IAlgBI,iBAAA;G/BggID;CACF;A+B9/HD;EACE,OAAA;EACA,sBAAA;C/BggID;A+B9/HD;EACE,UAAA;EACA,iBAAA;EACA,sBAAA;C/BggID;A+B1/HD;EACE,YAAA;EACA,mBAAA;EACA,gBAAA;EACA,kBAAA;EACA,aAAA;C/B4/HD;A+B1/HC;;EAEE,sBAAA;C/B4/HH;A+BrgID;EAaI,eAAA;C/B2/HH;A+Bl/HD;EALI;;IAEE,mBAAA;G/B0/HH;CACF;A+Bh/HD;EACE,mBAAA;EACA,aAAA;EACA,mBAAA;EACA,kBAAA;EC9LA,gBAAA;EACA,mBAAA;ED+LA,8BAAA;EACA,uBAAA;EACA,8BAAA;EACA,mBAAA;C/Bm/HD;A+B/+HC;EACE,WAAA;C/Bi/HH;A+B//HD;EAmBI,eAAA;EACA,YAAA;EACA,YAAA;EACA,mBAAA;C/B++HH;A+BrgID;EAyBI,gBAAA;C/B++HH;A+Bz+HD;EAqbA;IAvbI,cAAA;G/B++HD;CACF;A+Bt+HD;EACE,oBAAA;C/Bw+HD;A+Bz+HD;EAII,kBAAA;EACA,qBAAA;EACA,kBAAA;C/Bw+HH;A+B58HC;EA2YF;IAjaM,iBAAA;IACA,YAAA;IACA,YAAA;IACA,cAAA;IACA,8BAAA;IACA,UAAA;IACA,yBAAA;YAAA,iBAAA;G/Bs+HH;E+B3kHH;;IAxZQ,2BAAA;G/Bu+HL;E+B/kHH;IArZQ,kBAAA;G/Bu+HL;E+Bt+HK;;IAEE,uBAAA;G/Bw+HP;CACF;A+Bt9HD;EA+XA;IA1YI,YAAA;IACA,UAAA;G/Bq+HD;E+B5lHH;IAtYM,YAAA;G/Bq+HH;E+B/lHH;IApYQ,kBAAA;IACA,qBAAA;G/Bs+HL;CACF;A+B39HD;EACE,mBAAA;EACA,oBAAA;EACA,mBAAA;EACA,kCAAA;EACA,qCAAA;E1B9NA,6FAAA;EACQ,qFAAA;E2B/DR,gBAAA;EACA,mBAAA;ChC4vID;AkBtuHD;EAwEA;IAtIM,sBAAA;IACA,iBAAA;IACA,uBAAA;GlBwyHH;EkBpqHH;IA/HM,sBAAA;IACA,YAAA;IACA,uBAAA;GlBsyHH;EkBzqHH;IAxHM,sBAAA;GlBoyHH;EkB5qHH;IApHM,sBAAA;IACA,uBAAA;GlBmyHH;EkBhrHH;;;IA9GQ,YAAA;GlBmyHL;EkBrrHH;IAxGM,YAAA;GlBgyHH;EkBxrHH;IApGM,iBAAA;IACA,uBAAA;GlB+xHH;EkB5rHH;;IA5FM,sBAAA;IACA,cAAA;IACA,iBAAA;IACA,uBAAA;GlB4xHH;EkBnsHH;;IAtFQ,gBAAA;GlB6xHL;EkBvsHH;;IAjFM,mBAAA;IACA,eAAA;GlB4xHH;EkB5sHH;IA3EM,OAAA;GlB0xHH;CACF;A+BpgIC;EAmWF;IAzWM,mBAAA;G/B8gIH;E+B5gIG;IACE,iBAAA;G/B8gIL;CACF;A+B7/HD;EAoVA;IA5VI,YAAA;IACA,UAAA;IACA,eAAA;IACA,gBAAA;IACA,eAAA;IACA,kBAAA;I1BzPF,yBAAA;IACQ,iBAAA;GLmwIP;CACF;A+BngID;EACE,cAAA;EHpUA,2BAAA;EACC,0BAAA;C5B00IF;A+BngID;EACE,iBAAA;EHzUA,6BAAA;EACC,4BAAA;EAOD,8BAAA;EACC,6BAAA;C5By0IF;A+B//HD;EChVE,gBAAA;EACA,mBAAA;ChCk1ID;A+BhgIC;ECnVA,iBAAA;EACA,oBAAA;ChCs1ID;A+BjgIC;ECtVA,iBAAA;EACA,oBAAA;ChC01ID;A+B3/HD;EChWE,iBAAA;EACA,oBAAA;ChC81ID;A+Bv/HD;EAsSA;IA1SI,YAAA;IACA,kBAAA;IACA,mBAAA;G/B+/HD;CACF;A+Bl+HD;EAhBE;IExWA,uBAAA;GjC81IC;E+Br/HD;IE5WA,wBAAA;IF8WE,oBAAA;G/Bu/HD;E+Bz/HD;IAKI,gBAAA;G/Bu/HH;CACF;A+B9+HD;EACE,0BAAA;EACA,sBAAA;C/Bg/HD;A+Bl/HD;EAKI,YAAA;C/Bg/HH;A+B/+HG;;EAEE,eAAA;EACA,8BAAA;C/Bi/HL;A+B1/HD;EAcI,YAAA;C/B++HH;A+B7/HD;EAmBM,YAAA;C/B6+HL;A+B3+HK;;EAEE,YAAA;EACA,8BAAA;C/B6+HP;A+Bz+HK;;;EAGE,YAAA;EACA,0BAAA;C/B2+HP;A+Bv+HK;;;EAGE,YAAA;EACA,8BAAA;C/By+HP;A+BjhID;EA8CI,mBAAA;C/Bs+HH;A+Br+HG;;EAEE,uBAAA;C/Bu+HL;A+BxhID;EAoDM,uBAAA;C/Bu+HL;A+B3hID;;EA0DI,sBAAA;C/Bq+HH;A+B99HK;;;EAGE,0BAAA;EACA,YAAA;C/Bg+HP;A+B/7HC;EAoKF;IA7LU,YAAA;G/B49HP;E+B39HO;;IAEE,YAAA;IACA,8BAAA;G/B69HT;E+Bz9HO;;;IAGE,YAAA;IACA,0BAAA;G/B29HT;E+Bv9HO;;;IAGE,YAAA;IACA,8BAAA;G/By9HT;CACF;A+B3jID;EA8GI,YAAA;C/Bg9HH;A+B/8HG;EACE,YAAA;C/Bi9HL;A+BjkID;EAqHI,YAAA;C/B+8HH;A+B98HG;;EAEE,YAAA;C/Bg9HL;A+B58HK;;;;EAEE,YAAA;C/Bg9HP;A+Bx8HD;EACE,uBAAA;EACA,sBAAA;C/B08HD;A+B58HD;EAKI,eAAA;C/B08HH;A+Bz8HG;;EAEE,YAAA;EACA,8BAAA;C/B28HL;A+Bp9HD;EAcI,eAAA;C/By8HH;A+Bv9HD;EAmBM,eAAA;C/Bu8HL;A+Br8HK;;EAEE,YAAA;EACA,8BAAA;C/Bu8HP;A+Bn8HK;;;EAGE,YAAA;EACA,0BAAA;C/Bq8HP;A+Bj8HK;;;EAGE,YAAA;EACA,8BAAA;C/Bm8HP;A+B3+HD;EA+CI,mBAAA;C/B+7HH;A+B97HG;;EAEE,uBAAA;C/Bg8HL;A+Bl/HD;EAqDM,uBAAA;C/Bg8HL;A+Br/HD;;EA2DI,sBAAA;C/B87HH;A+Bx7HK;;;EAGE,0BAAA;EACA,YAAA;C/B07HP;A+Bn5HC;EAwBF;IAvDU,sBAAA;G/Bs7HP;E+B/3HH;IApDU,0BAAA;G/Bs7HP;E+Bl4HH;IAjDU,eAAA;G/Bs7HP;E+Br7HO;;IAEE,YAAA;IACA,8BAAA;G/Bu7HT;E+Bn7HO;;;IAGE,YAAA;IACA,0BAAA;G/Bq7HT;E+Bj7HO;;;IAGE,YAAA;IACA,8BAAA;G/Bm7HT;CACF;A+B3hID;EA+GI,eAAA;C/B+6HH;A+B96HG;EACE,YAAA;C/Bg7HL;A+BjiID;EAsHI,eAAA;C/B86HH;A+B76HG;;EAEE,YAAA;C/B+6HL;A+B36HK;;;;EAEE,YAAA;C/B+6HP;AkCzjJD;EACE,kBAAA;EACA,oBAAA;EACA,iBAAA;EACA,0BAAA;EACA,mBAAA;ClC2jJD;AkChkJD;EAQI,sBAAA;ClC2jJH;AkCnkJD;EAWM,kBAAA;EACA,eAAA;EACA,YAAA;ClC2jJL;AkCxkJD;EAkBI,eAAA;ClCyjJH;AmC7kJD;EACE,sBAAA;EACA,gBAAA;EACA,eAAA;EACA,mBAAA;CnC+kJD;AmCnlJD;EAOI,gBAAA;CnC+kJH;AmCtlJD;;EAUM,mBAAA;EACA,YAAA;EACA,kBAAA;EACA,wBAAA;EACA,sBAAA;EACA,eAAA;EACA,uBAAA;EACA,uBAAA;EACA,kBAAA;CnCglJL;AmC9kJG;;EAGI,eAAA;EPXN,+BAAA;EACG,4BAAA;C5B2lJJ;AmC7kJG;;EPvBF,gCAAA;EACG,6BAAA;C5BwmJJ;AmCxkJG;;;;EAEE,WAAA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;CnC4kJL;AmCtkJG;;;;;;EAGE,WAAA;EACA,YAAA;EACA,0BAAA;EACA,sBAAA;EACA,gBAAA;CnC2kJL;AmCloJD;;;;;;EAkEM,eAAA;EACA,uBAAA;EACA,mBAAA;EACA,oBAAA;CnCwkJL;AmC/jJD;;EC3EM,mBAAA;EACA,gBAAA;EACA,uBAAA;CpC8oJL;AoC5oJG;;ERKF,+BAAA;EACG,4BAAA;C5B2oJJ;AoC3oJG;;ERTF,gCAAA;EACG,6BAAA;C5BwpJJ;AmC1kJD;;EChFM,kBAAA;EACA,gBAAA;EACA,iBAAA;CpC8pJL;AoC5pJG;;ERKF,+BAAA;EACG,4BAAA;C5B2pJJ;AoC3pJG;;ERTF,gCAAA;EACG,6BAAA;C5BwqJJ;AqC3qJD;EACE,gBAAA;EACA,eAAA;EACA,iBAAA;EACA,mBAAA;CrC6qJD;AqCjrJD;EAOI,gBAAA;CrC6qJH;AqCprJD;;EAUM,sBAAA;EACA,kBAAA;EACA,uBAAA;EACA,uBAAA;EACA,oBAAA;CrC8qJL;AqC5rJD;;EAmBM,sBAAA;EACA,0BAAA;CrC6qJL;AqCjsJD;;EA2BM,aAAA;CrC0qJL;AqCrsJD;;EAkCM,YAAA;CrCuqJL;AqCzsJD;;;;EA2CM,eAAA;EACA,uBAAA;EACA,oBAAA;CrCoqJL;AsCltJD;EACE,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,kBAAA;EACA,eAAA;EACA,YAAA;EACA,mBAAA;EACA,oBAAA;EACA,yBAAA;EACA,qBAAA;CtCotJD;AsChtJG;;EAEE,YAAA;EACA,sBAAA;EACA,gBAAA;CtCktJL;AsC7sJC;EACE,cAAA;CtC+sJH;AsC3sJC;EACE,mBAAA;EACA,UAAA;CtC6sJH;AsCtsJD;ECtCE,0BAAA;CvC+uJD;AuC5uJG;;EAEE,0BAAA;CvC8uJL;AsCzsJD;EC1CE,0BAAA;CvCsvJD;AuCnvJG;;EAEE,0BAAA;CvCqvJL;AsC5sJD;EC9CE,0BAAA;CvC6vJD;AuC1vJG;;EAEE,0BAAA;CvC4vJL;AsC/sJD;EClDE,0BAAA;CvCowJD;AuCjwJG;;EAEE,0BAAA;CvCmwJL;AsCltJD;ECtDE,0BAAA;CvC2wJD;AuCxwJG;;EAEE,0BAAA;CvC0wJL;AsCrtJD;EC1DE,0BAAA;CvCkxJD;AuC/wJG;;EAEE,0BAAA;CvCixJL;AwCnxJD;EACE,sBAAA;EACA,gBAAA;EACA,iBAAA;EACA,gBAAA;EACA,kBAAA;EACA,YAAA;EACA,eAAA;EACA,uBAAA;EACA,oBAAA;EACA,mBAAA;EACA,0BAAA;EACA,oBAAA;CxCqxJD;AwClxJC;EACE,cAAA;CxCoxJH;AwChxJC;EACE,mBAAA;EACA,UAAA;CxCkxJH;AwC/wJC;;EAEE,OAAA;EACA,iBAAA;CxCixJH;AwC5wJG;;EAEE,YAAA;EACA,sBAAA;EACA,gBAAA;CxC8wJL;AwCzwJC;;EAEE,eAAA;EACA,uBAAA;CxC2wJH;AwCxwJC;EACE,aAAA;CxC0wJH;AwCvwJC;EACE,kBAAA;CxCywJH;AwCtwJC;EACE,iBAAA;CxCwwJH;AyCl0JD;EACE,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,eAAA;EACA,0BAAA;CzCo0JD;AyCz0JD;;EASI,eAAA;CzCo0JH;AyC70JD;EAaI,oBAAA;EACA,gBAAA;EACA,iBAAA;CzCm0JH;AyCl1JD;EAmBI,0BAAA;CzCk0JH;AyC/zJC;;EAEE,mBAAA;EACA,mBAAA;EACA,oBAAA;CzCi0JH;AyC31JD;EA8BI,gBAAA;CzCg0JH;AyC9yJD;EACA;IAfI,kBAAA;IACA,qBAAA;GzCg0JD;EyC9zJC;;IAEE,mBAAA;IACA,oBAAA;GzCg0JH;EyCvzJH;;IAJM,gBAAA;GzC+zJH;CACF;A0C52JD;EACE,eAAA;EACA,aAAA;EACA,oBAAA;EACA,wBAAA;EACA,uBAAA;EACA,uBAAA;EACA,mBAAA;ErCiLA,4CAAA;EACK,uCAAA;EACG,oCAAA;CL8rJT;A0Cx3JD;;EAaI,kBAAA;EACA,mBAAA;C1C+2JH;A0C32JC;;;EAGE,sBAAA;C1C62JH;A0Cl4JD;EA0BI,aAAA;EACA,eAAA;C1C22JH;A2Cp4JD;EACE,cAAA;EACA,oBAAA;EACA,8BAAA;EACA,mBAAA;C3Cs4JD;A2C14JD;EAQI,cAAA;EAEA,eAAA;C3Co4JH;A2C94JD;EAeI,kBAAA;C3Ck4JH;A2Cj5JD;;EAqBI,iBAAA;C3Cg4JH;A2Cr5JD;EAyBI,gBAAA;C3C+3JH;A2Cv3JD;;EAEE,oBAAA;C3Cy3JD;A2C33JD;;EAMI,mBAAA;EACA,UAAA;EACA,aAAA;EACA,eAAA;C3Cy3JH;A2Cj3JD;ECvDE,0BAAA;EACA,sBAAA;EACA,eAAA;C5C26JD;A2Ct3JD;EClDI,0BAAA;C5C26JH;A2Cz3JD;EC/CI,eAAA;C5C26JH;A2Cx3JD;EC3DE,0BAAA;EACA,sBAAA;EACA,eAAA;C5Cs7JD;A2C73JD;ECtDI,0BAAA;C5Cs7JH;A2Ch4JD;ECnDI,eAAA;C5Cs7JH;A2C/3JD;EC/DE,0BAAA;EACA,sBAAA;EACA,eAAA;C5Ci8JD;A2Cp4JD;EC1DI,0BAAA;C5Ci8JH;A2Cv4JD;ECvDI,eAAA;C5Ci8JH;A2Ct4JD;ECnEE,0BAAA;EACA,sBAAA;EACA,eAAA;C5C48JD;A2C34JD;EC9DI,0BAAA;C5C48JH;A2C94JD;EC3DI,eAAA;C5C48JH;A6C98JD;EACE;IAAQ,4BAAA;G7Ci9JP;E6Ch9JD;IAAQ,yBAAA;G7Cm9JP;CACF;A6Ch9JD;EACE;IAAQ,4BAAA;G7Cm9JP;E6Cl9JD;IAAQ,yBAAA;G7Cq9JP;CACF;A6Cx9JD;EACE;IAAQ,4BAAA;G7Cm9JP;E6Cl9JD;IAAQ,yBAAA;G7Cq9JP;CACF;A6C98JD;EACE,iBAAA;EACA,aAAA;EACA,oBAAA;EACA,0BAAA;EACA,mBAAA;ExCsCA,uDAAA;EACQ,+CAAA;CL26JT;A6C78JD;EACE,YAAA;EACA,UAAA;EACA,aAAA;EACA,gBAAA;EACA,kBAAA;EACA,YAAA;EACA,mBAAA;EACA,0BAAA;ExCyBA,uDAAA;EACQ,+CAAA;EAyHR,oCAAA;EACK,+BAAA;EACG,4BAAA;CL+zJT;A6C18JD;;ECCI,8MAAA;EACA,yMAAA;EACA,sMAAA;EDAF,mCAAA;UAAA,2BAAA;C7C88JD;A6Cv8JD;;ExC5CE,2DAAA;EACK,sDAAA;EACG,mDAAA;CLu/JT;A6Cp8JD;EErEE,0BAAA;C/C4gKD;A+CzgKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9C49JH;A6Cx8JD;EEzEE,0BAAA;C/CohKD;A+CjhKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9Co+JH;A6C58JD;EE7EE,0BAAA;C/C4hKD;A+CzhKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9C4+JH;A6Ch9JD;EEjFE,0BAAA;C/CoiKD;A+CjiKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9Co/JH;AgD5iKD;EAEE,iBAAA;ChD6iKD;AgD3iKC;EACE,cAAA;ChD6iKH;AgDziKD;;EAEE,QAAA;EACA,iBAAA;ChD2iKD;AgDxiKD;EACE,eAAA;ChD0iKD;AgDviKD;EACE,eAAA;ChDyiKD;AgDtiKC;EACE,gBAAA;ChDwiKH;AgDpiKD;;EAEE,mBAAA;ChDsiKD;AgDniKD;;EAEE,oBAAA;ChDqiKD;AgDliKD;;;EAGE,oBAAA;EACA,oBAAA;ChDoiKD;AgDjiKD;EACE,uBAAA;ChDmiKD;AgDhiKD;EACE,uBAAA;ChDkiKD;AgD9hKD;EACE,cAAA;EACA,mBAAA;ChDgiKD;AgD1hKD;EACE,gBAAA;EACA,iBAAA;ChD4hKD;AiDnlKD;EAEE,oBAAA;EACA,gBAAA;CjDolKD;AiD5kKD;EACE,mBAAA;EACA,eAAA;EACA,mBAAA;EAEA,oBAAA;EACA,uBAAA;EACA,uBAAA;CjD6kKD;AiD1kKC;ErB3BA,6BAAA;EACC,4BAAA;C5BwmKF;AiD3kKC;EACE,iBAAA;ErBvBF,gCAAA;EACC,+BAAA;C5BqmKF;AiDpkKD;;EAEE,YAAA;CjDskKD;AiDxkKD;;EAKI,YAAA;CjDukKH;AiDnkKC;;;;EAEE,sBAAA;EACA,YAAA;EACA,0BAAA;CjDukKH;AiDnkKD;EACE,YAAA;EACA,iBAAA;CjDqkKD;AiDhkKC;;;EAGE,0BAAA;EACA,eAAA;EACA,oBAAA;CjDkkKH;AiDvkKC;;;EASI,eAAA;CjDmkKL;AiD5kKC;;;EAYI,eAAA;CjDqkKL;AiDhkKC;;;EAGE,WAAA;EACA,YAAA;EACA,0BAAA;EACA,sBAAA;CjDkkKH;AiDxkKC;;;;;;;;;EAYI,eAAA;CjDukKL;AiDnlKC;;;EAeI,eAAA;CjDykKL;AkD3qKC;EACE,eAAA;EACA,0BAAA;ClD6qKH;AkD3qKG;;EAEE,eAAA;ClD6qKL;AkD/qKG;;EAKI,eAAA;ClD8qKP;AkD3qKK;;;;EAEE,eAAA;EACA,0BAAA;ClD+qKP;AkD7qKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClDkrKP;AkDxsKC;EACE,eAAA;EACA,0BAAA;ClD0sKH;AkDxsKG;;EAEE,eAAA;ClD0sKL;AkD5sKG;;EAKI,eAAA;ClD2sKP;AkDxsKK;;;;EAEE,eAAA;EACA,0BAAA;ClD4sKP;AkD1sKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClD+sKP;AkDruKC;EACE,eAAA;EACA,0BAAA;ClDuuKH;AkDruKG;;EAEE,eAAA;ClDuuKL;AkDzuKG;;EAKI,eAAA;ClDwuKP;AkDruKK;;;;EAEE,eAAA;EACA,0BAAA;ClDyuKP;AkDvuKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClD4uKP;AkDlwKC;EACE,eAAA;EACA,0BAAA;ClDowKH;AkDlwKG;;EAEE,eAAA;ClDowKL;AkDtwKG;;EAKI,eAAA;ClDqwKP;AkDlwKK;;;;EAEE,eAAA;EACA,0BAAA;ClDswKP;AkDpwKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClDywKP;AiDxqKD;EACE,cAAA;EACA,mBAAA;CjD0qKD;AiDxqKD;EACE,iBAAA;EACA,iBAAA;CjD0qKD;AmDpyKD;EACE,oBAAA;EACA,uBAAA;EACA,8BAAA;EACA,mBAAA;E9C0DA,kDAAA;EACQ,0CAAA;CL6uKT;AmDnyKD;EACE,cAAA;CnDqyKD;AmDhyKD;EACE,mBAAA;EACA,qCAAA;EvBpBA,6BAAA;EACC,4BAAA;C5BuzKF;AmDtyKD;EAMI,eAAA;CnDmyKH;AmD9xKD;EACE,cAAA;EACA,iBAAA;EACA,gBAAA;EACA,eAAA;CnDgyKD;AmDpyKD;;;;;EAWI,eAAA;CnDgyKH;AmD3xKD;EACE,mBAAA;EACA,0BAAA;EACA,2BAAA;EvBxCA,gCAAA;EACC,+BAAA;C5Bs0KF;AmDrxKD;;EAGI,iBAAA;CnDsxKH;AmDzxKD;;EAMM,oBAAA;EACA,iBAAA;CnDuxKL;AmDnxKG;;EAEI,cAAA;EvBvEN,6BAAA;EACC,4BAAA;C5B61KF;AmDjxKG;;EAEI,iBAAA;EvBvEN,gCAAA;EACC,+BAAA;C5B21KF;AmD1yKD;EvB1DE,2BAAA;EACC,0BAAA;C5Bu2KF;AmD7wKD;EAEI,oBAAA;CnD8wKH;AmD3wKD;EACE,oBAAA;CnD6wKD;AmDrwKD;;;EAII,iBAAA;CnDswKH;AmD1wKD;;;EAOM,mBAAA;EACA,oBAAA;CnDwwKL;AmDhxKD;;EvBzGE,6BAAA;EACC,4BAAA;C5B63KF;AmDrxKD;;;;EAmBQ,4BAAA;EACA,6BAAA;CnDwwKP;AmD5xKD;;;;;;;;EAwBU,4BAAA;CnD8wKT;AmDtyKD;;;;;;;;EA4BU,6BAAA;CnDoxKT;AmDhzKD;;EvBjGE,gCAAA;EACC,+BAAA;C5Bq5KF;AmDrzKD;;;;EAyCQ,+BAAA;EACA,gCAAA;CnDkxKP;AmD5zKD;;;;;;;;EA8CU,+BAAA;CnDwxKT;AmDt0KD;;;;;;;;EAkDU,gCAAA;CnD8xKT;AmDh1KD;;;;EA2DI,2BAAA;CnD2xKH;AmDt1KD;;EA+DI,cAAA;CnD2xKH;AmD11KD;;EAmEI,UAAA;CnD2xKH;AmD91KD;;;;;;;;;;;;EA0EU,eAAA;CnDkyKT;AmD52KD;;;;;;;;;;;;EA8EU,gBAAA;CnD4yKT;AmD13KD;;;;;;;;EAuFU,iBAAA;CnD6yKT;AmDp4KD;;;;;;;;EAgGU,iBAAA;CnD8yKT;AmD94KD;EAsGI,UAAA;EACA,iBAAA;CnD2yKH;AmDjyKD;EACE,oBAAA;CnDmyKD;AmDpyKD;EAKI,iBAAA;EACA,mBAAA;CnDkyKH;AmDxyKD;EASM,gBAAA;CnDkyKL;AmD3yKD;EAcI,iBAAA;CnDgyKH;AmD9yKD;;EAkBM,2BAAA;CnDgyKL;AmDlzKD;EAuBI,cAAA;CnD8xKH;AmDrzKD;EAyBM,8BAAA;CnD+xKL;AmDxxKD;EC1PE,mBAAA;CpDqhLD;AoDnhLC;EACE,eAAA;EACA,0BAAA;EACA,mBAAA;CpDqhLH;AoDxhLC;EAMI,uBAAA;CpDqhLL;AoD3hLC;EASI,eAAA;EACA,0BAAA;CpDqhLL;AoDlhLC;EAEI,0BAAA;CpDmhLL;AmDvyKD;EC7PE,sBAAA;CpDuiLD;AoDriLC;EACE,YAAA;EACA,0BAAA;EACA,sBAAA;CpDuiLH;AoD1iLC;EAMI,0BAAA;CpDuiLL;AoD7iLC;EASI,eAAA;EACA,uBAAA;CpDuiLL;AoDpiLC;EAEI,6BAAA;CpDqiLL;AmDtzKD;EChQE,sBAAA;CpDyjLD;AoDvjLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpDyjLH;AoD5jLC;EAMI,0BAAA;CpDyjLL;AoD/jLC;EASI,eAAA;EACA,0BAAA;CpDyjLL;AoDtjLC;EAEI,6BAAA;CpDujLL;AmDr0KD;ECnQE,sBAAA;CpD2kLD;AoDzkLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpD2kLH;AoD9kLC;EAMI,0BAAA;CpD2kLL;AoDjlLC;EASI,eAAA;EACA,0BAAA;CpD2kLL;AoDxkLC;EAEI,6BAAA;CpDykLL;AmDp1KD;ECtQE,sBAAA;CpD6lLD;AoD3lLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpD6lLH;AoDhmLC;EAMI,0BAAA;CpD6lLL;AoDnmLC;EASI,eAAA;EACA,0BAAA;CpD6lLL;AoD1lLC;EAEI,6BAAA;CpD2lLL;AmDn2KD;ECzQE,sBAAA;CpD+mLD;AoD7mLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpD+mLH;AoDlnLC;EAMI,0BAAA;CpD+mLL;AoDrnLC;EASI,eAAA;EACA,0BAAA;CpD+mLL;AoD5mLC;EAEI,6BAAA;CpD6mLL;AqD7nLD;EACE,mBAAA;EACA,eAAA;EACA,UAAA;EACA,WAAA;EACA,iBAAA;CrD+nLD;AqDpoLD;;;;;EAYI,mBAAA;EACA,OAAA;EACA,QAAA;EACA,UAAA;EACA,aAAA;EACA,YAAA;EACA,UAAA;CrD+nLH;AqD1nLD;EACE,uBAAA;CrD4nLD;AqDxnLD;EACE,oBAAA;CrD0nLD;AsDrpLD;EACE,iBAAA;EACA,cAAA;EACA,oBAAA;EACA,0BAAA;EACA,0BAAA;EACA,mBAAA;EjDwDA,wDAAA;EACQ,gDAAA;CLgmLT;AsD/pLD;EASI,mBAAA;EACA,kCAAA;CtDypLH;AsDppLD;EACE,cAAA;EACA,mBAAA;CtDspLD;AsDppLD;EACE,aAAA;EACA,mBAAA;CtDspLD;AuD5qLD;EACE,aAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;EACA,YAAA;EACA,0BAAA;EjCRA,aAAA;EAGA,0BAAA;CtBqrLD;AuD7qLC;;EAEE,YAAA;EACA,sBAAA;EACA,gBAAA;EjCfF,aAAA;EAGA,0BAAA;CtB6rLD;AuDzqLC;EACE,WAAA;EACA,gBAAA;EACA,wBAAA;EACA,UAAA;EACA,yBAAA;CvD2qLH;AwDhsLD;EACE,iBAAA;CxDksLD;AwD9rLD;EACE,cAAA;EACA,iBAAA;EACA,gBAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,kCAAA;EAIA,WAAA;CxD6rLD;AwD1rLC;EnD+GA,sCAAA;EACI,kCAAA;EACC,iCAAA;EACG,8BAAA;EAkER,oDAAA;EAEK,0CAAA;EACG,oCAAA;CL6gLT;AwDhsLC;EnD2GA,mCAAA;EACI,+BAAA;EACC,8BAAA;EACG,2BAAA;CLwlLT;AwDpsLD;EACE,mBAAA;EACA,iBAAA;CxDssLD;AwDlsLD;EACE,mBAAA;EACA,YAAA;EACA,aAAA;CxDosLD;AwDhsLD;EACE,mBAAA;EACA,uBAAA;EACA,uBAAA;EACA,qCAAA;EACA,mBAAA;EnDaA,iDAAA;EACQ,yCAAA;EmDZR,qCAAA;UAAA,6BAAA;EAEA,WAAA;CxDksLD;AwD9rLD;EACE,gBAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,uBAAA;CxDgsLD;AwD9rLC;ElCrEA,WAAA;EAGA,yBAAA;CtBowLD;AwDjsLC;ElCtEA,aAAA;EAGA,0BAAA;CtBwwLD;AwDhsLD;EACE,cAAA;EACA,iCAAA;CxDksLD;AwD9rLD;EACE,iBAAA;CxDgsLD;AwD5rLD;EACE,UAAA;EACA,wBAAA;CxD8rLD;AwDzrLD;EACE,mBAAA;EACA,cAAA;CxD2rLD;AwDvrLD;EACE,cAAA;EACA,kBAAA;EACA,8BAAA;CxDyrLD;AwD5rLD;EAQI,iBAAA;EACA,iBAAA;CxDurLH;AwDhsLD;EAaI,kBAAA;CxDsrLH;AwDnsLD;EAiBI,eAAA;CxDqrLH;AwDhrLD;EACE,mBAAA;EACA,aAAA;EACA,YAAA;EACA,aAAA;EACA,iBAAA;CxDkrLD;AwDhqLD;EAZE;IACE,aAAA;IACA,kBAAA;GxD+qLD;EwD7qLD;InDvEA,kDAAA;IACQ,0CAAA;GLuvLP;EwD5qLD;IAAY,aAAA;GxD+qLX;CACF;AwD1qLD;EAFE;IAAY,aAAA;GxDgrLX;CACF;AyD/zLD;EACE,mBAAA;EACA,cAAA;EACA,eAAA;ECRA,4DAAA;EAEA,mBAAA;EACA,oBAAA;EACA,uBAAA;EACA,iBAAA;EACA,wBAAA;EACA,iBAAA;EACA,kBAAA;EACA,sBAAA;EACA,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,mBAAA;EACA,qBAAA;EACA,kBAAA;EDHA,gBAAA;EnCVA,WAAA;EAGA,yBAAA;CtBs1LD;AyD30LC;EnCdA,aAAA;EAGA,0BAAA;CtB01LD;AyD90LC;EAAW,iBAAA;EAAmB,eAAA;CzDk1L/B;AyDj1LC;EAAW,iBAAA;EAAmB,eAAA;CzDq1L/B;AyDp1LC;EAAW,gBAAA;EAAmB,eAAA;CzDw1L/B;AyDv1LC;EAAW,kBAAA;EAAmB,eAAA;CzD21L/B;AyDv1LD;EACE,iBAAA;EACA,iBAAA;EACA,YAAA;EACA,mBAAA;EACA,uBAAA;EACA,mBAAA;CzDy1LD;AyDr1LD;EACE,mBAAA;EACA,SAAA;EACA,UAAA;EACA,0BAAA;EACA,oBAAA;CzDu1LD;AyDn1LC;EACE,UAAA;EACA,UAAA;EACA,kBAAA;EACA,wBAAA;EACA,uBAAA;CzDq1LH;AyDn1LC;EACE,UAAA;EACA,WAAA;EACA,oBAAA;EACA,wBAAA;EACA,uBAAA;CzDq1LH;AyDn1LC;EACE,UAAA;EACA,UAAA;EACA,oBAAA;EACA,wBAAA;EACA,uBAAA;CzDq1LH;AyDn1LC;EACE,SAAA;EACA,QAAA;EACA,iBAAA;EACA,4BAAA;EACA,yBAAA;CzDq1LH;AyDn1LC;EACE,SAAA;EACA,SAAA;EACA,iBAAA;EACA,4BAAA;EACA,wBAAA;CzDq1LH;AyDn1LC;EACE,OAAA;EACA,UAAA;EACA,kBAAA;EACA,wBAAA;EACA,0BAAA;CzDq1LH;AyDn1LC;EACE,OAAA;EACA,WAAA;EACA,iBAAA;EACA,wBAAA;EACA,0BAAA;CzDq1LH;AyDn1LC;EACE,OAAA;EACA,UAAA;EACA,iBAAA;EACA,wBAAA;EACA,0BAAA;CzDq1LH;A2Dl7LD;EACE,mBAAA;EACA,OAAA;EACA,QAAA;EACA,cAAA;EACA,cAAA;EACA,iBAAA;EACA,aAAA;EDXA,4DAAA;EAEA,mBAAA;EACA,oBAAA;EACA,uBAAA;EACA,iBAAA;EACA,wBAAA;EACA,iBAAA;EACA,kBAAA;EACA,sBAAA;EACA,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,mBAAA;EACA,qBAAA;EACA,kBAAA;ECAA,gBAAA;EAEA,uBAAA;EACA,qCAAA;UAAA,6BAAA;EACA,uBAAA;EACA,qCAAA;EACA,mBAAA;EtD8CA,kDAAA;EACQ,0CAAA;CLk5LT;A2D77LC;EAAY,kBAAA;C3Dg8Lb;A2D/7LC;EAAY,kBAAA;C3Dk8Lb;A2Dj8LC;EAAY,iBAAA;C3Do8Lb;A2Dn8LC;EAAY,mBAAA;C3Ds8Lb;A2Dn8LD;EACE,UAAA;EACA,kBAAA;EACA,gBAAA;EACA,0BAAA;EACA,iCAAA;EACA,2BAAA;C3Dq8LD;A2Dl8LD;EACE,kBAAA;C3Do8LD;A2D57LC;;EAEE,mBAAA;EACA,eAAA;EACA,SAAA;EACA,UAAA;EACA,0BAAA;EACA,oBAAA;C3D87LH;A2D37LD;EACE,mBAAA;C3D67LD;A2D37LD;EACE,mBAAA;EACA,YAAA;C3D67LD;A2Dz7LC;EACE,UAAA;EACA,mBAAA;EACA,uBAAA;EACA,0BAAA;EACA,sCAAA;EACA,cAAA;C3D27LH;A2D17LG;EACE,aAAA;EACA,YAAA;EACA,mBAAA;EACA,uBAAA;EACA,uBAAA;C3D47LL;A2Dz7LC;EACE,SAAA;EACA,YAAA;EACA,kBAAA;EACA,qBAAA;EACA,4BAAA;EACA,wCAAA;C3D27LH;A2D17LG;EACE,aAAA;EACA,UAAA;EACA,cAAA;EACA,qBAAA;EACA,yBAAA;C3D47LL;A2Dz7LC;EACE,UAAA;EACA,mBAAA;EACA,oBAAA;EACA,6BAAA;EACA,yCAAA;EACA,WAAA;C3D27LH;A2D17LG;EACE,aAAA;EACA,SAAA;EACA,mBAAA;EACA,oBAAA;EACA,0BAAA;C3D47LL;A2Dx7LC;EACE,SAAA;EACA,aAAA;EACA,kBAAA;EACA,sBAAA;EACA,2BAAA;EACA,uCAAA;C3D07LH;A2Dz7LG;EACE,aAAA;EACA,WAAA;EACA,sBAAA;EACA,wBAAA;EACA,cAAA;C3D27LL;A4DpjMD;EACE,mBAAA;C5DsjMD;A4DnjMD;EACE,mBAAA;EACA,iBAAA;EACA,YAAA;C5DqjMD;A4DxjMD;EAMI,cAAA;EACA,mBAAA;EvD6KF,0CAAA;EACK,qCAAA;EACG,kCAAA;CLy4LT;A4D/jMD;;EAcM,eAAA;C5DqjML;A4D3hMC;EA4NF;IvD3DE,uDAAA;IAEK,6CAAA;IACG,uCAAA;IA7JR,oCAAA;IAEQ,4BAAA;IA+GR,4BAAA;IAEQ,oBAAA;GL86LP;E4DzjMG;;IvDmHJ,2CAAA;IACQ,mCAAA;IuDjHF,QAAA;G5D4jML;E4D1jMG;;IvD8GJ,4CAAA;IACQ,oCAAA;IuD5GF,QAAA;G5D6jML;E4D3jMG;;;IvDyGJ,wCAAA;IACQ,gCAAA;IuDtGF,QAAA;G5D8jML;CACF;A4DpmMD;;;EA6CI,eAAA;C5D4jMH;A4DzmMD;EAiDI,QAAA;C5D2jMH;A4D5mMD;;EAsDI,mBAAA;EACA,OAAA;EACA,YAAA;C5D0jMH;A4DlnMD;EA4DI,WAAA;C5DyjMH;A4DrnMD;EA+DI,YAAA;C5DyjMH;A4DxnMD;;EAmEI,QAAA;C5DyjMH;A4D5nMD;EAuEI,YAAA;C5DwjMH;A4D/nMD;EA0EI,WAAA;C5DwjMH;A4DhjMD;EACE,mBAAA;EACA,OAAA;EACA,QAAA;EACA,UAAA;EACA,WAAA;EtC9FA,aAAA;EAGA,0BAAA;EsC6FA,gBAAA;EACA,YAAA;EACA,mBAAA;EACA,0CAAA;EACA,mCAAA;C5DmjMD;A4D9iMC;EdnGE,mGAAA;EACA,8FAAA;EACA,qHAAA;EAAA,+FAAA;EACA,4BAAA;EACA,uHAAA;C9CopMH;A4DljMC;EACE,WAAA;EACA,SAAA;EdxGA,mGAAA;EACA,8FAAA;EACA,qHAAA;EAAA,+FAAA;EACA,4BAAA;EACA,uHAAA;C9C6pMH;A4DpjMC;;EAEE,WAAA;EACA,YAAA;EACA,sBAAA;EtCvHF,aAAA;EAGA,0BAAA;CtB4qMD;A4DtlMD;;;;EAuCI,mBAAA;EACA,SAAA;EACA,kBAAA;EACA,WAAA;EACA,sBAAA;C5DqjMH;A4DhmMD;;EA+CI,UAAA;EACA,mBAAA;C5DqjMH;A4DrmMD;;EAoDI,WAAA;EACA,oBAAA;C5DqjMH;A4D1mMD;;EAyDI,YAAA;EACA,aAAA;EACA,eAAA;EACA,mBAAA;C5DqjMH;A4DhjMG;EACE,iBAAA;C5DkjML;A4D9iMG;EACE,iBAAA;C5DgjML;A4DtiMD;EACE,mBAAA;EACA,aAAA;EACA,UAAA;EACA,YAAA;EACA,WAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;C5DwiMD;A4DjjMD;EAYI,sBAAA;EACA,YAAA;EACA,aAAA;EACA,YAAA;EACA,oBAAA;EACA,uBAAA;EACA,oBAAA;EACA,gBAAA;EAWA,0BAAA;EACA,mCAAA;C5D8hMH;A4D7jMD;EAkCI,UAAA;EACA,YAAA;EACA,aAAA;EACA,uBAAA;C5D8hMH;A4DvhMD;EACE,mBAAA;EACA,UAAA;EACA,WAAA;EACA,aAAA;EACA,YAAA;EACA,kBAAA;EACA,qBAAA;EACA,YAAA;EACA,mBAAA;EACA,0CAAA;C5DyhMD;A4DxhMC;EACE,kBAAA;C5D0hMH;A4Dj/LD;EAhCE;;;;IAKI,YAAA;IACA,aAAA;IACA,kBAAA;IACA,gBAAA;G5DmhMH;E4D3hMD;;IAYI,mBAAA;G5DmhMH;E4D/hMD;;IAgBI,oBAAA;G5DmhMH;E4D9gMD;IACE,UAAA;IACA,WAAA;IACA,qBAAA;G5DghMD;E4D5gMD;IACE,aAAA;G5D8gMD;CACF;A6D7wMC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEE,aAAA;EACA,eAAA;C7D6yMH;A6D3yMC;;;;;;;;;;;;;;;;EACE,YAAA;C7D4zMH;AiCp0MD;E6BRE,eAAA;EACA,kBAAA;EACA,mBAAA;C9D+0MD;AiCt0MD;EACE,wBAAA;CjCw0MD;AiCt0MD;EACE,uBAAA;CjCw0MD;AiCh0MD;EACE,yBAAA;CjCk0MD;AiCh0MD;EACE,0BAAA;CjCk0MD;AiCh0MD;EACE,mBAAA;CjCk0MD;AiCh0MD;E8BzBE,YAAA;EACA,mBAAA;EACA,kBAAA;EACA,8BAAA;EACA,UAAA;C/D41MD;AiC9zMD;EACE,yBAAA;CjCg0MD;AiCzzMD;EACE,gBAAA;CjC2zMD;AgE51MD;EACE,oBAAA;ChE81MD;AgEx1MD;;;;ECdE,yBAAA;CjE42MD;AgEv1MD;;;;;;;;;;;;EAYE,yBAAA;ChEy1MD;AgEl1MD;EA6IA;IC7LE,0BAAA;GjEs4MC;EiEr4MD;IAAU,0BAAA;GjEw4MT;EiEv4MD;IAAU,8BAAA;GjE04MT;EiEz4MD;;IACU,+BAAA;GjE44MT;CACF;AgE51MD;EAwIA;IA1II,0BAAA;GhEk2MD;CACF;AgE51MD;EAmIA;IArII,2BAAA;GhEk2MD;CACF;AgE51MD;EA8HA;IAhII,iCAAA;GhEk2MD;CACF;AgE31MD;EAwHA;IC7LE,0BAAA;GjEo6MC;EiEn6MD;IAAU,0BAAA;GjEs6MT;EiEr6MD;IAAU,8BAAA;GjEw6MT;EiEv6MD;;IACU,+BAAA;GjE06MT;CACF;AgEr2MD;EAmHA;IArHI,0BAAA;GhE22MD;CACF;AgEr2MD;EA8GA;IAhHI,2BAAA;GhE22MD;CACF;AgEr2MD;EAyGA;IA3GI,iCAAA;GhE22MD;CACF;AgEp2MD;EAmGA;IC7LE,0BAAA;GjEk8MC;EiEj8MD;IAAU,0BAAA;GjEo8MT;EiEn8MD;IAAU,8BAAA;GjEs8MT;EiEr8MD;;IACU,+BAAA;GjEw8MT;CACF;AgE92MD;EA8FA;IAhGI,0BAAA;GhEo3MD;CACF;AgE92MD;EAyFA;IA3FI,2BAAA;GhEo3MD;CACF;AgE92MD;EAoFA;IAtFI,iCAAA;GhEo3MD;CACF;AgE72MD;EA8EA;IC7LE,0BAAA;GjEg+MC;EiE/9MD;IAAU,0BAAA;GjEk+MT;EiEj+MD;IAAU,8BAAA;GjEo+MT;EiEn+MD;;IACU,+BAAA;GjEs+MT;CACF;AgEv3MD;EAyEA;IA3EI,0BAAA;GhE63MD;CACF;AgEv3MD;EAoEA;IAtEI,2BAAA;GhE63MD;CACF;AgEv3MD;EA+DA;IAjEI,iCAAA;GhE63MD;CACF;AgEt3MD;EAyDA;ICrLE,yBAAA;GjEs/MC;CACF;AgEt3MD;EAoDA;ICrLE,yBAAA;GjE2/MC;CACF;AgEt3MD;EA+CA;ICrLE,yBAAA;GjEggNC;CACF;AgEt3MD;EA0CA;ICrLE,yBAAA;GjEqgNC;CACF;AgEn3MD;ECnJE,yBAAA;CjEygND;AgEh3MD;EA4BA;IC7LE,0BAAA;GjEqhNC;EiEphND;IAAU,0BAAA;GjEuhNT;EiEthND;IAAU,8BAAA;GjEyhNT;EiExhND;;IACU,+BAAA;GjE2hNT;CACF;AgE93MD;EACE,yBAAA;ChEg4MD;AgE33MD;EAqBA;IAvBI,0BAAA;GhEi4MD;CACF;AgE/3MD;EACE,yBAAA;ChEi4MD;AgE53MD;EAcA;IAhBI,2BAAA;GhEk4MD;CACF;AgEh4MD;EACE,yBAAA;ChEk4MD;AgE73MD;EAOA;IATI,iCAAA;GhEm4MD;CACF;AgE53MD;EACA;ICrLE,yBAAA;GjEojNC;CACF","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: 1px dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\nmark {\n background: #ff0;\n color: #000;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n font: inherit;\n margin: 0;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n border: 0;\n padding: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important;\n box-shadow: none !important;\n text-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('../fonts/glyphicons-halflings-regular.eot');\n src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: \"\\002a\";\n}\n.glyphicon-plus:before {\n content: \"\\002b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n content: \"\\270f\";\n}\n.glyphicon-glass:before {\n content: \"\\e001\";\n}\n.glyphicon-music:before {\n content: \"\\e002\";\n}\n.glyphicon-search:before {\n content: \"\\e003\";\n}\n.glyphicon-heart:before {\n content: \"\\e005\";\n}\n.glyphicon-star:before {\n content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n content: \"\\e007\";\n}\n.glyphicon-user:before {\n content: \"\\e008\";\n}\n.glyphicon-film:before {\n content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n content: \"\\e010\";\n}\n.glyphicon-th:before {\n content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n content: \"\\e012\";\n}\n.glyphicon-ok:before {\n content: \"\\e013\";\n}\n.glyphicon-remove:before {\n content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n content: \"\\e016\";\n}\n.glyphicon-off:before {\n content: \"\\e017\";\n}\n.glyphicon-signal:before {\n content: \"\\e018\";\n}\n.glyphicon-cog:before {\n content: \"\\e019\";\n}\n.glyphicon-trash:before {\n content: \"\\e020\";\n}\n.glyphicon-home:before {\n content: \"\\e021\";\n}\n.glyphicon-file:before {\n content: \"\\e022\";\n}\n.glyphicon-time:before {\n content: \"\\e023\";\n}\n.glyphicon-road:before {\n content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n content: \"\\e025\";\n}\n.glyphicon-download:before {\n content: \"\\e026\";\n}\n.glyphicon-upload:before {\n content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n content: \"\\e032\";\n}\n.glyphicon-lock:before {\n content: \"\\e033\";\n}\n.glyphicon-flag:before {\n content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n content: \"\\e040\";\n}\n.glyphicon-tag:before {\n content: \"\\e041\";\n}\n.glyphicon-tags:before {\n content: \"\\e042\";\n}\n.glyphicon-book:before {\n content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n content: \"\\e044\";\n}\n.glyphicon-print:before {\n content: \"\\e045\";\n}\n.glyphicon-camera:before {\n content: \"\\e046\";\n}\n.glyphicon-font:before {\n content: \"\\e047\";\n}\n.glyphicon-bold:before {\n content: \"\\e048\";\n}\n.glyphicon-italic:before {\n content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n content: \"\\e055\";\n}\n.glyphicon-list:before {\n content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n content: \"\\e059\";\n}\n.glyphicon-picture:before {\n content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n content: \"\\e063\";\n}\n.glyphicon-tint:before {\n content: \"\\e064\";\n}\n.glyphicon-edit:before {\n content: \"\\e065\";\n}\n.glyphicon-share:before {\n content: \"\\e066\";\n}\n.glyphicon-check:before {\n content: \"\\e067\";\n}\n.glyphicon-move:before {\n content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n content: \"\\e070\";\n}\n.glyphicon-backward:before {\n content: \"\\e071\";\n}\n.glyphicon-play:before {\n content: \"\\e072\";\n}\n.glyphicon-pause:before {\n content: \"\\e073\";\n}\n.glyphicon-stop:before {\n content: \"\\e074\";\n}\n.glyphicon-forward:before {\n content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n content: \"\\e077\";\n}\n.glyphicon-eject:before {\n content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n content: \"\\e101\";\n}\n.glyphicon-gift:before {\n content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n content: \"\\e103\";\n}\n.glyphicon-fire:before {\n content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n content: \"\\e107\";\n}\n.glyphicon-plane:before {\n content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n content: \"\\e109\";\n}\n.glyphicon-random:before {\n content: \"\\e110\";\n}\n.glyphicon-comment:before {\n content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n content: \"\\e122\";\n}\n.glyphicon-bell:before {\n content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n content: \"\\e134\";\n}\n.glyphicon-globe:before {\n content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n content: \"\\e137\";\n}\n.glyphicon-filter:before {\n content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n content: \"\\e143\";\n}\n.glyphicon-link:before {\n content: \"\\e144\";\n}\n.glyphicon-phone:before {\n content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n content: \"\\e146\";\n}\n.glyphicon-usd:before {\n content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n content: \"\\e149\";\n}\n.glyphicon-sort:before {\n content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n content: \"\\e157\";\n}\n.glyphicon-expand:before {\n content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n content: \"\\e161\";\n}\n.glyphicon-flash:before {\n content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n content: \"\\e164\";\n}\n.glyphicon-record:before {\n content: \"\\e165\";\n}\n.glyphicon-save:before {\n content: \"\\e166\";\n}\n.glyphicon-open:before {\n content: \"\\e167\";\n}\n.glyphicon-saved:before {\n content: \"\\e168\";\n}\n.glyphicon-import:before {\n content: \"\\e169\";\n}\n.glyphicon-export:before {\n content: \"\\e170\";\n}\n.glyphicon-send:before {\n content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n content: \"\\e179\";\n}\n.glyphicon-header:before {\n content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n content: \"\\e183\";\n}\n.glyphicon-tower:before {\n content: \"\\e184\";\n}\n.glyphicon-stats:before {\n content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n content: \"\\e200\";\n}\n.glyphicon-cd:before {\n content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n content: \"\\e204\";\n}\n.glyphicon-copy:before {\n content: \"\\e205\";\n}\n.glyphicon-paste:before {\n content: \"\\e206\";\n}\n.glyphicon-alert:before {\n content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n content: \"\\e210\";\n}\n.glyphicon-king:before {\n content: \"\\e211\";\n}\n.glyphicon-queen:before {\n content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n content: \"\\e214\";\n}\n.glyphicon-knight:before {\n content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n content: \"\\e216\";\n}\n.glyphicon-tent:before {\n content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n content: \"\\e218\";\n}\n.glyphicon-bed:before {\n content: \"\\e219\";\n}\n.glyphicon-apple:before {\n content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n content: \"\\e227\";\n}\n.glyphicon-btc:before {\n content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n content: \"\\e227\";\n}\n.glyphicon-yen:before {\n content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\";\n}\n.glyphicon-education:before {\n content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n content: \"\\e237\";\n}\n.glyphicon-oil:before {\n content: \"\\e238\";\n}\n.glyphicon-grain:before {\n content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n content: \"\\e253\";\n}\n.glyphicon-console:before {\n content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n content: \"\\e260\";\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333333;\n background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n padding: 4px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eeeeee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role=\"button\"] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: normal;\n line-height: 1;\n color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n background-color: #fcf8e3;\n padding: .2em;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n margin-left: -5px;\n}\n.list-inline > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #777777;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid #eeeeee;\n border-left: 0;\n text-align: right;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: '\\00A0 \\2014';\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #fff;\n background-color: #333;\n border-radius: 3px;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n word-break: break-all;\n word-wrap: break-word;\n color: #333333;\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n.row {\n margin-left: -15px;\n margin-right: -15px;\n}\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\n float: left;\n}\n.col-xs-12 {\n width: 100%;\n}\n.col-xs-11 {\n width: 91.66666667%;\n}\n.col-xs-10 {\n width: 83.33333333%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-8 {\n width: 66.66666667%;\n}\n.col-xs-7 {\n width: 58.33333333%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-5 {\n width: 41.66666667%;\n}\n.col-xs-4 {\n width: 33.33333333%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-2 {\n width: 16.66666667%;\n}\n.col-xs-1 {\n width: 8.33333333%;\n}\n.col-xs-pull-12 {\n right: 100%;\n}\n.col-xs-pull-11 {\n right: 91.66666667%;\n}\n.col-xs-pull-10 {\n right: 83.33333333%;\n}\n.col-xs-pull-9 {\n right: 75%;\n}\n.col-xs-pull-8 {\n right: 66.66666667%;\n}\n.col-xs-pull-7 {\n right: 58.33333333%;\n}\n.col-xs-pull-6 {\n right: 50%;\n}\n.col-xs-pull-5 {\n right: 41.66666667%;\n}\n.col-xs-pull-4 {\n right: 33.33333333%;\n}\n.col-xs-pull-3 {\n right: 25%;\n}\n.col-xs-pull-2 {\n right: 16.66666667%;\n}\n.col-xs-pull-1 {\n right: 8.33333333%;\n}\n.col-xs-pull-0 {\n right: auto;\n}\n.col-xs-push-12 {\n left: 100%;\n}\n.col-xs-push-11 {\n left: 91.66666667%;\n}\n.col-xs-push-10 {\n left: 83.33333333%;\n}\n.col-xs-push-9 {\n left: 75%;\n}\n.col-xs-push-8 {\n left: 66.66666667%;\n}\n.col-xs-push-7 {\n left: 58.33333333%;\n}\n.col-xs-push-6 {\n left: 50%;\n}\n.col-xs-push-5 {\n left: 41.66666667%;\n}\n.col-xs-push-4 {\n left: 33.33333333%;\n}\n.col-xs-push-3 {\n left: 25%;\n}\n.col-xs-push-2 {\n left: 16.66666667%;\n}\n.col-xs-push-1 {\n left: 8.33333333%;\n}\n.col-xs-push-0 {\n left: auto;\n}\n.col-xs-offset-12 {\n margin-left: 100%;\n}\n.col-xs-offset-11 {\n margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n margin-left: 75%;\n}\n.col-xs-offset-8 {\n margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n margin-left: 50%;\n}\n.col-xs-offset-5 {\n margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n margin-left: 25%;\n}\n.col-xs-offset-2 {\n margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n margin-left: 0%;\n}\n@media (min-width: 768px) {\n .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n float: left;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n right: 100%;\n }\n .col-sm-pull-11 {\n right: 91.66666667%;\n }\n .col-sm-pull-10 {\n right: 83.33333333%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-8 {\n right: 66.66666667%;\n }\n .col-sm-pull-7 {\n right: 58.33333333%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-5 {\n right: 41.66666667%;\n }\n .col-sm-pull-4 {\n right: 33.33333333%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-2 {\n right: 16.66666667%;\n }\n .col-sm-pull-1 {\n right: 8.33333333%;\n }\n .col-sm-pull-0 {\n right: auto;\n }\n .col-sm-push-12 {\n left: 100%;\n }\n .col-sm-push-11 {\n left: 91.66666667%;\n }\n .col-sm-push-10 {\n left: 83.33333333%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-8 {\n left: 66.66666667%;\n }\n .col-sm-push-7 {\n left: 58.33333333%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-5 {\n left: 41.66666667%;\n }\n .col-sm-push-4 {\n left: 33.33333333%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-2 {\n left: 16.66666667%;\n }\n .col-sm-push-1 {\n left: 8.33333333%;\n }\n .col-sm-push-0 {\n left: auto;\n }\n .col-sm-offset-12 {\n margin-left: 100%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-sm-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-sm-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-sm-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 992px) {\n .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n float: left;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n right: 100%;\n }\n .col-md-pull-11 {\n right: 91.66666667%;\n }\n .col-md-pull-10 {\n right: 83.33333333%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-8 {\n right: 66.66666667%;\n }\n .col-md-pull-7 {\n right: 58.33333333%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-5 {\n right: 41.66666667%;\n }\n .col-md-pull-4 {\n right: 33.33333333%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-2 {\n right: 16.66666667%;\n }\n .col-md-pull-1 {\n right: 8.33333333%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-push-12 {\n left: 100%;\n }\n .col-md-push-11 {\n left: 91.66666667%;\n }\n .col-md-push-10 {\n left: 83.33333333%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-8 {\n left: 66.66666667%;\n }\n .col-md-push-7 {\n left: 58.33333333%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-5 {\n left: 41.66666667%;\n }\n .col-md-push-4 {\n left: 33.33333333%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-2 {\n left: 16.66666667%;\n }\n .col-md-push-1 {\n left: 8.33333333%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-offset-12 {\n margin-left: 100%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-md-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-md-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-md-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 1200px) {\n .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n float: left;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n right: 100%;\n }\n .col-lg-pull-11 {\n right: 91.66666667%;\n }\n .col-lg-pull-10 {\n right: 83.33333333%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-8 {\n right: 66.66666667%;\n }\n .col-lg-pull-7 {\n right: 58.33333333%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-5 {\n right: 41.66666667%;\n }\n .col-lg-pull-4 {\n right: 33.33333333%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-2 {\n right: 16.66666667%;\n }\n .col-lg-pull-1 {\n right: 8.33333333%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-push-12 {\n left: 100%;\n }\n .col-lg-push-11 {\n left: 91.66666667%;\n }\n .col-lg-push-10 {\n left: 83.33333333%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-8 {\n left: 66.66666667%;\n }\n .col-lg-push-7 {\n left: 58.33333333%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-5 {\n left: 41.66666667%;\n }\n .col-lg-push-4 {\n left: 33.33333333%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-2 {\n left: 16.66666667%;\n }\n .col-lg-push-1 {\n left: 8.33333333%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-offset-12 {\n margin-left: 100%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-lg-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-lg-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-lg-offset-0 {\n margin-left: 0%;\n }\n}\ntable {\n background-color: transparent;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #ddd;\n}\n.table .table {\n background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\ntable col[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-column;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-cell;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #ddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n min-width: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: bold;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type=\"file\"] {\n display: block;\n}\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n color: #999;\n opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n color: #999;\n}\n.form-control::-webkit-input-placeholder {\n color: #999;\n}\n.form-control::-ms-expand {\n border: 0;\n background-color: transparent;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n background-color: #eeeeee;\n opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\ntextarea.form-control {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"].form-control,\n input[type=\"time\"].form-control,\n input[type=\"datetime-local\"].form-control,\n input[type=\"month\"].form-control {\n line-height: 34px;\n }\n input[type=\"date\"].input-sm,\n input[type=\"time\"].input-sm,\n input[type=\"datetime-local\"].input-sm,\n input[type=\"month\"].input-sm,\n .input-group-sm input[type=\"date\"],\n .input-group-sm input[type=\"time\"],\n .input-group-sm input[type=\"datetime-local\"],\n .input-group-sm input[type=\"month\"] {\n line-height: 30px;\n }\n input[type=\"date\"].input-lg,\n input[type=\"time\"].input-lg,\n input[type=\"datetime-local\"].input-lg,\n input[type=\"month\"].input-lg,\n .input-group-lg input[type=\"date\"],\n .input-group-lg input[type=\"time\"],\n .input-group-lg input[type=\"datetime-local\"],\n .input-group-lg input[type=\"month\"] {\n line-height: 46px;\n }\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.form-control-static {\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n min-height: 34px;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-left: 0;\n padding-right: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.form-group-sm select.form-control {\n height: 30px;\n line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.form-group-lg select.form-control {\n height: 46px;\n line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 11px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n border-color: #3c763d;\n background-color: #dff0d8;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n border-color: #8a6d3b;\n background-color: #fcf8e3;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n border-color: #a94442;\n background-color: #f2dede;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 7px;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-left: -15px;\n margin-right: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n text-align: right;\n margin-bottom: 0;\n padding-top: 7px;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 11px;\n font-size: 18px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px;\n }\n}\n.btn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: normal;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n border-radius: 4px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n.btn-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n color: #333;\n background-color: #e6e6e6;\n border-color: #8c8c8c;\n}\n.btn-default:hover {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n color: #333;\n background-color: #d4d4d4;\n border-color: #8c8c8c;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n background-image: none;\n}\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus {\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default .badge {\n color: #fff;\n background-color: #333;\n}\n.btn-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n color: #fff;\n background-color: #286090;\n border-color: #122b40;\n}\n.btn-primary:hover {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n color: #fff;\n background-color: #204d74;\n border-color: #122b40;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n background-image: none;\n}\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n color: #fff;\n background-color: #449d44;\n border-color: #255625;\n}\n.btn-success:hover {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n color: #fff;\n background-color: #398439;\n border-color: #255625;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n background-image: none;\n}\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #fff;\n}\n.btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n color: #fff;\n background-color: #31b0d5;\n border-color: #1b6d85;\n}\n.btn-info:hover {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n color: #fff;\n background-color: #269abc;\n border-color: #1b6d85;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n background-image: none;\n}\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #fff;\n}\n.btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n color: #fff;\n background-color: #ec971f;\n border-color: #985f0d;\n}\n.btn-warning:hover {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n color: #fff;\n background-color: #d58512;\n border-color: #985f0d;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n background-image: none;\n}\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #fff;\n}\n.btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n color: #fff;\n background-color: #c9302c;\n border-color: #761c19;\n}\n.btn-danger:hover {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n color: #fff;\n background-color: #ac2925;\n border-color: #761c19;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n background-image: none;\n}\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #fff;\n}\n.btn-link {\n color: #337ab7;\n font-weight: normal;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-top: 4px solid \\9;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n list-style: none;\n font-size: 14px;\n text-align: left;\n background-color: #fff;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n background-clip: padding-box;\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.42857143;\n color: #333333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n text-decoration: none;\n color: #262626;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n background-color: #337ab7;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n cursor: not-allowed;\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n left: auto;\n right: 0;\n}\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n border-top: 0;\n border-bottom: 4px dashed;\n border-bottom: 4px solid \\9;\n content: \"\";\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n left: auto;\n right: 0;\n }\n .navbar-right .dropdown-menu-left {\n left: 0;\n right: auto;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group .form-control:focus {\n z-index: 3;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n color: #555555;\n text-align: center;\n background-color: #eeeeee;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n.nav {\n margin-bottom: 0;\n padding-left: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777777;\n text-decoration: none;\n background-color: transparent;\n cursor: not-allowed;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eeeeee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eeeeee #eeeeee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555555;\n background-color: #fff;\n border: 1px solid #ddd;\n border-bottom-color: transparent;\n cursor: default;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #fff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n overflow-x: visible;\n padding-right: 15px;\n padding-left: 15px;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-left: 0;\n padding-right: 0;\n }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.navbar-brand {\n float: left;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n height: 50px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: 15px;\n padding: 9px 10px;\n margin-top: 8px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n margin-left: -15px;\n margin-right: -15px;\n padding: 10px 15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n margin-top: 8px;\n margin-bottom: 8px;\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-left: 15px;\n margin-right: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n background-color: #e7e7e7;\n color: #555;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-link {\n color: #777;\n}\n.navbar-default .navbar-link:hover {\n color: #333;\n}\n.navbar-default .btn-link {\n color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #ccc;\n}\n.navbar-inverse {\n background-color: #222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #fff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n background-color: #080808;\n color: #fff;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #fff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n content: \"/\\00a0\";\n padding: 0 5px;\n color: #ccc;\n}\n.breadcrumb > .active {\n color: #777777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n line-height: 1.42857143;\n text-decoration: none;\n color: #337ab7;\n background-color: #fff;\n border: 1px solid #ddd;\n margin-left: -1px;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n z-index: 2;\n color: #23527c;\n background-color: #eeeeee;\n border-color: #ddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 3;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n cursor: default;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777777;\n background-color: #fff;\n border-color: #ddd;\n cursor: not-allowed;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-bottom-left-radius: 6px;\n border-top-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-bottom-right-radius: 6px;\n border-top-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-bottom-left-radius: 3px;\n border-top-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n list-style: none;\n text-align: center;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777777;\n background-color: #fff;\n cursor: not-allowed;\n}\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n}\na.label:hover,\na.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n color: #fff;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: #777777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n border-radius: 6px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding-top: 48px;\n padding-bottom: 48px;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-left: 60px;\n padding-right: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-left: auto;\n margin-right: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n background-color: #dff0d8;\n border-color: #d6e9c6;\n color: #3c763d;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n background-color: #d9edf7;\n border-color: #bce8f1;\n color: #31708f;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n background-color: #fcf8e3;\n border-color: #faebcc;\n color: #8a6d3b;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n background-color: #f2dede;\n border-color: #ebccd1;\n color: #a94442;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n overflow: hidden;\n height: 20px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #fff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n zoom: 1;\n overflow: hidden;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-object.img-thumbnail {\n max-width: none;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n margin-bottom: 20px;\n padding-left: 0;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\na.list-group-item,\nbutton.list-group-item {\n color: #555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n color: #333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n text-decoration: none;\n color: #555;\n background-color: #f5f5f5;\n}\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n background-color: #eeeeee;\n color: #777777;\n cursor: not-allowed;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #fff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-left: 15px;\n padding-right: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n border: 0;\n margin-bottom: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #ddd;\n}\n.panel-default {\n border-color: #ddd;\n}\n.panel-default > .panel-heading {\n color: #333333;\n background-color: #f5f5f5;\n border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: 0.2;\n filter: alpha(opacity=20);\n}\n.close:hover,\n.close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -moz-transition: -moz-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #fff;\n border: 1px solid #999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n background-clip: padding-box;\n outline: 0;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n.modal-backdrop.fade {\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.modal-backdrop.in {\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 12px;\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.tooltip.in {\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.tooltip.top {\n margin-top: -3px;\n padding: 5px 0;\n}\n.tooltip.right {\n margin-left: 3px;\n padding: 0 5px;\n}\n.tooltip.bottom {\n margin-top: 3px;\n padding: 5px 0;\n}\n.tooltip.left {\n margin-left: -3px;\n padding: 0 5px;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n bottom: 0;\n right: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 14px;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover-title {\n margin: 0;\n padding: 8px 14px;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow:after {\n border-width: 10px;\n content: \"\";\n}\n.popover.top > .arrow {\n left: 50%;\n margin-left: -11px;\n border-bottom-width: 0;\n border-top-color: #999999;\n border-top-color: rgba(0, 0, 0, 0.25);\n bottom: -11px;\n}\n.popover.top > .arrow:after {\n content: \" \";\n bottom: 1px;\n margin-left: -10px;\n border-bottom-width: 0;\n border-top-color: #fff;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-left-width: 0;\n border-right-color: #999999;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n.popover.right > .arrow:after {\n content: \" \";\n left: 1px;\n bottom: -10px;\n border-left-width: 0;\n border-right-color: #fff;\n}\n.popover.bottom > .arrow {\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n top: -11px;\n}\n.popover.bottom > .arrow:after {\n content: \" \";\n top: 1px;\n margin-left: -10px;\n border-top-width: 0;\n border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: #fff;\n bottom: -10px;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n}\n.carousel-inner > .item {\n display: none;\n position: relative;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -moz-transition: -moz-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n -moz-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n -moz-perspective: 1000px;\n perspective: 1000px;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n left: 0;\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 15%;\n opacity: 0.5;\n filter: alpha(opacity=50);\n font-size: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n background-color: rgba(0, 0, 0, 0);\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n}\n.carousel-control.right {\n left: auto;\n right: 0;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n}\n.carousel-control:hover,\n.carousel-control:focus {\n outline: 0;\n color: #fff;\n text-decoration: none;\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n}\n.carousel-control .icon-prev:before {\n content: '\\2039';\n}\n.carousel-control .icon-next:before {\n content: '\\203a';\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid #fff;\n border-radius: 10px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n}\n.carousel-indicators .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: #fff;\n}\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -10px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -10px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -10px;\n }\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-header:before,\n.modal-header:after,\n.modal-footer:before,\n.modal-footer:after {\n content: \" \";\n display: table;\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-header:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table !important;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n// without disabling user zoom.\n//\n\nhtml {\n font-family: sans-serif; // 1\n -ms-text-size-adjust: 100%; // 2\n -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; // 1\n vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n//\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n// Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; // 1\n font: inherit; // 2\n margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n// and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n// `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; // 2\n cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; // 1\n padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; // 1\n box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n border: 0; // 1\n padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important; // Black prints faster: h5bp.com/s\n box-shadow: none !important;\n text-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n\n thead {\n display: table-header-group; // h5bp.com/t\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n img {\n max-width: 100% !important;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .btn,\n .dropup > .btn {\n > .caret {\n border-top-color: #000 !important;\n }\n }\n .label {\n border: 1px solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: #fff !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n\n // Bootstrap specific changes end\n}\n","//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// <a href=\"#\"><span class=\"glyphicon glyphicon-star\"></span> Star</a>\n\n// Import the fonts\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('@{icon-font-path}@{icon-font-name}.eot');\n src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),\n url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'),\n url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),\n url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),\n url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');\n}\n\n// Catchall baseclass\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk { &:before { content: \"\\002a\"; } }\n.glyphicon-plus { &:before { content: \"\\002b\"; } }\n.glyphicon-euro,\n.glyphicon-eur { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil { &:before { content: \"\\270f\"; } }\n.glyphicon-glass { &:before { content: \"\\e001\"; } }\n.glyphicon-music { &:before { content: \"\\e002\"; } }\n.glyphicon-search { &:before { content: \"\\e003\"; } }\n.glyphicon-heart { &:before { content: \"\\e005\"; } }\n.glyphicon-star { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty { &:before { content: \"\\e007\"; } }\n.glyphicon-user { &:before { content: \"\\e008\"; } }\n.glyphicon-film { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large { &:before { content: \"\\e010\"; } }\n.glyphicon-th { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list { &:before { content: \"\\e012\"; } }\n.glyphicon-ok { &:before { content: \"\\e013\"; } }\n.glyphicon-remove { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out { &:before { content: \"\\e016\"; } }\n.glyphicon-off { &:before { content: \"\\e017\"; } }\n.glyphicon-signal { &:before { content: \"\\e018\"; } }\n.glyphicon-cog { &:before { content: \"\\e019\"; } }\n.glyphicon-trash { &:before { content: \"\\e020\"; } }\n.glyphicon-home { &:before { content: \"\\e021\"; } }\n.glyphicon-file { &:before { content: \"\\e022\"; } }\n.glyphicon-time { &:before { content: \"\\e023\"; } }\n.glyphicon-road { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt { &:before { content: \"\\e025\"; } }\n.glyphicon-download { &:before { content: \"\\e026\"; } }\n.glyphicon-upload { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt { &:before { content: \"\\e032\"; } }\n.glyphicon-lock { &:before { content: \"\\e033\"; } }\n.glyphicon-flag { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode { &:before { content: \"\\e040\"; } }\n.glyphicon-tag { &:before { content: \"\\e041\"; } }\n.glyphicon-tags { &:before { content: \"\\e042\"; } }\n.glyphicon-book { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark { &:before { content: \"\\e044\"; } }\n.glyphicon-print { &:before { content: \"\\e045\"; } }\n.glyphicon-camera { &:before { content: \"\\e046\"; } }\n.glyphicon-font { &:before { content: \"\\e047\"; } }\n.glyphicon-bold { &:before { content: \"\\e048\"; } }\n.glyphicon-italic { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify { &:before { content: \"\\e055\"; } }\n.glyphicon-list { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video { &:before { content: \"\\e059\"; } }\n.glyphicon-picture { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust { &:before { content: \"\\e063\"; } }\n.glyphicon-tint { &:before { content: \"\\e064\"; } }\n.glyphicon-edit { &:before { content: \"\\e065\"; } }\n.glyphicon-share { &:before { content: \"\\e066\"; } }\n.glyphicon-check { &:before { content: \"\\e067\"; } }\n.glyphicon-move { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward { &:before { content: \"\\e070\"; } }\n.glyphicon-backward { &:before { content: \"\\e071\"; } }\n.glyphicon-play { &:before { content: \"\\e072\"; } }\n.glyphicon-pause { &:before { content: \"\\e073\"; } }\n.glyphicon-stop { &:before { content: \"\\e074\"; } }\n.glyphicon-forward { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward { &:before { content: \"\\e077\"; } }\n.glyphicon-eject { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign { &:before { content: \"\\e101\"; } }\n.glyphicon-gift { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf { &:before { content: \"\\e103\"; } }\n.glyphicon-fire { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign { &:before { content: \"\\e107\"; } }\n.glyphicon-plane { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar { &:before { content: \"\\e109\"; } }\n.glyphicon-random { &:before { content: \"\\e110\"; } }\n.glyphicon-comment { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn { &:before { content: \"\\e122\"; } }\n.glyphicon-bell { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down { &:before { content: \"\\e134\"; } }\n.glyphicon-globe { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks { &:before { content: \"\\e137\"; } }\n.glyphicon-filter { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty { &:before { content: \"\\e143\"; } }\n.glyphicon-link { &:before { content: \"\\e144\"; } }\n.glyphicon-phone { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin { &:before { content: \"\\e146\"; } }\n.glyphicon-usd { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp { &:before { content: \"\\e149\"; } }\n.glyphicon-sort { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked { &:before { content: \"\\e157\"; } }\n.glyphicon-expand { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in { &:before { content: \"\\e161\"; } }\n.glyphicon-flash { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window { &:before { content: \"\\e164\"; } }\n.glyphicon-record { &:before { content: \"\\e165\"; } }\n.glyphicon-save { &:before { content: \"\\e166\"; } }\n.glyphicon-open { &:before { content: \"\\e167\"; } }\n.glyphicon-saved { &:before { content: \"\\e168\"; } }\n.glyphicon-import { &:before { content: \"\\e169\"; } }\n.glyphicon-export { &:before { content: \"\\e170\"; } }\n.glyphicon-send { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery { &:before { content: \"\\e179\"; } }\n.glyphicon-header { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt { &:before { content: \"\\e183\"; } }\n.glyphicon-tower { &:before { content: \"\\e184\"; } }\n.glyphicon-stats { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1 { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1 { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1 { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous { &:before { content: \"\\e200\"; } }\n.glyphicon-cd { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up { &:before { content: \"\\e204\"; } }\n.glyphicon-copy { &:before { content: \"\\e205\"; } }\n.glyphicon-paste { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer { &:before { content: \"\\e210\"; } }\n.glyphicon-king { &:before { content: \"\\e211\"; } }\n.glyphicon-queen { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop { &:before { content: \"\\e214\"; } }\n.glyphicon-knight { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula { &:before { content: \"\\e216\"; } }\n.glyphicon-tent { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard { &:before { content: \"\\e218\"; } }\n.glyphicon-bed { &:before { content: \"\\e219\"; } }\n.glyphicon-apple { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin { &:before { content: \"\\e227\"; } }\n.glyphicon-btc { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt { &:before { content: \"\\e227\"; } }\n.glyphicon-yen { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted { &:before { content: \"\\e232\"; } }\n.glyphicon-education { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window { &:before { content: \"\\e237\"; } }\n.glyphicon-oil { &:before { content: \"\\e238\"; } }\n.glyphicon-grain { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top { &:before { content: \"\\e253\"; } }\n.glyphicon-console { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up { &:before { content: \"\\e260\"; } }\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// http://getbootstrap.com/getting-started/#third-box-sizing\n* {\n .box-sizing(border-box);\n}\n*:before,\n*:after {\n .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n}\n\nbody {\n font-family: @font-family-base;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @text-color;\n background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n\n// Links\n\na {\n color: @link-color;\n text-decoration: none;\n\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n }\n\n &:focus {\n .tab-focus();\n }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n margin: 0;\n}\n\n\n// Images\n\nimg {\n vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n padding: @thumbnail-padding;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(all .2s ease-in-out);\n\n // Keep them at most 100% wide\n .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n margin-top: @line-height-computed;\n margin-bottom: @line-height-computed;\n border: 0;\n border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0,0,0,0);\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n cursor: pointer;\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// WebKit-style focus\n\n.tab-focus() {\n // WebKit-specific. Other browsers will keep their default outline style.\n // (Initially tried to also force default via `outline: initial`,\n // but that seems to erroneously remove the outline in Firefox altogether.)\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n.img-responsive(@display: block) {\n display: @display;\n max-width: 100%; // Part 1: Set a maximum relative to the parent\n height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n background-image: url(\"@{file-1x}\");\n\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and ( min--moz-device-pixel-ratio: 2),\n only screen and ( -o-min-device-pixel-ratio: 2/1),\n only screen and ( min-device-pixel-ratio: 2),\n only screen and ( min-resolution: 192dpi),\n only screen and ( min-resolution: 2dppx) {\n background-image: url(\"@{file-2x}\");\n background-size: @width-1x @height-1x;\n }\n}\n","//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n font-family: @headings-font-family;\n font-weight: @headings-font-weight;\n line-height: @headings-line-height;\n color: @headings-color;\n\n small,\n .small {\n font-weight: normal;\n line-height: 1;\n color: @headings-small-color;\n }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n margin-top: @line-height-computed;\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 65%;\n }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n margin-top: (@line-height-computed / 2);\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 75%;\n }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n margin-bottom: @line-height-computed;\n font-size: floor((@font-size-base * 1.15));\n font-weight: 300;\n line-height: 1.4;\n\n @media (min-width: @screen-sm-min) {\n font-size: (@font-size-base * 1.5);\n }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n font-size: floor((100% * @font-size-small / @font-size-base));\n}\n\nmark,\n.mark {\n background-color: @state-warning-bg;\n padding: .2em;\n}\n\n// Alignment\n.text-left { text-align: left; }\n.text-right { text-align: right; }\n.text-center { text-align: center; }\n.text-justify { text-align: justify; }\n.text-nowrap { white-space: nowrap; }\n\n// Transformation\n.text-lowercase { text-transform: lowercase; }\n.text-uppercase { text-transform: uppercase; }\n.text-capitalize { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n color: @text-muted;\n}\n.text-primary {\n .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n // Given the contrast here, this is the only class to have its color inverted\n // automatically.\n color: #fff;\n .bg-variant(@brand-primary);\n}\n.bg-success {\n .bg-variant(@state-success-bg);\n}\n.bg-info {\n .bg-variant(@state-info-bg);\n}\n.bg-warning {\n .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n padding-bottom: ((@line-height-computed / 2) - 1);\n margin: (@line-height-computed * 2) 0 @line-height-computed;\n border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n margin-top: 0;\n margin-bottom: (@line-height-computed / 2);\n ul,\n ol {\n margin-bottom: 0;\n }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n .list-unstyled();\n margin-left: -5px;\n\n > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n }\n}\n\n// Description Lists\ndl {\n margin-top: 0; // Remove browser default\n margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n line-height: @line-height-base;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n dd {\n &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n }\n\n @media (min-width: @dl-horizontal-breakpoint) {\n dt {\n float: left;\n width: (@dl-horizontal-offset - 20);\n clear: left;\n text-align: right;\n .text-overflow();\n }\n dd {\n margin-left: @dl-horizontal-offset;\n }\n }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\nabbr[title],\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted @abbr-border-color;\n}\n.initialism {\n font-size: 90%;\n .text-uppercase();\n}\n\n// Blockquotes\nblockquote {\n padding: (@line-height-computed / 2) @line-height-computed;\n margin: 0 0 @line-height-computed;\n font-size: @blockquote-font-size;\n border-left: 5px solid @blockquote-border-color;\n\n p,\n ul,\n ol {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n // Note: Deprecated small and .small as of v3.1.0\n // Context: https://github.com/twbs/bootstrap/issues/11660\n footer,\n small,\n .small {\n display: block;\n font-size: 80%; // back to default font-size\n line-height: @line-height-base;\n color: @blockquote-small-color;\n\n &:before {\n content: '\\2014 \\00A0'; // em dash, nbsp\n }\n }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid @blockquote-border-color;\n border-left: 0;\n text-align: right;\n\n // Account for citation\n footer,\n small,\n .small {\n &:before { content: ''; }\n &:after {\n content: '\\00A0 \\2014'; // nbsp, em dash\n }\n }\n}\n\n// Addresses\naddress {\n margin-bottom: @line-height-computed;\n font-style: normal;\n line-height: @line-height-base;\n}\n","// Typography\n\n.text-emphasis-variant(@color) {\n color: @color;\n a&:hover,\n a&:focus {\n color: darken(@color, 10%);\n }\n}\n","// Contextual backgrounds\n\n.bg-variant(@color) {\n background-color: @color;\n a&:hover,\n a&:focus {\n background-color: darken(@color, 10%);\n }\n}\n","// Text overflow\n// Requires inline-block or block for proper styling\n\n.text-overflow() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: @code-color;\n background-color: @code-bg;\n border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: @kbd-color;\n background-color: @kbd-bg;\n border-radius: @border-radius-small;\n box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n }\n}\n\n// Blocks of code\npre {\n display: block;\n padding: ((@line-height-computed - 1) / 2);\n margin: 0 0 (@line-height-computed / 2);\n font-size: (@font-size-base - 1); // 14px to 13px\n line-height: @line-height-base;\n word-break: break-all;\n word-wrap: break-word;\n color: @pre-color;\n background-color: @pre-bg;\n border: 1px solid @pre-border-color;\n border-radius: @border-radius-base;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: @pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n .container-fixed();\n\n @media (min-width: @screen-sm-min) {\n width: @container-sm;\n }\n @media (min-width: @screen-md-min) {\n width: @container-md;\n }\n @media (min-width: @screen-lg-min) {\n width: @container-lg;\n }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n .make-row();\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n .make-grid(lg);\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n.container-fixed(@gutter: @grid-gutter-width) {\n margin-right: auto;\n margin-left: auto;\n padding-left: floor((@gutter / 2));\n padding-right: ceil((@gutter / 2));\n &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n margin-left: ceil((@gutter / -2));\n margin-right: floor((@gutter / -2));\n &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n float: left;\n width: percentage((@columns / @grid-columns));\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n margin-left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-push(@columns) {\n left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-pull(@columns) {\n right: percentage((@columns / @grid-columns));\n}\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-sm-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-offset(@columns) {\n @media (min-width: @screen-sm-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-push(@columns) {\n @media (min-width: @screen-sm-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-pull(@columns) {\n @media (min-width: @screen-sm-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-md-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-offset(@columns) {\n @media (min-width: @screen-md-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-push(@columns) {\n @media (min-width: @screen-md-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-pull(@columns) {\n @media (min-width: @screen-md-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-lg-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-offset(@columns) {\n @media (min-width: @screen-lg-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-push(@columns) {\n @media (min-width: @screen-lg-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-pull(@columns) {\n @media (min-width: @screen-lg-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n // Common styles for all sizes of grid columns, widths 1-12\n .col(@index) { // initial\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n position: relative;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n // Inner gutter via padding\n padding-left: ceil((@grid-gutter-width / 2));\n padding-right: floor((@grid-gutter-width / 2));\n }\n }\n .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n .col(@index) { // initial\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n float: left;\n }\n }\n .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n .col-@{class}-@{index} {\n width: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {\n .col-@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {\n .col-@{class}-push-0 {\n left: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {\n .col-@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {\n .col-@{class}-pull-0 {\n right: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n .col-@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n .calc-grid-column(@index, @class, @type);\n // next iteration\n .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n .float-grid-columns(@class);\n .loop-grid-columns(@grid-columns, @class, width);\n .loop-grid-columns(@grid-columns, @class, pull);\n .loop-grid-columns(@grid-columns, @class, push);\n .loop-grid-columns(@grid-columns, @class, offset);\n}\n","//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n background-color: @table-bg;\n}\ncaption {\n padding-top: @table-cell-padding;\n padding-bottom: @table-cell-padding;\n color: @text-muted;\n text-align: left;\n}\nth {\n text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: @line-height-computed;\n // Cells\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-cell-padding;\n line-height: @line-height-base;\n vertical-align: top;\n border-top: 1px solid @table-border-color;\n }\n }\n }\n // Bottom align for column headings\n > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid @table-border-color;\n }\n // Remove top border from thead by default\n > caption + thead,\n > colgroup + thead,\n > thead:first-child {\n > tr:first-child {\n > th,\n > td {\n border-top: 0;\n }\n }\n }\n // Account for multiple tbody instances\n > tbody + tbody {\n border-top: 2px solid @table-border-color;\n }\n\n // Nesting\n .table {\n background-color: @body-bg;\n }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-condensed-cell-padding;\n }\n }\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: 1px solid @table-border-color;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n border: 1px solid @table-border-color;\n }\n }\n }\n > thead > tr {\n > th,\n > td {\n border-bottom-width: 2px;\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n > tbody > tr:nth-of-type(odd) {\n background-color: @table-bg-accent;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n > tbody > tr:hover {\n background-color: @table-bg-hover;\n }\n}\n\n\n// Table cell sizing\n//\n// Reset default table behavior\n\ntable col[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-column;\n}\ntable {\n td,\n th {\n &[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-cell;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n\n @media screen and (max-width: @screen-xs-max) {\n width: 100%;\n margin-bottom: (@line-height-computed * 0.75);\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid @table-border-color;\n\n // Tighten up spacing\n > .table {\n margin-bottom: 0;\n\n // Ensure the content doesn't wrap\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n white-space: nowrap;\n }\n }\n }\n }\n\n // Special overrides for the bordered tables\n > .table-bordered {\n border: 0;\n\n // Nuke the appropriate borders so that the parent can handle them\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n\n // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n // chances are there will be only one `tr` in a `thead` and that would\n // remove the border altogether.\n > tbody,\n > tfoot {\n > tr:last-child {\n > th,\n > td {\n border-bottom: 0;\n }\n }\n }\n\n }\n }\n}\n","// Tables\n\n.table-row-variant(@state; @background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table > thead > tr,\n .table > tbody > tr,\n .table > tfoot > tr {\n > td.@{state},\n > th.@{state},\n &.@{state} > td,\n &.@{state} > th {\n background-color: @background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover > tbody > tr {\n > td.@{state}:hover,\n > th.@{state}:hover,\n &.@{state}:hover > td,\n &:hover > .@{state},\n &.@{state}:hover > th {\n background-color: darken(@background, 5%);\n }\n }\n}\n","//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n // so we reset that to ensure it behaves more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359.\n min-width: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: @line-height-computed;\n font-size: (@font-size-base * 1.5);\n line-height: inherit;\n color: @legend-color;\n border: 0;\n border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n display: inline-block;\n max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n margin-bottom: 5px;\n font-weight: bold;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\n// Override content-box in Normalize (* isn't specific enough)\ninput[type=\"search\"] {\n .box-sizing(border-box);\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9; // IE8-9\n line-height: normal;\n}\n\ninput[type=\"file\"] {\n display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n .tab-focus();\n}\n\n// Adjust output element\noutput {\n display: block;\n padding-top: (@padding-base-vertical + 1);\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n display: block;\n width: 100%;\n height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n background-color: @input-bg;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid @input-border;\n border-radius: @input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n // Customize the `:focus` state to imitate native WebKit styles.\n .form-control-focus();\n\n // Placeholder\n .placeholder();\n\n // Unstyle the caret on `<select>`s in IE10+.\n &::-ms-expand {\n border: 0;\n background-color: transparent;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &[disabled],\n &[readonly],\n fieldset[disabled] & {\n background-color: @input-bg-disabled;\n opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655\n }\n\n &[disabled],\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n\n // Reset height for `textarea`s\n textarea& {\n height: auto;\n }\n}\n\n\n// Search inputs in iOS\n//\n// This overrides the extra rounded corners on search inputs in iOS so that our\n// `.form-control` class can properly style them. Note that this cannot simply\n// be added to `.form-control` as it's not specific enough. For details, see\n// https://github.com/twbs/bootstrap/issues/11586.\n\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n\n\n// Special styles for iOS temporal inputs\n//\n// In Mobile Safari, setting `display: block` on temporal inputs causes the\n// text within the input to become vertically misaligned. As a workaround, we\n// set a pixel line-height that matches the given height of the input, but only\n// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848\n//\n// Note that as of 9.3, iOS doesn't support `week`.\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"],\n input[type=\"time\"],\n input[type=\"datetime-local\"],\n input[type=\"month\"] {\n &.form-control {\n line-height: @input-height-base;\n }\n\n &.input-sm,\n .input-group-sm & {\n line-height: @input-height-small;\n }\n\n &.input-lg,\n .input-group-lg & {\n line-height: @input-height-large;\n }\n }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: @form-group-margin-bottom;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n\n label {\n min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px; // space out consecutive inline controls\n}\n\n// Apply same disabled cursor tweak as for inputs\n// Some special care is needed because <label>s don't inherit their parent's `cursor`.\n//\n// Note: Neither radios nor checkboxes can be readonly.\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n &[disabled],\n &.disabled,\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n}\n// These classes are used directly on <label>s\n.radio-inline,\n.checkbox-inline {\n &.disabled,\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n}\n// These classes are used on elements with <label> descendants\n.radio,\n.checkbox {\n &.disabled,\n fieldset[disabled] & {\n label {\n cursor: @cursor-disabled;\n }\n }\n}\n\n\n// Static form control text\n//\n// Apply class to a `p` element to make any string of text align with labels in\n// a horizontal form layout.\n\n.form-control-static {\n // Size it appropriately next to real form controls\n padding-top: (@padding-base-vertical + 1);\n padding-bottom: (@padding-base-vertical + 1);\n // Remove default margin from `p`\n margin-bottom: 0;\n min-height: (@line-height-computed + @font-size-base);\n\n &.input-lg,\n &.input-sm {\n padding-left: 0;\n padding-right: 0;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// The `.form-group-* form-control` variations are sadly duplicated to avoid the\n// issue documented in https://github.com/twbs/bootstrap/issues/15074.\n\n.input-sm {\n .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);\n}\n.form-group-sm {\n .form-control {\n height: @input-height-small;\n padding: @padding-small-vertical @padding-small-horizontal;\n font-size: @font-size-small;\n line-height: @line-height-small;\n border-radius: @input-border-radius-small;\n }\n select.form-control {\n height: @input-height-small;\n line-height: @input-height-small;\n }\n textarea.form-control,\n select[multiple].form-control {\n height: auto;\n }\n .form-control-static {\n height: @input-height-small;\n min-height: (@line-height-computed + @font-size-small);\n padding: (@padding-small-vertical + 1) @padding-small-horizontal;\n font-size: @font-size-small;\n line-height: @line-height-small;\n }\n}\n\n.input-lg {\n .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);\n}\n.form-group-lg {\n .form-control {\n height: @input-height-large;\n padding: @padding-large-vertical @padding-large-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-large;\n border-radius: @input-border-radius-large;\n }\n select.form-control {\n height: @input-height-large;\n line-height: @input-height-large;\n }\n textarea.form-control,\n select[multiple].form-control {\n height: auto;\n }\n .form-control-static {\n height: @input-height-large;\n min-height: (@line-height-computed + @font-size-large);\n padding: (@padding-large-vertical + 1) @padding-large-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-large;\n }\n}\n\n\n// Form control feedback states\n//\n// Apply contextual and semantic states to individual form controls.\n\n.has-feedback {\n // Enable absolute positioning\n position: relative;\n\n // Ensure icons don't overlap text\n .form-control {\n padding-right: (@input-height-base * 1.25);\n }\n}\n// Feedback icon (requires .glyphicon classes)\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2; // Ensure icon is above input groups\n display: block;\n width: @input-height-base;\n height: @input-height-base;\n line-height: @input-height-base;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: @input-height-large;\n height: @input-height-large;\n line-height: @input-height-large;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: @input-height-small;\n height: @input-height-small;\n line-height: @input-height-small;\n}\n\n// Feedback states\n.has-success {\n .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);\n}\n.has-warning {\n .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);\n}\n.has-error {\n .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);\n}\n\n// Reposition feedback icon if input has visible label above\n.has-feedback label {\n\n & ~ .form-control-feedback {\n top: (@line-height-computed + 5); // Height of the `label` and its margin\n }\n &.sr-only ~ .form-control-feedback {\n top: 0;\n }\n}\n\n\n// Help text\n//\n// Apply to any element you wish to create light text for placement immediately\n// below a form control. Use for general help, formatting, or instructional text.\n\n.help-block {\n display: block; // account for any element using help-block\n margin-top: 5px;\n margin-bottom: 10px;\n color: lighten(@text-color, 25%); // lighten the text some for contrast\n}\n\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n//\n// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.\n\n.form-inline {\n\n // Kick in the inline\n @media (min-width: @screen-sm-min) {\n // Inline-block all the things for \"inline\"\n .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n\n // In navbar-form, allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n\n // Make static controls behave like regular ones\n .form-control-static {\n display: inline-block;\n }\n\n .input-group {\n display: inline-table;\n vertical-align: middle;\n\n .input-group-addon,\n .input-group-btn,\n .form-control {\n width: auto;\n }\n }\n\n // Input groups need that 100% width though\n .input-group > .form-control {\n width: 100%;\n }\n\n .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match.\n .radio,\n .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n\n label {\n padding-left: 0;\n }\n }\n .radio input[type=\"radio\"],\n .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n\n // Re-override the feedback icon.\n .has-feedback .form-control-feedback {\n top: 0;\n }\n }\n}\n\n\n// Horizontal forms\n//\n// Horizontal forms are built on grid classes and allow you to create forms with\n// labels on the left and inputs on the right.\n\n.form-horizontal {\n\n // Consistent vertical alignment of radios and checkboxes\n //\n // Labels also get some reset styles, but that is scoped to a media query below.\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n }\n // Account for padding we're adding to ensure the alignment and of help text\n // and other content below items\n .radio,\n .checkbox {\n min-height: (@line-height-computed + (@padding-base-vertical + 1));\n }\n\n // Make form groups behave like rows\n .form-group {\n .make-row();\n }\n\n // Reset spacing and right align labels, but scope to media queries so that\n // labels on narrow viewports stack the same as a default form example.\n @media (min-width: @screen-sm-min) {\n .control-label {\n text-align: right;\n margin-bottom: 0;\n padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n }\n }\n\n // Validation states\n //\n // Reposition the icon because it's now within a grid column and columns have\n // `position: relative;` on them. Also accounts for the grid gutter padding.\n .has-feedback .form-control-feedback {\n right: floor((@grid-gutter-width / 2));\n }\n\n // Form group sizes\n //\n // Quick utility class for applying `.input-lg` and `.input-sm` styles to the\n // inputs and labels within a `.form-group`.\n .form-group-lg {\n @media (min-width: @screen-sm-min) {\n .control-label {\n padding-top: (@padding-large-vertical + 1);\n font-size: @font-size-large;\n }\n }\n }\n .form-group-sm {\n @media (min-width: @screen-sm-min) {\n .control-label {\n padding-top: (@padding-small-vertical + 1);\n font-size: @font-size-small;\n }\n }\n }\n}\n","// Form validation states\n//\n// Used in forms.less to generate the form validation CSS for warnings, errors,\n// and successes.\n\n.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {\n // Color the label and help text\n .help-block,\n .control-label,\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline,\n &.radio label,\n &.checkbox label,\n &.radio-inline label,\n &.checkbox-inline label {\n color: @text-color;\n }\n // Set the border and box shadow on specific inputs to match\n .form-control {\n border-color: @border-color;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work\n &:focus {\n border-color: darken(@border-color, 10%);\n @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);\n .box-shadow(@shadow);\n }\n }\n // Set validation states also for addons\n .input-group-addon {\n color: @text-color;\n border-color: @border-color;\n background-color: @background-color;\n }\n // Optional feedback icon\n .form-control-feedback {\n color: @text-color;\n }\n}\n\n\n// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `@input-border-focus` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n.form-control-focus(@color: @input-border-focus) {\n @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n &:focus {\n border-color: @color;\n outline: 0;\n .box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}\");\n }\n}\n\n// Form control sizing\n//\n// Relative text size, padding, and border-radii changes for form controls. For\n// horizontal sizing, wrap controls in the predefined grid classes. `<select>`\n// element gets special love because it's special, and that's a fact!\n.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n height: @input-height;\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n\n select& {\n height: @input-height;\n line-height: @input-height;\n }\n\n textarea&,\n select[multiple]& {\n height: auto;\n }\n}\n","//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n.btn {\n display: inline-block;\n margin-bottom: 0; // For input.btn\n font-weight: @btn-font-weight;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n white-space: nowrap;\n .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base);\n .user-select(none);\n\n &,\n &:active,\n &.active {\n &:focus,\n &.focus {\n .tab-focus();\n }\n }\n\n &:hover,\n &:focus,\n &.focus {\n color: @btn-default-color;\n text-decoration: none;\n }\n\n &:active,\n &.active {\n outline: 0;\n background-image: none;\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n .opacity(.65);\n .box-shadow(none);\n }\n\n a& {\n &.disabled,\n fieldset[disabled] & {\n pointer-events: none; // Future-proof disabling of clicks on `<a>` elements\n }\n }\n}\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n.btn-default {\n .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);\n}\n.btn-primary {\n .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);\n}\n// Success appears as green\n.btn-success {\n .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);\n}\n// Info appears as blue-green\n.btn-info {\n .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);\n}\n// Warning appears as orange\n.btn-warning {\n .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);\n}\n// Danger and error appear as red\n.btn-danger {\n .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);\n}\n\n\n// Link buttons\n// -------------------------\n\n// Make a button look and behave like a link\n.btn-link {\n color: @link-color;\n font-weight: normal;\n border-radius: 0;\n\n &,\n &:active,\n &.active,\n &[disabled],\n fieldset[disabled] & {\n background-color: transparent;\n .box-shadow(none);\n }\n &,\n &:hover,\n &:focus,\n &:active {\n border-color: transparent;\n }\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n background-color: transparent;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @btn-link-disabled-color;\n text-decoration: none;\n }\n }\n}\n\n\n// Button Sizes\n// --------------------------------------------------\n\n.btn-lg {\n // line-height: ensure even-numbered height of button next to large input\n .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large);\n}\n.btn-sm {\n // line-height: ensure proper height of button next to small input\n .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n.btn-xs {\n .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n\n\n// Block button\n// --------------------------------------------------\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n.button-variant(@color; @background; @border) {\n color: @color;\n background-color: @background;\n border-color: @border;\n\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 25%);\n }\n &:hover {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n }\n &:active,\n &.active,\n .open > .dropdown-toggle& {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n\n &:hover,\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 17%);\n border-color: darken(@border, 25%);\n }\n }\n &:active,\n &.active,\n .open > .dropdown-toggle& {\n background-image: none;\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus,\n &.focus {\n background-color: @background;\n border-color: @border;\n }\n }\n\n .badge {\n color: @background;\n background-color: @color;\n }\n}\n\n// Button sizes\n.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n}\n","// Opacity\n\n.opacity(@opacity) {\n opacity: @opacity;\n // IE8 filter\n @opacity-ie: (@opacity * 100);\n filter: ~\"alpha(opacity=@{opacity-ie})\";\n}\n","//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `.opacity()` mixin here since it causes a bug with text\n// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.\n\n.fade {\n opacity: 0;\n .transition(opacity .15s linear);\n &.in {\n opacity: 1;\n }\n}\n\n.collapse {\n display: none;\n\n &.in { display: block; }\n tr&.in { display: table-row; }\n tbody&.in { display: table-row-group; }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n .transition-property(~\"height, visibility\");\n .transition-duration(.35s);\n .transition-timing-function(ease);\n}\n","//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: @caret-width-base dashed;\n border-top: @caret-width-base solid ~\"\\9\"; // IE8\n border-right: @caret-width-base solid transparent;\n border-left: @caret-width-base solid transparent;\n}\n\n// The dropdown wrapper (div)\n.dropup,\n.dropdown {\n position: relative;\n}\n\n// Prevent the focus on the dropdown toggle when closing dropdowns\n.dropdown-toggle:focus {\n outline: 0;\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: @zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0; // override default ul\n list-style: none;\n font-size: @font-size-base;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n background-color: @dropdown-bg;\n border: 1px solid @dropdown-fallback-border; // IE8 fallback\n border: 1px solid @dropdown-border;\n border-radius: @border-radius-base;\n .box-shadow(0 6px 12px rgba(0,0,0,.175));\n background-clip: padding-box;\n\n // Aligns the dropdown menu to right\n //\n // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`\n &.pull-right {\n right: 0;\n left: auto;\n }\n\n // Dividers (basically an hr) within the dropdown\n .divider {\n .nav-divider(@dropdown-divider-bg);\n }\n\n // Links within the dropdown menu\n > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: @line-height-base;\n color: @dropdown-link-color;\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n }\n}\n\n// Hover/Focus state\n.dropdown-menu > li > a {\n &:hover,\n &:focus {\n text-decoration: none;\n color: @dropdown-link-hover-color;\n background-color: @dropdown-link-hover-bg;\n }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-active-color;\n text-decoration: none;\n outline: 0;\n background-color: @dropdown-link-active-bg;\n }\n}\n\n// Disabled state\n//\n// Gray out text and ensure the hover/focus state remains gray\n\n.dropdown-menu > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-disabled-color;\n }\n\n // Nuke hover/focus effects\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none; // Remove CSS gradient\n .reset-filter();\n cursor: @cursor-disabled;\n }\n}\n\n// Open state for the dropdown\n.open {\n // Show the menu\n > .dropdown-menu {\n display: block;\n }\n\n // Remove the outline when :focus is triggered\n > a {\n outline: 0;\n }\n}\n\n// Menu positioning\n//\n// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\n// menu with the parent.\n.dropdown-menu-right {\n left: auto; // Reset the default from `.dropdown-menu`\n right: 0;\n}\n// With v3, we enabled auto-flipping if you have a dropdown within a right\n// aligned nav component. To enable the undoing of that, we provide an override\n// to restore the default dropdown menu alignment.\n//\n// This is only for left-aligning a dropdown menu within a `.navbar-right` or\n// `.pull-right` nav component.\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: @font-size-small;\n line-height: @line-height-base;\n color: @dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: (@zindex-dropdown - 10);\n}\n\n// Right aligned dropdowns\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n//\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n\n.dropup,\n.navbar-fixed-bottom .dropdown {\n // Reverse the caret\n .caret {\n border-top: 0;\n border-bottom: @caret-width-base dashed;\n border-bottom: @caret-width-base solid ~\"\\9\"; // IE8\n content: \"\";\n }\n // Different positioning for bottom up menu\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n }\n}\n\n\n// Component alignment\n//\n// Reiterate per navbar.less and the modified component alignment there.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-right {\n .dropdown-menu {\n .dropdown-menu-right();\n }\n // Necessary for overrides of the default right aligned menu.\n // Will remove come v4 in all likelihood.\n .dropdown-menu-left {\n .dropdown-menu-left();\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n.nav-divider(@color: #e5e5e5) {\n height: 1px;\n margin: ((@line-height-computed / 2) - 1) 0;\n overflow: hidden;\n background-color: @color;\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n","//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle; // match .btn alignment given font-size hack above\n > .btn {\n position: relative;\n float: left;\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active,\n &.active {\n z-index: 2;\n }\n }\n}\n\n// Prevent double borders when buttons are next to each other\n.btn-group {\n .btn + .btn,\n .btn + .btn-group,\n .btn-group + .btn,\n .btn-group + .btn-group {\n margin-left: -1px;\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n margin-left: -5px; // Offset the first child's margin\n &:extend(.clearfix all);\n\n .btn,\n .btn-group,\n .input-group {\n float: left;\n }\n > .btn,\n > .btn-group,\n > .input-group {\n margin-left: 5px;\n }\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n margin-left: 0;\n &:not(:last-child):not(.dropdown-toggle) {\n .border-right-radius(0);\n }\n}\n// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n .border-left-radius(0);\n}\n\n// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-right-radius(0);\n }\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n .border-left-radius(0);\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-xs > .btn { &:extend(.btn-xs); }\n.btn-group-sm > .btn { &:extend(.btn-sm); }\n.btn-group-lg > .btn { &:extend(.btn-lg); }\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n\n// The clickable button for toggling the menu\n// Remove the gradient and set the same inset shadow as the :active state\n.btn-group.open .dropdown-toggle {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n .box-shadow(none);\n }\n}\n\n\n// Reposition the caret\n.btn .caret {\n margin-left: 0;\n}\n// Carets in other button sizes\n.btn-lg .caret {\n border-width: @caret-width-large @caret-width-large 0;\n border-bottom-width: 0;\n}\n// Upside down carets for .dropup\n.dropup .btn-lg .caret {\n border-width: 0 @caret-width-large @caret-width-large;\n}\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n > .btn,\n > .btn-group,\n > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n }\n\n // Clear floats so dropdown menus can be properly placed\n > .btn-group {\n &:extend(.clearfix all);\n > .btn {\n float: none;\n }\n }\n\n > .btn + .btn,\n > .btn + .btn-group,\n > .btn-group + .btn,\n > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n }\n}\n\n.btn-group-vertical > .btn {\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n &:first-child:not(:last-child) {\n .border-top-radius(@btn-border-radius-base);\n .border-bottom-radius(0);\n }\n &:last-child:not(:first-child) {\n .border-top-radius(0);\n .border-bottom-radius(@btn-border-radius-base);\n }\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-bottom-radius(0);\n }\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n .border-top-radius(0);\n}\n\n\n// Justified button groups\n// ----------------------\n\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n > .btn,\n > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n }\n > .btn-group .btn {\n width: 100%;\n }\n\n > .btn-group .dropdown-menu {\n left: auto;\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n[data-toggle=\"buttons\"] {\n > .btn,\n > .btn-group > .btn {\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0,0,0,0);\n pointer-events: none;\n }\n }\n}\n","// Single side border-radius\n\n.border-top-radius(@radius) {\n border-top-right-radius: @radius;\n border-top-left-radius: @radius;\n}\n.border-right-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-top-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n border-bottom-left-radius: @radius;\n border-top-left-radius: @radius;\n}\n","//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.input-group {\n position: relative; // For dropdowns\n display: table;\n border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table\n\n // Undo padding and float of grid classes\n &[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n }\n\n .form-control {\n // Ensure that the input is always above the *appended* addon button for\n // proper border colors.\n position: relative;\n z-index: 2;\n\n // IE9 fubars the placeholder attribute in text inputs and the arrows on\n // select elements in input groups. To fix it, we float the input. Details:\n // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855\n float: left;\n\n width: 100%;\n margin-bottom: 0;\n\n &:focus {\n z-index: 3;\n }\n }\n}\n\n// Sizing options\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n .input-lg();\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n .input-sm();\n}\n\n\n// Display as table-cell\n// -------------------------\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n}\n// Addon and addon wrapper for buttons\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle; // Match the inputs\n}\n\n// Text input groups\n// -------------------------\n.input-group-addon {\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n font-weight: normal;\n line-height: 1;\n color: @input-color;\n text-align: center;\n background-color: @input-group-addon-bg;\n border: 1px solid @input-group-addon-border-color;\n border-radius: @input-border-radius;\n\n // Sizing\n &.input-sm {\n padding: @padding-small-vertical @padding-small-horizontal;\n font-size: @font-size-small;\n border-radius: @input-border-radius-small;\n }\n &.input-lg {\n padding: @padding-large-vertical @padding-large-horizontal;\n font-size: @font-size-large;\n border-radius: @input-border-radius-large;\n }\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n// Reset rounded corners\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n .border-right-radius(0);\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n .border-left-radius(0);\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n\n// Button input groups\n// -------------------------\n.input-group-btn {\n position: relative;\n // Jankily prevent input button groups from wrapping with `white-space` and\n // `font-size` in combination with `inline-block` on buttons.\n font-size: 0;\n white-space: nowrap;\n\n // Negative margin for spacing, position for bringing hovered/focused/actived\n // element above the siblings.\n > .btn {\n position: relative;\n + .btn {\n margin-left: -1px;\n }\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active {\n z-index: 2;\n }\n }\n\n // Negative margin to only have a 1px border between the two\n &:first-child {\n > .btn,\n > .btn-group {\n margin-right: -1px;\n }\n }\n &:last-child {\n > .btn,\n > .btn-group {\n z-index: 2;\n margin-left: -1px;\n }\n }\n}\n","//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// --------------------------------------------------\n\n.nav {\n margin-bottom: 0;\n padding-left: 0; // Override default ul/ol\n list-style: none;\n &:extend(.clearfix all);\n\n > li {\n position: relative;\n display: block;\n\n > a {\n position: relative;\n display: block;\n padding: @nav-link-padding;\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: @nav-link-hover-bg;\n }\n }\n\n // Disabled state sets text to gray and nukes hover/tab effects\n &.disabled > a {\n color: @nav-disabled-link-color;\n\n &:hover,\n &:focus {\n color: @nav-disabled-link-hover-color;\n text-decoration: none;\n background-color: transparent;\n cursor: @cursor-disabled;\n }\n }\n }\n\n // Open dropdowns\n .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @nav-link-hover-bg;\n border-color: @link-color;\n }\n }\n\n // Nav dividers (deprecated with v3.0.1)\n //\n // This should have been removed in v3 with the dropping of `.nav-list`, but\n // we missed it. We don't currently support this anywhere, but in the interest\n // of maintaining backward compatibility in case you use it, it's deprecated.\n .nav-divider {\n .nav-divider();\n }\n\n // Prevent IE8 from misplacing imgs\n //\n // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n > li > a > img {\n max-width: none;\n }\n}\n\n\n// Tabs\n// -------------------------\n\n// Give the tabs something to sit on\n.nav-tabs {\n border-bottom: 1px solid @nav-tabs-border-color;\n > li {\n float: left;\n // Make the list-items overlay the bottom border\n margin-bottom: -1px;\n\n // Actual tabs (as links)\n > a {\n margin-right: 2px;\n line-height: @line-height-base;\n border: 1px solid transparent;\n border-radius: @border-radius-base @border-radius-base 0 0;\n &:hover {\n border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;\n }\n }\n\n // Active state, and its :hover to override normal :hover\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-tabs-active-link-hover-color;\n background-color: @nav-tabs-active-link-hover-bg;\n border: 1px solid @nav-tabs-active-link-hover-border-color;\n border-bottom-color: transparent;\n cursor: default;\n }\n }\n }\n // pulling this in mainly for less shorthand\n &.nav-justified {\n .nav-justified();\n .nav-tabs-justified();\n }\n}\n\n\n// Pills\n// -------------------------\n.nav-pills {\n > li {\n float: left;\n\n // Links rendered as pills\n > a {\n border-radius: @nav-pills-border-radius;\n }\n + li {\n margin-left: 2px;\n }\n\n // Active state\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-pills-active-link-hover-color;\n background-color: @nav-pills-active-link-hover-bg;\n }\n }\n }\n}\n\n\n// Stacked pills\n.nav-stacked {\n > li {\n float: none;\n + li {\n margin-top: 2px;\n margin-left: 0; // no need for this gap between nav items\n }\n }\n}\n\n\n// Nav variations\n// --------------------------------------------------\n\n// Justified nav links\n// -------------------------\n\n.nav-justified {\n width: 100%;\n\n > li {\n float: none;\n > a {\n text-align: center;\n margin-bottom: 5px;\n }\n }\n\n > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n }\n\n @media (min-width: @screen-sm-min) {\n > li {\n display: table-cell;\n width: 1%;\n > a {\n margin-bottom: 0;\n }\n }\n }\n}\n\n// Move borders to anchors instead of bottom of list\n//\n// Mixin for adding on top the shared `.nav-justified` styles for our tabs\n.nav-tabs-justified {\n border-bottom: 0;\n\n > li > a {\n // Override margin from .nav-tabs\n margin-right: 0;\n border-radius: @border-radius-base;\n }\n\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border: 1px solid @nav-tabs-justified-link-border-color;\n }\n\n @media (min-width: @screen-sm-min) {\n > li > a {\n border-bottom: 1px solid @nav-tabs-justified-link-border-color;\n border-radius: @border-radius-base @border-radius-base 0 0;\n }\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border-bottom-color: @nav-tabs-justified-active-link-border-color;\n }\n }\n}\n\n\n// Tabbable tabs\n// -------------------------\n\n// Hide tabbable panes to start, show them when `.active`\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n\n\n// Dropdowns\n// -------------------------\n\n// Specific dropdowns\n.nav-tabs .dropdown-menu {\n // make dropdown border overlap tab border\n margin-top: -1px;\n // Remove the top rounded corners here since there is a hard edge above the menu\n .border-top-radius(0);\n}\n","//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)\n margin-bottom: @navbar-margin-bottom;\n border: 1px solid transparent;\n\n // Prevent floats from breaking the navbar\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: @navbar-border-radius;\n }\n}\n\n\n// Navbar heading\n//\n// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy\n// styling of responsive aspects.\n\n.navbar-header {\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n }\n}\n\n\n// Navbar collapse (body)\n//\n// Group your navbar content into this for easy collapsing and expanding across\n// various device sizes. By default, this content is collapsed when <768px, but\n// will expand past that for a horizontal display.\n//\n// To start (on mobile devices) the navbar links, forms, and buttons are stacked\n// vertically and include a `max-height` to overflow in case you have too much\n// content for the user's viewport.\n\n.navbar-collapse {\n overflow-x: visible;\n padding-right: @navbar-padding-horizontal;\n padding-left: @navbar-padding-horizontal;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255,255,255,.1);\n &:extend(.clearfix all);\n -webkit-overflow-scrolling: touch;\n\n &.in {\n overflow-y: auto;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n border-top: 0;\n box-shadow: none;\n\n &.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0; // Override default setting\n overflow: visible !important;\n }\n\n &.in {\n overflow-y: visible;\n }\n\n // Undo the collapse side padding for navbars with containers to ensure\n // alignment of right-aligned contents.\n .navbar-fixed-top &,\n .navbar-static-top &,\n .navbar-fixed-bottom & {\n padding-left: 0;\n padding-right: 0;\n }\n }\n}\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n .navbar-collapse {\n max-height: @navbar-collapse-max-height;\n\n @media (max-device-width: @screen-xs-min) and (orientation: landscape) {\n max-height: 200px;\n }\n }\n}\n\n\n// Both navbar header and collapse\n//\n// When a container is present, change the behavior of the header and collapse.\n\n.container,\n.container-fluid {\n > .navbar-header,\n > .navbar-collapse {\n margin-right: -@navbar-padding-horizontal;\n margin-left: -@navbar-padding-horizontal;\n\n @media (min-width: @grid-float-breakpoint) {\n margin-right: 0;\n margin-left: 0;\n }\n }\n}\n\n\n//\n// Navbar alignment options\n//\n// Display the navbar across the entirety of the page or fixed it to the top or\n// bottom of the page.\n\n// Static top (unfixed, but 100% wide) navbar\n.navbar-static-top {\n z-index: @zindex-navbar;\n border-width: 0 0 1px;\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n\n// Fix the top/bottom navbars when screen real estate supports it\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: @zindex-navbar-fixed;\n\n // Undo the rounded corners\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0; // override .navbar defaults\n border-width: 1px 0 0;\n}\n\n\n// Brand/project name\n\n.navbar-brand {\n float: left;\n padding: @navbar-padding-vertical @navbar-padding-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-computed;\n height: @navbar-height;\n\n &:hover,\n &:focus {\n text-decoration: none;\n }\n\n > img {\n display: block;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n .navbar > .container &,\n .navbar > .container-fluid & {\n margin-left: -@navbar-padding-horizontal;\n }\n }\n}\n\n\n// Navbar toggle\n//\n// Custom button for toggling the `.navbar-collapse`, powered by the collapse\n// JavaScript plugin.\n\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: @navbar-padding-horizontal;\n padding: 9px 10px;\n .navbar-vertical-align(34px);\n background-color: transparent;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n border-radius: @border-radius-base;\n\n // We remove the `outline` here, but later compensate by attaching `:hover`\n // styles to `:focus`.\n &:focus {\n outline: 0;\n }\n\n // Bars\n .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n }\n .icon-bar + .icon-bar {\n margin-top: 4px;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n display: none;\n }\n}\n\n\n// Navbar nav links\n//\n// Builds on top of the `.nav` components with its own modifier class to make\n// the nav the full height of the horizontal nav (above 768px).\n\n.navbar-nav {\n margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;\n\n > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: @line-height-computed;\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n > li > a,\n .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n > li > a {\n line-height: @line-height-computed;\n &:hover,\n &:focus {\n background-image: none;\n }\n }\n }\n }\n\n // Uncollapse the nav\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin: 0;\n\n > li {\n float: left;\n > a {\n padding-top: @navbar-padding-vertical;\n padding-bottom: @navbar-padding-vertical;\n }\n }\n }\n}\n\n\n// Navbar form\n//\n// Extension of the `.form-inline` with some extra flavor for optimum display in\n// our navbars.\n\n.navbar-form {\n margin-left: -@navbar-padding-horizontal;\n margin-right: -@navbar-padding-horizontal;\n padding: 10px @navbar-padding-horizontal;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n\n // Mixin behavior for optimum display\n .form-inline();\n\n .form-group {\n @media (max-width: @grid-float-breakpoint-max) {\n margin-bottom: 5px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n }\n\n // Vertically center in expanded, horizontal navbar\n .navbar-vertical-align(@input-height-base);\n\n // Undo 100% width for pull classes\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n .box-shadow(none);\n }\n}\n\n\n// Dropdown menus\n\n// Menu position and menu carets\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n .border-top-radius(0);\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n .border-top-radius(@navbar-border-radius);\n .border-bottom-radius(0);\n}\n\n\n// Buttons in navbars\n//\n// Vertically center a button within a navbar (when *not* in a form).\n\n.navbar-btn {\n .navbar-vertical-align(@input-height-base);\n\n &.btn-sm {\n .navbar-vertical-align(@input-height-small);\n }\n &.btn-xs {\n .navbar-vertical-align(22);\n }\n}\n\n\n// Text in navbars\n//\n// Add a class to make any element properly align itself vertically within the navbars.\n\n.navbar-text {\n .navbar-vertical-align(@line-height-computed);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin-left: @navbar-padding-horizontal;\n margin-right: @navbar-padding-horizontal;\n }\n}\n\n\n// Component alignment\n//\n// Repurpose the pull utilities as their own navbar utilities to avoid specificity\n// issues with parents and chaining. Only do this when the navbar is uncollapsed\n// though so that navbar contents properly stack and align in mobile.\n//\n// Declared after the navbar components to ensure more specificity on the margins.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-left { .pull-left(); }\n .navbar-right {\n .pull-right();\n margin-right: -@navbar-padding-horizontal;\n\n ~ .navbar-right {\n margin-right: 0;\n }\n }\n}\n\n\n// Alternate navbars\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n background-color: @navbar-default-bg;\n border-color: @navbar-default-border;\n\n .navbar-brand {\n color: @navbar-default-brand-color;\n &:hover,\n &:focus {\n color: @navbar-default-brand-hover-color;\n background-color: @navbar-default-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-default-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-default-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n }\n\n .navbar-toggle {\n border-color: @navbar-default-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-default-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-default-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: @navbar-default-border;\n }\n\n // Dropdown menu items\n .navbar-nav {\n // Remove background color from open dropdown\n > .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @navbar-default-link-active-bg;\n color: @navbar-default-link-active-color;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n > li > a {\n color: @navbar-default-link-color;\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n }\n }\n }\n\n\n // Links in navbars\n //\n // Add a class to ensure links outside the navbar nav are colored correctly.\n\n .navbar-link {\n color: @navbar-default-link-color;\n &:hover {\n color: @navbar-default-link-hover-color;\n }\n }\n\n .btn-link {\n color: @navbar-default-link-color;\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n }\n }\n }\n}\n\n// Inverse navbar\n\n.navbar-inverse {\n background-color: @navbar-inverse-bg;\n border-color: @navbar-inverse-border;\n\n .navbar-brand {\n color: @navbar-inverse-brand-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-brand-hover-color;\n background-color: @navbar-inverse-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-inverse-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-inverse-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n }\n\n // Darken the responsive nav toggle\n .navbar-toggle {\n border-color: @navbar-inverse-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-inverse-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-inverse-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: darken(@navbar-inverse-bg, 7%);\n }\n\n // Dropdowns\n .navbar-nav {\n > .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @navbar-inverse-link-active-bg;\n color: @navbar-inverse-link-active-color;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display\n .open .dropdown-menu {\n > .dropdown-header {\n border-color: @navbar-inverse-border;\n }\n .divider {\n background-color: @navbar-inverse-border;\n }\n > li > a {\n color: @navbar-inverse-link-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n }\n }\n }\n\n .navbar-link {\n color: @navbar-inverse-link-color;\n &:hover {\n color: @navbar-inverse-link-hover-color;\n }\n }\n\n .btn-link {\n color: @navbar-inverse-link-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n }\n }\n }\n}\n","// Navbar vertical align\n//\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n\n.navbar-vertical-align(@element-height) {\n margin-top: ((@navbar-height - @element-height) / 2);\n margin-bottom: ((@navbar-height - @element-height) / 2);\n}\n","//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.clearfix {\n .clearfix();\n}\n.center-block {\n .center-block();\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n\n\n// Toggling content\n// -------------------------\n\n// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n .text-hide();\n}\n\n\n// Hide from screenreaders and browsers\n//\n// Credit: HTML5 Boilerplate\n\n.hidden {\n display: none !important;\n}\n\n\n// For Affix plugin\n// -------------------------\n\n.affix {\n position: fixed;\n}\n","//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;\n margin-bottom: @line-height-computed;\n list-style: none;\n background-color: @breadcrumb-bg;\n border-radius: @border-radius-base;\n\n > li {\n display: inline-block;\n\n + li:before {\n content: \"@{breadcrumb-separator}\\00a0\"; // Unicode space added since inline-block means non-collapsing white-space\n padding: 0 5px;\n color: @breadcrumb-color;\n }\n }\n\n > .active {\n color: @breadcrumb-active-color;\n }\n}\n","//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: @line-height-computed 0;\n border-radius: @border-radius-base;\n\n > li {\n display: inline; // Remove list-style and block-level defaults\n > a,\n > span {\n position: relative;\n float: left; // Collapse white-space\n padding: @padding-base-vertical @padding-base-horizontal;\n line-height: @line-height-base;\n text-decoration: none;\n color: @pagination-color;\n background-color: @pagination-bg;\n border: 1px solid @pagination-border;\n margin-left: -1px;\n }\n &:first-child {\n > a,\n > span {\n margin-left: 0;\n .border-left-radius(@border-radius-base);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius-base);\n }\n }\n }\n\n > li > a,\n > li > span {\n &:hover,\n &:focus {\n z-index: 2;\n color: @pagination-hover-color;\n background-color: @pagination-hover-bg;\n border-color: @pagination-hover-border;\n }\n }\n\n > .active > a,\n > .active > span {\n &,\n &:hover,\n &:focus {\n z-index: 3;\n color: @pagination-active-color;\n background-color: @pagination-active-bg;\n border-color: @pagination-active-border;\n cursor: default;\n }\n }\n\n > .disabled {\n > span,\n > span:hover,\n > span:focus,\n > a,\n > a:hover,\n > a:focus {\n color: @pagination-disabled-color;\n background-color: @pagination-disabled-bg;\n border-color: @pagination-disabled-border;\n cursor: @cursor-disabled;\n }\n }\n}\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-lg {\n .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);\n}\n\n// Small\n.pagination-sm {\n .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n","// Pagination\n\n.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n > li {\n > a,\n > span {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n }\n &:first-child {\n > a,\n > span {\n .border-left-radius(@border-radius);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius);\n }\n }\n }\n}\n","//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n padding-left: 0;\n margin: @line-height-computed 0;\n list-style: none;\n text-align: center;\n &:extend(.clearfix all);\n li {\n display: inline;\n > a,\n > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: @pager-bg;\n border: 1px solid @pager-border;\n border-radius: @pager-border-radius;\n }\n\n > a:hover,\n > a:focus {\n text-decoration: none;\n background-color: @pager-hover-bg;\n }\n }\n\n .next {\n > a,\n > span {\n float: right;\n }\n }\n\n .previous {\n > a,\n > span {\n float: left;\n }\n }\n\n .disabled {\n > a,\n > a:hover,\n > a:focus,\n > span {\n color: @pager-disabled-color;\n background-color: @pager-bg;\n cursor: @cursor-disabled;\n }\n }\n}\n","//\n// Labels\n// --------------------------------------------------\n\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: @label-color;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n\n // Add hover effects, but only for links\n a& {\n &:hover,\n &:focus {\n color: @label-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n }\n\n // Empty labels collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for labels in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n}\n\n// Colors\n// Contextual variations (linked labels get darker on :hover)\n\n.label-default {\n .label-variant(@label-default-bg);\n}\n\n.label-primary {\n .label-variant(@label-primary-bg);\n}\n\n.label-success {\n .label-variant(@label-success-bg);\n}\n\n.label-info {\n .label-variant(@label-info-bg);\n}\n\n.label-warning {\n .label-variant(@label-warning-bg);\n}\n\n.label-danger {\n .label-variant(@label-danger-bg);\n}\n","// Labels\n\n.label-variant(@color) {\n background-color: @color;\n\n &[href] {\n &:hover,\n &:focus {\n background-color: darken(@color, 10%);\n }\n }\n}\n","//\n// Badges\n// --------------------------------------------------\n\n\n// Base class\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: @font-size-small;\n font-weight: @badge-font-weight;\n color: @badge-color;\n line-height: @badge-line-height;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: @badge-bg;\n border-radius: @badge-border-radius;\n\n // Empty badges collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for badges in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n\n .btn-xs &,\n .btn-group-xs > .btn & {\n top: 0;\n padding: 1px 5px;\n }\n\n // Hover state, but only for links\n a& {\n &:hover,\n &:focus {\n color: @badge-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n }\n\n // Account for badges in navs\n .list-group-item.active > &,\n .nav-pills > .active > a > & {\n color: @badge-active-color;\n background-color: @badge-active-bg;\n }\n\n .list-group-item > & {\n float: right;\n }\n\n .list-group-item > & + & {\n margin-right: 5px;\n }\n\n .nav-pills > li > a > & {\n margin-left: 3px;\n }\n}\n","//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n padding-top: @jumbotron-padding;\n padding-bottom: @jumbotron-padding;\n margin-bottom: @jumbotron-padding;\n color: @jumbotron-color;\n background-color: @jumbotron-bg;\n\n h1,\n .h1 {\n color: @jumbotron-heading-color;\n }\n\n p {\n margin-bottom: (@jumbotron-padding / 2);\n font-size: @jumbotron-font-size;\n font-weight: 200;\n }\n\n > hr {\n border-top-color: darken(@jumbotron-bg, 10%);\n }\n\n .container &,\n .container-fluid & {\n border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container\n padding-left: (@grid-gutter-width / 2);\n padding-right: (@grid-gutter-width / 2);\n }\n\n .container {\n max-width: 100%;\n }\n\n @media screen and (min-width: @screen-sm-min) {\n padding-top: (@jumbotron-padding * 1.6);\n padding-bottom: (@jumbotron-padding * 1.6);\n\n .container &,\n .container-fluid & {\n padding-left: (@jumbotron-padding * 2);\n padding-right: (@jumbotron-padding * 2);\n }\n\n h1,\n .h1 {\n font-size: @jumbotron-heading-font-size;\n }\n }\n}\n","//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.thumbnail {\n display: block;\n padding: @thumbnail-padding;\n margin-bottom: @line-height-computed;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(border .2s ease-in-out);\n\n > img,\n a > img {\n &:extend(.img-responsive);\n margin-left: auto;\n margin-right: auto;\n }\n\n // Add a hover state for linked versions only\n a&:hover,\n a&:focus,\n a&.active {\n border-color: @link-color;\n }\n\n // Image captions\n .caption {\n padding: @thumbnail-caption-padding;\n color: @thumbnail-caption-color;\n }\n}\n","//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n padding: @alert-padding;\n margin-bottom: @line-height-computed;\n border: 1px solid transparent;\n border-radius: @alert-border-radius;\n\n // Headings for larger alerts\n h4 {\n margin-top: 0;\n // Specified for the h4 to prevent conflicts of changing @headings-color\n color: inherit;\n }\n\n // Provide class for links that match alerts\n .alert-link {\n font-weight: @alert-link-font-weight;\n }\n\n // Improve alignment and spacing of inner content\n > p,\n > ul {\n margin-bottom: 0;\n }\n\n > p + p {\n margin-top: 5px;\n }\n}\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.\n.alert-dismissible {\n padding-right: (@alert-padding + 20);\n\n // Adjust close link position\n .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n }\n}\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n.alert-success {\n .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);\n}\n\n.alert-info {\n .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);\n}\n\n.alert-warning {\n .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);\n}\n\n.alert-danger {\n .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);\n}\n","// Alerts\n\n.alert-variant(@background; @border; @text-color) {\n background-color: @background;\n border-color: @border;\n color: @text-color;\n\n hr {\n border-top-color: darken(@border, 5%);\n }\n .alert-link {\n color: darken(@text-color, 10%);\n }\n}\n","//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -------------------------\n\n// WebKit\n@-webkit-keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n// Spec and IE10+\n@keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n\n// Bar itself\n// -------------------------\n\n// Outer container\n.progress {\n overflow: hidden;\n height: @line-height-computed;\n margin-bottom: @line-height-computed;\n background-color: @progress-bg;\n border-radius: @progress-border-radius;\n .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));\n}\n\n// Bar of progress\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: @font-size-small;\n line-height: @line-height-computed;\n color: @progress-bar-color;\n text-align: center;\n background-color: @progress-bar-bg;\n .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));\n .transition(width .6s ease);\n}\n\n// Striped bars\n//\n// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar-striped` class, which you just add to an existing\n// `.progress-bar`.\n.progress-striped .progress-bar,\n.progress-bar-striped {\n #gradient > .striped();\n background-size: 40px 40px;\n}\n\n// Call animation for the active one\n//\n// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar.active` approach.\n.progress.active .progress-bar,\n.progress-bar.active {\n .animation(progress-bar-stripes 2s linear infinite);\n}\n\n\n// Variations\n// -------------------------\n\n.progress-bar-success {\n .progress-bar-variant(@progress-bar-success-bg);\n}\n\n.progress-bar-info {\n .progress-bar-variant(@progress-bar-info-bg);\n}\n\n.progress-bar-warning {\n .progress-bar-variant(@progress-bar-warning-bg);\n}\n\n.progress-bar-danger {\n .progress-bar-variant(@progress-bar-danger-bg);\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Progress bars\n\n.progress-bar-variant(@color) {\n background-color: @color;\n\n // Deprecated parent class requirement as of v3.2.0\n .progress-striped & {\n #gradient > .striped();\n }\n}\n",".media {\n // Proper spacing between instances of .media\n margin-top: 15px;\n\n &:first-child {\n margin-top: 0;\n }\n}\n\n.media,\n.media-body {\n zoom: 1;\n overflow: hidden;\n}\n\n.media-body {\n width: 10000px;\n}\n\n.media-object {\n display: block;\n\n // Fix collapse in webkit from max-width: 100% and display: table-cell.\n &.img-thumbnail {\n max-width: none;\n }\n}\n\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n\n.media-middle {\n vertical-align: middle;\n}\n\n.media-bottom {\n vertical-align: bottom;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n\n// Media list variation\n//\n// Undo default ul/ol styles\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n","//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n // No need to set list-style: none; since .list-group-item is block level\n margin-bottom: 20px;\n padding-left: 0; // reset padding because ul and ol\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -1px;\n background-color: @list-group-bg;\n border: 1px solid @list-group-border;\n\n // Round the first and last items\n &:first-child {\n .border-top-radius(@list-group-border-radius);\n }\n &:last-child {\n margin-bottom: 0;\n .border-bottom-radius(@list-group-border-radius);\n }\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item,\nbutton.list-group-item {\n color: @list-group-link-color;\n\n .list-group-item-heading {\n color: @list-group-link-heading-color;\n }\n\n // Hover state\n &:hover,\n &:focus {\n text-decoration: none;\n color: @list-group-link-hover-color;\n background-color: @list-group-hover-bg;\n }\n}\n\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n\n.list-group-item {\n // Disabled state\n &.disabled,\n &.disabled:hover,\n &.disabled:focus {\n background-color: @list-group-disabled-bg;\n color: @list-group-disabled-color;\n cursor: @cursor-disabled;\n\n // Force color to inherit for custom content\n .list-group-item-heading {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-disabled-text-color;\n }\n }\n\n // Active class on item itself, not parent\n &.active,\n &.active:hover,\n &.active:focus {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: @list-group-active-color;\n background-color: @list-group-active-bg;\n border-color: @list-group-active-border;\n\n // Force color to inherit for custom content\n .list-group-item-heading,\n .list-group-item-heading > small,\n .list-group-item-heading > .small {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-active-text-color;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n.list-group-item-variant(success; @state-success-bg; @state-success-text);\n.list-group-item-variant(info; @state-info-bg; @state-info-text);\n.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);\n.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n","// List Groups\n\n.list-group-item-variant(@state; @background; @color) {\n .list-group-item-@{state} {\n color: @color;\n background-color: @background;\n\n a&,\n button& {\n color: @color;\n\n .list-group-item-heading {\n color: inherit;\n }\n\n &:hover,\n &:focus {\n color: @color;\n background-color: darken(@background, 5%);\n }\n &.active,\n &.active:hover,\n &.active:focus {\n color: #fff;\n background-color: @color;\n border-color: @color;\n }\n }\n }\n}\n","//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n margin-bottom: @line-height-computed;\n background-color: @panel-bg;\n border: 1px solid transparent;\n border-radius: @panel-border-radius;\n .box-shadow(0 1px 1px rgba(0,0,0,.05));\n}\n\n// Panel contents\n.panel-body {\n padding: @panel-body-padding;\n &:extend(.clearfix all);\n}\n\n// Optional heading\n.panel-heading {\n padding: @panel-heading-padding;\n border-bottom: 1px solid transparent;\n .border-top-radius((@panel-border-radius - 1));\n\n > .dropdown .dropdown-toggle {\n color: inherit;\n }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: ceil((@font-size-base * 1.125));\n color: inherit;\n\n > a,\n > small,\n > .small,\n > small > a,\n > .small > a {\n color: inherit;\n }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n padding: @panel-footer-padding;\n background-color: @panel-footer-bg;\n border-top: 1px solid @panel-inner-border;\n .border-bottom-radius((@panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n > .list-group,\n > .panel-collapse > .list-group {\n margin-bottom: 0;\n\n .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n }\n\n // Add border top radius for first one\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n .border-top-radius((@panel-border-radius - 1));\n }\n }\n\n // Add border bottom radius for last one\n &:last-child {\n .list-group-item:last-child {\n border-bottom: 0;\n .border-bottom-radius((@panel-border-radius - 1));\n }\n }\n }\n > .panel-heading + .panel-collapse > .list-group {\n .list-group-item:first-child {\n .border-top-radius(0);\n }\n }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n .list-group-item:first-child {\n border-top-width: 0;\n }\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n > .table,\n > .table-responsive > .table,\n > .panel-collapse > .table {\n margin-bottom: 0;\n\n caption {\n padding-left: @panel-body-padding;\n padding-right: @panel-body-padding;\n }\n }\n // Add border top radius for first one\n > .table:first-child,\n > .table-responsive:first-child > .table:first-child {\n .border-top-radius((@panel-border-radius - 1));\n\n > thead:first-child,\n > tbody:first-child {\n > tr:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n border-top-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-top-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n // Add border bottom radius for last one\n > .table:last-child,\n > .table-responsive:last-child > .table:last-child {\n .border-bottom-radius((@panel-border-radius - 1));\n\n > tbody:last-child,\n > tfoot:last-child {\n > tr:last-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n border-bottom-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-bottom-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n > .panel-body + .table,\n > .panel-body + .table-responsive,\n > .table + .panel-body,\n > .table-responsive + .panel-body {\n border-top: 1px solid @table-border-color;\n }\n > .table > tbody:first-child > tr:first-child th,\n > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n }\n > .table-bordered,\n > .table-responsive > .table-bordered {\n border: 0;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n > thead,\n > tbody {\n > tr:first-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n > tbody,\n > tfoot {\n > tr:last-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n }\n > .table-responsive {\n border: 0;\n margin-bottom: 0;\n }\n}\n\n\n// Collapsible panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n margin-bottom: @line-height-computed;\n\n // Tighten up margin so it's only between panels\n .panel {\n margin-bottom: 0;\n border-radius: @panel-border-radius;\n\n + .panel {\n margin-top: 5px;\n }\n }\n\n .panel-heading {\n border-bottom: 0;\n\n + .panel-collapse > .panel-body,\n + .panel-collapse > .list-group {\n border-top: 1px solid @panel-inner-border;\n }\n }\n\n .panel-footer {\n border-top: 0;\n + .panel-collapse .panel-body {\n border-bottom: 1px solid @panel-inner-border;\n }\n }\n}\n\n\n// Contextual variations\n.panel-default {\n .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);\n}\n.panel-primary {\n .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);\n}\n.panel-success {\n .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);\n}\n.panel-info {\n .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);\n}\n.panel-warning {\n .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);\n}\n.panel-danger {\n .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);\n}\n","// Panels\n\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n border-color: @border;\n\n & > .panel-heading {\n color: @heading-text-color;\n background-color: @heading-bg-color;\n border-color: @heading-border;\n\n + .panel-collapse > .panel-body {\n border-top-color: @border;\n }\n .badge {\n color: @heading-bg-color;\n background-color: @heading-text-color;\n }\n }\n & > .panel-footer {\n + .panel-collapse > .panel-body {\n border-bottom-color: @border;\n }\n }\n}\n","// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n }\n}\n\n// Modifier class for 16:9 aspect ratio\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n\n// Modifier class for 4:3 aspect ratio\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n","//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: @well-bg;\n border: 1px solid @well-border;\n border-radius: @border-radius-base;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));\n blockquote {\n border-color: #ddd;\n border-color: rgba(0,0,0,.15);\n }\n}\n\n// Sizes\n.well-lg {\n padding: 24px;\n border-radius: @border-radius-large;\n}\n.well-sm {\n padding: 9px;\n border-radius: @border-radius-small;\n}\n","//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n float: right;\n font-size: (@font-size-base * 1.5);\n font-weight: @close-font-weight;\n line-height: 1;\n color: @close-color;\n text-shadow: @close-text-shadow;\n .opacity(.2);\n\n &:hover,\n &:focus {\n color: @close-color;\n text-decoration: none;\n cursor: pointer;\n .opacity(.5);\n }\n\n // Additional properties for button version\n // iOS requires the button element instead of an anchor tag.\n // If you want the anchor version, it requires `href=\"#\"`.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n button& {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n }\n}\n","//\n// Modals\n// --------------------------------------------------\n\n// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal;\n -webkit-overflow-scrolling: touch;\n\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n\n // When fading in the modal, animate it to slide down\n &.fade .modal-dialog {\n .translate(0, -25%);\n .transition-transform(~\"0.3s ease-out\");\n }\n &.in .modal-dialog { .translate(0, 0) }\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n background-color: @modal-content-bg;\n border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n border: 1px solid @modal-content-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 3px 9px rgba(0,0,0,.5));\n background-clip: padding-box;\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal-background;\n background-color: @modal-backdrop-bg;\n // Fade for backdrop\n &.fade { .opacity(0); }\n &.in { .opacity(@modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n padding: @modal-title-padding;\n border-bottom: 1px solid @modal-header-border-color;\n &:extend(.clearfix all);\n}\n// Close icon\n.modal-header .close {\n margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n margin: 0;\n line-height: @modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n padding: @modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n padding: @modal-inner-padding;\n text-align: right; // right align buttons\n border-top: 1px solid @modal-footer-border-color;\n &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons\n\n // Properly space out buttons\n .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n }\n // but override that for button groups\n .btn-group .btn + .btn {\n margin-left: -1px;\n }\n // and override it for block buttons as well\n .btn-block + .btn-block {\n margin-left: 0;\n }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@media (min-width: @screen-sm-min) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n width: @modal-md;\n margin: 30px auto;\n }\n .modal-content {\n .box-shadow(0 5px 15px rgba(0,0,0,.5));\n }\n\n // Modal sizes\n .modal-sm { width: @modal-sm; }\n}\n\n@media (min-width: @screen-md-min) {\n .modal-lg { width: @modal-lg; }\n}\n","//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n position: absolute;\n z-index: @zindex-tooltip;\n display: block;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-small;\n\n .opacity(0);\n\n &.in { .opacity(@tooltip-opacity); }\n &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }\n &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }\n &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }\n &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: @tooltip-max-width;\n padding: 3px 8px;\n color: @tooltip-color;\n text-align: center;\n background-color: @tooltip-bg;\n border-radius: @border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1\n.tooltip {\n &.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-left .tooltip-arrow {\n bottom: 0;\n right: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-right .tooltip-arrow {\n bottom: 0;\n left: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;\n border-right-color: @tooltip-arrow-color;\n }\n &.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-left-color: @tooltip-arrow-color;\n }\n &.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-left .tooltip-arrow {\n top: 0;\n right: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-right .tooltip-arrow {\n top: 0;\n left: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n}\n",".reset-text() {\n font-family: @font-family-base;\n // We deliberately do NOT reset font-size.\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: @line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n}\n","//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: @zindex-popover;\n display: none;\n max-width: @popover-max-width;\n padding: 1px;\n // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-base;\n\n background-color: @popover-bg;\n background-clip: padding-box;\n border: 1px solid @popover-fallback-border-color;\n border: 1px solid @popover-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 5px 10px rgba(0,0,0,.2));\n\n // Offset the popover to account for the popover arrow\n &.top { margin-top: -@popover-arrow-width; }\n &.right { margin-left: @popover-arrow-width; }\n &.bottom { margin-top: @popover-arrow-width; }\n &.left { margin-left: -@popover-arrow-width; }\n}\n\n.popover-title {\n margin: 0; // reset heading margin\n padding: 8px 14px;\n font-size: @font-size-base;\n background-color: @popover-title-bg;\n border-bottom: 1px solid darken(@popover-title-bg, 5%);\n border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;\n}\n\n.popover-content {\n padding: 9px 14px;\n}\n\n// Arrows\n//\n// .arrow is outer, .arrow:after is inner\n\n.popover > .arrow {\n &,\n &:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n }\n}\n.popover > .arrow {\n border-width: @popover-arrow-outer-width;\n}\n.popover > .arrow:after {\n border-width: @popover-arrow-width;\n content: \"\";\n}\n\n.popover {\n &.top > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-top-color: @popover-arrow-outer-color;\n bottom: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n bottom: 1px;\n margin-left: -@popover-arrow-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-color;\n }\n }\n &.right > .arrow {\n top: 50%;\n left: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-right-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n left: 1px;\n bottom: -@popover-arrow-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-color;\n }\n }\n &.bottom > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-bottom-color: @popover-arrow-outer-color;\n top: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n top: 1px;\n margin-left: -@popover-arrow-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-color;\n }\n }\n\n &.left > .arrow {\n top: 50%;\n right: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-right-width: 0;\n border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-left-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: @popover-arrow-color;\n bottom: -@popover-arrow-width;\n }\n }\n}\n","//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n\n > .item {\n display: none;\n position: relative;\n .transition(.6s ease-in-out left);\n\n // Account for jankitude on images\n > img,\n > a > img {\n &:extend(.img-responsive);\n line-height: 1;\n }\n\n // WebKit CSS3 transforms for supported devices\n @media all and (transform-3d), (-webkit-transform-3d) {\n .transition-transform(~'0.6s ease-in-out');\n .backface-visibility(~'hidden');\n .perspective(1000px);\n\n &.next,\n &.active.right {\n .translate3d(100%, 0, 0);\n left: 0;\n }\n &.prev,\n &.active.left {\n .translate3d(-100%, 0, 0);\n left: 0;\n }\n &.next.left,\n &.prev.right,\n &.active {\n .translate3d(0, 0, 0);\n left: 0;\n }\n }\n }\n\n > .active,\n > .next,\n > .prev {\n display: block;\n }\n\n > .active {\n left: 0;\n }\n\n > .next,\n > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n }\n\n > .next {\n left: 100%;\n }\n > .prev {\n left: -100%;\n }\n > .next.left,\n > .prev.right {\n left: 0;\n }\n\n > .active.left {\n left: -100%;\n }\n > .active.right {\n left: 100%;\n }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: @carousel-control-width;\n .opacity(@carousel-control-opacity);\n font-size: @carousel-control-font-size;\n color: @carousel-control-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug\n // We can't have this transition here because WebKit cancels the carousel\n // animation if you trip this while in the middle of another animation.\n\n // Set gradients for backgrounds\n &.left {\n #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));\n }\n &.right {\n left: auto;\n right: 0;\n #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));\n }\n\n // Hover/focus state\n &:hover,\n &:focus {\n outline: 0;\n color: @carousel-control-color;\n text-decoration: none;\n .opacity(.9);\n }\n\n // Toggles\n .icon-prev,\n .icon-next,\n .glyphicon-chevron-left,\n .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n }\n .icon-prev,\n .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n }\n .icon-next,\n .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n }\n .icon-prev,\n .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n }\n\n\n .icon-prev {\n &:before {\n content: '\\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n }\n }\n .icon-next {\n &:before {\n content: '\\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n }\n }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n\n li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid @carousel-indicator-border-color;\n border-radius: 10px;\n cursor: pointer;\n\n // IE8-9 hack for event handling\n //\n // Internet Explorer 8-9 does not support clicks on elements without a set\n // `background-color`. We cannot use `filter` since that's not viewed as a\n // background color by the browser. Thus, a hack is needed.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer\n //\n // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n // set alpha transparency for the best results possible.\n background-color: #000 \\9; // IE8\n background-color: rgba(0,0,0,0); // IE9\n }\n .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: @carousel-indicator-active-bg;\n }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: @carousel-caption-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n & .btn {\n text-shadow: none; // No shadow for button elements in carousel-caption\n }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: @screen-sm-min) {\n\n // Scale up the controls a smidge\n .carousel-control {\n .glyphicon-chevron-left,\n .glyphicon-chevron-right,\n .icon-prev,\n .icon-next {\n width: (@carousel-control-font-size * 1.5);\n height: (@carousel-control-font-size * 1.5);\n margin-top: (@carousel-control-font-size / -2);\n font-size: (@carousel-control-font-size * 1.5);\n }\n .glyphicon-chevron-left,\n .icon-prev {\n margin-left: (@carousel-control-font-size / -2);\n }\n .glyphicon-chevron-right,\n .icon-next {\n margin-right: (@carousel-control-font-size / -2);\n }\n }\n\n // Show and left align the captions\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n\n // Move up the indicators\n .carousel-indicators {\n bottom: 20px;\n }\n}\n","// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n// contenteditable attribute is included anywhere else in the document.\n// Otherwise it causes space to appear at the top and bottom of elements\n// that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n// `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n.clearfix() {\n &:before,\n &:after {\n content: \" \"; // 1\n display: table; // 2\n }\n &:after {\n clear: both;\n }\n}\n","// Center-align a block level element\n\n.center-block() {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n","// CSS image replacement\n//\n// Heads up! v3 launched with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (has been removed in v4)\n.hide-text() {\n font: ~\"0/0\" a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n// New mixin to use as of v3.0.1\n.text-hide() {\n .hide-text();\n}\n","//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: http://getbootstrap.com/getting-started/#support-ie10-width\n// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/\n// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@-ms-viewport {\n width: device-width;\n}\n\n\n// Visibility utilities\n// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n .responsive-invisibility();\n}\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n\n.visible-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-visibility();\n }\n}\n.visible-xs-block {\n @media (max-width: @screen-xs-max) {\n display: block !important;\n }\n}\n.visible-xs-inline {\n @media (max-width: @screen-xs-max) {\n display: inline !important;\n }\n}\n.visible-xs-inline-block {\n @media (max-width: @screen-xs-max) {\n display: inline-block !important;\n }\n}\n\n.visible-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-visibility();\n }\n}\n.visible-sm-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: block !important;\n }\n}\n.visible-sm-inline {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline !important;\n }\n}\n.visible-sm-inline-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline-block !important;\n }\n}\n\n.visible-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-visibility();\n }\n}\n.visible-md-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: block !important;\n }\n}\n.visible-md-inline {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline !important;\n }\n}\n.visible-md-inline-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline-block !important;\n }\n}\n\n.visible-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-visibility();\n }\n}\n.visible-lg-block {\n @media (min-width: @screen-lg-min) {\n display: block !important;\n }\n}\n.visible-lg-inline {\n @media (min-width: @screen-lg-min) {\n display: inline !important;\n }\n}\n.visible-lg-inline-block {\n @media (min-width: @screen-lg-min) {\n display: inline-block !important;\n }\n}\n\n.hidden-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-invisibility();\n }\n}\n.hidden-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-invisibility();\n }\n}\n.hidden-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-invisibility();\n }\n}\n.hidden-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-invisibility();\n }\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n// Note: Deprecated .visible-print as of v3.2.0\n.visible-print {\n .responsive-invisibility();\n\n @media print {\n .responsive-visibility();\n }\n}\n.visible-print-block {\n display: none !important;\n\n @media print {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n\n @media print {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n\n @media print {\n display: inline-block !important;\n }\n}\n\n.hidden-print {\n @media print {\n .responsive-invisibility();\n }\n}\n","// Responsive utilities\n\n//\n// More easily include all the states for responsive-utilities.less.\n.responsive-visibility() {\n display: block !important;\n table& { display: table !important; }\n tr& { display: table-row !important; }\n th&,\n td& { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n display: none !important;\n}\n"]} \ No newline at end of file
diff --git a/library/bootstrap/css/bootstrap.min.css.map b/library/bootstrap/css/bootstrap.min.css.map
new file mode 100644
index 000000000..6c7fa40b9
--- /dev/null
+++ b/library/bootstrap/css/bootstrap.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["less/normalize.less","less/print.less","bootstrap.css","dist/css/bootstrap.css","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/mixins/reset-text.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":";;;;4EAQA,KACE,YAAA,WACA,yBAAA,KACA,qBAAA,KAOF,KACE,OAAA,EAaF,QAAA,MAAA,QAAA,WAAA,OAAA,OAAA,OAAA,OAAA,KAAA,KAAA,IAAA,QAAA,QAaE,QAAA,MAQF,MAAA,OAAA,SAAA,MAIE,QAAA,aACA,eAAA,SAQF,sBACE,QAAA,KACA,OAAA,EAQF,SAAA,SAEE,QAAA,KAUF,EACE,iBAAA,YAQF,SAAA,QAEE,QAAA,EAUF,YACE,cAAA,IAAA,OAOF,EAAA,OAEE,YAAA,IAOF,IACE,WAAA,OAQF,GACE,OAAA,MAAA,EACA,UAAA,IAOF,KACE,MAAA,KACA,WAAA,KAOF,MACE,UAAA,IAOF,IAAA,IAEE,SAAA,SACA,UAAA,IACA,YAAA,EACA,eAAA,SAGF,IACE,IAAA,MAGF,IACE,OAAA,OAUF,IACE,OAAA,EAOF,eACE,SAAA,OAUF,OACE,OAAA,IAAA,KAOF,GACE,OAAA,EAAA,mBAAA,YAAA,gBAAA,YACA,WAAA,YAOF,IACE,SAAA,KAOF,KAAA,IAAA,IAAA,KAIE,YAAA,UAAA,UACA,UAAA,IAkBF,OAAA,MAAA,SAAA,OAAA,SAKE,OAAA,EACA,KAAA,QACA,MAAA,QAOF,OACE,SAAA,QAUF,OAAA,OAEE,eAAA,KAWF,OAAA,wBAAA,kBAAA,mBAIE,mBAAA,OACA,OAAA,QAOF,iBAAA,qBAEE,OAAA,QAOF,yBAAA,wBAEE,QAAA,EACA,OAAA,EAQF,MACE,YAAA,OAWF,qBAAA,kBAEE,mBAAA,WAAA,gBAAA,WAAA,WAAA,WACA,QAAA,EASF,8CAAA,8CAEE,OAAA,KAQF,mBACE,mBAAA,YACA,gBAAA,YAAA,WAAA,YAAA,mBAAA,UASF,iDAAA,8CAEE,mBAAA,KAOF,SACE,QAAA,MAAA,OAAA,MACA,OAAA,EAAA,IACA,OAAA,IAAA,MAAA,OAQF,OACE,QAAA,EACA,OAAA,EAOF,SACE,SAAA,KAQF,SACE,YAAA,IAUF,MACE,eAAA,EACA,gBAAA,SAGF,GAAA,GAEE,QAAA,uFCjUF,aA7FI,EAAA,OAAA,QAGI,MAAA,eACA,YAAA,eACA,WAAA,cAAA,mBAAA,eACA,WAAA,eAGJ,EAAA,UAEI,gBAAA,UAGJ,cACI,QAAA,KAAA,WAAA,IAGJ,kBACI,QAAA,KAAA,YAAA,IAKJ,6BAAA,mBAEI,QAAA,GAGJ,WAAA,IAEI,OAAA,IAAA,MAAA,KC4KL,kBAAA,MDvKK,MC0KL,QAAA,mBDrKK,IE8KN,GDLC,kBAAA,MDrKK,ICwKL,UAAA,eCUD,GF5KM,GE2KN,EF1KM,QAAA,ECuKL,OAAA,ECSD,GF3KM,GCsKL,iBAAA,MD/JK,QCkKL,QAAA,KCSD,YFtKU,oBCiKT,iBAAA,eD7JK,OCgKL,OAAA,IAAA,MAAA,KD5JK,OC+JL,gBAAA,mBCSD,UFpKU,UC+JT,iBAAA,eDzJS,mBEkKV,mBDLC,OAAA,IAAA,MAAA,gBEjPD,WACA,YAAA,uBFsPD,IAAA,+CE7OC,IAAK,sDAAuD,4BAA6B,iDAAkD,gBAAiB,gDAAiD,eAAgB,+CAAgD,mBAAoB,2EAA4E,cAE7W,WACA,SAAA,SACA,IAAA,IACA,QAAA,aACA,YAAA,uBACA,WAAA,OACA,YAAA,IACA,YAAA,EAIkC,uBAAA,YAAW,wBAAA,UACX,2BAAW,QAAA,QAEX,uBDuPlC,QAAS,QCtPyB,sBFiPnC,uBEjP8C,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,2BAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,6BAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,2BAAW,QAAA,QACX,qBAAW,QAAA,QACX,0BAAW,QAAA,QACX,qBAAW,QAAA,QACX,yBAAW,QAAA,QACX,0BAAW,QAAA,QACX,2BAAW,QAAA,QACX,sBAAW,QAAA,QACX,yBAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,+BAAW,QAAA,QACX,2BAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,8BAAW,QAAA,QACX,yBAAW,QAAA,QACX,0BAAW,QAAA,QACX,2BAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,6BAAW,QAAA,QACX,6BAAW,QAAA,QACX,8BAAW,QAAA,QACX,4BAAW,QAAA,QACX,yBAAW,QAAA,QACX,0BAAW,QAAA,QACX,sBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,2BAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,yBAAW,QAAA,QACX,8BAAW,QAAA,QACX,6BAAW,QAAA,QACX,6BAAW,QAAA,QACX,+BAAW,QAAA,QACX,8BAAW,QAAA,QACX,gCAAW,QAAA,QACX,uBAAW,QAAA,QACX,8BAAW,QAAA,QACX,+BAAW,QAAA,QACX,iCAAW,QAAA,QACX,0BAAW,QAAA,QACX,6BAAW,QAAA,QACX,yBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,gCAAW,QAAA,QACX,gCAAW,QAAA,QACX,2BAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,0BAAW,QAAA,QACX,+BAAW,QAAA,QACX,+BAAW,QAAA,QACX,wBAAW,QAAA,QACX,+BAAW,QAAA,QACX,gCAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,8BAAW,QAAA,QACX,0BAAW,QAAA,QACX,gCAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,gCAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,6BAAW,QAAA,QACX,8BAAW,QAAA,QACX,2BAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QACX,8BAAW,QAAA,QACX,+BAAW,QAAA,QACX,mCAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,2BAAW,QAAA,QACX,4BAAW,QAAA,QACX,+BAAW,QAAA,QACX,wBAAW,QAAA,QACX,2BAAW,QAAA,QACX,yBAAW,QAAA,QACX,0BAAW,QAAA,QACX,yBAAW,QAAA,QACX,6BAAW,QAAA,QACX,+BAAW,QAAA,QACX,0BAAW,QAAA,QACX,gCAAW,QAAA,QACX,+BAAW,QAAA,QACX,8BAAW,QAAA,QACX,kCAAW,QAAA,QACX,oCAAW,QAAA,QACX,sBAAW,QAAA,QACX,2BAAW,QAAA,QACX,uBAAW,QAAA,QACX,8BAAW,QAAA,QACX,4BAAW,QAAA,QACX,8BAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QACX,0BAAW,QAAA,QACX,4BAAW,QAAA,QACX,qCAAW,QAAA,QACX,oCAAW,QAAA,QACX,kCAAW,QAAA,QACX,oCAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,8BAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,0BAAW,QAAA,QACX,sBAAW,QAAA,QACX,sBAAW,QAAA,QACX,uBAAW,QAAA,QACX,mCAAW,QAAA,QACX,uCAAW,QAAA,QACX,gCAAW,QAAA,QACX,oCAAW,QAAA,QACX,qCAAW,QAAA,QACX,yCAAW,QAAA,QACX,4BAAW,QAAA,QACX,yBAAW,QAAA,QACX,gCAAW,QAAA,QACX,8BAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,0BAAW,QAAA,QACX,6BAAW,QAAA,QACX,yBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,yBAAW,QAAA,QACX,uBAAW,QAAA,QACX,8BAAW,QAAA,QACX,+BAAW,QAAA,QACX,gCAAW,QAAA,QACX,8BAAW,QAAA,QACX,8BAAW,QAAA,QACX,8BAAW,QAAA,QACX,2BAAW,QAAA,QACX,0BAAW,QAAA,QACX,yBAAW,QAAA,QACX,6BAAW,QAAA,QACX,2BAAW,QAAA,QACX,4BAAW,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,2BAAW,QAAA,QACX,2BAAW,QAAA,QACX,4BAAW,QAAA,QACX,+BAAW,QAAA,QACX,8BAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,iCAAW,QAAA,QACX,oCAAW,QAAA,QACX,iCAAW,QAAA,QACX,+BAAW,QAAA,QACX,+BAAW,QAAA,QACX,iCAAW,QAAA,QACX,qBAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,2BAAW,QAAA,QACX,uBAAW,QAAA,QASX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,4BAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,yBAAW,QAAA,QACX,yBAAW,QAAA,QACX,+BAAW,QAAA,QACX,uBAAW,QAAA,QACX,6BAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,4BAAW,QAAA,QACX,uBAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,2BAAW,QAAA,QACX,0BAAW,QAAA,QACX,sBAAW,QAAA,QACX,sBAAW,QAAA,QACX,sBAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,4BAAW,QAAA,QACX,mCAAW,QAAA,QACX,4BAAW,QAAA,QACX,oCAAW,QAAA,QACX,kCAAW,QAAA,QACX,iCAAW,QAAA,QACX,+BAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,kCAAW,QAAA,QACX,mCAAW,QAAA,QACX,sCAAW,QAAA,QACX,0CAAW,QAAA,QACX,oCAAW,QAAA,QACX,wCAAW,QAAA,QACX,qCAAW,QAAA,QACX,iCAAW,QAAA,QACX,gCAAW,QAAA,QACX,kCAAW,QAAA,QACX,+BAAW,QAAA,QACX,0BAAW,QAAA,QACX,8BAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QCtS/C,0BCgEE,QAAA,QHi+BF,EDNC,mBAAA,WGxhCI,gBAAiB,WFiiCZ,WAAY,WGl+BZ,OADL,QJg+BJ,mBAAA,WGthCI,gBAAiB,WACpB,WAAA,WHyhCD,KGrhCC,UAAW,KAEX,4BAAA,cAEA,KACA,YAAA,iBAAA,UAAA,MAAA,WHuhCD,UAAA,KGnhCC,YAAa,WF4hCb,MAAO,KACP,iBAAkB,KExhClB,OADA,MAEA,OHqhCD,SG/gCC,YAAa,QACb,UAAA,QACA,YAAA,QAEA,EFwhCA,MAAO,QEthCL,gBAAA,KAIF,QH8gCD,QKjkCC,MAAA,QACA,gBAAA,UF6DF,QACE,QAAA,IAAA,KAAA,yBHygCD,eAAA,KGlgCC,OHqgCD,OAAA,ECSD,IACE,eAAgB,ODDjB,4BM/kCC,0BLklCF,gBKnlCE,iBADA,eH4EA,QAAS,MACT,UAAA,KHugCD,OAAA,KGhgCC,aACA,cAAA,IAEA,eACA,QAAA,aC6FA,UAAA,KACK,OAAA,KACG,QAAA,IEvLR,YAAA,WACA,iBAAA,KACA,OAAA,IAAA,MAAA,KN+lCD,cAAA,IGjgCC,mBAAoB,IAAI,IAAI,YAC5B,cAAA,IAAA,IAAA,YHmgCD,WAAA,IAAA,IAAA,YG5/BC,YACA,cAAA,IAEA,GH+/BD,WAAA,KGv/BC,cAAe,KACf,OAAA,EACA,WAAA,IAAA,MAAA,KAEA,SACA,SAAA,SACA,MAAA,IACA,OAAA,IACA,QAAA,EHy/BD,OAAA,KGj/BC,SAAA,OF0/BA,KAAM,cEx/BJ,OAAA,EAEA,0BACA,yBACA,SAAA,OACA,MAAA,KHm/BH,OAAA,KGx+BC,OAAQ,EACR,SAAA,QH0+BD,KAAA,KCSD,cACE,OAAQ,QAQV,IACA,IMlpCE,IACA,IACA,IACA,INwoCF,GACA,GACA,GACA,GACA,GACA,GDAC,YAAA,QOlpCC,YAAa,IN2pCb,YAAa,IACb,MAAO,QAoBT,WAZA,UAaA,WAZA,UM5pCI,WN6pCJ,UM5pCI,WN6pCJ,UM5pCI,WN6pCJ,UDMC,WCLD,UACA,UAZA,SAaA,UAZA,SAaA,UAZA,SAaA,UAZA,SAaA,UAZA,SAaA,UAZA,SMppCE,YAAa,INwqCb,YAAa,EACb,MAAO,KAGT,IMxqCE,IAJF,IN2qCA,GAEA,GDLC,GCSC,WAAY,KACZ,cAAe,KASjB,WANA,UDCC,WCCD,UM5qCA,WN8qCA,UACA,UANA,SM5qCI,UN8qCJ,SM3qCA,UN6qCA,SAQE,UAAW,IAGb,IMprCE,IAJF,INurCA,GAEA,GDLC,GCSC,WAAY,KACZ,cAAe,KASjB,WANA,UDCC,WCCD,UMvrCA,WNyrCA,UACA,UANA,SMxrCI,UN0rCJ,SMtrCA,UNwrCA,SMxrCU,UAAA,IACV,IAAA,GAAU,UAAA,KACV,IAAA,GAAU,UAAA,KACV,IAAA,GAAU,UAAA,KACV,IAAA,GAAU,UAAA,KACV,IAAA,GAAU,UAAA,KAOR,IADF,GPssCC,UAAA,KCSD,EMzsCE,OAAA,EAAA,EAAA,KAEA,MPosCD,cAAA,KO/rCC,UAAW,KAwOX,YAAa,IA1OX,YAAA,IPssCH,yBO7rCC,MNssCE,UAAW,MMjsCf,OAAA,MAEE,UAAA,IAKF,MP0rCC,KO1rCsB,QAAA,KP6rCtB,iBAAA,QO5rCsB,WP+rCtB,WAAA,KO9rCsB,YPisCtB,WAAA,MOhsCsB,aPmsCtB,WAAA,OOlsCsB,cPqsCtB,WAAA,QOlsCsB,aPqsCtB,YAAA,OOpsCsB,gBPusCtB,eAAA,UOtsCsB,gBPysCtB,eAAA,UOrsCC,iBPwsCD,eAAA,WQ3yCC,YR8yCD,MAAA,KCSD,cOpzCI,MAAA,QAHF,qBDwGF,qBP6sCC,MAAA,QCSD,cO3zCI,MAAA,QAHF,qBD2GF,qBPitCC,MAAA,QCSD,WOl0CI,MAAA,QAHF,kBD8GF,kBPqtCC,MAAA,QCSD,cOz0CI,MAAA,QAHF,qBDiHF,qBPytCC,MAAA,QCSD,aOh1CI,MAAA,QDwHF,oBAHF,oBExHE,MAAA,QACA,YR01CA,MAAO,KQx1CL,iBAAA,QAHF,mBF8HF,mBP2tCC,iBAAA,QCSD,YQ/1CI,iBAAA,QAHF,mBFiIF,mBP+tCC,iBAAA,QCSD,SQt2CI,iBAAA,QAHF,gBFoIF,gBPmuCC,iBAAA,QCSD,YQ72CI,iBAAA,QAHF,mBFuIF,mBPuuCC,iBAAA,QCSD,WQp3CI,iBAAA,QF6IF,kBADF,kBAEE,iBAAA,QPsuCD,aO7tCC,eAAgB,INsuChB,OAAQ,KAAK,EAAE,KMpuCf,cAAA,IAAA,MAAA,KAFF,GPkuCC,GCSC,WAAY,EACZ,cAAe,KM9tCf,MP0tCD,MO3tCD,MAPI,MASF,cAAA,EAIF,eALE,aAAA,EACA,WAAA,KPkuCD,aO9tCC,aAAc,EAKZ,YAAA,KACA,WAAA,KP6tCH,gBOvtCC,QAAS,aACT,cAAA,IACA,aAAA,IAEF,GNguCE,WAAY,EM9tCZ,cAAA,KAGA,GADF,GP0tCC,YAAA,WOttCC,GPytCD,YAAA,IOnnCD,GAvFM,YAAA,EAEA,yBACA,kBGtNJ,MAAA,KACA,MAAA,MACA,SAAA,OVq6CC,MAAA,KO7nCC,WAAY,MAhFV,cAAA,SPgtCH,YAAA,OOtsCD,kBNgtCE,YAAa,OM1sCjB,0BPssCC,YOrsCC,OAAA,KA9IqB,cAAA,IAAA,OAAA,KAmJvB,YACE,UAAA,IACA,eAAA,UAEA,WPssCD,QAAA,KAAA,KOjsCG,OAAA,EAAA,EAAA,KN0sCF,UAAW,OACX,YAAa,IAAI,MAAM,KMptCzB,yBP+sCC,wBO/sCD,yBNytCE,cAAe,EMnsCb,kBAFA,kBACA,iBPksCH,QAAA,MO/rCG,UAAA,INwsCF,YAAa,WACb,MAAO,KMhsCT,yBP2rCC,yBO3rCD,wBAEE,QAAA,cAEA,oBACA,sBACA,cAAA,KP6rCD,aAAA,EOvrCG,WAAA,MNgsCF,aAAc,IAAI,MAAM,KACxB,YAAa,EMhsCX,kCNksCJ,kCMnsCe,iCACX,oCNmsCJ,oCDLC,mCCUC,QAAS,GMjsCX,iCNmsCA,iCMzsCM,gCAOJ,mCNmsCF,mCDLC,kCO7rCC,QAAA,cPksCD,QWv+CC,cAAe,KVg/Cf,WAAY,OACZ,YAAa,WU7+Cb,KXy+CD,IWr+CD,IACE,KACA,YAAA,MAAA,OAAA,SAAA,cAAA,UAEA,KACA,QAAA,IAAA,IXu+CD,UAAA,IWn+CC,MAAO,QACP,iBAAA,QACA,cAAA,IAEA,IACA,QAAA,IAAA,IACA,UAAA,IV4+CA,MU5+CA,KXq+CD,iBAAA,KW3+CC,cAAe,IASb,mBAAA,MAAA,EAAA,KAAA,EAAA,gBACA,WAAA,MAAA,EAAA,KAAA,EAAA,gBAEA,QV6+CF,QU7+CE,EXq+CH,UAAA,KWh+CC,YAAa,IACb,mBAAA,KACA,WAAA,KAEA,IACA,QAAA,MACA,QAAA,MACA,OAAA,EAAA,EAAA,KACA,UAAA,KACA,YAAA,WACA,MAAA,KACA,WAAA,UXk+CD,UAAA,WW7+CC,iBAAkB,QAehB,OAAA,IAAA,MAAA,KACA,cAAA,IAEA,SACA,QAAA,EACA,UAAA,QXi+CH,MAAA,QW59CC,YAAa,SACb,iBAAA,YACA,cAAA,EC1DF,gBCHE,WAAA,MACA,WAAA,OAEA,Wb8hDD,cAAA,KYxhDC,aAAA,KAqEA,aAAc,KAvEZ,YAAA,KZ+hDH,yBY1hDC,WAkEE,MAAO,OZ69CV,yBY5hDC,WA+DE,MAAO,OZk+CV,0BYzhDC,WCvBA,MAAA,QAGA,iBbmjDD,cAAA,KYthDC,aAAc,KCvBd,aAAA,KACA,YAAA,KCAE,KACE,aAAA,MAEA,YAAA,MAGA,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UdgjDL,SAAA,SchiDG,WAAA,IACE,cAAA,KdkiDL,aAAA,Kc1hDG,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,Ud6hDH,MAAA,Kc7hDG,WdgiDH,MAAA,KchiDG,WdmiDH,MAAA,acniDG,WdsiDH,MAAA,actiDG,UdyiDH,MAAA,IcziDG,Ud4iDH,MAAA,ac5iDG,Ud+iDH,MAAA,ac/iDG,UdkjDH,MAAA,IcljDG,UdqjDH,MAAA,acrjDG,UdwjDH,MAAA,acxjDG,Ud2jDH,MAAA,Ic3jDG,Ud8jDH,MAAA,ac/iDG,UdkjDH,MAAA,YcljDG,gBdqjDH,MAAA,KcrjDG,gBdwjDH,MAAA,acxjDG,gBd2jDH,MAAA,ac3jDG,ed8jDH,MAAA,Ic9jDG,edikDH,MAAA,acjkDG,edokDH,MAAA,acpkDG,edukDH,MAAA,IcvkDG,ed0kDH,MAAA,ac1kDG,ed6kDH,MAAA,ac7kDG,edglDH,MAAA,IchlDG,edmlDH,MAAA,ac9kDG,edilDH,MAAA,YchmDG,edmmDH,MAAA,KcnmDG,gBdsmDH,KAAA,KctmDG,gBdymDH,KAAA,aczmDG,gBd4mDH,KAAA,ac5mDG,ed+mDH,KAAA,Ic/mDG,edknDH,KAAA,aclnDG,edqnDH,KAAA,acrnDG,edwnDH,KAAA,IcxnDG,ed2nDH,KAAA,ac3nDG,ed8nDH,KAAA,ac9nDG,edioDH,KAAA,IcjoDG,edooDH,KAAA,ac/nDG,edkoDH,KAAA,YcnnDG,edsnDH,KAAA,KctnDG,kBdynDH,YAAA,KcznDG,kBd4nDH,YAAA,ac5nDG,kBd+nDH,YAAA,ac/nDG,iBdkoDH,YAAA,IcloDG,iBdqoDH,YAAA,acroDG,iBdwoDH,YAAA,acxoDG,iBd2oDH,YAAA,Ic3oDG,iBd8oDH,YAAA,ac9oDG,iBdipDH,YAAA,acjpDG,iBdopDH,YAAA,IcppDG,iBdupDH,YAAA,acvpDG,iBd0pDH,YAAA,Yc5rDG,iBACE,YAAA,EAOJ,yBACE,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,Ud0rDD,MAAA,Kc1rDC,Wd6rDD,MAAA,Kc7rDC,WdgsDD,MAAA,achsDC,WdmsDD,MAAA,acnsDC,UdssDD,MAAA,IctsDC,UdysDD,MAAA,aczsDC,Ud4sDD,MAAA,ac5sDC,Ud+sDD,MAAA,Ic/sDC,UdktDD,MAAA,acltDC,UdqtDD,MAAA,acrtDC,UdwtDD,MAAA,IcxtDC,Ud2tDD,MAAA,ac5sDC,Ud+sDD,MAAA,Yc/sDC,gBdktDD,MAAA,KcltDC,gBdqtDD,MAAA,acrtDC,gBdwtDD,MAAA,acxtDC,ed2tDD,MAAA,Ic3tDC,ed8tDD,MAAA,ac9tDC,ediuDD,MAAA,acjuDC,edouDD,MAAA,IcpuDC,eduuDD,MAAA,acvuDC,ed0uDD,MAAA,ac1uDC,ed6uDD,MAAA,Ic7uDC,edgvDD,MAAA,ac3uDC,ed8uDD,MAAA,Yc7vDC,edgwDD,MAAA,KchwDC,gBdmwDD,KAAA,KcnwDC,gBdswDD,KAAA,actwDC,gBdywDD,KAAA,aczwDC,ed4wDD,KAAA,Ic5wDC,ed+wDD,KAAA,ac/wDC,edkxDD,KAAA,aclxDC,edqxDD,KAAA,IcrxDC,edwxDD,KAAA,acxxDC,ed2xDD,KAAA,ac3xDC,ed8xDD,KAAA,Ic9xDC,ediyDD,KAAA,ac5xDC,ed+xDD,KAAA,YchxDC,edmxDD,KAAA,KcnxDC,kBdsxDD,YAAA,KctxDC,kBdyxDD,YAAA,aczxDC,kBd4xDD,YAAA,ac5xDC,iBd+xDD,YAAA,Ic/xDC,iBdkyDD,YAAA,aclyDC,iBdqyDD,YAAA,acryDC,iBdwyDD,YAAA,IcxyDC,iBd2yDD,YAAA,ac3yDC,iBd8yDD,YAAA,ac9yDC,iBdizDD,YAAA,IcjzDC,iBdozDD,YAAA,acpzDC,iBduzDD,YAAA,YY9yDD,iBE3CE,YAAA,GAQF,yBACE,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,Udw1DD,MAAA,Kcx1DC,Wd21DD,MAAA,Kc31DC,Wd81DD,MAAA,ac91DC,Wdi2DD,MAAA,acj2DC,Udo2DD,MAAA,Icp2DC,Udu2DD,MAAA,acv2DC,Ud02DD,MAAA,ac12DC,Ud62DD,MAAA,Ic72DC,Udg3DD,MAAA,ach3DC,Udm3DD,MAAA,acn3DC,Uds3DD,MAAA,Ict3DC,Udy3DD,MAAA,ac12DC,Ud62DD,MAAA,Yc72DC,gBdg3DD,MAAA,Kch3DC,gBdm3DD,MAAA,acn3DC,gBds3DD,MAAA,act3DC,edy3DD,MAAA,Icz3DC,ed43DD,MAAA,ac53DC,ed+3DD,MAAA,ac/3DC,edk4DD,MAAA,Icl4DC,edq4DD,MAAA,acr4DC,edw4DD,MAAA,acx4DC,ed24DD,MAAA,Ic34DC,ed84DD,MAAA,acz4DC,ed44DD,MAAA,Yc35DC,ed85DD,MAAA,Kc95DC,gBdi6DD,KAAA,Kcj6DC,gBdo6DD,KAAA,acp6DC,gBdu6DD,KAAA,acv6DC,ed06DD,KAAA,Ic16DC,ed66DD,KAAA,ac76DC,edg7DD,KAAA,ach7DC,edm7DD,KAAA,Icn7DC,eds7DD,KAAA,act7DC,edy7DD,KAAA,acz7DC,ed47DD,KAAA,Ic57DC,ed+7DD,KAAA,ac17DC,ed67DD,KAAA,Yc96DC,edi7DD,KAAA,Kcj7DC,kBdo7DD,YAAA,Kcp7DC,kBdu7DD,YAAA,acv7DC,kBd07DD,YAAA,ac17DC,iBd67DD,YAAA,Ic77DC,iBdg8DD,YAAA,ach8DC,iBdm8DD,YAAA,acn8DC,iBds8DD,YAAA,Ict8DC,iBdy8DD,YAAA,acz8DC,iBd48DD,YAAA,ac58DC,iBd+8DD,YAAA,Ic/8DC,iBdk9DD,YAAA,acl9DC,iBdq9DD,YAAA,YYz8DD,iBE9CE,YAAA,GAQF,0BACE,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,Uds/DD,MAAA,Kct/DC,Wdy/DD,MAAA,Kcz/DC,Wd4/DD,MAAA,ac5/DC,Wd+/DD,MAAA,ac//DC,UdkgED,MAAA,IclgEC,UdqgED,MAAA,acrgEC,UdwgED,MAAA,acxgEC,Ud2gED,MAAA,Ic3gEC,Ud8gED,MAAA,ac9gEC,UdihED,MAAA,acjhEC,UdohED,MAAA,IcphEC,UduhED,MAAA,acxgEC,Ud2gED,MAAA,Yc3gEC,gBd8gED,MAAA,Kc9gEC,gBdihED,MAAA,acjhEC,gBdohED,MAAA,acphEC,eduhED,MAAA,IcvhEC,ed0hED,MAAA,ac1hEC,ed6hED,MAAA,ac7hEC,edgiED,MAAA,IchiEC,edmiED,MAAA,acniEC,edsiED,MAAA,actiEC,edyiED,MAAA,IcziEC,ed4iED,MAAA,acviEC,ed0iED,MAAA,YczjEC,ed4jED,MAAA,Kc5jEC,gBd+jED,KAAA,Kc/jEC,gBdkkED,KAAA,aclkEC,gBdqkED,KAAA,acrkEC,edwkED,KAAA,IcxkEC,ed2kED,KAAA,ac3kEC,ed8kED,KAAA,ac9kEC,edilED,KAAA,IcjlEC,edolED,KAAA,acplEC,edulED,KAAA,acvlEC,ed0lED,KAAA,Ic1lEC,ed6lED,KAAA,acxlEC,ed2lED,KAAA,Yc5kEC,ed+kED,KAAA,Kc/kEC,kBdklED,YAAA,KcllEC,kBdqlED,YAAA,acrlEC,kBdwlED,YAAA,acxlEC,iBd2lED,YAAA,Ic3lEC,iBd8lED,YAAA,ac9lEC,iBdimED,YAAA,acjmEC,iBdomED,YAAA,IcpmEC,iBdumED,YAAA,acvmEC,iBd0mED,YAAA,ac1mEC,iBd6mED,YAAA,Ic7mEC,iBdgnED,YAAA,achnEC,iBdmnED,YAAA,YetrED,iBACA,YAAA,GAGA,MACA,iBAAA,YAEA,QfyrED,YAAA,IevrEC,eAAgB,IAChB,MAAA,KfyrED,WAAA,KelrEC,GACA,WAAA,KfsrED,OexrEC,MAAO,KdmsEP,UAAW,KACX,cAAe,KcvrET,mBd0rER,mBczrEQ,mBAHA,mBACA,mBd0rER,mBDHC,QAAA,IensEC,YAAa,WAoBX,eAAA,IACA,WAAA,IAAA,MAAA,KArBJ,mBdktEE,eAAgB,OAChB,cAAe,IAAI,MAAM,KDJ1B,uCCMD,uCcrtEA,wCdstEA,wCclrEI,2CANI,2CforEP,WAAA,EezqEG,mBf4qEH,WAAA,IAAA,MAAA,KCWD,cACE,iBAAkB,Kc/pEpB,6BdkqEA,6BcjqEE,6BAZM,6BfsqEP,6BCMD,6BDHC,QAAA,ICWD,gBACE,OAAQ,IAAI,MAAM,Kc1qEpB,4Bd6qEA,4Bc7qEA,4BAQQ,4Bf8pEP,4BCMD,4Bc7pEM,OAAA,IAAA,MAAA,KAYF,4BAFJ,4BfopEC,oBAAA,IevoEG,yCf0oEH,iBAAA,QehoEC,4BACA,iBAAA,QfooED,uBe9nEG,SAAA,OdyoEF,QAAS,acxoEL,MAAA,KAEA,sBfioEL,sBgB7wEC,SAAA,OfwxEA,QAAS,WACT,MAAO,KAST,0BerxEE,0Bf+wEF,0BAGA,0BexxEM,0BAMJ,0BfgxEF,0BAGA,0BACA,0BDNC,0BCAD,0BAGA,0BASE,iBAAkB,QDLnB,sCgBlyEC,sCAAA,oCfyyEF,sCetxEM,sCf2xEJ,iBAAkB,QASpB,2Be1yEE,2BfoyEF,2BAGA,2Be7yEM,2BAMJ,2BfqyEF,2BAGA,2BACA,2BDNC,2BCAD,2BAGA,2BASE,iBAAkB,QDLnB,uCgBvzEC,uCAAA,qCf8zEF,uCe3yEM,uCfgzEJ,iBAAkB,QASpB,wBe/zEE,wBfyzEF,wBAGA,wBel0EM,wBAMJ,wBf0zEF,wBAGA,wBACA,wBDNC,wBCAD,wBAGA,wBASE,iBAAkB,QDLnB,oCgB50EC,oCAAA,kCfm1EF,oCeh0EM,oCfq0EJ,iBAAkB,QASpB,2Bep1EE,2Bf80EF,2BAGA,2Bev1EM,2BAMJ,2Bf+0EF,2BAGA,2BACA,2BDNC,2BCAD,2BAGA,2BASE,iBAAkB,QDLnB,uCgBj2EC,uCAAA,qCfw2EF,uCer1EM,uCf01EJ,iBAAkB,QASpB,0Bez2EE,0Bfm2EF,0BAGA,0Be52EM,0BAMJ,0Bfo2EF,0BAGA,0BACA,0BDNC,0BCAD,0BAGA,0BASE,iBAAkB,QDLnB,sCehtEC,sCADF,oCdwtEA,sCe12EM,sCDoJJ,iBAAA,QA6DF,kBACE,WAAY,KA3DV,WAAA,KAEA,oCACA,kBACA,MAAA,KfotED,cAAA,Ke7pEC,WAAY,OAnDV,mBAAA,yBfmtEH,OAAA,IAAA,MAAA,KCWD,yBACE,cAAe,Ec5qEjB,qCd+qEA,qCcjtEI,qCARM,qCfktET,qCCMD,qCDHC,YAAA,OCWD,kCACE,OAAQ,EcvrEV,0Dd0rEA,0Dc1rEA,0DAzBU,0Df4sET,0DCMD,0DAME,YAAa,Ec/rEf,yDdksEA,yDclsEA,yDArBU,yDfgtET,yDCMD,yDAME,aAAc,EDLjB,yDe1sEW,yDEzNV,yDjBk6EC,yDiBj6ED,cAAA,GAMA,SjBk6ED,UAAA,EiB/5EC,QAAS,EACT,OAAA,EACA,OAAA,EAEA,OACA,QAAA,MACA,MAAA,KACA,QAAA,EACA,cAAA,KACA,UAAA,KjBi6ED,YAAA,QiB95EC,MAAO,KACP,OAAA,EACA,cAAA,IAAA,MAAA,QAEA,MjBg6ED,QAAA,aiBr5EC,UAAW,Kb4BX,cAAA,IACG,YAAA,IJ63EJ,mBiBr5EC,mBAAoB,WhBg6EjB,gBAAiB,WgB95EpB,WAAA,WjBy5ED,qBiBv5EC,kBAGA,OAAQ,IAAI,EAAE,EACd,WAAA,MjBs5ED,YAAA,OiBj5EC,iBACA,QAAA,MAIF,kBhB25EE,QAAS,MgBz5ET,MAAA,KAIF,iBAAA,ahB05EE,OAAQ,KI99ER,uBY2EF,2BjB64EC,wBiB54EC,QAAA,IAAA,KAAA,yBACA,eAAA,KAEA,OACA,QAAA,MjB+4ED,YAAA,IiBr3EC,UAAW,KACX,YAAA,WACA,MAAA,KAEA,cACA,QAAA,MACA,MAAA,KACA,OAAA,KACA,QAAA,IAAA,KACA,UAAA,KACA,YAAA,WACA,MAAA,KbxDA,iBAAA,KACQ,iBAAA,KAyHR,OAAA,IAAA,MAAA,KACK,cAAA,IACG,mBAAA,MAAA,EAAA,IAAA,IAAA,iBJwzET,WAAA,MAAA,EAAA,IAAA,IAAA,iBkBh8EC,mBAAA,aAAA,YAAA,KAAA,mBAAA,YAAA,KACE,cAAA,aAAA,YAAA,KAAA,WAAA,YAAA,KACA,WAAA,aAAA,YAAA,KAAA,WAAA,YAAA,KdWM,oBJy7ET,aAAA,QIx5EC,QAAA,EACE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,qBACA,WAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,qBAEF,gCAA0B,MAAA,KJ25E3B,QAAA,EI15EiC,oCJ65EjC,MAAA,KiBh4EG,yCACA,MAAA,KAQF,0BhBs4EA,iBAAkB,YAClB,OAAQ,EgBn4EN,wBjB63EH,wBiB13EC,iChBq4EA,iBAAkB,KgBn4EhB,QAAA,EAIF,wBACE,iCjB03EH,OAAA,YiB72EC,sBjBg3ED,OAAA,KiB91EG,mBhB02EF,mBAAoB,KAEtB,qDgB32EM,8BjBo2EH,8BiBj2EC,wCAAA,+BhB62EA,YAAa,KgB32EX,iCjBy2EH,iCiBt2EC,2CAAA,kChB02EF,0BACA,0BACA,oCACA,2BAKE,YAAa,KgBh3EX,iCjB82EH,iCACF,2CiBp2EC,kChBu2EA,0BACA,0BACA,oCACA,2BgBz2EA,YAAA,MhBi3EF,YgBv2EE,cAAA,KAGA,UADA,OjBi2ED,SAAA,SiBr2EC,QAAS,MhBg3ET,WAAY,KgBx2EV,cAAA,KAGA,gBADA,aAEA,WAAA,KjBi2EH,aAAA,KiB91EC,cAAe,EhBy2Ef,YAAa,IACb,OAAQ,QgBp2ER,+BjBg2ED,sCiBl2EC,yBACA,gCAIA,SAAU,ShBw2EV,WAAY,MgBt2EZ,YAAA,MAIF,oBAAA,cAEE,WAAA,KAGA,iBADA,cAEA,SAAA,SACA,QAAA,aACA,aAAA,KjB61ED,cAAA,EiB31EC,YAAa,IhBs2Eb,eAAgB,OgBp2EhB,OAAA,QAUA,kCjBo1ED,4BCWC,WAAY,EACZ,YAAa,KgBv1Eb,wCAAA,qCjBm1ED,8BCOD,+BgBh2EI,2BhB+1EJ,4BAME,OAAQ,YDNT,0BiBv1EG,uBAMF,oCAAA,iChB61EA,OAAQ,YDNT,yBiBp1EK,sBAaJ,mCAFF,gCAGE,OAAA,YAGA,qBjBy0ED,WAAA,KiBv0EC,YAAA,IhBk1EA,eAAgB,IgBh1Ed,cAAA,EjB00EH,8BiB5zED,8BCnQE,cAAA,EACA,aAAA,EAEA,UACA,OAAA,KlBkkFD,QAAA,IAAA,KkBhkFC,UAAA,KACE,YAAA,IACA,cAAA,IAGF,gBjB0kFA,OAAQ,KiBxkFN,YAAA,KD2PA,0BAFJ,kBAGI,OAAA,KAEA,6BACA,OAAA,KjBy0EH,QAAA,IAAA,KiB/0EC,UAAW,KAST,YAAA,IACA,cAAA,IAVJ,mChB81EE,OAAQ,KgBh1EN,YAAA,KAGA,6CAjBJ,qCAkBI,OAAA,KAEA,oCACA,OAAA,KjBy0EH,WAAA,KiBr0EC,QAAS,IAAI,KC/Rb,UAAA,KACA,YAAA,IAEA,UACA,OAAA,KlBumFD,QAAA,KAAA,KkBrmFC,UAAA,KACE,YAAA,UACA,cAAA,IAGF,gBjB+mFA,OAAQ,KiB7mFN,YAAA,KDuRA,0BAFJ,kBAGI,OAAA,KAEA,6BACA,OAAA,KjBk1EH,QAAA,KAAA,KiBx1EC,UAAW,KAST,YAAA,UACA,cAAA,IAVJ,mChBu2EE,OAAQ,KgBz1EN,YAAA,KAGA,6CAjBJ,qCAkBI,OAAA,KAEA,oCACA,OAAA,KjBk1EH,WAAA,KiBz0EC,QAAS,KAAK,KAEd,UAAA,KjB00ED,YAAA,UiBt0EG,cjBy0EH,SAAA,SiBp0EC,4BACA,cAAA,OAEA,uBACA,SAAA,SACA,IAAA,EACA,MAAA,EACA,QAAA,EACA,QAAA,MACA,MAAA,KjBu0ED,OAAA,KiBr0EC,YAAa,KhBg1Eb,WAAY,OACZ,eAAgB,KDLjB,oDiBv0EC,uCADA,iCAGA,MAAO,KhBg1EP,OAAQ,KACR,YAAa,KDLd,oDiBv0EC,uCADA,iCAKA,MAAO,KhB80EP,OAAQ,KACR,YAAa,KAKf,uBAEA,8BAJA,4BADA,yBAEA,oBAEA,2BDNC,4BkBruFG,mCAJA,yBD0ZJ,gCbvWE,MAAA,QJ2rFD,2BkBxuFG,aAAA,QACE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBd4CJ,WAAA,MAAA,EAAA,IAAA,IAAA,iBJgsFD,iCiBz1EC,aAAc,QC5YZ,mBAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QACA,WAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QlByuFH,gCiB91EC,MAAO,QCtYL,iBAAA,QlBuuFH,aAAA,QCWD,oCACE,MAAO,QAKT,uBAEA,8BAJA,4BADA,yBAEA,oBAEA,2BDNC,4BkBnwFG,mCAJA,yBD6ZJ,gCb1WE,MAAA,QJytFD,2BkBtwFG,aAAA,QACE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBd4CJ,WAAA,MAAA,EAAA,IAAA,IAAA,iBJ8tFD,iCiBp3EC,aAAc,QC/YZ,mBAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QACA,WAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QlBuwFH,gCiBz3EC,MAAO,QCzYL,iBAAA,QlBqwFH,aAAA,QCWD,oCACE,MAAO,QAKT,qBAEA,4BAJA,0BADA,uBAEA,kBAEA,yBDNC,0BkBjyFG,iCAJA,uBDgaJ,8Bb7WE,MAAA,QJuvFD,yBkBpyFG,aAAA,QACE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBd4CJ,WAAA,MAAA,EAAA,IAAA,IAAA,iBJ4vFD,+BiB/4EC,aAAc,QClZZ,mBAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QACA,WAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QlBqyFH,8BiBp5EC,MAAO,QC5YL,iBAAA,QlBmyFH,aAAA,QiB/4EG,kCjBk5EH,MAAA,QiB/4EG,2CjBk5EH,IAAA,KiBv4EC,mDACA,IAAA,EAEA,YjB04ED,QAAA,MiBvzEC,WAAY,IAwEZ,cAAe,KAtIX,MAAA,QAEA,yBjBy3EH,yBiBrvEC,QAAS,aA/HP,cAAA,EACA,eAAA,OjBw3EH,2BiB1vEC,QAAS,aAxHP,MAAA,KjBq3EH,eAAA,OiBj3EG,kCACA,QAAA,aAmHJ,0BhB4wEE,QAAS,aACT,eAAgB,OgBr3Ed,wCjB82EH,6CiBtwED,2CjBywEC,MAAA,KiB72EG,wCACA,MAAA,KAmGJ,4BhBwxEE,cAAe,EgBp3Eb,eAAA,OAGA,uBADA,oBjB82EH,QAAA,aiBpxEC,WAAY,EhB+xEZ,cAAe,EgBr3EX,eAAA,OAsFN,6BAAA,0BAjFI,aAAA,EAiFJ,4CjB6xEC,sCiBx2EG,SAAA,SjB22EH,YAAA,EiBh2ED,kDhB42EE,IAAK,GgBl2EL,2BjB+1EH,kCiBh2EG,wBAEA,+BAXF,YAAa,IhBo3Eb,WAAY,EgBn2EV,cAAA,EJviBF,2BIshBF,wBJrhBE,WAAA,KI4jBA,6BAyBA,aAAc,MAnCV,YAAA,MAEA,yBjBw1EH,gCACF,YAAA,IiBx3EG,cAAe,EAwCf,WAAA,OAwBJ,sDAdQ,MAAA,KjB80EL,yBACF,+CiBn0EC,YAAA,KAEE,UAAW,MjBs0EZ,yBACF,+CmBp6FG,YAAa,IACf,UAAA,MAGA,KACA,QAAA,aACA,QAAA,IAAA,KAAA,cAAA,EACA,UAAA,KACA,YAAA,IACA,YAAA,WACA,WAAA,OC0CA,YAAA,OACA,eAAA,OACA,iBAAA,aACA,aAAA,ahB+JA,OAAA,QACG,oBAAA,KACC,iBAAA,KACI,gBAAA,KJ+tFT,YAAA,KmBv6FG,iBAAA,KlBm7FF,OAAQ,IAAI,MAAM,YAClB,cAAe,IkB96Ff,kBdzBA,kBACA,WLk8FD,kBCOD,kBADA,WAME,QAAS,IAAI,KAAK,yBAClB,eAAgB,KkBh7FhB,WnBy6FD,WmB56FG,WlBw7FF,MAAO,KkBn7FL,gBAAA,Kf6BM,YADR,YJk5FD,iBAAA,KmBz6FC,QAAA,ElBq7FA,mBAAoB,MAAM,EAAE,IAAI,IAAI,iBAC5B,WAAY,MAAM,EAAE,IAAI,IAAI,iBoBh+FpC,cAGA,ejB8DA,wBACQ,OAAA,YJ05FT,OAAA,kBmBz6FG,mBAAA,KlBq7FM,WAAY,KkBn7FhB,QAAA,IASN,eC3DE,yBACA,eAAA,KpBi+FD,aoB99FC,MAAA,KnB0+FA,iBAAkB,KmBx+FhB,aAAA,KpBk+FH,mBoBh+FO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpBi+FH,mBoB99FC,MAAA,KnB0+FA,iBAAkB,QAClB,aAAc,QmBt+FR,oBADJ,oBpBi+FH,mCoB99FG,MAAA,KnB0+FF,iBAAkB,QAClB,aAAc,QmBt+FN,0BnB4+FV,0BAHA,0BmB1+FM,0BnB4+FN,0BAHA,0BDFC,yCoBx+FK,yCnB4+FN,yCmBv+FE,MAAA,KnB++FA,iBAAkB,QAClB,aAAc,QmBx+FZ,oBpBg+FH,oBoBh+FG,mCnB6+FF,iBAAkB,KmBz+FV,4BnB8+FV,4BAHA,4BDHC,6BCOD,6BAHA,6BkB39FA,sCClBM,sCnB8+FN,sCmBx+FI,iBAAA,KACA,aAAA,KDcJ,oBC9DE,MAAA,KACA,iBAAA,KpB0hGD,aoBvhGC,MAAA,KnBmiGA,iBAAkB,QmBjiGhB,aAAA,QpB2hGH,mBoBzhGO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpB0hGH,mBoBvhGC,MAAA,KnBmiGA,iBAAkB,QAClB,aAAc,QmB/hGR,oBADJ,oBpB0hGH,mCoBvhGG,MAAA,KnBmiGF,iBAAkB,QAClB,aAAc,QmB/hGN,0BnBqiGV,0BAHA,0BmBniGM,0BnBqiGN,0BAHA,0BDFC,yCoBjiGK,yCnBqiGN,yCmBhiGE,MAAA,KnBwiGA,iBAAkB,QAClB,aAAc,QmBjiGZ,oBpByhGH,oBoBzhGG,mCnBsiGF,iBAAkB,KmBliGV,4BnBuiGV,4BAHA,4BDHC,6BCOD,6BAHA,6BkBjhGA,sCCrBM,sCnBuiGN,sCmBjiGI,iBAAA,QACA,aAAA,QDkBJ,oBClEE,MAAA,QACA,iBAAA,KpBmlGD,aoBhlGC,MAAA,KnB4lGA,iBAAkB,QmB1lGhB,aAAA,QpBolGH,mBoBllGO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpBmlGH,mBoBhlGC,MAAA,KnB4lGA,iBAAkB,QAClB,aAAc,QmBxlGR,oBADJ,oBpBmlGH,mCoBhlGG,MAAA,KnB4lGF,iBAAkB,QAClB,aAAc,QmBxlGN,0BnB8lGV,0BAHA,0BmB5lGM,0BnB8lGN,0BAHA,0BDFC,yCoB1lGK,yCnB8lGN,yCmBzlGE,MAAA,KnBimGA,iBAAkB,QAClB,aAAc,QmB1lGZ,oBpBklGH,oBoBllGG,mCnB+lGF,iBAAkB,KmB3lGV,4BnBgmGV,4BAHA,4BDHC,6BCOD,6BAHA,6BkBtkGA,sCCzBM,sCnBgmGN,sCmB1lGI,iBAAA,QACA,aAAA,QDsBJ,oBCtEE,MAAA,QACA,iBAAA,KpB4oGD,UoBzoGC,MAAA,KnBqpGA,iBAAkB,QmBnpGhB,aAAA,QpB6oGH,gBoB3oGO,gBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpB4oGH,gBoBzoGC,MAAA,KnBqpGA,iBAAkB,QAClB,aAAc,QmBjpGR,iBADJ,iBpB4oGH,gCoBzoGG,MAAA,KnBqpGF,iBAAkB,QAClB,aAAc,QmBjpGN,uBnBupGV,uBAHA,uBmBrpGM,uBnBupGN,uBAHA,uBDFC,sCoBnpGK,sCnBupGN,sCmBlpGE,MAAA,KnB0pGA,iBAAkB,QAClB,aAAc,QmBnpGZ,iBpB2oGH,iBoB3oGG,gCnBwpGF,iBAAkB,KmBppGV,yBnBypGV,yBAHA,yBDHC,0BCOD,0BAHA,0BkB3nGA,mCC7BM,mCnBypGN,mCmBnpGI,iBAAA,QACA,aAAA,QD0BJ,iBC1EE,MAAA,QACA,iBAAA,KpBqsGD,aoBlsGC,MAAA,KnB8sGA,iBAAkB,QmB5sGhB,aAAA,QpBssGH,mBoBpsGO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpBqsGH,mBoBlsGC,MAAA,KnB8sGA,iBAAkB,QAClB,aAAc,QmB1sGR,oBADJ,oBpBqsGH,mCoBlsGG,MAAA,KnB8sGF,iBAAkB,QAClB,aAAc,QmB1sGN,0BnBgtGV,0BAHA,0BmB9sGM,0BnBgtGN,0BAHA,0BDFC,yCoB5sGK,yCnBgtGN,yCmB3sGE,MAAA,KnBmtGA,iBAAkB,QAClB,aAAc,QmB5sGZ,oBpBosGH,oBoBpsGG,mCnBitGF,iBAAkB,KmB7sGV,4BnBktGV,4BAHA,4BDHC,6BCOD,6BAHA,6BkBhrGA,sCCjCM,sCnBktGN,sCmB5sGI,iBAAA,QACA,aAAA,QD8BJ,oBC9EE,MAAA,QACA,iBAAA,KpB8vGD,YoB3vGC,MAAA,KnBuwGA,iBAAkB,QmBrwGhB,aAAA,QpB+vGH,kBoB7vGO,kBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpB8vGH,kBoB3vGC,MAAA,KnBuwGA,iBAAkB,QAClB,aAAc,QmBnwGR,mBADJ,mBpB8vGH,kCoB3vGG,MAAA,KnBuwGF,iBAAkB,QAClB,aAAc,QmBnwGN,yBnBywGV,yBAHA,yBmBvwGM,yBnBywGN,yBAHA,yBDFC,wCoBrwGK,wCnBywGN,wCmBpwGE,MAAA,KnB4wGA,iBAAkB,QAClB,aAAc,QmBrwGZ,mBpB6vGH,mBoB7vGG,kCnB0wGF,iBAAkB,KmBtwGV,2BnB2wGV,2BAHA,2BDHC,4BCOD,4BAHA,4BkBruGA,qCCrCM,qCnB2wGN,qCmBrwGI,iBAAA,QACA,aAAA,QDuCJ,mBACE,MAAA,QACA,iBAAA,KnB+tGD,UmB5tGC,YAAA,IlBwuGA,MAAO,QACP,cAAe,EAEjB,UGzwGE,iBemCE,iBflCM,oBJkwGT,6BmB7tGC,iBAAA,YlByuGA,mBAAoB,KACZ,WAAY,KkBtuGlB,UAEF,iBAAA,gBnB6tGD,gBmB3tGG,aAAA,YnBiuGH,gBmB/tGG,gBAIA,MAAA,QlBuuGF,gBAAiB,UACjB,iBAAkB,YDNnB,0BmBhuGK,0BAUN,mCATM,mClB2uGJ,MAAO,KmB1yGP,gBAAA,KAGA,mBADA,QpBmyGD,QAAA,KAAA,KmBztGC,UAAW,KlBquGX,YAAa,UmBjzGb,cAAA,IAGA,mBADA,QpB0yGD,QAAA,IAAA,KmB5tGC,UAAW,KlBwuGX,YAAa,ImBxzGb,cAAA,IAGA,mBADA,QpBizGD,QAAA,IAAA,ImB3tGC,UAAW,KACX,YAAA,IACA,cAAA,IAIF,WACE,QAAA,MnB2tGD,MAAA,KCYD,sBACE,WAAY,IqBz3GZ,6BADF,4BtBk3GC,6BI7rGC,MAAA,KAEQ,MJisGT,QAAA,EsBr3GC,mBAAA,QAAA,KAAA,OACE,cAAA,QAAA,KAAA,OtBu3GH,WAAA,QAAA,KAAA,OsBl3GC,StBq3GD,QAAA,EsBn3Ga,UtBs3Gb,QAAA,KsBr3Ga,atBw3Gb,QAAA,MsBv3Ga,etB03Gb,QAAA,UsBt3GC,kBACA,QAAA,gBlBwKA,YACQ,SAAA,SAAA,OAAA,EAOR,SAAA,OACQ,mCAAA,KAAA,8BAAA,KAGR,2BAAA,KACQ,4BAAA,KAAA,uBAAA,KJ2sGT,oBAAA,KuBr5GC,4BAA6B,OAAQ,WACrC,uBAAA,OAAA,WACA,oBAAA,OAAA,WAEA,OACA,QAAA,aACA,MAAA,EACA,OAAA,EACA,YAAA,IACA,eAAA,OvBu5GD,WAAA,IAAA,OuBn5GC,WAAY,IAAI,QtBk6GhB,aAAc,IAAI,MAAM,YsBh6GxB,YAAA,IAAA,MAAA,YAKA,UADF,QvBo5GC,SAAA,SuB94GC,uBACA,QAAA,EAEA,eACA,SAAA,SACA,IAAA,KACA,KAAA,EACA,QAAA,KACA,QAAA,KACA,MAAA,KACA,UAAA,MACA,QAAA,IAAA,EACA,OAAA,IAAA,EAAA,EACA,UAAA,KACA,WAAA,KACA,WAAA,KnBsBA,iBAAA,KACQ,wBAAA,YmBrBR,gBAAA,YtB+5GA,OsB/5GA,IAAA,MAAA,KvBk5GD,OAAA,IAAA,MAAA,gBuB74GC,cAAA,IACE,mBAAA,EAAA,IAAA,KAAA,iBACA,WAAA,EAAA,IAAA,KAAA,iBAzBJ,0BCzBE,MAAA,EACA,KAAA,KAEA,wBxBo8GD,OAAA,IuB96GC,OAAQ,IAAI,EAmCV,SAAA,OACA,iBAAA,QAEA,oBACA,QAAA,MACA,QAAA,IAAA,KACA,MAAA,KvB84GH,YAAA,IuBx4GC,YAAA,WtBw5GA,MAAO,KsBt5GL,YAAA,OvB44GH,0BuB14GG,0BAMF,MAAA,QtBo5GA,gBAAiB,KACjB,iBAAkB,QsBj5GhB,yBAEA,+BADA,+BvBu4GH,MAAA,KuB73GC,gBAAA,KtB64GA,iBAAkB,QAClB,QAAS,EDZV,2BuB33GC,iCAAA,iCAEE,MAAA,KEzGF,iCF2GE,iCAEA,gBAAA,KvB63GH,OAAA,YuBx3GC,iBAAkB,YAGhB,iBAAA,KvBw3GH,OAAA,0DuBn3GG,qBvBs3GH,QAAA,MuB72GC,QACA,QAAA,EAQF,qBACE,MAAA,EACA,KAAA,KAIF,oBACE,MAAA,KACA,KAAA,EAEA,iBACA,QAAA,MACA,QAAA,IAAA,KvBw2GD,UAAA,KuBp2GC,YAAa,WACb,MAAA,KACA,YAAA,OAEA,mBACA,SAAA,MACA,IAAA,EvBs2GD,MAAA,EuBl2GC,OAAQ,EACR,KAAA,EACA,QAAA,IAQF,2BtB42GE,MAAO,EsBx2GL,KAAA,KAEA,eACA,sCvB41GH,QAAA,GuBn2GC,WAAY,EtBm3GZ,cAAe,IAAI,OsBx2GjB,cAAA,IAAA,QAEA,uBvB41GH,8CuBv0GC,IAAK,KAXL,OAAA,KApEA,cAAA,IvB25GC,yBuBv1GD,6BA1DA,MAAA,EACA,KAAA,KvBq5GD,kC0BpiHG,MAAO,KzBojHP,KAAM,GyBhjHR,W1BsiHD,oB0B1iHC,SAAU,SzB0jHV,QAAS,ayBpjHP,eAAA,OAGA,yB1BsiHH,gBCgBC,SAAU,SACV,MAAO,KyB7iHT,gC1BsiHC,gCCYD,+BAFA,+ByBhjHA,uBANM,uBzBujHN,sBAFA,sBAQE,QAAS,EyBljHP,qB1BuiHH,2B0BliHD,2BACE,iC1BoiHD,YAAA,KCgBD,aACE,YAAa,KDZd,kB0B1iHD,wBAAA,0BzB2jHE,MAAO,KDZR,kB0B/hHD,wBACE,0B1BiiHD,YAAA,I0B5hHC,yE1B+hHD,cAAA,E2BhlHC,4BACG,YAAA,EDsDL,mEzB6iHE,wBAAyB,E0B5lHzB,2BAAA,E3BilHD,6C0B5hHD,8CACE,uBAAA,E1B8hHD,0BAAA,E0B3hHC,sB1B8hHD,MAAA,KCgBD,8D0B/mHE,cAAA,E3BomHD,mE0B3hHD,oECjEE,wBAAA,EACG,2BAAA,EDqEL,oEzB0iHE,uBAAwB,EyBxiHxB,0BAAA,EAiBF,mCACE,iCACA,QAAA,EAEF,iCACE,cAAA,IACA,aAAA,IAKF,oCtB/CE,cAAA,KACQ,aAAA,KsBkDR,iCtBnDA,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBsByDV,0CACE,mBAAA,K1BugHD,WAAA,K0BngHC,YACA,YAAA,EAGF,eACE,aAAA,IAAA,IAAA,E1BqgHD,oBAAA,ECgBD,uBACE,aAAc,EAAE,IAAI,IyB1gHlB,yBACA,+BACA,oC1B+/GH,QAAA,M0BtgHC,MAAO,KAcH,MAAA,K1B2/GL,UAAA,KCgBD,oCACE,MAAO,KyBpgHL,8BACA,oC1By/GH,oC0Bp/GC,0CACE,WAAA,K1Bs/GH,YAAA,E2B/pHC,4DACC,cAAA,EAQA,sD3B4pHF,uBAAA,I0Bt/GC,wBAAA,IC/KA,2BAAA,EACC,0BAAA,EAQA,sD3BkqHF,uBAAA,E0Bv/GC,wBAAyB,EACzB,2BAAA,I1By/GD,0BAAA,ICgBD,uE0BtrHE,cAAA,E3B2qHD,4E0Bt/GD,6EC7LE,2BAAA,EACC,0BAAA,EDoMH,6EACE,uBAAA,EACA,wBAAA,EAEA,qB1Bo/GD,QAAA,M0Bx/GC,MAAO,KzBwgHP,aAAc,MyBjgHZ,gBAAA,SAEA,0B1Bq/GH,gC0B9/GC,QAAS,WAYP,MAAA,K1Bq/GH,MAAA,G0Bj/GG,qC1Bo/GH,MAAA,KCgBD,+CACE,KAAM,KyB7+GF,gDAFA,6C1Bs+GL,2D0Br+GK,wDEzOJ,SAAU,SACV,KAAA,cACA,eAAA,K5BitHD,a4B7sHC,SAAA,SACE,QAAA,MACA,gBAAA,S5BgtHH,0B4BxtHC,MAAO,KAeL,cAAA,EACA,aAAA,EAOA,2BACA,SAAA,S5BusHH,QAAA,E4BrsHG,MAAA,KACE,MAAA,K5BusHL,cAAA,ECgBD,iCACE,QAAS,EiBnrHT,8BACA,mCACA,sCACA,OAAA,KlBwqHD,QAAA,KAAA,KkBtqHC,UAAA,KjBsrHA,YAAa,UACb,cAAe,IiBrrHb,oClB0qHH,yCkBvqHC,4CjBurHA,OAAQ,KACR,YAAa,KDTd,8C4B/sHD,mDAAA,sD3B0tHA,sCACA,2CiBzrHI,8CjB8rHF,OAAQ,KiB1sHR,8BACA,mCACA,sCACA,OAAA,KlB+rHD,QAAA,IAAA,KkB7rHC,UAAA,KjB6sHA,YAAa,IACb,cAAe,IiB5sHb,oClBisHH,yCkB9rHC,4CjB8sHA,OAAQ,KACR,YAAa,KDTd,8C4B7tHD,mDAAA,sD3BwuHA,sCACA,2CiBhtHI,8CjBqtHF,OAAQ,K2BzuHR,2B5B6tHD,mB4B7tHC,iB3B8uHA,QAAS,W2BzuHX,8D5B6tHC,sD4B7tHD,oDAEE,cAAA,EAEA,mB5B+tHD,iB4B1tHC,MAAO,GACP,YAAA,OACA,eAAA,OAEA,mBACA,QAAA,IAAA,KACA,UAAA,KACA,YAAA,IACA,YAAA,EACA,MAAA,K5B4tHD,WAAA,O4BztHC,iBAAA,KACE,OAAA,IAAA,MAAA,KACA,cAAA,I5B4tHH,4B4BztHC,QAAA,IAAA,KACE,UAAA,KACA,cAAA,I5B4tHH,4B4B/uHC,QAAS,KAAK,K3B+vHd,UAAW,K2BruHT,cAAA,IAKJ,wCAAA,qC3BquHE,WAAY,EAEd,uCACA,+BACA,kC0B70HE,6CACG,8CC4GL,6D5BqtHC,wE4BptHC,wBAAA,E5ButHD,2BAAA,ECgBD,+BACE,aAAc,EAEhB,sCACA,8B2BhuHA,+D5BstHC,oDCWD,iC0Bl1HE,4CACG,6CCiHH,uBAAA,E5BwtHD,0BAAA,E4BltHC,8BAGA,YAAA,E5BotHD,iB4BxtHC,SAAU,SAUR,UAAA,E5BitHH,YAAA,O4B/sHK,sB5BktHL,SAAA,SCgBD,2BACE,YAAa,K2BxtHb,6BAAA,4B5B4sHD,4B4BzsHK,QAAA,EAGJ,kCAAA,wCAGI,aAAA,K5B4sHL,iC6B12HD,uCACE,QAAA,EACA,YAAA,K7B62HD,K6B/2HC,aAAc,EAOZ,cAAA,EACA,WAAA,KARJ,QAWM,SAAA,SACA,QAAA,M7B42HL,U6B12HK,SAAA,S5B03HJ,QAAS,M4Bx3HH,QAAA,KAAA,KAMJ,gB7Bu2HH,gB6Bt2HK,gBAAA,K7By2HL,iBAAA,KCgBD,mB4Br3HQ,MAAA,KAGA,yBADA,yB7B02HP,MAAA,K6Bl2HG,gBAAA,K5Bk3HF,OAAQ,YACR,iBAAkB,Y4B/2Hd,aAzCN,mB7B64HC,mBwBh5HC,iBAAA,KACA,aAAA,QAEA,kBxBm5HD,OAAA,I6Bn5HC,OAAQ,IAAI,EA0DV,SAAA,O7B41HH,iBAAA,Q6Bl1HC,c7Bq1HD,UAAA,K6Bn1HG,UAEA,cAAA,IAAA,MAAA,KALJ,aASM,MAAA,KACA,cAAA,KAEA,e7Bo1HL,aAAA,I6Bn1HK,YAAA,WACE,OAAA,IAAA,MAAA,Y7Bq1HP,cAAA,IAAA,IAAA,EAAA,ECgBD,qBACE,aAAc,KAAK,KAAK,K4B51HlB,sBAEA,4BADA,4BAEA,MAAA,K7Bi1HP,OAAA,Q6B50HC,iBAAA,KAqDA,OAAA,IAAA,MAAA,KA8BA,oBAAA,YAnFA,wBAwDE,MAAA,K7B2xHH,cAAA,E6BzxHK,2BACA,MAAA,KA3DJ,6BAgEE,cAAA,IACA,WAAA,OAYJ,iDA0DE,IAAK,KAjED,KAAA,K7B0xHH,yB6BztHD,2BA9DM,QAAA,W7B0xHL,MAAA,G6Bn2HD,6BAuFE,cAAA,GAvFF,6B5Bw3HA,aAAc,EACd,cAAe,IDZhB,kC6BtuHD,wCA3BA,wCATM,OAAA,IAAA,MAAA,K7B+wHH,yB6B3uHD,6B5B2vHE,cAAe,IAAI,MAAM,KACzB,cAAe,IAAI,IAAI,EAAE,EDZ1B,kC6B92HD,wC7B+2HD,wC6B72HG,oBAAA,MAIE,c7B+2HL,MAAA,K6B52HK,gB7B+2HL,cAAA,ICgBD,iBACE,YAAa,I4Bv3HP,uBAQR,6B7Bo2HC,6B6Bl2HG,MAAA,K7Bq2HH,iBAAA,Q6Bn2HK,gBACA,MAAA,KAYN,mBACE,WAAA,I7B41HD,YAAA,E6Bz1HG,e7B41HH,MAAA,K6B11HK,kBACA,MAAA,KAPN,oBAYI,cAAA,IACA,WAAA,OAYJ,wCA0DE,IAAK,KAjED,KAAA,K7B21HH,yB6B1xHD,kBA9DM,QAAA,W7B21HL,MAAA,G6Bl1HD,oBACA,cAAA,GAIE,oBACA,cAAA,EANJ,yB5B02HE,aAAc,EACd,cAAe,IDZhB,8B6B1yHD,oCA3BA,oCATM,OAAA,IAAA,MAAA,K7Bm1HH,yB6B/yHD,yB5B+zHE,cAAe,IAAI,MAAM,KACzB,cAAe,IAAI,IAAI,EAAE,EDZ1B,8B6Bx0HD,oC7By0HD,oC6Bv0HG,oBAAA,MAGA,uB7B00HH,QAAA,K6B/zHC,qBF3OA,QAAA,M3B+iID,yB8BxiIC,WAAY,KACZ,uBAAA,EACA,wBAAA,EAEA,Q9B0iID,SAAA,S8BliIC,WAAY,KA8nBZ,cAAe,KAhoBb,OAAA,IAAA,MAAA,Y9ByiIH,yB8BzhIC,QAgnBE,cAAe,K9B86GlB,yB8BjhIC,eACA,MAAA,MAGA,iBACA,cAAA,KAAA,aAAA,KAEA,WAAA,Q9BkhID,2BAAA,M8BhhIC,WAAA,IAAA,MAAA,YACE,mBAAA,MAAA,EAAA,IAAA,EAAA,qB9BkhIH,WAAA,MAAA,EAAA,IAAA,EAAA,qB8Bz7GD,oBArlBI,WAAA,KAEA,yBAAA,iB9BkhID,MAAA,K8BhhIC,WAAA,EACE,mBAAA,KACA,WAAA,KAEA,0B9BkhIH,QAAA,gB8B/gIC,OAAA,eACE,eAAA,E9BihIH,SAAA,kBCkBD,oBACE,WAAY,QDZf,sC8B/gIK,mC9B8gIH,oC8BzgIC,cAAe,E7B4hIf,aAAc,G6Bj+GlB,sCAnjBE,mC7ByhIA,WAAY,MDdX,4D8BngID,sC9BogID,mCCkBG,WAAY,O6B3gId,kCANE,gC9BsgIH,4B8BvgIG,0BAuiBF,aAAc,M7Bm/Gd,YAAa,MAEf,yBDZC,kC8B3gIK,gC9B0gIH,4B8B3gIG,0BAcF,aAAc,EAChB,YAAA,GAMF,mBA8gBE,QAAS,KAhhBP,aAAA,EAAA,EAAA,I9BkgIH,yB8B7/HC,mB7B+gIE,cAAe,G6B1gIjB,qBADA,kB9BggID,SAAA,M8Bz/HC,MAAO,EAggBP,KAAM,E7B4gHN,QAAS,KDdR,yB8B7/HD,qB9B8/HD,kB8B7/HC,cAAA,GAGF,kBACE,IAAA,EACA,aAAA,EAAA,EAAA,I9BigID,qB8B1/HC,OAAQ,EACR,cAAA,EACA,aAAA,IAAA,EAAA,EAEA,cACA,MAAA,K9B4/HD,OAAA,K8B1/HC,QAAA,KAAA,K7B4gIA,UAAW,K6B1gIT,YAAA,KAIA,oBAbJ,oB9BwgIC,gBAAA,K8Bv/HG,kB7B0gIF,QAAS,MDdR,yBACF,iC8Bh/HC,uCACA,YAAA,OAGA,eC9LA,SAAA,SACA,MAAA,MD+LA,QAAA,IAAA,KACA,WAAA,IACA,aAAA,KACA,cAAA,I9Bm/HD,iBAAA,Y8B/+HC,iBAAA,KACE,OAAA,IAAA,MAAA,Y9Bi/HH,cAAA,I8B5+HG,qBACA,QAAA,EAEA,yB9B++HH,QAAA,M8BrgIC,MAAO,KAyBL,OAAA,I9B++HH,cAAA,I8BpjHD,mCAvbI,WAAA,I9Bg/HH,yB8Bt+HC,eACA,QAAA,MAGE,YACA,OAAA,MAAA,M9By+HH,iB8B58HC,YAAA,KA2YA,eAAgB,KAjaZ,YAAA,KAEA,yBACA,iCACA,SAAA,OACA,MAAA,KACA,MAAA,KAAA,WAAA,E9Bs+HH,iBAAA,Y8B3kHC,OAAQ,E7B8lHR,mBAAoB,K6Bt/HhB,WAAA,KAGA,kDAqZN,sC9BklHC,QAAA,IAAA,KAAA,IAAA,KCmBD,sC6Bv/HQ,YAAA,KAmBR,4C9Bs9HD,4C8BvlHG,iBAAkB,M9B4lHnB,yB8B5lHD,YAtYI,MAAA,K9Bq+HH,OAAA,E8Bn+HK,eACA,MAAA,K9Bu+HP,iB8B39HG,YAAa,KACf,eAAA,MAGA,aACA,QAAA,KAAA,K1B9NA,WAAA,IACQ,aAAA,M2B/DR,cAAA,IACA,YAAA,M/B4vID,WAAA,IAAA,MAAA,YiBtuHC,cAAe,IAAI,MAAM,YAwEzB,mBAAoB,MAAM,EAAE,IAAI,EAAE,qBAAyB,EAAE,IAAI,EAAE,qBAtI/D,WAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,qBAEA,yBjBwyHH,yBiBpqHC,QAAS,aA/HP,cAAA,EACA,eAAA,OjBuyHH,2BiBzqHC,QAAS,aAxHP,MAAA,KjBoyHH,eAAA,OiBhyHG,kCACA,QAAA,aAmHJ,0BhBmsHE,QAAS,aACT,eAAgB,OgB5yHd,wCjB6xHH,6CiBrrHD,2CjBwrHC,MAAA,KiB5xHG,wCACA,MAAA,KAmGJ,4BhB+sHE,cAAe,EgB3yHb,eAAA,OAGA,uBADA,oBjB6xHH,QAAA,aiBnsHC,WAAY,EhBstHZ,cAAe,EgB5yHX,eAAA,OAsFN,6BAAA,0BAjFI,aAAA,EAiFJ,4CjB4sHC,sCiBvxHG,SAAA,SjB0xHH,YAAA,E8BngID,kDAmWE,IAAK,GAvWH,yBACE,yB9B8gIL,cAAA,I8B5/HD,oCAoVE,cAAe,GA1Vf,yBACA,aACA,MAAA,KACA,YAAA,E1BzPF,eAAA,EACQ,aAAA,EJmwIP,YAAA,EACF,OAAA,E8BngIG,mBAAoB,KACtB,WAAA,M9BugID,8B8BngIC,WAAY,EACZ,uBAAA,EHzUA,wBAAA,EAQA,mDACC,cAAA,E3By0IF,uBAAA,I8B//HC,wBAAyB,IChVzB,2BAAA,EACA,0BAAA,EDkVA,YCnVA,WAAA,IACA,cAAA,IDqVA,mBCtVA,WAAA,KACA,cAAA,KD+VF,mBChWE,WAAA,KACA,cAAA,KDuWF,aAsSE,WAAY,KA1SV,cAAA,KAEA,yB9B+/HD,aACF,MAAA,K8Bl+HG,aAAc,KAhBhB,YAAA,MACA,yBE5WA,aF8WE,MAAA,eAFF,cAKI,MAAA,gB9Bu/HH,aAAA,M8B7+HD,4BACA,aAAA,GADF,gBAKI,iBAAA,Q9Bg/HH,aAAA,QCmBD,8B6BhgIM,MAAA,KARN,oC9B0/HC,oC8B5+HG,MAAA,Q9B++HH,iBAAA,Y8B1+HK,6B9B6+HL,MAAA,KCmBD,iC6B5/HQ,MAAA,KAKF,uC9By+HL,uCCmBC,MAAO,KACP,iBAAkB,Y6Bz/HZ,sCAIF,4C9Bu+HL,4CCmBC,MAAO,KACP,iBAAkB,Q6Bv/HZ,wCAxCR,8C9BihIC,8C8Bn+HG,MAAA,K9Bs+HH,iBAAA,YCmBD,+B6Bt/HM,aAAA,KAGA,qCApDN,qC9B2hIC,iBAAA,KCmBD,yC6Bp/HI,iBAAA,KAOE,iCAAA,6B7Bk/HJ,aAAc,Q6B9+HR,oCAiCN,0C9B+7HD,0C8B3xHC,MAAO,KA7LC,iBAAA,QACA,yB7B8+HR,sD6B5+HU,MAAA,KAKF,4D9By9HP,4DCmBC,MAAO,KACP,iBAAkB,Y6Bz+HV,2DAIF,iE9Bu9HP,iECmBC,MAAO,KACP,iBAAkB,Q6Bv+HV,6D9B09HX,mEADE,mE8B1jIC,MAAO,KA8GP,iBAAA,aAEE,6B9Bi9HL,MAAA,K8B58HG,mC9B+8HH,MAAA,KCmBD,0B6B/9HM,MAAA,KAIA,gCAAA,gC7Bg+HJ,MAAO,K6Bt9HT,0CARQ,0CASN,mD9Bu8HD,mD8Bt8HC,MAAA,KAFF,gBAKI,iBAAA,K9B08HH,aAAA,QCmBD,8B6B19HM,MAAA,QARN,oC9Bo9HC,oC8Bt8HG,MAAA,K9By8HH,iBAAA,Y8Bp8HK,6B9Bu8HL,MAAA,QCmBD,iC6Bt9HQ,MAAA,QAKF,uC9Bm8HL,uCCmBC,MAAO,KACP,iBAAkB,Y6Bn9HZ,sCAIF,4C9Bi8HL,4CCmBC,MAAO,KACP,iBAAkB,Q6Bj9HZ,wCAxCR,8C9B2+HC,8C8B57HG,MAAA,K9B+7HH,iBAAA,YCmBD,+B6B/8HM,aAAA,KAGA,qCArDN,qC9Bq/HC,iBAAA,KCmBD,yC6B78HI,iBAAA,KAME,iCAAA,6B7B48HJ,aAAc,Q6Bx8HR,oCAuCN,0C9Bm5HD,0C8B33HC,MAAO,KAvDC,iBAAA,QAuDV,yBApDU,kE9Bs7HP,aAAA,Q8Bn7HO,0D9Bs7HP,iBAAA,QCmBD,sD6Bt8HU,MAAA,QAKF,4D9Bm7HP,4DCmBC,MAAO,KACP,iBAAkB,Y6Bn8HV,2DAIF,iE9Bi7HP,iECmBC,MAAO,KACP,iBAAkB,Q6Bj8HV,6D9Bo7HX,mEADE,mE8B1hIC,MAAO,KA+GP,iBAAA,aAEE,6B9Bg7HL,MAAA,Q8B36HG,mC9B86HH,MAAA,KCmBD,0B6B97HM,MAAA,QAIA,gCAAA,gC7B+7HJ,MAAO,KgCvkJT,0CH0oBQ,0CGzoBN,mDjCwjJD,mDiCvjJC,MAAA,KAEA,YACA,QAAA,IAAA,KjC2jJD,cAAA,KiChkJC,WAAY,KAQV,iBAAA,QjC2jJH,cAAA,IiCxjJK,eACA,QAAA,ajC4jJL,yBiCxkJC,QAAS,EAAE,IAkBT,MAAA,KjCyjJH,QAAA,SkC5kJC,oBACA,MAAA,KAEA,YlC+kJD,QAAA,akCnlJC,aAAc,EAOZ,OAAA,KAAA,ElC+kJH,cAAA,ICmBD,eiC/lJM,QAAA,OAEA,iBACA,oBACA,SAAA,SACA,MAAA,KACA,QAAA,IAAA,KACA,YAAA,KACA,YAAA,WlCglJL,MAAA,QkC9kJG,gBAAA,KjCimJF,iBAAkB,KiC9lJZ,OAAA,IAAA,MAAA,KPVH,6B3B2lJJ,gCkC7kJG,YAAA,EjCgmJF,uBAAwB,I0BvnJxB,0BAAA,I3BymJD,4BkCxkJG,+BjC2lJF,wBAAyB,IACzB,2BAA4B,IiCxlJxB,uBAFA,uBAGA,0BAFA,0BlC8kJL,QAAA,EkCtkJG,MAAA,QjCylJF,iBAAkB,KAClB,aAAc,KAEhB,sBiCvlJM,4BAFA,4BjC0lJN,yBiCvlJM,+BAFA,+BAGA,QAAA,ElC2kJL,MAAA,KkCloJC,OAAQ,QjCqpJR,iBAAkB,QAClB,aAAc,QiCnlJV,wBAEA,8BADA,8BjColJN,2BiCtlJM,iCjCulJN,iCDZC,MAAA,KkC/jJC,OAAQ,YjCklJR,iBAAkB,KkC7pJd,aAAA,KAEA,oBnC8oJL,uBmC5oJG,QAAA,KAAA,KlC+pJF,UAAW,K0B1pJX,YAAA,U3B4oJD,gCmC3oJG,mClC8pJF,uBAAwB,I0BvqJxB,0BAAA,I3BypJD,+BkC1kJD,kCjC6lJE,wBAAyB,IkC7qJrB,2BAAA,IAEA,oBnC8pJL,uBmC5pJG,QAAA,IAAA,KlC+qJF,UAAW,K0B1qJX,YAAA,I3B4pJD,gCmC3pJG,mClC8qJF,uBAAwB,I0BvrJxB,0BAAA,I3ByqJD,+BoC3qJD,kCACE,wBAAA,IACA,2BAAA,IAEA,OpC6qJD,aAAA,EoCjrJC,OAAQ,KAAK,EAOX,WAAA,OpC6qJH,WAAA,KCmBD,UmC7rJM,QAAA,OAEA,YACA,eACA,QAAA,apC8qJL,QAAA,IAAA,KoC5rJC,iBAAkB,KnC+sJlB,OAAQ,IAAI,MAAM,KmC5rJd,cAAA,KAnBN,kBpCisJC,kBCmBC,gBAAiB,KmCzrJb,iBAAA,KA3BN,eAAA,kBAkCM,MAAA,MAlCN,mBAAA,sBnC6tJE,MAAO,KmClrJH,mBAEA,yBADA,yBpCqqJL,sBqCltJC,MAAO,KACP,OAAA,YACA,iBAAA,KAEA,OACA,QAAA,OACA,QAAA,KAAA,KAAA,KACA,UAAA,IACA,YAAA,IACA,YAAA,EACA,MAAA,KrCotJD,WAAA,OqChtJG,YAAA,OpCmuJF,eAAgB,SoCjuJZ,cAAA,MrCotJL,cqCltJK,cAKJ,MAAA,KACE,gBAAA,KrC+sJH,OAAA,QqC1sJG,aACA,QAAA,KAOJ,YCtCE,SAAA,StC+uJD,IAAA,KCmBD,eqC7vJM,iBAAA,KALJ,2BD0CF,2BrC4sJC,iBAAA,QCmBD,eqCpwJM,iBAAA,QALJ,2BD8CF,2BrC+sJC,iBAAA,QCmBD,eqC3wJM,iBAAA,QALJ,2BDkDF,2BrCktJC,iBAAA,QCmBD,YqClxJM,iBAAA,QALJ,wBDsDF,wBrCqtJC,iBAAA,QCmBD,eqCzxJM,iBAAA,QALJ,2BD0DF,2BrCwtJC,iBAAA,QCmBD,cqChyJM,iBAAA,QCDJ,0BADF,0BAEE,iBAAA,QAEA,OACA,QAAA,aACA,UAAA,KACA,QAAA,IAAA,IACA,UAAA,KACA,YAAA,IACA,YAAA,EACA,MAAA,KACA,WAAA,OvCqxJD,YAAA,OuClxJC,eAAA,OACE,iBAAA,KvCoxJH,cAAA,KuC/wJG,aACA,QAAA,KAGF,YtCkyJA,SAAU,SsChyJR,IAAA,KAMA,0BvC4wJH,eCmBC,IAAK,EsC7xJD,QAAA,IAAA,IvCgxJL,cuC9wJK,cAKJ,MAAA,KtC4xJA,gBAAiB,KsC1xJf,OAAA,QvC4wJH,+BuCxwJC,4BACE,MAAA,QvC0wJH,iBAAA,KuCtwJG,wBvCywJH,MAAA,MuCrwJG,+BvCwwJH,aAAA,IwCj0JC,uBACA,YAAA,IAEA,WACA,YAAA,KxCo0JD,eAAA,KwCz0JC,cAAe,KvC41Jf,MAAO,QuCn1JL,iBAAA,KAIA,eAbJ,cAcI,MAAA,QxCo0JH,awCl1JC,cAAe,KAmBb,UAAA,KxCk0JH,YAAA,ICmBD,cuCh1JI,iBAAA,QAEA,sBxCi0JH,4BwC31JC,cAAe,KA8Bb,aAAA,KxCg0JH,cAAA,IwC7yJD,sBAfI,UAAA,KxCi0JD,oCwC9zJC,WvCi1JA,YAAa,KuC/0JX,eAAA,KxCi0JH,sBwCvzJD,4BvC00JE,cAAe,KuC90Jb,aAAA,KC5CJ,ezC42JD,cyC32JC,UAAA,MAGA,WACA,QAAA,MACA,QAAA,IACA,cAAA,KrCiLA,YAAA,WACK,iBAAA,KACG,OAAA,IAAA,MAAA,KJ8rJT,cAAA,IyCx3JC,mBAAoB,OAAO,IAAI,YxC24J1B,cAAe,OAAO,IAAI,YwC93J7B,WAAA,OAAA,IAAA,YAKF,iBzC22JD,eCmBC,aAAc,KACd,YAAa,KwCv3JX,mBA1BJ,kBzCk4JC,kByCv2JG,aAAA,QCzBJ,oBACE,QAAA,IACA,MAAA,KAEA,O1Cs4JD,QAAA,K0C14JC,cAAe,KAQb,OAAA,IAAA,MAAA,YAEA,cAAA,IAVJ,UAeI,WAAA,E1Ck4JH,MAAA,QCmBD,mByC/4JI,YAAA,IArBJ,SAyBI,U1C+3JH,cAAA,ECmBD,WyCx4JE,WAAA,IAFF,mBAAA,mBAMI,cAAA,KAEA,0BACA,0B1Cy3JH,SAAA,S0Cj3JC,IAAK,KCvDL,MAAA,MACA,MAAA,Q3C46JD,e0Ct3JC,MAAO,QClDL,iBAAA,Q3C26JH,aAAA,Q2Cx6JG,kB3C26JH,iBAAA,Q2Cn7JC,2BACA,MAAA,Q3Cu7JD,Y0C73JC,MAAO,QCtDL,iBAAA,Q3Cs7JH,aAAA,Q2Cn7JG,e3Cs7JH,iBAAA,Q2C97JC,wBACA,MAAA,Q3Ck8JD,e0Cp4JC,MAAO,QC1DL,iBAAA,Q3Ci8JH,aAAA,Q2C97JG,kB3Ci8JH,iBAAA,Q2Cz8JC,2BACA,MAAA,Q3C68JD,c0C34JC,MAAO,QC9DL,iBAAA,Q3C48JH,aAAA,Q2Cz8JG,iB3C48JH,iBAAA,Q4C78JC,0BAAQ,MAAA,QACR,wCAAQ,K5Cm9JP,oBAAA,KAAA,E4C/8JD,GACA,oBAAA,EAAA,GACA,mCAAQ,K5Cq9JP,oBAAA,KAAA,E4Cv9JD,GACA,oBAAA,EAAA,GACA,gCAAQ,K5Cq9JP,oBAAA,KAAA,E4C78JD,GACA,oBAAA,EAAA,GAGA,UACA,OAAA,KxCsCA,cAAA,KACQ,SAAA,OJ26JT,iBAAA,Q4C78JC,cAAe,IACf,mBAAA,MAAA,EAAA,IAAA,IAAA,eACA,WAAA,MAAA,EAAA,IAAA,IAAA,eAEA,cACA,MAAA,KACA,MAAA,EACA,OAAA,KACA,UAAA,KxCyBA,YAAA,KACQ,MAAA,KAyHR,WAAA,OACK,iBAAA,QACG,mBAAA,MAAA,EAAA,KAAA,EAAA,gBJ+zJT,WAAA,MAAA,EAAA,KAAA,EAAA,gB4C18JC,mBAAoB,MAAM,IAAI,K3Cq+JzB,cAAe,MAAM,IAAI,K4Cp+J5B,WAAA,MAAA,IAAA,KDEF,sBCAE,gCDAF,iBAAA,yK5C88JD,iBAAA,oK4Cv8JC,iBAAiB,iK3Cm+JjB,wBAAyB,KAAK,KG/gK9B,gBAAA,KAAA,KJy/JD,qBIv/JS,+BwCmDR,kBAAmB,qBAAqB,GAAG,OAAO,SErElD,aAAA,qBAAA,GAAA,OAAA,S9C4gKD,UAAA,qBAAA,GAAA,OAAA,S6Cz9JG,sBACA,iBAAA,Q7C69JH,wC4Cx8JC,iBAAkB,yKEzElB,iBAAA,oK9CohKD,iBAAA,iK6Cj+JG,mBACA,iBAAA,Q7Cq+JH,qC4C58JC,iBAAkB,yKE7ElB,iBAAA,oK9C4hKD,iBAAA,iK6Cz+JG,sBACA,iBAAA,Q7C6+JH,wC4Ch9JC,iBAAkB,yKEjFlB,iBAAA,oK9CoiKD,iBAAA,iK6Cj/JG,qBACA,iBAAA,Q7Cq/JH,uC+C5iKC,iBAAkB,yKAElB,iBAAA,oK/C6iKD,iBAAA,iK+C1iKG,O/C6iKH,WAAA,KC4BD,mB8CnkKE,WAAA,E/C4iKD,O+CxiKD,YACE,SAAA,O/C0iKD,KAAA,E+CtiKC,Y/CyiKD,MAAA,Q+CriKG,c/CwiKH,QAAA,MC4BD,4B8C9jKE,UAAA,KAGF,aAAA,mBAEE,aAAA,KAGF,YAAA,kB9C+jKE,cAAe,K8CxjKjB,YAHE,Y/CoiKD,a+ChiKC,QAAA,W/CmiKD,eAAA,I+C/hKC,c/CkiKD,eAAA,O+C7hKC,cACA,eAAA,OAMF,eACE,WAAA,EACA,cAAA,ICvDF,YAEE,aAAA,EACA,WAAA,KAQF,YACE,aAAA,EACA,cAAA,KAGA,iBACA,SAAA,SACA,QAAA,MhD6kKD,QAAA,KAAA,KgD1kKC,cAAA,KrB3BA,iBAAA,KACC,OAAA,IAAA,MAAA,KqB6BD,6BACE,uBAAA,IrBvBF,wBAAA,I3BsmKD,4BgDpkKC,cAAe,E/CgmKf,2BAA4B,I+C9lK5B,0BAAA,IAFF,kBAAA,uBAKI,MAAA,KAIF,2CAAA,gD/CgmKA,MAAO,K+C5lKL,wBAFA,wBhDykKH,6BgDxkKG,6BAKF,MAAO,KACP,gBAAA,KACA,iBAAA,QAKA,uB/C4lKA,MAAO,KACP,WAAY,K+CzlKV,0BhDmkKH,gCgDlkKG,gCALF,MAAA,K/CmmKA,OAAQ,YACR,iBAAkB,KDxBnB,mDgD5kKC,yDAAA,yD/CymKA,MAAO,QDxBR,gDgDhkKC,sDAAA,sD/C6lKA,MAAO,K+CzlKL,wBAEA,8BADA,8BhDmkKH,QAAA,EgDxkKC,MAAA,K/ComKA,iBAAkB,QAClB,aAAc,QAEhB,iDDpBC,wDCuBD,uDADA,uD+CzmKE,8DAYI,6D/C4lKN,uD+CxmKE,8D/C2mKF,6DAKE,MAAO,QDxBR,8CiD1qKG,oDADF,oDAEE,MAAA,QAEA,yBhDusKF,MAAO,QgDrsKH,iBAAA,QAFF,0BAAA,+BAKI,MAAA,QAGF,mDAAA,wDhDwsKJ,MAAO,QDtBR,gCiDhrKO,gCAGF,qCAFE,qChD2sKN,MAAO,QACP,iBAAkB,QAEpB,iCgDvsKQ,uCAFA,uChD0sKR,sCDtBC,4CiDnrKO,4CArBN,MAAA,KACE,iBAAA,QACA,aAAA,QAEA,sBhDouKF,MAAO,QgDluKH,iBAAA,QAFF,uBAAA,4BAKI,MAAA,QAGF,gDAAA,qDhDquKJ,MAAO,QDtBR,6BiD7sKO,6BAGF,kCAFE,kChDwuKN,MAAO,QACP,iBAAkB,QAEpB,8BgDpuKQ,oCAFA,oChDuuKR,mCDtBC,yCiDhtKO,yCArBN,MAAA,KACE,iBAAA,QACA,aAAA,QAEA,yBhDiwKF,MAAO,QgD/vKH,iBAAA,QAFF,0BAAA,+BAKI,MAAA,QAGF,mDAAA,wDhDkwKJ,MAAO,QDtBR,gCiD1uKO,gCAGF,qCAFE,qChDqwKN,MAAO,QACP,iBAAkB,QAEpB,iCgDjwKQ,uCAFA,uChDowKR,sCDtBC,4CiD7uKO,4CArBN,MAAA,KACE,iBAAA,QACA,aAAA,QAEA,wBhD8xKF,MAAO,QgD5xKH,iBAAA,QAFF,yBAAA,8BAKI,MAAA,QAGF,kDAAA,uDhD+xKJ,MAAO,QDtBR,+BiDvwKO,+BAGF,oCAFE,oChDkyKN,MAAO,QACP,iBAAkB,QAEpB,gCgD9xKQ,sCAFA,sChDiyKR,qCDtBC,2CiD1wKO,2CDkGN,MAAO,KACP,iBAAA,QACA,aAAA,QAEF,yBACE,WAAA,EACA,cAAA,IE1HF,sBACE,cAAA,EACA,YAAA,IAEA,O9C0DA,cAAA,KACQ,iBAAA,KJ6uKT,OAAA,IAAA,MAAA,YkDnyKC,cAAe,IACf,mBAAA,EAAA,IAAA,IAAA,gBlDqyKD,WAAA,EAAA,IAAA,IAAA,gBkD/xKC,YACA,QAAA,KvBnBC,e3BuzKF,QAAA,KAAA,KkDtyKC,cAAe,IAAI,MAAM,YAMvB,uBAAA,IlDmyKH,wBAAA,IkD7xKC,0CACA,MAAA,QAEA,alDgyKD,WAAA,EkDpyKC,cAAe,EjDg0Kf,UAAW,KACX,MAAO,QDtBR,oBkD1xKC,sBjDkzKF,eiDxzKI,mBAKJ,qBAEE,MAAA,QvBvCA,cACC,QAAA,KAAA,K3Bs0KF,iBAAA,QkDrxKC,WAAY,IAAI,MAAM,KjDizKtB,2BAA4B,IiD9yK1B,0BAAA,IAHJ,mBAAA,mCAMM,cAAA,ElDwxKL,oCkDnxKG,oDjD+yKF,aAAc,IAAI,EiD7yKZ,cAAA,EvBtEL,4D3B61KF,4EkDjxKG,WAAA,EjD6yKF,uBAAwB,IiD3yKlB,wBAAA,IvBtEL,0D3B21KF,0EkD1yKC,cAAe,EvB1Df,2BAAA,IACC,0BAAA,IuB0FH,+EAEI,uBAAA,ElD8wKH,wBAAA,EkD1wKC,wDlD6wKD,iBAAA,EC4BD,0BACE,iBAAkB,EiDlyKpB,8BlD0wKC,ckD1wKD,gCjDuyKE,cAAe,EiDvyKjB,sCAQM,sBlDwwKL,wCC4BC,cAAe,K0Br5Kf,aAAA,KuByGF,wDlDqxKC,0BC4BC,uBAAwB,IACxB,wBAAyB,IiDlzK3B,yFAoBQ,yFlDwwKP,2DkDzwKO,2DjDqyKN,uBAAwB,IACxB,wBAAyB,IAK3B,wGiD9zKA,wGjD4zKA,wGDtBC,wGCuBD,0EiD7zKA,0EjD2zKA,0EiDnyKU,0EjD2yKR,uBAAwB,IAK1B,uGiDx0KA,uGjDs0KA,uGDtBC,uGCuBD,yEiDv0KA,yEjDq0KA,yEiDzyKU,yEvB7HR,wBAAA,IuBiGF,sDlDqzKC,yBC4BC,2BAA4B,IAC5B,0BAA2B,IiDxyKrB,qFA1CR,qFAyCQ,wDlDmxKP,wDC4BC,2BAA4B,IAC5B,0BAA2B,IAG7B,oGDtBC,oGCwBD,oGiD91KA,oGjD21KA,uEiD7yKU,uEjD+yKV,uEiD71KA,uEjDm2KE,0BAA2B,IAG7B,mGDtBC,mGCwBD,mGiDx2KA,mGjDq2KA,sEiDnzKU,sEjDqzKV,sEiDv2KA,sEjD62KE,2BAA4B,IiDlzK1B,0BlD2xKH,qCkDt1KD,0BAAA,qCA+DI,WAAA,IAAA,MAAA,KA/DJ,kDAAA,kDAmEI,WAAA,EAnEJ,uBAAA,yCjD23KE,OAAQ,EiDjzKA,+CjDqzKV,+CiD/3KA,+CjDi4KA,+CAEA,+CANA,+CDjBC,iECoBD,iEiDh4KA,iEjDk4KA,iEAEA,iEANA,iEAWE,YAAa,EiD3zKL,8CjD+zKV,8CiD74KA,8CjD+4KA,8CAEA,8CANA,8CDjBC,gECoBD,gEiD94KA,gEjDg5KA,gEAEA,gEANA,gEAWE,aAAc,EAIhB,+CiD35KA,+CjDy5KA,+CiDl0KU,+CjDq0KV,iEiD55KA,iEjD05KA,iEDtBC,iEC6BC,cAAe,EAEjB,8CiDn0KU,8CjDq0KV,8CiDr6KA,8CjDo6KA,gEDtBC,gECwBD,gEiDh0KI,gEACA,cAAA,EAUJ,yBACE,cAAA,ElDmyKD,OAAA,EkD/xKG,aACA,cAAA,KANJ,oBASM,cAAA,ElDkyKL,cAAA,IkD7xKG,2BlDgyKH,WAAA,IC4BD,4BiDxzKM,cAAA,EAKF,wDAvBJ,wDlDqzKC,WAAA,IAAA,MAAA,KkD5xKK,2BlD+xKL,WAAA,EmDlhLC,uDnDqhLD,cAAA,IAAA,MAAA,KmDlhLG,eACA,aAAA,KnDshLH,8BmDxhLC,MAAA,KAMI,iBAAA,QnDqhLL,aAAA,KmDlhLK,0DACA,iBAAA,KAGJ,qCAEI,MAAA,QnDmhLL,iBAAA,KmDpiLC,yDnDuiLD,oBAAA,KmDpiLG,eACA,aAAA,QnDwiLH,8BmD1iLC,MAAA,KAMI,iBAAA,QnDuiLL,aAAA,QmDpiLK,0DACA,iBAAA,QAGJ,qCAEI,MAAA,QnDqiLL,iBAAA,KmDtjLC,yDnDyjLD,oBAAA,QmDtjLG,eACA,aAAA,QnD0jLH,8BmD5jLC,MAAA,QAMI,iBAAA,QnDyjLL,aAAA,QmDtjLK,0DACA,iBAAA,QAGJ,qCAEI,MAAA,QnDujLL,iBAAA,QmDxkLC,yDnD2kLD,oBAAA,QmDxkLG,YACA,aAAA,QnD4kLH,2BmD9kLC,MAAA,QAMI,iBAAA,QnD2kLL,aAAA,QmDxkLK,uDACA,iBAAA,QAGJ,kCAEI,MAAA,QnDykLL,iBAAA,QmD1lLC,sDnD6lLD,oBAAA,QmD1lLG,eACA,aAAA,QnD8lLH,8BmDhmLC,MAAA,QAMI,iBAAA,QnD6lLL,aAAA,QmD1lLK,0DACA,iBAAA,QAGJ,qCAEI,MAAA,QnD2lLL,iBAAA,QmD5mLC,yDnD+mLD,oBAAA,QmD5mLG,cACA,aAAA,QnDgnLH,6BmDlnLC,MAAA,QAMI,iBAAA,QnD+mLL,aAAA,QmD5mLK,yDACA,iBAAA,QAGJ,oCAEI,MAAA,QnD6mLL,iBAAA,QoD5nLC,wDACA,oBAAA,QAEA,kBACA,SAAA,SpD+nLD,QAAA,MoDpoLC,OAAQ,EnDgqLR,QAAS,EACT,SAAU,OAEZ,yCmDtpLI,wBADA,yBAEA,yBACA,wBACA,SAAA,SACA,IAAA,EACA,OAAA,EpD+nLH,KAAA,EoD1nLC,MAAO,KACP,OAAA,KpD4nLD,OAAA,EoDvnLC,wBpD0nLD,eAAA,OqDppLC,uBACA,eAAA,IAEA,MACA,WAAA,KACA,QAAA,KjDwDA,cAAA,KACQ,iBAAA,QJgmLT,OAAA,IAAA,MAAA,QqD/pLC,cAAe,IASb,mBAAA,MAAA,EAAA,IAAA,IAAA,gBACA,WAAA,MAAA,EAAA,IAAA,IAAA,gBAKJ,iBACE,aAAA,KACA,aAAA,gBAEF,SACE,QAAA,KACA,cAAA,ICtBF,SACE,QAAA,IACA,cAAA,IAEA,OACA,MAAA,MACA,UAAA,KjCRA,YAAA,IAGA,YAAA,ErBqrLD,MAAA,KsD7qLC,YAAA,EAAA,IAAA,EAAA,KrDysLA,OAAQ,kBqDvsLN,QAAA,GjCbF,aiCeE,ajCZF,MAAA,KrB6rLD,gBAAA,KsDzqLC,OAAA,QACE,OAAA,kBACA,QAAA,GAEA,aACA,mBAAA,KtD2qLH,QAAA,EuDhsLC,OAAQ,QACR,WAAA,IvDksLD,OAAA,EuD7rLC,YACA,SAAA,OAEA,OACA,SAAA,MACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EAIA,QAAA,KvD6rLD,QAAA,KuD1rLC,SAAA,OnD+GA,2BAAA,MACI,QAAA,EAEI,0BAkER,mBAAA,kBAAA,IAAA,SAEK,cAAA,aAAA,IAAA,SACG,WAAA,UAAA,IAAA,SJ6gLT,kBAAA,kBuDhsLC,cAAA,kBnD2GA,aAAA,kBACI,UAAA,kBAEI,wBJwlLT,kBAAA,euDpsLK,cAAe,eACnB,aAAA,eACA,UAAA,eAIF,mBACE,WAAA,OACA,WAAA,KvDqsLD,cuDhsLC,SAAU,SACV,MAAA,KACA,OAAA,KAEA,eACA,SAAA,SnDaA,iBAAA,KACQ,wBAAA,YmDZR,gBAAA,YtD4tLA,OsD5tLA,IAAA,MAAA,KAEA,OAAA,IAAA,MAAA,evDksLD,cAAA,IuD9rLC,QAAS,EACT,mBAAA,EAAA,IAAA,IAAA,eACA,WAAA,EAAA,IAAA,IAAA,eAEA,gBACA,SAAA,MACA,IAAA,EACA,MAAA,EvDgsLD,OAAA,EuD9rLC,KAAA,ElCrEA,QAAA,KAGA,iBAAA,KkCmEA,qBlCtEA,OAAA,iBAGA,QAAA,EkCwEF,mBACE,OAAA,kBACA,QAAA,GAIF,cACE,QAAA,KvDgsLD,cAAA,IAAA,MAAA,QuD3rLC,qBACA,WAAA,KAKF,aACE,OAAA,EACA,YAAA,WAIF,YACE,SAAA,SACA,QAAA,KvD0rLD,cuD5rLC,QAAS,KAQP,WAAA,MACA,WAAA,IAAA,MAAA,QATJ,wBAaI,cAAA,EvDsrLH,YAAA,IuDlrLG,mCvDqrLH,YAAA,KuD/qLC,oCACA,YAAA,EAEA,yBACA,SAAA,SvDkrLD,IAAA,QuDhqLC,MAAO,KAZP,OAAA,KACE,SAAA,OvDgrLD,yBuD7qLD,cnDvEA,MAAA,MACQ,OAAA,KAAA,KmD2ER,eAAY,mBAAA,EAAA,IAAA,KAAA,evD+qLX,WAAA,EAAA,IAAA,KAAA,euDzqLD,UAFA,MAAA,OvDirLD,yBwD/zLC,UACA,MAAA,OCNA,SAEA,SAAA,SACA,QAAA,KACA,QAAA,MACA,YAAA,iBAAA,UAAA,MAAA,WACA,UAAA,KACA,WAAA,OACA,YAAA,IACA,YAAA,WACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KACA,eAAA,ODHA,WAAA,OnCVA,aAAA,OAGA,UAAA,OrBs1LD,YAAA,OwD30LC,OAAA,iBnCdA,QAAA,ErB61LD,WAAA,KwD90LY,YAAmB,OAAA,kBxDk1L/B,QAAA,GwDj1LY,aAAmB,QAAA,IAAA,ExDq1L/B,WAAA,KwDp1LY,eAAmB,QAAA,EAAA,IxDw1L/B,YAAA,IwDv1LY,gBAAmB,QAAA,IAAA,ExD21L/B,WAAA,IwDt1LC,cACA,QAAA,EAAA,IACA,YAAA,KAEA,eACA,UAAA,MxDy1LD,QAAA,IAAA,IwDr1LC,MAAO,KACP,WAAA,OACA,iBAAA,KACA,cAAA,IAEA,exDu1LD,SAAA,SwDn1LC,MAAA,EACE,OAAA,EACA,aAAA,YACA,aAAA,MAEA,4BxDq1LH,OAAA,EwDn1LC,KAAA,IACE,YAAA,KACA,aAAA,IAAA,IAAA,EACA,iBAAA,KAEA,iCxDq1LH,MAAA,IwDn1LC,OAAA,EACE,cAAA,KACA,aAAA,IAAA,IAAA,EACA,iBAAA,KAEA,kCxDq1LH,OAAA,EwDn1LC,KAAA,IACE,cAAA,KACA,aAAA,IAAA,IAAA,EACA,iBAAA,KAEA,8BxDq1LH,IAAA,IwDn1LC,KAAA,EACE,WAAA,KACA,aAAA,IAAA,IAAA,IAAA,EACA,mBAAA,KAEA,6BxDq1LH,IAAA,IwDn1LC,MAAA,EACE,WAAA,KACA,aAAA,IAAA,EAAA,IAAA,IACA,kBAAA,KAEA,+BxDq1LH,IAAA,EwDn1LC,KAAA,IACE,YAAA,KACA,aAAA,EAAA,IAAA,IACA,oBAAA,KAEA,oCxDq1LH,IAAA,EwDn1LC,MAAA,IACE,WAAA,KACA,aAAA,EAAA,IAAA,IACA,oBAAA,KAEA,qCxDq1LH,IAAA,E0Dl7LC,KAAM,IACN,WAAA,KACA,aAAA,EAAA,IAAA,IACA,oBAAA,KAEA,SACA,SAAA,SACA,IAAA,EDXA,KAAA,EAEA,QAAA,KACA,QAAA,KACA,UAAA,MACA,QAAA,IACA,YAAA,iBAAA,UAAA,MAAA,WACA,UAAA,KACA,WAAA,OACA,YAAA,IACA,YAAA,WACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KCAA,eAAA,OAEA,WAAA,OACA,aAAA,OAAA,UAAA,OACA,YAAA,OACA,iBAAA,KACA,wBAAA,YtD8CA,gBAAA,YACQ,OAAA,IAAA,MAAA,KJk5LT,OAAA,IAAA,MAAA,e0D77LC,cAAA,IAAY,mBAAA,EAAA,IAAA,KAAA,e1Dg8Lb,WAAA,EAAA,IAAA,KAAA,e0D/7La,WAAA,KACZ,aAAY,WAAA,MACZ,eAAY,YAAA,KAGd,gBACE,WAAA,KAEA,cACA,YAAA,MAEA,e1Dq8LD,QAAA,IAAA,K0Dl8LC,OAAQ,EACR,UAAA,K1Do8LD,iBAAA,Q0D57LC,cAAA,IAAA,MAAA,QzDy9LA,cAAe,IAAI,IAAI,EAAE,EyDt9LvB,iBACA,QAAA,IAAA,KAEA,gBACA,sB1D87LH,SAAA,S0D37LC,QAAS,MACT,MAAA,E1D67LD,OAAA,E0D37LC,aAAc,YACd,aAAA,M1D87LD,gB0Dz7LC,aAAA,KAEE,sBACA,QAAA,GACA,aAAA,KAEA,oB1D27LH,OAAA,M0D17LG,KAAA,IACE,YAAA,MACA,iBAAA,KACA,iBAAA,gBACA,oBAAA,E1D67LL,0B0Dz7LC,OAAA,IACE,YAAA,MACA,QAAA,IACA,iBAAA,KACA,oBAAA,EAEA,sB1D27LH,IAAA,I0D17LG,KAAA,MACE,WAAA,MACA,mBAAA,KACA,mBAAA,gBACA,kBAAA,E1D67LL,4B0Dz7LC,OAAA,MACE,KAAA,IACA,QAAA,IACA,mBAAA,KACA,kBAAA,EAEA,uB1D27LH,IAAA,M0D17LG,KAAA,IACE,YAAA,MACA,iBAAA,EACA,oBAAA,KACA,oBAAA,gB1D67LL,6B0Dx7LC,IAAA,IACE,YAAA,MACA,QAAA,IACA,iBAAA,EACA,oBAAA,KAEA,qB1D07LH,IAAA,I0Dz7LG,MAAA,MACE,WAAA,MACA,mBAAA,EACA,kBAAA,KACA,kBAAA,gB1D47LL,2B2DpjMC,MAAO,IACP,OAAA,M3DsjMD,QAAA,I2DnjMC,mBAAoB,EACpB,kBAAA,KAEA,U3DqjMD,SAAA,S2DljMG,gBACA,SAAA,SvD6KF,MAAA,KACK,SAAA,OJ04LN,sB2D/jMC,SAAU,S1D4lMV,QAAS,K0D9kML,mBAAA,IAAA,YAAA,K3DqjML,cAAA,IAAA,YAAA,K2D3hMC,WAAA,IAAA,YAAA,KvDmKK,4BAFL,0BAGQ,YAAA,EA3JA,qDA+GR,sBAEQ,mBAAA,kBAAA,IAAA,YJ86LP,cAAA,aAAA,IAAA,Y2DzjMG,WAAA,UAAA,IAAA,YvDmHJ,4BAAA,OACQ,oBAAA,OuDjHF,oBAAA,O3D4jML,YAAA,OI58LD,mCHs+LA,2BGr+LQ,KAAA,EuD5GF,kBAAA,sB3D6jML,UAAA,sBC2BD,kCADA,2BG5+LA,KAAA,EACQ,kBAAA,uBuDtGF,UAAA,uBArCN,6B3DomMD,gC2DpmMC,iC1D+nME,KAAM,E0DllMN,kBAAA,mB3D4jMH,UAAA,oBAGA,wB2D5mMD,sBAAA,sBAsDI,QAAA,MAEA,wB3D0jMH,KAAA,E2DtjMG,sB3DyjMH,sB2DrnMC,SAAU,SA+DR,IAAA,E3DyjMH,MAAA,KC0BD,sB0D/kMI,KAAA,KAnEJ,sBAuEI,KAAA,MAvEJ,2BA0EI,4B3DwjMH,KAAA,E2D/iMC,6BACA,KAAA,MAEA,8BACA,KAAA,KtC3FA,kBsC6FA,SAAA,SACA,IAAA,EACA,OAAA,EACA,KAAA,EACA,MAAA,I3DmjMD,UAAA,K2D9iMC,MAAA,KdnGE,WAAA,OACA,YAAA,EAAA,IAAA,IAAA,eACA,iBAAA,cAAA,OAAA,kBACA,QAAA,G7CqpMH,uB2DljMC,iBAAA,sEACE,iBAAA,iEACA,iBAAA,uFdxGA,iBAAA,kEACA,OAAA,+GACA,kBAAA,SACA,wBACA,MAAA,E7C6pMH,KAAA,K2DpjMC,iBAAA,sE1DglMA,iBAAiB,iE0D9kMf,iBAAA,uFACA,iBAAA,kEACA,OAAA,+GtCvHF,kBAAA,SsCyFF,wB3DslMC,wBC4BC,MAAO,KACP,gBAAiB,KACjB,OAAQ,kB0D7kMN,QAAA,EACA,QAAA,G3DwjMH,0C2DhmMD,2CA2CI,6BADA,6B1DklMF,SAAU,S0D7kMR,IAAA,IACA,QAAA,E3DqjMH,QAAA,a2DrmMC,WAAY,MAqDV,0CADA,6B3DsjMH,KAAA,I2D1mMC,YAAa,MA0DX,2CADA,6BAEA,MAAA,IACA,aAAA,MAME,6BADF,6B3DmjMH,MAAA,K2D9iMG,OAAA,KACE,YAAA,M3DgjML,YAAA,E2DriMC,oCACA,QAAA,QAEA,oCACA,QAAA,QAEA,qBACA,SAAA,SACA,OAAA,K3DwiMD,KAAA,I2DjjMC,QAAS,GAYP,MAAA,IACA,aAAA,EACA,YAAA,KACA,WAAA,OACA,WAAA,KAEA,wBACA,QAAA,aAWA,MAAA,KACA,OAAA,K3D8hMH,OAAA,I2D7jMC,YAAa,OAkCX,OAAA,QACA,iBAAA,OACA,iBAAA,cACA,OAAA,IAAA,MAAA,K3D8hMH,cAAA,K2DthMC,6BACA,MAAA,KACA,OAAA,KACA,OAAA,EACA,iBAAA,KAEA,kBACA,SAAA,SACA,MAAA,IACA,OAAA,K3DyhMD,KAAA,I2DxhMC,QAAA,GACE,YAAA,K3D0hMH,eAAA,K2Dj/LC,MAAO,KAhCP,WAAA,O1D8iMA,YAAa,EAAE,IAAI,IAAI,eAEzB,uB0D3iMM,YAAA,KAEA,oCACA,0C3DmhMH,2C2D3hMD,6BAAA,6BAYI,MAAA,K3DmhMH,OAAA,K2D/hMD,WAAA,M1D2jME,UAAW,KDxBZ,0C2D9gMD,6BACE,YAAA,MAEA,2C3DghMD,6B2D5gMD,aAAA,M3D+gMC,kBACF,MAAA,I4D7wMC,KAAA,I3DyyME,eAAgB,KAElB,qBACE,OAAQ,MAkBZ,qCADA,sCADA,mBADA,oBAXA,gBADA,iBAOA,uBADA,wBADA,iBADA,kBADA,wBADA,yBASA,mCADA,oC2DpzME,oBAAA,qBAAA,oBAAA,qB3D2zMF,WADA,YAOA,uBADA,wBADA,qBADA,sBADA,cADA,e2D/zMI,a3Dq0MJ,cDvBC,kB4D7yMG,mB3DqzMJ,WADA,YAwBE,QAAS,MACT,QAAS,IASX,qCADA,mBANA,gBAGA,uBADA,iBADA,wBAIA,mCDhBC,oB6D/0MC,oB5Dk2MF,W+B51MA,uBhCo0MC,qB4D5zMG,cChBF,aACA,kB5D+1MF,W+Br1ME,MAAO,KhCy0MR,cgCt0MC,QAAS,MACT,aAAA,KhCw0MD,YAAA,KgC/zMC,YhCk0MD,MAAA,gBgC/zMC,WhCk0MD,MAAA,egC/zMC,MhCk0MD,QAAA,e8Dz1MC,MACA,QAAA,gBAEA,WACA,WAAA,O9B8BF,WACE,KAAA,EAAA,EAAA,EhCg0MD,MAAA,YgCzzMC,YAAa,KACb,iBAAA,YhC2zMD,OAAA,E+D31MC,Q/D81MD,QAAA,eC4BD,OACE,SAAU,M+Dn4MV,chE42MD,MAAA,aC+BD,YADA,YADA,YADA,YAIE,QAAS,e+Dp5MT,kBhEs4MC,mBgEr4MD,yBhEi4MD,kB+Dl1MD,mBA6IA,yB9D4tMA,kBACA,mB8Dj3ME,yB9D62MF,kBACA,mBACA,yB+Dv5MY,QAAA,eACV,yBAAU,YhE04MT,QAAA,gBC4BD,iB+Dp6MU,QAAA,gBhE64MX,c+D51MG,QAAS,oB/Dg2MV,c+Dl2MC,c/Dm2MH,QAAA,sB+D91MG,yB/Dk2MD,kBACF,QAAA,iB+D91MG,yB/Dk2MD,mBACF,QAAA,kBgEh6MC,yBhEo6MC,yBgEn6MD,QAAA,wBACA,+CAAU,YhEw6MT,QAAA,gBC4BD,iB+Dl8MU,QAAA,gBhE26MX,c+Dr2MG,QAAS,oB/Dy2MV,c+D32MC,c/D42MH,QAAA,sB+Dv2MG,+C/D22MD,kBACF,QAAA,iB+Dv2MG,+C/D22MD,mBACF,QAAA,kBgE97MC,+ChEk8MC,yBgEj8MD,QAAA,wBACA,gDAAU,YhEs8MT,QAAA,gBC4BD,iB+Dh+MU,QAAA,gBhEy8MX,c+D92MG,QAAS,oB/Dk3MV,c+Dp3MC,c/Dq3MH,QAAA,sB+Dh3MG,gD/Do3MD,kBACF,QAAA,iB+Dh3MG,gD/Do3MD,mBACF,QAAA,kBgE59MC,gDhEg+MC,yBgE/9MD,QAAA,wBACA,0BAAU,YhEo+MT,QAAA,gBC4BD,iB+D9/MU,QAAA,gBhEu+MX,c+Dv3MG,QAAS,oB/D23MV,c+D73MC,c/D83MH,QAAA,sB+Dz3MG,0B/D63MD,kBACF,QAAA,iB+Dz3MG,0B/D63MD,mBACF,QAAA,kBgEl/MC,0BhEs/MC,yBACF,QAAA,wBgEv/MC,yBhE2/MC,WACF,QAAA,gBgE5/MC,+ChEggNC,WACF,QAAA,gBgEjgNC,gDhEqgNC,WACF,QAAA,gBAGA,0B+Dh3MC,WA4BE,QAAS,gBC5LX,eAAU,QAAA,eACV,aAAU,ehEyhNT,QAAA,gBC4BD,oB+DnjNU,QAAA,gBhE4hNX,iB+D93MG,QAAS,oBAMX,iB/D23MD,iB+Dt2MG,QAAS,sB/D22MZ,qB+D/3MC,QAAS,e/Dk4MV,a+D53MC,qBAcE,QAAS,iB/Dm3MZ,sB+Dh4MC,QAAS,e/Dm4MV,a+D73MC,sBAOE,QAAS,kB/D23MZ,4B+D53MC,QAAS,eCpLT,ahEojNC,4BACF,QAAA,wBC6BD,aACE,cACE,QAAS","sourcesContent":["/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n// without disabling user zoom.\n//\n\nhtml {\n font-family: sans-serif; // 1\n -ms-text-size-adjust: 100%; // 2\n -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; // 1\n vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n//\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n// Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; // 1\n font: inherit; // 2\n margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n// and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n// `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; // 2\n cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; // 1\n padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; // 1\n box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n border: 0; // 1\n padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important; // Black prints faster: h5bp.com/s\n box-shadow: none !important;\n text-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n\n thead {\n display: table-header-group; // h5bp.com/t\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n img {\n max-width: 100% !important;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .btn,\n .dropup > .btn {\n > .caret {\n border-top-color: #000 !important;\n }\n }\n .label {\n border: 1px solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: #fff !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n\n // Bootstrap specific changes end\n}\n","/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: 1px dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\nmark {\n background: #ff0;\n color: #000;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n font: inherit;\n margin: 0;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n border: 0;\n padding: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important;\n box-shadow: none !important;\n text-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('../fonts/glyphicons-halflings-regular.eot');\n src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: \"\\002a\";\n}\n.glyphicon-plus:before {\n content: \"\\002b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n content: \"\\270f\";\n}\n.glyphicon-glass:before {\n content: \"\\e001\";\n}\n.glyphicon-music:before {\n content: \"\\e002\";\n}\n.glyphicon-search:before {\n content: \"\\e003\";\n}\n.glyphicon-heart:before {\n content: \"\\e005\";\n}\n.glyphicon-star:before {\n content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n content: \"\\e007\";\n}\n.glyphicon-user:before {\n content: \"\\e008\";\n}\n.glyphicon-film:before {\n content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n content: \"\\e010\";\n}\n.glyphicon-th:before {\n content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n content: \"\\e012\";\n}\n.glyphicon-ok:before {\n content: \"\\e013\";\n}\n.glyphicon-remove:before {\n content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n content: \"\\e016\";\n}\n.glyphicon-off:before {\n content: \"\\e017\";\n}\n.glyphicon-signal:before {\n content: \"\\e018\";\n}\n.glyphicon-cog:before {\n content: \"\\e019\";\n}\n.glyphicon-trash:before {\n content: \"\\e020\";\n}\n.glyphicon-home:before {\n content: \"\\e021\";\n}\n.glyphicon-file:before {\n content: \"\\e022\";\n}\n.glyphicon-time:before {\n content: \"\\e023\";\n}\n.glyphicon-road:before {\n content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n content: \"\\e025\";\n}\n.glyphicon-download:before {\n content: \"\\e026\";\n}\n.glyphicon-upload:before {\n content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n content: \"\\e032\";\n}\n.glyphicon-lock:before {\n content: \"\\e033\";\n}\n.glyphicon-flag:before {\n content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n content: \"\\e040\";\n}\n.glyphicon-tag:before {\n content: \"\\e041\";\n}\n.glyphicon-tags:before {\n content: \"\\e042\";\n}\n.glyphicon-book:before {\n content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n content: \"\\e044\";\n}\n.glyphicon-print:before {\n content: \"\\e045\";\n}\n.glyphicon-camera:before {\n content: \"\\e046\";\n}\n.glyphicon-font:before {\n content: \"\\e047\";\n}\n.glyphicon-bold:before {\n content: \"\\e048\";\n}\n.glyphicon-italic:before {\n content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n content: \"\\e055\";\n}\n.glyphicon-list:before {\n content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n content: \"\\e059\";\n}\n.glyphicon-picture:before {\n content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n content: \"\\e063\";\n}\n.glyphicon-tint:before {\n content: \"\\e064\";\n}\n.glyphicon-edit:before {\n content: \"\\e065\";\n}\n.glyphicon-share:before {\n content: \"\\e066\";\n}\n.glyphicon-check:before {\n content: \"\\e067\";\n}\n.glyphicon-move:before {\n content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n content: \"\\e070\";\n}\n.glyphicon-backward:before {\n content: \"\\e071\";\n}\n.glyphicon-play:before {\n content: \"\\e072\";\n}\n.glyphicon-pause:before {\n content: \"\\e073\";\n}\n.glyphicon-stop:before {\n content: \"\\e074\";\n}\n.glyphicon-forward:before {\n content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n content: \"\\e077\";\n}\n.glyphicon-eject:before {\n content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n content: \"\\e101\";\n}\n.glyphicon-gift:before {\n content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n content: \"\\e103\";\n}\n.glyphicon-fire:before {\n content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n content: \"\\e107\";\n}\n.glyphicon-plane:before {\n content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n content: \"\\e109\";\n}\n.glyphicon-random:before {\n content: \"\\e110\";\n}\n.glyphicon-comment:before {\n content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n content: \"\\e122\";\n}\n.glyphicon-bell:before {\n content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n content: \"\\e134\";\n}\n.glyphicon-globe:before {\n content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n content: \"\\e137\";\n}\n.glyphicon-filter:before {\n content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n content: \"\\e143\";\n}\n.glyphicon-link:before {\n content: \"\\e144\";\n}\n.glyphicon-phone:before {\n content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n content: \"\\e146\";\n}\n.glyphicon-usd:before {\n content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n content: \"\\e149\";\n}\n.glyphicon-sort:before {\n content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n content: \"\\e157\";\n}\n.glyphicon-expand:before {\n content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n content: \"\\e161\";\n}\n.glyphicon-flash:before {\n content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n content: \"\\e164\";\n}\n.glyphicon-record:before {\n content: \"\\e165\";\n}\n.glyphicon-save:before {\n content: \"\\e166\";\n}\n.glyphicon-open:before {\n content: \"\\e167\";\n}\n.glyphicon-saved:before {\n content: \"\\e168\";\n}\n.glyphicon-import:before {\n content: \"\\e169\";\n}\n.glyphicon-export:before {\n content: \"\\e170\";\n}\n.glyphicon-send:before {\n content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n content: \"\\e179\";\n}\n.glyphicon-header:before {\n content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n content: \"\\e183\";\n}\n.glyphicon-tower:before {\n content: \"\\e184\";\n}\n.glyphicon-stats:before {\n content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n content: \"\\e200\";\n}\n.glyphicon-cd:before {\n content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n content: \"\\e204\";\n}\n.glyphicon-copy:before {\n content: \"\\e205\";\n}\n.glyphicon-paste:before {\n content: \"\\e206\";\n}\n.glyphicon-alert:before {\n content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n content: \"\\e210\";\n}\n.glyphicon-king:before {\n content: \"\\e211\";\n}\n.glyphicon-queen:before {\n content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n content: \"\\e214\";\n}\n.glyphicon-knight:before {\n content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n content: \"\\e216\";\n}\n.glyphicon-tent:before {\n content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n content: \"\\e218\";\n}\n.glyphicon-bed:before {\n content: \"\\e219\";\n}\n.glyphicon-apple:before {\n content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n content: \"\\e227\";\n}\n.glyphicon-btc:before {\n content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n content: \"\\e227\";\n}\n.glyphicon-yen:before {\n content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\";\n}\n.glyphicon-education:before {\n content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n content: \"\\e237\";\n}\n.glyphicon-oil:before {\n content: \"\\e238\";\n}\n.glyphicon-grain:before {\n content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n content: \"\\e253\";\n}\n.glyphicon-console:before {\n content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n content: \"\\e260\";\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333333;\n background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n padding: 4px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eeeeee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role=\"button\"] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: normal;\n line-height: 1;\n color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n background-color: #fcf8e3;\n padding: .2em;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n margin-left: -5px;\n}\n.list-inline > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #777777;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid #eeeeee;\n border-left: 0;\n text-align: right;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: '\\00A0 \\2014';\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #fff;\n background-color: #333;\n border-radius: 3px;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n word-break: break-all;\n word-wrap: break-word;\n color: #333333;\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n.row {\n margin-left: -15px;\n margin-right: -15px;\n}\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\n float: left;\n}\n.col-xs-12 {\n width: 100%;\n}\n.col-xs-11 {\n width: 91.66666667%;\n}\n.col-xs-10 {\n width: 83.33333333%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-8 {\n width: 66.66666667%;\n}\n.col-xs-7 {\n width: 58.33333333%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-5 {\n width: 41.66666667%;\n}\n.col-xs-4 {\n width: 33.33333333%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-2 {\n width: 16.66666667%;\n}\n.col-xs-1 {\n width: 8.33333333%;\n}\n.col-xs-pull-12 {\n right: 100%;\n}\n.col-xs-pull-11 {\n right: 91.66666667%;\n}\n.col-xs-pull-10 {\n right: 83.33333333%;\n}\n.col-xs-pull-9 {\n right: 75%;\n}\n.col-xs-pull-8 {\n right: 66.66666667%;\n}\n.col-xs-pull-7 {\n right: 58.33333333%;\n}\n.col-xs-pull-6 {\n right: 50%;\n}\n.col-xs-pull-5 {\n right: 41.66666667%;\n}\n.col-xs-pull-4 {\n right: 33.33333333%;\n}\n.col-xs-pull-3 {\n right: 25%;\n}\n.col-xs-pull-2 {\n right: 16.66666667%;\n}\n.col-xs-pull-1 {\n right: 8.33333333%;\n}\n.col-xs-pull-0 {\n right: auto;\n}\n.col-xs-push-12 {\n left: 100%;\n}\n.col-xs-push-11 {\n left: 91.66666667%;\n}\n.col-xs-push-10 {\n left: 83.33333333%;\n}\n.col-xs-push-9 {\n left: 75%;\n}\n.col-xs-push-8 {\n left: 66.66666667%;\n}\n.col-xs-push-7 {\n left: 58.33333333%;\n}\n.col-xs-push-6 {\n left: 50%;\n}\n.col-xs-push-5 {\n left: 41.66666667%;\n}\n.col-xs-push-4 {\n left: 33.33333333%;\n}\n.col-xs-push-3 {\n left: 25%;\n}\n.col-xs-push-2 {\n left: 16.66666667%;\n}\n.col-xs-push-1 {\n left: 8.33333333%;\n}\n.col-xs-push-0 {\n left: auto;\n}\n.col-xs-offset-12 {\n margin-left: 100%;\n}\n.col-xs-offset-11 {\n margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n margin-left: 75%;\n}\n.col-xs-offset-8 {\n margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n margin-left: 50%;\n}\n.col-xs-offset-5 {\n margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n margin-left: 25%;\n}\n.col-xs-offset-2 {\n margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n margin-left: 0%;\n}\n@media (min-width: 768px) {\n .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n float: left;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n right: 100%;\n }\n .col-sm-pull-11 {\n right: 91.66666667%;\n }\n .col-sm-pull-10 {\n right: 83.33333333%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-8 {\n right: 66.66666667%;\n }\n .col-sm-pull-7 {\n right: 58.33333333%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-5 {\n right: 41.66666667%;\n }\n .col-sm-pull-4 {\n right: 33.33333333%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-2 {\n right: 16.66666667%;\n }\n .col-sm-pull-1 {\n right: 8.33333333%;\n }\n .col-sm-pull-0 {\n right: auto;\n }\n .col-sm-push-12 {\n left: 100%;\n }\n .col-sm-push-11 {\n left: 91.66666667%;\n }\n .col-sm-push-10 {\n left: 83.33333333%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-8 {\n left: 66.66666667%;\n }\n .col-sm-push-7 {\n left: 58.33333333%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-5 {\n left: 41.66666667%;\n }\n .col-sm-push-4 {\n left: 33.33333333%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-2 {\n left: 16.66666667%;\n }\n .col-sm-push-1 {\n left: 8.33333333%;\n }\n .col-sm-push-0 {\n left: auto;\n }\n .col-sm-offset-12 {\n margin-left: 100%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-sm-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-sm-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-sm-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 992px) {\n .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n float: left;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n right: 100%;\n }\n .col-md-pull-11 {\n right: 91.66666667%;\n }\n .col-md-pull-10 {\n right: 83.33333333%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-8 {\n right: 66.66666667%;\n }\n .col-md-pull-7 {\n right: 58.33333333%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-5 {\n right: 41.66666667%;\n }\n .col-md-pull-4 {\n right: 33.33333333%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-2 {\n right: 16.66666667%;\n }\n .col-md-pull-1 {\n right: 8.33333333%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-push-12 {\n left: 100%;\n }\n .col-md-push-11 {\n left: 91.66666667%;\n }\n .col-md-push-10 {\n left: 83.33333333%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-8 {\n left: 66.66666667%;\n }\n .col-md-push-7 {\n left: 58.33333333%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-5 {\n left: 41.66666667%;\n }\n .col-md-push-4 {\n left: 33.33333333%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-2 {\n left: 16.66666667%;\n }\n .col-md-push-1 {\n left: 8.33333333%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-offset-12 {\n margin-left: 100%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-md-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-md-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-md-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 1200px) {\n .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n float: left;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n right: 100%;\n }\n .col-lg-pull-11 {\n right: 91.66666667%;\n }\n .col-lg-pull-10 {\n right: 83.33333333%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-8 {\n right: 66.66666667%;\n }\n .col-lg-pull-7 {\n right: 58.33333333%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-5 {\n right: 41.66666667%;\n }\n .col-lg-pull-4 {\n right: 33.33333333%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-2 {\n right: 16.66666667%;\n }\n .col-lg-pull-1 {\n right: 8.33333333%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-push-12 {\n left: 100%;\n }\n .col-lg-push-11 {\n left: 91.66666667%;\n }\n .col-lg-push-10 {\n left: 83.33333333%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-8 {\n left: 66.66666667%;\n }\n .col-lg-push-7 {\n left: 58.33333333%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-5 {\n left: 41.66666667%;\n }\n .col-lg-push-4 {\n left: 33.33333333%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-2 {\n left: 16.66666667%;\n }\n .col-lg-push-1 {\n left: 8.33333333%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-offset-12 {\n margin-left: 100%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-lg-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-lg-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-lg-offset-0 {\n margin-left: 0%;\n }\n}\ntable {\n background-color: transparent;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #ddd;\n}\n.table .table {\n background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\ntable col[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-column;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-cell;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #ddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n min-width: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: bold;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type=\"file\"] {\n display: block;\n}\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n color: #999;\n opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n color: #999;\n}\n.form-control::-webkit-input-placeholder {\n color: #999;\n}\n.form-control::-ms-expand {\n border: 0;\n background-color: transparent;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n background-color: #eeeeee;\n opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\ntextarea.form-control {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"].form-control,\n input[type=\"time\"].form-control,\n input[type=\"datetime-local\"].form-control,\n input[type=\"month\"].form-control {\n line-height: 34px;\n }\n input[type=\"date\"].input-sm,\n input[type=\"time\"].input-sm,\n input[type=\"datetime-local\"].input-sm,\n input[type=\"month\"].input-sm,\n .input-group-sm input[type=\"date\"],\n .input-group-sm input[type=\"time\"],\n .input-group-sm input[type=\"datetime-local\"],\n .input-group-sm input[type=\"month\"] {\n line-height: 30px;\n }\n input[type=\"date\"].input-lg,\n input[type=\"time\"].input-lg,\n input[type=\"datetime-local\"].input-lg,\n input[type=\"month\"].input-lg,\n .input-group-lg input[type=\"date\"],\n .input-group-lg input[type=\"time\"],\n .input-group-lg input[type=\"datetime-local\"],\n .input-group-lg input[type=\"month\"] {\n line-height: 46px;\n }\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.form-control-static {\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n min-height: 34px;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-left: 0;\n padding-right: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.form-group-sm select.form-control {\n height: 30px;\n line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.form-group-lg select.form-control {\n height: 46px;\n line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 11px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n border-color: #3c763d;\n background-color: #dff0d8;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n border-color: #8a6d3b;\n background-color: #fcf8e3;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n border-color: #a94442;\n background-color: #f2dede;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 7px;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-left: -15px;\n margin-right: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n text-align: right;\n margin-bottom: 0;\n padding-top: 7px;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 11px;\n font-size: 18px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px;\n }\n}\n.btn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: normal;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n border-radius: 4px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n.btn-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n color: #333;\n background-color: #e6e6e6;\n border-color: #8c8c8c;\n}\n.btn-default:hover {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n color: #333;\n background-color: #d4d4d4;\n border-color: #8c8c8c;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n background-image: none;\n}\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus {\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default .badge {\n color: #fff;\n background-color: #333;\n}\n.btn-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n color: #fff;\n background-color: #286090;\n border-color: #122b40;\n}\n.btn-primary:hover {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n color: #fff;\n background-color: #204d74;\n border-color: #122b40;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n background-image: none;\n}\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n color: #fff;\n background-color: #449d44;\n border-color: #255625;\n}\n.btn-success:hover {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n color: #fff;\n background-color: #398439;\n border-color: #255625;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n background-image: none;\n}\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #fff;\n}\n.btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n color: #fff;\n background-color: #31b0d5;\n border-color: #1b6d85;\n}\n.btn-info:hover {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n color: #fff;\n background-color: #269abc;\n border-color: #1b6d85;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n background-image: none;\n}\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #fff;\n}\n.btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n color: #fff;\n background-color: #ec971f;\n border-color: #985f0d;\n}\n.btn-warning:hover {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n color: #fff;\n background-color: #d58512;\n border-color: #985f0d;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n background-image: none;\n}\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #fff;\n}\n.btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n color: #fff;\n background-color: #c9302c;\n border-color: #761c19;\n}\n.btn-danger:hover {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n color: #fff;\n background-color: #ac2925;\n border-color: #761c19;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n background-image: none;\n}\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #fff;\n}\n.btn-link {\n color: #337ab7;\n font-weight: normal;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-top: 4px solid \\9;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n list-style: none;\n font-size: 14px;\n text-align: left;\n background-color: #fff;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n background-clip: padding-box;\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.42857143;\n color: #333333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n text-decoration: none;\n color: #262626;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n background-color: #337ab7;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n cursor: not-allowed;\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n left: auto;\n right: 0;\n}\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n border-top: 0;\n border-bottom: 4px dashed;\n border-bottom: 4px solid \\9;\n content: \"\";\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n left: auto;\n right: 0;\n }\n .navbar-right .dropdown-menu-left {\n left: 0;\n right: auto;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group .form-control:focus {\n z-index: 3;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n color: #555555;\n text-align: center;\n background-color: #eeeeee;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n.nav {\n margin-bottom: 0;\n padding-left: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777777;\n text-decoration: none;\n background-color: transparent;\n cursor: not-allowed;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eeeeee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eeeeee #eeeeee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555555;\n background-color: #fff;\n border: 1px solid #ddd;\n border-bottom-color: transparent;\n cursor: default;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #fff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n overflow-x: visible;\n padding-right: 15px;\n padding-left: 15px;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-left: 0;\n padding-right: 0;\n }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.navbar-brand {\n float: left;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n height: 50px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: 15px;\n padding: 9px 10px;\n margin-top: 8px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n margin-left: -15px;\n margin-right: -15px;\n padding: 10px 15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n margin-top: 8px;\n margin-bottom: 8px;\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-left: 15px;\n margin-right: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n background-color: #e7e7e7;\n color: #555;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-link {\n color: #777;\n}\n.navbar-default .navbar-link:hover {\n color: #333;\n}\n.navbar-default .btn-link {\n color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #ccc;\n}\n.navbar-inverse {\n background-color: #222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #fff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n background-color: #080808;\n color: #fff;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #fff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n content: \"/\\00a0\";\n padding: 0 5px;\n color: #ccc;\n}\n.breadcrumb > .active {\n color: #777777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n line-height: 1.42857143;\n text-decoration: none;\n color: #337ab7;\n background-color: #fff;\n border: 1px solid #ddd;\n margin-left: -1px;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n z-index: 2;\n color: #23527c;\n background-color: #eeeeee;\n border-color: #ddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 3;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n cursor: default;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777777;\n background-color: #fff;\n border-color: #ddd;\n cursor: not-allowed;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-bottom-left-radius: 6px;\n border-top-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-bottom-right-radius: 6px;\n border-top-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-bottom-left-radius: 3px;\n border-top-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n list-style: none;\n text-align: center;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777777;\n background-color: #fff;\n cursor: not-allowed;\n}\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n}\na.label:hover,\na.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n color: #fff;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: #777777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n border-radius: 6px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding-top: 48px;\n padding-bottom: 48px;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-left: 60px;\n padding-right: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-left: auto;\n margin-right: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n background-color: #dff0d8;\n border-color: #d6e9c6;\n color: #3c763d;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n background-color: #d9edf7;\n border-color: #bce8f1;\n color: #31708f;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n background-color: #fcf8e3;\n border-color: #faebcc;\n color: #8a6d3b;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n background-color: #f2dede;\n border-color: #ebccd1;\n color: #a94442;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n overflow: hidden;\n height: 20px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #fff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n zoom: 1;\n overflow: hidden;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-object.img-thumbnail {\n max-width: none;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n margin-bottom: 20px;\n padding-left: 0;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\na.list-group-item,\nbutton.list-group-item {\n color: #555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n color: #333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n text-decoration: none;\n color: #555;\n background-color: #f5f5f5;\n}\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n background-color: #eeeeee;\n color: #777777;\n cursor: not-allowed;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #fff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-left: 15px;\n padding-right: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n border: 0;\n margin-bottom: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #ddd;\n}\n.panel-default {\n border-color: #ddd;\n}\n.panel-default > .panel-heading {\n color: #333333;\n background-color: #f5f5f5;\n border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: 0.2;\n filter: alpha(opacity=20);\n}\n.close:hover,\n.close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -moz-transition: -moz-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #fff;\n border: 1px solid #999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n background-clip: padding-box;\n outline: 0;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n.modal-backdrop.fade {\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.modal-backdrop.in {\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 12px;\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.tooltip.in {\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.tooltip.top {\n margin-top: -3px;\n padding: 5px 0;\n}\n.tooltip.right {\n margin-left: 3px;\n padding: 0 5px;\n}\n.tooltip.bottom {\n margin-top: 3px;\n padding: 5px 0;\n}\n.tooltip.left {\n margin-left: -3px;\n padding: 0 5px;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n bottom: 0;\n right: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 14px;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover-title {\n margin: 0;\n padding: 8px 14px;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow:after {\n border-width: 10px;\n content: \"\";\n}\n.popover.top > .arrow {\n left: 50%;\n margin-left: -11px;\n border-bottom-width: 0;\n border-top-color: #999999;\n border-top-color: rgba(0, 0, 0, 0.25);\n bottom: -11px;\n}\n.popover.top > .arrow:after {\n content: \" \";\n bottom: 1px;\n margin-left: -10px;\n border-bottom-width: 0;\n border-top-color: #fff;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-left-width: 0;\n border-right-color: #999999;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n.popover.right > .arrow:after {\n content: \" \";\n left: 1px;\n bottom: -10px;\n border-left-width: 0;\n border-right-color: #fff;\n}\n.popover.bottom > .arrow {\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n top: -11px;\n}\n.popover.bottom > .arrow:after {\n content: \" \";\n top: 1px;\n margin-left: -10px;\n border-top-width: 0;\n border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: #fff;\n bottom: -10px;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n}\n.carousel-inner > .item {\n display: none;\n position: relative;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -moz-transition: -moz-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n -moz-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n -moz-perspective: 1000px;\n perspective: 1000px;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n left: 0;\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 15%;\n opacity: 0.5;\n filter: alpha(opacity=50);\n font-size: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n background-color: rgba(0, 0, 0, 0);\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n}\n.carousel-control.right {\n left: auto;\n right: 0;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n}\n.carousel-control:hover,\n.carousel-control:focus {\n outline: 0;\n color: #fff;\n text-decoration: none;\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n}\n.carousel-control .icon-prev:before {\n content: '\\2039';\n}\n.carousel-control .icon-next:before {\n content: '\\203a';\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid #fff;\n border-radius: 10px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n}\n.carousel-indicators .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: #fff;\n}\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -10px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -10px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -10px;\n }\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-header:before,\n.modal-header:after,\n.modal-footer:before,\n.modal-footer:after {\n content: \" \";\n display: table;\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-header:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table !important;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: 1px dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n margin: .67em 0;\n font-size: 2em;\n}\nmark {\n color: #000;\n background: #ff0;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsup {\n top: -.5em;\n}\nsub {\n bottom: -.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n height: 0;\n -webkit-box-sizing: content-box;\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n margin: 0;\n font: inherit;\n color: inherit;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: content-box;\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n -webkit-appearance: textfield;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n padding: .35em .625em .75em;\n margin: 0 2px;\n border: 1px solid #c0c0c0;\n}\nlegend {\n padding: 0;\n border: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-spacing: 0;\n border-collapse: collapse;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n color: #000 !important;\n text-shadow: none !important;\n background: transparent !important;\n -webkit-box-shadow: none !important;\n box-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: 'Glyphicons Halflings';\n\n src: url('../fonts/glyphicons-halflings-regular.eot');\n src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: \"\\002a\";\n}\n.glyphicon-plus:before {\n content: \"\\002b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n content: \"\\270f\";\n}\n.glyphicon-glass:before {\n content: \"\\e001\";\n}\n.glyphicon-music:before {\n content: \"\\e002\";\n}\n.glyphicon-search:before {\n content: \"\\e003\";\n}\n.glyphicon-heart:before {\n content: \"\\e005\";\n}\n.glyphicon-star:before {\n content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n content: \"\\e007\";\n}\n.glyphicon-user:before {\n content: \"\\e008\";\n}\n.glyphicon-film:before {\n content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n content: \"\\e010\";\n}\n.glyphicon-th:before {\n content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n content: \"\\e012\";\n}\n.glyphicon-ok:before {\n content: \"\\e013\";\n}\n.glyphicon-remove:before {\n content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n content: \"\\e016\";\n}\n.glyphicon-off:before {\n content: \"\\e017\";\n}\n.glyphicon-signal:before {\n content: \"\\e018\";\n}\n.glyphicon-cog:before {\n content: \"\\e019\";\n}\n.glyphicon-trash:before {\n content: \"\\e020\";\n}\n.glyphicon-home:before {\n content: \"\\e021\";\n}\n.glyphicon-file:before {\n content: \"\\e022\";\n}\n.glyphicon-time:before {\n content: \"\\e023\";\n}\n.glyphicon-road:before {\n content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n content: \"\\e025\";\n}\n.glyphicon-download:before {\n content: \"\\e026\";\n}\n.glyphicon-upload:before {\n content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n content: \"\\e032\";\n}\n.glyphicon-lock:before {\n content: \"\\e033\";\n}\n.glyphicon-flag:before {\n content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n content: \"\\e040\";\n}\n.glyphicon-tag:before {\n content: \"\\e041\";\n}\n.glyphicon-tags:before {\n content: \"\\e042\";\n}\n.glyphicon-book:before {\n content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n content: \"\\e044\";\n}\n.glyphicon-print:before {\n content: \"\\e045\";\n}\n.glyphicon-camera:before {\n content: \"\\e046\";\n}\n.glyphicon-font:before {\n content: \"\\e047\";\n}\n.glyphicon-bold:before {\n content: \"\\e048\";\n}\n.glyphicon-italic:before {\n content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n content: \"\\e055\";\n}\n.glyphicon-list:before {\n content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n content: \"\\e059\";\n}\n.glyphicon-picture:before {\n content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n content: \"\\e063\";\n}\n.glyphicon-tint:before {\n content: \"\\e064\";\n}\n.glyphicon-edit:before {\n content: \"\\e065\";\n}\n.glyphicon-share:before {\n content: \"\\e066\";\n}\n.glyphicon-check:before {\n content: \"\\e067\";\n}\n.glyphicon-move:before {\n content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n content: \"\\e070\";\n}\n.glyphicon-backward:before {\n content: \"\\e071\";\n}\n.glyphicon-play:before {\n content: \"\\e072\";\n}\n.glyphicon-pause:before {\n content: \"\\e073\";\n}\n.glyphicon-stop:before {\n content: \"\\e074\";\n}\n.glyphicon-forward:before {\n content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n content: \"\\e077\";\n}\n.glyphicon-eject:before {\n content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n content: \"\\e101\";\n}\n.glyphicon-gift:before {\n content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n content: \"\\e103\";\n}\n.glyphicon-fire:before {\n content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n content: \"\\e107\";\n}\n.glyphicon-plane:before {\n content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n content: \"\\e109\";\n}\n.glyphicon-random:before {\n content: \"\\e110\";\n}\n.glyphicon-comment:before {\n content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n content: \"\\e122\";\n}\n.glyphicon-bell:before {\n content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n content: \"\\e134\";\n}\n.glyphicon-globe:before {\n content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n content: \"\\e137\";\n}\n.glyphicon-filter:before {\n content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n content: \"\\e143\";\n}\n.glyphicon-link:before {\n content: \"\\e144\";\n}\n.glyphicon-phone:before {\n content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n content: \"\\e146\";\n}\n.glyphicon-usd:before {\n content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n content: \"\\e149\";\n}\n.glyphicon-sort:before {\n content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n content: \"\\e157\";\n}\n.glyphicon-expand:before {\n content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n content: \"\\e161\";\n}\n.glyphicon-flash:before {\n content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n content: \"\\e164\";\n}\n.glyphicon-record:before {\n content: \"\\e165\";\n}\n.glyphicon-save:before {\n content: \"\\e166\";\n}\n.glyphicon-open:before {\n content: \"\\e167\";\n}\n.glyphicon-saved:before {\n content: \"\\e168\";\n}\n.glyphicon-import:before {\n content: \"\\e169\";\n}\n.glyphicon-export:before {\n content: \"\\e170\";\n}\n.glyphicon-send:before {\n content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n content: \"\\e179\";\n}\n.glyphicon-header:before {\n content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n content: \"\\e183\";\n}\n.glyphicon-tower:before {\n content: \"\\e184\";\n}\n.glyphicon-stats:before {\n content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n content: \"\\e200\";\n}\n.glyphicon-cd:before {\n content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n content: \"\\e204\";\n}\n.glyphicon-copy:before {\n content: \"\\e205\";\n}\n.glyphicon-paste:before {\n content: \"\\e206\";\n}\n.glyphicon-alert:before {\n content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n content: \"\\e210\";\n}\n.glyphicon-king:before {\n content: \"\\e211\";\n}\n.glyphicon-queen:before {\n content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n content: \"\\e214\";\n}\n.glyphicon-knight:before {\n content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n content: \"\\e216\";\n}\n.glyphicon-tent:before {\n content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n content: \"\\e218\";\n}\n.glyphicon-bed:before {\n content: \"\\e219\";\n}\n.glyphicon-apple:before {\n content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n content: \"\\e227\";\n}\n.glyphicon-btc:before {\n content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n content: \"\\e227\";\n}\n.glyphicon-yen:before {\n content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\";\n}\n.glyphicon-education:before {\n content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n content: \"\\e237\";\n}\n.glyphicon-oil:before {\n content: \"\\e238\";\n}\n.glyphicon-grain:before {\n content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n content: \"\\e253\";\n}\n.glyphicon-console:before {\n content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n content: \"\\e260\";\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333;\n background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n display: inline-block;\n max-width: 100%;\n height: auto;\n padding: 4px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all .2s ease-in-out;\n -o-transition: all .2s ease-in-out;\n transition: all .2s ease-in-out;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role=\"button\"] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: normal;\n line-height: 1;\n color: #777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n padding: .2em;\n background-color: #fcf8e3;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n margin-left: -5px;\n list-style: none;\n}\n.list-inline > li {\n display: inline-block;\n padding-right: 5px;\n padding-left: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n overflow: hidden;\n clear: left;\n text-align: right;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #777;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n text-align: right;\n border-right: 5px solid #eee;\n border-left: 0;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: '\\00A0 \\2014';\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #fff;\n background-color: #333;\n border-radius: 3px;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n color: #333;\n word-break: break-all;\n word-wrap: break-word;\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n.row {\n margin-right: -15px;\n margin-left: -15px;\n}\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\n float: left;\n}\n.col-xs-12 {\n width: 100%;\n}\n.col-xs-11 {\n width: 91.66666667%;\n}\n.col-xs-10 {\n width: 83.33333333%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-8 {\n width: 66.66666667%;\n}\n.col-xs-7 {\n width: 58.33333333%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-5 {\n width: 41.66666667%;\n}\n.col-xs-4 {\n width: 33.33333333%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-2 {\n width: 16.66666667%;\n}\n.col-xs-1 {\n width: 8.33333333%;\n}\n.col-xs-pull-12 {\n right: 100%;\n}\n.col-xs-pull-11 {\n right: 91.66666667%;\n}\n.col-xs-pull-10 {\n right: 83.33333333%;\n}\n.col-xs-pull-9 {\n right: 75%;\n}\n.col-xs-pull-8 {\n right: 66.66666667%;\n}\n.col-xs-pull-7 {\n right: 58.33333333%;\n}\n.col-xs-pull-6 {\n right: 50%;\n}\n.col-xs-pull-5 {\n right: 41.66666667%;\n}\n.col-xs-pull-4 {\n right: 33.33333333%;\n}\n.col-xs-pull-3 {\n right: 25%;\n}\n.col-xs-pull-2 {\n right: 16.66666667%;\n}\n.col-xs-pull-1 {\n right: 8.33333333%;\n}\n.col-xs-pull-0 {\n right: auto;\n}\n.col-xs-push-12 {\n left: 100%;\n}\n.col-xs-push-11 {\n left: 91.66666667%;\n}\n.col-xs-push-10 {\n left: 83.33333333%;\n}\n.col-xs-push-9 {\n left: 75%;\n}\n.col-xs-push-8 {\n left: 66.66666667%;\n}\n.col-xs-push-7 {\n left: 58.33333333%;\n}\n.col-xs-push-6 {\n left: 50%;\n}\n.col-xs-push-5 {\n left: 41.66666667%;\n}\n.col-xs-push-4 {\n left: 33.33333333%;\n}\n.col-xs-push-3 {\n left: 25%;\n}\n.col-xs-push-2 {\n left: 16.66666667%;\n}\n.col-xs-push-1 {\n left: 8.33333333%;\n}\n.col-xs-push-0 {\n left: auto;\n}\n.col-xs-offset-12 {\n margin-left: 100%;\n}\n.col-xs-offset-11 {\n margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n margin-left: 75%;\n}\n.col-xs-offset-8 {\n margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n margin-left: 50%;\n}\n.col-xs-offset-5 {\n margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n margin-left: 25%;\n}\n.col-xs-offset-2 {\n margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n float: left;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n right: 100%;\n }\n .col-sm-pull-11 {\n right: 91.66666667%;\n }\n .col-sm-pull-10 {\n right: 83.33333333%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-8 {\n right: 66.66666667%;\n }\n .col-sm-pull-7 {\n right: 58.33333333%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-5 {\n right: 41.66666667%;\n }\n .col-sm-pull-4 {\n right: 33.33333333%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-2 {\n right: 16.66666667%;\n }\n .col-sm-pull-1 {\n right: 8.33333333%;\n }\n .col-sm-pull-0 {\n right: auto;\n }\n .col-sm-push-12 {\n left: 100%;\n }\n .col-sm-push-11 {\n left: 91.66666667%;\n }\n .col-sm-push-10 {\n left: 83.33333333%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-8 {\n left: 66.66666667%;\n }\n .col-sm-push-7 {\n left: 58.33333333%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-5 {\n left: 41.66666667%;\n }\n .col-sm-push-4 {\n left: 33.33333333%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-2 {\n left: 16.66666667%;\n }\n .col-sm-push-1 {\n left: 8.33333333%;\n }\n .col-sm-push-0 {\n left: auto;\n }\n .col-sm-offset-12 {\n margin-left: 100%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-sm-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-sm-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-sm-offset-0 {\n margin-left: 0;\n }\n}\n@media (min-width: 992px) {\n .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n float: left;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n right: 100%;\n }\n .col-md-pull-11 {\n right: 91.66666667%;\n }\n .col-md-pull-10 {\n right: 83.33333333%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-8 {\n right: 66.66666667%;\n }\n .col-md-pull-7 {\n right: 58.33333333%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-5 {\n right: 41.66666667%;\n }\n .col-md-pull-4 {\n right: 33.33333333%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-2 {\n right: 16.66666667%;\n }\n .col-md-pull-1 {\n right: 8.33333333%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-push-12 {\n left: 100%;\n }\n .col-md-push-11 {\n left: 91.66666667%;\n }\n .col-md-push-10 {\n left: 83.33333333%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-8 {\n left: 66.66666667%;\n }\n .col-md-push-7 {\n left: 58.33333333%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-5 {\n left: 41.66666667%;\n }\n .col-md-push-4 {\n left: 33.33333333%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-2 {\n left: 16.66666667%;\n }\n .col-md-push-1 {\n left: 8.33333333%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-offset-12 {\n margin-left: 100%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-md-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-md-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-md-offset-0 {\n margin-left: 0;\n }\n}\n@media (min-width: 1200px) {\n .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n float: left;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n right: 100%;\n }\n .col-lg-pull-11 {\n right: 91.66666667%;\n }\n .col-lg-pull-10 {\n right: 83.33333333%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-8 {\n right: 66.66666667%;\n }\n .col-lg-pull-7 {\n right: 58.33333333%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-5 {\n right: 41.66666667%;\n }\n .col-lg-pull-4 {\n right: 33.33333333%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-2 {\n right: 16.66666667%;\n }\n .col-lg-pull-1 {\n right: 8.33333333%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-push-12 {\n left: 100%;\n }\n .col-lg-push-11 {\n left: 91.66666667%;\n }\n .col-lg-push-10 {\n left: 83.33333333%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-8 {\n left: 66.66666667%;\n }\n .col-lg-push-7 {\n left: 58.33333333%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-5 {\n left: 41.66666667%;\n }\n .col-lg-push-4 {\n left: 33.33333333%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-2 {\n left: 16.66666667%;\n }\n .col-lg-push-1 {\n left: 8.33333333%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-offset-12 {\n margin-left: 100%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-lg-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-lg-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-lg-offset-0 {\n margin-left: 0;\n }\n}\ntable {\n background-color: transparent;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #ddd;\n}\n.table .table {\n background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\ntable col[class*=\"col-\"] {\n position: static;\n display: table-column;\n float: none;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n position: static;\n display: table-cell;\n float: none;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n min-height: .01%;\n overflow-x: auto;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #ddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: bold;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type=\"file\"] {\n display: block;\n}\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);\n}\n.form-control::-moz-placeholder {\n color: #999;\n opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n color: #999;\n}\n.form-control::-webkit-input-placeholder {\n color: #999;\n}\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n background-color: #eee;\n opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\ntextarea.form-control {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"].form-control,\n input[type=\"time\"].form-control,\n input[type=\"datetime-local\"].form-control,\n input[type=\"month\"].form-control {\n line-height: 34px;\n }\n input[type=\"date\"].input-sm,\n input[type=\"time\"].input-sm,\n input[type=\"datetime-local\"].input-sm,\n input[type=\"month\"].input-sm,\n .input-group-sm input[type=\"date\"],\n .input-group-sm input[type=\"time\"],\n .input-group-sm input[type=\"datetime-local\"],\n .input-group-sm input[type=\"month\"] {\n line-height: 30px;\n }\n input[type=\"date\"].input-lg,\n input[type=\"time\"].input-lg,\n input[type=\"datetime-local\"].input-lg,\n input[type=\"month\"].input-lg,\n .input-group-lg input[type=\"date\"],\n .input-group-lg input[type=\"time\"],\n .input-group-lg input[type=\"datetime-local\"],\n .input-group-lg input[type=\"month\"] {\n line-height: 46px;\n }\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-top: 4px \\9;\n margin-left: -20px;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n vertical-align: middle;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.form-control-static {\n min-height: 34px;\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-right: 0;\n padding-left: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.form-group-sm select.form-control {\n height: 30px;\n line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.form-group-lg select.form-control {\n height: 46px;\n line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 11px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #3c763d;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #8a6d3b;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n background-color: #f2dede;\n border-color: #a94442;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n padding-top: 7px;\n margin-top: 0;\n margin-bottom: 0;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n padding-top: 7px;\n margin-bottom: 0;\n text-align: right;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 11px;\n font-size: 18px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px;\n }\n}\n.btn {\n display: inline-block;\n padding: 6px 12px;\n margin-bottom: 0;\n font-size: 14px;\n font-weight: normal;\n line-height: 1.42857143;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n outline: 0;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n opacity: .65;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n.btn-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n color: #333;\n background-color: #e6e6e6;\n border-color: #8c8c8c;\n}\n.btn-default:hover {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n color: #333;\n background-color: #d4d4d4;\n border-color: #8c8c8c;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n background-image: none;\n}\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus {\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default .badge {\n color: #fff;\n background-color: #333;\n}\n.btn-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n color: #fff;\n background-color: #286090;\n border-color: #122b40;\n}\n.btn-primary:hover {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n color: #fff;\n background-color: #204d74;\n border-color: #122b40;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n background-image: none;\n}\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n color: #fff;\n background-color: #449d44;\n border-color: #255625;\n}\n.btn-success:hover {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n color: #fff;\n background-color: #398439;\n border-color: #255625;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n background-image: none;\n}\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #fff;\n}\n.btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n color: #fff;\n background-color: #31b0d5;\n border-color: #1b6d85;\n}\n.btn-info:hover {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n color: #fff;\n background-color: #269abc;\n border-color: #1b6d85;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n background-image: none;\n}\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #fff;\n}\n.btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n color: #fff;\n background-color: #ec971f;\n border-color: #985f0d;\n}\n.btn-warning:hover {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n color: #fff;\n background-color: #d58512;\n border-color: #985f0d;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n background-image: none;\n}\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #fff;\n}\n.btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n color: #fff;\n background-color: #c9302c;\n border-color: #761c19;\n}\n.btn-danger:hover {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n color: #fff;\n background-color: #ac2925;\n border-color: #761c19;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n background-image: none;\n}\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #fff;\n}\n.btn-link {\n font-weight: normal;\n color: #337ab7;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity .15s linear;\n -o-transition: opacity .15s linear;\n transition: opacity .15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-timing-function: ease;\n -o-transition-timing-function: ease;\n transition-timing-function: ease;\n -webkit-transition-duration: .35s;\n -o-transition-duration: .35s;\n transition-duration: .35s;\n -webkit-transition-property: height, visibility;\n -o-transition-property: height, visibility;\n transition-property: height, visibility;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-top: 4px solid \\9;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n font-size: 14px;\n text-align: left;\n list-style: none;\n background-color: #fff;\n -webkit-background-clip: padding-box;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, .15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, .175);\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.42857143;\n color: #333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n color: #262626;\n text-decoration: none;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #fff;\n text-decoration: none;\n background-color: #337ab7;\n outline: 0;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n content: \"\";\n border-top: 0;\n border-bottom: 4px dashed;\n border-bottom: 4px solid \\9;\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n right: 0;\n left: auto;\n }\n .navbar-right .dropdown-menu-left {\n right: auto;\n left: 0;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-right: 8px;\n padding-left: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-right: 12px;\n padding-left: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n display: table-cell;\n float: none;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n float: none;\n padding-right: 0;\n padding-left: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group .form-control:focus {\n z-index: 3;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n color: #555;\n text-align: center;\n background-color: #eee;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n.nav {\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eee;\n}\n.nav > li.disabled > a {\n color: #777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777;\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eee #eee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555;\n cursor: default;\n background-color: #fff;\n border: 1px solid #ddd;\n border-bottom-color: transparent;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #fff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n padding-right: 15px;\n padding-left: 15px;\n overflow-x: visible;\n -webkit-overflow-scrolling: touch;\n border-top: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-right: 0;\n padding-left: 0;\n }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.navbar-brand {\n float: left;\n height: 50px;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n padding: 9px 10px;\n margin-top: 8px;\n margin-right: 15px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n padding: 10px 15px;\n margin-top: 8px;\n margin-right: -15px;\n margin-bottom: 8px;\n margin-left: -15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n padding-top: 0;\n padding-bottom: 0;\n margin-right: 0;\n margin-left: 0;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-right: 15px;\n margin-left: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-link {\n color: #777;\n}\n.navbar-default .navbar-link:hover {\n color: #333;\n}\n.navbar-default .btn-link {\n color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #ccc;\n}\n.navbar-inverse {\n background-color: #222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #fff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n color: #fff;\n background-color: #080808;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #fff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n padding: 0 5px;\n color: #ccc;\n content: \"/\\00a0\";\n}\n.breadcrumb > .active {\n color: #777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n margin-left: -1px;\n line-height: 1.42857143;\n color: #337ab7;\n text-decoration: none;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n z-index: 2;\n color: #23527c;\n background-color: #eee;\n border-color: #ddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 3;\n color: #fff;\n cursor: default;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777;\n cursor: not-allowed;\n background-color: #fff;\n border-color: #ddd;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-top-left-radius: 6px;\n border-bottom-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-top-right-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n text-align: center;\n list-style: none;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777;\n cursor: not-allowed;\n background-color: #fff;\n}\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n}\na.label:hover,\na.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n background-color: #777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n padding-right: 15px;\n padding-left: 15px;\n border-radius: 6px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding-top: 48px;\n padding-bottom: 48px;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-right: 60px;\n padding-left: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: border .2s ease-in-out;\n -o-transition: border .2s ease-in-out;\n transition: border .2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-right: auto;\n margin-left: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@-o-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n height: 20px;\n margin-bottom: 20px;\n overflow: hidden;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);\n}\n.progress-bar {\n float: left;\n width: 0;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #fff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);\n -webkit-transition: width .6s ease;\n -o-transition: width .6s ease;\n transition: width .6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n -webkit-background-size: 40px 40px;\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n overflow: hidden;\n zoom: 1;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-object.img-thumbnail {\n max-width: none;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n padding-left: 0;\n margin-bottom: 20px;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\na.list-group-item,\nbutton.list-group-item {\n color: #555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n color: #333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n color: #555;\n text-decoration: none;\n background-color: #f5f5f5;\n}\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n color: #777;\n cursor: not-allowed;\n background-color: #eee;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #fff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, .05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-right: 15px;\n padding-left: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n margin-bottom: 0;\n border: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #ddd;\n}\n.panel-default {\n border-color: #ddd;\n}\n.panel-default > .panel-heading {\n color: #333;\n background-color: #f5f5f5;\n border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, .15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n filter: alpha(opacity=20);\n opacity: .2;\n}\n.close:hover,\n.close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n filter: alpha(opacity=50);\n opacity: .5;\n}\nbutton.close {\n -webkit-appearance: none;\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transition: -webkit-transform .3s ease-out;\n -o-transition: -o-transform .3s ease-out;\n transition: transform .3s ease-out;\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #fff;\n -webkit-background-clip: padding-box;\n background-clip: padding-box;\n border: 1px solid #999;\n border: 1px solid rgba(0, 0, 0, .2);\n border-radius: 6px;\n outline: 0;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, .5);\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n.modal-backdrop.fade {\n filter: alpha(opacity=0);\n opacity: 0;\n}\n.modal-backdrop.in {\n filter: alpha(opacity=50);\n opacity: .5;\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-bottom: 0;\n margin-left: 5px;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, .5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 12px;\n font-style: normal;\n font-weight: normal;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n white-space: normal;\n filter: alpha(opacity=0);\n opacity: 0;\n\n line-break: auto;\n}\n.tooltip.in {\n filter: alpha(opacity=90);\n opacity: .9;\n}\n.tooltip.top {\n padding: 5px 0;\n margin-top: -3px;\n}\n.tooltip.right {\n padding: 0 5px;\n margin-left: 3px;\n}\n.tooltip.bottom {\n padding: 5px 0;\n margin-top: 3px;\n}\n.tooltip.left {\n padding: 0 5px;\n margin-left: -3px;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n right: 5px;\n bottom: 0;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: normal;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n white-space: normal;\n background-color: #fff;\n -webkit-background-clip: padding-box;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, .2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, .2);\n\n line-break: auto;\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover-title {\n padding: 8px 14px;\n margin: 0;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow:after {\n content: \"\";\n border-width: 10px;\n}\n.popover.top > .arrow {\n bottom: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-color: #999;\n border-top-color: rgba(0, 0, 0, .25);\n border-bottom-width: 0;\n}\n.popover.top > .arrow:after {\n bottom: 1px;\n margin-left: -10px;\n content: \" \";\n border-top-color: #fff;\n border-bottom-width: 0;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-right-color: #999;\n border-right-color: rgba(0, 0, 0, .25);\n border-left-width: 0;\n}\n.popover.right > .arrow:after {\n bottom: -10px;\n left: 1px;\n content: \" \";\n border-right-color: #fff;\n border-left-width: 0;\n}\n.popover.bottom > .arrow {\n top: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999;\n border-bottom-color: rgba(0, 0, 0, .25);\n}\n.popover.bottom > .arrow:after {\n top: 1px;\n margin-left: -10px;\n content: \" \";\n border-top-width: 0;\n border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999;\n border-left-color: rgba(0, 0, 0, .25);\n}\n.popover.left > .arrow:after {\n right: 1px;\n bottom: -10px;\n content: \" \";\n border-right-width: 0;\n border-left-color: #fff;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n.carousel-inner > .item {\n position: relative;\n display: none;\n -webkit-transition: .6s ease-in-out left;\n -o-transition: .6s ease-in-out left;\n transition: .6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform .6s ease-in-out;\n -o-transition: -o-transform .6s ease-in-out;\n transition: transform .6s ease-in-out;\n\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n perspective: 1000px;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n left: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n left: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n left: 0;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 15%;\n font-size: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, .6);\n background-color: rgba(0, 0, 0, 0);\n filter: alpha(opacity=50);\n opacity: .5;\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\n background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001)));\n background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control.right {\n right: 0;\n left: auto;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\n background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5)));\n background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control:hover,\n.carousel-control:focus {\n color: #fff;\n text-decoration: none;\n filter: alpha(opacity=90);\n outline: 0;\n opacity: .9;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n z-index: 5;\n display: inline-block;\n margin-top: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n font-family: serif;\n line-height: 1;\n}\n.carousel-control .icon-prev:before {\n content: '\\2039';\n}\n.carousel-control .icon-next:before {\n content: '\\203a';\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n padding-left: 0;\n margin-left: -30%;\n text-align: center;\n list-style: none;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n border: 1px solid #fff;\n border-radius: 10px;\n}\n.carousel-indicators .active {\n width: 12px;\n height: 12px;\n margin: 0;\n background-color: #fff;\n}\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, .6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -10px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -10px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -10px;\n }\n .carousel-caption {\n right: 20%;\n left: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-header:before,\n.modal-header:after,\n.modal-footer:before,\n.modal-footer:after {\n display: table;\n content: \" \";\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-header:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-right: auto;\n margin-left: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table !important;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */\n","//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// <a href=\"#\"><span class=\"glyphicon glyphicon-star\"></span> Star</a>\n\n// Import the fonts\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('@{icon-font-path}@{icon-font-name}.eot');\n src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),\n url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'),\n url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),\n url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),\n url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');\n}\n\n// Catchall baseclass\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk { &:before { content: \"\\002a\"; } }\n.glyphicon-plus { &:before { content: \"\\002b\"; } }\n.glyphicon-euro,\n.glyphicon-eur { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil { &:before { content: \"\\270f\"; } }\n.glyphicon-glass { &:before { content: \"\\e001\"; } }\n.glyphicon-music { &:before { content: \"\\e002\"; } }\n.glyphicon-search { &:before { content: \"\\e003\"; } }\n.glyphicon-heart { &:before { content: \"\\e005\"; } }\n.glyphicon-star { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty { &:before { content: \"\\e007\"; } }\n.glyphicon-user { &:before { content: \"\\e008\"; } }\n.glyphicon-film { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large { &:before { content: \"\\e010\"; } }\n.glyphicon-th { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list { &:before { content: \"\\e012\"; } }\n.glyphicon-ok { &:before { content: \"\\e013\"; } }\n.glyphicon-remove { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out { &:before { content: \"\\e016\"; } }\n.glyphicon-off { &:before { content: \"\\e017\"; } }\n.glyphicon-signal { &:before { content: \"\\e018\"; } }\n.glyphicon-cog { &:before { content: \"\\e019\"; } }\n.glyphicon-trash { &:before { content: \"\\e020\"; } }\n.glyphicon-home { &:before { content: \"\\e021\"; } }\n.glyphicon-file { &:before { content: \"\\e022\"; } }\n.glyphicon-time { &:before { content: \"\\e023\"; } }\n.glyphicon-road { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt { &:before { content: \"\\e025\"; } }\n.glyphicon-download { &:before { content: \"\\e026\"; } }\n.glyphicon-upload { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt { &:before { content: \"\\e032\"; } }\n.glyphicon-lock { &:before { content: \"\\e033\"; } }\n.glyphicon-flag { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode { &:before { content: \"\\e040\"; } }\n.glyphicon-tag { &:before { content: \"\\e041\"; } }\n.glyphicon-tags { &:before { content: \"\\e042\"; } }\n.glyphicon-book { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark { &:before { content: \"\\e044\"; } }\n.glyphicon-print { &:before { content: \"\\e045\"; } }\n.glyphicon-camera { &:before { content: \"\\e046\"; } }\n.glyphicon-font { &:before { content: \"\\e047\"; } }\n.glyphicon-bold { &:before { content: \"\\e048\"; } }\n.glyphicon-italic { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify { &:before { content: \"\\e055\"; } }\n.glyphicon-list { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video { &:before { content: \"\\e059\"; } }\n.glyphicon-picture { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust { &:before { content: \"\\e063\"; } }\n.glyphicon-tint { &:before { content: \"\\e064\"; } }\n.glyphicon-edit { &:before { content: \"\\e065\"; } }\n.glyphicon-share { &:before { content: \"\\e066\"; } }\n.glyphicon-check { &:before { content: \"\\e067\"; } }\n.glyphicon-move { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward { &:before { content: \"\\e070\"; } }\n.glyphicon-backward { &:before { content: \"\\e071\"; } }\n.glyphicon-play { &:before { content: \"\\e072\"; } }\n.glyphicon-pause { &:before { content: \"\\e073\"; } }\n.glyphicon-stop { &:before { content: \"\\e074\"; } }\n.glyphicon-forward { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward { &:before { content: \"\\e077\"; } }\n.glyphicon-eject { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign { &:before { content: \"\\e101\"; } }\n.glyphicon-gift { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf { &:before { content: \"\\e103\"; } }\n.glyphicon-fire { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign { &:before { content: \"\\e107\"; } }\n.glyphicon-plane { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar { &:before { content: \"\\e109\"; } }\n.glyphicon-random { &:before { content: \"\\e110\"; } }\n.glyphicon-comment { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn { &:before { content: \"\\e122\"; } }\n.glyphicon-bell { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down { &:before { content: \"\\e134\"; } }\n.glyphicon-globe { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks { &:before { content: \"\\e137\"; } }\n.glyphicon-filter { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty { &:before { content: \"\\e143\"; } }\n.glyphicon-link { &:before { content: \"\\e144\"; } }\n.glyphicon-phone { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin { &:before { content: \"\\e146\"; } }\n.glyphicon-usd { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp { &:before { content: \"\\e149\"; } }\n.glyphicon-sort { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked { &:before { content: \"\\e157\"; } }\n.glyphicon-expand { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in { &:before { content: \"\\e161\"; } }\n.glyphicon-flash { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window { &:before { content: \"\\e164\"; } }\n.glyphicon-record { &:before { content: \"\\e165\"; } }\n.glyphicon-save { &:before { content: \"\\e166\"; } }\n.glyphicon-open { &:before { content: \"\\e167\"; } }\n.glyphicon-saved { &:before { content: \"\\e168\"; } }\n.glyphicon-import { &:before { content: \"\\e169\"; } }\n.glyphicon-export { &:before { content: \"\\e170\"; } }\n.glyphicon-send { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery { &:before { content: \"\\e179\"; } }\n.glyphicon-header { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt { &:before { content: \"\\e183\"; } }\n.glyphicon-tower { &:before { content: \"\\e184\"; } }\n.glyphicon-stats { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1 { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1 { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1 { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous { &:before { content: \"\\e200\"; } }\n.glyphicon-cd { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up { &:before { content: \"\\e204\"; } }\n.glyphicon-copy { &:before { content: \"\\e205\"; } }\n.glyphicon-paste { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer { &:before { content: \"\\e210\"; } }\n.glyphicon-king { &:before { content: \"\\e211\"; } }\n.glyphicon-queen { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop { &:before { content: \"\\e214\"; } }\n.glyphicon-knight { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula { &:before { content: \"\\e216\"; } }\n.glyphicon-tent { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard { &:before { content: \"\\e218\"; } }\n.glyphicon-bed { &:before { content: \"\\e219\"; } }\n.glyphicon-apple { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin { &:before { content: \"\\e227\"; } }\n.glyphicon-btc { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt { &:before { content: \"\\e227\"; } }\n.glyphicon-yen { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted { &:before { content: \"\\e232\"; } }\n.glyphicon-education { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window { &:before { content: \"\\e237\"; } }\n.glyphicon-oil { &:before { content: \"\\e238\"; } }\n.glyphicon-grain { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top { &:before { content: \"\\e253\"; } }\n.glyphicon-console { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up { &:before { content: \"\\e260\"; } }\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// http://getbootstrap.com/getting-started/#third-box-sizing\n* {\n .box-sizing(border-box);\n}\n*:before,\n*:after {\n .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n}\n\nbody {\n font-family: @font-family-base;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @text-color;\n background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n\n// Links\n\na {\n color: @link-color;\n text-decoration: none;\n\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n }\n\n &:focus {\n .tab-focus();\n }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n margin: 0;\n}\n\n\n// Images\n\nimg {\n vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n padding: @thumbnail-padding;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(all .2s ease-in-out);\n\n // Keep them at most 100% wide\n .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n margin-top: @line-height-computed;\n margin-bottom: @line-height-computed;\n border: 0;\n border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0,0,0,0);\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n cursor: pointer;\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// WebKit-style focus\n\n.tab-focus() {\n // WebKit-specific. Other browsers will keep their default outline style.\n // (Initially tried to also force default via `outline: initial`,\n // but that seems to erroneously remove the outline in Firefox altogether.)\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n.img-responsive(@display: block) {\n display: @display;\n max-width: 100%; // Part 1: Set a maximum relative to the parent\n height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n background-image: url(\"@{file-1x}\");\n\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and ( min--moz-device-pixel-ratio: 2),\n only screen and ( -o-min-device-pixel-ratio: 2/1),\n only screen and ( min-device-pixel-ratio: 2),\n only screen and ( min-resolution: 192dpi),\n only screen and ( min-resolution: 2dppx) {\n background-image: url(\"@{file-2x}\");\n background-size: @width-1x @height-1x;\n }\n}\n","//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n font-family: @headings-font-family;\n font-weight: @headings-font-weight;\n line-height: @headings-line-height;\n color: @headings-color;\n\n small,\n .small {\n font-weight: normal;\n line-height: 1;\n color: @headings-small-color;\n }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n margin-top: @line-height-computed;\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 65%;\n }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n margin-top: (@line-height-computed / 2);\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 75%;\n }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n margin-bottom: @line-height-computed;\n font-size: floor((@font-size-base * 1.15));\n font-weight: 300;\n line-height: 1.4;\n\n @media (min-width: @screen-sm-min) {\n font-size: (@font-size-base * 1.5);\n }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n font-size: floor((100% * @font-size-small / @font-size-base));\n}\n\nmark,\n.mark {\n background-color: @state-warning-bg;\n padding: .2em;\n}\n\n// Alignment\n.text-left { text-align: left; }\n.text-right { text-align: right; }\n.text-center { text-align: center; }\n.text-justify { text-align: justify; }\n.text-nowrap { white-space: nowrap; }\n\n// Transformation\n.text-lowercase { text-transform: lowercase; }\n.text-uppercase { text-transform: uppercase; }\n.text-capitalize { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n color: @text-muted;\n}\n.text-primary {\n .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n // Given the contrast here, this is the only class to have its color inverted\n // automatically.\n color: #fff;\n .bg-variant(@brand-primary);\n}\n.bg-success {\n .bg-variant(@state-success-bg);\n}\n.bg-info {\n .bg-variant(@state-info-bg);\n}\n.bg-warning {\n .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n padding-bottom: ((@line-height-computed / 2) - 1);\n margin: (@line-height-computed * 2) 0 @line-height-computed;\n border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n margin-top: 0;\n margin-bottom: (@line-height-computed / 2);\n ul,\n ol {\n margin-bottom: 0;\n }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n .list-unstyled();\n margin-left: -5px;\n\n > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n }\n}\n\n// Description Lists\ndl {\n margin-top: 0; // Remove browser default\n margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n line-height: @line-height-base;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n dd {\n &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n }\n\n @media (min-width: @dl-horizontal-breakpoint) {\n dt {\n float: left;\n width: (@dl-horizontal-offset - 20);\n clear: left;\n text-align: right;\n .text-overflow();\n }\n dd {\n margin-left: @dl-horizontal-offset;\n }\n }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\nabbr[title],\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted @abbr-border-color;\n}\n.initialism {\n font-size: 90%;\n .text-uppercase();\n}\n\n// Blockquotes\nblockquote {\n padding: (@line-height-computed / 2) @line-height-computed;\n margin: 0 0 @line-height-computed;\n font-size: @blockquote-font-size;\n border-left: 5px solid @blockquote-border-color;\n\n p,\n ul,\n ol {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n // Note: Deprecated small and .small as of v3.1.0\n // Context: https://github.com/twbs/bootstrap/issues/11660\n footer,\n small,\n .small {\n display: block;\n font-size: 80%; // back to default font-size\n line-height: @line-height-base;\n color: @blockquote-small-color;\n\n &:before {\n content: '\\2014 \\00A0'; // em dash, nbsp\n }\n }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid @blockquote-border-color;\n border-left: 0;\n text-align: right;\n\n // Account for citation\n footer,\n small,\n .small {\n &:before { content: ''; }\n &:after {\n content: '\\00A0 \\2014'; // nbsp, em dash\n }\n }\n}\n\n// Addresses\naddress {\n margin-bottom: @line-height-computed;\n font-style: normal;\n line-height: @line-height-base;\n}\n","// Typography\n\n.text-emphasis-variant(@color) {\n color: @color;\n a&:hover,\n a&:focus {\n color: darken(@color, 10%);\n }\n}\n","// Contextual backgrounds\n\n.bg-variant(@color) {\n background-color: @color;\n a&:hover,\n a&:focus {\n background-color: darken(@color, 10%);\n }\n}\n","// Text overflow\n// Requires inline-block or block for proper styling\n\n.text-overflow() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: @code-color;\n background-color: @code-bg;\n border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: @kbd-color;\n background-color: @kbd-bg;\n border-radius: @border-radius-small;\n box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n }\n}\n\n// Blocks of code\npre {\n display: block;\n padding: ((@line-height-computed - 1) / 2);\n margin: 0 0 (@line-height-computed / 2);\n font-size: (@font-size-base - 1); // 14px to 13px\n line-height: @line-height-base;\n word-break: break-all;\n word-wrap: break-word;\n color: @pre-color;\n background-color: @pre-bg;\n border: 1px solid @pre-border-color;\n border-radius: @border-radius-base;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: @pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n .container-fixed();\n\n @media (min-width: @screen-sm-min) {\n width: @container-sm;\n }\n @media (min-width: @screen-md-min) {\n width: @container-md;\n }\n @media (min-width: @screen-lg-min) {\n width: @container-lg;\n }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n .make-row();\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n .make-grid(lg);\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n.container-fixed(@gutter: @grid-gutter-width) {\n margin-right: auto;\n margin-left: auto;\n padding-left: floor((@gutter / 2));\n padding-right: ceil((@gutter / 2));\n &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n margin-left: ceil((@gutter / -2));\n margin-right: floor((@gutter / -2));\n &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n float: left;\n width: percentage((@columns / @grid-columns));\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n margin-left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-push(@columns) {\n left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-pull(@columns) {\n right: percentage((@columns / @grid-columns));\n}\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-sm-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-offset(@columns) {\n @media (min-width: @screen-sm-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-push(@columns) {\n @media (min-width: @screen-sm-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-pull(@columns) {\n @media (min-width: @screen-sm-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-md-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-offset(@columns) {\n @media (min-width: @screen-md-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-push(@columns) {\n @media (min-width: @screen-md-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-pull(@columns) {\n @media (min-width: @screen-md-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-lg-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-offset(@columns) {\n @media (min-width: @screen-lg-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-push(@columns) {\n @media (min-width: @screen-lg-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-pull(@columns) {\n @media (min-width: @screen-lg-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n // Common styles for all sizes of grid columns, widths 1-12\n .col(@index) { // initial\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n position: relative;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n // Inner gutter via padding\n padding-left: ceil((@grid-gutter-width / 2));\n padding-right: floor((@grid-gutter-width / 2));\n }\n }\n .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n .col(@index) { // initial\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n float: left;\n }\n }\n .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n .col-@{class}-@{index} {\n width: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {\n .col-@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {\n .col-@{class}-push-0 {\n left: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {\n .col-@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {\n .col-@{class}-pull-0 {\n right: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n .col-@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n .calc-grid-column(@index, @class, @type);\n // next iteration\n .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n .float-grid-columns(@class);\n .loop-grid-columns(@grid-columns, @class, width);\n .loop-grid-columns(@grid-columns, @class, pull);\n .loop-grid-columns(@grid-columns, @class, push);\n .loop-grid-columns(@grid-columns, @class, offset);\n}\n","//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n background-color: @table-bg;\n}\ncaption {\n padding-top: @table-cell-padding;\n padding-bottom: @table-cell-padding;\n color: @text-muted;\n text-align: left;\n}\nth {\n text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: @line-height-computed;\n // Cells\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-cell-padding;\n line-height: @line-height-base;\n vertical-align: top;\n border-top: 1px solid @table-border-color;\n }\n }\n }\n // Bottom align for column headings\n > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid @table-border-color;\n }\n // Remove top border from thead by default\n > caption + thead,\n > colgroup + thead,\n > thead:first-child {\n > tr:first-child {\n > th,\n > td {\n border-top: 0;\n }\n }\n }\n // Account for multiple tbody instances\n > tbody + tbody {\n border-top: 2px solid @table-border-color;\n }\n\n // Nesting\n .table {\n background-color: @body-bg;\n }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-condensed-cell-padding;\n }\n }\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: 1px solid @table-border-color;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n border: 1px solid @table-border-color;\n }\n }\n }\n > thead > tr {\n > th,\n > td {\n border-bottom-width: 2px;\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n > tbody > tr:nth-of-type(odd) {\n background-color: @table-bg-accent;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n > tbody > tr:hover {\n background-color: @table-bg-hover;\n }\n}\n\n\n// Table cell sizing\n//\n// Reset default table behavior\n\ntable col[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-column;\n}\ntable {\n td,\n th {\n &[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-cell;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n\n @media screen and (max-width: @screen-xs-max) {\n width: 100%;\n margin-bottom: (@line-height-computed * 0.75);\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid @table-border-color;\n\n // Tighten up spacing\n > .table {\n margin-bottom: 0;\n\n // Ensure the content doesn't wrap\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n white-space: nowrap;\n }\n }\n }\n }\n\n // Special overrides for the bordered tables\n > .table-bordered {\n border: 0;\n\n // Nuke the appropriate borders so that the parent can handle them\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n\n // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n // chances are there will be only one `tr` in a `thead` and that would\n // remove the border altogether.\n > tbody,\n > tfoot {\n > tr:last-child {\n > th,\n > td {\n border-bottom: 0;\n }\n }\n }\n\n }\n }\n}\n","// Tables\n\n.table-row-variant(@state; @background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table > thead > tr,\n .table > tbody > tr,\n .table > tfoot > tr {\n > td.@{state},\n > th.@{state},\n &.@{state} > td,\n &.@{state} > th {\n background-color: @background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover > tbody > tr {\n > td.@{state}:hover,\n > th.@{state}:hover,\n &.@{state}:hover > td,\n &:hover > .@{state},\n &.@{state}:hover > th {\n background-color: darken(@background, 5%);\n }\n }\n}\n","//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n // so we reset that to ensure it behaves more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359.\n min-width: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: @line-height-computed;\n font-size: (@font-size-base * 1.5);\n line-height: inherit;\n color: @legend-color;\n border: 0;\n border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n display: inline-block;\n max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n margin-bottom: 5px;\n font-weight: bold;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\n// Override content-box in Normalize (* isn't specific enough)\ninput[type=\"search\"] {\n .box-sizing(border-box);\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9; // IE8-9\n line-height: normal;\n}\n\ninput[type=\"file\"] {\n display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n .tab-focus();\n}\n\n// Adjust output element\noutput {\n display: block;\n padding-top: (@padding-base-vertical + 1);\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n display: block;\n width: 100%;\n height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n background-color: @input-bg;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid @input-border;\n border-radius: @input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n // Customize the `:focus` state to imitate native WebKit styles.\n .form-control-focus();\n\n // Placeholder\n .placeholder();\n\n // Unstyle the caret on `<select>`s in IE10+.\n &::-ms-expand {\n border: 0;\n background-color: transparent;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &[disabled],\n &[readonly],\n fieldset[disabled] & {\n background-color: @input-bg-disabled;\n opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655\n }\n\n &[disabled],\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n\n // Reset height for `textarea`s\n textarea& {\n height: auto;\n }\n}\n\n\n// Search inputs in iOS\n//\n// This overrides the extra rounded corners on search inputs in iOS so that our\n// `.form-control` class can properly style them. Note that this cannot simply\n// be added to `.form-control` as it's not specific enough. For details, see\n// https://github.com/twbs/bootstrap/issues/11586.\n\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n\n\n// Special styles for iOS temporal inputs\n//\n// In Mobile Safari, setting `display: block` on temporal inputs causes the\n// text within the input to become vertically misaligned. As a workaround, we\n// set a pixel line-height that matches the given height of the input, but only\n// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848\n//\n// Note that as of 9.3, iOS doesn't support `week`.\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"],\n input[type=\"time\"],\n input[type=\"datetime-local\"],\n input[type=\"month\"] {\n &.form-control {\n line-height: @input-height-base;\n }\n\n &.input-sm,\n .input-group-sm & {\n line-height: @input-height-small;\n }\n\n &.input-lg,\n .input-group-lg & {\n line-height: @input-height-large;\n }\n }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: @form-group-margin-bottom;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n\n label {\n min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px; // space out consecutive inline controls\n}\n\n// Apply same disabled cursor tweak as for inputs\n// Some special care is needed because <label>s don't inherit their parent's `cursor`.\n//\n// Note: Neither radios nor checkboxes can be readonly.\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n &[disabled],\n &.disabled,\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n}\n// These classes are used directly on <label>s\n.radio-inline,\n.checkbox-inline {\n &.disabled,\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n}\n// These classes are used on elements with <label> descendants\n.radio,\n.checkbox {\n &.disabled,\n fieldset[disabled] & {\n label {\n cursor: @cursor-disabled;\n }\n }\n}\n\n\n// Static form control text\n//\n// Apply class to a `p` element to make any string of text align with labels in\n// a horizontal form layout.\n\n.form-control-static {\n // Size it appropriately next to real form controls\n padding-top: (@padding-base-vertical + 1);\n padding-bottom: (@padding-base-vertical + 1);\n // Remove default margin from `p`\n margin-bottom: 0;\n min-height: (@line-height-computed + @font-size-base);\n\n &.input-lg,\n &.input-sm {\n padding-left: 0;\n padding-right: 0;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// The `.form-group-* form-control` variations are sadly duplicated to avoid the\n// issue documented in https://github.com/twbs/bootstrap/issues/15074.\n\n.input-sm {\n .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);\n}\n.form-group-sm {\n .form-control {\n height: @input-height-small;\n padding: @padding-small-vertical @padding-small-horizontal;\n font-size: @font-size-small;\n line-height: @line-height-small;\n border-radius: @input-border-radius-small;\n }\n select.form-control {\n height: @input-height-small;\n line-height: @input-height-small;\n }\n textarea.form-control,\n select[multiple].form-control {\n height: auto;\n }\n .form-control-static {\n height: @input-height-small;\n min-height: (@line-height-computed + @font-size-small);\n padding: (@padding-small-vertical + 1) @padding-small-horizontal;\n font-size: @font-size-small;\n line-height: @line-height-small;\n }\n}\n\n.input-lg {\n .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);\n}\n.form-group-lg {\n .form-control {\n height: @input-height-large;\n padding: @padding-large-vertical @padding-large-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-large;\n border-radius: @input-border-radius-large;\n }\n select.form-control {\n height: @input-height-large;\n line-height: @input-height-large;\n }\n textarea.form-control,\n select[multiple].form-control {\n height: auto;\n }\n .form-control-static {\n height: @input-height-large;\n min-height: (@line-height-computed + @font-size-large);\n padding: (@padding-large-vertical + 1) @padding-large-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-large;\n }\n}\n\n\n// Form control feedback states\n//\n// Apply contextual and semantic states to individual form controls.\n\n.has-feedback {\n // Enable absolute positioning\n position: relative;\n\n // Ensure icons don't overlap text\n .form-control {\n padding-right: (@input-height-base * 1.25);\n }\n}\n// Feedback icon (requires .glyphicon classes)\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2; // Ensure icon is above input groups\n display: block;\n width: @input-height-base;\n height: @input-height-base;\n line-height: @input-height-base;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: @input-height-large;\n height: @input-height-large;\n line-height: @input-height-large;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: @input-height-small;\n height: @input-height-small;\n line-height: @input-height-small;\n}\n\n// Feedback states\n.has-success {\n .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);\n}\n.has-warning {\n .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);\n}\n.has-error {\n .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);\n}\n\n// Reposition feedback icon if input has visible label above\n.has-feedback label {\n\n & ~ .form-control-feedback {\n top: (@line-height-computed + 5); // Height of the `label` and its margin\n }\n &.sr-only ~ .form-control-feedback {\n top: 0;\n }\n}\n\n\n// Help text\n//\n// Apply to any element you wish to create light text for placement immediately\n// below a form control. Use for general help, formatting, or instructional text.\n\n.help-block {\n display: block; // account for any element using help-block\n margin-top: 5px;\n margin-bottom: 10px;\n color: lighten(@text-color, 25%); // lighten the text some for contrast\n}\n\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n//\n// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.\n\n.form-inline {\n\n // Kick in the inline\n @media (min-width: @screen-sm-min) {\n // Inline-block all the things for \"inline\"\n .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n\n // In navbar-form, allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n\n // Make static controls behave like regular ones\n .form-control-static {\n display: inline-block;\n }\n\n .input-group {\n display: inline-table;\n vertical-align: middle;\n\n .input-group-addon,\n .input-group-btn,\n .form-control {\n width: auto;\n }\n }\n\n // Input groups need that 100% width though\n .input-group > .form-control {\n width: 100%;\n }\n\n .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match.\n .radio,\n .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n\n label {\n padding-left: 0;\n }\n }\n .radio input[type=\"radio\"],\n .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n\n // Re-override the feedback icon.\n .has-feedback .form-control-feedback {\n top: 0;\n }\n }\n}\n\n\n// Horizontal forms\n//\n// Horizontal forms are built on grid classes and allow you to create forms with\n// labels on the left and inputs on the right.\n\n.form-horizontal {\n\n // Consistent vertical alignment of radios and checkboxes\n //\n // Labels also get some reset styles, but that is scoped to a media query below.\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n }\n // Account for padding we're adding to ensure the alignment and of help text\n // and other content below items\n .radio,\n .checkbox {\n min-height: (@line-height-computed + (@padding-base-vertical + 1));\n }\n\n // Make form groups behave like rows\n .form-group {\n .make-row();\n }\n\n // Reset spacing and right align labels, but scope to media queries so that\n // labels on narrow viewports stack the same as a default form example.\n @media (min-width: @screen-sm-min) {\n .control-label {\n text-align: right;\n margin-bottom: 0;\n padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n }\n }\n\n // Validation states\n //\n // Reposition the icon because it's now within a grid column and columns have\n // `position: relative;` on them. Also accounts for the grid gutter padding.\n .has-feedback .form-control-feedback {\n right: floor((@grid-gutter-width / 2));\n }\n\n // Form group sizes\n //\n // Quick utility class for applying `.input-lg` and `.input-sm` styles to the\n // inputs and labels within a `.form-group`.\n .form-group-lg {\n @media (min-width: @screen-sm-min) {\n .control-label {\n padding-top: (@padding-large-vertical + 1);\n font-size: @font-size-large;\n }\n }\n }\n .form-group-sm {\n @media (min-width: @screen-sm-min) {\n .control-label {\n padding-top: (@padding-small-vertical + 1);\n font-size: @font-size-small;\n }\n }\n }\n}\n","// Form validation states\n//\n// Used in forms.less to generate the form validation CSS for warnings, errors,\n// and successes.\n\n.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {\n // Color the label and help text\n .help-block,\n .control-label,\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline,\n &.radio label,\n &.checkbox label,\n &.radio-inline label,\n &.checkbox-inline label {\n color: @text-color;\n }\n // Set the border and box shadow on specific inputs to match\n .form-control {\n border-color: @border-color;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work\n &:focus {\n border-color: darken(@border-color, 10%);\n @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);\n .box-shadow(@shadow);\n }\n }\n // Set validation states also for addons\n .input-group-addon {\n color: @text-color;\n border-color: @border-color;\n background-color: @background-color;\n }\n // Optional feedback icon\n .form-control-feedback {\n color: @text-color;\n }\n}\n\n\n// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `@input-border-focus` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n.form-control-focus(@color: @input-border-focus) {\n @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n &:focus {\n border-color: @color;\n outline: 0;\n .box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}\");\n }\n}\n\n// Form control sizing\n//\n// Relative text size, padding, and border-radii changes for form controls. For\n// horizontal sizing, wrap controls in the predefined grid classes. `<select>`\n// element gets special love because it's special, and that's a fact!\n.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n height: @input-height;\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n\n select& {\n height: @input-height;\n line-height: @input-height;\n }\n\n textarea&,\n select[multiple]& {\n height: auto;\n }\n}\n","//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n.btn {\n display: inline-block;\n margin-bottom: 0; // For input.btn\n font-weight: @btn-font-weight;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n white-space: nowrap;\n .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base);\n .user-select(none);\n\n &,\n &:active,\n &.active {\n &:focus,\n &.focus {\n .tab-focus();\n }\n }\n\n &:hover,\n &:focus,\n &.focus {\n color: @btn-default-color;\n text-decoration: none;\n }\n\n &:active,\n &.active {\n outline: 0;\n background-image: none;\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n .opacity(.65);\n .box-shadow(none);\n }\n\n a& {\n &.disabled,\n fieldset[disabled] & {\n pointer-events: none; // Future-proof disabling of clicks on `<a>` elements\n }\n }\n}\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n.btn-default {\n .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);\n}\n.btn-primary {\n .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);\n}\n// Success appears as green\n.btn-success {\n .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);\n}\n// Info appears as blue-green\n.btn-info {\n .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);\n}\n// Warning appears as orange\n.btn-warning {\n .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);\n}\n// Danger and error appear as red\n.btn-danger {\n .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);\n}\n\n\n// Link buttons\n// -------------------------\n\n// Make a button look and behave like a link\n.btn-link {\n color: @link-color;\n font-weight: normal;\n border-radius: 0;\n\n &,\n &:active,\n &.active,\n &[disabled],\n fieldset[disabled] & {\n background-color: transparent;\n .box-shadow(none);\n }\n &,\n &:hover,\n &:focus,\n &:active {\n border-color: transparent;\n }\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n background-color: transparent;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @btn-link-disabled-color;\n text-decoration: none;\n }\n }\n}\n\n\n// Button Sizes\n// --------------------------------------------------\n\n.btn-lg {\n // line-height: ensure even-numbered height of button next to large input\n .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large);\n}\n.btn-sm {\n // line-height: ensure proper height of button next to small input\n .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n.btn-xs {\n .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n\n\n// Block button\n// --------------------------------------------------\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n.button-variant(@color; @background; @border) {\n color: @color;\n background-color: @background;\n border-color: @border;\n\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 25%);\n }\n &:hover {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n }\n &:active,\n &.active,\n .open > .dropdown-toggle& {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n\n &:hover,\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 17%);\n border-color: darken(@border, 25%);\n }\n }\n &:active,\n &.active,\n .open > .dropdown-toggle& {\n background-image: none;\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus,\n &.focus {\n background-color: @background;\n border-color: @border;\n }\n }\n\n .badge {\n color: @background;\n background-color: @color;\n }\n}\n\n// Button sizes\n.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n}\n","// Opacity\n\n.opacity(@opacity) {\n opacity: @opacity;\n // IE8 filter\n @opacity-ie: (@opacity * 100);\n filter: ~\"alpha(opacity=@{opacity-ie})\";\n}\n","//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `.opacity()` mixin here since it causes a bug with text\n// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.\n\n.fade {\n opacity: 0;\n .transition(opacity .15s linear);\n &.in {\n opacity: 1;\n }\n}\n\n.collapse {\n display: none;\n\n &.in { display: block; }\n tr&.in { display: table-row; }\n tbody&.in { display: table-row-group; }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n .transition-property(~\"height, visibility\");\n .transition-duration(.35s);\n .transition-timing-function(ease);\n}\n","//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: @caret-width-base dashed;\n border-top: @caret-width-base solid ~\"\\9\"; // IE8\n border-right: @caret-width-base solid transparent;\n border-left: @caret-width-base solid transparent;\n}\n\n// The dropdown wrapper (div)\n.dropup,\n.dropdown {\n position: relative;\n}\n\n// Prevent the focus on the dropdown toggle when closing dropdowns\n.dropdown-toggle:focus {\n outline: 0;\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: @zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0; // override default ul\n list-style: none;\n font-size: @font-size-base;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n background-color: @dropdown-bg;\n border: 1px solid @dropdown-fallback-border; // IE8 fallback\n border: 1px solid @dropdown-border;\n border-radius: @border-radius-base;\n .box-shadow(0 6px 12px rgba(0,0,0,.175));\n background-clip: padding-box;\n\n // Aligns the dropdown menu to right\n //\n // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`\n &.pull-right {\n right: 0;\n left: auto;\n }\n\n // Dividers (basically an hr) within the dropdown\n .divider {\n .nav-divider(@dropdown-divider-bg);\n }\n\n // Links within the dropdown menu\n > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: @line-height-base;\n color: @dropdown-link-color;\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n }\n}\n\n// Hover/Focus state\n.dropdown-menu > li > a {\n &:hover,\n &:focus {\n text-decoration: none;\n color: @dropdown-link-hover-color;\n background-color: @dropdown-link-hover-bg;\n }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-active-color;\n text-decoration: none;\n outline: 0;\n background-color: @dropdown-link-active-bg;\n }\n}\n\n// Disabled state\n//\n// Gray out text and ensure the hover/focus state remains gray\n\n.dropdown-menu > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-disabled-color;\n }\n\n // Nuke hover/focus effects\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none; // Remove CSS gradient\n .reset-filter();\n cursor: @cursor-disabled;\n }\n}\n\n// Open state for the dropdown\n.open {\n // Show the menu\n > .dropdown-menu {\n display: block;\n }\n\n // Remove the outline when :focus is triggered\n > a {\n outline: 0;\n }\n}\n\n// Menu positioning\n//\n// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\n// menu with the parent.\n.dropdown-menu-right {\n left: auto; // Reset the default from `.dropdown-menu`\n right: 0;\n}\n// With v3, we enabled auto-flipping if you have a dropdown within a right\n// aligned nav component. To enable the undoing of that, we provide an override\n// to restore the default dropdown menu alignment.\n//\n// This is only for left-aligning a dropdown menu within a `.navbar-right` or\n// `.pull-right` nav component.\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: @font-size-small;\n line-height: @line-height-base;\n color: @dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: (@zindex-dropdown - 10);\n}\n\n// Right aligned dropdowns\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n//\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n\n.dropup,\n.navbar-fixed-bottom .dropdown {\n // Reverse the caret\n .caret {\n border-top: 0;\n border-bottom: @caret-width-base dashed;\n border-bottom: @caret-width-base solid ~\"\\9\"; // IE8\n content: \"\";\n }\n // Different positioning for bottom up menu\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n }\n}\n\n\n// Component alignment\n//\n// Reiterate per navbar.less and the modified component alignment there.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-right {\n .dropdown-menu {\n .dropdown-menu-right();\n }\n // Necessary for overrides of the default right aligned menu.\n // Will remove come v4 in all likelihood.\n .dropdown-menu-left {\n .dropdown-menu-left();\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n.nav-divider(@color: #e5e5e5) {\n height: 1px;\n margin: ((@line-height-computed / 2) - 1) 0;\n overflow: hidden;\n background-color: @color;\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n","//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle; // match .btn alignment given font-size hack above\n > .btn {\n position: relative;\n float: left;\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active,\n &.active {\n z-index: 2;\n }\n }\n}\n\n// Prevent double borders when buttons are next to each other\n.btn-group {\n .btn + .btn,\n .btn + .btn-group,\n .btn-group + .btn,\n .btn-group + .btn-group {\n margin-left: -1px;\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n margin-left: -5px; // Offset the first child's margin\n &:extend(.clearfix all);\n\n .btn,\n .btn-group,\n .input-group {\n float: left;\n }\n > .btn,\n > .btn-group,\n > .input-group {\n margin-left: 5px;\n }\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n margin-left: 0;\n &:not(:last-child):not(.dropdown-toggle) {\n .border-right-radius(0);\n }\n}\n// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n .border-left-radius(0);\n}\n\n// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-right-radius(0);\n }\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n .border-left-radius(0);\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-xs > .btn { &:extend(.btn-xs); }\n.btn-group-sm > .btn { &:extend(.btn-sm); }\n.btn-group-lg > .btn { &:extend(.btn-lg); }\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n\n// The clickable button for toggling the menu\n// Remove the gradient and set the same inset shadow as the :active state\n.btn-group.open .dropdown-toggle {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n .box-shadow(none);\n }\n}\n\n\n// Reposition the caret\n.btn .caret {\n margin-left: 0;\n}\n// Carets in other button sizes\n.btn-lg .caret {\n border-width: @caret-width-large @caret-width-large 0;\n border-bottom-width: 0;\n}\n// Upside down carets for .dropup\n.dropup .btn-lg .caret {\n border-width: 0 @caret-width-large @caret-width-large;\n}\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n > .btn,\n > .btn-group,\n > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n }\n\n // Clear floats so dropdown menus can be properly placed\n > .btn-group {\n &:extend(.clearfix all);\n > .btn {\n float: none;\n }\n }\n\n > .btn + .btn,\n > .btn + .btn-group,\n > .btn-group + .btn,\n > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n }\n}\n\n.btn-group-vertical > .btn {\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n &:first-child:not(:last-child) {\n .border-top-radius(@btn-border-radius-base);\n .border-bottom-radius(0);\n }\n &:last-child:not(:first-child) {\n .border-top-radius(0);\n .border-bottom-radius(@btn-border-radius-base);\n }\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-bottom-radius(0);\n }\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n .border-top-radius(0);\n}\n\n\n// Justified button groups\n// ----------------------\n\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n > .btn,\n > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n }\n > .btn-group .btn {\n width: 100%;\n }\n\n > .btn-group .dropdown-menu {\n left: auto;\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n[data-toggle=\"buttons\"] {\n > .btn,\n > .btn-group > .btn {\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0,0,0,0);\n pointer-events: none;\n }\n }\n}\n","// Single side border-radius\n\n.border-top-radius(@radius) {\n border-top-right-radius: @radius;\n border-top-left-radius: @radius;\n}\n.border-right-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-top-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n border-bottom-left-radius: @radius;\n border-top-left-radius: @radius;\n}\n","//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.input-group {\n position: relative; // For dropdowns\n display: table;\n border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table\n\n // Undo padding and float of grid classes\n &[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n }\n\n .form-control {\n // Ensure that the input is always above the *appended* addon button for\n // proper border colors.\n position: relative;\n z-index: 2;\n\n // IE9 fubars the placeholder attribute in text inputs and the arrows on\n // select elements in input groups. To fix it, we float the input. Details:\n // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855\n float: left;\n\n width: 100%;\n margin-bottom: 0;\n\n &:focus {\n z-index: 3;\n }\n }\n}\n\n// Sizing options\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n .input-lg();\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n .input-sm();\n}\n\n\n// Display as table-cell\n// -------------------------\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n}\n// Addon and addon wrapper for buttons\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle; // Match the inputs\n}\n\n// Text input groups\n// -------------------------\n.input-group-addon {\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n font-weight: normal;\n line-height: 1;\n color: @input-color;\n text-align: center;\n background-color: @input-group-addon-bg;\n border: 1px solid @input-group-addon-border-color;\n border-radius: @input-border-radius;\n\n // Sizing\n &.input-sm {\n padding: @padding-small-vertical @padding-small-horizontal;\n font-size: @font-size-small;\n border-radius: @input-border-radius-small;\n }\n &.input-lg {\n padding: @padding-large-vertical @padding-large-horizontal;\n font-size: @font-size-large;\n border-radius: @input-border-radius-large;\n }\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n// Reset rounded corners\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n .border-right-radius(0);\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n .border-left-radius(0);\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n\n// Button input groups\n// -------------------------\n.input-group-btn {\n position: relative;\n // Jankily prevent input button groups from wrapping with `white-space` and\n // `font-size` in combination with `inline-block` on buttons.\n font-size: 0;\n white-space: nowrap;\n\n // Negative margin for spacing, position for bringing hovered/focused/actived\n // element above the siblings.\n > .btn {\n position: relative;\n + .btn {\n margin-left: -1px;\n }\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active {\n z-index: 2;\n }\n }\n\n // Negative margin to only have a 1px border between the two\n &:first-child {\n > .btn,\n > .btn-group {\n margin-right: -1px;\n }\n }\n &:last-child {\n > .btn,\n > .btn-group {\n z-index: 2;\n margin-left: -1px;\n }\n }\n}\n","//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// --------------------------------------------------\n\n.nav {\n margin-bottom: 0;\n padding-left: 0; // Override default ul/ol\n list-style: none;\n &:extend(.clearfix all);\n\n > li {\n position: relative;\n display: block;\n\n > a {\n position: relative;\n display: block;\n padding: @nav-link-padding;\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: @nav-link-hover-bg;\n }\n }\n\n // Disabled state sets text to gray and nukes hover/tab effects\n &.disabled > a {\n color: @nav-disabled-link-color;\n\n &:hover,\n &:focus {\n color: @nav-disabled-link-hover-color;\n text-decoration: none;\n background-color: transparent;\n cursor: @cursor-disabled;\n }\n }\n }\n\n // Open dropdowns\n .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @nav-link-hover-bg;\n border-color: @link-color;\n }\n }\n\n // Nav dividers (deprecated with v3.0.1)\n //\n // This should have been removed in v3 with the dropping of `.nav-list`, but\n // we missed it. We don't currently support this anywhere, but in the interest\n // of maintaining backward compatibility in case you use it, it's deprecated.\n .nav-divider {\n .nav-divider();\n }\n\n // Prevent IE8 from misplacing imgs\n //\n // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n > li > a > img {\n max-width: none;\n }\n}\n\n\n// Tabs\n// -------------------------\n\n// Give the tabs something to sit on\n.nav-tabs {\n border-bottom: 1px solid @nav-tabs-border-color;\n > li {\n float: left;\n // Make the list-items overlay the bottom border\n margin-bottom: -1px;\n\n // Actual tabs (as links)\n > a {\n margin-right: 2px;\n line-height: @line-height-base;\n border: 1px solid transparent;\n border-radius: @border-radius-base @border-radius-base 0 0;\n &:hover {\n border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;\n }\n }\n\n // Active state, and its :hover to override normal :hover\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-tabs-active-link-hover-color;\n background-color: @nav-tabs-active-link-hover-bg;\n border: 1px solid @nav-tabs-active-link-hover-border-color;\n border-bottom-color: transparent;\n cursor: default;\n }\n }\n }\n // pulling this in mainly for less shorthand\n &.nav-justified {\n .nav-justified();\n .nav-tabs-justified();\n }\n}\n\n\n// Pills\n// -------------------------\n.nav-pills {\n > li {\n float: left;\n\n // Links rendered as pills\n > a {\n border-radius: @nav-pills-border-radius;\n }\n + li {\n margin-left: 2px;\n }\n\n // Active state\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-pills-active-link-hover-color;\n background-color: @nav-pills-active-link-hover-bg;\n }\n }\n }\n}\n\n\n// Stacked pills\n.nav-stacked {\n > li {\n float: none;\n + li {\n margin-top: 2px;\n margin-left: 0; // no need for this gap between nav items\n }\n }\n}\n\n\n// Nav variations\n// --------------------------------------------------\n\n// Justified nav links\n// -------------------------\n\n.nav-justified {\n width: 100%;\n\n > li {\n float: none;\n > a {\n text-align: center;\n margin-bottom: 5px;\n }\n }\n\n > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n }\n\n @media (min-width: @screen-sm-min) {\n > li {\n display: table-cell;\n width: 1%;\n > a {\n margin-bottom: 0;\n }\n }\n }\n}\n\n// Move borders to anchors instead of bottom of list\n//\n// Mixin for adding on top the shared `.nav-justified` styles for our tabs\n.nav-tabs-justified {\n border-bottom: 0;\n\n > li > a {\n // Override margin from .nav-tabs\n margin-right: 0;\n border-radius: @border-radius-base;\n }\n\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border: 1px solid @nav-tabs-justified-link-border-color;\n }\n\n @media (min-width: @screen-sm-min) {\n > li > a {\n border-bottom: 1px solid @nav-tabs-justified-link-border-color;\n border-radius: @border-radius-base @border-radius-base 0 0;\n }\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border-bottom-color: @nav-tabs-justified-active-link-border-color;\n }\n }\n}\n\n\n// Tabbable tabs\n// -------------------------\n\n// Hide tabbable panes to start, show them when `.active`\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n\n\n// Dropdowns\n// -------------------------\n\n// Specific dropdowns\n.nav-tabs .dropdown-menu {\n // make dropdown border overlap tab border\n margin-top: -1px;\n // Remove the top rounded corners here since there is a hard edge above the menu\n .border-top-radius(0);\n}\n","//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)\n margin-bottom: @navbar-margin-bottom;\n border: 1px solid transparent;\n\n // Prevent floats from breaking the navbar\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: @navbar-border-radius;\n }\n}\n\n\n// Navbar heading\n//\n// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy\n// styling of responsive aspects.\n\n.navbar-header {\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n }\n}\n\n\n// Navbar collapse (body)\n//\n// Group your navbar content into this for easy collapsing and expanding across\n// various device sizes. By default, this content is collapsed when <768px, but\n// will expand past that for a horizontal display.\n//\n// To start (on mobile devices) the navbar links, forms, and buttons are stacked\n// vertically and include a `max-height` to overflow in case you have too much\n// content for the user's viewport.\n\n.navbar-collapse {\n overflow-x: visible;\n padding-right: @navbar-padding-horizontal;\n padding-left: @navbar-padding-horizontal;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255,255,255,.1);\n &:extend(.clearfix all);\n -webkit-overflow-scrolling: touch;\n\n &.in {\n overflow-y: auto;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n border-top: 0;\n box-shadow: none;\n\n &.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0; // Override default setting\n overflow: visible !important;\n }\n\n &.in {\n overflow-y: visible;\n }\n\n // Undo the collapse side padding for navbars with containers to ensure\n // alignment of right-aligned contents.\n .navbar-fixed-top &,\n .navbar-static-top &,\n .navbar-fixed-bottom & {\n padding-left: 0;\n padding-right: 0;\n }\n }\n}\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n .navbar-collapse {\n max-height: @navbar-collapse-max-height;\n\n @media (max-device-width: @screen-xs-min) and (orientation: landscape) {\n max-height: 200px;\n }\n }\n}\n\n\n// Both navbar header and collapse\n//\n// When a container is present, change the behavior of the header and collapse.\n\n.container,\n.container-fluid {\n > .navbar-header,\n > .navbar-collapse {\n margin-right: -@navbar-padding-horizontal;\n margin-left: -@navbar-padding-horizontal;\n\n @media (min-width: @grid-float-breakpoint) {\n margin-right: 0;\n margin-left: 0;\n }\n }\n}\n\n\n//\n// Navbar alignment options\n//\n// Display the navbar across the entirety of the page or fixed it to the top or\n// bottom of the page.\n\n// Static top (unfixed, but 100% wide) navbar\n.navbar-static-top {\n z-index: @zindex-navbar;\n border-width: 0 0 1px;\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n\n// Fix the top/bottom navbars when screen real estate supports it\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: @zindex-navbar-fixed;\n\n // Undo the rounded corners\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0; // override .navbar defaults\n border-width: 1px 0 0;\n}\n\n\n// Brand/project name\n\n.navbar-brand {\n float: left;\n padding: @navbar-padding-vertical @navbar-padding-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-computed;\n height: @navbar-height;\n\n &:hover,\n &:focus {\n text-decoration: none;\n }\n\n > img {\n display: block;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n .navbar > .container &,\n .navbar > .container-fluid & {\n margin-left: -@navbar-padding-horizontal;\n }\n }\n}\n\n\n// Navbar toggle\n//\n// Custom button for toggling the `.navbar-collapse`, powered by the collapse\n// JavaScript plugin.\n\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: @navbar-padding-horizontal;\n padding: 9px 10px;\n .navbar-vertical-align(34px);\n background-color: transparent;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n border-radius: @border-radius-base;\n\n // We remove the `outline` here, but later compensate by attaching `:hover`\n // styles to `:focus`.\n &:focus {\n outline: 0;\n }\n\n // Bars\n .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n }\n .icon-bar + .icon-bar {\n margin-top: 4px;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n display: none;\n }\n}\n\n\n// Navbar nav links\n//\n// Builds on top of the `.nav` components with its own modifier class to make\n// the nav the full height of the horizontal nav (above 768px).\n\n.navbar-nav {\n margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;\n\n > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: @line-height-computed;\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n > li > a,\n .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n > li > a {\n line-height: @line-height-computed;\n &:hover,\n &:focus {\n background-image: none;\n }\n }\n }\n }\n\n // Uncollapse the nav\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin: 0;\n\n > li {\n float: left;\n > a {\n padding-top: @navbar-padding-vertical;\n padding-bottom: @navbar-padding-vertical;\n }\n }\n }\n}\n\n\n// Navbar form\n//\n// Extension of the `.form-inline` with some extra flavor for optimum display in\n// our navbars.\n\n.navbar-form {\n margin-left: -@navbar-padding-horizontal;\n margin-right: -@navbar-padding-horizontal;\n padding: 10px @navbar-padding-horizontal;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n\n // Mixin behavior for optimum display\n .form-inline();\n\n .form-group {\n @media (max-width: @grid-float-breakpoint-max) {\n margin-bottom: 5px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n }\n\n // Vertically center in expanded, horizontal navbar\n .navbar-vertical-align(@input-height-base);\n\n // Undo 100% width for pull classes\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n .box-shadow(none);\n }\n}\n\n\n// Dropdown menus\n\n// Menu position and menu carets\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n .border-top-radius(0);\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n .border-top-radius(@navbar-border-radius);\n .border-bottom-radius(0);\n}\n\n\n// Buttons in navbars\n//\n// Vertically center a button within a navbar (when *not* in a form).\n\n.navbar-btn {\n .navbar-vertical-align(@input-height-base);\n\n &.btn-sm {\n .navbar-vertical-align(@input-height-small);\n }\n &.btn-xs {\n .navbar-vertical-align(22);\n }\n}\n\n\n// Text in navbars\n//\n// Add a class to make any element properly align itself vertically within the navbars.\n\n.navbar-text {\n .navbar-vertical-align(@line-height-computed);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin-left: @navbar-padding-horizontal;\n margin-right: @navbar-padding-horizontal;\n }\n}\n\n\n// Component alignment\n//\n// Repurpose the pull utilities as their own navbar utilities to avoid specificity\n// issues with parents and chaining. Only do this when the navbar is uncollapsed\n// though so that navbar contents properly stack and align in mobile.\n//\n// Declared after the navbar components to ensure more specificity on the margins.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-left { .pull-left(); }\n .navbar-right {\n .pull-right();\n margin-right: -@navbar-padding-horizontal;\n\n ~ .navbar-right {\n margin-right: 0;\n }\n }\n}\n\n\n// Alternate navbars\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n background-color: @navbar-default-bg;\n border-color: @navbar-default-border;\n\n .navbar-brand {\n color: @navbar-default-brand-color;\n &:hover,\n &:focus {\n color: @navbar-default-brand-hover-color;\n background-color: @navbar-default-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-default-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-default-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n }\n\n .navbar-toggle {\n border-color: @navbar-default-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-default-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-default-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: @navbar-default-border;\n }\n\n // Dropdown menu items\n .navbar-nav {\n // Remove background color from open dropdown\n > .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @navbar-default-link-active-bg;\n color: @navbar-default-link-active-color;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n > li > a {\n color: @navbar-default-link-color;\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n }\n }\n }\n\n\n // Links in navbars\n //\n // Add a class to ensure links outside the navbar nav are colored correctly.\n\n .navbar-link {\n color: @navbar-default-link-color;\n &:hover {\n color: @navbar-default-link-hover-color;\n }\n }\n\n .btn-link {\n color: @navbar-default-link-color;\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n }\n }\n }\n}\n\n// Inverse navbar\n\n.navbar-inverse {\n background-color: @navbar-inverse-bg;\n border-color: @navbar-inverse-border;\n\n .navbar-brand {\n color: @navbar-inverse-brand-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-brand-hover-color;\n background-color: @navbar-inverse-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-inverse-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-inverse-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n }\n\n // Darken the responsive nav toggle\n .navbar-toggle {\n border-color: @navbar-inverse-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-inverse-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-inverse-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: darken(@navbar-inverse-bg, 7%);\n }\n\n // Dropdowns\n .navbar-nav {\n > .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @navbar-inverse-link-active-bg;\n color: @navbar-inverse-link-active-color;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display\n .open .dropdown-menu {\n > .dropdown-header {\n border-color: @navbar-inverse-border;\n }\n .divider {\n background-color: @navbar-inverse-border;\n }\n > li > a {\n color: @navbar-inverse-link-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n }\n }\n }\n\n .navbar-link {\n color: @navbar-inverse-link-color;\n &:hover {\n color: @navbar-inverse-link-hover-color;\n }\n }\n\n .btn-link {\n color: @navbar-inverse-link-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n }\n }\n }\n}\n","// Navbar vertical align\n//\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n\n.navbar-vertical-align(@element-height) {\n margin-top: ((@navbar-height - @element-height) / 2);\n margin-bottom: ((@navbar-height - @element-height) / 2);\n}\n","//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.clearfix {\n .clearfix();\n}\n.center-block {\n .center-block();\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n\n\n// Toggling content\n// -------------------------\n\n// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n .text-hide();\n}\n\n\n// Hide from screenreaders and browsers\n//\n// Credit: HTML5 Boilerplate\n\n.hidden {\n display: none !important;\n}\n\n\n// For Affix plugin\n// -------------------------\n\n.affix {\n position: fixed;\n}\n","//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;\n margin-bottom: @line-height-computed;\n list-style: none;\n background-color: @breadcrumb-bg;\n border-radius: @border-radius-base;\n\n > li {\n display: inline-block;\n\n + li:before {\n content: \"@{breadcrumb-separator}\\00a0\"; // Unicode space added since inline-block means non-collapsing white-space\n padding: 0 5px;\n color: @breadcrumb-color;\n }\n }\n\n > .active {\n color: @breadcrumb-active-color;\n }\n}\n","//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: @line-height-computed 0;\n border-radius: @border-radius-base;\n\n > li {\n display: inline; // Remove list-style and block-level defaults\n > a,\n > span {\n position: relative;\n float: left; // Collapse white-space\n padding: @padding-base-vertical @padding-base-horizontal;\n line-height: @line-height-base;\n text-decoration: none;\n color: @pagination-color;\n background-color: @pagination-bg;\n border: 1px solid @pagination-border;\n margin-left: -1px;\n }\n &:first-child {\n > a,\n > span {\n margin-left: 0;\n .border-left-radius(@border-radius-base);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius-base);\n }\n }\n }\n\n > li > a,\n > li > span {\n &:hover,\n &:focus {\n z-index: 2;\n color: @pagination-hover-color;\n background-color: @pagination-hover-bg;\n border-color: @pagination-hover-border;\n }\n }\n\n > .active > a,\n > .active > span {\n &,\n &:hover,\n &:focus {\n z-index: 3;\n color: @pagination-active-color;\n background-color: @pagination-active-bg;\n border-color: @pagination-active-border;\n cursor: default;\n }\n }\n\n > .disabled {\n > span,\n > span:hover,\n > span:focus,\n > a,\n > a:hover,\n > a:focus {\n color: @pagination-disabled-color;\n background-color: @pagination-disabled-bg;\n border-color: @pagination-disabled-border;\n cursor: @cursor-disabled;\n }\n }\n}\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-lg {\n .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);\n}\n\n// Small\n.pagination-sm {\n .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n","// Pagination\n\n.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n > li {\n > a,\n > span {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n }\n &:first-child {\n > a,\n > span {\n .border-left-radius(@border-radius);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius);\n }\n }\n }\n}\n","//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n padding-left: 0;\n margin: @line-height-computed 0;\n list-style: none;\n text-align: center;\n &:extend(.clearfix all);\n li {\n display: inline;\n > a,\n > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: @pager-bg;\n border: 1px solid @pager-border;\n border-radius: @pager-border-radius;\n }\n\n > a:hover,\n > a:focus {\n text-decoration: none;\n background-color: @pager-hover-bg;\n }\n }\n\n .next {\n > a,\n > span {\n float: right;\n }\n }\n\n .previous {\n > a,\n > span {\n float: left;\n }\n }\n\n .disabled {\n > a,\n > a:hover,\n > a:focus,\n > span {\n color: @pager-disabled-color;\n background-color: @pager-bg;\n cursor: @cursor-disabled;\n }\n }\n}\n","//\n// Labels\n// --------------------------------------------------\n\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: @label-color;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n\n // Add hover effects, but only for links\n a& {\n &:hover,\n &:focus {\n color: @label-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n }\n\n // Empty labels collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for labels in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n}\n\n// Colors\n// Contextual variations (linked labels get darker on :hover)\n\n.label-default {\n .label-variant(@label-default-bg);\n}\n\n.label-primary {\n .label-variant(@label-primary-bg);\n}\n\n.label-success {\n .label-variant(@label-success-bg);\n}\n\n.label-info {\n .label-variant(@label-info-bg);\n}\n\n.label-warning {\n .label-variant(@label-warning-bg);\n}\n\n.label-danger {\n .label-variant(@label-danger-bg);\n}\n","// Labels\n\n.label-variant(@color) {\n background-color: @color;\n\n &[href] {\n &:hover,\n &:focus {\n background-color: darken(@color, 10%);\n }\n }\n}\n","//\n// Badges\n// --------------------------------------------------\n\n\n// Base class\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: @font-size-small;\n font-weight: @badge-font-weight;\n color: @badge-color;\n line-height: @badge-line-height;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: @badge-bg;\n border-radius: @badge-border-radius;\n\n // Empty badges collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for badges in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n\n .btn-xs &,\n .btn-group-xs > .btn & {\n top: 0;\n padding: 1px 5px;\n }\n\n // Hover state, but only for links\n a& {\n &:hover,\n &:focus {\n color: @badge-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n }\n\n // Account for badges in navs\n .list-group-item.active > &,\n .nav-pills > .active > a > & {\n color: @badge-active-color;\n background-color: @badge-active-bg;\n }\n\n .list-group-item > & {\n float: right;\n }\n\n .list-group-item > & + & {\n margin-right: 5px;\n }\n\n .nav-pills > li > a > & {\n margin-left: 3px;\n }\n}\n","//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n padding-top: @jumbotron-padding;\n padding-bottom: @jumbotron-padding;\n margin-bottom: @jumbotron-padding;\n color: @jumbotron-color;\n background-color: @jumbotron-bg;\n\n h1,\n .h1 {\n color: @jumbotron-heading-color;\n }\n\n p {\n margin-bottom: (@jumbotron-padding / 2);\n font-size: @jumbotron-font-size;\n font-weight: 200;\n }\n\n > hr {\n border-top-color: darken(@jumbotron-bg, 10%);\n }\n\n .container &,\n .container-fluid & {\n border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container\n padding-left: (@grid-gutter-width / 2);\n padding-right: (@grid-gutter-width / 2);\n }\n\n .container {\n max-width: 100%;\n }\n\n @media screen and (min-width: @screen-sm-min) {\n padding-top: (@jumbotron-padding * 1.6);\n padding-bottom: (@jumbotron-padding * 1.6);\n\n .container &,\n .container-fluid & {\n padding-left: (@jumbotron-padding * 2);\n padding-right: (@jumbotron-padding * 2);\n }\n\n h1,\n .h1 {\n font-size: @jumbotron-heading-font-size;\n }\n }\n}\n","//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.thumbnail {\n display: block;\n padding: @thumbnail-padding;\n margin-bottom: @line-height-computed;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(border .2s ease-in-out);\n\n > img,\n a > img {\n &:extend(.img-responsive);\n margin-left: auto;\n margin-right: auto;\n }\n\n // Add a hover state for linked versions only\n a&:hover,\n a&:focus,\n a&.active {\n border-color: @link-color;\n }\n\n // Image captions\n .caption {\n padding: @thumbnail-caption-padding;\n color: @thumbnail-caption-color;\n }\n}\n","//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n padding: @alert-padding;\n margin-bottom: @line-height-computed;\n border: 1px solid transparent;\n border-radius: @alert-border-radius;\n\n // Headings for larger alerts\n h4 {\n margin-top: 0;\n // Specified for the h4 to prevent conflicts of changing @headings-color\n color: inherit;\n }\n\n // Provide class for links that match alerts\n .alert-link {\n font-weight: @alert-link-font-weight;\n }\n\n // Improve alignment and spacing of inner content\n > p,\n > ul {\n margin-bottom: 0;\n }\n\n > p + p {\n margin-top: 5px;\n }\n}\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.\n.alert-dismissible {\n padding-right: (@alert-padding + 20);\n\n // Adjust close link position\n .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n }\n}\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n.alert-success {\n .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);\n}\n\n.alert-info {\n .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);\n}\n\n.alert-warning {\n .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);\n}\n\n.alert-danger {\n .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);\n}\n","// Alerts\n\n.alert-variant(@background; @border; @text-color) {\n background-color: @background;\n border-color: @border;\n color: @text-color;\n\n hr {\n border-top-color: darken(@border, 5%);\n }\n .alert-link {\n color: darken(@text-color, 10%);\n }\n}\n","//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -------------------------\n\n// WebKit\n@-webkit-keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n// Spec and IE10+\n@keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n\n// Bar itself\n// -------------------------\n\n// Outer container\n.progress {\n overflow: hidden;\n height: @line-height-computed;\n margin-bottom: @line-height-computed;\n background-color: @progress-bg;\n border-radius: @progress-border-radius;\n .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));\n}\n\n// Bar of progress\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: @font-size-small;\n line-height: @line-height-computed;\n color: @progress-bar-color;\n text-align: center;\n background-color: @progress-bar-bg;\n .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));\n .transition(width .6s ease);\n}\n\n// Striped bars\n//\n// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar-striped` class, which you just add to an existing\n// `.progress-bar`.\n.progress-striped .progress-bar,\n.progress-bar-striped {\n #gradient > .striped();\n background-size: 40px 40px;\n}\n\n// Call animation for the active one\n//\n// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar.active` approach.\n.progress.active .progress-bar,\n.progress-bar.active {\n .animation(progress-bar-stripes 2s linear infinite);\n}\n\n\n// Variations\n// -------------------------\n\n.progress-bar-success {\n .progress-bar-variant(@progress-bar-success-bg);\n}\n\n.progress-bar-info {\n .progress-bar-variant(@progress-bar-info-bg);\n}\n\n.progress-bar-warning {\n .progress-bar-variant(@progress-bar-warning-bg);\n}\n\n.progress-bar-danger {\n .progress-bar-variant(@progress-bar-danger-bg);\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Progress bars\n\n.progress-bar-variant(@color) {\n background-color: @color;\n\n // Deprecated parent class requirement as of v3.2.0\n .progress-striped & {\n #gradient > .striped();\n }\n}\n",".media {\n // Proper spacing between instances of .media\n margin-top: 15px;\n\n &:first-child {\n margin-top: 0;\n }\n}\n\n.media,\n.media-body {\n zoom: 1;\n overflow: hidden;\n}\n\n.media-body {\n width: 10000px;\n}\n\n.media-object {\n display: block;\n\n // Fix collapse in webkit from max-width: 100% and display: table-cell.\n &.img-thumbnail {\n max-width: none;\n }\n}\n\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n\n.media-middle {\n vertical-align: middle;\n}\n\n.media-bottom {\n vertical-align: bottom;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n\n// Media list variation\n//\n// Undo default ul/ol styles\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n","//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n // No need to set list-style: none; since .list-group-item is block level\n margin-bottom: 20px;\n padding-left: 0; // reset padding because ul and ol\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -1px;\n background-color: @list-group-bg;\n border: 1px solid @list-group-border;\n\n // Round the first and last items\n &:first-child {\n .border-top-radius(@list-group-border-radius);\n }\n &:last-child {\n margin-bottom: 0;\n .border-bottom-radius(@list-group-border-radius);\n }\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item,\nbutton.list-group-item {\n color: @list-group-link-color;\n\n .list-group-item-heading {\n color: @list-group-link-heading-color;\n }\n\n // Hover state\n &:hover,\n &:focus {\n text-decoration: none;\n color: @list-group-link-hover-color;\n background-color: @list-group-hover-bg;\n }\n}\n\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n\n.list-group-item {\n // Disabled state\n &.disabled,\n &.disabled:hover,\n &.disabled:focus {\n background-color: @list-group-disabled-bg;\n color: @list-group-disabled-color;\n cursor: @cursor-disabled;\n\n // Force color to inherit for custom content\n .list-group-item-heading {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-disabled-text-color;\n }\n }\n\n // Active class on item itself, not parent\n &.active,\n &.active:hover,\n &.active:focus {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: @list-group-active-color;\n background-color: @list-group-active-bg;\n border-color: @list-group-active-border;\n\n // Force color to inherit for custom content\n .list-group-item-heading,\n .list-group-item-heading > small,\n .list-group-item-heading > .small {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-active-text-color;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n.list-group-item-variant(success; @state-success-bg; @state-success-text);\n.list-group-item-variant(info; @state-info-bg; @state-info-text);\n.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);\n.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n","// List Groups\n\n.list-group-item-variant(@state; @background; @color) {\n .list-group-item-@{state} {\n color: @color;\n background-color: @background;\n\n a&,\n button& {\n color: @color;\n\n .list-group-item-heading {\n color: inherit;\n }\n\n &:hover,\n &:focus {\n color: @color;\n background-color: darken(@background, 5%);\n }\n &.active,\n &.active:hover,\n &.active:focus {\n color: #fff;\n background-color: @color;\n border-color: @color;\n }\n }\n }\n}\n","//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n margin-bottom: @line-height-computed;\n background-color: @panel-bg;\n border: 1px solid transparent;\n border-radius: @panel-border-radius;\n .box-shadow(0 1px 1px rgba(0,0,0,.05));\n}\n\n// Panel contents\n.panel-body {\n padding: @panel-body-padding;\n &:extend(.clearfix all);\n}\n\n// Optional heading\n.panel-heading {\n padding: @panel-heading-padding;\n border-bottom: 1px solid transparent;\n .border-top-radius((@panel-border-radius - 1));\n\n > .dropdown .dropdown-toggle {\n color: inherit;\n }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: ceil((@font-size-base * 1.125));\n color: inherit;\n\n > a,\n > small,\n > .small,\n > small > a,\n > .small > a {\n color: inherit;\n }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n padding: @panel-footer-padding;\n background-color: @panel-footer-bg;\n border-top: 1px solid @panel-inner-border;\n .border-bottom-radius((@panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n > .list-group,\n > .panel-collapse > .list-group {\n margin-bottom: 0;\n\n .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n }\n\n // Add border top radius for first one\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n .border-top-radius((@panel-border-radius - 1));\n }\n }\n\n // Add border bottom radius for last one\n &:last-child {\n .list-group-item:last-child {\n border-bottom: 0;\n .border-bottom-radius((@panel-border-radius - 1));\n }\n }\n }\n > .panel-heading + .panel-collapse > .list-group {\n .list-group-item:first-child {\n .border-top-radius(0);\n }\n }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n .list-group-item:first-child {\n border-top-width: 0;\n }\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n > .table,\n > .table-responsive > .table,\n > .panel-collapse > .table {\n margin-bottom: 0;\n\n caption {\n padding-left: @panel-body-padding;\n padding-right: @panel-body-padding;\n }\n }\n // Add border top radius for first one\n > .table:first-child,\n > .table-responsive:first-child > .table:first-child {\n .border-top-radius((@panel-border-radius - 1));\n\n > thead:first-child,\n > tbody:first-child {\n > tr:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n border-top-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-top-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n // Add border bottom radius for last one\n > .table:last-child,\n > .table-responsive:last-child > .table:last-child {\n .border-bottom-radius((@panel-border-radius - 1));\n\n > tbody:last-child,\n > tfoot:last-child {\n > tr:last-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n border-bottom-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-bottom-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n > .panel-body + .table,\n > .panel-body + .table-responsive,\n > .table + .panel-body,\n > .table-responsive + .panel-body {\n border-top: 1px solid @table-border-color;\n }\n > .table > tbody:first-child > tr:first-child th,\n > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n }\n > .table-bordered,\n > .table-responsive > .table-bordered {\n border: 0;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n > thead,\n > tbody {\n > tr:first-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n > tbody,\n > tfoot {\n > tr:last-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n }\n > .table-responsive {\n border: 0;\n margin-bottom: 0;\n }\n}\n\n\n// Collapsible panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n margin-bottom: @line-height-computed;\n\n // Tighten up margin so it's only between panels\n .panel {\n margin-bottom: 0;\n border-radius: @panel-border-radius;\n\n + .panel {\n margin-top: 5px;\n }\n }\n\n .panel-heading {\n border-bottom: 0;\n\n + .panel-collapse > .panel-body,\n + .panel-collapse > .list-group {\n border-top: 1px solid @panel-inner-border;\n }\n }\n\n .panel-footer {\n border-top: 0;\n + .panel-collapse .panel-body {\n border-bottom: 1px solid @panel-inner-border;\n }\n }\n}\n\n\n// Contextual variations\n.panel-default {\n .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);\n}\n.panel-primary {\n .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);\n}\n.panel-success {\n .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);\n}\n.panel-info {\n .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);\n}\n.panel-warning {\n .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);\n}\n.panel-danger {\n .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);\n}\n","// Panels\n\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n border-color: @border;\n\n & > .panel-heading {\n color: @heading-text-color;\n background-color: @heading-bg-color;\n border-color: @heading-border;\n\n + .panel-collapse > .panel-body {\n border-top-color: @border;\n }\n .badge {\n color: @heading-bg-color;\n background-color: @heading-text-color;\n }\n }\n & > .panel-footer {\n + .panel-collapse > .panel-body {\n border-bottom-color: @border;\n }\n }\n}\n","// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n }\n}\n\n// Modifier class for 16:9 aspect ratio\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n\n// Modifier class for 4:3 aspect ratio\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n","//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: @well-bg;\n border: 1px solid @well-border;\n border-radius: @border-radius-base;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));\n blockquote {\n border-color: #ddd;\n border-color: rgba(0,0,0,.15);\n }\n}\n\n// Sizes\n.well-lg {\n padding: 24px;\n border-radius: @border-radius-large;\n}\n.well-sm {\n padding: 9px;\n border-radius: @border-radius-small;\n}\n","//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n float: right;\n font-size: (@font-size-base * 1.5);\n font-weight: @close-font-weight;\n line-height: 1;\n color: @close-color;\n text-shadow: @close-text-shadow;\n .opacity(.2);\n\n &:hover,\n &:focus {\n color: @close-color;\n text-decoration: none;\n cursor: pointer;\n .opacity(.5);\n }\n\n // Additional properties for button version\n // iOS requires the button element instead of an anchor tag.\n // If you want the anchor version, it requires `href=\"#\"`.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n button& {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n }\n}\n","//\n// Modals\n// --------------------------------------------------\n\n// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal;\n -webkit-overflow-scrolling: touch;\n\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n\n // When fading in the modal, animate it to slide down\n &.fade .modal-dialog {\n .translate(0, -25%);\n .transition-transform(~\"0.3s ease-out\");\n }\n &.in .modal-dialog { .translate(0, 0) }\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n background-color: @modal-content-bg;\n border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n border: 1px solid @modal-content-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 3px 9px rgba(0,0,0,.5));\n background-clip: padding-box;\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal-background;\n background-color: @modal-backdrop-bg;\n // Fade for backdrop\n &.fade { .opacity(0); }\n &.in { .opacity(@modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n padding: @modal-title-padding;\n border-bottom: 1px solid @modal-header-border-color;\n &:extend(.clearfix all);\n}\n// Close icon\n.modal-header .close {\n margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n margin: 0;\n line-height: @modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n padding: @modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n padding: @modal-inner-padding;\n text-align: right; // right align buttons\n border-top: 1px solid @modal-footer-border-color;\n &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons\n\n // Properly space out buttons\n .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n }\n // but override that for button groups\n .btn-group .btn + .btn {\n margin-left: -1px;\n }\n // and override it for block buttons as well\n .btn-block + .btn-block {\n margin-left: 0;\n }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@media (min-width: @screen-sm-min) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n width: @modal-md;\n margin: 30px auto;\n }\n .modal-content {\n .box-shadow(0 5px 15px rgba(0,0,0,.5));\n }\n\n // Modal sizes\n .modal-sm { width: @modal-sm; }\n}\n\n@media (min-width: @screen-md-min) {\n .modal-lg { width: @modal-lg; }\n}\n","//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n position: absolute;\n z-index: @zindex-tooltip;\n display: block;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-small;\n\n .opacity(0);\n\n &.in { .opacity(@tooltip-opacity); }\n &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }\n &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }\n &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }\n &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: @tooltip-max-width;\n padding: 3px 8px;\n color: @tooltip-color;\n text-align: center;\n background-color: @tooltip-bg;\n border-radius: @border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1\n.tooltip {\n &.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-left .tooltip-arrow {\n bottom: 0;\n right: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-right .tooltip-arrow {\n bottom: 0;\n left: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;\n border-right-color: @tooltip-arrow-color;\n }\n &.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-left-color: @tooltip-arrow-color;\n }\n &.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-left .tooltip-arrow {\n top: 0;\n right: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-right .tooltip-arrow {\n top: 0;\n left: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n}\n",".reset-text() {\n font-family: @font-family-base;\n // We deliberately do NOT reset font-size.\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: @line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n}\n","//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: @zindex-popover;\n display: none;\n max-width: @popover-max-width;\n padding: 1px;\n // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-base;\n\n background-color: @popover-bg;\n background-clip: padding-box;\n border: 1px solid @popover-fallback-border-color;\n border: 1px solid @popover-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 5px 10px rgba(0,0,0,.2));\n\n // Offset the popover to account for the popover arrow\n &.top { margin-top: -@popover-arrow-width; }\n &.right { margin-left: @popover-arrow-width; }\n &.bottom { margin-top: @popover-arrow-width; }\n &.left { margin-left: -@popover-arrow-width; }\n}\n\n.popover-title {\n margin: 0; // reset heading margin\n padding: 8px 14px;\n font-size: @font-size-base;\n background-color: @popover-title-bg;\n border-bottom: 1px solid darken(@popover-title-bg, 5%);\n border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;\n}\n\n.popover-content {\n padding: 9px 14px;\n}\n\n// Arrows\n//\n// .arrow is outer, .arrow:after is inner\n\n.popover > .arrow {\n &,\n &:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n }\n}\n.popover > .arrow {\n border-width: @popover-arrow-outer-width;\n}\n.popover > .arrow:after {\n border-width: @popover-arrow-width;\n content: \"\";\n}\n\n.popover {\n &.top > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-top-color: @popover-arrow-outer-color;\n bottom: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n bottom: 1px;\n margin-left: -@popover-arrow-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-color;\n }\n }\n &.right > .arrow {\n top: 50%;\n left: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-right-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n left: 1px;\n bottom: -@popover-arrow-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-color;\n }\n }\n &.bottom > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-bottom-color: @popover-arrow-outer-color;\n top: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n top: 1px;\n margin-left: -@popover-arrow-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-color;\n }\n }\n\n &.left > .arrow {\n top: 50%;\n right: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-right-width: 0;\n border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-left-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: @popover-arrow-color;\n bottom: -@popover-arrow-width;\n }\n }\n}\n","//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n\n > .item {\n display: none;\n position: relative;\n .transition(.6s ease-in-out left);\n\n // Account for jankitude on images\n > img,\n > a > img {\n &:extend(.img-responsive);\n line-height: 1;\n }\n\n // WebKit CSS3 transforms for supported devices\n @media all and (transform-3d), (-webkit-transform-3d) {\n .transition-transform(~'0.6s ease-in-out');\n .backface-visibility(~'hidden');\n .perspective(1000px);\n\n &.next,\n &.active.right {\n .translate3d(100%, 0, 0);\n left: 0;\n }\n &.prev,\n &.active.left {\n .translate3d(-100%, 0, 0);\n left: 0;\n }\n &.next.left,\n &.prev.right,\n &.active {\n .translate3d(0, 0, 0);\n left: 0;\n }\n }\n }\n\n > .active,\n > .next,\n > .prev {\n display: block;\n }\n\n > .active {\n left: 0;\n }\n\n > .next,\n > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n }\n\n > .next {\n left: 100%;\n }\n > .prev {\n left: -100%;\n }\n > .next.left,\n > .prev.right {\n left: 0;\n }\n\n > .active.left {\n left: -100%;\n }\n > .active.right {\n left: 100%;\n }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: @carousel-control-width;\n .opacity(@carousel-control-opacity);\n font-size: @carousel-control-font-size;\n color: @carousel-control-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug\n // We can't have this transition here because WebKit cancels the carousel\n // animation if you trip this while in the middle of another animation.\n\n // Set gradients for backgrounds\n &.left {\n #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));\n }\n &.right {\n left: auto;\n right: 0;\n #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));\n }\n\n // Hover/focus state\n &:hover,\n &:focus {\n outline: 0;\n color: @carousel-control-color;\n text-decoration: none;\n .opacity(.9);\n }\n\n // Toggles\n .icon-prev,\n .icon-next,\n .glyphicon-chevron-left,\n .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n }\n .icon-prev,\n .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n }\n .icon-next,\n .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n }\n .icon-prev,\n .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n }\n\n\n .icon-prev {\n &:before {\n content: '\\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n }\n }\n .icon-next {\n &:before {\n content: '\\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n }\n }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n\n li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid @carousel-indicator-border-color;\n border-radius: 10px;\n cursor: pointer;\n\n // IE8-9 hack for event handling\n //\n // Internet Explorer 8-9 does not support clicks on elements without a set\n // `background-color`. We cannot use `filter` since that's not viewed as a\n // background color by the browser. Thus, a hack is needed.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer\n //\n // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n // set alpha transparency for the best results possible.\n background-color: #000 \\9; // IE8\n background-color: rgba(0,0,0,0); // IE9\n }\n .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: @carousel-indicator-active-bg;\n }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: @carousel-caption-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n & .btn {\n text-shadow: none; // No shadow for button elements in carousel-caption\n }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: @screen-sm-min) {\n\n // Scale up the controls a smidge\n .carousel-control {\n .glyphicon-chevron-left,\n .glyphicon-chevron-right,\n .icon-prev,\n .icon-next {\n width: (@carousel-control-font-size * 1.5);\n height: (@carousel-control-font-size * 1.5);\n margin-top: (@carousel-control-font-size / -2);\n font-size: (@carousel-control-font-size * 1.5);\n }\n .glyphicon-chevron-left,\n .icon-prev {\n margin-left: (@carousel-control-font-size / -2);\n }\n .glyphicon-chevron-right,\n .icon-next {\n margin-right: (@carousel-control-font-size / -2);\n }\n }\n\n // Show and left align the captions\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n\n // Move up the indicators\n .carousel-indicators {\n bottom: 20px;\n }\n}\n","// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n// contenteditable attribute is included anywhere else in the document.\n// Otherwise it causes space to appear at the top and bottom of elements\n// that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n// `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n.clearfix() {\n &:before,\n &:after {\n content: \" \"; // 1\n display: table; // 2\n }\n &:after {\n clear: both;\n }\n}\n","// Center-align a block level element\n\n.center-block() {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n","// CSS image replacement\n//\n// Heads up! v3 launched with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (has been removed in v4)\n.hide-text() {\n font: ~\"0/0\" a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n// New mixin to use as of v3.0.1\n.text-hide() {\n .hide-text();\n}\n","//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: http://getbootstrap.com/getting-started/#support-ie10-width\n// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/\n// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@-ms-viewport {\n width: device-width;\n}\n\n\n// Visibility utilities\n// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n .responsive-invisibility();\n}\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n\n.visible-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-visibility();\n }\n}\n.visible-xs-block {\n @media (max-width: @screen-xs-max) {\n display: block !important;\n }\n}\n.visible-xs-inline {\n @media (max-width: @screen-xs-max) {\n display: inline !important;\n }\n}\n.visible-xs-inline-block {\n @media (max-width: @screen-xs-max) {\n display: inline-block !important;\n }\n}\n\n.visible-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-visibility();\n }\n}\n.visible-sm-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: block !important;\n }\n}\n.visible-sm-inline {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline !important;\n }\n}\n.visible-sm-inline-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline-block !important;\n }\n}\n\n.visible-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-visibility();\n }\n}\n.visible-md-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: block !important;\n }\n}\n.visible-md-inline {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline !important;\n }\n}\n.visible-md-inline-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline-block !important;\n }\n}\n\n.visible-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-visibility();\n }\n}\n.visible-lg-block {\n @media (min-width: @screen-lg-min) {\n display: block !important;\n }\n}\n.visible-lg-inline {\n @media (min-width: @screen-lg-min) {\n display: inline !important;\n }\n}\n.visible-lg-inline-block {\n @media (min-width: @screen-lg-min) {\n display: inline-block !important;\n }\n}\n\n.hidden-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-invisibility();\n }\n}\n.hidden-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-invisibility();\n }\n}\n.hidden-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-invisibility();\n }\n}\n.hidden-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-invisibility();\n }\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n// Note: Deprecated .visible-print as of v3.2.0\n.visible-print {\n .responsive-invisibility();\n\n @media print {\n .responsive-visibility();\n }\n}\n.visible-print-block {\n display: none !important;\n\n @media print {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n\n @media print {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n\n @media print {\n display: inline-block !important;\n }\n}\n\n.hidden-print {\n @media print {\n .responsive-invisibility();\n }\n}\n","// Responsive utilities\n\n//\n// More easily include all the states for responsive-utilities.less.\n.responsive-visibility() {\n display: block !important;\n table& { display: table !important; }\n tr& { display: table-row !important; }\n th&,\n td& { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n display: none !important;\n}\n"]} \ No newline at end of file
diff --git a/library/foundation/css/foundation.css b/library/foundation/css/foundation.css
index 83a0f3d05..e8e17a974 100644
--- a/library/foundation/css/foundation.css
+++ b/library/foundation/css/foundation.css
@@ -1,83 +1,409 @@
-meta.foundation-version {
- font-family: "/5.5.2/"; }
+@charset "UTF-8";
+/**
+ * Foundation for Sites by ZURB
+ * Version 6.2.3
+ * foundation.zurb.com
+ * Licensed under MIT Open Source
+ */
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
+/**
+ * 1. Set default font family to sans-serif.
+ * 2. Prevent iOS and IE text size adjust after device orientation change,
+ * without disabling user zoom.
+ */
+html {
+ font-family: sans-serif;
+ /* 1 */
+ -ms-text-size-adjust: 100%;
+ /* 2 */
+ -webkit-text-size-adjust: 100%;
+ /* 2 */ }
+
+/**
+ * Remove default margin.
+ */
+body {
+ margin: 0; }
-meta.foundation-mq-small {
- font-family: "/only screen/";
- width: 0; }
+/* HTML5 display definitions
+ ========================================================================== */
+/**
+ * Correct `block` display not defined for any HTML5 element in IE 8/9.
+ * Correct `block` display not defined for `details` or `summary` in IE 10/11
+ * and Firefox.
+ * Correct `block` display not defined for `main` in IE 11.
+ */
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+ display: block; }
-meta.foundation-mq-small-only {
- font-family: "/only screen and (max-width: 40em)/";
- width: 0; }
+/**
+ * 1. Correct `inline-block` display not defined in IE 8/9.
+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
+ */
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+ /* 1 */
+ vertical-align: baseline;
+ /* 2 */ }
+
+/**
+ * Prevent modern browsers from displaying `audio` without controls.
+ * Remove excess height in iOS 5 devices.
+ */
+audio:not([controls]) {
+ display: none;
+ height: 0; }
+
+/**
+ * Address `[hidden]` styling not present in IE 8/9/10.
+ * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
+ */
+[hidden],
+template {
+ display: none; }
-meta.foundation-mq-medium {
- font-family: "/only screen and (min-width:40.0625em)/";
- width: 40.0625em; }
+/* Links
+ ========================================================================== */
+/**
+ * Remove the gray background color from active links in IE 10.
+ */
+a {
+ background-color: transparent; }
-meta.foundation-mq-medium-only {
- font-family: "/only screen and (min-width:40.0625em) and (max-width:64em)/";
- width: 40.0625em; }
+/**
+ * Improve readability of focused elements when they are also in an
+ * active/hover state.
+ */
+a:active,
+a:hover {
+ outline: 0; }
+
+/* Text-level semantics
+ ========================================================================== */
+/**
+ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
+ */
+abbr[title] {
+ border-bottom: 1px dotted; }
+
+/**
+ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
+ */
+b,
+strong {
+ font-weight: bold; }
-meta.foundation-mq-large {
- font-family: "/only screen and (min-width:64.0625em)/";
- width: 64.0625em; }
+/**
+ * Address styling not present in Safari and Chrome.
+ */
+dfn {
+ font-style: italic; }
-meta.foundation-mq-large-only {
- font-family: "/only screen and (min-width:64.0625em) and (max-width:90em)/";
- width: 64.0625em; }
+/**
+ * Address variable `h1` font-size and margin within `section` and `article`
+ * contexts in Firefox 4+, Safari, and Chrome.
+ */
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0; }
+
+/**
+ * Address styling not present in IE 8/9.
+ */
+mark {
+ background: #ff0;
+ color: #000; }
+
+/**
+ * Address inconsistent and variable font size in all browsers.
+ */
+small {
+ font-size: 80%; }
+
+/**
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
+ */
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline; }
-meta.foundation-mq-xlarge {
- font-family: "/only screen and (min-width:90.0625em)/";
- width: 90.0625em; }
+sup {
+ top: -0.5em; }
-meta.foundation-mq-xlarge-only {
- font-family: "/only screen and (min-width:90.0625em) and (max-width:120em)/";
- width: 90.0625em; }
+sub {
+ bottom: -0.25em; }
-meta.foundation-mq-xxlarge {
- font-family: "/only screen and (min-width:120.0625em)/";
- width: 120.0625em; }
+/* Embedded content
+ ========================================================================== */
+/**
+ * Remove border when inside `a` element in IE 8/9/10.
+ */
+img {
+ border: 0; }
-meta.foundation-data-attribute-namespace {
- font-family: false; }
+/**
+ * Correct overflow not hidden in IE 9/10/11.
+ */
+svg:not(:root) {
+ overflow: hidden; }
-html, body {
- height: 100%; }
+/* Grouping content
+ ========================================================================== */
+/**
+ * Address margin not present in IE 8/9 and Safari.
+ */
+figure {
+ margin: 1em 40px; }
+
+/**
+ * Address differences between Firefox and other browsers.
+ */
+hr {
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0; }
+
+/**
+ * Contain overflow in all browsers.
+ */
+pre {
+ overflow: auto; }
+
+/**
+ * Address odd `em`-unit font size rendering in all browsers.
+ */
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em; }
+
+/* Forms
+ ========================================================================== */
+/**
+ * Known limitation: by default, Chrome and Safari on OS X allow very limited
+ * styling of `select`, unless a `border` property is set.
+ */
+/**
+ * 1. Correct color not being inherited.
+ * Known issue: affects color of disabled elements.
+ * 2. Correct font properties not being inherited.
+ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
+ */
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit;
+ /* 1 */
+ font: inherit;
+ /* 2 */
+ margin: 0;
+ /* 3 */ }
+
+/**
+ * Address `overflow` set to `hidden` in IE 8/9/10/11.
+ */
+button {
+ overflow: visible; }
+
+/**
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
+ * All other form control elements do not inherit `text-transform` values.
+ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
+ * Correct `select` style inheritance in Firefox.
+ */
+button,
+select {
+ text-transform: none; }
+
+/**
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
+ * and `video` controls.
+ * 2. Correct inability to style clickable `input` types in iOS.
+ * 3. Improve usability and consistency of cursor style between image-type
+ * `input` and others.
+ */
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button;
+ /* 2 */
+ cursor: pointer;
+ /* 3 */ }
+
+/**
+ * Re-set default cursor for disabled elements.
+ */
+button[disabled],
+html input[disabled] {
+ cursor: not-allowed; }
+
+/**
+ * Remove inner padding and border in Firefox 4+.
+ */
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0; }
+
+/**
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
+ * the UA stylesheet.
+ */
+input {
+ line-height: normal; }
+
+/**
+ * It's recommended that you don't attempt to style these elements.
+ * Firefox's implementation doesn't respect box-sizing, padding, or width.
+ *
+ * 1. Address box sizing set to `content-box` in IE 8/9/10.
+ * 2. Remove excess padding in IE 8/9/10.
+ */
+input[type="checkbox"],
+input[type="radio"] {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ /* 1 */
+ padding: 0;
+ /* 2 */ }
+
+/**
+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
+ * `font-size` values of the `input`, it causes the cursor style of the
+ * decrement button to change from `default` to `text`.
+ */
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto; }
+
+/**
+ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
+ */
+input[type="search"] {
+ -webkit-appearance: textfield;
+ /* 1 */
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ /* 2 */ }
+
+/**
+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
+ * Safari (but not Chrome) clips the cancel button when the search input has
+ * padding (and `textfield` appearance).
+ */
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none; }
+
+/**
+ * Define consistent border, margin, and padding.
+ * [NOTE] We don't enable this ruleset in Foundation, because we want the <fieldset> element to have plain styling.
+ */
+/* fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+ } */
+/**
+ * 1. Correct `color` not being inherited in IE 8/9/10/11.
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
+ */
+legend {
+ border: 0;
+ /* 1 */
+ padding: 0;
+ /* 2 */ }
+
+/**
+ * Remove default vertical scrollbar in IE 8/9/10/11.
+ */
+textarea {
+ overflow: auto; }
+
+/**
+ * Don't inherit the `font-weight` (applied by a rule above).
+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
+ */
+optgroup {
+ font-weight: bold; }
+
+/* Tables
+ ========================================================================== */
+/**
+ * Remove most spacing between table cells.
+ */
+table {
+ border-collapse: collapse;
+ border-spacing: 0; }
+
+td,
+th {
+ padding: 0; }
+
+.foundation-mq {
+ font-family: "small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"; }
html {
- box-sizing: border-box; }
+ font-size: 100%;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box; }
*,
-*:before,
-*:after {
+*::before,
+*::after {
-webkit-box-sizing: inherit;
- -moz-box-sizing: inherit;
- box-sizing: inherit; }
-
-html,
-body {
- font-size: 100%; }
+ box-sizing: inherit; }
body {
- background: #fff;
- color: #222;
- cursor: auto;
+ padding: 0;
+ margin: 0;
font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
- font-style: normal;
font-weight: normal;
line-height: 1.5;
- margin: 0;
- padding: 0;
- position: relative; }
-
-a:hover {
- cursor: pointer; }
+ color: #0a0a0a;
+ background: #fefefe;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale; }
img {
max-width: 100%;
- height: auto; }
+ height: auto;
+ -ms-interpolation-mode: bicubic;
+ display: inline-block;
+ vertical-align: middle; }
-img {
- -ms-interpolation-mode: bicubic; }
+textarea {
+ height: auto;
+ min-height: 50px;
+ border-radius: 0; }
+
+select {
+ width: 100%;
+ border-radius: 0; }
#map_canvas img,
#map_canvas embed,
@@ -90,6235 +416,3163 @@ img {
.mqa-display object {
max-width: none !important; }
-.left {
- float: left !important; }
-
-.right {
- float: right !important; }
-
-.clearfix:before, .clearfix:after {
- content: " ";
- display: table; }
-.clearfix:after {
- clear: both; }
-
-.hide {
- display: none; }
-
-.invisible {
- visibility: hidden; }
-
-.antialiased {
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale; }
-
-img {
- display: inline-block;
- vertical-align: middle; }
+button {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ background: transparent;
+ padding: 0;
+ border: 0;
+ border-radius: 0;
+ line-height: 1; }
+ [data-whatinput='mouse'] button {
+ outline: 0; }
-textarea {
- height: auto;
- min-height: 50px; }
+.is-visible {
+ display: block !important; }
-select {
- width: 100%; }
+.is-hidden {
+ display: none !important; }
.row {
- margin: 0 auto;
- max-width: 62.5rem;
- width: 100%; }
- .row:before, .row:after {
- content: " ";
+ max-width: 75rem;
+ margin-left: auto;
+ margin-right: auto; }
+ .row::before, .row::after {
+ content: ' ';
display: table; }
- .row:after {
+ .row::after {
clear: both; }
- .row.collapse > .column,
- .row.collapse > .columns {
+ .row.collapse > .column, .row.collapse > .columns {
padding-left: 0;
padding-right: 0; }
- .row.collapse .row {
- margin-left: 0;
- margin-right: 0; }
.row .row {
- margin: 0 -0.9375rem;
max-width: none;
- width: auto; }
- .row .row:before, .row .row:after {
- content: " ";
- display: table; }
- .row .row:after {
- clear: both; }
+ margin-left: -0.625rem;
+ margin-right: -0.625rem; }
+ @media screen and (min-width: 40em) {
+ .row .row {
+ margin-left: -0.9375rem;
+ margin-right: -0.9375rem; } }
.row .row.collapse {
- margin: 0;
- max-width: none;
- width: auto; }
- .row .row.collapse:before, .row .row.collapse:after {
- content: " ";
- display: table; }
- .row .row.collapse:after {
- clear: both; }
-
-.column,
-.columns {
- padding-left: 0.9375rem;
- padding-right: 0.9375rem;
+ margin-left: 0;
+ margin-right: 0; }
+ .row.expanded {
+ max-width: none; }
+ .row.expanded .row {
+ margin-left: auto;
+ margin-right: auto; }
+
+.column, .columns {
width: 100%;
- float: left; }
+ float: left;
+ padding-left: 0.625rem;
+ padding-right: 0.625rem; }
+ @media screen and (min-width: 40em) {
+ .column, .columns {
+ padding-left: 0.9375rem;
+ padding-right: 0.9375rem; } }
+ .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {
+ float: right; }
+ .column.end:last-child:last-child, .end.columns:last-child:last-child {
+ float: left; }
-.column + .column:last-child,
-.columns + .column:last-child, .column +
-.columns:last-child,
-.columns +
-.columns:last-child {
- float: right; }
-.column + .column.end,
-.columns + .column.end, .column +
-.columns.end,
-.columns +
-.columns.end {
- float: left; }
+.column.row.row, .row.row.columns {
+ float: none; }
+ .row .column.row.row, .row .row.row.columns {
+ padding-left: 0;
+ padding-right: 0;
+ margin-left: 0;
+ margin-right: 0; }
-@media only screen {
- .small-push-0 {
- position: relative;
- left: 0;
- right: auto; }
+.small-1 {
+ width: 8.33333%; }
- .small-pull-0 {
- position: relative;
- right: 0;
- left: auto; }
+.small-push-1 {
+ position: relative;
+ left: 8.33333%; }
- .small-push-1 {
- position: relative;
- left: 8.33333%;
- right: auto; }
+.small-pull-1 {
+ position: relative;
+ left: -8.33333%; }
- .small-pull-1 {
- position: relative;
- right: 8.33333%;
- left: auto; }
+.small-offset-0 {
+ margin-left: 0%; }
- .small-push-2 {
- position: relative;
- left: 16.66667%;
- right: auto; }
+.small-2 {
+ width: 16.66667%; }
- .small-pull-2 {
- position: relative;
- right: 16.66667%;
- left: auto; }
+.small-push-2 {
+ position: relative;
+ left: 16.66667%; }
- .small-push-3 {
- position: relative;
- left: 25%;
- right: auto; }
+.small-pull-2 {
+ position: relative;
+ left: -16.66667%; }
- .small-pull-3 {
- position: relative;
- right: 25%;
- left: auto; }
+.small-offset-1 {
+ margin-left: 8.33333%; }
- .small-push-4 {
- position: relative;
- left: 33.33333%;
- right: auto; }
+.small-3 {
+ width: 25%; }
- .small-pull-4 {
- position: relative;
- right: 33.33333%;
- left: auto; }
+.small-push-3 {
+ position: relative;
+ left: 25%; }
- .small-push-5 {
- position: relative;
- left: 41.66667%;
- right: auto; }
+.small-pull-3 {
+ position: relative;
+ left: -25%; }
- .small-pull-5 {
- position: relative;
- right: 41.66667%;
- left: auto; }
+.small-offset-2 {
+ margin-left: 16.66667%; }
- .small-push-6 {
- position: relative;
- left: 50%;
- right: auto; }
+.small-4 {
+ width: 33.33333%; }
- .small-pull-6 {
- position: relative;
- right: 50%;
- left: auto; }
+.small-push-4 {
+ position: relative;
+ left: 33.33333%; }
- .small-push-7 {
- position: relative;
- left: 58.33333%;
- right: auto; }
+.small-pull-4 {
+ position: relative;
+ left: -33.33333%; }
- .small-pull-7 {
- position: relative;
- right: 58.33333%;
- left: auto; }
+.small-offset-3 {
+ margin-left: 25%; }
- .small-push-8 {
- position: relative;
- left: 66.66667%;
- right: auto; }
+.small-5 {
+ width: 41.66667%; }
- .small-pull-8 {
- position: relative;
- right: 66.66667%;
- left: auto; }
+.small-push-5 {
+ position: relative;
+ left: 41.66667%; }
- .small-push-9 {
- position: relative;
- left: 75%;
- right: auto; }
+.small-pull-5 {
+ position: relative;
+ left: -41.66667%; }
- .small-pull-9 {
- position: relative;
- right: 75%;
- left: auto; }
+.small-offset-4 {
+ margin-left: 33.33333%; }
- .small-push-10 {
- position: relative;
- left: 83.33333%;
- right: auto; }
+.small-6 {
+ width: 50%; }
- .small-pull-10 {
- position: relative;
- right: 83.33333%;
- left: auto; }
+.small-push-6 {
+ position: relative;
+ left: 50%; }
- .small-push-11 {
- position: relative;
- left: 91.66667%;
- right: auto; }
+.small-pull-6 {
+ position: relative;
+ left: -50%; }
- .small-pull-11 {
- position: relative;
- right: 91.66667%;
- left: auto; }
+.small-offset-5 {
+ margin-left: 41.66667%; }
- .column,
- .columns {
- position: relative;
- padding-left: 0.9375rem;
- padding-right: 0.9375rem;
- float: left; }
+.small-7 {
+ width: 58.33333%; }
- .small-1 {
- width: 8.33333%; }
+.small-push-7 {
+ position: relative;
+ left: 58.33333%; }
- .small-2 {
- width: 16.66667%; }
+.small-pull-7 {
+ position: relative;
+ left: -58.33333%; }
- .small-3 {
- width: 25%; }
+.small-offset-6 {
+ margin-left: 50%; }
- .small-4 {
- width: 33.33333%; }
+.small-8 {
+ width: 66.66667%; }
- .small-5 {
- width: 41.66667%; }
+.small-push-8 {
+ position: relative;
+ left: 66.66667%; }
- .small-6 {
- width: 50%; }
+.small-pull-8 {
+ position: relative;
+ left: -66.66667%; }
- .small-7 {
- width: 58.33333%; }
+.small-offset-7 {
+ margin-left: 58.33333%; }
- .small-8 {
- width: 66.66667%; }
+.small-9 {
+ width: 75%; }
- .small-9 {
- width: 75%; }
+.small-push-9 {
+ position: relative;
+ left: 75%; }
- .small-10 {
- width: 83.33333%; }
+.small-pull-9 {
+ position: relative;
+ left: -75%; }
- .small-11 {
- width: 91.66667%; }
+.small-offset-8 {
+ margin-left: 66.66667%; }
- .small-12 {
- width: 100%; }
+.small-10 {
+ width: 83.33333%; }
- .small-offset-0 {
- margin-left: 0 !important; }
+.small-push-10 {
+ position: relative;
+ left: 83.33333%; }
- .small-offset-1 {
- margin-left: 8.33333% !important; }
+.small-pull-10 {
+ position: relative;
+ left: -83.33333%; }
- .small-offset-2 {
- margin-left: 16.66667% !important; }
+.small-offset-9 {
+ margin-left: 75%; }
- .small-offset-3 {
- margin-left: 25% !important; }
+.small-11 {
+ width: 91.66667%; }
- .small-offset-4 {
- margin-left: 33.33333% !important; }
+.small-push-11 {
+ position: relative;
+ left: 91.66667%; }
- .small-offset-5 {
- margin-left: 41.66667% !important; }
+.small-pull-11 {
+ position: relative;
+ left: -91.66667%; }
- .small-offset-6 {
- margin-left: 50% !important; }
+.small-offset-10 {
+ margin-left: 83.33333%; }
- .small-offset-7 {
- margin-left: 58.33333% !important; }
+.small-12 {
+ width: 100%; }
- .small-offset-8 {
- margin-left: 66.66667% !important; }
+.small-offset-11 {
+ margin-left: 91.66667%; }
- .small-offset-9 {
- margin-left: 75% !important; }
+.small-up-1 > .column, .small-up-1 > .columns {
+ width: 100%;
+ float: left; }
+ .small-up-1 > .column:nth-of-type(1n), .small-up-1 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .small-up-1 > .column:nth-of-type(1n+1), .small-up-1 > .columns:nth-of-type(1n+1) {
+ clear: both; }
+ .small-up-1 > .column:last-child, .small-up-1 > .columns:last-child {
+ float: left; }
- .small-offset-10 {
- margin-left: 83.33333% !important; }
+.small-up-2 > .column, .small-up-2 > .columns {
+ width: 50%;
+ float: left; }
+ .small-up-2 > .column:nth-of-type(1n), .small-up-2 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .small-up-2 > .column:nth-of-type(2n+1), .small-up-2 > .columns:nth-of-type(2n+1) {
+ clear: both; }
+ .small-up-2 > .column:last-child, .small-up-2 > .columns:last-child {
+ float: left; }
- .small-offset-11 {
- margin-left: 91.66667% !important; }
+.small-up-3 > .column, .small-up-3 > .columns {
+ width: 33.33333%;
+ float: left; }
+ .small-up-3 > .column:nth-of-type(1n), .small-up-3 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .small-up-3 > .column:nth-of-type(3n+1), .small-up-3 > .columns:nth-of-type(3n+1) {
+ clear: both; }
+ .small-up-3 > .column:last-child, .small-up-3 > .columns:last-child {
+ float: left; }
- .small-reset-order {
- float: left;
- left: auto;
- margin-left: 0;
- margin-right: 0;
- right: auto; }
+.small-up-4 > .column, .small-up-4 > .columns {
+ width: 25%;
+ float: left; }
+ .small-up-4 > .column:nth-of-type(1n), .small-up-4 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .small-up-4 > .column:nth-of-type(4n+1), .small-up-4 > .columns:nth-of-type(4n+1) {
+ clear: both; }
+ .small-up-4 > .column:last-child, .small-up-4 > .columns:last-child {
+ float: left; }
- .column.small-centered,
- .columns.small-centered {
- margin-left: auto;
- margin-right: auto;
- float: none; }
+.small-up-5 > .column, .small-up-5 > .columns {
+ width: 20%;
+ float: left; }
+ .small-up-5 > .column:nth-of-type(1n), .small-up-5 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .small-up-5 > .column:nth-of-type(5n+1), .small-up-5 > .columns:nth-of-type(5n+1) {
+ clear: both; }
+ .small-up-5 > .column:last-child, .small-up-5 > .columns:last-child {
+ float: left; }
- .column.small-uncentered,
- .columns.small-uncentered {
- float: left;
- margin-left: 0;
- margin-right: 0; }
+.small-up-6 > .column, .small-up-6 > .columns {
+ width: 16.66667%;
+ float: left; }
+ .small-up-6 > .column:nth-of-type(1n), .small-up-6 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .small-up-6 > .column:nth-of-type(6n+1), .small-up-6 > .columns:nth-of-type(6n+1) {
+ clear: both; }
+ .small-up-6 > .column:last-child, .small-up-6 > .columns:last-child {
+ float: left; }
- .column.small-centered:last-child,
- .columns.small-centered:last-child {
- float: none; }
+.small-up-7 > .column, .small-up-7 > .columns {
+ width: 14.28571%;
+ float: left; }
+ .small-up-7 > .column:nth-of-type(1n), .small-up-7 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .small-up-7 > .column:nth-of-type(7n+1), .small-up-7 > .columns:nth-of-type(7n+1) {
+ clear: both; }
+ .small-up-7 > .column:last-child, .small-up-7 > .columns:last-child {
+ float: left; }
- .column.small-uncentered:last-child,
- .columns.small-uncentered:last-child {
+.small-up-8 > .column, .small-up-8 > .columns {
+ width: 12.5%;
+ float: left; }
+ .small-up-8 > .column:nth-of-type(1n), .small-up-8 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .small-up-8 > .column:nth-of-type(8n+1), .small-up-8 > .columns:nth-of-type(8n+1) {
+ clear: both; }
+ .small-up-8 > .column:last-child, .small-up-8 > .columns:last-child {
float: left; }
- .column.small-uncentered.opposite,
- .columns.small-uncentered.opposite {
- float: right; }
+.small-collapse > .column, .small-collapse > .columns {
+ padding-left: 0;
+ padding-right: 0; }
- .row.small-collapse > .column,
- .row.small-collapse > .columns {
- padding-left: 0;
- padding-right: 0; }
- .row.small-collapse .row {
- margin-left: 0;
- margin-right: 0; }
- .row.small-uncollapse > .column,
- .row.small-uncollapse > .columns {
- padding-left: 0.9375rem;
- padding-right: 0.9375rem;
- float: left; } }
-@media only screen and (min-width: 40.0625em) {
- .medium-push-0 {
- position: relative;
- left: 0;
- right: auto; }
+.small-collapse .row,
+.expanded.row .small-collapse.row {
+ margin-left: 0;
+ margin-right: 0; }
- .medium-pull-0 {
- position: relative;
- right: 0;
- left: auto; }
+.small-uncollapse > .column, .small-uncollapse > .columns {
+ padding-left: 0.625rem;
+ padding-right: 0.625rem; }
+.small-centered {
+ float: none;
+ margin-left: auto;
+ margin-right: auto; }
+
+.small-uncentered,
+.small-push-0,
+.small-pull-0 {
+ position: static;
+ margin-left: 0;
+ margin-right: 0;
+ float: left; }
+
+@media screen and (min-width: 40em) {
+ .medium-1 {
+ width: 8.33333%; }
.medium-push-1 {
position: relative;
- left: 8.33333%;
- right: auto; }
-
+ left: 8.33333%; }
.medium-pull-1 {
position: relative;
- right: 8.33333%;
- left: auto; }
-
+ left: -8.33333%; }
+ .medium-offset-0 {
+ margin-left: 0%; }
+ .medium-2 {
+ width: 16.66667%; }
.medium-push-2 {
position: relative;
- left: 16.66667%;
- right: auto; }
-
+ left: 16.66667%; }
.medium-pull-2 {
position: relative;
- right: 16.66667%;
- left: auto; }
-
+ left: -16.66667%; }
+ .medium-offset-1 {
+ margin-left: 8.33333%; }
+ .medium-3 {
+ width: 25%; }
.medium-push-3 {
position: relative;
- left: 25%;
- right: auto; }
-
+ left: 25%; }
.medium-pull-3 {
position: relative;
- right: 25%;
- left: auto; }
-
+ left: -25%; }
+ .medium-offset-2 {
+ margin-left: 16.66667%; }
+ .medium-4 {
+ width: 33.33333%; }
.medium-push-4 {
position: relative;
- left: 33.33333%;
- right: auto; }
-
+ left: 33.33333%; }
.medium-pull-4 {
position: relative;
- right: 33.33333%;
- left: auto; }
-
+ left: -33.33333%; }
+ .medium-offset-3 {
+ margin-left: 25%; }
+ .medium-5 {
+ width: 41.66667%; }
.medium-push-5 {
position: relative;
- left: 41.66667%;
- right: auto; }
-
+ left: 41.66667%; }
.medium-pull-5 {
position: relative;
- right: 41.66667%;
- left: auto; }
-
+ left: -41.66667%; }
+ .medium-offset-4 {
+ margin-left: 33.33333%; }
+ .medium-6 {
+ width: 50%; }
.medium-push-6 {
position: relative;
- left: 50%;
- right: auto; }
-
+ left: 50%; }
.medium-pull-6 {
position: relative;
- right: 50%;
- left: auto; }
-
+ left: -50%; }
+ .medium-offset-5 {
+ margin-left: 41.66667%; }
+ .medium-7 {
+ width: 58.33333%; }
.medium-push-7 {
position: relative;
- left: 58.33333%;
- right: auto; }
-
+ left: 58.33333%; }
.medium-pull-7 {
position: relative;
- right: 58.33333%;
- left: auto; }
-
+ left: -58.33333%; }
+ .medium-offset-6 {
+ margin-left: 50%; }
+ .medium-8 {
+ width: 66.66667%; }
.medium-push-8 {
position: relative;
- left: 66.66667%;
- right: auto; }
-
+ left: 66.66667%; }
.medium-pull-8 {
position: relative;
- right: 66.66667%;
- left: auto; }
-
+ left: -66.66667%; }
+ .medium-offset-7 {
+ margin-left: 58.33333%; }
+ .medium-9 {
+ width: 75%; }
.medium-push-9 {
position: relative;
- left: 75%;
- right: auto; }
-
+ left: 75%; }
.medium-pull-9 {
position: relative;
- right: 75%;
- left: auto; }
-
+ left: -75%; }
+ .medium-offset-8 {
+ margin-left: 66.66667%; }
+ .medium-10 {
+ width: 83.33333%; }
.medium-push-10 {
position: relative;
- left: 83.33333%;
- right: auto; }
-
+ left: 83.33333%; }
.medium-pull-10 {
position: relative;
- right: 83.33333%;
- left: auto; }
-
+ left: -83.33333%; }
+ .medium-offset-9 {
+ margin-left: 75%; }
+ .medium-11 {
+ width: 91.66667%; }
.medium-push-11 {
position: relative;
- left: 91.66667%;
- right: auto; }
-
+ left: 91.66667%; }
.medium-pull-11 {
position: relative;
- right: 91.66667%;
- left: auto; }
-
- .column,
- .columns {
- position: relative;
- padding-left: 0.9375rem;
- padding-right: 0.9375rem;
- float: left; }
-
- .medium-1 {
- width: 8.33333%; }
-
- .medium-2 {
- width: 16.66667%; }
-
- .medium-3 {
- width: 25%; }
-
- .medium-4 {
- width: 33.33333%; }
-
- .medium-5 {
- width: 41.66667%; }
-
- .medium-6 {
- width: 50%; }
-
- .medium-7 {
- width: 58.33333%; }
-
- .medium-8 {
- width: 66.66667%; }
-
- .medium-9 {
- width: 75%; }
-
- .medium-10 {
- width: 83.33333%; }
-
- .medium-11 {
- width: 91.66667%; }
-
+ left: -91.66667%; }
+ .medium-offset-10 {
+ margin-left: 83.33333%; }
.medium-12 {
width: 100%; }
-
- .medium-offset-0 {
- margin-left: 0 !important; }
-
- .medium-offset-1 {
- margin-left: 8.33333% !important; }
-
- .medium-offset-2 {
- margin-left: 16.66667% !important; }
-
- .medium-offset-3 {
- margin-left: 25% !important; }
-
- .medium-offset-4 {
- margin-left: 33.33333% !important; }
-
- .medium-offset-5 {
- margin-left: 41.66667% !important; }
-
- .medium-offset-6 {
- margin-left: 50% !important; }
-
- .medium-offset-7 {
- margin-left: 58.33333% !important; }
-
- .medium-offset-8 {
- margin-left: 66.66667% !important; }
-
- .medium-offset-9 {
- margin-left: 75% !important; }
-
- .medium-offset-10 {
- margin-left: 83.33333% !important; }
-
.medium-offset-11 {
- margin-left: 91.66667% !important; }
-
- .medium-reset-order {
- float: left;
- left: auto;
- margin-left: 0;
- margin-right: 0;
- right: auto; }
-
- .column.medium-centered,
- .columns.medium-centered {
- margin-left: auto;
- margin-right: auto;
- float: none; }
-
- .column.medium-uncentered,
- .columns.medium-uncentered {
- float: left;
- margin-left: 0;
- margin-right: 0; }
-
- .column.medium-centered:last-child,
- .columns.medium-centered:last-child {
- float: none; }
-
- .column.medium-uncentered:last-child,
- .columns.medium-uncentered:last-child {
+ margin-left: 91.66667%; }
+ .medium-up-1 > .column, .medium-up-1 > .columns {
+ width: 100%;
float: left; }
-
- .column.medium-uncentered.opposite,
- .columns.medium-uncentered.opposite {
- float: right; }
-
- .row.medium-collapse > .column,
- .row.medium-collapse > .columns {
+ .medium-up-1 > .column:nth-of-type(1n), .medium-up-1 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .medium-up-1 > .column:nth-of-type(1n+1), .medium-up-1 > .columns:nth-of-type(1n+1) {
+ clear: both; }
+ .medium-up-1 > .column:last-child, .medium-up-1 > .columns:last-child {
+ float: left; }
+ .medium-up-2 > .column, .medium-up-2 > .columns {
+ width: 50%;
+ float: left; }
+ .medium-up-2 > .column:nth-of-type(1n), .medium-up-2 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .medium-up-2 > .column:nth-of-type(2n+1), .medium-up-2 > .columns:nth-of-type(2n+1) {
+ clear: both; }
+ .medium-up-2 > .column:last-child, .medium-up-2 > .columns:last-child {
+ float: left; }
+ .medium-up-3 > .column, .medium-up-3 > .columns {
+ width: 33.33333%;
+ float: left; }
+ .medium-up-3 > .column:nth-of-type(1n), .medium-up-3 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .medium-up-3 > .column:nth-of-type(3n+1), .medium-up-3 > .columns:nth-of-type(3n+1) {
+ clear: both; }
+ .medium-up-3 > .column:last-child, .medium-up-3 > .columns:last-child {
+ float: left; }
+ .medium-up-4 > .column, .medium-up-4 > .columns {
+ width: 25%;
+ float: left; }
+ .medium-up-4 > .column:nth-of-type(1n), .medium-up-4 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .medium-up-4 > .column:nth-of-type(4n+1), .medium-up-4 > .columns:nth-of-type(4n+1) {
+ clear: both; }
+ .medium-up-4 > .column:last-child, .medium-up-4 > .columns:last-child {
+ float: left; }
+ .medium-up-5 > .column, .medium-up-5 > .columns {
+ width: 20%;
+ float: left; }
+ .medium-up-5 > .column:nth-of-type(1n), .medium-up-5 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .medium-up-5 > .column:nth-of-type(5n+1), .medium-up-5 > .columns:nth-of-type(5n+1) {
+ clear: both; }
+ .medium-up-5 > .column:last-child, .medium-up-5 > .columns:last-child {
+ float: left; }
+ .medium-up-6 > .column, .medium-up-6 > .columns {
+ width: 16.66667%;
+ float: left; }
+ .medium-up-6 > .column:nth-of-type(1n), .medium-up-6 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .medium-up-6 > .column:nth-of-type(6n+1), .medium-up-6 > .columns:nth-of-type(6n+1) {
+ clear: both; }
+ .medium-up-6 > .column:last-child, .medium-up-6 > .columns:last-child {
+ float: left; }
+ .medium-up-7 > .column, .medium-up-7 > .columns {
+ width: 14.28571%;
+ float: left; }
+ .medium-up-7 > .column:nth-of-type(1n), .medium-up-7 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .medium-up-7 > .column:nth-of-type(7n+1), .medium-up-7 > .columns:nth-of-type(7n+1) {
+ clear: both; }
+ .medium-up-7 > .column:last-child, .medium-up-7 > .columns:last-child {
+ float: left; }
+ .medium-up-8 > .column, .medium-up-8 > .columns {
+ width: 12.5%;
+ float: left; }
+ .medium-up-8 > .column:nth-of-type(1n), .medium-up-8 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .medium-up-8 > .column:nth-of-type(8n+1), .medium-up-8 > .columns:nth-of-type(8n+1) {
+ clear: both; }
+ .medium-up-8 > .column:last-child, .medium-up-8 > .columns:last-child {
+ float: left; }
+ .medium-collapse > .column, .medium-collapse > .columns {
padding-left: 0;
padding-right: 0; }
- .row.medium-collapse .row {
+ .medium-collapse .row,
+ .expanded.row .medium-collapse.row {
margin-left: 0;
margin-right: 0; }
- .row.medium-uncollapse > .column,
- .row.medium-uncollapse > .columns {
+ .medium-uncollapse > .column, .medium-uncollapse > .columns {
padding-left: 0.9375rem;
- padding-right: 0.9375rem;
- float: left; }
-
- .push-0 {
- position: relative;
- left: 0;
- right: auto; }
-
- .pull-0 {
- position: relative;
- right: 0;
- left: auto; }
-
- .push-1 {
- position: relative;
- left: 8.33333%;
- right: auto; }
-
- .pull-1 {
- position: relative;
- right: 8.33333%;
- left: auto; }
-
- .push-2 {
- position: relative;
- left: 16.66667%;
- right: auto; }
-
- .pull-2 {
- position: relative;
- right: 16.66667%;
- left: auto; }
-
- .push-3 {
- position: relative;
- left: 25%;
- right: auto; }
-
- .pull-3 {
- position: relative;
- right: 25%;
- left: auto; }
-
- .push-4 {
- position: relative;
- left: 33.33333%;
- right: auto; }
-
- .pull-4 {
- position: relative;
- right: 33.33333%;
- left: auto; }
-
- .push-5 {
- position: relative;
- left: 41.66667%;
- right: auto; }
-
- .pull-5 {
- position: relative;
- right: 41.66667%;
- left: auto; }
-
- .push-6 {
- position: relative;
- left: 50%;
- right: auto; }
-
- .pull-6 {
- position: relative;
- right: 50%;
- left: auto; }
-
- .push-7 {
- position: relative;
- left: 58.33333%;
- right: auto; }
-
- .pull-7 {
- position: relative;
- right: 58.33333%;
- left: auto; }
-
- .push-8 {
- position: relative;
- left: 66.66667%;
- right: auto; }
-
- .pull-8 {
- position: relative;
- right: 66.66667%;
- left: auto; }
-
- .push-9 {
- position: relative;
- left: 75%;
- right: auto; }
-
- .pull-9 {
- position: relative;
- right: 75%;
- left: auto; }
-
- .push-10 {
- position: relative;
- left: 83.33333%;
- right: auto; }
-
- .pull-10 {
- position: relative;
- right: 83.33333%;
- left: auto; }
-
- .push-11 {
- position: relative;
- left: 91.66667%;
- right: auto; }
-
- .pull-11 {
- position: relative;
- right: 91.66667%;
- left: auto; } }
-@media only screen and (min-width: 64.0625em) {
- .large-push-0 {
- position: relative;
- left: 0;
- right: auto; }
-
- .large-pull-0 {
- position: relative;
- right: 0;
- left: auto; }
+ padding-right: 0.9375rem; }
+ .medium-centered {
+ float: none;
+ margin-left: auto;
+ margin-right: auto; }
+ .medium-uncentered,
+ .medium-push-0,
+ .medium-pull-0 {
+ position: static;
+ margin-left: 0;
+ margin-right: 0;
+ float: left; } }
+@media screen and (min-width: 64em) {
+ .large-1 {
+ width: 8.33333%; }
.large-push-1 {
position: relative;
- left: 8.33333%;
- right: auto; }
-
+ left: 8.33333%; }
.large-pull-1 {
position: relative;
- right: 8.33333%;
- left: auto; }
-
+ left: -8.33333%; }
+ .large-offset-0 {
+ margin-left: 0%; }
+ .large-2 {
+ width: 16.66667%; }
.large-push-2 {
position: relative;
- left: 16.66667%;
- right: auto; }
-
+ left: 16.66667%; }
.large-pull-2 {
position: relative;
- right: 16.66667%;
- left: auto; }
-
+ left: -16.66667%; }
+ .large-offset-1 {
+ margin-left: 8.33333%; }
+ .large-3 {
+ width: 25%; }
.large-push-3 {
position: relative;
- left: 25%;
- right: auto; }
-
+ left: 25%; }
.large-pull-3 {
position: relative;
- right: 25%;
- left: auto; }
-
+ left: -25%; }
+ .large-offset-2 {
+ margin-left: 16.66667%; }
+ .large-4 {
+ width: 33.33333%; }
.large-push-4 {
position: relative;
- left: 33.33333%;
- right: auto; }
-
+ left: 33.33333%; }
.large-pull-4 {
position: relative;
- right: 33.33333%;
- left: auto; }
-
+ left: -33.33333%; }
+ .large-offset-3 {
+ margin-left: 25%; }
+ .large-5 {
+ width: 41.66667%; }
.large-push-5 {
position: relative;
- left: 41.66667%;
- right: auto; }
-
+ left: 41.66667%; }
.large-pull-5 {
position: relative;
- right: 41.66667%;
- left: auto; }
-
+ left: -41.66667%; }
+ .large-offset-4 {
+ margin-left: 33.33333%; }
+ .large-6 {
+ width: 50%; }
.large-push-6 {
position: relative;
- left: 50%;
- right: auto; }
-
+ left: 50%; }
.large-pull-6 {
position: relative;
- right: 50%;
- left: auto; }
-
+ left: -50%; }
+ .large-offset-5 {
+ margin-left: 41.66667%; }
+ .large-7 {
+ width: 58.33333%; }
.large-push-7 {
position: relative;
- left: 58.33333%;
- right: auto; }
-
+ left: 58.33333%; }
.large-pull-7 {
position: relative;
- right: 58.33333%;
- left: auto; }
-
+ left: -58.33333%; }
+ .large-offset-6 {
+ margin-left: 50%; }
+ .large-8 {
+ width: 66.66667%; }
.large-push-8 {
position: relative;
- left: 66.66667%;
- right: auto; }
-
+ left: 66.66667%; }
.large-pull-8 {
position: relative;
- right: 66.66667%;
- left: auto; }
-
+ left: -66.66667%; }
+ .large-offset-7 {
+ margin-left: 58.33333%; }
+ .large-9 {
+ width: 75%; }
.large-push-9 {
position: relative;
- left: 75%;
- right: auto; }
-
+ left: 75%; }
.large-pull-9 {
position: relative;
- right: 75%;
- left: auto; }
-
+ left: -75%; }
+ .large-offset-8 {
+ margin-left: 66.66667%; }
+ .large-10 {
+ width: 83.33333%; }
.large-push-10 {
position: relative;
- left: 83.33333%;
- right: auto; }
-
+ left: 83.33333%; }
.large-pull-10 {
position: relative;
- right: 83.33333%;
- left: auto; }
-
+ left: -83.33333%; }
+ .large-offset-9 {
+ margin-left: 75%; }
+ .large-11 {
+ width: 91.66667%; }
.large-push-11 {
position: relative;
- left: 91.66667%;
- right: auto; }
-
+ left: 91.66667%; }
.large-pull-11 {
position: relative;
- right: 91.66667%;
- left: auto; }
-
- .column,
- .columns {
- position: relative;
- padding-left: 0.9375rem;
- padding-right: 0.9375rem;
+ left: -91.66667%; }
+ .large-offset-10 {
+ margin-left: 83.33333%; }
+ .large-12 {
+ width: 100%; }
+ .large-offset-11 {
+ margin-left: 91.66667%; }
+ .large-up-1 > .column, .large-up-1 > .columns {
+ width: 100%;
float: left; }
+ .large-up-1 > .column:nth-of-type(1n), .large-up-1 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .large-up-1 > .column:nth-of-type(1n+1), .large-up-1 > .columns:nth-of-type(1n+1) {
+ clear: both; }
+ .large-up-1 > .column:last-child, .large-up-1 > .columns:last-child {
+ float: left; }
+ .large-up-2 > .column, .large-up-2 > .columns {
+ width: 50%;
+ float: left; }
+ .large-up-2 > .column:nth-of-type(1n), .large-up-2 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .large-up-2 > .column:nth-of-type(2n+1), .large-up-2 > .columns:nth-of-type(2n+1) {
+ clear: both; }
+ .large-up-2 > .column:last-child, .large-up-2 > .columns:last-child {
+ float: left; }
+ .large-up-3 > .column, .large-up-3 > .columns {
+ width: 33.33333%;
+ float: left; }
+ .large-up-3 > .column:nth-of-type(1n), .large-up-3 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .large-up-3 > .column:nth-of-type(3n+1), .large-up-3 > .columns:nth-of-type(3n+1) {
+ clear: both; }
+ .large-up-3 > .column:last-child, .large-up-3 > .columns:last-child {
+ float: left; }
+ .large-up-4 > .column, .large-up-4 > .columns {
+ width: 25%;
+ float: left; }
+ .large-up-4 > .column:nth-of-type(1n), .large-up-4 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .large-up-4 > .column:nth-of-type(4n+1), .large-up-4 > .columns:nth-of-type(4n+1) {
+ clear: both; }
+ .large-up-4 > .column:last-child, .large-up-4 > .columns:last-child {
+ float: left; }
+ .large-up-5 > .column, .large-up-5 > .columns {
+ width: 20%;
+ float: left; }
+ .large-up-5 > .column:nth-of-type(1n), .large-up-5 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .large-up-5 > .column:nth-of-type(5n+1), .large-up-5 > .columns:nth-of-type(5n+1) {
+ clear: both; }
+ .large-up-5 > .column:last-child, .large-up-5 > .columns:last-child {
+ float: left; }
+ .large-up-6 > .column, .large-up-6 > .columns {
+ width: 16.66667%;
+ float: left; }
+ .large-up-6 > .column:nth-of-type(1n), .large-up-6 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .large-up-6 > .column:nth-of-type(6n+1), .large-up-6 > .columns:nth-of-type(6n+1) {
+ clear: both; }
+ .large-up-6 > .column:last-child, .large-up-6 > .columns:last-child {
+ float: left; }
+ .large-up-7 > .column, .large-up-7 > .columns {
+ width: 14.28571%;
+ float: left; }
+ .large-up-7 > .column:nth-of-type(1n), .large-up-7 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .large-up-7 > .column:nth-of-type(7n+1), .large-up-7 > .columns:nth-of-type(7n+1) {
+ clear: both; }
+ .large-up-7 > .column:last-child, .large-up-7 > .columns:last-child {
+ float: left; }
+ .large-up-8 > .column, .large-up-8 > .columns {
+ width: 12.5%;
+ float: left; }
+ .large-up-8 > .column:nth-of-type(1n), .large-up-8 > .columns:nth-of-type(1n) {
+ clear: none; }
+ .large-up-8 > .column:nth-of-type(8n+1), .large-up-8 > .columns:nth-of-type(8n+1) {
+ clear: both; }
+ .large-up-8 > .column:last-child, .large-up-8 > .columns:last-child {
+ float: left; }
+ .large-collapse > .column, .large-collapse > .columns {
+ padding-left: 0;
+ padding-right: 0; }
+ .large-collapse .row,
+ .expanded.row .large-collapse.row {
+ margin-left: 0;
+ margin-right: 0; }
+ .large-uncollapse > .column, .large-uncollapse > .columns {
+ padding-left: 0.9375rem;
+ padding-right: 0.9375rem; }
+ .large-centered {
+ float: none;
+ margin-left: auto;
+ margin-right: auto; }
+ .large-uncentered,
+ .large-push-0,
+ .large-pull-0 {
+ position: static;
+ margin-left: 0;
+ margin-right: 0;
+ float: left; } }
- .large-1 {
- width: 8.33333%; }
-
- .large-2 {
- width: 16.66667%; }
-
- .large-3 {
- width: 25%; }
-
- .large-4 {
- width: 33.33333%; }
-
- .large-5 {
- width: 41.66667%; }
-
- .large-6 {
- width: 50%; }
-
- .large-7 {
- width: 58.33333%; }
+div,
+dl,
+dt,
+dd,
+ul,
+ol,
+li,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+pre,
+form,
+p,
+blockquote,
+th,
+td {
+ margin: 0;
+ padding: 0; }
- .large-8 {
- width: 66.66667%; }
+p {
+ font-size: inherit;
+ line-height: 1.6;
+ margin-bottom: 1rem;
+ text-rendering: optimizeLegibility; }
- .large-9 {
- width: 75%; }
+em,
+i {
+ font-style: italic;
+ line-height: inherit; }
- .large-10 {
- width: 83.33333%; }
+strong,
+b {
+ font-weight: bold;
+ line-height: inherit; }
- .large-11 {
- width: 91.66667%; }
+small {
+ font-size: 80%;
+ line-height: inherit; }
- .large-12 {
- width: 100%; }
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+ font-weight: normal;
+ font-style: normal;
+ color: inherit;
+ text-rendering: optimizeLegibility;
+ margin-top: 0;
+ margin-bottom: 0.5rem;
+ line-height: 1.4; }
+ h1 small,
+ h2 small,
+ h3 small,
+ h4 small,
+ h5 small,
+ h6 small {
+ color: #cacaca;
+ line-height: 0; }
- .large-offset-0 {
- margin-left: 0 !important; }
+h1 {
+ font-size: 1.5rem; }
- .large-offset-1 {
- margin-left: 8.33333% !important; }
+h2 {
+ font-size: 1.25rem; }
- .large-offset-2 {
- margin-left: 16.66667% !important; }
+h3 {
+ font-size: 1.1875rem; }
- .large-offset-3 {
- margin-left: 25% !important; }
+h4 {
+ font-size: 1.125rem; }
- .large-offset-4 {
- margin-left: 33.33333% !important; }
+h5 {
+ font-size: 1.0625rem; }
- .large-offset-5 {
- margin-left: 41.66667% !important; }
+h6 {
+ font-size: 1rem; }
- .large-offset-6 {
- margin-left: 50% !important; }
+@media screen and (min-width: 40em) {
+ h1 {
+ font-size: 3rem; }
+ h2 {
+ font-size: 2.5rem; }
+ h3 {
+ font-size: 1.9375rem; }
+ h4 {
+ font-size: 1.5625rem; }
+ h5 {
+ font-size: 1.25rem; }
+ h6 {
+ font-size: 1rem; } }
- .large-offset-7 {
- margin-left: 58.33333% !important; }
+a {
+ color: #2199e8;
+ text-decoration: none;
+ line-height: inherit;
+ cursor: pointer; }
+ a:hover, a:focus {
+ color: #1585cf; }
+ a img {
+ border: 0; }
- .large-offset-8 {
- margin-left: 66.66667% !important; }
+hr {
+ max-width: 75rem;
+ height: 0;
+ border-right: 0;
+ border-top: 0;
+ border-bottom: 1px solid #cacaca;
+ border-left: 0;
+ margin: 1.25rem auto;
+ clear: both; }
- .large-offset-9 {
- margin-left: 75% !important; }
+ul,
+ol,
+dl {
+ line-height: 1.6;
+ margin-bottom: 1rem;
+ list-style-position: outside; }
- .large-offset-10 {
- margin-left: 83.33333% !important; }
+li {
+ font-size: inherit; }
- .large-offset-11 {
- margin-left: 91.66667% !important; }
+ul {
+ list-style-type: disc;
+ margin-left: 1.25rem; }
- .large-reset-order {
- float: left;
- left: auto;
- margin-left: 0;
- margin-right: 0;
- right: auto; }
+ol {
+ margin-left: 1.25rem; }
- .column.large-centered,
- .columns.large-centered {
- margin-left: auto;
- margin-right: auto;
- float: none; }
+ul ul, ol ul, ul ol, ol ol {
+ margin-left: 1.25rem;
+ margin-bottom: 0; }
- .column.large-uncentered,
- .columns.large-uncentered {
- float: left;
- margin-left: 0;
- margin-right: 0; }
+dl {
+ margin-bottom: 1rem; }
+ dl dt {
+ margin-bottom: 0.3rem;
+ font-weight: bold; }
- .column.large-centered:last-child,
- .columns.large-centered:last-child {
- float: none; }
+blockquote {
+ margin: 0 0 1rem;
+ padding: 0.5625rem 1.25rem 0 1.1875rem;
+ border-left: 1px solid #cacaca; }
+ blockquote, blockquote p {
+ line-height: 1.6;
+ color: #8a8a8a; }
- .column.large-uncentered:last-child,
- .columns.large-uncentered:last-child {
- float: left; }
+cite {
+ display: block;
+ font-size: 0.8125rem;
+ color: #8a8a8a; }
+ cite:before {
+ content: '\2014 \0020'; }
- .column.large-uncentered.opposite,
- .columns.large-uncentered.opposite {
- float: right; }
+abbr {
+ color: #0a0a0a;
+ cursor: help;
+ border-bottom: 1px dotted #0a0a0a; }
- .row.large-collapse > .column,
- .row.large-collapse > .columns {
- padding-left: 0;
- padding-right: 0; }
- .row.large-collapse .row {
- margin-left: 0;
- margin-right: 0; }
- .row.large-uncollapse > .column,
- .row.large-uncollapse > .columns {
- padding-left: 0.9375rem;
- padding-right: 0.9375rem;
- float: left; }
+code {
+ font-family: Consolas, "Liberation Mono", Courier, monospace;
+ font-weight: normal;
+ color: #0a0a0a;
+ background-color: #e6e6e6;
+ border: 1px solid #cacaca;
+ padding: 0.125rem 0.3125rem 0.0625rem; }
- .push-0 {
- position: relative;
- left: 0;
- right: auto; }
+kbd {
+ padding: 0.125rem 0.25rem 0;
+ margin: 0;
+ background-color: #e6e6e6;
+ color: #0a0a0a;
+ font-family: Consolas, "Liberation Mono", Courier, monospace; }
- .pull-0 {
- position: relative;
- right: 0;
- left: auto; }
+.subheader {
+ margin-top: 0.2rem;
+ margin-bottom: 0.5rem;
+ font-weight: normal;
+ line-height: 1.4;
+ color: #8a8a8a; }
- .push-1 {
- position: relative;
- left: 8.33333%;
- right: auto; }
+.lead {
+ font-size: 125%;
+ line-height: 1.6; }
- .pull-1 {
- position: relative;
- right: 8.33333%;
- left: auto; }
+.stat {
+ font-size: 2.5rem;
+ line-height: 1; }
+ p + .stat {
+ margin-top: -1rem; }
- .push-2 {
- position: relative;
- left: 16.66667%;
- right: auto; }
+.no-bullet {
+ margin-left: 0;
+ list-style: none; }
- .pull-2 {
- position: relative;
- right: 16.66667%;
- left: auto; }
+.text-left {
+ text-align: left; }
- .push-3 {
- position: relative;
- left: 25%;
- right: auto; }
+.text-right {
+ text-align: right; }
- .pull-3 {
- position: relative;
- right: 25%;
- left: auto; }
+.text-center {
+ text-align: center; }
- .push-4 {
- position: relative;
- left: 33.33333%;
- right: auto; }
+.text-justify {
+ text-align: justify; }
- .pull-4 {
- position: relative;
- right: 33.33333%;
- left: auto; }
+@media screen and (min-width: 40em) {
+ .medium-text-left {
+ text-align: left; }
+ .medium-text-right {
+ text-align: right; }
+ .medium-text-center {
+ text-align: center; }
+ .medium-text-justify {
+ text-align: justify; } }
- .push-5 {
- position: relative;
- left: 41.66667%;
- right: auto; }
+@media screen and (min-width: 64em) {
+ .large-text-left {
+ text-align: left; }
+ .large-text-right {
+ text-align: right; }
+ .large-text-center {
+ text-align: center; }
+ .large-text-justify {
+ text-align: justify; } }
- .pull-5 {
- position: relative;
- right: 41.66667%;
- left: auto; }
+.show-for-print {
+ display: none !important; }
- .push-6 {
- position: relative;
- left: 50%;
- right: auto; }
+@media print {
+ * {
+ background: transparent !important;
+ color: black !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ text-shadow: none !important; }
+ .show-for-print {
+ display: block !important; }
+ .hide-for-print {
+ display: none !important; }
+ table.show-for-print {
+ display: table !important; }
+ thead.show-for-print {
+ display: table-header-group !important; }
+ tbody.show-for-print {
+ display: table-row-group !important; }
+ tr.show-for-print {
+ display: table-row !important; }
+ td.show-for-print {
+ display: table-cell !important; }
+ th.show-for-print {
+ display: table-cell !important; }
+ a,
+ a:visited {
+ text-decoration: underline; }
+ a[href]:after {
+ content: " (" attr(href) ")"; }
+ .ir a:after,
+ a[href^='javascript:']:after,
+ a[href^='#']:after {
+ content: ''; }
+ abbr[title]:after {
+ content: " (" attr(title) ")"; }
+ pre,
+ blockquote {
+ border: 1px solid #8a8a8a;
+ page-break-inside: avoid; }
+ thead {
+ display: table-header-group; }
+ tr,
+ img {
+ page-break-inside: avoid; }
+ img {
+ max-width: 100% !important; }
+ @page {
+ margin: 0.5cm; }
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3; }
+ h2,
+ h3 {
+ page-break-after: avoid; } }
- .pull-6 {
- position: relative;
- right: 50%;
- left: auto; }
+[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
+textarea {
+ display: block;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ height: 2.4375rem;
+ padding: 0.5rem;
+ border: 1px solid #cacaca;
+ margin: 0 0 1rem;
+ font-family: inherit;
+ font-size: 1rem;
+ color: #0a0a0a;
+ background-color: #fefefe;
+ -webkit-box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
+ border-radius: 0;
+ -webkit-transition: -webkit-box-shadow 0.5s, border-color 0.25s ease-in-out;
+ transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
+ -webkit-appearance: none;
+ -moz-appearance: none; }
+ [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
+ textarea:focus {
+ border: 1px solid #8a8a8a;
+ background-color: #fefefe;
+ outline: none;
+ -webkit-box-shadow: 0 0 5px #cacaca;
+ box-shadow: 0 0 5px #cacaca;
+ -webkit-transition: -webkit-box-shadow 0.5s, border-color 0.25s ease-in-out;
+ transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }
- .push-7 {
- position: relative;
- left: 58.33333%;
- right: auto; }
+textarea {
+ max-width: 100%; }
+ textarea[rows] {
+ height: auto; }
- .pull-7 {
- position: relative;
- right: 58.33333%;
- left: auto; }
+input::-webkit-input-placeholder,
+textarea::-webkit-input-placeholder {
+ color: #cacaca; }
- .push-8 {
- position: relative;
- left: 66.66667%;
- right: auto; }
+input::-moz-placeholder,
+textarea::-moz-placeholder {
+ color: #cacaca; }
- .pull-8 {
- position: relative;
- right: 66.66667%;
- left: auto; }
+input:-ms-input-placeholder,
+textarea:-ms-input-placeholder {
+ color: #cacaca; }
- .push-9 {
- position: relative;
- left: 75%;
- right: auto; }
+input::placeholder,
+textarea::placeholder {
+ color: #cacaca; }
- .pull-9 {
- position: relative;
- right: 75%;
- left: auto; }
+input:disabled, input[readonly],
+textarea:disabled,
+textarea[readonly] {
+ background-color: #e6e6e6;
+ cursor: not-allowed; }
- .push-10 {
- position: relative;
- left: 83.33333%;
- right: auto; }
+[type='submit'],
+[type='button'] {
+ border-radius: 0;
+ -webkit-appearance: none;
+ -moz-appearance: none; }
- .pull-10 {
- position: relative;
- right: 83.33333%;
- left: auto; }
+input[type='search'] {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box; }
- .push-11 {
- position: relative;
- left: 91.66667%;
- right: auto; }
+[type='file'],
+[type='checkbox'],
+[type='radio'] {
+ margin: 0 0 1rem; }
- .pull-11 {
- position: relative;
- right: 91.66667%;
- left: auto; } }
-button, .button {
- -webkit-appearance: none;
- -moz-appearance: none;
- border-radius: 0;
- border-style: solid;
- border-width: 0;
- cursor: pointer;
- font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
- font-weight: normal;
- line-height: normal;
- margin: 0 0 1.25rem;
- position: relative;
- text-align: center;
- text-decoration: none;
+[type='checkbox'] + label,
+[type='radio'] + label {
display: inline-block;
- padding: 1rem 2rem 1.0625rem 2rem;
- font-size: 1rem;
- background-color: #008CBA;
- border-color: #007095;
- color: #FFFFFF;
- transition: background-color 300ms ease-out; }
- button:hover, button:focus, .button:hover, .button:focus {
- background-color: #007095; }
- button:hover, button:focus, .button:hover, .button:focus {
- color: #FFFFFF; }
- button.secondary, .button.secondary {
- background-color: #e7e7e7;
- border-color: #b9b9b9;
- color: #333333; }
- button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
- background-color: #b9b9b9; }
- button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
- color: #333333; }
- button.success, .button.success {
- background-color: #43AC6A;
- border-color: #368a55;
- color: #FFFFFF; }
- button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
- background-color: #368a55; }
- button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
- color: #FFFFFF; }
- button.alert, .button.alert {
- background-color: #f04124;
- border-color: #cf2a0e;
- color: #FFFFFF; }
- button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
- background-color: #cf2a0e; }
- button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
- color: #FFFFFF; }
- button.warning, .button.warning {
- background-color: #f08a24;
- border-color: #cf6e0e;
- color: #FFFFFF; }
- button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
- background-color: #cf6e0e; }
- button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
- color: #FFFFFF; }
- button.info, .button.info {
- background-color: #a0d3e8;
- border-color: #61b6d9;
- color: #333333; }
- button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
- background-color: #61b6d9; }
- button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
- color: #FFFFFF; }
- button.large, .button.large {
- padding: 1.125rem 2.25rem 1.1875rem 2.25rem;
- font-size: 1.25rem; }
- button.small, .button.small {
- padding: 0.875rem 1.75rem 0.9375rem 1.75rem;
- font-size: 0.8125rem; }
- button.tiny, .button.tiny {
- padding: 0.625rem 1.25rem 0.6875rem 1.25rem;
- font-size: 0.6875rem; }
- button.expand, .button.expand {
- padding-left: 0;
- padding-right: 0;
- width: 100%; }
- button.left-align, .button.left-align {
- text-align: left;
- text-indent: 0.75rem; }
- button.right-align, .button.right-align {
- text-align: right;
- padding-right: 0.75rem; }
- button.radius, .button.radius {
- border-radius: 3px; }
- button.round, .button.round {
- border-radius: 1000px; }
- button.disabled, button[disabled], .button.disabled, .button[disabled] {
- background-color: #008CBA;
- border-color: #007095;
- color: #FFFFFF;
- box-shadow: none;
- cursor: default;
- opacity: 0.7; }
- button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
- background-color: #007095; }
- button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
- color: #FFFFFF; }
- button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
- background-color: #008CBA; }
- button.disabled.secondary, button[disabled].secondary, .button.disabled.secondary, .button[disabled].secondary {
- background-color: #e7e7e7;
- border-color: #b9b9b9;
- color: #333333;
- box-shadow: none;
- cursor: default;
- opacity: 0.7; }
- button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
- background-color: #b9b9b9; }
- button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
- color: #333333; }
- button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
- background-color: #e7e7e7; }
- button.disabled.success, button[disabled].success, .button.disabled.success, .button[disabled].success {
- background-color: #43AC6A;
- border-color: #368a55;
- color: #FFFFFF;
- box-shadow: none;
- cursor: default;
- opacity: 0.7; }
- button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
- background-color: #368a55; }
- button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
- color: #FFFFFF; }
- button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
- background-color: #43AC6A; }
- button.disabled.alert, button[disabled].alert, .button.disabled.alert, .button[disabled].alert {
- background-color: #f04124;
- border-color: #cf2a0e;
- color: #FFFFFF;
- box-shadow: none;
- cursor: default;
- opacity: 0.7; }
- button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
- background-color: #cf2a0e; }
- button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
- color: #FFFFFF; }
- button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
- background-color: #f04124; }
- button.disabled.warning, button[disabled].warning, .button.disabled.warning, .button[disabled].warning {
- background-color: #f08a24;
- border-color: #cf6e0e;
- color: #FFFFFF;
- box-shadow: none;
- cursor: default;
- opacity: 0.7; }
- button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
- background-color: #cf6e0e; }
- button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
- color: #FFFFFF; }
- button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
- background-color: #f08a24; }
- button.disabled.info, button[disabled].info, .button.disabled.info, .button[disabled].info {
- background-color: #a0d3e8;
- border-color: #61b6d9;
- color: #333333;
- box-shadow: none;
- cursor: default;
- opacity: 0.7; }
- button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
- background-color: #61b6d9; }
- button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
- color: #FFFFFF; }
- button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
- background-color: #a0d3e8; }
-
-button::-moz-focus-inner {
- border: 0;
- padding: 0; }
+ margin-left: 0.5rem;
+ margin-right: 1rem;
+ margin-bottom: 0;
+ vertical-align: baseline; }
+ [type='checkbox'] + label[for],
+ [type='radio'] + label[for] {
+ cursor: pointer; }
-@media only screen and (min-width: 40.0625em) {
- button, .button {
- display: inline-block; } }
-/* Standard Forms */
-form {
- margin: 0 0 1rem; }
+label > [type='checkbox'],
+label > [type='radio'] {
+ margin-right: 0.5rem; }
+
+[type='file'] {
+ width: 100%; }
-/* Using forms within rows, we need to set some defaults */
-form .row .row {
- margin: 0 -0.5rem; }
- form .row .row .column,
- form .row .row .columns {
- padding: 0 0.5rem; }
- form .row .row.collapse {
- margin: 0; }
- form .row .row.collapse .column,
- form .row .row.collapse .columns {
- padding: 0; }
- form .row .row.collapse input {
- -webkit-border-bottom-right-radius: 0;
- -webkit-border-top-right-radius: 0;
- border-bottom-right-radius: 0;
- border-top-right-radius: 0; }
-form .row input.column,
-form .row input.columns,
-form .row textarea.column,
-form .row textarea.columns {
- padding-left: 0.5rem; }
-
-/* Label Styles */
label {
- color: #4d4d4d;
- cursor: pointer;
display: block;
+ margin: 0;
font-size: 0.875rem;
font-weight: normal;
- line-height: 1.5;
- margin-bottom: 0;
- /* Styles for required inputs */ }
- label.right {
- float: none !important;
- text-align: right; }
- label.inline {
- margin: 0 0 1rem 0;
+ line-height: 1.8;
+ color: #0a0a0a; }
+ label.middle {
+ margin: 0 0 1rem;
padding: 0.5625rem 0; }
- label small {
- text-transform: capitalize;
- color: #676767; }
-
-/* Attach elements to the beginning or end of an input */
-.prefix,
-.postfix {
- border-style: solid;
- border-width: 1px;
- display: block;
- font-size: 0.875rem;
- height: 2.3125rem;
- line-height: 2.3125rem;
- overflow: visible;
- padding-bottom: 0;
- padding-top: 0;
- position: relative;
- text-align: center;
- width: 100%;
- z-index: 2; }
-/* Adjust padding, alignment and radius if pre/post element is a button */
-.postfix.button {
- border-color: true; }
-
-.prefix.button {
- border: none;
- padding-left: 0;
- padding-right: 0;
- padding-bottom: 0;
- padding-top: 0;
- text-align: center; }
+.help-text {
+ margin-top: -0.5rem;
+ font-size: 0.8125rem;
+ font-style: italic;
+ color: #0a0a0a; }
-.prefix.button.radius {
- border-radius: 0;
- -webkit-border-bottom-left-radius: 3px;
- -webkit-border-top-left-radius: 3px;
- border-bottom-left-radius: 3px;
- border-top-left-radius: 3px; }
+.input-group {
+ display: table;
+ width: 100%;
+ margin-bottom: 1rem; }
+ .input-group > :first-child {
+ border-radius: 0 0 0 0; }
+ .input-group > :last-child > * {
+ border-radius: 0 0 0 0; }
-.postfix.button.radius {
- border-radius: 0;
- -webkit-border-bottom-right-radius: 3px;
- -webkit-border-top-right-radius: 3px;
- border-bottom-right-radius: 3px;
- border-top-right-radius: 3px; }
+.input-group-label, .input-group-field, .input-group-button {
+ margin: 0;
+ white-space: nowrap;
+ display: table-cell;
+ vertical-align: middle; }
-.prefix.button.round {
- border-radius: 0;
- -webkit-border-bottom-left-radius: 1000px;
- -webkit-border-top-left-radius: 1000px;
- border-bottom-left-radius: 1000px;
- border-top-left-radius: 1000px; }
+.input-group-label {
+ text-align: center;
+ padding: 0 1rem;
+ background: #e6e6e6;
+ color: #0a0a0a;
+ border: 1px solid #cacaca;
+ white-space: nowrap;
+ width: 1%;
+ height: 100%; }
+ .input-group-label:first-child {
+ border-right: 0; }
+ .input-group-label:last-child {
+ border-left: 0; }
-.postfix.button.round {
+.input-group-field {
border-radius: 0;
- -webkit-border-bottom-right-radius: 1000px;
- -webkit-border-top-right-radius: 1000px;
- border-bottom-right-radius: 1000px;
- border-top-right-radius: 1000px; }
-
-/* Separate prefix and postfix styles when on span or label so buttons keep their own */
-span.prefix, label.prefix {
- background: #f2f2f2;
- border-right: none;
- color: #333333;
- border-color: #cccccc; }
-
-span.postfix, label.postfix {
- background: #f2f2f2;
- color: #333333;
- border-color: #cccccc; }
-
-/* We use this to get basic styling on all basic form elements */
-input[type="text"], input[type="password"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="week"], input[type="email"], input[type="number"], input[type="search"], input[type="tel"], input[type="time"], input[type="url"], input[type="color"], textarea {
- -webkit-appearance: none;
- -moz-appearance: none;
- border-radius: 0;
- background-color: #FFFFFF;
- border-style: solid;
- border-width: 1px;
- border-color: #cccccc;
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
- color: rgba(0, 0, 0, 0.75);
- display: block;
- font-family: inherit;
- font-size: 0.875rem;
- height: 2.3125rem;
- margin: 0 0 1rem 0;
- padding: 0.5rem;
- width: 100%;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- -webkit-transition: border-color 0.15s linear, background 0.15s linear;
- -moz-transition: border-color 0.15s linear, background 0.15s linear;
- -ms-transition: border-color 0.15s linear, background 0.15s linear;
- -o-transition: border-color 0.15s linear, background 0.15s linear;
- transition: border-color 0.15s linear, background 0.15s linear; }
- input[type="text"]:focus, input[type="password"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="week"]:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="time"]:focus, input[type="url"]:focus, input[type="color"]:focus, textarea:focus {
- background: #fafafa;
- border-color: #999999;
- outline: none; }
- input[type="text"]:disabled, input[type="password"]:disabled, input[type="date"]:disabled, input[type="datetime"]:disabled, input[type="datetime-local"]:disabled, input[type="month"]:disabled, input[type="week"]:disabled, input[type="email"]:disabled, input[type="number"]:disabled, input[type="search"]:disabled, input[type="tel"]:disabled, input[type="time"]:disabled, input[type="url"]:disabled, input[type="color"]:disabled, textarea:disabled {
- background-color: #DDDDDD;
- cursor: default; }
- input[type="text"][disabled], input[type="text"][readonly], fieldset[disabled] input[type="text"], input[type="password"][disabled], input[type="password"][readonly], fieldset[disabled] input[type="password"], input[type="date"][disabled], input[type="date"][readonly], fieldset[disabled] input[type="date"], input[type="datetime"][disabled], input[type="datetime"][readonly], fieldset[disabled] input[type="datetime"], input[type="datetime-local"][disabled], input[type="datetime-local"][readonly], fieldset[disabled] input[type="datetime-local"], input[type="month"][disabled], input[type="month"][readonly], fieldset[disabled] input[type="month"], input[type="week"][disabled], input[type="week"][readonly], fieldset[disabled] input[type="week"], input[type="email"][disabled], input[type="email"][readonly], fieldset[disabled] input[type="email"], input[type="number"][disabled], input[type="number"][readonly], fieldset[disabled] input[type="number"], input[type="search"][disabled], input[type="search"][readonly], fieldset[disabled] input[type="search"], input[type="tel"][disabled], input[type="tel"][readonly], fieldset[disabled] input[type="tel"], input[type="time"][disabled], input[type="time"][readonly], fieldset[disabled] input[type="time"], input[type="url"][disabled], input[type="url"][readonly], fieldset[disabled] input[type="url"], input[type="color"][disabled], input[type="color"][readonly], fieldset[disabled] input[type="color"], textarea[disabled], textarea[readonly], fieldset[disabled] textarea {
- background-color: #DDDDDD;
- cursor: default; }
- input[type="text"].radius, input[type="password"].radius, input[type="date"].radius, input[type="datetime"].radius, input[type="datetime-local"].radius, input[type="month"].radius, input[type="week"].radius, input[type="email"].radius, input[type="number"].radius, input[type="search"].radius, input[type="tel"].radius, input[type="time"].radius, input[type="url"].radius, input[type="color"].radius, textarea.radius {
- border-radius: 3px; }
+ height: 2.5rem; }
-form .row .prefix-radius.row.collapse input,
-form .row .prefix-radius.row.collapse textarea,
-form .row .prefix-radius.row.collapse select,
-form .row .prefix-radius.row.collapse button {
- border-radius: 0;
- -webkit-border-bottom-right-radius: 3px;
- -webkit-border-top-right-radius: 3px;
- border-bottom-right-radius: 3px;
- border-top-right-radius: 3px; }
-form .row .prefix-radius.row.collapse .prefix {
- border-radius: 0;
- -webkit-border-bottom-left-radius: 3px;
- -webkit-border-top-left-radius: 3px;
- border-bottom-left-radius: 3px;
- border-top-left-radius: 3px; }
-form .row .postfix-radius.row.collapse input,
-form .row .postfix-radius.row.collapse textarea,
-form .row .postfix-radius.row.collapse select,
-form .row .postfix-radius.row.collapse button {
- border-radius: 0;
- -webkit-border-bottom-left-radius: 3px;
- -webkit-border-top-left-radius: 3px;
- border-bottom-left-radius: 3px;
- border-top-left-radius: 3px; }
-form .row .postfix-radius.row.collapse .postfix {
- border-radius: 0;
- -webkit-border-bottom-right-radius: 3px;
- -webkit-border-top-right-radius: 3px;
- border-bottom-right-radius: 3px;
- border-top-right-radius: 3px; }
-form .row .prefix-round.row.collapse input,
-form .row .prefix-round.row.collapse textarea,
-form .row .prefix-round.row.collapse select,
-form .row .prefix-round.row.collapse button {
- border-radius: 0;
- -webkit-border-bottom-right-radius: 1000px;
- -webkit-border-top-right-radius: 1000px;
- border-bottom-right-radius: 1000px;
- border-top-right-radius: 1000px; }
-form .row .prefix-round.row.collapse .prefix {
- border-radius: 0;
- -webkit-border-bottom-left-radius: 1000px;
- -webkit-border-top-left-radius: 1000px;
- border-bottom-left-radius: 1000px;
- border-top-left-radius: 1000px; }
-form .row .postfix-round.row.collapse input,
-form .row .postfix-round.row.collapse textarea,
-form .row .postfix-round.row.collapse select,
-form .row .postfix-round.row.collapse button {
- border-radius: 0;
- -webkit-border-bottom-left-radius: 1000px;
- -webkit-border-top-left-radius: 1000px;
- border-bottom-left-radius: 1000px;
- border-top-left-radius: 1000px; }
-form .row .postfix-round.row.collapse .postfix {
- border-radius: 0;
- -webkit-border-bottom-right-radius: 1000px;
- -webkit-border-top-right-radius: 1000px;
- border-bottom-right-radius: 1000px;
- border-top-right-radius: 1000px; }
+.input-group-button {
+ padding-top: 0;
+ padding-bottom: 0;
+ text-align: center;
+ height: 100%;
+ width: 1%; }
+ .input-group-button a,
+ .input-group-button input,
+ .input-group-button button {
+ margin: 0; }
-input[type="submit"] {
- -webkit-appearance: none;
- -moz-appearance: none;
- border-radius: 0; }
+.input-group .input-group-button {
+ display: table-cell; }
-/* Respect enforced amount of rows for textarea */
-textarea[rows] {
- height: auto; }
+fieldset {
+ border: 0;
+ padding: 0;
+ margin: 0; }
-/* Not allow resize out of parent */
-textarea {
+legend {
+ margin-bottom: 0.5rem;
max-width: 100%; }
-::-webkit-input-placeholder {
- color: #cccccc; }
-
-:-moz-placeholder {
- /* Firefox 18- */
- color: #cccccc; }
-
-::-moz-placeholder {
- /* Firefox 19+ */
- color: #cccccc; }
-
-:-ms-input-placeholder {
- color: #cccccc; }
+.fieldset {
+ border: 1px solid #cacaca;
+ padding: 1.25rem;
+ margin: 1.125rem 0; }
+ .fieldset legend {
+ background: #fefefe;
+ padding: 0 0.1875rem;
+ margin: 0;
+ margin-left: -0.1875rem; }
-/* Add height value for select elements to match text input height */
select {
- -webkit-appearance: none !important;
- -moz-appearance: none !important;
- background-color: #FAFAFA;
- border-radius: 0;
- background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+);
- background-position: 100% center;
- background-repeat: no-repeat;
- border-style: solid;
- border-width: 1px;
- border-color: #cccccc;
- color: rgba(0, 0, 0, 0.75);
+ height: 2.4375rem;
+ padding: 0.5rem;
+ border: 1px solid #cacaca;
+ margin: 0 0 1rem;
+ font-size: 1rem;
font-family: inherit;
- font-size: 0.875rem;
line-height: normal;
- padding: 0.5rem;
+ color: #0a0a0a;
+ background-color: #fefefe;
border-radius: 0;
- height: 2.3125rem; }
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>");
+ -webkit-background-size: 9px 6px;
+ background-size: 9px 6px;
+ background-position: right -1rem center;
+ -webkit-background-origin: content-box;
+ background-origin: content-box;
+ background-repeat: no-repeat;
+ padding-right: 1.5rem; }
+ @media screen and (min-width: 0\0) {
+ select {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } }
+ select:disabled {
+ background-color: #e6e6e6;
+ cursor: not-allowed; }
select::-ms-expand {
display: none; }
- select.radius {
- border-radius: 3px; }
- select:hover {
- background-color: #f3f3f3;
- border-color: #999999; }
- select:disabled {
- background-color: #DDDDDD;
- cursor: default; }
select[multiple] {
- height: auto; }
-
-/* Adjust margin for form elements below */
-input[type="file"],
-input[type="checkbox"],
-input[type="radio"],
-select {
- margin: 0 0 1rem 0; }
-
-input[type="checkbox"] + label,
-input[type="radio"] + label {
- display: inline-block;
- margin-left: 0.5rem;
- margin-right: 1rem;
- margin-bottom: 0;
- vertical-align: baseline; }
-
-/* Normalize file input width */
-input[type="file"] {
- width: 100%; }
+ height: auto;
+ background-image: none; }
-/* HTML5 Number spinners settings */
-/* We add basic fieldset styling */
-fieldset {
- border: 1px solid #DDDDDD;
- margin: 1.125rem 0;
- padding: 1.25rem; }
- fieldset legend {
- background: #FFFFFF;
- font-weight: bold;
- margin-left: -0.1875rem;
- margin: 0;
- padding: 0 0.1875rem; }
+.is-invalid-input:not(:focus) {
+ background-color: rgba(236, 88, 64, 0.1);
+ border-color: #ec5840; }
-/* Error Handling */
-[data-abide] .error small.error, [data-abide] .error span.error, [data-abide] span.error, [data-abide] small.error {
- display: block;
- font-size: 0.75rem;
- font-style: italic;
- font-weight: normal;
- margin-bottom: 1rem;
- margin-top: -1px;
- padding: 0.375rem 0.5625rem 0.5625rem;
- background: #f04124;
- color: #FFFFFF; }
-[data-abide] span.error, [data-abide] small.error {
- display: none; }
+.is-invalid-label {
+ color: #ec5840; }
-span.error, small.error {
- display: block;
- font-size: 0.75rem;
- font-style: italic;
- font-weight: normal;
+.form-error {
+ display: none;
+ margin-top: -0.5rem;
margin-bottom: 1rem;
- margin-top: -1px;
- padding: 0.375rem 0.5625rem 0.5625rem;
- background: #f04124;
- color: #FFFFFF; }
-
-.error input,
-.error textarea,
-.error select {
- margin-bottom: 0; }
-.error input[type="checkbox"],
-.error input[type="radio"] {
- margin-bottom: 1rem; }
-.error label,
-.error label.error {
- color: #f04124; }
-.error small.error {
- display: block;
font-size: 0.75rem;
- font-style: italic;
- font-weight: normal;
- margin-bottom: 1rem;
- margin-top: -1px;
- padding: 0.375rem 0.5625rem 0.5625rem;
- background: #f04124;
- color: #FFFFFF; }
-.error > label > small {
- background: transparent;
- color: #676767;
- display: inline;
- font-size: 60%;
- font-style: normal;
- margin: 0;
- padding: 0;
- text-transform: capitalize; }
-.error span.error-message {
- display: block; }
+ font-weight: bold;
+ color: #ec5840; }
+ .form-error.is-visible {
+ display: block; }
-input.error,
-textarea.error,
-select.error {
- margin-bottom: 0; }
+.button {
+ display: inline-block;
+ text-align: center;
+ line-height: 1;
+ cursor: pointer;
+ -webkit-appearance: none;
+ -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
+ transition: background-color 0.25s ease-out, color 0.25s ease-out;
+ vertical-align: middle;
+ border: 1px solid transparent;
+ border-radius: 0;
+ padding: 0.85em 1em;
+ margin: 0 0 1rem 0;
+ font-size: 0.9rem;
+ background-color: #2199e8;
+ color: #fefefe; }
+ [data-whatinput='mouse'] .button {
+ outline: 0; }
+ .button:hover, .button:focus {
+ background-color: #1583cc;
+ color: #fefefe; }
+ .button.tiny {
+ font-size: 0.6rem; }
+ .button.small {
+ font-size: 0.75rem; }
+ .button.large {
+ font-size: 1.25rem; }
+ .button.expanded {
+ display: block;
+ width: 100%;
+ margin-left: 0;
+ margin-right: 0; }
+ .button.primary {
+ background-color: #2199e8;
+ color: #fefefe; }
+ .button.primary:hover, .button.primary:focus {
+ background-color: #147cc0;
+ color: #fefefe; }
+ .button.secondary {
+ background-color: #777;
+ color: #fefefe; }
+ .button.secondary:hover, .button.secondary:focus {
+ background-color: #5f5f5f;
+ color: #fefefe; }
+ .button.success {
+ background-color: #3adb76;
+ color: #fefefe; }
+ .button.success:hover, .button.success:focus {
+ background-color: #22bb5b;
+ color: #fefefe; }
+ .button.warning {
+ background-color: #ffae00;
+ color: #fefefe; }
+ .button.warning:hover, .button.warning:focus {
+ background-color: #cc8b00;
+ color: #fefefe; }
+ .button.alert {
+ background-color: #ec5840;
+ color: #fefefe; }
+ .button.alert:hover, .button.alert:focus {
+ background-color: #da3116;
+ color: #fefefe; }
+ .button.hollow {
+ border: 1px solid #2199e8;
+ color: #2199e8; }
+ .button.hollow, .button.hollow:hover, .button.hollow:focus {
+ background-color: transparent; }
+ .button.hollow:hover, .button.hollow:focus {
+ border-color: #0c4d78;
+ color: #0c4d78; }
+ .button.hollow.primary {
+ border: 1px solid #2199e8;
+ color: #2199e8; }
+ .button.hollow.primary:hover, .button.hollow.primary:focus {
+ border-color: #0c4d78;
+ color: #0c4d78; }
+ .button.hollow.secondary {
+ border: 1px solid #777;
+ color: #777; }
+ .button.hollow.secondary:hover, .button.hollow.secondary:focus {
+ border-color: #3c3c3c;
+ color: #3c3c3c; }
+ .button.hollow.success {
+ border: 1px solid #3adb76;
+ color: #3adb76; }
+ .button.hollow.success:hover, .button.hollow.success:focus {
+ border-color: #157539;
+ color: #157539; }
+ .button.hollow.warning {
+ border: 1px solid #ffae00;
+ color: #ffae00; }
+ .button.hollow.warning:hover, .button.hollow.warning:focus {
+ border-color: #805700;
+ color: #805700; }
+ .button.hollow.alert {
+ border: 1px solid #ec5840;
+ color: #ec5840; }
+ .button.hollow.alert:hover, .button.hollow.alert:focus {
+ border-color: #881f0e;
+ color: #881f0e; }
+ .button.disabled, .button[disabled] {
+ opacity: 0.25;
+ cursor: not-allowed; }
+ .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
+ background-color: #2199e8;
+ color: #fefefe; }
+ .button.dropdown::after {
+ content: '';
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 0.4em;
+ border-color: #fefefe transparent transparent;
+ border-top-style: solid;
+ border-bottom-width: 0;
+ position: relative;
+ top: 0.4em;
+ float: right;
+ margin-left: 1em;
+ display: inline-block; }
+ .button.arrow-only::after {
+ margin-left: 0;
+ float: none;
+ top: -0.1em; }
-label.error {
- color: #f04124; }
+.accordion {
+ list-style-type: none;
+ background: #fefefe;
+ margin-left: 0; }
-meta.foundation-mq-topbar {
- font-family: "/only screen and (min-width:40.0625em)/";
- width: 40.0625em; }
+.accordion-item:first-child > :first-child {
+ border-radius: 0 0 0 0; }
-/* Wrapped around .top-bar to contain to grid width */
-.contain-to-grid {
- width: 100%;
- background: #333333; }
- .contain-to-grid .top-bar {
- margin-bottom: 0; }
+.accordion-item:last-child > :last-child {
+ border-radius: 0 0 0 0; }
-.fixed {
- position: fixed;
- top: 0;
- width: 100%;
- z-index: 99;
- left: 0; }
- .fixed.expanded:not(.top-bar) {
- height: auto;
- max-height: 100%;
- overflow-y: auto;
- width: 100%; }
- .fixed.expanded:not(.top-bar) .title-area {
- position: fixed;
- width: 100%;
- z-index: 99; }
- .fixed.expanded:not(.top-bar) .top-bar-section {
- margin-top: 2.8125rem;
- z-index: 98; }
+.accordion-title {
+ display: block;
+ padding: 1.25rem 1rem;
+ line-height: 1;
+ font-size: 0.75rem;
+ color: #2199e8;
+ position: relative;
+ border: 1px solid #e6e6e6;
+ border-bottom: 0; }
+ :last-child:not(.is-active) > .accordion-title {
+ border-radius: 0 0 0 0;
+ border-bottom: 1px solid #e6e6e6; }
+ .accordion-title:hover, .accordion-title:focus {
+ background-color: #e6e6e6; }
+ .accordion-title::before {
+ content: '+';
+ position: absolute;
+ right: 1rem;
+ top: 50%;
+ margin-top: -0.5rem; }
+ .is-active > .accordion-title::before {
+ content: '–'; }
-.top-bar {
- background: #333333;
- height: 2.8125rem;
- line-height: 2.8125rem;
- margin-bottom: 0;
- overflow: hidden;
+.accordion-content {
+ padding: 1rem;
+ display: none;
+ border: 1px solid #e6e6e6;
+ border-bottom: 0;
+ background-color: #fefefe;
+ color: #0a0a0a; }
+ :last-child > .accordion-content:last-child {
+ border-bottom: 1px solid #e6e6e6; }
+
+.is-accordion-submenu-parent > a {
position: relative; }
- .top-bar ul {
- list-style: none;
- margin-bottom: 0; }
- .top-bar .row {
- max-width: none; }
- .top-bar form,
- .top-bar input,
- .top-bar select {
- margin-bottom: 0; }
- .top-bar input,
- .top-bar select {
- font-size: 0.75rem;
- height: 1.75rem;
- padding-bottom: .35rem;
- padding-top: .35rem; }
- .top-bar .button, .top-bar button {
- font-size: 0.75rem;
- margin-bottom: 0;
- padding-bottom: 0.4125rem;
- padding-top: 0.4125rem; }
- @media only screen and (max-width: 40em) {
- .top-bar .button, .top-bar button {
- position: relative;
- top: -1px; } }
- .top-bar .title-area {
- margin: 0;
- position: relative; }
- .top-bar .name {
- font-size: 16px;
- height: 2.8125rem;
- margin: 0; }
- .top-bar .name h1, .top-bar .name h2, .top-bar .name h3, .top-bar .name h4, .top-bar .name p, .top-bar .name span {
- font-size: 1.0625rem;
- line-height: 2.8125rem;
- margin: 0; }
- .top-bar .name h1 a, .top-bar .name h2 a, .top-bar .name h3 a, .top-bar .name h4 a, .top-bar .name p a, .top-bar .name span a {
- color: #FFFFFF;
- display: block;
- font-weight: normal;
- padding: 0 0.9375rem;
- width: 75%; }
- .top-bar .toggle-topbar {
- position: absolute;
- right: 0;
- top: 0; }
- .top-bar .toggle-topbar a {
- color: #FFFFFF;
- display: block;
- font-size: 0.8125rem;
- font-weight: bold;
- height: 2.8125rem;
- line-height: 2.8125rem;
- padding: 0 0.9375rem;
- position: relative;
- text-transform: uppercase; }
- .top-bar .toggle-topbar.menu-icon {
- margin-top: -16px;
- top: 50%; }
- .top-bar .toggle-topbar.menu-icon a {
- color: #FFFFFF;
- height: 34px;
- line-height: 33px;
- padding: 0 2.5rem 0 0.9375rem;
- position: relative; }
- .top-bar .toggle-topbar.menu-icon a span::after {
- content: "";
- display: block;
- height: 0;
- position: absolute;
- margin-top: -8px;
- top: 50%;
- right: 0.9375rem;
- box-shadow: 0 0 0 1px #FFFFFF, 0 7px 0 1px #FFFFFF, 0 14px 0 1px #FFFFFF;
- width: 16px; }
- .top-bar .toggle-topbar.menu-icon a span:hover:after {
- box-shadow: 0 0 0 1px "", 0 7px 0 1px "", 0 14px 0 1px ""; }
- .top-bar.expanded {
- background: transparent;
- height: auto; }
- .top-bar.expanded .title-area {
- background: #333333; }
- .top-bar.expanded .toggle-topbar a {
- color: #888888; }
- .top-bar.expanded .toggle-topbar a span::after {
- box-shadow: 0 0 0 1px #888888, 0 7px 0 1px #888888, 0 14px 0 1px #888888; }
- @media screen and (-webkit-min-device-pixel-ratio: 0) {
- .top-bar.expanded .top-bar-section .has-dropdown.moved > .dropdown,
- .top-bar.expanded .top-bar-section .dropdown {
- clip: initial; }
- .top-bar.expanded .top-bar-section .has-dropdown:not(.moved) > ul {
- padding: 0; } }
-
-.top-bar-section {
- left: 0;
- position: relative;
- width: auto;
- transition: left 300ms ease-out; }
- .top-bar-section ul {
- display: block;
- font-size: 16px;
- height: auto;
- margin: 0;
- padding: 0;
- width: 100%; }
- .top-bar-section .divider,
- .top-bar-section [role="separator"] {
- border-top: solid 1px #1a1a1a;
- clear: both;
- height: 1px;
- width: 100%; }
- .top-bar-section ul li {
- background: #333333; }
- .top-bar-section ul li > a {
- color: #FFFFFF;
- display: block;
- font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
- font-size: 0.8125rem;
- font-weight: normal;
- padding-left: 0.9375rem;
- padding: 12px 0 12px 0.9375rem;
- text-transform: none;
- width: 100%; }
- .top-bar-section ul li > a.button {
- font-size: 0.8125rem;
- padding-left: 0.9375rem;
- padding-right: 0.9375rem;
- background-color: #008CBA;
- border-color: #007095;
- color: #FFFFFF; }
- .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus {
- background-color: #007095; }
- .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus {
- color: #FFFFFF; }
- .top-bar-section ul li > a.button.secondary {
- background-color: #e7e7e7;
- border-color: #b9b9b9;
- color: #333333; }
- .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus {
- background-color: #b9b9b9; }
- .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus {
- color: #333333; }
- .top-bar-section ul li > a.button.success {
- background-color: #43AC6A;
- border-color: #368a55;
- color: #FFFFFF; }
- .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus {
- background-color: #368a55; }
- .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus {
- color: #FFFFFF; }
- .top-bar-section ul li > a.button.alert {
- background-color: #f04124;
- border-color: #cf2a0e;
- color: #FFFFFF; }
- .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus {
- background-color: #cf2a0e; }
- .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus {
- color: #FFFFFF; }
- .top-bar-section ul li > a.button.warning {
- background-color: #f08a24;
- border-color: #cf6e0e;
- color: #FFFFFF; }
- .top-bar-section ul li > a.button.warning:hover, .top-bar-section ul li > a.button.warning:focus {
- background-color: #cf6e0e; }
- .top-bar-section ul li > a.button.warning:hover, .top-bar-section ul li > a.button.warning:focus {
- color: #FFFFFF; }
- .top-bar-section ul li > a.button.info {
- background-color: #a0d3e8;
- border-color: #61b6d9;
- color: #333333; }
- .top-bar-section ul li > a.button.info:hover, .top-bar-section ul li > a.button.info:focus {
- background-color: #61b6d9; }
- .top-bar-section ul li > a.button.info:hover, .top-bar-section ul li > a.button.info:focus {
- color: #FFFFFF; }
- .top-bar-section ul li > button {
- font-size: 0.8125rem;
- padding-left: 0.9375rem;
- padding-right: 0.9375rem;
- background-color: #008CBA;
- border-color: #007095;
- color: #FFFFFF; }
- .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus {
- background-color: #007095; }
- .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus {
- color: #FFFFFF; }
- .top-bar-section ul li > button.secondary {
- background-color: #e7e7e7;
- border-color: #b9b9b9;
- color: #333333; }
- .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus {
- background-color: #b9b9b9; }
- .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus {
- color: #333333; }
- .top-bar-section ul li > button.success {
- background-color: #43AC6A;
- border-color: #368a55;
- color: #FFFFFF; }
- .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus {
- background-color: #368a55; }
- .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus {
- color: #FFFFFF; }
- .top-bar-section ul li > button.alert {
- background-color: #f04124;
- border-color: #cf2a0e;
- color: #FFFFFF; }
- .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus {
- background-color: #cf2a0e; }
- .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus {
- color: #FFFFFF; }
- .top-bar-section ul li > button.warning {
- background-color: #f08a24;
- border-color: #cf6e0e;
- color: #FFFFFF; }
- .top-bar-section ul li > button.warning:hover, .top-bar-section ul li > button.warning:focus {
- background-color: #cf6e0e; }
- .top-bar-section ul li > button.warning:hover, .top-bar-section ul li > button.warning:focus {
- color: #FFFFFF; }
- .top-bar-section ul li > button.info {
- background-color: #a0d3e8;
- border-color: #61b6d9;
- color: #333333; }
- .top-bar-section ul li > button.info:hover, .top-bar-section ul li > button.info:focus {
- background-color: #61b6d9; }
- .top-bar-section ul li > button.info:hover, .top-bar-section ul li > button.info:focus {
- color: #FFFFFF; }
- .top-bar-section ul li:hover:not(.has-form) > a {
- background-color: #555555;
- color: #FFFFFF;
- background: #222222; }
- .top-bar-section ul li.active > a {
- background: #008CBA;
- color: #FFFFFF; }
- .top-bar-section ul li.active > a:hover {
- background: #0078a0;
- color: #FFFFFF; }
- .top-bar-section .has-form {
- padding: 0.9375rem; }
- .top-bar-section .has-dropdown {
- position: relative; }
- .top-bar-section .has-dropdown > a:after {
- border: inset 5px;
- content: "";
- display: block;
- height: 0;
- width: 0;
- border-color: transparent transparent transparent rgba(255, 255, 255, 0.4);
- border-left-style: solid;
- margin-right: 0.9375rem;
- margin-top: -4.5px;
- position: absolute;
- top: 50%;
- right: 0; }
- .top-bar-section .has-dropdown.moved {
- position: static; }
- .top-bar-section .has-dropdown.moved > .dropdown {
- position: static !important;
- height: auto;
- width: auto;
- overflow: visible;
- clip: auto;
- display: block;
- position: absolute !important;
- width: 100%; }
- .top-bar-section .has-dropdown.moved > a:after {
- display: none; }
- .top-bar-section .dropdown {
- clip: rect(1px, 1px, 1px, 1px);
- height: 1px;
- overflow: hidden;
- position: absolute !important;
- width: 1px;
+ .is-accordion-submenu-parent > a::after {
+ content: '';
display: block;
- padding: 0;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ border-color: #2199e8 transparent transparent;
+ border-top-style: solid;
+ border-bottom-width: 0;
position: absolute;
- top: 0;
- z-index: 99;
- left: 100%; }
- .top-bar-section .dropdown li {
- height: auto;
- width: 100%; }
- .top-bar-section .dropdown li a {
- font-weight: normal;
- padding: 8px 0.9375rem; }
- .top-bar-section .dropdown li a.parent-link {
- font-weight: normal; }
- .top-bar-section .dropdown li.title h5, .top-bar-section .dropdown li.parent-link {
- margin-bottom: 0;
- margin-top: 0;
- font-size: 1.125rem; }
- .top-bar-section .dropdown li.title h5 a, .top-bar-section .dropdown li.parent-link a {
- color: #FFFFFF;
- display: block; }
- .top-bar-section .dropdown li.title h5 a:hover, .top-bar-section .dropdown li.parent-link a:hover {
- background: none; }
- .top-bar-section .dropdown li.has-form {
- padding: 8px 0.9375rem; }
- .top-bar-section .dropdown li .button,
- .top-bar-section .dropdown li button {
- top: auto; }
- .top-bar-section .dropdown label {
- color: #777777;
- font-size: 0.625rem;
- font-weight: bold;
- margin-bottom: 0;
- padding: 8px 0.9375rem 2px;
- text-transform: uppercase; }
-
-.js-generated {
- display: block; }
+ top: 50%;
+ margin-top: -4px;
+ right: 1rem; }
+
+.is-accordion-submenu-parent[aria-expanded='true'] > a::after {
+ -webkit-transform-origin: 50% 50%;
+ -ms-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+ -webkit-transform: scaleY(-1);
+ -ms-transform: scaleY(-1);
+ transform: scaleY(-1); }
+
+.badge {
+ display: inline-block;
+ padding: 0.3em;
+ min-width: 2.1em;
+ font-size: 0.6rem;
+ text-align: center;
+ border-radius: 50%;
+ background: #2199e8;
+ color: #fefefe; }
+ .badge.secondary {
+ background: #777;
+ color: #fefefe; }
+ .badge.success {
+ background: #3adb76;
+ color: #fefefe; }
+ .badge.warning {
+ background: #ffae00;
+ color: #fefefe; }
+ .badge.alert {
+ background: #ec5840;
+ color: #fefefe; }
-@media only screen and (min-width: 40.0625em) {
- .top-bar {
- background: #333333;
- overflow: visible; }
- .top-bar:before, .top-bar:after {
- content: " ";
- display: table; }
- .top-bar:after {
- clear: both; }
- .top-bar .toggle-topbar {
- display: none; }
- .top-bar .title-area {
- float: left; }
- .top-bar .name h1 a,
- .top-bar .name h2 a,
- .top-bar .name h3 a,
- .top-bar .name h4 a,
- .top-bar .name h5 a,
- .top-bar .name h6 a {
- width: auto; }
- .top-bar input,
- .top-bar select,
- .top-bar .button,
- .top-bar button {
- font-size: 0.875rem;
- height: 1.75rem;
- position: relative;
- top: 0.53125rem; }
- .top-bar.expanded {
- background: #333333; }
-
- .contain-to-grid .top-bar {
- margin-bottom: 0;
- margin: 0 auto;
- max-width: 62.5rem; }
-
- .top-bar-section {
- transition: none 0 0;
- left: 0 !important; }
- .top-bar-section ul {
- display: inline;
- height: auto !important;
- width: auto; }
- .top-bar-section ul li {
- float: left; }
- .top-bar-section ul li .js-generated {
- display: none; }
- .top-bar-section li.hover > a:not(.button) {
- background-color: #555555;
- background: #222222;
- color: #FFFFFF; }
- .top-bar-section li:not(.has-form) a:not(.button) {
- background: #333333;
- line-height: 2.8125rem;
- padding: 0 0.9375rem; }
- .top-bar-section li:not(.has-form) a:not(.button):hover {
- background-color: #555555;
- background: #222222; }
- .top-bar-section li.active:not(.has-form) a:not(.button) {
- background: #008CBA;
- color: #FFFFFF;
- line-height: 2.8125rem;
- padding: 0 0.9375rem; }
- .top-bar-section li.active:not(.has-form) a:not(.button):hover {
- background: #0078a0;
- color: #FFFFFF; }
- .top-bar-section .has-dropdown > a {
- padding-right: 2.1875rem !important; }
- .top-bar-section .has-dropdown > a:after {
- border: inset 5px;
- content: "";
- display: block;
- height: 0;
- width: 0;
- border-color: rgba(255, 255, 255, 0.4) transparent transparent transparent;
- border-top-style: solid;
- margin-top: -2.5px;
- top: 1.40625rem; }
- .top-bar-section .has-dropdown.moved {
- position: relative; }
- .top-bar-section .has-dropdown.moved > .dropdown {
- clip: rect(1px, 1px, 1px, 1px);
- height: 1px;
- overflow: hidden;
- position: absolute !important;
- width: 1px;
- display: block; }
- .top-bar-section .has-dropdown.hover > .dropdown, .top-bar-section .has-dropdown.not-click:hover > .dropdown {
- position: static !important;
- height: auto;
- width: auto;
- overflow: visible;
- clip: auto;
- display: block;
- position: absolute !important; }
- .top-bar-section .has-dropdown > a:focus + .dropdown {
- position: static !important;
- height: auto;
- width: auto;
- overflow: visible;
- clip: auto;
- display: block;
- position: absolute !important; }
- .top-bar-section .has-dropdown .dropdown li.has-dropdown > a:after {
- border: none;
- content: "\00bb";
- top: 0.1875rem;
- right: 5px; }
- .top-bar-section .dropdown {
- left: 0;
- background: transparent;
- min-width: 100%;
- top: auto; }
- .top-bar-section .dropdown li a {
- background: #333333;
- color: #FFFFFF;
- line-height: 2.8125rem;
- padding: 12px 0.9375rem;
- white-space: nowrap; }
- .top-bar-section .dropdown li:not(.has-form):not(.active) > a:not(.button) {
- background: #333333;
- color: #FFFFFF; }
- .top-bar-section .dropdown li:not(.has-form):not(.active):hover > a:not(.button) {
- background-color: #555555;
- color: #FFFFFF;
- background: #222222; }
- .top-bar-section .dropdown li label {
- background: #333333;
- white-space: nowrap; }
- .top-bar-section .dropdown li .dropdown {
- left: 100%;
- top: 0; }
- .top-bar-section > ul > .divider,
- .top-bar-section > ul > [role="separator"] {
- border-right: solid 1px #4e4e4e;
- border-bottom: none;
- border-top: none;
- clear: none;
- height: 2.8125rem;
- width: 0; }
- .top-bar-section .has-form {
- background: #333333;
- height: 2.8125rem;
- padding: 0 0.9375rem; }
- .top-bar-section .right li .dropdown {
- left: auto;
- right: 0; }
- .top-bar-section .right li .dropdown li .dropdown {
- right: 100%; }
- .top-bar-section .left li .dropdown {
- right: auto;
- left: 0; }
- .top-bar-section .left li .dropdown li .dropdown {
- left: 100%; }
-
- .no-js .top-bar-section ul li:hover > a {
- background-color: #555555;
- background: #222222;
- color: #FFFFFF; }
- .no-js .top-bar-section ul li:active > a {
- background: #008CBA;
- color: #FFFFFF; }
- .no-js .top-bar-section .has-dropdown:hover > .dropdown {
- position: static !important;
- height: auto;
- width: auto;
- overflow: visible;
- clip: auto;
- display: block;
- position: absolute !important; }
- .no-js .top-bar-section .has-dropdown > a:focus + .dropdown {
- position: static !important;
- height: auto;
- width: auto;
- overflow: visible;
- clip: auto;
- display: block;
- position: absolute !important; } }
.breadcrumbs {
- border-style: solid;
- border-width: 1px;
- display: block;
list-style: none;
- margin-left: 0;
- overflow: hidden;
- padding: 0.5625rem 0.875rem 0.5625rem;
- background-color: #f4f4f4;
- border-color: gainsboro;
- border-radius: 3px; }
- .breadcrumbs > * {
- color: #008CBA;
+ margin: 0 0 1rem 0; }
+ .breadcrumbs::before, .breadcrumbs::after {
+ content: ' ';
+ display: table; }
+ .breadcrumbs::after {
+ clear: both; }
+ .breadcrumbs li {
float: left;
+ color: #0a0a0a;
font-size: 0.6875rem;
- line-height: 0.6875rem;
- margin: 0;
+ cursor: default;
text-transform: uppercase; }
- .breadcrumbs > *:hover a, .breadcrumbs > *:focus a {
- text-decoration: underline; }
- .breadcrumbs > * a {
- color: #008CBA; }
- .breadcrumbs > *.current {
- color: #333333;
- cursor: default; }
- .breadcrumbs > *.current a {
- color: #333333;
- cursor: default; }
- .breadcrumbs > *.current:hover, .breadcrumbs > *.current:hover a, .breadcrumbs > *.current:focus, .breadcrumbs > *.current:focus a {
- text-decoration: none; }
- .breadcrumbs > *.unavailable {
- color: #999999; }
- .breadcrumbs > *.unavailable a {
- color: #999999; }
- .breadcrumbs > *.unavailable:hover, .breadcrumbs > *.unavailable:hover a, .breadcrumbs > *.unavailable:focus,
- .breadcrumbs > *.unavailable a:focus {
- color: #999999;
- cursor: not-allowed;
- text-decoration: none; }
- .breadcrumbs > *:before {
- color: #AAAAAA;
+ .breadcrumbs li:not(:last-child)::after {
+ color: #cacaca;
content: "/";
margin: 0 0.75rem;
position: relative;
- top: 1px; }
- .breadcrumbs > *:first-child:before {
- content: " ";
- margin: 0; }
-
-/* Accessibility - hides the forward slash */
-[aria-label="breadcrumbs"] [aria-hidden="true"]:after {
- content: "/"; }
-
-.alert-box {
- border-style: solid;
- border-width: 1px;
- display: block;
- font-size: 0.8125rem;
- font-weight: normal;
- margin-bottom: 1.25rem;
- padding: 0.875rem 1.5rem 0.875rem 0.875rem;
- position: relative;
- transition: opacity 300ms ease-out;
- background-color: #008CBA;
- border-color: #0078a0;
- color: #FFFFFF; }
- .alert-box .close {
- right: 0.25rem;
- background: inherit;
- color: #333333;
- font-size: 1.375rem;
- line-height: .9;
- margin-top: -0.6875rem;
- opacity: 0.3;
- padding: 0 6px 4px;
- position: absolute;
- top: 50%; }
- .alert-box .close:hover, .alert-box .close:focus {
- opacity: 0.5; }
- .alert-box.radius {
- border-radius: 3px; }
- .alert-box.round {
- border-radius: 1000px; }
- .alert-box.success {
- background-color: #43AC6A;
- border-color: #3a945b;
- color: #FFFFFF; }
- .alert-box.alert {
- background-color: #f04124;
- border-color: #de2d0f;
- color: #FFFFFF; }
- .alert-box.secondary {
- background-color: #e7e7e7;
- border-color: #c7c7c7;
- color: #4f4f4f; }
- .alert-box.warning {
- background-color: #f08a24;
- border-color: #de770f;
- color: #FFFFFF; }
- .alert-box.info {
- background-color: #a0d3e8;
- border-color: #74bfdd;
- color: #4f4f4f; }
- .alert-box.alert-close {
- opacity: 0; }
-
-.inline-list {
- list-style: none;
- margin-left: -1.375rem;
- margin-right: 0;
- margin: 0 auto 1.0625rem auto;
- overflow: hidden;
- padding: 0; }
- .inline-list > li {
- display: block;
- float: left;
- list-style: none;
- margin-left: 1.375rem; }
- .inline-list > li > * {
- display: block; }
+ top: 1px;
+ opacity: 1; }
+ .breadcrumbs a {
+ color: #2199e8; }
+ .breadcrumbs a:hover {
+ text-decoration: underline; }
+ .breadcrumbs .disabled {
+ color: #cacaca;
+ cursor: not-allowed; }
.button-group {
- list-style: none;
- margin: 0;
- left: 0; }
- .button-group:before, .button-group:after {
- content: " ";
+ margin-bottom: 1rem;
+ font-size: 0; }
+ .button-group::before, .button-group::after {
+ content: ' ';
display: table; }
- .button-group:after {
+ .button-group::after {
clear: both; }
- .button-group.even-2 li {
- display: inline-block;
- margin: 0 -2px;
- width: 50%; }
- .button-group.even-2 li > button, .button-group.even-2 li .button {
- border-left: 1px solid;
- border-color: rgba(255, 255, 255, 0.5); }
- .button-group.even-2 li:first-child button, .button-group.even-2 li:first-child .button {
- border-left: 0; }
- .button-group.even-2 li button, .button-group.even-2 li .button {
- width: 100%; }
- .button-group.even-3 li {
- display: inline-block;
- margin: 0 -2px;
- width: 33.33333%; }
- .button-group.even-3 li > button, .button-group.even-3 li .button {
- border-left: 1px solid;
- border-color: rgba(255, 255, 255, 0.5); }
- .button-group.even-3 li:first-child button, .button-group.even-3 li:first-child .button {
- border-left: 0; }
- .button-group.even-3 li button, .button-group.even-3 li .button {
- width: 100%; }
- .button-group.even-4 li {
- display: inline-block;
- margin: 0 -2px;
- width: 25%; }
- .button-group.even-4 li > button, .button-group.even-4 li .button {
- border-left: 1px solid;
- border-color: rgba(255, 255, 255, 0.5); }
- .button-group.even-4 li:first-child button, .button-group.even-4 li:first-child .button {
- border-left: 0; }
- .button-group.even-4 li button, .button-group.even-4 li .button {
- width: 100%; }
- .button-group.even-5 li {
- display: inline-block;
- margin: 0 -2px;
- width: 20%; }
- .button-group.even-5 li > button, .button-group.even-5 li .button {
- border-left: 1px solid;
- border-color: rgba(255, 255, 255, 0.5); }
- .button-group.even-5 li:first-child button, .button-group.even-5 li:first-child .button {
- border-left: 0; }
- .button-group.even-5 li button, .button-group.even-5 li .button {
- width: 100%; }
- .button-group.even-6 li {
- display: inline-block;
- margin: 0 -2px;
- width: 16.66667%; }
- .button-group.even-6 li > button, .button-group.even-6 li .button {
- border-left: 1px solid;
- border-color: rgba(255, 255, 255, 0.5); }
- .button-group.even-6 li:first-child button, .button-group.even-6 li:first-child .button {
- border-left: 0; }
- .button-group.even-6 li button, .button-group.even-6 li .button {
- width: 100%; }
- .button-group.even-7 li {
- display: inline-block;
- margin: 0 -2px;
- width: 14.28571%; }
- .button-group.even-7 li > button, .button-group.even-7 li .button {
- border-left: 1px solid;
- border-color: rgba(255, 255, 255, 0.5); }
- .button-group.even-7 li:first-child button, .button-group.even-7 li:first-child .button {
- border-left: 0; }
- .button-group.even-7 li button, .button-group.even-7 li .button {
- width: 100%; }
- .button-group.even-8 li {
- display: inline-block;
- margin: 0 -2px;
- width: 12.5%; }
- .button-group.even-8 li > button, .button-group.even-8 li .button {
- border-left: 1px solid;
- border-color: rgba(255, 255, 255, 0.5); }
- .button-group.even-8 li:first-child button, .button-group.even-8 li:first-child .button {
- border-left: 0; }
- .button-group.even-8 li button, .button-group.even-8 li .button {
- width: 100%; }
- .button-group > li {
- display: inline-block;
- margin: 0 -2px; }
- .button-group > li > button, .button-group > li .button {
- border-left: 1px solid;
- border-color: rgba(255, 255, 255, 0.5); }
- .button-group > li:first-child button, .button-group > li:first-child .button {
- border-left: 0; }
- .button-group.stack > li {
- display: block;
+ .button-group .button {
margin: 0;
- float: none; }
- .button-group.stack > li > button, .button-group.stack > li .button {
- border-left: 1px solid;
- border-color: rgba(255, 255, 255, 0.5); }
- .button-group.stack > li:first-child button, .button-group.stack > li:first-child .button {
- border-left: 0; }
- .button-group.stack > li > button, .button-group.stack > li .button {
- border-color: rgba(255, 255, 255, 0.5);
- border-left-width: 0;
- border-top: 1px solid;
- display: block;
- margin: 0; }
- .button-group.stack > li > button {
- width: 100%; }
- .button-group.stack > li:first-child button, .button-group.stack > li:first-child .button {
- border-top: 0; }
- .button-group.stack-for-small > li {
- display: inline-block;
- margin: 0 -2px; }
- .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
- border-left: 1px solid;
- border-color: rgba(255, 255, 255, 0.5); }
- .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
- border-left: 0; }
- @media only screen and (max-width: 40em) {
- .button-group.stack-for-small > li {
- display: block;
- margin: 0; }
- .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
- border-left: 1px solid;
- border-color: rgba(255, 255, 255, 0.5); }
- .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
- border-left: 0; }
- .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
- border-color: rgba(255, 255, 255, 0.5);
- border-left-width: 0;
- border-top: 1px solid;
- display: block;
- margin: 0; }
- .button-group.stack-for-small > li > button {
- width: 100%; }
- .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
- border-top: 0; } }
- .button-group.radius > * {
- display: inline-block;
- margin: 0 -2px; }
- .button-group.radius > * > button, .button-group.radius > * .button {
- border-left: 1px solid;
- border-color: rgba(255, 255, 255, 0.5); }
- .button-group.radius > *:first-child button, .button-group.radius > *:first-child .button {
- border-left: 0; }
- .button-group.radius > *,
- .button-group.radius > * > a,
- .button-group.radius > * > button,
- .button-group.radius > * > .button {
- border-radius: 0; }
- .button-group.radius > *:first-child, .button-group.radius > *:first-child > a, .button-group.radius > *:first-child > button, .button-group.radius > *:first-child > .button {
- -webkit-border-bottom-left-radius: 3px;
- -webkit-border-top-left-radius: 3px;
- border-bottom-left-radius: 3px;
- border-top-left-radius: 3px; }
- .button-group.radius > *:last-child, .button-group.radius > *:last-child > a, .button-group.radius > *:last-child > button, .button-group.radius > *:last-child > .button {
- -webkit-border-bottom-right-radius: 3px;
- -webkit-border-top-right-radius: 3px;
- border-bottom-right-radius: 3px;
- border-top-right-radius: 3px; }
- .button-group.radius.stack > * {
- display: block;
- margin: 0; }
- .button-group.radius.stack > * > button, .button-group.radius.stack > * .button {
- border-left: 1px solid;
- border-color: rgba(255, 255, 255, 0.5); }
- .button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button {
- border-left: 0; }
- .button-group.radius.stack > * > button, .button-group.radius.stack > * .button {
- border-color: rgba(255, 255, 255, 0.5);
- border-left-width: 0;
- border-top: 1px solid;
- display: block;
- margin: 0; }
- .button-group.radius.stack > * > button {
- width: 100%; }
- .button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button {
- border-top: 0; }
- .button-group.radius.stack > *,
- .button-group.radius.stack > * > a,
- .button-group.radius.stack > * > button,
- .button-group.radius.stack > * > .button {
- border-radius: 0; }
- .button-group.radius.stack > *:first-child, .button-group.radius.stack > *:first-child > a, .button-group.radius.stack > *:first-child > button, .button-group.radius.stack > *:first-child > .button {
- -webkit-top-left-radius: 3px;
- -webkit-top-right-radius: 3px;
- border-top-left-radius: 3px;
- border-top-right-radius: 3px; }
- .button-group.radius.stack > *:last-child, .button-group.radius.stack > *:last-child > a, .button-group.radius.stack > *:last-child > button, .button-group.radius.stack > *:last-child > .button {
- -webkit-bottom-left-radius: 3px;
- -webkit-bottom-right-radius: 3px;
- border-bottom-left-radius: 3px;
- border-bottom-right-radius: 3px; }
- @media only screen and (min-width: 40.0625em) {
- .button-group.radius.stack-for-small > * {
+ margin-right: 1px;
+ margin-bottom: 1px;
+ font-size: 0.9rem; }
+ .button-group .button:last-child {
+ margin-right: 0; }
+ .button-group.tiny .button {
+ font-size: 0.6rem; }
+ .button-group.small .button {
+ font-size: 0.75rem; }
+ .button-group.large .button {
+ font-size: 1.25rem; }
+ .button-group.expanded {
+ margin-right: -1px; }
+ .button-group.expanded::before, .button-group.expanded::after {
+ display: none; }
+ .button-group.expanded .button:first-child:nth-last-child(2), .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button {
display: inline-block;
- margin: 0 -2px; }
- .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
- border-left: 1px solid;
- border-color: rgba(255, 255, 255, 0.5); }
- .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
- border-left: 0; }
- .button-group.radius.stack-for-small > *,
- .button-group.radius.stack-for-small > * > a,
- .button-group.radius.stack-for-small > * > button,
- .button-group.radius.stack-for-small > * > .button {
- border-radius: 0; }
- .button-group.radius.stack-for-small > *:first-child, .button-group.radius.stack-for-small > *:first-child > a, .button-group.radius.stack-for-small > *:first-child > button, .button-group.radius.stack-for-small > *:first-child > .button {
- -webkit-border-bottom-left-radius: 3px;
- -webkit-border-top-left-radius: 3px;
- border-bottom-left-radius: 3px;
- border-top-left-radius: 3px; }
- .button-group.radius.stack-for-small > *:last-child, .button-group.radius.stack-for-small > *:last-child > a, .button-group.radius.stack-for-small > *:last-child > button, .button-group.radius.stack-for-small > *:last-child > .button {
- -webkit-border-bottom-right-radius: 3px;
- -webkit-border-top-right-radius: 3px;
- border-bottom-right-radius: 3px;
- border-top-right-radius: 3px; } }
- @media only screen and (max-width: 40em) {
- .button-group.radius.stack-for-small > * {
- display: block;
- margin: 0; }
- .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
- border-left: 1px solid;
- border-color: rgba(255, 255, 255, 0.5); }
- .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
- border-left: 0; }
- .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
- border-color: rgba(255, 255, 255, 0.5);
- border-left-width: 0;
- border-top: 1px solid;
- display: block;
- margin: 0; }
- .button-group.radius.stack-for-small > * > button {
- width: 100%; }
- .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
- border-top: 0; }
- .button-group.radius.stack-for-small > *,
- .button-group.radius.stack-for-small > * > a,
- .button-group.radius.stack-for-small > * > button,
- .button-group.radius.stack-for-small > * > .button {
- border-radius: 0; }
- .button-group.radius.stack-for-small > *:first-child, .button-group.radius.stack-for-small > *:first-child > a, .button-group.radius.stack-for-small > *:first-child > button, .button-group.radius.stack-for-small > *:first-child > .button {
- -webkit-top-left-radius: 3px;
- -webkit-top-right-radius: 3px;
- border-top-left-radius: 3px;
- border-top-right-radius: 3px; }
- .button-group.radius.stack-for-small > *:last-child, .button-group.radius.stack-for-small > *:last-child > a, .button-group.radius.stack-for-small > *:last-child > button, .button-group.radius.stack-for-small > *:last-child > .button {
- -webkit-bottom-left-radius: 3px;
- -webkit-bottom-right-radius: 3px;
- border-bottom-left-radius: 3px;
- border-bottom-right-radius: 3px; } }
- .button-group.round > * {
- display: inline-block;
- margin: 0 -2px; }
- .button-group.round > * > button, .button-group.round > * .button {
- border-left: 1px solid;
- border-color: rgba(255, 255, 255, 0.5); }
- .button-group.round > *:first-child button, .button-group.round > *:first-child .button {
- border-left: 0; }
- .button-group.round > *,
- .button-group.round > * > a,
- .button-group.round > * > button,
- .button-group.round > * > .button {
- border-radius: 0; }
- .button-group.round > *:first-child, .button-group.round > *:first-child > a, .button-group.round > *:first-child > button, .button-group.round > *:first-child > .button {
- -webkit-border-bottom-left-radius: 1000px;
- -webkit-border-top-left-radius: 1000px;
- border-bottom-left-radius: 1000px;
- border-top-left-radius: 1000px; }
- .button-group.round > *:last-child, .button-group.round > *:last-child > a, .button-group.round > *:last-child > button, .button-group.round > *:last-child > .button {
- -webkit-border-bottom-right-radius: 1000px;
- -webkit-border-top-right-radius: 1000px;
- border-bottom-right-radius: 1000px;
- border-top-right-radius: 1000px; }
- .button-group.round.stack > * {
- display: block;
- margin: 0; }
- .button-group.round.stack > * > button, .button-group.round.stack > * .button {
- border-left: 1px solid;
- border-color: rgba(255, 255, 255, 0.5); }
- .button-group.round.stack > *:first-child button, .button-group.round.stack > *:first-child .button {
- border-left: 0; }
- .button-group.round.stack > * > button, .button-group.round.stack > * .button {
- border-color: rgba(255, 255, 255, 0.5);
- border-left-width: 0;
- border-top: 1px solid;
- display: block;
- margin: 0; }
- .button-group.round.stack > * > button {
- width: 100%; }
- .button-group.round.stack > *:first-child button, .button-group.round.stack > *:first-child .button {
- border-top: 0; }
- .button-group.round.stack > *,
- .button-group.round.stack > * > a,
- .button-group.round.stack > * > button,
- .button-group.round.stack > * > .button {
- border-radius: 0; }
- .button-group.round.stack > *:first-child, .button-group.round.stack > *:first-child > a, .button-group.round.stack > *:first-child > button, .button-group.round.stack > *:first-child > .button {
- -webkit-top-left-radius: 1rem;
- -webkit-top-right-radius: 1rem;
- border-top-left-radius: 1rem;
- border-top-right-radius: 1rem; }
- .button-group.round.stack > *:last-child, .button-group.round.stack > *:last-child > a, .button-group.round.stack > *:last-child > button, .button-group.round.stack > *:last-child > .button {
- -webkit-bottom-left-radius: 1rem;
- -webkit-bottom-right-radius: 1rem;
- border-bottom-left-radius: 1rem;
- border-bottom-right-radius: 1rem; }
- @media only screen and (min-width: 40.0625em) {
- .button-group.round.stack-for-small > * {
+ width: calc(50% - 1px);
+ margin-right: 1px; }
+ .button-group.expanded .button:first-child:nth-last-child(2):last-child, .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child {
+ margin-right: -6px; }
+ .button-group.expanded .button:first-child:nth-last-child(3), .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button {
display: inline-block;
- margin: 0 -2px; }
- .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button {
- border-left: 1px solid;
- border-color: rgba(255, 255, 255, 0.5); }
- .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button {
- border-left: 0; }
- .button-group.round.stack-for-small > *,
- .button-group.round.stack-for-small > * > a,
- .button-group.round.stack-for-small > * > button,
- .button-group.round.stack-for-small > * > .button {
- border-radius: 0; }
- .button-group.round.stack-for-small > *:first-child, .button-group.round.stack-for-small > *:first-child > a, .button-group.round.stack-for-small > *:first-child > button, .button-group.round.stack-for-small > *:first-child > .button {
- -webkit-border-bottom-left-radius: 1000px;
- -webkit-border-top-left-radius: 1000px;
- border-bottom-left-radius: 1000px;
- border-top-left-radius: 1000px; }
- .button-group.round.stack-for-small > *:last-child, .button-group.round.stack-for-small > *:last-child > a, .button-group.round.stack-for-small > *:last-child > button, .button-group.round.stack-for-small > *:last-child > .button {
- -webkit-border-bottom-right-radius: 1000px;
- -webkit-border-top-right-radius: 1000px;
- border-bottom-right-radius: 1000px;
- border-top-right-radius: 1000px; } }
- @media only screen and (max-width: 40em) {
- .button-group.round.stack-for-small > * {
- display: block;
- margin: 0; }
- .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button {
- border-left: 1px solid;
- border-color: rgba(255, 255, 255, 0.5); }
- .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button {
- border-left: 0; }
- .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button {
- border-color: rgba(255, 255, 255, 0.5);
- border-left-width: 0;
- border-top: 1px solid;
- display: block;
- margin: 0; }
- .button-group.round.stack-for-small > * > button {
- width: 100%; }
- .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button {
- border-top: 0; }
- .button-group.round.stack-for-small > *,
- .button-group.round.stack-for-small > * > a,
- .button-group.round.stack-for-small > * > button,
- .button-group.round.stack-for-small > * > .button {
- border-radius: 0; }
- .button-group.round.stack-for-small > *:first-child, .button-group.round.stack-for-small > *:first-child > a, .button-group.round.stack-for-small > *:first-child > button, .button-group.round.stack-for-small > *:first-child > .button {
- -webkit-top-left-radius: 1rem;
- -webkit-top-right-radius: 1rem;
- border-top-left-radius: 1rem;
- border-top-right-radius: 1rem; }
- .button-group.round.stack-for-small > *:last-child, .button-group.round.stack-for-small > *:last-child > a, .button-group.round.stack-for-small > *:last-child > button, .button-group.round.stack-for-small > *:last-child > .button {
- -webkit-bottom-left-radius: 1rem;
- -webkit-bottom-right-radius: 1rem;
- border-bottom-left-radius: 1rem;
- border-bottom-right-radius: 1rem; } }
-
-.button-bar:before, .button-bar:after {
- content: " ";
- display: table; }
-.button-bar:after {
- clear: both; }
-.button-bar .button-group {
- float: left;
- margin-right: 0.625rem; }
- .button-bar .button-group div {
- overflow: hidden; }
-
-/* Panels */
-.panel {
- border-style: solid;
- border-width: 1px;
- border-color: #d8d8d8;
- margin-bottom: 1.25rem;
- padding: 1.25rem;
- background: #f2f2f2;
- color: #333333; }
- .panel > :first-child {
- margin-top: 0; }
- .panel > :last-child {
- margin-bottom: 0; }
- .panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6, .panel p, .panel li, .panel dl {
- color: #333333; }
- .panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6 {
- line-height: 1;
- margin-bottom: 0.625rem; }
- .panel h1.subheader, .panel h2.subheader, .panel h3.subheader, .panel h4.subheader, .panel h5.subheader, .panel h6.subheader {
- line-height: 1.4; }
- .panel.callout {
- border-style: solid;
- border-width: 1px;
- border-color: #d8d8d8;
- margin-bottom: 1.25rem;
- padding: 1.25rem;
- background: #ecfaff;
- color: #333333; }
- .panel.callout > :first-child {
- margin-top: 0; }
- .panel.callout > :last-child {
+ width: calc(33.33333% - 1px);
+ margin-right: 1px; }
+ .button-group.expanded .button:first-child:nth-last-child(3):last-child, .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child {
+ margin-right: -6px; }
+ .button-group.expanded .button:first-child:nth-last-child(4), .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button {
+ display: inline-block;
+ width: calc(25% - 1px);
+ margin-right: 1px; }
+ .button-group.expanded .button:first-child:nth-last-child(4):last-child, .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child {
+ margin-right: -6px; }
+ .button-group.expanded .button:first-child:nth-last-child(5), .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button {
+ display: inline-block;
+ width: calc(20% - 1px);
+ margin-right: 1px; }
+ .button-group.expanded .button:first-child:nth-last-child(5):last-child, .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child {
+ margin-right: -6px; }
+ .button-group.expanded .button:first-child:nth-last-child(6), .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button {
+ display: inline-block;
+ width: calc(16.66667% - 1px);
+ margin-right: 1px; }
+ .button-group.expanded .button:first-child:nth-last-child(6):last-child, .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child {
+ margin-right: -6px; }
+ .button-group.primary .button {
+ background-color: #2199e8;
+ color: #fefefe; }
+ .button-group.primary .button:hover, .button-group.primary .button:focus {
+ background-color: #147cc0;
+ color: #fefefe; }
+ .button-group.secondary .button {
+ background-color: #777;
+ color: #fefefe; }
+ .button-group.secondary .button:hover, .button-group.secondary .button:focus {
+ background-color: #5f5f5f;
+ color: #fefefe; }
+ .button-group.success .button {
+ background-color: #3adb76;
+ color: #fefefe; }
+ .button-group.success .button:hover, .button-group.success .button:focus {
+ background-color: #22bb5b;
+ color: #fefefe; }
+ .button-group.warning .button {
+ background-color: #ffae00;
+ color: #fefefe; }
+ .button-group.warning .button:hover, .button-group.warning .button:focus {
+ background-color: #cc8b00;
+ color: #fefefe; }
+ .button-group.alert .button {
+ background-color: #ec5840;
+ color: #fefefe; }
+ .button-group.alert .button:hover, .button-group.alert .button:focus {
+ background-color: #da3116;
+ color: #fefefe; }
+ .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {
+ width: 100%; }
+ .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {
margin-bottom: 0; }
- .panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6, .panel.callout p, .panel.callout li, .panel.callout dl {
- color: #333333; }
- .panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6 {
- line-height: 1;
- margin-bottom: 0.625rem; }
- .panel.callout h1.subheader, .panel.callout h2.subheader, .panel.callout h3.subheader, .panel.callout h4.subheader, .panel.callout h5.subheader, .panel.callout h6.subheader {
- line-height: 1.4; }
- .panel.callout a:not(.button) {
- color: #008CBA; }
- .panel.callout a:not(.button):hover, .panel.callout a:not(.button):focus {
- color: #0078a0; }
- .panel.radius {
- border-radius: 3px; }
-
-.dropdown.button, button.dropdown {
- position: relative;
- padding-right: 3.5625rem; }
- .dropdown.button::after, button.dropdown::after {
- border-color: #FFFFFF transparent transparent transparent;
- border-style: solid;
- content: "";
- display: block;
- height: 0;
- position: absolute;
- top: 50%;
- width: 0; }
- .dropdown.button::after, button.dropdown::after {
- border-width: 0.375rem;
- right: 1.40625rem;
- margin-top: -0.15625rem; }
- .dropdown.button::after, button.dropdown::after {
- border-color: #FFFFFF transparent transparent transparent; }
- .dropdown.button.tiny, button.dropdown.tiny {
- padding-right: 2.625rem; }
- .dropdown.button.tiny:after, button.dropdown.tiny:after {
- border-width: 0.375rem;
- right: 1.125rem;
- margin-top: -0.125rem; }
- .dropdown.button.tiny::after, button.dropdown.tiny::after {
- border-color: #FFFFFF transparent transparent transparent; }
- .dropdown.button.small, button.dropdown.small {
- padding-right: 3.0625rem; }
- .dropdown.button.small::after, button.dropdown.small::after {
- border-width: 0.4375rem;
- right: 1.3125rem;
- margin-top: -0.15625rem; }
- .dropdown.button.small::after, button.dropdown.small::after {
- border-color: #FFFFFF transparent transparent transparent; }
- .dropdown.button.large, button.dropdown.large {
- padding-right: 3.625rem; }
- .dropdown.button.large::after, button.dropdown.large::after {
- border-width: 0.3125rem;
- right: 1.71875rem;
- margin-top: -0.15625rem; }
- .dropdown.button.large::after, button.dropdown.large::after {
- border-color: #FFFFFF transparent transparent transparent; }
- .dropdown.button.secondary:after, button.dropdown.secondary:after {
- border-color: #333333 transparent transparent transparent; }
-
-/* Image Thumbnails */
-.th {
- border: solid 4px #FFFFFF;
- box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
- display: inline-block;
- line-height: 0;
- max-width: 100%;
- transition: all 200ms ease-out; }
- .th:hover, .th:focus {
- box-shadow: 0 0 6px 1px rgba(0, 140, 186, 0.5); }
- .th.radius {
- border-radius: 3px; }
-
-/* Pricing Tables */
-.pricing-table {
- border: solid 1px #DDDDDD;
- margin-left: 0;
- margin-bottom: 1.25rem; }
- .pricing-table * {
- list-style: none;
- line-height: 1; }
- .pricing-table .title {
- background-color: #333333;
- color: #EEEEEE;
- font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
- font-size: 1rem;
- font-weight: normal;
- padding: 0.9375rem 1.25rem;
- text-align: center; }
- .pricing-table .price {
- background-color: #F6F6F6;
- color: #333333;
- font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
- font-size: 2rem;
- font-weight: normal;
- padding: 0.9375rem 1.25rem;
- text-align: center; }
- .pricing-table .description {
- background-color: #FFFFFF;
- border-bottom: dotted 1px #DDDDDD;
- color: #777777;
- font-size: 0.75rem;
- font-weight: normal;
- line-height: 1.4;
- padding: 0.9375rem;
- text-align: center; }
- .pricing-table .bullet-item {
- background-color: #FFFFFF;
- border-bottom: dotted 1px #DDDDDD;
- color: #333333;
- font-size: 0.875rem;
- font-weight: normal;
- padding: 0.9375rem;
- text-align: center; }
- .pricing-table .cta-button {
- background-color: #FFFFFF;
- padding: 1.25rem 1.25rem 0;
- text-align: center; }
-
-@-webkit-keyframes rotate {
- from {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg); }
- to {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg); } }
-@keyframes rotate {
- from {
- -webkit-transform: rotate(0deg);
- -moz-transform: rotate(0deg);
- -ms-transform: rotate(0deg);
- transform: rotate(0deg); }
- to {
- -webkit-transform: rotate(360deg);
- -moz-transform: rotate(360deg);
- -ms-transform: rotate(360deg);
- transform: rotate(360deg); } }
-/* Orbit Graceful Loading */
-.slideshow-wrapper {
- position: relative; }
- .slideshow-wrapper ul {
- list-style-type: none;
- margin: 0; }
- .slideshow-wrapper ul li,
- .slideshow-wrapper ul li .orbit-caption {
- display: none; }
- .slideshow-wrapper ul li:first-child {
- display: block; }
- .slideshow-wrapper .orbit-container {
- background-color: transparent; }
- .slideshow-wrapper .orbit-container li {
+ @media screen and (min-width: 40em) {
+ .button-group.stacked-for-small .button {
+ width: auto;
+ margin-bottom: 0; } }
+ @media screen and (min-width: 64em) {
+ .button-group.stacked-for-medium .button {
+ width: auto;
+ margin-bottom: 0; } }
+ @media screen and (max-width: 39.9375em) {
+ .button-group.stacked-for-small.expanded {
display: block; }
- .slideshow-wrapper .orbit-container li .orbit-caption {
- display: block; }
- .slideshow-wrapper .orbit-container .orbit-bullets li {
- display: inline-block; }
- .slideshow-wrapper .preloader {
- border-radius: 1000px;
- animation-duration: 1.5s;
- animation-iteration-count: infinite;
- animation-name: rotate;
- animation-timing-function: linear;
- border-color: #555555 #FFFFFF;
- border: solid 3px;
- display: block;
- height: 40px;
- left: 50%;
- margin-left: -20px;
- margin-top: -20px;
- position: absolute;
- top: 50%;
- width: 40px; }
-
-.orbit-container {
- background: none;
- overflow: hidden;
- position: relative;
- width: 100%; }
- .orbit-container .orbit-slides-container {
- list-style: none;
- margin: 0;
- padding: 0;
- position: relative;
- -webkit-transform: translateZ(0);
- -moz-transform: translateZ(0);
- -ms-transform: translateZ(0);
- -o-transform: translateZ(0);
- transform: translateZ(0); }
- .orbit-container .orbit-slides-container img {
- display: block;
- max-width: 100%; }
- .orbit-container .orbit-slides-container > * {
- position: absolute;
- top: 0;
- width: 100%;
- margin-left: 100%; }
- .orbit-container .orbit-slides-container > *:first-child {
- margin-left: 0; }
- .orbit-container .orbit-slides-container > * .orbit-caption {
- bottom: 0;
- position: absolute;
- background-color: rgba(51, 51, 51, 0.8);
- color: #FFFFFF;
- font-size: 0.875rem;
- padding: 0.625rem 0.875rem;
- width: 100%; }
- .orbit-container .orbit-slide-number {
- left: 10px;
- background: transparent;
- color: #FFFFFF;
- font-size: 12px;
- position: absolute;
- top: 10px;
- z-index: 10; }
- .orbit-container .orbit-slide-number span {
- font-weight: 700;
- padding: 0.3125rem; }
- .orbit-container .orbit-timer {
- position: absolute;
- top: 12px;
- right: 10px;
- height: 6px;
- width: 100px;
- z-index: 10; }
- .orbit-container .orbit-timer .orbit-progress {
- height: 3px;
- background-color: rgba(255, 255, 255, 0.3);
- display: block;
- width: 0;
- position: relative;
- right: 20px;
- top: 5px; }
- .orbit-container .orbit-timer > span {
- border: solid 4px #FFFFFF;
- border-bottom: none;
- border-top: none;
- display: none;
- height: 14px;
- position: absolute;
- top: 0;
- width: 11px;
- right: 0; }
- .orbit-container .orbit-timer.paused > span {
- top: 0;
- width: 11px;
- height: 14px;
- border: inset 8px;
- border-left-style: solid;
- border-color: transparent;
- border-left-color: #FFFFFF;
- right: -4px; }
- .orbit-container .orbit-timer.paused > span.dark {
- border-left-color: #333333; }
- .orbit-container:hover .orbit-timer > span {
- display: block; }
- .orbit-container .orbit-prev,
- .orbit-container .orbit-next {
- background-color: transparent;
- color: white;
- height: 60px;
- line-height: 50px;
- margin-top: -25px;
- position: absolute;
- text-indent: -9999px !important;
- top: 45%;
- width: 36px;
- z-index: 10; }
- .orbit-container .orbit-prev:hover,
- .orbit-container .orbit-next:hover {
- background-color: rgba(0, 0, 0, 0.3); }
- .orbit-container .orbit-prev > span,
- .orbit-container .orbit-next > span {
- border: inset 10px;
- display: block;
- height: 0;
- margin-top: -10px;
- position: absolute;
- top: 50%;
- width: 0; }
- .orbit-container .orbit-prev {
- left: 0; }
- .orbit-container .orbit-prev > span {
- border-right-style: solid;
- border-color: transparent;
- border-right-color: #FFFFFF; }
- .orbit-container .orbit-prev:hover > span {
- border-right-color: #FFFFFF; }
- .orbit-container .orbit-next {
- right: 0; }
- .orbit-container .orbit-next > span {
- border-color: transparent;
- border-left-style: solid;
- border-left-color: #FFFFFF;
- left: 50%;
- margin-left: -4px; }
- .orbit-container .orbit-next:hover > span {
- border-left-color: #FFFFFF; }
-
-.orbit-bullets-container {
- text-align: center; }
+ .button-group.stacked-for-small.expanded .button {
+ display: block;
+ margin-right: 0; } }
-.orbit-bullets {
- display: block;
- float: none;
- margin: 0 auto 30px auto;
- overflow: hidden;
+.callout {
+ margin: 0 0 1rem 0;
+ padding: 1rem;
+ border: 1px solid rgba(10, 10, 10, 0.25);
+ border-radius: 0;
position: relative;
- text-align: center;
- top: 10px; }
- .orbit-bullets li {
- background: #CCCCCC;
- cursor: pointer;
- display: inline-block;
- float: none;
- height: 0.5625rem;
- margin-right: 6px;
- width: 0.5625rem;
- border-radius: 1000px; }
- .orbit-bullets li.active {
- background: #999999; }
- .orbit-bullets li:last-child {
- margin-right: 0; }
-
-.touch .orbit-container .orbit-prev,
-.touch .orbit-container .orbit-next {
- display: none; }
-.touch .orbit-bullets {
- display: none; }
-
-@media only screen and (min-width: 40.0625em) {
- .touch .orbit-container .orbit-prev,
- .touch .orbit-container .orbit-next {
- display: inherit; }
- .touch .orbit-bullets {
- display: block; } }
-@media only screen and (max-width: 40em) {
- .orbit-stack-on-small .orbit-slides-container {
- height: auto !important; }
- .orbit-stack-on-small .orbit-slides-container > * {
- margin: 0 !important;
- opacity: 1 !important;
- position: relative; }
- .orbit-stack-on-small .orbit-slide-number {
- display: none; }
-
- .orbit-timer {
- display: none; }
-
- .orbit-next, .orbit-prev {
- display: none; }
-
- .orbit-bullets {
- display: none; } }
-[data-magellan-expedition], [data-magellan-expedition-clone] {
- background: #FFFFFF;
- min-width: 100%;
- padding: 10px;
- z-index: 50; }
- [data-magellan-expedition] .sub-nav, [data-magellan-expedition-clone] .sub-nav {
+ color: #0a0a0a;
+ background-color: white; }
+ .callout > :first-child {
+ margin-top: 0; }
+ .callout > :last-child {
margin-bottom: 0; }
- [data-magellan-expedition] .sub-nav dd, [data-magellan-expedition-clone] .sub-nav dd {
- margin-bottom: 0; }
- [data-magellan-expedition] .sub-nav a, [data-magellan-expedition-clone] .sub-nav a {
- line-height: 1.8em; }
+ .callout.primary {
+ background-color: #def0fc; }
+ .callout.secondary {
+ background-color: #ebebeb; }
+ .callout.success {
+ background-color: #e1faea; }
+ .callout.warning {
+ background-color: #fff3d9; }
+ .callout.alert {
+ background-color: #fce6e2; }
+ .callout.small {
+ padding-top: 0.5rem;
+ padding-right: 0.5rem;
+ padding-bottom: 0.5rem;
+ padding-left: 0.5rem; }
+ .callout.large {
+ padding-top: 3rem;
+ padding-right: 3rem;
+ padding-bottom: 3rem;
+ padding-left: 3rem; }
+
+.close-button {
+ position: absolute;
+ color: #8a8a8a;
+ right: 1rem;
+ top: 0.5rem;
+ font-size: 2em;
+ line-height: 1;
+ cursor: pointer; }
+ [data-whatinput='mouse'] .close-button {
+ outline: 0; }
+ .close-button:hover, .close-button:focus {
+ color: #0a0a0a; }
-.icon-bar {
- display: inline-block;
- font-size: 0;
- width: 100%;
- background: #333333; }
- .icon-bar > * {
+.menu {
+ margin: 0;
+ list-style-type: none; }
+ .menu > li {
+ display: table-cell;
+ vertical-align: middle; }
+ [data-whatinput='mouse'] .menu > li {
+ outline: 0; }
+ .menu > li > a {
display: block;
- float: left;
- font-size: 1rem;
- margin: 0 auto;
- padding: 1.25rem;
- text-align: center;
- width: 25%; }
- .icon-bar > * i, .icon-bar > * img {
- display: block;
- margin: 0 auto; }
- .icon-bar > * i + label, .icon-bar > * img + label {
- margin-top: .0625rem; }
- .icon-bar > * i {
- font-size: 1.875rem;
+ padding: 0.7rem 1rem;
+ line-height: 1; }
+ .menu input,
+ .menu a,
+ .menu button {
+ margin-bottom: 0; }
+ .menu > li > a img,
+ .menu > li > a i,
+ .menu > li > a svg {
+ vertical-align: middle; }
+ .menu > li > a img + span,
+ .menu > li > a i + span,
+ .menu > li > a svg + span {
vertical-align: middle; }
- .icon-bar > * img {
- height: 1.875rem;
- width: 1.875rem; }
- .icon-bar.label-right > * i, .icon-bar.label-right > * img {
- display: inline-block;
- margin: 0 .0625rem 0 0; }
- .icon-bar.label-right > * i + label, .icon-bar.label-right > * img + label {
- margin-top: 0; }
- .icon-bar.label-right > * label {
+ .menu > li > a img,
+ .menu > li > a i,
+ .menu > li > a svg {
+ margin-right: 0.25rem;
display: inline-block; }
- .icon-bar.vertical.label-right > * {
- text-align: left; }
- .icon-bar.vertical, .icon-bar.small-vertical {
- height: 100%;
- width: auto; }
- .icon-bar.vertical .item, .icon-bar.small-vertical .item {
- float: none;
- margin: auto;
- width: auto; }
- @media only screen and (min-width: 40.0625em) {
- .icon-bar.medium-vertical {
- height: 100%;
- width: auto; }
- .icon-bar.medium-vertical .item {
- float: none;
- margin: auto;
- width: auto; } }
- @media only screen and (min-width: 64.0625em) {
- .icon-bar.large-vertical {
- height: 100%;
- width: auto; }
- .icon-bar.large-vertical .item {
- float: none;
- margin: auto;
- width: auto; } }
- .icon-bar > * {
- font-size: 1rem;
- padding: 1.25rem; }
- .icon-bar > * i + label, .icon-bar > * img + label {
- margin-top: .0625rem;
- font-size: 1rem; }
- .icon-bar > * i {
- font-size: 1.875rem; }
- .icon-bar > * img {
- height: 1.875rem;
- width: 1.875rem; }
- .icon-bar > * label {
- color: #FFFFFF; }
- .icon-bar > * i {
- color: #FFFFFF; }
- .icon-bar > a:hover {
- background: #008CBA; }
- .icon-bar > a:hover label {
- color: #FFFFFF; }
- .icon-bar > a:hover i {
- color: #FFFFFF; }
- .icon-bar > a.active {
- background: #008CBA; }
- .icon-bar > a.active label {
- color: #FFFFFF; }
- .icon-bar > a.active i {
- color: #FFFFFF; }
- .icon-bar .item.disabled {
- cursor: not-allowed;
- opacity: 0.7;
- pointer-events: none; }
- .icon-bar .item.disabled > * {
- opacity: 0.7;
- cursor: not-allowed; }
- .icon-bar.two-up .item {
- width: 50%; }
- .icon-bar.two-up.vertical .item, .icon-bar.two-up.small-vertical .item {
- width: auto; }
- @media only screen and (min-width: 40.0625em) {
- .icon-bar.two-up.medium-vertical .item {
- width: auto; } }
- @media only screen and (min-width: 64.0625em) {
- .icon-bar.two-up.large-vertical .item {
- width: auto; } }
- .icon-bar.three-up .item {
- width: 33.3333%; }
- .icon-bar.three-up.vertical .item, .icon-bar.three-up.small-vertical .item {
- width: auto; }
- @media only screen and (min-width: 40.0625em) {
- .icon-bar.three-up.medium-vertical .item {
- width: auto; } }
- @media only screen and (min-width: 64.0625em) {
- .icon-bar.three-up.large-vertical .item {
- width: auto; } }
- .icon-bar.four-up .item {
- width: 25%; }
- .icon-bar.four-up.vertical .item, .icon-bar.four-up.small-vertical .item {
- width: auto; }
- @media only screen and (min-width: 40.0625em) {
- .icon-bar.four-up.medium-vertical .item {
- width: auto; } }
- @media only screen and (min-width: 64.0625em) {
- .icon-bar.four-up.large-vertical .item {
- width: auto; } }
- .icon-bar.five-up .item {
- width: 20%; }
- .icon-bar.five-up.vertical .item, .icon-bar.five-up.small-vertical .item {
- width: auto; }
- @media only screen and (min-width: 40.0625em) {
- .icon-bar.five-up.medium-vertical .item {
- width: auto; } }
- @media only screen and (min-width: 64.0625em) {
- .icon-bar.five-up.large-vertical .item {
- width: auto; } }
- .icon-bar.six-up .item {
- width: 16.66667%; }
- .icon-bar.six-up.vertical .item, .icon-bar.six-up.small-vertical .item {
- width: auto; }
- @media only screen and (min-width: 40.0625em) {
- .icon-bar.six-up.medium-vertical .item {
- width: auto; } }
- @media only screen and (min-width: 64.0625em) {
- .icon-bar.six-up.large-vertical .item {
- width: auto; } }
- .icon-bar.seven-up .item {
- width: 14.28571%; }
- .icon-bar.seven-up.vertical .item, .icon-bar.seven-up.small-vertical .item {
- width: auto; }
- @media only screen and (min-width: 40.0625em) {
- .icon-bar.seven-up.medium-vertical .item {
- width: auto; } }
- @media only screen and (min-width: 64.0625em) {
- .icon-bar.seven-up.large-vertical .item {
- width: auto; } }
- .icon-bar.eight-up .item {
- width: 12.5%; }
- .icon-bar.eight-up.vertical .item, .icon-bar.eight-up.small-vertical .item {
- width: auto; }
- @media only screen and (min-width: 40.0625em) {
- .icon-bar.eight-up.medium-vertical .item {
- width: auto; } }
- @media only screen and (min-width: 64.0625em) {
- .icon-bar.eight-up.large-vertical .item {
- width: auto; } }
-
-.icon-bar.two-up .item {
- width: 50%; }
-.icon-bar.two-up.vertical .item, .icon-bar.two-up.small-vertical .item {
- width: auto; }
-@media only screen and (min-width: 40.0625em) {
- .icon-bar.two-up.medium-vertical .item {
- width: auto; } }
-@media only screen and (min-width: 64.0625em) {
- .icon-bar.two-up.large-vertical .item {
- width: auto; } }
-.icon-bar.three-up .item {
- width: 33.3333%; }
-.icon-bar.three-up.vertical .item, .icon-bar.three-up.small-vertical .item {
- width: auto; }
-@media only screen and (min-width: 40.0625em) {
- .icon-bar.three-up.medium-vertical .item {
- width: auto; } }
-@media only screen and (min-width: 64.0625em) {
- .icon-bar.three-up.large-vertical .item {
- width: auto; } }
-.icon-bar.four-up .item {
- width: 25%; }
-.icon-bar.four-up.vertical .item, .icon-bar.four-up.small-vertical .item {
- width: auto; }
-@media only screen and (min-width: 40.0625em) {
- .icon-bar.four-up.medium-vertical .item {
- width: auto; } }
-@media only screen and (min-width: 64.0625em) {
- .icon-bar.four-up.large-vertical .item {
- width: auto; } }
-.icon-bar.five-up .item {
- width: 20%; }
-.icon-bar.five-up.vertical .item, .icon-bar.five-up.small-vertical .item {
- width: auto; }
-@media only screen and (min-width: 40.0625em) {
- .icon-bar.five-up.medium-vertical .item {
- width: auto; } }
-@media only screen and (min-width: 64.0625em) {
- .icon-bar.five-up.large-vertical .item {
- width: auto; } }
-.icon-bar.six-up .item {
- width: 16.66667%; }
-.icon-bar.six-up.vertical .item, .icon-bar.six-up.small-vertical .item {
- width: auto; }
-@media only screen and (min-width: 40.0625em) {
- .icon-bar.six-up.medium-vertical .item {
- width: auto; } }
-@media only screen and (min-width: 64.0625em) {
- .icon-bar.six-up.large-vertical .item {
- width: auto; } }
-.icon-bar.seven-up .item {
- width: 14.28571%; }
-.icon-bar.seven-up.vertical .item, .icon-bar.seven-up.small-vertical .item {
- width: auto; }
-@media only screen and (min-width: 40.0625em) {
- .icon-bar.seven-up.medium-vertical .item {
- width: auto; } }
-@media only screen and (min-width: 64.0625em) {
- .icon-bar.seven-up.large-vertical .item {
- width: auto; } }
-.icon-bar.eight-up .item {
- width: 12.5%; }
-.icon-bar.eight-up.vertical .item, .icon-bar.eight-up.small-vertical .item {
- width: auto; }
-@media only screen and (min-width: 40.0625em) {
- .icon-bar.eight-up.medium-vertical .item {
- width: auto; } }
-@media only screen and (min-width: 64.0625em) {
- .icon-bar.eight-up.large-vertical .item {
- width: auto; } }
-
-.tabs {
- margin-bottom: 0 !important;
- margin-left: 0; }
- .tabs:before, .tabs:after {
- content: " ";
- display: table; }
- .tabs:after {
- clear: both; }
- .tabs dd,
- .tabs .tab-title {
- float: left;
- list-style: none;
- margin-bottom: 0 !important;
- position: relative; }
- .tabs dd > a,
- .tabs .tab-title > a {
- display: block;
- background-color: #EFEFEF;
- color: #222222;
- font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
- font-size: 1rem;
- padding: 1rem 2rem; }
- .tabs dd > a:hover,
- .tabs .tab-title > a:hover {
- background-color: #e1e1e1; }
- .tabs dd.active a,
- .tabs .tab-title.active a {
- background-color: #FFFFFF;
- color: #222222; }
- .tabs.radius dd:first-child a,
- .tabs.radius .tab:first-child a {
- -webkit-border-bottom-left-radius: 3px;
- -webkit-border-top-left-radius: 3px;
- border-bottom-left-radius: 3px;
- border-top-left-radius: 3px; }
- .tabs.radius dd:last-child a,
- .tabs.radius .tab:last-child a {
- -webkit-border-bottom-right-radius: 3px;
- -webkit-border-top-right-radius: 3px;
- border-bottom-right-radius: 3px;
- border-top-right-radius: 3px; }
- .tabs.vertical dd,
- .tabs.vertical .tab-title {
- position: inherit;
- float: none;
- display: block;
- top: auto; }
-
-.tabs-content {
- margin-bottom: 1.5rem;
- width: 100%; }
- .tabs-content:before, .tabs-content:after {
- content: " ";
- display: table; }
- .tabs-content:after {
- clear: both; }
- .tabs-content > .content {
- display: none;
- float: left;
- padding: 0.9375rem 0;
- width: 100%; }
- .tabs-content > .content.active {
- display: block;
- float: none; }
- .tabs-content > .content.contained {
- padding: 0.9375rem; }
- .tabs-content.vertical {
+ .menu > li {
+ display: table-cell; }
+ .menu.vertical > li {
display: block; }
- .tabs-content.vertical > .content {
- padding: 0 0.9375rem; }
-
-@media only screen and (min-width: 40.0625em) {
- .tabs.vertical {
- float: left;
- margin: 0;
- margin-bottom: 1.25rem !important;
- max-width: 20%;
- width: 20%; }
-
- .tabs-content.vertical {
- float: left;
- margin-left: -1px;
- max-width: 80%;
- padding-left: 1rem;
- width: 80%; } }
-.no-js .tabs-content > .content {
- display: block;
- float: none; }
-
-ul.pagination {
- display: block;
- margin-left: -0.3125rem;
- min-height: 1.5rem; }
- ul.pagination li {
- color: #222222;
- font-size: 0.875rem;
- height: 1.5rem;
- margin-left: 0.3125rem; }
- ul.pagination li a, ul.pagination li button {
- border-radius: 3px;
- transition: background-color 300ms ease-out;
- background: none;
- color: #999999;
- display: block;
- font-size: 1em;
- font-weight: normal;
- line-height: inherit;
- padding: 0.0625rem 0.625rem 0.0625rem; }
- ul.pagination li:hover a,
- ul.pagination li a:focus, ul.pagination li:hover button,
- ul.pagination li button:focus {
- background: #e6e6e6; }
- ul.pagination li.unavailable a, ul.pagination li.unavailable button {
- cursor: default;
- color: #999999; }
- ul.pagination li.unavailable:hover a, ul.pagination li.unavailable a:focus, ul.pagination li.unavailable:hover button, ul.pagination li.unavailable button:focus {
- background: transparent; }
- ul.pagination li.current a, ul.pagination li.current button {
- background: #008CBA;
- color: #FFFFFF;
- cursor: default;
- font-weight: bold; }
- ul.pagination li.current a:hover, ul.pagination li.current a:focus, ul.pagination li.current button:hover, ul.pagination li.current button:focus {
- background: #008CBA; }
- ul.pagination li {
- display: block;
- float: left; }
-
-/* Pagination centred wrapper */
-.pagination-centered {
- text-align: center; }
- .pagination-centered ul.pagination li {
+ @media screen and (min-width: 40em) {
+ .menu.medium-horizontal > li {
+ display: table-cell; }
+ .menu.medium-vertical > li {
+ display: block; } }
+ @media screen and (min-width: 64em) {
+ .menu.large-horizontal > li {
+ display: table-cell; }
+ .menu.large-vertical > li {
+ display: block; } }
+ .menu.simple li {
+ line-height: 1;
display: inline-block;
- float: none; }
-
-.side-nav {
- display: block;
- font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
- list-style-position: outside;
- list-style-type: none;
- margin: 0;
- padding: 0.875rem 0; }
- .side-nav li {
- font-size: 0.875rem;
- font-weight: normal;
- margin: 0 0 0.4375rem 0; }
- .side-nav li a:not(.button) {
- color: #008CBA;
- display: block;
- margin: 0;
- padding: 0.4375rem 0.875rem; }
- .side-nav li a:not(.button):hover, .side-nav li a:not(.button):focus {
- background: rgba(0, 0, 0, 0.025);
- color: #1cc7ff; }
- .side-nav li a:not(.button):active {
- color: #1cc7ff; }
- .side-nav li.active > a:first-child:not(.button) {
- color: #1cc7ff;
- font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
- font-weight: normal; }
- .side-nav li.divider {
- border-top: 1px solid;
- height: 0;
- list-style: none;
- padding: 0;
- border-top-color: #e6e6e6; }
- .side-nav li.heading {
- color: #008CBA;
- font-size: 0.875rem;
- font-weight: bold;
- text-transform: uppercase; }
-
-.accordion {
- margin-bottom: 0; }
- .accordion:before, .accordion:after {
- content: " ";
+ margin-right: 1rem; }
+ .menu.simple a {
+ padding: 0; }
+ .menu.align-right::before, .menu.align-right::after {
+ content: ' ';
display: table; }
- .accordion:after {
+ .menu.align-right::after {
clear: both; }
- .accordion .accordion-navigation, .accordion dd {
- display: block;
- margin-bottom: 0 !important; }
- .accordion .accordion-navigation.active > a, .accordion dd.active > a {
- background: #e8e8e8; }
- .accordion .accordion-navigation > a, .accordion dd > a {
- background: #EFEFEF;
- color: #222222;
+ .menu.align-right > li {
+ float: right; }
+ .menu.expanded {
+ width: 100%;
+ display: table;
+ table-layout: fixed; }
+ .menu.expanded > li:first-child:last-child {
+ width: 100%; }
+ .menu.icon-top > li > a {
+ text-align: center; }
+ .menu.icon-top > li > a img,
+ .menu.icon-top > li > a i,
+ .menu.icon-top > li > a svg {
display: block;
- font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
- font-size: 1rem;
- padding: 1rem; }
- .accordion .accordion-navigation > a:hover, .accordion dd > a:hover {
- background: #e3e3e3; }
- .accordion .accordion-navigation > .content, .accordion dd > .content {
- display: none;
- padding: 0.9375rem; }
- .accordion .accordion-navigation > .content.active, .accordion dd > .content.active {
- background: #FFFFFF;
- display: block; }
-
-.text-left {
- text-align: left !important; }
-
-.text-right {
- text-align: right !important; }
-
-.text-center {
- text-align: center !important; }
-
-.text-justify {
- text-align: justify !important; }
-
-@media only screen and (max-width: 40em) {
- .small-only-text-left {
- text-align: left !important; }
-
- .small-only-text-right {
- text-align: right !important; }
-
- .small-only-text-center {
- text-align: center !important; }
-
- .small-only-text-justify {
- text-align: justify !important; } }
-@media only screen {
- .small-text-left {
- text-align: left !important; }
-
- .small-text-right {
- text-align: right !important; }
-
- .small-text-center {
- text-align: center !important; }
-
- .small-text-justify {
- text-align: justify !important; } }
-@media only screen and (min-width: 40.0625em) and (max-width: 64em) {
- .medium-only-text-left {
- text-align: left !important; }
-
- .medium-only-text-right {
- text-align: right !important; }
-
- .medium-only-text-center {
- text-align: center !important; }
-
- .medium-only-text-justify {
- text-align: justify !important; } }
-@media only screen and (min-width: 40.0625em) {
- .medium-text-left {
- text-align: left !important; }
-
- .medium-text-right {
- text-align: right !important; }
-
- .medium-text-center {
- text-align: center !important; }
-
- .medium-text-justify {
- text-align: justify !important; } }
-@media only screen and (min-width: 64.0625em) and (max-width: 90em) {
- .large-only-text-left {
- text-align: left !important; }
-
- .large-only-text-right {
- text-align: right !important; }
-
- .large-only-text-center {
- text-align: center !important; }
-
- .large-only-text-justify {
- text-align: justify !important; } }
-@media only screen and (min-width: 64.0625em) {
- .large-text-left {
- text-align: left !important; }
-
- .large-text-right {
- text-align: right !important; }
-
- .large-text-center {
- text-align: center !important; }
-
- .large-text-justify {
- text-align: justify !important; } }
-@media only screen and (min-width: 90.0625em) and (max-width: 120em) {
- .xlarge-only-text-left {
- text-align: left !important; }
-
- .xlarge-only-text-right {
- text-align: right !important; }
-
- .xlarge-only-text-center {
- text-align: center !important; }
-
- .xlarge-only-text-justify {
- text-align: justify !important; } }
-@media only screen and (min-width: 90.0625em) {
- .xlarge-text-left {
- text-align: left !important; }
-
- .xlarge-text-right {
- text-align: right !important; }
-
- .xlarge-text-center {
- text-align: center !important; }
-
- .xlarge-text-justify {
- text-align: justify !important; } }
-@media only screen and (min-width: 120.0625em) and (max-width: 6249999.9375em) {
- .xxlarge-only-text-left {
- text-align: left !important; }
-
- .xxlarge-only-text-right {
- text-align: right !important; }
-
- .xxlarge-only-text-center {
- text-align: center !important; }
+ margin: 0 auto 0.25rem; }
+ .menu.nested {
+ margin-left: 1rem; }
+ .menu .active > a {
+ color: #fefefe;
+ background: #2199e8; }
+
+.menu-text {
+ font-weight: bold;
+ color: inherit;
+ line-height: 1;
+ padding-top: 0;
+ padding-bottom: 0;
+ padding: 0.7rem 1rem; }
- .xxlarge-only-text-justify {
- text-align: justify !important; } }
-@media only screen and (min-width: 120.0625em) {
- .xxlarge-text-left {
- text-align: left !important; }
+.menu-centered {
+ text-align: center; }
+ .menu-centered > .menu {
+ display: inline-block; }
- .xxlarge-text-right {
- text-align: right !important; }
+.no-js [data-responsive-menu] ul {
+ display: none; }
- .xxlarge-text-center {
- text-align: center !important; }
+.menu-icon {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ cursor: pointer;
+ width: 20px;
+ height: 16px; }
+ .menu-icon::after {
+ content: '';
+ position: absolute;
+ display: block;
+ width: 100%;
+ height: 2px;
+ background: #fefefe;
+ top: 0;
+ left: 0;
+ -webkit-box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
+ box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe; }
+ .menu-icon:hover::after {
+ background: #cacaca;
+ -webkit-box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca;
+ box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }
+
+.menu-icon.dark {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ cursor: pointer;
+ width: 20px;
+ height: 16px; }
+ .menu-icon.dark::after {
+ content: '';
+ position: absolute;
+ display: block;
+ width: 100%;
+ height: 2px;
+ background: #0a0a0a;
+ top: 0;
+ left: 0;
+ -webkit-box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
+ box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a; }
+ .menu-icon.dark:hover::after {
+ background: #8a8a8a;
+ -webkit-box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a;
+ box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }
+
+.is-drilldown {
+ position: relative;
+ overflow: hidden; }
+ .is-drilldown li {
+ display: block !important; }
- .xxlarge-text-justify {
- text-align: justify !important; } }
-/* Typography resets */
-div,
-dl,
-dt,
-dd,
-ul,
-ol,
-li,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-pre,
-form,
-p,
-blockquote,
-th,
-td {
- margin: 0;
- padding: 0; }
+.is-drilldown-submenu {
+ position: absolute;
+ top: 0;
+ left: 100%;
+ z-index: -1;
+ height: 100%;
+ width: 100%;
+ background: #fefefe;
+ -webkit-transition: -webkit-transform 0.15s linear;
+ transition: transform 0.15s linear; }
+ .is-drilldown-submenu.is-active {
+ z-index: 1;
+ display: block;
+ -webkit-transform: translateX(-100%);
+ -ms-transform: translateX(-100%);
+ transform: translateX(-100%); }
+ .is-drilldown-submenu.is-closing {
+ -webkit-transform: translateX(100%);
+ -ms-transform: translateX(100%);
+ transform: translateX(100%); }
+
+.is-drilldown-submenu-parent > a {
+ position: relative; }
+ .is-drilldown-submenu-parent > a::after {
+ content: '';
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ border-color: transparent transparent transparent #2199e8;
+ border-left-style: solid;
+ border-right-width: 0;
+ position: absolute;
+ top: 50%;
+ margin-top: -6px;
+ right: 1rem; }
-/* Default Link Styles */
-a {
- color: #008CBA;
- line-height: inherit;
- text-decoration: none; }
- a:hover, a:focus {
- color: #0078a0; }
- a img {
- border: none; }
+.js-drilldown-back > a::before {
+ content: '';
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ border-color: transparent #2199e8 transparent transparent;
+ border-right-style: solid;
+ border-left-width: 0;
+ border-left-width: 0;
+ display: inline-block;
+ vertical-align: middle;
+ margin-right: 0.75rem; }
-/* Default paragraph styles */
-p {
- font-family: inherit;
+.dropdown-pane {
+ background-color: #fefefe;
+ border: 1px solid #cacaca;
+ border-radius: 0;
+ display: block;
font-size: 1rem;
- font-weight: normal;
- line-height: 1.6;
- margin-bottom: 1.25rem;
- text-rendering: optimizeLegibility; }
- p.lead {
- font-size: 1.21875rem;
- line-height: 1.6; }
- p aside {
- font-size: 0.875rem;
- font-style: italic;
- line-height: 1.35; }
-
-/* Default header styles */
-h1, h2, h3, h4, h5, h6 {
- color: #222222;
- font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
- font-style: normal;
- font-weight: normal;
- line-height: 1.4;
- margin-bottom: 0.5rem;
- margin-top: 0.2rem;
- text-rendering: optimizeLegibility; }
- h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
- color: #6f6f6f;
- font-size: 60%;
- line-height: 0; }
-
-h1 {
- font-size: 2.125rem; }
+ padding: 1rem;
+ position: absolute;
+ visibility: hidden;
+ width: 300px;
+ z-index: 10; }
+ .dropdown-pane.is-open {
+ visibility: visible; }
-h2 {
- font-size: 1.6875rem; }
+.dropdown-pane.tiny {
+ width: 100px; }
-h3 {
- font-size: 1.375rem; }
+.dropdown-pane.small {
+ width: 200px; }
-h4 {
- font-size: 1.125rem; }
+.dropdown-pane.large {
+ width: 400px; }
-h5 {
- font-size: 1.125rem; }
+.dropdown.menu > li.opens-left > .is-dropdown-submenu {
+ left: auto;
+ right: 0;
+ top: 100%; }
-h6 {
- font-size: 1rem; }
+.dropdown.menu > li.opens-right > .is-dropdown-submenu {
+ right: auto;
+ left: 0;
+ top: 100%; }
-.subheader {
- line-height: 1.4;
- color: #6f6f6f;
- font-weight: normal;
- margin-top: 0.2rem;
- margin-bottom: 0.5rem; }
+.dropdown.menu > li.is-dropdown-submenu-parent > a {
+ padding-right: 1.5rem;
+ position: relative; }
-hr {
- border: solid #DDDDDD;
- border-width: 1px 0 0;
- clear: both;
+.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
+ content: '';
+ display: block;
+ width: 0;
height: 0;
- margin: 1.25rem 0 1.1875rem; }
+ border: inset 5px;
+ border-color: #2199e8 transparent transparent;
+ border-top-style: solid;
+ border-bottom-width: 0;
+ right: 5px;
+ margin-top: -2px; }
-/* Helpful Typography Defaults */
-em,
-i {
- font-style: italic;
- line-height: inherit; }
+[data-whatinput='mouse'] .dropdown.menu a {
+ outline: 0; }
-strong,
-b {
- font-weight: bold;
- line-height: inherit; }
+.no-js .dropdown.menu ul {
+ display: none; }
-small {
- font-size: 60%;
- line-height: inherit; }
+.dropdown.menu.vertical > li .is-dropdown-submenu {
+ top: 0; }
-code {
- background-color: #f8f8f8;
- border-color: #dfdfdf;
- border-style: solid;
- border-width: 1px;
- color: #333333;
- font-family: Consolas, "Liberation Mono", Courier, monospace;
- font-weight: normal;
- padding: 0.125rem 0.3125rem 0.0625rem; }
+.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
+ left: auto;
+ right: 100%; }
-/* Lists */
-ul,
-ol,
-dl {
- font-family: inherit;
- font-size: 1rem;
- line-height: 1.6;
- list-style-position: outside;
- margin-bottom: 1.25rem; }
+.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {
+ right: auto;
+ left: 100%; }
-ul {
- margin-left: 1.1rem; }
- ul.no-bullet {
- margin-left: 0; }
- ul.no-bullet li ul,
- ul.no-bullet li ol {
- margin-left: 1.25rem;
- margin-bottom: 0;
- list-style: none; }
-
-/* Unordered Lists */
-ul li ul,
-ul li ol {
- margin-left: 1.25rem;
- margin-bottom: 0; }
-ul.square li ul, ul.circle li ul, ul.disc li ul {
- list-style: inherit; }
-ul.square {
- list-style-type: square;
- margin-left: 1.1rem; }
-ul.circle {
- list-style-type: circle;
- margin-left: 1.1rem; }
-ul.disc {
- list-style-type: disc;
- margin-left: 1.1rem; }
-ul.no-bullet {
- list-style: none; }
+.dropdown.menu.vertical > li > a::after {
+ right: 14px;
+ margin-top: -3px; }
-/* Ordered Lists */
-ol {
- margin-left: 1.4rem; }
- ol li ul,
- ol li ol {
- margin-left: 1.25rem;
- margin-bottom: 0; }
-
-/* Definition Lists */
-dl dt {
- margin-bottom: 0.3rem;
- font-weight: bold; }
-dl dd {
- margin-bottom: 0.75rem; }
-
-/* Abbreviations */
-abbr,
-acronym {
- text-transform: uppercase;
- font-size: 90%;
- color: #222;
- cursor: help; }
+.dropdown.menu.vertical > li.opens-left > a::after {
+ content: '';
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 5px;
+ border-color: transparent #2199e8 transparent transparent;
+ border-right-style: solid;
+ border-left-width: 0; }
-abbr {
- text-transform: none; }
- abbr[title] {
- border-bottom: 1px dotted #DDDDDD; }
+.dropdown.menu.vertical > li.opens-right > a::after {
+ content: '';
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 5px;
+ border-color: transparent transparent transparent #2199e8;
+ border-left-style: solid;
+ border-right-width: 0; }
-/* Blockquotes */
-blockquote {
- margin: 0 0 1.25rem;
- padding: 0.5625rem 1.25rem 0 1.1875rem;
- border-left: 1px solid #DDDDDD; }
- blockquote cite {
+@media screen and (min-width: 40em) {
+ .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
+ left: auto;
+ right: 0;
+ top: 100%; }
+ .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
+ right: auto;
+ left: 0;
+ top: 100%; }
+ .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {
+ padding-right: 1.5rem;
+ position: relative; }
+ .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {
+ content: '';
display: block;
- font-size: 0.8125rem;
- color: #555555; }
- blockquote cite:before {
- content: "\2014 \0020"; }
- blockquote cite a,
- blockquote cite a:visited {
- color: #555555; }
-
-blockquote,
-blockquote p {
- line-height: 1.6;
- color: #6f6f6f; }
-
-/* Microformats */
-.vcard {
- display: inline-block;
- margin: 0 0 1.25rem 0;
- border: 1px solid #DDDDDD;
- padding: 0.625rem 0.75rem; }
- .vcard li {
- margin: 0;
- display: block; }
- .vcard .fn {
- font-weight: bold;
- font-size: 0.9375rem; }
-
-.vevent .summary {
- font-weight: bold; }
-.vevent abbr {
- cursor: default;
- text-decoration: none;
- font-weight: bold;
- border: none;
- padding: 0 0.0625rem; }
-
-@media only screen and (min-width: 40.0625em) {
- h1, h2, h3, h4, h5, h6 {
- line-height: 1.4; }
-
- h1 {
- font-size: 2.75rem; }
-
- h2 {
- font-size: 2.3125rem; }
-
- h3 {
- font-size: 1.6875rem; }
-
- h4 {
- font-size: 1.4375rem; }
-
- h5 {
- font-size: 1.125rem; }
-
- h6 {
- font-size: 1rem; } }
-.split.button {
- position: relative;
- padding-right: 5.0625rem; }
- .split.button span {
+ width: 0;
+ height: 0;
+ border: inset 5px;
+ border-color: #2199e8 transparent transparent;
+ border-top-style: solid;
+ border-bottom-width: 0;
+ right: 5px;
+ margin-top: -2px; }
+ .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
+ top: 0; }
+ .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
+ left: auto;
+ right: 100%; }
+ .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
+ right: auto;
+ left: 100%; }
+ .dropdown.menu.medium-vertical > li > a::after {
+ right: 14px;
+ margin-top: -3px; }
+ .dropdown.menu.medium-vertical > li.opens-left > a::after {
+ content: '';
display: block;
- height: 100%;
- position: absolute;
- right: 0;
- top: 0;
- border-left: solid 1px; }
- .split.button span:after {
- position: absolute;
- content: "";
- width: 0;
- height: 0;
- display: block;
- border-style: inset;
- top: 50%;
- left: 50%; }
- .split.button span:active {
- background-color: rgba(0, 0, 0, 0.1); }
- .split.button span {
- border-left-color: rgba(255, 255, 255, 0.5); }
- .split.button span {
- width: 3.09375rem; }
- .split.button span:after {
- border-top-style: solid;
- border-width: 0.375rem;
- margin-left: -0.375rem;
- top: 48%; }
- .split.button span:after {
- border-color: #FFFFFF transparent transparent transparent; }
- .split.button.secondary span {
- border-left-color: rgba(255, 255, 255, 0.5); }
- .split.button.secondary span:after {
- border-color: #FFFFFF transparent transparent transparent; }
- .split.button.alert span {
- border-left-color: rgba(255, 255, 255, 0.5); }
- .split.button.success span {
- border-left-color: rgba(255, 255, 255, 0.5); }
- .split.button.tiny {
- padding-right: 3.75rem; }
- .split.button.tiny span {
- width: 2.25rem; }
- .split.button.tiny span:after {
- border-top-style: solid;
- border-width: 0.375rem;
- margin-left: -0.375rem;
- top: 48%; }
- .split.button.small {
- padding-right: 4.375rem; }
- .split.button.small span {
- width: 2.625rem; }
- .split.button.small span:after {
- border-top-style: solid;
- border-width: 0.4375rem;
- margin-left: -0.375rem;
- top: 48%; }
- .split.button.large {
- padding-right: 5.5rem; }
- .split.button.large span {
- width: 3.4375rem; }
- .split.button.large span:after {
- border-top-style: solid;
- border-width: 0.3125rem;
- margin-left: -0.375rem;
- top: 48%; }
- .split.button.expand {
- padding-left: 2rem; }
- .split.button.secondary span:after {
- border-color: #333333 transparent transparent transparent; }
- .split.button.radius span {
- -webkit-border-bottom-right-radius: 3px;
- -webkit-border-top-right-radius: 3px;
- border-bottom-right-radius: 3px;
- border-top-right-radius: 3px; }
- .split.button.round span {
- -webkit-border-bottom-right-radius: 1000px;
- -webkit-border-top-right-radius: 1000px;
- border-bottom-right-radius: 1000px;
- border-top-right-radius: 1000px; }
- .split.button.no-pip span:before {
- border-style: none; }
- .split.button.no-pip span:after {
- border-style: none; }
- .split.button.no-pip span > i {
+ width: 0;
+ height: 0;
+ border: inset 5px;
+ border-color: transparent #2199e8 transparent transparent;
+ border-right-style: solid;
+ border-left-width: 0; }
+ .dropdown.menu.medium-vertical > li.opens-right > a::after {
+ content: '';
display: block;
- left: 50%;
- margin-left: -0.28889em;
- margin-top: -0.48889em;
- position: absolute;
- top: 50%; }
-
-.reveal-modal-bg {
- background: #000000;
- background: rgba(0, 0, 0, 0.45);
- bottom: 0;
- display: none;
- left: 0;
- position: fixed;
- right: 0;
- top: 0;
- z-index: 1004;
- left: 0; }
+ width: 0;
+ height: 0;
+ border: inset 5px;
+ border-color: transparent transparent transparent #2199e8;
+ border-left-style: solid;
+ border-right-width: 0; } }
-.reveal-modal {
- border-radius: 3px;
- display: none;
- position: absolute;
- top: 0;
- visibility: hidden;
- width: 100%;
- z-index: 1005;
- left: 0;
- background-color: #FFFFFF;
- padding: 1.875rem;
- border: solid 1px #666666;
- box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); }
- @media only screen and (max-width: 40em) {
- .reveal-modal {
- min-height: 100vh; } }
- .reveal-modal .column, .reveal-modal .columns {
- min-width: 0; }
- .reveal-modal > :first-child {
- margin-top: 0; }
- .reveal-modal > :last-child {
- margin-bottom: 0; }
- @media only screen and (min-width: 40.0625em) {
- .reveal-modal {
- left: 0;
- margin: 0 auto;
- max-width: 62.5rem;
- right: 0;
- width: 80%; } }
- @media only screen and (min-width: 40.0625em) {
- .reveal-modal {
- top: 6.25rem; } }
- .reveal-modal.radius {
- border-radius: 3px; }
- .reveal-modal.round {
- border-radius: 1000px; }
- .reveal-modal.collapse {
- padding: 0; }
- @media only screen and (min-width: 40.0625em) {
- .reveal-modal.tiny {
- left: 0;
- margin: 0 auto;
- max-width: 62.5rem;
- right: 0;
- width: 30%; } }
- @media only screen and (min-width: 40.0625em) {
- .reveal-modal.small {
- left: 0;
- margin: 0 auto;
- max-width: 62.5rem;
- right: 0;
- width: 40%; } }
- @media only screen and (min-width: 40.0625em) {
- .reveal-modal.medium {
- left: 0;
- margin: 0 auto;
- max-width: 62.5rem;
- right: 0;
- width: 60%; } }
- @media only screen and (min-width: 40.0625em) {
- .reveal-modal.large {
- left: 0;
- margin: 0 auto;
- max-width: 62.5rem;
- right: 0;
- width: 70%; } }
- @media only screen and (min-width: 40.0625em) {
- .reveal-modal.xlarge {
- left: 0;
- margin: 0 auto;
- max-width: 62.5rem;
- right: 0;
- width: 95%; } }
- .reveal-modal.full {
- height: 100vh;
- height: 100%;
+@media screen and (min-width: 64em) {
+ .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
+ left: auto;
+ right: 0;
+ top: 100%; }
+ .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
+ right: auto;
left: 0;
- margin-left: 0 !important;
- max-width: none !important;
- min-height: 100vh;
- top: 0; }
- @media only screen and (min-width: 40.0625em) {
- .reveal-modal.full {
- left: 0;
- margin: 0 auto;
- max-width: 62.5rem;
- right: 0;
- width: 100%; } }
- .reveal-modal.toback {
- z-index: 1003; }
- .reveal-modal .close-reveal-modal {
- color: #AAAAAA;
- cursor: pointer;
- font-size: 2.5rem;
- font-weight: bold;
- line-height: 1;
- position: absolute;
- top: 0.625rem;
- right: 1.375rem; }
-
-/* Tooltips */
-.has-tip {
- border-bottom: dotted 1px #CCCCCC;
- color: #333333;
- cursor: help;
- font-weight: bold; }
- .has-tip:hover, .has-tip:focus {
- border-bottom: dotted 1px #003f54;
- color: #008CBA; }
- .has-tip.tip-left, .has-tip.tip-right {
- float: none !important; }
-
-.tooltip {
- background: #333333;
- color: #FFFFFF;
- display: none;
- font-size: 0.875rem;
- font-weight: normal;
- line-height: 1.3;
- max-width: 300px;
- padding: 0.75rem;
- position: absolute;
- width: 100%;
- z-index: 1006;
- left: 50%; }
- .tooltip > .nub {
- border-color: transparent transparent #333333 transparent;
- border: solid 5px;
+ top: 100%; }
+ .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {
+ padding-right: 1.5rem;
+ position: relative; }
+ .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {
+ content: '';
display: block;
- height: 0;
- pointer-events: none;
- position: absolute;
- top: -10px;
width: 0;
- left: 5px; }
- .tooltip > .nub.rtl {
- left: auto;
- right: 5px; }
- .tooltip.radius {
- border-radius: 3px; }
- .tooltip.round {
- border-radius: 1000px; }
- .tooltip.round > .nub {
- left: 2rem; }
- .tooltip.opened {
- border-bottom: dotted 1px #003f54 !important;
- color: #008CBA !important; }
-
-.tap-to-close {
- color: #777777;
- display: block;
- font-size: 0.625rem;
- font-weight: normal; }
-
-@media only screen and (min-width: 40.0625em) {
- .tooltip > .nub {
- border-color: transparent transparent #333333 transparent;
- top: -10px; }
- .tooltip.tip-top > .nub {
- border-color: #333333 transparent transparent transparent;
- bottom: -10px;
- top: auto; }
- .tooltip.tip-left, .tooltip.tip-right {
- float: none !important; }
- .tooltip.tip-left > .nub {
- border-color: transparent transparent transparent #333333;
+ height: 0;
+ border: inset 5px;
+ border-color: #2199e8 transparent transparent;
+ border-top-style: solid;
+ border-bottom-width: 0;
+ right: 5px;
+ margin-top: -2px; }
+ .dropdown.menu.large-vertical > li .is-dropdown-submenu {
+ top: 0; }
+ .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
left: auto;
- margin-top: -5px;
- right: -10px;
- top: 50%; }
- .tooltip.tip-right > .nub {
- border-color: transparent #333333 transparent transparent;
- left: -10px;
- margin-top: -5px;
+ right: 100%; }
+ .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
right: auto;
- top: 50%; } }
-/* Clearing Styles */
-.clearing-thumbs, [data-clearing] {
- list-style: none;
- margin-left: 0;
- margin-bottom: 0; }
- .clearing-thumbs:before, .clearing-thumbs:after, [data-clearing]:before, [data-clearing]:after {
- content: " ";
- display: table; }
- .clearing-thumbs:after, [data-clearing]:after {
- clear: both; }
- .clearing-thumbs li, [data-clearing] li {
- float: left;
- margin-right: 10px; }
- .clearing-thumbs[class*="block-grid-"] li, [data-clearing][class*="block-grid-"] li {
- margin-right: 0; }
-
-.clearing-blackout {
- background: #333333;
- height: 100%;
- position: fixed;
- top: 0;
- width: 100%;
- z-index: 998;
- left: 0; }
- .clearing-blackout .clearing-close {
- display: block; }
-
-.clearing-container {
- height: 100%;
- margin: 0;
- overflow: hidden;
- position: relative;
- z-index: 998; }
+ left: 100%; }
+ .dropdown.menu.large-vertical > li > a::after {
+ right: 14px;
+ margin-top: -3px; }
+ .dropdown.menu.large-vertical > li.opens-left > a::after {
+ content: '';
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 5px;
+ border-color: transparent #2199e8 transparent transparent;
+ border-right-style: solid;
+ border-left-width: 0; }
+ .dropdown.menu.large-vertical > li.opens-right > a::after {
+ content: '';
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 5px;
+ border-color: transparent transparent transparent #2199e8;
+ border-left-style: solid;
+ border-right-width: 0; } }
+
+.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
+ top: 100%;
+ left: auto;
+ right: 0; }
-.clearing-touch-label {
- color: #AAAAAA;
- font-size: .6em;
- left: 50%;
- position: absolute;
- top: 50%; }
+.is-dropdown-menu.vertical {
+ width: 100px; }
+ .is-dropdown-menu.vertical.align-right {
+ float: right; }
-.visible-img {
- height: 95%;
+.is-dropdown-submenu-parent {
position: relative; }
- .visible-img img {
+ .is-dropdown-submenu-parent a::after {
position: absolute;
- left: 50%;
top: 50%;
- -webkit-transform: translateY(-50%) translateX(-50%);
- -moz-transform: translateY(-50%) translateX(-50%);
- -ms-transform: translateY(-50%) translateX(-50%);
- -o-transform: translateY(-50%) translateX(-50%);
- transform: translateY(-50%) translateX(-50%);
- max-height: 100%;
- max-width: 100%; }
-
-.clearing-caption {
- background: #333333;
- bottom: 0;
- color: #CCCCCC;
- font-size: 0.875em;
- line-height: 1.3;
- margin-bottom: 0;
- padding: 10px 30px 20px;
- position: absolute;
- text-align: center;
- width: 100%;
- left: 0; }
+ right: 5px;
+ margin-top: -2px; }
+ .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
+ top: 100%;
+ left: auto; }
+ .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {
+ left: auto;
+ right: 100%; }
+ .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {
+ right: auto;
+ left: 100%; }
-.clearing-close {
- color: #CCCCCC;
+.is-dropdown-submenu {
display: none;
- font-size: 30px;
- line-height: 1;
- padding-left: 20px;
- padding-top: 10px;
- z-index: 999; }
- .clearing-close:hover, .clearing-close:focus {
- color: #CCCCCC; }
-
-.clearing-assembled .clearing-container {
- height: 100%; }
- .clearing-assembled .clearing-container .carousel > ul {
- display: none; }
-
-.clearing-feature li {
- display: none; }
- .clearing-feature li.clearing-featured-img {
+ position: absolute;
+ top: 0;
+ left: 100%;
+ min-width: 200px;
+ z-index: 1;
+ background: #fefefe;
+ border: 1px solid #cacaca; }
+ .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
+ right: 14px;
+ margin-top: -3px; }
+ .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
+ content: '';
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 5px;
+ border-color: transparent #2199e8 transparent transparent;
+ border-right-style: solid;
+ border-left-width: 0; }
+ .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
+ content: '';
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 5px;
+ border-color: transparent transparent transparent #2199e8;
+ border-left-style: solid;
+ border-right-width: 0; }
+ .is-dropdown-submenu .is-dropdown-submenu {
+ margin-top: -1px; }
+ .is-dropdown-submenu > li {
+ width: 100%; }
+ .is-dropdown-submenu.js-dropdown-active {
display: block; }
-@media only screen and (min-width: 40.0625em) {
- .clearing-main-prev,
- .clearing-main-next {
- height: 100%;
+.flex-video {
+ position: relative;
+ height: 0;
+ padding-bottom: 75%;
+ margin-bottom: 1rem;
+ overflow: hidden; }
+ .flex-video iframe,
+ .flex-video object,
+ .flex-video embed,
+ .flex-video video {
position: absolute;
top: 0;
- width: 40px; }
- .clearing-main-prev > span,
- .clearing-main-next > span {
- border: solid 12px;
- display: block;
- height: 0;
- position: absolute;
- top: 50%;
- width: 0; }
- .clearing-main-prev > span:hover,
- .clearing-main-next > span:hover {
- opacity: .8; }
-
- .clearing-main-prev {
- left: 0; }
- .clearing-main-prev > span {
- left: 5px;
- border-color: transparent;
- border-right-color: #CCCCCC; }
-
- .clearing-main-next {
- right: 0; }
- .clearing-main-next > span {
- border-color: transparent;
- border-left-color: #CCCCCC; }
-
- .clearing-main-prev.disabled,
- .clearing-main-next.disabled {
- opacity: .3; }
-
- .clearing-assembled .clearing-container .carousel {
- background: rgba(51, 51, 51, 0.8);
- height: 120px;
- margin-top: 10px;
- text-align: center; }
- .clearing-assembled .clearing-container .carousel > ul {
- display: inline-block;
- z-index: 999;
- height: 100%;
- position: relative;
- float: none; }
- .clearing-assembled .clearing-container .carousel > ul li {
- clear: none;
- cursor: pointer;
- display: block;
- float: left;
- margin-right: 0;
- min-height: inherit;
- opacity: .4;
- overflow: hidden;
- padding: 0;
- position: relative;
- width: 120px; }
- .clearing-assembled .clearing-container .carousel > ul li.fix-height img {
- height: 100%;
- max-width: none; }
- .clearing-assembled .clearing-container .carousel > ul li a.th {
- border: none;
- box-shadow: none;
- display: block; }
- .clearing-assembled .clearing-container .carousel > ul li img {
- cursor: pointer !important;
- width: 100% !important; }
- .clearing-assembled .clearing-container .carousel > ul li.visible {
- opacity: 1; }
- .clearing-assembled .clearing-container .carousel > ul li:hover {
- opacity: .8; }
- .clearing-assembled .clearing-container .visible-img {
- background: #333333;
- height: 85%;
- overflow: hidden; }
-
- .clearing-close {
- padding-left: 0;
- padding-top: 0;
- position: absolute;
- top: 10px;
- right: 20px; } }
-/* Progress Bar */
-.progress {
- background-color: #F6F6F6;
- border: 1px solid white;
- height: 1.5625rem;
- margin-bottom: 0.625rem;
- padding: 0.125rem; }
- .progress .meter {
- background: #008CBA;
- display: block;
- height: 100%; }
- .progress.secondary .meter {
- background: #e7e7e7;
- display: block;
- height: 100%; }
- .progress.success .meter {
- background: #43AC6A;
- display: block;
- height: 100%; }
- .progress.alert .meter {
- background: #f04124;
- display: block;
+ left: 0;
+ width: 100%;
height: 100%; }
- .progress.radius {
- border-radius: 3px; }
- .progress.radius .meter {
- border-radius: 2px; }
- .progress.round {
- border-radius: 1000px; }
- .progress.round .meter {
- border-radius: 999px; }
-
-.sub-nav {
- display: block;
- margin: -0.25rem 0 1.125rem;
- overflow: hidden;
- padding-top: 0.25rem;
- width: auto; }
- .sub-nav dt {
- text-transform: uppercase; }
- .sub-nav dt,
- .sub-nav dd,
- .sub-nav li {
- color: #999999;
- float: left;
- font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
- font-size: 0.875rem;
- font-weight: normal;
- margin-left: 1rem;
- margin-bottom: 0; }
- .sub-nav dt a,
- .sub-nav dd a,
- .sub-nav li a {
- color: #999999;
- padding: 0.1875rem 1rem;
- text-decoration: none; }
- .sub-nav dt a:hover,
- .sub-nav dd a:hover,
- .sub-nav li a:hover {
- color: #737373; }
- .sub-nav dt.active a,
- .sub-nav dd.active a,
- .sub-nav li.active a {
- border-radius: 3px;
- background: #008CBA;
- color: #FFFFFF;
- cursor: default;
- font-weight: normal;
- padding: 0.1875rem 1rem; }
- .sub-nav dt.active a:hover,
- .sub-nav dd.active a:hover,
- .sub-nav li.active a:hover {
- background: #0078a0; }
-
-/* Foundation Joyride */
-.joyride-list {
- display: none; }
-
-/* Default styles for the container */
-.joyride-tip-guide {
- background: #333333;
- color: #FFFFFF;
- display: none;
- font-family: inherit;
- font-weight: normal;
- position: absolute;
- top: 0;
- width: 95%;
- z-index: 101;
- left: 2.5%; }
-
-.lt-ie9 .joyride-tip-guide {
- margin-left: -400px;
- max-width: 800px;
- left: 50%; }
-
-.joyride-content-wrapper {
- padding: 1.125rem 1.25rem 1.5rem;
- width: 100%; }
- .joyride-content-wrapper .button {
- margin-bottom: 0 !important; }
- .joyride-content-wrapper .joyride-prev-tip {
- margin-right: 10px; }
-
-/* Add a little css triangle pip, older browser just miss out on the fanciness of it */
-.joyride-tip-guide .joyride-nub {
- border: 10px solid #333333;
- display: block;
- height: 0;
- position: absolute;
- width: 0;
- left: 22px; }
- .joyride-tip-guide .joyride-nub.top {
- border-color: #333333;
- border-top-color: transparent !important;
- border-top-style: solid;
- border-left-color: transparent !important;
- border-right-color: transparent !important;
- top: -20px; }
- .joyride-tip-guide .joyride-nub.bottom {
- border-color: #333333 !important;
- border-bottom-color: transparent !important;
- border-bottom-style: solid;
- border-left-color: transparent !important;
- border-right-color: transparent !important;
- bottom: -20px; }
- .joyride-tip-guide .joyride-nub.right {
- right: -20px; }
- .joyride-tip-guide .joyride-nub.left {
- left: -20px; }
-
-/* Typography */
-.joyride-tip-guide h1,
-.joyride-tip-guide h2,
-.joyride-tip-guide h3,
-.joyride-tip-guide h4,
-.joyride-tip-guide h5,
-.joyride-tip-guide h6 {
- color: #FFFFFF;
- font-weight: bold;
- line-height: 1.25;
- margin: 0; }
-
-.joyride-tip-guide p {
- font-size: 0.875rem;
- line-height: 1.3;
- margin: 0 0 1.125rem 0; }
-
-.joyride-timer-indicator-wrap {
- border: solid 1px #555555;
- bottom: 1rem;
- height: 3px;
- position: absolute;
- width: 50px;
- right: 1.0625rem; }
-
-.joyride-timer-indicator {
- background: #666666;
- display: block;
- height: inherit;
- width: 0; }
-
-.joyride-close-tip {
- color: #777777 !important;
- font-size: 24px;
- font-weight: normal;
- line-height: .5 !important;
- position: absolute;
- text-decoration: none;
- top: 10px;
- right: 12px; }
- .joyride-close-tip:hover, .joyride-close-tip:focus {
- color: #EEEEEE !important; }
-
-.joyride-modal-bg {
- background: rgba(0, 0, 0, 0.5);
- cursor: pointer;
- display: none;
- height: 100%;
- position: fixed;
- top: 0;
- width: 100%;
- z-index: 100;
- left: 0; }
-
-.joyride-expose-wrapper {
- background-color: #FFFFFF;
- border-radius: 3px;
- box-shadow: 0 0 15px #FFFFFF;
- position: absolute;
- z-index: 102; }
+ .flex-video.widescreen {
+ padding-bottom: 56.25%; }
+ .flex-video.vimeo {
+ padding-top: 0; }
-.joyride-expose-cover {
- background: transparent;
- border-radius: 3px;
- left: 0;
- position: absolute;
- top: 0;
- z-index: 9999; }
-
-/* Styles for screens that are at least 768px; */
-@media only screen and (min-width: 40.0625em) {
- .joyride-tip-guide {
- width: 300px;
- left: inherit; }
- .joyride-tip-guide .joyride-nub.bottom {
- border-color: #333333 !important;
- border-bottom-color: transparent !important;
- border-left-color: transparent !important;
- border-right-color: transparent !important;
- bottom: -20px; }
- .joyride-tip-guide .joyride-nub.right {
- border-color: #333333 !important;
- border-right-color: transparent !important;
- border-bottom-color: transparent !important;
- border-top-color: transparent !important;
- left: auto;
- right: -20px;
- top: 22px; }
- .joyride-tip-guide .joyride-nub.left {
- border-color: #333333 !important;
- border-bottom-color: transparent !important;
- border-left-color: transparent !important;
- border-top-color: transparent !important;
- left: -20px;
- right: auto;
- top: 22px; } }
.label {
display: inline-block;
- font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
- font-weight: normal;
+ padding: 0.33333rem 0.5rem;
+ font-size: 0.8rem;
line-height: 1;
- margin-bottom: auto;
- position: relative;
- text-align: center;
- text-decoration: none;
white-space: nowrap;
- padding: 0.25rem 0.5rem 0.25rem;
- font-size: 0.6875rem;
- background-color: #008CBA;
- color: #FFFFFF; }
- .label.radius {
- border-radius: 3px; }
- .label.round {
- border-radius: 1000px; }
- .label.alert {
- background-color: #f04124;
- color: #FFFFFF; }
- .label.warning {
- background-color: #f08a24;
- color: #FFFFFF; }
- .label.success {
- background-color: #43AC6A;
- color: #FFFFFF; }
+ cursor: default;
+ border-radius: 0;
+ background: #2199e8;
+ color: #fefefe; }
.label.secondary {
- background-color: #e7e7e7;
- color: #333333; }
- .label.info {
- background-color: #a0d3e8;
- color: #333333; }
+ background: #777;
+ color: #fefefe; }
+ .label.success {
+ background: #3adb76;
+ color: #fefefe; }
+ .label.warning {
+ background: #ffae00;
+ color: #fefefe; }
+ .label.alert {
+ background: #ec5840;
+ color: #fefefe; }
-.off-canvas-wrap {
- -webkit-backface-visibility: hidden;
- position: relative;
+.media-object {
+ margin-bottom: 1rem;
+ display: block; }
+ .media-object img {
+ max-width: none; }
+ @media screen and (max-width: 39.9375em) {
+ .media-object.stack-for-small .media-object-section {
+ padding: 0;
+ padding-bottom: 1rem;
+ display: block; }
+ .media-object.stack-for-small .media-object-section img {
+ width: 100%; } }
+
+.media-object-section {
+ display: table-cell;
+ vertical-align: top; }
+ .media-object-section:first-child {
+ padding-right: 1rem; }
+ .media-object-section:last-child:not(:nth-child(2)) {
+ padding-left: 1rem; }
+ .media-object-section > :last-child {
+ margin-bottom: 0; }
+ .media-object-section.middle {
+ vertical-align: middle; }
+ .media-object-section.bottom {
+ vertical-align: bottom; }
+
+html,
+body {
+ height: 100%; }
+
+.off-canvas-wrapper {
width: 100%;
- overflow: hidden; }
- .off-canvas-wrap.move-right, .off-canvas-wrap.move-left {
- min-height: 100%;
- -webkit-overflow-scrolling: touch; }
+ overflow-x: hidden;
+ position: relative;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-overflow-scrolling: auto; }
-.inner-wrap {
+.off-canvas-wrapper-inner {
position: relative;
width: 100%;
- -webkit-transition: -webkit-transform 500ms ease;
- -moz-transition: -moz-transform 500ms ease;
- -ms-transition: -ms-transform 500ms ease;
- -o-transition: -o-transform 500ms ease;
- transition: transform 500ms ease; }
- .inner-wrap:before, .inner-wrap:after {
- content: " ";
+ -webkit-transition: -webkit-transform 0.5s ease;
+ transition: transform 0.5s ease; }
+ .off-canvas-wrapper-inner::before, .off-canvas-wrapper-inner::after {
+ content: ' ';
display: table; }
- .inner-wrap:after {
+ .off-canvas-wrapper-inner::after {
clear: both; }
-.tab-bar {
+.off-canvas-content,
+.off-canvas-content {
+ min-height: 100%;
+ background: #fefefe;
+ -webkit-transition: -webkit-transform 0.5s ease;
+ transition: transform 0.5s ease;
-webkit-backface-visibility: hidden;
- background: #333333;
- color: #FFFFFF;
- height: 2.8125rem;
- line-height: 2.8125rem;
- position: relative; }
- .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4, .tab-bar h5, .tab-bar h6 {
- color: #FFFFFF;
- font-weight: bold;
- line-height: 2.8125rem;
- margin: 0; }
- .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4 {
- font-size: 1.125rem; }
+ backface-visibility: hidden;
+ z-index: 1;
+ padding-bottom: 0.1px;
+ -webkit-box-shadow: 0 0 10px rgba(10, 10, 10, 0.5);
+ box-shadow: 0 0 10px rgba(10, 10, 10, 0.5); }
-.left-small {
- height: 2.8125rem;
+.js-off-canvas-exit {
+ display: none;
position: absolute;
top: 0;
- width: 2.8125rem;
- border-right: solid 1px #1a1a1a;
- left: 0; }
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: rgba(254, 254, 254, 0.25);
+ cursor: pointer;
+ -webkit-transition: background 0.5s ease;
+ transition: background 0.5s ease; }
-.right-small {
- height: 2.8125rem;
+.off-canvas {
position: absolute;
- top: 0;
- width: 2.8125rem;
- border-left: solid 1px #1a1a1a;
- right: 0; }
+ background: #e6e6e6;
+ z-index: -1;
+ max-height: 100%;
+ overflow-y: auto;
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ transform: translateX(0); }
+ [data-whatinput='mouse'] .off-canvas {
+ outline: 0; }
+ .off-canvas.position-left {
+ left: -250px;
+ top: 0;
+ width: 250px; }
+ .is-open-left {
+ -webkit-transform: translateX(250px);
+ -ms-transform: translateX(250px);
+ transform: translateX(250px); }
+ .off-canvas.position-right {
+ right: -250px;
+ top: 0;
+ width: 250px; }
+ .is-open-right {
+ -webkit-transform: translateX(-250px);
+ -ms-transform: translateX(-250px);
+ transform: translateX(-250px); }
+
+@media screen and (min-width: 40em) {
+ .position-left.reveal-for-medium {
+ left: 0;
+ z-index: auto;
+ position: fixed; }
+ .position-left.reveal-for-medium ~ .off-canvas-content {
+ margin-left: 250px; }
+ .position-right.reveal-for-medium {
+ right: 0;
+ z-index: auto;
+ position: fixed; }
+ .position-right.reveal-for-medium ~ .off-canvas-content {
+ margin-right: 250px; } }
-.tab-bar-section {
- height: 2.8125rem;
- padding: 0 0.625rem;
- position: absolute;
- text-align: center;
- top: 0; }
- .tab-bar-section.left {
- text-align: left; }
- .tab-bar-section.right {
- text-align: right; }
- .tab-bar-section.left {
+@media screen and (min-width: 64em) {
+ .position-left.reveal-for-large {
left: 0;
- right: 2.8125rem; }
- .tab-bar-section.right {
- left: 2.8125rem;
- right: 0; }
- .tab-bar-section.middle {
- left: 2.8125rem;
- right: 2.8125rem; }
-
-.tab-bar .menu-icon {
- color: #FFFFFF;
- display: block;
- height: 2.8125rem;
- padding: 0;
+ z-index: auto;
+ position: fixed; }
+ .position-left.reveal-for-large ~ .off-canvas-content {
+ margin-left: 250px; }
+ .position-right.reveal-for-large {
+ right: 0;
+ z-index: auto;
+ position: fixed; }
+ .position-right.reveal-for-large ~ .off-canvas-content {
+ margin-right: 250px; } }
+
+.orbit {
+ position: relative; }
+
+.orbit-container {
position: relative;
- text-indent: 2.1875rem;
- transform: translate3d(0, 0, 0);
- width: 2.8125rem; }
- .tab-bar .menu-icon span::after {
- content: "";
- display: block;
- height: 0;
- position: absolute;
- top: 50%;
- margin-top: -0.5rem;
- left: 0.90625rem;
- box-shadow: 0 0 0 1px #FFFFFF, 0 7px 0 1px #FFFFFF, 0 14px 0 1px #FFFFFF;
- width: 1rem; }
- .tab-bar .menu-icon span:hover:after {
- box-shadow: 0 0 0 1px #b3b3b3, 0 7px 0 1px #b3b3b3, 0 14px 0 1px #b3b3b3; }
-
-.left-off-canvas-menu {
- -webkit-backface-visibility: hidden;
- background: #333333;
+ margin: 0;
+ overflow: hidden;
+ list-style: none; }
+
+.orbit-slide {
+ width: 100%;
+ max-height: 100%; }
+ .orbit-slide.no-motionui.is-active {
+ top: 0;
+ left: 0; }
+
+.orbit-figure {
+ margin: 0; }
+
+.orbit-image {
+ margin: 0;
+ width: 100%;
+ max-width: 100%; }
+
+.orbit-caption {
+ position: absolute;
bottom: 0;
- box-sizing: content-box;
- -webkit-overflow-scrolling: touch;
- -ms-overflow-style: -ms-autohiding-scrollbar;
- overflow-x: hidden;
- overflow-y: auto;
+ width: 100%;
+ padding: 1rem;
+ margin-bottom: 0;
+ color: #fefefe;
+ background-color: rgba(10, 10, 10, 0.5); }
+
+.orbit-previous, .orbit-next {
position: absolute;
- top: 0;
- transition: transform 500ms ease 0s;
- width: 15.625rem;
- z-index: 1001;
- -webkit-transform: translate3d(-100%, 0, 0);
- -moz-transform: translate3d(-100%, 0, 0);
- -ms-transform: translate(-100%, 0);
- -ms-transform: translate3d(-100%, 0, 0);
- -o-transform: translate3d(-100%, 0, 0);
- transform: translate3d(-100%, 0, 0);
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateY(-50%);
+ z-index: 10;
+ padding: 1rem;
+ color: #fefefe; }
+ [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {
+ outline: 0; }
+ .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {
+ background-color: rgba(10, 10, 10, 0.5); }
+
+.orbit-previous {
left: 0; }
- .left-off-canvas-menu * {
- -webkit-backface-visibility: hidden; }
-.right-off-canvas-menu {
- -webkit-backface-visibility: hidden;
- background: #333333;
- bottom: 0;
- box-sizing: content-box;
- -webkit-overflow-scrolling: touch;
- -ms-overflow-style: -ms-autohiding-scrollbar;
- overflow-x: hidden;
- overflow-y: auto;
- position: absolute;
- top: 0;
- transition: transform 500ms ease 0s;
- width: 15.625rem;
- z-index: 1001;
- -webkit-transform: translate3d(100%, 0, 0);
- -moz-transform: translate3d(100%, 0, 0);
- -ms-transform: translate(100%, 0);
- -ms-transform: translate3d(100%, 0, 0);
- -o-transform: translate3d(100%, 0, 0);
- transform: translate3d(100%, 0, 0);
+.orbit-next {
+ left: auto;
right: 0; }
- .right-off-canvas-menu * {
- -webkit-backface-visibility: hidden; }
-ul.off-canvas-list {
- list-style-type: none;
- margin: 0;
- padding: 0; }
- ul.off-canvas-list li label {
- background: #444444;
- border-bottom: none;
- border-top: 1px solid #5e5e5e;
- color: #999999;
- display: block;
- font-size: 0.75rem;
- font-weight: bold;
- margin: 0;
- padding: 0.3rem 0.9375rem;
- text-transform: uppercase; }
- ul.off-canvas-list li a {
- border-bottom: 1px solid #262626;
- color: rgba(255, 255, 255, 0.7);
+.orbit-bullets {
+ position: relative;
+ margin-top: 0.8rem;
+ margin-bottom: 0.8rem;
+ text-align: center; }
+ [data-whatinput='mouse'] .orbit-bullets {
+ outline: 0; }
+ .orbit-bullets button {
+ width: 1.2rem;
+ height: 1.2rem;
+ margin: 0.1rem;
+ background-color: #cacaca;
+ border-radius: 50%; }
+ .orbit-bullets button:hover {
+ background-color: #8a8a8a; }
+ .orbit-bullets button.is-active {
+ background-color: #8a8a8a; }
+
+.pagination {
+ margin-left: 0;
+ margin-bottom: 1rem; }
+ .pagination::before, .pagination::after {
+ content: ' ';
+ display: table; }
+ .pagination::after {
+ clear: both; }
+ .pagination li {
+ font-size: 0.875rem;
+ margin-right: 0.0625rem;
+ border-radius: 0;
+ display: none; }
+ .pagination li:last-child, .pagination li:first-child {
+ display: inline-block; }
+ @media screen and (min-width: 40em) {
+ .pagination li {
+ display: inline-block; } }
+ .pagination a,
+ .pagination button {
+ color: #0a0a0a;
display: block;
- padding: 0.66667rem;
- transition: background 300ms ease; }
- ul.off-canvas-list li a:hover {
- background: #242424; }
- ul.off-canvas-list li a:active {
- background: #242424; }
-
-.move-right > .inner-wrap {
- -webkit-transform: translate3d(15.625rem, 0, 0);
- -moz-transform: translate3d(15.625rem, 0, 0);
- -ms-transform: translate(15.625rem, 0);
- -ms-transform: translate3d(15.625rem, 0, 0);
- -o-transform: translate3d(15.625rem, 0, 0);
- transform: translate3d(15.625rem, 0, 0); }
-.move-right .exit-off-canvas {
- -webkit-backface-visibility: hidden;
- box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
- cursor: pointer;
- transition: background 300ms ease;
- -webkit-tap-highlight-color: transparent;
- background: rgba(255, 255, 255, 0.2);
- bottom: 0;
- display: block;
- left: 0;
- position: absolute;
- right: 0;
- top: 0;
- z-index: 1002; }
- @media only screen and (min-width: 40.0625em) {
- .move-right .exit-off-canvas:hover {
- background: rgba(255, 255, 255, 0.05); } }
-
-.move-left > .inner-wrap {
- -webkit-transform: translate3d(-15.625rem, 0, 0);
- -moz-transform: translate3d(-15.625rem, 0, 0);
- -ms-transform: translate(-15.625rem, 0);
- -ms-transform: translate3d(-15.625rem, 0, 0);
- -o-transform: translate3d(-15.625rem, 0, 0);
- transform: translate3d(-15.625rem, 0, 0); }
-.move-left .exit-off-canvas {
- -webkit-backface-visibility: hidden;
- box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
- cursor: pointer;
- transition: background 300ms ease;
- -webkit-tap-highlight-color: transparent;
- background: rgba(255, 255, 255, 0.2);
- bottom: 0;
- display: block;
- left: 0;
- position: absolute;
- right: 0;
- top: 0;
- z-index: 1002; }
- @media only screen and (min-width: 40.0625em) {
- .move-left .exit-off-canvas:hover {
- background: rgba(255, 255, 255, 0.05); } }
-
-.offcanvas-overlap .left-off-canvas-menu, .offcanvas-overlap .right-off-canvas-menu {
- -ms-transform: none;
- -webkit-transform: none;
- -moz-transform: none;
- -o-transform: none;
- transform: none;
- z-index: 1003; }
-.offcanvas-overlap .exit-off-canvas {
- -webkit-backface-visibility: hidden;
- box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
- cursor: pointer;
- transition: background 300ms ease;
- -webkit-tap-highlight-color: transparent;
- background: rgba(255, 255, 255, 0.2);
- bottom: 0;
- display: block;
- left: 0;
- position: absolute;
- right: 0;
- top: 0;
- z-index: 1002; }
- @media only screen and (min-width: 40.0625em) {
- .offcanvas-overlap .exit-off-canvas:hover {
- background: rgba(255, 255, 255, 0.05); } }
-
-.offcanvas-overlap-left .right-off-canvas-menu {
- -ms-transform: none;
- -webkit-transform: none;
- -moz-transform: none;
- -o-transform: none;
- transform: none;
- z-index: 1003; }
-.offcanvas-overlap-left .exit-off-canvas {
- -webkit-backface-visibility: hidden;
- box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
- cursor: pointer;
- transition: background 300ms ease;
- -webkit-tap-highlight-color: transparent;
- background: rgba(255, 255, 255, 0.2);
- bottom: 0;
- display: block;
- left: 0;
- position: absolute;
- right: 0;
- top: 0;
- z-index: 1002; }
- @media only screen and (min-width: 40.0625em) {
- .offcanvas-overlap-left .exit-off-canvas:hover {
- background: rgba(255, 255, 255, 0.05); } }
-
-.offcanvas-overlap-right .left-off-canvas-menu {
- -ms-transform: none;
- -webkit-transform: none;
- -moz-transform: none;
- -o-transform: none;
- transform: none;
- z-index: 1003; }
-.offcanvas-overlap-right .exit-off-canvas {
- -webkit-backface-visibility: hidden;
- box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
- cursor: pointer;
- transition: background 300ms ease;
- -webkit-tap-highlight-color: transparent;
- background: rgba(255, 255, 255, 0.2);
- bottom: 0;
+ padding: 0.1875rem 0.625rem;
+ border-radius: 0; }
+ .pagination a:hover,
+ .pagination button:hover {
+ background: #e6e6e6; }
+ .pagination .current {
+ padding: 0.1875rem 0.625rem;
+ background: #2199e8;
+ color: #fefefe;
+ cursor: default; }
+ .pagination .disabled {
+ padding: 0.1875rem 0.625rem;
+ color: #cacaca;
+ cursor: not-allowed; }
+ .pagination .disabled:hover {
+ background: transparent; }
+ .pagination .ellipsis::after {
+ content: '\2026';
+ padding: 0.1875rem 0.625rem;
+ color: #0a0a0a; }
+
+.pagination-previous a::before,
+.pagination-previous.disabled::before {
+ content: '\00ab';
+ display: inline-block;
+ margin-right: 0.5rem; }
+
+.pagination-next a::after,
+.pagination-next.disabled::after {
+ content: '\00bb';
+ display: inline-block;
+ margin-left: 0.5rem; }
+
+.progress {
+ background-color: #cacaca;
+ height: 1rem;
+ margin-bottom: 1rem;
+ border-radius: 0; }
+ .progress.primary .progress-meter {
+ background-color: #2199e8; }
+ .progress.secondary .progress-meter {
+ background-color: #777; }
+ .progress.success .progress-meter {
+ background-color: #3adb76; }
+ .progress.warning .progress-meter {
+ background-color: #ffae00; }
+ .progress.alert .progress-meter {
+ background-color: #ec5840; }
+
+.progress-meter {
+ position: relative;
display: block;
- left: 0;
+ width: 0%;
+ height: 100%;
+ background-color: #2199e8; }
+
+.progress-meter-text {
position: absolute;
- right: 0;
- top: 0;
- z-index: 1002; }
- @media only screen and (min-width: 40.0625em) {
- .offcanvas-overlap-right .exit-off-canvas:hover {
- background: rgba(255, 255, 255, 0.05); } }
-
-.no-csstransforms .left-off-canvas-menu {
- left: -15.625rem; }
-.no-csstransforms .right-off-canvas-menu {
- right: -15.625rem; }
-.no-csstransforms .move-left > .inner-wrap {
- right: 15.625rem; }
-.no-csstransforms .move-right > .inner-wrap {
- left: 15.625rem; }
-
-.left-submenu {
- -webkit-backface-visibility: hidden;
- -webkit-overflow-scrolling: touch;
- background: #333333;
- bottom: 0;
- box-sizing: content-box;
- margin: 0;
- overflow-x: hidden;
- overflow-y: auto;
+ top: 50%;
+ left: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ -ms-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
position: absolute;
- top: 0;
- width: 15.625rem;
- z-index: 1002;
- -webkit-transform: translate3d(-100%, 0, 0);
- -moz-transform: translate3d(-100%, 0, 0);
- -ms-transform: translate(-100%, 0);
- -ms-transform: translate3d(-100%, 0, 0);
- -o-transform: translate3d(-100%, 0, 0);
- transform: translate3d(-100%, 0, 0);
- left: 0;
- -webkit-transition: -webkit-transform 500ms ease;
- -moz-transition: -moz-transform 500ms ease;
- -ms-transition: -ms-transform 500ms ease;
- -o-transition: -o-transform 500ms ease;
- transition: transform 500ms ease; }
- .left-submenu * {
- -webkit-backface-visibility: hidden; }
- .left-submenu .back > a {
- background: #444;
- border-bottom: none;
- border-top: 1px solid #5e5e5e;
- color: #999999;
- font-weight: bold;
- padding: 0.3rem 0.9375rem;
- text-transform: uppercase;
- margin: 0; }
- .left-submenu .back > a:hover {
- background: #303030;
- border-bottom: none;
- border-top: 1px solid #5e5e5e; }
- .left-submenu .back > a:before {
- content: "\AB";
- margin-right: .5rem;
- display: inline; }
- .left-submenu.move-right, .left-submenu.offcanvas-overlap-right, .left-submenu.offcanvas-overlap {
- -webkit-transform: translate3d(0%, 0, 0);
- -moz-transform: translate3d(0%, 0, 0);
- -ms-transform: translate(0%, 0);
- -ms-transform: translate3d(0%, 0, 0);
- -o-transform: translate3d(0%, 0, 0);
- transform: translate3d(0%, 0, 0); }
-
-.right-submenu {
- -webkit-backface-visibility: hidden;
- -webkit-overflow-scrolling: touch;
- background: #333333;
- bottom: 0;
- box-sizing: content-box;
margin: 0;
- overflow-x: hidden;
- overflow-y: auto;
- position: absolute;
- top: 0;
- width: 15.625rem;
- z-index: 1002;
- -webkit-transform: translate3d(100%, 0, 0);
- -moz-transform: translate3d(100%, 0, 0);
- -ms-transform: translate(100%, 0);
- -ms-transform: translate3d(100%, 0, 0);
- -o-transform: translate3d(100%, 0, 0);
- transform: translate3d(100%, 0, 0);
- right: 0;
- -webkit-transition: -webkit-transform 500ms ease;
- -moz-transition: -moz-transform 500ms ease;
- -ms-transition: -ms-transform 500ms ease;
- -o-transition: -o-transform 500ms ease;
- transition: transform 500ms ease; }
- .right-submenu * {
- -webkit-backface-visibility: hidden; }
- .right-submenu .back > a {
- background: #444;
- border-bottom: none;
- border-top: 1px solid #5e5e5e;
- color: #999999;
- font-weight: bold;
- padding: 0.3rem 0.9375rem;
- text-transform: uppercase;
- margin: 0; }
- .right-submenu .back > a:hover {
- background: #303030;
- border-bottom: none;
- border-top: 1px solid #5e5e5e; }
- .right-submenu .back > a:after {
- content: "\BB";
- margin-left: .5rem;
- display: inline; }
- .right-submenu.move-left, .right-submenu.offcanvas-overlap-left, .right-submenu.offcanvas-overlap {
- -webkit-transform: translate3d(0%, 0, 0);
- -moz-transform: translate3d(0%, 0, 0);
- -ms-transform: translate(0%, 0);
- -ms-transform: translate3d(0%, 0, 0);
- -o-transform: translate3d(0%, 0, 0);
- transform: translate3d(0%, 0, 0); }
-
-.left-off-canvas-menu ul.off-canvas-list li.has-submenu > a:after {
- content: "\BB";
- margin-left: .5rem;
- display: inline; }
-
-.right-off-canvas-menu ul.off-canvas-list li.has-submenu > a:before {
- content: "\AB";
- margin-right: .5rem;
- display: inline; }
-
-/* Foundation Dropdowns */
-.f-dropdown {
- display: none;
- left: -9999px;
- list-style: none;
- margin-left: 0;
- position: absolute;
- background: #FFFFFF;
- border: solid 1px #cccccc;
- font-size: 0.875rem;
- height: auto;
- max-height: none;
- width: 100%;
- z-index: 89;
- margin-top: 2px;
- max-width: 200px; }
- .f-dropdown.open {
- display: block; }
- .f-dropdown > *:first-child {
- margin-top: 0; }
- .f-dropdown > *:last-child {
- margin-bottom: 0; }
- .f-dropdown:before {
- border: inset 6px;
- content: "";
- display: block;
- height: 0;
- width: 0;
- border-color: transparent transparent #FFFFFF transparent;
- border-bottom-style: solid;
- position: absolute;
- top: -12px;
- left: 10px;
- z-index: 89; }
- .f-dropdown:after {
- border: inset 7px;
- content: "";
- display: block;
- height: 0;
- width: 0;
- border-color: transparent transparent #cccccc transparent;
- border-bottom-style: solid;
- position: absolute;
- top: -14px;
- left: 9px;
- z-index: 88; }
- .f-dropdown.right:before {
- left: auto;
- right: 10px; }
- .f-dropdown.right:after {
- left: auto;
- right: 9px; }
- .f-dropdown.drop-right {
- display: none;
- left: -9999px;
- list-style: none;
- margin-left: 0;
- position: absolute;
- background: #FFFFFF;
- border: solid 1px #cccccc;
- font-size: 0.875rem;
- height: auto;
- max-height: none;
- width: 100%;
- z-index: 89;
- margin-top: 0;
- margin-left: 2px;
- max-width: 200px; }
- .f-dropdown.drop-right.open {
- display: block; }
- .f-dropdown.drop-right > *:first-child {
- margin-top: 0; }
- .f-dropdown.drop-right > *:last-child {
- margin-bottom: 0; }
- .f-dropdown.drop-right:before {
- border: inset 6px;
- content: "";
- display: block;
- height: 0;
- width: 0;
- border-color: transparent #FFFFFF transparent transparent;
- border-right-style: solid;
- position: absolute;
- top: 10px;
- left: -12px;
- z-index: 89; }
- .f-dropdown.drop-right:after {
- border: inset 7px;
- content: "";
- display: block;
- height: 0;
- width: 0;
- border-color: transparent #cccccc transparent transparent;
- border-right-style: solid;
- position: absolute;
- top: 9px;
- left: -14px;
- z-index: 88; }
- .f-dropdown.drop-left {
- display: none;
- left: -9999px;
- list-style: none;
- margin-left: 0;
- position: absolute;
- background: #FFFFFF;
- border: solid 1px #cccccc;
- font-size: 0.875rem;
- height: auto;
- max-height: none;
- width: 100%;
- z-index: 89;
- margin-top: 0;
- margin-left: -2px;
- max-width: 200px; }
- .f-dropdown.drop-left.open {
- display: block; }
- .f-dropdown.drop-left > *:first-child {
- margin-top: 0; }
- .f-dropdown.drop-left > *:last-child {
- margin-bottom: 0; }
- .f-dropdown.drop-left:before {
- border: inset 6px;
- content: "";
- display: block;
- height: 0;
- width: 0;
- border-color: transparent transparent transparent #FFFFFF;
- border-left-style: solid;
- position: absolute;
- top: 10px;
- right: -12px;
- left: auto;
- z-index: 89; }
- .f-dropdown.drop-left:after {
- border: inset 7px;
- content: "";
- display: block;
- height: 0;
- width: 0;
- border-color: transparent transparent transparent #cccccc;
- border-left-style: solid;
- position: absolute;
- top: 9px;
- right: -14px;
- left: auto;
- z-index: 88; }
- .f-dropdown.drop-top {
- display: none;
- left: -9999px;
- list-style: none;
- margin-left: 0;
- position: absolute;
- background: #FFFFFF;
- border: solid 1px #cccccc;
- font-size: 0.875rem;
- height: auto;
- max-height: none;
- width: 100%;
- z-index: 89;
- margin-left: 0;
- margin-top: -2px;
- max-width: 200px; }
- .f-dropdown.drop-top.open {
- display: block; }
- .f-dropdown.drop-top > *:first-child {
- margin-top: 0; }
- .f-dropdown.drop-top > *:last-child {
- margin-bottom: 0; }
- .f-dropdown.drop-top:before {
- border: inset 6px;
- content: "";
- display: block;
- height: 0;
- width: 0;
- border-color: #FFFFFF transparent transparent transparent;
- border-top-style: solid;
- bottom: -12px;
- position: absolute;
- top: auto;
- left: 10px;
- right: auto;
- z-index: 89; }
- .f-dropdown.drop-top:after {
- border: inset 7px;
- content: "";
- display: block;
- height: 0;
- width: 0;
- border-color: #cccccc transparent transparent transparent;
- border-top-style: solid;
- bottom: -14px;
- position: absolute;
- top: auto;
- left: 9px;
- right: auto;
- z-index: 88; }
- .f-dropdown li {
- cursor: pointer;
- font-size: 0.875rem;
- line-height: 1.125rem;
- margin: 0; }
- .f-dropdown li:hover, .f-dropdown li:focus {
- background: #EEEEEE; }
- .f-dropdown li.radius {
- border-radius: 3px; }
- .f-dropdown li a {
- display: block;
- padding: 0.5rem;
- color: #555555; }
- .f-dropdown.content {
- display: none;
- left: -9999px;
- list-style: none;
- margin-left: 0;
- position: absolute;
- background: #FFFFFF;
- border: solid 1px #cccccc;
- font-size: 0.875rem;
- height: auto;
- max-height: none;
- padding: 1.25rem;
- width: 100%;
- z-index: 89;
- max-width: 200px; }
- .f-dropdown.content.open {
- display: block; }
- .f-dropdown.content > *:first-child {
- margin-top: 0; }
- .f-dropdown.content > *:last-child {
- margin-bottom: 0; }
- .f-dropdown.tiny {
- max-width: 200px; }
- .f-dropdown.small {
- max-width: 300px; }
- .f-dropdown.medium {
- max-width: 500px; }
- .f-dropdown.large {
- max-width: 800px; }
- .f-dropdown.mega {
- width: 100% !important;
- max-width: 100% !important; }
- .f-dropdown.mega.open {
- left: 0 !important; }
-
-table {
- background: #FFFFFF;
- border: solid 1px #DDDDDD;
- margin-bottom: 1.25rem;
- table-layout: auto; }
- table caption {
- background: transparent;
- color: #222222;
- font-size: 1rem;
- font-weight: bold; }
- table thead {
- background: #F5F5F5; }
- table thead tr th,
- table thead tr td {
- color: #222222;
- font-size: 0.875rem;
- font-weight: bold;
- padding: 0.5rem 0.625rem 0.625rem; }
- table tfoot {
- background: #F5F5F5; }
- table tfoot tr th,
- table tfoot tr td {
- color: #222222;
- font-size: 0.875rem;
- font-weight: bold;
- padding: 0.5rem 0.625rem 0.625rem; }
- table tr th,
- table tr td {
- color: #222222;
- font-size: 0.875rem;
- padding: 0.5625rem 0.625rem;
- text-align: left; }
- table tr.even, table tr.alt, table tr:nth-of-type(even) {
- background: #F9F9F9; }
- table thead tr th,
- table tfoot tr th,
- table tfoot tr td,
- table tbody tr th,
- table tbody tr td,
- table tr td {
- display: table-cell;
- line-height: 1.125rem; }
+ font-size: 0.75rem;
+ font-weight: bold;
+ color: #fefefe;
+ white-space: nowrap; }
-.range-slider {
- border: 1px solid #DDDDDD;
- margin: 1.25rem 0;
+.slider {
position: relative;
+ height: 0.5rem;
+ margin-top: 1.25rem;
+ margin-bottom: 2.25rem;
+ background-color: #e6e6e6;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
-ms-touch-action: none;
- touch-action: none;
- display: block;
- height: 1rem;
- width: 100%;
- background: #FAFAFA; }
- .range-slider.vertical-range {
- border: 1px solid #DDDDDD;
- margin: 1.25rem 0;
- position: relative;
- -ms-touch-action: none;
- touch-action: none;
- display: inline-block;
- height: 12.5rem;
- width: 1rem; }
- .range-slider.vertical-range .range-slider-handle {
- bottom: -10.5rem;
- margin-left: -0.5rem;
- margin-top: 0;
- position: absolute; }
- .range-slider.vertical-range .range-slider-active-segment {
- border-bottom-left-radius: inherit;
- border-bottom-right-radius: inherit;
- border-top-left-radius: initial;
- bottom: 0;
- height: auto;
- width: 0.875rem; }
- .range-slider.radius {
- background: #FAFAFA;
- border-radius: 3px; }
- .range-slider.radius .range-slider-handle {
- background: #008CBA;
- border-radius: 3px; }
- .range-slider.radius .range-slider-handle:hover {
- background: #007ba4; }
- .range-slider.round {
- background: #FAFAFA;
- border-radius: 1000px; }
- .range-slider.round .range-slider-handle {
- background: #008CBA;
- border-radius: 1000px; }
- .range-slider.round .range-slider-handle:hover {
- background: #007ba4; }
- .range-slider.disabled, .range-slider[disabled] {
- background: #FAFAFA;
- cursor: not-allowed;
- opacity: 0.7; }
- .range-slider.disabled .range-slider-handle, .range-slider[disabled] .range-slider-handle {
- background: #008CBA;
- cursor: default;
- opacity: 0.7; }
- .range-slider.disabled .range-slider-handle:hover, .range-slider[disabled] .range-slider-handle:hover {
- background: #007ba4; }
-
-.range-slider-active-segment {
- background: #e5e5e5;
- border-bottom-left-radius: inherit;
- border-top-left-radius: inherit;
- display: inline-block;
- height: 0.875rem;
- position: absolute; }
+ touch-action: none; }
-.range-slider-handle {
- border: 1px solid none;
- cursor: pointer;
+.slider-fill {
+ position: absolute;
+ top: 0;
+ left: 0;
display: inline-block;
- height: 1.375rem;
+ max-width: 100%;
+ height: 0.5rem;
+ background-color: #cacaca;
+ -webkit-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out; }
+ .slider-fill.is-dragging {
+ -webkit-transition: all 0s linear;
+ transition: all 0s linear; }
+
+.slider-handle {
position: absolute;
- top: -0.3125rem;
- width: 2rem;
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateY(-50%);
+ position: absolute;
+ left: 0;
z-index: 1;
+ display: inline-block;
+ width: 1.4rem;
+ height: 1.4rem;
+ background-color: #2199e8;
+ -webkit-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
-ms-touch-action: manipulation;
- touch-action: manipulation;
- background: #008CBA; }
- .range-slider-handle:hover {
- background: #007ba4; }
-
-[class*="block-grid-"] {
- display: block;
- padding: 0;
- margin: 0 -0.625rem; }
- [class*="block-grid-"]:before, [class*="block-grid-"]:after {
- content: " ";
- display: table; }
- [class*="block-grid-"]:after {
- clear: both; }
- [class*="block-grid-"] > li {
- display: block;
- float: left;
- height: auto;
- padding: 0 0.625rem 1.25rem; }
-
-@media only screen {
- .small-block-grid-1 > li {
- list-style: none;
- width: 100%; }
- .small-block-grid-1 > li:nth-of-type(1n) {
- clear: none; }
- .small-block-grid-1 > li:nth-of-type(1n+1) {
- clear: both; }
-
- .small-block-grid-2 > li {
- list-style: none;
- width: 50%; }
- .small-block-grid-2 > li:nth-of-type(1n) {
- clear: none; }
- .small-block-grid-2 > li:nth-of-type(2n+1) {
- clear: both; }
-
- .small-block-grid-3 > li {
- list-style: none;
- width: 33.33333%; }
- .small-block-grid-3 > li:nth-of-type(1n) {
- clear: none; }
- .small-block-grid-3 > li:nth-of-type(3n+1) {
- clear: both; }
-
- .small-block-grid-4 > li {
- list-style: none;
- width: 25%; }
- .small-block-grid-4 > li:nth-of-type(1n) {
- clear: none; }
- .small-block-grid-4 > li:nth-of-type(4n+1) {
- clear: both; }
-
- .small-block-grid-5 > li {
- list-style: none;
- width: 20%; }
- .small-block-grid-5 > li:nth-of-type(1n) {
- clear: none; }
- .small-block-grid-5 > li:nth-of-type(5n+1) {
- clear: both; }
-
- .small-block-grid-6 > li {
- list-style: none;
- width: 16.66667%; }
- .small-block-grid-6 > li:nth-of-type(1n) {
- clear: none; }
- .small-block-grid-6 > li:nth-of-type(6n+1) {
- clear: both; }
-
- .small-block-grid-7 > li {
- list-style: none;
- width: 14.28571%; }
- .small-block-grid-7 > li:nth-of-type(1n) {
- clear: none; }
- .small-block-grid-7 > li:nth-of-type(7n+1) {
- clear: both; }
-
- .small-block-grid-8 > li {
- list-style: none;
- width: 12.5%; }
- .small-block-grid-8 > li:nth-of-type(1n) {
- clear: none; }
- .small-block-grid-8 > li:nth-of-type(8n+1) {
- clear: both; }
-
- .small-block-grid-9 > li {
- list-style: none;
- width: 11.11111%; }
- .small-block-grid-9 > li:nth-of-type(1n) {
- clear: none; }
- .small-block-grid-9 > li:nth-of-type(9n+1) {
- clear: both; }
-
- .small-block-grid-10 > li {
- list-style: none;
- width: 10%; }
- .small-block-grid-10 > li:nth-of-type(1n) {
- clear: none; }
- .small-block-grid-10 > li:nth-of-type(10n+1) {
- clear: both; }
-
- .small-block-grid-11 > li {
- list-style: none;
- width: 9.09091%; }
- .small-block-grid-11 > li:nth-of-type(1n) {
- clear: none; }
- .small-block-grid-11 > li:nth-of-type(11n+1) {
- clear: both; }
-
- .small-block-grid-12 > li {
- list-style: none;
- width: 8.33333%; }
- .small-block-grid-12 > li:nth-of-type(1n) {
- clear: none; }
- .small-block-grid-12 > li:nth-of-type(12n+1) {
- clear: both; } }
-@media only screen and (min-width: 40.0625em) {
- .medium-block-grid-1 > li {
- list-style: none;
- width: 100%; }
- .medium-block-grid-1 > li:nth-of-type(1n) {
- clear: none; }
- .medium-block-grid-1 > li:nth-of-type(1n+1) {
- clear: both; }
-
- .medium-block-grid-2 > li {
- list-style: none;
- width: 50%; }
- .medium-block-grid-2 > li:nth-of-type(1n) {
- clear: none; }
- .medium-block-grid-2 > li:nth-of-type(2n+1) {
- clear: both; }
-
- .medium-block-grid-3 > li {
- list-style: none;
- width: 33.33333%; }
- .medium-block-grid-3 > li:nth-of-type(1n) {
- clear: none; }
- .medium-block-grid-3 > li:nth-of-type(3n+1) {
- clear: both; }
-
- .medium-block-grid-4 > li {
- list-style: none;
- width: 25%; }
- .medium-block-grid-4 > li:nth-of-type(1n) {
- clear: none; }
- .medium-block-grid-4 > li:nth-of-type(4n+1) {
- clear: both; }
-
- .medium-block-grid-5 > li {
- list-style: none;
- width: 20%; }
- .medium-block-grid-5 > li:nth-of-type(1n) {
- clear: none; }
- .medium-block-grid-5 > li:nth-of-type(5n+1) {
- clear: both; }
-
- .medium-block-grid-6 > li {
- list-style: none;
- width: 16.66667%; }
- .medium-block-grid-6 > li:nth-of-type(1n) {
- clear: none; }
- .medium-block-grid-6 > li:nth-of-type(6n+1) {
- clear: both; }
-
- .medium-block-grid-7 > li {
- list-style: none;
- width: 14.28571%; }
- .medium-block-grid-7 > li:nth-of-type(1n) {
- clear: none; }
- .medium-block-grid-7 > li:nth-of-type(7n+1) {
- clear: both; }
-
- .medium-block-grid-8 > li {
- list-style: none;
- width: 12.5%; }
- .medium-block-grid-8 > li:nth-of-type(1n) {
- clear: none; }
- .medium-block-grid-8 > li:nth-of-type(8n+1) {
- clear: both; }
-
- .medium-block-grid-9 > li {
- list-style: none;
- width: 11.11111%; }
- .medium-block-grid-9 > li:nth-of-type(1n) {
- clear: none; }
- .medium-block-grid-9 > li:nth-of-type(9n+1) {
- clear: both; }
-
- .medium-block-grid-10 > li {
- list-style: none;
- width: 10%; }
- .medium-block-grid-10 > li:nth-of-type(1n) {
- clear: none; }
- .medium-block-grid-10 > li:nth-of-type(10n+1) {
- clear: both; }
-
- .medium-block-grid-11 > li {
- list-style: none;
- width: 9.09091%; }
- .medium-block-grid-11 > li:nth-of-type(1n) {
- clear: none; }
- .medium-block-grid-11 > li:nth-of-type(11n+1) {
- clear: both; }
-
- .medium-block-grid-12 > li {
- list-style: none;
- width: 8.33333%; }
- .medium-block-grid-12 > li:nth-of-type(1n) {
- clear: none; }
- .medium-block-grid-12 > li:nth-of-type(12n+1) {
- clear: both; } }
-@media only screen and (min-width: 64.0625em) {
- .large-block-grid-1 > li {
- list-style: none;
- width: 100%; }
- .large-block-grid-1 > li:nth-of-type(1n) {
- clear: none; }
- .large-block-grid-1 > li:nth-of-type(1n+1) {
- clear: both; }
-
- .large-block-grid-2 > li {
- list-style: none;
- width: 50%; }
- .large-block-grid-2 > li:nth-of-type(1n) {
- clear: none; }
- .large-block-grid-2 > li:nth-of-type(2n+1) {
- clear: both; }
-
- .large-block-grid-3 > li {
- list-style: none;
- width: 33.33333%; }
- .large-block-grid-3 > li:nth-of-type(1n) {
- clear: none; }
- .large-block-grid-3 > li:nth-of-type(3n+1) {
- clear: both; }
-
- .large-block-grid-4 > li {
- list-style: none;
- width: 25%; }
- .large-block-grid-4 > li:nth-of-type(1n) {
- clear: none; }
- .large-block-grid-4 > li:nth-of-type(4n+1) {
- clear: both; }
+ touch-action: manipulation;
+ border-radius: 0; }
+ [data-whatinput='mouse'] .slider-handle {
+ outline: 0; }
+ .slider-handle:hover {
+ background-color: #1583cc; }
+ .slider-handle.is-dragging {
+ -webkit-transition: all 0s linear;
+ transition: all 0s linear; }
+
+.slider.disabled,
+.slider[disabled] {
+ opacity: 0.25;
+ cursor: not-allowed; }
+
+.slider.vertical {
+ display: inline-block;
+ width: 0.5rem;
+ height: 12.5rem;
+ margin: 0 1.25rem;
+ -webkit-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ transform: scale(1, -1); }
+ .slider.vertical .slider-fill {
+ top: 0;
+ width: 0.5rem;
+ max-height: 100%; }
+ .slider.vertical .slider-handle {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ width: 1.4rem;
+ height: 1.4rem;
+ -webkit-transform: translateX(-50%);
+ -ms-transform: translateX(-50%);
+ transform: translateX(-50%); }
- .large-block-grid-5 > li {
- list-style: none;
- width: 20%; }
- .large-block-grid-5 > li:nth-of-type(1n) {
- clear: none; }
- .large-block-grid-5 > li:nth-of-type(5n+1) {
- clear: both; }
+.sticky-container {
+ position: relative; }
- .large-block-grid-6 > li {
- list-style: none;
- width: 16.66667%; }
- .large-block-grid-6 > li:nth-of-type(1n) {
- clear: none; }
- .large-block-grid-6 > li:nth-of-type(6n+1) {
- clear: both; }
+.sticky {
+ position: absolute;
+ z-index: 0;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0); }
- .large-block-grid-7 > li {
- list-style: none;
- width: 14.28571%; }
- .large-block-grid-7 > li:nth-of-type(1n) {
- clear: none; }
- .large-block-grid-7 > li:nth-of-type(7n+1) {
- clear: both; }
+.sticky.is-stuck {
+ position: fixed;
+ z-index: 5; }
+ .sticky.is-stuck.is-at-top {
+ top: 0; }
+ .sticky.is-stuck.is-at-bottom {
+ bottom: 0; }
- .large-block-grid-8 > li {
- list-style: none;
- width: 12.5%; }
- .large-block-grid-8 > li:nth-of-type(1n) {
- clear: none; }
- .large-block-grid-8 > li:nth-of-type(8n+1) {
- clear: both; }
+.sticky.is-anchored {
+ position: absolute;
+ left: auto;
+ right: auto; }
+ .sticky.is-anchored.is-at-bottom {
+ bottom: 0; }
- .large-block-grid-9 > li {
- list-style: none;
- width: 11.11111%; }
- .large-block-grid-9 > li:nth-of-type(1n) {
- clear: none; }
- .large-block-grid-9 > li:nth-of-type(9n+1) {
- clear: both; }
+body.is-reveal-open {
+ overflow: hidden; }
- .large-block-grid-10 > li {
- list-style: none;
- width: 10%; }
- .large-block-grid-10 > li:nth-of-type(1n) {
- clear: none; }
- .large-block-grid-10 > li:nth-of-type(10n+1) {
- clear: both; }
+html.is-reveal-open,
+html.is-reveal-open body {
+ height: 100%;
+ overflow: hidden;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none; }
- .large-block-grid-11 > li {
- list-style: none;
- width: 9.09091%; }
- .large-block-grid-11 > li:nth-of-type(1n) {
- clear: none; }
- .large-block-grid-11 > li:nth-of-type(11n+1) {
- clear: both; }
+.reveal-overlay {
+ display: none;
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ z-index: 1005;
+ background-color: rgba(10, 10, 10, 0.45);
+ overflow-y: scroll; }
- .large-block-grid-12 > li {
- list-style: none;
- width: 8.33333%; }
- .large-block-grid-12 > li:nth-of-type(1n) {
- clear: none; }
- .large-block-grid-12 > li:nth-of-type(12n+1) {
- clear: both; } }
-.flex-video {
- height: 0;
- margin-bottom: 1rem;
- overflow: hidden;
- padding-bottom: 67.5%;
- padding-top: 1.5625rem;
- position: relative; }
- .flex-video.widescreen {
- padding-bottom: 56.34%; }
- .flex-video.vimeo {
- padding-top: 0; }
- .flex-video iframe,
- .flex-video object,
- .flex-video embed,
- .flex-video video {
- height: 100%;
- position: absolute;
+.reveal {
+ display: none;
+ z-index: 1006;
+ padding: 1rem;
+ border: 1px solid #cacaca;
+ background-color: #fefefe;
+ border-radius: 0;
+ position: relative;
+ top: 100px;
+ margin-left: auto;
+ margin-right: auto;
+ overflow-y: auto; }
+ [data-whatinput='mouse'] .reveal {
+ outline: 0; }
+ @media screen and (min-width: 40em) {
+ .reveal {
+ min-height: 0; } }
+ .reveal .column, .reveal .columns,
+ .reveal .columns {
+ min-width: 0; }
+ .reveal > :last-child {
+ margin-bottom: 0; }
+ @media screen and (min-width: 40em) {
+ .reveal {
+ width: 600px;
+ max-width: 75rem; } }
+ @media screen and (min-width: 40em) {
+ .reveal .reveal {
+ left: auto;
+ right: auto;
+ margin: 0 auto; } }
+ .reveal.collapse {
+ padding: 0; }
+ @media screen and (min-width: 40em) {
+ .reveal.tiny {
+ width: 30%;
+ max-width: 75rem; } }
+ @media screen and (min-width: 40em) {
+ .reveal.small {
+ width: 50%;
+ max-width: 75rem; } }
+ @media screen and (min-width: 40em) {
+ .reveal.large {
+ width: 90%;
+ max-width: 75rem; } }
+ .reveal.full {
top: 0;
+ left: 0;
width: 100%;
- left: 0; }
-
-.keystroke,
-kbd {
- background-color: #ededed;
- border-color: #dddddd;
- color: #222222;
- border-style: solid;
- border-width: 1px;
- font-family: "Consolas", "Menlo", "Courier", monospace;
- font-size: inherit;
- margin: 0;
- padding: 0.125rem 0.25rem 0;
- border-radius: 3px; }
+ height: 100%;
+ height: 100vh;
+ min-height: 100vh;
+ max-width: none;
+ margin-left: 0;
+ border: 0;
+ border-radius: 0; }
+ @media screen and (max-width: 39.9375em) {
+ .reveal {
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ height: 100vh;
+ min-height: 100vh;
+ max-width: none;
+ margin-left: 0;
+ border: 0;
+ border-radius: 0; } }
+ .reveal.without-overlay {
+ position: fixed; }
.switch {
- border: none;
- margin-bottom: 1.5rem;
+ margin-bottom: 1rem;
outline: 0;
- padding: 0;
position: relative;
-webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none; }
- .switch label {
- background: #DDDDDD;
- color: transparent;
- cursor: pointer;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ color: #fefefe;
+ font-weight: bold;
+ font-size: 0.875rem; }
+
+.switch-input {
+ opacity: 0;
+ position: absolute; }
+
+.switch-paddle {
+ background: #cacaca;
+ cursor: pointer;
+ display: block;
+ position: relative;
+ width: 4rem;
+ height: 2rem;
+ -webkit-transition: all 0.25s ease-out;
+ transition: all 0.25s ease-out;
+ border-radius: 0;
+ color: inherit;
+ font-weight: inherit; }
+ input + .switch-paddle {
+ margin: 0; }
+ .switch-paddle::after {
+ background: #fefefe;
+ content: '';
display: block;
- margin-bottom: 1rem;
- position: relative;
- text-indent: 100%;
- width: 4rem;
- height: 2rem;
- transition: left 0.15s ease-out; }
- .switch input {
- left: 10px;
- opacity: 0;
- padding: 0;
position: absolute;
- top: 9px; }
- .switch input + label {
- margin-left: 0;
- margin-right: 0; }
- .switch label:after {
- background: #FFFFFF;
- content: "";
- display: block;
height: 1.5rem;
- left: .25rem;
- position: absolute;
- top: .25rem;
+ left: 0.25rem;
+ top: 0.25rem;
width: 1.5rem;
- -webkit-transition: left 0.15s ease-out;
- -moz-transition: left 0.15s ease-out;
- -o-transition: translate3d(0, 0, 0);
- transition: left 0.15s ease-out;
+ -webkit-transition: all 0.25s ease-out;
+ transition: all 0.25s ease-out;
-webkit-transform: translate3d(0, 0, 0);
- -moz-transform: translate3d(0, 0, 0);
- -ms-transform: translate3d(0, 0, 0);
- -o-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0); }
- .switch input:checked + label {
- background: #008CBA; }
- .switch input:checked + label:after {
- left: 2.25rem; }
- .switch label {
- height: 2rem;
- width: 4rem; }
- .switch label:after {
- height: 1.5rem;
- width: 1.5rem; }
- .switch input:checked + label:after {
- left: 2.25rem; }
- .switch label {
- color: transparent;
- background: #DDDDDD; }
- .switch label:after {
- background: #FFFFFF; }
- .switch input:checked + label {
- background: #008CBA; }
- .switch.large label {
- height: 2.5rem;
- width: 5rem; }
- .switch.large label:after {
- height: 2rem;
- width: 2rem; }
- .switch.large input:checked + label:after {
- left: 2.75rem; }
- .switch.small label {
- height: 1.75rem;
- width: 3.5rem; }
- .switch.small label:after {
- height: 1.25rem;
- width: 1.25rem; }
- .switch.small input:checked + label:after {
- left: 2rem; }
- .switch.tiny label {
- height: 1.5rem;
- width: 3rem; }
- .switch.tiny label:after {
- height: 1rem;
- width: 1rem; }
- .switch.tiny input:checked + label:after {
- left: 1.75rem; }
- .switch.radius label {
- border-radius: 4px; }
- .switch.radius label:after {
- border-radius: 3px; }
- .switch.round {
- border-radius: 1000px; }
- .switch.round label {
- border-radius: 2rem; }
- .switch.round label:after {
- border-radius: 2rem; }
-
-/* small displays */
-@media only screen {
- .show-for-small-only, .show-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
- display: inherit !important; }
-
- .hide-for-small-only, .hide-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
- display: none !important; }
-
- .visible-for-small-only, .visible-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
- position: static !important;
- height: auto;
- width: auto;
- overflow: visible;
- clip: auto; }
-
- .hidden-for-small-only, .hidden-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
- clip: rect(1px, 1px, 1px, 1px);
- height: 1px;
- overflow: hidden;
- position: absolute !important;
- width: 1px; }
-
- table.show-for-small-only, table.show-for-small-up, table.show-for-small, table.show-for-small-down, table.hide-for-medium-only, table.hide-for-medium-up, table.hide-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
- display: table !important; }
-
- thead.show-for-small-only, thead.show-for-small-up, thead.show-for-small, thead.show-for-small-down, thead.hide-for-medium-only, thead.hide-for-medium-up, thead.hide-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
- display: table-header-group !important; }
-
- tbody.show-for-small-only, tbody.show-for-small-up, tbody.show-for-small, tbody.show-for-small-down, tbody.hide-for-medium-only, tbody.hide-for-medium-up, tbody.hide-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
- display: table-row-group !important; }
-
- tr.show-for-small-only, tr.show-for-small-up, tr.show-for-small, tr.show-for-small-down, tr.hide-for-medium-only, tr.hide-for-medium-up, tr.hide-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
- display: table-row; }
-
- th.show-for-small-only, td.show-for-small-only, th.show-for-small-up, td.show-for-small-up, th.show-for-small, td.show-for-small, th.show-for-small-down, td.show-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.hide-for-medium-up, td.hide-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
- display: table-cell !important; } }
-/* medium displays */
-@media only screen and (min-width: 40.0625em) {
- .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
- display: inherit !important; }
-
- .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
- display: none !important; }
-
- .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
- position: static !important;
- height: auto;
- width: auto;
- overflow: visible;
- clip: auto; }
-
- .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
- clip: rect(1px, 1px, 1px, 1px);
- height: 1px;
- overflow: hidden;
- position: absolute !important;
- width: 1px; }
-
- table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.show-for-medium-only, table.show-for-medium-up, table.show-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
- display: table !important; }
-
- thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.show-for-medium-only, thead.show-for-medium-up, thead.show-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
- display: table-header-group !important; }
-
- tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.show-for-medium-only, tbody.show-for-medium-up, tbody.show-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
- display: table-row-group !important; }
-
- tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.show-for-medium-only, tr.show-for-medium-up, tr.show-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
- display: table-row; }
-
- th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.show-for-medium-only, td.show-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.show-for-medium, td.show-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
- display: table-cell !important; } }
-/* large displays */
-@media only screen and (min-width: 64.0625em) {
- .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
- display: inherit !important; }
-
- .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
- display: none !important; }
-
- .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
- position: static !important;
- height: auto;
- width: auto;
- overflow: visible;
- clip: auto; }
-
- .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
- clip: rect(1px, 1px, 1px, 1px);
- height: 1px;
- overflow: hidden;
- position: absolute !important;
- width: 1px; }
-
- table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.show-for-large-only, table.show-for-large-up, table.show-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
- display: table !important; }
-
- thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.show-for-large-only, thead.show-for-large-up, thead.show-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
- display: table-header-group !important; }
-
- tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.show-for-large-only, tbody.show-for-large-up, tbody.show-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
- display: table-row-group !important; }
+ transform: translate3d(0, 0, 0);
+ border-radius: 0; }
+ input:checked ~ .switch-paddle {
+ background: #2199e8; }
+ input:checked ~ .switch-paddle::after {
+ left: 2.25rem; }
+ [data-whatinput='mouse'] input:focus ~ .switch-paddle {
+ outline: 0; }
+
+.switch-active, .switch-inactive {
+ position: absolute;
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateY(-50%); }
- tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.show-for-large-only, tr.show-for-large-up, tr.show-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
- display: table-row; }
+.switch-active {
+ left: 8%;
+ display: none; }
+ input:checked + label > .switch-active {
+ display: block; }
- th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.show-for-large-only, td.show-for-large-only, th.show-for-large-up, td.show-for-large-up, th.show-for-large, td.show-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
- display: table-cell !important; } }
-/* xlarge displays */
-@media only screen and (min-width: 90.0625em) {
- .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
- display: inherit !important; }
+.switch-inactive {
+ right: 15%; }
+ input:checked + label > .switch-inactive {
+ display: none; }
- .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
- display: none !important; }
+.switch.tiny .switch-paddle {
+ width: 3rem;
+ height: 1.5rem;
+ font-size: 0.625rem; }
- .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
- position: static !important;
- height: auto;
- width: auto;
- overflow: visible;
- clip: auto; }
-
- .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
- clip: rect(1px, 1px, 1px, 1px);
- height: 1px;
- overflow: hidden;
- position: absolute !important;
- width: 1px; }
-
- table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.show-for-xlarge-only, table.show-for-xlarge-up, table.show-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
- display: table !important; }
+.switch.tiny .switch-paddle::after {
+ width: 1rem;
+ height: 1rem; }
- thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.show-for-xlarge-only, thead.show-for-xlarge-up, thead.show-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
- display: table-header-group !important; }
+.switch.tiny input:checked ~ .switch-paddle::after {
+ left: 1.75rem; }
- tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.show-for-xlarge-only, tbody.show-for-xlarge-up, tbody.show-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
- display: table-row-group !important; }
+.switch.small .switch-paddle {
+ width: 3.5rem;
+ height: 1.75rem;
+ font-size: 0.75rem; }
- tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.show-for-xlarge-only, tr.show-for-xlarge-up, tr.show-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
- display: table-row; }
+.switch.small .switch-paddle::after {
+ width: 1.25rem;
+ height: 1.25rem; }
- th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.show-for-xlarge-only, td.show-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.show-for-xlarge, td.show-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
- display: table-cell !important; } }
-/* xxlarge displays */
-@media only screen and (min-width: 120.0625em) {
- .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .hide-for-xlarge-only, .show-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .show-for-xxlarge-down {
- display: inherit !important; }
+.switch.small input:checked ~ .switch-paddle::after {
+ left: 2rem; }
- .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .show-for-xlarge-only, .hide-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .hide-for-xxlarge-down {
- display: none !important; }
+.switch.large .switch-paddle {
+ width: 5rem;
+ height: 2.5rem;
+ font-size: 1rem; }
- .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .hidden-for-xlarge-only, .visible-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .visible-for-xxlarge-down {
- position: static !important;
- height: auto;
- width: auto;
- overflow: visible;
- clip: auto; }
-
- .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .visible-for-xlarge-only, .hidden-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .hidden-for-xxlarge-down {
- clip: rect(1px, 1px, 1px, 1px);
- height: 1px;
- overflow: hidden;
- position: absolute !important;
- width: 1px; }
-
- table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.hide-for-xlarge-only, table.show-for-xlarge-up, table.hide-for-xlarge, table.hide-for-xlarge-down, table.show-for-xxlarge-only, table.show-for-xxlarge-up, table.show-for-xxlarge, table.show-for-xxlarge-down {
- display: table !important; }
+.switch.large .switch-paddle::after {
+ width: 2rem;
+ height: 2rem; }
- thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.hide-for-xlarge-only, thead.show-for-xlarge-up, thead.hide-for-xlarge, thead.hide-for-xlarge-down, thead.show-for-xxlarge-only, thead.show-for-xxlarge-up, thead.show-for-xxlarge, thead.show-for-xxlarge-down {
- display: table-header-group !important; }
+.switch.large input:checked ~ .switch-paddle::after {
+ left: 2.75rem; }
- tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.hide-for-xlarge-only, tbody.show-for-xlarge-up, tbody.hide-for-xlarge, tbody.hide-for-xlarge-down, tbody.show-for-xxlarge-only, tbody.show-for-xxlarge-up, tbody.show-for-xxlarge, tbody.show-for-xxlarge-down {
- display: table-row-group !important; }
+table {
+ width: 100%;
+ margin-bottom: 1rem;
+ border-radius: 0; }
+ table thead,
+ table tbody,
+ table tfoot {
+ border: 1px solid #f1f1f1;
+ background-color: #fefefe; }
+ table caption {
+ font-weight: bold;
+ padding: 0.5rem 0.625rem 0.625rem; }
+ table thead,
+ table tfoot {
+ background: #f8f8f8;
+ color: #0a0a0a; }
+ table thead tr,
+ table tfoot tr {
+ background: transparent; }
+ table thead th,
+ table thead td,
+ table tfoot th,
+ table tfoot td {
+ padding: 0.5rem 0.625rem 0.625rem;
+ font-weight: bold;
+ text-align: left; }
+ table tbody tr:nth-child(even) {
+ background-color: #f1f1f1; }
+ table tbody th,
+ table tbody td {
+ padding: 0.5rem 0.625rem 0.625rem; }
+
+@media screen and (max-width: 63.9375em) {
+ table.stack thead {
+ display: none; }
+ table.stack tfoot {
+ display: none; }
+ table.stack tr,
+ table.stack th,
+ table.stack td {
+ display: block; }
+ table.stack td {
+ border-top: 0; } }
- tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.hide-for-xlarge-only, tr.show-for-xlarge-up, tr.hide-for-xlarge, tr.hide-for-xlarge-down, tr.show-for-xxlarge-only, tr.show-for-xxlarge-up, tr.show-for-xxlarge, tr.show-for-xxlarge-down {
- display: table-row; }
+table.scroll {
+ display: block;
+ width: 100%;
+ overflow-x: auto; }
- th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.hide-for-xlarge-down, td.hide-for-xlarge-down, th.show-for-xxlarge-only, td.show-for-xxlarge-only, th.show-for-xxlarge-up, td.show-for-xxlarge-up, th.show-for-xxlarge, td.show-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
- display: table-cell !important; } }
-/* Orientation targeting */
-.show-for-landscape,
-.hide-for-portrait {
- display: inherit !important; }
+table.hover tr:hover {
+ background-color: #f9f9f9; }
-.hide-for-landscape,
-.show-for-portrait {
- display: none !important; }
+table.hover tr:nth-of-type(even):hover {
+ background-color: #ececec; }
-/* Specific visibility for tables */
-table.hide-for-landscape, table.show-for-portrait {
- display: table !important; }
+.table-scroll {
+ overflow-x: auto; }
+ .table-scroll table {
+ width: auto; }
-thead.hide-for-landscape, thead.show-for-portrait {
- display: table-header-group !important; }
+.tabs {
+ margin: 0;
+ list-style-type: none;
+ background: #fefefe;
+ border: 1px solid #e6e6e6; }
+ .tabs::before, .tabs::after {
+ content: ' ';
+ display: table; }
+ .tabs::after {
+ clear: both; }
-tbody.hide-for-landscape, tbody.show-for-portrait {
- display: table-row-group !important; }
+.tabs.vertical > li {
+ width: auto;
+ float: none;
+ display: block; }
-tr.hide-for-landscape, tr.show-for-portrait {
- display: table-row !important; }
+.tabs.simple > li > a {
+ padding: 0; }
+ .tabs.simple > li > a:hover {
+ background: transparent; }
-td.hide-for-landscape, td.show-for-portrait,
-th.hide-for-landscape,
-th.show-for-portrait {
- display: table-cell !important; }
+.tabs.primary {
+ background: #2199e8; }
+ .tabs.primary > li > a {
+ color: #fefefe; }
+ .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
+ background: #1893e4; }
-@media only screen and (orientation: landscape) {
- .show-for-landscape,
- .hide-for-portrait {
- display: inherit !important; }
+.tabs-title {
+ float: left; }
+ .tabs-title > a {
+ display: block;
+ padding: 1.25rem 1.5rem;
+ line-height: 1;
+ font-size: 0.75rem; }
+ .tabs-title > a:hover {
+ background: #fefefe; }
+ .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {
+ background: #e6e6e6; }
- .hide-for-landscape,
- .show-for-portrait {
- display: none !important; }
+.tabs-content {
+ background: #fefefe;
+ -webkit-transition: all 0.5s ease;
+ transition: all 0.5s ease;
+ border: 1px solid #e6e6e6;
+ border-top: 0; }
- /* Specific visibility for tables */
- table.show-for-landscape, table.hide-for-portrait {
- display: table !important; }
+.tabs-content.vertical {
+ border: 1px solid #e6e6e6;
+ border-left: 0; }
- thead.show-for-landscape, thead.hide-for-portrait {
- display: table-header-group !important; }
+.tabs-panel {
+ display: none;
+ padding: 1rem; }
+ .tabs-panel.is-active {
+ display: block; }
- tbody.show-for-landscape, tbody.hide-for-portrait {
- display: table-row-group !important; }
+.thumbnail {
+ border: solid 4px #fefefe;
+ -webkit-box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);
+ box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);
+ display: inline-block;
+ line-height: 0;
+ max-width: 100%;
+ -webkit-transition: -webkit-box-shadow 200ms ease-out;
+ transition: box-shadow 200ms ease-out;
+ border-radius: 0;
+ margin-bottom: 1rem; }
+ .thumbnail:hover, .thumbnail:focus {
+ -webkit-box-shadow: 0 0 6px 1px rgba(33, 153, 232, 0.5);
+ box-shadow: 0 0 6px 1px rgba(33, 153, 232, 0.5); }
+
+.title-bar {
+ background: #0a0a0a;
+ color: #fefefe;
+ padding: 0.5rem; }
+ .title-bar::before, .title-bar::after {
+ content: ' ';
+ display: table; }
+ .title-bar::after {
+ clear: both; }
+ .title-bar .menu-icon {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
- tr.show-for-landscape, tr.hide-for-portrait {
- display: table-row !important; }
+.title-bar-left {
+ float: left; }
- td.show-for-landscape, td.hide-for-portrait,
- th.show-for-landscape,
- th.hide-for-portrait {
- display: table-cell !important; } }
-@media only screen and (orientation: portrait) {
- .show-for-portrait,
- .hide-for-landscape {
- display: inherit !important; }
-
- .hide-for-portrait,
- .show-for-landscape {
- display: none !important; }
+.title-bar-right {
+ float: right;
+ text-align: right; }
- /* Specific visibility for tables */
- table.show-for-portrait, table.hide-for-landscape {
- display: table !important; }
+.title-bar-title {
+ font-weight: bold;
+ vertical-align: middle;
+ display: inline-block; }
- thead.show-for-portrait, thead.hide-for-landscape {
- display: table-header-group !important; }
+.menu-icon.dark {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ cursor: pointer;
+ width: 20px;
+ height: 16px; }
+ .menu-icon.dark::after {
+ content: '';
+ position: absolute;
+ display: block;
+ width: 100%;
+ height: 2px;
+ background: #0a0a0a;
+ top: 0;
+ left: 0;
+ -webkit-box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
+ box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a; }
+ .menu-icon.dark:hover::after {
+ background: #8a8a8a;
+ -webkit-box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a;
+ box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }
- tbody.show-for-portrait, tbody.hide-for-landscape {
- display: table-row-group !important; }
+.has-tip {
+ border-bottom: dotted 1px #8a8a8a;
+ font-weight: bold;
+ position: relative;
+ display: inline-block;
+ cursor: help; }
- tr.show-for-portrait, tr.hide-for-landscape {
- display: table-row !important; }
+.tooltip {
+ background-color: #0a0a0a;
+ color: #fefefe;
+ font-size: 80%;
+ padding: 0.75rem;
+ position: absolute;
+ z-index: 10;
+ top: calc(100% + 0.6495rem);
+ max-width: 10rem !important;
+ border-radius: 0; }
+ .tooltip::before {
+ content: '';
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 0.75rem;
+ border-color: transparent transparent #0a0a0a;
+ border-bottom-style: solid;
+ border-top-width: 0;
+ bottom: 100%;
+ position: absolute;
+ left: 50%;
+ -webkit-transform: translateX(-50%);
+ -ms-transform: translateX(-50%);
+ transform: translateX(-50%); }
+ .tooltip.top::before {
+ content: '';
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 0.75rem;
+ border-color: #0a0a0a transparent transparent;
+ border-top-style: solid;
+ border-bottom-width: 0;
+ top: 100%;
+ bottom: auto; }
+ .tooltip.left::before {
+ content: '';
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 0.75rem;
+ border-color: transparent transparent transparent #0a0a0a;
+ border-left-style: solid;
+ border-right-width: 0;
+ bottom: auto;
+ left: 100%;
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateY(-50%); }
+ .tooltip.right::before {
+ content: '';
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 0.75rem;
+ border-color: transparent #0a0a0a transparent transparent;
+ border-right-style: solid;
+ border-left-width: 0;
+ bottom: auto;
+ left: auto;
+ right: 100%;
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateY(-50%); }
- td.show-for-portrait, td.hide-for-landscape,
- th.show-for-portrait,
- th.hide-for-landscape {
- display: table-cell !important; } }
-/* Touch-enabled device targeting */
-.show-for-touch {
- display: none !important; }
+.top-bar {
+ padding: 0.5rem; }
+ .top-bar::before, .top-bar::after {
+ content: ' ';
+ display: table; }
+ .top-bar::after {
+ clear: both; }
+ .top-bar,
+ .top-bar ul {
+ background-color: #e6e6e6; }
+ .top-bar input {
+ max-width: 200px;
+ margin-right: 1rem; }
+ .top-bar .input-group-field {
+ width: 100%;
+ margin-right: 0; }
+ .top-bar input.button {
+ width: auto; }
+ .top-bar .top-bar-left,
+ .top-bar .top-bar-right {
+ width: 100%; }
+ @media screen and (min-width: 40em) {
+ .top-bar .top-bar-left,
+ .top-bar .top-bar-right {
+ width: auto; } }
+ @media screen and (max-width: 63.9375em) {
+ .top-bar.stacked-for-medium .top-bar-left,
+ .top-bar.stacked-for-medium .top-bar-right {
+ width: 100%; } }
+ @media screen and (max-width: 74.9375em) {
+ .top-bar.stacked-for-large .top-bar-left,
+ .top-bar.stacked-for-large .top-bar-right {
+ width: 100%; } }
+
+.top-bar-title {
+ float: left;
+ margin-right: 1rem; }
-.hide-for-touch {
- display: inherit !important; }
+.top-bar-left {
+ float: left; }
-.touch .show-for-touch {
- display: inherit !important; }
+.top-bar-right {
+ float: right; }
-.touch .hide-for-touch {
+.hide {
display: none !important; }
-/* Specific visibility for tables */
-table.hide-for-touch {
- display: table !important; }
-
-.touch table.show-for-touch {
- display: table !important; }
-
-thead.hide-for-touch {
- display: table-header-group !important; }
+.invisible {
+ visibility: hidden; }
-.touch thead.show-for-touch {
- display: table-header-group !important; }
+@media screen and (max-width: 39.9375em) {
+ .hide-for-small-only {
+ display: none !important; } }
-tbody.hide-for-touch {
- display: table-row-group !important; }
+@media screen and (max-width: 0em), screen and (min-width: 40em) {
+ .show-for-small-only {
+ display: none !important; } }
-.touch tbody.show-for-touch {
- display: table-row-group !important; }
+@media screen and (min-width: 40em) {
+ .hide-for-medium {
+ display: none !important; } }
-tr.hide-for-touch {
- display: table-row !important; }
+@media screen and (max-width: 39.9375em) {
+ .show-for-medium {
+ display: none !important; } }
-.touch tr.show-for-touch {
- display: table-row !important; }
+@media screen and (min-width: 40em) and (max-width: 63.9375em) {
+ .hide-for-medium-only {
+ display: none !important; } }
-td.hide-for-touch {
- display: table-cell !important; }
+@media screen and (max-width: 39.9375em), screen and (min-width: 64em) {
+ .show-for-medium-only {
+ display: none !important; } }
-.touch td.show-for-touch {
- display: table-cell !important; }
+@media screen and (min-width: 64em) {
+ .hide-for-large {
+ display: none !important; } }
-th.hide-for-touch {
- display: table-cell !important; }
+@media screen and (max-width: 63.9375em) {
+ .show-for-large {
+ display: none !important; } }
-.touch th.show-for-touch {
- display: table-cell !important; }
+@media screen and (min-width: 64em) and (max-width: 74.9375em) {
+ .hide-for-large-only {
+ display: none !important; } }
-/* Screen reader-specific classes */
-.show-for-sr {
- clip: rect(1px, 1px, 1px, 1px);
- height: 1px;
- overflow: hidden;
- position: absolute !important;
- width: 1px; }
+@media screen and (max-width: 63.9375em), screen and (min-width: 75em) {
+ .show-for-large-only {
+ display: none !important; } }
+.show-for-sr,
.show-on-focus {
- clip: rect(1px, 1px, 1px, 1px);
+ position: absolute !important;
+ width: 1px;
height: 1px;
overflow: hidden;
- position: absolute !important;
- width: 1px; }
- .show-on-focus:focus, .show-on-focus:active {
- position: static !important;
- height: auto;
- width: auto;
- overflow: visible;
- clip: auto; }
-
-/*
- * Print styles.
- *
- * Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/
- * Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com)
-*/
-.print-only {
- display: none !important; }
-
-@media print {
- * {
- background: transparent !important;
- box-shadow: none !important;
- color: #000000 !important;
- /* Black prints faster: h5bp.com/s */
- text-shadow: none !important; }
-
- .show-for-print {
- display: block; }
-
- .hide-for-print {
- display: none; }
-
- table.show-for-print {
- display: table !important; }
-
- thead.show-for-print {
- display: table-header-group !important; }
-
- tbody.show-for-print {
- display: table-row-group !important; }
-
- tr.show-for-print {
- display: table-row !important; }
-
- td.show-for-print {
- display: table-cell !important; }
-
- th.show-for-print {
- display: table-cell !important; }
-
- a,
- a:visited {
- text-decoration: underline; }
+ clip: rect(0, 0, 0, 0); }
- a[href]:after {
- content: " (" attr(href) ")"; }
-
- abbr[title]:after {
- content: " (" attr(title) ")"; }
-
- .ir a:after,
- a[href^="javascript:"]:after,
- a[href^="#"]:after {
- content: ""; }
-
- pre,
- blockquote {
- border: 1px solid #999999;
- page-break-inside: avoid; }
-
- thead {
- display: table-header-group;
- /* h5bp.com/t */ }
-
- tr,
- img {
- page-break-inside: avoid; }
-
- img {
- max-width: 100% !important; }
-
- @page {
- margin: .5cm; }
- p,
- h2,
- h3 {
- orphans: 3;
- widows: 3; }
-
- h2,
- h3 {
- page-break-after: avoid; }
-
- .hide-on-print {
- display: none !important; }
-
- .print-only {
- display: block !important; }
-
- .hide-for-print {
- display: none !important; }
-
- .show-for-print {
- display: inherit !important; } }
-/* Print visibility */
-@media print {
- .show-for-print {
- display: block; }
+.show-on-focus:active, .show-on-focus:focus {
+ position: static !important;
+ height: auto;
+ width: auto;
+ overflow: visible;
+ clip: auto; }
- .hide-for-print {
- display: none; }
+.show-for-landscape,
+.hide-for-portrait {
+ display: block !important; }
+ @media screen and (orientation: landscape) {
+ .show-for-landscape,
+ .hide-for-portrait {
+ display: block !important; } }
+ @media screen and (orientation: portrait) {
+ .show-for-landscape,
+ .hide-for-portrait {
+ display: none !important; } }
- table.show-for-print {
- display: table !important; }
+.hide-for-landscape,
+.show-for-portrait {
+ display: none !important; }
+ @media screen and (orientation: landscape) {
+ .hide-for-landscape,
+ .show-for-portrait {
+ display: none !important; } }
+ @media screen and (orientation: portrait) {
+ .hide-for-landscape,
+ .show-for-portrait {
+ display: block !important; } }
+
+.float-left {
+ float: left !important; }
- thead.show-for-print {
- display: table-header-group !important; }
+.float-right {
+ float: right !important; }
- tbody.show-for-print {
- display: table-row-group !important; }
+.float-center {
+ display: block;
+ margin-left: auto;
+ margin-right: auto; }
- tr.show-for-print {
- display: table-row !important; }
+.clearfix::before, .clearfix::after {
+ content: ' ';
+ display: table; }
- td.show-for-print {
- display: table-cell !important; }
+.clearfix::after {
+ clear: both; }
- th.show-for-print {
- display: table-cell !important; } }
-@media not print {
- .show-for-print {
- display: none !important; } }
+/*# sourceMappingURL=foundation.css.map */
diff --git a/library/foundation/css/foundation.min.css b/library/foundation/css/foundation.min.css
index dc4928644..81418ac00 100644
--- a/library/foundation/css/foundation.min.css
+++ b/library/foundation/css/foundation.min.css
@@ -1 +1,2 @@
-meta.foundation-version{font-family:"/5.5.2/"}meta.foundation-mq-small{font-family:"/only screen/";width:0}meta.foundation-mq-small-only{font-family:"/only screen and (max-width: 40em)/";width:0}meta.foundation-mq-medium{font-family:"/only screen and (min-width:40.0625em)/";width:40.0625em}meta.foundation-mq-medium-only{font-family:"/only screen and (min-width:40.0625em) and (max-width:64em)/";width:40.0625em}meta.foundation-mq-large{font-family:"/only screen and (min-width:64.0625em)/";width:64.0625em}meta.foundation-mq-large-only{font-family:"/only screen and (min-width:64.0625em) and (max-width:90em)/";width:64.0625em}meta.foundation-mq-xlarge{font-family:"/only screen and (min-width:90.0625em)/";width:90.0625em}meta.foundation-mq-xlarge-only{font-family:"/only screen and (min-width:90.0625em) and (max-width:120em)/";width:90.0625em}meta.foundation-mq-xxlarge{font-family:"/only screen and (min-width:120.0625em)/";width:120.0625em}meta.foundation-data-attribute-namespace{font-family:false}html,body{height:100%}html{box-sizing:border-box}*,*:before,*:after{-webkit-box-sizing:inherit;-moz-box-sizing:inherit;box-sizing:inherit}html,body{font-size:100%}body{background:#fff;color:#222;cursor:auto;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:normal;line-height:1.5;margin:0;padding:0;position:relative}a:hover{cursor:pointer}img{max-width:100%;height:auto}img{-ms-interpolation-mode:bicubic}#map_canvas img,#map_canvas embed,#map_canvas object,.map_canvas img,.map_canvas embed,.map_canvas object,.mqa-display img,.mqa-display embed,.mqa-display object{max-width:none !important}.left{float:left !important}.right{float:right !important}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.hide{display:none}.invisible{visibility:hidden}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle}textarea{height:auto;min-height:50px}select{width:100%}.row{margin:0 auto;max-width:62.5rem;width:100%}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.row.collapse>.column,.row.collapse>.columns{padding-left:0;padding-right:0}.row.collapse .row{margin-left:0;margin-right:0}.row .row{margin:0 -0.9375rem;max-width:none;width:auto}.row .row:before,.row .row:after{content:" ";display:table}.row .row:after{clear:both}.row .row.collapse{margin:0;max-width:none;width:auto}.row .row.collapse:before,.row .row.collapse:after{content:" ";display:table}.row .row.collapse:after{clear:both}.column,.columns{padding-left:0.9375rem;padding-right:0.9375rem;width:100%;float:left}.column+.column:last-child,.columns+.column:last-child,.column+.columns:last-child,.columns+.columns:last-child{float:right}.column+.column.end,.columns+.column.end,.column+.columns.end,.columns+.columns.end{float:left}@media only screen{.small-push-0{position:relative;left:0;right:auto}.small-pull-0{position:relative;right:0;left:auto}.small-push-1{position:relative;left:8.33333%;right:auto}.small-pull-1{position:relative;right:8.33333%;left:auto}.small-push-2{position:relative;left:16.66667%;right:auto}.small-pull-2{position:relative;right:16.66667%;left:auto}.small-push-3{position:relative;left:25%;right:auto}.small-pull-3{position:relative;right:25%;left:auto}.small-push-4{position:relative;left:33.33333%;right:auto}.small-pull-4{position:relative;right:33.33333%;left:auto}.small-push-5{position:relative;left:41.66667%;right:auto}.small-pull-5{position:relative;right:41.66667%;left:auto}.small-push-6{position:relative;left:50%;right:auto}.small-pull-6{position:relative;right:50%;left:auto}.small-push-7{position:relative;left:58.33333%;right:auto}.small-pull-7{position:relative;right:58.33333%;left:auto}.small-push-8{position:relative;left:66.66667%;right:auto}.small-pull-8{position:relative;right:66.66667%;left:auto}.small-push-9{position:relative;left:75%;right:auto}.small-pull-9{position:relative;right:75%;left:auto}.small-push-10{position:relative;left:83.33333%;right:auto}.small-pull-10{position:relative;right:83.33333%;left:auto}.small-push-11{position:relative;left:91.66667%;right:auto}.small-pull-11{position:relative;right:91.66667%;left:auto}.column,.columns{position:relative;padding-left:0.9375rem;padding-right:0.9375rem;float:left}.small-1{width:8.33333%}.small-2{width:16.66667%}.small-3{width:25%}.small-4{width:33.33333%}.small-5{width:41.66667%}.small-6{width:50%}.small-7{width:58.33333%}.small-8{width:66.66667%}.small-9{width:75%}.small-10{width:83.33333%}.small-11{width:91.66667%}.small-12{width:100%}.small-offset-0{margin-left:0 !important}.small-offset-1{margin-left:8.33333% !important}.small-offset-2{margin-left:16.66667% !important}.small-offset-3{margin-left:25% !important}.small-offset-4{margin-left:33.33333% !important}.small-offset-5{margin-left:41.66667% !important}.small-offset-6{margin-left:50% !important}.small-offset-7{margin-left:58.33333% !important}.small-offset-8{margin-left:66.66667% !important}.small-offset-9{margin-left:75% !important}.small-offset-10{margin-left:83.33333% !important}.small-offset-11{margin-left:91.66667% !important}.small-reset-order{float:left;left:auto;margin-left:0;margin-right:0;right:auto}.column.small-centered,.columns.small-centered{margin-left:auto;margin-right:auto;float:none}.column.small-uncentered,.columns.small-uncentered{float:left;margin-left:0;margin-right:0}.column.small-centered:last-child,.columns.small-centered:last-child{float:none}.column.small-uncentered:last-child,.columns.small-uncentered:last-child{float:left}.column.small-uncentered.opposite,.columns.small-uncentered.opposite{float:right}.row.small-collapse>.column,.row.small-collapse>.columns{padding-left:0;padding-right:0}.row.small-collapse .row{margin-left:0;margin-right:0}.row.small-uncollapse>.column,.row.small-uncollapse>.columns{padding-left:0.9375rem;padding-right:0.9375rem;float:left}}@media only screen and (min-width: 40.0625em){.medium-push-0{position:relative;left:0;right:auto}.medium-pull-0{position:relative;right:0;left:auto}.medium-push-1{position:relative;left:8.33333%;right:auto}.medium-pull-1{position:relative;right:8.33333%;left:auto}.medium-push-2{position:relative;left:16.66667%;right:auto}.medium-pull-2{position:relative;right:16.66667%;left:auto}.medium-push-3{position:relative;left:25%;right:auto}.medium-pull-3{position:relative;right:25%;left:auto}.medium-push-4{position:relative;left:33.33333%;right:auto}.medium-pull-4{position:relative;right:33.33333%;left:auto}.medium-push-5{position:relative;left:41.66667%;right:auto}.medium-pull-5{position:relative;right:41.66667%;left:auto}.medium-push-6{position:relative;left:50%;right:auto}.medium-pull-6{position:relative;right:50%;left:auto}.medium-push-7{position:relative;left:58.33333%;right:auto}.medium-pull-7{position:relative;right:58.33333%;left:auto}.medium-push-8{position:relative;left:66.66667%;right:auto}.medium-pull-8{position:relative;right:66.66667%;left:auto}.medium-push-9{position:relative;left:75%;right:auto}.medium-pull-9{position:relative;right:75%;left:auto}.medium-push-10{position:relative;left:83.33333%;right:auto}.medium-pull-10{position:relative;right:83.33333%;left:auto}.medium-push-11{position:relative;left:91.66667%;right:auto}.medium-pull-11{position:relative;right:91.66667%;left:auto}.column,.columns{position:relative;padding-left:0.9375rem;padding-right:0.9375rem;float:left}.medium-1{width:8.33333%}.medium-2{width:16.66667%}.medium-3{width:25%}.medium-4{width:33.33333%}.medium-5{width:41.66667%}.medium-6{width:50%}.medium-7{width:58.33333%}.medium-8{width:66.66667%}.medium-9{width:75%}.medium-10{width:83.33333%}.medium-11{width:91.66667%}.medium-12{width:100%}.medium-offset-0{margin-left:0 !important}.medium-offset-1{margin-left:8.33333% !important}.medium-offset-2{margin-left:16.66667% !important}.medium-offset-3{margin-left:25% !important}.medium-offset-4{margin-left:33.33333% !important}.medium-offset-5{margin-left:41.66667% !important}.medium-offset-6{margin-left:50% !important}.medium-offset-7{margin-left:58.33333% !important}.medium-offset-8{margin-left:66.66667% !important}.medium-offset-9{margin-left:75% !important}.medium-offset-10{margin-left:83.33333% !important}.medium-offset-11{margin-left:91.66667% !important}.medium-reset-order{float:left;left:auto;margin-left:0;margin-right:0;right:auto}.column.medium-centered,.columns.medium-centered{margin-left:auto;margin-right:auto;float:none}.column.medium-uncentered,.columns.medium-uncentered{float:left;margin-left:0;margin-right:0}.column.medium-centered:last-child,.columns.medium-centered:last-child{float:none}.column.medium-uncentered:last-child,.columns.medium-uncentered:last-child{float:left}.column.medium-uncentered.opposite,.columns.medium-uncentered.opposite{float:right}.row.medium-collapse>.column,.row.medium-collapse>.columns{padding-left:0;padding-right:0}.row.medium-collapse .row{margin-left:0;margin-right:0}.row.medium-uncollapse>.column,.row.medium-uncollapse>.columns{padding-left:0.9375rem;padding-right:0.9375rem;float:left}.push-0{position:relative;left:0;right:auto}.pull-0{position:relative;right:0;left:auto}.push-1{position:relative;left:8.33333%;right:auto}.pull-1{position:relative;right:8.33333%;left:auto}.push-2{position:relative;left:16.66667%;right:auto}.pull-2{position:relative;right:16.66667%;left:auto}.push-3{position:relative;left:25%;right:auto}.pull-3{position:relative;right:25%;left:auto}.push-4{position:relative;left:33.33333%;right:auto}.pull-4{position:relative;right:33.33333%;left:auto}.push-5{position:relative;left:41.66667%;right:auto}.pull-5{position:relative;right:41.66667%;left:auto}.push-6{position:relative;left:50%;right:auto}.pull-6{position:relative;right:50%;left:auto}.push-7{position:relative;left:58.33333%;right:auto}.pull-7{position:relative;right:58.33333%;left:auto}.push-8{position:relative;left:66.66667%;right:auto}.pull-8{position:relative;right:66.66667%;left:auto}.push-9{position:relative;left:75%;right:auto}.pull-9{position:relative;right:75%;left:auto}.push-10{position:relative;left:83.33333%;right:auto}.pull-10{position:relative;right:83.33333%;left:auto}.push-11{position:relative;left:91.66667%;right:auto}.pull-11{position:relative;right:91.66667%;left:auto}}@media only screen and (min-width: 64.0625em){.large-push-0{position:relative;left:0;right:auto}.large-pull-0{position:relative;right:0;left:auto}.large-push-1{position:relative;left:8.33333%;right:auto}.large-pull-1{position:relative;right:8.33333%;left:auto}.large-push-2{position:relative;left:16.66667%;right:auto}.large-pull-2{position:relative;right:16.66667%;left:auto}.large-push-3{position:relative;left:25%;right:auto}.large-pull-3{position:relative;right:25%;left:auto}.large-push-4{position:relative;left:33.33333%;right:auto}.large-pull-4{position:relative;right:33.33333%;left:auto}.large-push-5{position:relative;left:41.66667%;right:auto}.large-pull-5{position:relative;right:41.66667%;left:auto}.large-push-6{position:relative;left:50%;right:auto}.large-pull-6{position:relative;right:50%;left:auto}.large-push-7{position:relative;left:58.33333%;right:auto}.large-pull-7{position:relative;right:58.33333%;left:auto}.large-push-8{position:relative;left:66.66667%;right:auto}.large-pull-8{position:relative;right:66.66667%;left:auto}.large-push-9{position:relative;left:75%;right:auto}.large-pull-9{position:relative;right:75%;left:auto}.large-push-10{position:relative;left:83.33333%;right:auto}.large-pull-10{position:relative;right:83.33333%;left:auto}.large-push-11{position:relative;left:91.66667%;right:auto}.large-pull-11{position:relative;right:91.66667%;left:auto}.column,.columns{position:relative;padding-left:0.9375rem;padding-right:0.9375rem;float:left}.large-1{width:8.33333%}.large-2{width:16.66667%}.large-3{width:25%}.large-4{width:33.33333%}.large-5{width:41.66667%}.large-6{width:50%}.large-7{width:58.33333%}.large-8{width:66.66667%}.large-9{width:75%}.large-10{width:83.33333%}.large-11{width:91.66667%}.large-12{width:100%}.large-offset-0{margin-left:0 !important}.large-offset-1{margin-left:8.33333% !important}.large-offset-2{margin-left:16.66667% !important}.large-offset-3{margin-left:25% !important}.large-offset-4{margin-left:33.33333% !important}.large-offset-5{margin-left:41.66667% !important}.large-offset-6{margin-left:50% !important}.large-offset-7{margin-left:58.33333% !important}.large-offset-8{margin-left:66.66667% !important}.large-offset-9{margin-left:75% !important}.large-offset-10{margin-left:83.33333% !important}.large-offset-11{margin-left:91.66667% !important}.large-reset-order{float:left;left:auto;margin-left:0;margin-right:0;right:auto}.column.large-centered,.columns.large-centered{margin-left:auto;margin-right:auto;float:none}.column.large-uncentered,.columns.large-uncentered{float:left;margin-left:0;margin-right:0}.column.large-centered:last-child,.columns.large-centered:last-child{float:none}.column.large-uncentered:last-child,.columns.large-uncentered:last-child{float:left}.column.large-uncentered.opposite,.columns.large-uncentered.opposite{float:right}.row.large-collapse>.column,.row.large-collapse>.columns{padding-left:0;padding-right:0}.row.large-collapse .row{margin-left:0;margin-right:0}.row.large-uncollapse>.column,.row.large-uncollapse>.columns{padding-left:0.9375rem;padding-right:0.9375rem;float:left}.push-0{position:relative;left:0;right:auto}.pull-0{position:relative;right:0;left:auto}.push-1{position:relative;left:8.33333%;right:auto}.pull-1{position:relative;right:8.33333%;left:auto}.push-2{position:relative;left:16.66667%;right:auto}.pull-2{position:relative;right:16.66667%;left:auto}.push-3{position:relative;left:25%;right:auto}.pull-3{position:relative;right:25%;left:auto}.push-4{position:relative;left:33.33333%;right:auto}.pull-4{position:relative;right:33.33333%;left:auto}.push-5{position:relative;left:41.66667%;right:auto}.pull-5{position:relative;right:41.66667%;left:auto}.push-6{position:relative;left:50%;right:auto}.pull-6{position:relative;right:50%;left:auto}.push-7{position:relative;left:58.33333%;right:auto}.pull-7{position:relative;right:58.33333%;left:auto}.push-8{position:relative;left:66.66667%;right:auto}.pull-8{position:relative;right:66.66667%;left:auto}.push-9{position:relative;left:75%;right:auto}.pull-9{position:relative;right:75%;left:auto}.push-10{position:relative;left:83.33333%;right:auto}.pull-10{position:relative;right:83.33333%;left:auto}.push-11{position:relative;left:91.66667%;right:auto}.pull-11{position:relative;right:91.66667%;left:auto}}button,.button{-webkit-appearance:none;-moz-appearance:none;border-radius:0;border-style:solid;border-width:0;cursor:pointer;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:normal;line-height:normal;margin:0 0 1.25rem;position:relative;text-align:center;text-decoration:none;display:inline-block;padding:1rem 2rem 1.0625rem 2rem;font-size:1rem;background-color:#008CBA;border-color:#007095;color:#fff;transition:background-color 300ms ease-out}button:hover,button:focus,.button:hover,.button:focus{background-color:#007095}button:hover,button:focus,.button:hover,.button:focus{color:#fff}button.secondary,.button.secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333}button.secondary:hover,button.secondary:focus,.button.secondary:hover,.button.secondary:focus{background-color:#b9b9b9}button.secondary:hover,button.secondary:focus,.button.secondary:hover,.button.secondary:focus{color:#333}button.success,.button.success{background-color:#43AC6A;border-color:#368a55;color:#fff}button.success:hover,button.success:focus,.button.success:hover,.button.success:focus{background-color:#368a55}button.success:hover,button.success:focus,.button.success:hover,.button.success:focus{color:#fff}button.alert,.button.alert{background-color:#f04124;border-color:#cf2a0e;color:#fff}button.alert:hover,button.alert:focus,.button.alert:hover,.button.alert:focus{background-color:#cf2a0e}button.alert:hover,button.alert:focus,.button.alert:hover,.button.alert:focus{color:#fff}button.warning,.button.warning{background-color:#f08a24;border-color:#cf6e0e;color:#fff}button.warning:hover,button.warning:focus,.button.warning:hover,.button.warning:focus{background-color:#cf6e0e}button.warning:hover,button.warning:focus,.button.warning:hover,.button.warning:focus{color:#fff}button.info,.button.info{background-color:#a0d3e8;border-color:#61b6d9;color:#333}button.info:hover,button.info:focus,.button.info:hover,.button.info:focus{background-color:#61b6d9}button.info:hover,button.info:focus,.button.info:hover,.button.info:focus{color:#fff}button.large,.button.large{padding:1.125rem 2.25rem 1.1875rem 2.25rem;font-size:1.25rem}button.small,.button.small{padding:0.875rem 1.75rem 0.9375rem 1.75rem;font-size:0.8125rem}button.tiny,.button.tiny{padding:0.625rem 1.25rem 0.6875rem 1.25rem;font-size:0.6875rem}button.expand,.button.expand{padding-left:0;padding-right:0;width:100%}button.left-align,.button.left-align{text-align:left;text-indent:0.75rem}button.right-align,.button.right-align{text-align:right;padding-right:0.75rem}button.radius,.button.radius{border-radius:3px}button.round,.button.round{border-radius:1000px}button.disabled,button[disabled],.button.disabled,.button[disabled]{background-color:#008CBA;border-color:#007095;color:#fff;box-shadow:none;cursor:default;opacity:0.7}button.disabled:hover,button.disabled:focus,button[disabled]:hover,button[disabled]:focus,.button.disabled:hover,.button.disabled:focus,.button[disabled]:hover,.button[disabled]:focus{background-color:#007095}button.disabled:hover,button.disabled:focus,button[disabled]:hover,button[disabled]:focus,.button.disabled:hover,.button.disabled:focus,.button[disabled]:hover,.button[disabled]:focus{color:#fff}button.disabled:hover,button.disabled:focus,button[disabled]:hover,button[disabled]:focus,.button.disabled:hover,.button.disabled:focus,.button[disabled]:hover,.button[disabled]:focus{background-color:#008CBA}button.disabled.secondary,button[disabled].secondary,.button.disabled.secondary,.button[disabled].secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333;box-shadow:none;cursor:default;opacity:0.7}button.disabled.secondary:hover,button.disabled.secondary:focus,button[disabled].secondary:hover,button[disabled].secondary:focus,.button.disabled.secondary:hover,.button.disabled.secondary:focus,.button[disabled].secondary:hover,.button[disabled].secondary:focus{background-color:#b9b9b9}button.disabled.secondary:hover,button.disabled.secondary:focus,button[disabled].secondary:hover,button[disabled].secondary:focus,.button.disabled.secondary:hover,.button.disabled.secondary:focus,.button[disabled].secondary:hover,.button[disabled].secondary:focus{color:#333}button.disabled.secondary:hover,button.disabled.secondary:focus,button[disabled].secondary:hover,button[disabled].secondary:focus,.button.disabled.secondary:hover,.button.disabled.secondary:focus,.button[disabled].secondary:hover,.button[disabled].secondary:focus{background-color:#e7e7e7}button.disabled.success,button[disabled].success,.button.disabled.success,.button[disabled].success{background-color:#43AC6A;border-color:#368a55;color:#fff;box-shadow:none;cursor:default;opacity:0.7}button.disabled.success:hover,button.disabled.success:focus,button[disabled].success:hover,button[disabled].success:focus,.button.disabled.success:hover,.button.disabled.success:focus,.button[disabled].success:hover,.button[disabled].success:focus{background-color:#368a55}button.disabled.success:hover,button.disabled.success:focus,button[disabled].success:hover,button[disabled].success:focus,.button.disabled.success:hover,.button.disabled.success:focus,.button[disabled].success:hover,.button[disabled].success:focus{color:#fff}button.disabled.success:hover,button.disabled.success:focus,button[disabled].success:hover,button[disabled].success:focus,.button.disabled.success:hover,.button.disabled.success:focus,.button[disabled].success:hover,.button[disabled].success:focus{background-color:#43AC6A}button.disabled.alert,button[disabled].alert,.button.disabled.alert,.button[disabled].alert{background-color:#f04124;border-color:#cf2a0e;color:#fff;box-shadow:none;cursor:default;opacity:0.7}button.disabled.alert:hover,button.disabled.alert:focus,button[disabled].alert:hover,button[disabled].alert:focus,.button.disabled.alert:hover,.button.disabled.alert:focus,.button[disabled].alert:hover,.button[disabled].alert:focus{background-color:#cf2a0e}button.disabled.alert:hover,button.disabled.alert:focus,button[disabled].alert:hover,button[disabled].alert:focus,.button.disabled.alert:hover,.button.disabled.alert:focus,.button[disabled].alert:hover,.button[disabled].alert:focus{color:#fff}button.disabled.alert:hover,button.disabled.alert:focus,button[disabled].alert:hover,button[disabled].alert:focus,.button.disabled.alert:hover,.button.disabled.alert:focus,.button[disabled].alert:hover,.button[disabled].alert:focus{background-color:#f04124}button.disabled.warning,button[disabled].warning,.button.disabled.warning,.button[disabled].warning{background-color:#f08a24;border-color:#cf6e0e;color:#fff;box-shadow:none;cursor:default;opacity:0.7}button.disabled.warning:hover,button.disabled.warning:focus,button[disabled].warning:hover,button[disabled].warning:focus,.button.disabled.warning:hover,.button.disabled.warning:focus,.button[disabled].warning:hover,.button[disabled].warning:focus{background-color:#cf6e0e}button.disabled.warning:hover,button.disabled.warning:focus,button[disabled].warning:hover,button[disabled].warning:focus,.button.disabled.warning:hover,.button.disabled.warning:focus,.button[disabled].warning:hover,.button[disabled].warning:focus{color:#fff}button.disabled.warning:hover,button.disabled.warning:focus,button[disabled].warning:hover,button[disabled].warning:focus,.button.disabled.warning:hover,.button.disabled.warning:focus,.button[disabled].warning:hover,.button[disabled].warning:focus{background-color:#f08a24}button.disabled.info,button[disabled].info,.button.disabled.info,.button[disabled].info{background-color:#a0d3e8;border-color:#61b6d9;color:#333;box-shadow:none;cursor:default;opacity:0.7}button.disabled.info:hover,button.disabled.info:focus,button[disabled].info:hover,button[disabled].info:focus,.button.disabled.info:hover,.button.disabled.info:focus,.button[disabled].info:hover,.button[disabled].info:focus{background-color:#61b6d9}button.disabled.info:hover,button.disabled.info:focus,button[disabled].info:hover,button[disabled].info:focus,.button.disabled.info:hover,.button.disabled.info:focus,.button[disabled].info:hover,.button[disabled].info:focus{color:#fff}button.disabled.info:hover,button.disabled.info:focus,button[disabled].info:hover,button[disabled].info:focus,.button.disabled.info:hover,.button.disabled.info:focus,.button[disabled].info:hover,.button[disabled].info:focus{background-color:#a0d3e8}button::-moz-focus-inner{border:0;padding:0}@media only screen and (min-width: 40.0625em){button,.button{display:inline-block}}form{margin:0 0 1rem}form .row .row{margin:0 -0.5rem}form .row .row .column,form .row .row .columns{padding:0 0.5rem}form .row .row.collapse{margin:0}form .row .row.collapse .column,form .row .row.collapse .columns{padding:0}form .row .row.collapse input{-webkit-border-bottom-right-radius:0;-webkit-border-top-right-radius:0;border-bottom-right-radius:0;border-top-right-radius:0}form .row input.column,form .row input.columns,form .row textarea.column,form .row textarea.columns{padding-left:0.5rem}label{color:#4d4d4d;cursor:pointer;display:block;font-size:0.875rem;font-weight:normal;line-height:1.5;margin-bottom:0}label.right{float:none !important;text-align:right}label.inline{margin:0 0 1rem 0;padding:0.5625rem 0}label small{text-transform:capitalize;color:#676767}.prefix,.postfix{border-style:solid;border-width:1px;display:block;font-size:0.875rem;height:2.3125rem;line-height:2.3125rem;overflow:visible;padding-bottom:0;padding-top:0;position:relative;text-align:center;width:100%;z-index:2}.postfix.button{border-color:true}.prefix.button{border:none;padding-left:0;padding-right:0;padding-bottom:0;padding-top:0;text-align:center}.prefix.button.radius{border-radius:0;-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}.postfix.button.radius{border-radius:0;-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}.prefix.button.round{border-radius:0;-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}.postfix.button.round{border-radius:0;-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}span.prefix,label.prefix{background:#f2f2f2;border-right:none;color:#333;border-color:#ccc}span.postfix,label.postfix{background:#f2f2f2;color:#333;border-color:#ccc}input[type="text"],input[type="password"],input[type="date"],input[type="datetime"],input[type="datetime-local"],input[type="month"],input[type="week"],input[type="email"],input[type="number"],input[type="search"],input[type="tel"],input[type="time"],input[type="url"],input[type="color"],textarea{-webkit-appearance:none;-moz-appearance:none;border-radius:0;background-color:#fff;border-style:solid;border-width:1px;border-color:#ccc;box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);color:rgba(0,0,0,0.75);display:block;font-family:inherit;font-size:0.875rem;height:2.3125rem;margin:0 0 1rem 0;padding:0.5rem;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:border-color 0.15s linear,background 0.15s linear;-moz-transition:border-color 0.15s linear,background 0.15s linear;-ms-transition:border-color 0.15s linear,background 0.15s linear;-o-transition:border-color 0.15s linear,background 0.15s linear;transition:border-color 0.15s linear,background 0.15s linear}input[type="text"]:focus,input[type="password"]:focus,input[type="date"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="month"]:focus,input[type="week"]:focus,input[type="email"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="time"]:focus,input[type="url"]:focus,input[type="color"]:focus,textarea:focus{background:#fafafa;border-color:#999;outline:none}input[type="text"]:disabled,input[type="password"]:disabled,input[type="date"]:disabled,input[type="datetime"]:disabled,input[type="datetime-local"]:disabled,input[type="month"]:disabled,input[type="week"]:disabled,input[type="email"]:disabled,input[type="number"]:disabled,input[type="search"]:disabled,input[type="tel"]:disabled,input[type="time"]:disabled,input[type="url"]:disabled,input[type="color"]:disabled,textarea:disabled{background-color:#ddd;cursor:default}input[type="text"][disabled],input[type="text"][readonly],fieldset[disabled] input[type="text"],input[type="password"][disabled],input[type="password"][readonly],fieldset[disabled] input[type="password"],input[type="date"][disabled],input[type="date"][readonly],fieldset[disabled] input[type="date"],input[type="datetime"][disabled],input[type="datetime"][readonly],fieldset[disabled] input[type="datetime"],input[type="datetime-local"][disabled],input[type="datetime-local"][readonly],fieldset[disabled] input[type="datetime-local"],input[type="month"][disabled],input[type="month"][readonly],fieldset[disabled] input[type="month"],input[type="week"][disabled],input[type="week"][readonly],fieldset[disabled] input[type="week"],input[type="email"][disabled],input[type="email"][readonly],fieldset[disabled] input[type="email"],input[type="number"][disabled],input[type="number"][readonly],fieldset[disabled] input[type="number"],input[type="search"][disabled],input[type="search"][readonly],fieldset[disabled] input[type="search"],input[type="tel"][disabled],input[type="tel"][readonly],fieldset[disabled] input[type="tel"],input[type="time"][disabled],input[type="time"][readonly],fieldset[disabled] input[type="time"],input[type="url"][disabled],input[type="url"][readonly],fieldset[disabled] input[type="url"],input[type="color"][disabled],input[type="color"][readonly],fieldset[disabled] input[type="color"],textarea[disabled],textarea[readonly],fieldset[disabled] textarea{background-color:#ddd;cursor:default}input[type="text"].radius,input[type="password"].radius,input[type="date"].radius,input[type="datetime"].radius,input[type="datetime-local"].radius,input[type="month"].radius,input[type="week"].radius,input[type="email"].radius,input[type="number"].radius,input[type="search"].radius,input[type="tel"].radius,input[type="time"].radius,input[type="url"].radius,input[type="color"].radius,textarea.radius{border-radius:3px}form .row .prefix-radius.row.collapse input,form .row .prefix-radius.row.collapse textarea,form .row .prefix-radius.row.collapse select,form .row .prefix-radius.row.collapse button{border-radius:0;-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}form .row .prefix-radius.row.collapse .prefix{border-radius:0;-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}form .row .postfix-radius.row.collapse input,form .row .postfix-radius.row.collapse textarea,form .row .postfix-radius.row.collapse select,form .row .postfix-radius.row.collapse button{border-radius:0;-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}form .row .postfix-radius.row.collapse .postfix{border-radius:0;-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}form .row .prefix-round.row.collapse input,form .row .prefix-round.row.collapse textarea,form .row .prefix-round.row.collapse select,form .row .prefix-round.row.collapse button{border-radius:0;-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}form .row .prefix-round.row.collapse .prefix{border-radius:0;-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}form .row .postfix-round.row.collapse input,form .row .postfix-round.row.collapse textarea,form .row .postfix-round.row.collapse select,form .row .postfix-round.row.collapse button{border-radius:0;-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}form .row .postfix-round.row.collapse .postfix{border-radius:0;-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}input[type="submit"]{-webkit-appearance:none;-moz-appearance:none;border-radius:0}textarea[rows]{height:auto}textarea{max-width:100%}::-webkit-input-placeholder{color:#ccc}:-moz-placeholder{color:#ccc}::-moz-placeholder{color:#ccc}:-ms-input-placeholder{color:#ccc}select{-webkit-appearance:none !important;-moz-appearance:none !important;background-color:#FAFAFA;border-radius:0;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+);background-position:100% center;background-repeat:no-repeat;border-style:solid;border-width:1px;border-color:#ccc;color:rgba(0,0,0,0.75);font-family:inherit;font-size:0.875rem;line-height:normal;padding:0.5rem;border-radius:0;height:2.3125rem}select::-ms-expand{display:none}select.radius{border-radius:3px}select:hover{background-color:#f3f3f3;border-color:#999}select:disabled{background-color:#ddd;cursor:default}select[multiple]{height:auto}input[type="file"],input[type="checkbox"],input[type="radio"],select{margin:0 0 1rem 0}input[type="checkbox"]+label,input[type="radio"]+label{display:inline-block;margin-left:0.5rem;margin-right:1rem;margin-bottom:0;vertical-align:baseline}input[type="file"]{width:100%}fieldset{border:1px solid #ddd;margin:1.125rem 0;padding:1.25rem}fieldset legend{background:#fff;font-weight:bold;margin-left:-0.1875rem;margin:0;padding:0 0.1875rem}[data-abide] .error small.error,[data-abide] .error span.error,[data-abide] span.error,[data-abide] small.error{display:block;font-size:0.75rem;font-style:italic;font-weight:normal;margin-bottom:1rem;margin-top:-1px;padding:0.375rem 0.5625rem 0.5625rem;background:#f04124;color:#fff}[data-abide] span.error,[data-abide] small.error{display:none}span.error,small.error{display:block;font-size:0.75rem;font-style:italic;font-weight:normal;margin-bottom:1rem;margin-top:-1px;padding:0.375rem 0.5625rem 0.5625rem;background:#f04124;color:#fff}.error input,.error textarea,.error select{margin-bottom:0}.error input[type="checkbox"],.error input[type="radio"]{margin-bottom:1rem}.error label,.error label.error{color:#f04124}.error small.error{display:block;font-size:0.75rem;font-style:italic;font-weight:normal;margin-bottom:1rem;margin-top:-1px;padding:0.375rem 0.5625rem 0.5625rem;background:#f04124;color:#fff}.error>label>small{background:transparent;color:#676767;display:inline;font-size:60%;font-style:normal;margin:0;padding:0;text-transform:capitalize}.error span.error-message{display:block}input.error,textarea.error,select.error{margin-bottom:0}label.error{color:#f04124}meta.foundation-mq-topbar{font-family:"/only screen and (min-width:40.0625em)/";width:40.0625em}.contain-to-grid{width:100%;background:#333}.contain-to-grid .top-bar{margin-bottom:0}.fixed{position:fixed;top:0;width:100%;z-index:99;left:0}.fixed.expanded:not(.top-bar){height:auto;max-height:100%;overflow-y:auto;width:100%}.fixed.expanded:not(.top-bar) .title-area{position:fixed;width:100%;z-index:99}.fixed.expanded:not(.top-bar) .top-bar-section{margin-top:2.8125rem;z-index:98}.top-bar{background:#333;height:2.8125rem;line-height:2.8125rem;margin-bottom:0;overflow:hidden;position:relative}.top-bar ul{list-style:none;margin-bottom:0}.top-bar .row{max-width:none}.top-bar form,.top-bar input,.top-bar select{margin-bottom:0}.top-bar input,.top-bar select{font-size:0.75rem;height:1.75rem;padding-bottom:.35rem;padding-top:.35rem}.top-bar .button,.top-bar button{font-size:0.75rem;margin-bottom:0;padding-bottom:0.4125rem;padding-top:0.4125rem}@media only screen and (max-width: 40em){.top-bar .button,.top-bar button{position:relative;top:-1px}}.top-bar .title-area{margin:0;position:relative}.top-bar .name{font-size:16px;height:2.8125rem;margin:0}.top-bar .name h1,.top-bar .name h2,.top-bar .name h3,.top-bar .name h4,.top-bar .name p,.top-bar .name span{font-size:1.0625rem;line-height:2.8125rem;margin:0}.top-bar .name h1 a,.top-bar .name h2 a,.top-bar .name h3 a,.top-bar .name h4 a,.top-bar .name p a,.top-bar .name span a{color:#fff;display:block;font-weight:normal;padding:0 0.9375rem;width:75%}.top-bar .toggle-topbar{position:absolute;right:0;top:0}.top-bar .toggle-topbar a{color:#fff;display:block;font-size:0.8125rem;font-weight:bold;height:2.8125rem;line-height:2.8125rem;padding:0 0.9375rem;position:relative;text-transform:uppercase}.top-bar .toggle-topbar.menu-icon{margin-top:-16px;top:50%}.top-bar .toggle-topbar.menu-icon a{color:#fff;height:34px;line-height:33px;padding:0 2.5rem 0 0.9375rem;position:relative}.top-bar .toggle-topbar.menu-icon a span::after{content:"";display:block;height:0;position:absolute;margin-top:-8px;top:50%;right:0.9375rem;box-shadow:0 0 0 1px #fff,0 7px 0 1px #fff,0 14px 0 1px #fff;width:16px}.top-bar .toggle-topbar.menu-icon a span:hover:after{box-shadow:0 0 0 1px "",0 7px 0 1px "",0 14px 0 1px ""}.top-bar.expanded{background:transparent;height:auto}.top-bar.expanded .title-area{background:#333}.top-bar.expanded .toggle-topbar a{color:#888}.top-bar.expanded .toggle-topbar a span::after{box-shadow:0 0 0 1px #888,0 7px 0 1px #888,0 14px 0 1px #888}@media screen and (-webkit-min-device-pixel-ratio: 0){.top-bar.expanded .top-bar-section .has-dropdown.moved>.dropdown,.top-bar.expanded .top-bar-section .dropdown{clip:initial}.top-bar.expanded .top-bar-section .has-dropdown:not(.moved)>ul{padding:0}}.top-bar-section{left:0;position:relative;width:auto;transition:left 300ms ease-out}.top-bar-section ul{display:block;font-size:16px;height:auto;margin:0;padding:0;width:100%}.top-bar-section .divider,.top-bar-section [role="separator"]{border-top:solid 1px #1a1a1a;clear:both;height:1px;width:100%}.top-bar-section ul li{background:#333}.top-bar-section ul li>a{color:#fff;display:block;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-size:0.8125rem;font-weight:normal;padding-left:0.9375rem;padding:12px 0 12px 0.9375rem;text-transform:none;width:100%}.top-bar-section ul li>a.button{font-size:0.8125rem;padding-left:0.9375rem;padding-right:0.9375rem;background-color:#008CBA;border-color:#007095;color:#fff}.top-bar-section ul li>a.button:hover,.top-bar-section ul li>a.button:focus{background-color:#007095}.top-bar-section ul li>a.button:hover,.top-bar-section ul li>a.button:focus{color:#fff}.top-bar-section ul li>a.button.secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333}.top-bar-section ul li>a.button.secondary:hover,.top-bar-section ul li>a.button.secondary:focus{background-color:#b9b9b9}.top-bar-section ul li>a.button.secondary:hover,.top-bar-section ul li>a.button.secondary:focus{color:#333}.top-bar-section ul li>a.button.success{background-color:#43AC6A;border-color:#368a55;color:#fff}.top-bar-section ul li>a.button.success:hover,.top-bar-section ul li>a.button.success:focus{background-color:#368a55}.top-bar-section ul li>a.button.success:hover,.top-bar-section ul li>a.button.success:focus{color:#fff}.top-bar-section ul li>a.button.alert{background-color:#f04124;border-color:#cf2a0e;color:#fff}.top-bar-section ul li>a.button.alert:hover,.top-bar-section ul li>a.button.alert:focus{background-color:#cf2a0e}.top-bar-section ul li>a.button.alert:hover,.top-bar-section ul li>a.button.alert:focus{color:#fff}.top-bar-section ul li>a.button.warning{background-color:#f08a24;border-color:#cf6e0e;color:#fff}.top-bar-section ul li>a.button.warning:hover,.top-bar-section ul li>a.button.warning:focus{background-color:#cf6e0e}.top-bar-section ul li>a.button.warning:hover,.top-bar-section ul li>a.button.warning:focus{color:#fff}.top-bar-section ul li>a.button.info{background-color:#a0d3e8;border-color:#61b6d9;color:#333}.top-bar-section ul li>a.button.info:hover,.top-bar-section ul li>a.button.info:focus{background-color:#61b6d9}.top-bar-section ul li>a.button.info:hover,.top-bar-section ul li>a.button.info:focus{color:#fff}.top-bar-section ul li>button{font-size:0.8125rem;padding-left:0.9375rem;padding-right:0.9375rem;background-color:#008CBA;border-color:#007095;color:#fff}.top-bar-section ul li>button:hover,.top-bar-section ul li>button:focus{background-color:#007095}.top-bar-section ul li>button:hover,.top-bar-section ul li>button:focus{color:#fff}.top-bar-section ul li>button.secondary{background-color:#e7e7e7;border-color:#b9b9b9;color:#333}.top-bar-section ul li>button.secondary:hover,.top-bar-section ul li>button.secondary:focus{background-color:#b9b9b9}.top-bar-section ul li>button.secondary:hover,.top-bar-section ul li>button.secondary:focus{color:#333}.top-bar-section ul li>button.success{background-color:#43AC6A;border-color:#368a55;color:#fff}.top-bar-section ul li>button.success:hover,.top-bar-section ul li>button.success:focus{background-color:#368a55}.top-bar-section ul li>button.success:hover,.top-bar-section ul li>button.success:focus{color:#fff}.top-bar-section ul li>button.alert{background-color:#f04124;border-color:#cf2a0e;color:#fff}.top-bar-section ul li>button.alert:hover,.top-bar-section ul li>button.alert:focus{background-color:#cf2a0e}.top-bar-section ul li>button.alert:hover,.top-bar-section ul li>button.alert:focus{color:#fff}.top-bar-section ul li>button.warning{background-color:#f08a24;border-color:#cf6e0e;color:#fff}.top-bar-section ul li>button.warning:hover,.top-bar-section ul li>button.warning:focus{background-color:#cf6e0e}.top-bar-section ul li>button.warning:hover,.top-bar-section ul li>button.warning:focus{color:#fff}.top-bar-section ul li>button.info{background-color:#a0d3e8;border-color:#61b6d9;color:#333}.top-bar-section ul li>button.info:hover,.top-bar-section ul li>button.info:focus{background-color:#61b6d9}.top-bar-section ul li>button.info:hover,.top-bar-section ul li>button.info:focus{color:#fff}.top-bar-section ul li:hover:not(.has-form)>a{background-color:#555;color:#fff;background:#222}.top-bar-section ul li.active>a{background:#008CBA;color:#fff}.top-bar-section ul li.active>a:hover{background:#0078a0;color:#fff}.top-bar-section .has-form{padding:0.9375rem}.top-bar-section .has-dropdown{position:relative}.top-bar-section .has-dropdown>a:after{border:inset 5px;content:"";display:block;height:0;width:0;border-color:transparent transparent transparent rgba(255,255,255,0.4);border-left-style:solid;margin-right:0.9375rem;margin-top:-4.5px;position:absolute;top:50%;right:0}.top-bar-section .has-dropdown.moved{position:static}.top-bar-section .has-dropdown.moved>.dropdown{position:static !important;height:auto;width:auto;overflow:visible;clip:auto;display:block;position:absolute !important;width:100%}.top-bar-section .has-dropdown.moved>a:after{display:none}.top-bar-section .dropdown{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px;display:block;padding:0;position:absolute;top:0;z-index:99;left:100%}.top-bar-section .dropdown li{height:auto;width:100%}.top-bar-section .dropdown li a{font-weight:normal;padding:8px 0.9375rem}.top-bar-section .dropdown li a.parent-link{font-weight:normal}.top-bar-section .dropdown li.title h5,.top-bar-section .dropdown li.parent-link{margin-bottom:0;margin-top:0;font-size:1.125rem}.top-bar-section .dropdown li.title h5 a,.top-bar-section .dropdown li.parent-link a{color:#fff;display:block}.top-bar-section .dropdown li.title h5 a:hover,.top-bar-section .dropdown li.parent-link a:hover{background:none}.top-bar-section .dropdown li.has-form{padding:8px 0.9375rem}.top-bar-section .dropdown li .button,.top-bar-section .dropdown li button{top:auto}.top-bar-section .dropdown label{color:#777;font-size:0.625rem;font-weight:bold;margin-bottom:0;padding:8px 0.9375rem 2px;text-transform:uppercase}.js-generated{display:block}@media only screen and (min-width: 40.0625em){.top-bar{background:#333;overflow:visible}.top-bar:before,.top-bar:after{content:" ";display:table}.top-bar:after{clear:both}.top-bar .toggle-topbar{display:none}.top-bar .title-area{float:left}.top-bar .name h1 a,.top-bar .name h2 a,.top-bar .name h3 a,.top-bar .name h4 a,.top-bar .name h5 a,.top-bar .name h6 a{width:auto}.top-bar input,.top-bar select,.top-bar .button,.top-bar button{font-size:0.875rem;height:1.75rem;position:relative;top:0.53125rem}.top-bar.expanded{background:#333}.contain-to-grid .top-bar{margin-bottom:0;margin:0 auto;max-width:62.5rem}.top-bar-section{transition:none 0 0;left:0 !important}.top-bar-section ul{display:inline;height:auto !important;width:auto}.top-bar-section ul li{float:left}.top-bar-section ul li .js-generated{display:none}.top-bar-section li.hover>a:not(.button){background-color:#555;background:#222;color:#fff}.top-bar-section li:not(.has-form) a:not(.button){background:#333;line-height:2.8125rem;padding:0 0.9375rem}.top-bar-section li:not(.has-form) a:not(.button):hover{background-color:#555;background:#222}.top-bar-section li.active:not(.has-form) a:not(.button){background:#008CBA;color:#fff;line-height:2.8125rem;padding:0 0.9375rem}.top-bar-section li.active:not(.has-form) a:not(.button):hover{background:#0078a0;color:#fff}.top-bar-section .has-dropdown>a{padding-right:2.1875rem !important}.top-bar-section .has-dropdown>a:after{border:inset 5px;content:"";display:block;height:0;width:0;border-color:rgba(255,255,255,0.4) transparent transparent transparent;border-top-style:solid;margin-top:-2.5px;top:1.40625rem}.top-bar-section .has-dropdown.moved{position:relative}.top-bar-section .has-dropdown.moved>.dropdown{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px;display:block}.top-bar-section .has-dropdown.hover>.dropdown,.top-bar-section .has-dropdown.not-click:hover>.dropdown{position:static !important;height:auto;width:auto;overflow:visible;clip:auto;display:block;position:absolute !important}.top-bar-section .has-dropdown>a:focus+.dropdown{position:static !important;height:auto;width:auto;overflow:visible;clip:auto;display:block;position:absolute !important}.top-bar-section .has-dropdown .dropdown li.has-dropdown>a:after{border:none;content:"\00bb";top:0.1875rem;right:5px}.top-bar-section .dropdown{left:0;background:transparent;min-width:100%;top:auto}.top-bar-section .dropdown li a{background:#333;color:#fff;line-height:2.8125rem;padding:12px 0.9375rem;white-space:nowrap}.top-bar-section .dropdown li:not(.has-form):not(.active)>a:not(.button){background:#333;color:#fff}.top-bar-section .dropdown li:not(.has-form):not(.active):hover>a:not(.button){background-color:#555;color:#fff;background:#222}.top-bar-section .dropdown li label{background:#333;white-space:nowrap}.top-bar-section .dropdown li .dropdown{left:100%;top:0}.top-bar-section>ul>.divider,.top-bar-section>ul>[role="separator"]{border-right:solid 1px #4e4e4e;border-bottom:none;border-top:none;clear:none;height:2.8125rem;width:0}.top-bar-section .has-form{background:#333;height:2.8125rem;padding:0 0.9375rem}.top-bar-section .right li .dropdown{left:auto;right:0}.top-bar-section .right li .dropdown li .dropdown{right:100%}.top-bar-section .left li .dropdown{right:auto;left:0}.top-bar-section .left li .dropdown li .dropdown{left:100%}.no-js .top-bar-section ul li:hover>a{background-color:#555;background:#222;color:#fff}.no-js .top-bar-section ul li:active>a{background:#008CBA;color:#fff}.no-js .top-bar-section .has-dropdown:hover>.dropdown{position:static !important;height:auto;width:auto;overflow:visible;clip:auto;display:block;position:absolute !important}.no-js .top-bar-section .has-dropdown>a:focus+.dropdown{position:static !important;height:auto;width:auto;overflow:visible;clip:auto;display:block;position:absolute !important}}.breadcrumbs{border-style:solid;border-width:1px;display:block;list-style:none;margin-left:0;overflow:hidden;padding:0.5625rem 0.875rem 0.5625rem;background-color:#f4f4f4;border-color:#dcdcdc;border-radius:3px}.breadcrumbs>*{color:#008CBA;float:left;font-size:0.6875rem;line-height:0.6875rem;margin:0;text-transform:uppercase}.breadcrumbs>*:hover a,.breadcrumbs>*:focus a{text-decoration:underline}.breadcrumbs>* a{color:#008CBA}.breadcrumbs>*.current{color:#333;cursor:default}.breadcrumbs>*.current a{color:#333;cursor:default}.breadcrumbs>*.current:hover,.breadcrumbs>*.current:hover a,.breadcrumbs>*.current:focus,.breadcrumbs>*.current:focus a{text-decoration:none}.breadcrumbs>*.unavailable{color:#999}.breadcrumbs>*.unavailable a{color:#999}.breadcrumbs>*.unavailable:hover,.breadcrumbs>*.unavailable:hover a,.breadcrumbs>*.unavailable:focus,.breadcrumbs>*.unavailable a:focus{color:#999;cursor:not-allowed;text-decoration:none}.breadcrumbs>*:before{color:#aaa;content:"/";margin:0 0.75rem;position:relative;top:1px}.breadcrumbs>*:first-child:before{content:" ";margin:0}[aria-label="breadcrumbs"] [aria-hidden="true"]:after{content:"/"}.alert-box{border-style:solid;border-width:1px;display:block;font-size:0.8125rem;font-weight:normal;margin-bottom:1.25rem;padding:0.875rem 1.5rem 0.875rem 0.875rem;position:relative;transition:opacity 300ms ease-out;background-color:#008CBA;border-color:#0078a0;color:#fff}.alert-box .close{right:0.25rem;background:inherit;color:#333;font-size:1.375rem;line-height:.9;margin-top:-0.6875rem;opacity:0.3;padding:0 6px 4px;position:absolute;top:50%}.alert-box .close:hover,.alert-box .close:focus{opacity:0.5}.alert-box.radius{border-radius:3px}.alert-box.round{border-radius:1000px}.alert-box.success{background-color:#43AC6A;border-color:#3a945b;color:#fff}.alert-box.alert{background-color:#f04124;border-color:#de2d0f;color:#fff}.alert-box.secondary{background-color:#e7e7e7;border-color:#c7c7c7;color:#4f4f4f}.alert-box.warning{background-color:#f08a24;border-color:#de770f;color:#fff}.alert-box.info{background-color:#a0d3e8;border-color:#74bfdd;color:#4f4f4f}.alert-box.alert-close{opacity:0}.inline-list{list-style:none;margin-left:-1.375rem;margin-right:0;margin:0 auto 1.0625rem auto;overflow:hidden;padding:0}.inline-list>li{display:block;float:left;list-style:none;margin-left:1.375rem}.inline-list>li>*{display:block}.button-group{list-style:none;margin:0;left:0}.button-group:before,.button-group:after{content:" ";display:table}.button-group:after{clear:both}.button-group.even-2 li{display:inline-block;margin:0 -2px;width:50%}.button-group.even-2 li>button,.button-group.even-2 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-2 li:first-child button,.button-group.even-2 li:first-child .button{border-left:0}.button-group.even-2 li button,.button-group.even-2 li .button{width:100%}.button-group.even-3 li{display:inline-block;margin:0 -2px;width:33.33333%}.button-group.even-3 li>button,.button-group.even-3 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-3 li:first-child button,.button-group.even-3 li:first-child .button{border-left:0}.button-group.even-3 li button,.button-group.even-3 li .button{width:100%}.button-group.even-4 li{display:inline-block;margin:0 -2px;width:25%}.button-group.even-4 li>button,.button-group.even-4 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-4 li:first-child button,.button-group.even-4 li:first-child .button{border-left:0}.button-group.even-4 li button,.button-group.even-4 li .button{width:100%}.button-group.even-5 li{display:inline-block;margin:0 -2px;width:20%}.button-group.even-5 li>button,.button-group.even-5 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-5 li:first-child button,.button-group.even-5 li:first-child .button{border-left:0}.button-group.even-5 li button,.button-group.even-5 li .button{width:100%}.button-group.even-6 li{display:inline-block;margin:0 -2px;width:16.66667%}.button-group.even-6 li>button,.button-group.even-6 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-6 li:first-child button,.button-group.even-6 li:first-child .button{border-left:0}.button-group.even-6 li button,.button-group.even-6 li .button{width:100%}.button-group.even-7 li{display:inline-block;margin:0 -2px;width:14.28571%}.button-group.even-7 li>button,.button-group.even-7 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-7 li:first-child button,.button-group.even-7 li:first-child .button{border-left:0}.button-group.even-7 li button,.button-group.even-7 li .button{width:100%}.button-group.even-8 li{display:inline-block;margin:0 -2px;width:12.5%}.button-group.even-8 li>button,.button-group.even-8 li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.even-8 li:first-child button,.button-group.even-8 li:first-child .button{border-left:0}.button-group.even-8 li button,.button-group.even-8 li .button{width:100%}.button-group>li{display:inline-block;margin:0 -2px}.button-group>li>button,.button-group>li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group>li:first-child button,.button-group>li:first-child .button{border-left:0}.button-group.stack>li{display:block;margin:0;float:none}.button-group.stack>li>button,.button-group.stack>li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.stack>li:first-child button,.button-group.stack>li:first-child .button{border-left:0}.button-group.stack>li>button,.button-group.stack>li .button{border-color:rgba(255,255,255,0.5);border-left-width:0;border-top:1px solid;display:block;margin:0}.button-group.stack>li>button{width:100%}.button-group.stack>li:first-child button,.button-group.stack>li:first-child .button{border-top:0}.button-group.stack-for-small>li{display:inline-block;margin:0 -2px}.button-group.stack-for-small>li>button,.button-group.stack-for-small>li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.stack-for-small>li:first-child button,.button-group.stack-for-small>li:first-child .button{border-left:0}@media only screen and (max-width: 40em){.button-group.stack-for-small>li{display:block;margin:0}.button-group.stack-for-small>li>button,.button-group.stack-for-small>li .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.stack-for-small>li:first-child button,.button-group.stack-for-small>li:first-child .button{border-left:0}.button-group.stack-for-small>li>button,.button-group.stack-for-small>li .button{border-color:rgba(255,255,255,0.5);border-left-width:0;border-top:1px solid;display:block;margin:0}.button-group.stack-for-small>li>button{width:100%}.button-group.stack-for-small>li:first-child button,.button-group.stack-for-small>li:first-child .button{border-top:0}}.button-group.radius>*{display:inline-block;margin:0 -2px}.button-group.radius>*>button,.button-group.radius>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.radius>*:first-child button,.button-group.radius>*:first-child .button{border-left:0}.button-group.radius>*,.button-group.radius>*>a,.button-group.radius>*>button,.button-group.radius>*>.button{border-radius:0}.button-group.radius>*:first-child,.button-group.radius>*:first-child>a,.button-group.radius>*:first-child>button,.button-group.radius>*:first-child>.button{-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}.button-group.radius>*:last-child,.button-group.radius>*:last-child>a,.button-group.radius>*:last-child>button,.button-group.radius>*:last-child>.button{-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}.button-group.radius.stack>*{display:block;margin:0}.button-group.radius.stack>*>button,.button-group.radius.stack>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.radius.stack>*:first-child button,.button-group.radius.stack>*:first-child .button{border-left:0}.button-group.radius.stack>*>button,.button-group.radius.stack>* .button{border-color:rgba(255,255,255,0.5);border-left-width:0;border-top:1px solid;display:block;margin:0}.button-group.radius.stack>*>button{width:100%}.button-group.radius.stack>*:first-child button,.button-group.radius.stack>*:first-child .button{border-top:0}.button-group.radius.stack>*,.button-group.radius.stack>*>a,.button-group.radius.stack>*>button,.button-group.radius.stack>*>.button{border-radius:0}.button-group.radius.stack>*:first-child,.button-group.radius.stack>*:first-child>a,.button-group.radius.stack>*:first-child>button,.button-group.radius.stack>*:first-child>.button{-webkit-top-left-radius:3px;-webkit-top-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px}.button-group.radius.stack>*:last-child,.button-group.radius.stack>*:last-child>a,.button-group.radius.stack>*:last-child>button,.button-group.radius.stack>*:last-child>.button{-webkit-bottom-left-radius:3px;-webkit-bottom-right-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}@media only screen and (min-width: 40.0625em){.button-group.radius.stack-for-small>*{display:inline-block;margin:0 -2px}.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.radius.stack-for-small>*:first-child button,.button-group.radius.stack-for-small>*:first-child .button{border-left:0}.button-group.radius.stack-for-small>*,.button-group.radius.stack-for-small>*>a,.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>*>.button{border-radius:0}.button-group.radius.stack-for-small>*:first-child,.button-group.radius.stack-for-small>*:first-child>a,.button-group.radius.stack-for-small>*:first-child>button,.button-group.radius.stack-for-small>*:first-child>.button{-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}.button-group.radius.stack-for-small>*:last-child,.button-group.radius.stack-for-small>*:last-child>a,.button-group.radius.stack-for-small>*:last-child>button,.button-group.radius.stack-for-small>*:last-child>.button{-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}}@media only screen and (max-width: 40em){.button-group.radius.stack-for-small>*{display:block;margin:0}.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.radius.stack-for-small>*:first-child button,.button-group.radius.stack-for-small>*:first-child .button{border-left:0}.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>* .button{border-color:rgba(255,255,255,0.5);border-left-width:0;border-top:1px solid;display:block;margin:0}.button-group.radius.stack-for-small>*>button{width:100%}.button-group.radius.stack-for-small>*:first-child button,.button-group.radius.stack-for-small>*:first-child .button{border-top:0}.button-group.radius.stack-for-small>*,.button-group.radius.stack-for-small>*>a,.button-group.radius.stack-for-small>*>button,.button-group.radius.stack-for-small>*>.button{border-radius:0}.button-group.radius.stack-for-small>*:first-child,.button-group.radius.stack-for-small>*:first-child>a,.button-group.radius.stack-for-small>*:first-child>button,.button-group.radius.stack-for-small>*:first-child>.button{-webkit-top-left-radius:3px;-webkit-top-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px}.button-group.radius.stack-for-small>*:last-child,.button-group.radius.stack-for-small>*:last-child>a,.button-group.radius.stack-for-small>*:last-child>button,.button-group.radius.stack-for-small>*:last-child>.button{-webkit-bottom-left-radius:3px;-webkit-bottom-right-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}}.button-group.round>*{display:inline-block;margin:0 -2px}.button-group.round>*>button,.button-group.round>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.round>*:first-child button,.button-group.round>*:first-child .button{border-left:0}.button-group.round>*,.button-group.round>*>a,.button-group.round>*>button,.button-group.round>*>.button{border-radius:0}.button-group.round>*:first-child,.button-group.round>*:first-child>a,.button-group.round>*:first-child>button,.button-group.round>*:first-child>.button{-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}.button-group.round>*:last-child,.button-group.round>*:last-child>a,.button-group.round>*:last-child>button,.button-group.round>*:last-child>.button{-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}.button-group.round.stack>*{display:block;margin:0}.button-group.round.stack>*>button,.button-group.round.stack>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.round.stack>*:first-child button,.button-group.round.stack>*:first-child .button{border-left:0}.button-group.round.stack>*>button,.button-group.round.stack>* .button{border-color:rgba(255,255,255,0.5);border-left-width:0;border-top:1px solid;display:block;margin:0}.button-group.round.stack>*>button{width:100%}.button-group.round.stack>*:first-child button,.button-group.round.stack>*:first-child .button{border-top:0}.button-group.round.stack>*,.button-group.round.stack>*>a,.button-group.round.stack>*>button,.button-group.round.stack>*>.button{border-radius:0}.button-group.round.stack>*:first-child,.button-group.round.stack>*:first-child>a,.button-group.round.stack>*:first-child>button,.button-group.round.stack>*:first-child>.button{-webkit-top-left-radius:1rem;-webkit-top-right-radius:1rem;border-top-left-radius:1rem;border-top-right-radius:1rem}.button-group.round.stack>*:last-child,.button-group.round.stack>*:last-child>a,.button-group.round.stack>*:last-child>button,.button-group.round.stack>*:last-child>.button{-webkit-bottom-left-radius:1rem;-webkit-bottom-right-radius:1rem;border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}@media only screen and (min-width: 40.0625em){.button-group.round.stack-for-small>*{display:inline-block;margin:0 -2px}.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.round.stack-for-small>*:first-child button,.button-group.round.stack-for-small>*:first-child .button{border-left:0}.button-group.round.stack-for-small>*,.button-group.round.stack-for-small>*>a,.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>*>.button{border-radius:0}.button-group.round.stack-for-small>*:first-child,.button-group.round.stack-for-small>*:first-child>a,.button-group.round.stack-for-small>*:first-child>button,.button-group.round.stack-for-small>*:first-child>.button{-webkit-border-bottom-left-radius:1000px;-webkit-border-top-left-radius:1000px;border-bottom-left-radius:1000px;border-top-left-radius:1000px}.button-group.round.stack-for-small>*:last-child,.button-group.round.stack-for-small>*:last-child>a,.button-group.round.stack-for-small>*:last-child>button,.button-group.round.stack-for-small>*:last-child>.button{-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}}@media only screen and (max-width: 40em){.button-group.round.stack-for-small>*{display:block;margin:0}.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>* .button{border-left:1px solid;border-color:rgba(255,255,255,0.5)}.button-group.round.stack-for-small>*:first-child button,.button-group.round.stack-for-small>*:first-child .button{border-left:0}.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>* .button{border-color:rgba(255,255,255,0.5);border-left-width:0;border-top:1px solid;display:block;margin:0}.button-group.round.stack-for-small>*>button{width:100%}.button-group.round.stack-for-small>*:first-child button,.button-group.round.stack-for-small>*:first-child .button{border-top:0}.button-group.round.stack-for-small>*,.button-group.round.stack-for-small>*>a,.button-group.round.stack-for-small>*>button,.button-group.round.stack-for-small>*>.button{border-radius:0}.button-group.round.stack-for-small>*:first-child,.button-group.round.stack-for-small>*:first-child>a,.button-group.round.stack-for-small>*:first-child>button,.button-group.round.stack-for-small>*:first-child>.button{-webkit-top-left-radius:1rem;-webkit-top-right-radius:1rem;border-top-left-radius:1rem;border-top-right-radius:1rem}.button-group.round.stack-for-small>*:last-child,.button-group.round.stack-for-small>*:last-child>a,.button-group.round.stack-for-small>*:last-child>button,.button-group.round.stack-for-small>*:last-child>.button{-webkit-bottom-left-radius:1rem;-webkit-bottom-right-radius:1rem;border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}}.button-bar:before,.button-bar:after{content:" ";display:table}.button-bar:after{clear:both}.button-bar .button-group{float:left;margin-right:0.625rem}.button-bar .button-group div{overflow:hidden}.panel{border-style:solid;border-width:1px;border-color:#d8d8d8;margin-bottom:1.25rem;padding:1.25rem;background:#f2f2f2;color:#333}.panel>:first-child{margin-top:0}.panel>:last-child{margin-bottom:0}.panel h1,.panel h2,.panel h3,.panel h4,.panel h5,.panel h6,.panel p,.panel li,.panel dl{color:#333}.panel h1,.panel h2,.panel h3,.panel h4,.panel h5,.panel h6{line-height:1;margin-bottom:0.625rem}.panel h1.subheader,.panel h2.subheader,.panel h3.subheader,.panel h4.subheader,.panel h5.subheader,.panel h6.subheader{line-height:1.4}.panel.callout{border-style:solid;border-width:1px;border-color:#d8d8d8;margin-bottom:1.25rem;padding:1.25rem;background:#ecfaff;color:#333}.panel.callout>:first-child{margin-top:0}.panel.callout>:last-child{margin-bottom:0}.panel.callout h1,.panel.callout h2,.panel.callout h3,.panel.callout h4,.panel.callout h5,.panel.callout h6,.panel.callout p,.panel.callout li,.panel.callout dl{color:#333}.panel.callout h1,.panel.callout h2,.panel.callout h3,.panel.callout h4,.panel.callout h5,.panel.callout h6{line-height:1;margin-bottom:0.625rem}.panel.callout h1.subheader,.panel.callout h2.subheader,.panel.callout h3.subheader,.panel.callout h4.subheader,.panel.callout h5.subheader,.panel.callout h6.subheader{line-height:1.4}.panel.callout a:not(.button){color:#008CBA}.panel.callout a:not(.button):hover,.panel.callout a:not(.button):focus{color:#0078a0}.panel.radius{border-radius:3px}.dropdown.button,button.dropdown{position:relative;padding-right:3.5625rem}.dropdown.button::after,button.dropdown::after{border-color:#fff transparent transparent transparent;border-style:solid;content:"";display:block;height:0;position:absolute;top:50%;width:0}.dropdown.button::after,button.dropdown::after{border-width:0.375rem;right:1.40625rem;margin-top:-0.15625rem}.dropdown.button::after,button.dropdown::after{border-color:#fff transparent transparent transparent}.dropdown.button.tiny,button.dropdown.tiny{padding-right:2.625rem}.dropdown.button.tiny:after,button.dropdown.tiny:after{border-width:0.375rem;right:1.125rem;margin-top:-0.125rem}.dropdown.button.tiny::after,button.dropdown.tiny::after{border-color:#fff transparent transparent transparent}.dropdown.button.small,button.dropdown.small{padding-right:3.0625rem}.dropdown.button.small::after,button.dropdown.small::after{border-width:0.4375rem;right:1.3125rem;margin-top:-0.15625rem}.dropdown.button.small::after,button.dropdown.small::after{border-color:#fff transparent transparent transparent}.dropdown.button.large,button.dropdown.large{padding-right:3.625rem}.dropdown.button.large::after,button.dropdown.large::after{border-width:0.3125rem;right:1.71875rem;margin-top:-0.15625rem}.dropdown.button.large::after,button.dropdown.large::after{border-color:#fff transparent transparent transparent}.dropdown.button.secondary:after,button.dropdown.secondary:after{border-color:#333 transparent transparent transparent}.th{border:solid 4px #fff;box-shadow:0 0 0 1px rgba(0,0,0,0.2);display:inline-block;line-height:0;max-width:100%;transition:all 200ms ease-out}.th:hover,.th:focus{box-shadow:0 0 6px 1px rgba(0,140,186,0.5)}.th.radius{border-radius:3px}.pricing-table{border:solid 1px #ddd;margin-left:0;margin-bottom:1.25rem}.pricing-table *{list-style:none;line-height:1}.pricing-table .title{background-color:#333;color:#eee;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-size:1rem;font-weight:normal;padding:0.9375rem 1.25rem;text-align:center}.pricing-table .price{background-color:#F6F6F6;color:#333;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-size:2rem;font-weight:normal;padding:0.9375rem 1.25rem;text-align:center}.pricing-table .description{background-color:#fff;border-bottom:dotted 1px #ddd;color:#777;font-size:0.75rem;font-weight:normal;line-height:1.4;padding:0.9375rem;text-align:center}.pricing-table .bullet-item{background-color:#fff;border-bottom:dotted 1px #ddd;color:#333;font-size:0.875rem;font-weight:normal;padding:0.9375rem;text-align:center}.pricing-table .cta-button{background-color:#fff;padding:1.25rem 1.25rem 0;text-align:center}@-webkit-keyframes rotate{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}}.slideshow-wrapper{position:relative}.slideshow-wrapper ul{list-style-type:none;margin:0}.slideshow-wrapper ul li,.slideshow-wrapper ul li .orbit-caption{display:none}.slideshow-wrapper ul li:first-child{display:block}.slideshow-wrapper .orbit-container{background-color:transparent}.slideshow-wrapper .orbit-container li{display:block}.slideshow-wrapper .orbit-container li .orbit-caption{display:block}.slideshow-wrapper .orbit-container .orbit-bullets li{display:inline-block}.slideshow-wrapper .preloader{border-radius:1000px;animation-duration:1.5s;animation-iteration-count:infinite;animation-name:rotate;animation-timing-function:linear;border-color:#555 #fff;border:solid 3px;display:block;height:40px;left:50%;margin-left:-20px;margin-top:-20px;position:absolute;top:50%;width:40px}.orbit-container{background:none;overflow:hidden;position:relative;width:100%}.orbit-container .orbit-slides-container{list-style:none;margin:0;padding:0;position:relative;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.orbit-container .orbit-slides-container img{display:block;max-width:100%}.orbit-container .orbit-slides-container>*{position:absolute;top:0;width:100%;margin-left:100%}.orbit-container .orbit-slides-container>*:first-child{margin-left:0}.orbit-container .orbit-slides-container>* .orbit-caption{bottom:0;position:absolute;background-color:rgba(51,51,51,0.8);color:#fff;font-size:0.875rem;padding:0.625rem 0.875rem;width:100%}.orbit-container .orbit-slide-number{left:10px;background:transparent;color:#fff;font-size:12px;position:absolute;top:10px;z-index:10}.orbit-container .orbit-slide-number span{font-weight:700;padding:0.3125rem}.orbit-container .orbit-timer{position:absolute;top:12px;right:10px;height:6px;width:100px;z-index:10}.orbit-container .orbit-timer .orbit-progress{height:3px;background-color:rgba(255,255,255,0.3);display:block;width:0;position:relative;right:20px;top:5px}.orbit-container .orbit-timer>span{border:solid 4px #fff;border-bottom:none;border-top:none;display:none;height:14px;position:absolute;top:0;width:11px;right:0}.orbit-container .orbit-timer.paused>span{top:0;width:11px;height:14px;border:inset 8px;border-left-style:solid;border-color:transparent;border-left-color:#fff;right:-4px}.orbit-container .orbit-timer.paused>span.dark{border-left-color:#333}.orbit-container:hover .orbit-timer>span{display:block}.orbit-container .orbit-prev,.orbit-container .orbit-next{background-color:transparent;color:white;height:60px;line-height:50px;margin-top:-25px;position:absolute;text-indent:-9999px !important;top:45%;width:36px;z-index:10}.orbit-container .orbit-prev:hover,.orbit-container .orbit-next:hover{background-color:rgba(0,0,0,0.3)}.orbit-container .orbit-prev>span,.orbit-container .orbit-next>span{border:inset 10px;display:block;height:0;margin-top:-10px;position:absolute;top:50%;width:0}.orbit-container .orbit-prev{left:0}.orbit-container .orbit-prev>span{border-right-style:solid;border-color:transparent;border-right-color:#fff}.orbit-container .orbit-prev:hover>span{border-right-color:#fff}.orbit-container .orbit-next{right:0}.orbit-container .orbit-next>span{border-color:transparent;border-left-style:solid;border-left-color:#fff;left:50%;margin-left:-4px}.orbit-container .orbit-next:hover>span{border-left-color:#fff}.orbit-bullets-container{text-align:center}.orbit-bullets{display:block;float:none;margin:0 auto 30px auto;overflow:hidden;position:relative;text-align:center;top:10px}.orbit-bullets li{background:#ccc;cursor:pointer;display:inline-block;float:none;height:0.5625rem;margin-right:6px;width:0.5625rem;border-radius:1000px}.orbit-bullets li.active{background:#999}.orbit-bullets li:last-child{margin-right:0}.touch .orbit-container .orbit-prev,.touch .orbit-container .orbit-next{display:none}.touch .orbit-bullets{display:none}@media only screen and (min-width: 40.0625em){.touch .orbit-container .orbit-prev,.touch .orbit-container .orbit-next{display:inherit}.touch .orbit-bullets{display:block}}@media only screen and (max-width: 40em){.orbit-stack-on-small .orbit-slides-container{height:auto !important}.orbit-stack-on-small .orbit-slides-container>*{margin:0 !important;opacity:1 !important;position:relative}.orbit-stack-on-small .orbit-slide-number{display:none}.orbit-timer{display:none}.orbit-next,.orbit-prev{display:none}.orbit-bullets{display:none}}[data-magellan-expedition],[data-magellan-expedition-clone]{background:#fff;min-width:100%;padding:10px;z-index:50}[data-magellan-expedition] .sub-nav,[data-magellan-expedition-clone] .sub-nav{margin-bottom:0}[data-magellan-expedition] .sub-nav dd,[data-magellan-expedition-clone] .sub-nav dd{margin-bottom:0}[data-magellan-expedition] .sub-nav a,[data-magellan-expedition-clone] .sub-nav a{line-height:1.8em}.icon-bar{display:inline-block;font-size:0;width:100%;background:#333}.icon-bar>*{display:block;float:left;font-size:1rem;margin:0 auto;padding:1.25rem;text-align:center;width:25%}.icon-bar>* i,.icon-bar>* img{display:block;margin:0 auto}.icon-bar>* i+label,.icon-bar>* img+label{margin-top:.0625rem}.icon-bar>* i{font-size:1.875rem;vertical-align:middle}.icon-bar>* img{height:1.875rem;width:1.875rem}.icon-bar.label-right>* i,.icon-bar.label-right>* img{display:inline-block;margin:0 .0625rem 0 0}.icon-bar.label-right>* i+label,.icon-bar.label-right>* img+label{margin-top:0}.icon-bar.label-right>* label{display:inline-block}.icon-bar.vertical.label-right>*{text-align:left}.icon-bar.vertical,.icon-bar.small-vertical{height:100%;width:auto}.icon-bar.vertical .item,.icon-bar.small-vertical .item{float:none;margin:auto;width:auto}@media only screen and (min-width: 40.0625em){.icon-bar.medium-vertical{height:100%;width:auto}.icon-bar.medium-vertical .item{float:none;margin:auto;width:auto}}@media only screen and (min-width: 64.0625em){.icon-bar.large-vertical{height:100%;width:auto}.icon-bar.large-vertical .item{float:none;margin:auto;width:auto}}.icon-bar>*{font-size:1rem;padding:1.25rem}.icon-bar>* i+label,.icon-bar>* img+label{margin-top:.0625rem;font-size:1rem}.icon-bar>* i{font-size:1.875rem}.icon-bar>* img{height:1.875rem;width:1.875rem}.icon-bar>* label{color:#fff}.icon-bar>* i{color:#fff}.icon-bar>a:hover{background:#008CBA}.icon-bar>a:hover label{color:#fff}.icon-bar>a:hover i{color:#fff}.icon-bar>a.active{background:#008CBA}.icon-bar>a.active label{color:#fff}.icon-bar>a.active i{color:#fff}.icon-bar .item.disabled{cursor:not-allowed;opacity:0.7;pointer-events:none}.icon-bar .item.disabled>*{opacity:0.7;cursor:not-allowed}.icon-bar.two-up .item{width:50%}.icon-bar.two-up.vertical .item,.icon-bar.two-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.0625em){.icon-bar.two-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.0625em){.icon-bar.two-up.large-vertical .item{width:auto}}.icon-bar.three-up .item{width:33.3333%}.icon-bar.three-up.vertical .item,.icon-bar.three-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.0625em){.icon-bar.three-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.0625em){.icon-bar.three-up.large-vertical .item{width:auto}}.icon-bar.four-up .item{width:25%}.icon-bar.four-up.vertical .item,.icon-bar.four-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.0625em){.icon-bar.four-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.0625em){.icon-bar.four-up.large-vertical .item{width:auto}}.icon-bar.five-up .item{width:20%}.icon-bar.five-up.vertical .item,.icon-bar.five-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.0625em){.icon-bar.five-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.0625em){.icon-bar.five-up.large-vertical .item{width:auto}}.icon-bar.six-up .item{width:16.66667%}.icon-bar.six-up.vertical .item,.icon-bar.six-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.0625em){.icon-bar.six-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.0625em){.icon-bar.six-up.large-vertical .item{width:auto}}.icon-bar.seven-up .item{width:14.28571%}.icon-bar.seven-up.vertical .item,.icon-bar.seven-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.0625em){.icon-bar.seven-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.0625em){.icon-bar.seven-up.large-vertical .item{width:auto}}.icon-bar.eight-up .item{width:12.5%}.icon-bar.eight-up.vertical .item,.icon-bar.eight-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.0625em){.icon-bar.eight-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.0625em){.icon-bar.eight-up.large-vertical .item{width:auto}}.icon-bar.two-up .item{width:50%}.icon-bar.two-up.vertical .item,.icon-bar.two-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.0625em){.icon-bar.two-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.0625em){.icon-bar.two-up.large-vertical .item{width:auto}}.icon-bar.three-up .item{width:33.3333%}.icon-bar.three-up.vertical .item,.icon-bar.three-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.0625em){.icon-bar.three-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.0625em){.icon-bar.three-up.large-vertical .item{width:auto}}.icon-bar.four-up .item{width:25%}.icon-bar.four-up.vertical .item,.icon-bar.four-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.0625em){.icon-bar.four-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.0625em){.icon-bar.four-up.large-vertical .item{width:auto}}.icon-bar.five-up .item{width:20%}.icon-bar.five-up.vertical .item,.icon-bar.five-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.0625em){.icon-bar.five-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.0625em){.icon-bar.five-up.large-vertical .item{width:auto}}.icon-bar.six-up .item{width:16.66667%}.icon-bar.six-up.vertical .item,.icon-bar.six-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.0625em){.icon-bar.six-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.0625em){.icon-bar.six-up.large-vertical .item{width:auto}}.icon-bar.seven-up .item{width:14.28571%}.icon-bar.seven-up.vertical .item,.icon-bar.seven-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.0625em){.icon-bar.seven-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.0625em){.icon-bar.seven-up.large-vertical .item{width:auto}}.icon-bar.eight-up .item{width:12.5%}.icon-bar.eight-up.vertical .item,.icon-bar.eight-up.small-vertical .item{width:auto}@media only screen and (min-width: 40.0625em){.icon-bar.eight-up.medium-vertical .item{width:auto}}@media only screen and (min-width: 64.0625em){.icon-bar.eight-up.large-vertical .item{width:auto}}.tabs{margin-bottom:0 !important;margin-left:0}.tabs:before,.tabs:after{content:" ";display:table}.tabs:after{clear:both}.tabs dd,.tabs .tab-title{float:left;list-style:none;margin-bottom:0 !important;position:relative}.tabs dd>a,.tabs .tab-title>a{display:block;background-color:#EFEFEF;color:#222;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-size:1rem;padding:1rem 2rem}.tabs dd>a:hover,.tabs .tab-title>a:hover{background-color:#e1e1e1}.tabs dd.active a,.tabs .tab-title.active a{background-color:#fff;color:#222}.tabs.radius dd:first-child a,.tabs.radius .tab:first-child a{-webkit-border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-bottom-left-radius:3px;border-top-left-radius:3px}.tabs.radius dd:last-child a,.tabs.radius .tab:last-child a{-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}.tabs.vertical dd,.tabs.vertical .tab-title{position:inherit;float:none;display:block;top:auto}.tabs-content{margin-bottom:1.5rem;width:100%}.tabs-content:before,.tabs-content:after{content:" ";display:table}.tabs-content:after{clear:both}.tabs-content>.content{display:none;float:left;padding:0.9375rem 0;width:100%}.tabs-content>.content.active{display:block;float:none}.tabs-content>.content.contained{padding:0.9375rem}.tabs-content.vertical{display:block}.tabs-content.vertical>.content{padding:0 0.9375rem}@media only screen and (min-width: 40.0625em){.tabs.vertical{float:left;margin:0;margin-bottom:1.25rem !important;max-width:20%;width:20%}.tabs-content.vertical{float:left;margin-left:-1px;max-width:80%;padding-left:1rem;width:80%}}.no-js .tabs-content>.content{display:block;float:none}ul.pagination{display:block;margin-left:-0.3125rem;min-height:1.5rem}ul.pagination li{color:#222;font-size:0.875rem;height:1.5rem;margin-left:0.3125rem}ul.pagination li a,ul.pagination li button{border-radius:3px;transition:background-color 300ms ease-out;background:none;color:#999;display:block;font-size:1em;font-weight:normal;line-height:inherit;padding:0.0625rem 0.625rem 0.0625rem}ul.pagination li:hover a,ul.pagination li a:focus,ul.pagination li:hover button,ul.pagination li button:focus{background:#e6e6e6}ul.pagination li.unavailable a,ul.pagination li.unavailable button{cursor:default;color:#999}ul.pagination li.unavailable:hover a,ul.pagination li.unavailable a:focus,ul.pagination li.unavailable:hover button,ul.pagination li.unavailable button:focus{background:transparent}ul.pagination li.current a,ul.pagination li.current button{background:#008CBA;color:#fff;cursor:default;font-weight:bold}ul.pagination li.current a:hover,ul.pagination li.current a:focus,ul.pagination li.current button:hover,ul.pagination li.current button:focus{background:#008CBA}ul.pagination li{display:block;float:left}.pagination-centered{text-align:center}.pagination-centered ul.pagination li{display:inline-block;float:none}.side-nav{display:block;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;list-style-position:outside;list-style-type:none;margin:0;padding:0.875rem 0}.side-nav li{font-size:0.875rem;font-weight:normal;margin:0 0 0.4375rem 0}.side-nav li a:not(.button){color:#008CBA;display:block;margin:0;padding:0.4375rem 0.875rem}.side-nav li a:not(.button):hover,.side-nav li a:not(.button):focus{background:rgba(0,0,0,0.025);color:#1cc7ff}.side-nav li a:not(.button):active{color:#1cc7ff}.side-nav li.active>a:first-child:not(.button){color:#1cc7ff;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:normal}.side-nav li.divider{border-top:1px solid;height:0;list-style:none;padding:0;border-top-color:#e6e6e6}.side-nav li.heading{color:#008CBA;font-size:0.875rem;font-weight:bold;text-transform:uppercase}.accordion{margin-bottom:0}.accordion:before,.accordion:after{content:" ";display:table}.accordion:after{clear:both}.accordion .accordion-navigation,.accordion dd{display:block;margin-bottom:0 !important}.accordion .accordion-navigation.active>a,.accordion dd.active>a{background:#e8e8e8}.accordion .accordion-navigation>a,.accordion dd>a{background:#EFEFEF;color:#222;display:block;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-size:1rem;padding:1rem}.accordion .accordion-navigation>a:hover,.accordion dd>a:hover{background:#e3e3e3}.accordion .accordion-navigation>.content,.accordion dd>.content{display:none;padding:0.9375rem}.accordion .accordion-navigation>.content.active,.accordion dd>.content.active{background:#fff;display:block}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}.text-justify{text-align:justify !important}@media only screen and (max-width: 40em){.small-only-text-left{text-align:left !important}.small-only-text-right{text-align:right !important}.small-only-text-center{text-align:center !important}.small-only-text-justify{text-align:justify !important}}@media only screen{.small-text-left{text-align:left !important}.small-text-right{text-align:right !important}.small-text-center{text-align:center !important}.small-text-justify{text-align:justify !important}}@media only screen and (min-width: 40.0625em) and (max-width: 64em){.medium-only-text-left{text-align:left !important}.medium-only-text-right{text-align:right !important}.medium-only-text-center{text-align:center !important}.medium-only-text-justify{text-align:justify !important}}@media only screen and (min-width: 40.0625em){.medium-text-left{text-align:left !important}.medium-text-right{text-align:right !important}.medium-text-center{text-align:center !important}.medium-text-justify{text-align:justify !important}}@media only screen and (min-width: 64.0625em) and (max-width: 90em){.large-only-text-left{text-align:left !important}.large-only-text-right{text-align:right !important}.large-only-text-center{text-align:center !important}.large-only-text-justify{text-align:justify !important}}@media only screen and (min-width: 64.0625em){.large-text-left{text-align:left !important}.large-text-right{text-align:right !important}.large-text-center{text-align:center !important}.large-text-justify{text-align:justify !important}}@media only screen and (min-width: 90.0625em) and (max-width: 120em){.xlarge-only-text-left{text-align:left !important}.xlarge-only-text-right{text-align:right !important}.xlarge-only-text-center{text-align:center !important}.xlarge-only-text-justify{text-align:justify !important}}@media only screen and (min-width: 90.0625em){.xlarge-text-left{text-align:left !important}.xlarge-text-right{text-align:right !important}.xlarge-text-center{text-align:center !important}.xlarge-text-justify{text-align:justify !important}}@media only screen and (min-width: 120.0625em) and (max-width: 6249999.9375em){.xxlarge-only-text-left{text-align:left !important}.xxlarge-only-text-right{text-align:right !important}.xxlarge-only-text-center{text-align:center !important}.xxlarge-only-text-justify{text-align:justify !important}}@media only screen and (min-width: 120.0625em){.xxlarge-text-left{text-align:left !important}.xxlarge-text-right{text-align:right !important}.xxlarge-text-center{text-align:center !important}.xxlarge-text-justify{text-align:justify !important}}div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0}a{color:#008CBA;line-height:inherit;text-decoration:none}a:hover,a:focus{color:#0078a0}a img{border:none}p{font-family:inherit;font-size:1rem;font-weight:normal;line-height:1.6;margin-bottom:1.25rem;text-rendering:optimizeLegibility}p.lead{font-size:1.21875rem;line-height:1.6}p aside{font-size:0.875rem;font-style:italic;line-height:1.35}h1,h2,h3,h4,h5,h6{color:#222;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:normal;line-height:1.4;margin-bottom:0.5rem;margin-top:0.2rem;text-rendering:optimizeLegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{color:#6f6f6f;font-size:60%;line-height:0}h1{font-size:2.125rem}h2{font-size:1.6875rem}h3{font-size:1.375rem}h4{font-size:1.125rem}h5{font-size:1.125rem}h6{font-size:1rem}.subheader{line-height:1.4;color:#6f6f6f;font-weight:normal;margin-top:0.2rem;margin-bottom:0.5rem}hr{border:solid #ddd;border-width:1px 0 0;clear:both;height:0;margin:1.25rem 0 1.1875rem}em,i{font-style:italic;line-height:inherit}strong,b{font-weight:bold;line-height:inherit}small{font-size:60%;line-height:inherit}code{background-color:#f8f8f8;border-color:#dfdfdf;border-style:solid;border-width:1px;color:#333;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:normal;padding:0.125rem 0.3125rem 0.0625rem}ul,ol,dl{font-family:inherit;font-size:1rem;line-height:1.6;list-style-position:outside;margin-bottom:1.25rem}ul{margin-left:1.1rem}ul.no-bullet{margin-left:0}ul.no-bullet li ul,ul.no-bullet li ol{margin-left:1.25rem;margin-bottom:0;list-style:none}ul li ul,ul li ol{margin-left:1.25rem;margin-bottom:0}ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}ul.square{list-style-type:square;margin-left:1.1rem}ul.circle{list-style-type:circle;margin-left:1.1rem}ul.disc{list-style-type:disc;margin-left:1.1rem}ul.no-bullet{list-style:none}ol{margin-left:1.4rem}ol li ul,ol li ol{margin-left:1.25rem;margin-bottom:0}dl dt{margin-bottom:0.3rem;font-weight:bold}dl dd{margin-bottom:0.75rem}abbr,acronym{text-transform:uppercase;font-size:90%;color:#222;cursor:help}abbr{text-transform:none}abbr[title]{border-bottom:1px dotted #ddd}blockquote{margin:0 0 1.25rem;padding:0.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #ddd}blockquote cite{display:block;font-size:0.8125rem;color:#555}blockquote cite:before{content:"\2014 \0020"}blockquote cite a,blockquote cite a:visited{color:#555}blockquote,blockquote p{line-height:1.6;color:#6f6f6f}.vcard{display:inline-block;margin:0 0 1.25rem 0;border:1px solid #ddd;padding:0.625rem 0.75rem}.vcard li{margin:0;display:block}.vcard .fn{font-weight:bold;font-size:0.9375rem}.vevent .summary{font-weight:bold}.vevent abbr{cursor:default;text-decoration:none;font-weight:bold;border:none;padding:0 0.0625rem}@media only screen and (min-width: 40.0625em){h1,h2,h3,h4,h5,h6{line-height:1.4}h1{font-size:2.75rem}h2{font-size:2.3125rem}h3{font-size:1.6875rem}h4{font-size:1.4375rem}h5{font-size:1.125rem}h6{font-size:1rem}}.split.button{position:relative;padding-right:5.0625rem}.split.button span{display:block;height:100%;position:absolute;right:0;top:0;border-left:solid 1px}.split.button span:after{position:absolute;content:"";width:0;height:0;display:block;border-style:inset;top:50%;left:50%}.split.button span:active{background-color:rgba(0,0,0,0.1)}.split.button span{border-left-color:rgba(255,255,255,0.5)}.split.button span{width:3.09375rem}.split.button span:after{border-top-style:solid;border-width:0.375rem;margin-left:-0.375rem;top:48%}.split.button span:after{border-color:#fff transparent transparent transparent}.split.button.secondary span{border-left-color:rgba(255,255,255,0.5)}.split.button.secondary span:after{border-color:#fff transparent transparent transparent}.split.button.alert span{border-left-color:rgba(255,255,255,0.5)}.split.button.success span{border-left-color:rgba(255,255,255,0.5)}.split.button.tiny{padding-right:3.75rem}.split.button.tiny span{width:2.25rem}.split.button.tiny span:after{border-top-style:solid;border-width:0.375rem;margin-left:-0.375rem;top:48%}.split.button.small{padding-right:4.375rem}.split.button.small span{width:2.625rem}.split.button.small span:after{border-top-style:solid;border-width:0.4375rem;margin-left:-0.375rem;top:48%}.split.button.large{padding-right:5.5rem}.split.button.large span{width:3.4375rem}.split.button.large span:after{border-top-style:solid;border-width:0.3125rem;margin-left:-0.375rem;top:48%}.split.button.expand{padding-left:2rem}.split.button.secondary span:after{border-color:#333 transparent transparent transparent}.split.button.radius span{-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}.split.button.round span{-webkit-border-bottom-right-radius:1000px;-webkit-border-top-right-radius:1000px;border-bottom-right-radius:1000px;border-top-right-radius:1000px}.split.button.no-pip span:before{border-style:none}.split.button.no-pip span:after{border-style:none}.split.button.no-pip span>i{display:block;left:50%;margin-left:-0.28889em;margin-top:-0.48889em;position:absolute;top:50%}.reveal-modal-bg{background:#000;background:rgba(0,0,0,0.45);bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:1004;left:0}.reveal-modal{border-radius:3px;display:none;position:absolute;top:0;visibility:hidden;width:100%;z-index:1005;left:0;background-color:#fff;padding:1.875rem;border:solid 1px #666;box-shadow:0 0 10px rgba(0,0,0,0.4)}@media only screen and (max-width: 40em){.reveal-modal{min-height:100vh}}.reveal-modal .column,.reveal-modal .columns{min-width:0}.reveal-modal>:first-child{margin-top:0}.reveal-modal>:last-child{margin-bottom:0}@media only screen and (min-width: 40.0625em){.reveal-modal{left:0;margin:0 auto;max-width:62.5rem;right:0;width:80%}}@media only screen and (min-width: 40.0625em){.reveal-modal{top:6.25rem}}.reveal-modal.radius{border-radius:3px}.reveal-modal.round{border-radius:1000px}.reveal-modal.collapse{padding:0}@media only screen and (min-width: 40.0625em){.reveal-modal.tiny{left:0;margin:0 auto;max-width:62.5rem;right:0;width:30%}}@media only screen and (min-width: 40.0625em){.reveal-modal.small{left:0;margin:0 auto;max-width:62.5rem;right:0;width:40%}}@media only screen and (min-width: 40.0625em){.reveal-modal.medium{left:0;margin:0 auto;max-width:62.5rem;right:0;width:60%}}@media only screen and (min-width: 40.0625em){.reveal-modal.large{left:0;margin:0 auto;max-width:62.5rem;right:0;width:70%}}@media only screen and (min-width: 40.0625em){.reveal-modal.xlarge{left:0;margin:0 auto;max-width:62.5rem;right:0;width:95%}}.reveal-modal.full{height:100vh;height:100%;left:0;margin-left:0 !important;max-width:none !important;min-height:100vh;top:0}@media only screen and (min-width: 40.0625em){.reveal-modal.full{left:0;margin:0 auto;max-width:62.5rem;right:0;width:100%}}.reveal-modal.toback{z-index:1003}.reveal-modal .close-reveal-modal{color:#aaa;cursor:pointer;font-size:2.5rem;font-weight:bold;line-height:1;position:absolute;top:0.625rem;right:1.375rem}.has-tip{border-bottom:dotted 1px #ccc;color:#333;cursor:help;font-weight:bold}.has-tip:hover,.has-tip:focus{border-bottom:dotted 1px #003f54;color:#008CBA}.has-tip.tip-left,.has-tip.tip-right{float:none !important}.tooltip{background:#333;color:#fff;display:none;font-size:0.875rem;font-weight:normal;line-height:1.3;max-width:300px;padding:0.75rem;position:absolute;width:100%;z-index:1006;left:50%}.tooltip>.nub{border-color:transparent transparent #333 transparent;border:solid 5px;display:block;height:0;pointer-events:none;position:absolute;top:-10px;width:0;left:5px}.tooltip>.nub.rtl{left:auto;right:5px}.tooltip.radius{border-radius:3px}.tooltip.round{border-radius:1000px}.tooltip.round>.nub{left:2rem}.tooltip.opened{border-bottom:dotted 1px #003f54 !important;color:#008CBA !important}.tap-to-close{color:#777;display:block;font-size:0.625rem;font-weight:normal}@media only screen and (min-width: 40.0625em){.tooltip>.nub{border-color:transparent transparent #333 transparent;top:-10px}.tooltip.tip-top>.nub{border-color:#333 transparent transparent transparent;bottom:-10px;top:auto}.tooltip.tip-left,.tooltip.tip-right{float:none !important}.tooltip.tip-left>.nub{border-color:transparent transparent transparent #333;left:auto;margin-top:-5px;right:-10px;top:50%}.tooltip.tip-right>.nub{border-color:transparent #333 transparent transparent;left:-10px;margin-top:-5px;right:auto;top:50%}}.clearing-thumbs,[data-clearing]{list-style:none;margin-left:0;margin-bottom:0}.clearing-thumbs:before,.clearing-thumbs:after,[data-clearing]:before,[data-clearing]:after{content:" ";display:table}.clearing-thumbs:after,[data-clearing]:after{clear:both}.clearing-thumbs li,[data-clearing] li{float:left;margin-right:10px}.clearing-thumbs[class*="block-grid-"] li,[data-clearing][class*="block-grid-"] li{margin-right:0}.clearing-blackout{background:#333;height:100%;position:fixed;top:0;width:100%;z-index:998;left:0}.clearing-blackout .clearing-close{display:block}.clearing-container{height:100%;margin:0;overflow:hidden;position:relative;z-index:998}.clearing-touch-label{color:#aaa;font-size:.6em;left:50%;position:absolute;top:50%}.visible-img{height:95%;position:relative}.visible-img img{position:absolute;left:50%;top:50%;-webkit-transform:translateY(-50%) translateX(-50%);-moz-transform:translateY(-50%) translateX(-50%);-ms-transform:translateY(-50%) translateX(-50%);-o-transform:translateY(-50%) translateX(-50%);transform:translateY(-50%) translateX(-50%);max-height:100%;max-width:100%}.clearing-caption{background:#333;bottom:0;color:#ccc;font-size:0.875em;line-height:1.3;margin-bottom:0;padding:10px 30px 20px;position:absolute;text-align:center;width:100%;left:0}.clearing-close{color:#ccc;display:none;font-size:30px;line-height:1;padding-left:20px;padding-top:10px;z-index:999}.clearing-close:hover,.clearing-close:focus{color:#ccc}.clearing-assembled .clearing-container{height:100%}.clearing-assembled .clearing-container .carousel>ul{display:none}.clearing-feature li{display:none}.clearing-feature li.clearing-featured-img{display:block}@media only screen and (min-width: 40.0625em){.clearing-main-prev,.clearing-main-next{height:100%;position:absolute;top:0;width:40px}.clearing-main-prev>span,.clearing-main-next>span{border:solid 12px;display:block;height:0;position:absolute;top:50%;width:0}.clearing-main-prev>span:hover,.clearing-main-next>span:hover{opacity:.8}.clearing-main-prev{left:0}.clearing-main-prev>span{left:5px;border-color:transparent;border-right-color:#ccc}.clearing-main-next{right:0}.clearing-main-next>span{border-color:transparent;border-left-color:#ccc}.clearing-main-prev.disabled,.clearing-main-next.disabled{opacity:.3}.clearing-assembled .clearing-container .carousel{background:rgba(51,51,51,0.8);height:120px;margin-top:10px;text-align:center}.clearing-assembled .clearing-container .carousel>ul{display:inline-block;z-index:999;height:100%;position:relative;float:none}.clearing-assembled .clearing-container .carousel>ul li{clear:none;cursor:pointer;display:block;float:left;margin-right:0;min-height:inherit;opacity:.4;overflow:hidden;padding:0;position:relative;width:120px}.clearing-assembled .clearing-container .carousel>ul li.fix-height img{height:100%;max-width:none}.clearing-assembled .clearing-container .carousel>ul li a.th{border:none;box-shadow:none;display:block}.clearing-assembled .clearing-container .carousel>ul li img{cursor:pointer !important;width:100% !important}.clearing-assembled .clearing-container .carousel>ul li.visible{opacity:1}.clearing-assembled .clearing-container .carousel>ul li:hover{opacity:.8}.clearing-assembled .clearing-container .visible-img{background:#333;height:85%;overflow:hidden}.clearing-close{padding-left:0;padding-top:0;position:absolute;top:10px;right:20px}}.progress{background-color:#F6F6F6;border:1px solid #fff;height:1.5625rem;margin-bottom:0.625rem;padding:0.125rem}.progress .meter{background:#008CBA;display:block;height:100%}.progress.secondary .meter{background:#e7e7e7;display:block;height:100%}.progress.success .meter{background:#43AC6A;display:block;height:100%}.progress.alert .meter{background:#f04124;display:block;height:100%}.progress.radius{border-radius:3px}.progress.radius .meter{border-radius:2px}.progress.round{border-radius:1000px}.progress.round .meter{border-radius:999px}.sub-nav{display:block;margin:-0.25rem 0 1.125rem;overflow:hidden;padding-top:0.25rem;width:auto}.sub-nav dt{text-transform:uppercase}.sub-nav dt,.sub-nav dd,.sub-nav li{color:#999;float:left;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-size:0.875rem;font-weight:normal;margin-left:1rem;margin-bottom:0}.sub-nav dt a,.sub-nav dd a,.sub-nav li a{color:#999;padding:0.1875rem 1rem;text-decoration:none}.sub-nav dt a:hover,.sub-nav dd a:hover,.sub-nav li a:hover{color:#737373}.sub-nav dt.active a,.sub-nav dd.active a,.sub-nav li.active a{border-radius:3px;background:#008CBA;color:#fff;cursor:default;font-weight:normal;padding:0.1875rem 1rem}.sub-nav dt.active a:hover,.sub-nav dd.active a:hover,.sub-nav li.active a:hover{background:#0078a0}.joyride-list{display:none}.joyride-tip-guide{background:#333;color:#fff;display:none;font-family:inherit;font-weight:normal;position:absolute;top:0;width:95%;z-index:101;left:2.5%}.lt-ie9 .joyride-tip-guide{margin-left:-400px;max-width:800px;left:50%}.joyride-content-wrapper{padding:1.125rem 1.25rem 1.5rem;width:100%}.joyride-content-wrapper .button{margin-bottom:0 !important}.joyride-content-wrapper .joyride-prev-tip{margin-right:10px}.joyride-tip-guide .joyride-nub{border:10px solid #333;display:block;height:0;position:absolute;width:0;left:22px}.joyride-tip-guide .joyride-nub.top{border-color:#333;border-top-color:transparent !important;border-top-style:solid;border-left-color:transparent !important;border-right-color:transparent !important;top:-20px}.joyride-tip-guide .joyride-nub.bottom{border-color:#333 !important;border-bottom-color:transparent !important;border-bottom-style:solid;border-left-color:transparent !important;border-right-color:transparent !important;bottom:-20px}.joyride-tip-guide .joyride-nub.right{right:-20px}.joyride-tip-guide .joyride-nub.left{left:-20px}.joyride-tip-guide h1,.joyride-tip-guide h2,.joyride-tip-guide h3,.joyride-tip-guide h4,.joyride-tip-guide h5,.joyride-tip-guide h6{color:#fff;font-weight:bold;line-height:1.25;margin:0}.joyride-tip-guide p{font-size:0.875rem;line-height:1.3;margin:0 0 1.125rem 0}.joyride-timer-indicator-wrap{border:solid 1px #555;bottom:1rem;height:3px;position:absolute;width:50px;right:1.0625rem}.joyride-timer-indicator{background:#666;display:block;height:inherit;width:0}.joyride-close-tip{color:#777 !important;font-size:24px;font-weight:normal;line-height:.5 !important;position:absolute;text-decoration:none;top:10px;right:12px}.joyride-close-tip:hover,.joyride-close-tip:focus{color:#eee !important}.joyride-modal-bg{background:rgba(0,0,0,0.5);cursor:pointer;display:none;height:100%;position:fixed;top:0;width:100%;z-index:100;left:0}.joyride-expose-wrapper{background-color:#fff;border-radius:3px;box-shadow:0 0 15px #fff;position:absolute;z-index:102}.joyride-expose-cover{background:transparent;border-radius:3px;left:0;position:absolute;top:0;z-index:9999}@media only screen and (min-width: 40.0625em){.joyride-tip-guide{width:300px;left:inherit}.joyride-tip-guide .joyride-nub.bottom{border-color:#333 !important;border-bottom-color:transparent !important;border-left-color:transparent !important;border-right-color:transparent !important;bottom:-20px}.joyride-tip-guide .joyride-nub.right{border-color:#333 !important;border-right-color:transparent !important;border-bottom-color:transparent !important;border-top-color:transparent !important;left:auto;right:-20px;top:22px}.joyride-tip-guide .joyride-nub.left{border-color:#333 !important;border-bottom-color:transparent !important;border-left-color:transparent !important;border-top-color:transparent !important;left:-20px;right:auto;top:22px}}.label{display:inline-block;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:normal;line-height:1;margin-bottom:auto;position:relative;text-align:center;text-decoration:none;white-space:nowrap;padding:0.25rem 0.5rem 0.25rem;font-size:0.6875rem;background-color:#008CBA;color:#fff}.label.radius{border-radius:3px}.label.round{border-radius:1000px}.label.alert{background-color:#f04124;color:#fff}.label.warning{background-color:#f08a24;color:#fff}.label.success{background-color:#43AC6A;color:#fff}.label.secondary{background-color:#e7e7e7;color:#333}.label.info{background-color:#a0d3e8;color:#333}.off-canvas-wrap{-webkit-backface-visibility:hidden;position:relative;width:100%;overflow:hidden}.off-canvas-wrap.move-right,.off-canvas-wrap.move-left{min-height:100%;-webkit-overflow-scrolling:touch}.inner-wrap{position:relative;width:100%;-webkit-transition:-webkit-transform 500ms ease;-moz-transition:-moz-transform 500ms ease;-ms-transition:-ms-transform 500ms ease;-o-transition:-o-transform 500ms ease;transition:transform 500ms ease}.inner-wrap:before,.inner-wrap:after{content:" ";display:table}.inner-wrap:after{clear:both}.tab-bar{-webkit-backface-visibility:hidden;background:#333;color:#fff;height:2.8125rem;line-height:2.8125rem;position:relative}.tab-bar h1,.tab-bar h2,.tab-bar h3,.tab-bar h4,.tab-bar h5,.tab-bar h6{color:#fff;font-weight:bold;line-height:2.8125rem;margin:0}.tab-bar h1,.tab-bar h2,.tab-bar h3,.tab-bar h4{font-size:1.125rem}.left-small{height:2.8125rem;position:absolute;top:0;width:2.8125rem;border-right:solid 1px #1a1a1a;left:0}.right-small{height:2.8125rem;position:absolute;top:0;width:2.8125rem;border-left:solid 1px #1a1a1a;right:0}.tab-bar-section{height:2.8125rem;padding:0 0.625rem;position:absolute;text-align:center;top:0}.tab-bar-section.left{text-align:left}.tab-bar-section.right{text-align:right}.tab-bar-section.left{left:0;right:2.8125rem}.tab-bar-section.right{left:2.8125rem;right:0}.tab-bar-section.middle{left:2.8125rem;right:2.8125rem}.tab-bar .menu-icon{color:#fff;display:block;height:2.8125rem;padding:0;position:relative;text-indent:2.1875rem;transform:translate3d(0, 0, 0);width:2.8125rem}.tab-bar .menu-icon span::after{content:"";display:block;height:0;position:absolute;top:50%;margin-top:-0.5rem;left:0.90625rem;box-shadow:0 0 0 1px #fff,0 7px 0 1px #fff,0 14px 0 1px #fff;width:1rem}.tab-bar .menu-icon span:hover:after{box-shadow:0 0 0 1px #b3b3b3,0 7px 0 1px #b3b3b3,0 14px 0 1px #b3b3b3}.left-off-canvas-menu{-webkit-backface-visibility:hidden;background:#333;bottom:0;box-sizing:content-box;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;overflow-x:hidden;overflow-y:auto;position:absolute;top:0;transition:transform 500ms ease 0s;width:15.625rem;z-index:1001;-webkit-transform:translate3d(-100%, 0, 0);-moz-transform:translate3d(-100%, 0, 0);-ms-transform:translate(-100%, 0);-ms-transform:translate3d(-100%, 0, 0);-o-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.left-off-canvas-menu *{-webkit-backface-visibility:hidden}.right-off-canvas-menu{-webkit-backface-visibility:hidden;background:#333;bottom:0;box-sizing:content-box;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;overflow-x:hidden;overflow-y:auto;position:absolute;top:0;transition:transform 500ms ease 0s;width:15.625rem;z-index:1001;-webkit-transform:translate3d(100%, 0, 0);-moz-transform:translate3d(100%, 0, 0);-ms-transform:translate(100%, 0);-ms-transform:translate3d(100%, 0, 0);-o-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);right:0}.right-off-canvas-menu *{-webkit-backface-visibility:hidden}ul.off-canvas-list{list-style-type:none;margin:0;padding:0}ul.off-canvas-list li label{background:#444;border-bottom:none;border-top:1px solid #5e5e5e;color:#999;display:block;font-size:0.75rem;font-weight:bold;margin:0;padding:0.3rem 0.9375rem;text-transform:uppercase}ul.off-canvas-list li a{border-bottom:1px solid #262626;color:rgba(255,255,255,0.7);display:block;padding:0.66667rem;transition:background 300ms ease}ul.off-canvas-list li a:hover{background:#242424}ul.off-canvas-list li a:active{background:#242424}.move-right>.inner-wrap{-webkit-transform:translate3d(15.625rem, 0, 0);-moz-transform:translate3d(15.625rem, 0, 0);-ms-transform:translate(15.625rem, 0);-ms-transform:translate3d(15.625rem, 0, 0);-o-transform:translate3d(15.625rem, 0, 0);transform:translate3d(15.625rem, 0, 0)}.move-right .exit-off-canvas{-webkit-backface-visibility:hidden;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);cursor:pointer;transition:background 300ms ease;-webkit-tap-highlight-color:transparent;background:rgba(255,255,255,0.2);bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:1002}@media only screen and (min-width: 40.0625em){.move-right .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.move-left>.inner-wrap{-webkit-transform:translate3d(-15.625rem, 0, 0);-moz-transform:translate3d(-15.625rem, 0, 0);-ms-transform:translate(-15.625rem, 0);-ms-transform:translate3d(-15.625rem, 0, 0);-o-transform:translate3d(-15.625rem, 0, 0);transform:translate3d(-15.625rem, 0, 0)}.move-left .exit-off-canvas{-webkit-backface-visibility:hidden;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);cursor:pointer;transition:background 300ms ease;-webkit-tap-highlight-color:transparent;background:rgba(255,255,255,0.2);bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:1002}@media only screen and (min-width: 40.0625em){.move-left .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.offcanvas-overlap .left-off-canvas-menu,.offcanvas-overlap .right-off-canvas-menu{-ms-transform:none;-webkit-transform:none;-moz-transform:none;-o-transform:none;transform:none;z-index:1003}.offcanvas-overlap .exit-off-canvas{-webkit-backface-visibility:hidden;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);cursor:pointer;transition:background 300ms ease;-webkit-tap-highlight-color:transparent;background:rgba(255,255,255,0.2);bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:1002}@media only screen and (min-width: 40.0625em){.offcanvas-overlap .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.offcanvas-overlap-left .right-off-canvas-menu{-ms-transform:none;-webkit-transform:none;-moz-transform:none;-o-transform:none;transform:none;z-index:1003}.offcanvas-overlap-left .exit-off-canvas{-webkit-backface-visibility:hidden;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);cursor:pointer;transition:background 300ms ease;-webkit-tap-highlight-color:transparent;background:rgba(255,255,255,0.2);bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:1002}@media only screen and (min-width: 40.0625em){.offcanvas-overlap-left .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.offcanvas-overlap-right .left-off-canvas-menu{-ms-transform:none;-webkit-transform:none;-moz-transform:none;-o-transform:none;transform:none;z-index:1003}.offcanvas-overlap-right .exit-off-canvas{-webkit-backface-visibility:hidden;box-shadow:-4px 0 4px rgba(0,0,0,0.5),4px 0 4px rgba(0,0,0,0.5);cursor:pointer;transition:background 300ms ease;-webkit-tap-highlight-color:transparent;background:rgba(255,255,255,0.2);bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:1002}@media only screen and (min-width: 40.0625em){.offcanvas-overlap-right .exit-off-canvas:hover{background:rgba(255,255,255,0.05)}}.no-csstransforms .left-off-canvas-menu{left:-15.625rem}.no-csstransforms .right-off-canvas-menu{right:-15.625rem}.no-csstransforms .move-left>.inner-wrap{right:15.625rem}.no-csstransforms .move-right>.inner-wrap{left:15.625rem}.left-submenu{-webkit-backface-visibility:hidden;-webkit-overflow-scrolling:touch;background:#333;bottom:0;box-sizing:content-box;margin:0;overflow-x:hidden;overflow-y:auto;position:absolute;top:0;width:15.625rem;z-index:1002;-webkit-transform:translate3d(-100%, 0, 0);-moz-transform:translate3d(-100%, 0, 0);-ms-transform:translate(-100%, 0);-ms-transform:translate3d(-100%, 0, 0);-o-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0;-webkit-transition:-webkit-transform 500ms ease;-moz-transition:-moz-transform 500ms ease;-ms-transition:-ms-transform 500ms ease;-o-transition:-o-transform 500ms ease;transition:transform 500ms ease}.left-submenu *{-webkit-backface-visibility:hidden}.left-submenu .back>a{background:#444;border-bottom:none;border-top:1px solid #5e5e5e;color:#999;font-weight:bold;padding:0.3rem 0.9375rem;text-transform:uppercase;margin:0}.left-submenu .back>a:hover{background:#303030;border-bottom:none;border-top:1px solid #5e5e5e}.left-submenu .back>a:before{content:"\AB";margin-right:.5rem;display:inline}.left-submenu.move-right,.left-submenu.offcanvas-overlap-right,.left-submenu.offcanvas-overlap{-webkit-transform:translate3d(0%, 0, 0);-moz-transform:translate3d(0%, 0, 0);-ms-transform:translate(0%, 0);-ms-transform:translate3d(0%, 0, 0);-o-transform:translate3d(0%, 0, 0);transform:translate3d(0%, 0, 0)}.right-submenu{-webkit-backface-visibility:hidden;-webkit-overflow-scrolling:touch;background:#333;bottom:0;box-sizing:content-box;margin:0;overflow-x:hidden;overflow-y:auto;position:absolute;top:0;width:15.625rem;z-index:1002;-webkit-transform:translate3d(100%, 0, 0);-moz-transform:translate3d(100%, 0, 0);-ms-transform:translate(100%, 0);-ms-transform:translate3d(100%, 0, 0);-o-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);right:0;-webkit-transition:-webkit-transform 500ms ease;-moz-transition:-moz-transform 500ms ease;-ms-transition:-ms-transform 500ms ease;-o-transition:-o-transform 500ms ease;transition:transform 500ms ease}.right-submenu *{-webkit-backface-visibility:hidden}.right-submenu .back>a{background:#444;border-bottom:none;border-top:1px solid #5e5e5e;color:#999;font-weight:bold;padding:0.3rem 0.9375rem;text-transform:uppercase;margin:0}.right-submenu .back>a:hover{background:#303030;border-bottom:none;border-top:1px solid #5e5e5e}.right-submenu .back>a:after{content:"\BB";margin-left:.5rem;display:inline}.right-submenu.move-left,.right-submenu.offcanvas-overlap-left,.right-submenu.offcanvas-overlap{-webkit-transform:translate3d(0%, 0, 0);-moz-transform:translate3d(0%, 0, 0);-ms-transform:translate(0%, 0);-ms-transform:translate3d(0%, 0, 0);-o-transform:translate3d(0%, 0, 0);transform:translate3d(0%, 0, 0)}.left-off-canvas-menu ul.off-canvas-list li.has-submenu>a:after{content:"\BB";margin-left:.5rem;display:inline}.right-off-canvas-menu ul.off-canvas-list li.has-submenu>a:before{content:"\AB";margin-right:.5rem;display:inline}.f-dropdown{display:none;left:-9999px;list-style:none;margin-left:0;position:absolute;background:#fff;border:solid 1px #ccc;font-size:0.875rem;height:auto;max-height:none;width:100%;z-index:89;margin-top:2px;max-width:200px}.f-dropdown.open{display:block}.f-dropdown>*:first-child{margin-top:0}.f-dropdown>*:last-child{margin-bottom:0}.f-dropdown:before{border:inset 6px;content:"";display:block;height:0;width:0;border-color:transparent transparent #fff transparent;border-bottom-style:solid;position:absolute;top:-12px;left:10px;z-index:89}.f-dropdown:after{border:inset 7px;content:"";display:block;height:0;width:0;border-color:transparent transparent #ccc transparent;border-bottom-style:solid;position:absolute;top:-14px;left:9px;z-index:88}.f-dropdown.right:before{left:auto;right:10px}.f-dropdown.right:after{left:auto;right:9px}.f-dropdown.drop-right{display:none;left:-9999px;list-style:none;margin-left:0;position:absolute;background:#fff;border:solid 1px #ccc;font-size:0.875rem;height:auto;max-height:none;width:100%;z-index:89;margin-top:0;margin-left:2px;max-width:200px}.f-dropdown.drop-right.open{display:block}.f-dropdown.drop-right>*:first-child{margin-top:0}.f-dropdown.drop-right>*:last-child{margin-bottom:0}.f-dropdown.drop-right:before{border:inset 6px;content:"";display:block;height:0;width:0;border-color:transparent #fff transparent transparent;border-right-style:solid;position:absolute;top:10px;left:-12px;z-index:89}.f-dropdown.drop-right:after{border:inset 7px;content:"";display:block;height:0;width:0;border-color:transparent #ccc transparent transparent;border-right-style:solid;position:absolute;top:9px;left:-14px;z-index:88}.f-dropdown.drop-left{display:none;left:-9999px;list-style:none;margin-left:0;position:absolute;background:#fff;border:solid 1px #ccc;font-size:0.875rem;height:auto;max-height:none;width:100%;z-index:89;margin-top:0;margin-left:-2px;max-width:200px}.f-dropdown.drop-left.open{display:block}.f-dropdown.drop-left>*:first-child{margin-top:0}.f-dropdown.drop-left>*:last-child{margin-bottom:0}.f-dropdown.drop-left:before{border:inset 6px;content:"";display:block;height:0;width:0;border-color:transparent transparent transparent #fff;border-left-style:solid;position:absolute;top:10px;right:-12px;left:auto;z-index:89}.f-dropdown.drop-left:after{border:inset 7px;content:"";display:block;height:0;width:0;border-color:transparent transparent transparent #ccc;border-left-style:solid;position:absolute;top:9px;right:-14px;left:auto;z-index:88}.f-dropdown.drop-top{display:none;left:-9999px;list-style:none;margin-left:0;position:absolute;background:#fff;border:solid 1px #ccc;font-size:0.875rem;height:auto;max-height:none;width:100%;z-index:89;margin-left:0;margin-top:-2px;max-width:200px}.f-dropdown.drop-top.open{display:block}.f-dropdown.drop-top>*:first-child{margin-top:0}.f-dropdown.drop-top>*:last-child{margin-bottom:0}.f-dropdown.drop-top:before{border:inset 6px;content:"";display:block;height:0;width:0;border-color:#fff transparent transparent transparent;border-top-style:solid;bottom:-12px;position:absolute;top:auto;left:10px;right:auto;z-index:89}.f-dropdown.drop-top:after{border:inset 7px;content:"";display:block;height:0;width:0;border-color:#ccc transparent transparent transparent;border-top-style:solid;bottom:-14px;position:absolute;top:auto;left:9px;right:auto;z-index:88}.f-dropdown li{cursor:pointer;font-size:0.875rem;line-height:1.125rem;margin:0}.f-dropdown li:hover,.f-dropdown li:focus{background:#eee}.f-dropdown li.radius{border-radius:3px}.f-dropdown li a{display:block;padding:0.5rem;color:#555}.f-dropdown.content{display:none;left:-9999px;list-style:none;margin-left:0;position:absolute;background:#fff;border:solid 1px #ccc;font-size:0.875rem;height:auto;max-height:none;padding:1.25rem;width:100%;z-index:89;max-width:200px}.f-dropdown.content.open{display:block}.f-dropdown.content>*:first-child{margin-top:0}.f-dropdown.content>*:last-child{margin-bottom:0}.f-dropdown.tiny{max-width:200px}.f-dropdown.small{max-width:300px}.f-dropdown.medium{max-width:500px}.f-dropdown.large{max-width:800px}.f-dropdown.mega{width:100% !important;max-width:100% !important}.f-dropdown.mega.open{left:0 !important}table{background:#fff;border:solid 1px #ddd;margin-bottom:1.25rem;table-layout:auto}table caption{background:transparent;color:#222;font-size:1rem;font-weight:bold}table thead{background:#F5F5F5}table thead tr th,table thead tr td{color:#222;font-size:0.875rem;font-weight:bold;padding:0.5rem 0.625rem 0.625rem}table tfoot{background:#F5F5F5}table tfoot tr th,table tfoot tr td{color:#222;font-size:0.875rem;font-weight:bold;padding:0.5rem 0.625rem 0.625rem}table tr th,table tr td{color:#222;font-size:0.875rem;padding:0.5625rem 0.625rem;text-align:left}table tr.even,table tr.alt,table tr:nth-of-type(even){background:#F9F9F9}table thead tr th,table tfoot tr th,table tfoot tr td,table tbody tr th,table tbody tr td,table tr td{display:table-cell;line-height:1.125rem}.range-slider{border:1px solid #ddd;margin:1.25rem 0;position:relative;-ms-touch-action:none;touch-action:none;display:block;height:1rem;width:100%;background:#FAFAFA}.range-slider.vertical-range{border:1px solid #ddd;margin:1.25rem 0;position:relative;-ms-touch-action:none;touch-action:none;display:inline-block;height:12.5rem;width:1rem}.range-slider.vertical-range .range-slider-handle{bottom:-10.5rem;margin-left:-0.5rem;margin-top:0;position:absolute}.range-slider.vertical-range .range-slider-active-segment{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;border-top-left-radius:initial;bottom:0;height:auto;width:0.875rem}.range-slider.radius{background:#FAFAFA;border-radius:3px}.range-slider.radius .range-slider-handle{background:#008CBA;border-radius:3px}.range-slider.radius .range-slider-handle:hover{background:#007ba4}.range-slider.round{background:#FAFAFA;border-radius:1000px}.range-slider.round .range-slider-handle{background:#008CBA;border-radius:1000px}.range-slider.round .range-slider-handle:hover{background:#007ba4}.range-slider.disabled,.range-slider[disabled]{background:#FAFAFA;cursor:not-allowed;opacity:0.7}.range-slider.disabled .range-slider-handle,.range-slider[disabled] .range-slider-handle{background:#008CBA;cursor:default;opacity:0.7}.range-slider.disabled .range-slider-handle:hover,.range-slider[disabled] .range-slider-handle:hover{background:#007ba4}.range-slider-active-segment{background:#e5e5e5;border-bottom-left-radius:inherit;border-top-left-radius:inherit;display:inline-block;height:0.875rem;position:absolute}.range-slider-handle{border:1px solid none;cursor:pointer;display:inline-block;height:1.375rem;position:absolute;top:-0.3125rem;width:2rem;z-index:1;-ms-touch-action:manipulation;touch-action:manipulation;background:#008CBA}.range-slider-handle:hover{background:#007ba4}[class*="block-grid-"]{display:block;padding:0;margin:0 -0.625rem}[class*="block-grid-"]:before,[class*="block-grid-"]:after{content:" ";display:table}[class*="block-grid-"]:after{clear:both}[class*="block-grid-"]>li{display:block;float:left;height:auto;padding:0 0.625rem 1.25rem}@media only screen{.small-block-grid-1>li{list-style:none;width:100%}.small-block-grid-1>li:nth-of-type(1n){clear:none}.small-block-grid-1>li:nth-of-type(1n+1){clear:both}.small-block-grid-2>li{list-style:none;width:50%}.small-block-grid-2>li:nth-of-type(1n){clear:none}.small-block-grid-2>li:nth-of-type(2n+1){clear:both}.small-block-grid-3>li{list-style:none;width:33.33333%}.small-block-grid-3>li:nth-of-type(1n){clear:none}.small-block-grid-3>li:nth-of-type(3n+1){clear:both}.small-block-grid-4>li{list-style:none;width:25%}.small-block-grid-4>li:nth-of-type(1n){clear:none}.small-block-grid-4>li:nth-of-type(4n+1){clear:both}.small-block-grid-5>li{list-style:none;width:20%}.small-block-grid-5>li:nth-of-type(1n){clear:none}.small-block-grid-5>li:nth-of-type(5n+1){clear:both}.small-block-grid-6>li{list-style:none;width:16.66667%}.small-block-grid-6>li:nth-of-type(1n){clear:none}.small-block-grid-6>li:nth-of-type(6n+1){clear:both}.small-block-grid-7>li{list-style:none;width:14.28571%}.small-block-grid-7>li:nth-of-type(1n){clear:none}.small-block-grid-7>li:nth-of-type(7n+1){clear:both}.small-block-grid-8>li{list-style:none;width:12.5%}.small-block-grid-8>li:nth-of-type(1n){clear:none}.small-block-grid-8>li:nth-of-type(8n+1){clear:both}.small-block-grid-9>li{list-style:none;width:11.11111%}.small-block-grid-9>li:nth-of-type(1n){clear:none}.small-block-grid-9>li:nth-of-type(9n+1){clear:both}.small-block-grid-10>li{list-style:none;width:10%}.small-block-grid-10>li:nth-of-type(1n){clear:none}.small-block-grid-10>li:nth-of-type(10n+1){clear:both}.small-block-grid-11>li{list-style:none;width:9.09091%}.small-block-grid-11>li:nth-of-type(1n){clear:none}.small-block-grid-11>li:nth-of-type(11n+1){clear:both}.small-block-grid-12>li{list-style:none;width:8.33333%}.small-block-grid-12>li:nth-of-type(1n){clear:none}.small-block-grid-12>li:nth-of-type(12n+1){clear:both}}@media only screen and (min-width: 40.0625em){.medium-block-grid-1>li{list-style:none;width:100%}.medium-block-grid-1>li:nth-of-type(1n){clear:none}.medium-block-grid-1>li:nth-of-type(1n+1){clear:both}.medium-block-grid-2>li{list-style:none;width:50%}.medium-block-grid-2>li:nth-of-type(1n){clear:none}.medium-block-grid-2>li:nth-of-type(2n+1){clear:both}.medium-block-grid-3>li{list-style:none;width:33.33333%}.medium-block-grid-3>li:nth-of-type(1n){clear:none}.medium-block-grid-3>li:nth-of-type(3n+1){clear:both}.medium-block-grid-4>li{list-style:none;width:25%}.medium-block-grid-4>li:nth-of-type(1n){clear:none}.medium-block-grid-4>li:nth-of-type(4n+1){clear:both}.medium-block-grid-5>li{list-style:none;width:20%}.medium-block-grid-5>li:nth-of-type(1n){clear:none}.medium-block-grid-5>li:nth-of-type(5n+1){clear:both}.medium-block-grid-6>li{list-style:none;width:16.66667%}.medium-block-grid-6>li:nth-of-type(1n){clear:none}.medium-block-grid-6>li:nth-of-type(6n+1){clear:both}.medium-block-grid-7>li{list-style:none;width:14.28571%}.medium-block-grid-7>li:nth-of-type(1n){clear:none}.medium-block-grid-7>li:nth-of-type(7n+1){clear:both}.medium-block-grid-8>li{list-style:none;width:12.5%}.medium-block-grid-8>li:nth-of-type(1n){clear:none}.medium-block-grid-8>li:nth-of-type(8n+1){clear:both}.medium-block-grid-9>li{list-style:none;width:11.11111%}.medium-block-grid-9>li:nth-of-type(1n){clear:none}.medium-block-grid-9>li:nth-of-type(9n+1){clear:both}.medium-block-grid-10>li{list-style:none;width:10%}.medium-block-grid-10>li:nth-of-type(1n){clear:none}.medium-block-grid-10>li:nth-of-type(10n+1){clear:both}.medium-block-grid-11>li{list-style:none;width:9.09091%}.medium-block-grid-11>li:nth-of-type(1n){clear:none}.medium-block-grid-11>li:nth-of-type(11n+1){clear:both}.medium-block-grid-12>li{list-style:none;width:8.33333%}.medium-block-grid-12>li:nth-of-type(1n){clear:none}.medium-block-grid-12>li:nth-of-type(12n+1){clear:both}}@media only screen and (min-width: 64.0625em){.large-block-grid-1>li{list-style:none;width:100%}.large-block-grid-1>li:nth-of-type(1n){clear:none}.large-block-grid-1>li:nth-of-type(1n+1){clear:both}.large-block-grid-2>li{list-style:none;width:50%}.large-block-grid-2>li:nth-of-type(1n){clear:none}.large-block-grid-2>li:nth-of-type(2n+1){clear:both}.large-block-grid-3>li{list-style:none;width:33.33333%}.large-block-grid-3>li:nth-of-type(1n){clear:none}.large-block-grid-3>li:nth-of-type(3n+1){clear:both}.large-block-grid-4>li{list-style:none;width:25%}.large-block-grid-4>li:nth-of-type(1n){clear:none}.large-block-grid-4>li:nth-of-type(4n+1){clear:both}.large-block-grid-5>li{list-style:none;width:20%}.large-block-grid-5>li:nth-of-type(1n){clear:none}.large-block-grid-5>li:nth-of-type(5n+1){clear:both}.large-block-grid-6>li{list-style:none;width:16.66667%}.large-block-grid-6>li:nth-of-type(1n){clear:none}.large-block-grid-6>li:nth-of-type(6n+1){clear:both}.large-block-grid-7>li{list-style:none;width:14.28571%}.large-block-grid-7>li:nth-of-type(1n){clear:none}.large-block-grid-7>li:nth-of-type(7n+1){clear:both}.large-block-grid-8>li{list-style:none;width:12.5%}.large-block-grid-8>li:nth-of-type(1n){clear:none}.large-block-grid-8>li:nth-of-type(8n+1){clear:both}.large-block-grid-9>li{list-style:none;width:11.11111%}.large-block-grid-9>li:nth-of-type(1n){clear:none}.large-block-grid-9>li:nth-of-type(9n+1){clear:both}.large-block-grid-10>li{list-style:none;width:10%}.large-block-grid-10>li:nth-of-type(1n){clear:none}.large-block-grid-10>li:nth-of-type(10n+1){clear:both}.large-block-grid-11>li{list-style:none;width:9.09091%}.large-block-grid-11>li:nth-of-type(1n){clear:none}.large-block-grid-11>li:nth-of-type(11n+1){clear:both}.large-block-grid-12>li{list-style:none;width:8.33333%}.large-block-grid-12>li:nth-of-type(1n){clear:none}.large-block-grid-12>li:nth-of-type(12n+1){clear:both}}.flex-video{height:0;margin-bottom:1rem;overflow:hidden;padding-bottom:67.5%;padding-top:1.5625rem;position:relative}.flex-video.widescreen{padding-bottom:56.34%}.flex-video.vimeo{padding-top:0}.flex-video iframe,.flex-video object,.flex-video embed,.flex-video video{height:100%;position:absolute;top:0;width:100%;left:0}.keystroke,kbd{background-color:#ededed;border-color:#ddd;color:#222;border-style:solid;border-width:1px;font-family:"Consolas","Menlo","Courier",monospace;font-size:inherit;margin:0;padding:0.125rem 0.25rem 0;border-radius:3px}.switch{border:none;margin-bottom:1.5rem;outline:0;padding:0;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.switch label{background:#ddd;color:transparent;cursor:pointer;display:block;margin-bottom:1rem;position:relative;text-indent:100%;width:4rem;height:2rem;transition:left 0.15s ease-out}.switch input{left:10px;opacity:0;padding:0;position:absolute;top:9px}.switch input+label{margin-left:0;margin-right:0}.switch label:after{background:#fff;content:"";display:block;height:1.5rem;left:.25rem;position:absolute;top:.25rem;width:1.5rem;-webkit-transition:left 0.15s ease-out;-moz-transition:left 0.15s ease-out;-o-transition:translate3d(0, 0, 0);transition:left 0.15s ease-out;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.switch input:checked+label{background:#008CBA}.switch input:checked+label:after{left:2.25rem}.switch label{height:2rem;width:4rem}.switch label:after{height:1.5rem;width:1.5rem}.switch input:checked+label:after{left:2.25rem}.switch label{color:transparent;background:#ddd}.switch label:after{background:#fff}.switch input:checked+label{background:#008CBA}.switch.large label{height:2.5rem;width:5rem}.switch.large label:after{height:2rem;width:2rem}.switch.large input:checked+label:after{left:2.75rem}.switch.small label{height:1.75rem;width:3.5rem}.switch.small label:after{height:1.25rem;width:1.25rem}.switch.small input:checked+label:after{left:2rem}.switch.tiny label{height:1.5rem;width:3rem}.switch.tiny label:after{height:1rem;width:1rem}.switch.tiny input:checked+label:after{left:1.75rem}.switch.radius label{border-radius:4px}.switch.radius label:after{border-radius:3px}.switch.round{border-radius:1000px}.switch.round label{border-radius:2rem}.switch.round label:after{border-radius:2rem}@media only screen{.show-for-small-only,.show-for-small-up,.show-for-small,.show-for-small-down,.hide-for-medium-only,.hide-for-medium-up,.hide-for-medium,.show-for-medium-down,.hide-for-large-only,.hide-for-large-up,.hide-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xlarge,.show-for-xlarge-down,.hide-for-xxlarge-only,.hide-for-xxlarge-up,.hide-for-xxlarge,.show-for-xxlarge-down{display:inherit !important}.hide-for-small-only,.hide-for-small-up,.hide-for-small,.hide-for-small-down,.show-for-medium-only,.show-for-medium-up,.show-for-medium,.hide-for-medium-down,.show-for-large-only,.show-for-large-up,.show-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.show-for-xlarge,.hide-for-xlarge-down,.show-for-xxlarge-only,.show-for-xxlarge-up,.show-for-xxlarge,.hide-for-xxlarge-down{display:none !important}.visible-for-small-only,.visible-for-small-up,.visible-for-small,.visible-for-small-down,.hidden-for-medium-only,.hidden-for-medium-up,.hidden-for-medium,.visible-for-medium-down,.hidden-for-large-only,.hidden-for-large-up,.hidden-for-large,.visible-for-large-down,.hidden-for-xlarge-only,.hidden-for-xlarge-up,.hidden-for-xlarge,.visible-for-xlarge-down,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up,.hidden-for-xxlarge,.visible-for-xxlarge-down{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.hidden-for-small-only,.hidden-for-small-up,.hidden-for-small,.hidden-for-small-down,.visible-for-medium-only,.visible-for-medium-up,.visible-for-medium,.hidden-for-medium-down,.visible-for-large-only,.visible-for-large-up,.visible-for-large,.hidden-for-large-down,.visible-for-xlarge-only,.visible-for-xlarge-up,.visible-for-xlarge,.hidden-for-xlarge-down,.visible-for-xxlarge-only,.visible-for-xxlarge-up,.visible-for-xxlarge,.hidden-for-xxlarge-down{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}table.show-for-small-only,table.show-for-small-up,table.show-for-small,table.show-for-small-down,table.hide-for-medium-only,table.hide-for-medium-up,table.hide-for-medium,table.show-for-medium-down,table.hide-for-large-only,table.hide-for-large-up,table.hide-for-large,table.show-for-large-down,table.hide-for-xlarge-only,table.hide-for-xlarge-up,table.hide-for-xlarge,table.show-for-xlarge-down,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up,table.hide-for-xxlarge,table.show-for-xxlarge-down{display:table !important}thead.show-for-small-only,thead.show-for-small-up,thead.show-for-small,thead.show-for-small-down,thead.hide-for-medium-only,thead.hide-for-medium-up,thead.hide-for-medium,thead.show-for-medium-down,thead.hide-for-large-only,thead.hide-for-large-up,thead.hide-for-large,thead.show-for-large-down,thead.hide-for-xlarge-only,thead.hide-for-xlarge-up,thead.hide-for-xlarge,thead.show-for-xlarge-down,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up,thead.hide-for-xxlarge,thead.show-for-xxlarge-down{display:table-header-group !important}tbody.show-for-small-only,tbody.show-for-small-up,tbody.show-for-small,tbody.show-for-small-down,tbody.hide-for-medium-only,tbody.hide-for-medium-up,tbody.hide-for-medium,tbody.show-for-medium-down,tbody.hide-for-large-only,tbody.hide-for-large-up,tbody.hide-for-large,tbody.show-for-large-down,tbody.hide-for-xlarge-only,tbody.hide-for-xlarge-up,tbody.hide-for-xlarge,tbody.show-for-xlarge-down,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up,tbody.hide-for-xxlarge,tbody.show-for-xxlarge-down{display:table-row-group !important}tr.show-for-small-only,tr.show-for-small-up,tr.show-for-small,tr.show-for-small-down,tr.hide-for-medium-only,tr.hide-for-medium-up,tr.hide-for-medium,tr.show-for-medium-down,tr.hide-for-large-only,tr.hide-for-large-up,tr.hide-for-large,tr.show-for-large-down,tr.hide-for-xlarge-only,tr.hide-for-xlarge-up,tr.hide-for-xlarge,tr.show-for-xlarge-down,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up,tr.hide-for-xxlarge,tr.show-for-xxlarge-down{display:table-row}th.show-for-small-only,td.show-for-small-only,th.show-for-small-up,td.show-for-small-up,th.show-for-small,td.show-for-small,th.show-for-small-down,td.show-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.hide-for-medium-up,td.hide-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.show-for-medium-down,td.show-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.hide-for-large-up,td.hide-for-large-up,th.hide-for-large,td.hide-for-large,th.show-for-large-down,td.show-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.hide-for-xlarge-up,td.hide-for-xlarge-up,th.hide-for-xlarge,td.hide-for-xlarge,th.show-for-xlarge-down,td.show-for-xlarge-down,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up,th.hide-for-xxlarge,td.hide-for-xxlarge,th.show-for-xxlarge-down,td.show-for-xxlarge-down{display:table-cell !important}}@media only screen and (min-width: 40.0625em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.show-for-medium-only,.show-for-medium-up,.show-for-medium,.show-for-medium-down,.hide-for-large-only,.hide-for-large-up,.hide-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xlarge,.show-for-xlarge-down,.hide-for-xxlarge-only,.hide-for-xxlarge-up,.hide-for-xxlarge,.show-for-xxlarge-down{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.hide-for-medium-only,.hide-for-medium-up,.hide-for-medium,.hide-for-medium-down,.show-for-large-only,.show-for-large-up,.show-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.show-for-xlarge,.hide-for-xlarge-down,.show-for-xxlarge-only,.show-for-xxlarge-up,.show-for-xxlarge,.hide-for-xxlarge-down{display:none !important}.hidden-for-small-only,.visible-for-small-up,.hidden-for-small,.hidden-for-small-down,.visible-for-medium-only,.visible-for-medium-up,.visible-for-medium,.visible-for-medium-down,.hidden-for-large-only,.hidden-for-large-up,.hidden-for-large,.visible-for-large-down,.hidden-for-xlarge-only,.hidden-for-xlarge-up,.hidden-for-xlarge,.visible-for-xlarge-down,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up,.hidden-for-xxlarge,.visible-for-xxlarge-down{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.visible-for-small-only,.hidden-for-small-up,.visible-for-small,.visible-for-small-down,.hidden-for-medium-only,.hidden-for-medium-up,.hidden-for-medium,.hidden-for-medium-down,.visible-for-large-only,.visible-for-large-up,.visible-for-large,.hidden-for-large-down,.visible-for-xlarge-only,.visible-for-xlarge-up,.visible-for-xlarge,.hidden-for-xlarge-down,.visible-for-xxlarge-only,.visible-for-xxlarge-up,.visible-for-xxlarge,.hidden-for-xxlarge-down{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.show-for-medium-only,table.show-for-medium-up,table.show-for-medium,table.show-for-medium-down,table.hide-for-large-only,table.hide-for-large-up,table.hide-for-large,table.show-for-large-down,table.hide-for-xlarge-only,table.hide-for-xlarge-up,table.hide-for-xlarge,table.show-for-xlarge-down,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up,table.hide-for-xxlarge,table.show-for-xxlarge-down{display:table !important}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.show-for-medium-only,thead.show-for-medium-up,thead.show-for-medium,thead.show-for-medium-down,thead.hide-for-large-only,thead.hide-for-large-up,thead.hide-for-large,thead.show-for-large-down,thead.hide-for-xlarge-only,thead.hide-for-xlarge-up,thead.hide-for-xlarge,thead.show-for-xlarge-down,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up,thead.hide-for-xxlarge,thead.show-for-xxlarge-down{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.show-for-medium-only,tbody.show-for-medium-up,tbody.show-for-medium,tbody.show-for-medium-down,tbody.hide-for-large-only,tbody.hide-for-large-up,tbody.hide-for-large,tbody.show-for-large-down,tbody.hide-for-xlarge-only,tbody.hide-for-xlarge-up,tbody.hide-for-xlarge,tbody.show-for-xlarge-down,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up,tbody.hide-for-xxlarge,tbody.show-for-xxlarge-down{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.show-for-medium-only,tr.show-for-medium-up,tr.show-for-medium,tr.show-for-medium-down,tr.hide-for-large-only,tr.hide-for-large-up,tr.hide-for-large,tr.show-for-large-down,tr.hide-for-xlarge-only,tr.hide-for-xlarge-up,tr.hide-for-xlarge,tr.show-for-xlarge-down,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up,tr.hide-for-xxlarge,tr.show-for-xxlarge-down{display:table-row}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.show-for-medium-only,td.show-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.show-for-medium,td.show-for-medium,th.show-for-medium-down,td.show-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.hide-for-large-up,td.hide-for-large-up,th.hide-for-large,td.hide-for-large,th.show-for-large-down,td.show-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.hide-for-xlarge-up,td.hide-for-xlarge-up,th.hide-for-xlarge,td.hide-for-xlarge,th.show-for-xlarge-down,td.show-for-xlarge-down,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up,th.hide-for-xxlarge,td.hide-for-xxlarge,th.show-for-xxlarge-down,td.show-for-xxlarge-down{display:table-cell !important}}@media only screen and (min-width: 64.0625em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.hide-for-medium-only,.show-for-medium-up,.hide-for-medium,.hide-for-medium-down,.show-for-large-only,.show-for-large-up,.show-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xlarge,.show-for-xlarge-down,.hide-for-xxlarge-only,.hide-for-xxlarge-up,.hide-for-xxlarge,.show-for-xxlarge-down{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.show-for-medium-only,.hide-for-medium-up,.show-for-medium,.show-for-medium-down,.hide-for-large-only,.hide-for-large-up,.hide-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.show-for-xlarge,.hide-for-xlarge-down,.show-for-xxlarge-only,.show-for-xxlarge-up,.show-for-xxlarge,.hide-for-xxlarge-down{display:none !important}.hidden-for-small-only,.visible-for-small-up,.hidden-for-small,.hidden-for-small-down,.hidden-for-medium-only,.visible-for-medium-up,.hidden-for-medium,.hidden-for-medium-down,.visible-for-large-only,.visible-for-large-up,.visible-for-large,.visible-for-large-down,.hidden-for-xlarge-only,.hidden-for-xlarge-up,.hidden-for-xlarge,.visible-for-xlarge-down,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up,.hidden-for-xxlarge,.visible-for-xxlarge-down{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.visible-for-small-only,.hidden-for-small-up,.visible-for-small,.visible-for-small-down,.visible-for-medium-only,.hidden-for-medium-up,.visible-for-medium,.visible-for-medium-down,.hidden-for-large-only,.hidden-for-large-up,.hidden-for-large,.hidden-for-large-down,.visible-for-xlarge-only,.visible-for-xlarge-up,.visible-for-xlarge,.hidden-for-xlarge-down,.visible-for-xxlarge-only,.visible-for-xxlarge-up,.visible-for-xxlarge,.hidden-for-xxlarge-down{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.hide-for-medium-only,table.show-for-medium-up,table.hide-for-medium,table.hide-for-medium-down,table.show-for-large-only,table.show-for-large-up,table.show-for-large,table.show-for-large-down,table.hide-for-xlarge-only,table.hide-for-xlarge-up,table.hide-for-xlarge,table.show-for-xlarge-down,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up,table.hide-for-xxlarge,table.show-for-xxlarge-down{display:table !important}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.hide-for-medium-only,thead.show-for-medium-up,thead.hide-for-medium,thead.hide-for-medium-down,thead.show-for-large-only,thead.show-for-large-up,thead.show-for-large,thead.show-for-large-down,thead.hide-for-xlarge-only,thead.hide-for-xlarge-up,thead.hide-for-xlarge,thead.show-for-xlarge-down,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up,thead.hide-for-xxlarge,thead.show-for-xxlarge-down{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.hide-for-medium-only,tbody.show-for-medium-up,tbody.hide-for-medium,tbody.hide-for-medium-down,tbody.show-for-large-only,tbody.show-for-large-up,tbody.show-for-large,tbody.show-for-large-down,tbody.hide-for-xlarge-only,tbody.hide-for-xlarge-up,tbody.hide-for-xlarge,tbody.show-for-xlarge-down,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up,tbody.hide-for-xxlarge,tbody.show-for-xxlarge-down{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.hide-for-medium-only,tr.show-for-medium-up,tr.hide-for-medium,tr.hide-for-medium-down,tr.show-for-large-only,tr.show-for-large-up,tr.show-for-large,tr.show-for-large-down,tr.hide-for-xlarge-only,tr.hide-for-xlarge-up,tr.hide-for-xlarge,tr.show-for-xlarge-down,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up,tr.hide-for-xxlarge,tr.show-for-xxlarge-down{display:table-row}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.hide-for-medium-down,td.hide-for-medium-down,th.show-for-large-only,td.show-for-large-only,th.show-for-large-up,td.show-for-large-up,th.show-for-large,td.show-for-large,th.show-for-large-down,td.show-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.hide-for-xlarge-up,td.hide-for-xlarge-up,th.hide-for-xlarge,td.hide-for-xlarge,th.show-for-xlarge-down,td.show-for-xlarge-down,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up,th.hide-for-xxlarge,td.hide-for-xxlarge,th.show-for-xxlarge-down,td.show-for-xxlarge-down{display:table-cell !important}}@media only screen and (min-width: 90.0625em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.hide-for-medium-only,.show-for-medium-up,.hide-for-medium,.hide-for-medium-down,.hide-for-large-only,.show-for-large-up,.hide-for-large,.hide-for-large-down,.show-for-xlarge-only,.show-for-xlarge-up,.show-for-xlarge,.show-for-xlarge-down,.hide-for-xxlarge-only,.hide-for-xxlarge-up,.hide-for-xxlarge,.show-for-xxlarge-down{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.show-for-medium-only,.hide-for-medium-up,.show-for-medium,.show-for-medium-down,.show-for-large-only,.hide-for-large-up,.show-for-large,.show-for-large-down,.hide-for-xlarge-only,.hide-for-xlarge-up,.hide-for-xlarge,.hide-for-xlarge-down,.show-for-xxlarge-only,.show-for-xxlarge-up,.show-for-xxlarge,.hide-for-xxlarge-down{display:none !important}.hidden-for-small-only,.visible-for-small-up,.hidden-for-small,.hidden-for-small-down,.hidden-for-medium-only,.visible-for-medium-up,.hidden-for-medium,.hidden-for-medium-down,.hidden-for-large-only,.visible-for-large-up,.hidden-for-large,.hidden-for-large-down,.visible-for-xlarge-only,.visible-for-xlarge-up,.visible-for-xlarge,.visible-for-xlarge-down,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up,.hidden-for-xxlarge,.visible-for-xxlarge-down{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.visible-for-small-only,.hidden-for-small-up,.visible-for-small,.visible-for-small-down,.visible-for-medium-only,.hidden-for-medium-up,.visible-for-medium,.visible-for-medium-down,.visible-for-large-only,.hidden-for-large-up,.visible-for-large,.visible-for-large-down,.hidden-for-xlarge-only,.hidden-for-xlarge-up,.hidden-for-xlarge,.hidden-for-xlarge-down,.visible-for-xxlarge-only,.visible-for-xxlarge-up,.visible-for-xxlarge,.hidden-for-xxlarge-down{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.hide-for-medium-only,table.show-for-medium-up,table.hide-for-medium,table.hide-for-medium-down,table.hide-for-large-only,table.show-for-large-up,table.hide-for-large,table.hide-for-large-down,table.show-for-xlarge-only,table.show-for-xlarge-up,table.show-for-xlarge,table.show-for-xlarge-down,table.hide-for-xxlarge-only,table.hide-for-xxlarge-up,table.hide-for-xxlarge,table.show-for-xxlarge-down{display:table !important}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.hide-for-medium-only,thead.show-for-medium-up,thead.hide-for-medium,thead.hide-for-medium-down,thead.hide-for-large-only,thead.show-for-large-up,thead.hide-for-large,thead.hide-for-large-down,thead.show-for-xlarge-only,thead.show-for-xlarge-up,thead.show-for-xlarge,thead.show-for-xlarge-down,thead.hide-for-xxlarge-only,thead.hide-for-xxlarge-up,thead.hide-for-xxlarge,thead.show-for-xxlarge-down{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.hide-for-medium-only,tbody.show-for-medium-up,tbody.hide-for-medium,tbody.hide-for-medium-down,tbody.hide-for-large-only,tbody.show-for-large-up,tbody.hide-for-large,tbody.hide-for-large-down,tbody.show-for-xlarge-only,tbody.show-for-xlarge-up,tbody.show-for-xlarge,tbody.show-for-xlarge-down,tbody.hide-for-xxlarge-only,tbody.hide-for-xxlarge-up,tbody.hide-for-xxlarge,tbody.show-for-xxlarge-down{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.hide-for-medium-only,tr.show-for-medium-up,tr.hide-for-medium,tr.hide-for-medium-down,tr.hide-for-large-only,tr.show-for-large-up,tr.hide-for-large,tr.hide-for-large-down,tr.show-for-xlarge-only,tr.show-for-xlarge-up,tr.show-for-xlarge,tr.show-for-xlarge-down,tr.hide-for-xxlarge-only,tr.hide-for-xxlarge-up,tr.hide-for-xxlarge,tr.show-for-xxlarge-down{display:table-row}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.hide-for-medium-down,td.hide-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.show-for-large-up,td.show-for-large-up,th.hide-for-large,td.hide-for-large,th.hide-for-large-down,td.hide-for-large-down,th.show-for-xlarge-only,td.show-for-xlarge-only,th.show-for-xlarge-up,td.show-for-xlarge-up,th.show-for-xlarge,td.show-for-xlarge,th.show-for-xlarge-down,td.show-for-xlarge-down,th.hide-for-xxlarge-only,td.hide-for-xxlarge-only,th.hide-for-xxlarge-up,td.hide-for-xxlarge-up,th.hide-for-xxlarge,td.hide-for-xxlarge,th.show-for-xxlarge-down,td.show-for-xxlarge-down{display:table-cell !important}}@media only screen and (min-width: 120.0625em){.hide-for-small-only,.show-for-small-up,.hide-for-small,.hide-for-small-down,.hide-for-medium-only,.show-for-medium-up,.hide-for-medium,.hide-for-medium-down,.hide-for-large-only,.show-for-large-up,.hide-for-large,.hide-for-large-down,.hide-for-xlarge-only,.show-for-xlarge-up,.hide-for-xlarge,.hide-for-xlarge-down,.show-for-xxlarge-only,.show-for-xxlarge-up,.show-for-xxlarge,.show-for-xxlarge-down{display:inherit !important}.show-for-small-only,.hide-for-small-up,.show-for-small,.show-for-small-down,.show-for-medium-only,.hide-for-medium-up,.show-for-medium,.show-for-medium-down,.show-for-large-only,.hide-for-large-up,.show-for-large,.show-for-large-down,.show-for-xlarge-only,.hide-for-xlarge-up,.show-for-xlarge,.show-for-xlarge-down,.hide-for-xxlarge-only,.hide-for-xxlarge-up,.hide-for-xxlarge,.hide-for-xxlarge-down{display:none !important}.hidden-for-small-only,.visible-for-small-up,.hidden-for-small,.hidden-for-small-down,.hidden-for-medium-only,.visible-for-medium-up,.hidden-for-medium,.hidden-for-medium-down,.hidden-for-large-only,.visible-for-large-up,.hidden-for-large,.hidden-for-large-down,.hidden-for-xlarge-only,.visible-for-xlarge-up,.hidden-for-xlarge,.hidden-for-xlarge-down,.visible-for-xxlarge-only,.visible-for-xxlarge-up,.visible-for-xxlarge,.visible-for-xxlarge-down{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.visible-for-small-only,.hidden-for-small-up,.visible-for-small,.visible-for-small-down,.visible-for-medium-only,.hidden-for-medium-up,.visible-for-medium,.visible-for-medium-down,.visible-for-large-only,.hidden-for-large-up,.visible-for-large,.visible-for-large-down,.visible-for-xlarge-only,.hidden-for-xlarge-up,.visible-for-xlarge,.visible-for-xlarge-down,.hidden-for-xxlarge-only,.hidden-for-xxlarge-up,.hidden-for-xxlarge,.hidden-for-xxlarge-down{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}table.hide-for-small-only,table.show-for-small-up,table.hide-for-small,table.hide-for-small-down,table.hide-for-medium-only,table.show-for-medium-up,table.hide-for-medium,table.hide-for-medium-down,table.hide-for-large-only,table.show-for-large-up,table.hide-for-large,table.hide-for-large-down,table.hide-for-xlarge-only,table.show-for-xlarge-up,table.hide-for-xlarge,table.hide-for-xlarge-down,table.show-for-xxlarge-only,table.show-for-xxlarge-up,table.show-for-xxlarge,table.show-for-xxlarge-down{display:table !important}thead.hide-for-small-only,thead.show-for-small-up,thead.hide-for-small,thead.hide-for-small-down,thead.hide-for-medium-only,thead.show-for-medium-up,thead.hide-for-medium,thead.hide-for-medium-down,thead.hide-for-large-only,thead.show-for-large-up,thead.hide-for-large,thead.hide-for-large-down,thead.hide-for-xlarge-only,thead.show-for-xlarge-up,thead.hide-for-xlarge,thead.hide-for-xlarge-down,thead.show-for-xxlarge-only,thead.show-for-xxlarge-up,thead.show-for-xxlarge,thead.show-for-xxlarge-down{display:table-header-group !important}tbody.hide-for-small-only,tbody.show-for-small-up,tbody.hide-for-small,tbody.hide-for-small-down,tbody.hide-for-medium-only,tbody.show-for-medium-up,tbody.hide-for-medium,tbody.hide-for-medium-down,tbody.hide-for-large-only,tbody.show-for-large-up,tbody.hide-for-large,tbody.hide-for-large-down,tbody.hide-for-xlarge-only,tbody.show-for-xlarge-up,tbody.hide-for-xlarge,tbody.hide-for-xlarge-down,tbody.show-for-xxlarge-only,tbody.show-for-xxlarge-up,tbody.show-for-xxlarge,tbody.show-for-xxlarge-down{display:table-row-group !important}tr.hide-for-small-only,tr.show-for-small-up,tr.hide-for-small,tr.hide-for-small-down,tr.hide-for-medium-only,tr.show-for-medium-up,tr.hide-for-medium,tr.hide-for-medium-down,tr.hide-for-large-only,tr.show-for-large-up,tr.hide-for-large,tr.hide-for-large-down,tr.hide-for-xlarge-only,tr.show-for-xlarge-up,tr.hide-for-xlarge,tr.hide-for-xlarge-down,tr.show-for-xxlarge-only,tr.show-for-xxlarge-up,tr.show-for-xxlarge,tr.show-for-xxlarge-down{display:table-row}th.hide-for-small-only,td.hide-for-small-only,th.show-for-small-up,td.show-for-small-up,th.hide-for-small,td.hide-for-small,th.hide-for-small-down,td.hide-for-small-down,th.hide-for-medium-only,td.hide-for-medium-only,th.show-for-medium-up,td.show-for-medium-up,th.hide-for-medium,td.hide-for-medium,th.hide-for-medium-down,td.hide-for-medium-down,th.hide-for-large-only,td.hide-for-large-only,th.show-for-large-up,td.show-for-large-up,th.hide-for-large,td.hide-for-large,th.hide-for-large-down,td.hide-for-large-down,th.hide-for-xlarge-only,td.hide-for-xlarge-only,th.show-for-xlarge-up,td.show-for-xlarge-up,th.hide-for-xlarge,td.hide-for-xlarge,th.hide-for-xlarge-down,td.hide-for-xlarge-down,th.show-for-xxlarge-only,td.show-for-xxlarge-only,th.show-for-xxlarge-up,td.show-for-xxlarge-up,th.show-for-xxlarge,td.show-for-xxlarge,th.show-for-xxlarge-down,td.show-for-xxlarge-down{display:table-cell !important}}.show-for-landscape,.hide-for-portrait{display:inherit !important}.hide-for-landscape,.show-for-portrait{display:none !important}table.hide-for-landscape,table.show-for-portrait{display:table !important}thead.hide-for-landscape,thead.show-for-portrait{display:table-header-group !important}tbody.hide-for-landscape,tbody.show-for-portrait{display:table-row-group !important}tr.hide-for-landscape,tr.show-for-portrait{display:table-row !important}td.hide-for-landscape,td.show-for-portrait,th.hide-for-landscape,th.show-for-portrait{display:table-cell !important}@media only screen and (orientation: landscape){.show-for-landscape,.hide-for-portrait{display:inherit !important}.hide-for-landscape,.show-for-portrait{display:none !important}table.show-for-landscape,table.hide-for-portrait{display:table !important}thead.show-for-landscape,thead.hide-for-portrait{display:table-header-group !important}tbody.show-for-landscape,tbody.hide-for-portrait{display:table-row-group !important}tr.show-for-landscape,tr.hide-for-portrait{display:table-row !important}td.show-for-landscape,td.hide-for-portrait,th.show-for-landscape,th.hide-for-portrait{display:table-cell !important}}@media only screen and (orientation: portrait){.show-for-portrait,.hide-for-landscape{display:inherit !important}.hide-for-portrait,.show-for-landscape{display:none !important}table.show-for-portrait,table.hide-for-landscape{display:table !important}thead.show-for-portrait,thead.hide-for-landscape{display:table-header-group !important}tbody.show-for-portrait,tbody.hide-for-landscape{display:table-row-group !important}tr.show-for-portrait,tr.hide-for-landscape{display:table-row !important}td.show-for-portrait,td.hide-for-landscape,th.show-for-portrait,th.hide-for-landscape{display:table-cell !important}}.show-for-touch{display:none !important}.hide-for-touch{display:inherit !important}.touch .show-for-touch{display:inherit !important}.touch .hide-for-touch{display:none !important}table.hide-for-touch{display:table !important}.touch table.show-for-touch{display:table !important}thead.hide-for-touch{display:table-header-group !important}.touch thead.show-for-touch{display:table-header-group !important}tbody.hide-for-touch{display:table-row-group !important}.touch tbody.show-for-touch{display:table-row-group !important}tr.hide-for-touch{display:table-row !important}.touch tr.show-for-touch{display:table-row !important}td.hide-for-touch{display:table-cell !important}.touch td.show-for-touch{display:table-cell !important}th.hide-for-touch{display:table-cell !important}.touch th.show-for-touch{display:table-cell !important}.show-for-sr{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}.show-on-focus{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}.show-on-focus:focus,.show-on-focus:active{position:static !important;height:auto;width:auto;overflow:visible;clip:auto}.print-only{display:none !important}@media print{*{background:transparent !important;box-shadow:none !important;color:#000 !important;text-shadow:none !important}.show-for-print{display:block}.hide-for-print{display:none}table.show-for-print{display:table !important}thead.show-for-print{display:table-header-group !important}tbody.show-for-print{display:table-row-group !important}tr.show-for-print{display:table-row !important}td.show-for-print{display:table-cell !important}th.show-for-print{display:table-cell !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.hide-on-print{display:none !important}.print-only{display:block !important}.hide-for-print{display:none !important}.show-for-print{display:inherit !important}}@media print{.show-for-print{display:block}.hide-for-print{display:none}table.show-for-print{display:table !important}thead.show-for-print{display:table-header-group !important}tbody.show-for-print{display:table-row-group !important}tr.show-for-print{display:table-row !important}td.show-for-print{display:table-cell !important}th.show-for-print{display:table-cell !important}}@media not print{.show-for-print{display:none !important}}
+@charset "UTF-8";
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:not-allowed}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.foundation-mq{font-family:"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"}html{font-size:100%;box-sizing:border-box}*,:after,:before{box-sizing:inherit}body{padding:0;margin:0;font-family:Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:#0a0a0a;background:#fefefe;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;height:auto;-ms-interpolation-mode:bicubic;display:inline-block;vertical-align:middle}textarea{height:auto;min-height:50px;border-radius:0}select{width:100%;border-radius:0}#map_canvas embed,#map_canvas img,#map_canvas object,.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{-webkit-appearance:none;-moz-appearance:none;background:transparent;padding:0;border:0;border-radius:0;line-height:1}[data-whatinput=mouse] button{outline:0}.is-visible{display:block!important}.is-hidden{display:none!important}.row{max-width:75rem;margin-left:auto;margin-right:auto}.row:after,.row:before{content:' ';display:table}.row:after{clear:both}.row.collapse>.column,.row.collapse>.columns{padding-left:0;padding-right:0}.row .row{max-width:none;margin-left:-.625rem;margin-right:-.625rem}@media screen and (min-width:40em){.row .row{margin-left:-.9375rem;margin-right:-.9375rem}}.row .row.collapse{margin-left:0;margin-right:0}.row.expanded{max-width:none}.row.expanded .row{margin-left:auto;margin-right:auto}.column,.columns{width:100%;float:left;padding-left:.625rem;padding-right:.625rem}@media screen and (min-width:40em){.column,.columns{padding-left:.9375rem;padding-right:.9375rem}}.column:last-child:not(:first-child),.columns:last-child:not(:first-child){float:right}.column.end:last-child:last-child,.end.columns:last-child:last-child{float:left}.column.row.row,.row.row.columns{float:none}.row .column.row.row,.row .row.row.columns{padding-left:0;padding-right:0;margin-left:0;margin-right:0}.small-1{width:8.33333%}.small-push-1{position:relative;left:8.33333%}.small-pull-1{position:relative;left:-8.33333%}.small-offset-0{margin-left:0}.small-2{width:16.66667%}.small-push-2{position:relative;left:16.66667%}.small-pull-2{position:relative;left:-16.66667%}.small-offset-1{margin-left:8.33333%}.small-3{width:25%}.small-push-3{position:relative;left:25%}.small-pull-3{position:relative;left:-25%}.small-offset-2{margin-left:16.66667%}.small-4{width:33.33333%}.small-push-4{position:relative;left:33.33333%}.small-pull-4{position:relative;left:-33.33333%}.small-offset-3{margin-left:25%}.small-5{width:41.66667%}.small-push-5{position:relative;left:41.66667%}.small-pull-5{position:relative;left:-41.66667%}.small-offset-4{margin-left:33.33333%}.small-6{width:50%}.small-push-6{position:relative;left:50%}.small-pull-6{position:relative;left:-50%}.small-offset-5{margin-left:41.66667%}.small-7{width:58.33333%}.small-push-7{position:relative;left:58.33333%}.small-pull-7{position:relative;left:-58.33333%}.small-offset-6{margin-left:50%}.small-8{width:66.66667%}.small-push-8{position:relative;left:66.66667%}.small-pull-8{position:relative;left:-66.66667%}.small-offset-7{margin-left:58.33333%}.small-9{width:75%}.small-push-9{position:relative;left:75%}.small-pull-9{position:relative;left:-75%}.small-offset-8{margin-left:66.66667%}.small-10{width:83.33333%}.small-push-10{position:relative;left:83.33333%}.small-pull-10{position:relative;left:-83.33333%}.small-offset-9{margin-left:75%}.small-11{width:91.66667%}.small-push-11{position:relative;left:91.66667%}.small-pull-11{position:relative;left:-91.66667%}.small-offset-10{margin-left:83.33333%}.small-12{width:100%}.small-offset-11{margin-left:91.66667%}.small-up-1>.column,.small-up-1>.columns{width:100%;float:left}.small-up-1>.column:nth-of-type(1n),.small-up-1>.columns:nth-of-type(1n){clear:none}.small-up-1>.column:nth-of-type(1n+1),.small-up-1>.columns:nth-of-type(1n+1){clear:both}.small-up-1>.column:last-child,.small-up-1>.columns:last-child{float:left}.small-up-2>.column,.small-up-2>.columns{width:50%;float:left}.small-up-2>.column:nth-of-type(1n),.small-up-2>.columns:nth-of-type(1n){clear:none}.small-up-2>.column:nth-of-type(2n+1),.small-up-2>.columns:nth-of-type(2n+1){clear:both}.small-up-2>.column:last-child,.small-up-2>.columns:last-child{float:left}.small-up-3>.column,.small-up-3>.columns{width:33.33333%;float:left}.small-up-3>.column:nth-of-type(1n),.small-up-3>.columns:nth-of-type(1n){clear:none}.small-up-3>.column:nth-of-type(3n+1),.small-up-3>.columns:nth-of-type(3n+1){clear:both}.small-up-3>.column:last-child,.small-up-3>.columns:last-child{float:left}.small-up-4>.column,.small-up-4>.columns{width:25%;float:left}.small-up-4>.column:nth-of-type(1n),.small-up-4>.columns:nth-of-type(1n){clear:none}.small-up-4>.column:nth-of-type(4n+1),.small-up-4>.columns:nth-of-type(4n+1){clear:both}.small-up-4>.column:last-child,.small-up-4>.columns:last-child{float:left}.small-up-5>.column,.small-up-5>.columns{width:20%;float:left}.small-up-5>.column:nth-of-type(1n),.small-up-5>.columns:nth-of-type(1n){clear:none}.small-up-5>.column:nth-of-type(5n+1),.small-up-5>.columns:nth-of-type(5n+1){clear:both}.small-up-5>.column:last-child,.small-up-5>.columns:last-child{float:left}.small-up-6>.column,.small-up-6>.columns{width:16.66667%;float:left}.small-up-6>.column:nth-of-type(1n),.small-up-6>.columns:nth-of-type(1n){clear:none}.small-up-6>.column:nth-of-type(6n+1),.small-up-6>.columns:nth-of-type(6n+1){clear:both}.small-up-6>.column:last-child,.small-up-6>.columns:last-child{float:left}.small-up-7>.column,.small-up-7>.columns{width:14.28571%;float:left}.small-up-7>.column:nth-of-type(1n),.small-up-7>.columns:nth-of-type(1n){clear:none}.small-up-7>.column:nth-of-type(7n+1),.small-up-7>.columns:nth-of-type(7n+1){clear:both}.small-up-7>.column:last-child,.small-up-7>.columns:last-child{float:left}.small-up-8>.column,.small-up-8>.columns{width:12.5%;float:left}.small-up-8>.column:nth-of-type(1n),.small-up-8>.columns:nth-of-type(1n){clear:none}.small-up-8>.column:nth-of-type(8n+1),.small-up-8>.columns:nth-of-type(8n+1){clear:both}.small-up-8>.column:last-child,.small-up-8>.columns:last-child{float:left}.small-collapse>.column,.small-collapse>.columns{padding-left:0;padding-right:0}.expanded.row .small-collapse.row,.small-collapse .row{margin-left:0;margin-right:0}.small-uncollapse>.column,.small-uncollapse>.columns{padding-left:.625rem;padding-right:.625rem}.small-centered{float:none;margin-left:auto;margin-right:auto}.small-pull-0,.small-push-0,.small-uncentered{position:static;margin-left:0;margin-right:0;float:left}@media screen and (min-width:40em){.medium-1{width:8.33333%}.medium-push-1{position:relative;left:8.33333%}.medium-pull-1{position:relative;left:-8.33333%}.medium-offset-0{margin-left:0}.medium-2{width:16.66667%}.medium-push-2{position:relative;left:16.66667%}.medium-pull-2{position:relative;left:-16.66667%}.medium-offset-1{margin-left:8.33333%}.medium-3{width:25%}.medium-push-3{position:relative;left:25%}.medium-pull-3{position:relative;left:-25%}.medium-offset-2{margin-left:16.66667%}.medium-4{width:33.33333%}.medium-push-4{position:relative;left:33.33333%}.medium-pull-4{position:relative;left:-33.33333%}.medium-offset-3{margin-left:25%}.medium-5{width:41.66667%}.medium-push-5{position:relative;left:41.66667%}.medium-pull-5{position:relative;left:-41.66667%}.medium-offset-4{margin-left:33.33333%}.medium-6{width:50%}.medium-push-6{position:relative;left:50%}.medium-pull-6{position:relative;left:-50%}.medium-offset-5{margin-left:41.66667%}.medium-7{width:58.33333%}.medium-push-7{position:relative;left:58.33333%}.medium-pull-7{position:relative;left:-58.33333%}.medium-offset-6{margin-left:50%}.medium-8{width:66.66667%}.medium-push-8{position:relative;left:66.66667%}.medium-pull-8{position:relative;left:-66.66667%}.medium-offset-7{margin-left:58.33333%}.medium-9{width:75%}.medium-push-9{position:relative;left:75%}.medium-pull-9{position:relative;left:-75%}.medium-offset-8{margin-left:66.66667%}.medium-10{width:83.33333%}.medium-push-10{position:relative;left:83.33333%}.medium-pull-10{position:relative;left:-83.33333%}.medium-offset-9{margin-left:75%}.medium-11{width:91.66667%}.medium-push-11{position:relative;left:91.66667%}.medium-pull-11{position:relative;left:-91.66667%}.medium-offset-10{margin-left:83.33333%}.medium-12{width:100%}.medium-offset-11{margin-left:91.66667%}.medium-up-1>.column,.medium-up-1>.columns{width:100%;float:left}.medium-up-1>.column:nth-of-type(1n),.medium-up-1>.columns:nth-of-type(1n){clear:none}.medium-up-1>.column:nth-of-type(1n+1),.medium-up-1>.columns:nth-of-type(1n+1){clear:both}.medium-up-1>.column:last-child,.medium-up-1>.columns:last-child{float:left}.medium-up-2>.column,.medium-up-2>.columns{width:50%;float:left}.medium-up-2>.column:nth-of-type(1n),.medium-up-2>.columns:nth-of-type(1n){clear:none}.medium-up-2>.column:nth-of-type(2n+1),.medium-up-2>.columns:nth-of-type(2n+1){clear:both}.medium-up-2>.column:last-child,.medium-up-2>.columns:last-child{float:left}.medium-up-3>.column,.medium-up-3>.columns{width:33.33333%;float:left}.medium-up-3>.column:nth-of-type(1n),.medium-up-3>.columns:nth-of-type(1n){clear:none}.medium-up-3>.column:nth-of-type(3n+1),.medium-up-3>.columns:nth-of-type(3n+1){clear:both}.medium-up-3>.column:last-child,.medium-up-3>.columns:last-child{float:left}.medium-up-4>.column,.medium-up-4>.columns{width:25%;float:left}.medium-up-4>.column:nth-of-type(1n),.medium-up-4>.columns:nth-of-type(1n){clear:none}.medium-up-4>.column:nth-of-type(4n+1),.medium-up-4>.columns:nth-of-type(4n+1){clear:both}.medium-up-4>.column:last-child,.medium-up-4>.columns:last-child{float:left}.medium-up-5>.column,.medium-up-5>.columns{width:20%;float:left}.medium-up-5>.column:nth-of-type(1n),.medium-up-5>.columns:nth-of-type(1n){clear:none}.medium-up-5>.column:nth-of-type(5n+1),.medium-up-5>.columns:nth-of-type(5n+1){clear:both}.medium-up-5>.column:last-child,.medium-up-5>.columns:last-child{float:left}.medium-up-6>.column,.medium-up-6>.columns{width:16.66667%;float:left}.medium-up-6>.column:nth-of-type(1n),.medium-up-6>.columns:nth-of-type(1n){clear:none}.medium-up-6>.column:nth-of-type(6n+1),.medium-up-6>.columns:nth-of-type(6n+1){clear:both}.medium-up-6>.column:last-child,.medium-up-6>.columns:last-child{float:left}.medium-up-7>.column,.medium-up-7>.columns{width:14.28571%;float:left}.medium-up-7>.column:nth-of-type(1n),.medium-up-7>.columns:nth-of-type(1n){clear:none}.medium-up-7>.column:nth-of-type(7n+1),.medium-up-7>.columns:nth-of-type(7n+1){clear:both}.medium-up-7>.column:last-child,.medium-up-7>.columns:last-child{float:left}.medium-up-8>.column,.medium-up-8>.columns{width:12.5%;float:left}.medium-up-8>.column:nth-of-type(1n),.medium-up-8>.columns:nth-of-type(1n){clear:none}.medium-up-8>.column:nth-of-type(8n+1),.medium-up-8>.columns:nth-of-type(8n+1){clear:both}.medium-up-8>.column:last-child,.medium-up-8>.columns:last-child{float:left}.medium-collapse>.column,.medium-collapse>.columns{padding-left:0;padding-right:0}.expanded.row .medium-collapse.row,.medium-collapse .row{margin-left:0;margin-right:0}.medium-uncollapse>.column,.medium-uncollapse>.columns{padding-left:.9375rem;padding-right:.9375rem}.medium-centered{float:none;margin-left:auto;margin-right:auto}.medium-pull-0,.medium-push-0,.medium-uncentered{position:static;margin-left:0;margin-right:0;float:left}}@media screen and (min-width:64em){.large-1{width:8.33333%}.large-push-1{position:relative;left:8.33333%}.large-pull-1{position:relative;left:-8.33333%}.large-offset-0{margin-left:0}.large-2{width:16.66667%}.large-push-2{position:relative;left:16.66667%}.large-pull-2{position:relative;left:-16.66667%}.large-offset-1{margin-left:8.33333%}.large-3{width:25%}.large-push-3{position:relative;left:25%}.large-pull-3{position:relative;left:-25%}.large-offset-2{margin-left:16.66667%}.large-4{width:33.33333%}.large-push-4{position:relative;left:33.33333%}.large-pull-4{position:relative;left:-33.33333%}.large-offset-3{margin-left:25%}.large-5{width:41.66667%}.large-push-5{position:relative;left:41.66667%}.large-pull-5{position:relative;left:-41.66667%}.large-offset-4{margin-left:33.33333%}.large-6{width:50%}.large-push-6{position:relative;left:50%}.large-pull-6{position:relative;left:-50%}.large-offset-5{margin-left:41.66667%}.large-7{width:58.33333%}.large-push-7{position:relative;left:58.33333%}.large-pull-7{position:relative;left:-58.33333%}.large-offset-6{margin-left:50%}.large-8{width:66.66667%}.large-push-8{position:relative;left:66.66667%}.large-pull-8{position:relative;left:-66.66667%}.large-offset-7{margin-left:58.33333%}.large-9{width:75%}.large-push-9{position:relative;left:75%}.large-pull-9{position:relative;left:-75%}.large-offset-8{margin-left:66.66667%}.large-10{width:83.33333%}.large-push-10{position:relative;left:83.33333%}.large-pull-10{position:relative;left:-83.33333%}.large-offset-9{margin-left:75%}.large-11{width:91.66667%}.large-push-11{position:relative;left:91.66667%}.large-pull-11{position:relative;left:-91.66667%}.large-offset-10{margin-left:83.33333%}.large-12{width:100%}.large-offset-11{margin-left:91.66667%}.large-up-1>.column,.large-up-1>.columns{width:100%;float:left}.large-up-1>.column:nth-of-type(1n),.large-up-1>.columns:nth-of-type(1n){clear:none}.large-up-1>.column:nth-of-type(1n+1),.large-up-1>.columns:nth-of-type(1n+1){clear:both}.large-up-1>.column:last-child,.large-up-1>.columns:last-child{float:left}.large-up-2>.column,.large-up-2>.columns{width:50%;float:left}.large-up-2>.column:nth-of-type(1n),.large-up-2>.columns:nth-of-type(1n){clear:none}.large-up-2>.column:nth-of-type(2n+1),.large-up-2>.columns:nth-of-type(2n+1){clear:both}.large-up-2>.column:last-child,.large-up-2>.columns:last-child{float:left}.large-up-3>.column,.large-up-3>.columns{width:33.33333%;float:left}.large-up-3>.column:nth-of-type(1n),.large-up-3>.columns:nth-of-type(1n){clear:none}.large-up-3>.column:nth-of-type(3n+1),.large-up-3>.columns:nth-of-type(3n+1){clear:both}.large-up-3>.column:last-child,.large-up-3>.columns:last-child{float:left}.large-up-4>.column,.large-up-4>.columns{width:25%;float:left}.large-up-4>.column:nth-of-type(1n),.large-up-4>.columns:nth-of-type(1n){clear:none}.large-up-4>.column:nth-of-type(4n+1),.large-up-4>.columns:nth-of-type(4n+1){clear:both}.large-up-4>.column:last-child,.large-up-4>.columns:last-child{float:left}.large-up-5>.column,.large-up-5>.columns{width:20%;float:left}.large-up-5>.column:nth-of-type(1n),.large-up-5>.columns:nth-of-type(1n){clear:none}.large-up-5>.column:nth-of-type(5n+1),.large-up-5>.columns:nth-of-type(5n+1){clear:both}.large-up-5>.column:last-child,.large-up-5>.columns:last-child{float:left}.large-up-6>.column,.large-up-6>.columns{width:16.66667%;float:left}.large-up-6>.column:nth-of-type(1n),.large-up-6>.columns:nth-of-type(1n){clear:none}.large-up-6>.column:nth-of-type(6n+1),.large-up-6>.columns:nth-of-type(6n+1){clear:both}.large-up-6>.column:last-child,.large-up-6>.columns:last-child{float:left}.large-up-7>.column,.large-up-7>.columns{width:14.28571%;float:left}.large-up-7>.column:nth-of-type(1n),.large-up-7>.columns:nth-of-type(1n){clear:none}.large-up-7>.column:nth-of-type(7n+1),.large-up-7>.columns:nth-of-type(7n+1){clear:both}.large-up-7>.column:last-child,.large-up-7>.columns:last-child{float:left}.large-up-8>.column,.large-up-8>.columns{width:12.5%;float:left}.large-up-8>.column:nth-of-type(1n),.large-up-8>.columns:nth-of-type(1n){clear:none}.large-up-8>.column:nth-of-type(8n+1),.large-up-8>.columns:nth-of-type(8n+1){clear:both}.large-up-8>.column:last-child,.large-up-8>.columns:last-child{float:left}.large-collapse>.column,.large-collapse>.columns{padding-left:0;padding-right:0}.expanded.row .large-collapse.row,.large-collapse .row{margin-left:0;margin-right:0}.large-uncollapse>.column,.large-uncollapse>.columns{padding-left:.9375rem;padding-right:.9375rem}.large-centered{float:none;margin-left:auto;margin-right:auto}.large-pull-0,.large-push-0,.large-uncentered{position:static;margin-left:0;margin-right:0;float:left}}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{font-size:inherit;line-height:1.6;margin-bottom:1rem;text-rendering:optimizeLegibility}em,i{font-style:italic}b,em,i,strong{line-height:inherit}b,strong{font-weight:700}small{font-size:80%;line-height:inherit}h1,h2,h3,h4,h5,h6{font-family:Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-weight:400;font-style:normal;color:inherit;text-rendering:optimizeLegibility;margin-top:0;margin-bottom:.5rem;line-height:1.4}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{color:#cacaca;line-height:0}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.1875rem}h4{font-size:1.125rem}h5{font-size:1.0625rem}h6{font-size:1rem}@media screen and (min-width:40em){h1{font-size:3rem}h2{font-size:2.5rem}h3{font-size:1.9375rem}h4{font-size:1.5625rem}h5{font-size:1.25rem}h6{font-size:1rem}}a{color:#2199e8;text-decoration:none;line-height:inherit;cursor:pointer}a:focus,a:hover{color:#1585cf}a img{border:0}hr{max-width:75rem;height:0;border-right:0;border-top:0;border-bottom:1px solid #cacaca;border-left:0;margin:1.25rem auto;clear:both}dl,ol,ul{line-height:1.6;margin-bottom:1rem;list-style-position:outside}li{font-size:inherit}ul{list-style-type:disc}ol,ul{margin-left:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:700}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}cite{display:block;font-size:.8125rem;color:#8a8a8a}cite:before{content:'\2014 \0020'}abbr{color:#0a0a0a;cursor:help;border-bottom:1px dotted #0a0a0a}code{font-weight:400;border:1px solid #cacaca;padding:.125rem .3125rem .0625rem}code,kbd{font-family:Consolas,Liberation Mono,Courier,monospace;color:#0a0a0a;background-color:#e6e6e6}kbd{padding:.125rem .25rem 0;margin:0}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}.no-bullet{margin-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print,th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^='#']:after,a[href^='javascript:']:after{content:''}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;box-sizing:border-box;width:100%;height:2.4375rem;padding:.5rem;border:1px solid #cacaca;margin:0 0 1rem;font-family:inherit;font-size:1rem;color:#0a0a0a;background-color:#fefefe;box-shadow:inset 0 1px 2px hsla(0,0%,4%,.1);border-radius:0;-webkit-transition:-webkit-box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out;-webkit-appearance:none;-moz-appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{border:1px solid #8a8a8a;background-color:#fefefe;outline:none;box-shadow:0 0 5px #cacaca;-webkit-transition:-webkit-box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out}textarea{max-width:100%}textarea[rows]{height:auto}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#cacaca}input::-moz-placeholder,textarea::-moz-placeholder{color:#cacaca}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#cacaca}input::placeholder,textarea::placeholder{color:#cacaca}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{border-radius:0;-webkit-appearance:none;-moz-appearance:none}input[type=search]{box-sizing:border-box}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;margin-left:.5rem;margin-right:1rem;margin-bottom:0;vertical-align:baseline}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-right:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:400;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:table;width:100%;margin-bottom:1rem}.input-group>:first-child,.input-group>:last-child>*{border-radius:0 0 0 0}.input-group-button,.input-group-field,.input-group-label{margin:0;white-space:nowrap;display:table-cell;vertical-align:middle}.input-group-label{text-align:center;padding:0 1rem;background:#e6e6e6;color:#0a0a0a;border:1px solid #cacaca;white-space:nowrap;width:1%;height:100%}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0;height:2.5rem}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;height:100%;width:1%}.input-group-button a,.input-group-button button,.input-group-button input{margin:0}.input-group .input-group-button{display:table-cell}fieldset{border:0;padding:0;margin:0}legend{margin-bottom:.5rem;max-width:100%}.fieldset{border:1px solid #cacaca;padding:1.25rem;margin:1.125rem 0}.fieldset legend{background:#fefefe;padding:0 .1875rem;margin:0;margin-left:-.1875rem}select{height:2.4375rem;padding:.5rem;border:1px solid #cacaca;margin:0 0 1rem;font-size:1rem;font-family:inherit;line-height:normal;color:#0a0a0a;background-color:#fefefe;border-radius:0;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>");background-size:9px 6px;background-position:right -1rem center;background-origin:content-box;background-repeat:no-repeat;padding-right:1.5rem}@media screen and (min-width:0\0){select{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==")}}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}.is-invalid-input:not(:focus){background-color:rgba(236,88,64,.1);border-color:#ec5840}.form-error,.is-invalid-label{color:#ec5840}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:700}.form-error.is-visible{display:block}.button{display:inline-block;text-align:center;line-height:1;cursor:pointer;-webkit-appearance:none;-webkit-transition:background-color .25s ease-out,color .25s ease-out;transition:background-color .25s ease-out,color .25s ease-out;vertical-align:middle;border:1px solid transparent;border-radius:0;padding:.85em 1em;margin:0 0 1rem;font-size:.9rem;background-color:#2199e8;color:#fefefe}[data-whatinput=mouse] .button{outline:0}.button:focus,.button:hover{background-color:#1583cc;color:#fefefe}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-left:0;margin-right:0}.button.primary{background-color:#2199e8;color:#fefefe}.button.primary:focus,.button.primary:hover{background-color:#147cc0;color:#fefefe}.button.secondary{background-color:#777;color:#fefefe}.button.secondary:focus,.button.secondary:hover{background-color:#5f5f5f;color:#fefefe}.button.success{background-color:#3adb76;color:#fefefe}.button.success:focus,.button.success:hover{background-color:#22bb5b;color:#fefefe}.button.warning{background-color:#ffae00;color:#fefefe}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#fefefe}.button.alert{background-color:#ec5840;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#da3116;color:#fefefe}.button.hollow{border:1px solid #2199e8;color:#2199e8}.button.hollow,.button.hollow:focus,.button.hollow:hover{background-color:transparent}.button.hollow:focus,.button.hollow:hover{border-color:#0c4d78;color:#0c4d78}.button.hollow.primary{border:1px solid #2199e8;color:#2199e8}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c4d78;color:#0c4d78}.button.hollow.secondary{border:1px solid #777;color:#777}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3c3c3c;color:#3c3c3c}.button.hollow.success{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.warning{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.alert{border:1px solid #ec5840;color:#ec5840}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#881f0e;color:#881f0e}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.disabled:focus,.button.disabled:hover,.button[disabled]:focus,.button[disabled]:hover{background-color:#2199e8;color:#fefefe}.button.dropdown:after{content:'';display:block;width:0;height:0;border:.4em inset;border-color:#fefefe transparent transparent;border-top-style:solid;border-bottom-width:0;position:relative;top:.4em;float:right;margin-left:1em;display:inline-block}.button.arrow-only:after{margin-left:0;float:none;top:-.1em}.accordion{list-style-type:none;background:#fefefe;margin-left:0}.accordion-item:first-child>:first-child,.accordion-item:last-child>:last-child{border-radius:0 0 0 0}.accordion-title{display:block;padding:1.25rem 1rem;line-height:1;font-size:.75rem;color:#2199e8;position:relative;border:1px solid #e6e6e6;border-bottom:0}:last-child:not(.is-active)>.accordion-title{border-radius:0 0 0 0;border-bottom:1px solid #e6e6e6}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}.accordion-title:before{content:'+';position:absolute;right:1rem;top:50%;margin-top:-.5rem}.is-active>.accordion-title:before{content:'–'}.accordion-content{padding:1rem;display:none;border:1px solid #e6e6e6;border-bottom:0;background-color:#fefefe;color:#0a0a0a}:last-child>.accordion-content:last-child{border-bottom:1px solid #e6e6e6}.is-accordion-submenu-parent>a{position:relative}.is-accordion-submenu-parent>a:after{content:'';display:block;width:0;height:0;border:6px inset;border-color:#2199e8 transparent transparent;border-top-style:solid;border-bottom-width:0;position:absolute;top:50%;margin-top:-4px;right:1rem}.is-accordion-submenu-parent[aria-expanded=true]>a:after{-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transform:scaleY(-1);transform:scaleY(-1)}.badge{display:inline-block;padding:.3em;min-width:2.1em;font-size:.6rem;text-align:center;border-radius:50%;background:#2199e8;color:#fefefe}.badge.secondary{background:#777;color:#fefefe}.badge.success{background:#3adb76;color:#fefefe}.badge.warning{background:#ffae00;color:#fefefe}.badge.alert{background:#ec5840;color:#fefefe}.breadcrumbs{list-style:none;margin:0 0 1rem}.breadcrumbs:after,.breadcrumbs:before{content:' ';display:table}.breadcrumbs:after{clear:both}.breadcrumbs li{float:left;color:#0a0a0a;font-size:.6875rem;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child):after{color:#cacaca;content:"/";margin:0 .75rem;position:relative;top:1px;opacity:1}.breadcrumbs a{color:#2199e8}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca;cursor:not-allowed}.button-group{margin-bottom:1rem;font-size:0}.button-group:after,.button-group:before{content:' ';display:table}.button-group:after{clear:both}.button-group .button{margin:0;margin-right:1px;margin-bottom:1px;font-size:.9rem}.button-group .button:last-child{margin-right:0}.button-group.tiny .button{font-size:.6rem}.button-group.small .button{font-size:.75rem}.button-group.large .button{font-size:1.25rem}.button-group.expanded{margin-right:-1px}.button-group.expanded:after,.button-group.expanded:before{display:none}.button-group.expanded .button:first-child:nth-last-child(2),.button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button{display:inline-block;width:calc(50% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(2):last-child{margin-right:-6px}.button-group.expanded .button:first-child:nth-last-child(3),.button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button{display:inline-block;width:calc(33.33333% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(3):last-child{margin-right:-6px}.button-group.expanded .button:first-child:nth-last-child(4),.button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button{display:inline-block;width:calc(25% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(4):last-child{margin-right:-6px}.button-group.expanded .button:first-child:nth-last-child(5),.button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button{display:inline-block;width:calc(20% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(5):last-child{margin-right:-6px}.button-group.expanded .button:first-child:nth-last-child(6),.button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button{display:inline-block;width:calc(16.66667% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(6):last-child{margin-right:-6px}.button-group.primary .button{background-color:#2199e8;color:#fefefe}.button-group.primary .button:focus,.button-group.primary .button:hover{background-color:#147cc0;color:#fefefe}.button-group.secondary .button{background-color:#777;color:#fefefe}.button-group.secondary .button:focus,.button-group.secondary .button:hover{background-color:#5f5f5f;color:#fefefe}.button-group.success .button{background-color:#3adb76;color:#fefefe}.button-group.success .button:focus,.button-group.success .button:hover{background-color:#22bb5b;color:#fefefe}.button-group.warning .button{background-color:#ffae00;color:#fefefe}.button-group.warning .button:focus,.button-group.warning .button:hover{background-color:#cc8b00;color:#fefefe}.button-group.alert .button{background-color:#ec5840;color:#fefefe}.button-group.alert .button:focus,.button-group.alert .button:hover{background-color:#da3116;color:#fefefe}.button-group.stacked-for-medium .button,.button-group.stacked-for-small .button,.button-group.stacked .button{width:100%}.button-group.stacked-for-medium .button:last-child,.button-group.stacked-for-small .button:last-child,.button-group.stacked .button:last-child{margin-bottom:0}@media screen and (min-width:40em){.button-group.stacked-for-small .button{width:auto;margin-bottom:0}}@media screen and (min-width:64em){.button-group.stacked-for-medium .button{width:auto;margin-bottom:0}}@media screen and (max-width:39.9375em){.button-group.stacked-for-small.expanded{display:block}.button-group.stacked-for-small.expanded .button{display:block;margin-right:0}}.callout{margin:0 0 1rem;padding:1rem;border:1px solid hsla(0,0%,4%,.25);border-radius:0;position:relative;color:#0a0a0a;background-color:#fff}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#def0fc}.callout.secondary{background-color:#ebebeb}.callout.success{background-color:#e1faea}.callout.warning{background-color:#fff3d9}.callout.alert{background-color:#fce6e2}.callout.small{padding:.5rem}.callout.large{padding:3rem}.close-button{position:absolute;color:#8a8a8a;right:1rem;top:.5rem;font-size:2em;line-height:1;cursor:pointer}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#0a0a0a}.menu{margin:0;list-style-type:none}.menu>li{display:table-cell;vertical-align:middle}[data-whatinput=mouse] .menu>li{outline:0}.menu>li>a{display:block;padding:.7rem 1rem;line-height:1}.menu a,.menu button,.menu input{margin-bottom:0}.menu>li>a i,.menu>li>a i+span,.menu>li>a img,.menu>li>a img+span,.menu>li>a svg,.menu>li>a svg+span{vertical-align:middle}.menu>li>a i,.menu>li>a img,.menu>li>a svg{margin-right:.25rem;display:inline-block}.menu>li{display:table-cell}.menu.vertical>li{display:block}@media screen and (min-width:40em){.menu.medium-horizontal>li{display:table-cell}.menu.medium-vertical>li{display:block}}@media screen and (min-width:64em){.menu.large-horizontal>li{display:table-cell}.menu.large-vertical>li{display:block}}.menu.simple li{line-height:1;display:inline-block;margin-right:1rem}.menu.simple a{padding:0}.menu.align-right:after,.menu.align-right:before{content:' ';display:table}.menu.align-right:after{clear:both}.menu.align-right>li{float:right}.menu.expanded{width:100%;display:table;table-layout:fixed}.menu.expanded>li:first-child:last-child{width:100%}.menu.icon-top>li>a{text-align:center}.menu.icon-top>li>a i,.menu.icon-top>li>a img,.menu.icon-top>li>a svg{display:block;margin:0 auto .25rem}.menu.nested{margin-left:1rem}.menu .active>a{color:#fefefe;background:#2199e8}.menu-text{font-weight:700;color:inherit;line-height:1;padding-top:0;padding-bottom:0;padding:.7rem 1rem}.menu-centered{text-align:center}.menu-centered>.menu{display:inline-block}.no-js [data-responsive-menu] ul{display:none}.menu-icon{position:relative;display:inline-block;vertical-align:middle;cursor:pointer;width:20px;height:16px}.menu-icon:after{content:'';position:absolute;display:block;width:100%;height:2px;background:#fefefe;top:0;left:0;box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe}.menu-icon:hover:after{background:#cacaca;box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca}.is-drilldown{position:relative;overflow:hidden}.is-drilldown li{display:block!important}.is-drilldown-submenu{position:absolute;top:0;left:100%;z-index:-1;height:100%;width:100%;background:#fefefe;-webkit-transition:-webkit-transform .15s linear;transition:transform .15s linear}.is-drilldown-submenu.is-active{z-index:1;display:block;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.is-drilldown-submenu.is-closing{-webkit-transform:translateX(100%);transform:translateX(100%)}.is-drilldown-submenu-parent>a{position:relative}.is-drilldown-submenu-parent>a:after{content:'';display:block;width:0;height:0;border:6px inset;border-color:transparent transparent transparent #2199e8;border-left-style:solid;border-right-width:0;position:absolute;top:50%;margin-top:-6px;right:1rem}.js-drilldown-back>a:before{content:'';display:block;width:0;height:0;border:6px inset;border-color:transparent #2199e8 transparent transparent;border-right-style:solid;border-left-width:0;display:inline-block;vertical-align:middle;margin-right:.75rem}.dropdown-pane{background-color:#fefefe;border:1px solid #cacaca;border-radius:0;display:block;font-size:1rem;padding:1rem;position:absolute;visibility:hidden;width:300px;z-index:10}.dropdown-pane.is-open{visibility:visible}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.dropdown.menu>li.opens-left>.is-dropdown-submenu{left:auto;right:0;top:100%}.dropdown.menu>li.opens-right>.is-dropdown-submenu{right:auto;left:0;top:100%}.dropdown.menu>li.is-dropdown-submenu-parent>a{padding-right:1.5rem;position:relative}.dropdown.menu>li.is-dropdown-submenu-parent>a:after{content:'';display:block;width:0;height:0;border:5px inset;border-color:#2199e8 transparent transparent;border-top-style:solid;border-bottom-width:0;right:5px;margin-top:-2px}[data-whatinput=mouse] .dropdown.menu a{outline:0}.no-js .dropdown.menu ul{display:none}.dropdown.menu.vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.vertical>li.opens-left>.is-dropdown-submenu{left:auto;right:100%}.dropdown.menu.vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.vertical>li>a:after{right:14px;margin-top:-3px}.dropdown.menu.vertical>li.opens-left>a:after{content:'';display:block;width:0;height:0;border:5px inset;border-color:transparent #2199e8 transparent transparent;border-right-style:solid;border-left-width:0}.dropdown.menu.vertical>li.opens-right>a:after{content:'';display:block;width:0;height:0;border:5px inset;border-color:transparent transparent transparent #2199e8;border-left-style:solid;border-right-width:0}@media screen and (min-width:40em){.dropdown.menu.medium-horizontal>li.opens-left>.is-dropdown-submenu{left:auto;right:0;top:100%}.dropdown.menu.medium-horizontal>li.opens-right>.is-dropdown-submenu{right:auto;left:0;top:100%}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a{padding-right:1.5rem;position:relative}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a:after{content:'';display:block;width:0;height:0;border:5px inset;border-color:#2199e8 transparent transparent;border-top-style:solid;border-bottom-width:0;right:5px;margin-top:-2px}.dropdown.menu.medium-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.medium-vertical>li.opens-left>.is-dropdown-submenu{left:auto;right:100%}.dropdown.menu.medium-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.medium-vertical>li>a:after{right:14px;margin-top:-3px}.dropdown.menu.medium-vertical>li.opens-left>a:after{content:'';display:block;width:0;height:0;border:5px inset;border-color:transparent #2199e8 transparent transparent;border-right-style:solid;border-left-width:0}.dropdown.menu.medium-vertical>li.opens-right>a:after{content:'';display:block;width:0;height:0;border:5px inset;border-color:transparent transparent transparent #2199e8;border-left-style:solid;border-right-width:0}}@media screen and (min-width:64em){.dropdown.menu.large-horizontal>li.opens-left>.is-dropdown-submenu{left:auto;right:0;top:100%}.dropdown.menu.large-horizontal>li.opens-right>.is-dropdown-submenu{right:auto;left:0;top:100%}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a{padding-right:1.5rem;position:relative}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a:after{content:'';display:block;width:0;height:0;border:5px inset;border-color:#2199e8 transparent transparent;border-top-style:solid;border-bottom-width:0;right:5px;margin-top:-2px}.dropdown.menu.large-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.large-vertical>li.opens-left>.is-dropdown-submenu{left:auto;right:100%}.dropdown.menu.large-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.large-vertical>li>a:after{right:14px;margin-top:-3px}.dropdown.menu.large-vertical>li.opens-left>a:after{content:'';display:block;width:0;height:0;border:5px inset;border-color:transparent #2199e8 transparent transparent;border-right-style:solid;border-left-width:0}.dropdown.menu.large-vertical>li.opens-right>a:after{content:'';display:block;width:0;height:0;border:5px inset;border-color:transparent transparent transparent #2199e8;border-left-style:solid;border-right-width:0}}.dropdown.menu.align-right .is-dropdown-submenu.first-sub{top:100%;left:auto;right:0}.is-dropdown-menu.vertical{width:100px}.is-dropdown-menu.vertical.align-right{float:right}.is-dropdown-submenu-parent{position:relative}.is-dropdown-submenu-parent a:after{position:absolute;top:50%;right:5px;margin-top:-2px}.is-dropdown-submenu-parent.opens-inner>.is-dropdown-submenu{top:100%;left:auto}.is-dropdown-submenu-parent.opens-left>.is-dropdown-submenu{left:auto;right:100%}.is-dropdown-submenu-parent.opens-right>.is-dropdown-submenu{right:auto;left:100%}.is-dropdown-submenu{display:none;position:absolute;top:0;left:100%;min-width:200px;z-index:1;background:#fefefe;border:1px solid #cacaca}.is-dropdown-submenu .is-dropdown-submenu-parent>a:after{right:14px;margin-top:-3px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left>a:after{content:'';display:block;width:0;height:0;border:5px inset;border-color:transparent #2199e8 transparent transparent;border-right-style:solid;border-left-width:0}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a:after{content:'';display:block;width:0;height:0;border:5px inset;border-color:transparent transparent transparent #2199e8;border-left-style:solid;border-right-width:0}.is-dropdown-submenu .is-dropdown-submenu{margin-top:-1px}.is-dropdown-submenu>li{width:100%}.is-dropdown-submenu.js-dropdown-active{display:block}.flex-video{position:relative;height:0;padding-bottom:75%;margin-bottom:1rem;overflow:hidden}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video{position:absolute;top:0;left:0;width:100%;height:100%}.flex-video.widescreen{padding-bottom:56.25%}.flex-video.vimeo{padding-top:0}.label{display:inline-block;padding:.33333rem .5rem;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;border-radius:0;background:#2199e8;color:#fefefe}.label.secondary{background:#777;color:#fefefe}.label.success{background:#3adb76;color:#fefefe}.label.warning{background:#ffae00;color:#fefefe}.label.alert{background:#ec5840;color:#fefefe}.media-object{margin-bottom:1rem;display:block}.media-object img{max-width:none}@media screen and (max-width:39.9375em){.media-object.stack-for-small .media-object-section{padding:0;padding-bottom:1rem;display:block}.media-object.stack-for-small .media-object-section img{width:100%}}.media-object-section{display:table-cell;vertical-align:top}.media-object-section:first-child{padding-right:1rem}.media-object-section:last-child:not(:nth-child(2)){padding-left:1rem}.media-object-section>:last-child{margin-bottom:0}.media-object-section.middle{vertical-align:middle}.media-object-section.bottom{vertical-align:bottom}body,html{height:100%}.off-canvas-wrapper{width:100%;overflow-x:hidden;position:relative;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:auto}.off-canvas-wrapper-inner{position:relative;width:100%;-webkit-transition:-webkit-transform .5s ease;transition:transform .5s ease}.off-canvas-wrapper-inner:after,.off-canvas-wrapper-inner:before{content:' ';display:table}.off-canvas-wrapper-inner:after{clear:both}.off-canvas-content{min-height:100%;background:#fefefe;-webkit-transition:-webkit-transform .5s ease;transition:transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;padding-bottom:.1px;box-shadow:0 0 10px hsla(0,0%,4%,.5)}.js-off-canvas-exit{display:none;position:absolute;top:0;left:0;width:100%;height:100%;background:hsla(0,0%,100%,.25);cursor:pointer;-webkit-transition:background .5s ease;transition:background .5s ease}.off-canvas{position:absolute;background:#e6e6e6;z-index:-1;max-height:100%;overflow-y:auto;-webkit-transform:translateX(0);transform:translateX(0)}[data-whatinput=mouse] .off-canvas{outline:0}.off-canvas.position-left{left:-250px;top:0;width:250px}.is-open-left{-webkit-transform:translateX(250px);transform:translateX(250px)}.off-canvas.position-right{right:-250px;top:0;width:250px}.is-open-right{-webkit-transform:translateX(-250px);transform:translateX(-250px)}@media screen and (min-width:40em){.position-left.reveal-for-medium{left:0;z-index:auto;position:fixed}.position-left.reveal-for-medium~.off-canvas-content{margin-left:250px}.position-right.reveal-for-medium{right:0;z-index:auto;position:fixed}.position-right.reveal-for-medium~.off-canvas-content{margin-right:250px}}@media screen and (min-width:64em){.position-left.reveal-for-large{left:0;z-index:auto;position:fixed}.position-left.reveal-for-large~.off-canvas-content{margin-left:250px}.position-right.reveal-for-large{right:0;z-index:auto;position:fixed}.position-right.reveal-for-large~.off-canvas-content{margin-right:250px}}.orbit,.orbit-container{position:relative}.orbit-container{margin:0;overflow:hidden;list-style:none}.orbit-slide{width:100%;max-height:100%}.orbit-slide.no-motionui.is-active{top:0;left:0}.orbit-figure{margin:0}.orbit-image{margin:0;width:100%;max-width:100%}.orbit-caption{bottom:0;width:100%;margin-bottom:0;background-color:hsla(0,0%,4%,.5)}.orbit-caption,.orbit-next,.orbit-previous{position:absolute;padding:1rem;color:#fefefe}.orbit-next,.orbit-previous{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:10}[data-whatinput=mouse] .orbit-next,[data-whatinput=mouse] .orbit-previous{outline:0}.orbit-next:active,.orbit-next:focus,.orbit-next:hover,.orbit-previous:active,.orbit-previous:focus,.orbit-previous:hover{background-color:hsla(0,0%,4%,.5)}.orbit-previous{left:0}.orbit-next{left:auto;right:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput=mouse] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;background-color:#cacaca;border-radius:50%}.orbit-bullets button.is-active,.orbit-bullets button:hover{background-color:#8a8a8a}.pagination{margin-left:0;margin-bottom:1rem}.pagination:after,.pagination:before{content:' ';display:table}.pagination:after{clear:both}.pagination li{font-size:.875rem;margin-right:.0625rem;border-radius:0;display:none}.pagination li:first-child,.pagination li:last-child{display:inline-block}@media screen and (min-width:40em){.pagination li{display:inline-block}}.pagination a,.pagination button{color:#0a0a0a;display:block;padding:.1875rem .625rem;border-radius:0}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination .current{padding:.1875rem .625rem;background:#2199e8;color:#fefefe;cursor:default}.pagination .disabled{padding:.1875rem .625rem;color:#cacaca;cursor:not-allowed}.pagination .disabled:hover{background:transparent}.pagination .ellipsis:after{content:'\2026';padding:.1875rem .625rem;color:#0a0a0a}.pagination-previous.disabled:before,.pagination-previous a:before{content:'\00ab';display:inline-block;margin-right:.5rem}.pagination-next.disabled:after,.pagination-next a:after{content:'\00bb';display:inline-block;margin-left:.5rem}.progress{background-color:#cacaca;height:1rem;margin-bottom:1rem;border-radius:0}.progress.primary .progress-meter{background-color:#2199e8}.progress.secondary .progress-meter{background-color:#777}.progress.success .progress-meter{background-color:#3adb76}.progress.warning .progress-meter{background-color:#ffae00}.progress.alert .progress-meter{background-color:#ec5840}.progress-meter{position:relative;display:block;width:0;height:100%;background-color:#2199e8}.progress-meter-text{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);position:absolute;margin:0;font-size:.75rem;font-weight:700;color:#fefefe;white-space:nowrap}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:none;touch-action:none}.slider-fill{position:absolute;top:0;left:0;display:inline-block;max-width:100%;height:.5rem;background-color:#cacaca;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.slider-fill.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider-handle{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);position:absolute;left:0;z-index:1;display:inline-block;width:1.4rem;height:1.4rem;background-color:#2199e8;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-ms-touch-action:manipulation;touch-action:manipulation;border-radius:0}[data-whatinput=mouse] .slider-handle{outline:0}.slider-handle:hover{background-color:#1583cc}.slider-handle.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;-webkit-transform:scaleY(-1);transform:scaleY(-1)}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.sticky-container{position:relative}.sticky{position:absolute;z-index:0;-webkit-transform:translateZ(0);transform:translateZ(0)}.sticky.is-stuck{position:fixed;z-index:5}.sticky.is-stuck.is-at-top{top:0}.sticky.is-stuck.is-at-bottom{bottom:0}.sticky.is-anchored{position:absolute;left:auto;right:auto}.sticky.is-anchored.is-at-bottom{bottom:0}body.is-reveal-open{overflow:hidden}html.is-reveal-open,html.is-reveal-open body{height:100%;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.reveal-overlay{display:none;position:fixed;top:0;bottom:0;left:0;right:0;z-index:1005;background-color:hsla(0,0%,4%,.45);overflow-y:scroll}.reveal{display:none;z-index:1006;padding:1rem;border:1px solid #cacaca;background-color:#fefefe;border-radius:0;position:relative;top:100px;margin-left:auto;margin-right:auto;overflow-y:auto}[data-whatinput=mouse] .reveal{outline:0}@media screen and (min-width:40em){.reveal{min-height:0}}.reveal .column,.reveal .columns{min-width:0}.reveal>:last-child{margin-bottom:0}@media screen and (min-width:40em){.reveal{width:600px;max-width:75rem}}@media screen and (min-width:40em){.reveal .reveal{left:auto;right:auto;margin:0 auto}}.reveal.collapse{padding:0}@media screen and (min-width:40em){.reveal.tiny{width:30%;max-width:75rem}}@media screen and (min-width:40em){.reveal.small{width:50%;max-width:75rem}}@media screen and (min-width:40em){.reveal.large{width:90%;max-width:75rem}}.reveal.full{top:0;left:0;width:100%;height:100%;height:100vh;min-height:100vh;max-width:none;margin-left:0;border:0;border-radius:0}@media screen and (max-width:39.9375em){.reveal{top:0;left:0;width:100%;height:100%;height:100vh;min-height:100vh;max-width:none;margin-left:0;border:0;border-radius:0}}.reveal.without-overlay{position:fixed}.switch{margin-bottom:1rem;outline:0;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#fefefe;font-weight:700;font-size:.875rem}.switch-input{opacity:0;position:absolute}.switch-paddle{background:#cacaca;cursor:pointer;display:block;position:relative;width:4rem;height:2rem;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;border-radius:0;color:inherit;font-weight:inherit}input+.switch-paddle{margin:0}.switch-paddle:after{background:#fefefe;content:'';display:block;position:absolute;height:1.5rem;left:.25rem;top:.25rem;width:1.5rem;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;-webkit-transform:translateZ(0);transform:translateZ(0);border-radius:0}input:checked~.switch-paddle{background:#2199e8}input:checked~.switch-paddle:after{left:2.25rem}[data-whatinput=mouse] input:focus~.switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.switch-active{left:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{right:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle:after{width:1rem;height:1rem}.switch.tiny input:checked~.switch-paddle:after{left:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle:after{width:1.25rem;height:1.25rem}.switch.small input:checked~.switch-paddle:after{left:2rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle:after{width:2rem;height:2rem}.switch.large input:checked~.switch-paddle:after{left:2.75rem}table{width:100%;margin-bottom:1rem;border-radius:0}table tbody,table tfoot,table thead{border:1px solid #f1f1f1;background-color:#fefefe}table caption{font-weight:700;padding:.5rem .625rem .625rem}table tfoot,table thead{background:#f8f8f8;color:#0a0a0a}table tfoot tr,table thead tr{background:transparent}table tfoot td,table tfoot th,table thead td,table thead th{padding:.5rem .625rem .625rem;font-weight:700;text-align:left}table tbody tr:nth-child(even){background-color:#f1f1f1}table tbody td,table tbody th{padding:.5rem .625rem .625rem}@media screen and (max-width:63.9375em){table.stack tfoot,table.stack thead{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}table.scroll{display:block;width:100%;overflow-x:auto}table.hover tr:hover{background-color:#f9f9f9}table.hover tr:nth-of-type(even):hover{background-color:#ececec}.table-scroll{overflow-x:auto}.table-scroll table{width:auto}.tabs{margin:0;list-style-type:none;background:#fefefe;border:1px solid #e6e6e6}.tabs:after,.tabs:before{content:' ';display:table}.tabs:after{clear:both}.tabs.vertical>li{width:auto;float:none;display:block}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:transparent}.tabs.primary{background:#2199e8}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#1893e4}.tabs-title{float:left}.tabs-title>a{display:block;padding:1.25rem 1.5rem;line-height:1;font-size:.75rem}.tabs-title>a:hover{background:#fefefe}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{background:#e6e6e6}.tabs-content{background:#fefefe;-webkit-transition:all .5s ease;transition:all .5s ease;border:1px solid #e6e6e6;border-top:0}.tabs-content.vertical{border:1px solid #e6e6e6;border-left:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.thumbnail{border:4px solid #fefefe;box-shadow:0 0 0 1px hsla(0,0%,4%,.2);display:inline-block;line-height:0;max-width:100%;-webkit-transition:-webkit-box-shadow .2s ease-out;transition:box-shadow .2s ease-out;border-radius:0;margin-bottom:1rem}.thumbnail:focus,.thumbnail:hover{box-shadow:0 0 6px 1px rgba(33,153,232,.5)}.title-bar{background:#0a0a0a;color:#fefefe;padding:.5rem}.title-bar:after,.title-bar:before{content:' ';display:table}.title-bar:after{clear:both}.title-bar .menu-icon{margin-left:.25rem;margin-right:.25rem}.title-bar-left{float:left}.title-bar-right{float:right;text-align:right}.title-bar-title{font-weight:700}.menu-icon.dark,.title-bar-title{vertical-align:middle;display:inline-block}.menu-icon.dark{position:relative;cursor:pointer;width:20px;height:16px}.menu-icon.dark:after{content:'';position:absolute;display:block;width:100%;height:2px;background:#0a0a0a;top:0;left:0;box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a}.menu-icon.dark:hover:after{background:#8a8a8a;box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a}.has-tip{border-bottom:1px dotted #8a8a8a;font-weight:700;position:relative;display:inline-block;cursor:help}.tooltip{background-color:#0a0a0a;color:#fefefe;font-size:80%;padding:.75rem;position:absolute;z-index:10;top:calc(100% + .6495rem);max-width:10rem!important;border-radius:0}.tooltip:before{border-color:transparent transparent #0a0a0a;border-bottom-style:solid;border-top-width:0;bottom:100%;position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.top:before,.tooltip:before{content:'';display:block;width:0;height:0;border:.75rem inset}.tooltip.top:before{border-color:#0a0a0a transparent transparent;border-top-style:solid;border-bottom-width:0;top:100%;bottom:auto}.tooltip.left:before{border-color:transparent transparent transparent #0a0a0a;border-left-style:solid;border-right-width:0;left:100%}.tooltip.left:before,.tooltip.right:before{content:'';display:block;width:0;height:0;border:.75rem inset;bottom:auto;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.right:before{border-color:transparent #0a0a0a transparent transparent;border-right-style:solid;border-left-width:0;left:auto;right:100%}.top-bar{padding:.5rem}.top-bar:after,.top-bar:before{content:' ';display:table}.top-bar:after{clear:both}.top-bar,.top-bar ul{background-color:#e6e6e6}.top-bar input{max-width:200px;margin-right:1rem}.top-bar .input-group-field{width:100%;margin-right:0}.top-bar input.button{width:auto}.top-bar .top-bar-left,.top-bar .top-bar-right{width:100%}@media screen and (min-width:40em){.top-bar .top-bar-left,.top-bar .top-bar-right{width:auto}}@media screen and (max-width:63.9375em){.top-bar.stacked-for-medium .top-bar-left,.top-bar.stacked-for-medium .top-bar-right{width:100%}}@media screen and (max-width:74.9375em){.top-bar.stacked-for-large .top-bar-left,.top-bar.stacked-for-large .top-bar-right{width:100%}}.top-bar-title{float:left;margin-right:1rem}.top-bar-left{float:left}.top-bar-right{float:right}.hide{display:none!important}.invisible{visibility:hidden}@media screen and (max-width:39.9375em){.hide-for-small-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.9375em){.show-for-medium{display:none!important}}@media screen and (min-width:40em) and (max-width:63.9375em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.9375em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.9375em){.show-for-large{display:none!important}}@media screen and (min-width:64em) and (max-width:74.9375em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.9375em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.show-on-focus:active,.show-on-focus:focus{position:static!important;height:auto;width:auto;overflow:visible;clip:auto}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-left:auto;margin-right:auto}.clearfix:after,.clearfix:before{content:' ';display:table}.clearfix:after{clear:both} \ No newline at end of file
diff --git a/library/foundation/js/foundation.js b/library/foundation/js/foundation.js
new file mode 100644
index 000000000..8570bdd16
--- /dev/null
+++ b/library/foundation/js/foundation.js
@@ -0,0 +1,9069 @@
+!function ($) {
+
+ "use strict";
+
+ var FOUNDATION_VERSION = '6.2.3';
+
+ // Global Foundation object
+ // This is attached to the window, or used as a module for AMD/Browserify
+ var Foundation = {
+ version: FOUNDATION_VERSION,
+
+ /**
+ * Stores initialized plugins.
+ */
+ _plugins: {},
+
+ /**
+ * Stores generated unique ids for plugin instances
+ */
+ _uuids: [],
+
+ /**
+ * Returns a boolean for RTL support
+ */
+ rtl: function () {
+ return $('html').attr('dir') === 'rtl';
+ },
+ /**
+ * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.
+ * @param {Object} plugin - The constructor of the plugin.
+ */
+ plugin: function (plugin, name) {
+ // Object key to use when adding to global Foundation object
+ // Examples: Foundation.Reveal, Foundation.OffCanvas
+ var className = name || functionName(plugin);
+ // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin
+ // Examples: data-reveal, data-off-canvas
+ var attrName = hyphenate(className);
+
+ // Add to the Foundation object and the plugins list (for reflowing)
+ this._plugins[attrName] = this[className] = plugin;
+ },
+ /**
+ * @function
+ * Populates the _uuids array with pointers to each individual plugin instance.
+ * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.
+ * Also fires the initialization event for each plugin, consolidating repetitive code.
+ * @param {Object} plugin - an instance of a plugin, usually `this` in context.
+ * @param {String} name - the name of the plugin, passed as a camelCased string.
+ * @fires Plugin#init
+ */
+ registerPlugin: function (plugin, name) {
+ var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();
+ plugin.uuid = this.GetYoDigits(6, pluginName);
+
+ if (!plugin.$element.attr('data-' + pluginName)) {
+ plugin.$element.attr('data-' + pluginName, plugin.uuid);
+ }
+ if (!plugin.$element.data('zfPlugin')) {
+ plugin.$element.data('zfPlugin', plugin);
+ }
+ /**
+ * Fires when the plugin has initialized.
+ * @event Plugin#init
+ */
+ plugin.$element.trigger('init.zf.' + pluginName);
+
+ this._uuids.push(plugin.uuid);
+
+ return;
+ },
+ /**
+ * @function
+ * Removes the plugins uuid from the _uuids array.
+ * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.
+ * Also fires the destroyed event for the plugin, consolidating repetitive code.
+ * @param {Object} plugin - an instance of a plugin, usually `this` in context.
+ * @fires Plugin#destroyed
+ */
+ unregisterPlugin: function (plugin) {
+ var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));
+
+ this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);
+ plugin.$element.removeAttr('data-' + pluginName).removeData('zfPlugin')
+ /**
+ * Fires when the plugin has been destroyed.
+ * @event Plugin#destroyed
+ */
+ .trigger('destroyed.zf.' + pluginName);
+ for (var prop in plugin) {
+ plugin[prop] = null; //clean up script to prep for garbage collection.
+ }
+ return;
+ },
+
+ /**
+ * @function
+ * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.
+ * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`
+ * @default If no argument is passed, reflow all currently active plugins.
+ */
+ reInit: function (plugins) {
+ var isJQ = plugins instanceof $;
+ try {
+ if (isJQ) {
+ plugins.each(function () {
+ $(this).data('zfPlugin')._init();
+ });
+ } else {
+ var type = typeof plugins,
+ _this = this,
+ fns = {
+ 'object': function (plgs) {
+ plgs.forEach(function (p) {
+ p = hyphenate(p);
+ $('[data-' + p + ']').foundation('_init');
+ });
+ },
+ 'string': function () {
+ plugins = hyphenate(plugins);
+ $('[data-' + plugins + ']').foundation('_init');
+ },
+ 'undefined': function () {
+ this['object'](Object.keys(_this._plugins));
+ }
+ };
+ fns[type](plugins);
+ }
+ } catch (err) {
+ console.error(err);
+ } finally {
+ return plugins;
+ }
+ },
+
+ /**
+ * returns a random base-36 uid with namespacing
+ * @function
+ * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.
+ * @param {String} namespace - name of plugin to be incorporated in uid, optional.
+ * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.
+ * @returns {String} - unique id
+ */
+ GetYoDigits: function (length, namespace) {
+ length = length || 6;
+ return Math.round(Math.pow(36, length + 1) - Math.random() * Math.pow(36, length)).toString(36).slice(1) + (namespace ? '-' + namespace : '');
+ },
+ /**
+ * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.
+ * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.
+ * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.
+ */
+ reflow: function (elem, plugins) {
+
+ // If plugins is undefined, just grab everything
+ if (typeof plugins === 'undefined') {
+ plugins = Object.keys(this._plugins);
+ }
+ // If plugins is a string, convert it to an array with one item
+ else if (typeof plugins === 'string') {
+ plugins = [plugins];
+ }
+
+ var _this = this;
+
+ // Iterate through each plugin
+ $.each(plugins, function (i, name) {
+ // Get the current plugin
+ var plugin = _this._plugins[name];
+
+ // Localize the search to all elements inside elem, as well as elem itself, unless elem === document
+ var $elem = $(elem).find('[data-' + name + ']').addBack('[data-' + name + ']');
+
+ // For each plugin found, initialize it
+ $elem.each(function () {
+ var $el = $(this),
+ opts = {};
+ // Don't double-dip on plugins
+ if ($el.data('zfPlugin')) {
+ console.warn("Tried to initialize " + name + " on an element that already has a Foundation plugin.");
+ return;
+ }
+
+ if ($el.attr('data-options')) {
+ var thing = $el.attr('data-options').split(';').forEach(function (e, i) {
+ var opt = e.split(':').map(function (el) {
+ return el.trim();
+ });
+ if (opt[0]) opts[opt[0]] = parseValue(opt[1]);
+ });
+ }
+ try {
+ $el.data('zfPlugin', new plugin($(this), opts));
+ } catch (er) {
+ console.error(er);
+ } finally {
+ return;
+ }
+ });
+ });
+ },
+ getFnName: functionName,
+ transitionend: function ($elem) {
+ var transitions = {
+ 'transition': 'transitionend',
+ 'WebkitTransition': 'webkitTransitionEnd',
+ 'MozTransition': 'transitionend',
+ 'OTransition': 'otransitionend'
+ };
+ var elem = document.createElement('div'),
+ end;
+
+ for (var t in transitions) {
+ if (typeof elem.style[t] !== 'undefined') {
+ end = transitions[t];
+ }
+ }
+ if (end) {
+ return end;
+ } else {
+ end = setTimeout(function () {
+ $elem.triggerHandler('transitionend', [$elem]);
+ }, 1);
+ return 'transitionend';
+ }
+ }
+ };
+
+ Foundation.util = {
+ /**
+ * Function for applying a debounce effect to a function call.
+ * @function
+ * @param {Function} func - Function to be called at end of timeout.
+ * @param {Number} delay - Time in ms to delay the call of `func`.
+ * @returns function
+ */
+ throttle: function (func, delay) {
+ var timer = null;
+
+ return function () {
+ var context = this,
+ args = arguments;
+
+ if (timer === null) {
+ timer = setTimeout(function () {
+ func.apply(context, args);
+ timer = null;
+ }, delay);
+ }
+ };
+ }
+ };
+
+ // TODO: consider not making this a jQuery function
+ // TODO: need way to reflow vs. re-initialize
+ /**
+ * The Foundation jQuery method.
+ * @param {String|Array} method - An action to perform on the current jQuery object.
+ */
+ var foundation = function (method) {
+ var type = typeof method,
+ $meta = $('meta.foundation-mq'),
+ $noJS = $('.no-js');
+
+ if (!$meta.length) {
+ $('<meta class="foundation-mq">').appendTo(document.head);
+ }
+ if ($noJS.length) {
+ $noJS.removeClass('no-js');
+ }
+
+ if (type === 'undefined') {
+ //needs to initialize the Foundation object, or an individual plugin.
+ Foundation.MediaQuery._init();
+ Foundation.reflow(this);
+ } else if (type === 'string') {
+ //an individual method to invoke on a plugin or group of plugins
+ var args = Array.prototype.slice.call(arguments, 1); //collect all the arguments, if necessary
+ var plugClass = this.data('zfPlugin'); //determine the class of plugin
+
+ if (plugClass !== undefined && plugClass[method] !== undefined) {
+ //make sure both the class and method exist
+ if (this.length === 1) {
+ //if there's only one, call it directly.
+ plugClass[method].apply(plugClass, args);
+ } else {
+ this.each(function (i, el) {
+ //otherwise loop through the jQuery collection and invoke the method on each
+ plugClass[method].apply($(el).data('zfPlugin'), args);
+ });
+ }
+ } else {
+ //error for no class or no method
+ throw new ReferenceError("We're sorry, '" + method + "' is not an available method for " + (plugClass ? functionName(plugClass) : 'this element') + '.');
+ }
+ } else {
+ //error for invalid argument type
+ throw new TypeError('We\'re sorry, ' + type + ' is not a valid parameter. You must use a string representing the method you wish to invoke.');
+ }
+ return this;
+ };
+
+ window.Foundation = Foundation;
+ $.fn.foundation = foundation;
+
+ // Polyfill for requestAnimationFrame
+ (function () {
+ if (!Date.now || !window.Date.now) window.Date.now = Date.now = function () {
+ return new Date().getTime();
+ };
+
+ var vendors = ['webkit', 'moz'];
+ for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {
+ var vp = vendors[i];
+ window.requestAnimationFrame = window[vp + 'RequestAnimationFrame'];
+ window.cancelAnimationFrame = window[vp + 'CancelAnimationFrame'] || window[vp + 'CancelRequestAnimationFrame'];
+ }
+ if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent) || !window.requestAnimationFrame || !window.cancelAnimationFrame) {
+ var lastTime = 0;
+ window.requestAnimationFrame = function (callback) {
+ var now = Date.now();
+ var nextTime = Math.max(lastTime + 16, now);
+ return setTimeout(function () {
+ callback(lastTime = nextTime);
+ }, nextTime - now);
+ };
+ window.cancelAnimationFrame = clearTimeout;
+ }
+ /**
+ * Polyfill for performance.now, required by rAF
+ */
+ if (!window.performance || !window.performance.now) {
+ window.performance = {
+ start: Date.now(),
+ now: function () {
+ return Date.now() - this.start;
+ }
+ };
+ }
+ })();
+ if (!Function.prototype.bind) {
+ Function.prototype.bind = function (oThis) {
+ if (typeof this !== 'function') {
+ // closest thing possible to the ECMAScript 5
+ // internal IsCallable function
+ throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');
+ }
+
+ var aArgs = Array.prototype.slice.call(arguments, 1),
+ fToBind = this,
+ fNOP = function () {},
+ fBound = function () {
+ return fToBind.apply(this instanceof fNOP ? this : oThis, aArgs.concat(Array.prototype.slice.call(arguments)));
+ };
+
+ if (this.prototype) {
+ // native functions don't have a prototype
+ fNOP.prototype = this.prototype;
+ }
+ fBound.prototype = new fNOP();
+
+ return fBound;
+ };
+ }
+ // Polyfill to get the name of a function in IE9
+ function functionName(fn) {
+ if (Function.prototype.name === undefined) {
+ var funcNameRegex = /function\s([^(]{1,})\(/;
+ var results = funcNameRegex.exec(fn.toString());
+ return results && results.length > 1 ? results[1].trim() : "";
+ } else if (fn.prototype === undefined) {
+ return fn.constructor.name;
+ } else {
+ return fn.prototype.constructor.name;
+ }
+ }
+ function parseValue(str) {
+ if (/true/.test(str)) return true;else if (/false/.test(str)) return false;else if (!isNaN(str * 1)) return parseFloat(str);
+ return str;
+ }
+ // Convert PascalCase to kebab-case
+ // Thank you: http://stackoverflow.com/a/8955580
+ function hyphenate(str) {
+ return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
+ }
+}(jQuery);
+'use strict';
+
+!function ($) {
+
+ Foundation.Box = {
+ ImNotTouchingYou: ImNotTouchingYou,
+ GetDimensions: GetDimensions,
+ GetOffsets: GetOffsets
+ };
+
+ /**
+ * Compares the dimensions of an element to a container and determines collision events with container.
+ * @function
+ * @param {jQuery} element - jQuery object to test for collisions.
+ * @param {jQuery} parent - jQuery object to use as bounding container.
+ * @param {Boolean} lrOnly - set to true to check left and right values only.
+ * @param {Boolean} tbOnly - set to true to check top and bottom values only.
+ * @default if no parent object passed, detects collisions with `window`.
+ * @returns {Boolean} - true if collision free, false if a collision in any direction.
+ */
+ function ImNotTouchingYou(element, parent, lrOnly, tbOnly) {
+ var eleDims = GetDimensions(element),
+ top,
+ bottom,
+ left,
+ right;
+
+ if (parent) {
+ var parDims = GetDimensions(parent);
+
+ bottom = eleDims.offset.top + eleDims.height <= parDims.height + parDims.offset.top;
+ top = eleDims.offset.top >= parDims.offset.top;
+ left = eleDims.offset.left >= parDims.offset.left;
+ right = eleDims.offset.left + eleDims.width <= parDims.width + parDims.offset.left;
+ } else {
+ bottom = eleDims.offset.top + eleDims.height <= eleDims.windowDims.height + eleDims.windowDims.offset.top;
+ top = eleDims.offset.top >= eleDims.windowDims.offset.top;
+ left = eleDims.offset.left >= eleDims.windowDims.offset.left;
+ right = eleDims.offset.left + eleDims.width <= eleDims.windowDims.width;
+ }
+
+ var allDirs = [bottom, top, left, right];
+
+ if (lrOnly) {
+ return left === right === true;
+ }
+
+ if (tbOnly) {
+ return top === bottom === true;
+ }
+
+ return allDirs.indexOf(false) === -1;
+ };
+
+ /**
+ * Uses native methods to return an object of dimension values.
+ * @function
+ * @param {jQuery || HTML} element - jQuery object or DOM element for which to get the dimensions. Can be any element other that document or window.
+ * @returns {Object} - nested object of integer pixel values
+ * TODO - if element is window, return only those values.
+ */
+ function GetDimensions(elem, test) {
+ elem = elem.length ? elem[0] : elem;
+
+ if (elem === window || elem === document) {
+ throw new Error("I'm sorry, Dave. I'm afraid I can't do that.");
+ }
+
+ var rect = elem.getBoundingClientRect(),
+ parRect = elem.parentNode.getBoundingClientRect(),
+ winRect = document.body.getBoundingClientRect(),
+ winY = window.pageYOffset,
+ winX = window.pageXOffset;
+
+ return {
+ width: rect.width,
+ height: rect.height,
+ offset: {
+ top: rect.top + winY,
+ left: rect.left + winX
+ },
+ parentDims: {
+ width: parRect.width,
+ height: parRect.height,
+ offset: {
+ top: parRect.top + winY,
+ left: parRect.left + winX
+ }
+ },
+ windowDims: {
+ width: winRect.width,
+ height: winRect.height,
+ offset: {
+ top: winY,
+ left: winX
+ }
+ }
+ };
+ }
+
+ /**
+ * Returns an object of top and left integer pixel values for dynamically rendered elements,
+ * such as: Tooltip, Reveal, and Dropdown
+ * @function
+ * @param {jQuery} element - jQuery object for the element being positioned.
+ * @param {jQuery} anchor - jQuery object for the element's anchor point.
+ * @param {String} position - a string relating to the desired position of the element, relative to it's anchor
+ * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element.
+ * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element.
+ * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset.
+ * TODO alter/rewrite to work with `em` values as well/instead of pixels
+ */
+ function GetOffsets(element, anchor, position, vOffset, hOffset, isOverflow) {
+ var $eleDims = GetDimensions(element),
+ $anchorDims = anchor ? GetDimensions(anchor) : null;
+
+ switch (position) {
+ case 'top':
+ return {
+ left: Foundation.rtl() ? $anchorDims.offset.left - $eleDims.width + $anchorDims.width : $anchorDims.offset.left,
+ top: $anchorDims.offset.top - ($eleDims.height + vOffset)
+ };
+ break;
+ case 'left':
+ return {
+ left: $anchorDims.offset.left - ($eleDims.width + hOffset),
+ top: $anchorDims.offset.top
+ };
+ break;
+ case 'right':
+ return {
+ left: $anchorDims.offset.left + $anchorDims.width + hOffset,
+ top: $anchorDims.offset.top
+ };
+ break;
+ case 'center top':
+ return {
+ left: $anchorDims.offset.left + $anchorDims.width / 2 - $eleDims.width / 2,
+ top: $anchorDims.offset.top - ($eleDims.height + vOffset)
+ };
+ break;
+ case 'center bottom':
+ return {
+ left: isOverflow ? hOffset : $anchorDims.offset.left + $anchorDims.width / 2 - $eleDims.width / 2,
+ top: $anchorDims.offset.top + $anchorDims.height + vOffset
+ };
+ break;
+ case 'center left':
+ return {
+ left: $anchorDims.offset.left - ($eleDims.width + hOffset),
+ top: $anchorDims.offset.top + $anchorDims.height / 2 - $eleDims.height / 2
+ };
+ break;
+ case 'center right':
+ return {
+ left: $anchorDims.offset.left + $anchorDims.width + hOffset + 1,
+ top: $anchorDims.offset.top + $anchorDims.height / 2 - $eleDims.height / 2
+ };
+ break;
+ case 'center':
+ return {
+ left: $eleDims.windowDims.offset.left + $eleDims.windowDims.width / 2 - $eleDims.width / 2,
+ top: $eleDims.windowDims.offset.top + $eleDims.windowDims.height / 2 - $eleDims.height / 2
+ };
+ break;
+ case 'reveal':
+ return {
+ left: ($eleDims.windowDims.width - $eleDims.width) / 2,
+ top: $eleDims.windowDims.offset.top + vOffset
+ };
+ case 'reveal full':
+ return {
+ left: $eleDims.windowDims.offset.left,
+ top: $eleDims.windowDims.offset.top
+ };
+ break;
+ case 'left bottom':
+ return {
+ left: $anchorDims.offset.left - ($eleDims.width + hOffset),
+ top: $anchorDims.offset.top + $anchorDims.height
+ };
+ break;
+ case 'right bottom':
+ return {
+ left: $anchorDims.offset.left + $anchorDims.width + hOffset - $eleDims.width,
+ top: $anchorDims.offset.top + $anchorDims.height
+ };
+ break;
+ default:
+ return {
+ left: Foundation.rtl() ? $anchorDims.offset.left - $eleDims.width + $anchorDims.width : $anchorDims.offset.left,
+ top: $anchorDims.offset.top + $anchorDims.height + vOffset
+ };
+ }
+ }
+}(jQuery);
+/*******************************************
+ * *
+ * This util was created by Marius Olbertz *
+ * Please thank Marius on GitHub /owlbertz *
+ * or the web http://www.mariusolbertz.de/ *
+ * *
+ ******************************************/
+
+'use strict';
+
+!function ($) {
+
+ var keyCodes = {
+ 9: 'TAB',
+ 13: 'ENTER',
+ 27: 'ESCAPE',
+ 32: 'SPACE',
+ 37: 'ARROW_LEFT',
+ 38: 'ARROW_UP',
+ 39: 'ARROW_RIGHT',
+ 40: 'ARROW_DOWN'
+ };
+
+ var commands = {};
+
+ var Keyboard = {
+ keys: getKeyCodes(keyCodes),
+
+ /**
+ * Parses the (keyboard) event and returns a String that represents its key
+ * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE
+ * @param {Event} event - the event generated by the event handler
+ * @return String key - String that represents the key pressed
+ */
+ parseKey: function (event) {
+ var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase();
+ if (event.shiftKey) key = 'SHIFT_' + key;
+ if (event.ctrlKey) key = 'CTRL_' + key;
+ if (event.altKey) key = 'ALT_' + key;
+ return key;
+ },
+
+
+ /**
+ * Handles the given (keyboard) event
+ * @param {Event} event - the event generated by the event handler
+ * @param {String} component - Foundation component's name, e.g. Slider or Reveal
+ * @param {Objects} functions - collection of functions that are to be executed
+ */
+ handleKey: function (event, component, functions) {
+ var commandList = commands[component],
+ keyCode = this.parseKey(event),
+ cmds,
+ command,
+ fn;
+
+ if (!commandList) return console.warn('Component not defined!');
+
+ if (typeof commandList.ltr === 'undefined') {
+ // this component does not differentiate between ltr and rtl
+ cmds = commandList; // use plain list
+ } else {
+ // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa
+ if (Foundation.rtl()) cmds = $.extend({}, commandList.ltr, commandList.rtl);else cmds = $.extend({}, commandList.rtl, commandList.ltr);
+ }
+ command = cmds[keyCode];
+
+ fn = functions[command];
+ if (fn && typeof fn === 'function') {
+ // execute function if exists
+ var returnValue = fn.apply();
+ if (functions.handled || typeof functions.handled === 'function') {
+ // execute function when event was handled
+ functions.handled(returnValue);
+ }
+ } else {
+ if (functions.unhandled || typeof functions.unhandled === 'function') {
+ // execute function when event was not handled
+ functions.unhandled();
+ }
+ }
+ },
+
+
+ /**
+ * Finds all focusable elements within the given `$element`
+ * @param {jQuery} $element - jQuery object to search within
+ * @return {jQuery} $focusable - all focusable elements within `$element`
+ */
+ findFocusable: function ($element) {
+ return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function () {
+ if (!$(this).is(':visible') || $(this).attr('tabindex') < 0) {
+ return false;
+ } //only have visible elements and those that have a tabindex greater or equal 0
+ return true;
+ });
+ },
+
+
+ /**
+ * Returns the component name name
+ * @param {Object} component - Foundation component, e.g. Slider or Reveal
+ * @return String componentName
+ */
+
+ register: function (componentName, cmds) {
+ commands[componentName] = cmds;
+ }
+ };
+
+ /*
+ * Constants for easier comparing.
+ * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE
+ */
+ function getKeyCodes(kcs) {
+ var k = {};
+ for (var kc in kcs) {
+ k[kcs[kc]] = kcs[kc];
+ }return k;
+ }
+
+ Foundation.Keyboard = Keyboard;
+}(jQuery);
+'use strict';
+
+!function ($) {
+
+ // Default set of media queries
+ var defaultQueries = {
+ 'default': 'only screen',
+ landscape: 'only screen and (orientation: landscape)',
+ portrait: 'only screen and (orientation: portrait)',
+ retina: 'only screen and (-webkit-min-device-pixel-ratio: 2),' + 'only screen and (min--moz-device-pixel-ratio: 2),' + 'only screen and (-o-min-device-pixel-ratio: 2/1),' + 'only screen and (min-device-pixel-ratio: 2),' + 'only screen and (min-resolution: 192dpi),' + 'only screen and (min-resolution: 2dppx)'
+ };
+
+ var MediaQuery = {
+ queries: [],
+
+ current: '',
+
+ /**
+ * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.
+ * @function
+ * @private
+ */
+ _init: function () {
+ var self = this;
+ var extractedStyles = $('.foundation-mq').css('font-family');
+ var namedQueries;
+
+ namedQueries = parseStyleToObject(extractedStyles);
+
+ for (var key in namedQueries) {
+ if (namedQueries.hasOwnProperty(key)) {
+ self.queries.push({
+ name: key,
+ value: 'only screen and (min-width: ' + namedQueries[key] + ')'
+ });
+ }
+ }
+
+ this.current = this._getCurrentSize();
+
+ this._watcher();
+ },
+
+
+ /**
+ * Checks if the screen is at least as wide as a breakpoint.
+ * @function
+ * @param {String} size - Name of the breakpoint to check.
+ * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.
+ */
+ atLeast: function (size) {
+ var query = this.get(size);
+
+ if (query) {
+ return window.matchMedia(query).matches;
+ }
+
+ return false;
+ },
+
+
+ /**
+ * Gets the media query of a breakpoint.
+ * @function
+ * @param {String} size - Name of the breakpoint to get.
+ * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.
+ */
+ get: function (size) {
+ for (var i in this.queries) {
+ if (this.queries.hasOwnProperty(i)) {
+ var query = this.queries[i];
+ if (size === query.name) return query.value;
+ }
+ }
+
+ return null;
+ },
+
+
+ /**
+ * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).
+ * @function
+ * @private
+ * @returns {String} Name of the current breakpoint.
+ */
+ _getCurrentSize: function () {
+ var matched;
+
+ for (var i = 0; i < this.queries.length; i++) {
+ var query = this.queries[i];
+
+ if (window.matchMedia(query.value).matches) {
+ matched = query;
+ }
+ }
+
+ if (typeof matched === 'object') {
+ return matched.name;
+ } else {
+ return matched;
+ }
+ },
+
+
+ /**
+ * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.
+ * @function
+ * @private
+ */
+ _watcher: function () {
+ var _this = this;
+
+ $(window).on('resize.zf.mediaquery', function () {
+ var newSize = _this._getCurrentSize(),
+ currentSize = _this.current;
+
+ if (newSize !== currentSize) {
+ // Change the current media query
+ _this.current = newSize;
+
+ // Broadcast the media query change on the window
+ $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);
+ }
+ });
+ }
+ };
+
+ Foundation.MediaQuery = MediaQuery;
+
+ // matchMedia() polyfill - Test a CSS media type/query in JS.
+ // Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license
+ window.matchMedia || (window.matchMedia = function () {
+ 'use strict';
+
+ // For browsers that support matchMedium api such as IE 9 and webkit
+
+ var styleMedia = window.styleMedia || window.media;
+
+ // For those that don't support matchMedium
+ if (!styleMedia) {
+ var style = document.createElement('style'),
+ script = document.getElementsByTagName('script')[0],
+ info = null;
+
+ style.type = 'text/css';
+ style.id = 'matchmediajs-test';
+
+ script.parentNode.insertBefore(style, script);
+
+ // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers
+ info = 'getComputedStyle' in window && window.getComputedStyle(style, null) || style.currentStyle;
+
+ styleMedia = {
+ matchMedium: function (media) {
+ var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';
+
+ // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers
+ if (style.styleSheet) {
+ style.styleSheet.cssText = text;
+ } else {
+ style.textContent = text;
+ }
+
+ // Test if media query is true or false
+ return info.width === '1px';
+ }
+ };
+ }
+
+ return function (media) {
+ return {
+ matches: styleMedia.matchMedium(media || 'all'),
+ media: media || 'all'
+ };
+ };
+ }());
+
+ // Thank you: https://github.com/sindresorhus/query-string
+ function parseStyleToObject(str) {
+ var styleObject = {};
+
+ if (typeof str !== 'string') {
+ return styleObject;
+ }
+
+ str = str.trim().slice(1, -1); // browsers re-quote string style values
+
+ if (!str) {
+ return styleObject;
+ }
+
+ styleObject = str.split('&').reduce(function (ret, param) {
+ var parts = param.replace(/\+/g, ' ').split('=');
+ var key = parts[0];
+ var val = parts[1];
+ key = decodeURIComponent(key);
+
+ // missing `=` should be `null`:
+ // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters
+ val = val === undefined ? null : decodeURIComponent(val);
+
+ if (!ret.hasOwnProperty(key)) {
+ ret[key] = val;
+ } else if (Array.isArray(ret[key])) {
+ ret[key].push(val);
+ } else {
+ ret[key] = [ret[key], val];
+ }
+ return ret;
+ }, {});
+
+ return styleObject;
+ }
+
+ Foundation.MediaQuery = MediaQuery;
+}(jQuery);
+'use strict';
+
+!function ($) {
+
+ /**
+ * Motion module.
+ * @module foundation.motion
+ */
+
+ var initClasses = ['mui-enter', 'mui-leave'];
+ var activeClasses = ['mui-enter-active', 'mui-leave-active'];
+
+ var Motion = {
+ animateIn: function (element, animation, cb) {
+ animate(true, element, animation, cb);
+ },
+
+ animateOut: function (element, animation, cb) {
+ animate(false, element, animation, cb);
+ }
+ };
+
+ function Move(duration, elem, fn) {
+ var anim,
+ prog,
+ start = null;
+ // console.log('called');
+
+ function move(ts) {
+ if (!start) start = window.performance.now();
+ // console.log(start, ts);
+ prog = ts - start;
+ fn.apply(elem);
+
+ if (prog < duration) {
+ anim = window.requestAnimationFrame(move, elem);
+ } else {
+ window.cancelAnimationFrame(anim);
+ elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);
+ }
+ }
+ anim = window.requestAnimationFrame(move);
+ }
+
+ /**
+ * Animates an element in or out using a CSS transition class.
+ * @function
+ * @private
+ * @param {Boolean} isIn - Defines if the animation is in or out.
+ * @param {Object} element - jQuery or HTML object to animate.
+ * @param {String} animation - CSS class to use.
+ * @param {Function} cb - Callback to run when animation is finished.
+ */
+ function animate(isIn, element, animation, cb) {
+ element = $(element).eq(0);
+
+ if (!element.length) return;
+
+ var initClass = isIn ? initClasses[0] : initClasses[1];
+ var activeClass = isIn ? activeClasses[0] : activeClasses[1];
+
+ // Set up the animation
+ reset();
+
+ element.addClass(animation).css('transition', 'none');
+
+ requestAnimationFrame(function () {
+ element.addClass(initClass);
+ if (isIn) element.show();
+ });
+
+ // Start the animation
+ requestAnimationFrame(function () {
+ element[0].offsetWidth;
+ element.css('transition', '').addClass(activeClass);
+ });
+
+ // Clean up the animation when it finishes
+ element.one(Foundation.transitionend(element), finish);
+
+ // Hides the element (for out animations), resets the element, and runs a callback
+ function finish() {
+ if (!isIn) element.hide();
+ reset();
+ if (cb) cb.apply(element);
+ }
+
+ // Resets transitions and removes motion-specific classes
+ function reset() {
+ element[0].style.transitionDuration = 0;
+ element.removeClass(initClass + ' ' + activeClass + ' ' + animation);
+ }
+ }
+
+ Foundation.Move = Move;
+ Foundation.Motion = Motion;
+}(jQuery);
+'use strict';
+
+!function ($) {
+
+ var Nest = {
+ Feather: function (menu) {
+ var type = arguments.length <= 1 || arguments[1] === undefined ? 'zf' : arguments[1];
+
+ menu.attr('role', 'menubar');
+
+ var items = menu.find('li').attr({ 'role': 'menuitem' }),
+ subMenuClass = 'is-' + type + '-submenu',
+ subItemClass = subMenuClass + '-item',
+ hasSubClass = 'is-' + type + '-submenu-parent';
+
+ menu.find('a:first').attr('tabindex', 0);
+
+ items.each(function () {
+ var $item = $(this),
+ $sub = $item.children('ul');
+
+ if ($sub.length) {
+ $item.addClass(hasSubClass).attr({
+ 'aria-haspopup': true,
+ 'aria-expanded': false,
+ 'aria-label': $item.children('a:first').text()
+ });
+
+ $sub.addClass('submenu ' + subMenuClass).attr({
+ 'data-submenu': '',
+ 'aria-hidden': true,
+ 'role': 'menu'
+ });
+ }
+
+ if ($item.parent('[data-submenu]').length) {
+ $item.addClass('is-submenu-item ' + subItemClass);
+ }
+ });
+
+ return;
+ },
+ Burn: function (menu, type) {
+ var items = menu.find('li').removeAttr('tabindex'),
+ subMenuClass = 'is-' + type + '-submenu',
+ subItemClass = subMenuClass + '-item',
+ hasSubClass = 'is-' + type + '-submenu-parent';
+
+ menu.find('*').removeClass(subMenuClass + ' ' + subItemClass + ' ' + hasSubClass + ' is-submenu-item submenu is-active').removeAttr('data-submenu').css('display', '');
+
+ // console.log( menu.find('.' + subMenuClass + ', .' + subItemClass + ', .has-submenu, .is-submenu-item, .submenu, [data-submenu]')
+ // .removeClass(subMenuClass + ' ' + subItemClass + ' has-submenu is-submenu-item submenu')
+ // .removeAttr('data-submenu'));
+ // items.each(function(){
+ // var $item = $(this),
+ // $sub = $item.children('ul');
+ // if($item.parent('[data-submenu]').length){
+ // $item.removeClass('is-submenu-item ' + subItemClass);
+ // }
+ // if($sub.length){
+ // $item.removeClass('has-submenu');
+ // $sub.removeClass('submenu ' + subMenuClass).removeAttr('data-submenu');
+ // }
+ // });
+ }
+ };
+
+ Foundation.Nest = Nest;
+}(jQuery);
+'use strict';
+
+!function ($) {
+
+ function Timer(elem, options, cb) {
+ var _this = this,
+ duration = options.duration,
+ //options is an object for easily adding features later.
+ nameSpace = Object.keys(elem.data())[0] || 'timer',
+ remain = -1,
+ start,
+ timer;
+
+ this.isPaused = false;
+
+ this.restart = function () {
+ remain = -1;
+ clearTimeout(timer);
+ this.start();
+ };
+
+ this.start = function () {
+ this.isPaused = false;
+ // if(!elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.
+ clearTimeout(timer);
+ remain = remain <= 0 ? duration : remain;
+ elem.data('paused', false);
+ start = Date.now();
+ timer = setTimeout(function () {
+ if (options.infinite) {
+ _this.restart(); //rerun the timer.
+ }
+ cb();
+ }, remain);
+ elem.trigger('timerstart.zf.' + nameSpace);
+ };
+
+ this.pause = function () {
+ this.isPaused = true;
+ //if(elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.
+ clearTimeout(timer);
+ elem.data('paused', true);
+ var end = Date.now();
+ remain = remain - (end - start);
+ elem.trigger('timerpaused.zf.' + nameSpace);
+ };
+ }
+
+ /**
+ * Runs a callback function when images are fully loaded.
+ * @param {Object} images - Image(s) to check if loaded.
+ * @param {Func} callback - Function to execute when image is fully loaded.
+ */
+ function onImagesLoaded(images, callback) {
+ var self = this,
+ unloaded = images.length;
+
+ if (unloaded === 0) {
+ callback();
+ }
+
+ images.each(function () {
+ if (this.complete) {
+ singleImageLoaded();
+ } else if (typeof this.naturalWidth !== 'undefined' && this.naturalWidth > 0) {
+ singleImageLoaded();
+ } else {
+ $(this).one('load', function () {
+ singleImageLoaded();
+ });
+ }
+ });
+
+ function singleImageLoaded() {
+ unloaded--;
+ if (unloaded === 0) {
+ callback();
+ }
+ }
+ }
+
+ Foundation.Timer = Timer;
+ Foundation.onImagesLoaded = onImagesLoaded;
+}(jQuery);
+//**************************************************
+//**Work inspired by multiple jquery swipe plugins**
+//**Done by Yohai Ararat ***************************
+//**************************************************
+(function ($) {
+
+ $.spotSwipe = {
+ version: '1.0.0',
+ enabled: 'ontouchstart' in document.documentElement,
+ preventDefault: false,
+ moveThreshold: 75,
+ timeThreshold: 200
+ };
+
+ var startPosX,
+ startPosY,
+ startTime,
+ elapsedTime,
+ isMoving = false;
+
+ function onTouchEnd() {
+ // alert(this);
+ this.removeEventListener('touchmove', onTouchMove);
+ this.removeEventListener('touchend', onTouchEnd);
+ isMoving = false;
+ }
+
+ function onTouchMove(e) {
+ if ($.spotSwipe.preventDefault) {
+ e.preventDefault();
+ }
+ if (isMoving) {
+ var x = e.touches[0].pageX;
+ var y = e.touches[0].pageY;
+ var dx = startPosX - x;
+ var dy = startPosY - y;
+ var dir;
+ elapsedTime = new Date().getTime() - startTime;
+ if (Math.abs(dx) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {
+ dir = dx > 0 ? 'left' : 'right';
+ }
+ // else if(Math.abs(dy) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {
+ // dir = dy > 0 ? 'down' : 'up';
+ // }
+ if (dir) {
+ e.preventDefault();
+ onTouchEnd.call(this);
+ $(this).trigger('swipe', dir).trigger('swipe' + dir);
+ }
+ }
+ }
+
+ function onTouchStart(e) {
+ if (e.touches.length == 1) {
+ startPosX = e.touches[0].pageX;
+ startPosY = e.touches[0].pageY;
+ isMoving = true;
+ startTime = new Date().getTime();
+ this.addEventListener('touchmove', onTouchMove, false);
+ this.addEventListener('touchend', onTouchEnd, false);
+ }
+ }
+
+ function init() {
+ this.addEventListener && this.addEventListener('touchstart', onTouchStart, false);
+ }
+
+ function teardown() {
+ this.removeEventListener('touchstart', onTouchStart);
+ }
+
+ $.event.special.swipe = { setup: init };
+
+ $.each(['left', 'up', 'down', 'right'], function () {
+ $.event.special['swipe' + this] = { setup: function () {
+ $(this).on('swipe', $.noop);
+ } };
+ });
+})(jQuery);
+/****************************************************
+ * Method for adding psuedo drag events to elements *
+ ***************************************************/
+!function ($) {
+ $.fn.addTouch = function () {
+ this.each(function (i, el) {
+ $(el).bind('touchstart touchmove touchend touchcancel', function () {
+ //we pass the original event object because the jQuery event
+ //object is normalized to w3c specs and does not provide the TouchList
+ handleTouch(event);
+ });
+ });
+
+ var handleTouch = function (event) {
+ var touches = event.changedTouches,
+ first = touches[0],
+ eventTypes = {
+ touchstart: 'mousedown',
+ touchmove: 'mousemove',
+ touchend: 'mouseup'
+ },
+ type = eventTypes[event.type],
+ simulatedEvent;
+
+ if ('MouseEvent' in window && typeof window.MouseEvent === 'function') {
+ simulatedEvent = new window.MouseEvent(type, {
+ 'bubbles': true,
+ 'cancelable': true,
+ 'screenX': first.screenX,
+ 'screenY': first.screenY,
+ 'clientX': first.clientX,
+ 'clientY': first.clientY
+ });
+ } else {
+ simulatedEvent = document.createEvent('MouseEvent');
+ simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0 /*left*/, null);
+ }
+ first.target.dispatchEvent(simulatedEvent);
+ };
+ };
+}(jQuery);
+
+//**********************************
+//**From the jQuery Mobile Library**
+//**need to recreate functionality**
+//**and try to improve if possible**
+//**********************************
+
+/* Removing the jQuery function ****
+************************************
+
+(function( $, window, undefined ) {
+
+ var $document = $( document ),
+ // supportTouch = $.mobile.support.touch,
+ touchStartEvent = 'touchstart'//supportTouch ? "touchstart" : "mousedown",
+ touchStopEvent = 'touchend'//supportTouch ? "touchend" : "mouseup",
+ touchMoveEvent = 'touchmove'//supportTouch ? "touchmove" : "mousemove";
+
+ // setup new event shortcuts
+ $.each( ( "touchstart touchmove touchend " +
+ "swipe swipeleft swiperight" ).split( " " ), function( i, name ) {
+
+ $.fn[ name ] = function( fn ) {
+ return fn ? this.bind( name, fn ) : this.trigger( name );
+ };
+
+ // jQuery < 1.8
+ if ( $.attrFn ) {
+ $.attrFn[ name ] = true;
+ }
+ });
+
+ function triggerCustomEvent( obj, eventType, event, bubble ) {
+ var originalType = event.type;
+ event.type = eventType;
+ if ( bubble ) {
+ $.event.trigger( event, undefined, obj );
+ } else {
+ $.event.dispatch.call( obj, event );
+ }
+ event.type = originalType;
+ }
+
+ // also handles taphold
+
+ // Also handles swipeleft, swiperight
+ $.event.special.swipe = {
+
+ // More than this horizontal displacement, and we will suppress scrolling.
+ scrollSupressionThreshold: 30,
+
+ // More time than this, and it isn't a swipe.
+ durationThreshold: 1000,
+
+ // Swipe horizontal displacement must be more than this.
+ horizontalDistanceThreshold: window.devicePixelRatio >= 2 ? 15 : 30,
+
+ // Swipe vertical displacement must be less than this.
+ verticalDistanceThreshold: window.devicePixelRatio >= 2 ? 15 : 30,
+
+ getLocation: function ( event ) {
+ var winPageX = window.pageXOffset,
+ winPageY = window.pageYOffset,
+ x = event.clientX,
+ y = event.clientY;
+
+ if ( event.pageY === 0 && Math.floor( y ) > Math.floor( event.pageY ) ||
+ event.pageX === 0 && Math.floor( x ) > Math.floor( event.pageX ) ) {
+
+ // iOS4 clientX/clientY have the value that should have been
+ // in pageX/pageY. While pageX/page/ have the value 0
+ x = x - winPageX;
+ y = y - winPageY;
+ } else if ( y < ( event.pageY - winPageY) || x < ( event.pageX - winPageX ) ) {
+
+ // Some Android browsers have totally bogus values for clientX/Y
+ // when scrolling/zooming a page. Detectable since clientX/clientY
+ // should never be smaller than pageX/pageY minus page scroll
+ x = event.pageX - winPageX;
+ y = event.pageY - winPageY;
+ }
+
+ return {
+ x: x,
+ y: y
+ };
+ },
+
+ start: function( event ) {
+ var data = event.originalEvent.touches ?
+ event.originalEvent.touches[ 0 ] : event,
+ location = $.event.special.swipe.getLocation( data );
+ return {
+ time: ( new Date() ).getTime(),
+ coords: [ location.x, location.y ],
+ origin: $( event.target )
+ };
+ },
+
+ stop: function( event ) {
+ var data = event.originalEvent.touches ?
+ event.originalEvent.touches[ 0 ] : event,
+ location = $.event.special.swipe.getLocation( data );
+ return {
+ time: ( new Date() ).getTime(),
+ coords: [ location.x, location.y ]
+ };
+ },
+
+ handleSwipe: function( start, stop, thisObject, origTarget ) {
+ if ( stop.time - start.time < $.event.special.swipe.durationThreshold &&
+ Math.abs( start.coords[ 0 ] - stop.coords[ 0 ] ) > $.event.special.swipe.horizontalDistanceThreshold &&
+ Math.abs( start.coords[ 1 ] - stop.coords[ 1 ] ) < $.event.special.swipe.verticalDistanceThreshold ) {
+ var direction = start.coords[0] > stop.coords[ 0 ] ? "swipeleft" : "swiperight";
+
+ triggerCustomEvent( thisObject, "swipe", $.Event( "swipe", { target: origTarget, swipestart: start, swipestop: stop }), true );
+ triggerCustomEvent( thisObject, direction,$.Event( direction, { target: origTarget, swipestart: start, swipestop: stop } ), true );
+ return true;
+ }
+ return false;
+
+ },
+
+ // This serves as a flag to ensure that at most one swipe event event is
+ // in work at any given time
+ eventInProgress: false,
+
+ setup: function() {
+ var events,
+ thisObject = this,
+ $this = $( thisObject ),
+ context = {};
+
+ // Retrieve the events data for this element and add the swipe context
+ events = $.data( this, "mobile-events" );
+ if ( !events ) {
+ events = { length: 0 };
+ $.data( this, "mobile-events", events );
+ }
+ events.length++;
+ events.swipe = context;
+
+ context.start = function( event ) {
+
+ // Bail if we're already working on a swipe event
+ if ( $.event.special.swipe.eventInProgress ) {
+ return;
+ }
+ $.event.special.swipe.eventInProgress = true;
+
+ var stop,
+ start = $.event.special.swipe.start( event ),
+ origTarget = event.target,
+ emitted = false;
+
+ context.move = function( event ) {
+ if ( !start || event.isDefaultPrevented() ) {
+ return;
+ }
+
+ stop = $.event.special.swipe.stop( event );
+ if ( !emitted ) {
+ emitted = $.event.special.swipe.handleSwipe( start, stop, thisObject, origTarget );
+ if ( emitted ) {
+
+ // Reset the context to make way for the next swipe event
+ $.event.special.swipe.eventInProgress = false;
+ }
+ }
+ // prevent scrolling
+ if ( Math.abs( start.coords[ 0 ] - stop.coords[ 0 ] ) > $.event.special.swipe.scrollSupressionThreshold ) {
+ event.preventDefault();
+ }
+ };
+
+ context.stop = function() {
+ emitted = true;
+
+ // Reset the context to make way for the next swipe event
+ $.event.special.swipe.eventInProgress = false;
+ $document.off( touchMoveEvent, context.move );
+ context.move = null;
+ };
+
+ $document.on( touchMoveEvent, context.move )
+ .one( touchStopEvent, context.stop );
+ };
+ $this.on( touchStartEvent, context.start );
+ },
+
+ teardown: function() {
+ var events, context;
+
+ events = $.data( this, "mobile-events" );
+ if ( events ) {
+ context = events.swipe;
+ delete events.swipe;
+ events.length--;
+ if ( events.length === 0 ) {
+ $.removeData( this, "mobile-events" );
+ }
+ }
+
+ if ( context ) {
+ if ( context.start ) {
+ $( this ).off( touchStartEvent, context.start );
+ }
+ if ( context.move ) {
+ $document.off( touchMoveEvent, context.move );
+ }
+ if ( context.stop ) {
+ $document.off( touchStopEvent, context.stop );
+ }
+ }
+ }
+ };
+ $.each({
+ swipeleft: "swipe.left",
+ swiperight: "swipe.right"
+ }, function( event, sourceEvent ) {
+
+ $.event.special[ event ] = {
+ setup: function() {
+ $( this ).bind( sourceEvent, $.noop );
+ },
+ teardown: function() {
+ $( this ).unbind( sourceEvent );
+ }
+ };
+ });
+})( jQuery, this );
+*/
+'use strict';
+
+!function ($) {
+
+ var MutationObserver = function () {
+ var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];
+ for (var i = 0; i < prefixes.length; i++) {
+ if (prefixes[i] + 'MutationObserver' in window) {
+ return window[prefixes[i] + 'MutationObserver'];
+ }
+ }
+ return false;
+ }();
+
+ var triggers = function (el, type) {
+ el.data(type).split(' ').forEach(function (id) {
+ $('#' + id)[type === 'close' ? 'trigger' : 'triggerHandler'](type + '.zf.trigger', [el]);
+ });
+ };
+ // Elements with [data-open] will reveal a plugin that supports it when clicked.
+ $(document).on('click.zf.trigger', '[data-open]', function () {
+ triggers($(this), 'open');
+ });
+
+ // Elements with [data-close] will close a plugin that supports it when clicked.
+ // If used without a value on [data-close], the event will bubble, allowing it to close a parent component.
+ $(document).on('click.zf.trigger', '[data-close]', function () {
+ var id = $(this).data('close');
+ if (id) {
+ triggers($(this), 'close');
+ } else {
+ $(this).trigger('close.zf.trigger');
+ }
+ });
+
+ // Elements with [data-toggle] will toggle a plugin that supports it when clicked.
+ $(document).on('click.zf.trigger', '[data-toggle]', function () {
+ triggers($(this), 'toggle');
+ });
+
+ // Elements with [data-closable] will respond to close.zf.trigger events.
+ $(document).on('close.zf.trigger', '[data-closable]', function (e) {
+ e.stopPropagation();
+ var animation = $(this).data('closable');
+
+ if (animation !== '') {
+ Foundation.Motion.animateOut($(this), animation, function () {
+ $(this).trigger('closed.zf');
+ });
+ } else {
+ $(this).fadeOut().trigger('closed.zf');
+ }
+ });
+
+ $(document).on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', function () {
+ var id = $(this).data('toggle-focus');
+ $('#' + id).triggerHandler('toggle.zf.trigger', [$(this)]);
+ });
+
+ /**
+ * Fires once after all other scripts have loaded
+ * @function
+ * @private
+ */
+ $(window).on('load', function () {
+ checkListeners();
+ });
+
+ function checkListeners() {
+ eventsListener();
+ resizeListener();
+ scrollListener();
+ closemeListener();
+ }
+
+ //******** only fires this function once on load, if there's something to watch ********
+ function closemeListener(pluginName) {
+ var yetiBoxes = $('[data-yeti-box]'),
+ plugNames = ['dropdown', 'tooltip', 'reveal'];
+
+ if (pluginName) {
+ if (typeof pluginName === 'string') {
+ plugNames.push(pluginName);
+ } else if (typeof pluginName === 'object' && typeof pluginName[0] === 'string') {
+ plugNames.concat(pluginName);
+ } else {
+ console.error('Plugin names must be strings');
+ }
+ }
+ if (yetiBoxes.length) {
+ var listeners = plugNames.map(function (name) {
+ return 'closeme.zf.' + name;
+ }).join(' ');
+
+ $(window).off(listeners).on(listeners, function (e, pluginId) {
+ var plugin = e.namespace.split('.')[0];
+ var plugins = $('[data-' + plugin + ']').not('[data-yeti-box="' + pluginId + '"]');
+
+ plugins.each(function () {
+ var _this = $(this);
+
+ _this.triggerHandler('close.zf.trigger', [_this]);
+ });
+ });
+ }
+ }
+
+ function resizeListener(debounce) {
+ var timer = void 0,
+ $nodes = $('[data-resize]');
+ if ($nodes.length) {
+ $(window).off('resize.zf.trigger').on('resize.zf.trigger', function (e) {
+ if (timer) {
+ clearTimeout(timer);
+ }
+
+ timer = setTimeout(function () {
+
+ if (!MutationObserver) {
+ //fallback for IE 9
+ $nodes.each(function () {
+ $(this).triggerHandler('resizeme.zf.trigger');
+ });
+ }
+ //trigger all listening elements and signal a resize event
+ $nodes.attr('data-events', "resize");
+ }, debounce || 10); //default time to emit resize event
+ });
+ }
+ }
+
+ function scrollListener(debounce) {
+ var timer = void 0,
+ $nodes = $('[data-scroll]');
+ if ($nodes.length) {
+ $(window).off('scroll.zf.trigger').on('scroll.zf.trigger', function (e) {
+ if (timer) {
+ clearTimeout(timer);
+ }
+
+ timer = setTimeout(function () {
+
+ if (!MutationObserver) {
+ //fallback for IE 9
+ $nodes.each(function () {
+ $(this).triggerHandler('scrollme.zf.trigger');
+ });
+ }
+ //trigger all listening elements and signal a scroll event
+ $nodes.attr('data-events', "scroll");
+ }, debounce || 10); //default time to emit scroll event
+ });
+ }
+ }
+
+ function eventsListener() {
+ if (!MutationObserver) {
+ return false;
+ }
+ var nodes = document.querySelectorAll('[data-resize], [data-scroll], [data-mutate]');
+
+ //element callback
+ var listeningElementsMutation = function (mutationRecordsList) {
+ var $target = $(mutationRecordsList[0].target);
+ //trigger the event handler for the element depending on type
+ switch ($target.attr("data-events")) {
+
+ case "resize":
+ $target.triggerHandler('resizeme.zf.trigger', [$target]);
+ break;
+
+ case "scroll":
+ $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);
+ break;
+
+ // case "mutate" :
+ // console.log('mutate', $target);
+ // $target.triggerHandler('mutate.zf.trigger');
+ //
+ // //make sure we don't get stuck in an infinite loop from sloppy codeing
+ // if ($target.index('[data-mutate]') == $("[data-mutate]").length-1) {
+ // domMutationObserver();
+ // }
+ // break;
+
+ default:
+ return false;
+ //nothing
+ }
+ };
+
+ if (nodes.length) {
+ //for each element that needs to listen for resizing, scrolling, (or coming soon mutation) add a single observer
+ for (var i = 0; i <= nodes.length - 1; i++) {
+ var elementObserver = new MutationObserver(listeningElementsMutation);
+ elementObserver.observe(nodes[i], { attributes: true, childList: false, characterData: false, subtree: false, attributeFilter: ["data-events"] });
+ }
+ }
+ }
+
+ // ------------------------------------
+
+ // [PH]
+ // Foundation.CheckWatchers = checkWatchers;
+ Foundation.IHearYou = checkListeners;
+ // Foundation.ISeeYou = scrollListener;
+ // Foundation.IFeelYou = closemeListener;
+}(jQuery);
+
+// function domMutationObserver(debounce) {
+// // !!! This is coming soon and needs more work; not active !!! //
+// var timer,
+// nodes = document.querySelectorAll('[data-mutate]');
+// //
+// if (nodes.length) {
+// // var MutationObserver = (function () {
+// // var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];
+// // for (var i=0; i < prefixes.length; i++) {
+// // if (prefixes[i] + 'MutationObserver' in window) {
+// // return window[prefixes[i] + 'MutationObserver'];
+// // }
+// // }
+// // return false;
+// // }());
+//
+//
+// //for the body, we need to listen for all changes effecting the style and class attributes
+// var bodyObserver = new MutationObserver(bodyMutation);
+// bodyObserver.observe(document.body, { attributes: true, childList: true, characterData: false, subtree:true, attributeFilter:["style", "class"]});
+//
+//
+// //body callback
+// function bodyMutation(mutate) {
+// //trigger all listening elements and signal a mutation event
+// if (timer) { clearTimeout(timer); }
+//
+// timer = setTimeout(function() {
+// bodyObserver.disconnect();
+// $('[data-mutate]').attr('data-events',"mutate");
+// }, debounce || 150);
+// }
+// }
+// }
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+!function ($) {
+
+ /**
+ * Abide module.
+ * @module foundation.abide
+ */
+
+ var Abide = function () {
+ /**
+ * Creates a new instance of Abide.
+ * @class
+ * @fires Abide#init
+ * @param {Object} element - jQuery object to add the trigger to.
+ * @param {Object} options - Overrides to the default plugin settings.
+ */
+
+ function Abide(element) {
+ var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
+
+ _classCallCheck(this, Abide);
+
+ this.$element = element;
+ this.options = $.extend({}, Abide.defaults, this.$element.data(), options);
+
+ this._init();
+
+ Foundation.registerPlugin(this, 'Abide');
+ }
+
+ /**
+ * Initializes the Abide plugin and calls functions to get Abide functioning on load.
+ * @private
+ */
+
+
+ _createClass(Abide, [{
+ key: '_init',
+ value: function _init() {
+ this.$inputs = this.$element.find('input, textarea, select');
+
+ this._events();
+ }
+
+ /**
+ * Initializes events for Abide.
+ * @private
+ */
+
+ }, {
+ key: '_events',
+ value: function _events() {
+ var _this2 = this;
+
+ this.$element.off('.abide').on('reset.zf.abide', function () {
+ _this2.resetForm();
+ }).on('submit.zf.abide', function () {
+ return _this2.validateForm();
+ });
+
+ if (this.options.validateOn === 'fieldChange') {
+ this.$inputs.off('change.zf.abide').on('change.zf.abide', function (e) {
+ _this2.validateInput($(e.target));
+ });
+ }
+
+ if (this.options.liveValidate) {
+ this.$inputs.off('input.zf.abide').on('input.zf.abide', function (e) {
+ _this2.validateInput($(e.target));
+ });
+ }
+ }
+
+ /**
+ * Calls necessary functions to update Abide upon DOM change
+ * @private
+ */
+
+ }, {
+ key: '_reflow',
+ value: function _reflow() {
+ this._init();
+ }
+
+ /**
+ * Checks whether or not a form element has the required attribute and if it's checked or not
+ * @param {Object} element - jQuery object to check for required attribute
+ * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty
+ */
+
+ }, {
+ key: 'requiredCheck',
+ value: function requiredCheck($el) {
+ if (!$el.attr('required')) return true;
+
+ var isGood = true;
+
+ switch ($el[0].type) {
+ case 'checkbox':
+ isGood = $el[0].checked;
+ break;
+
+ case 'select':
+ case 'select-one':
+ case 'select-multiple':
+ var opt = $el.find('option:selected');
+ if (!opt.length || !opt.val()) isGood = false;
+ break;
+
+ default:
+ if (!$el.val() || !$el.val().length) isGood = false;
+ }
+
+ return isGood;
+ }
+
+ /**
+ * Based on $el, get the first element with selector in this order:
+ * 1. The element's direct sibling('s).
+ * 3. The element's parent's children.
+ *
+ * This allows for multiple form errors per input, though if none are found, no form errors will be shown.
+ *
+ * @param {Object} $el - jQuery object to use as reference to find the form error selector.
+ * @returns {Object} jQuery object with the selector.
+ */
+
+ }, {
+ key: 'findFormError',
+ value: function findFormError($el) {
+ var $error = $el.siblings(this.options.formErrorSelector);
+
+ if (!$error.length) {
+ $error = $el.parent().find(this.options.formErrorSelector);
+ }
+
+ return $error;
+ }
+
+ /**
+ * Get the first element in this order:
+ * 2. The <label> with the attribute `[for="someInputId"]`
+ * 3. The `.closest()` <label>
+ *
+ * @param {Object} $el - jQuery object to check for required attribute
+ * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty
+ */
+
+ }, {
+ key: 'findLabel',
+ value: function findLabel($el) {
+ var id = $el[0].id;
+ var $label = this.$element.find('label[for="' + id + '"]');
+
+ if (!$label.length) {
+ return $el.closest('label');
+ }
+
+ return $label;
+ }
+
+ /**
+ * Get the set of labels associated with a set of radio els in this order
+ * 2. The <label> with the attribute `[for="someInputId"]`
+ * 3. The `.closest()` <label>
+ *
+ * @param {Object} $el - jQuery object to check for required attribute
+ * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty
+ */
+
+ }, {
+ key: 'findRadioLabels',
+ value: function findRadioLabels($els) {
+ var _this3 = this;
+
+ var labels = $els.map(function (i, el) {
+ var id = el.id;
+ var $label = _this3.$element.find('label[for="' + id + '"]');
+
+ if (!$label.length) {
+ $label = $(el).closest('label');
+ }
+ return $label[0];
+ });
+
+ return $(labels);
+ }
+
+ /**
+ * Adds the CSS error class as specified by the Abide settings to the label, input, and the form
+ * @param {Object} $el - jQuery object to add the class to
+ */
+
+ }, {
+ key: 'addErrorClasses',
+ value: function addErrorClasses($el) {
+ var $label = this.findLabel($el);
+ var $formError = this.findFormError($el);
+
+ if ($label.length) {
+ $label.addClass(this.options.labelErrorClass);
+ }
+
+ if ($formError.length) {
+ $formError.addClass(this.options.formErrorClass);
+ }
+
+ $el.addClass(this.options.inputErrorClass).attr('data-invalid', '');
+ }
+
+ /**
+ * Remove CSS error classes etc from an entire radio button group
+ * @param {String} groupName - A string that specifies the name of a radio button group
+ *
+ */
+
+ }, {
+ key: 'removeRadioErrorClasses',
+ value: function removeRadioErrorClasses(groupName) {
+ var $els = this.$element.find(':radio[name="' + groupName + '"]');
+ var $labels = this.findRadioLabels($els);
+ var $formErrors = this.findFormError($els);
+
+ if ($labels.length) {
+ $labels.removeClass(this.options.labelErrorClass);
+ }
+
+ if ($formErrors.length) {
+ $formErrors.removeClass(this.options.formErrorClass);
+ }
+
+ $els.removeClass(this.options.inputErrorClass).removeAttr('data-invalid');
+ }
+
+ /**
+ * Removes CSS error class as specified by the Abide settings from the label, input, and the form
+ * @param {Object} $el - jQuery object to remove the class from
+ */
+
+ }, {
+ key: 'removeErrorClasses',
+ value: function removeErrorClasses($el) {
+ // radios need to clear all of the els
+ if ($el[0].type == 'radio') {
+ return this.removeRadioErrorClasses($el.attr('name'));
+ }
+
+ var $label = this.findLabel($el);
+ var $formError = this.findFormError($el);
+
+ if ($label.length) {
+ $label.removeClass(this.options.labelErrorClass);
+ }
+
+ if ($formError.length) {
+ $formError.removeClass(this.options.formErrorClass);
+ }
+
+ $el.removeClass(this.options.inputErrorClass).removeAttr('data-invalid');
+ }
+
+ /**
+ * Goes through a form to find inputs and proceeds to validate them in ways specific to their type
+ * @fires Abide#invalid
+ * @fires Abide#valid
+ * @param {Object} element - jQuery object to validate, should be an HTML input
+ * @returns {Boolean} goodToGo - If the input is valid or not.
+ */
+
+ }, {
+ key: 'validateInput',
+ value: function validateInput($el) {
+ var clearRequire = this.requiredCheck($el),
+ validated = false,
+ customValidator = true,
+ validator = $el.attr('data-validator'),
+ equalTo = true;
+
+ // don't validate ignored inputs or hidden inputs
+ if ($el.is('[data-abide-ignore]') || $el.is('[type="hidden"]')) {
+ return true;
+ }
+
+ switch ($el[0].type) {
+ case 'radio':
+ validated = this.validateRadio($el.attr('name'));
+ break;
+
+ case 'checkbox':
+ validated = clearRequire;
+ break;
+
+ case 'select':
+ case 'select-one':
+ case 'select-multiple':
+ validated = clearRequire;
+ break;
+
+ default:
+ validated = this.validateText($el);
+ }
+
+ if (validator) {
+ customValidator = this.matchValidation($el, validator, $el.attr('required'));
+ }
+
+ if ($el.attr('data-equalto')) {
+ equalTo = this.options.validators.equalTo($el);
+ }
+
+ var goodToGo = [clearRequire, validated, customValidator, equalTo].indexOf(false) === -1;
+ var message = (goodToGo ? 'valid' : 'invalid') + '.zf.abide';
+
+ this[goodToGo ? 'removeErrorClasses' : 'addErrorClasses']($el);
+
+ /**
+ * Fires when the input is done checking for validation. Event trigger is either `valid.zf.abide` or `invalid.zf.abide`
+ * Trigger includes the DOM element of the input.
+ * @event Abide#valid
+ * @event Abide#invalid
+ */
+ $el.trigger(message, [$el]);
+
+ return goodToGo;
+ }
+
+ /**
+ * Goes through a form and if there are any invalid inputs, it will display the form error element
+ * @returns {Boolean} noError - true if no errors were detected...
+ * @fires Abide#formvalid
+ * @fires Abide#forminvalid
+ */
+
+ }, {
+ key: 'validateForm',
+ value: function validateForm() {
+ var acc = [];
+ var _this = this;
+
+ this.$inputs.each(function () {
+ acc.push(_this.validateInput($(this)));
+ });
+
+ var noError = acc.indexOf(false) === -1;
+
+ this.$element.find('[data-abide-error]').css('display', noError ? 'none' : 'block');
+
+ /**
+ * Fires when the form is finished validating. Event trigger is either `formvalid.zf.abide` or `forminvalid.zf.abide`.
+ * Trigger includes the element of the form.
+ * @event Abide#formvalid
+ * @event Abide#forminvalid
+ */
+ this.$element.trigger((noError ? 'formvalid' : 'forminvalid') + '.zf.abide', [this.$element]);
+
+ return noError;
+ }
+
+ /**
+ * Determines whether or a not a text input is valid based on the pattern specified in the attribute. If no matching pattern is found, returns true.
+ * @param {Object} $el - jQuery object to validate, should be a text input HTML element
+ * @param {String} pattern - string value of one of the RegEx patterns in Abide.options.patterns
+ * @returns {Boolean} Boolean value depends on whether or not the input value matches the pattern specified
+ */
+
+ }, {
+ key: 'validateText',
+ value: function validateText($el, pattern) {
+ // A pattern can be passed to this function, or it will be infered from the input's "pattern" attribute, or it's "type" attribute
+ pattern = pattern || $el.attr('pattern') || $el.attr('type');
+ var inputText = $el.val();
+ var valid = false;
+
+ if (inputText.length) {
+ // If the pattern attribute on the element is in Abide's list of patterns, then test that regexp
+ if (this.options.patterns.hasOwnProperty(pattern)) {
+ valid = this.options.patterns[pattern].test(inputText);
+ }
+ // If the pattern name isn't also the type attribute of the field, then test it as a regexp
+ else if (pattern !== $el.attr('type')) {
+ valid = new RegExp(pattern).test(inputText);
+ } else {
+ valid = true;
+ }
+ }
+ // An empty field is valid if it's not required
+ else if (!$el.prop('required')) {
+ valid = true;
+ }
+
+ return valid;
+ }
+
+ /**
+ * Determines whether or a not a radio input is valid based on whether or not it is required and selected. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all radio buttons in its group.
+ * @param {String} groupName - A string that specifies the name of a radio button group
+ * @returns {Boolean} Boolean value depends on whether or not at least one radio input has been selected (if it's required)
+ */
+
+ }, {
+ key: 'validateRadio',
+ value: function validateRadio(groupName) {
+ // If at least one radio in the group has the `required` attribute, the group is considered required
+ // Per W3C spec, all radio buttons in a group should have `required`, but we're being nice
+ var $group = this.$element.find(':radio[name="' + groupName + '"]');
+ var valid = false,
+ required = false;
+
+ // For the group to be required, at least one radio needs to be required
+ $group.each(function (i, e) {
+ if ($(e).attr('required')) {
+ required = true;
+ }
+ });
+ if (!required) valid = true;
+
+ if (!valid) {
+ // For the group to be valid, at least one radio needs to be checked
+ $group.each(function (i, e) {
+ if ($(e).prop('checked')) {
+ valid = true;
+ }
+ });
+ };
+
+ return valid;
+ }
+
+ /**
+ * Determines if a selected input passes a custom validation function. Multiple validations can be used, if passed to the element with `data-validator="foo bar baz"` in a space separated listed.
+ * @param {Object} $el - jQuery input element.
+ * @param {String} validators - a string of function names matching functions in the Abide.options.validators object.
+ * @param {Boolean} required - self explanatory?
+ * @returns {Boolean} - true if validations passed.
+ */
+
+ }, {
+ key: 'matchValidation',
+ value: function matchValidation($el, validators, required) {
+ var _this4 = this;
+
+ required = required ? true : false;
+
+ var clear = validators.split(' ').map(function (v) {
+ return _this4.options.validators[v]($el, required, $el.parent());
+ });
+ return clear.indexOf(false) === -1;
+ }
+
+ /**
+ * Resets form inputs and styles
+ * @fires Abide#formreset
+ */
+
+ }, {
+ key: 'resetForm',
+ value: function resetForm() {
+ var $form = this.$element,
+ opts = this.options;
+
+ $('.' + opts.labelErrorClass, $form).not('small').removeClass(opts.labelErrorClass);
+ $('.' + opts.inputErrorClass, $form).not('small').removeClass(opts.inputErrorClass);
+ $(opts.formErrorSelector + '.' + opts.formErrorClass).removeClass(opts.formErrorClass);
+ $form.find('[data-abide-error]').css('display', 'none');
+ $(':input', $form).not(':button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]').val('').removeAttr('data-invalid');
+ $(':input:radio', $form).not('[data-abide-ignore]').prop('checked', false).removeAttr('data-invalid');
+ $(':input:checkbox', $form).not('[data-abide-ignore]').prop('checked', false).removeAttr('data-invalid');
+ /**
+ * Fires when the form has been reset.
+ * @event Abide#formreset
+ */
+ $form.trigger('formreset.zf.abide', [$form]);
+ }
+
+ /**
+ * Destroys an instance of Abide.
+ * Removes error styles and classes from elements, without resetting their values.
+ */
+
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ var _this = this;
+ this.$element.off('.abide').find('[data-abide-error]').css('display', 'none');
+
+ this.$inputs.off('.abide').each(function () {
+ _this.removeErrorClasses($(this));
+ });
+
+ Foundation.unregisterPlugin(this);
+ }
+ }]);
+
+ return Abide;
+ }();
+
+ /**
+ * Default settings for plugin
+ */
+
+
+ Abide.defaults = {
+ /**
+ * The default event to validate inputs. Checkboxes and radios validate immediately.
+ * Remove or change this value for manual validation.
+ * @option
+ * @example 'fieldChange'
+ */
+ validateOn: 'fieldChange',
+
+ /**
+ * Class to be applied to input labels on failed validation.
+ * @option
+ * @example 'is-invalid-label'
+ */
+ labelErrorClass: 'is-invalid-label',
+
+ /**
+ * Class to be applied to inputs on failed validation.
+ * @option
+ * @example 'is-invalid-input'
+ */
+ inputErrorClass: 'is-invalid-input',
+
+ /**
+ * Class selector to use to target Form Errors for show/hide.
+ * @option
+ * @example '.form-error'
+ */
+ formErrorSelector: '.form-error',
+
+ /**
+ * Class added to Form Errors on failed validation.
+ * @option
+ * @example 'is-visible'
+ */
+ formErrorClass: 'is-visible',
+
+ /**
+ * Set to true to validate text inputs on any value change.
+ * @option
+ * @example false
+ */
+ liveValidate: false,
+
+ patterns: {
+ alpha: /^[a-zA-Z]+$/,
+ alpha_numeric: /^[a-zA-Z0-9]+$/,
+ integer: /^[-+]?\d+$/,
+ number: /^[-+]?\d*(?:[\.\,]\d+)?$/,
+
+ // amex, visa, diners
+ card: /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,
+ cvv: /^([0-9]){3,4}$/,
+
+ // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address
+ email: /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,
+
+ url: /^(https?|ftp|file|ssh):\/\/(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/,
+ // abc.de
+ domain: /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,
+
+ datetime: /^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,
+ // YYYY-MM-DD
+ date: /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,
+ // HH:MM:SS
+ time: /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,
+ dateISO: /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,
+ // MM/DD/YYYY
+ month_day_year: /^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,
+ // DD/MM/YYYY
+ day_month_year: /^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,
+
+ // #FFF or #FFFFFF
+ color: /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
+ },
+
+ /**
+ * Optional validation functions to be used. `equalTo` being the only default included function.
+ * Functions should return only a boolean if the input is valid or not. Functions are given the following arguments:
+ * el : The jQuery element to validate.
+ * required : Boolean value of the required attribute be present or not.
+ * parent : The direct parent of the input.
+ * @option
+ */
+ validators: {
+ equalTo: function (el, required, parent) {
+ return $('#' + el.attr('data-equalto')).val() === el.val();
+ }
+ }
+ };
+
+ // Window exports
+ Foundation.plugin(Abide, 'Abide');
+}(jQuery);
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+!function ($) {
+
+ /**
+ * Accordion module.
+ * @module foundation.accordion
+ * @requires foundation.util.keyboard
+ * @requires foundation.util.motion
+ */
+
+ var Accordion = function () {
+ /**
+ * Creates a new instance of an accordion.
+ * @class
+ * @fires Accordion#init
+ * @param {jQuery} element - jQuery object to make into an accordion.
+ * @param {Object} options - a plain object with settings to override the default options.
+ */
+
+ function Accordion(element, options) {
+ _classCallCheck(this, Accordion);
+
+ this.$element = element;
+ this.options = $.extend({}, Accordion.defaults, this.$element.data(), options);
+
+ this._init();
+
+ Foundation.registerPlugin(this, 'Accordion');
+ Foundation.Keyboard.register('Accordion', {
+ 'ENTER': 'toggle',
+ 'SPACE': 'toggle',
+ 'ARROW_DOWN': 'next',
+ 'ARROW_UP': 'previous'
+ });
+ }
+
+ /**
+ * Initializes the accordion by animating the preset active pane(s).
+ * @private
+ */
+
+
+ _createClass(Accordion, [{
+ key: '_init',
+ value: function _init() {
+ this.$element.attr('role', 'tablist');
+ this.$tabs = this.$element.children('li, [data-accordion-item]');
+
+ this.$tabs.each(function (idx, el) {
+ var $el = $(el),
+ $content = $el.children('[data-tab-content]'),
+ id = $content[0].id || Foundation.GetYoDigits(6, 'accordion'),
+ linkId = el.id || id + '-label';
+
+ $el.find('a:first').attr({
+ 'aria-controls': id,
+ 'role': 'tab',
+ 'id': linkId,
+ 'aria-expanded': false,
+ 'aria-selected': false
+ });
+
+ $content.attr({ 'role': 'tabpanel', 'aria-labelledby': linkId, 'aria-hidden': true, 'id': id });
+ });
+ var $initActive = this.$element.find('.is-active').children('[data-tab-content]');
+ if ($initActive.length) {
+ this.down($initActive, true);
+ }
+ this._events();
+ }
+
+ /**
+ * Adds event handlers for items within the accordion.
+ * @private
+ */
+
+ }, {
+ key: '_events',
+ value: function _events() {
+ var _this = this;
+
+ this.$tabs.each(function () {
+ var $elem = $(this);
+ var $tabContent = $elem.children('[data-tab-content]');
+ if ($tabContent.length) {
+ $elem.children('a').off('click.zf.accordion keydown.zf.accordion').on('click.zf.accordion', function (e) {
+ // $(this).children('a').on('click.zf.accordion', function(e) {
+ e.preventDefault();
+ if ($elem.hasClass('is-active')) {
+ if (_this.options.allowAllClosed || $elem.siblings().hasClass('is-active')) {
+ _this.up($tabContent);
+ }
+ } else {
+ _this.down($tabContent);
+ }
+ }).on('keydown.zf.accordion', function (e) {
+ Foundation.Keyboard.handleKey(e, 'Accordion', {
+ toggle: function () {
+ _this.toggle($tabContent);
+ },
+ next: function () {
+ var $a = $elem.next().find('a').focus();
+ if (!_this.options.multiExpand) {
+ $a.trigger('click.zf.accordion');
+ }
+ },
+ previous: function () {
+ var $a = $elem.prev().find('a').focus();
+ if (!_this.options.multiExpand) {
+ $a.trigger('click.zf.accordion');
+ }
+ },
+ handled: function () {
+ e.preventDefault();
+ e.stopPropagation();
+ }
+ });
+ });
+ }
+ });
+ }
+
+ /**
+ * Toggles the selected content pane's open/close state.
+ * @param {jQuery} $target - jQuery object of the pane to toggle.
+ * @function
+ */
+
+ }, {
+ key: 'toggle',
+ value: function toggle($target) {
+ if ($target.parent().hasClass('is-active')) {
+ if (this.options.allowAllClosed || $target.parent().siblings().hasClass('is-active')) {
+ this.up($target);
+ } else {
+ return;
+ }
+ } else {
+ this.down($target);
+ }
+ }
+
+ /**
+ * Opens the accordion tab defined by `$target`.
+ * @param {jQuery} $target - Accordion pane to open.
+ * @param {Boolean} firstTime - flag to determine if reflow should happen.
+ * @fires Accordion#down
+ * @function
+ */
+
+ }, {
+ key: 'down',
+ value: function down($target, firstTime) {
+ var _this2 = this;
+
+ if (!this.options.multiExpand && !firstTime) {
+ var $currentActive = this.$element.children('.is-active').children('[data-tab-content]');
+ if ($currentActive.length) {
+ this.up($currentActive);
+ }
+ }
+
+ $target.attr('aria-hidden', false).parent('[data-tab-content]').addBack().parent().addClass('is-active');
+
+ $target.slideDown(this.options.slideSpeed, function () {
+ /**
+ * Fires when the tab is done opening.
+ * @event Accordion#down
+ */
+ _this2.$element.trigger('down.zf.accordion', [$target]);
+ });
+
+ $('#' + $target.attr('aria-labelledby')).attr({
+ 'aria-expanded': true,
+ 'aria-selected': true
+ });
+ }
+
+ /**
+ * Closes the tab defined by `$target`.
+ * @param {jQuery} $target - Accordion tab to close.
+ * @fires Accordion#up
+ * @function
+ */
+
+ }, {
+ key: 'up',
+ value: function up($target) {
+ var $aunts = $target.parent().siblings(),
+ _this = this;
+ var canClose = this.options.multiExpand ? $aunts.hasClass('is-active') : $target.parent().hasClass('is-active');
+
+ if (!this.options.allowAllClosed && !canClose) {
+ return;
+ }
+
+ // Foundation.Move(this.options.slideSpeed, $target, function(){
+ $target.slideUp(_this.options.slideSpeed, function () {
+ /**
+ * Fires when the tab is done collapsing up.
+ * @event Accordion#up
+ */
+ _this.$element.trigger('up.zf.accordion', [$target]);
+ });
+ // });
+
+ $target.attr('aria-hidden', true).parent().removeClass('is-active');
+
+ $('#' + $target.attr('aria-labelledby')).attr({
+ 'aria-expanded': false,
+ 'aria-selected': false
+ });
+ }
+
+ /**
+ * Destroys an instance of an accordion.
+ * @fires Accordion#destroyed
+ * @function
+ */
+
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ this.$element.find('[data-tab-content]').stop(true).slideUp(0).css('display', '');
+ this.$element.find('a').off('.zf.accordion');
+
+ Foundation.unregisterPlugin(this);
+ }
+ }]);
+
+ return Accordion;
+ }();
+
+ Accordion.defaults = {
+ /**
+ * Amount of time to animate the opening of an accordion pane.
+ * @option
+ * @example 250
+ */
+ slideSpeed: 250,
+ /**
+ * Allow the accordion to have multiple open panes.
+ * @option
+ * @example false
+ */
+ multiExpand: false,
+ /**
+ * Allow the accordion to close all panes.
+ * @option
+ * @example false
+ */
+ allowAllClosed: false
+ };
+
+ // Window exports
+ Foundation.plugin(Accordion, 'Accordion');
+}(jQuery);
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+!function ($) {
+
+ /**
+ * AccordionMenu module.
+ * @module foundation.accordionMenu
+ * @requires foundation.util.keyboard
+ * @requires foundation.util.motion
+ * @requires foundation.util.nest
+ */
+
+ var AccordionMenu = function () {
+ /**
+ * Creates a new instance of an accordion menu.
+ * @class
+ * @fires AccordionMenu#init
+ * @param {jQuery} element - jQuery object to make into an accordion menu.
+ * @param {Object} options - Overrides to the default plugin settings.
+ */
+
+ function AccordionMenu(element, options) {
+ _classCallCheck(this, AccordionMenu);
+
+ this.$element = element;
+ this.options = $.extend({}, AccordionMenu.defaults, this.$element.data(), options);
+
+ Foundation.Nest.Feather(this.$element, 'accordion');
+
+ this._init();
+
+ Foundation.registerPlugin(this, 'AccordionMenu');
+ Foundation.Keyboard.register('AccordionMenu', {
+ 'ENTER': 'toggle',
+ 'SPACE': 'toggle',
+ 'ARROW_RIGHT': 'open',
+ 'ARROW_UP': 'up',
+ 'ARROW_DOWN': 'down',
+ 'ARROW_LEFT': 'close',
+ 'ESCAPE': 'closeAll',
+ 'TAB': 'down',
+ 'SHIFT_TAB': 'up'
+ });
+ }
+
+ /**
+ * Initializes the accordion menu by hiding all nested menus.
+ * @private
+ */
+
+
+ _createClass(AccordionMenu, [{
+ key: '_init',
+ value: function _init() {
+ this.$element.find('[data-submenu]').not('.is-active').slideUp(0); //.find('a').css('padding-left', '1rem');
+ this.$element.attr({
+ 'role': 'tablist',
+ 'aria-multiselectable': this.options.multiOpen
+ });
+
+ this.$menuLinks = this.$element.find('.is-accordion-submenu-parent');
+ this.$menuLinks.each(function () {
+ var linkId = this.id || Foundation.GetYoDigits(6, 'acc-menu-link'),
+ $elem = $(this),
+ $sub = $elem.children('[data-submenu]'),
+ subId = $sub[0].id || Foundation.GetYoDigits(6, 'acc-menu'),
+ isActive = $sub.hasClass('is-active');
+ $elem.attr({
+ 'aria-controls': subId,
+ 'aria-expanded': isActive,
+ 'role': 'tab',
+ 'id': linkId
+ });
+ $sub.attr({
+ 'aria-labelledby': linkId,
+ 'aria-hidden': !isActive,
+ 'role': 'tabpanel',
+ 'id': subId
+ });
+ });
+ var initPanes = this.$element.find('.is-active');
+ if (initPanes.length) {
+ var _this = this;
+ initPanes.each(function () {
+ _this.down($(this));
+ });
+ }
+ this._events();
+ }
+
+ /**
+ * Adds event handlers for items within the menu.
+ * @private
+ */
+
+ }, {
+ key: '_events',
+ value: function _events() {
+ var _this = this;
+
+ this.$element.find('li').each(function () {
+ var $submenu = $(this).children('[data-submenu]');
+
+ if ($submenu.length) {
+ $(this).children('a').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function (e) {
+ e.preventDefault();
+
+ _this.toggle($submenu);
+ });
+ }
+ }).on('keydown.zf.accordionmenu', function (e) {
+ var $element = $(this),
+ $elements = $element.parent('ul').children('li'),
+ $prevElement,
+ $nextElement,
+ $target = $element.children('[data-submenu]');
+
+ $elements.each(function (i) {
+ if ($(this).is($element)) {
+ $prevElement = $elements.eq(Math.max(0, i - 1)).find('a').first();
+ $nextElement = $elements.eq(Math.min(i + 1, $elements.length - 1)).find('a').first();
+
+ if ($(this).children('[data-submenu]:visible').length) {
+ // has open sub menu
+ $nextElement = $element.find('li:first-child').find('a').first();
+ }
+ if ($(this).is(':first-child')) {
+ // is first element of sub menu
+ $prevElement = $element.parents('li').first().find('a').first();
+ } else if ($prevElement.children('[data-submenu]:visible').length) {
+ // if previous element has open sub menu
+ $prevElement = $prevElement.find('li:last-child').find('a').first();
+ }
+ if ($(this).is(':last-child')) {
+ // is last element of sub menu
+ $nextElement = $element.parents('li').first().next('li').find('a').first();
+ }
+
+ return;
+ }
+ });
+ Foundation.Keyboard.handleKey(e, 'AccordionMenu', {
+ open: function () {
+ if ($target.is(':hidden')) {
+ _this.down($target);
+ $target.find('li').first().find('a').first().focus();
+ }
+ },
+ close: function () {
+ if ($target.length && !$target.is(':hidden')) {
+ // close active sub of this item
+ _this.up($target);
+ } else if ($element.parent('[data-submenu]').length) {
+ // close currently open sub
+ _this.up($element.parent('[data-submenu]'));
+ $element.parents('li').first().find('a').first().focus();
+ }
+ },
+ up: function () {
+ $prevElement.attr('tabindex', -1).focus();
+ return true;
+ },
+ down: function () {
+ $nextElement.attr('tabindex', -1).focus();
+ return true;
+ },
+ toggle: function () {
+ if ($element.children('[data-submenu]').length) {
+ _this.toggle($element.children('[data-submenu]'));
+ }
+ },
+ closeAll: function () {
+ _this.hideAll();
+ },
+ handled: function (preventDefault) {
+ if (preventDefault) {
+ e.preventDefault();
+ }
+ e.stopImmediatePropagation();
+ }
+ });
+ }); //.attr('tabindex', 0);
+ }
+
+ /**
+ * Closes all panes of the menu.
+ * @function
+ */
+
+ }, {
+ key: 'hideAll',
+ value: function hideAll() {
+ this.$element.find('[data-submenu]').slideUp(this.options.slideSpeed);
+ }
+
+ /**
+ * Toggles the open/close state of a submenu.
+ * @function
+ * @param {jQuery} $target - the submenu to toggle
+ */
+
+ }, {
+ key: 'toggle',
+ value: function toggle($target) {
+ if (!$target.is(':animated')) {
+ if (!$target.is(':hidden')) {
+ this.up($target);
+ } else {
+ this.down($target);
+ }
+ }
+ }
+
+ /**
+ * Opens the sub-menu defined by `$target`.
+ * @param {jQuery} $target - Sub-menu to open.
+ * @fires AccordionMenu#down
+ */
+
+ }, {
+ key: 'down',
+ value: function down($target) {
+ var _this = this;
+
+ if (!this.options.multiOpen) {
+ this.up(this.$element.find('.is-active').not($target.parentsUntil(this.$element).add($target)));
+ }
+
+ $target.addClass('is-active').attr({ 'aria-hidden': false }).parent('.is-accordion-submenu-parent').attr({ 'aria-expanded': true });
+
+ //Foundation.Move(this.options.slideSpeed, $target, function() {
+ $target.slideDown(_this.options.slideSpeed, function () {
+ /**
+ * Fires when the menu is done opening.
+ * @event AccordionMenu#down
+ */
+ _this.$element.trigger('down.zf.accordionMenu', [$target]);
+ });
+ //});
+ }
+
+ /**
+ * Closes the sub-menu defined by `$target`. All sub-menus inside the target will be closed as well.
+ * @param {jQuery} $target - Sub-menu to close.
+ * @fires AccordionMenu#up
+ */
+
+ }, {
+ key: 'up',
+ value: function up($target) {
+ var _this = this;
+ //Foundation.Move(this.options.slideSpeed, $target, function(){
+ $target.slideUp(_this.options.slideSpeed, function () {
+ /**
+ * Fires when the menu is done collapsing up.
+ * @event AccordionMenu#up
+ */
+ _this.$element.trigger('up.zf.accordionMenu', [$target]);
+ });
+ //});
+
+ var $menus = $target.find('[data-submenu]').slideUp(0).addBack().attr('aria-hidden', true);
+
+ $menus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);
+ }
+
+ /**
+ * Destroys an instance of accordion menu.
+ * @fires AccordionMenu#destroyed
+ */
+
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ this.$element.find('[data-submenu]').slideDown(0).css('display', '');
+ this.$element.find('a').off('click.zf.accordionMenu');
+
+ Foundation.Nest.Burn(this.$element, 'accordion');
+ Foundation.unregisterPlugin(this);
+ }
+ }]);
+
+ return AccordionMenu;
+ }();
+
+ AccordionMenu.defaults = {
+ /**
+ * Amount of time to animate the opening of a submenu in ms.
+ * @option
+ * @example 250
+ */
+ slideSpeed: 250,
+ /**
+ * Allow the menu to have multiple open panes.
+ * @option
+ * @example true
+ */
+ multiOpen: true
+ };
+
+ // Window exports
+ Foundation.plugin(AccordionMenu, 'AccordionMenu');
+}(jQuery);
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+!function ($) {
+
+ /**
+ * Drilldown module.
+ * @module foundation.drilldown
+ * @requires foundation.util.keyboard
+ * @requires foundation.util.motion
+ * @requires foundation.util.nest
+ */
+
+ var Drilldown = function () {
+ /**
+ * Creates a new instance of a drilldown menu.
+ * @class
+ * @param {jQuery} element - jQuery object to make into an accordion menu.
+ * @param {Object} options - Overrides to the default plugin settings.
+ */
+
+ function Drilldown(element, options) {
+ _classCallCheck(this, Drilldown);
+
+ this.$element = element;
+ this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options);
+
+ Foundation.Nest.Feather(this.$element, 'drilldown');
+
+ this._init();
+
+ Foundation.registerPlugin(this, 'Drilldown');
+ Foundation.Keyboard.register('Drilldown', {
+ 'ENTER': 'open',
+ 'SPACE': 'open',
+ 'ARROW_RIGHT': 'next',
+ 'ARROW_UP': 'up',
+ 'ARROW_DOWN': 'down',
+ 'ARROW_LEFT': 'previous',
+ 'ESCAPE': 'close',
+ 'TAB': 'down',
+ 'SHIFT_TAB': 'up'
+ });
+ }
+
+ /**
+ * Initializes the drilldown by creating jQuery collections of elements
+ * @private
+ */
+
+
+ _createClass(Drilldown, [{
+ key: '_init',
+ value: function _init() {
+ this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');
+ this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]');
+ this.$menuItems = this.$element.find('li').not('.js-drilldown-back').attr('role', 'menuitem').find('a');
+
+ this._prepareMenu();
+
+ this._keyboardEvents();
+ }
+
+ /**
+ * prepares drilldown menu by setting attributes to links and elements
+ * sets a min height to prevent content jumping
+ * wraps the element if not already wrapped
+ * @private
+ * @function
+ */
+
+ }, {
+ key: '_prepareMenu',
+ value: function _prepareMenu() {
+ var _this = this;
+ // if(!this.options.holdOpen){
+ // this._menuLinkEvents();
+ // }
+ this.$submenuAnchors.each(function () {
+ var $link = $(this);
+ var $sub = $link.parent();
+ if (_this.options.parentLink) {
+ $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li class="is-submenu-parent-item is-submenu-item is-drilldown-submenu-item" role="menu-item"></li>');
+ }
+ $link.data('savedHref', $link.attr('href')).removeAttr('href');
+ $link.children('[data-submenu]').attr({
+ 'aria-hidden': true,
+ 'tabindex': 0,
+ 'role': 'menu'
+ });
+ _this._events($link);
+ });
+ this.$submenus.each(function () {
+ var $menu = $(this),
+ $back = $menu.find('.js-drilldown-back');
+ if (!$back.length) {
+ $menu.prepend(_this.options.backButton);
+ }
+ _this._back($menu);
+ });
+ if (!this.$element.parent().hasClass('is-drilldown')) {
+ this.$wrapper = $(this.options.wrapper).addClass('is-drilldown');
+ this.$wrapper = this.$element.wrap(this.$wrapper).parent().css(this._getMaxDims());
+ }
+ }
+
+ /**
+ * Adds event handlers to elements in the menu.
+ * @function
+ * @private
+ * @param {jQuery} $elem - the current menu item to add handlers to.
+ */
+
+ }, {
+ key: '_events',
+ value: function _events($elem) {
+ var _this = this;
+
+ $elem.off('click.zf.drilldown').on('click.zf.drilldown', function (e) {
+ if ($(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')) {
+ e.stopImmediatePropagation();
+ e.preventDefault();
+ }
+
+ // if(e.target !== e.currentTarget.firstElementChild){
+ // return false;
+ // }
+ _this._show($elem.parent('li'));
+
+ if (_this.options.closeOnClick) {
+ var $body = $('body');
+ $body.off('.zf.drilldown').on('click.zf.drilldown', function (e) {
+ if (e.target === _this.$element[0] || $.contains(_this.$element[0], e.target)) {
+ return;
+ }
+ e.preventDefault();
+ _this._hideAll();
+ $body.off('.zf.drilldown');
+ });
+ }
+ });
+ }
+
+ /**
+ * Adds keydown event listener to `li`'s in the menu.
+ * @private
+ */
+
+ }, {
+ key: '_keyboardEvents',
+ value: function _keyboardEvents() {
+ var _this = this;
+
+ this.$menuItems.add(this.$element.find('.js-drilldown-back > a')).on('keydown.zf.drilldown', function (e) {
+
+ var $element = $(this),
+ $elements = $element.parent('li').parent('ul').children('li').children('a'),
+ $prevElement,
+ $nextElement;
+
+ $elements.each(function (i) {
+ if ($(this).is($element)) {
+ $prevElement = $elements.eq(Math.max(0, i - 1));
+ $nextElement = $elements.eq(Math.min(i + 1, $elements.length - 1));
+ return;
+ }
+ });
+
+ Foundation.Keyboard.handleKey(e, 'Drilldown', {
+ next: function () {
+ if ($element.is(_this.$submenuAnchors)) {
+ _this._show($element.parent('li'));
+ $element.parent('li').one(Foundation.transitionend($element), function () {
+ $element.parent('li').find('ul li a').filter(_this.$menuItems).first().focus();
+ });
+ return true;
+ }
+ },
+ previous: function () {
+ _this._hide($element.parent('li').parent('ul'));
+ $element.parent('li').parent('ul').one(Foundation.transitionend($element), function () {
+ setTimeout(function () {
+ $element.parent('li').parent('ul').parent('li').children('a').first().focus();
+ }, 1);
+ });
+ return true;
+ },
+ up: function () {
+ $prevElement.focus();
+ return true;
+ },
+ down: function () {
+ $nextElement.focus();
+ return true;
+ },
+ close: function () {
+ _this._back();
+ //_this.$menuItems.first().focus(); // focus to first element
+ },
+ open: function () {
+ if (!$element.is(_this.$menuItems)) {
+ // not menu item means back button
+ _this._hide($element.parent('li').parent('ul'));
+ $element.parent('li').parent('ul').one(Foundation.transitionend($element), function () {
+ setTimeout(function () {
+ $element.parent('li').parent('ul').parent('li').children('a').first().focus();
+ }, 1);
+ });
+ } else if ($element.is(_this.$submenuAnchors)) {
+ _this._show($element.parent('li'));
+ $element.parent('li').one(Foundation.transitionend($element), function () {
+ $element.parent('li').find('ul li a').filter(_this.$menuItems).first().focus();
+ });
+ }
+ return true;
+ },
+ handled: function (preventDefault) {
+ if (preventDefault) {
+ e.preventDefault();
+ }
+ e.stopImmediatePropagation();
+ }
+ });
+ }); // end keyboardAccess
+ }
+
+ /**
+ * Closes all open elements, and returns to root menu.
+ * @function
+ * @fires Drilldown#closed
+ */
+
+ }, {
+ key: '_hideAll',
+ value: function _hideAll() {
+ var $elem = this.$element.find('.is-drilldown-submenu.is-active').addClass('is-closing');
+ $elem.one(Foundation.transitionend($elem), function (e) {
+ $elem.removeClass('is-active is-closing');
+ });
+ /**
+ * Fires when the menu is fully closed.
+ * @event Drilldown#closed
+ */
+ this.$element.trigger('closed.zf.drilldown');
+ }
+
+ /**
+ * Adds event listener for each `back` button, and closes open menus.
+ * @function
+ * @fires Drilldown#back
+ * @param {jQuery} $elem - the current sub-menu to add `back` event.
+ */
+
+ }, {
+ key: '_back',
+ value: function _back($elem) {
+ var _this = this;
+ $elem.off('click.zf.drilldown');
+ $elem.children('.js-drilldown-back').on('click.zf.drilldown', function (e) {
+ e.stopImmediatePropagation();
+ // console.log('mouseup on back');
+ _this._hide($elem);
+ });
+ }
+
+ /**
+ * Adds event listener to menu items w/o submenus to close open menus on click.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_menuLinkEvents',
+ value: function _menuLinkEvents() {
+ var _this = this;
+ this.$menuItems.not('.is-drilldown-submenu-parent').off('click.zf.drilldown').on('click.zf.drilldown', function (e) {
+ // e.stopImmediatePropagation();
+ setTimeout(function () {
+ _this._hideAll();
+ }, 0);
+ });
+ }
+
+ /**
+ * Opens a submenu.
+ * @function
+ * @fires Drilldown#open
+ * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.
+ */
+
+ }, {
+ key: '_show',
+ value: function _show($elem) {
+ $elem.children('[data-submenu]').addClass('is-active');
+ /**
+ * Fires when the submenu has opened.
+ * @event Drilldown#open
+ */
+ this.$element.trigger('open.zf.drilldown', [$elem]);
+ }
+ }, {
+ key: '_hide',
+
+
+ /**
+ * Hides a submenu
+ * @function
+ * @fires Drilldown#hide
+ * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.
+ */
+ value: function _hide($elem) {
+ var _this = this;
+ $elem.addClass('is-closing').one(Foundation.transitionend($elem), function () {
+ $elem.removeClass('is-active is-closing');
+ $elem.blur();
+ });
+ /**
+ * Fires when the submenu has closed.
+ * @event Drilldown#hide
+ */
+ $elem.trigger('hide.zf.drilldown', [$elem]);
+ }
+
+ /**
+ * Iterates through the nested menus to calculate the min-height, and max-width for the menu.
+ * Prevents content jumping.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_getMaxDims',
+ value: function _getMaxDims() {
+ var max = 0,
+ result = {};
+ this.$submenus.add(this.$element).each(function () {
+ var numOfElems = $(this).children('li').length;
+ max = numOfElems > max ? numOfElems : max;
+ });
+
+ result['min-height'] = max * this.$menuItems[0].getBoundingClientRect().height + 'px';
+ result['max-width'] = this.$element[0].getBoundingClientRect().width + 'px';
+
+ return result;
+ }
+
+ /**
+ * Destroys the Drilldown Menu
+ * @function
+ */
+
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ this._hideAll();
+ Foundation.Nest.Burn(this.$element, 'drilldown');
+ this.$element.unwrap().find('.js-drilldown-back, .is-submenu-parent-item').remove().end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu').end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');
+ this.$submenuAnchors.each(function () {
+ $(this).off('.zf.drilldown');
+ });
+ this.$element.find('a').each(function () {
+ var $link = $(this);
+ if ($link.data('savedHref')) {
+ $link.attr('href', $link.data('savedHref')).removeData('savedHref');
+ } else {
+ return;
+ }
+ });
+ Foundation.unregisterPlugin(this);
+ }
+ }]);
+
+ return Drilldown;
+ }();
+
+ Drilldown.defaults = {
+ /**
+ * Markup used for JS generated back button. Prepended to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\`) if copy and pasting.
+ * @option
+ * @example '<\li><\a>Back<\/a><\/li>'
+ */
+ backButton: '<li class="js-drilldown-back"><a tabindex="0">Back</a></li>',
+ /**
+ * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\`) if copy and pasting.
+ * @option
+ * @example '<\div class="is-drilldown"><\/div>'
+ */
+ wrapper: '<div></div>',
+ /**
+ * Adds the parent link to the submenu.
+ * @option
+ * @example false
+ */
+ parentLink: false,
+ /**
+ * Allow the menu to return to root list on body click.
+ * @option
+ * @example false
+ */
+ closeOnClick: false
+ // holdOpen: false
+ };
+
+ // Window exports
+ Foundation.plugin(Drilldown, 'Drilldown');
+}(jQuery);
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+!function ($) {
+
+ /**
+ * Dropdown module.
+ * @module foundation.dropdown
+ * @requires foundation.util.keyboard
+ * @requires foundation.util.box
+ * @requires foundation.util.triggers
+ */
+
+ var Dropdown = function () {
+ /**
+ * Creates a new instance of a dropdown.
+ * @class
+ * @param {jQuery} element - jQuery object to make into a dropdown.
+ * Object should be of the dropdown panel, rather than its anchor.
+ * @param {Object} options - Overrides to the default plugin settings.
+ */
+
+ function Dropdown(element, options) {
+ _classCallCheck(this, Dropdown);
+
+ this.$element = element;
+ this.options = $.extend({}, Dropdown.defaults, this.$element.data(), options);
+ this._init();
+
+ Foundation.registerPlugin(this, 'Dropdown');
+ Foundation.Keyboard.register('Dropdown', {
+ 'ENTER': 'open',
+ 'SPACE': 'open',
+ 'ESCAPE': 'close',
+ 'TAB': 'tab_forward',
+ 'SHIFT_TAB': 'tab_backward'
+ });
+ }
+
+ /**
+ * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.
+ * @function
+ * @private
+ */
+
+
+ _createClass(Dropdown, [{
+ key: '_init',
+ value: function _init() {
+ var $id = this.$element.attr('id');
+
+ this.$anchor = $('[data-toggle="' + $id + '"]') || $('[data-open="' + $id + '"]');
+ this.$anchor.attr({
+ 'aria-controls': $id,
+ 'data-is-focus': false,
+ 'data-yeti-box': $id,
+ 'aria-haspopup': true,
+ 'aria-expanded': false
+
+ });
+
+ this.options.positionClass = this.getPositionClass();
+ this.counter = 4;
+ this.usedPositions = [];
+ this.$element.attr({
+ 'aria-hidden': 'true',
+ 'data-yeti-box': $id,
+ 'data-resize': $id,
+ 'aria-labelledby': this.$anchor[0].id || Foundation.GetYoDigits(6, 'dd-anchor')
+ });
+ this._events();
+ }
+
+ /**
+ * Helper function to determine current orientation of dropdown pane.
+ * @function
+ * @returns {String} position - string value of a position class.
+ */
+
+ }, {
+ key: 'getPositionClass',
+ value: function getPositionClass() {
+ var verticalPosition = this.$element[0].className.match(/(top|left|right|bottom)/g);
+ verticalPosition = verticalPosition ? verticalPosition[0] : '';
+ var horizontalPosition = /float-(\S+)\s/.exec(this.$anchor[0].className);
+ horizontalPosition = horizontalPosition ? horizontalPosition[1] : '';
+ var position = horizontalPosition ? horizontalPosition + ' ' + verticalPosition : verticalPosition;
+ return position;
+ }
+
+ /**
+ * Adjusts the dropdown panes orientation by adding/removing positioning classes.
+ * @function
+ * @private
+ * @param {String} position - position class to remove.
+ */
+
+ }, {
+ key: '_reposition',
+ value: function _reposition(position) {
+ this.usedPositions.push(position ? position : 'bottom');
+ //default, try switching to opposite side
+ if (!position && this.usedPositions.indexOf('top') < 0) {
+ this.$element.addClass('top');
+ } else if (position === 'top' && this.usedPositions.indexOf('bottom') < 0) {
+ this.$element.removeClass(position);
+ } else if (position === 'left' && this.usedPositions.indexOf('right') < 0) {
+ this.$element.removeClass(position).addClass('right');
+ } else if (position === 'right' && this.usedPositions.indexOf('left') < 0) {
+ this.$element.removeClass(position).addClass('left');
+ }
+
+ //if default change didn't work, try bottom or left first
+ else if (!position && this.usedPositions.indexOf('top') > -1 && this.usedPositions.indexOf('left') < 0) {
+ this.$element.addClass('left');
+ } else if (position === 'top' && this.usedPositions.indexOf('bottom') > -1 && this.usedPositions.indexOf('left') < 0) {
+ this.$element.removeClass(position).addClass('left');
+ } else if (position === 'left' && this.usedPositions.indexOf('right') > -1 && this.usedPositions.indexOf('bottom') < 0) {
+ this.$element.removeClass(position);
+ } else if (position === 'right' && this.usedPositions.indexOf('left') > -1 && this.usedPositions.indexOf('bottom') < 0) {
+ this.$element.removeClass(position);
+ }
+ //if nothing cleared, set to bottom
+ else {
+ this.$element.removeClass(position);
+ }
+ this.classChanged = true;
+ this.counter--;
+ }
+
+ /**
+ * Sets the position and orientation of the dropdown pane, checks for collisions.
+ * Recursively calls itself if a collision is detected, with a new position class.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_setPosition',
+ value: function _setPosition() {
+ if (this.$anchor.attr('aria-expanded') === 'false') {
+ return false;
+ }
+ var position = this.getPositionClass(),
+ $eleDims = Foundation.Box.GetDimensions(this.$element),
+ $anchorDims = Foundation.Box.GetDimensions(this.$anchor),
+ _this = this,
+ direction = position === 'left' ? 'left' : position === 'right' ? 'left' : 'top',
+ param = direction === 'top' ? 'height' : 'width',
+ offset = param === 'height' ? this.options.vOffset : this.options.hOffset;
+
+ if ($eleDims.width >= $eleDims.windowDims.width || !this.counter && !Foundation.Box.ImNotTouchingYou(this.$element)) {
+ this.$element.offset(Foundation.Box.GetOffsets(this.$element, this.$anchor, 'center bottom', this.options.vOffset, this.options.hOffset, true)).css({
+ 'width': $eleDims.windowDims.width - this.options.hOffset * 2,
+ 'height': 'auto'
+ });
+ this.classChanged = true;
+ return false;
+ }
+
+ this.$element.offset(Foundation.Box.GetOffsets(this.$element, this.$anchor, position, this.options.vOffset, this.options.hOffset));
+
+ while (!Foundation.Box.ImNotTouchingYou(this.$element, false, true) && this.counter) {
+ this._reposition(position);
+ this._setPosition();
+ }
+ }
+
+ /**
+ * Adds event listeners to the element utilizing the triggers utility library.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_events',
+ value: function _events() {
+ var _this = this;
+ this.$element.on({
+ 'open.zf.trigger': this.open.bind(this),
+ 'close.zf.trigger': this.close.bind(this),
+ 'toggle.zf.trigger': this.toggle.bind(this),
+ 'resizeme.zf.trigger': this._setPosition.bind(this)
+ });
+
+ if (this.options.hover) {
+ this.$anchor.off('mouseenter.zf.dropdown mouseleave.zf.dropdown').on('mouseenter.zf.dropdown', function () {
+ clearTimeout(_this.timeout);
+ _this.timeout = setTimeout(function () {
+ _this.open();
+ _this.$anchor.data('hover', true);
+ }, _this.options.hoverDelay);
+ }).on('mouseleave.zf.dropdown', function () {
+ clearTimeout(_this.timeout);
+ _this.timeout = setTimeout(function () {
+ _this.close();
+ _this.$anchor.data('hover', false);
+ }, _this.options.hoverDelay);
+ });
+ if (this.options.hoverPane) {
+ this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown').on('mouseenter.zf.dropdown', function () {
+ clearTimeout(_this.timeout);
+ }).on('mouseleave.zf.dropdown', function () {
+ clearTimeout(_this.timeout);
+ _this.timeout = setTimeout(function () {
+ _this.close();
+ _this.$anchor.data('hover', false);
+ }, _this.options.hoverDelay);
+ });
+ }
+ }
+ this.$anchor.add(this.$element).on('keydown.zf.dropdown', function (e) {
+
+ var $target = $(this),
+ visibleFocusableElements = Foundation.Keyboard.findFocusable(_this.$element);
+
+ Foundation.Keyboard.handleKey(e, 'Dropdown', {
+ tab_forward: function () {
+ if (_this.$element.find(':focus').is(visibleFocusableElements.eq(-1))) {
+ // left modal downwards, setting focus to first element
+ if (_this.options.trapFocus) {
+ // if focus shall be trapped
+ visibleFocusableElements.eq(0).focus();
+ e.preventDefault();
+ } else {
+ // if focus is not trapped, close dropdown on focus out
+ _this.close();
+ }
+ }
+ },
+ tab_backward: function () {
+ if (_this.$element.find(':focus').is(visibleFocusableElements.eq(0)) || _this.$element.is(':focus')) {
+ // left modal upwards, setting focus to last element
+ if (_this.options.trapFocus) {
+ // if focus shall be trapped
+ visibleFocusableElements.eq(-1).focus();
+ e.preventDefault();
+ } else {
+ // if focus is not trapped, close dropdown on focus out
+ _this.close();
+ }
+ }
+ },
+ open: function () {
+ if ($target.is(_this.$anchor)) {
+ _this.open();
+ _this.$element.attr('tabindex', -1).focus();
+ e.preventDefault();
+ }
+ },
+ close: function () {
+ _this.close();
+ _this.$anchor.focus();
+ }
+ });
+ });
+ }
+
+ /**
+ * Adds an event handler to the body to close any dropdowns on a click.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_addBodyHandler',
+ value: function _addBodyHandler() {
+ var $body = $(document.body).not(this.$element),
+ _this = this;
+ $body.off('click.zf.dropdown').on('click.zf.dropdown', function (e) {
+ if (_this.$anchor.is(e.target) || _this.$anchor.find(e.target).length) {
+ return;
+ }
+ if (_this.$element.find(e.target).length) {
+ return;
+ }
+ _this.close();
+ $body.off('click.zf.dropdown');
+ });
+ }
+
+ /**
+ * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.
+ * @function
+ * @fires Dropdown#closeme
+ * @fires Dropdown#show
+ */
+
+ }, {
+ key: 'open',
+ value: function open() {
+ // var _this = this;
+ /**
+ * Fires to close other open dropdowns
+ * @event Dropdown#closeme
+ */
+ this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));
+ this.$anchor.addClass('hover').attr({ 'aria-expanded': true });
+ // this.$element/*.show()*/;
+ this._setPosition();
+ this.$element.addClass('is-open').attr({ 'aria-hidden': false });
+
+ if (this.options.autoFocus) {
+ var $focusable = Foundation.Keyboard.findFocusable(this.$element);
+ if ($focusable.length) {
+ $focusable.eq(0).focus();
+ }
+ }
+
+ if (this.options.closeOnClick) {
+ this._addBodyHandler();
+ }
+
+ /**
+ * Fires once the dropdown is visible.
+ * @event Dropdown#show
+ */
+ this.$element.trigger('show.zf.dropdown', [this.$element]);
+ }
+
+ /**
+ * Closes the open dropdown pane.
+ * @function
+ * @fires Dropdown#hide
+ */
+
+ }, {
+ key: 'close',
+ value: function close() {
+ if (!this.$element.hasClass('is-open')) {
+ return false;
+ }
+ this.$element.removeClass('is-open').attr({ 'aria-hidden': true });
+
+ this.$anchor.removeClass('hover').attr('aria-expanded', false);
+
+ if (this.classChanged) {
+ var curPositionClass = this.getPositionClass();
+ if (curPositionClass) {
+ this.$element.removeClass(curPositionClass);
+ }
+ this.$element.addClass(this.options.positionClass)
+ /*.hide()*/.css({ height: '', width: '' });
+ this.classChanged = false;
+ this.counter = 4;
+ this.usedPositions.length = 0;
+ }
+ this.$element.trigger('hide.zf.dropdown', [this.$element]);
+ }
+
+ /**
+ * Toggles the dropdown pane's visibility.
+ * @function
+ */
+
+ }, {
+ key: 'toggle',
+ value: function toggle() {
+ if (this.$element.hasClass('is-open')) {
+ if (this.$anchor.data('hover')) return;
+ this.close();
+ } else {
+ this.open();
+ }
+ }
+
+ /**
+ * Destroys the dropdown.
+ * @function
+ */
+
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ this.$element.off('.zf.trigger').hide();
+ this.$anchor.off('.zf.dropdown');
+
+ Foundation.unregisterPlugin(this);
+ }
+ }]);
+
+ return Dropdown;
+ }();
+
+ Dropdown.defaults = {
+ /**
+ * Amount of time to delay opening a submenu on hover event.
+ * @option
+ * @example 250
+ */
+ hoverDelay: 250,
+ /**
+ * Allow submenus to open on hover events
+ * @option
+ * @example false
+ */
+ hover: false,
+ /**
+ * Don't close dropdown when hovering over dropdown pane
+ * @option
+ * @example true
+ */
+ hoverPane: false,
+ /**
+ * Number of pixels between the dropdown pane and the triggering element on open.
+ * @option
+ * @example 1
+ */
+ vOffset: 1,
+ /**
+ * Number of pixels between the dropdown pane and the triggering element on open.
+ * @option
+ * @example 1
+ */
+ hOffset: 1,
+ /**
+ * Class applied to adjust open position. JS will test and fill this in.
+ * @option
+ * @example 'top'
+ */
+ positionClass: '',
+ /**
+ * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.
+ * @option
+ * @example false
+ */
+ trapFocus: false,
+ /**
+ * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.
+ * @option
+ * @example true
+ */
+ autoFocus: false,
+ /**
+ * Allows a click on the body to close the dropdown.
+ * @option
+ * @example false
+ */
+ closeOnClick: false
+ };
+
+ // Window exports
+ Foundation.plugin(Dropdown, 'Dropdown');
+}(jQuery);
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+!function ($) {
+
+ /**
+ * DropdownMenu module.
+ * @module foundation.dropdown-menu
+ * @requires foundation.util.keyboard
+ * @requires foundation.util.box
+ * @requires foundation.util.nest
+ */
+
+ var DropdownMenu = function () {
+ /**
+ * Creates a new instance of DropdownMenu.
+ * @class
+ * @fires DropdownMenu#init
+ * @param {jQuery} element - jQuery object to make into a dropdown menu.
+ * @param {Object} options - Overrides to the default plugin settings.
+ */
+
+ function DropdownMenu(element, options) {
+ _classCallCheck(this, DropdownMenu);
+
+ this.$element = element;
+ this.options = $.extend({}, DropdownMenu.defaults, this.$element.data(), options);
+
+ Foundation.Nest.Feather(this.$element, 'dropdown');
+ this._init();
+
+ Foundation.registerPlugin(this, 'DropdownMenu');
+ Foundation.Keyboard.register('DropdownMenu', {
+ 'ENTER': 'open',
+ 'SPACE': 'open',
+ 'ARROW_RIGHT': 'next',
+ 'ARROW_UP': 'up',
+ 'ARROW_DOWN': 'down',
+ 'ARROW_LEFT': 'previous',
+ 'ESCAPE': 'close'
+ });
+ }
+
+ /**
+ * Initializes the plugin, and calls _prepareMenu
+ * @private
+ * @function
+ */
+
+
+ _createClass(DropdownMenu, [{
+ key: '_init',
+ value: function _init() {
+ var subs = this.$element.find('li.is-dropdown-submenu-parent');
+ this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');
+
+ this.$menuItems = this.$element.find('[role="menuitem"]');
+ this.$tabs = this.$element.children('[role="menuitem"]');
+ this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);
+
+ if (this.$element.hasClass(this.options.rightClass) || this.options.alignment === 'right' || Foundation.rtl() || this.$element.parents('.top-bar-right').is('*')) {
+ this.options.alignment = 'right';
+ subs.addClass('opens-left');
+ } else {
+ subs.addClass('opens-right');
+ }
+ this.changed = false;
+ this._events();
+ }
+ }, {
+ key: '_events',
+
+ /**
+ * Adds event listeners to elements within the menu
+ * @private
+ * @function
+ */
+ value: function _events() {
+ var _this = this,
+ hasTouch = 'ontouchstart' in window || typeof window.ontouchstart !== 'undefined',
+ parClass = 'is-dropdown-submenu-parent';
+
+ // used for onClick and in the keyboard handlers
+ var handleClickFn = function (e) {
+ var $elem = $(e.target).parentsUntil('ul', '.' + parClass),
+ hasSub = $elem.hasClass(parClass),
+ hasClicked = $elem.attr('data-is-click') === 'true',
+ $sub = $elem.children('.is-dropdown-submenu');
+
+ if (hasSub) {
+ if (hasClicked) {
+ if (!_this.options.closeOnClick || !_this.options.clickOpen && !hasTouch || _this.options.forceFollow && hasTouch) {
+ return;
+ } else {
+ e.stopImmediatePropagation();
+ e.preventDefault();
+ _this._hide($elem);
+ }
+ } else {
+ e.preventDefault();
+ e.stopImmediatePropagation();
+ _this._show($elem.children('.is-dropdown-submenu'));
+ $elem.add($elem.parentsUntil(_this.$element, '.' + parClass)).attr('data-is-click', true);
+ }
+ } else {
+ return;
+ }
+ };
+
+ if (this.options.clickOpen || hasTouch) {
+ this.$menuItems.on('click.zf.dropdownmenu touchstart.zf.dropdownmenu', handleClickFn);
+ }
+
+ if (!this.options.disableHover) {
+ this.$menuItems.on('mouseenter.zf.dropdownmenu', function (e) {
+ var $elem = $(this),
+ hasSub = $elem.hasClass(parClass);
+
+ if (hasSub) {
+ clearTimeout(_this.delay);
+ _this.delay = setTimeout(function () {
+ _this._show($elem.children('.is-dropdown-submenu'));
+ }, _this.options.hoverDelay);
+ }
+ }).on('mouseleave.zf.dropdownmenu', function (e) {
+ var $elem = $(this),
+ hasSub = $elem.hasClass(parClass);
+ if (hasSub && _this.options.autoclose) {
+ if ($elem.attr('data-is-click') === 'true' && _this.options.clickOpen) {
+ return false;
+ }
+
+ clearTimeout(_this.delay);
+ _this.delay = setTimeout(function () {
+ _this._hide($elem);
+ }, _this.options.closingTime);
+ }
+ });
+ }
+ this.$menuItems.on('keydown.zf.dropdownmenu', function (e) {
+ var $element = $(e.target).parentsUntil('ul', '[role="menuitem"]'),
+ isTab = _this.$tabs.index($element) > -1,
+ $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),
+ $prevElement,
+ $nextElement;
+
+ $elements.each(function (i) {
+ if ($(this).is($element)) {
+ $prevElement = $elements.eq(i - 1);
+ $nextElement = $elements.eq(i + 1);
+ return;
+ }
+ });
+
+ var nextSibling = function () {
+ if (!$element.is(':last-child')) {
+ $nextElement.children('a:first').focus();
+ e.preventDefault();
+ }
+ },
+ prevSibling = function () {
+ $prevElement.children('a:first').focus();
+ e.preventDefault();
+ },
+ openSub = function () {
+ var $sub = $element.children('ul.is-dropdown-submenu');
+ if ($sub.length) {
+ _this._show($sub);
+ $element.find('li > a:first').focus();
+ e.preventDefault();
+ } else {
+ return;
+ }
+ },
+ closeSub = function () {
+ //if ($element.is(':first-child')) {
+ var close = $element.parent('ul').parent('li');
+ close.children('a:first').focus();
+ _this._hide(close);
+ e.preventDefault();
+ //}
+ };
+ var functions = {
+ open: openSub,
+ close: function () {
+ _this._hide(_this.$element);
+ _this.$menuItems.find('a:first').focus(); // focus to first element
+ e.preventDefault();
+ },
+ handled: function () {
+ e.stopImmediatePropagation();
+ }
+ };
+
+ if (isTab) {
+ if (_this.$element.hasClass(_this.options.verticalClass)) {
+ // vertical menu
+ if (_this.options.alignment === 'left') {
+ // left aligned
+ $.extend(functions, {
+ down: nextSibling,
+ up: prevSibling,
+ next: openSub,
+ previous: closeSub
+ });
+ } else {
+ // right aligned
+ $.extend(functions, {
+ down: nextSibling,
+ up: prevSibling,
+ next: closeSub,
+ previous: openSub
+ });
+ }
+ } else {
+ // horizontal menu
+ $.extend(functions, {
+ next: nextSibling,
+ previous: prevSibling,
+ down: openSub,
+ up: closeSub
+ });
+ }
+ } else {
+ // not tabs -> one sub
+ if (_this.options.alignment === 'left') {
+ // left aligned
+ $.extend(functions, {
+ next: openSub,
+ previous: closeSub,
+ down: nextSibling,
+ up: prevSibling
+ });
+ } else {
+ // right aligned
+ $.extend(functions, {
+ next: closeSub,
+ previous: openSub,
+ down: nextSibling,
+ up: prevSibling
+ });
+ }
+ }
+ Foundation.Keyboard.handleKey(e, 'DropdownMenu', functions);
+ });
+ }
+
+ /**
+ * Adds an event handler to the body to close any dropdowns on a click.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_addBodyHandler',
+ value: function _addBodyHandler() {
+ var $body = $(document.body),
+ _this = this;
+ $body.off('mouseup.zf.dropdownmenu touchend.zf.dropdownmenu').on('mouseup.zf.dropdownmenu touchend.zf.dropdownmenu', function (e) {
+ var $link = _this.$element.find(e.target);
+ if ($link.length) {
+ return;
+ }
+
+ _this._hide();
+ $body.off('mouseup.zf.dropdownmenu touchend.zf.dropdownmenu');
+ });
+ }
+
+ /**
+ * Opens a dropdown pane, and checks for collisions first.
+ * @param {jQuery} $sub - ul element that is a submenu to show
+ * @function
+ * @private
+ * @fires DropdownMenu#show
+ */
+
+ }, {
+ key: '_show',
+ value: function _show($sub) {
+ var idx = this.$tabs.index(this.$tabs.filter(function (i, el) {
+ return $(el).find($sub).length > 0;
+ }));
+ var $sibs = $sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');
+ this._hide($sibs, idx);
+ $sub.css('visibility', 'hidden').addClass('js-dropdown-active').attr({ 'aria-hidden': false }).parent('li.is-dropdown-submenu-parent').addClass('is-active').attr({ 'aria-expanded': true });
+ var clear = Foundation.Box.ImNotTouchingYou($sub, null, true);
+ if (!clear) {
+ var oldClass = this.options.alignment === 'left' ? '-right' : '-left',
+ $parentLi = $sub.parent('.is-dropdown-submenu-parent');
+ $parentLi.removeClass('opens' + oldClass).addClass('opens-' + this.options.alignment);
+ clear = Foundation.Box.ImNotTouchingYou($sub, null, true);
+ if (!clear) {
+ $parentLi.removeClass('opens-' + this.options.alignment).addClass('opens-inner');
+ }
+ this.changed = true;
+ }
+ $sub.css('visibility', '');
+ if (this.options.closeOnClick) {
+ this._addBodyHandler();
+ }
+ /**
+ * Fires when the new dropdown pane is visible.
+ * @event DropdownMenu#show
+ */
+ this.$element.trigger('show.zf.dropdownmenu', [$sub]);
+ }
+
+ /**
+ * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.
+ * @function
+ * @param {jQuery} $elem - element with a submenu to hide
+ * @param {Number} idx - index of the $tabs collection to hide
+ * @private
+ */
+
+ }, {
+ key: '_hide',
+ value: function _hide($elem, idx) {
+ var $toClose;
+ if ($elem && $elem.length) {
+ $toClose = $elem;
+ } else if (idx !== undefined) {
+ $toClose = this.$tabs.not(function (i, el) {
+ return i === idx;
+ });
+ } else {
+ $toClose = this.$element;
+ }
+ var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;
+
+ if (somethingToClose) {
+ $toClose.find('li.is-active').add($toClose).attr({
+ 'aria-expanded': false,
+ 'data-is-click': false
+ }).removeClass('is-active');
+
+ $toClose.find('ul.js-dropdown-active').attr({
+ 'aria-hidden': true
+ }).removeClass('js-dropdown-active');
+
+ if (this.changed || $toClose.find('opens-inner').length) {
+ var oldClass = this.options.alignment === 'left' ? 'right' : 'left';
+ $toClose.find('li.is-dropdown-submenu-parent').add($toClose).removeClass('opens-inner opens-' + this.options.alignment).addClass('opens-' + oldClass);
+ this.changed = false;
+ }
+ /**
+ * Fires when the open menus are closed.
+ * @event DropdownMenu#hide
+ */
+ this.$element.trigger('hide.zf.dropdownmenu', [$toClose]);
+ }
+ }
+
+ /**
+ * Destroys the plugin.
+ * @function
+ */
+
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ this.$menuItems.off('.zf.dropdownmenu').removeAttr('data-is-click').removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');
+ $(document.body).off('.zf.dropdownmenu');
+ Foundation.Nest.Burn(this.$element, 'dropdown');
+ Foundation.unregisterPlugin(this);
+ }
+ }]);
+
+ return DropdownMenu;
+ }();
+
+ /**
+ * Default settings for plugin
+ */
+
+
+ DropdownMenu.defaults = {
+ /**
+ * Disallows hover events from opening submenus
+ * @option
+ * @example false
+ */
+ disableHover: false,
+ /**
+ * Allow a submenu to automatically close on a mouseleave event, if not clicked open.
+ * @option
+ * @example true
+ */
+ autoclose: true,
+ /**
+ * Amount of time to delay opening a submenu on hover event.
+ * @option
+ * @example 50
+ */
+ hoverDelay: 50,
+ /**
+ * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu.
+ * @option
+ * @example true
+ */
+ clickOpen: false,
+ /**
+ * Amount of time to delay closing a submenu on a mouseleave event.
+ * @option
+ * @example 500
+ */
+
+ closingTime: 500,
+ /**
+ * Position of the menu relative to what direction the submenus should open. Handled by JS.
+ * @option
+ * @example 'left'
+ */
+ alignment: 'left',
+ /**
+ * Allow clicks on the body to close any open submenus.
+ * @option
+ * @example true
+ */
+ closeOnClick: true,
+ /**
+ * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class.
+ * @option
+ * @example 'vertical'
+ */
+ verticalClass: 'vertical',
+ /**
+ * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class.
+ * @option
+ * @example 'align-right'
+ */
+ rightClass: 'align-right',
+ /**
+ * Boolean to force overide the clicking of links to perform default action, on second touch event for mobile.
+ * @option
+ * @example false
+ */
+ forceFollow: true
+ };
+
+ // Window exports
+ Foundation.plugin(DropdownMenu, 'DropdownMenu');
+}(jQuery);
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+!function ($) {
+
+ /**
+ * Equalizer module.
+ * @module foundation.equalizer
+ */
+
+ var Equalizer = function () {
+ /**
+ * Creates a new instance of Equalizer.
+ * @class
+ * @fires Equalizer#init
+ * @param {Object} element - jQuery object to add the trigger to.
+ * @param {Object} options - Overrides to the default plugin settings.
+ */
+
+ function Equalizer(element, options) {
+ _classCallCheck(this, Equalizer);
+
+ this.$element = element;
+ this.options = $.extend({}, Equalizer.defaults, this.$element.data(), options);
+
+ this._init();
+
+ Foundation.registerPlugin(this, 'Equalizer');
+ }
+
+ /**
+ * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.
+ * @private
+ */
+
+
+ _createClass(Equalizer, [{
+ key: '_init',
+ value: function _init() {
+ var eqId = this.$element.attr('data-equalizer') || '';
+ var $watched = this.$element.find('[data-equalizer-watch="' + eqId + '"]');
+
+ this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');
+ this.$element.attr('data-resize', eqId || Foundation.GetYoDigits(6, 'eq'));
+
+ this.hasNested = this.$element.find('[data-equalizer]').length > 0;
+ this.isNested = this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;
+ this.isOn = false;
+ this._bindHandler = {
+ onResizeMeBound: this._onResizeMe.bind(this),
+ onPostEqualizedBound: this._onPostEqualized.bind(this)
+ };
+
+ var imgs = this.$element.find('img');
+ var tooSmall;
+ if (this.options.equalizeOn) {
+ tooSmall = this._checkMQ();
+ $(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));
+ } else {
+ this._events();
+ }
+ if (tooSmall !== undefined && tooSmall === false || tooSmall === undefined) {
+ if (imgs.length) {
+ Foundation.onImagesLoaded(imgs, this._reflow.bind(this));
+ } else {
+ this._reflow();
+ }
+ }
+ }
+
+ /**
+ * Removes event listeners if the breakpoint is too small.
+ * @private
+ */
+
+ }, {
+ key: '_pauseEvents',
+ value: function _pauseEvents() {
+ this.isOn = false;
+ this.$element.off({
+ '.zf.equalizer': this._bindHandler.onPostEqualizedBound,
+ 'resizeme.zf.trigger': this._bindHandler.onResizeMeBound
+ });
+ }
+
+ /**
+ * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound
+ * @private
+ */
+
+ }, {
+ key: '_onResizeMe',
+ value: function _onResizeMe(e) {
+ this._reflow();
+ }
+
+ /**
+ * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound
+ * @private
+ */
+
+ }, {
+ key: '_onPostEqualized',
+ value: function _onPostEqualized(e) {
+ if (e.target !== this.$element[0]) {
+ this._reflow();
+ }
+ }
+
+ /**
+ * Initializes events for Equalizer.
+ * @private
+ */
+
+ }, {
+ key: '_events',
+ value: function _events() {
+ var _this = this;
+ this._pauseEvents();
+ if (this.hasNested) {
+ this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);
+ } else {
+ this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);
+ }
+ this.isOn = true;
+ }
+
+ /**
+ * Checks the current breakpoint to the minimum required size.
+ * @private
+ */
+
+ }, {
+ key: '_checkMQ',
+ value: function _checkMQ() {
+ var tooSmall = !Foundation.MediaQuery.atLeast(this.options.equalizeOn);
+ if (tooSmall) {
+ if (this.isOn) {
+ this._pauseEvents();
+ this.$watched.css('height', 'auto');
+ }
+ } else {
+ if (!this.isOn) {
+ this._events();
+ }
+ }
+ return tooSmall;
+ }
+
+ /**
+ * A noop version for the plugin
+ * @private
+ */
+
+ }, {
+ key: '_killswitch',
+ value: function _killswitch() {
+ return;
+ }
+
+ /**
+ * Calls necessary functions to update Equalizer upon DOM change
+ * @private
+ */
+
+ }, {
+ key: '_reflow',
+ value: function _reflow() {
+ if (!this.options.equalizeOnStack) {
+ if (this._isStacked()) {
+ this.$watched.css('height', 'auto');
+ return false;
+ }
+ }
+ if (this.options.equalizeByRow) {
+ this.getHeightsByRow(this.applyHeightByRow.bind(this));
+ } else {
+ this.getHeights(this.applyHeight.bind(this));
+ }
+ }
+
+ /**
+ * Manually determines if the first 2 elements are *NOT* stacked.
+ * @private
+ */
+
+ }, {
+ key: '_isStacked',
+ value: function _isStacked() {
+ return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;
+ }
+
+ /**
+ * Finds the outer heights of children contained within an Equalizer parent and returns them in an array
+ * @param {Function} cb - A non-optional callback to return the heights array to.
+ * @returns {Array} heights - An array of heights of children within Equalizer container
+ */
+
+ }, {
+ key: 'getHeights',
+ value: function getHeights(cb) {
+ var heights = [];
+ for (var i = 0, len = this.$watched.length; i < len; i++) {
+ this.$watched[i].style.height = 'auto';
+ heights.push(this.$watched[i].offsetHeight);
+ }
+ cb(heights);
+ }
+
+ /**
+ * Finds the outer heights of children contained within an Equalizer parent and returns them in an array
+ * @param {Function} cb - A non-optional callback to return the heights array to.
+ * @returns {Array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child
+ */
+
+ }, {
+ key: 'getHeightsByRow',
+ value: function getHeightsByRow(cb) {
+ var lastElTopOffset = this.$watched.length ? this.$watched.first().offset().top : 0,
+ groups = [],
+ group = 0;
+ //group by Row
+ groups[group] = [];
+ for (var i = 0, len = this.$watched.length; i < len; i++) {
+ this.$watched[i].style.height = 'auto';
+ //maybe could use this.$watched[i].offsetTop
+ var elOffsetTop = $(this.$watched[i]).offset().top;
+ if (elOffsetTop != lastElTopOffset) {
+ group++;
+ groups[group] = [];
+ lastElTopOffset = elOffsetTop;
+ }
+ groups[group].push([this.$watched[i], this.$watched[i].offsetHeight]);
+ }
+
+ for (var j = 0, ln = groups.length; j < ln; j++) {
+ var heights = $(groups[j]).map(function () {
+ return this[1];
+ }).get();
+ var max = Math.max.apply(null, heights);
+ groups[j].push(max);
+ }
+ cb(groups);
+ }
+
+ /**
+ * Changes the CSS height property of each child in an Equalizer parent to match the tallest
+ * @param {array} heights - An array of heights of children within Equalizer container
+ * @fires Equalizer#preequalized
+ * @fires Equalizer#postequalized
+ */
+
+ }, {
+ key: 'applyHeight',
+ value: function applyHeight(heights) {
+ var max = Math.max.apply(null, heights);
+ /**
+ * Fires before the heights are applied
+ * @event Equalizer#preequalized
+ */
+ this.$element.trigger('preequalized.zf.equalizer');
+
+ this.$watched.css('height', max);
+
+ /**
+ * Fires when the heights have been applied
+ * @event Equalizer#postequalized
+ */
+ this.$element.trigger('postequalized.zf.equalizer');
+ }
+
+ /**
+ * Changes the CSS height property of each child in an Equalizer parent to match the tallest by row
+ * @param {array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child
+ * @fires Equalizer#preequalized
+ * @fires Equalizer#preequalizedRow
+ * @fires Equalizer#postequalizedRow
+ * @fires Equalizer#postequalized
+ */
+
+ }, {
+ key: 'applyHeightByRow',
+ value: function applyHeightByRow(groups) {
+ /**
+ * Fires before the heights are applied
+ */
+ this.$element.trigger('preequalized.zf.equalizer');
+ for (var i = 0, len = groups.length; i < len; i++) {
+ var groupsILength = groups[i].length,
+ max = groups[i][groupsILength - 1];
+ if (groupsILength <= 2) {
+ $(groups[i][0][0]).css({ 'height': 'auto' });
+ continue;
+ }
+ /**
+ * Fires before the heights per row are applied
+ * @event Equalizer#preequalizedRow
+ */
+ this.$element.trigger('preequalizedrow.zf.equalizer');
+ for (var j = 0, lenJ = groupsILength - 1; j < lenJ; j++) {
+ $(groups[i][j][0]).css({ 'height': max });
+ }
+ /**
+ * Fires when the heights per row have been applied
+ * @event Equalizer#postequalizedRow
+ */
+ this.$element.trigger('postequalizedrow.zf.equalizer');
+ }
+ /**
+ * Fires when the heights have been applied
+ */
+ this.$element.trigger('postequalized.zf.equalizer');
+ }
+
+ /**
+ * Destroys an instance of Equalizer.
+ * @function
+ */
+
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ this._pauseEvents();
+ this.$watched.css('height', 'auto');
+
+ Foundation.unregisterPlugin(this);
+ }
+ }]);
+
+ return Equalizer;
+ }();
+
+ /**
+ * Default settings for plugin
+ */
+
+
+ Equalizer.defaults = {
+ /**
+ * Enable height equalization when stacked on smaller screens.
+ * @option
+ * @example true
+ */
+ equalizeOnStack: true,
+ /**
+ * Enable height equalization row by row.
+ * @option
+ * @example false
+ */
+ equalizeByRow: false,
+ /**
+ * String representing the minimum breakpoint size the plugin should equalize heights on.
+ * @option
+ * @example 'medium'
+ */
+ equalizeOn: ''
+ };
+
+ // Window exports
+ Foundation.plugin(Equalizer, 'Equalizer');
+}(jQuery);
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+!function ($) {
+
+ /**
+ * Interchange module.
+ * @module foundation.interchange
+ * @requires foundation.util.mediaQuery
+ * @requires foundation.util.timerAndImageLoader
+ */
+
+ var Interchange = function () {
+ /**
+ * Creates a new instance of Interchange.
+ * @class
+ * @fires Interchange#init
+ * @param {Object} element - jQuery object to add the trigger to.
+ * @param {Object} options - Overrides to the default plugin settings.
+ */
+
+ function Interchange(element, options) {
+ _classCallCheck(this, Interchange);
+
+ this.$element = element;
+ this.options = $.extend({}, Interchange.defaults, options);
+ this.rules = [];
+ this.currentPath = '';
+
+ this._init();
+ this._events();
+
+ Foundation.registerPlugin(this, 'Interchange');
+ }
+
+ /**
+ * Initializes the Interchange plugin and calls functions to get interchange functioning on load.
+ * @function
+ * @private
+ */
+
+
+ _createClass(Interchange, [{
+ key: '_init',
+ value: function _init() {
+ this._addBreakpoints();
+ this._generateRules();
+ this._reflow();
+ }
+
+ /**
+ * Initializes events for Interchange.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_events',
+ value: function _events() {
+ $(window).on('resize.zf.interchange', Foundation.util.throttle(this._reflow.bind(this), 50));
+ }
+
+ /**
+ * Calls necessary functions to update Interchange upon DOM change
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_reflow',
+ value: function _reflow() {
+ var match;
+
+ // Iterate through each rule, but only save the last match
+ for (var i in this.rules) {
+ if (this.rules.hasOwnProperty(i)) {
+ var rule = this.rules[i];
+
+ if (window.matchMedia(rule.query).matches) {
+ match = rule;
+ }
+ }
+ }
+
+ if (match) {
+ this.replace(match.path);
+ }
+ }
+
+ /**
+ * Gets the Foundation breakpoints and adds them to the Interchange.SPECIAL_QUERIES object.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_addBreakpoints',
+ value: function _addBreakpoints() {
+ for (var i in Foundation.MediaQuery.queries) {
+ if (Foundation.MediaQuery.queries.hasOwnProperty(i)) {
+ var query = Foundation.MediaQuery.queries[i];
+ Interchange.SPECIAL_QUERIES[query.name] = query.value;
+ }
+ }
+ }
+
+ /**
+ * Checks the Interchange element for the provided media query + content pairings
+ * @function
+ * @private
+ * @param {Object} element - jQuery object that is an Interchange instance
+ * @returns {Array} scenarios - Array of objects that have 'mq' and 'path' keys with corresponding keys
+ */
+
+ }, {
+ key: '_generateRules',
+ value: function _generateRules(element) {
+ var rulesList = [];
+ var rules;
+
+ if (this.options.rules) {
+ rules = this.options.rules;
+ } else {
+ rules = this.$element.data('interchange').match(/\[.*?\]/g);
+ }
+
+ for (var i in rules) {
+ if (rules.hasOwnProperty(i)) {
+ var rule = rules[i].slice(1, -1).split(', ');
+ var path = rule.slice(0, -1).join('');
+ var query = rule[rule.length - 1];
+
+ if (Interchange.SPECIAL_QUERIES[query]) {
+ query = Interchange.SPECIAL_QUERIES[query];
+ }
+
+ rulesList.push({
+ path: path,
+ query: query
+ });
+ }
+ }
+
+ this.rules = rulesList;
+ }
+
+ /**
+ * Update the `src` property of an image, or change the HTML of a container, to the specified path.
+ * @function
+ * @param {String} path - Path to the image or HTML partial.
+ * @fires Interchange#replaced
+ */
+
+ }, {
+ key: 'replace',
+ value: function replace(path) {
+ if (this.currentPath === path) return;
+
+ var _this = this,
+ trigger = 'replaced.zf.interchange';
+
+ // Replacing images
+ if (this.$element[0].nodeName === 'IMG') {
+ this.$element.attr('src', path).on('load', function () {
+ _this.currentPath = path;
+ }).trigger(trigger);
+ }
+ // Replacing background images
+ else if (path.match(/\.(gif|jpg|jpeg|png|svg|tiff)([?#].*)?/i)) {
+ this.$element.css({ 'background-image': 'url(' + path + ')' }).trigger(trigger);
+ }
+ // Replacing HTML
+ else {
+ $.get(path, function (response) {
+ _this.$element.html(response).trigger(trigger);
+ $(response).foundation();
+ _this.currentPath = path;
+ });
+ }
+
+ /**
+ * Fires when content in an Interchange element is done being loaded.
+ * @event Interchange#replaced
+ */
+ // this.$element.trigger('replaced.zf.interchange');
+ }
+
+ /**
+ * Destroys an instance of interchange.
+ * @function
+ */
+
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ //TODO this.
+ }
+ }]);
+
+ return Interchange;
+ }();
+
+ /**
+ * Default settings for plugin
+ */
+
+
+ Interchange.defaults = {
+ /**
+ * Rules to be applied to Interchange elements. Set with the `data-interchange` array notation.
+ * @option
+ */
+ rules: null
+ };
+
+ Interchange.SPECIAL_QUERIES = {
+ 'landscape': 'screen and (orientation: landscape)',
+ 'portrait': 'screen and (orientation: portrait)',
+ 'retina': 'only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)'
+ };
+
+ // Window exports
+ Foundation.plugin(Interchange, 'Interchange');
+}(jQuery);
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+!function ($) {
+
+ /**
+ * Magellan module.
+ * @module foundation.magellan
+ */
+
+ var Magellan = function () {
+ /**
+ * Creates a new instance of Magellan.
+ * @class
+ * @fires Magellan#init
+ * @param {Object} element - jQuery object to add the trigger to.
+ * @param {Object} options - Overrides to the default plugin settings.
+ */
+
+ function Magellan(element, options) {
+ _classCallCheck(this, Magellan);
+
+ this.$element = element;
+ this.options = $.extend({}, Magellan.defaults, this.$element.data(), options);
+
+ this._init();
+
+ Foundation.registerPlugin(this, 'Magellan');
+ }
+
+ /**
+ * Initializes the Magellan plugin and calls functions to get equalizer functioning on load.
+ * @private
+ */
+
+
+ _createClass(Magellan, [{
+ key: '_init',
+ value: function _init() {
+ var id = this.$element[0].id || Foundation.GetYoDigits(6, 'magellan');
+ var _this = this;
+ this.$targets = $('[data-magellan-target]');
+ this.$links = this.$element.find('a');
+ this.$element.attr({
+ 'data-resize': id,
+ 'data-scroll': id,
+ 'id': id
+ });
+ this.$active = $();
+ this.scrollPos = parseInt(window.pageYOffset, 10);
+
+ this._events();
+ }
+
+ /**
+ * Calculates an array of pixel values that are the demarcation lines between locations on the page.
+ * Can be invoked if new elements are added or the size of a location changes.
+ * @function
+ */
+
+ }, {
+ key: 'calcPoints',
+ value: function calcPoints() {
+ var _this = this,
+ body = document.body,
+ html = document.documentElement;
+
+ this.points = [];
+ this.winHeight = Math.round(Math.max(window.innerHeight, html.clientHeight));
+ this.docHeight = Math.round(Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight));
+
+ this.$targets.each(function () {
+ var $tar = $(this),
+ pt = Math.round($tar.offset().top - _this.options.threshold);
+ $tar.targetPoint = pt;
+ _this.points.push(pt);
+ });
+ }
+
+ /**
+ * Initializes events for Magellan.
+ * @private
+ */
+
+ }, {
+ key: '_events',
+ value: function _events() {
+ var _this = this,
+ $body = $('html, body'),
+ opts = {
+ duration: _this.options.animationDuration,
+ easing: _this.options.animationEasing
+ };
+ $(window).one('load', function () {
+ if (_this.options.deepLinking) {
+ if (location.hash) {
+ _this.scrollToLoc(location.hash);
+ }
+ }
+ _this.calcPoints();
+ _this._updateActive();
+ });
+
+ this.$element.on({
+ 'resizeme.zf.trigger': this.reflow.bind(this),
+ 'scrollme.zf.trigger': this._updateActive.bind(this)
+ }).on('click.zf.magellan', 'a[href^="#"]', function (e) {
+ e.preventDefault();
+ var arrival = this.getAttribute('href');
+ _this.scrollToLoc(arrival);
+ });
+ }
+
+ /**
+ * Function to scroll to a given location on the page.
+ * @param {String} loc - a properly formatted jQuery id selector. Example: '#foo'
+ * @function
+ */
+
+ }, {
+ key: 'scrollToLoc',
+ value: function scrollToLoc(loc) {
+ var scrollPos = Math.round($(loc).offset().top - this.options.threshold / 2 - this.options.barOffset);
+
+ $('html, body').stop(true).animate({ scrollTop: scrollPos }, this.options.animationDuration, this.options.animationEasing);
+ }
+
+ /**
+ * Calls necessary functions to update Magellan upon DOM change
+ * @function
+ */
+
+ }, {
+ key: 'reflow',
+ value: function reflow() {
+ this.calcPoints();
+ this._updateActive();
+ }
+
+ /**
+ * Updates the visibility of an active location link, and updates the url hash for the page, if deepLinking enabled.
+ * @private
+ * @function
+ * @fires Magellan#update
+ */
+
+ }, {
+ key: '_updateActive',
+ value: function _updateActive() /*evt, elem, scrollPos*/{
+ var winPos = /*scrollPos ||*/parseInt(window.pageYOffset, 10),
+ curIdx;
+
+ if (winPos + this.winHeight === this.docHeight) {
+ curIdx = this.points.length - 1;
+ } else if (winPos < this.points[0]) {
+ curIdx = 0;
+ } else {
+ var isDown = this.scrollPos < winPos,
+ _this = this,
+ curVisible = this.points.filter(function (p, i) {
+ return isDown ? p - _this.options.barOffset <= winPos : p - _this.options.barOffset - _this.options.threshold <= winPos;
+ });
+ curIdx = curVisible.length ? curVisible.length - 1 : 0;
+ }
+
+ this.$active.removeClass(this.options.activeClass);
+ this.$active = this.$links.eq(curIdx).addClass(this.options.activeClass);
+
+ if (this.options.deepLinking) {
+ var hash = this.$active[0].getAttribute('href');
+ if (window.history.pushState) {
+ window.history.pushState(null, null, hash);
+ } else {
+ window.location.hash = hash;
+ }
+ }
+
+ this.scrollPos = winPos;
+ /**
+ * Fires when magellan is finished updating to the new active element.
+ * @event Magellan#update
+ */
+ this.$element.trigger('update.zf.magellan', [this.$active]);
+ }
+
+ /**
+ * Destroys an instance of Magellan and resets the url of the window.
+ * @function
+ */
+
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ this.$element.off('.zf.trigger .zf.magellan').find('.' + this.options.activeClass).removeClass(this.options.activeClass);
+
+ if (this.options.deepLinking) {
+ var hash = this.$active[0].getAttribute('href');
+ window.location.hash.replace(hash, '');
+ }
+
+ Foundation.unregisterPlugin(this);
+ }
+ }]);
+
+ return Magellan;
+ }();
+
+ /**
+ * Default settings for plugin
+ */
+
+
+ Magellan.defaults = {
+ /**
+ * Amount of time, in ms, the animated scrolling should take between locations.
+ * @option
+ * @example 500
+ */
+ animationDuration: 500,
+ /**
+ * Animation style to use when scrolling between locations.
+ * @option
+ * @example 'ease-in-out'
+ */
+ animationEasing: 'linear',
+ /**
+ * Number of pixels to use as a marker for location changes.
+ * @option
+ * @example 50
+ */
+ threshold: 50,
+ /**
+ * Class applied to the active locations link on the magellan container.
+ * @option
+ * @example 'active'
+ */
+ activeClass: 'active',
+ /**
+ * Allows the script to manipulate the url of the current page, and if supported, alter the history.
+ * @option
+ * @example true
+ */
+ deepLinking: false,
+ /**
+ * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.
+ * @option
+ * @example 25
+ */
+ barOffset: 0
+ };
+
+ // Window exports
+ Foundation.plugin(Magellan, 'Magellan');
+}(jQuery);
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+!function ($) {
+
+ /**
+ * OffCanvas module.
+ * @module foundation.offcanvas
+ * @requires foundation.util.mediaQuery
+ * @requires foundation.util.triggers
+ * @requires foundation.util.motion
+ */
+
+ var OffCanvas = function () {
+ /**
+ * Creates a new instance of an off-canvas wrapper.
+ * @class
+ * @fires OffCanvas#init
+ * @param {Object} element - jQuery object to initialize.
+ * @param {Object} options - Overrides to the default plugin settings.
+ */
+
+ function OffCanvas(element, options) {
+ _classCallCheck(this, OffCanvas);
+
+ this.$element = element;
+ this.options = $.extend({}, OffCanvas.defaults, this.$element.data(), options);
+ this.$lastTrigger = $();
+ this.$triggers = $();
+
+ this._init();
+ this._events();
+
+ Foundation.registerPlugin(this, 'OffCanvas');
+ }
+
+ /**
+ * Initializes the off-canvas wrapper by adding the exit overlay (if needed).
+ * @function
+ * @private
+ */
+
+
+ _createClass(OffCanvas, [{
+ key: '_init',
+ value: function _init() {
+ var id = this.$element.attr('id');
+
+ this.$element.attr('aria-hidden', 'true');
+
+ // Find triggers that affect this element and add aria-expanded to them
+ this.$triggers = $(document).find('[data-open="' + id + '"], [data-close="' + id + '"], [data-toggle="' + id + '"]').attr('aria-expanded', 'false').attr('aria-controls', id);
+
+ // Add a close trigger over the body if necessary
+ if (this.options.closeOnClick) {
+ if ($('.js-off-canvas-exit').length) {
+ this.$exiter = $('.js-off-canvas-exit');
+ } else {
+ var exiter = document.createElement('div');
+ exiter.setAttribute('class', 'js-off-canvas-exit');
+ $('[data-off-canvas-content]').append(exiter);
+
+ this.$exiter = $(exiter);
+ }
+ }
+
+ this.options.isRevealed = this.options.isRevealed || new RegExp(this.options.revealClass, 'g').test(this.$element[0].className);
+
+ if (this.options.isRevealed) {
+ this.options.revealOn = this.options.revealOn || this.$element[0].className.match(/(reveal-for-medium|reveal-for-large)/g)[0].split('-')[2];
+ this._setMQChecker();
+ }
+ if (!this.options.transitionTime) {
+ this.options.transitionTime = parseFloat(window.getComputedStyle($('[data-off-canvas-wrapper]')[0]).transitionDuration) * 1000;
+ }
+ }
+
+ /**
+ * Adds event handlers to the off-canvas wrapper and the exit overlay.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_events',
+ value: function _events() {
+ this.$element.off('.zf.trigger .zf.offcanvas').on({
+ 'open.zf.trigger': this.open.bind(this),
+ 'close.zf.trigger': this.close.bind(this),
+ 'toggle.zf.trigger': this.toggle.bind(this),
+ 'keydown.zf.offcanvas': this._handleKeyboard.bind(this)
+ });
+
+ if (this.options.closeOnClick && this.$exiter.length) {
+ this.$exiter.on({ 'click.zf.offcanvas': this.close.bind(this) });
+ }
+ }
+
+ /**
+ * Applies event listener for elements that will reveal at certain breakpoints.
+ * @private
+ */
+
+ }, {
+ key: '_setMQChecker',
+ value: function _setMQChecker() {
+ var _this = this;
+
+ $(window).on('changed.zf.mediaquery', function () {
+ if (Foundation.MediaQuery.atLeast(_this.options.revealOn)) {
+ _this.reveal(true);
+ } else {
+ _this.reveal(false);
+ }
+ }).one('load.zf.offcanvas', function () {
+ if (Foundation.MediaQuery.atLeast(_this.options.revealOn)) {
+ _this.reveal(true);
+ }
+ });
+ }
+
+ /**
+ * Handles the revealing/hiding the off-canvas at breakpoints, not the same as open.
+ * @param {Boolean} isRevealed - true if element should be revealed.
+ * @function
+ */
+
+ }, {
+ key: 'reveal',
+ value: function reveal(isRevealed) {
+ var $closer = this.$element.find('[data-close]');
+ if (isRevealed) {
+ this.close();
+ this.isRevealed = true;
+ // if (!this.options.forceTop) {
+ // var scrollPos = parseInt(window.pageYOffset);
+ // this.$element[0].style.transform = 'translate(0,' + scrollPos + 'px)';
+ // }
+ // if (this.options.isSticky) { this._stick(); }
+ this.$element.off('open.zf.trigger toggle.zf.trigger');
+ if ($closer.length) {
+ $closer.hide();
+ }
+ } else {
+ this.isRevealed = false;
+ // if (this.options.isSticky || !this.options.forceTop) {
+ // this.$element[0].style.transform = '';
+ // $(window).off('scroll.zf.offcanvas');
+ // }
+ this.$element.on({
+ 'open.zf.trigger': this.open.bind(this),
+ 'toggle.zf.trigger': this.toggle.bind(this)
+ });
+ if ($closer.length) {
+ $closer.show();
+ }
+ }
+ }
+
+ /**
+ * Opens the off-canvas menu.
+ * @function
+ * @param {Object} event - Event object passed from listener.
+ * @param {jQuery} trigger - element that triggered the off-canvas to open.
+ * @fires OffCanvas#opened
+ */
+
+ }, {
+ key: 'open',
+ value: function open(event, trigger) {
+ if (this.$element.hasClass('is-open') || this.isRevealed) {
+ return;
+ }
+ var _this = this,
+ $body = $(document.body);
+
+ if (this.options.forceTop) {
+ $('body').scrollTop(0);
+ }
+ // window.pageYOffset = 0;
+
+ // if (!this.options.forceTop) {
+ // var scrollPos = parseInt(window.pageYOffset);
+ // this.$element[0].style.transform = 'translate(0,' + scrollPos + 'px)';
+ // if (this.$exiter.length) {
+ // this.$exiter[0].style.transform = 'translate(0,' + scrollPos + 'px)';
+ // }
+ // }
+ /**
+ * Fires when the off-canvas menu opens.
+ * @event OffCanvas#opened
+ */
+ Foundation.Move(this.options.transitionTime, this.$element, function () {
+ $('[data-off-canvas-wrapper]').addClass('is-off-canvas-open is-open-' + _this.options.position);
+
+ _this.$element.addClass('is-open');
+
+ // if (_this.options.isSticky) {
+ // _this._stick();
+ // }
+ });
+
+ this.$triggers.attr('aria-expanded', 'true');
+ this.$element.attr('aria-hidden', 'false').trigger('opened.zf.offcanvas');
+
+ if (this.options.closeOnClick) {
+ this.$exiter.addClass('is-visible');
+ }
+
+ if (trigger) {
+ this.$lastTrigger = trigger;
+ }
+
+ if (this.options.autoFocus) {
+ this.$element.one(Foundation.transitionend(this.$element), function () {
+ _this.$element.find('a, button').eq(0).focus();
+ });
+ }
+
+ if (this.options.trapFocus) {
+ $('[data-off-canvas-content]').attr('tabindex', '-1');
+ this._trapFocus();
+ }
+ }
+
+ /**
+ * Traps focus within the offcanvas on open.
+ * @private
+ */
+
+ }, {
+ key: '_trapFocus',
+ value: function _trapFocus() {
+ var focusable = Foundation.Keyboard.findFocusable(this.$element),
+ first = focusable.eq(0),
+ last = focusable.eq(-1);
+
+ focusable.off('.zf.offcanvas').on('keydown.zf.offcanvas', function (e) {
+ if (e.which === 9 || e.keycode === 9) {
+ if (e.target === last[0] && !e.shiftKey) {
+ e.preventDefault();
+ first.focus();
+ }
+ if (e.target === first[0] && e.shiftKey) {
+ e.preventDefault();
+ last.focus();
+ }
+ }
+ });
+ }
+
+ /**
+ * Allows the offcanvas to appear sticky utilizing translate properties.
+ * @private
+ */
+ // OffCanvas.prototype._stick = function() {
+ // var elStyle = this.$element[0].style;
+ //
+ // if (this.options.closeOnClick) {
+ // var exitStyle = this.$exiter[0].style;
+ // }
+ //
+ // $(window).on('scroll.zf.offcanvas', function(e) {
+ // console.log(e);
+ // var pageY = window.pageYOffset;
+ // elStyle.transform = 'translate(0,' + pageY + 'px)';
+ // if (exitStyle !== undefined) { exitStyle.transform = 'translate(0,' + pageY + 'px)'; }
+ // });
+ // // this.$element.trigger('stuck.zf.offcanvas');
+ // };
+ /**
+ * Closes the off-canvas menu.
+ * @function
+ * @param {Function} cb - optional cb to fire after closure.
+ * @fires OffCanvas#closed
+ */
+
+ }, {
+ key: 'close',
+ value: function close(cb) {
+ if (!this.$element.hasClass('is-open') || this.isRevealed) {
+ return;
+ }
+
+ var _this = this;
+
+ // Foundation.Move(this.options.transitionTime, this.$element, function() {
+ $('[data-off-canvas-wrapper]').removeClass('is-off-canvas-open is-open-' + _this.options.position);
+ _this.$element.removeClass('is-open');
+ // Foundation._reflow();
+ // });
+ this.$element.attr('aria-hidden', 'true')
+ /**
+ * Fires when the off-canvas menu opens.
+ * @event OffCanvas#closed
+ */
+ .trigger('closed.zf.offcanvas');
+ // if (_this.options.isSticky || !_this.options.forceTop) {
+ // setTimeout(function() {
+ // _this.$element[0].style.transform = '';
+ // $(window).off('scroll.zf.offcanvas');
+ // }, this.options.transitionTime);
+ // }
+ if (this.options.closeOnClick) {
+ this.$exiter.removeClass('is-visible');
+ }
+
+ this.$triggers.attr('aria-expanded', 'false');
+ if (this.options.trapFocus) {
+ $('[data-off-canvas-content]').removeAttr('tabindex');
+ }
+ }
+
+ /**
+ * Toggles the off-canvas menu open or closed.
+ * @function
+ * @param {Object} event - Event object passed from listener.
+ * @param {jQuery} trigger - element that triggered the off-canvas to open.
+ */
+
+ }, {
+ key: 'toggle',
+ value: function toggle(event, trigger) {
+ if (this.$element.hasClass('is-open')) {
+ this.close(event, trigger);
+ } else {
+ this.open(event, trigger);
+ }
+ }
+
+ /**
+ * Handles keyboard input when detected. When the escape key is pressed, the off-canvas menu closes, and focus is restored to the element that opened the menu.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_handleKeyboard',
+ value: function _handleKeyboard(event) {
+ if (event.which !== 27) return;
+
+ event.stopPropagation();
+ event.preventDefault();
+ this.close();
+ this.$lastTrigger.focus();
+ }
+
+ /**
+ * Destroys the offcanvas plugin.
+ * @function
+ */
+
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ this.close();
+ this.$element.off('.zf.trigger .zf.offcanvas');
+ this.$exiter.off('.zf.offcanvas');
+
+ Foundation.unregisterPlugin(this);
+ }
+ }]);
+
+ return OffCanvas;
+ }();
+
+ OffCanvas.defaults = {
+ /**
+ * Allow the user to click outside of the menu to close it.
+ * @option
+ * @example true
+ */
+ closeOnClick: true,
+
+ /**
+ * Amount of time in ms the open and close transition requires. If none selected, pulls from body style.
+ * @option
+ * @example 500
+ */
+ transitionTime: 0,
+
+ /**
+ * Direction the offcanvas opens from. Determines class applied to body.
+ * @option
+ * @example left
+ */
+ position: 'left',
+
+ /**
+ * Force the page to scroll to top on open.
+ * @option
+ * @example true
+ */
+ forceTop: true,
+
+ /**
+ * Allow the offcanvas to remain open for certain breakpoints.
+ * @option
+ * @example false
+ */
+ isRevealed: false,
+
+ /**
+ * Breakpoint at which to reveal. JS will use a RegExp to target standard classes, if changing classnames, pass your class with the `revealClass` option.
+ * @option
+ * @example reveal-for-large
+ */
+ revealOn: null,
+
+ /**
+ * Force focus to the offcanvas on open. If true, will focus the opening trigger on close.
+ * @option
+ * @example true
+ */
+ autoFocus: true,
+
+ /**
+ * Class used to force an offcanvas to remain open. Foundation defaults for this are `reveal-for-large` & `reveal-for-medium`.
+ * @option
+ * TODO improve the regex testing for this.
+ * @example reveal-for-large
+ */
+ revealClass: 'reveal-for-',
+
+ /**
+ * Triggers optional focus trapping when opening an offcanvas. Sets tabindex of [data-off-canvas-content] to -1 for accessibility purposes.
+ * @option
+ * @example true
+ */
+ trapFocus: false
+ };
+
+ // Window exports
+ Foundation.plugin(OffCanvas, 'OffCanvas');
+}(jQuery);
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+!function ($) {
+
+ /**
+ * Orbit module.
+ * @module foundation.orbit
+ * @requires foundation.util.keyboard
+ * @requires foundation.util.motion
+ * @requires foundation.util.timerAndImageLoader
+ * @requires foundation.util.touch
+ */
+
+ var Orbit = function () {
+ /**
+ * Creates a new instance of an orbit carousel.
+ * @class
+ * @param {jQuery} element - jQuery object to make into an Orbit Carousel.
+ * @param {Object} options - Overrides to the default plugin settings.
+ */
+
+ function Orbit(element, options) {
+ _classCallCheck(this, Orbit);
+
+ this.$element = element;
+ this.options = $.extend({}, Orbit.defaults, this.$element.data(), options);
+
+ this._init();
+
+ Foundation.registerPlugin(this, 'Orbit');
+ Foundation.Keyboard.register('Orbit', {
+ 'ltr': {
+ 'ARROW_RIGHT': 'next',
+ 'ARROW_LEFT': 'previous'
+ },
+ 'rtl': {
+ 'ARROW_LEFT': 'next',
+ 'ARROW_RIGHT': 'previous'
+ }
+ });
+ }
+
+ /**
+ * Initializes the plugin by creating jQuery collections, setting attributes, and starting the animation.
+ * @function
+ * @private
+ */
+
+
+ _createClass(Orbit, [{
+ key: '_init',
+ value: function _init() {
+ this.$wrapper = this.$element.find('.' + this.options.containerClass);
+ this.$slides = this.$element.find('.' + this.options.slideClass);
+ var $images = this.$element.find('img'),
+ initActive = this.$slides.filter('.is-active');
+
+ if (!initActive.length) {
+ this.$slides.eq(0).addClass('is-active');
+ }
+
+ if (!this.options.useMUI) {
+ this.$slides.addClass('no-motionui');
+ }
+
+ if ($images.length) {
+ Foundation.onImagesLoaded($images, this._prepareForOrbit.bind(this));
+ } else {
+ this._prepareForOrbit(); //hehe
+ }
+
+ if (this.options.bullets) {
+ this._loadBullets();
+ }
+
+ this._events();
+
+ if (this.options.autoPlay && this.$slides.length > 1) {
+ this.geoSync();
+ }
+
+ if (this.options.accessible) {
+ // allow wrapper to be focusable to enable arrow navigation
+ this.$wrapper.attr('tabindex', 0);
+ }
+ }
+
+ /**
+ * Creates a jQuery collection of bullets, if they are being used.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_loadBullets',
+ value: function _loadBullets() {
+ this.$bullets = this.$element.find('.' + this.options.boxOfBullets).find('button');
+ }
+
+ /**
+ * Sets a `timer` object on the orbit, and starts the counter for the next slide.
+ * @function
+ */
+
+ }, {
+ key: 'geoSync',
+ value: function geoSync() {
+ var _this = this;
+ this.timer = new Foundation.Timer(this.$element, {
+ duration: this.options.timerDelay,
+ infinite: false
+ }, function () {
+ _this.changeSlide(true);
+ });
+ this.timer.start();
+ }
+
+ /**
+ * Sets wrapper and slide heights for the orbit.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_prepareForOrbit',
+ value: function _prepareForOrbit() {
+ var _this = this;
+ this._setWrapperHeight(function (max) {
+ _this._setSlideHeight(max);
+ });
+ }
+
+ /**
+ * Calulates the height of each slide in the collection, and uses the tallest one for the wrapper height.
+ * @function
+ * @private
+ * @param {Function} cb - a callback function to fire when complete.
+ */
+
+ }, {
+ key: '_setWrapperHeight',
+ value: function _setWrapperHeight(cb) {
+ //rewrite this to `for` loop
+ var max = 0,
+ temp,
+ counter = 0;
+
+ this.$slides.each(function () {
+ temp = this.getBoundingClientRect().height;
+ $(this).attr('data-slide', counter);
+
+ if (counter) {
+ //if not the first slide, set css position and display property
+ $(this).css({ 'position': 'relative', 'display': 'none' });
+ }
+ max = temp > max ? temp : max;
+ counter++;
+ });
+
+ if (counter === this.$slides.length) {
+ this.$wrapper.css({ 'height': max }); //only change the wrapper height property once.
+ cb(max); //fire callback with max height dimension.
+ }
+ }
+
+ /**
+ * Sets the max-height of each slide.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_setSlideHeight',
+ value: function _setSlideHeight(height) {
+ this.$slides.each(function () {
+ $(this).css('max-height', height);
+ });
+ }
+
+ /**
+ * Adds event listeners to basically everything within the element.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_events',
+ value: function _events() {
+ var _this = this;
+
+ //***************************************
+ //**Now using custom event - thanks to:**
+ //** Yohai Ararat of Toronto **
+ //***************************************
+ if (this.$slides.length > 1) {
+
+ if (this.options.swipe) {
+ this.$slides.off('swipeleft.zf.orbit swiperight.zf.orbit').on('swipeleft.zf.orbit', function (e) {
+ e.preventDefault();
+ _this.changeSlide(true);
+ }).on('swiperight.zf.orbit', function (e) {
+ e.preventDefault();
+ _this.changeSlide(false);
+ });
+ }
+ //***************************************
+
+ if (this.options.autoPlay) {
+ this.$slides.on('click.zf.orbit', function () {
+ _this.$element.data('clickedOn', _this.$element.data('clickedOn') ? false : true);
+ _this.timer[_this.$element.data('clickedOn') ? 'pause' : 'start']();
+ });
+
+ if (this.options.pauseOnHover) {
+ this.$element.on('mouseenter.zf.orbit', function () {
+ _this.timer.pause();
+ }).on('mouseleave.zf.orbit', function () {
+ if (!_this.$element.data('clickedOn')) {
+ _this.timer.start();
+ }
+ });
+ }
+ }
+
+ if (this.options.navButtons) {
+ var $controls = this.$element.find('.' + this.options.nextClass + ', .' + this.options.prevClass);
+ $controls.attr('tabindex', 0)
+ //also need to handle enter/return and spacebar key presses
+ .on('click.zf.orbit touchend.zf.orbit', function (e) {
+ e.preventDefault();
+ _this.changeSlide($(this).hasClass(_this.options.nextClass));
+ });
+ }
+
+ if (this.options.bullets) {
+ this.$bullets.on('click.zf.orbit touchend.zf.orbit', function () {
+ if (/is-active/g.test(this.className)) {
+ return false;
+ } //if this is active, kick out of function.
+ var idx = $(this).data('slide'),
+ ltr = idx > _this.$slides.filter('.is-active').data('slide'),
+ $slide = _this.$slides.eq(idx);
+
+ _this.changeSlide(ltr, $slide, idx);
+ });
+ }
+
+ this.$wrapper.add(this.$bullets).on('keydown.zf.orbit', function (e) {
+ // handle keyboard event with keyboard util
+ Foundation.Keyboard.handleKey(e, 'Orbit', {
+ next: function () {
+ _this.changeSlide(true);
+ },
+ previous: function () {
+ _this.changeSlide(false);
+ },
+ handled: function () {
+ // if bullet is focused, make sure focus moves
+ if ($(e.target).is(_this.$bullets)) {
+ _this.$bullets.filter('.is-active').focus();
+ }
+ }
+ });
+ });
+ }
+ }
+
+ /**
+ * Changes the current slide to a new one.
+ * @function
+ * @param {Boolean} isLTR - flag if the slide should move left to right.
+ * @param {jQuery} chosenSlide - the jQuery element of the slide to show next, if one is selected.
+ * @param {Number} idx - the index of the new slide in its collection, if one chosen.
+ * @fires Orbit#slidechange
+ */
+
+ }, {
+ key: 'changeSlide',
+ value: function changeSlide(isLTR, chosenSlide, idx) {
+ var $curSlide = this.$slides.filter('.is-active').eq(0);
+
+ if (/mui/g.test($curSlide[0].className)) {
+ return false;
+ } //if the slide is currently animating, kick out of the function
+
+ var $firstSlide = this.$slides.first(),
+ $lastSlide = this.$slides.last(),
+ dirIn = isLTR ? 'Right' : 'Left',
+ dirOut = isLTR ? 'Left' : 'Right',
+ _this = this,
+ $newSlide;
+
+ if (!chosenSlide) {
+ //most of the time, this will be auto played or clicked from the navButtons.
+ $newSlide = isLTR ? //if wrapping enabled, check to see if there is a `next` or `prev` sibling, if not, select the first or last slide to fill in. if wrapping not enabled, attempt to select `next` or `prev`, if there's nothing there, the function will kick out on next step. CRAZY NESTED TERNARIES!!!!!
+ this.options.infiniteWrap ? $curSlide.next('.' + this.options.slideClass).length ? $curSlide.next('.' + this.options.slideClass) : $firstSlide : $curSlide.next('.' + this.options.slideClass) : //pick next slide if moving left to right
+ this.options.infiniteWrap ? $curSlide.prev('.' + this.options.slideClass).length ? $curSlide.prev('.' + this.options.slideClass) : $lastSlide : $curSlide.prev('.' + this.options.slideClass); //pick prev slide if moving right to left
+ } else {
+ $newSlide = chosenSlide;
+ }
+
+ if ($newSlide.length) {
+ if (this.options.bullets) {
+ idx = idx || this.$slides.index($newSlide); //grab index to update bullets
+ this._updateBullets(idx);
+ }
+
+ if (this.options.useMUI) {
+ Foundation.Motion.animateIn($newSlide.addClass('is-active').css({ 'position': 'absolute', 'top': 0 }), this.options['animInFrom' + dirIn], function () {
+ $newSlide.css({ 'position': 'relative', 'display': 'block' }).attr('aria-live', 'polite');
+ });
+
+ Foundation.Motion.animateOut($curSlide.removeClass('is-active'), this.options['animOutTo' + dirOut], function () {
+ $curSlide.removeAttr('aria-live');
+ if (_this.options.autoPlay && !_this.timer.isPaused) {
+ _this.timer.restart();
+ }
+ //do stuff?
+ });
+ } else {
+ $curSlide.removeClass('is-active is-in').removeAttr('aria-live').hide();
+ $newSlide.addClass('is-active is-in').attr('aria-live', 'polite').show();
+ if (this.options.autoPlay && !this.timer.isPaused) {
+ this.timer.restart();
+ }
+ }
+ /**
+ * Triggers when the slide has finished animating in.
+ * @event Orbit#slidechange
+ */
+ this.$element.trigger('slidechange.zf.orbit', [$newSlide]);
+ }
+ }
+
+ /**
+ * Updates the active state of the bullets, if displayed.
+ * @function
+ * @private
+ * @param {Number} idx - the index of the current slide.
+ */
+
+ }, {
+ key: '_updateBullets',
+ value: function _updateBullets(idx) {
+ var $oldBullet = this.$element.find('.' + this.options.boxOfBullets).find('.is-active').removeClass('is-active').blur(),
+ span = $oldBullet.find('span:last').detach(),
+ $newBullet = this.$bullets.eq(idx).addClass('is-active').append(span);
+ }
+
+ /**
+ * Destroys the carousel and hides the element.
+ * @function
+ */
+
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ this.$element.off('.zf.orbit').find('*').off('.zf.orbit').end().hide();
+ Foundation.unregisterPlugin(this);
+ }
+ }]);
+
+ return Orbit;
+ }();
+
+ Orbit.defaults = {
+ /**
+ * Tells the JS to look for and loadBullets.
+ * @option
+ * @example true
+ */
+ bullets: true,
+ /**
+ * Tells the JS to apply event listeners to nav buttons
+ * @option
+ * @example true
+ */
+ navButtons: true,
+ /**
+ * motion-ui animation class to apply
+ * @option
+ * @example 'slide-in-right'
+ */
+ animInFromRight: 'slide-in-right',
+ /**
+ * motion-ui animation class to apply
+ * @option
+ * @example 'slide-out-right'
+ */
+ animOutToRight: 'slide-out-right',
+ /**
+ * motion-ui animation class to apply
+ * @option
+ * @example 'slide-in-left'
+ *
+ */
+ animInFromLeft: 'slide-in-left',
+ /**
+ * motion-ui animation class to apply
+ * @option
+ * @example 'slide-out-left'
+ */
+ animOutToLeft: 'slide-out-left',
+ /**
+ * Allows Orbit to automatically animate on page load.
+ * @option
+ * @example true
+ */
+ autoPlay: true,
+ /**
+ * Amount of time, in ms, between slide transitions
+ * @option
+ * @example 5000
+ */
+ timerDelay: 5000,
+ /**
+ * Allows Orbit to infinitely loop through the slides
+ * @option
+ * @example true
+ */
+ infiniteWrap: true,
+ /**
+ * Allows the Orbit slides to bind to swipe events for mobile, requires an additional util library
+ * @option
+ * @example true
+ */
+ swipe: true,
+ /**
+ * Allows the timing function to pause animation on hover.
+ * @option
+ * @example true
+ */
+ pauseOnHover: true,
+ /**
+ * Allows Orbit to bind keyboard events to the slider, to animate frames with arrow keys
+ * @option
+ * @example true
+ */
+ accessible: true,
+ /**
+ * Class applied to the container of Orbit
+ * @option
+ * @example 'orbit-container'
+ */
+ containerClass: 'orbit-container',
+ /**
+ * Class applied to individual slides.
+ * @option
+ * @example 'orbit-slide'
+ */
+ slideClass: 'orbit-slide',
+ /**
+ * Class applied to the bullet container. You're welcome.
+ * @option
+ * @example 'orbit-bullets'
+ */
+ boxOfBullets: 'orbit-bullets',
+ /**
+ * Class applied to the `next` navigation button.
+ * @option
+ * @example 'orbit-next'
+ */
+ nextClass: 'orbit-next',
+ /**
+ * Class applied to the `previous` navigation button.
+ * @option
+ * @example 'orbit-previous'
+ */
+ prevClass: 'orbit-previous',
+ /**
+ * Boolean to flag the js to use motion ui classes or not. Default to true for backwards compatability.
+ * @option
+ * @example true
+ */
+ useMUI: true
+ };
+
+ // Window exports
+ Foundation.plugin(Orbit, 'Orbit');
+}(jQuery);
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+!function ($) {
+
+ /**
+ * ResponsiveMenu module.
+ * @module foundation.responsiveMenu
+ * @requires foundation.util.triggers
+ * @requires foundation.util.mediaQuery
+ * @requires foundation.util.accordionMenu
+ * @requires foundation.util.drilldown
+ * @requires foundation.util.dropdown-menu
+ */
+
+ var ResponsiveMenu = function () {
+ /**
+ * Creates a new instance of a responsive menu.
+ * @class
+ * @fires ResponsiveMenu#init
+ * @param {jQuery} element - jQuery object to make into a dropdown menu.
+ * @param {Object} options - Overrides to the default plugin settings.
+ */
+
+ function ResponsiveMenu(element, options) {
+ _classCallCheck(this, ResponsiveMenu);
+
+ this.$element = $(element);
+ this.rules = this.$element.data('responsive-menu');
+ this.currentMq = null;
+ this.currentPlugin = null;
+
+ this._init();
+ this._events();
+
+ Foundation.registerPlugin(this, 'ResponsiveMenu');
+ }
+
+ /**
+ * Initializes the Menu by parsing the classes from the 'data-ResponsiveMenu' attribute on the element.
+ * @function
+ * @private
+ */
+
+
+ _createClass(ResponsiveMenu, [{
+ key: '_init',
+ value: function _init() {
+ // The first time an Interchange plugin is initialized, this.rules is converted from a string of "classes" to an object of rules
+ if (typeof this.rules === 'string') {
+ var rulesTree = {};
+
+ // Parse rules from "classes" pulled from data attribute
+ var rules = this.rules.split(' ');
+
+ // Iterate through every rule found
+ for (var i = 0; i < rules.length; i++) {
+ var rule = rules[i].split('-');
+ var ruleSize = rule.length > 1 ? rule[0] : 'small';
+ var rulePlugin = rule.length > 1 ? rule[1] : rule[0];
+
+ if (MenuPlugins[rulePlugin] !== null) {
+ rulesTree[ruleSize] = MenuPlugins[rulePlugin];
+ }
+ }
+
+ this.rules = rulesTree;
+ }
+
+ if (!$.isEmptyObject(this.rules)) {
+ this._checkMediaQueries();
+ }
+ }
+
+ /**
+ * Initializes events for the Menu.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_events',
+ value: function _events() {
+ var _this = this;
+
+ $(window).on('changed.zf.mediaquery', function () {
+ _this._checkMediaQueries();
+ });
+ // $(window).on('resize.zf.ResponsiveMenu', function() {
+ // _this._checkMediaQueries();
+ // });
+ }
+
+ /**
+ * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_checkMediaQueries',
+ value: function _checkMediaQueries() {
+ var matchedMq,
+ _this = this;
+ // Iterate through each rule and find the last matching rule
+ $.each(this.rules, function (key) {
+ if (Foundation.MediaQuery.atLeast(key)) {
+ matchedMq = key;
+ }
+ });
+
+ // No match? No dice
+ if (!matchedMq) return;
+
+ // Plugin already initialized? We good
+ if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;
+
+ // Remove existing plugin-specific CSS classes
+ $.each(MenuPlugins, function (key, value) {
+ _this.$element.removeClass(value.cssClass);
+ });
+
+ // Add the CSS class for the new plugin
+ this.$element.addClass(this.rules[matchedMq].cssClass);
+
+ // Create an instance of the new plugin
+ if (this.currentPlugin) this.currentPlugin.destroy();
+ this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {});
+ }
+
+ /**
+ * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.
+ * @function
+ */
+
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ this.currentPlugin.destroy();
+ $(window).off('.zf.ResponsiveMenu');
+ Foundation.unregisterPlugin(this);
+ }
+ }]);
+
+ return ResponsiveMenu;
+ }();
+
+ ResponsiveMenu.defaults = {};
+
+ // The plugin matches the plugin classes with these plugin instances.
+ var MenuPlugins = {
+ dropdown: {
+ cssClass: 'dropdown',
+ plugin: Foundation._plugins['dropdown-menu'] || null
+ },
+ drilldown: {
+ cssClass: 'drilldown',
+ plugin: Foundation._plugins['drilldown'] || null
+ },
+ accordion: {
+ cssClass: 'accordion-menu',
+ plugin: Foundation._plugins['accordion-menu'] || null
+ }
+ };
+
+ // Window exports
+ Foundation.plugin(ResponsiveMenu, 'ResponsiveMenu');
+}(jQuery);
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+!function ($) {
+
+ /**
+ * ResponsiveToggle module.
+ * @module foundation.responsiveToggle
+ * @requires foundation.util.mediaQuery
+ */
+
+ var ResponsiveToggle = function () {
+ /**
+ * Creates a new instance of Tab Bar.
+ * @class
+ * @fires ResponsiveToggle#init
+ * @param {jQuery} element - jQuery object to attach tab bar functionality to.
+ * @param {Object} options - Overrides to the default plugin settings.
+ */
+
+ function ResponsiveToggle(element, options) {
+ _classCallCheck(this, ResponsiveToggle);
+
+ this.$element = $(element);
+ this.options = $.extend({}, ResponsiveToggle.defaults, this.$element.data(), options);
+
+ this._init();
+ this._events();
+
+ Foundation.registerPlugin(this, 'ResponsiveToggle');
+ }
+
+ /**
+ * Initializes the tab bar by finding the target element, toggling element, and running update().
+ * @function
+ * @private
+ */
+
+
+ _createClass(ResponsiveToggle, [{
+ key: '_init',
+ value: function _init() {
+ var targetID = this.$element.data('responsive-toggle');
+ if (!targetID) {
+ console.error('Your tab bar needs an ID of a Menu as the value of data-tab-bar.');
+ }
+
+ this.$targetMenu = $('#' + targetID);
+ this.$toggler = this.$element.find('[data-toggle]');
+
+ this._update();
+ }
+
+ /**
+ * Adds necessary event handlers for the tab bar to work.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_events',
+ value: function _events() {
+ var _this = this;
+
+ this._updateMqHandler = this._update.bind(this);
+
+ $(window).on('changed.zf.mediaquery', this._updateMqHandler);
+
+ this.$toggler.on('click.zf.responsiveToggle', this.toggleMenu.bind(this));
+ }
+
+ /**
+ * Checks the current media query to determine if the tab bar should be visible or hidden.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_update',
+ value: function _update() {
+ // Mobile
+ if (!Foundation.MediaQuery.atLeast(this.options.hideFor)) {
+ this.$element.show();
+ this.$targetMenu.hide();
+ }
+
+ // Desktop
+ else {
+ this.$element.hide();
+ this.$targetMenu.show();
+ }
+ }
+
+ /**
+ * Toggles the element attached to the tab bar. The toggle only happens if the screen is small enough to allow it.
+ * @function
+ * @fires ResponsiveToggle#toggled
+ */
+
+ }, {
+ key: 'toggleMenu',
+ value: function toggleMenu() {
+ if (!Foundation.MediaQuery.atLeast(this.options.hideFor)) {
+ this.$targetMenu.toggle(0);
+
+ /**
+ * Fires when the element attached to the tab bar toggles.
+ * @event ResponsiveToggle#toggled
+ */
+ this.$element.trigger('toggled.zf.responsiveToggle');
+ }
+ }
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ this.$element.off('.zf.responsiveToggle');
+ this.$toggler.off('.zf.responsiveToggle');
+
+ $(window).off('changed.zf.mediaquery', this._updateMqHandler);
+
+ Foundation.unregisterPlugin(this);
+ }
+ }]);
+
+ return ResponsiveToggle;
+ }();
+
+ ResponsiveToggle.defaults = {
+ /**
+ * The breakpoint after which the menu is always shown, and the tab bar is hidden.
+ * @option
+ * @example 'medium'
+ */
+ hideFor: 'medium'
+ };
+
+ // Window exports
+ Foundation.plugin(ResponsiveToggle, 'ResponsiveToggle');
+}(jQuery);
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+!function ($) {
+
+ /**
+ * Reveal module.
+ * @module foundation.reveal
+ * @requires foundation.util.keyboard
+ * @requires foundation.util.box
+ * @requires foundation.util.triggers
+ * @requires foundation.util.mediaQuery
+ * @requires foundation.util.motion if using animations
+ */
+
+ var Reveal = function () {
+ /**
+ * Creates a new instance of Reveal.
+ * @class
+ * @param {jQuery} element - jQuery object to use for the modal.
+ * @param {Object} options - optional parameters.
+ */
+
+ function Reveal(element, options) {
+ _classCallCheck(this, Reveal);
+
+ this.$element = element;
+ this.options = $.extend({}, Reveal.defaults, this.$element.data(), options);
+ this._init();
+
+ Foundation.registerPlugin(this, 'Reveal');
+ Foundation.Keyboard.register('Reveal', {
+ 'ENTER': 'open',
+ 'SPACE': 'open',
+ 'ESCAPE': 'close',
+ 'TAB': 'tab_forward',
+ 'SHIFT_TAB': 'tab_backward'
+ });
+ }
+
+ /**
+ * Initializes the modal by adding the overlay and close buttons, (if selected).
+ * @private
+ */
+
+
+ _createClass(Reveal, [{
+ key: '_init',
+ value: function _init() {
+ this.id = this.$element.attr('id');
+ this.isActive = false;
+ this.cached = { mq: Foundation.MediaQuery.current };
+ this.isMobile = mobileSniff();
+
+ this.$anchor = $('[data-open="' + this.id + '"]').length ? $('[data-open="' + this.id + '"]') : $('[data-toggle="' + this.id + '"]');
+ this.$anchor.attr({
+ 'aria-controls': this.id,
+ 'aria-haspopup': true,
+ 'tabindex': 0
+ });
+
+ if (this.options.fullScreen || this.$element.hasClass('full')) {
+ this.options.fullScreen = true;
+ this.options.overlay = false;
+ }
+ if (this.options.overlay && !this.$overlay) {
+ this.$overlay = this._makeOverlay(this.id);
+ }
+
+ this.$element.attr({
+ 'role': 'dialog',
+ 'aria-hidden': true,
+ 'data-yeti-box': this.id,
+ 'data-resize': this.id
+ });
+
+ if (this.$overlay) {
+ this.$element.detach().appendTo(this.$overlay);
+ } else {
+ this.$element.detach().appendTo($('body'));
+ this.$element.addClass('without-overlay');
+ }
+ this._events();
+ if (this.options.deepLink && window.location.hash === '#' + this.id) {
+ $(window).one('load.zf.reveal', this.open.bind(this));
+ }
+ }
+
+ /**
+ * Creates an overlay div to display behind the modal.
+ * @private
+ */
+
+ }, {
+ key: '_makeOverlay',
+ value: function _makeOverlay(id) {
+ var $overlay = $('<div></div>').addClass('reveal-overlay').appendTo('body');
+ return $overlay;
+ }
+
+ /**
+ * Updates position of modal
+ * TODO: Figure out if we actually need to cache these values or if it doesn't matter
+ * @private
+ */
+
+ }, {
+ key: '_updatePosition',
+ value: function _updatePosition() {
+ var width = this.$element.outerWidth();
+ var outerWidth = $(window).width();
+ var height = this.$element.outerHeight();
+ var outerHeight = $(window).height();
+ var left, top;
+ if (this.options.hOffset === 'auto') {
+ left = parseInt((outerWidth - width) / 2, 10);
+ } else {
+ left = parseInt(this.options.hOffset, 10);
+ }
+ if (this.options.vOffset === 'auto') {
+ if (height > outerHeight) {
+ top = parseInt(Math.min(100, outerHeight / 10), 10);
+ } else {
+ top = parseInt((outerHeight - height) / 4, 10);
+ }
+ } else {
+ top = parseInt(this.options.vOffset, 10);
+ }
+ this.$element.css({ top: top + 'px' });
+ // only worry about left if we don't have an overlay or we havea horizontal offset,
+ // otherwise we're perfectly in the middle
+ if (!this.$overlay || this.options.hOffset !== 'auto') {
+ this.$element.css({ left: left + 'px' });
+ this.$element.css({ margin: '0px' });
+ }
+ }
+
+ /**
+ * Adds event handlers for the modal.
+ * @private
+ */
+
+ }, {
+ key: '_events',
+ value: function _events() {
+ var _this2 = this;
+
+ var _this = this;
+
+ this.$element.on({
+ 'open.zf.trigger': this.open.bind(this),
+ 'close.zf.trigger': function (event, $element) {
+ if (event.target === _this.$element[0] || $(event.target).parents('[data-closable]')[0] === $element) {
+ // only close reveal when it's explicitly called
+ return _this2.close.apply(_this2);
+ }
+ },
+ 'toggle.zf.trigger': this.toggle.bind(this),
+ 'resizeme.zf.trigger': function () {
+ _this._updatePosition();
+ }
+ });
+
+ if (this.$anchor.length) {
+ this.$anchor.on('keydown.zf.reveal', function (e) {
+ if (e.which === 13 || e.which === 32) {
+ e.stopPropagation();
+ e.preventDefault();
+ _this.open();
+ }
+ });
+ }
+
+ if (this.options.closeOnClick && this.options.overlay) {
+ this.$overlay.off('.zf.reveal').on('click.zf.reveal', function (e) {
+ if (e.target === _this.$element[0] || $.contains(_this.$element[0], e.target)) {
+ return;
+ }
+ _this.close();
+ });
+ }
+ if (this.options.deepLink) {
+ $(window).on('popstate.zf.reveal:' + this.id, this._handleState.bind(this));
+ }
+ }
+
+ /**
+ * Handles modal methods on back/forward button clicks or any other event that triggers popstate.
+ * @private
+ */
+
+ }, {
+ key: '_handleState',
+ value: function _handleState(e) {
+ if (window.location.hash === '#' + this.id && !this.isActive) {
+ this.open();
+ } else {
+ this.close();
+ }
+ }
+
+ /**
+ * Opens the modal controlled by `this.$anchor`, and closes all others by default.
+ * @function
+ * @fires Reveal#closeme
+ * @fires Reveal#open
+ */
+
+ }, {
+ key: 'open',
+ value: function open() {
+ var _this3 = this;
+
+ if (this.options.deepLink) {
+ var hash = '#' + this.id;
+
+ if (window.history.pushState) {
+ window.history.pushState(null, null, hash);
+ } else {
+ window.location.hash = hash;
+ }
+ }
+
+ this.isActive = true;
+
+ // Make elements invisible, but remove display: none so we can get size and positioning
+ this.$element.css({ 'visibility': 'hidden' }).show().scrollTop(0);
+ if (this.options.overlay) {
+ this.$overlay.css({ 'visibility': 'hidden' }).show();
+ }
+
+ this._updatePosition();
+
+ this.$element.hide().css({ 'visibility': '' });
+
+ if (this.$overlay) {
+ this.$overlay.css({ 'visibility': '' }).hide();
+ if (this.$element.hasClass('fast')) {
+ this.$overlay.addClass('fast');
+ } else if (this.$element.hasClass('slow')) {
+ this.$overlay.addClass('slow');
+ }
+ }
+
+ if (!this.options.multipleOpened) {
+ /**
+ * Fires immediately before the modal opens.
+ * Closes any other modals that are currently open
+ * @event Reveal#closeme
+ */
+ this.$element.trigger('closeme.zf.reveal', this.id);
+ }
+ // Motion UI method of reveal
+ if (this.options.animationIn) {
+ var _this;
+
+ (function () {
+ var afterAnimationFocus = function () {
+ _this.$element.attr({
+ 'aria-hidden': false,
+ 'tabindex': -1
+ }).focus();
+ console.log('focus');
+ };
+
+ _this = _this3;
+
+ if (_this3.options.overlay) {
+ Foundation.Motion.animateIn(_this3.$overlay, 'fade-in');
+ }
+ Foundation.Motion.animateIn(_this3.$element, _this3.options.animationIn, function () {
+ _this3.focusableElements = Foundation.Keyboard.findFocusable(_this3.$element);
+ afterAnimationFocus();
+ });
+ })();
+ }
+ // jQuery method of reveal
+ else {
+ if (this.options.overlay) {
+ this.$overlay.show(0);
+ }
+ this.$element.show(this.options.showDelay);
+ }
+
+ // handle accessibility
+ this.$element.attr({
+ 'aria-hidden': false,
+ 'tabindex': -1
+ }).focus();
+
+ /**
+ * Fires when the modal has successfully opened.
+ * @event Reveal#open
+ */
+ this.$element.trigger('open.zf.reveal');
+
+ if (this.isMobile) {
+ this.originalScrollPos = window.pageYOffset;
+ $('html, body').addClass('is-reveal-open');
+ } else {
+ $('body').addClass('is-reveal-open');
+ }
+
+ setTimeout(function () {
+ _this3._extraHandlers();
+ }, 0);
+ }
+
+ /**
+ * Adds extra event handlers for the body and window if necessary.
+ * @private
+ */
+
+ }, {
+ key: '_extraHandlers',
+ value: function _extraHandlers() {
+ var _this = this;
+ this.focusableElements = Foundation.Keyboard.findFocusable(this.$element);
+
+ if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {
+ $('body').on('click.zf.reveal', function (e) {
+ if (e.target === _this.$element[0] || $.contains(_this.$element[0], e.target)) {
+ return;
+ }
+ _this.close();
+ });
+ }
+
+ if (this.options.closeOnEsc) {
+ $(window).on('keydown.zf.reveal', function (e) {
+ Foundation.Keyboard.handleKey(e, 'Reveal', {
+ close: function () {
+ if (_this.options.closeOnEsc) {
+ _this.close();
+ _this.$anchor.focus();
+ }
+ }
+ });
+ });
+ }
+
+ // lock focus within modal while tabbing
+ this.$element.on('keydown.zf.reveal', function (e) {
+ var $target = $(this);
+ // handle keyboard event with keyboard util
+ Foundation.Keyboard.handleKey(e, 'Reveal', {
+ tab_forward: function () {
+ if (_this.$element.find(':focus').is(_this.focusableElements.eq(-1))) {
+ // left modal downwards, setting focus to first element
+ _this.focusableElements.eq(0).focus();
+ return true;
+ }
+ if (_this.focusableElements.length === 0) {
+ // no focusable elements inside the modal at all, prevent tabbing in general
+ return true;
+ }
+ },
+ tab_backward: function () {
+ if (_this.$element.find(':focus').is(_this.focusableElements.eq(0)) || _this.$element.is(':focus')) {
+ // left modal upwards, setting focus to last element
+ _this.focusableElements.eq(-1).focus();
+ return true;
+ }
+ if (_this.focusableElements.length === 0) {
+ // no focusable elements inside the modal at all, prevent tabbing in general
+ return true;
+ }
+ },
+ open: function () {
+ if (_this.$element.find(':focus').is(_this.$element.find('[data-close]'))) {
+ setTimeout(function () {
+ // set focus back to anchor if close button has been activated
+ _this.$anchor.focus();
+ }, 1);
+ } else if ($target.is(_this.focusableElements)) {
+ // dont't trigger if acual element has focus (i.e. inputs, links, ...)
+ _this.open();
+ }
+ },
+ close: function () {
+ if (_this.options.closeOnEsc) {
+ _this.close();
+ _this.$anchor.focus();
+ }
+ },
+ handled: function (preventDefault) {
+ if (preventDefault) {
+ e.preventDefault();
+ }
+ }
+ });
+ });
+ }
+
+ /**
+ * Closes the modal.
+ * @function
+ * @fires Reveal#closed
+ */
+
+ }, {
+ key: 'close',
+ value: function close() {
+ if (!this.isActive || !this.$element.is(':visible')) {
+ return false;
+ }
+ var _this = this;
+
+ // Motion UI method of hiding
+ if (this.options.animationOut) {
+ if (this.options.overlay) {
+ Foundation.Motion.animateOut(this.$overlay, 'fade-out', finishUp);
+ } else {
+ finishUp();
+ }
+
+ Foundation.Motion.animateOut(this.$element, this.options.animationOut);
+ }
+ // jQuery method of hiding
+ else {
+ if (this.options.overlay) {
+ this.$overlay.hide(0, finishUp);
+ } else {
+ finishUp();
+ }
+
+ this.$element.hide(this.options.hideDelay);
+ }
+
+ // Conditionals to remove extra event listeners added on open
+ if (this.options.closeOnEsc) {
+ $(window).off('keydown.zf.reveal');
+ }
+
+ if (!this.options.overlay && this.options.closeOnClick) {
+ $('body').off('click.zf.reveal');
+ }
+
+ this.$element.off('keydown.zf.reveal');
+
+ function finishUp() {
+ if (_this.isMobile) {
+ $('html, body').removeClass('is-reveal-open');
+ if (_this.originalScrollPos) {
+ $('body').scrollTop(_this.originalScrollPos);
+ _this.originalScrollPos = null;
+ }
+ } else {
+ $('body').removeClass('is-reveal-open');
+ }
+
+ _this.$element.attr('aria-hidden', true);
+
+ /**
+ * Fires when the modal is done closing.
+ * @event Reveal#closed
+ */
+ _this.$element.trigger('closed.zf.reveal');
+ }
+
+ /**
+ * Resets the modal content
+ * This prevents a running video to keep going in the background
+ */
+ if (this.options.resetOnClose) {
+ this.$element.html(this.$element.html());
+ }
+
+ this.isActive = false;
+ if (_this.options.deepLink) {
+ if (window.history.replaceState) {
+ window.history.replaceState("", document.title, window.location.pathname);
+ } else {
+ window.location.hash = '';
+ }
+ }
+ }
+
+ /**
+ * Toggles the open/closed state of a modal.
+ * @function
+ */
+
+ }, {
+ key: 'toggle',
+ value: function toggle() {
+ if (this.isActive) {
+ this.close();
+ } else {
+ this.open();
+ }
+ }
+ }, {
+ key: 'destroy',
+
+
+ /**
+ * Destroys an instance of a modal.
+ * @function
+ */
+ value: function destroy() {
+ if (this.options.overlay) {
+ this.$element.appendTo($('body')); // move $element outside of $overlay to prevent error unregisterPlugin()
+ this.$overlay.hide().off().remove();
+ }
+ this.$element.hide().off();
+ this.$anchor.off('.zf');
+ $(window).off('.zf.reveal:' + this.id);
+
+ Foundation.unregisterPlugin(this);
+ }
+ }]);
+
+ return Reveal;
+ }();
+
+ Reveal.defaults = {
+ /**
+ * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.
+ * @option
+ * @example 'slide-in-left'
+ */
+ animationIn: '',
+ /**
+ * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.
+ * @option
+ * @example 'slide-out-right'
+ */
+ animationOut: '',
+ /**
+ * Time, in ms, to delay the opening of a modal after a click if no animation used.
+ * @option
+ * @example 10
+ */
+ showDelay: 0,
+ /**
+ * Time, in ms, to delay the closing of a modal after a click if no animation used.
+ * @option
+ * @example 10
+ */
+ hideDelay: 0,
+ /**
+ * Allows a click on the body/overlay to close the modal.
+ * @option
+ * @example true
+ */
+ closeOnClick: true,
+ /**
+ * Allows the modal to close if the user presses the `ESCAPE` key.
+ * @option
+ * @example true
+ */
+ closeOnEsc: true,
+ /**
+ * If true, allows multiple modals to be displayed at once.
+ * @option
+ * @example false
+ */
+ multipleOpened: false,
+ /**
+ * Distance, in pixels, the modal should push down from the top of the screen.
+ * @option
+ * @example auto
+ */
+ vOffset: 'auto',
+ /**
+ * Distance, in pixels, the modal should push in from the side of the screen.
+ * @option
+ * @example auto
+ */
+ hOffset: 'auto',
+ /**
+ * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.
+ * @option
+ * @example false
+ */
+ fullScreen: false,
+ /**
+ * Percentage of screen height the modal should push up from the bottom of the view.
+ * @option
+ * @example 10
+ */
+ btmOffsetPct: 10,
+ /**
+ * Allows the modal to generate an overlay div, which will cover the view when modal opens.
+ * @option
+ * @example true
+ */
+ overlay: true,
+ /**
+ * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.
+ * @option
+ * @example false
+ */
+ resetOnClose: false,
+ /**
+ * Allows the modal to alter the url on open/close, and allows the use of the `back` button to close modals. ALSO, allows a modal to auto-maniacally open on page load IF the hash === the modal's user-set id.
+ * @option
+ * @example false
+ */
+ deepLink: false
+ };
+
+ // Window exports
+ Foundation.plugin(Reveal, 'Reveal');
+
+ function iPhoneSniff() {
+ return (/iP(ad|hone|od).*OS/.test(window.navigator.userAgent)
+ );
+ }
+
+ function androidSniff() {
+ return (/Android/.test(window.navigator.userAgent)
+ );
+ }
+
+ function mobileSniff() {
+ return iPhoneSniff() || androidSniff();
+ }
+}(jQuery);
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+!function ($) {
+
+ /**
+ * Slider module.
+ * @module foundation.slider
+ * @requires foundation.util.motion
+ * @requires foundation.util.triggers
+ * @requires foundation.util.keyboard
+ * @requires foundation.util.touch
+ */
+
+ var Slider = function () {
+ /**
+ * Creates a new instance of a drilldown menu.
+ * @class
+ * @param {jQuery} element - jQuery object to make into an accordion menu.
+ * @param {Object} options - Overrides to the default plugin settings.
+ */
+
+ function Slider(element, options) {
+ _classCallCheck(this, Slider);
+
+ this.$element = element;
+ this.options = $.extend({}, Slider.defaults, this.$element.data(), options);
+
+ this._init();
+
+ Foundation.registerPlugin(this, 'Slider');
+ Foundation.Keyboard.register('Slider', {
+ 'ltr': {
+ 'ARROW_RIGHT': 'increase',
+ 'ARROW_UP': 'increase',
+ 'ARROW_DOWN': 'decrease',
+ 'ARROW_LEFT': 'decrease',
+ 'SHIFT_ARROW_RIGHT': 'increase_fast',
+ 'SHIFT_ARROW_UP': 'increase_fast',
+ 'SHIFT_ARROW_DOWN': 'decrease_fast',
+ 'SHIFT_ARROW_LEFT': 'decrease_fast'
+ },
+ 'rtl': {
+ 'ARROW_LEFT': 'increase',
+ 'ARROW_RIGHT': 'decrease',
+ 'SHIFT_ARROW_LEFT': 'increase_fast',
+ 'SHIFT_ARROW_RIGHT': 'decrease_fast'
+ }
+ });
+ }
+
+ /**
+ * Initilizes the plugin by reading/setting attributes, creating collections and setting the initial position of the handle(s).
+ * @function
+ * @private
+ */
+
+
+ _createClass(Slider, [{
+ key: '_init',
+ value: function _init() {
+ this.inputs = this.$element.find('input');
+ this.handles = this.$element.find('[data-slider-handle]');
+
+ this.$handle = this.handles.eq(0);
+ this.$input = this.inputs.length ? this.inputs.eq(0) : $('#' + this.$handle.attr('aria-controls'));
+ this.$fill = this.$element.find('[data-slider-fill]').css(this.options.vertical ? 'height' : 'width', 0);
+
+ var isDbl = false,
+ _this = this;
+ if (this.options.disabled || this.$element.hasClass(this.options.disabledClass)) {
+ this.options.disabled = true;
+ this.$element.addClass(this.options.disabledClass);
+ }
+ if (!this.inputs.length) {
+ this.inputs = $().add(this.$input);
+ this.options.binding = true;
+ }
+ this._setInitAttr(0);
+ this._events(this.$handle);
+
+ if (this.handles[1]) {
+ this.options.doubleSided = true;
+ this.$handle2 = this.handles.eq(1);
+ this.$input2 = this.inputs.length > 1 ? this.inputs.eq(1) : $('#' + this.$handle2.attr('aria-controls'));
+
+ if (!this.inputs[1]) {
+ this.inputs = this.inputs.add(this.$input2);
+ }
+ isDbl = true;
+
+ this._setHandlePos(this.$handle, this.options.initialStart, true, function () {
+
+ _this._setHandlePos(_this.$handle2, _this.options.initialEnd, true);
+ });
+ // this.$handle.triggerHandler('click.zf.slider');
+ this._setInitAttr(1);
+ this._events(this.$handle2);
+ }
+
+ if (!isDbl) {
+ this._setHandlePos(this.$handle, this.options.initialStart, true);
+ }
+ }
+
+ /**
+ * Sets the position of the selected handle and fill bar.
+ * @function
+ * @private
+ * @param {jQuery} $hndl - the selected handle to move.
+ * @param {Number} location - floating point between the start and end values of the slider bar.
+ * @param {Function} cb - callback function to fire on completion.
+ * @fires Slider#moved
+ * @fires Slider#changed
+ */
+
+ }, {
+ key: '_setHandlePos',
+ value: function _setHandlePos($hndl, location, noInvert, cb) {
+ // don't move if the slider has been disabled since its initialization
+ if (this.$element.hasClass(this.options.disabledClass)) {
+ return;
+ }
+ //might need to alter that slightly for bars that will have odd number selections.
+ location = parseFloat(location); //on input change events, convert string to number...grumble.
+
+ // prevent slider from running out of bounds, if value exceeds the limits set through options, override the value to min/max
+ if (location < this.options.start) {
+ location = this.options.start;
+ } else if (location > this.options.end) {
+ location = this.options.end;
+ }
+
+ var isDbl = this.options.doubleSided;
+
+ if (isDbl) {
+ //this block is to prevent 2 handles from crossing eachother. Could/should be improved.
+ if (this.handles.index($hndl) === 0) {
+ var h2Val = parseFloat(this.$handle2.attr('aria-valuenow'));
+ location = location >= h2Val ? h2Val - this.options.step : location;
+ } else {
+ var h1Val = parseFloat(this.$handle.attr('aria-valuenow'));
+ location = location <= h1Val ? h1Val + this.options.step : location;
+ }
+ }
+
+ //this is for single-handled vertical sliders, it adjusts the value to account for the slider being "upside-down"
+ //for click and drag events, it's weird due to the scale(-1, 1) css property
+ if (this.options.vertical && !noInvert) {
+ location = this.options.end - location;
+ }
+
+ var _this = this,
+ vert = this.options.vertical,
+ hOrW = vert ? 'height' : 'width',
+ lOrT = vert ? 'top' : 'left',
+ handleDim = $hndl[0].getBoundingClientRect()[hOrW],
+ elemDim = this.$element[0].getBoundingClientRect()[hOrW],
+
+ //percentage of bar min/max value based on click or drag point
+ pctOfBar = percent(location - this.options.start, this.options.end - this.options.start).toFixed(2),
+
+ //number of actual pixels to shift the handle, based on the percentage obtained above
+ pxToMove = (elemDim - handleDim) * pctOfBar,
+
+ //percentage of bar to shift the handle
+ movement = (percent(pxToMove, elemDim) * 100).toFixed(this.options.decimal);
+ //fixing the decimal value for the location number, is passed to other methods as a fixed floating-point value
+ location = parseFloat(location.toFixed(this.options.decimal));
+ // declare empty object for css adjustments, only used with 2 handled-sliders
+ var css = {};
+
+ this._setValues($hndl, location);
+
+ // TODO update to calculate based on values set to respective inputs??
+ if (isDbl) {
+ var isLeftHndl = this.handles.index($hndl) === 0,
+
+ //empty variable, will be used for min-height/width for fill bar
+ dim,
+
+ //percentage w/h of the handle compared to the slider bar
+ handlePct = ~ ~(percent(handleDim, elemDim) * 100);
+ //if left handle, the math is slightly different than if it's the right handle, and the left/top property needs to be changed for the fill bar
+ if (isLeftHndl) {
+ //left or top percentage value to apply to the fill bar.
+ css[lOrT] = movement + '%';
+ //calculate the new min-height/width for the fill bar.
+ dim = parseFloat(this.$handle2[0].style[lOrT]) - movement + handlePct;
+ //this callback is necessary to prevent errors and allow the proper placement and initialization of a 2-handled slider
+ //plus, it means we don't care if 'dim' isNaN on init, it won't be in the future.
+ if (cb && typeof cb === 'function') {
+ cb();
+ } //this is only needed for the initialization of 2 handled sliders
+ } else {
+ //just caching the value of the left/bottom handle's left/top property
+ var handlePos = parseFloat(this.$handle[0].style[lOrT]);
+ //calculate the new min-height/width for the fill bar. Use isNaN to prevent false positives for numbers <= 0
+ //based on the percentage of movement of the handle being manipulated, less the opposing handle's left/top position, plus the percentage w/h of the handle itself
+ dim = movement - (isNaN(handlePos) ? this.options.initialStart / ((this.options.end - this.options.start) / 100) : handlePos) + handlePct;
+ }
+ // assign the min-height/width to our css object
+ css['min-' + hOrW] = dim + '%';
+ }
+
+ this.$element.one('finished.zf.animate', function () {
+ /**
+ * Fires when the handle is done moving.
+ * @event Slider#moved
+ */
+ _this.$element.trigger('moved.zf.slider', [$hndl]);
+ });
+
+ //because we don't know exactly how the handle will be moved, check the amount of time it should take to move.
+ var moveTime = this.$element.data('dragging') ? 1000 / 60 : this.options.moveTime;
+
+ Foundation.Move(moveTime, $hndl, function () {
+ //adjusting the left/top property of the handle, based on the percentage calculated above
+ $hndl.css(lOrT, movement + '%');
+
+ if (!_this.options.doubleSided) {
+ //if single-handled, a simple method to expand the fill bar
+ _this.$fill.css(hOrW, pctOfBar * 100 + '%');
+ } else {
+ //otherwise, use the css object we created above
+ _this.$fill.css(css);
+ }
+ });
+
+ /**
+ * Fires when the value has not been change for a given time.
+ * @event Slider#changed
+ */
+ clearTimeout(_this.timeout);
+ _this.timeout = setTimeout(function () {
+ _this.$element.trigger('changed.zf.slider', [$hndl]);
+ }, _this.options.changedDelay);
+ }
+
+ /**
+ * Sets the initial attribute for the slider element.
+ * @function
+ * @private
+ * @param {Number} idx - index of the current handle/input to use.
+ */
+
+ }, {
+ key: '_setInitAttr',
+ value: function _setInitAttr(idx) {
+ var id = this.inputs.eq(idx).attr('id') || Foundation.GetYoDigits(6, 'slider');
+ this.inputs.eq(idx).attr({
+ 'id': id,
+ 'max': this.options.end,
+ 'min': this.options.start,
+ 'step': this.options.step
+ });
+ this.handles.eq(idx).attr({
+ 'role': 'slider',
+ 'aria-controls': id,
+ 'aria-valuemax': this.options.end,
+ 'aria-valuemin': this.options.start,
+ 'aria-valuenow': idx === 0 ? this.options.initialStart : this.options.initialEnd,
+ 'aria-orientation': this.options.vertical ? 'vertical' : 'horizontal',
+ 'tabindex': 0
+ });
+ }
+
+ /**
+ * Sets the input and `aria-valuenow` values for the slider element.
+ * @function
+ * @private
+ * @param {jQuery} $handle - the currently selected handle.
+ * @param {Number} val - floating point of the new value.
+ */
+
+ }, {
+ key: '_setValues',
+ value: function _setValues($handle, val) {
+ var idx = this.options.doubleSided ? this.handles.index($handle) : 0;
+ this.inputs.eq(idx).val(val);
+ $handle.attr('aria-valuenow', val);
+ }
+
+ /**
+ * Handles events on the slider element.
+ * Calculates the new location of the current handle.
+ * If there are two handles and the bar was clicked, it determines which handle to move.
+ * @function
+ * @private
+ * @param {Object} e - the `event` object passed from the listener.
+ * @param {jQuery} $handle - the current handle to calculate for, if selected.
+ * @param {Number} val - floating point number for the new value of the slider.
+ * TODO clean this up, there's a lot of repeated code between this and the _setHandlePos fn.
+ */
+
+ }, {
+ key: '_handleEvent',
+ value: function _handleEvent(e, $handle, val) {
+ var value, hasVal;
+ if (!val) {
+ //click or drag events
+ e.preventDefault();
+ var _this = this,
+ vertical = this.options.vertical,
+ param = vertical ? 'height' : 'width',
+ direction = vertical ? 'top' : 'left',
+ eventOffset = vertical ? e.pageY : e.pageX,
+ halfOfHandle = this.$handle[0].getBoundingClientRect()[param] / 2,
+ barDim = this.$element[0].getBoundingClientRect()[param],
+ windowScroll = vertical ? $(window).scrollTop() : $(window).scrollLeft();
+
+ var elemOffset = this.$element.offset()[direction];
+
+ // touch events emulated by the touch util give position relative to screen, add window.scroll to event coordinates...
+ // best way to guess this is simulated is if clientY == pageY
+ if (e.clientY === e.pageY) {
+ eventOffset = eventOffset + windowScroll;
+ }
+ var eventFromBar = eventOffset - elemOffset;
+ var barXY;
+ if (eventFromBar < 0) {
+ barXY = 0;
+ } else if (eventFromBar > barDim) {
+ barXY = barDim;
+ } else {
+ barXY = eventFromBar;
+ }
+ offsetPct = percent(barXY, barDim);
+
+ value = (this.options.end - this.options.start) * offsetPct + this.options.start;
+
+ // turn everything around for RTL, yay math!
+ if (Foundation.rtl() && !this.options.vertical) {
+ value = this.options.end - value;
+ }
+
+ value = _this._adjustValue(null, value);
+ //boolean flag for the setHandlePos fn, specifically for vertical sliders
+ hasVal = false;
+
+ if (!$handle) {
+ //figure out which handle it is, pass it to the next function.
+ var firstHndlPos = absPosition(this.$handle, direction, barXY, param),
+ secndHndlPos = absPosition(this.$handle2, direction, barXY, param);
+ $handle = firstHndlPos <= secndHndlPos ? this.$handle : this.$handle2;
+ }
+ } else {
+ //change event on input
+ value = this._adjustValue(null, val);
+ hasVal = true;
+ }
+
+ this._setHandlePos($handle, value, hasVal);
+ }
+
+ /**
+ * Adjustes value for handle in regard to step value. returns adjusted value
+ * @function
+ * @private
+ * @param {jQuery} $handle - the selected handle.
+ * @param {Number} value - value to adjust. used if $handle is falsy
+ */
+
+ }, {
+ key: '_adjustValue',
+ value: function _adjustValue($handle, value) {
+ var val,
+ step = this.options.step,
+ div = parseFloat(step / 2),
+ left,
+ prev_val,
+ next_val;
+ if (!!$handle) {
+ val = parseFloat($handle.attr('aria-valuenow'));
+ } else {
+ val = value;
+ }
+ left = val % step;
+ prev_val = val - left;
+ next_val = prev_val + step;
+ if (left === 0) {
+ return val;
+ }
+ val = val >= prev_val + div ? next_val : prev_val;
+ return val;
+ }
+
+ /**
+ * Adds event listeners to the slider elements.
+ * @function
+ * @private
+ * @param {jQuery} $handle - the current handle to apply listeners to.
+ */
+
+ }, {
+ key: '_events',
+ value: function _events($handle) {
+ var _this = this,
+ curHandle,
+ timer;
+
+ this.inputs.off('change.zf.slider').on('change.zf.slider', function (e) {
+ var idx = _this.inputs.index($(this));
+ _this._handleEvent(e, _this.handles.eq(idx), $(this).val());
+ });
+
+ if (this.options.clickSelect) {
+ this.$element.off('click.zf.slider').on('click.zf.slider', function (e) {
+ if (_this.$element.data('dragging')) {
+ return false;
+ }
+
+ if (!$(e.target).is('[data-slider-handle]')) {
+ if (_this.options.doubleSided) {
+ _this._handleEvent(e);
+ } else {
+ _this._handleEvent(e, _this.$handle);
+ }
+ }
+ });
+ }
+
+ if (this.options.draggable) {
+ this.handles.addTouch();
+
+ var $body = $('body');
+ $handle.off('mousedown.zf.slider').on('mousedown.zf.slider', function (e) {
+ $handle.addClass('is-dragging');
+ _this.$fill.addClass('is-dragging'); //
+ _this.$element.data('dragging', true);
+
+ curHandle = $(e.currentTarget);
+
+ $body.on('mousemove.zf.slider', function (e) {
+ e.preventDefault();
+ _this._handleEvent(e, curHandle);
+ }).on('mouseup.zf.slider', function (e) {
+ _this._handleEvent(e, curHandle);
+
+ $handle.removeClass('is-dragging');
+ _this.$fill.removeClass('is-dragging');
+ _this.$element.data('dragging', false);
+
+ $body.off('mousemove.zf.slider mouseup.zf.slider');
+ });
+ })
+ // prevent events triggered by touch
+ .on('selectstart.zf.slider touchmove.zf.slider', function (e) {
+ e.preventDefault();
+ });
+ }
+
+ $handle.off('keydown.zf.slider').on('keydown.zf.slider', function (e) {
+ var _$handle = $(this),
+ idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,
+ oldValue = parseFloat(_this.inputs.eq(idx).val()),
+ newValue;
+
+ // handle keyboard event with keyboard util
+ Foundation.Keyboard.handleKey(e, 'Slider', {
+ decrease: function () {
+ newValue = oldValue - _this.options.step;
+ },
+ increase: function () {
+ newValue = oldValue + _this.options.step;
+ },
+ decrease_fast: function () {
+ newValue = oldValue - _this.options.step * 10;
+ },
+ increase_fast: function () {
+ newValue = oldValue + _this.options.step * 10;
+ },
+ handled: function () {
+ // only set handle pos when event was handled specially
+ e.preventDefault();
+ _this._setHandlePos(_$handle, newValue, true);
+ }
+ });
+ /*if (newValue) { // if pressed key has special function, update value
+ e.preventDefault();
+ _this._setHandlePos(_$handle, newValue);
+ }*/
+ });
+ }
+
+ /**
+ * Destroys the slider plugin.
+ */
+
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ this.handles.off('.zf.slider');
+ this.inputs.off('.zf.slider');
+ this.$element.off('.zf.slider');
+
+ Foundation.unregisterPlugin(this);
+ }
+ }]);
+
+ return Slider;
+ }();
+
+ Slider.defaults = {
+ /**
+ * Minimum value for the slider scale.
+ * @option
+ * @example 0
+ */
+ start: 0,
+ /**
+ * Maximum value for the slider scale.
+ * @option
+ * @example 100
+ */
+ end: 100,
+ /**
+ * Minimum value change per change event.
+ * @option
+ * @example 1
+ */
+ step: 1,
+ /**
+ * Value at which the handle/input *(left handle/first input)* should be set to on initialization.
+ * @option
+ * @example 0
+ */
+ initialStart: 0,
+ /**
+ * Value at which the right handle/second input should be set to on initialization.
+ * @option
+ * @example 100
+ */
+ initialEnd: 100,
+ /**
+ * Allows the input to be located outside the container and visible. Set to by the JS
+ * @option
+ * @example false
+ */
+ binding: false,
+ /**
+ * Allows the user to click/tap on the slider bar to select a value.
+ * @option
+ * @example true
+ */
+ clickSelect: true,
+ /**
+ * Set to true and use the `vertical` class to change alignment to vertical.
+ * @option
+ * @example false
+ */
+ vertical: false,
+ /**
+ * Allows the user to drag the slider handle(s) to select a value.
+ * @option
+ * @example true
+ */
+ draggable: true,
+ /**
+ * Disables the slider and prevents event listeners from being applied. Double checked by JS with `disabledClass`.
+ * @option
+ * @example false
+ */
+ disabled: false,
+ /**
+ * Allows the use of two handles. Double checked by the JS. Changes some logic handling.
+ * @option
+ * @example false
+ */
+ doubleSided: false,
+ /**
+ * Potential future feature.
+ */
+ // steps: 100,
+ /**
+ * Number of decimal places the plugin should go to for floating point precision.
+ * @option
+ * @example 2
+ */
+ decimal: 2,
+ /**
+ * Time delay for dragged elements.
+ */
+ // dragDelay: 0,
+ /**
+ * Time, in ms, to animate the movement of a slider handle if user clicks/taps on the bar. Needs to be manually set if updating the transition time in the Sass settings.
+ * @option
+ * @example 200
+ */
+ moveTime: 200, //update this if changing the transition time in the sass
+ /**
+ * Class applied to disabled sliders.
+ * @option
+ * @example 'disabled'
+ */
+ disabledClass: 'disabled',
+ /**
+ * Will invert the default layout for a vertical<span data-tooltip title="who would do this???"> </span>slider.
+ * @option
+ * @example false
+ */
+ invertVertical: false,
+ /**
+ * Milliseconds before the `changed.zf-slider` event is triggered after value change.
+ * @option
+ * @example 500
+ */
+ changedDelay: 500
+ };
+
+ function percent(frac, num) {
+ return frac / num;
+ }
+ function absPosition($handle, dir, clickPos, param) {
+ return Math.abs($handle.position()[dir] + $handle[param]() / 2 - clickPos);
+ }
+
+ // Window exports
+ Foundation.plugin(Slider, 'Slider');
+}(jQuery);
+
+//*********this is in case we go to static, absolute positions instead of dynamic positioning********
+// this.setSteps(function() {
+// _this._events();
+// var initStart = _this.options.positions[_this.options.initialStart - 1] || null;
+// var initEnd = _this.options.initialEnd ? _this.options.position[_this.options.initialEnd - 1] : null;
+// if (initStart || initEnd) {
+// _this._handleEvent(initStart, initEnd);
+// }
+// });
+
+//***********the other part of absolute positions*************
+// Slider.prototype.setSteps = function(cb) {
+// var posChange = this.$element.outerWidth() / this.options.steps;
+// var counter = 0
+// while(counter < this.options.steps) {
+// if (counter) {
+// this.options.positions.push(this.options.positions[counter - 1] + posChange);
+// } else {
+// this.options.positions.push(posChange);
+// }
+// counter++;
+// }
+// cb();
+// };
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+!function ($) {
+
+ /**
+ * Sticky module.
+ * @module foundation.sticky
+ * @requires foundation.util.triggers
+ * @requires foundation.util.mediaQuery
+ */
+
+ var Sticky = function () {
+ /**
+ * Creates a new instance of a sticky thing.
+ * @class
+ * @param {jQuery} element - jQuery object to make sticky.
+ * @param {Object} options - options object passed when creating the element programmatically.
+ */
+
+ function Sticky(element, options) {
+ _classCallCheck(this, Sticky);
+
+ this.$element = element;
+ this.options = $.extend({}, Sticky.defaults, this.$element.data(), options);
+
+ this._init();
+
+ Foundation.registerPlugin(this, 'Sticky');
+ }
+
+ /**
+ * Initializes the sticky element by adding classes, getting/setting dimensions, breakpoints and attributes
+ * @function
+ * @private
+ */
+
+
+ _createClass(Sticky, [{
+ key: '_init',
+ value: function _init() {
+ var $parent = this.$element.parent('[data-sticky-container]'),
+ id = this.$element[0].id || Foundation.GetYoDigits(6, 'sticky'),
+ _this = this;
+
+ if (!$parent.length) {
+ this.wasWrapped = true;
+ }
+ this.$container = $parent.length ? $parent : $(this.options.container).wrapInner(this.$element);
+ this.$container.addClass(this.options.containerClass);
+
+ this.$element.addClass(this.options.stickyClass).attr({ 'data-resize': id });
+
+ this.scrollCount = this.options.checkEvery;
+ this.isStuck = false;
+ $(window).one('load.zf.sticky', function () {
+ if (_this.options.anchor !== '') {
+ _this.$anchor = $('#' + _this.options.anchor);
+ } else {
+ _this._parsePoints();
+ }
+
+ _this._setSizes(function () {
+ _this._calc(false);
+ });
+ _this._events(id.split('-').reverse().join('-'));
+ });
+ }
+
+ /**
+ * If using multiple elements as anchors, calculates the top and bottom pixel values the sticky thing should stick and unstick on.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_parsePoints',
+ value: function _parsePoints() {
+ var top = this.options.topAnchor == "" ? 1 : this.options.topAnchor,
+ btm = this.options.btmAnchor == "" ? document.documentElement.scrollHeight : this.options.btmAnchor,
+ pts = [top, btm],
+ breaks = {};
+ for (var i = 0, len = pts.length; i < len && pts[i]; i++) {
+ var pt;
+ if (typeof pts[i] === 'number') {
+ pt = pts[i];
+ } else {
+ var place = pts[i].split(':'),
+ anchor = $('#' + place[0]);
+
+ pt = anchor.offset().top;
+ if (place[1] && place[1].toLowerCase() === 'bottom') {
+ pt += anchor[0].getBoundingClientRect().height;
+ }
+ }
+ breaks[i] = pt;
+ }
+
+ this.points = breaks;
+ return;
+ }
+
+ /**
+ * Adds event handlers for the scrolling element.
+ * @private
+ * @param {String} id - psuedo-random id for unique scroll event listener.
+ */
+
+ }, {
+ key: '_events',
+ value: function _events(id) {
+ var _this = this,
+ scrollListener = this.scrollListener = 'scroll.zf.' + id;
+ if (this.isOn) {
+ return;
+ }
+ if (this.canStick) {
+ this.isOn = true;
+ $(window).off(scrollListener).on(scrollListener, function (e) {
+ if (_this.scrollCount === 0) {
+ _this.scrollCount = _this.options.checkEvery;
+ _this._setSizes(function () {
+ _this._calc(false, window.pageYOffset);
+ });
+ } else {
+ _this.scrollCount--;
+ _this._calc(false, window.pageYOffset);
+ }
+ });
+ }
+
+ this.$element.off('resizeme.zf.trigger').on('resizeme.zf.trigger', function (e, el) {
+ _this._setSizes(function () {
+ _this._calc(false);
+ if (_this.canStick) {
+ if (!_this.isOn) {
+ _this._events(id);
+ }
+ } else if (_this.isOn) {
+ _this._pauseListeners(scrollListener);
+ }
+ });
+ });
+ }
+
+ /**
+ * Removes event handlers for scroll and change events on anchor.
+ * @fires Sticky#pause
+ * @param {String} scrollListener - unique, namespaced scroll listener attached to `window`
+ */
+
+ }, {
+ key: '_pauseListeners',
+ value: function _pauseListeners(scrollListener) {
+ this.isOn = false;
+ $(window).off(scrollListener);
+
+ /**
+ * Fires when the plugin is paused due to resize event shrinking the view.
+ * @event Sticky#pause
+ * @private
+ */
+ this.$element.trigger('pause.zf.sticky');
+ }
+
+ /**
+ * Called on every `scroll` event and on `_init`
+ * fires functions based on booleans and cached values
+ * @param {Boolean} checkSizes - true if plugin should recalculate sizes and breakpoints.
+ * @param {Number} scroll - current scroll position passed from scroll event cb function. If not passed, defaults to `window.pageYOffset`.
+ */
+
+ }, {
+ key: '_calc',
+ value: function _calc(checkSizes, scroll) {
+ if (checkSizes) {
+ this._setSizes();
+ }
+
+ if (!this.canStick) {
+ if (this.isStuck) {
+ this._removeSticky(true);
+ }
+ return false;
+ }
+
+ if (!scroll) {
+ scroll = window.pageYOffset;
+ }
+
+ if (scroll >= this.topPoint) {
+ if (scroll <= this.bottomPoint) {
+ if (!this.isStuck) {
+ this._setSticky();
+ }
+ } else {
+ if (this.isStuck) {
+ this._removeSticky(false);
+ }
+ }
+ } else {
+ if (this.isStuck) {
+ this._removeSticky(true);
+ }
+ }
+ }
+
+ /**
+ * Causes the $element to become stuck.
+ * Adds `position: fixed;`, and helper classes.
+ * @fires Sticky#stuckto
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_setSticky',
+ value: function _setSticky() {
+ var _this = this,
+ stickTo = this.options.stickTo,
+ mrgn = stickTo === 'top' ? 'marginTop' : 'marginBottom',
+ notStuckTo = stickTo === 'top' ? 'bottom' : 'top',
+ css = {};
+
+ css[mrgn] = this.options[mrgn] + 'em';
+ css[stickTo] = 0;
+ css[notStuckTo] = 'auto';
+ css['left'] = this.$container.offset().left + parseInt(window.getComputedStyle(this.$container[0])["padding-left"], 10);
+ this.isStuck = true;
+ this.$element.removeClass('is-anchored is-at-' + notStuckTo).addClass('is-stuck is-at-' + stickTo).css(css)
+ /**
+ * Fires when the $element has become `position: fixed;`
+ * Namespaced to `top` or `bottom`, e.g. `sticky.zf.stuckto:top`
+ * @event Sticky#stuckto
+ */
+ .trigger('sticky.zf.stuckto:' + stickTo);
+ this.$element.on("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd", function () {
+ _this._setSizes();
+ });
+ }
+
+ /**
+ * Causes the $element to become unstuck.
+ * Removes `position: fixed;`, and helper classes.
+ * Adds other helper classes.
+ * @param {Boolean} isTop - tells the function if the $element should anchor to the top or bottom of its $anchor element.
+ * @fires Sticky#unstuckfrom
+ * @private
+ */
+
+ }, {
+ key: '_removeSticky',
+ value: function _removeSticky(isTop) {
+ var stickTo = this.options.stickTo,
+ stickToTop = stickTo === 'top',
+ css = {},
+ anchorPt = (this.points ? this.points[1] - this.points[0] : this.anchorHeight) - this.elemHeight,
+ mrgn = stickToTop ? 'marginTop' : 'marginBottom',
+ notStuckTo = stickToTop ? 'bottom' : 'top',
+ topOrBottom = isTop ? 'top' : 'bottom';
+
+ css[mrgn] = 0;
+
+ css['bottom'] = 'auto';
+ if (isTop) {
+ css['top'] = 0;
+ } else {
+ css['top'] = anchorPt;
+ }
+
+ css['left'] = '';
+ this.isStuck = false;
+ this.$element.removeClass('is-stuck is-at-' + stickTo).addClass('is-anchored is-at-' + topOrBottom).css(css)
+ /**
+ * Fires when the $element has become anchored.
+ * Namespaced to `top` or `bottom`, e.g. `sticky.zf.unstuckfrom:bottom`
+ * @event Sticky#unstuckfrom
+ */
+ .trigger('sticky.zf.unstuckfrom:' + topOrBottom);
+ }
+
+ /**
+ * Sets the $element and $container sizes for plugin.
+ * Calls `_setBreakPoints`.
+ * @param {Function} cb - optional callback function to fire on completion of `_setBreakPoints`.
+ * @private
+ */
+
+ }, {
+ key: '_setSizes',
+ value: function _setSizes(cb) {
+ this.canStick = Foundation.MediaQuery.atLeast(this.options.stickyOn);
+ if (!this.canStick) {
+ cb();
+ }
+ var _this = this,
+ newElemWidth = this.$container[0].getBoundingClientRect().width,
+ comp = window.getComputedStyle(this.$container[0]),
+ pdng = parseInt(comp['padding-right'], 10);
+
+ if (this.$anchor && this.$anchor.length) {
+ this.anchorHeight = this.$anchor[0].getBoundingClientRect().height;
+ } else {
+ this._parsePoints();
+ }
+
+ this.$element.css({
+ 'max-width': newElemWidth - pdng + 'px'
+ });
+
+ var newContainerHeight = this.$element[0].getBoundingClientRect().height || this.containerHeight;
+ if (this.$element.css("display") == "none") {
+ newContainerHeight = 0;
+ }
+ this.containerHeight = newContainerHeight;
+ this.$container.css({
+ height: newContainerHeight
+ });
+ this.elemHeight = newContainerHeight;
+
+ if (this.isStuck) {
+ this.$element.css({ "left": this.$container.offset().left + parseInt(comp['padding-left'], 10) });
+ }
+
+ this._setBreakPoints(newContainerHeight, function () {
+ if (cb) {
+ cb();
+ }
+ });
+ }
+
+ /**
+ * Sets the upper and lower breakpoints for the element to become sticky/unsticky.
+ * @param {Number} elemHeight - px value for sticky.$element height, calculated by `_setSizes`.
+ * @param {Function} cb - optional callback function to be called on completion.
+ * @private
+ */
+
+ }, {
+ key: '_setBreakPoints',
+ value: function _setBreakPoints(elemHeight, cb) {
+ if (!this.canStick) {
+ if (cb) {
+ cb();
+ } else {
+ return false;
+ }
+ }
+ var mTop = emCalc(this.options.marginTop),
+ mBtm = emCalc(this.options.marginBottom),
+ topPoint = this.points ? this.points[0] : this.$anchor.offset().top,
+ bottomPoint = this.points ? this.points[1] : topPoint + this.anchorHeight,
+
+ // topPoint = this.$anchor.offset().top || this.points[0],
+ // bottomPoint = topPoint + this.anchorHeight || this.points[1],
+ winHeight = window.innerHeight;
+
+ if (this.options.stickTo === 'top') {
+ topPoint -= mTop;
+ bottomPoint -= elemHeight + mTop;
+ } else if (this.options.stickTo === 'bottom') {
+ topPoint -= winHeight - (elemHeight + mBtm);
+ bottomPoint -= winHeight - mBtm;
+ } else {
+ //this would be the stickTo: both option... tricky
+ }
+
+ this.topPoint = topPoint;
+ this.bottomPoint = bottomPoint;
+
+ if (cb) {
+ cb();
+ }
+ }
+
+ /**
+ * Destroys the current sticky element.
+ * Resets the element to the top position first.
+ * Removes event listeners, JS-added css properties and classes, and unwraps the $element if the JS added the $container.
+ * @function
+ */
+
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ this._removeSticky(true);
+
+ this.$element.removeClass(this.options.stickyClass + ' is-anchored is-at-top').css({
+ height: '',
+ top: '',
+ bottom: '',
+ 'max-width': ''
+ }).off('resizeme.zf.trigger');
+ if (this.$anchor && this.$anchor.length) {
+ this.$anchor.off('change.zf.sticky');
+ }
+ $(window).off(this.scrollListener);
+
+ if (this.wasWrapped) {
+ this.$element.unwrap();
+ } else {
+ this.$container.removeClass(this.options.containerClass).css({
+ height: ''
+ });
+ }
+ Foundation.unregisterPlugin(this);
+ }
+ }]);
+
+ return Sticky;
+ }();
+
+ Sticky.defaults = {
+ /**
+ * Customizable container template. Add your own classes for styling and sizing.
+ * @option
+ * @example '&lt;div data-sticky-container class="small-6 columns"&gt;&lt;/div&gt;'
+ */
+ container: '<div data-sticky-container></div>',
+ /**
+ * Location in the view the element sticks to.
+ * @option
+ * @example 'top'
+ */
+ stickTo: 'top',
+ /**
+ * If anchored to a single element, the id of that element.
+ * @option
+ * @example 'exampleId'
+ */
+ anchor: '',
+ /**
+ * If using more than one element as anchor points, the id of the top anchor.
+ * @option
+ * @example 'exampleId:top'
+ */
+ topAnchor: '',
+ /**
+ * If using more than one element as anchor points, the id of the bottom anchor.
+ * @option
+ * @example 'exampleId:bottom'
+ */
+ btmAnchor: '',
+ /**
+ * Margin, in `em`'s to apply to the top of the element when it becomes sticky.
+ * @option
+ * @example 1
+ */
+ marginTop: 1,
+ /**
+ * Margin, in `em`'s to apply to the bottom of the element when it becomes sticky.
+ * @option
+ * @example 1
+ */
+ marginBottom: 1,
+ /**
+ * Breakpoint string that is the minimum screen size an element should become sticky.
+ * @option
+ * @example 'medium'
+ */
+ stickyOn: 'medium',
+ /**
+ * Class applied to sticky element, and removed on destruction. Foundation defaults to `sticky`.
+ * @option
+ * @example 'sticky'
+ */
+ stickyClass: 'sticky',
+ /**
+ * Class applied to sticky container. Foundation defaults to `sticky-container`.
+ * @option
+ * @example 'sticky-container'
+ */
+ containerClass: 'sticky-container',
+ /**
+ * Number of scroll events between the plugin's recalculating sticky points. Setting it to `0` will cause it to recalc every scroll event, setting it to `-1` will prevent recalc on scroll.
+ * @option
+ * @example 50
+ */
+ checkEvery: -1
+ };
+
+ /**
+ * Helper function to calculate em values
+ * @param Number {em} - number of em's to calculate into pixels
+ */
+ function emCalc(em) {
+ return parseInt(window.getComputedStyle(document.body, null).fontSize, 10) * em;
+ }
+
+ // Window exports
+ Foundation.plugin(Sticky, 'Sticky');
+}(jQuery);
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+!function ($) {
+
+ /**
+ * Tabs module.
+ * @module foundation.tabs
+ * @requires foundation.util.keyboard
+ * @requires foundation.util.timerAndImageLoader if tabs contain images
+ */
+
+ var Tabs = function () {
+ /**
+ * Creates a new instance of tabs.
+ * @class
+ * @fires Tabs#init
+ * @param {jQuery} element - jQuery object to make into tabs.
+ * @param {Object} options - Overrides to the default plugin settings.
+ */
+
+ function Tabs(element, options) {
+ _classCallCheck(this, Tabs);
+
+ this.$element = element;
+ this.options = $.extend({}, Tabs.defaults, this.$element.data(), options);
+
+ this._init();
+ Foundation.registerPlugin(this, 'Tabs');
+ Foundation.Keyboard.register('Tabs', {
+ 'ENTER': 'open',
+ 'SPACE': 'open',
+ 'ARROW_RIGHT': 'next',
+ 'ARROW_UP': 'previous',
+ 'ARROW_DOWN': 'next',
+ 'ARROW_LEFT': 'previous'
+ // 'TAB': 'next',
+ // 'SHIFT_TAB': 'previous'
+ });
+ }
+
+ /**
+ * Initializes the tabs by showing and focusing (if autoFocus=true) the preset active tab.
+ * @private
+ */
+
+
+ _createClass(Tabs, [{
+ key: '_init',
+ value: function _init() {
+ var _this = this;
+
+ this.$tabTitles = this.$element.find('.' + this.options.linkClass);
+ this.$tabContent = $('[data-tabs-content="' + this.$element[0].id + '"]');
+
+ this.$tabTitles.each(function () {
+ var $elem = $(this),
+ $link = $elem.find('a'),
+ isActive = $elem.hasClass('is-active'),
+ hash = $link[0].hash.slice(1),
+ linkId = $link[0].id ? $link[0].id : hash + '-label',
+ $tabContent = $('#' + hash);
+
+ $elem.attr({ 'role': 'presentation' });
+
+ $link.attr({
+ 'role': 'tab',
+ 'aria-controls': hash,
+ 'aria-selected': isActive,
+ 'id': linkId
+ });
+
+ $tabContent.attr({
+ 'role': 'tabpanel',
+ 'aria-hidden': !isActive,
+ 'aria-labelledby': linkId
+ });
+
+ if (isActive && _this.options.autoFocus) {
+ $link.focus();
+ }
+ });
+
+ if (this.options.matchHeight) {
+ var $images = this.$tabContent.find('img');
+
+ if ($images.length) {
+ Foundation.onImagesLoaded($images, this._setHeight.bind(this));
+ } else {
+ this._setHeight();
+ }
+ }
+
+ this._events();
+ }
+
+ /**
+ * Adds event handlers for items within the tabs.
+ * @private
+ */
+
+ }, {
+ key: '_events',
+ value: function _events() {
+ this._addKeyHandler();
+ this._addClickHandler();
+ this._setHeightMqHandler = null;
+
+ if (this.options.matchHeight) {
+ this._setHeightMqHandler = this._setHeight.bind(this);
+
+ $(window).on('changed.zf.mediaquery', this._setHeightMqHandler);
+ }
+ }
+
+ /**
+ * Adds click handlers for items within the tabs.
+ * @private
+ */
+
+ }, {
+ key: '_addClickHandler',
+ value: function _addClickHandler() {
+ var _this = this;
+
+ this.$element.off('click.zf.tabs').on('click.zf.tabs', '.' + this.options.linkClass, function (e) {
+ e.preventDefault();
+ e.stopPropagation();
+ if ($(this).hasClass('is-active')) {
+ return;
+ }
+ _this._handleTabChange($(this));
+ });
+ }
+
+ /**
+ * Adds keyboard event handlers for items within the tabs.
+ * @private
+ */
+
+ }, {
+ key: '_addKeyHandler',
+ value: function _addKeyHandler() {
+ var _this = this;
+ var $firstTab = _this.$element.find('li:first-of-type');
+ var $lastTab = _this.$element.find('li:last-of-type');
+
+ this.$tabTitles.off('keydown.zf.tabs').on('keydown.zf.tabs', function (e) {
+ if (e.which === 9) return;
+
+ var $element = $(this),
+ $elements = $element.parent('ul').children('li'),
+ $prevElement,
+ $nextElement;
+
+ $elements.each(function (i) {
+ if ($(this).is($element)) {
+ if (_this.options.wrapOnKeys) {
+ $prevElement = i === 0 ? $elements.last() : $elements.eq(i - 1);
+ $nextElement = i === $elements.length - 1 ? $elements.first() : $elements.eq(i + 1);
+ } else {
+ $prevElement = $elements.eq(Math.max(0, i - 1));
+ $nextElement = $elements.eq(Math.min(i + 1, $elements.length - 1));
+ }
+ return;
+ }
+ });
+
+ // handle keyboard event with keyboard util
+ Foundation.Keyboard.handleKey(e, 'Tabs', {
+ open: function () {
+ $element.find('[role="tab"]').focus();
+ _this._handleTabChange($element);
+ },
+ previous: function () {
+ $prevElement.find('[role="tab"]').focus();
+ _this._handleTabChange($prevElement);
+ },
+ next: function () {
+ $nextElement.find('[role="tab"]').focus();
+ _this._handleTabChange($nextElement);
+ },
+ handled: function () {
+ e.stopPropagation();
+ e.preventDefault();
+ }
+ });
+ });
+ }
+
+ /**
+ * Opens the tab `$targetContent` defined by `$target`.
+ * @param {jQuery} $target - Tab to open.
+ * @fires Tabs#change
+ * @function
+ */
+
+ }, {
+ key: '_handleTabChange',
+ value: function _handleTabChange($target) {
+ var $tabLink = $target.find('[role="tab"]'),
+ hash = $tabLink[0].hash,
+ $targetContent = this.$tabContent.find(hash),
+ $oldTab = this.$element.find('.' + this.options.linkClass + '.is-active').removeClass('is-active').find('[role="tab"]').attr({ 'aria-selected': 'false' });
+
+ $('#' + $oldTab.attr('aria-controls')).removeClass('is-active').attr({ 'aria-hidden': 'true' });
+
+ $target.addClass('is-active');
+
+ $tabLink.attr({ 'aria-selected': 'true' });
+
+ $targetContent.addClass('is-active').attr({ 'aria-hidden': 'false' });
+
+ /**
+ * Fires when the plugin has successfully changed tabs.
+ * @event Tabs#change
+ */
+ this.$element.trigger('change.zf.tabs', [$target]);
+ }
+
+ /**
+ * Public method for selecting a content pane to display.
+ * @param {jQuery | String} elem - jQuery object or string of the id of the pane to display.
+ * @function
+ */
+
+ }, {
+ key: 'selectTab',
+ value: function selectTab(elem) {
+ var idStr;
+
+ if (typeof elem === 'object') {
+ idStr = elem[0].id;
+ } else {
+ idStr = elem;
+ }
+
+ if (idStr.indexOf('#') < 0) {
+ idStr = '#' + idStr;
+ }
+
+ var $target = this.$tabTitles.find('[href="' + idStr + '"]').parent('.' + this.options.linkClass);
+
+ this._handleTabChange($target);
+ }
+ }, {
+ key: '_setHeight',
+
+ /**
+ * Sets the height of each panel to the height of the tallest panel.
+ * If enabled in options, gets called on media query change.
+ * If loading content via external source, can be called directly or with _reflow.
+ * @function
+ * @private
+ */
+ value: function _setHeight() {
+ var max = 0;
+ this.$tabContent.find('.' + this.options.panelClass).css('height', '').each(function () {
+ var panel = $(this),
+ isActive = panel.hasClass('is-active');
+
+ if (!isActive) {
+ panel.css({ 'visibility': 'hidden', 'display': 'block' });
+ }
+
+ var temp = this.getBoundingClientRect().height;
+
+ if (!isActive) {
+ panel.css({
+ 'visibility': '',
+ 'display': ''
+ });
+ }
+
+ max = temp > max ? temp : max;
+ }).css('height', max + 'px');
+ }
+
+ /**
+ * Destroys an instance of an tabs.
+ * @fires Tabs#destroyed
+ */
+
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ this.$element.find('.' + this.options.linkClass).off('.zf.tabs').hide().end().find('.' + this.options.panelClass).hide();
+
+ if (this.options.matchHeight) {
+ if (this._setHeightMqHandler != null) {
+ $(window).off('changed.zf.mediaquery', this._setHeightMqHandler);
+ }
+ }
+
+ Foundation.unregisterPlugin(this);
+ }
+ }]);
+
+ return Tabs;
+ }();
+
+ Tabs.defaults = {
+ /**
+ * Allows the window to scroll to content of active pane on load if set to true.
+ * @option
+ * @example false
+ */
+ autoFocus: false,
+
+ /**
+ * Allows keyboard input to 'wrap' around the tab links.
+ * @option
+ * @example true
+ */
+ wrapOnKeys: true,
+
+ /**
+ * Allows the tab content panes to match heights if set to true.
+ * @option
+ * @example false
+ */
+ matchHeight: false,
+
+ /**
+ * Class applied to `li`'s in tab link list.
+ * @option
+ * @example 'tabs-title'
+ */
+ linkClass: 'tabs-title',
+
+ /**
+ * Class applied to the content containers.
+ * @option
+ * @example 'tabs-panel'
+ */
+ panelClass: 'tabs-panel'
+ };
+
+ function checkClass($elem) {
+ return $elem.hasClass('is-active');
+ }
+
+ // Window exports
+ Foundation.plugin(Tabs, 'Tabs');
+}(jQuery);
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+!function ($) {
+
+ /**
+ * Toggler module.
+ * @module foundation.toggler
+ * @requires foundation.util.motion
+ * @requires foundation.util.triggers
+ */
+
+ var Toggler = function () {
+ /**
+ * Creates a new instance of Toggler.
+ * @class
+ * @fires Toggler#init
+ * @param {Object} element - jQuery object to add the trigger to.
+ * @param {Object} options - Overrides to the default plugin settings.
+ */
+
+ function Toggler(element, options) {
+ _classCallCheck(this, Toggler);
+
+ this.$element = element;
+ this.options = $.extend({}, Toggler.defaults, element.data(), options);
+ this.className = '';
+
+ this._init();
+ this._events();
+
+ Foundation.registerPlugin(this, 'Toggler');
+ }
+
+ /**
+ * Initializes the Toggler plugin by parsing the toggle class from data-toggler, or animation classes from data-animate.
+ * @function
+ * @private
+ */
+
+
+ _createClass(Toggler, [{
+ key: '_init',
+ value: function _init() {
+ var input;
+ // Parse animation classes if they were set
+ if (this.options.animate) {
+ input = this.options.animate.split(' ');
+
+ this.animationIn = input[0];
+ this.animationOut = input[1] || null;
+ }
+ // Otherwise, parse toggle class
+ else {
+ input = this.$element.data('toggler');
+ // Allow for a . at the beginning of the string
+ this.className = input[0] === '.' ? input.slice(1) : input;
+ }
+
+ // Add ARIA attributes to triggers
+ var id = this.$element[0].id;
+ $('[data-open="' + id + '"], [data-close="' + id + '"], [data-toggle="' + id + '"]').attr('aria-controls', id);
+ // If the target is hidden, add aria-hidden
+ this.$element.attr('aria-expanded', this.$element.is(':hidden') ? false : true);
+ }
+
+ /**
+ * Initializes events for the toggle trigger.
+ * @function
+ * @private
+ */
+
+ }, {
+ key: '_events',
+ value: function _events() {
+ this.$element.off('toggle.zf.trigger').on('toggle.zf.trigger', this.toggle.bind(this));
+ }
+
+ /**
+ * Toggles the target class on the target element. An event is fired from the original trigger depending on if the resultant state was "on" or "off".
+ * @function
+ * @fires Toggler#on
+ * @fires Toggler#off
+ */
+
+ }, {
+ key: 'toggle',
+ value: function toggle() {
+ this[this.options.animate ? '_toggleAnimate' : '_toggleClass']();
+ }
+ }, {
+ key: '_toggleClass',
+ value: function _toggleClass() {
+ this.$element.toggleClass(this.className);
+
+ var isOn = this.$element.hasClass(this.className);
+ if (isOn) {
+ /**
+ * Fires if the target element has the class after a toggle.
+ * @event Toggler#on
+ */
+ this.$element.trigger('on.zf.toggler');
+ } else {
+ /**
+ * Fires if the target element does not have the class after a toggle.
+ * @event Toggler#off
+ */
+ this.$element.trigger('off.zf.toggler');
+ }
+
+ this._updateARIA(isOn);
+ }
+ }, {
+ key: '_toggleAnimate',
+ value: function _toggleAnimate() {
+ var _this = this;
+
+ if (this.$element.is(':hidden')) {
+ Foundation.Motion.animateIn(this.$element, this.animationIn, function () {
+ _this._updateARIA(true);
+ this.trigger('on.zf.toggler');
+ });
+ } else {
+ Foundation.Motion.animateOut(this.$element, this.animationOut, function () {
+ _this._updateARIA(false);
+ this.trigger('off.zf.toggler');
+ });
+ }
+ }
+ }, {
+ key: '_updateARIA',
+ value: function _updateARIA(isOn) {
+ this.$element.attr('aria-expanded', isOn ? true : false);
+ }
+
+ /**
+ * Destroys the instance of Toggler on the element.
+ * @function
+ */
+
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ this.$element.off('.zf.toggler');
+ Foundation.unregisterPlugin(this);
+ }
+ }]);
+
+ return Toggler;
+ }();
+
+ Toggler.defaults = {
+ /**
+ * Tells the plugin if the element should animated when toggled.
+ * @option
+ * @example false
+ */
+ animate: false
+ };
+
+ // Window exports
+ Foundation.plugin(Toggler, 'Toggler');
+}(jQuery);
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+!function ($) {
+
+ /**
+ * Tooltip module.
+ * @module foundation.tooltip
+ * @requires foundation.util.box
+ * @requires foundation.util.triggers
+ */
+
+ var Tooltip = function () {
+ /**
+ * Creates a new instance of a Tooltip.
+ * @class
+ * @fires Tooltip#init
+ * @param {jQuery} element - jQuery object to attach a tooltip to.
+ * @param {Object} options - object to extend the default configuration.
+ */
+
+ function Tooltip(element, options) {
+ _classCallCheck(this, Tooltip);
+
+ this.$element = element;
+ this.options = $.extend({}, Tooltip.defaults, this.$element.data(), options);
+
+ this.isActive = false;
+ this.isClick = false;
+ this._init();
+
+ Foundation.registerPlugin(this, 'Tooltip');
+ }
+
+ /**
+ * Initializes the tooltip by setting the creating the tip element, adding it's text, setting private variables and setting attributes on the anchor.
+ * @private
+ */
+
+
+ _createClass(Tooltip, [{
+ key: '_init',
+ value: function _init() {
+ var elemId = this.$element.attr('aria-describedby') || Foundation.GetYoDigits(6, 'tooltip');
+
+ this.options.positionClass = this.options.positionClass || this._getPositionClass(this.$element);
+ this.options.tipText = this.options.tipText || this.$element.attr('title');
+ this.template = this.options.template ? $(this.options.template) : this._buildTemplate(elemId);
+
+ this.template.appendTo(document.body).text(this.options.tipText).hide();
+
+ this.$element.attr({
+ 'title': '',
+ 'aria-describedby': elemId,
+ 'data-yeti-box': elemId,
+ 'data-toggle': elemId,
+ 'data-resize': elemId
+ }).addClass(this.triggerClass);
+
+ //helper variables to track movement on collisions
+ this.usedPositions = [];
+ this.counter = 4;
+ this.classChanged = false;
+
+ this._events();
+ }
+
+ /**
+ * Grabs the current positioning class, if present, and returns the value or an empty string.
+ * @private
+ */
+
+ }, {
+ key: '_getPositionClass',
+ value: function _getPositionClass(element) {
+ if (!element) {
+ return '';
+ }
+ // var position = element.attr('class').match(/top|left|right/g);
+ var position = element[0].className.match(/\b(top|left|right)\b/g);
+ position = position ? position[0] : '';
+ return position;
+ }
+ }, {
+ key: '_buildTemplate',
+
+ /**
+ * builds the tooltip element, adds attributes, and returns the template.
+ * @private
+ */
+ value: function _buildTemplate(id) {
+ var templateClasses = (this.options.tooltipClass + ' ' + this.options.positionClass + ' ' + this.options.templateClasses).trim();
+ var $template = $('<div></div>').addClass(templateClasses).attr({
+ 'role': 'tooltip',
+ 'aria-hidden': true,
+ 'data-is-active': false,
+ 'data-is-focus': false,
+ 'id': id
+ });
+ return $template;
+ }
+
+ /**
+ * Function that gets called if a collision event is detected.
+ * @param {String} position - positioning class to try
+ * @private
+ */
+
+ }, {
+ key: '_reposition',
+ value: function _reposition(position) {
+ this.usedPositions.push(position ? position : 'bottom');
+
+ //default, try switching to opposite side
+ if (!position && this.usedPositions.indexOf('top') < 0) {
+ this.template.addClass('top');
+ } else if (position === 'top' && this.usedPositions.indexOf('bottom') < 0) {
+ this.template.removeClass(position);
+ } else if (position === 'left' && this.usedPositions.indexOf('right') < 0) {
+ this.template.removeClass(position).addClass('right');
+ } else if (position === 'right' && this.usedPositions.indexOf('left') < 0) {
+ this.template.removeClass(position).addClass('left');
+ }
+
+ //if default change didn't work, try bottom or left first
+ else if (!position && this.usedPositions.indexOf('top') > -1 && this.usedPositions.indexOf('left') < 0) {
+ this.template.addClass('left');
+ } else if (position === 'top' && this.usedPositions.indexOf('bottom') > -1 && this.usedPositions.indexOf('left') < 0) {
+ this.template.removeClass(position).addClass('left');
+ } else if (position === 'left' && this.usedPositions.indexOf('right') > -1 && this.usedPositions.indexOf('bottom') < 0) {
+ this.template.removeClass(position);
+ } else if (position === 'right' && this.usedPositions.indexOf('left') > -1 && this.usedPositions.indexOf('bottom') < 0) {
+ this.template.removeClass(position);
+ }
+ //if nothing cleared, set to bottom
+ else {
+ this.template.removeClass(position);
+ }
+ this.classChanged = true;
+ this.counter--;
+ }
+
+ /**
+ * sets the position class of an element and recursively calls itself until there are no more possible positions to attempt, or the tooltip element is no longer colliding.
+ * if the tooltip is larger than the screen width, default to full width - any user selected margin
+ * @private
+ */
+
+ }, {
+ key: '_setPosition',
+ value: function _setPosition() {
+ var position = this._getPositionClass(this.template),
+ $tipDims = Foundation.Box.GetDimensions(this.template),
+ $anchorDims = Foundation.Box.GetDimensions(this.$element),
+ direction = position === 'left' ? 'left' : position === 'right' ? 'left' : 'top',
+ param = direction === 'top' ? 'height' : 'width',
+ offset = param === 'height' ? this.options.vOffset : this.options.hOffset,
+ _this = this;
+
+ if ($tipDims.width >= $tipDims.windowDims.width || !this.counter && !Foundation.Box.ImNotTouchingYou(this.template)) {
+ this.template.offset(Foundation.Box.GetOffsets(this.template, this.$element, 'center bottom', this.options.vOffset, this.options.hOffset, true)).css({
+ // this.$element.offset(Foundation.GetOffsets(this.template, this.$element, 'center bottom', this.options.vOffset, this.options.hOffset, true)).css({
+ 'width': $anchorDims.windowDims.width - this.options.hOffset * 2,
+ 'height': 'auto'
+ });
+ return false;
+ }
+
+ this.template.offset(Foundation.Box.GetOffsets(this.template, this.$element, 'center ' + (position || 'bottom'), this.options.vOffset, this.options.hOffset));
+
+ while (!Foundation.Box.ImNotTouchingYou(this.template) && this.counter) {
+ this._reposition(position);
+ this._setPosition();
+ }
+ }
+
+ /**
+ * reveals the tooltip, and fires an event to close any other open tooltips on the page
+ * @fires Tooltip#closeme
+ * @fires Tooltip#show
+ * @function
+ */
+
+ }, {
+ key: 'show',
+ value: function show() {
+ if (this.options.showOn !== 'all' && !Foundation.MediaQuery.atLeast(this.options.showOn)) {
+ // console.error('The screen is too small to display this tooltip');
+ return false;
+ }
+
+ var _this = this;
+ this.template.css('visibility', 'hidden').show();
+ this._setPosition();
+
+ /**
+ * Fires to close all other open tooltips on the page
+ * @event Closeme#tooltip
+ */
+ this.$element.trigger('closeme.zf.tooltip', this.template.attr('id'));
+
+ this.template.attr({
+ 'data-is-active': true,
+ 'aria-hidden': false
+ });
+ _this.isActive = true;
+ // console.log(this.template);
+ this.template.stop().hide().css('visibility', '').fadeIn(this.options.fadeInDuration, function () {
+ //maybe do stuff?
+ });
+ /**
+ * Fires when the tooltip is shown
+ * @event Tooltip#show
+ */
+ this.$element.trigger('show.zf.tooltip');
+ }
+
+ /**
+ * Hides the current tooltip, and resets the positioning class if it was changed due to collision
+ * @fires Tooltip#hide
+ * @function
+ */
+
+ }, {
+ key: 'hide',
+ value: function hide() {
+ // console.log('hiding', this.$element.data('yeti-box'));
+ var _this = this;
+ this.template.stop().attr({
+ 'aria-hidden': true,
+ 'data-is-active': false
+ }).fadeOut(this.options.fadeOutDuration, function () {
+ _this.isActive = false;
+ _this.isClick = false;
+ if (_this.classChanged) {
+ _this.template.removeClass(_this._getPositionClass(_this.template)).addClass(_this.options.positionClass);
+
+ _this.usedPositions = [];
+ _this.counter = 4;
+ _this.classChanged = false;
+ }
+ });
+ /**
+ * fires when the tooltip is hidden
+ * @event Tooltip#hide
+ */
+ this.$element.trigger('hide.zf.tooltip');
+ }
+
+ /**
+ * adds event listeners for the tooltip and its anchor
+ * TODO combine some of the listeners like focus and mouseenter, etc.
+ * @private
+ */
+
+ }, {
+ key: '_events',
+ value: function _events() {
+ var _this = this;
+ var $template = this.template;
+ var isFocus = false;
+
+ if (!this.options.disableHover) {
+
+ this.$element.on('mouseenter.zf.tooltip', function (e) {
+ if (!_this.isActive) {
+ _this.timeout = setTimeout(function () {
+ _this.show();
+ }, _this.options.hoverDelay);
+ }
+ }).on('mouseleave.zf.tooltip', function (e) {
+ clearTimeout(_this.timeout);
+ if (!isFocus || _this.isClick && !_this.options.clickOpen) {
+ _this.hide();
+ }
+ });
+ }
+
+ if (this.options.clickOpen) {
+ this.$element.on('mousedown.zf.tooltip', function (e) {
+ e.stopImmediatePropagation();
+ if (_this.isClick) {
+ //_this.hide();
+ // _this.isClick = false;
+ } else {
+ _this.isClick = true;
+ if ((_this.options.disableHover || !_this.$element.attr('tabindex')) && !_this.isActive) {
+ _this.show();
+ }
+ }
+ });
+ } else {
+ this.$element.on('mousedown.zf.tooltip', function (e) {
+ e.stopImmediatePropagation();
+ _this.isClick = true;
+ });
+ }
+
+ if (!this.options.disableForTouch) {
+ this.$element.on('tap.zf.tooltip touchend.zf.tooltip', function (e) {
+ _this.isActive ? _this.hide() : _this.show();
+ });
+ }
+
+ this.$element.on({
+ // 'toggle.zf.trigger': this.toggle.bind(this),
+ // 'close.zf.trigger': this.hide.bind(this)
+ 'close.zf.trigger': this.hide.bind(this)
+ });
+
+ this.$element.on('focus.zf.tooltip', function (e) {
+ isFocus = true;
+ if (_this.isClick) {
+ // If we're not showing open on clicks, we need to pretend a click-launched focus isn't
+ // a real focus, otherwise on hover and come back we get bad behavior
+ if (!_this.options.clickOpen) {
+ isFocus = false;
+ }
+ return false;
+ } else {
+ _this.show();
+ }
+ }).on('focusout.zf.tooltip', function (e) {
+ isFocus = false;
+ _this.isClick = false;
+ _this.hide();
+ }).on('resizeme.zf.trigger', function () {
+ if (_this.isActive) {
+ _this._setPosition();
+ }
+ });
+ }
+
+ /**
+ * adds a toggle method, in addition to the static show() & hide() functions
+ * @function
+ */
+
+ }, {
+ key: 'toggle',
+ value: function toggle() {
+ if (this.isActive) {
+ this.hide();
+ } else {
+ this.show();
+ }
+ }
+
+ /**
+ * Destroys an instance of tooltip, removes template element from the view.
+ * @function
+ */
+
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ this.$element.attr('title', this.template.text()).off('.zf.trigger .zf.tootip')
+ // .removeClass('has-tip')
+ .removeAttr('aria-describedby').removeAttr('data-yeti-box').removeAttr('data-toggle').removeAttr('data-resize');
+
+ this.template.remove();
+
+ Foundation.unregisterPlugin(this);
+ }
+ }]);
+
+ return Tooltip;
+ }();
+
+ Tooltip.defaults = {
+ disableForTouch: false,
+ /**
+ * Time, in ms, before a tooltip should open on hover.
+ * @option
+ * @example 200
+ */
+ hoverDelay: 200,
+ /**
+ * Time, in ms, a tooltip should take to fade into view.
+ * @option
+ * @example 150
+ */
+ fadeInDuration: 150,
+ /**
+ * Time, in ms, a tooltip should take to fade out of view.
+ * @option
+ * @example 150
+ */
+ fadeOutDuration: 150,
+ /**
+ * Disables hover events from opening the tooltip if set to true
+ * @option
+ * @example false
+ */
+ disableHover: false,
+ /**
+ * Optional addtional classes to apply to the tooltip template on init.
+ * @option
+ * @example 'my-cool-tip-class'
+ */
+ templateClasses: '',
+ /**
+ * Non-optional class added to tooltip templates. Foundation default is 'tooltip'.
+ * @option
+ * @example 'tooltip'
+ */
+ tooltipClass: 'tooltip',
+ /**
+ * Class applied to the tooltip anchor element.
+ * @option
+ * @example 'has-tip'
+ */
+ triggerClass: 'has-tip',
+ /**
+ * Minimum breakpoint size at which to open the tooltip.
+ * @option
+ * @example 'small'
+ */
+ showOn: 'small',
+ /**
+ * Custom template to be used to generate markup for tooltip.
+ * @option
+ * @example '&lt;div class="tooltip"&gt;&lt;/div&gt;'
+ */
+ template: '',
+ /**
+ * Text displayed in the tooltip template on open.
+ * @option
+ * @example 'Some cool space fact here.'
+ */
+ tipText: '',
+ touchCloseText: 'Tap to close.',
+ /**
+ * Allows the tooltip to remain open if triggered with a click or touch event.
+ * @option
+ * @example true
+ */
+ clickOpen: true,
+ /**
+ * Additional positioning classes, set by the JS
+ * @option
+ * @example 'top'
+ */
+ positionClass: '',
+ /**
+ * Distance, in pixels, the template should push away from the anchor on the Y axis.
+ * @option
+ * @example 10
+ */
+ vOffset: 10,
+ /**
+ * Distance, in pixels, the template should push away from the anchor on the X axis, if aligned to a side.
+ * @option
+ * @example 12
+ */
+ hOffset: 12
+ };
+
+ /**
+ * TODO utilize resize event trigger
+ */
+
+ // Window exports
+ Foundation.plugin(Tooltip, 'Tooltip');
+}(jQuery);
diff --git a/library/foundation/js/foundation/foundation.abide.js b/library/foundation/js/foundation/foundation.abide.js
deleted file mode 100644
index c84960c2c..000000000
--- a/library/foundation/js/foundation/foundation.abide.js
+++ /dev/null
@@ -1,408 +0,0 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.abide = {
- name : 'abide',
-
- version : '5.5.2',
-
- settings : {
- live_validate : true,
- validate_on_blur : true,
- // validate_on: 'tab', // tab (when user tabs between fields), change (input changes), manual (call custom events)
- focus_on_invalid : true,
- error_labels : true, // labels with a for="inputId" will recieve an `error` class
- error_class : 'error',
- timeout : 1000,
- patterns : {
- alpha : /^[a-zA-Z]+$/,
- alpha_numeric : /^[a-zA-Z0-9]+$/,
- integer : /^[-+]?\d+$/,
- number : /^[-+]?\d*(?:[\.\,]\d+)?$/,
-
- // amex, visa, diners
- card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,
- cvv : /^([0-9]){3,4}$/,
-
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address
- email : /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,
-
- // http://blogs.lse.ac.uk/lti/2008/04/23/a-regular-expression-to-match-any-url/
- url: /^(https?|ftp|file|ssh):\/\/([-;:&=\+\$,\w]+@{1})?([-A-Za-z0-9\.]+)+:?(\d+)?((\/[-\+~%\/\.\w]+)?\??([-\+=&;%@\.\w]+)?#?([\w]+)?)?/,
- // abc.de
- domain : /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,
-
- datetime : /^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,
- // YYYY-MM-DD
- date : /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,
- // HH:MM:SS
- time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,
- dateISO : /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,
- // MM/DD/YYYY
- month_day_year : /^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,
- // DD/MM/YYYY
- day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,
-
- // #FFF or #FFFFFF
- color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
- },
- validators : {
- equalTo : function (el, required, parent) {
- var from = document.getElementById(el.getAttribute(this.add_namespace('data-equalto'))).value,
- to = el.value,
- valid = (from === to);
-
- return valid;
- }
- }
- },
-
- timer : null,
-
- init : function (scope, method, options) {
- this.bindings(method, options);
- },
-
- events : function (scope) {
- var self = this,
- form = self.S(scope).attr('novalidate', 'novalidate'),
- settings = form.data(this.attr_name(true) + '-init') || {};
-
- this.invalid_attr = this.add_namespace('data-invalid');
-
- function validate(originalSelf, e) {
- clearTimeout(self.timer);
- self.timer = setTimeout(function () {
- self.validate([originalSelf], e);
- }.bind(originalSelf), settings.timeout);
- }
-
-
- form
- .off('.abide')
- .on('submit.fndtn.abide', function (e) {
- var is_ajax = /ajax/i.test(self.S(this).attr(self.attr_name()));
- return self.validate(self.S(this).find('input, textarea, select').not(":hidden, [data-abide-ignore]").get(), e, is_ajax);
- })
- .on('validate.fndtn.abide', function (e) {
- if (settings.validate_on === 'manual') {
- self.validate([e.target], e);
- }
- })
- .on('reset', function (e) {
- return self.reset($(this), e);
- })
- .find('input, textarea, select').not(":hidden, [data-abide-ignore]")
- .off('.abide')
- .on('blur.fndtn.abide change.fndtn.abide', function (e) {
- // old settings fallback
- // will be deprecated with F6 release
- if (settings.validate_on_blur && settings.validate_on_blur === true) {
- validate(this, e);
- }
- // new settings combining validate options into one setting
- if (settings.validate_on === 'change') {
- validate(this, e);
- }
- })
- .on('keydown.fndtn.abide', function (e) {
- // old settings fallback
- // will be deprecated with F6 release
- if (settings.live_validate && settings.live_validate === true && e.which != 9) {
- validate(this, e);
- }
- // new settings combining validate options into one setting
- if (settings.validate_on === 'tab' && e.which === 9) {
- validate(this, e);
- }
- else if (settings.validate_on === 'change') {
- validate(this, e);
- }
- })
- .on('focus', function (e) {
- if (navigator.userAgent.match(/iPad|iPhone|Android|BlackBerry|Windows Phone|webOS/i)) {
- $('html, body').animate({
- scrollTop: $(e.target).offset().top
- }, 100);
- }
- });
- },
-
- reset : function (form, e) {
- var self = this;
- form.removeAttr(self.invalid_attr);
-
- $('[' + self.invalid_attr + ']', form).removeAttr(self.invalid_attr);
- $('.' + self.settings.error_class, form).not('small').removeClass(self.settings.error_class);
- $(':input', form).not(':button, :submit, :reset, :hidden, [data-abide-ignore]').val('').removeAttr(self.invalid_attr);
- },
-
- validate : function (els, e, is_ajax) {
- var validations = this.parse_patterns(els),
- validation_count = validations.length,
- form = this.S(els[0]).closest('form'),
- submit_event = /submit/.test(e.type);
-
- // Has to count up to make sure the focus gets applied to the top error
- for (var i = 0; i < validation_count; i++) {
- if (!validations[i] && (submit_event || is_ajax)) {
- if (this.settings.focus_on_invalid) {
- els[i].focus();
- }
- form.trigger('invalid.fndtn.abide');
- this.S(els[i]).closest('form').attr(this.invalid_attr, '');
- return false;
- }
- }
-
- if (submit_event || is_ajax) {
- form.trigger('valid.fndtn.abide');
- }
-
- form.removeAttr(this.invalid_attr);
-
- if (is_ajax) {
- return false;
- }
-
- return true;
- },
-
- parse_patterns : function (els) {
- var i = els.length,
- el_patterns = [];
-
- while (i--) {
- el_patterns.push(this.pattern(els[i]));
- }
-
- return this.check_validation_and_apply_styles(el_patterns);
- },
-
- pattern : function (el) {
- var type = el.getAttribute('type'),
- required = typeof el.getAttribute('required') === 'string';
-
- var pattern = el.getAttribute('pattern') || '';
-
- if (this.settings.patterns.hasOwnProperty(pattern) && pattern.length > 0) {
- return [el, this.settings.patterns[pattern], required];
- } else if (pattern.length > 0) {
- return [el, new RegExp(pattern), required];
- }
-
- if (this.settings.patterns.hasOwnProperty(type)) {
- return [el, this.settings.patterns[type], required];
- }
-
- pattern = /.*/;
-
- return [el, pattern, required];
- },
-
- // TODO: Break this up into smaller methods, getting hard to read.
- check_validation_and_apply_styles : function (el_patterns) {
- var i = el_patterns.length,
- validations = [],
- form = this.S(el_patterns[0][0]).closest('[data-' + this.attr_name(true) + ']'),
- settings = form.data(this.attr_name(true) + '-init') || {};
- while (i--) {
- var el = el_patterns[i][0],
- required = el_patterns[i][2],
- value = el.value.trim(),
- direct_parent = this.S(el).parent(),
- validator = el.getAttribute(this.add_namespace('data-abide-validator')),
- is_radio = el.type === 'radio',
- is_checkbox = el.type === 'checkbox',
- label = this.S('label[for="' + el.getAttribute('id') + '"]'),
- valid_length = (required) ? (el.value.length > 0) : true,
- el_validations = [];
-
- var parent, valid;
-
- // support old way to do equalTo validations
- if (el.getAttribute(this.add_namespace('data-equalto'))) { validator = 'equalTo' }
-
- if (!direct_parent.is('label')) {
- parent = direct_parent;
- } else {
- parent = direct_parent.parent();
- }
-
- if (is_radio && required) {
- el_validations.push(this.valid_radio(el, required));
- } else if (is_checkbox && required) {
- el_validations.push(this.valid_checkbox(el, required));
-
- } else if (validator) {
- // Validate using each of the specified (space-delimited) validators.
- var validators = validator.split(' ');
- var last_valid = true, all_valid = true;
- for (var iv = 0; iv < validators.length; iv++) {
- valid = this.settings.validators[validators[iv]].apply(this, [el, required, parent])
- el_validations.push(valid);
- all_valid = valid && last_valid;
- last_valid = valid;
- }
- if (all_valid) {
- this.S(el).removeAttr(this.invalid_attr);
- parent.removeClass('error');
- if (label.length > 0 && this.settings.error_labels) {
- label.removeClass(this.settings.error_class).removeAttr('role');
- }
- $(el).triggerHandler('valid');
- } else {
- this.S(el).attr(this.invalid_attr, '');
- parent.addClass('error');
- if (label.length > 0 && this.settings.error_labels) {
- label.addClass(this.settings.error_class).attr('role', 'alert');
- }
- $(el).triggerHandler('invalid');
- }
- } else {
-
- if (el_patterns[i][1].test(value) && valid_length ||
- !required && el.value.length < 1 || $(el).attr('disabled')) {
- el_validations.push(true);
- } else {
- el_validations.push(false);
- }
-
- el_validations = [el_validations.every(function (valid) {return valid;})];
- if (el_validations[0]) {
- this.S(el).removeAttr(this.invalid_attr);
- el.setAttribute('aria-invalid', 'false');
- el.removeAttribute('aria-describedby');
- parent.removeClass(this.settings.error_class);
- if (label.length > 0 && this.settings.error_labels) {
- label.removeClass(this.settings.error_class).removeAttr('role');
- }
- $(el).triggerHandler('valid');
- } else {
- this.S(el).attr(this.invalid_attr, '');
- el.setAttribute('aria-invalid', 'true');
-
- // Try to find the error associated with the input
- var errorElem = parent.find('small.' + this.settings.error_class, 'span.' + this.settings.error_class);
- var errorID = errorElem.length > 0 ? errorElem[0].id : '';
- if (errorID.length > 0) {
- el.setAttribute('aria-describedby', errorID);
- }
-
- // el.setAttribute('aria-describedby', $(el).find('.error')[0].id);
- parent.addClass(this.settings.error_class);
- if (label.length > 0 && this.settings.error_labels) {
- label.addClass(this.settings.error_class).attr('role', 'alert');
- }
- $(el).triggerHandler('invalid');
- }
- }
- validations = validations.concat(el_validations);
- }
- return validations;
- },
-
- valid_checkbox : function (el, required) {
- var el = this.S(el),
- valid = (el.is(':checked') || !required || el.get(0).getAttribute('disabled'));
-
- if (valid) {
- el.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
- $(el).triggerHandler('valid');
- } else {
- el.attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
- $(el).triggerHandler('invalid');
- }
-
- return valid;
- },
-
- valid_radio : function (el, required) {
- var name = el.getAttribute('name'),
- group = this.S(el).closest('[data-' + this.attr_name(true) + ']').find("[name='" + name + "']"),
- count = group.length,
- valid = false,
- disabled = false;
-
- // Has to count up to make sure the focus gets applied to the top error
- for (var i=0; i < count; i++) {
- if( group[i].getAttribute('disabled') ){
- disabled=true;
- valid=true;
- } else {
- if (group[i].checked){
- valid = true;
- } else {
- if( disabled ){
- valid = false;
- }
- }
- }
- }
-
- // Has to count up to make sure the focus gets applied to the top error
- for (var i = 0; i < count; i++) {
- if (valid) {
- this.S(group[i]).removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
- $(group[i]).triggerHandler('valid');
- } else {
- this.S(group[i]).attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
- $(group[i]).triggerHandler('invalid');
- }
- }
-
- return valid;
- },
-
- valid_equal : function (el, required, parent) {
- var from = document.getElementById(el.getAttribute(this.add_namespace('data-equalto'))).value,
- to = el.value,
- valid = (from === to);
-
- if (valid) {
- this.S(el).removeAttr(this.invalid_attr);
- parent.removeClass(this.settings.error_class);
- if (label.length > 0 && settings.error_labels) {
- label.removeClass(this.settings.error_class);
- }
- } else {
- this.S(el).attr(this.invalid_attr, '');
- parent.addClass(this.settings.error_class);
- if (label.length > 0 && settings.error_labels) {
- label.addClass(this.settings.error_class);
- }
- }
-
- return valid;
- },
-
- valid_oneof : function (el, required, parent, doNotValidateOthers) {
- var el = this.S(el),
- others = this.S('[' + this.add_namespace('data-oneof') + ']'),
- valid = others.filter(':checked').length > 0;
-
- if (valid) {
- el.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
- } else {
- el.attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
- }
-
- if (!doNotValidateOthers) {
- var _this = this;
- others.each(function () {
- _this.valid_oneof.call(_this, this, null, null, true);
- });
- }
-
- return valid;
- },
-
- reflow : function(scope, options) {
- var self = this,
- form = self.S('[' + this.attr_name() + ']').attr('novalidate', 'novalidate');
- self.S(form).each(function (idx, el) {
- self.events(el);
- });
- }
- };
-}(jQuery, window, window.document));
diff --git a/library/foundation/js/foundation/foundation.accordion.js b/library/foundation/js/foundation/foundation.accordion.js
deleted file mode 100644
index 898ae8510..000000000
--- a/library/foundation/js/foundation/foundation.accordion.js
+++ /dev/null
@@ -1,88 +0,0 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.accordion = {
- name : 'accordion',
-
- version : '5.5.2',
-
- settings : {
- content_class : 'content',
- active_class : 'active',
- multi_expand : false,
- toggleable : true,
- callback : function () {}
- },
-
- init : function (scope, method, options) {
- this.bindings(method, options);
- },
-
- events : function (instance) {
- var self = this;
- var S = this.S;
- self.create(this.S(instance));
-
- S(this.scope)
- .off('.fndtn.accordion')
- .on('click.fndtn.accordion', '[' + this.attr_name() + '] > dd > a, [' + this.attr_name() + '] > li > a', function (e) {
- var accordion = S(this).closest('[' + self.attr_name() + ']'),
- groupSelector = self.attr_name() + '=' + accordion.attr(self.attr_name()),
- settings = accordion.data(self.attr_name(true) + '-init') || self.settings,
- target = S('#' + this.href.split('#')[1]),
- aunts = $('> dd, > li', accordion),
- siblings = aunts.children('.' + settings.content_class),
- active_content = siblings.filter('.' + settings.active_class);
-
- e.preventDefault();
-
- if (accordion.attr(self.attr_name())) {
- siblings = siblings.add('[' + groupSelector + '] dd > ' + '.' + settings.content_class + ', [' + groupSelector + '] li > ' + '.' + settings.content_class);
- aunts = aunts.add('[' + groupSelector + '] dd, [' + groupSelector + '] li');
- }
-
- if (settings.toggleable && target.is(active_content)) {
- target.parent('dd, li').toggleClass(settings.active_class, false);
- target.toggleClass(settings.active_class, false);
- S(this).attr('aria-expanded', function(i, attr){
- return attr === 'true' ? 'false' : 'true';
- });
- settings.callback(target);
- target.triggerHandler('toggled', [accordion]);
- accordion.triggerHandler('toggled', [target]);
- return;
- }
-
- if (!settings.multi_expand) {
- siblings.removeClass(settings.active_class);
- aunts.removeClass(settings.active_class);
- aunts.children('a').attr('aria-expanded','false');
- }
-
- target.addClass(settings.active_class).parent().addClass(settings.active_class);
- settings.callback(target);
- target.triggerHandler('toggled', [accordion]);
- accordion.triggerHandler('toggled', [target]);
- S(this).attr('aria-expanded','true');
- });
- },
-
- create: function($instance) {
- var self = this,
- accordion = $instance,
- aunts = $('> .accordion-navigation', accordion),
- settings = accordion.data(self.attr_name(true) + '-init') || self.settings;
-
- aunts.children('a').attr('aria-expanded','false');
- aunts.has('.' + settings.content_class + '.' + settings.active_class).children('a').attr('aria-expanded','true');
-
- if (settings.multi_expand) {
- $instance.attr('aria-multiselectable','true');
- }
- },
-
- off : function () {},
-
- reflow : function () {}
- };
-}(jQuery, window, window.document));
diff --git a/library/foundation/js/foundation/foundation.alert.js b/library/foundation/js/foundation/foundation.alert.js
deleted file mode 100644
index c37f950ac..000000000
--- a/library/foundation/js/foundation/foundation.alert.js
+++ /dev/null
@@ -1,43 +0,0 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.alert = {
- name : 'alert',
-
- version : '5.5.2',
-
- settings : {
- callback : function () {}
- },
-
- init : function (scope, method, options) {
- this.bindings(method, options);
- },
-
- events : function () {
- var self = this,
- S = this.S;
-
- $(this.scope).off('.alert').on('click.fndtn.alert', '[' + this.attr_name() + '] .close', function (e) {
- var alertBox = S(this).closest('[' + self.attr_name() + ']'),
- settings = alertBox.data(self.attr_name(true) + '-init') || self.settings;
-
- e.preventDefault();
- if (Modernizr.csstransitions) {
- alertBox.addClass('alert-close');
- alertBox.on('transitionend webkitTransitionEnd oTransitionEnd', function (e) {
- S(this).trigger('close.fndtn.alert').remove();
- settings.callback();
- });
- } else {
- alertBox.fadeOut(300, function () {
- S(this).trigger('close.fndtn.alert').remove();
- settings.callback();
- });
- }
- });
- },
-
- reflow : function () {}
- };
-}(jQuery, window, window.document));
diff --git a/library/foundation/js/foundation/foundation.clearing.js b/library/foundation/js/foundation/foundation.clearing.js
deleted file mode 100644
index 78fe36443..000000000
--- a/library/foundation/js/foundation/foundation.clearing.js
+++ /dev/null
@@ -1,586 +0,0 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.clearing = {
- name : 'clearing',
-
- version : '5.5.2',
-
- settings : {
- templates : {
- viewing : '<a href="#" class="clearing-close">&times;</a>' +
- '<div class="visible-img" style="display: none"><div class="clearing-touch-label"></div><img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' +
- '<p class="clearing-caption"></p><a href="#" class="clearing-main-prev"><span></span></a>' +
- '<a href="#" class="clearing-main-next"><span></span></a></div>' +
- '<img class="clearing-preload-next" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' +
- '<img class="clearing-preload-prev" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />'
- },
-
- // comma delimited list of selectors that, on click, will close clearing,
- // add 'div.clearing-blackout, div.visible-img' to close on background click
- close_selectors : '.clearing-close, div.clearing-blackout',
-
- // Default to the entire li element.
- open_selectors : '',
-
- // Image will be skipped in carousel.
- skip_selector : '',
-
- touch_label : '',
-
- // event initializers and locks
- init : false,
- locked : false
- },
-
- init : function (scope, method, options) {
- var self = this;
- Foundation.inherit(this, 'throttle image_loaded');
-
- this.bindings(method, options);
-
- if (self.S(this.scope).is('[' + this.attr_name() + ']')) {
- this.assemble(self.S('li', this.scope));
- } else {
- self.S('[' + this.attr_name() + ']', this.scope).each(function () {
- self.assemble(self.S('li', this));
- });
- }
- },
-
- events : function (scope) {
- var self = this,
- S = self.S,
- $scroll_container = $('.scroll-container');
-
- if ($scroll_container.length > 0) {
- this.scope = $scroll_container;
- }
-
- S(this.scope)
- .off('.clearing')
- .on('click.fndtn.clearing', 'ul[' + this.attr_name() + '] li ' + this.settings.open_selectors,
- function (e, current, target) {
- var current = current || S(this),
- target = target || current,
- next = current.next('li'),
- settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init'),
- image = S(e.target);
-
- e.preventDefault();
-
- if (!settings) {
- self.init();
- settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
- }
-
- // if clearing is open and the current image is
- // clicked, go to the next image in sequence
- if (target.hasClass('visible') &&
- current[0] === target[0] &&
- next.length > 0 && self.is_open(current)) {
- target = next;
- image = S('img', target);
- }
-
- // set current and target to the clicked li if not otherwise defined.
- self.open(image, current, target);
- self.update_paddles(target);
- })
-
- .on('click.fndtn.clearing', '.clearing-main-next',
- function (e) { self.nav(e, 'next') })
- .on('click.fndtn.clearing', '.clearing-main-prev',
- function (e) { self.nav(e, 'prev') })
- .on('click.fndtn.clearing', this.settings.close_selectors,
- function (e) { Foundation.libs.clearing.close(e, this) });
-
- $(document).on('keydown.fndtn.clearing',
- function (e) { self.keydown(e) });
-
- S(window).off('.clearing').on('resize.fndtn.clearing',
- function () { self.resize() });
-
- this.swipe_events(scope);
- },
-
- swipe_events : function (scope) {
- var self = this,
- S = self.S;
-
- S(this.scope)
- .on('touchstart.fndtn.clearing', '.visible-img', function (e) {
- if (!e.touches) { e = e.originalEvent; }
- var data = {
- start_page_x : e.touches[0].pageX,
- start_page_y : e.touches[0].pageY,
- start_time : (new Date()).getTime(),
- delta_x : 0,
- is_scrolling : undefined
- };
-
- S(this).data('swipe-transition', data);
- e.stopPropagation();
- })
- .on('touchmove.fndtn.clearing', '.visible-img', function (e) {
- if (!e.touches) {
- e = e.originalEvent;
- }
- // Ignore pinch/zoom events
- if (e.touches.length > 1 || e.scale && e.scale !== 1) {
- return;
- }
-
- var data = S(this).data('swipe-transition');
-
- if (typeof data === 'undefined') {
- data = {};
- }
-
- data.delta_x = e.touches[0].pageX - data.start_page_x;
-
- if (Foundation.rtl) {
- data.delta_x = -data.delta_x;
- }
-
- if (typeof data.is_scrolling === 'undefined') {
- data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) );
- }
-
- if (!data.is_scrolling && !data.active) {
- e.preventDefault();
- var direction = (data.delta_x < 0) ? 'next' : 'prev';
- data.active = true;
- self.nav(e, direction);
- }
- })
- .on('touchend.fndtn.clearing', '.visible-img', function (e) {
- S(this).data('swipe-transition', {});
- e.stopPropagation();
- });
- },
-
- assemble : function ($li) {
- var $el = $li.parent();
-
- if ($el.parent().hasClass('carousel')) {
- return;
- }
-
- $el.after('<div id="foundationClearingHolder"></div>');
-
- var grid = $el.detach(),
- grid_outerHTML = '';
-
- if (grid[0] == null) {
- return;
- } else {
- grid_outerHTML = grid[0].outerHTML;
- }
-
- var holder = this.S('#foundationClearingHolder'),
- settings = $el.data(this.attr_name(true) + '-init'),
- data = {
- grid : '<div class="carousel">' + grid_outerHTML + '</div>',
- viewing : settings.templates.viewing
- },
- wrapper = '<div class="clearing-assembled"><div>' + data.viewing +
- data.grid + '</div></div>',
- touch_label = this.settings.touch_label;
-
- if (Modernizr.touch) {
- wrapper = $(wrapper).find('.clearing-touch-label').html(touch_label).end();
- }
-
- holder.after(wrapper).remove();
- },
-
- open : function ($image, current, target) {
- var self = this,
- body = $(document.body),
- root = target.closest('.clearing-assembled'),
- container = self.S('div', root).first(),
- visible_image = self.S('.visible-img', container),
- image = self.S('img', visible_image).not($image),
- label = self.S('.clearing-touch-label', container),
- error = false,
- loaded = {};
-
- // Event to disable scrolling on touch devices when Clearing is activated
- $('body').on('touchmove', function (e) {
- e.preventDefault();
- });
-
- image.error(function () {
- error = true;
- });
-
- function startLoad() {
- setTimeout(function () {
- this.image_loaded(image, function () {
- if (image.outerWidth() === 1 && !error) {
- startLoad.call(this);
- } else {
- cb.call(this, image);
- }
- }.bind(this));
- }.bind(this), 100);
- }
-
- function cb (image) {
- var $image = $(image);
- $image.css('visibility', 'visible');
- $image.trigger('imageVisible');
- // toggle the gallery
- body.css('overflow', 'hidden');
- root.addClass('clearing-blackout');
- container.addClass('clearing-container');
- visible_image.show();
- this.fix_height(target)
- .caption(self.S('.clearing-caption', visible_image), self.S('img', target))
- .center_and_label(image, label)
- .shift(current, target, function () {
- target.closest('li').siblings().removeClass('visible');
- target.closest('li').addClass('visible');
- });
- visible_image.trigger('opened.fndtn.clearing')
- }
-
- if (!this.locked()) {
- visible_image.trigger('open.fndtn.clearing');
- // set the image to the selected thumbnail
- loaded = this.load($image);
- if (loaded.interchange) {
- image
- .attr('data-interchange', loaded.interchange)
- .foundation('interchange', 'reflow');
- } else {
- image
- .attr('src', loaded.src)
- .attr('data-interchange', '');
- }
- image.css('visibility', 'hidden');
-
- startLoad.call(this);
- }
- },
-
- close : function (e, el) {
- e.preventDefault();
-
- var root = (function (target) {
- if (/blackout/.test(target.selector)) {
- return target;
- } else {
- return target.closest('.clearing-blackout');
- }
- }($(el))),
- body = $(document.body), container, visible_image;
-
- if (el === e.target && root) {
- body.css('overflow', '');
- container = $('div', root).first();
- visible_image = $('.visible-img', container);
- visible_image.trigger('close.fndtn.clearing');
- this.settings.prev_index = 0;
- $('ul[' + this.attr_name() + ']', root)
- .attr('style', '').closest('.clearing-blackout')
- .removeClass('clearing-blackout');
- container.removeClass('clearing-container');
- visible_image.hide();
- visible_image.trigger('closed.fndtn.clearing');
- }
-
- // Event to re-enable scrolling on touch devices
- $('body').off('touchmove');
-
- return false;
- },
-
- is_open : function (current) {
- return current.parent().prop('style').length > 0;
- },
-
- keydown : function (e) {
- var clearing = $('.clearing-blackout ul[' + this.attr_name() + ']'),
- NEXT_KEY = this.rtl ? 37 : 39,
- PREV_KEY = this.rtl ? 39 : 37,
- ESC_KEY = 27;
-
- if (e.which === NEXT_KEY) {
- this.go(clearing, 'next');
- }
- if (e.which === PREV_KEY) {
- this.go(clearing, 'prev');
- }
- if (e.which === ESC_KEY) {
- this.S('a.clearing-close').trigger('click.fndtn.clearing');
- }
- },
-
- nav : function (e, direction) {
- var clearing = $('ul[' + this.attr_name() + ']', '.clearing-blackout');
-
- e.preventDefault();
- this.go(clearing, direction);
- },
-
- resize : function () {
- var image = $('img', '.clearing-blackout .visible-img'),
- label = $('.clearing-touch-label', '.clearing-blackout');
-
- if (image.length) {
- this.center_and_label(image, label);
- image.trigger('resized.fndtn.clearing')
- }
- },
-
- // visual adjustments
- fix_height : function (target) {
- var lis = target.parent().children(),
- self = this;
-
- lis.each(function () {
- var li = self.S(this),
- image = li.find('img');
-
- if (li.height() > image.outerHeight()) {
- li.addClass('fix-height');
- }
- })
- .closest('ul')
- .width(lis.length * 100 + '%');
-
- return this;
- },
-
- update_paddles : function (target) {
- target = target.closest('li');
- var visible_image = target
- .closest('.carousel')
- .siblings('.visible-img');
-
- if (target.next().length > 0) {
- this.S('.clearing-main-next', visible_image).removeClass('disabled');
- } else {
- this.S('.clearing-main-next', visible_image).addClass('disabled');
- }
-
- if (target.prev().length > 0) {
- this.S('.clearing-main-prev', visible_image).removeClass('disabled');
- } else {
- this.S('.clearing-main-prev', visible_image).addClass('disabled');
- }
- },
-
- center_and_label : function (target, label) {
- if (!this.rtl && label.length > 0) {
- label.css({
- marginLeft : -(label.outerWidth() / 2),
- marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10
- });
- } else {
- label.css({
- marginRight : -(label.outerWidth() / 2),
- marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10,
- left: 'auto',
- right: '50%'
- });
- }
- return this;
- },
-
- // image loading and preloading
-
- load : function ($image) {
- var href,
- interchange,
- closest_a;
-
- if ($image[0].nodeName === 'A') {
- href = $image.attr('href');
- interchange = $image.data('clearing-interchange');
- } else {
- closest_a = $image.closest('a');
- href = closest_a.attr('href');
- interchange = closest_a.data('clearing-interchange');
- }
-
- this.preload($image);
-
- return {
- 'src': href ? href : $image.attr('src'),
- 'interchange': href ? interchange : $image.data('clearing-interchange')
- }
- },
-
- preload : function ($image) {
- this
- .img($image.closest('li').next(), 'next')
- .img($image.closest('li').prev(), 'prev');
- },
-
- img : function (img, sibling_type) {
- if (img.length) {
- var preload_img = $('.clearing-preload-' + sibling_type),
- new_a = this.S('a', img),
- src,
- interchange,
- image;
-
- if (new_a.length) {
- src = new_a.attr('href');
- interchange = new_a.data('clearing-interchange');
- } else {
- image = this.S('img', img);
- src = image.attr('src');
- interchange = image.data('clearing-interchange');
- }
-
- if (interchange) {
- preload_img.attr('data-interchange', interchange);
- } else {
- preload_img.attr('src', src);
- preload_img.attr('data-interchange', '');
- }
- }
- return this;
- },
-
- // image caption
-
- caption : function (container, $image) {
- var caption = $image.attr('data-caption');
-
- if (caption) {
- container
- .html(caption)
- .show();
- } else {
- container
- .text('')
- .hide();
- }
- return this;
- },
-
- // directional methods
-
- go : function ($ul, direction) {
- var current = this.S('.visible', $ul),
- target = current[direction]();
-
- // Check for skip selector.
- if (this.settings.skip_selector && target.find(this.settings.skip_selector).length != 0) {
- target = target[direction]();
- }
-
- if (target.length) {
- this.S('img', target)
- .trigger('click.fndtn.clearing', [current, target])
- .trigger('change.fndtn.clearing');
- }
- },
-
- shift : function (current, target, callback) {
- var clearing = target.parent(),
- old_index = this.settings.prev_index || target.index(),
- direction = this.direction(clearing, current, target),
- dir = this.rtl ? 'right' : 'left',
- left = parseInt(clearing.css('left'), 10),
- width = target.outerWidth(),
- skip_shift;
-
- var dir_obj = {};
-
- // we use jQuery animate instead of CSS transitions because we
- // need a callback to unlock the next animation
- // needs support for RTL **
- if (target.index() !== old_index && !/skip/.test(direction)) {
- if (/left/.test(direction)) {
- this.lock();
- dir_obj[dir] = left + width;
- clearing.animate(dir_obj, 300, this.unlock());
- } else if (/right/.test(direction)) {
- this.lock();
- dir_obj[dir] = left - width;
- clearing.animate(dir_obj, 300, this.unlock());
- }
- } else if (/skip/.test(direction)) {
- // the target image is not adjacent to the current image, so
- // do we scroll right or not
- skip_shift = target.index() - this.settings.up_count;
- this.lock();
-
- if (skip_shift > 0) {
- dir_obj[dir] = -(skip_shift * width);
- clearing.animate(dir_obj, 300, this.unlock());
- } else {
- dir_obj[dir] = 0;
- clearing.animate(dir_obj, 300, this.unlock());
- }
- }
-
- callback();
- },
-
- direction : function ($el, current, target) {
- var lis = this.S('li', $el),
- li_width = lis.outerWidth() + (lis.outerWidth() / 4),
- up_count = Math.floor(this.S('.clearing-container').outerWidth() / li_width) - 1,
- target_index = lis.index(target),
- response;
-
- this.settings.up_count = up_count;
-
- if (this.adjacent(this.settings.prev_index, target_index)) {
- if ((target_index > up_count) && target_index > this.settings.prev_index) {
- response = 'right';
- } else if ((target_index > up_count - 1) && target_index <= this.settings.prev_index) {
- response = 'left';
- } else {
- response = false;
- }
- } else {
- response = 'skip';
- }
-
- this.settings.prev_index = target_index;
-
- return response;
- },
-
- adjacent : function (current_index, target_index) {
- for (var i = target_index + 1; i >= target_index - 1; i--) {
- if (i === current_index) {
- return true;
- }
- }
- return false;
- },
-
- // lock management
-
- lock : function () {
- this.settings.locked = true;
- },
-
- unlock : function () {
- this.settings.locked = false;
- },
-
- locked : function () {
- return this.settings.locked;
- },
-
- off : function () {
- this.S(this.scope).off('.fndtn.clearing');
- this.S(window).off('.fndtn.clearing');
- },
-
- reflow : function () {
- this.init();
- }
- };
-
-}(jQuery, window, window.document));
diff --git a/library/foundation/js/foundation/foundation.dropdown.js b/library/foundation/js/foundation/foundation.dropdown.js
deleted file mode 100644
index 5c2e5bb33..000000000
--- a/library/foundation/js/foundation/foundation.dropdown.js
+++ /dev/null
@@ -1,463 +0,0 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.dropdown = {
- name : 'dropdown',
-
- version : '5.5.2',
-
- settings : {
- active_class : 'open',
- disabled_class : 'disabled',
- mega_class : 'mega',
- align : 'bottom',
- is_hover : false,
- hover_timeout : 150,
- opened : function () {},
- closed : function () {}
- },
-
- init : function (scope, method, options) {
- Foundation.inherit(this, 'throttle');
-
- $.extend(true, this.settings, method, options);
- this.bindings(method, options);
- },
-
- events : function (scope) {
- var self = this,
- S = self.S;
-
- S(this.scope)
- .off('.dropdown')
- .on('click.fndtn.dropdown', '[' + this.attr_name() + ']', function (e) {
- var settings = S(this).data(self.attr_name(true) + '-init') || self.settings;
- if (!settings.is_hover || Modernizr.touch) {
- e.preventDefault();
- if (S(this).parent('[data-reveal-id]').length) {
- e.stopPropagation();
- }
- self.toggle($(this));
- }
- })
- .on('mouseenter.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) {
- var $this = S(this),
- dropdown,
- target;
-
- clearTimeout(self.timeout);
-
- if ($this.data(self.data_attr())) {
- dropdown = S('#' + $this.data(self.data_attr()));
- target = $this;
- } else {
- dropdown = $this;
- target = S('[' + self.attr_name() + '="' + dropdown.attr('id') + '"]');
- }
-
- var settings = target.data(self.attr_name(true) + '-init') || self.settings;
-
- if (S(e.currentTarget).data(self.data_attr()) && settings.is_hover) {
- self.closeall.call(self);
- }
-
- if (settings.is_hover) {
- self.open.apply(self, [dropdown, target]);
- }
- })
- .on('mouseleave.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) {
- var $this = S(this);
- var settings;
-
- if ($this.data(self.data_attr())) {
- settings = $this.data(self.data_attr(true) + '-init') || self.settings;
- } else {
- var target = S('[' + self.attr_name() + '="' + S(this).attr('id') + '"]'),
- settings = target.data(self.attr_name(true) + '-init') || self.settings;
- }
-
- self.timeout = setTimeout(function () {
- if ($this.data(self.data_attr())) {
- if (settings.is_hover) {
- self.close.call(self, S('#' + $this.data(self.data_attr())));
- }
- } else {
- if (settings.is_hover) {
- self.close.call(self, $this);
- }
- }
- }.bind(this), settings.hover_timeout);
- })
- .on('click.fndtn.dropdown', function (e) {
- var parent = S(e.target).closest('[' + self.attr_name() + '-content]');
- var links = parent.find('a');
-
- if (links.length > 0 && parent.attr('aria-autoclose') !== 'false') {
- self.close.call(self, S('[' + self.attr_name() + '-content]'));
- }
-
- if (e.target !== document && !$.contains(document.documentElement, e.target)) {
- return;
- }
-
- if (S(e.target).closest('[' + self.attr_name() + ']').length > 0) {
- return;
- }
-
- if (!(S(e.target).data('revealId')) &&
- (parent.length > 0 && (S(e.target).is('[' + self.attr_name() + '-content]') ||
- $.contains(parent.first()[0], e.target)))) {
- e.stopPropagation();
- return;
- }
-
- self.close.call(self, S('[' + self.attr_name() + '-content]'));
- })
- .on('opened.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () {
- self.settings.opened.call(this);
- })
- .on('closed.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () {
- self.settings.closed.call(this);
- });
-
- S(window)
- .off('.dropdown')
- .on('resize.fndtn.dropdown', self.throttle(function () {
- self.resize.call(self);
- }, 50));
-
- this.resize();
- },
-
- close : function (dropdown) {
- var self = this;
- dropdown.each(function (idx) {
- var original_target = $('[' + self.attr_name() + '=' + dropdown[idx].id + ']') || $('aria-controls=' + dropdown[idx].id + ']');
- original_target.attr('aria-expanded', 'false');
- if (self.S(this).hasClass(self.settings.active_class)) {
- self.S(this)
- .css(Foundation.rtl ? 'right' : 'left', '-99999px')
- .attr('aria-hidden', 'true')
- .removeClass(self.settings.active_class)
- .prev('[' + self.attr_name() + ']')
- .removeClass(self.settings.active_class)
- .removeData('target');
-
- self.S(this).trigger('closed.fndtn.dropdown', [dropdown]);
- }
- });
- dropdown.removeClass('f-open-' + this.attr_name(true));
- },
-
- closeall : function () {
- var self = this;
- $.each(self.S('.f-open-' + this.attr_name(true)), function () {
- self.close.call(self, self.S(this));
- });
- },
-
- open : function (dropdown, target) {
- this
- .css(dropdown
- .addClass(this.settings.active_class), target);
- dropdown.prev('[' + this.attr_name() + ']').addClass(this.settings.active_class);
- dropdown.data('target', target.get(0)).trigger('opened.fndtn.dropdown', [dropdown, target]);
- dropdown.attr('aria-hidden', 'false');
- target.attr('aria-expanded', 'true');
- dropdown.focus();
- dropdown.addClass('f-open-' + this.attr_name(true));
- },
-
- data_attr : function () {
- if (this.namespace.length > 0) {
- return this.namespace + '-' + this.name;
- }
-
- return this.name;
- },
-
- toggle : function (target) {
- if (target.hasClass(this.settings.disabled_class)) {
- return;
- }
- var dropdown = this.S('#' + target.data(this.data_attr()));
- if (dropdown.length === 0) {
- // No dropdown found, not continuing
- return;
- }
-
- this.close.call(this, this.S('[' + this.attr_name() + '-content]').not(dropdown));
-
- if (dropdown.hasClass(this.settings.active_class)) {
- this.close.call(this, dropdown);
- if (dropdown.data('target') !== target.get(0)) {
- this.open.call(this, dropdown, target);
- }
- } else {
- this.open.call(this, dropdown, target);
- }
- },
-
- resize : function () {
- var dropdown = this.S('[' + this.attr_name() + '-content].open');
- var target = $(dropdown.data("target"));
-
- if (dropdown.length && target.length) {
- this.css(dropdown, target);
- }
- },
-
- css : function (dropdown, target) {
- var left_offset = Math.max((target.width() - dropdown.width()) / 2, 8),
- settings = target.data(this.attr_name(true) + '-init') || this.settings,
- parentOverflow = dropdown.parent().css('overflow-y') || dropdown.parent().css('overflow');
-
- this.clear_idx();
-
-
-
- if (this.small()) {
- var p = this.dirs.bottom.call(dropdown, target, settings);
-
- dropdown.attr('style', '').removeClass('drop-left drop-right drop-top').css({
- position : 'absolute',
- width : '95%',
- 'max-width' : 'none',
- top : p.top
- });
-
- dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);
- }
- // detect if dropdown is in an overflow container
- else if (parentOverflow !== 'visible') {
- var offset = target[0].offsetTop + target[0].offsetHeight;
-
- dropdown.attr('style', '').css({
- position : 'absolute',
- top : offset
- });
-
- dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);
- }
- else {
-
- this.style(dropdown, target, settings);
- }
-
- return dropdown;
- },
-
- style : function (dropdown, target, settings) {
- var css = $.extend({position : 'absolute'},
- this.dirs[settings.align].call(dropdown, target, settings));
-
- dropdown.attr('style', '').css(css);
- },
-
- // return CSS property object
- // `this` is the dropdown
- dirs : {
- // Calculate target offset
- _base : function (t) {
- var o_p = this.offsetParent(),
- o = o_p.offset(),
- p = t.offset();
-
- p.top -= o.top;
- p.left -= o.left;
-
- //set some flags on the p object to pass along
- p.missRight = false;
- p.missTop = false;
- p.missLeft = false;
- p.leftRightFlag = false;
-
- //lets see if the panel will be off the screen
- //get the actual width of the page and store it
- var actualBodyWidth;
- if (document.getElementsByClassName('row')[0]) {
- actualBodyWidth = document.getElementsByClassName('row')[0].clientWidth;
- } else {
- actualBodyWidth = window.innerWidth;
- }
-
- var actualMarginWidth = (window.innerWidth - actualBodyWidth) / 2;
- var actualBoundary = actualBodyWidth;
-
- if (!this.hasClass('mega')) {
- //miss top
- if (t.offset().top <= this.outerHeight()) {
- p.missTop = true;
- actualBoundary = window.innerWidth - actualMarginWidth;
- p.leftRightFlag = true;
- }
-
- //miss right
- if (t.offset().left + this.outerWidth() > t.offset().left + actualMarginWidth && t.offset().left - actualMarginWidth > this.outerWidth()) {
- p.missRight = true;
- p.missLeft = false;
- }
-
- //miss left
- if (t.offset().left - this.outerWidth() <= 0) {
- p.missLeft = true;
- p.missRight = false;
- }
- }
-
- return p;
- },
-
- top : function (t, s) {
- var self = Foundation.libs.dropdown,
- p = self.dirs._base.call(this, t);
-
- this.addClass('drop-top');
-
- if (p.missTop == true) {
- p.top = p.top + t.outerHeight() + this.outerHeight();
- this.removeClass('drop-top');
- }
-
- if (p.missRight == true) {
- p.left = p.left - this.outerWidth() + t.outerWidth();
- }
-
- if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
- self.adjust_pip(this, t, s, p);
- }
-
- if (Foundation.rtl) {
- return {left : p.left - this.outerWidth() + t.outerWidth(),
- top : p.top - this.outerHeight()};
- }
-
- return {left : p.left, top : p.top - this.outerHeight()};
- },
-
- bottom : function (t, s) {
- var self = Foundation.libs.dropdown,
- p = self.dirs._base.call(this, t);
-
- if (p.missRight == true) {
- p.left = p.left - this.outerWidth() + t.outerWidth();
- }
-
- if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
- self.adjust_pip(this, t, s, p);
- }
-
- if (self.rtl) {
- return {left : p.left - this.outerWidth() + t.outerWidth(), top : p.top + t.outerHeight()};
- }
-
- return {left : p.left, top : p.top + t.outerHeight()};
- },
-
- left : function (t, s) {
- var p = Foundation.libs.dropdown.dirs._base.call(this, t);
-
- this.addClass('drop-left');
-
- if (p.missLeft == true) {
- p.left = p.left + this.outerWidth();
- p.top = p.top + t.outerHeight();
- this.removeClass('drop-left');
- }
-
- return {left : p.left - this.outerWidth(), top : p.top};
- },
-
- right : function (t, s) {
- var p = Foundation.libs.dropdown.dirs._base.call(this, t);
-
- this.addClass('drop-right');
-
- if (p.missRight == true) {
- p.left = p.left - this.outerWidth();
- p.top = p.top + t.outerHeight();
- this.removeClass('drop-right');
- } else {
- p.triggeredRight = true;
- }
-
- var self = Foundation.libs.dropdown;
-
- if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
- self.adjust_pip(this, t, s, p);
- }
-
- return {left : p.left + t.outerWidth(), top : p.top};
- }
- },
-
- // Insert rule to style psuedo elements
- adjust_pip : function (dropdown, target, settings, position) {
- var sheet = Foundation.stylesheet,
- pip_offset_base = 8;
-
- if (dropdown.hasClass(settings.mega_class)) {
- pip_offset_base = position.left + (target.outerWidth() / 2) - 8;
- } else if (this.small()) {
- pip_offset_base += position.left - 8;
- }
-
- this.rule_idx = sheet.cssRules.length;
-
- //default
- var sel_before = '.f-dropdown.open:before',
- sel_after = '.f-dropdown.open:after',
- css_before = 'left: ' + pip_offset_base + 'px;',
- css_after = 'left: ' + (pip_offset_base - 1) + 'px;';
-
- if (position.missRight == true) {
- pip_offset_base = dropdown.outerWidth() - 23;
- sel_before = '.f-dropdown.open:before',
- sel_after = '.f-dropdown.open:after',
- css_before = 'left: ' + pip_offset_base + 'px;',
- css_after = 'left: ' + (pip_offset_base - 1) + 'px;';
- }
-
- //just a case where right is fired, but its not missing right
- if (position.triggeredRight == true) {
- sel_before = '.f-dropdown.open:before',
- sel_after = '.f-dropdown.open:after',
- css_before = 'left:-12px;',
- css_after = 'left:-14px;';
- }
-
- if (sheet.insertRule) {
- sheet.insertRule([sel_before, '{', css_before, '}'].join(' '), this.rule_idx);
- sheet.insertRule([sel_after, '{', css_after, '}'].join(' '), this.rule_idx + 1);
- } else {
- sheet.addRule(sel_before, css_before, this.rule_idx);
- sheet.addRule(sel_after, css_after, this.rule_idx + 1);
- }
- },
-
- // Remove old dropdown rule index
- clear_idx : function () {
- var sheet = Foundation.stylesheet;
-
- if (typeof this.rule_idx !== 'undefined') {
- sheet.deleteRule(this.rule_idx);
- sheet.deleteRule(this.rule_idx);
- delete this.rule_idx;
- }
- },
-
- small : function () {
- return matchMedia(Foundation.media_queries.small).matches &&
- !matchMedia(Foundation.media_queries.medium).matches;
- },
-
- off : function () {
- this.S(this.scope).off('.fndtn.dropdown');
- this.S('html, body').off('.fndtn.dropdown');
- this.S(window).off('.fndtn.dropdown');
- this.S('[data-dropdown-content]').off('.fndtn.dropdown');
- },
-
- reflow : function () {}
- };
-}(jQuery, window, window.document));
diff --git a/library/foundation/js/foundation/foundation.equalizer.js b/library/foundation/js/foundation/foundation.equalizer.js
deleted file mode 100644
index 23ab1052c..000000000
--- a/library/foundation/js/foundation/foundation.equalizer.js
+++ /dev/null
@@ -1,104 +0,0 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.equalizer = {
- name : 'equalizer',
-
- version : '5.5.2',
-
- settings : {
- use_tallest : true,
- before_height_change : $.noop,
- after_height_change : $.noop,
- equalize_on_stack : false,
- act_on_hidden_el: false
- },
-
- init : function (scope, method, options) {
- Foundation.inherit(this, 'image_loaded');
- this.bindings(method, options);
- this.reflow();
- },
-
- events : function () {
- this.S(window).off('.equalizer').on('resize.fndtn.equalizer', function (e) {
- this.reflow();
- }.bind(this));
- },
-
- equalize : function (equalizer) {
- var isStacked = false,
- group = equalizer.data('equalizer'),
- settings = equalizer.data(this.attr_name(true)+'-init') || this.settings,
- vals,
- firstTopOffset;
-
- if (settings.act_on_hidden_el) {
- vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]') : equalizer.find('['+this.attr_name()+'-watch]');
- }
- else {
- vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]:visible') : equalizer.find('['+this.attr_name()+'-watch]:visible');
- }
-
- if (vals.length === 0) {
- return;
- }
-
- settings.before_height_change();
- equalizer.trigger('before-height-change.fndth.equalizer');
- vals.height('inherit');
-
- if (settings.equalize_on_stack === false) {
- firstTopOffset = vals.first().offset().top;
- vals.each(function () {
- if ($(this).offset().top !== firstTopOffset) {
- isStacked = true;
- return false;
- }
- });
- if (isStacked) {
- return;
- }
- }
-
- var heights = vals.map(function () { return $(this).outerHeight(false) }).get();
-
- if (settings.use_tallest) {
- var max = Math.max.apply(null, heights);
- vals.css('height', max);
- } else {
- var min = Math.min.apply(null, heights);
- vals.css('height', min);
- }
-
- settings.after_height_change();
- equalizer.trigger('after-height-change.fndtn.equalizer');
- },
-
- reflow : function () {
- var self = this;
-
- this.S('[' + this.attr_name() + ']', this.scope).each(function () {
- var $eq_target = $(this),
- media_query = $eq_target.data('equalizer-mq'),
- ignore_media_query = true;
-
- if (media_query) {
- media_query = 'is_' + media_query.replace(/-/g, '_');
- if (Foundation.utils.hasOwnProperty(media_query)) {
- ignore_media_query = false;
- }
- }
-
- self.image_loaded(self.S('img', this), function () {
- if (ignore_media_query || Foundation.utils[media_query]()) {
- self.equalize($eq_target)
- } else {
- var vals = $eq_target.find('[' + self.attr_name() + '-watch]:visible');
- vals.css('height', 'auto');
- }
- });
- });
- }
- };
-})(jQuery, window, window.document);
diff --git a/library/foundation/js/foundation/foundation.interchange.js b/library/foundation/js/foundation/foundation.interchange.js
deleted file mode 100644
index 7ec2ad1b4..000000000
--- a/library/foundation/js/foundation/foundation.interchange.js
+++ /dev/null
@@ -1,359 +0,0 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.interchange = {
- name : 'interchange',
-
- version : '5.5.2',
-
- cache : {},
-
- images_loaded : false,
- nodes_loaded : false,
-
- settings : {
- load_attr : 'interchange',
-
- named_queries : {
- 'default' : 'only screen',
- 'small' : Foundation.media_queries['small'],
- 'small-only' : Foundation.media_queries['small-only'],
- 'medium' : Foundation.media_queries['medium'],
- 'medium-only' : Foundation.media_queries['medium-only'],
- 'large' : Foundation.media_queries['large'],
- 'large-only' : Foundation.media_queries['large-only'],
- 'xlarge' : Foundation.media_queries['xlarge'],
- 'xlarge-only' : Foundation.media_queries['xlarge-only'],
- 'xxlarge' : Foundation.media_queries['xxlarge'],
- 'landscape' : 'only screen and (orientation: landscape)',
- 'portrait' : 'only screen and (orientation: portrait)',
- 'retina' : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +
- 'only screen and (min--moz-device-pixel-ratio: 2),' +
- 'only screen and (-o-min-device-pixel-ratio: 2/1),' +
- 'only screen and (min-device-pixel-ratio: 2),' +
- 'only screen and (min-resolution: 192dpi),' +
- 'only screen and (min-resolution: 2dppx)'
- },
-
- directives : {
- replace : function (el, path, trigger) {
- // The trigger argument, if called within the directive, fires
- // an event named after the directive on the element, passing
- // any parameters along to the event that you pass to trigger.
- //
- // ex. trigger(), trigger([a, b, c]), or trigger(a, b, c)
- //
- // This allows you to bind a callback like so:
- // $('#interchangeContainer').on('replace', function (e, a, b, c) {
- // console.log($(this).html(), a, b, c);
- // });
-
- if (el !== null && /IMG/.test(el[0].nodeName)) {
- var orig_path = el[0].src;
-
- if (new RegExp(path, 'i').test(orig_path)) {
- return;
- }
-
- el.attr("src", path);
-
- return trigger(el[0].src);
- }
- var last_path = el.data(this.data_attr + '-last-path'),
- self = this;
-
- if (last_path == path) {
- return;
- }
-
- if (/\.(gif|jpg|jpeg|tiff|png)([?#].*)?/i.test(path)) {
- $(el).css('background-image', 'url(' + path + ')');
- el.data('interchange-last-path', path);
- return trigger(path);
- }
-
- return $.get(path, function (response) {
- el.html(response);
- el.data(self.data_attr + '-last-path', path);
- trigger();
- });
-
- }
- }
- },
-
- init : function (scope, method, options) {
- Foundation.inherit(this, 'throttle random_str');
-
- this.data_attr = this.set_data_attr();
- $.extend(true, this.settings, method, options);
- this.bindings(method, options);
- this.reflow();
- },
-
- get_media_hash : function () {
- var mediaHash = '';
- for (var queryName in this.settings.named_queries ) {
- mediaHash += matchMedia(this.settings.named_queries[queryName]).matches.toString();
- }
- return mediaHash;
- },
-
- events : function () {
- var self = this, prevMediaHash;
-
- $(window)
- .off('.interchange')
- .on('resize.fndtn.interchange', self.throttle(function () {
- var currMediaHash = self.get_media_hash();
- if (currMediaHash !== prevMediaHash) {
- self.resize();
- }
- prevMediaHash = currMediaHash;
- }, 50));
-
- return this;
- },
-
- resize : function () {
- var cache = this.cache;
-
- if (!this.images_loaded || !this.nodes_loaded) {
- setTimeout($.proxy(this.resize, this), 50);
- return;
- }
-
- for (var uuid in cache) {
- if (cache.hasOwnProperty(uuid)) {
- var passed = this.results(uuid, cache[uuid]);
- if (passed) {
- this.settings.directives[passed
- .scenario[1]].call(this, passed.el, passed.scenario[0], (function (passed) {
- if (arguments[0] instanceof Array) {
- var args = arguments[0];
- } else {
- var args = Array.prototype.slice.call(arguments, 0);
- }
-
- return function() {
- passed.el.trigger(passed.scenario[1], args);
- }
- }(passed)));
- }
- }
- }
-
- },
-
- results : function (uuid, scenarios) {
- var count = scenarios.length;
-
- if (count > 0) {
- var el = this.S('[' + this.add_namespace('data-uuid') + '="' + uuid + '"]');
-
- while (count--) {
- var mq, rule = scenarios[count][2];
- if (this.settings.named_queries.hasOwnProperty(rule)) {
- mq = matchMedia(this.settings.named_queries[rule]);
- } else {
- mq = matchMedia(rule);
- }
- if (mq.matches) {
- return {el : el, scenario : scenarios[count]};
- }
- }
- }
-
- return false;
- },
-
- load : function (type, force_update) {
- if (typeof this['cached_' + type] === 'undefined' || force_update) {
- this['update_' + type]();
- }
-
- return this['cached_' + type];
- },
-
- update_images : function () {
- var images = this.S('img[' + this.data_attr + ']'),
- count = images.length,
- i = count,
- loaded_count = 0,
- data_attr = this.data_attr;
-
- this.cache = {};
- this.cached_images = [];
- this.images_loaded = (count === 0);
-
- while (i--) {
- loaded_count++;
- if (images[i]) {
- var str = images[i].getAttribute(data_attr) || '';
-
- if (str.length > 0) {
- this.cached_images.push(images[i]);
- }
- }
-
- if (loaded_count === count) {
- this.images_loaded = true;
- this.enhance('images');
- }
- }
-
- return this;
- },
-
- update_nodes : function () {
- var nodes = this.S('[' + this.data_attr + ']').not('img'),
- count = nodes.length,
- i = count,
- loaded_count = 0,
- data_attr = this.data_attr;
-
- this.cached_nodes = [];
- this.nodes_loaded = (count === 0);
-
- while (i--) {
- loaded_count++;
- var str = nodes[i].getAttribute(data_attr) || '';
-
- if (str.length > 0) {
- this.cached_nodes.push(nodes[i]);
- }
-
- if (loaded_count === count) {
- this.nodes_loaded = true;
- this.enhance('nodes');
- }
- }
-
- return this;
- },
-
- enhance : function (type) {
- var i = this['cached_' + type].length;
-
- while (i--) {
- this.object($(this['cached_' + type][i]));
- }
-
- return $(window).trigger('resize.fndtn.interchange');
- },
-
- convert_directive : function (directive) {
-
- var trimmed = this.trim(directive);
-
- if (trimmed.length > 0) {
- return trimmed;
- }
-
- return 'replace';
- },
-
- parse_scenario : function (scenario) {
- // This logic had to be made more complex since some users were using commas in the url path
- // So we cannot simply just split on a comma
-
- var directive_match = scenario[0].match(/(.+),\s*(\w+)\s*$/),
- // getting the mq has gotten a bit complicated since we started accounting for several use cases
- // of URLs. For now we'll continue to match these scenarios, but we may consider having these scenarios
- // as nested objects or arrays in F6.
- // regex: match everything before close parenthesis for mq
- media_query = scenario[1].match(/(.*)\)/);
-
- if (directive_match) {
- var path = directive_match[1],
- directive = directive_match[2];
-
- } else {
- var cached_split = scenario[0].split(/,\s*$/),
- path = cached_split[0],
- directive = '';
- }
-
- return [this.trim(path), this.convert_directive(directive), this.trim(media_query[1])];
- },
-
- object : function (el) {
- var raw_arr = this.parse_data_attr(el),
- scenarios = [],
- i = raw_arr.length;
-
- if (i > 0) {
- while (i--) {
- // split array between comma delimited content and mq
- // regex: comma, optional space, open parenthesis
- var scenario = raw_arr[i].split(/,\s?\(/);
-
- if (scenario.length > 1) {
- var params = this.parse_scenario(scenario);
- scenarios.push(params);
- }
- }
- }
-
- return this.store(el, scenarios);
- },
-
- store : function (el, scenarios) {
- var uuid = this.random_str(),
- current_uuid = el.data(this.add_namespace('uuid', true));
-
- if (this.cache[current_uuid]) {
- return this.cache[current_uuid];
- }
-
- el.attr(this.add_namespace('data-uuid'), uuid);
- return this.cache[uuid] = scenarios;
- },
-
- trim : function (str) {
-
- if (typeof str === 'string') {
- return $.trim(str);
- }
-
- return str;
- },
-
- set_data_attr : function (init) {
- if (init) {
- if (this.namespace.length > 0) {
- return this.namespace + '-' + this.settings.load_attr;
- }
-
- return this.settings.load_attr;
- }
-
- if (this.namespace.length > 0) {
- return 'data-' + this.namespace + '-' + this.settings.load_attr;
- }
-
- return 'data-' + this.settings.load_attr;
- },
-
- parse_data_attr : function (el) {
- var raw = el.attr(this.attr_name()).split(/\[(.*?)\]/),
- i = raw.length,
- output = [];
-
- while (i--) {
- if (raw[i].replace(/[\W\d]+/, '').length > 4) {
- output.push(raw[i]);
- }
- }
-
- return output;
- },
-
- reflow : function () {
- this.load('images', true);
- this.load('nodes', true);
- }
-
- };
-
-}(jQuery, window, window.document));
diff --git a/library/foundation/js/foundation/foundation.joyride.js b/library/foundation/js/foundation/foundation.joyride.js
deleted file mode 100644
index 5433bf797..000000000
--- a/library/foundation/js/foundation/foundation.joyride.js
+++ /dev/null
@@ -1,932 +0,0 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- var Modernizr = Modernizr || false;
-
- Foundation.libs.joyride = {
- name : 'joyride',
-
- version : '5.5.2',
-
- defaults : {
- expose : false, // turn on or off the expose feature
- modal : true, // Whether to cover page with modal during the tour
- keyboard : true, // enable left, right and esc keystrokes
- tip_location : 'bottom', // 'top' or 'bottom' in relation to parent
- nub_position : 'auto', // override on a per tooltip bases
- scroll_speed : 1500, // Page scrolling speed in milliseconds, 0 = no scroll animation
- scroll_animation : 'linear', // supports 'swing' and 'linear', extend with jQuery UI.
- timer : 0, // 0 = no timer , all other numbers = timer in milliseconds
- start_timer_on_click : true, // true or false - true requires clicking the first button start the timer
- start_offset : 0, // the index of the tooltip you want to start on (index of the li)
- next_button : true, // true or false to control whether a next button is used
- prev_button : true, // true or false to control whether a prev button is used
- tip_animation : 'fade', // 'pop' or 'fade' in each tip
- pause_after : [], // array of indexes where to pause the tour after
- exposed : [], // array of expose elements
- tip_animation_fade_speed : 300, // when tipAnimation = 'fade' this is speed in milliseconds for the transition
- cookie_monster : false, // true or false to control whether cookies are used
- cookie_name : 'joyride', // Name the cookie you'll use
- cookie_domain : false, // Will this cookie be attached to a domain, ie. '.notableapp.com'
- cookie_expires : 365, // set when you would like the cookie to expire.
- tip_container : 'body', // Where will the tip be attached
- abort_on_close : true, // When true, the close event will not fire any callback
- tip_location_patterns : {
- top : ['bottom'],
- bottom : [], // bottom should not need to be repositioned
- left : ['right', 'top', 'bottom'],
- right : ['left', 'top', 'bottom']
- },
- post_ride_callback : function () {}, // A method to call once the tour closes (canceled or complete)
- post_step_callback : function () {}, // A method to call after each step
- pre_step_callback : function () {}, // A method to call before each step
- pre_ride_callback : function () {}, // A method to call before the tour starts (passed index, tip, and cloned exposed element)
- post_expose_callback : function () {}, // A method to call after an element has been exposed
- template : { // HTML segments for tip layout
- link : '<a href="#close" class="joyride-close-tip">&times;</a>',
- timer : '<div class="joyride-timer-indicator-wrap"><span class="joyride-timer-indicator"></span></div>',
- tip : '<div class="joyride-tip-guide"><span class="joyride-nub"></span></div>',
- wrapper : '<div class="joyride-content-wrapper"></div>',
- button : '<a href="#" class="small button joyride-next-tip"></a>',
- prev_button : '<a href="#" class="small button joyride-prev-tip"></a>',
- modal : '<div class="joyride-modal-bg"></div>',
- expose : '<div class="joyride-expose-wrapper"></div>',
- expose_cover : '<div class="joyride-expose-cover"></div>'
- },
- expose_add_class : '' // One or more space-separated class names to be added to exposed element
- },
-
- init : function (scope, method, options) {
- Foundation.inherit(this, 'throttle random_str');
-
- this.settings = this.settings || $.extend({}, this.defaults, (options || method));
-
- this.bindings(method, options)
- },
-
- go_next : function () {
- if (this.settings.$li.next().length < 1) {
- this.end();
- } else if (this.settings.timer > 0) {
- clearTimeout(this.settings.automate);
- this.hide();
- this.show();
- this.startTimer();
- } else {
- this.hide();
- this.show();
- }
- },
-
- go_prev : function () {
- if (this.settings.$li.prev().length < 1) {
- // Do nothing if there are no prev element
- } else if (this.settings.timer > 0) {
- clearTimeout(this.settings.automate);
- this.hide();
- this.show(null, true);
- this.startTimer();
- } else {
- this.hide();
- this.show(null, true);
- }
- },
-
- events : function () {
- var self = this;
-
- $(this.scope)
- .off('.joyride')
- .on('click.fndtn.joyride', '.joyride-next-tip, .joyride-modal-bg', function (e) {
- e.preventDefault();
- this.go_next()
- }.bind(this))
- .on('click.fndtn.joyride', '.joyride-prev-tip', function (e) {
- e.preventDefault();
- this.go_prev();
- }.bind(this))
-
- .on('click.fndtn.joyride', '.joyride-close-tip', function (e) {
- e.preventDefault();
- this.end(this.settings.abort_on_close);
- }.bind(this))
-
- .on('keyup.fndtn.joyride', function (e) {
- // Don't do anything if keystrokes are disabled
- // or if the joyride is not being shown
- if (!this.settings.keyboard || !this.settings.riding) {
- return;
- }
-
- switch (e.which) {
- case 39: // right arrow
- e.preventDefault();
- this.go_next();
- break;
- case 37: // left arrow
- e.preventDefault();
- this.go_prev();
- break;
- case 27: // escape
- e.preventDefault();
- this.end(this.settings.abort_on_close);
- }
- }.bind(this));
-
- $(window)
- .off('.joyride')
- .on('resize.fndtn.joyride', self.throttle(function () {
- if ($('[' + self.attr_name() + ']').length > 0 && self.settings.$next_tip && self.settings.riding) {
- if (self.settings.exposed.length > 0) {
- var $els = $(self.settings.exposed);
-
- $els.each(function () {
- var $this = $(this);
- self.un_expose($this);
- self.expose($this);
- });
- }
-
- if (self.is_phone()) {
- self.pos_phone();
- } else {
- self.pos_default(false);
- }
- }
- }, 100));
- },
-
- start : function () {
- var self = this,
- $this = $('[' + this.attr_name() + ']', this.scope),
- integer_settings = ['timer', 'scrollSpeed', 'startOffset', 'tipAnimationFadeSpeed', 'cookieExpires'],
- int_settings_count = integer_settings.length;
-
- if (!$this.length > 0) {
- return;
- }
-
- if (!this.settings.init) {
- this.events();
- }
-
- this.settings = $this.data(this.attr_name(true) + '-init');
-
- // non configureable settings
- this.settings.$content_el = $this;
- this.settings.$body = $(this.settings.tip_container);
- this.settings.body_offset = $(this.settings.tip_container).position();
- this.settings.$tip_content = this.settings.$content_el.find('> li');
- this.settings.paused = false;
- this.settings.attempts = 0;
- this.settings.riding = true;
-
- // can we create cookies?
- if (typeof $.cookie !== 'function') {
- this.settings.cookie_monster = false;
- }
-
- // generate the tips and insert into dom.
- if (!this.settings.cookie_monster || this.settings.cookie_monster && !$.cookie(this.settings.cookie_name)) {
- this.settings.$tip_content.each(function (index) {
- var $this = $(this);
- this.settings = $.extend({}, self.defaults, self.data_options($this));
-
- // Make sure that settings parsed from data_options are integers where necessary
- var i = int_settings_count;
- while (i--) {
- self.settings[integer_settings[i]] = parseInt(self.settings[integer_settings[i]], 10);
- }
- self.create({$li : $this, index : index});
- });
-
- // show first tip
- if (!this.settings.start_timer_on_click && this.settings.timer > 0) {
- this.show('init');
- this.startTimer();
- } else {
- this.show('init');
- }
-
- }
- },
-
- resume : function () {
- this.set_li();
- this.show();
- },
-
- tip_template : function (opts) {
- var $blank, content;
-
- opts.tip_class = opts.tip_class || '';
-
- $blank = $(this.settings.template.tip).addClass(opts.tip_class);
- content = $.trim($(opts.li).html()) +
- this.prev_button_text(opts.prev_button_text, opts.index) +
- this.button_text(opts.button_text) +
- this.settings.template.link +
- this.timer_instance(opts.index);
-
- $blank.append($(this.settings.template.wrapper));
- $blank.first().attr(this.add_namespace('data-index'), opts.index);
- $('.joyride-content-wrapper', $blank).append(content);
-
- return $blank[0];
- },
-
- timer_instance : function (index) {
- var txt;
-
- if ((index === 0 && this.settings.start_timer_on_click && this.settings.timer > 0) || this.settings.timer === 0) {
- txt = '';
- } else {
- txt = $(this.settings.template.timer)[0].outerHTML;
- }
- return txt;
- },
-
- button_text : function (txt) {
- if (this.settings.tip_settings.next_button) {
- txt = $.trim(txt) || 'Next';
- txt = $(this.settings.template.button).append(txt)[0].outerHTML;
- } else {
- txt = '';
- }
- return txt;
- },
-
- prev_button_text : function (txt, idx) {
- if (this.settings.tip_settings.prev_button) {
- txt = $.trim(txt) || 'Previous';
-
- // Add the disabled class to the button if it's the first element
- if (idx == 0) {
- txt = $(this.settings.template.prev_button).append(txt).addClass('disabled')[0].outerHTML;
- } else {
- txt = $(this.settings.template.prev_button).append(txt)[0].outerHTML;
- }
- } else {
- txt = '';
- }
- return txt;
- },
-
- create : function (opts) {
- this.settings.tip_settings = $.extend({}, this.settings, this.data_options(opts.$li));
- var buttonText = opts.$li.attr(this.add_namespace('data-button')) || opts.$li.attr(this.add_namespace('data-text')),
- prevButtonText = opts.$li.attr(this.add_namespace('data-button-prev')) || opts.$li.attr(this.add_namespace('data-prev-text')),
- tipClass = opts.$li.attr('class'),
- $tip_content = $(this.tip_template({
- tip_class : tipClass,
- index : opts.index,
- button_text : buttonText,
- prev_button_text : prevButtonText,
- li : opts.$li
- }));
-
- $(this.settings.tip_container).append($tip_content);
- },
-
- show : function (init, is_prev) {
- var $timer = null;
-
- // are we paused?
- if (this.settings.$li === undefined || ($.inArray(this.settings.$li.index(), this.settings.pause_after) === -1)) {
-
- // don't go to the next li if the tour was paused
- if (this.settings.paused) {
- this.settings.paused = false;
- } else {
- this.set_li(init, is_prev);
- }
-
- this.settings.attempts = 0;
-
- if (this.settings.$li.length && this.settings.$target.length > 0) {
- if (init) { //run when we first start
- this.settings.pre_ride_callback(this.settings.$li.index(), this.settings.$next_tip);
- if (this.settings.modal) {
- this.show_modal();
- }
- }
-
- this.settings.pre_step_callback(this.settings.$li.index(), this.settings.$next_tip);
-
- if (this.settings.modal && this.settings.expose) {
- this.expose();
- }
-
- this.settings.tip_settings = $.extend({}, this.settings, this.data_options(this.settings.$li));
-
- this.settings.timer = parseInt(this.settings.timer, 10);
-
- this.settings.tip_settings.tip_location_pattern = this.settings.tip_location_patterns[this.settings.tip_settings.tip_location];
-
- // scroll and hide bg if not modal
- if (!/body/i.test(this.settings.$target.selector)) {
- var joyridemodalbg = $('.joyride-modal-bg');
- if (/pop/i.test(this.settings.tipAnimation)) {
- joyridemodalbg.hide();
- } else {
- joyridemodalbg.fadeOut(this.settings.tipAnimationFadeSpeed);
- }
- this.scroll_to();
- }
-
- if (this.is_phone()) {
- this.pos_phone(true);
- } else {
- this.pos_default(true);
- }
-
- $timer = this.settings.$next_tip.find('.joyride-timer-indicator');
-
- if (/pop/i.test(this.settings.tip_animation)) {
-
- $timer.width(0);
-
- if (this.settings.timer > 0) {
-
- this.settings.$next_tip.show();
-
- setTimeout(function () {
- $timer.animate({
- width : $timer.parent().width()
- }, this.settings.timer, 'linear');
- }.bind(this), this.settings.tip_animation_fade_speed);
-
- } else {
- this.settings.$next_tip.show();
-
- }
-
- } else if (/fade/i.test(this.settings.tip_animation)) {
-
- $timer.width(0);
-
- if (this.settings.timer > 0) {
-
- this.settings.$next_tip
- .fadeIn(this.settings.tip_animation_fade_speed)
- .show();
-
- setTimeout(function () {
- $timer.animate({
- width : $timer.parent().width()
- }, this.settings.timer, 'linear');
- }.bind(this), this.settings.tip_animation_fade_speed);
-
- } else {
- this.settings.$next_tip.fadeIn(this.settings.tip_animation_fade_speed);
- }
- }
-
- this.settings.$current_tip = this.settings.$next_tip;
-
- // skip non-existant targets
- } else if (this.settings.$li && this.settings.$target.length < 1) {
-
- this.show(init, is_prev);
-
- } else {
-
- this.end();
-
- }
- } else {
-
- this.settings.paused = true;
-
- }
-
- },
-
- is_phone : function () {
- return matchMedia(Foundation.media_queries.small).matches &&
- !matchMedia(Foundation.media_queries.medium).matches;
- },
-
- hide : function () {
- if (this.settings.modal && this.settings.expose) {
- this.un_expose();
- }
-
- if (!this.settings.modal) {
- $('.joyride-modal-bg').hide();
- }
-
- // Prevent scroll bouncing...wait to remove from layout
- this.settings.$current_tip.css('visibility', 'hidden');
- setTimeout($.proxy(function () {
- this.hide();
- this.css('visibility', 'visible');
- }, this.settings.$current_tip), 0);
- this.settings.post_step_callback(this.settings.$li.index(),
- this.settings.$current_tip);
- },
-
- set_li : function (init, is_prev) {
- if (init) {
- this.settings.$li = this.settings.$tip_content.eq(this.settings.start_offset);
- this.set_next_tip();
- this.settings.$current_tip = this.settings.$next_tip;
- } else {
- if (is_prev) {
- this.settings.$li = this.settings.$li.prev();
- } else {
- this.settings.$li = this.settings.$li.next();
- }
- this.set_next_tip();
- }
-
- this.set_target();
- },
-
- set_next_tip : function () {
- this.settings.$next_tip = $('.joyride-tip-guide').eq(this.settings.$li.index());
- this.settings.$next_tip.data('closed', '');
- },
-
- set_target : function () {
- var cl = this.settings.$li.attr(this.add_namespace('data-class')),
- id = this.settings.$li.attr(this.add_namespace('data-id')),
- $sel = function () {
- if (id) {
- return $(document.getElementById(id));
- } else if (cl) {
- return $('.' + cl).first();
- } else {
- return $('body');
- }
- };
-
- this.settings.$target = $sel();
- },
-
- scroll_to : function () {
- var window_half, tipOffset;
-
- window_half = $(window).height() / 2;
- tipOffset = Math.ceil(this.settings.$target.offset().top - window_half + this.settings.$next_tip.outerHeight());
-
- if (tipOffset != 0) {
- $('html, body').stop().animate({
- scrollTop : tipOffset
- }, this.settings.scroll_speed, 'swing');
- }
- },
-
- paused : function () {
- return ($.inArray((this.settings.$li.index() + 1), this.settings.pause_after) === -1);
- },
-
- restart : function () {
- this.hide();
- this.settings.$li = undefined;
- this.show('init');
- },
-
- pos_default : function (init) {
- var $nub = this.settings.$next_tip.find('.joyride-nub'),
- nub_width = Math.ceil($nub.outerWidth() / 2),
- nub_height = Math.ceil($nub.outerHeight() / 2),
- toggle = init || false;
-
- // tip must not be "display: none" to calculate position
- if (toggle) {
- this.settings.$next_tip.css('visibility', 'hidden');
- this.settings.$next_tip.show();
- }
-
- if (!/body/i.test(this.settings.$target.selector)) {
- var topAdjustment = this.settings.tip_settings.tipAdjustmentY ? parseInt(this.settings.tip_settings.tipAdjustmentY) : 0,
- leftAdjustment = this.settings.tip_settings.tipAdjustmentX ? parseInt(this.settings.tip_settings.tipAdjustmentX) : 0;
-
- if (this.bottom()) {
- if (this.rtl) {
- this.settings.$next_tip.css({
- top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment),
- left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth() + leftAdjustment});
- } else {
- this.settings.$next_tip.css({
- top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment),
- left : this.settings.$target.offset().left + leftAdjustment});
- }
-
- this.nub_position($nub, this.settings.tip_settings.nub_position, 'top');
-
- } else if (this.top()) {
- if (this.rtl) {
- this.settings.$next_tip.css({
- top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment),
- left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth()});
- } else {
- this.settings.$next_tip.css({
- top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment),
- left : this.settings.$target.offset().left + leftAdjustment});
- }
-
- this.nub_position($nub, this.settings.tip_settings.nub_position, 'bottom');
-
- } else if (this.right()) {
-
- this.settings.$next_tip.css({
- top : this.settings.$target.offset().top + topAdjustment,
- left : (this.settings.$target.outerWidth() + this.settings.$target.offset().left + nub_width + leftAdjustment)});
-
- this.nub_position($nub, this.settings.tip_settings.nub_position, 'left');
-
- } else if (this.left()) {
-
- this.settings.$next_tip.css({
- top : this.settings.$target.offset().top + topAdjustment,
- left : (this.settings.$target.offset().left - this.settings.$next_tip.outerWidth() - nub_width + leftAdjustment)});
-
- this.nub_position($nub, this.settings.tip_settings.nub_position, 'right');
-
- }
-
- if (!this.visible(this.corners(this.settings.$next_tip)) && this.settings.attempts < this.settings.tip_settings.tip_location_pattern.length) {
-
- $nub.removeClass('bottom')
- .removeClass('top')
- .removeClass('right')
- .removeClass('left');
-
- this.settings.tip_settings.tip_location = this.settings.tip_settings.tip_location_pattern[this.settings.attempts];
-
- this.settings.attempts++;
-
- this.pos_default();
-
- }
-
- } else if (this.settings.$li.length) {
-
- this.pos_modal($nub);
-
- }
-
- if (toggle) {
- this.settings.$next_tip.hide();
- this.settings.$next_tip.css('visibility', 'visible');
- }
-
- },
-
- pos_phone : function (init) {
- var tip_height = this.settings.$next_tip.outerHeight(),
- tip_offset = this.settings.$next_tip.offset(),
- target_height = this.settings.$target.outerHeight(),
- $nub = $('.joyride-nub', this.settings.$next_tip),
- nub_height = Math.ceil($nub.outerHeight() / 2),
- toggle = init || false;
-
- $nub.removeClass('bottom')
- .removeClass('top')
- .removeClass('right')
- .removeClass('left');
-
- if (toggle) {
- this.settings.$next_tip.css('visibility', 'hidden');
- this.settings.$next_tip.show();
- }
-
- if (!/body/i.test(this.settings.$target.selector)) {
-
- if (this.top()) {
-
- this.settings.$next_tip.offset({top : this.settings.$target.offset().top - tip_height - nub_height});
- $nub.addClass('bottom');
-
- } else {
-
- this.settings.$next_tip.offset({top : this.settings.$target.offset().top + target_height + nub_height});
- $nub.addClass('top');
-
- }
-
- } else if (this.settings.$li.length) {
- this.pos_modal($nub);
- }
-
- if (toggle) {
- this.settings.$next_tip.hide();
- this.settings.$next_tip.css('visibility', 'visible');
- }
- },
-
- pos_modal : function ($nub) {
- this.center();
- $nub.hide();
-
- this.show_modal();
- },
-
- show_modal : function () {
- if (!this.settings.$next_tip.data('closed')) {
- var joyridemodalbg = $('.joyride-modal-bg');
- if (joyridemodalbg.length < 1) {
- var joyridemodalbg = $(this.settings.template.modal);
- joyridemodalbg.appendTo('body');
- }
-
- if (/pop/i.test(this.settings.tip_animation)) {
- joyridemodalbg.show();
- } else {
- joyridemodalbg.fadeIn(this.settings.tip_animation_fade_speed);
- }
- }
- },
-
- expose : function () {
- var expose,
- exposeCover,
- el,
- origCSS,
- origClasses,
- randId = 'expose-' + this.random_str(6);
-
- if (arguments.length > 0 && arguments[0] instanceof $) {
- el = arguments[0];
- } else if (this.settings.$target && !/body/i.test(this.settings.$target.selector)) {
- el = this.settings.$target;
- } else {
- return false;
- }
-
- if (el.length < 1) {
- if (window.console) {
- console.error('element not valid', el);
- }
- return false;
- }
-
- expose = $(this.settings.template.expose);
- this.settings.$body.append(expose);
- expose.css({
- top : el.offset().top,
- left : el.offset().left,
- width : el.outerWidth(true),
- height : el.outerHeight(true)
- });
-
- exposeCover = $(this.settings.template.expose_cover);
-
- origCSS = {
- zIndex : el.css('z-index'),
- position : el.css('position')
- };
-
- origClasses = el.attr('class') == null ? '' : el.attr('class');
-
- el.css('z-index', parseInt(expose.css('z-index')) + 1);
-
- if (origCSS.position == 'static') {
- el.css('position', 'relative');
- }
-
- el.data('expose-css', origCSS);
- el.data('orig-class', origClasses);
- el.attr('class', origClasses + ' ' + this.settings.expose_add_class);
-
- exposeCover.css({
- top : el.offset().top,
- left : el.offset().left,
- width : el.outerWidth(true),
- height : el.outerHeight(true)
- });
-
- if (this.settings.modal) {
- this.show_modal();
- }
-
- this.settings.$body.append(exposeCover);
- expose.addClass(randId);
- exposeCover.addClass(randId);
- el.data('expose', randId);
- this.settings.post_expose_callback(this.settings.$li.index(), this.settings.$next_tip, el);
- this.add_exposed(el);
- },
-
- un_expose : function () {
- var exposeId,
- el,
- expose,
- origCSS,
- origClasses,
- clearAll = false;
-
- if (arguments.length > 0 && arguments[0] instanceof $) {
- el = arguments[0];
- } else if (this.settings.$target && !/body/i.test(this.settings.$target.selector)) {
- el = this.settings.$target;
- } else {
- return false;
- }
-
- if (el.length < 1) {
- if (window.console) {
- console.error('element not valid', el);
- }
- return false;
- }
-
- exposeId = el.data('expose');
- expose = $('.' + exposeId);
-
- if (arguments.length > 1) {
- clearAll = arguments[1];
- }
-
- if (clearAll === true) {
- $('.joyride-expose-wrapper,.joyride-expose-cover').remove();
- } else {
- expose.remove();
- }
-
- origCSS = el.data('expose-css');
-
- if (origCSS.zIndex == 'auto') {
- el.css('z-index', '');
- } else {
- el.css('z-index', origCSS.zIndex);
- }
-
- if (origCSS.position != el.css('position')) {
- if (origCSS.position == 'static') {// this is default, no need to set it.
- el.css('position', '');
- } else {
- el.css('position', origCSS.position);
- }
- }
-
- origClasses = el.data('orig-class');
- el.attr('class', origClasses);
- el.removeData('orig-classes');
-
- el.removeData('expose');
- el.removeData('expose-z-index');
- this.remove_exposed(el);
- },
-
- add_exposed : function (el) {
- this.settings.exposed = this.settings.exposed || [];
- if (el instanceof $ || typeof el === 'object') {
- this.settings.exposed.push(el[0]);
- } else if (typeof el == 'string') {
- this.settings.exposed.push(el);
- }
- },
-
- remove_exposed : function (el) {
- var search, i;
- if (el instanceof $) {
- search = el[0]
- } else if (typeof el == 'string') {
- search = el;
- }
-
- this.settings.exposed = this.settings.exposed || [];
- i = this.settings.exposed.length;
-
- while (i--) {
- if (this.settings.exposed[i] == search) {
- this.settings.exposed.splice(i, 1);
- return;
- }
- }
- },
-
- center : function () {
- var $w = $(window);
-
- this.settings.$next_tip.css({
- top : ((($w.height() - this.settings.$next_tip.outerHeight()) / 2) + $w.scrollTop()),
- left : ((($w.width() - this.settings.$next_tip.outerWidth()) / 2) + $w.scrollLeft())
- });
-
- return true;
- },
-
- bottom : function () {
- return /bottom/i.test(this.settings.tip_settings.tip_location);
- },
-
- top : function () {
- return /top/i.test(this.settings.tip_settings.tip_location);
- },
-
- right : function () {
- return /right/i.test(this.settings.tip_settings.tip_location);
- },
-
- left : function () {
- return /left/i.test(this.settings.tip_settings.tip_location);
- },
-
- corners : function (el) {
- var w = $(window),
- window_half = w.height() / 2,
- //using this to calculate since scroll may not have finished yet.
- tipOffset = Math.ceil(this.settings.$target.offset().top - window_half + this.settings.$next_tip.outerHeight()),
- right = w.width() + w.scrollLeft(),
- offsetBottom = w.height() + tipOffset,
- bottom = w.height() + w.scrollTop(),
- top = w.scrollTop();
-
- if (tipOffset < top) {
- if (tipOffset < 0) {
- top = 0;
- } else {
- top = tipOffset;
- }
- }
-
- if (offsetBottom > bottom) {
- bottom = offsetBottom;
- }
-
- return [
- el.offset().top < top,
- right < el.offset().left + el.outerWidth(),
- bottom < el.offset().top + el.outerHeight(),
- w.scrollLeft() > el.offset().left
- ];
- },
-
- visible : function (hidden_corners) {
- var i = hidden_corners.length;
-
- while (i--) {
- if (hidden_corners[i]) {
- return false;
- }
- }
-
- return true;
- },
-
- nub_position : function (nub, pos, def) {
- if (pos === 'auto') {
- nub.addClass(def);
- } else {
- nub.addClass(pos);
- }
- },
-
- startTimer : function () {
- if (this.settings.$li.length) {
- this.settings.automate = setTimeout(function () {
- this.hide();
- this.show();
- this.startTimer();
- }.bind(this), this.settings.timer);
- } else {
- clearTimeout(this.settings.automate);
- }
- },
-
- end : function (abort) {
- if (this.settings.cookie_monster) {
- $.cookie(this.settings.cookie_name, 'ridden', {expires : this.settings.cookie_expires, domain : this.settings.cookie_domain});
- }
-
- if (this.settings.timer > 0) {
- clearTimeout(this.settings.automate);
- }
-
- if (this.settings.modal && this.settings.expose) {
- this.un_expose();
- }
-
- // Unplug keystrokes listener
- $(this.scope).off('keyup.joyride')
-
- this.settings.$next_tip.data('closed', true);
- this.settings.riding = false;
-
- $('.joyride-modal-bg').hide();
- this.settings.$current_tip.hide();
-
- if (typeof abort === 'undefined' || abort === false) {
- this.settings.post_step_callback(this.settings.$li.index(), this.settings.$current_tip);
- this.settings.post_ride_callback(this.settings.$li.index(), this.settings.$current_tip);
- }
-
- $('.joyride-tip-guide').remove();
- },
-
- off : function () {
- $(this.scope).off('.joyride');
- $(window).off('.joyride');
- $('.joyride-close-tip, .joyride-next-tip, .joyride-modal-bg').off('.joyride');
- $('.joyride-tip-guide, .joyride-modal-bg').remove();
- clearTimeout(this.settings.automate);
- this.settings = {};
- },
-
- reflow : function () {}
- };
-}(jQuery, window, window.document));
diff --git a/library/foundation/js/foundation/foundation.js b/library/foundation/js/foundation/foundation.js
deleted file mode 100644
index 122ddc2f1..000000000
--- a/library/foundation/js/foundation/foundation.js
+++ /dev/null
@@ -1,725 +0,0 @@
-/*
- * Foundation Responsive Library
- * http://foundation.zurb.com
- * Copyright 2014, ZURB
- * Free to use under the MIT license.
- * http://www.opensource.org/licenses/mit-license.php
-*/
-
-(function ($, window, document, undefined) {
- 'use strict';
-
- var header_helpers = function (class_array) {
- var i = class_array.length;
- var head = $('head');
-
- while (i--) {
- if (head.has('.' + class_array[i]).length === 0) {
- head.append('<meta class="' + class_array[i] + '" />');
- }
- }
- };
-
- header_helpers([
- 'foundation-mq-small',
- 'foundation-mq-small-only',
- 'foundation-mq-medium',
- 'foundation-mq-medium-only',
- 'foundation-mq-large',
- 'foundation-mq-large-only',
- 'foundation-mq-xlarge',
- 'foundation-mq-xlarge-only',
- 'foundation-mq-xxlarge',
- 'foundation-data-attribute-namespace']);
-
- // Enable FastClick if present
-
- $(function () {
- if (typeof FastClick !== 'undefined') {
- // Don't attach to body if undefined
- if (typeof document.body !== 'undefined') {
- FastClick.attach(document.body);
- }
- }
- });
-
- // private Fast Selector wrapper,
- // returns jQuery object. Only use where
- // getElementById is not available.
- var S = function (selector, context) {
- if (typeof selector === 'string') {
- if (context) {
- var cont;
- if (context.jquery) {
- cont = context[0];
- if (!cont) {
- return context;
- }
- } else {
- cont = context;
- }
- return $(cont.querySelectorAll(selector));
- }
-
- return $(document.querySelectorAll(selector));
- }
-
- return $(selector, context);
- };
-
- // Namespace functions.
-
- var attr_name = function (init) {
- var arr = [];
- if (!init) {
- arr.push('data');
- }
- if (this.namespace.length > 0) {
- arr.push(this.namespace);
- }
- arr.push(this.name);
-
- return arr.join('-');
- };
-
- var add_namespace = function (str) {
- var parts = str.split('-'),
- i = parts.length,
- arr = [];
-
- while (i--) {
- if (i !== 0) {
- arr.push(parts[i]);
- } else {
- if (this.namespace.length > 0) {
- arr.push(this.namespace, parts[i]);
- } else {
- arr.push(parts[i]);
- }
- }
- }
-
- return arr.reverse().join('-');
- };
-
- // Event binding and data-options updating.
-
- var bindings = function (method, options) {
- var self = this,
- bind = function(){
- var $this = S(this),
- should_bind_events = !$this.data(self.attr_name(true) + '-init');
- $this.data(self.attr_name(true) + '-init', $.extend({}, self.settings, (options || method), self.data_options($this)));
-
- if (should_bind_events) {
- self.events(this);
- }
- };
-
- if (S(this.scope).is('[' + this.attr_name() +']')) {
- bind.call(this.scope);
- } else {
- S('[' + this.attr_name() +']', this.scope).each(bind);
- }
- // # Patch to fix #5043 to move this *after* the if/else clause in order for Backbone and similar frameworks to have improved control over event binding and data-options updating.
- if (typeof method === 'string') {
- return this[method].call(this, options);
- }
-
- };
-
- var single_image_loaded = function (image, callback) {
- function loaded () {
- callback(image[0]);
- }
-
- function bindLoad () {
- this.one('load', loaded);
-
- if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
- var src = this.attr( 'src' ),
- param = src.match( /\?/ ) ? '&' : '?';
-
- param += 'random=' + (new Date()).getTime();
- this.attr('src', src + param);
- }
- }
-
- if (!image.attr('src')) {
- loaded();
- return;
- }
-
- if (image[0].complete || image[0].readyState === 4) {
- loaded();
- } else {
- bindLoad.call(image);
- }
- };
-
- /*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */
-
- window.matchMedia || (window.matchMedia = function() {
- "use strict";
-
- // For browsers that support matchMedium api such as IE 9 and webkit
- var styleMedia = (window.styleMedia || window.media);
-
- // For those that don't support matchMedium
- if (!styleMedia) {
- var style = document.createElement('style'),
- script = document.getElementsByTagName('script')[0],
- info = null;
-
- style.type = 'text/css';
- style.id = 'matchmediajs-test';
-
- script.parentNode.insertBefore(style, script);
-
- // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers
- info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;
-
- styleMedia = {
- matchMedium: function(media) {
- var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';
-
- // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers
- if (style.styleSheet) {
- style.styleSheet.cssText = text;
- } else {
- style.textContent = text;
- }
-
- // Test if media query is true or false
- return info.width === '1px';
- }
- };
- }
-
- return function(media) {
- return {
- matches: styleMedia.matchMedium(media || 'all'),
- media: media || 'all'
- };
- };
- }());
-
- /*
- * jquery.requestAnimationFrame
- * https://github.com/gnarf37/jquery-requestAnimationFrame
- * Requires jQuery 1.8+
- *
- * Copyright (c) 2012 Corey Frang
- * Licensed under the MIT license.
- */
-
- (function(jQuery) {
-
-
- // requestAnimationFrame polyfill adapted from Erik Möller
- // fixes from Paul Irish and Tino Zijdel
- // http://paulirish.com/2011/requestanimationframe-for-smart-animating/
- // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating
-
- var animating,
- lastTime = 0,
- vendors = ['webkit', 'moz'],
- requestAnimationFrame = window.requestAnimationFrame,
- cancelAnimationFrame = window.cancelAnimationFrame,
- jqueryFxAvailable = 'undefined' !== typeof jQuery.fx;
-
- for (; lastTime < vendors.length && !requestAnimationFrame; lastTime++) {
- requestAnimationFrame = window[ vendors[lastTime] + 'RequestAnimationFrame' ];
- cancelAnimationFrame = cancelAnimationFrame ||
- window[ vendors[lastTime] + 'CancelAnimationFrame' ] ||
- window[ vendors[lastTime] + 'CancelRequestAnimationFrame' ];
- }
-
- function raf() {
- if (animating) {
- requestAnimationFrame(raf);
-
- if (jqueryFxAvailable) {
- jQuery.fx.tick();
- }
- }
- }
-
- if (requestAnimationFrame) {
- // use rAF
- window.requestAnimationFrame = requestAnimationFrame;
- window.cancelAnimationFrame = cancelAnimationFrame;
-
- if (jqueryFxAvailable) {
- jQuery.fx.timer = function (timer) {
- if (timer() && jQuery.timers.push(timer) && !animating) {
- animating = true;
- raf();
- }
- };
-
- jQuery.fx.stop = function () {
- animating = false;
- };
- }
- } else {
- // polyfill
- window.requestAnimationFrame = function (callback) {
- var currTime = new Date().getTime(),
- timeToCall = Math.max(0, 16 - (currTime - lastTime)),
- id = window.setTimeout(function () {
- callback(currTime + timeToCall);
- }, timeToCall);
- lastTime = currTime + timeToCall;
- return id;
- };
-
- window.cancelAnimationFrame = function (id) {
- clearTimeout(id);
- };
-
- }
-
- }( $ ));
-
- function removeQuotes (string) {
- if (typeof string === 'string' || string instanceof String) {
- string = string.replace(/^['\\/"]+|(;\s?})+|['\\/"]+$/g, '');
- }
-
- return string;
- }
-
- window.Foundation = {
- name : 'Foundation',
-
- version : '5.5.2',
-
- media_queries : {
- 'small' : S('.foundation-mq-small').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
- 'small-only' : S('.foundation-mq-small-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
- 'medium' : S('.foundation-mq-medium').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
- 'medium-only' : S('.foundation-mq-medium-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
- 'large' : S('.foundation-mq-large').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
- 'large-only' : S('.foundation-mq-large-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
- 'xlarge' : S('.foundation-mq-xlarge').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
- 'xlarge-only' : S('.foundation-mq-xlarge-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
- 'xxlarge' : S('.foundation-mq-xxlarge').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, '')
- },
-
- stylesheet : $('<style></style>').appendTo('head')[0].sheet,
-
- global : {
- namespace : undefined
- },
-
- init : function (scope, libraries, method, options, response) {
- var args = [scope, method, options, response],
- responses = [];
-
- // check RTL
- this.rtl = /rtl/i.test(S('html').attr('dir'));
-
- // set foundation global scope
- this.scope = scope || this.scope;
-
- this.set_namespace();
-
- if (libraries && typeof libraries === 'string' && !/reflow/i.test(libraries)) {
- if (this.libs.hasOwnProperty(libraries)) {
- responses.push(this.init_lib(libraries, args));
- }
- } else {
- for (var lib in this.libs) {
- responses.push(this.init_lib(lib, libraries));
- }
- }
-
- S(window).load(function () {
- S(window)
- .trigger('resize.fndtn.clearing')
- .trigger('resize.fndtn.dropdown')
- .trigger('resize.fndtn.equalizer')
- .trigger('resize.fndtn.interchange')
- .trigger('resize.fndtn.joyride')
- .trigger('resize.fndtn.magellan')
- .trigger('resize.fndtn.topbar')
- .trigger('resize.fndtn.slider');
- });
-
- return scope;
- },
-
- init_lib : function (lib, args) {
- if (this.libs.hasOwnProperty(lib)) {
- this.patch(this.libs[lib]);
-
- if (args && args.hasOwnProperty(lib)) {
- if (typeof this.libs[lib].settings !== 'undefined') {
- $.extend(true, this.libs[lib].settings, args[lib]);
- } else if (typeof this.libs[lib].defaults !== 'undefined') {
- $.extend(true, this.libs[lib].defaults, args[lib]);
- }
- return this.libs[lib].init.apply(this.libs[lib], [this.scope, args[lib]]);
- }
-
- args = args instanceof Array ? args : new Array(args);
- return this.libs[lib].init.apply(this.libs[lib], args);
- }
-
- return function () {};
- },
-
- patch : function (lib) {
- lib.scope = this.scope;
- lib.namespace = this.global.namespace;
- lib.rtl = this.rtl;
- lib['data_options'] = this.utils.data_options;
- lib['attr_name'] = attr_name;
- lib['add_namespace'] = add_namespace;
- lib['bindings'] = bindings;
- lib['S'] = this.utils.S;
- },
-
- inherit : function (scope, methods) {
- var methods_arr = methods.split(' '),
- i = methods_arr.length;
-
- while (i--) {
- if (this.utils.hasOwnProperty(methods_arr[i])) {
- scope[methods_arr[i]] = this.utils[methods_arr[i]];
- }
- }
- },
-
- set_namespace : function () {
-
- // Description:
- // Don't bother reading the namespace out of the meta tag
- // if the namespace has been set globally in javascript
- //
- // Example:
- // Foundation.global.namespace = 'my-namespace';
- // or make it an empty string:
- // Foundation.global.namespace = '';
- //
- //
-
- // If the namespace has not been set (is undefined), try to read it out of the meta element.
- // Otherwise use the globally defined namespace, even if it's empty ('')
- var namespace = ( this.global.namespace === undefined ) ? $('.foundation-data-attribute-namespace').css('font-family') : this.global.namespace;
-
- // Finally, if the namsepace is either undefined or false, set it to an empty string.
- // Otherwise use the namespace value.
- this.global.namespace = ( namespace === undefined || /false/i.test(namespace) ) ? '' : namespace;
- },
-
- libs : {},
-
- // methods that can be inherited in libraries
- utils : {
-
- // Description:
- // Fast Selector wrapper returns jQuery object. Only use where getElementById
- // is not available.
- //
- // Arguments:
- // Selector (String): CSS selector describing the element(s) to be
- // returned as a jQuery object.
- //
- // Scope (String): CSS selector describing the area to be searched. Default
- // is document.
- //
- // Returns:
- // Element (jQuery Object): jQuery object containing elements matching the
- // selector within the scope.
- S : S,
-
- // Description:
- // Executes a function a max of once every n milliseconds
- //
- // Arguments:
- // Func (Function): Function to be throttled.
- //
- // Delay (Integer): Function execution threshold in milliseconds.
- //
- // Returns:
- // Lazy_function (Function): Function with throttling applied.
- throttle : function (func, delay) {
- var timer = null;
-
- return function () {
- var context = this, args = arguments;
-
- if (timer == null) {
- timer = setTimeout(function () {
- func.apply(context, args);
- timer = null;
- }, delay);
- }
- };
- },
-
- // Description:
- // Executes a function when it stops being invoked for n seconds
- // Modified version of _.debounce() http://underscorejs.org
- //
- // Arguments:
- // Func (Function): Function to be debounced.
- //
- // Delay (Integer): Function execution threshold in milliseconds.
- //
- // Immediate (Bool): Whether the function should be called at the beginning
- // of the delay instead of the end. Default is false.
- //
- // Returns:
- // Lazy_function (Function): Function with debouncing applied.
- debounce : function (func, delay, immediate) {
- var timeout, result;
- return function () {
- var context = this, args = arguments;
- var later = function () {
- timeout = null;
- if (!immediate) {
- result = func.apply(context, args);
- }
- };
- var callNow = immediate && !timeout;
- clearTimeout(timeout);
- timeout = setTimeout(later, delay);
- if (callNow) {
- result = func.apply(context, args);
- }
- return result;
- };
- },
-
- // Description:
- // Parses data-options attribute
- //
- // Arguments:
- // El (jQuery Object): Element to be parsed.
- //
- // Returns:
- // Options (Javascript Object): Contents of the element's data-options
- // attribute.
- data_options : function (el, data_attr_name) {
- data_attr_name = data_attr_name || 'options';
- var opts = {}, ii, p, opts_arr,
- data_options = function (el) {
- var namespace = Foundation.global.namespace;
-
- if (namespace.length > 0) {
- return el.data(namespace + '-' + data_attr_name);
- }
-
- return el.data(data_attr_name);
- };
-
- var cached_options = data_options(el);
-
- if (typeof cached_options === 'object') {
- return cached_options;
- }
-
- opts_arr = (cached_options || ':').split(';');
- ii = opts_arr.length;
-
- function isNumber (o) {
- return !isNaN (o - 0) && o !== null && o !== '' && o !== false && o !== true;
- }
-
- function trim (str) {
- if (typeof str === 'string') {
- return $.trim(str);
- }
- return str;
- }
-
- while (ii--) {
- p = opts_arr[ii].split(':');
- p = [p[0], p.slice(1).join(':')];
-
- if (/true/i.test(p[1])) {
- p[1] = true;
- }
- if (/false/i.test(p[1])) {
- p[1] = false;
- }
- if (isNumber(p[1])) {
- if (p[1].indexOf('.') === -1) {
- p[1] = parseInt(p[1], 10);
- } else {
- p[1] = parseFloat(p[1]);
- }
- }
-
- if (p.length === 2 && p[0].length > 0) {
- opts[trim(p[0])] = trim(p[1]);
- }
- }
-
- return opts;
- },
-
- // Description:
- // Adds JS-recognizable media queries
- //
- // Arguments:
- // Media (String): Key string for the media query to be stored as in
- // Foundation.media_queries
- //
- // Class (String): Class name for the generated <meta> tag
- register_media : function (media, media_class) {
- if (Foundation.media_queries[media] === undefined) {
- $('head').append('<meta class="' + media_class + '"/>');
- Foundation.media_queries[media] = removeQuotes($('.' + media_class).css('font-family'));
- }
- },
-
- // Description:
- // Add custom CSS within a JS-defined media query
- //
- // Arguments:
- // Rule (String): CSS rule to be appended to the document.
- //
- // Media (String): Optional media query string for the CSS rule to be
- // nested under.
- add_custom_rule : function (rule, media) {
- if (media === undefined && Foundation.stylesheet) {
- Foundation.stylesheet.insertRule(rule, Foundation.stylesheet.cssRules.length);
- } else {
- var query = Foundation.media_queries[media];
-
- if (query !== undefined) {
- Foundation.stylesheet.insertRule('@media ' +
- Foundation.media_queries[media] + '{ ' + rule + ' }', Foundation.stylesheet.cssRules.length);
- }
- }
- },
-
- // Description:
- // Performs a callback function when an image is fully loaded
- //
- // Arguments:
- // Image (jQuery Object): Image(s) to check if loaded.
- //
- // Callback (Function): Function to execute when image is fully loaded.
- image_loaded : function (images, callback) {
- var self = this,
- unloaded = images.length;
-
- function pictures_has_height(images) {
- var pictures_number = images.length;
-
- for (var i = pictures_number - 1; i >= 0; i--) {
- if(images.attr('height') === undefined) {
- return false;
- };
- };
-
- return true;
- }
-
- if (unloaded === 0 || pictures_has_height(images)) {
- callback(images);
- }
-
- images.each(function () {
- single_image_loaded(self.S(this), function () {
- unloaded -= 1;
- if (unloaded === 0) {
- callback(images);
- }
- });
- });
- },
-
- // Description:
- // Returns a random, alphanumeric string
- //
- // Arguments:
- // Length (Integer): Length of string to be generated. Defaults to random
- // integer.
- //
- // Returns:
- // Rand (String): Pseudo-random, alphanumeric string.
- random_str : function () {
- if (!this.fidx) {
- this.fidx = 0;
- }
- this.prefix = this.prefix || [(this.name || 'F'), (+new Date).toString(36)].join('-');
-
- return this.prefix + (this.fidx++).toString(36);
- },
-
- // Description:
- // Helper for window.matchMedia
- //
- // Arguments:
- // mq (String): Media query
- //
- // Returns:
- // (Boolean): Whether the media query passes or not
- match : function (mq) {
- return window.matchMedia(mq).matches;
- },
-
- // Description:
- // Helpers for checking Foundation default media queries with JS
- //
- // Returns:
- // (Boolean): Whether the media query passes or not
-
- is_small_up : function () {
- return this.match(Foundation.media_queries.small);
- },
-
- is_medium_up : function () {
- return this.match(Foundation.media_queries.medium);
- },
-
- is_large_up : function () {
- return this.match(Foundation.media_queries.large);
- },
-
- is_xlarge_up : function () {
- return this.match(Foundation.media_queries.xlarge);
- },
-
- is_xxlarge_up : function () {
- return this.match(Foundation.media_queries.xxlarge);
- },
-
- is_small_only : function () {
- return !this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
- },
-
- is_medium_only : function () {
- return this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
- },
-
- is_large_only : function () {
- return this.is_medium_up() && this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
- },
-
- is_xlarge_only : function () {
- return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && !this.is_xxlarge_up();
- },
-
- is_xxlarge_only : function () {
- return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && this.is_xxlarge_up();
- }
- }
- };
-
- $.fn.foundation = function () {
- var args = Array.prototype.slice.call(arguments, 0);
-
- return this.each(function () {
- Foundation.init.apply(Foundation, [this].concat(args));
- return this;
- });
- };
-
-}(jQuery, window, window.document));
diff --git a/library/foundation/js/foundation/foundation.magellan.js b/library/foundation/js/foundation/foundation.magellan.js
deleted file mode 100644
index 614923abb..000000000
--- a/library/foundation/js/foundation/foundation.magellan.js
+++ /dev/null
@@ -1,215 +0,0 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs['magellan-expedition'] = {
- name : 'magellan-expedition',
-
- version : '5.5.2',
-
- settings : {
- active_class : 'active',
- threshold : 0, // pixels from the top of the expedition for it to become fixes
- destination_threshold : 20, // pixels from the top of destination for it to be considered active
- throttle_delay : 30, // calculation throttling to increase framerate
- fixed_top : 0, // top distance in pixels assigend to the fixed element on scroll
- offset_by_height : true, // whether to offset the destination by the expedition height. Usually you want this to be true, unless your expedition is on the side.
- duration : 700, // animation duration time
- easing : 'swing' // animation easing
- },
-
- init : function (scope, method, options) {
- Foundation.inherit(this, 'throttle');
- this.bindings(method, options);
- },
-
- events : function () {
- var self = this,
- S = self.S,
- settings = self.settings;
-
- // initialize expedition offset
- self.set_expedition_position();
-
- S(self.scope)
- .off('.magellan')
- .on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href*=#]', function (e) {
- var sameHost = ((this.hostname === location.hostname) || !this.hostname),
- samePath = self.filterPathname(location.pathname) === self.filterPathname(this.pathname),
- testHash = this.hash.replace(/(:|\.|\/)/g, '\\$1'),
- anchor = this;
-
- if (sameHost && samePath && testHash) {
- e.preventDefault();
- var expedition = $(this).closest('[' + self.attr_name() + ']'),
- settings = expedition.data('magellan-expedition-init'),
- hash = this.hash.split('#').join(''),
- target = $('a[name="' + hash + '"]');
-
- if (target.length === 0) {
- target = $('#' + hash);
-
- }
-
- // Account for expedition height if fixed position
- var scroll_top = target.offset().top - settings.destination_threshold + 1;
- if (settings.offset_by_height) {
- scroll_top = scroll_top - expedition.outerHeight();
- }
- $('html, body').stop().animate({
- 'scrollTop' : scroll_top
- }, settings.duration, settings.easing, function () {
- if (history.pushState) {
- history.pushState(null, null, anchor.pathname + '#' + hash);
- }
- else {
- location.hash = anchor.pathname + '#' + hash;
- }
- });
- }
- })
- .on('scroll.fndtn.magellan', self.throttle(this.check_for_arrivals.bind(this), settings.throttle_delay));
- },
-
- check_for_arrivals : function () {
- var self = this;
- self.update_arrivals();
- self.update_expedition_positions();
- },
-
- set_expedition_position : function () {
- var self = this;
- $('[' + this.attr_name() + '=fixed]', self.scope).each(function (idx, el) {
- var expedition = $(this),
- settings = expedition.data('magellan-expedition-init'),
- styles = expedition.attr('styles'), // save styles
- top_offset, fixed_top;
-
- expedition.attr('style', '');
- top_offset = expedition.offset().top + settings.threshold;
-
- //set fixed-top by attribute
- fixed_top = parseInt(expedition.data('magellan-fixed-top'));
- if (!isNaN(fixed_top)) {
- self.settings.fixed_top = fixed_top;
- }
-
- expedition.data(self.data_attr('magellan-top-offset'), top_offset);
- expedition.attr('style', styles);
- });
- },
-
- update_expedition_positions : function () {
- var self = this,
- window_top_offset = $(window).scrollTop();
-
- $('[' + this.attr_name() + '=fixed]', self.scope).each(function () {
- var expedition = $(this),
- settings = expedition.data('magellan-expedition-init'),
- styles = expedition.attr('style'), // save styles
- top_offset = expedition.data('magellan-top-offset');
-
- //scroll to the top distance
- if (window_top_offset + self.settings.fixed_top >= top_offset) {
- // Placeholder allows height calculations to be consistent even when
- // appearing to switch between fixed/non-fixed placement
- var placeholder = expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']');
- if (placeholder.length === 0) {
- placeholder = expedition.clone();
- placeholder.removeAttr(self.attr_name());
- placeholder.attr(self.add_namespace('data-magellan-expedition-clone'), '');
- expedition.before(placeholder);
- }
- expedition.css({position :'fixed', top : settings.fixed_top}).addClass('fixed');
- } else {
- expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']').remove();
- expedition.attr('style', styles).css('position', '').css('top', '').removeClass('fixed');
- }
- });
- },
-
- update_arrivals : function () {
- var self = this,
- window_top_offset = $(window).scrollTop();
-
- $('[' + this.attr_name() + ']', self.scope).each(function () {
- var expedition = $(this),
- settings = expedition.data(self.attr_name(true) + '-init'),
- offsets = self.offsets(expedition, window_top_offset),
- arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']'),
- active_item = false;
- offsets.each(function (idx, item) {
- if (item.viewport_offset >= item.top_offset) {
- var arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']');
- arrivals.not(item.arrival).removeClass(settings.active_class);
- item.arrival.addClass(settings.active_class);
- active_item = true;
- return true;
- }
- });
-
- if (!active_item) {
- arrivals.removeClass(settings.active_class);
- }
- });
- },
-
- offsets : function (expedition, window_offset) {
- var self = this,
- settings = expedition.data(self.attr_name(true) + '-init'),
- viewport_offset = window_offset;
-
- return expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']').map(function (idx, el) {
- var name = $(this).data(self.data_attr('magellan-arrival')),
- dest = $('[' + self.add_namespace('data-magellan-destination') + '=' + name + ']');
- if (dest.length > 0) {
- var top_offset = dest.offset().top - settings.destination_threshold;
- if (settings.offset_by_height) {
- top_offset = top_offset - expedition.outerHeight();
- }
- top_offset = Math.floor(top_offset);
- return {
- destination : dest,
- arrival : $(this),
- top_offset : top_offset,
- viewport_offset : viewport_offset
- }
- }
- }).sort(function (a, b) {
- if (a.top_offset < b.top_offset) {
- return -1;
- }
- if (a.top_offset > b.top_offset) {
- return 1;
- }
- return 0;
- });
- },
-
- data_attr : function (str) {
- if (this.namespace.length > 0) {
- return this.namespace + '-' + str;
- }
-
- return str;
- },
-
- off : function () {
- this.S(this.scope).off('.magellan');
- this.S(window).off('.magellan');
- },
-
- filterPathname : function (pathname) {
- pathname = pathname || '';
- return pathname
- .replace(/^\//,'')
- .replace(/(?:index|default).[a-zA-Z]{3,4}$/,'')
- .replace(/\/$/,'');
- },
-
- reflow : function () {
- var self = this;
- // remove placeholder expeditions used for height calculation purposes
- $('[' + self.add_namespace('data-magellan-expedition-clone') + ']', self.scope).remove();
- }
- };
-}(jQuery, window, window.document));
diff --git a/library/foundation/js/foundation/foundation.offcanvas.js b/library/foundation/js/foundation/foundation.offcanvas.js
deleted file mode 100644
index e73faaf68..000000000
--- a/library/foundation/js/foundation/foundation.offcanvas.js
+++ /dev/null
@@ -1,152 +0,0 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.offcanvas = {
- name : 'offcanvas',
-
- version : '5.5.2',
-
- settings : {
- open_method : 'move',
- close_on_click : false
- },
-
- init : function (scope, method, options) {
- this.bindings(method, options);
- },
-
- events : function () {
- var self = this,
- S = self.S,
- move_class = '',
- right_postfix = '',
- left_postfix = '';
-
- if (this.settings.open_method === 'move') {
- move_class = 'move-';
- right_postfix = 'right';
- left_postfix = 'left';
- } else if (this.settings.open_method === 'overlap_single') {
- move_class = 'offcanvas-overlap-';
- right_postfix = 'right';
- left_postfix = 'left';
- } else if (this.settings.open_method === 'overlap') {
- move_class = 'offcanvas-overlap';
- }
-
- S(this.scope).off('.offcanvas')
- .on('click.fndtn.offcanvas', '.left-off-canvas-toggle', function (e) {
- self.click_toggle_class(e, move_class + right_postfix);
- if (self.settings.open_method !== 'overlap') {
- S('.left-submenu').removeClass(move_class + right_postfix);
- }
- $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
- })
- .on('click.fndtn.offcanvas', '.left-off-canvas-menu a', function (e) {
- var settings = self.get_settings(e);
- var parent = S(this).parent();
-
- if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
- self.hide.call(self, move_class + right_postfix, self.get_wrapper(e));
- parent.parent().removeClass(move_class + right_postfix);
- } else if (S(this).parent().hasClass('has-submenu')) {
- e.preventDefault();
- S(this).siblings('.left-submenu').toggleClass(move_class + right_postfix);
- } else if (parent.hasClass('back')) {
- e.preventDefault();
- parent.parent().removeClass(move_class + right_postfix);
- }
- $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
- })
- .on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) {
- self.click_toggle_class(e, move_class + left_postfix);
- if (self.settings.open_method !== 'overlap') {
- S('.right-submenu').removeClass(move_class + left_postfix);
- }
- $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
- })
- .on('click.fndtn.offcanvas', '.right-off-canvas-menu a', function (e) {
- var settings = self.get_settings(e);
- var parent = S(this).parent();
-
- if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
- self.hide.call(self, move_class + left_postfix, self.get_wrapper(e));
- parent.parent().removeClass(move_class + left_postfix);
- } else if (S(this).parent().hasClass('has-submenu')) {
- e.preventDefault();
- S(this).siblings('.right-submenu').toggleClass(move_class + left_postfix);
- } else if (parent.hasClass('back')) {
- e.preventDefault();
- parent.parent().removeClass(move_class + left_postfix);
- }
- $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
- })
- .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
- self.click_remove_class(e, move_class + left_postfix);
- S('.right-submenu').removeClass(move_class + left_postfix);
- if (right_postfix) {
- self.click_remove_class(e, move_class + right_postfix);
- S('.left-submenu').removeClass(move_class + left_postfix);
- }
- $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
- })
- .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
- self.click_remove_class(e, move_class + left_postfix);
- $('.left-off-canvas-toggle').attr('aria-expanded', 'false');
- if (right_postfix) {
- self.click_remove_class(e, move_class + right_postfix);
- $('.right-off-canvas-toggle').attr('aria-expanded', 'false');
- }
- });
- },
-
- toggle : function (class_name, $off_canvas) {
- $off_canvas = $off_canvas || this.get_wrapper();
- if ($off_canvas.is('.' + class_name)) {
- this.hide(class_name, $off_canvas);
- } else {
- this.show(class_name, $off_canvas);
- }
- },
-
- show : function (class_name, $off_canvas) {
- $off_canvas = $off_canvas || this.get_wrapper();
- $off_canvas.trigger('open.fndtn.offcanvas');
- $off_canvas.addClass(class_name);
- },
-
- hide : function (class_name, $off_canvas) {
- $off_canvas = $off_canvas || this.get_wrapper();
- $off_canvas.trigger('close.fndtn.offcanvas');
- $off_canvas.removeClass(class_name);
- },
-
- click_toggle_class : function (e, class_name) {
- e.preventDefault();
- var $off_canvas = this.get_wrapper(e);
- this.toggle(class_name, $off_canvas);
- },
-
- click_remove_class : function (e, class_name) {
- e.preventDefault();
- var $off_canvas = this.get_wrapper(e);
- this.hide(class_name, $off_canvas);
- },
-
- get_settings : function (e) {
- var offcanvas = this.S(e.target).closest('[' + this.attr_name() + ']');
- return offcanvas.data(this.attr_name(true) + '-init') || this.settings;
- },
-
- get_wrapper : function (e) {
- var $off_canvas = this.S(e ? e.target : this.scope).closest('.off-canvas-wrap');
-
- if ($off_canvas.length === 0) {
- $off_canvas = this.S('.off-canvas-wrap');
- }
- return $off_canvas;
- },
-
- reflow : function () {}
- };
-}(jQuery, window, window.document));
diff --git a/library/foundation/js/foundation/foundation.orbit.js b/library/foundation/js/foundation/foundation.orbit.js
deleted file mode 100644
index 51e2a0453..000000000
--- a/library/foundation/js/foundation/foundation.orbit.js
+++ /dev/null
@@ -1,476 +0,0 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- var noop = function () {};
-
- var Orbit = function (el, settings) {
- // Don't reinitialize plugin
- if (el.hasClass(settings.slides_container_class)) {
- return this;
- }
-
- var self = this,
- container,
- slides_container = el,
- number_container,
- bullets_container,
- timer_container,
- idx = 0,
- animate,
- timer,
- locked = false,
- adjust_height_after = false;
-
- self.slides = function () {
- return slides_container.children(settings.slide_selector);
- };
-
- self.slides().first().addClass(settings.active_slide_class);
-
- self.update_slide_number = function (index) {
- if (settings.slide_number) {
- number_container.find('span:first').text(parseInt(index) + 1);
- number_container.find('span:last').text(self.slides().length);
- }
- if (settings.bullets) {
- bullets_container.children().removeClass(settings.bullets_active_class);
- $(bullets_container.children().get(index)).addClass(settings.bullets_active_class);
- }
- };
-
- self.update_active_link = function (index) {
- var link = $('[data-orbit-link="' + self.slides().eq(index).attr('data-orbit-slide') + '"]');
- link.siblings().removeClass(settings.bullets_active_class);
- link.addClass(settings.bullets_active_class);
- };
-
- self.build_markup = function () {
- slides_container.wrap('<div class="' + settings.container_class + '"></div>');
- container = slides_container.parent();
- slides_container.addClass(settings.slides_container_class);
-
- if (settings.stack_on_small) {
- container.addClass(settings.stack_on_small_class);
- }
-
- if (settings.navigation_arrows) {
- container.append($('<a href="#"><span></span></a>').addClass(settings.prev_class));
- container.append($('<a href="#"><span></span></a>').addClass(settings.next_class));
- }
-
- if (settings.timer) {
- timer_container = $('<div>').addClass(settings.timer_container_class);
- timer_container.append('<span>');
- timer_container.append($('<div>').addClass(settings.timer_progress_class));
- timer_container.addClass(settings.timer_paused_class);
- container.append(timer_container);
- }
-
- if (settings.slide_number) {
- number_container = $('<div>').addClass(settings.slide_number_class);
- number_container.append('<span></span> ' + settings.slide_number_text + ' <span></span>');
- container.append(number_container);
- }
-
- if (settings.bullets) {
- bullets_container = $('<ol>').addClass(settings.bullets_container_class);
- container.append(bullets_container);
- bullets_container.wrap('<div class="orbit-bullets-container"></div>');
- self.slides().each(function (idx, el) {
- var bullet = $('<li>').attr('data-orbit-slide', idx).on('click', self.link_bullet);;
- bullets_container.append(bullet);
- });
- }
-
- };
-
- self._goto = function (next_idx, start_timer) {
- // if (locked) {return false;}
- if (next_idx === idx) {return false;}
- if (typeof timer === 'object') {timer.restart();}
- var slides = self.slides();
-
- var dir = 'next';
- locked = true;
- if (next_idx < idx) {dir = 'prev';}
- if (next_idx >= slides.length) {
- if (!settings.circular) {
- return false;
- }
- next_idx = 0;
- } else if (next_idx < 0) {
- if (!settings.circular) {
- return false;
- }
- next_idx = slides.length - 1;
- }
-
- var current = $(slides.get(idx));
- var next = $(slides.get(next_idx));
-
- current.css('zIndex', 2);
- current.removeClass(settings.active_slide_class);
- next.css('zIndex', 4).addClass(settings.active_slide_class);
-
- slides_container.trigger('before-slide-change.fndtn.orbit');
- settings.before_slide_change();
- self.update_active_link(next_idx);
-
- var callback = function () {
- var unlock = function () {
- idx = next_idx;
- locked = false;
- if (start_timer === true) {timer = self.create_timer(); timer.start();}
- self.update_slide_number(idx);
- slides_container.trigger('after-slide-change.fndtn.orbit', [{slide_number : idx, total_slides : slides.length}]);
- settings.after_slide_change(idx, slides.length);
- };
- if (slides_container.outerHeight() != next.outerHeight() && settings.variable_height) {
- slides_container.animate({'height': next.outerHeight()}, 250, 'linear', unlock);
- } else {
- unlock();
- }
- };
-
- if (slides.length === 1) {callback(); return false;}
-
- var start_animation = function () {
- if (dir === 'next') {animate.next(current, next, callback);}
- if (dir === 'prev') {animate.prev(current, next, callback);}
- };
-
- if (next.outerHeight() > slides_container.outerHeight() && settings.variable_height) {
- slides_container.animate({'height': next.outerHeight()}, 250, 'linear', start_animation);
- } else {
- start_animation();
- }
- };
-
- self.next = function (e) {
- e.stopImmediatePropagation();
- e.preventDefault();
- self._goto(idx + 1);
- };
-
- self.prev = function (e) {
- e.stopImmediatePropagation();
- e.preventDefault();
- self._goto(idx - 1);
- };
-
- self.link_custom = function (e) {
- e.preventDefault();
- var link = $(this).attr('data-orbit-link');
- if ((typeof link === 'string') && (link = $.trim(link)) != '') {
- var slide = container.find('[data-orbit-slide=' + link + ']');
- if (slide.index() != -1) {self._goto(slide.index());}
- }
- };
-
- self.link_bullet = function (e) {
- var index = $(this).attr('data-orbit-slide');
- if ((typeof index === 'string') && (index = $.trim(index)) != '') {
- if (isNaN(parseInt(index))) {
- var slide = container.find('[data-orbit-slide=' + index + ']');
- if (slide.index() != -1) {self._goto(slide.index() + 1);}
- } else {
- self._goto(parseInt(index));
- }
- }
-
- }
-
- self.timer_callback = function () {
- self._goto(idx + 1, true);
- }
-
- self.compute_dimensions = function () {
- var current = $(self.slides().get(idx));
- var h = current.outerHeight();
- if (!settings.variable_height) {
- self.slides().each(function(){
- if ($(this).outerHeight() > h) { h = $(this).outerHeight(); }
- });
- }
- slides_container.height(h);
- };
-
- self.create_timer = function () {
- var t = new Timer(
- container.find('.' + settings.timer_container_class),
- settings,
- self.timer_callback
- );
- return t;
- };
-
- self.stop_timer = function () {
- if (typeof timer === 'object') {
- timer.stop();
- }
- };
-
- self.toggle_timer = function () {
- var t = container.find('.' + settings.timer_container_class);
- if (t.hasClass(settings.timer_paused_class)) {
- if (typeof timer === 'undefined') {timer = self.create_timer();}
- timer.start();
- } else {
- if (typeof timer === 'object') {timer.stop();}
- }
- };
-
- self.init = function () {
- self.build_markup();
- if (settings.timer) {
- timer = self.create_timer();
- Foundation.utils.image_loaded(this.slides().children('img'), timer.start);
- }
- animate = new FadeAnimation(settings, slides_container);
- if (settings.animation === 'slide') {
- animate = new SlideAnimation(settings, slides_container);
- }
-
- container.on('click', '.' + settings.next_class, self.next);
- container.on('click', '.' + settings.prev_class, self.prev);
-
- if (settings.next_on_click) {
- container.on('click', '.' + settings.slides_container_class + ' [data-orbit-slide]', self.link_bullet);
- }
-
- container.on('click', self.toggle_timer);
- if (settings.swipe) {
- container.on('touchstart.fndtn.orbit', function (e) {
- if (!e.touches) {e = e.originalEvent;}
- var data = {
- start_page_x : e.touches[0].pageX,
- start_page_y : e.touches[0].pageY,
- start_time : (new Date()).getTime(),
- delta_x : 0,
- is_scrolling : undefined
- };
- container.data('swipe-transition', data);
- e.stopPropagation();
- })
- .on('touchmove.fndtn.orbit', function (e) {
- if (!e.touches) {
- e = e.originalEvent;
- }
- // Ignore pinch/zoom events
- if (e.touches.length > 1 || e.scale && e.scale !== 1) {
- return;
- }
-
- var data = container.data('swipe-transition');
- if (typeof data === 'undefined') {data = {};}
-
- data.delta_x = e.touches[0].pageX - data.start_page_x;
-
- if ( typeof data.is_scrolling === 'undefined') {
- data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) );
- }
-
- if (!data.is_scrolling && !data.active) {
- e.preventDefault();
- var direction = (data.delta_x < 0) ? (idx + 1) : (idx - 1);
- data.active = true;
- self._goto(direction);
- }
- })
- .on('touchend.fndtn.orbit', function (e) {
- container.data('swipe-transition', {});
- e.stopPropagation();
- })
- }
- container.on('mouseenter.fndtn.orbit', function (e) {
- if (settings.timer && settings.pause_on_hover) {
- self.stop_timer();
- }
- })
- .on('mouseleave.fndtn.orbit', function (e) {
- if (settings.timer && settings.resume_on_mouseout) {
- timer.start();
- }
- });
-
- $(document).on('click', '[data-orbit-link]', self.link_custom);
- $(window).on('load resize', self.compute_dimensions);
- Foundation.utils.image_loaded(this.slides().children('img'), self.compute_dimensions);
- Foundation.utils.image_loaded(this.slides().children('img'), function () {
- container.prev('.' + settings.preloader_class).css('display', 'none');
- self.update_slide_number(0);
- self.update_active_link(0);
- slides_container.trigger('ready.fndtn.orbit');
- });
- };
-
- self.init();
- };
-
- var Timer = function (el, settings, callback) {
- var self = this,
- duration = settings.timer_speed,
- progress = el.find('.' + settings.timer_progress_class),
- start,
- timeout,
- left = -1;
-
- this.update_progress = function (w) {
- var new_progress = progress.clone();
- new_progress.attr('style', '');
- new_progress.css('width', w + '%');
- progress.replaceWith(new_progress);
- progress = new_progress;
- };
-
- this.restart = function () {
- clearTimeout(timeout);
- el.addClass(settings.timer_paused_class);
- left = -1;
- self.update_progress(0);
- };
-
- this.start = function () {
- if (!el.hasClass(settings.timer_paused_class)) {return true;}
- left = (left === -1) ? duration : left;
- el.removeClass(settings.timer_paused_class);
- start = new Date().getTime();
- progress.animate({'width' : '100%'}, left, 'linear');
- timeout = setTimeout(function () {
- self.restart();
- callback();
- }, left);
- el.trigger('timer-started.fndtn.orbit')
- };
-
- this.stop = function () {
- if (el.hasClass(settings.timer_paused_class)) {return true;}
- clearTimeout(timeout);
- el.addClass(settings.timer_paused_class);
- var end = new Date().getTime();
- left = left - (end - start);
- var w = 100 - ((left / duration) * 100);
- self.update_progress(w);
- el.trigger('timer-stopped.fndtn.orbit');
- };
- };
-
- var SlideAnimation = function (settings, container) {
- var duration = settings.animation_speed;
- var is_rtl = ($('html[dir=rtl]').length === 1);
- var margin = is_rtl ? 'marginRight' : 'marginLeft';
- var animMargin = {};
- animMargin[margin] = '0%';
-
- this.next = function (current, next, callback) {
- current.animate({marginLeft : '-100%'}, duration);
- next.animate(animMargin, duration, function () {
- current.css(margin, '100%');
- callback();
- });
- };
-
- this.prev = function (current, prev, callback) {
- current.animate({marginLeft : '100%'}, duration);
- prev.css(margin, '-100%');
- prev.animate(animMargin, duration, function () {
- current.css(margin, '100%');
- callback();
- });
- };
- };
-
- var FadeAnimation = function (settings, container) {
- var duration = settings.animation_speed;
- var is_rtl = ($('html[dir=rtl]').length === 1);
- var margin = is_rtl ? 'marginRight' : 'marginLeft';
-
- this.next = function (current, next, callback) {
- next.css({'margin' : '0%', 'opacity' : '0.01'});
- next.animate({'opacity' :'1'}, duration, 'linear', function () {
- current.css('margin', '100%');
- callback();
- });
- };
-
- this.prev = function (current, prev, callback) {
- prev.css({'margin' : '0%', 'opacity' : '0.01'});
- prev.animate({'opacity' : '1'}, duration, 'linear', function () {
- current.css('margin', '100%');
- callback();
- });
- };
- };
-
- Foundation.libs = Foundation.libs || {};
-
- Foundation.libs.orbit = {
- name : 'orbit',
-
- version : '5.5.2',
-
- settings : {
- animation : 'slide',
- timer_speed : 10000,
- pause_on_hover : true,
- resume_on_mouseout : false,
- next_on_click : true,
- animation_speed : 500,
- stack_on_small : false,
- navigation_arrows : true,
- slide_number : true,
- slide_number_text : 'of',
- container_class : 'orbit-container',
- stack_on_small_class : 'orbit-stack-on-small',
- next_class : 'orbit-next',
- prev_class : 'orbit-prev',
- timer_container_class : 'orbit-timer',
- timer_paused_class : 'paused',
- timer_progress_class : 'orbit-progress',
- slides_container_class : 'orbit-slides-container',
- preloader_class : 'preloader',
- slide_selector : '*',
- bullets_container_class : 'orbit-bullets',
- bullets_active_class : 'active',
- slide_number_class : 'orbit-slide-number',
- caption_class : 'orbit-caption',
- active_slide_class : 'active',
- orbit_transition_class : 'orbit-transitioning',
- bullets : true,
- circular : true,
- timer : true,
- variable_height : false,
- swipe : true,
- before_slide_change : noop,
- after_slide_change : noop
- },
-
- init : function (scope, method, options) {
- var self = this;
- this.bindings(method, options);
- },
-
- events : function (instance) {
- var orbit_instance = new Orbit(this.S(instance), this.S(instance).data('orbit-init'));
- this.S(instance).data(this.name + '-instance', orbit_instance);
- },
-
- reflow : function () {
- var self = this;
-
- if (self.S(self.scope).is('[data-orbit]')) {
- var $el = self.S(self.scope);
- var instance = $el.data(self.name + '-instance');
- instance.compute_dimensions();
- } else {
- self.S('[data-orbit]', self.scope).each(function (idx, el) {
- var $el = self.S(el);
- var opts = self.data_options($el);
- var instance = $el.data(self.name + '-instance');
- instance.compute_dimensions();
- });
- }
- }
- };
-
-}(jQuery, window, window.document));
diff --git a/library/foundation/js/foundation/foundation.reveal.js b/library/foundation/js/foundation/foundation.reveal.js
deleted file mode 100644
index f049f8049..000000000
--- a/library/foundation/js/foundation/foundation.reveal.js
+++ /dev/null
@@ -1,498 +0,0 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.reveal = {
- name : 'reveal',
-
- version : '5.5.2',
-
- locked : false,
-
- settings : {
- animation : 'fadeAndPop',
- animation_speed : 250,
- close_on_background_click : true,
- close_on_esc : true,
- dismiss_modal_class : 'close-reveal-modal',
- multiple_opened : false,
- bg_class : 'reveal-modal-bg',
- root_element : 'body',
- open : function(){},
- opened : function(){},
- close : function(){},
- closed : function(){},
- on_ajax_error: $.noop,
- bg : $('.reveal-modal-bg'),
- css : {
- open : {
- 'opacity' : 0,
- 'visibility' : 'visible',
- 'display' : 'block'
- },
- close : {
- 'opacity' : 1,
- 'visibility' : 'hidden',
- 'display' : 'none'
- }
- }
- },
-
- init : function (scope, method, options) {
- $.extend(true, this.settings, method, options);
- this.bindings(method, options);
- },
-
- events : function (scope) {
- var self = this,
- S = self.S;
-
- S(this.scope)
- .off('.reveal')
- .on('click.fndtn.reveal', '[' + this.add_namespace('data-reveal-id') + ']:not([disabled])', function (e) {
- e.preventDefault();
-
- if (!self.locked) {
- var element = S(this),
- ajax = element.data(self.data_attr('reveal-ajax')),
- replaceContentSel = element.data(self.data_attr('reveal-replace-content'));
-
- self.locked = true;
-
- if (typeof ajax === 'undefined') {
- self.open.call(self, element);
- } else {
- var url = ajax === true ? element.attr('href') : ajax;
- self.open.call(self, element, {url : url}, { replaceContentSel : replaceContentSel });
- }
- }
- });
-
- S(document)
- .on('click.fndtn.reveal', this.close_targets(), function (e) {
- e.preventDefault();
- if (!self.locked) {
- var settings = S('[' + self.attr_name() + '].open').data(self.attr_name(true) + '-init') || self.settings,
- bg_clicked = S(e.target)[0] === S('.' + settings.bg_class)[0];
-
- if (bg_clicked) {
- if (settings.close_on_background_click) {
- e.stopPropagation();
- } else {
- return;
- }
- }
-
- self.locked = true;
- self.close.call(self, bg_clicked ? S('[' + self.attr_name() + '].open:not(.toback)') : S(this).closest('[' + self.attr_name() + ']'));
- }
- });
-
- if (S('[' + self.attr_name() + ']', this.scope).length > 0) {
- S(this.scope)
- // .off('.reveal')
- .on('open.fndtn.reveal', this.settings.open)
- .on('opened.fndtn.reveal', this.settings.opened)
- .on('opened.fndtn.reveal', this.open_video)
- .on('close.fndtn.reveal', this.settings.close)
- .on('closed.fndtn.reveal', this.settings.closed)
- .on('closed.fndtn.reveal', this.close_video);
- } else {
- S(this.scope)
- // .off('.reveal')
- .on('open.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.open)
- .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.opened)
- .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.open_video)
- .on('close.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.close)
- .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.closed)
- .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.close_video);
- }
-
- return true;
- },
-
- // PATCH #3: turning on key up capture only when a reveal window is open
- key_up_on : function (scope) {
- var self = this;
-
- // PATCH #1: fixing multiple keyup event trigger from single key press
- self.S('body').off('keyup.fndtn.reveal').on('keyup.fndtn.reveal', function ( event ) {
- var open_modal = self.S('[' + self.attr_name() + '].open'),
- settings = open_modal.data(self.attr_name(true) + '-init') || self.settings ;
- // PATCH #2: making sure that the close event can be called only while unlocked,
- // so that multiple keyup.fndtn.reveal events don't prevent clean closing of the reveal window.
- if ( settings && event.which === 27 && settings.close_on_esc && !self.locked) { // 27 is the keycode for the Escape key
- self.close.call(self, open_modal);
- }
- });
-
- return true;
- },
-
- // PATCH #3: turning on key up capture only when a reveal window is open
- key_up_off : function (scope) {
- this.S('body').off('keyup.fndtn.reveal');
- return true;
- },
-
- open : function (target, ajax_settings) {
- var self = this,
- modal;
-
- if (target) {
- if (typeof target.selector !== 'undefined') {
- // Find the named node; only use the first one found, since the rest of the code assumes there's only one node
- modal = self.S('#' + target.data(self.data_attr('reveal-id'))).first();
- } else {
- modal = self.S(this.scope);
-
- ajax_settings = target;
- }
- } else {
- modal = self.S(this.scope);
- }
-
- var settings = modal.data(self.attr_name(true) + '-init');
- settings = settings || this.settings;
-
-
- if (modal.hasClass('open') && target.attr('data-reveal-id') == modal.attr('id')) {
- return self.close(modal);
- }
-
- if (!modal.hasClass('open')) {
- var open_modal = self.S('[' + self.attr_name() + '].open');
-
- if (typeof modal.data('css-top') === 'undefined') {
- modal.data('css-top', parseInt(modal.css('top'), 10))
- .data('offset', this.cache_offset(modal));
- }
-
- modal.attr('tabindex','0').attr('aria-hidden','false');
-
- this.key_up_on(modal); // PATCH #3: turning on key up capture only when a reveal window is open
-
- // Prevent namespace event from triggering twice
- modal.on('open.fndtn.reveal', function(e) {
- if (e.namespace !== 'fndtn.reveal') return;
- });
-
- modal.on('open.fndtn.reveal').trigger('open.fndtn.reveal');
-
- if (open_modal.length < 1) {
- this.toggle_bg(modal, true);
- }
-
- if (typeof ajax_settings === 'string') {
- ajax_settings = {
- url : ajax_settings
- };
- }
-
- if (typeof ajax_settings === 'undefined' || !ajax_settings.url) {
- if (open_modal.length > 0) {
- if (settings.multiple_opened) {
- self.to_back(open_modal);
- } else {
- self.hide(open_modal, settings.css.close);
- }
- }
-
- this.show(modal, settings.css.open);
- } else {
- var old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null;
- $.extend(ajax_settings, {
- success : function (data, textStatus, jqXHR) {
- if ( $.isFunction(old_success) ) {
- var result = old_success(data, textStatus, jqXHR);
- if (typeof result == 'string') {
- data = result;
- }
- }
-
- if (typeof options !== 'undefined' && typeof options.replaceContentSel !== 'undefined') {
- modal.find(options.replaceContentSel).html(data);
- } else {
- modal.html(data);
- }
-
- self.S(modal).foundation('section', 'reflow');
- self.S(modal).children().foundation();
-
- if (open_modal.length > 0) {
- if (settings.multiple_opened) {
- self.to_back(open_modal);
- } else {
- self.hide(open_modal, settings.css.close);
- }
- }
- self.show(modal, settings.css.open);
- }
- });
-
- // check for if user initalized with error callback
- if (settings.on_ajax_error !== $.noop) {
- $.extend(ajax_settings, {
- error : settings.on_ajax_error
- });
- }
-
- $.ajax(ajax_settings);
- }
- }
- self.S(window).trigger('resize');
- },
-
- close : function (modal) {
- var modal = modal && modal.length ? modal : this.S(this.scope),
- open_modals = this.S('[' + this.attr_name() + '].open'),
- settings = modal.data(this.attr_name(true) + '-init') || this.settings,
- self = this;
-
- if (open_modals.length > 0) {
-
- modal.removeAttr('tabindex','0').attr('aria-hidden','true');
-
- this.locked = true;
- this.key_up_off(modal); // PATCH #3: turning on key up capture only when a reveal window is open
-
- modal.trigger('close.fndtn.reveal');
-
- if ((settings.multiple_opened && open_modals.length === 1) || !settings.multiple_opened || modal.length > 1) {
- self.toggle_bg(modal, false);
- self.to_front(modal);
- }
-
- if (settings.multiple_opened) {
- self.hide(modal, settings.css.close, settings);
- self.to_front($($.makeArray(open_modals).reverse()[1]));
- } else {
- self.hide(open_modals, settings.css.close, settings);
- }
- }
- },
-
- close_targets : function () {
- var base = '.' + this.settings.dismiss_modal_class;
-
- if (this.settings.close_on_background_click) {
- return base + ', .' + this.settings.bg_class;
- }
-
- return base;
- },
-
- toggle_bg : function (modal, state) {
- if (this.S('.' + this.settings.bg_class).length === 0) {
- this.settings.bg = $('<div />', {'class': this.settings.bg_class})
- .appendTo('body').hide();
- }
-
- var visible = this.settings.bg.filter(':visible').length > 0;
- if ( state != visible ) {
- if ( state == undefined ? visible : !state ) {
- this.hide(this.settings.bg);
- } else {
- this.show(this.settings.bg);
- }
- }
- },
-
- show : function (el, css) {
- // is modal
- if (css) {
- var settings = el.data(this.attr_name(true) + '-init') || this.settings,
- root_element = settings.root_element,
- context = this;
-
- if (el.parent(root_element).length === 0) {
- var placeholder = el.wrap('<div style="display: none;" />').parent();
-
- el.on('closed.fndtn.reveal.wrapped', function () {
- el.detach().appendTo(placeholder);
- el.unwrap().unbind('closed.fndtn.reveal.wrapped');
- });
-
- el.detach().appendTo(root_element);
- }
-
- var animData = getAnimationData(settings.animation);
- if (!animData.animate) {
- this.locked = false;
- }
- if (animData.pop) {
- css.top = $(window).scrollTop() - el.data('offset') + 'px';
- var end_css = {
- top: $(window).scrollTop() + el.data('css-top') + 'px',
- opacity: 1
- };
-
- return setTimeout(function () {
- return el
- .css(css)
- .animate(end_css, settings.animation_speed, 'linear', function () {
- context.locked = false;
- el.trigger('opened.fndtn.reveal');
- })
- .addClass('open');
- }, settings.animation_speed / 2);
- }
-
- if (animData.fade) {
- css.top = $(window).scrollTop() + el.data('css-top') + 'px';
- var end_css = {opacity: 1};
-
- return setTimeout(function () {
- return el
- .css(css)
- .animate(end_css, settings.animation_speed, 'linear', function () {
- context.locked = false;
- el.trigger('opened.fndtn.reveal');
- })
- .addClass('open');
- }, settings.animation_speed / 2);
- }
-
- return el.css(css).show().css({opacity : 1}).addClass('open').trigger('opened.fndtn.reveal');
- }
-
- var settings = this.settings;
-
- // should we animate the background?
- if (getAnimationData(settings.animation).fade) {
- return el.fadeIn(settings.animation_speed / 2);
- }
-
- this.locked = false;
-
- return el.show();
- },
-
- to_back : function(el) {
- el.addClass('toback');
- },
-
- to_front : function(el) {
- el.removeClass('toback');
- },
-
- hide : function (el, css) {
- // is modal
- if (css) {
- var settings = el.data(this.attr_name(true) + '-init'),
- context = this;
- settings = settings || this.settings;
-
- var animData = getAnimationData(settings.animation);
- if (!animData.animate) {
- this.locked = false;
- }
- if (animData.pop) {
- var end_css = {
- top: - $(window).scrollTop() - el.data('offset') + 'px',
- opacity: 0
- };
-
- return setTimeout(function () {
- return el
- .animate(end_css, settings.animation_speed, 'linear', function () {
- context.locked = false;
- el.css(css).trigger('closed.fndtn.reveal');
- })
- .removeClass('open');
- }, settings.animation_speed / 2);
- }
-
- if (animData.fade) {
- var end_css = {opacity : 0};
-
- return setTimeout(function () {
- return el
- .animate(end_css, settings.animation_speed, 'linear', function () {
- context.locked = false;
- el.css(css).trigger('closed.fndtn.reveal');
- })
- .removeClass('open');
- }, settings.animation_speed / 2);
- }
-
- return el.hide().css(css).removeClass('open').trigger('closed.fndtn.reveal');
- }
-
- var settings = this.settings;
-
- // should we animate the background?
- if (getAnimationData(settings.animation).fade) {
- return el.fadeOut(settings.animation_speed / 2);
- }
-
- return el.hide();
- },
-
- close_video : function (e) {
- var video = $('.flex-video', e.target),
- iframe = $('iframe', video);
-
- if (iframe.length > 0) {
- iframe.attr('data-src', iframe[0].src);
- iframe.attr('src', iframe.attr('src'));
- video.hide();
- }
- },
-
- open_video : function (e) {
- var video = $('.flex-video', e.target),
- iframe = video.find('iframe');
-
- if (iframe.length > 0) {
- var data_src = iframe.attr('data-src');
- if (typeof data_src === 'string') {
- iframe[0].src = iframe.attr('data-src');
- } else {
- var src = iframe[0].src;
- iframe[0].src = undefined;
- iframe[0].src = src;
- }
- video.show();
- }
- },
-
- data_attr : function (str) {
- if (this.namespace.length > 0) {
- return this.namespace + '-' + str;
- }
-
- return str;
- },
-
- cache_offset : function (modal) {
- var offset = modal.show().height() + parseInt(modal.css('top'), 10) + modal.scrollY;
-
- modal.hide();
-
- return offset;
- },
-
- off : function () {
- $(this.scope).off('.fndtn.reveal');
- },
-
- reflow : function () {}
- };
-
- /*
- * getAnimationData('popAndFade') // {animate: true, pop: true, fade: true}
- * getAnimationData('fade') // {animate: true, pop: false, fade: true}
- * getAnimationData('pop') // {animate: true, pop: true, fade: false}
- * getAnimationData('foo') // {animate: false, pop: false, fade: false}
- * getAnimationData(null) // {animate: false, pop: false, fade: false}
- */
- function getAnimationData(str) {
- var fade = /fade/i.test(str);
- var pop = /pop/i.test(str);
- return {
- animate : fade || pop,
- pop : pop,
- fade : fade
- };
- }
-}(jQuery, window, window.document));
diff --git a/library/foundation/js/foundation/foundation.slider.js b/library/foundation/js/foundation/foundation.slider.js
deleted file mode 100644
index 5c8a40f9d..000000000
--- a/library/foundation/js/foundation/foundation.slider.js
+++ /dev/null
@@ -1,281 +0,0 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.slider = {
- name : 'slider',
-
- version : '5.5.2',
-
- settings : {
- start : 0,
- end : 100,
- step : 1,
- precision : null,
- initial : null,
- display_selector : '',
- vertical : false,
- trigger_input_change : false,
- on_change : function () {}
- },
-
- cache : {},
-
- init : function (scope, method, options) {
- Foundation.inherit(this, 'throttle');
- this.bindings(method, options);
- this.reflow();
- },
-
- events : function () {
- var self = this;
-
- $(this.scope)
- .off('.slider')
- .on('mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider',
- '[' + self.attr_name() + ']:not(.disabled, [disabled]) .range-slider-handle', function (e) {
- if (!self.cache.active) {
- e.preventDefault();
- self.set_active_slider($(e.target));
- }
- })
- .on('mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider', function (e) {
- if (!!self.cache.active) {
- e.preventDefault();
- if ($.data(self.cache.active[0], 'settings').vertical) {
- var scroll_offset = 0;
- if (!e.pageY) {
- scroll_offset = window.scrollY;
- }
- self.calculate_position(self.cache.active, self.get_cursor_position(e, 'y') + scroll_offset);
- } else {
- self.calculate_position(self.cache.active, self.get_cursor_position(e, 'x'));
- }
- }
- })
- .on('mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider', function (e) {
- self.remove_active_slider();
- })
- .on('change.fndtn.slider', function (e) {
- self.settings.on_change();
- });
-
- self.S(window)
- .on('resize.fndtn.slider', self.throttle(function (e) {
- self.reflow();
- }, 300));
-
- // update slider value as users change input value
- this.S('[' + this.attr_name() + ']').each(function () {
- var slider = $(this),
- handle = slider.children('.range-slider-handle')[0],
- settings = self.initialize_settings(handle);
-
- if (settings.display_selector != '') {
- $(settings.display_selector).each(function(){
- if (this.hasOwnProperty('value')) {
- $(this).change(function(){
- // is there a better way to do this?
- slider.foundation("slider", "set_value", $(this).val());
- });
- }
- });
- }
- });
- },
-
- get_cursor_position : function (e, xy) {
- var pageXY = 'page' + xy.toUpperCase(),
- clientXY = 'client' + xy.toUpperCase(),
- position;
-
- if (typeof e[pageXY] !== 'undefined') {
- position = e[pageXY];
- } else if (typeof e.originalEvent[clientXY] !== 'undefined') {
- position = e.originalEvent[clientXY];
- } else if (e.originalEvent.touches && e.originalEvent.touches[0] && typeof e.originalEvent.touches[0][clientXY] !== 'undefined') {
- position = e.originalEvent.touches[0][clientXY];
- } else if (e.currentPoint && typeof e.currentPoint[xy] !== 'undefined') {
- position = e.currentPoint[xy];
- }
-
- return position;
- },
-
- set_active_slider : function ($handle) {
- this.cache.active = $handle;
- },
-
- remove_active_slider : function () {
- this.cache.active = null;
- },
-
- calculate_position : function ($handle, cursor_x) {
- var self = this,
- settings = $.data($handle[0], 'settings'),
- handle_l = $.data($handle[0], 'handle_l'),
- handle_o = $.data($handle[0], 'handle_o'),
- bar_l = $.data($handle[0], 'bar_l'),
- bar_o = $.data($handle[0], 'bar_o');
-
- requestAnimationFrame(function () {
- var pct;
-
- if (Foundation.rtl && !settings.vertical) {
- pct = self.limit_to(((bar_o + bar_l - cursor_x) / bar_l), 0, 1);
- } else {
- pct = self.limit_to(((cursor_x - bar_o) / bar_l), 0, 1);
- }
-
- pct = settings.vertical ? 1 - pct : pct;
-
- var norm = self.normalized_value(pct, settings.start, settings.end, settings.step, settings.precision);
-
- self.set_ui($handle, norm);
- });
- },
-
- set_ui : function ($handle, value) {
- var settings = $.data($handle[0], 'settings'),
- handle_l = $.data($handle[0], 'handle_l'),
- bar_l = $.data($handle[0], 'bar_l'),
- norm_pct = this.normalized_percentage(value, settings.start, settings.end),
- handle_offset = norm_pct * (bar_l - handle_l) - 1,
- progress_bar_length = norm_pct * 100,
- $handle_parent = $handle.parent(),
- $hidden_inputs = $handle.parent().children('input[type=hidden]');
-
- if (Foundation.rtl && !settings.vertical) {
- handle_offset = -handle_offset;
- }
-
- handle_offset = settings.vertical ? -handle_offset + bar_l - handle_l + 1 : handle_offset;
- this.set_translate($handle, handle_offset, settings.vertical);
-
- if (settings.vertical) {
- $handle.siblings('.range-slider-active-segment').css('height', progress_bar_length + '%');
- } else {
- $handle.siblings('.range-slider-active-segment').css('width', progress_bar_length + '%');
- }
-
- $handle_parent.attr(this.attr_name(), value).trigger('change.fndtn.slider');
-
- $hidden_inputs.val(value);
- if (settings.trigger_input_change) {
- $hidden_inputs.trigger('change.fndtn.slider');
- }
-
- if (!$handle[0].hasAttribute('aria-valuemin')) {
- $handle.attr({
- 'aria-valuemin' : settings.start,
- 'aria-valuemax' : settings.end
- });
- }
- $handle.attr('aria-valuenow', value);
-
- if (settings.display_selector != '') {
- $(settings.display_selector).each(function () {
- if (this.hasAttribute('value')) {
- $(this).val(value);
- } else {
- $(this).text(value);
- }
- });
- }
-
- },
-
- normalized_percentage : function (val, start, end) {
- return Math.min(1, (val - start) / (end - start));
- },
-
- normalized_value : function (val, start, end, step, precision) {
- var range = end - start,
- point = val * range,
- mod = (point - (point % step)) / step,
- rem = point % step,
- round = ( rem >= step * 0.5 ? step : 0);
- return ((mod * step + round) + start).toFixed(precision);
- },
-
- set_translate : function (ele, offset, vertical) {
- if (vertical) {
- $(ele)
- .css('-webkit-transform', 'translateY(' + offset + 'px)')
- .css('-moz-transform', 'translateY(' + offset + 'px)')
- .css('-ms-transform', 'translateY(' + offset + 'px)')
- .css('-o-transform', 'translateY(' + offset + 'px)')
- .css('transform', 'translateY(' + offset + 'px)');
- } else {
- $(ele)
- .css('-webkit-transform', 'translateX(' + offset + 'px)')
- .css('-moz-transform', 'translateX(' + offset + 'px)')
- .css('-ms-transform', 'translateX(' + offset + 'px)')
- .css('-o-transform', 'translateX(' + offset + 'px)')
- .css('transform', 'translateX(' + offset + 'px)');
- }
- },
-
- limit_to : function (val, min, max) {
- return Math.min(Math.max(val, min), max);
- },
-
- initialize_settings : function (handle) {
- var settings = $.extend({}, this.settings, this.data_options($(handle).parent())),
- decimal_places_match_result;
-
- if (settings.precision === null) {
- decimal_places_match_result = ('' + settings.step).match(/\.([\d]*)/);
- settings.precision = decimal_places_match_result && decimal_places_match_result[1] ? decimal_places_match_result[1].length : 0;
- }
-
- if (settings.vertical) {
- $.data(handle, 'bar_o', $(handle).parent().offset().top);
- $.data(handle, 'bar_l', $(handle).parent().outerHeight());
- $.data(handle, 'handle_o', $(handle).offset().top);
- $.data(handle, 'handle_l', $(handle).outerHeight());
- } else {
- $.data(handle, 'bar_o', $(handle).parent().offset().left);
- $.data(handle, 'bar_l', $(handle).parent().outerWidth());
- $.data(handle, 'handle_o', $(handle).offset().left);
- $.data(handle, 'handle_l', $(handle).outerWidth());
- }
-
- $.data(handle, 'bar', $(handle).parent());
- return $.data(handle, 'settings', settings);
- },
-
- set_initial_position : function ($ele) {
- var settings = $.data($ele.children('.range-slider-handle')[0], 'settings'),
- initial = ((typeof settings.initial == 'number' && !isNaN(settings.initial)) ? settings.initial : Math.floor((settings.end - settings.start) * 0.5 / settings.step) * settings.step + settings.start),
- $handle = $ele.children('.range-slider-handle');
- this.set_ui($handle, initial);
- },
-
- set_value : function (value) {
- var self = this;
- $('[' + self.attr_name() + ']', this.scope).each(function () {
- $(this).attr(self.attr_name(), value);
- });
- if (!!$(this.scope).attr(self.attr_name())) {
- $(this.scope).attr(self.attr_name(), value);
- }
- self.reflow();
- },
-
- reflow : function () {
- var self = this;
- self.S('[' + this.attr_name() + ']').each(function () {
- var handle = $(this).children('.range-slider-handle')[0],
- val = $(this).attr(self.attr_name());
- self.initialize_settings(handle);
-
- if (val) {
- self.set_ui($(handle), parseFloat(val));
- } else {
- self.set_initial_position($(this));
- }
- });
- }
- };
-
-}(jQuery, window, window.document));
diff --git a/library/foundation/js/foundation/foundation.tab.js b/library/foundation/js/foundation/foundation.tab.js
deleted file mode 100644
index 7875dbe9f..000000000
--- a/library/foundation/js/foundation/foundation.tab.js
+++ /dev/null
@@ -1,249 +0,0 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.tab = {
- name : 'tab',
-
- version : '5.5.2',
-
- settings : {
- active_class : 'active',
- callback : function () {},
- deep_linking : false,
- scroll_to_content : true,
- is_hover : false
- },
-
- default_tab_hashes : [],
-
- init : function (scope, method, options) {
- var self = this,
- S = this.S;
-
- // Store the default active tabs which will be referenced when the
- // location hash is absent, as in the case of navigating the tabs and
- // returning to the first viewing via the browser Back button.
- S('[' + this.attr_name() + '] > .active > a', this.scope).each(function () {
- self.default_tab_hashes.push(this.hash);
- });
-
- // store the initial href, which is used to allow correct behaviour of the
- // browser back button when deep linking is turned on.
- self.entry_location = window.location.href;
-
- this.bindings(method, options);
- this.handle_location_hash_change();
- },
-
- events : function () {
- var self = this,
- S = this.S;
-
- var usual_tab_behavior = function (e, target) {
- var settings = S(target).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
- if (!settings.is_hover || Modernizr.touch) {
- e.preventDefault();
- e.stopPropagation();
- self.toggle_active_tab(S(target).parent());
- }
- };
-
- S(this.scope)
- .off('.tab')
- // Key event: focus/tab key
- .on('keydown.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
- var el = this;
- var keyCode = e.keyCode || e.which;
- // if user pressed tab key
- if (keyCode == 9) {
- e.preventDefault();
- // TODO: Change usual_tab_behavior into accessibility function?
- usual_tab_behavior(e, el);
- }
- })
- // Click event: tab title
- .on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
- var el = this;
- usual_tab_behavior(e, el);
- })
- // Hover event: tab title
- .on('mouseenter.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) {
- var settings = S(this).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
- if (settings.is_hover) {
- self.toggle_active_tab(S(this).parent());
- }
- });
-
- // Location hash change event
- S(window).on('hashchange.fndtn.tab', function (e) {
- e.preventDefault();
- self.handle_location_hash_change();
- });
- },
-
- handle_location_hash_change : function () {
-
- var self = this,
- S = this.S;
-
- S('[' + this.attr_name() + ']', this.scope).each(function () {
- var settings = S(this).data(self.attr_name(true) + '-init');
- if (settings.deep_linking) {
- // Match the location hash to a label
- var hash;
- if (settings.scroll_to_content) {
- hash = self.scope.location.hash;
- } else {
- // prefix the hash to prevent anchor scrolling
- hash = self.scope.location.hash.replace('fndtn-', '');
- }
- if (hash != '') {
- // Check whether the location hash references a tab content div or
- // another element on the page (inside or outside the tab content div)
- var hash_element = S(hash);
- if (hash_element.hasClass('content') && hash_element.parent().hasClass('tabs-content')) {
- // Tab content div
- self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + hash + ']').parent());
- } else {
- // Not the tab content div. If inside the tab content, find the
- // containing tab and toggle it as active.
- var hash_tab_container_id = hash_element.closest('.content').attr('id');
- if (hash_tab_container_id != undefined) {
- self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=#' + hash_tab_container_id + ']').parent(), hash);
- }
- }
- } else {
- // Reference the default tab hashes which were initialized in the init function
- for (var ind = 0; ind < self.default_tab_hashes.length; ind++) {
- self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + self.default_tab_hashes[ind] + ']').parent());
- }
- }
- }
- });
- },
-
- toggle_active_tab : function (tab, location_hash) {
- var self = this,
- S = self.S,
- tabs = tab.closest('[' + this.attr_name() + ']'),
- tab_link = tab.find('a'),
- anchor = tab.children('a').first(),
- target_hash = '#' + anchor.attr('href').split('#')[1],
- target = S(target_hash),
- siblings = tab.siblings(),
- settings = tabs.data(this.attr_name(true) + '-init'),
- interpret_keyup_action = function (e) {
- // Light modification of Heydon Pickering's Practical ARIA Examples: http://heydonworks.com/practical_aria_examples/js/a11y.js
-
- // define current, previous and next (possible) tabs
-
- var $original = $(this);
- var $prev = $(this).parents('li').prev().children('[role="tab"]');
- var $next = $(this).parents('li').next().children('[role="tab"]');
- var $target;
-
- // find the direction (prev or next)
-
- switch (e.keyCode) {
- case 37:
- $target = $prev;
- break;
- case 39:
- $target = $next;
- break;
- default:
- $target = false
- break;
- }
-
- if ($target.length) {
- $original.attr({
- 'tabindex' : '-1',
- 'aria-selected' : null
- });
- $target.attr({
- 'tabindex' : '0',
- 'aria-selected' : true
- }).focus();
- }
-
- // Hide panels
-
- $('[role="tabpanel"]')
- .attr('aria-hidden', 'true');
-
- // Show panel which corresponds to target
-
- $('#' + $(document.activeElement).attr('href').substring(1))
- .attr('aria-hidden', null);
-
- },
- go_to_hash = function(hash) {
- // This function allows correct behaviour of the browser's back button when deep linking is enabled. Without it
- // the user would get continually redirected to the default hash.
- var is_entry_location = window.location.href === self.entry_location,
- default_hash = settings.scroll_to_content ? self.default_tab_hashes[0] : is_entry_location ? window.location.hash :'fndtn-' + self.default_tab_hashes[0].replace('#', '')
-
- if (!(is_entry_location && hash === default_hash)) {
- window.location.hash = hash;
- }
- };
-
- // allow usage of data-tab-content attribute instead of href
- if (anchor.data('tab-content')) {
- target_hash = '#' + anchor.data('tab-content').split('#')[1];
- target = S(target_hash);
- }
-
- if (settings.deep_linking) {
-
- if (settings.scroll_to_content) {
-
- // retain current hash to scroll to content
- go_to_hash(location_hash || target_hash);
-
- if (location_hash == undefined || location_hash == target_hash) {
- tab.parent()[0].scrollIntoView();
- } else {
- S(target_hash)[0].scrollIntoView();
- }
- } else {
- // prefix the hashes so that the browser doesn't scroll down
- if (location_hash != undefined) {
- go_to_hash('fndtn-' + location_hash.replace('#', ''));
- } else {
- go_to_hash('fndtn-' + target_hash.replace('#', ''));
- }
- }
- }
-
- // WARNING: The activation and deactivation of the tab content must
- // occur after the deep linking in order to properly refresh the browser
- // window (notably in Chrome).
- // Clean up multiple attr instances to done once
- tab.addClass(settings.active_class).triggerHandler('opened');
- tab_link.attr({'aria-selected' : 'true', tabindex : 0});
- siblings.removeClass(settings.active_class)
- siblings.find('a').attr({'aria-selected' : 'false', tabindex : -1});
- target.siblings().removeClass(settings.active_class).attr({'aria-hidden' : 'true', tabindex : -1});
- target.addClass(settings.active_class).attr('aria-hidden', 'false').removeAttr('tabindex');
- settings.callback(tab);
- target.triggerHandler('toggled', [target]);
- tabs.triggerHandler('toggled', [tab]);
-
- tab_link.off('keydown').on('keydown', interpret_keyup_action );
- },
-
- data_attr : function (str) {
- if (this.namespace.length > 0) {
- return this.namespace + '-' + str;
- }
-
- return str;
- },
-
- off : function () {},
-
- reflow : function () {}
- };
-}(jQuery, window, window.document));
diff --git a/library/foundation/js/foundation/foundation.tooltip.js b/library/foundation/js/foundation/foundation.tooltip.js
deleted file mode 100644
index c69f26c66..000000000
--- a/library/foundation/js/foundation/foundation.tooltip.js
+++ /dev/null
@@ -1,339 +0,0 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.tooltip = {
- name : 'tooltip',
-
- version : '5.5.2',
-
- settings : {
- additional_inheritable_classes : [],
- tooltip_class : '.tooltip',
- append_to : 'body',
- touch_close_text : 'Tap To Close',
- disable_for_touch : false,
- hover_delay : 200,
- show_on : 'all',
- tip_template : function (selector, content) {
- return '<span data-selector="' + selector + '" id="' + selector + '" class="'
- + Foundation.libs.tooltip.settings.tooltip_class.substring(1)
- + '" role="tooltip">' + content + '<span class="nub"></span></span>';
- }
- },
-
- cache : {},
-
- init : function (scope, method, options) {
- Foundation.inherit(this, 'random_str');
- this.bindings(method, options);
- },
-
- should_show : function (target, tip) {
- var settings = $.extend({}, this.settings, this.data_options(target));
-
- if (settings.show_on === 'all') {
- return true;
- } else if (this.small() && settings.show_on === 'small') {
- return true;
- } else if (this.medium() && settings.show_on === 'medium') {
- return true;
- } else if (this.large() && settings.show_on === 'large') {
- return true;
- }
- return false;
- },
-
- medium : function () {
- return matchMedia(Foundation.media_queries['medium']).matches;
- },
-
- large : function () {
- return matchMedia(Foundation.media_queries['large']).matches;
- },
-
- events : function (instance) {
- var self = this,
- S = self.S;
-
- self.create(this.S(instance));
-
- function _startShow(elt, $this, immediate) {
- if (elt.timer) {
- return;
- }
-
- if (immediate) {
- elt.timer = null;
- self.showTip($this);
- } else {
- elt.timer = setTimeout(function () {
- elt.timer = null;
- self.showTip($this);
- }.bind(elt), self.settings.hover_delay);
- }
- }
-
- function _startHide(elt, $this) {
- if (elt.timer) {
- clearTimeout(elt.timer);
- elt.timer = null;
- }
-
- self.hide($this);
- }
-
- $(this.scope)
- .off('.tooltip')
- .on('mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip',
- '[' + this.attr_name() + ']', function (e) {
- var $this = S(this),
- settings = $.extend({}, self.settings, self.data_options($this)),
- is_touch = false;
-
- if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type) && S(e.target).is('a')) {
- return false;
- }
-
- if (/mouse/i.test(e.type) && self.ie_touch(e)) {
- return false;
- }
-
- if ($this.hasClass('open')) {
- if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
- e.preventDefault();
- }
- self.hide($this);
- } else {
- if (settings.disable_for_touch && Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
- return;
- } else if (!settings.disable_for_touch && Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
- e.preventDefault();
- S(settings.tooltip_class + '.open').hide();
- is_touch = true;
- // close other open tooltips on touch
- if ($('.open[' + self.attr_name() + ']').length > 0) {
- var prevOpen = S($('.open[' + self.attr_name() + ']')[0]);
- self.hide(prevOpen);
- }
- }
-
- if (/enter|over/i.test(e.type)) {
- _startShow(this, $this);
-
- } else if (e.type === 'mouseout' || e.type === 'mouseleave') {
- _startHide(this, $this);
- } else {
- _startShow(this, $this, true);
- }
- }
- })
- .on('mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', '[' + this.attr_name() + '].open', function (e) {
- if (/mouse/i.test(e.type) && self.ie_touch(e)) {
- return false;
- }
-
- if ($(this).data('tooltip-open-event-type') == 'touch' && e.type == 'mouseleave') {
- return;
- } else if ($(this).data('tooltip-open-event-type') == 'mouse' && /MSPointerDown|touchstart/i.test(e.type)) {
- self.convert_to_touch($(this));
- } else {
- _startHide(this, $(this));
- }
- })
- .on('DOMNodeRemoved DOMAttrModified', '[' + this.attr_name() + ']:not(a)', function (e) {
- _startHide(this, S(this));
- });
- },
-
- ie_touch : function (e) {
- // How do I distinguish between IE11 and Windows Phone 8?????
- return false;
- },
-
- showTip : function ($target) {
- var $tip = this.getTip($target);
- if (this.should_show($target, $tip)) {
- return this.show($target);
- }
- return;
- },
-
- getTip : function ($target) {
- var selector = this.selector($target),
- settings = $.extend({}, this.settings, this.data_options($target)),
- tip = null;
-
- if (selector) {
- tip = this.S('span[data-selector="' + selector + '"]' + settings.tooltip_class);
- }
-
- return (typeof tip === 'object') ? tip : false;
- },
-
- selector : function ($target) {
- var dataSelector = $target.attr(this.attr_name()) || $target.attr('data-selector');
-
- if (typeof dataSelector != 'string') {
- dataSelector = this.random_str(6);
- $target
- .attr('data-selector', dataSelector)
- .attr('aria-describedby', dataSelector);
- }
-
- return dataSelector;
- },
-
- create : function ($target) {
- var self = this,
- settings = $.extend({}, this.settings, this.data_options($target)),
- tip_template = this.settings.tip_template;
-
- if (typeof settings.tip_template === 'string' && window.hasOwnProperty(settings.tip_template)) {
- tip_template = window[settings.tip_template];
- }
-
- var $tip = $(tip_template(this.selector($target), $('<div></div>').html($target.attr('title')).html())),
- classes = this.inheritable_classes($target);
-
- $tip.addClass(classes).appendTo(settings.append_to);
-
- if (Modernizr.touch) {
- $tip.append('<span class="tap-to-close">' + settings.touch_close_text + '</span>');
- $tip.on('touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', function (e) {
- self.hide($target);
- });
- }
-
- $target.removeAttr('title').attr('title', '');
- },
-
- reposition : function (target, tip, classes) {
- var width, nub, nubHeight, nubWidth, column, objPos;
-
- tip.css('visibility', 'hidden').show();
-
- width = target.data('width');
- nub = tip.children('.nub');
- nubHeight = nub.outerHeight();
- nubWidth = nub.outerHeight();
-
- if (this.small()) {
- tip.css({'width' : '100%'});
- } else {
- tip.css({'width' : (width) ? width : 'auto'});
- }
-
- objPos = function (obj, top, right, bottom, left, width) {
- return obj.css({
- 'top' : (top) ? top : 'auto',
- 'bottom' : (bottom) ? bottom : 'auto',
- 'left' : (left) ? left : 'auto',
- 'right' : (right) ? right : 'auto'
- }).end();
- };
-
- objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', target.offset().left);
-
- if (this.small()) {
- objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', 12.5, $(this.scope).width());
- tip.addClass('tip-override');
- objPos(nub, -nubHeight, 'auto', 'auto', target.offset().left);
- } else {
- var left = target.offset().left;
- if (Foundation.rtl) {
- nub.addClass('rtl');
- left = target.offset().left + target.outerWidth() - tip.outerWidth();
- }
-
- objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', left);
- // reset nub from small styles, if they've been applied
- if (nub.attr('style')) {
- nub.removeAttr('style');
- }
-
- tip.removeClass('tip-override');
- if (classes && classes.indexOf('tip-top') > -1) {
- if (Foundation.rtl) {
- nub.addClass('rtl');
- }
- objPos(tip, (target.offset().top - tip.outerHeight()), 'auto', 'auto', left)
- .removeClass('tip-override');
- } else if (classes && classes.indexOf('tip-left') > -1) {
- objPos(tip, (target.offset().top + (target.outerHeight() / 2) - (tip.outerHeight() / 2)), 'auto', 'auto', (target.offset().left - tip.outerWidth() - nubHeight))
- .removeClass('tip-override');
- nub.removeClass('rtl');
- } else if (classes && classes.indexOf('tip-right') > -1) {
- objPos(tip, (target.offset().top + (target.outerHeight() / 2) - (tip.outerHeight() / 2)), 'auto', 'auto', (target.offset().left + target.outerWidth() + nubHeight))
- .removeClass('tip-override');
- nub.removeClass('rtl');
- }
- }
-
- tip.css('visibility', 'visible').hide();
- },
-
- small : function () {
- return matchMedia(Foundation.media_queries.small).matches &&
- !matchMedia(Foundation.media_queries.medium).matches;
- },
-
- inheritable_classes : function ($target) {
- var settings = $.extend({}, this.settings, this.data_options($target)),
- inheritables = ['tip-top', 'tip-left', 'tip-bottom', 'tip-right', 'radius', 'round'].concat(settings.additional_inheritable_classes),
- classes = $target.attr('class'),
- filtered = classes ? $.map(classes.split(' '), function (el, i) {
- if ($.inArray(el, inheritables) !== -1) {
- return el;
- }
- }).join(' ') : '';
-
- return $.trim(filtered);
- },
-
- convert_to_touch : function ($target) {
- var self = this,
- $tip = self.getTip($target),
- settings = $.extend({}, self.settings, self.data_options($target));
-
- if ($tip.find('.tap-to-close').length === 0) {
- $tip.append('<span class="tap-to-close">' + settings.touch_close_text + '</span>');
- $tip.on('click.fndtn.tooltip.tapclose touchstart.fndtn.tooltip.tapclose MSPointerDown.fndtn.tooltip.tapclose', function (e) {
- self.hide($target);
- });
- }
-
- $target.data('tooltip-open-event-type', 'touch');
- },
-
- show : function ($target) {
- var $tip = this.getTip($target);
-
- if ($target.data('tooltip-open-event-type') == 'touch') {
- this.convert_to_touch($target);
- }
-
- this.reposition($target, $tip, $target.attr('class'));
- $target.addClass('open');
- $tip.fadeIn(150);
- },
-
- hide : function ($target) {
- var $tip = this.getTip($target);
- $tip.fadeOut(150, function () {
- $tip.find('.tap-to-close').remove();
- $tip.off('click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose');
- $target.removeClass('open');
- });
- },
-
- off : function () {
- var self = this;
- this.S(this.scope).off('.fndtn.tooltip');
- this.S(this.settings.tooltip_class).each(function (i) {
- $('[' + self.attr_name() + ']').eq(i).attr('title', $(this).text());
- }).remove();
- },
-
- reflow : function () {}
- };
-}(jQuery, window, window.document));
diff --git a/library/foundation/js/foundation/foundation.topbar.js b/library/foundation/js/foundation/foundation.topbar.js
deleted file mode 100644
index c3b0ed6c7..000000000
--- a/library/foundation/js/foundation/foundation.topbar.js
+++ /dev/null
@@ -1,458 +0,0 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.topbar = {
- name : 'topbar',
-
- version : '5.5.2',
-
- settings : {
- index : 0,
- start_offset : 0,
- sticky_class : 'sticky',
- custom_back_text : true,
- back_text : 'Back',
- mobile_show_parent_link : true,
- is_hover : true,
- scrolltop : true, // jump to top when sticky nav menu toggle is clicked
- sticky_on : 'all',
- dropdown_autoclose: true
- },
-
- init : function (section, method, options) {
- Foundation.inherit(this, 'add_custom_rule register_media throttle');
- var self = this;
-
- self.register_media('topbar', 'foundation-mq-topbar');
-
- this.bindings(method, options);
-
- self.S('[' + this.attr_name() + ']', this.scope).each(function () {
- var topbar = $(this),
- settings = topbar.data(self.attr_name(true) + '-init'),
- section = self.S('section, .top-bar-section', this);
- topbar.data('index', 0);
- var topbarContainer = topbar.parent();
- if (topbarContainer.hasClass('fixed') || self.is_sticky(topbar, topbarContainer, settings) ) {
- self.settings.sticky_class = settings.sticky_class;
- self.settings.sticky_topbar = topbar;
- topbar.data('height', topbarContainer.outerHeight());
- topbar.data('stickyoffset', topbarContainer.offset().top);
- } else {
- topbar.data('height', topbar.outerHeight());
- }
-
- if (!settings.assembled) {
- self.assemble(topbar);
- }
-
- if (settings.is_hover) {
- self.S('.has-dropdown', topbar).addClass('not-click');
- } else {
- self.S('.has-dropdown', topbar).removeClass('not-click');
- }
-
- // Pad body when sticky (scrolled) or fixed.
- self.add_custom_rule('.f-topbar-fixed { padding-top: ' + topbar.data('height') + 'px }');
-
- if (topbarContainer.hasClass('fixed')) {
- self.S('body').addClass('f-topbar-fixed');
- }
- });
-
- },
-
- is_sticky : function (topbar, topbarContainer, settings) {
- var sticky = topbarContainer.hasClass(settings.sticky_class);
- var smallMatch = matchMedia(Foundation.media_queries.small).matches;
- var medMatch = matchMedia(Foundation.media_queries.medium).matches;
- var lrgMatch = matchMedia(Foundation.media_queries.large).matches;
-
- if (sticky && settings.sticky_on === 'all') {
- return true;
- }
- if (sticky && this.small() && settings.sticky_on.indexOf('small') !== -1) {
- if (smallMatch && !medMatch && !lrgMatch) { return true; }
- }
- if (sticky && this.medium() && settings.sticky_on.indexOf('medium') !== -1) {
- if (smallMatch && medMatch && !lrgMatch) { return true; }
- }
- if (sticky && this.large() && settings.sticky_on.indexOf('large') !== -1) {
- if (smallMatch && medMatch && lrgMatch) { return true; }
- }
-
- return false;
- },
-
- toggle : function (toggleEl) {
- var self = this,
- topbar;
-
- if (toggleEl) {
- topbar = self.S(toggleEl).closest('[' + this.attr_name() + ']');
- } else {
- topbar = self.S('[' + this.attr_name() + ']');
- }
-
- var settings = topbar.data(this.attr_name(true) + '-init');
-
- var section = self.S('section, .top-bar-section', topbar);
-
- if (self.breakpoint()) {
- if (!self.rtl) {
- section.css({left : '0%'});
- $('>.name', section).css({left : '100%'});
- } else {
- section.css({right : '0%'});
- $('>.name', section).css({right : '100%'});
- }
-
- self.S('li.moved', section).removeClass('moved');
- topbar.data('index', 0);
-
- topbar
- .toggleClass('expanded')
- .css('height', '');
- }
-
- if (settings.scrolltop) {
- if (!topbar.hasClass('expanded')) {
- if (topbar.hasClass('fixed')) {
- topbar.parent().addClass('fixed');
- topbar.removeClass('fixed');
- self.S('body').addClass('f-topbar-fixed');
- }
- } else if (topbar.parent().hasClass('fixed')) {
- if (settings.scrolltop) {
- topbar.parent().removeClass('fixed');
- topbar.addClass('fixed');
- self.S('body').removeClass('f-topbar-fixed');
-
- window.scrollTo(0, 0);
- } else {
- topbar.parent().removeClass('expanded');
- }
- }
- } else {
- if (self.is_sticky(topbar, topbar.parent(), settings)) {
- topbar.parent().addClass('fixed');
- }
-
- if (topbar.parent().hasClass('fixed')) {
- if (!topbar.hasClass('expanded')) {
- topbar.removeClass('fixed');
- topbar.parent().removeClass('expanded');
- self.update_sticky_positioning();
- } else {
- topbar.addClass('fixed');
- topbar.parent().addClass('expanded');
- self.S('body').addClass('f-topbar-fixed');
- }
- }
- }
- },
-
- timer : null,
-
- events : function (bar) {
- var self = this,
- S = this.S;
-
- S(this.scope)
- .off('.topbar')
- .on('click.fndtn.topbar', '[' + this.attr_name() + '] .toggle-topbar', function (e) {
- e.preventDefault();
- self.toggle(this);
- })
- .on('click.fndtn.topbar contextmenu.fndtn.topbar', '.top-bar .top-bar-section li a[href^="#"],[' + this.attr_name() + '] .top-bar-section li a[href^="#"]', function (e) {
- var li = $(this).closest('li'),
- topbar = li.closest('[' + self.attr_name() + ']'),
- settings = topbar.data(self.attr_name(true) + '-init');
-
- if (settings.dropdown_autoclose && settings.is_hover) {
- var hoverLi = $(this).closest('.hover');
- hoverLi.removeClass('hover');
- }
- if (self.breakpoint() && !li.hasClass('back') && !li.hasClass('has-dropdown')) {
- self.toggle();
- }
-
- })
- .on('click.fndtn.topbar', '[' + this.attr_name() + '] li.has-dropdown', function (e) {
- var li = S(this),
- target = S(e.target),
- topbar = li.closest('[' + self.attr_name() + ']'),
- settings = topbar.data(self.attr_name(true) + '-init');
-
- if (target.data('revealId')) {
- self.toggle();
- return;
- }
-
- if (self.breakpoint()) {
- return;
- }
-
- if (settings.is_hover && !Modernizr.touch) {
- return;
- }
-
- e.stopImmediatePropagation();
-
- if (li.hasClass('hover')) {
- li
- .removeClass('hover')
- .find('li')
- .removeClass('hover');
-
- li.parents('li.hover')
- .removeClass('hover');
- } else {
- li.addClass('hover');
-
- $(li).siblings().removeClass('hover');
-
- if (target[0].nodeName === 'A' && target.parent().hasClass('has-dropdown')) {
- e.preventDefault();
- }
- }
- })
- .on('click.fndtn.topbar', '[' + this.attr_name() + '] .has-dropdown>a', function (e) {
- if (self.breakpoint()) {
-
- e.preventDefault();
-
- var $this = S(this),
- topbar = $this.closest('[' + self.attr_name() + ']'),
- section = topbar.find('section, .top-bar-section'),
- dropdownHeight = $this.next('.dropdown').outerHeight(),
- $selectedLi = $this.closest('li');
-
- topbar.data('index', topbar.data('index') + 1);
- $selectedLi.addClass('moved');
-
- if (!self.rtl) {
- section.css({left : -(100 * topbar.data('index')) + '%'});
- section.find('>.name').css({left : 100 * topbar.data('index') + '%'});
- } else {
- section.css({right : -(100 * topbar.data('index')) + '%'});
- section.find('>.name').css({right : 100 * topbar.data('index') + '%'});
- }
-
- topbar.css('height', $this.siblings('ul').outerHeight(true) + topbar.data('height'));
- }
- });
-
- S(window).off('.topbar').on('resize.fndtn.topbar', self.throttle(function () {
- self.resize.call(self);
- }, 50)).trigger('resize.fndtn.topbar').load(function () {
- // Ensure that the offset is calculated after all of the pages resources have loaded
- S(this).trigger('resize.fndtn.topbar');
- });
-
- S('body').off('.topbar').on('click.fndtn.topbar', function (e) {
- var parent = S(e.target).closest('li').closest('li.hover');
-
- if (parent.length > 0) {
- return;
- }
-
- S('[' + self.attr_name() + '] li.hover').removeClass('hover');
- });
-
- // Go up a level on Click
- S(this.scope).on('click.fndtn.topbar', '[' + this.attr_name() + '] .has-dropdown .back', function (e) {
- e.preventDefault();
-
- var $this = S(this),
- topbar = $this.closest('[' + self.attr_name() + ']'),
- section = topbar.find('section, .top-bar-section'),
- settings = topbar.data(self.attr_name(true) + '-init'),
- $movedLi = $this.closest('li.moved'),
- $previousLevelUl = $movedLi.parent();
-
- topbar.data('index', topbar.data('index') - 1);
-
- if (!self.rtl) {
- section.css({left : -(100 * topbar.data('index')) + '%'});
- section.find('>.name').css({left : 100 * topbar.data('index') + '%'});
- } else {
- section.css({right : -(100 * topbar.data('index')) + '%'});
- section.find('>.name').css({right : 100 * topbar.data('index') + '%'});
- }
-
- if (topbar.data('index') === 0) {
- topbar.css('height', '');
- } else {
- topbar.css('height', $previousLevelUl.outerHeight(true) + topbar.data('height'));
- }
-
- setTimeout(function () {
- $movedLi.removeClass('moved');
- }, 300);
- });
-
- // Show dropdown menus when their items are focused
- S(this.scope).find('.dropdown a')
- .focus(function () {
- $(this).parents('.has-dropdown').addClass('hover');
- })
- .blur(function () {
- $(this).parents('.has-dropdown').removeClass('hover');
- });
- },
-
- resize : function () {
- var self = this;
- self.S('[' + this.attr_name() + ']').each(function () {
- var topbar = self.S(this),
- settings = topbar.data(self.attr_name(true) + '-init');
-
- var stickyContainer = topbar.parent('.' + self.settings.sticky_class);
- var stickyOffset;
-
- if (!self.breakpoint()) {
- var doToggle = topbar.hasClass('expanded');
- topbar
- .css('height', '')
- .removeClass('expanded')
- .find('li')
- .removeClass('hover');
-
- if (doToggle) {
- self.toggle(topbar);
- }
- }
-
- if (self.is_sticky(topbar, stickyContainer, settings)) {
- if (stickyContainer.hasClass('fixed')) {
- // Remove the fixed to allow for correct calculation of the offset.
- stickyContainer.removeClass('fixed');
-
- stickyOffset = stickyContainer.offset().top;
- if (self.S(document.body).hasClass('f-topbar-fixed')) {
- stickyOffset -= topbar.data('height');
- }
-
- topbar.data('stickyoffset', stickyOffset);
- stickyContainer.addClass('fixed');
- } else {
- stickyOffset = stickyContainer.offset().top;
- topbar.data('stickyoffset', stickyOffset);
- }
- }
-
- });
- },
-
- breakpoint : function () {
- return !matchMedia(Foundation.media_queries['topbar']).matches;
- },
-
- small : function () {
- return matchMedia(Foundation.media_queries['small']).matches;
- },
-
- medium : function () {
- return matchMedia(Foundation.media_queries['medium']).matches;
- },
-
- large : function () {
- return matchMedia(Foundation.media_queries['large']).matches;
- },
-
- assemble : function (topbar) {
- var self = this,
- settings = topbar.data(this.attr_name(true) + '-init'),
- section = self.S('section, .top-bar-section', topbar);
-
- // Pull element out of the DOM for manipulation
- section.detach();
-
- self.S('.has-dropdown>a', section).each(function () {
- var $link = self.S(this),
- $dropdown = $link.siblings('.dropdown'),
- url = $link.attr('href'),
- $titleLi;
-
- if (!$dropdown.find('.title.back').length) {
-
- if (settings.mobile_show_parent_link == true && url) {
- $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5></li><li class="parent-link hide-for-medium-up"><a class="parent-link js-generated" href="' + url + '">' + $link.html() +'</a></li>');
- } else {
- $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5>');
- }
-
- // Copy link to subnav
- if (settings.custom_back_text == true) {
- $('h5>a', $titleLi).html(settings.back_text);
- } else {
- $('h5>a', $titleLi).html('&laquo; ' + $link.html());
- }
- $dropdown.prepend($titleLi);
- }
- });
-
- // Put element back in the DOM
- section.appendTo(topbar);
-
- // check for sticky
- this.sticky();
-
- this.assembled(topbar);
- },
-
- assembled : function (topbar) {
- topbar.data(this.attr_name(true), $.extend({}, topbar.data(this.attr_name(true)), {assembled : true}));
- },
-
- height : function (ul) {
- var total = 0,
- self = this;
-
- $('> li', ul).each(function () {
- total += self.S(this).outerHeight(true);
- });
-
- return total;
- },
-
- sticky : function () {
- var self = this;
-
- this.S(window).on('scroll', function () {
- self.update_sticky_positioning();
- });
- },
-
- update_sticky_positioning : function () {
- var klass = '.' + this.settings.sticky_class,
- $window = this.S(window),
- self = this;
-
- if (self.settings.sticky_topbar && self.is_sticky(this.settings.sticky_topbar,this.settings.sticky_topbar.parent(), this.settings)) {
- var distance = this.settings.sticky_topbar.data('stickyoffset') + this.settings.start_offset;
- if (!self.S(klass).hasClass('expanded')) {
- if ($window.scrollTop() > (distance)) {
- if (!self.S(klass).hasClass('fixed')) {
- self.S(klass).addClass('fixed');
- self.S('body').addClass('f-topbar-fixed');
- }
- } else if ($window.scrollTop() <= distance) {
- if (self.S(klass).hasClass('fixed')) {
- self.S(klass).removeClass('fixed');
- self.S('body').removeClass('f-topbar-fixed');
- }
- }
- }
- }
- },
-
- off : function () {
- this.S(this.scope).off('.fndtn.topbar');
- this.S(window).off('.fndtn.topbar');
- },
-
- reflow : function () {}
- };
-}(jQuery, window, window.document));
diff --git a/library/fullcalendar/CHANGELOG.txt b/library/fullcalendar/CHANGELOG.txt
index f488738b8..d9b58ce97 100644
--- a/library/fullcalendar/CHANGELOG.txt
+++ b/library/fullcalendar/CHANGELOG.txt
@@ -1,4 +1,72 @@
+v3.0.0 (2016-09-04)
+-------------------
+
+Features:
+- List View (#560)
+ - new views: `listDay`, `listWeek`, `listMonth`, `listYear`, and simply `list`
+ - `listDayFormat`
+ - `listDayAltFormat`
+ - `noEventsMessage`
+- Clickable day/week numbers for easier navigation (#424)
+ - `navLinks`
+ - `navLinkDayClick`
+ - `navLinkWeekClick`
+- Programmatically allow/disallow user interactions:
+ - `eventAllow` (#2740)
+ - `selectAllow` (#2511)
+- Option to display week numbers in cells (#3024)
+ - `weekNumbersWithinDays` (set to `true` to activate)
+- When week calc is ISO, default first day-of-week to Monday (#3255)
+- Macedonian locale (#2739)
+- Malay locale
+
+Breaking Changes:
+- IE8 support dropped
+- jQuery: minimum support raised to v2.0.0
+- MomentJS: minimum support raised to v2.9.0
+- `lang` option renamed to `locale`
+- dist files have been renamed to be more consistent with MomentJS:
+ - `lang/` -> `locale/`
+ - `lang-all.js` -> `locale-all.js`
+- behavior of moment methods no longer affected by ambiguousness:
+ - `isSame`
+ - `isBefore`
+ - `isAfter`
+- View-Option-Hashes no longer supported (deprecated in 2.2.4)
+- removed `weekMode` setting
+- removed `axisFormat` setting
+- DOM structure of month/basic-view day cell numbers changed
+
+Bugfixes:
+- `$.fullCalendar.version` incorrect (#3292)
+
+Build System:
+- using gulp instead of grunt (faster)
+- using npm internally for dependencies instead of bower
+- changed repo directory structure
+
+
+v2.9.1 (2016-07-31)
+-------------------
+
+- multiple definitions for businessHours (#2686)
+- businessHours for single day doesn't display weekends (#2944)
+- height/contentHeight can accept a function or 'parent' for dynamic value (#3271)
+- fix +more popover clipped by overflow (#3232)
+- fix +more popover positioned incorrectly when scrolled (#3137)
+- Norwegian Nynorsk translation (#3246)
+- fix isAnimating JS error (#3285)
+
+
+v2.9.0 (2016-07-10)
+-------------------
+
+- Setters for (almost) all options (#564).
+ See [docs](http://fullcalendar.io/docs/utilities/dynamic_options/) for more info.
+- Travis CI improvements (#3266)
+
+
v2.8.0 (2016-06-19)
-------------------
diff --git a/library/fullcalendar/CONTRIBUTING.txt b/library/fullcalendar/CONTRIBUTING.txt
index 5c6dce4ac..74084517b 100644
--- a/library/fullcalendar/CONTRIBUTING.txt
+++ b/library/fullcalendar/CONTRIBUTING.txt
@@ -21,9 +21,9 @@ Furthermore, each new feature should be designed as robustly as possible and be
In the description of your [Pull Request][Using Pull Requests], please include recreation steps for the bug as well as a [JSFiddle/JSBin] demo. Communicating the buggy behavior is a requirement before a merge can happen.
-## Contributing Languages
+## Contributing Locales
-Please edit the original files in the `lang/` directory. DO NOT edit anything in the `dist/` directory. The build system will responsible for merging FullCalendar's `lang/` data with the [MomentJS locale data].
+Please edit the original files in the `locale/` directory. DO NOT edit anything in the `dist/` directory. The build system will responsible for merging FullCalendar's `locale/` data with the [MomentJS locale data].
## Other Ways to Contribute
@@ -35,18 +35,18 @@ Please edit the original files in the `lang/` directory. DO NOT edit anything in
You will need [Git][git], [Node][node], and NPM installed. For clarification, please view the [jQuery readme][jq-readme], which requires a similar setup.
-Also, you will need the [grunt-cli][grunt-cli] and [bower][bower] packages installed globally (`-g`) on your system:
+Also, you will need the [gulp-cli][gulp-cli] package installed globally (`-g`) on your system:
- npm install -g grunt-cli bower
+ npm install -g gulp-cli
Then, clone FullCalendar's git repo:
git clone git://github.com/fullcalendar/fullcalendar.git
-Enter the directory and install FullCalendar's development dependencies:
+Enter the directory and install FullCalendar's dependencies:
cd fullcalendar
- ./build/init.sh
+ npm install
## What to edit
@@ -58,19 +58,19 @@ When modifying files, please do not edit the generated or minified files in the
After you make code changes, you'll want to compile the JS/CSS so that it can be previewed from the tests and demos. You can either manually rebuild each time you make a change:
- grunt dev
+ gulp dev
Or, you can run a script that automatically rebuilds whenever you save a source file:
- ./build/watch.sh
+ gulp watch
When you are finished, run the following command to write the distributable files into the `./dist/` directory:
- grunt
+ gulp dist
If you want to clean up the generated files, run:
- grunt clean
+ gulp clean
## Style Guide
@@ -103,14 +103,14 @@ Notes about whitespace:
Run the command line tool to automatically check your style:
- grunt check
+ gulp lint
## Before Submitting your Code
If you have edited code (including **tests** and **translations**) and would like to submit a pull request, please make sure you have done the following:
-1. Conformed to the style guide (successfully run `grunt check`)
+1. Conformed to the style guide (successfully run `gulp lint`)
2. Written automated tests. View the [Automated Test Readme]
@@ -121,8 +121,7 @@ If you have edited code (including **tests** and **translations**) and would lik
[MomentJS locale data]: https://github.com/moment/moment/tree/develop/locale
[git]: http://git-scm.com/
[node]: http://nodejs.org/
-[grunt-cli]: http://gruntjs.com/getting-started#installing-the-cli
-[bower]: http://bower.io/
+[gulp-cli]: https://github.com/gulpjs/gulp/blob/master/docs/getting-started.md
[jq-readme]: https://github.com/jquery/jquery/blob/master/README.md#what-you-need-to-build-your-own-jquery
[Google JavaScript Style Guide]: http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml
[Automated Test Readme]: https://github.com/fullcalendar/fullcalendar/wiki/Automated-Tests
diff --git a/library/fullcalendar/fullcalendar.css b/library/fullcalendar/fullcalendar.css
index 166bd09d3..eba68be3b 100644
--- a/library/fullcalendar/fullcalendar.css
+++ b/library/fullcalendar/fullcalendar.css
@@ -1,5 +1,5 @@
/*!
- * FullCalendar v2.8.0 Stylesheet
+ * FullCalendar v3.0.0 Stylesheet
* Docs & License: http://fullcalendar.io/
* (c) 2016 Adam Shaw
*/
@@ -29,7 +29,9 @@ body .fc { /* extra precedence to overcome jqui */
.fc-unthemed .fc-divider,
.fc-unthemed .fc-row,
.fc-unthemed .fc-content, /* for gutter border */
-.fc-unthemed .fc-popover {
+.fc-unthemed .fc-popover,
+.fc-unthemed .fc-list-view,
+.fc-unthemed .fc-list-heading td {
border-color: #ddd;
}
@@ -38,7 +40,8 @@ body .fc { /* extra precedence to overcome jqui */
}
.fc-unthemed .fc-divider,
-.fc-unthemed .fc-popover .fc-header {
+.fc-unthemed .fc-popover .fc-header,
+.fc-unthemed .fc-list-heading td {
background: #eee;
}
@@ -53,13 +56,11 @@ body .fc { /* extra precedence to overcome jqui */
.fc-highlight { /* when user is selecting cells */
background: #bce8f1;
opacity: .3;
- filter: alpha(opacity=30); /* for IE */
}
.fc-bgevent { /* default look for background events */
background: rgb(143, 223, 130);
opacity: .3;
- filter: alpha(opacity=30); /* for IE */
}
.fc-nonbusiness { /* default look for non-business-hours areas */
@@ -247,7 +248,6 @@ NOTE: use percentage font sizes or else old IE chokes
cursor: default;
background-image: none;
opacity: 0.65;
- filter: alpha(opacity=65);
box-shadow: none;
}
@@ -391,6 +391,18 @@ hr.fc-divider {
}
+/* Internal Nav Links
+--------------------------------------------------------------------------------------------------*/
+
+a[data-goto] {
+ cursor: pointer;
+}
+
+a[data-goto]:hover {
+ text-decoration: underline;
+}
+
+
/* Fake Table Rows
--------------------------------------------------------------------------------------------------*/
@@ -509,10 +521,14 @@ temporary rendered events).
line-height: 1.3;
border-radius: 3px;
border: 1px solid #3a87ad; /* default BORDER color */
- background-color: #3a87ad; /* default BACKGROUND color */
font-weight: normal; /* undo jqui's ui-widget-header bold */
}
+.fc-event,
+.fc-event-dot {
+ background-color: #3a87ad; /* default BACKGROUND color */
+}
+
/* overpower some of bootstrap's and jqui's styles on <a> tags */
.fc-event,
.fc-event:hover,
@@ -535,7 +551,6 @@ temporary rendered events).
z-index: 1;
background: #fff;
opacity: .25;
- filter: alpha(opacity=25); /* for IE */
}
.fc-event .fc-content {
@@ -689,6 +704,10 @@ be a descendant of the grid when it is being dragged.
padding: 0 1px;
}
+tr:first-child > td > .fc-day-grid-event {
+ margin-top: 2px; /* a little bit more space before the first event */
+}
+
.fc-day-grid-event.fc-selected:after {
content: "";
position: absolute;
@@ -701,7 +720,6 @@ be a descendant of the grid when it is being dragged.
/* darkening effect */
background: #000;
opacity: .25;
- filter: alpha(opacity=25); /* for IE */
}
.fc-day-grid-event .fc-content { /* force events to be one-line tall */
@@ -786,6 +804,8 @@ a.fc-more:hover {
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
+
+
/* Toolbar
--------------------------------------------------------------------------------------------------*/
@@ -867,6 +887,8 @@ a.fc-more:hover {
z-index: 1;
}
+
+
/* BasicView
--------------------------------------------------------------------------------------------------*/
@@ -874,8 +896,7 @@ a.fc-more:hover {
.fc-basicWeek-view .fc-content-skeleton,
.fc-basicDay-view .fc-content-skeleton {
- /* we are sure there are no day numbers in these views, so... */
- padding-top: 1px; /* add a pixel to make sure there are 2px padding above events */
+ /* there may be week numbers in these views, so no padding-top */
padding-bottom: 1em; /* ensure a space at bottom of cell for user selecting/clicking */
}
@@ -898,42 +919,45 @@ a.fc-more:hover {
/* week and day number styling */
+.fc-day-top.fc-other-month {
+ opacity: 0.3;
+}
+
.fc-basic-view .fc-week-number,
.fc-basic-view .fc-day-number {
- padding: 0 2px;
+ padding: 2px;
+}
+
+.fc-basic-view th.fc-week-number,
+.fc-basic-view th.fc-day-number {
+ padding: 0 2px; /* column headers can't have as much v space */
}
-.fc-basic-view td.fc-week-number span,
-.fc-basic-view td.fc-day-number {
- padding-top: 2px;
- padding-bottom: 2px;
+.fc-ltr .fc-basic-view .fc-day-top .fc-day-number { float: right; }
+.fc-rtl .fc-basic-view .fc-day-top .fc-day-number { float: left; }
+
+.fc-ltr .fc-basic-view .fc-day-top .fc-week-number { float: left; border-radius: 0 0 3px 0; }
+.fc-rtl .fc-basic-view .fc-day-top .fc-week-number { float: right; border-radius: 0 0 0 3px; }
+
+.fc-basic-view .fc-day-top .fc-week-number {
+ min-width: 1.5em;
+ text-align: center;
+ background-color: #f2f2f2;
+ color: #808080;
}
-.fc-basic-view .fc-week-number {
+/* when week/day number have own column */
+
+.fc-basic-view td.fc-week-number {
text-align: center;
}
-.fc-basic-view .fc-week-number span {
+.fc-basic-view td.fc-week-number > * {
/* work around the way we do column resizing and ensure a minimum width */
display: inline-block;
min-width: 1.25em;
}
-.fc-ltr .fc-basic-view .fc-day-number {
- text-align: right;
-}
-
-.fc-rtl .fc-basic-view .fc-day-number {
- text-align: left;
-}
-
-.fc-day-number.fc-other-month {
- opacity: 0.3;
- filter: alpha(opacity=30); /* for IE */
- /* opacity with small font can sometimes look too faded
- might want to set the 'color' property instead
- making day-numbers bold also fixes the problem */
-}
/* AgendaView all-day area
--------------------------------------------------------------------------------------------------*/
@@ -948,7 +972,6 @@ a.fc-more:hover {
}
.fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton {
- padding-top: 1px; /* add a pixel to make sure there are 2px padding above events */
padding-bottom: 1em; /* give space underneath events for clicking/selecting days */
}
@@ -1259,3 +1282,116 @@ be a descendant of the grid when it is being dragged.
border-top-color: transparent;
border-bottom-color: transparent;
}
+
+
+
+/* List View
+--------------------------------------------------------------------------------------------------*/
+
+/* possibly reusable */
+
+.fc-event-dot {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ border-radius: 5px;
+}
+
+/* view wrapper */
+
+.fc-rtl .fc-list-view {
+ direction: rtl; /* unlike core views, leverage browser RTL */
+}
+
+.fc-list-view {
+ border-width: 1px;
+ border-style: solid;
+}
+
+/* table resets */
+
+.fc .fc-list-table {
+ table-layout: auto; /* for shrinkwrapping cell content */
+}
+
+.fc-list-table td {
+ border-width: 1px 0 0;
+ padding: 8px 14px;
+}
+
+.fc-list-table tr:first-child td {
+ border-top-width: 0;
+}
+
+/* day headings with the list */
+
+.fc-list-heading {
+ border-bottom-width: 1px;
+}
+
+.fc-list-heading td {
+ font-weight: bold;
+}
+
+.fc-ltr .fc-list-heading-main { float: left; }
+.fc-ltr .fc-list-heading-alt { float: right; }
+
+.fc-rtl .fc-list-heading-main { float: right; }
+.fc-rtl .fc-list-heading-alt { float: left; }
+
+/* event list items */
+
+.fc-list-item.fc-has-url {
+ cursor: pointer; /* whole row will be clickable */
+}
+
+.fc-list-item:hover td {
+ background-color: #f5f5f5;
+}
+
+.fc-list-item-marker,
+.fc-list-item-time {
+ white-space: nowrap;
+ width: 1px;
+}
+
+/* make the dot closer to the event title */
+.fc-ltr .fc-list-item-marker { padding-right: 0; }
+.fc-rtl .fc-list-item-marker { padding-left: 0; }
+
+.fc-list-item-title a {
+ /* every event title cell has an <a> tag */
+ text-decoration: none;
+ color: inherit;
+}
+
+.fc-list-item-title a[href]:hover {
+ /* hover effect only on titles with hrefs */
+ text-decoration: underline;
+}
+
+/* message when no events */
+
+.fc-list-empty-wrap2 {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+}
+
+.fc-list-empty-wrap1 {
+ width: 100%;
+ height: 100%;
+ display: table;
+}
+
+.fc-list-empty {
+ display: table-cell;
+ vertical-align: middle;
+ text-align: center;
+}
+
+.fc-unthemed .fc-list-empty { /* theme will provide own background */
+ background-color: #eee;
+}
diff --git a/library/fullcalendar/fullcalendar.js b/library/fullcalendar/fullcalendar.js
index 2460eb5e7..33c0c6a38 100644
--- a/library/fullcalendar/fullcalendar.js
+++ b/library/fullcalendar/fullcalendar.js
@@ -1,5 +1,5 @@
/*!
- * FullCalendar v2.8.0
+ * FullCalendar v3.0.0
* Docs & License: http://fullcalendar.io/
* (c) 2016 Adam Shaw
*/
@@ -19,8 +19,8 @@
;;
var FC = $.fullCalendar = {
- version: "2.8.0",
- internalApiVersion: 4
+ version: "3.0.0",
+ internalApiVersion: 6
};
var fcViews = FC.views = {};
@@ -71,56 +71,6 @@ function mergeOptions(optionObjs) {
return mergeProps(optionObjs, complexOptions);
}
-
-// Given options specified for the calendar's constructor, massages any legacy options into a non-legacy form.
-// Converts View-Option-Hashes into the View-Specific-Options format.
-function massageOverrides(input) {
- var overrides = { views: input.views || {} }; // the output. ensure a `views` hash
- var subObj;
-
- // iterate through all option override properties (except `views`)
- $.each(input, function(name, val) {
- if (name != 'views') {
-
- // could the value be a legacy View-Option-Hash?
- if (
- $.isPlainObject(val) &&
- !/(time|duration|interval)$/i.test(name) && // exclude duration options. might be given as objects
- $.inArray(name, complexOptions) == -1 // complex options aren't allowed to be View-Option-Hashes
- ) {
- subObj = null;
-
- // iterate through the properties of this possible View-Option-Hash value
- $.each(val, function(subName, subVal) {
-
- // is the property targeting a view?
- if (/^(month|week|day|default|basic(Week|Day)?|agenda(Week|Day)?)$/.test(subName)) {
- if (!overrides.views[subName]) { // ensure the view-target entry exists
- overrides.views[subName] = {};
- }
- overrides.views[subName][name] = subVal; // record the value in the `views` object
- }
- else { // a non-View-Option-Hash property
- if (!subObj) {
- subObj = {};
- }
- subObj[subName] = subVal; // accumulate these unrelated values for later
- }
- });
-
- if (subObj) { // non-View-Option-Hash properties? transfer them as-is
- overrides[name] = subObj;
- }
- }
- else {
- overrides[name] = val; // transfer normal options as-is
- }
- }
- });
-
- return overrides;
-}
-
;;
// exports
@@ -247,7 +197,7 @@ function undistributeHeight(els) {
function matchCellWidths(els) {
var maxInnerWidth = 0;
- els.find('> span').each(function(i, innerEl) {
+ els.find('> *').each(function(i, innerEl) {
var innerWidth = $(innerEl).outerWidth();
if (innerWidth > maxInnerWidth) {
maxInnerWidth = innerWidth;
@@ -628,7 +578,8 @@ function flexibleCompare(a, b) {
----------------------------------------------------------------------------------------------------------------------*/
-// Computes the intersection of the two ranges. Returns undefined if no intersection.
+// Computes the intersection of the two ranges. Will return fresh date clones in a range.
+// Returns undefined if no intersection.
// Expects all dates to be normalized to the same timezone beforehand.
// TODO: move to date section?
function intersectRanges(subjectRange, constraintRange) {
@@ -908,22 +859,6 @@ function copyOwnProps(src, dest) {
}
-// Copies over certain methods with the same names as Object.prototype methods. Overcomes an IE<=8 bug:
-// https://developer.mozilla.org/en-US/docs/ECMAScript_DontEnum_attribute#JScript_DontEnum_Bug
-function copyNativeMethods(src, dest) {
- var names = [ 'constructor', 'toString', 'valueOf' ];
- var i, name;
-
- for (i = 0; i < names.length; i++) {
- name = names[i];
-
- if (src[name] !== Object.prototype[name]) {
- dest[name] = src[name];
- }
- }
-}
-
-
function hasOwnProp(obj, name) {
return hasOwnPropMethod.call(obj, name);
}
@@ -989,6 +924,21 @@ function cssToStr(cssProps) {
}
+// Given an object hash of HTML attribute names to values,
+// generates a string that can be injected between < > in HTML
+function attrsToStr(attrs) {
+ var parts = [];
+
+ $.each(attrs, function(name, val) {
+ if (val != null) {
+ parts.push(name + '="' + htmlEscape(val) + '"');
+ }
+ });
+
+ return parts.join(' ');
+}
+
+
function capitaliseFirstLetter(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
@@ -1070,14 +1020,24 @@ function syncThen(promise, thenFunc) {
;;
+/*
+GENERAL NOTE on moments throughout the *entire rest* of the codebase:
+All moments are assumed to be ambiguously-zoned unless otherwise noted,
+with the NOTABLE EXCEOPTION of start/end dates that live on *Event Objects*.
+Ambiguously-TIMED moments are assumed to be ambiguously-zoned by nature.
+*/
+
var ambigDateOfMonthRegex = /^\s*\d{4}-\d\d$/;
var ambigTimeOrZoneRegex =
/^\s*\d{4}-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?)?$/;
var newMomentProto = moment.fn; // where we will attach our new methods
var oldMomentProto = $.extend({}, newMomentProto); // copy of original moment methods
-var allowValueOptimization;
-var setUTCValues; // function defined below
-var setLocalValues; // function defined below
+
+// tell momentjs to transfer these properties upon clone
+var momentProperties = moment.momentProperties;
+momentProperties.push('_fullCalendar');
+momentProperties.push('_ambigTime');
+momentProperties.push('_ambigZone');
// Creating
@@ -1123,12 +1083,8 @@ function makeMoment(args, parseAsUTC, parseZone) {
var ambigMatch;
var mom;
- if (moment.isMoment(input)) {
- mom = moment.apply(null, args); // clone it
- transferAmbigs(input, mom); // the ambig flags weren't transfered with the clone
- }
- else if (isNativeDate(input) || input === undefined) {
- mom = moment.apply(null, args); // will be local
+ if (moment.isMoment(input) || isNativeDate(input) || input === undefined) {
+ mom = moment.apply(null, args);
}
else { // "parsing" is required
isAmbigTime = false;
@@ -1169,12 +1125,7 @@ function makeMoment(args, parseAsUTC, parseZone) {
mom._ambigZone = true;
}
else if (isSingleString) {
- if (mom.utcOffset) {
- mom.utcOffset(input); // if not a valid zone, will assign UTC
- }
- else {
- mom.zone(input); // for moment-pre-2.9
- }
+ mom.utcOffset(input); // if not a valid zone, will assign UTC
}
}
}
@@ -1185,21 +1136,6 @@ function makeMoment(args, parseAsUTC, parseZone) {
}
-// A clone method that works with the flags related to our enhanced functionality.
-// In the future, use moment.momentProperties
-newMomentProto.clone = function() {
- var mom = oldMomentProto.clone.apply(this, arguments);
-
- // these flags weren't transfered with the clone
- transferAmbigs(this, mom);
- if (this._fullCalendar) {
- mom._fullCalendar = true;
- }
-
- return mom;
-};
-
-
// Week Number
// -------------------------------------------------------------------------------------------------
@@ -1207,8 +1143,7 @@ newMomentProto.clone = function() {
// Returns the week number, considering the locale's custom week number calcuation
// `weeks` is an alias for `week`
newMomentProto.week = newMomentProto.weeks = function(input) {
- var weekCalc = (this._locale || this._lang) // works pre-moment-2.8
- ._fullCalendar_weekCalc;
+ var weekCalc = this._locale._fullCalendar_weekCalc;
if (input == null && typeof weekCalc === 'function') { // custom function only works for getter
return weekCalc(this);
@@ -1275,19 +1210,21 @@ newMomentProto.time = function(time) {
// but preserving its YMD. A moment with a stripped time will display no time
// nor timezone offset when .format() is called.
newMomentProto.stripTime = function() {
- var a;
if (!this._ambigTime) {
- // get the values before any conversion happens
- a = this.toArray(); // array of y/m/d/h/m/s/ms
+ this.utc(true); // keepLocalTime=true (for keeping *date* value)
- // TODO: use keepLocalTime in the future
- this.utc(); // set the internal UTC flag (will clear the ambig flags)
- setUTCValues(this, a.slice(0, 3)); // set the year/month/date. time will be zero
+ // set time to zero
+ this.set({
+ hours: 0,
+ minutes: 0,
+ seconds: 0,
+ ms: 0
+ });
// Mark the time as ambiguous. This needs to happen after the .utc() call, which might call .utcOffset(),
- // which clears all ambig flags. Same with setUTCValues with moment-timezone.
+ // which clears all ambig flags.
this._ambigTime = true;
this._ambigZone = true; // if ambiguous time, also ambiguous timezone offset
}
@@ -1307,24 +1244,20 @@ newMomentProto.hasTime = function() {
// Converts the moment to UTC, stripping out its timezone offset, but preserving its
// YMD and time-of-day. A moment with a stripped timezone offset will display no
// timezone offset when .format() is called.
-// TODO: look into Moment's keepLocalTime functionality
newMomentProto.stripZone = function() {
- var a, wasAmbigTime;
+ var wasAmbigTime;
if (!this._ambigZone) {
- // get the values before any conversion happens
- a = this.toArray(); // array of y/m/d/h/m/s/ms
wasAmbigTime = this._ambigTime;
- this.utc(); // set the internal UTC flag (might clear the ambig flags, depending on Moment internals)
- setUTCValues(this, a); // will set the year/month/date/hours/minutes/seconds/ms
+ this.utc(true); // keepLocalTime=true (for keeping date and time values)
// the above call to .utc()/.utcOffset() unfortunately might clear the ambig flags, so restore
this._ambigTime = wasAmbigTime || false;
// Mark the zone as ambiguous. This needs to happen after the .utc() call, which might call .utcOffset(),
- // which clears the ambig flags. Same with setUTCValues with moment-timezone.
+ // which clears the ambig flags.
this._ambigZone = true;
}
@@ -1337,32 +1270,26 @@ newMomentProto.hasZone = function() {
};
-// this method implicitly marks a zone
-newMomentProto.local = function() {
- var a = this.toArray(); // year,month,date,hours,minutes,seconds,ms as an array
- var wasAmbigZone = this._ambigZone;
+// implicitly marks a zone
+newMomentProto.local = function(keepLocalTime) {
- oldMomentProto.local.apply(this, arguments);
+ // for when converting from ambiguously-zoned to local,
+ // keep the time values when converting from UTC -> local
+ oldMomentProto.local.call(this, this._ambigZone || keepLocalTime);
// ensure non-ambiguous
// this probably already happened via local() -> utcOffset(), but don't rely on Moment's internals
this._ambigTime = false;
this._ambigZone = false;
- if (wasAmbigZone) {
- // If the moment was ambiguously zoned, the date fields were stored as UTC.
- // We want to preserve these, but in local time.
- // TODO: look into Moment's keepLocalTime functionality
- setLocalValues(this, a);
- }
-
return this; // for chaining
};
// implicitly marks a zone
-newMomentProto.utc = function() {
- oldMomentProto.utc.apply(this, arguments);
+newMomentProto.utc = function(keepLocalTime) {
+
+ oldMomentProto.utc.call(this, keepLocalTime);
// ensure non-ambiguous
// this probably already happened via utc() -> utcOffset(), but don't rely on Moment's internals
@@ -1373,28 +1300,18 @@ newMomentProto.utc = function() {
};
-// methods for arbitrarily manipulating timezone offset.
-// should clear time/zone ambiguity when called.
-$.each([
- 'zone', // only in moment-pre-2.9. deprecated afterwards
- 'utcOffset'
-], function(i, name) {
- if (oldMomentProto[name]) { // original method exists?
-
- // this method implicitly marks a zone (will probably get called upon .utc() and .local())
- newMomentProto[name] = function(tzo) {
+// implicitly marks a zone (will probably get called upon .utc() and .local())
+newMomentProto.utcOffset = function(tzo) {
- if (tzo != null) { // setter
- // these assignments needs to happen before the original zone method is called.
- // I forget why, something to do with a browser crash.
- this._ambigTime = false;
- this._ambigZone = false;
- }
-
- return oldMomentProto[name].apply(this, arguments);
- };
+ if (tzo != null) { // setter
+ // these assignments needs to happen before the original zone method is called.
+ // I forget why, something to do with a browser crash.
+ this._ambigTime = false;
+ this._ambigZone = false;
}
-});
+
+ return oldMomentProto.utcOffset.apply(this, arguments);
+};
// Formatting
@@ -1423,156 +1340,6 @@ newMomentProto.toISOString = function() {
return oldMomentProto.toISOString.apply(this, arguments);
};
-
-// Querying
-// -------------------------------------------------------------------------------------------------
-
-// Is the moment within the specified range? `end` is exclusive.
-// FYI, this method is not a standard Moment method, so always do our enhanced logic.
-newMomentProto.isWithin = function(start, end) {
- var a = commonlyAmbiguate([ this, start, end ]);
- return a[0] >= a[1] && a[0] < a[2];
-};
-
-// When isSame is called with units, timezone ambiguity is normalized before the comparison happens.
-// If no units specified, the two moments must be identically the same, with matching ambig flags.
-newMomentProto.isSame = function(input, units) {
- var a;
-
- // only do custom logic if this is an enhanced moment
- if (!this._fullCalendar) {
- return oldMomentProto.isSame.apply(this, arguments);
- }
-
- if (units) {
- a = commonlyAmbiguate([ this, input ], true); // normalize timezones but don't erase times
- return oldMomentProto.isSame.call(a[0], a[1], units);
- }
- else {
- input = FC.moment.parseZone(input); // normalize input
- return oldMomentProto.isSame.call(this, input) &&
- Boolean(this._ambigTime) === Boolean(input._ambigTime) &&
- Boolean(this._ambigZone) === Boolean(input._ambigZone);
- }
-};
-
-// Make these query methods work with ambiguous moments
-$.each([
- 'isBefore',
- 'isAfter'
-], function(i, methodName) {
- newMomentProto[methodName] = function(input, units) {
- var a;
-
- // only do custom logic if this is an enhanced moment
- if (!this._fullCalendar) {
- return oldMomentProto[methodName].apply(this, arguments);
- }
-
- a = commonlyAmbiguate([ this, input ]);
- return oldMomentProto[methodName].call(a[0], a[1], units);
- };
-});
-
-
-// Misc Internals
-// -------------------------------------------------------------------------------------------------
-
-// given an array of moment-like inputs, return a parallel array w/ moments similarly ambiguated.
-// for example, of one moment has ambig time, but not others, all moments will have their time stripped.
-// set `preserveTime` to `true` to keep times, but only normalize zone ambiguity.
-// returns the original moments if no modifications are necessary.
-function commonlyAmbiguate(inputs, preserveTime) {
- var anyAmbigTime = false;
- var anyAmbigZone = false;
- var len = inputs.length;
- var moms = [];
- var i, mom;
-
- // parse inputs into real moments and query their ambig flags
- for (i = 0; i < len; i++) {
- mom = inputs[i];
- if (!moment.isMoment(mom)) {
- mom = FC.moment.parseZone(mom);
- }
- anyAmbigTime = anyAmbigTime || mom._ambigTime;
- anyAmbigZone = anyAmbigZone || mom._ambigZone;
- moms.push(mom);
- }
-
- // strip each moment down to lowest common ambiguity
- // use clones to avoid modifying the original moments
- for (i = 0; i < len; i++) {
- mom = moms[i];
- if (!preserveTime && anyAmbigTime && !mom._ambigTime) {
- moms[i] = mom.clone().stripTime();
- }
- else if (anyAmbigZone && !mom._ambigZone) {
- moms[i] = mom.clone().stripZone();
- }
- }
-
- return moms;
-}
-
-// Transfers all the flags related to ambiguous time/zone from the `src` moment to the `dest` moment
-// TODO: look into moment.momentProperties for this.
-function transferAmbigs(src, dest) {
- if (src._ambigTime) {
- dest._ambigTime = true;
- }
- else if (dest._ambigTime) {
- dest._ambigTime = false;
- }
-
- if (src._ambigZone) {
- dest._ambigZone = true;
- }
- else if (dest._ambigZone) {
- dest._ambigZone = false;
- }
-}
-
-
-// Sets the year/month/date/etc values of the moment from the given array.
-// Inefficient because it calls each individual setter.
-function setMomentValues(mom, a) {
- mom.year(a[0] || 0)
- .month(a[1] || 0)
- .date(a[2] || 0)
- .hours(a[3] || 0)
- .minutes(a[4] || 0)
- .seconds(a[5] || 0)
- .milliseconds(a[6] || 0);
-}
-
-// Can we set the moment's internal date directly?
-allowValueOptimization = '_d' in moment() && 'updateOffset' in moment;
-
-// Utility function. Accepts a moment and an array of the UTC year/month/date/etc values to set.
-// Assumes the given moment is already in UTC mode.
-setUTCValues = allowValueOptimization ? function(mom, a) {
- // simlate what moment's accessors do
- mom._d.setTime(Date.UTC.apply(Date, a));
- moment.updateOffset(mom, false); // keepTime=false
-} : setMomentValues;
-
-// Utility function. Accepts a moment and an array of the local year/month/date/etc values to set.
-// Assumes the given moment is already in local mode.
-setLocalValues = allowValueOptimization ? function(mom, a) {
- // simlate what moment's accessors do
- mom._d.setTime(+new Date( // FYI, there is now way to apply an array of args to a constructor
- a[0] || 0,
- a[1] || 0,
- a[2] || 0,
- a[3] || 0,
- a[4] || 0,
- a[5] || 0,
- a[6] || 0
- ));
- moment.updateOffset(mom, false); // keepTime=false
-} : setMomentValues;
-
;;
// Single Date Formatting
@@ -1653,7 +1420,7 @@ function formatRange(date1, date2, formatStr, separator, isRTL) {
date1 = FC.moment.parseZone(date1);
date2 = FC.moment.parseZone(date2);
- localeData = (date1.localeData || date1.lang).call(date1); // works with moment-pre-2.8
+ localeData = date1.localeData();
// Expand localized format strings, like "LL" -> "MMMM D YYYY"
formatStr = localeData.longDateFormat(formatStr) || formatStr;
@@ -1858,7 +1625,6 @@ function extendClass(superClass, members) {
// copy each member variable/method onto the the subclass's prototype
copyOwnProps(members, subClass.prototype);
- copyNativeMethods(members, subClass.prototype); // hack for IE8
// copy over all class variables/methods to the subclass, such as `extend` and `mixin`
copyOwnProps(superClass, subClass);
@@ -1868,7 +1634,7 @@ function extendClass(superClass, members) {
function mixIntoClass(theClass, members) {
- copyOwnProps(members, theClass.prototype); // TODO: copyNativeMethods?
+ copyOwnProps(members, theClass.prototype);
}
;;
@@ -2263,17 +2029,6 @@ var CoordCache = FC.CoordCache = Class.extend({
},
- // Compute and return what the elements' bounding rectangle is, from the user's perspective.
- // Right now, only returns a rectangle if constrained by an overflow:scroll element.
- queryBoundingRect: function() {
- var scrollParentEl = getScrollParent(this.els.eq(0));
-
- if (!scrollParentEl.is(document)) {
- return getClientRect(scrollParentEl);
- }
- },
-
-
// Populates the left/right internal coordinate arrays
buildElHorizontals: function() {
var lefts = [];
@@ -2313,42 +2068,36 @@ var CoordCache = FC.CoordCache = Class.extend({
// Given a left offset (from document left), returns the index of the el that it horizontally intersects.
- // If no intersection is made, or outside of the boundingRect, returns undefined.
+ // If no intersection is made, returns undefined.
getHorizontalIndex: function(leftOffset) {
this.ensureBuilt();
- var boundingRect = this.boundingRect;
var lefts = this.lefts;
var rights = this.rights;
var len = lefts.length;
var i;
- if (!boundingRect || (leftOffset >= boundingRect.left && leftOffset < boundingRect.right)) {
- for (i = 0; i < len; i++) {
- if (leftOffset >= lefts[i] && leftOffset < rights[i]) {
- return i;
- }
+ for (i = 0; i < len; i++) {
+ if (leftOffset >= lefts[i] && leftOffset < rights[i]) {
+ return i;
}
}
},
// Given a top offset (from document top), returns the index of the el that it vertically intersects.
- // If no intersection is made, or outside of the boundingRect, returns undefined.
+ // If no intersection is made, returns undefined.
getVerticalIndex: function(topOffset) {
this.ensureBuilt();
- var boundingRect = this.boundingRect;
var tops = this.tops;
var bottoms = this.bottoms;
var len = tops.length;
var i;
- if (!boundingRect || (topOffset >= boundingRect.top && topOffset < boundingRect.bottom)) {
- for (i = 0; i < len; i++) {
- if (topOffset >= tops[i] && topOffset < bottoms[i]) {
- return i;
- }
+ for (i = 0; i < len; i++) {
+ if (topOffset >= tops[i] && topOffset < bottoms[i]) {
+ return i;
}
}
},
@@ -2424,6 +2173,32 @@ var CoordCache = FC.CoordCache = Class.extend({
getHeight: function(topIndex) {
this.ensureBuilt();
return this.bottoms[topIndex] - this.tops[topIndex];
+ },
+
+
+ // Bounding Rect
+ // TODO: decouple this from CoordCache
+
+ // Compute and return what the elements' bounding rectangle is, from the user's perspective.
+ // Right now, only returns a rectangle if constrained by an overflow:scroll element.
+ queryBoundingRect: function() {
+ var scrollParentEl = getScrollParent(this.els.eq(0));
+
+ if (!scrollParentEl.is(document)) {
+ return getClientRect(scrollParentEl);
+ }
+ },
+
+ isPointInBounds: function(leftOffset, topOffset) {
+ return this.isLeftInBounds(leftOffset) && this.isTopInBounds(topOffset);
+ },
+
+ isLeftInBounds: function(leftOffset) {
+ return !this.boundingRect || (leftOffset >= this.boundingRect.left && leftOffset < this.boundingRect.right);
+ },
+
+ isTopInBounds: function(topOffset) {
+ return !this.boundingRect || (topOffset >= this.boundingRect.top && topOffset < this.boundingRect.bottom);
}
});
@@ -2437,10 +2212,7 @@ var CoordCache = FC.CoordCache = Class.extend({
var DragListener = FC.DragListener = Class.extend(ListenerMixin, MouseIgnorerMixin, {
options: null,
-
- // for IE8 bug-fighting behavior
subjectEl: null,
- subjectHref: null,
// coordinates of the initial mousedown
originX: null,
@@ -2631,7 +2403,6 @@ var DragListener = FC.DragListener = Class.extend(ListenerMixin, MouseIgnorerMix
handleDragStart: function(ev) {
this.trigger('dragStart', ev);
- this.initHrefHack();
},
@@ -2671,7 +2442,6 @@ var DragListener = FC.DragListener = Class.extend(ListenerMixin, MouseIgnorerMix
handleDragEnd: function(ev) {
this.trigger('dragEnd', ev);
- this.destroyHrefHack();
},
@@ -2747,33 +2517,6 @@ var DragListener = FC.DragListener = Class.extend(ListenerMixin, MouseIgnorerMix
},
- // <A> HREF Hack
- // -----------------------------------------------------------------------------------------------------------------
-
-
- initHrefHack: function() {
- var subjectEl = this.subjectEl;
-
- // remove a mousedown'd <a>'s href so it is not visited (IE8 bug)
- if ((this.subjectHref = subjectEl ? subjectEl.attr('href') : null)) {
- subjectEl.removeAttr('href');
- }
- },
-
-
- destroyHrefHack: function() {
- var subjectEl = this.subjectEl;
- var subjectHref = this.subjectHref;
-
- // restore a mousedown'd <a>'s href (for IE8 bug)
- setTimeout(function() { // must be outside of the click's execution
- if (subjectHref) {
- subjectEl.attr('href', subjectHref);
- }
- }, 0);
- },
-
-
// Utils
// -----------------------------------------------------------------------------------------------------------------
@@ -3259,11 +3002,11 @@ var MouseFollower = Class.extend(ListenerMixin, {
var _this = this;
var revertDuration = this.options.revertDuration;
- function complete() {
- this.isAnimating = false;
+ function complete() { // might be called by .animate(), which might change `this` context
+ _this.isAnimating = false;
_this.removeElement();
- this.top0 = this.left0 = null; // reset state for future updatePosition calls
+ _this.top0 = _this.left0 = null; // reset state for future updatePosition calls
if (callback) {
callback();
@@ -3297,7 +3040,6 @@ var MouseFollower = Class.extend(ListenerMixin, {
var el = this.el;
if (!el) {
- this.sourceEl.width(); // hack to force IE8 to compute correct bounding box
el = this.el = this.sourceEl.clone()
.addClass(this.options.additionalClass || '')
.css({
@@ -3342,7 +3084,6 @@ var MouseFollower = Class.extend(ListenerMixin, {
// make sure origin info was computed
if (this.top0 === null) {
- this.sourceEl.width(); // hack to force IE8 to compute correct bounding box
sourceOffset = this.sourceEl.offset();
origin = this.el.offsetParent().offset();
this.top0 = sourceOffset.top - origin.top;
@@ -3396,6 +3137,9 @@ var MouseFollower = Class.extend(ListenerMixin, {
var Grid = FC.Grid = Class.extend(ListenerMixin, MouseIgnorerMixin, {
+ // self-config, overridable by subclasses
+ hasDayInteractions: true, // can user click/select ranges of time?
+
view: null, // a View object
isRTL: null, // shortcut to the view's isRTL option
@@ -3563,10 +3307,13 @@ var Grid = FC.Grid = Class.extend(ListenerMixin, MouseIgnorerMixin, {
// Does other DOM-related initializations.
setElement: function(el) {
this.el = el;
- preventSelection(el);
- this.bindDayHandler('touchstart', this.dayTouchStart);
- this.bindDayHandler('mousedown', this.dayMousedown);
+ if (this.hasDayInteractions) {
+ preventSelection(el);
+
+ this.bindDayHandler('touchstart', this.dayTouchStart);
+ this.bindDayHandler('mousedown', this.dayMousedown);
+ }
// attach event-element-related handlers. in Grid.events
// same garbage collection note as above.
@@ -3583,8 +3330,12 @@ var Grid = FC.Grid = Class.extend(ListenerMixin, MouseIgnorerMixin, {
// jQuery will take care of unregistering them when removeElement gets called.
this.el.on(name, function(ev) {
if (
- !$(ev.target).is('.fc-event-container *, .fc-more') && // not an an event element, or "more.." link
- !$(ev.target).closest('.fc-popover').length // not on a popover (like the "more.." events one)
+ !$(ev.target).is(
+ _this.segSelector + ',' + // directly on an event element
+ _this.segSelector + ' *,' + // within an event element
+ '.fc-more,' + // a "more.." link
+ 'a[data-goto]' // a clickable nav link
+ )
) {
return handler.call(_this, ev);
}
@@ -3683,6 +3434,7 @@ var Grid = FC.Grid = Class.extend(ListenerMixin, MouseIgnorerMixin, {
scroll: view.opt('dragScroll'),
interactionStart: function() {
dayClickHit = dragListener.origHit; // for dayClick, where no dragging happens
+ selectionSpan = null;
},
dragStart: function() {
view.unselect(); // since we could be rendering a new selection, we want to clear any old one
@@ -3709,10 +3461,12 @@ var Grid = FC.Grid = Class.extend(ListenerMixin, MouseIgnorerMixin, {
}
}
},
- hitOut: function() {
+ hitOut: function() { // called before mouse moves to a different hit OR moved out of all hits
dayClickHit = null;
selectionSpan = null;
_this.unrenderSelection();
+ },
+ hitDone: function() { // called after a hitOut OR before a dragEnd
enableCursor();
},
interactionEnd: function(ev, isCancelled) {
@@ -3731,7 +3485,6 @@ var Grid = FC.Grid = Class.extend(ListenerMixin, MouseIgnorerMixin, {
// the selection will already have been rendered. just report it
view.reportSelection(selectionSpan, ev);
}
- enableCursor();
}
}
});
@@ -4034,6 +3787,9 @@ var Grid = FC.Grid = Class.extend(ListenerMixin, MouseIgnorerMixin, {
Grid.mixin({
+ // self-config, overridable by subclasses
+ segSelector: '.fc-event-container > *', // what constitutes an event element?
+
mousedOverSeg: null, // the segment object the user's mouse is over. null if over nothing
isDraggingSeg: false, // is a segment being dragged? boolean
isResizingSeg: false, // is a segment being resized? boolean
@@ -4172,7 +3928,7 @@ Grid.mixin({
// Generates an array of classNames to be used for the default rendering of a background event.
- // Called by the fill system.
+ // Called by fillSegHtml.
bgEventSegClasses: function(seg) {
var event = seg.event;
var source = event.source || {};
@@ -4185,7 +3941,7 @@ Grid.mixin({
// Generates a semicolon-separated CSS string to be used for the default rendering of a background event.
- // Called by the fill system.
+ // Called by fillSegHtml.
bgEventSegCss: function(seg) {
return {
'background-color': this.getSegSkinCss(seg)['background-color']
@@ -4194,32 +3950,68 @@ Grid.mixin({
// Generates an array of classNames to be used for the rendering business hours overlay. Called by the fill system.
+ // Called by fillSegHtml.
businessHoursSegClasses: function(seg) {
return [ 'fc-nonbusiness', 'fc-bgevent' ];
},
+ /* Business Hours
+ ------------------------------------------------------------------------------------------------------------------*/
+
+
+ // Compute business hour segs for the grid's current date range.
+ // Caller must ask if whole-day business hours are needed.
+ buildBusinessHourSegs: function(wholeDay) {
+ var events = this.view.calendar.getCurrentBusinessHourEvents(wholeDay);
+
+ // HACK. Eventually refactor business hours "events" system.
+ // If no events are given, but businessHours is activated, this means the entire visible range should be
+ // marked as *not* business-hours, via inverse-background rendering.
+ if (
+ !events.length &&
+ this.view.calendar.options.businessHours // don't access view option. doesn't update with dynamic options
+ ) {
+ events = [
+ $.extend({}, BUSINESS_HOUR_EVENT_DEFAULTS, {
+ start: this.view.end, // guaranteed out-of-range
+ end: this.view.end, // "
+ dow: null
+ })
+ ];
+ }
+
+ return this.eventsToSegs(events);
+ },
+
+
/* Handlers
------------------------------------------------------------------------------------------------------------------*/
- // Attaches event-element-related handlers to the container element and leverage bubbling
+ // Attaches event-element-related handlers for *all* rendered event segments of the view.
bindSegHandlers: function() {
- this.bindSegHandler('touchstart', this.handleSegTouchStart);
- this.bindSegHandler('touchend', this.handleSegTouchEnd);
- this.bindSegHandler('mouseenter', this.handleSegMouseover);
- this.bindSegHandler('mouseleave', this.handleSegMouseout);
- this.bindSegHandler('mousedown', this.handleSegMousedown);
- this.bindSegHandler('click', this.handleSegClick);
+ this.bindSegHandlersToEl(this.el);
+ },
+
+
+ // Attaches event-element-related handlers to an arbitrary container element. leverages bubbling.
+ bindSegHandlersToEl: function(el) {
+ this.bindSegHandlerToEl(el, 'touchstart', this.handleSegTouchStart);
+ this.bindSegHandlerToEl(el, 'touchend', this.handleSegTouchEnd);
+ this.bindSegHandlerToEl(el, 'mouseenter', this.handleSegMouseover);
+ this.bindSegHandlerToEl(el, 'mouseleave', this.handleSegMouseout);
+ this.bindSegHandlerToEl(el, 'mousedown', this.handleSegMousedown);
+ this.bindSegHandlerToEl(el, 'click', this.handleSegClick);
},
// Executes a handler for any a user-interaction on a segment.
// Handler gets called with (seg, ev), and with the `this` context of the Grid
- bindSegHandler: function(name, handler) {
+ bindSegHandlerToEl: function(el, name, handler) {
var _this = this;
- this.el.on(name, '.fc-event-container > *', function(ev) {
+ el.on(name, this.segSelector, function(ev) {
var seg = $(this).data('fc-seg'); // grab segment data. put there by View::renderEvents
// only call the handlers if there is not a drag/resize in progress
@@ -4231,7 +4023,10 @@ Grid.mixin({
handleSegClick: function(seg, ev) {
- return this.view.trigger('eventClick', seg.el[0], seg.event, ev); // can return `false` to cancel
+ var res = this.view.trigger('eventClick', seg.el[0], seg.event, ev); // can return `false` to cancel
+ if (res === false) {
+ ev.preventDefault();
+ }
},
@@ -4242,7 +4037,9 @@ Grid.mixin({
!this.mousedOverSeg
) {
this.mousedOverSeg = seg;
- seg.el.addClass('fc-allow-mouse-resize');
+ if (this.view.isEventResizable(seg.event)) {
+ seg.el.addClass('fc-allow-mouse-resize');
+ }
this.view.trigger('eventMouseover', seg.el[0], seg.event, ev);
}
},
@@ -4256,7 +4053,9 @@ Grid.mixin({
if (this.mousedOverSeg) {
seg = seg || this.mousedOverSeg; // if given no args, use the currently moused-over segment
this.mousedOverSeg = null;
- seg.el.removeClass('fc-allow-mouse-resize');
+ if (this.view.isEventResizable(seg.event)) {
+ seg.el.removeClass('fc-allow-mouse-resize');
+ }
this.view.trigger('eventMouseout', seg.el[0], seg.event, ev);
}
},
@@ -4353,6 +4152,7 @@ Grid.mixin({
subjectEl: el,
subjectCenter: true,
interactionStart: function(ev) {
+ seg.component = _this; // for renderDrag
isDragging = false;
mouseFollower = new MouseFollower(seg.el, {
additionalClass: 'fc-dragging',
@@ -4421,6 +4221,8 @@ Grid.mixin({
enableCursor();
},
interactionEnd: function(ev) {
+ delete seg.component; // prevent side effects
+
// do revert animation if hasn't changed. calls a callback when finished (whether animation or not)
mouseFollower.stop(!dropLocation, function() {
if (isDragging) {
@@ -4508,11 +4310,7 @@ Grid.mixin({
}
// othewise, work off existing values
else {
- dropLocation = {
- start: event.start.clone(),
- end: event.end ? event.end.clone() : null,
- allDay: event.allDay // keep it the same
- };
+ dropLocation = pluckEventDateProps(event);
}
dropLocation.start.add(delta);
@@ -4538,11 +4336,7 @@ Grid.mixin({
var opacity = this.view.opt('dragOpacity');
if (opacity != null) {
- els.each(function(i, node) {
- // Don't use jQuery (will set an IE filter), do it the old fashioned way.
- // In IE8, a helper element will disappears if there's a filter.
- node.style.opacity = opacity;
- });
+ els.css('opacity', opacity);
}
},
@@ -4708,8 +4502,11 @@ Grid.mixin({
disableCursor();
resizeLocation = null;
}
- // no change? (TODO: how does this work with timezones?)
- else if (resizeLocation.start.isSame(event.start) && resizeLocation.end.isSame(eventEnd)) {
+ // no change? (FYI, event dates might have zones)
+ else if (
+ resizeLocation.start.isSame(event.start.clone().stripZone()) &&
+ resizeLocation.end.isSame(eventEnd.clone().stripZone())
+ ) {
resizeLocation = null;
}
}
@@ -4862,15 +4659,11 @@ Grid.mixin({
// Generic utility for generating the HTML classNames for an event segment's element
getSegClasses: function(seg, isDraggable, isResizable) {
var view = this.view;
- var event = seg.event;
var classes = [
'fc-event',
seg.isStart ? 'fc-start' : 'fc-not-start',
seg.isEnd ? 'fc-end' : 'fc-not-end'
- ].concat(
- event.className,
- event.source ? event.source.className : []
- );
+ ].concat(this.getSegCustomClasses(seg));
if (isDraggable) {
classes.push('fc-draggable');
@@ -4880,7 +4673,7 @@ Grid.mixin({
}
// event is currently selected? attach a className.
- if (view.isEventSelected(event)) {
+ if (view.isEventSelected(seg.event)) {
classes.push('fc-selected');
}
@@ -4888,38 +4681,78 @@ Grid.mixin({
},
- // Utility for generating event skin-related CSS properties
- getSegSkinCss: function(seg) {
+ // List of classes that were defined by the caller of the API in some way
+ getSegCustomClasses: function(seg) {
var event = seg.event;
- var view = this.view;
- var source = event.source || {};
- var eventColor = event.color;
- var sourceColor = source.color;
- var optionColor = view.opt('eventColor');
+ return [].concat(
+ event.className, // guaranteed to be an array
+ event.source ? event.source.className : []
+ );
+ },
+
+
+ // Utility for generating event skin-related CSS properties
+ getSegSkinCss: function(seg) {
return {
- 'background-color':
- event.backgroundColor ||
- eventColor ||
- source.backgroundColor ||
- sourceColor ||
- view.opt('eventBackgroundColor') ||
- optionColor,
- 'border-color':
- event.borderColor ||
- eventColor ||
- source.borderColor ||
- sourceColor ||
- view.opt('eventBorderColor') ||
- optionColor,
- color:
- event.textColor ||
- source.textColor ||
- view.opt('eventTextColor')
+ 'background-color': this.getSegBackgroundColor(seg),
+ 'border-color': this.getSegBorderColor(seg),
+ color: this.getSegTextColor(seg)
};
},
+ // Queries for caller-specified color, then falls back to default
+ getSegBackgroundColor: function(seg) {
+ return seg.event.backgroundColor ||
+ seg.event.color ||
+ this.getSegDefaultBackgroundColor(seg);
+ },
+
+
+ getSegDefaultBackgroundColor: function(seg) {
+ var source = seg.event.source || {};
+
+ return source.backgroundColor ||
+ source.color ||
+ this.view.opt('eventBackgroundColor') ||
+ this.view.opt('eventColor');
+ },
+
+
+ // Queries for caller-specified color, then falls back to default
+ getSegBorderColor: function(seg) {
+ return seg.event.borderColor ||
+ seg.event.color ||
+ this.getSegDefaultBorderColor(seg);
+ },
+
+
+ getSegDefaultBorderColor: function(seg) {
+ var source = seg.event.source || {};
+
+ return source.borderColor ||
+ source.color ||
+ this.view.opt('eventBorderColor') ||
+ this.view.opt('eventColor');
+ },
+
+
+ // Queries for caller-specified color, then falls back to default
+ getSegTextColor: function(seg) {
+ return seg.event.textColor ||
+ this.getSegDefaultTextColor(seg);
+ },
+
+
+ getSegDefaultTextColor: function(seg) {
+ var source = seg.event.source || {};
+
+ return source.textColor ||
+ this.view.opt('eventTextColor');
+ },
+
+
/* Converting events -> eventRange -> eventSpan -> eventSegs
------------------------------------------------------------------------------------------------------------------*/
@@ -4987,20 +4820,25 @@ Grid.mixin({
// Generates the unzoned start/end dates an event appears to occupy
// Can accept an event "location" as well (which only has start/end and no allDay)
eventToRange: function(event) {
- return {
- start: event.start.clone().stripZone(),
- end: (
+ var calendar = this.view.calendar;
+ var start = event.start.clone().stripZone();
+ var end = (
event.end ?
event.end.clone() :
// derive the end from the start and allDay. compute allDay if necessary
- this.view.calendar.getDefaultEventEnd(
+ calendar.getDefaultEventEnd(
event.allDay != null ?
event.allDay :
!event.start.hasTime(),
event.start
)
- ).stripZone()
- };
+ ).stripZone();
+
+ // hack: dynamic locale change forgets to upate stored event localed
+ calendar.localizeMoment(start);
+ calendar.localizeMoment(end);
+
+ return { start: start, end: end };
},
@@ -5103,6 +4941,16 @@ Grid.mixin({
----------------------------------------------------------------------------------------------------------------------*/
+function pluckEventDateProps(event) {
+ return {
+ start: event.start.clone(),
+ end: event.end ? event.end.clone() : null,
+ allDay: event.allDay // keep it the same
+ };
+}
+FC.pluckEventDateProps = pluckEventDateProps;
+
+
function isBgEvent(event) { // returns true if background OR inverse-background
var rendering = getEventRendering(event);
return rendering === 'background' || rendering === 'inverse-background';
@@ -5493,7 +5341,7 @@ var DayTableMixin = FC.DayTableMixin = {
return '' +
'<th class="fc-day-header ' + view.widgetHeaderClass + ' fc-' + dayIDs[date.day()] + '"' +
- (this.rowCnt == 1 ?
+ (this.rowCnt === 1 ?
' data-date="' + date.format('YYYY-MM-DD') + '"' :
'') +
(colspan > 1 ?
@@ -5502,8 +5350,12 @@ var DayTableMixin = FC.DayTableMixin = {
(otherAttrs ?
' ' + otherAttrs :
'') +
- '>' +
- htmlEscape(date.format(this.colHeadFormat)) +
+ '>' +
+ // don't make a link if the heading could represent multiple days, or if there's only one day (forceOff)
+ view.buildGotoAnchorHtml(
+ { date: date, forceOff: this.rowCnt > 1 || this.colCnt === 1 },
+ htmlEscape(date.format(this.colHeadFormat)) // inner HTML
+ ) +
'</th>';
},
@@ -5656,13 +5508,16 @@ var DayGrid = FC.DayGrid = Grid.extend(DayTableMixin, {
renderBusinessHours: function() {
- var events = this.view.calendar.getBusinessHoursEvents(true); // wholeDay=true
- var segs = this.eventsToSegs(events);
-
+ var segs = this.buildBusinessHourSegs(true); // wholeDay=true
this.renderFill('businessHours', segs, 'bgevent');
},
+ unrenderBusinessHours: function() {
+ this.unrenderFill('businessHours');
+ },
+
+
// Generates the HTML for a single row, which is a div that wraps a table.
// `row` is the row number.
renderDayRowHtml: function(row, isRigid) {
@@ -5729,19 +5584,53 @@ var DayGrid = FC.DayGrid = Grid.extend(DayTableMixin, {
// Generates the HTML for the <td>s of the "number" row in the DayGrid's content skeleton.
// The number row will only exist if either day numbers or week numbers are turned on.
renderNumberCellHtml: function(date) {
+ var html = '';
var classes;
+ var weekCalcFirstDoW;
- if (!this.view.dayNumbersVisible) { // if there are week numbers but not day numbers
+ if (!this.view.dayNumbersVisible && !this.view.cellWeekNumbersVisible) {
+ // no numbers in day cell (week number must be along the side)
return '<td/>'; // will create an empty space above events :(
}
classes = this.getDayClasses(date);
- classes.unshift('fc-day-number');
+ classes.unshift('fc-day-top');
- return '' +
- '<td class="' + classes.join(' ') + '" data-date="' + date.format() + '">' +
- date.date() +
- '</td>';
+ if (this.view.cellWeekNumbersVisible) {
+ // To determine the day of week number change under ISO, we cannot
+ // rely on moment.js methods such as firstDayOfWeek() or weekday(),
+ // because they rely on the locale's dow (possibly overridden by
+ // our firstDay option), which may not be Monday. We cannot change
+ // dow, because that would affect the calendar start day as well.
+ if (date._locale._fullCalendar_weekCalc === 'ISO') {
+ weekCalcFirstDoW = 1; // Monday by ISO 8601 definition
+ }
+ else {
+ weekCalcFirstDoW = date._locale.firstDayOfWeek();
+ }
+ }
+
+ html += '<td class="' + classes.join(' ') + '" data-date="' + date.format() + '">';
+
+ if (this.view.cellWeekNumbersVisible && (date.day() == weekCalcFirstDoW)) {
+ html += this.view.buildGotoAnchorHtml(
+ { date: date, type: 'week' },
+ { 'class': 'fc-week-number' },
+ date.format('w') // inner HTML
+ );
+ }
+
+ if (this.view.dayNumbersVisible) {
+ html += this.view.buildGotoAnchorHtml(
+ date,
+ { 'class': 'fc-day-number' },
+ date.date() // inner HTML
+ );
+ }
+
+ html += '</td>';
+
+ return html;
},
@@ -5809,11 +5698,13 @@ var DayGrid = FC.DayGrid = Grid.extend(DayTableMixin, {
queryHit: function(leftOffset, topOffset) {
- var col = this.colCoordCache.getHorizontalIndex(leftOffset);
- var row = this.rowCoordCache.getVerticalIndex(topOffset);
+ if (this.colCoordCache.isLeftInBounds(leftOffset) && this.rowCoordCache.isTopInBounds(topOffset)) {
+ var col = this.colCoordCache.getHorizontalIndex(leftOffset);
+ var row = this.rowCoordCache.getVerticalIndex(topOffset);
- if (row != null && col != null) {
- return this.getCellHit(row, col);
+ if (row != null && col != null) {
+ return this.getCellHit(row, col);
+ }
}
},
@@ -5864,8 +5755,7 @@ var DayGrid = FC.DayGrid = Grid.extend(DayTableMixin, {
this.renderHighlight(this.eventToSpan(eventLocation));
// if a segment from the same calendar but another component is being dragged, render a helper event
- if (seg && !seg.el.closest(this.el).length) {
-
+ if (seg && seg.component !== this) {
return this.renderEventLocationHelper(eventLocation, seg); // returns mock event elements
}
},
@@ -6573,7 +6463,7 @@ DayGrid.mixin({
options = {
className: 'fc-more-popover',
content: this.renderSegPopoverContent(row, col, segs),
- parentEl: this.el,
+ parentEl: this.view.el, // attach to root of view. guarantees outside of scrollbars.
top: topEl.offset().top,
autoHide: true, // when the user clicks elsewhere, hide the popover
viewportConstrain: view.opt('popoverViewportConstrain'),
@@ -6596,6 +6486,10 @@ DayGrid.mixin({
this.segPopover = new Popover(options);
this.segPopover.show();
+
+ // the popover doesn't live within the grid's container element, and thus won't get the event
+ // delegated-handlers for free. attach event-related handlers to the popover.
+ this.bindSegHandlersToEl(this.segPopover.el);
},
@@ -6844,7 +6738,6 @@ var TimeGrid = FC.TimeGrid = Grid.extend(DayTableMixin, {
this.labelFormat =
input ||
- view.opt('axisFormat') || // deprecated
view.opt('smallTimeFormat'); // the computed default
input = view.opt('slotLabelInterval');
@@ -6905,27 +6798,30 @@ var TimeGrid = FC.TimeGrid = Grid.extend(DayTableMixin, {
var snapsPerSlot = this.snapsPerSlot;
var colCoordCache = this.colCoordCache;
var slatCoordCache = this.slatCoordCache;
- var colIndex = colCoordCache.getHorizontalIndex(leftOffset);
- var slatIndex = slatCoordCache.getVerticalIndex(topOffset);
-
- if (colIndex != null && slatIndex != null) {
- var slatTop = slatCoordCache.getTopOffset(slatIndex);
- var slatHeight = slatCoordCache.getHeight(slatIndex);
- var partial = (topOffset - slatTop) / slatHeight; // floating point number between 0 and 1
- var localSnapIndex = Math.floor(partial * snapsPerSlot); // the snap # relative to start of slat
- var snapIndex = slatIndex * snapsPerSlot + localSnapIndex;
- var snapTop = slatTop + (localSnapIndex / snapsPerSlot) * slatHeight;
- var snapBottom = slatTop + ((localSnapIndex + 1) / snapsPerSlot) * slatHeight;
-
- return {
- col: colIndex,
- snap: snapIndex,
- component: this, // needed unfortunately :(
- left: colCoordCache.getLeftOffset(colIndex),
- right: colCoordCache.getRightOffset(colIndex),
- top: snapTop,
- bottom: snapBottom
- };
+
+ if (colCoordCache.isLeftInBounds(leftOffset) && slatCoordCache.isTopInBounds(topOffset)) {
+ var colIndex = colCoordCache.getHorizontalIndex(leftOffset);
+ var slatIndex = slatCoordCache.getVerticalIndex(topOffset);
+
+ if (colIndex != null && slatIndex != null) {
+ var slatTop = slatCoordCache.getTopOffset(slatIndex);
+ var slatHeight = slatCoordCache.getHeight(slatIndex);
+ var partial = (topOffset - slatTop) / slatHeight; // floating point number between 0 and 1
+ var localSnapIndex = Math.floor(partial * snapsPerSlot); // the snap # relative to start of slat
+ var snapIndex = slatIndex * snapsPerSlot + localSnapIndex;
+ var snapTop = slatTop + (localSnapIndex / snapsPerSlot) * slatHeight;
+ var snapBottom = slatTop + ((localSnapIndex + 1) / snapsPerSlot) * slatHeight;
+
+ return {
+ col: colIndex,
+ snap: snapIndex,
+ component: this, // needed unfortunately :(
+ left: colCoordCache.getLeftOffset(colIndex),
+ right: colCoordCache.getRightOffset(colIndex),
+ top: snapTop,
+ bottom: snapBottom
+ };
+ }
}
},
@@ -7128,10 +7024,9 @@ var TimeGrid = FC.TimeGrid = Grid.extend(DayTableMixin, {
renderBusinessHours: function() {
- var events = this.view.calendar.getBusinessHoursEvents();
- var segs = this.eventsToSegs(events);
-
- this.renderBusinessSegs(segs);
+ this.renderBusinessSegs(
+ this.buildBusinessHourSegs()
+ );
},
@@ -8074,6 +7969,62 @@ var View = FC.View = Class.extend(EmitterMixin, ListenerMixin, {
},
+ getAllDayHtml: function() {
+ return this.opt('allDayHtml') || htmlEscape(this.opt('allDayText'));
+ },
+
+
+ /* Navigation
+ ------------------------------------------------------------------------------------------------------------------*/
+
+
+ // Generates HTML for an anchor to another view into the calendar.
+ // Will either generate an <a> tag or a non-clickable <span> tag, depending on enabled settings.
+ // `gotoOptions` can either be a moment input, or an object with the form:
+ // { date, type, forceOff }
+ // `type` is a view-type like "day" or "week". default value is "day".
+ // `attrs` and `innerHtml` are use to generate the rest of the HTML tag.
+ buildGotoAnchorHtml: function(gotoOptions, attrs, innerHtml) {
+ var date, type, forceOff;
+ var finalOptions;
+
+ if ($.isPlainObject(gotoOptions)) {
+ date = gotoOptions.date;
+ type = gotoOptions.type;
+ forceOff = gotoOptions.forceOff;
+ }
+ else {
+ date = gotoOptions; // a single moment input
+ }
+ date = FC.moment(date); // if a string, parse it
+
+ finalOptions = { // for serialization into the link
+ date: date.format('YYYY-MM-DD'),
+ type: type || 'day'
+ };
+
+ if (typeof attrs === 'string') {
+ innerHtml = attrs;
+ attrs = null;
+ }
+
+ attrs = attrs ? ' ' + attrsToStr(attrs) : ''; // will have a leading space
+ innerHtml = innerHtml || '';
+
+ if (!forceOff && this.opt('navLinks')) {
+ return '<a' + attrs +
+ ' data-goto="' + htmlEscape(JSON.stringify(finalOptions)) + '">' +
+ innerHtml +
+ '</a>';
+ }
+ else {
+ return '<span' + attrs + '>' +
+ innerHtml +
+ '</span>';
+ }
+ },
+
+
/* Rendering
------------------------------------------------------------------------------------------------------------------*/
@@ -8110,12 +8061,12 @@ var View = FC.View = Class.extend(EmitterMixin, ListenerMixin, {
// Does everything necessary to display the view centered around the given unzoned date.
// Does every type of rendering EXCEPT rendering events.
// Is asychronous and returns a promise.
- display: function(date) {
+ display: function(date, explicitScrollState) {
var _this = this;
- var scrollState = null;
+ var prevScrollState = null;
- if (this.displaying) {
- scrollState = this.queryScroll();
+ if (explicitScrollState != null && this.displaying) { // don't need prevScrollState if explicitScrollState
+ prevScrollState = this.queryScroll();
}
this.calendar.freezeContentHeight();
@@ -8124,7 +8075,17 @@ var View = FC.View = Class.extend(EmitterMixin, ListenerMixin, {
return (
_this.displaying =
syncThen(_this.displayView(date), function() { // displayView might return a promise
- _this.forceScroll(_this.computeInitialScroll(scrollState));
+
+ // caller of display() wants a specific scroll state?
+ if (explicitScrollState != null) {
+ // we make an assumption that this is NOT the initial render,
+ // and thus don't need forceScroll (is inconveniently asynchronous)
+ _this.setScroll(explicitScrollState);
+ }
+ else {
+ _this.forceScroll(_this.computeInitialScroll(prevScrollState));
+ }
+
_this.calendar.unfreezeContentHeight();
_this.triggerRender();
})
@@ -8559,14 +8520,24 @@ var View = FC.View = Class.extend(EmitterMixin, ListenerMixin, {
// Computes if the given event is allowed to be dragged by the user
isEventDraggable: function(event) {
- var source = event.source || {};
+ return this.isEventStartEditable(event);
+ },
+
+ isEventStartEditable: function(event) {
return firstDefined(
event.startEditable,
- source.startEditable,
+ (event.source || {}).startEditable,
this.opt('eventStartEditable'),
+ this.isEventGenerallyEditable(event)
+ );
+ },
+
+
+ isEventGenerallyEditable: function(event) {
+ return firstDefined(
event.editable,
- source.editable,
+ (event.source || {}).editable,
this.opt('editable')
);
},
@@ -9066,8 +9037,9 @@ var Scroller = FC.Scroller = Class.extend({
var Calendar = FC.Calendar = Class.extend({
dirDefaults: null, // option defaults related to LTR or RTL
- langDefaults: null, // option defaults related to current locale
+ localeDefaults: null, // option defaults related to current locale
overrides: null, // option overrides given to the fullCalendar constructor
+ dynamicOverrides: null, // options set with dynamic setter method. higher precedence than view overrides.
options: null, // all defaults combined with overrides
viewSpecCache: null, // cache of view definitions
view: null, // current View object
@@ -9085,41 +9057,40 @@ var Calendar = FC.Calendar = Class.extend({
},
- // Initializes `this.options` and other important options-related objects
- initOptions: function(overrides) {
- var lang, langDefaults;
+ // Computes the flattened options hash for the calendar and assigns to `this.options`.
+ // Assumes this.overrides and this.dynamicOverrides have already been initialized.
+ populateOptionsHash: function() {
+ var locale, localeDefaults;
var isRTL, dirDefaults;
- // converts legacy options into non-legacy ones.
- // in the future, when this is removed, don't use `overrides` reference. make a copy.
- overrides = massageOverrides(overrides);
-
- lang = overrides.lang;
- langDefaults = langOptionHash[lang];
- if (!langDefaults) {
- lang = Calendar.defaults.lang;
- langDefaults = langOptionHash[lang] || {};
+ locale = firstDefined( // explicit locale option given?
+ this.dynamicOverrides.locale,
+ this.overrides.locale
+ );
+ localeDefaults = localeOptionHash[locale];
+ if (!localeDefaults) { // explicit locale option not given or invalid?
+ locale = Calendar.defaults.locale;
+ localeDefaults = localeOptionHash[locale] || {};
}
- isRTL = firstDefined(
- overrides.isRTL,
- langDefaults.isRTL,
+ isRTL = firstDefined( // based on options computed so far, is direction RTL?
+ this.dynamicOverrides.isRTL,
+ this.overrides.isRTL,
+ localeDefaults.isRTL,
Calendar.defaults.isRTL
);
dirDefaults = isRTL ? Calendar.rtlDefaults : {};
this.dirDefaults = dirDefaults;
- this.langDefaults = langDefaults;
- this.overrides = overrides;
+ this.localeDefaults = localeDefaults;
this.options = mergeOptions([ // merge defaults and overrides. lowest to highest precedence
Calendar.defaults, // global defaults
dirDefaults,
- langDefaults,
- overrides
+ localeDefaults,
+ this.overrides,
+ this.dynamicOverrides
]);
- populateInstanceComputableOptions(this.options);
-
- this.viewSpecCache = {}; // somewhat unrelated
+ populateInstanceComputableOptions(this.options); // fill in gaps with computed options
},
@@ -9231,9 +9202,10 @@ var Calendar = FC.Calendar = Class.extend({
Calendar.defaults, // global defaults
spec.defaults, // view's defaults (from ViewSubclass.defaults)
this.dirDefaults,
- this.langDefaults, // locale and dir take precedence over view's defaults!
+ this.localeDefaults, // locale and dir take precedence over view's defaults!
this.overrides, // calendar's overrides (options given to constructor)
- spec.overrides // view's overrides (view-specific options)
+ spec.overrides, // view's overrides (view-specific options)
+ this.dynamicOverrides // dynamically set via setter. highest precedence
]);
populateInstanceComputableOptions(spec.options);
},
@@ -9247,17 +9219,21 @@ var Calendar = FC.Calendar = Class.extend({
function queryButtonText(options) {
var buttonText = options.buttonText || {};
return buttonText[requestedViewType] ||
+ // view can decide to look up a certain key
+ (spec.buttonTextKey ? buttonText[spec.buttonTextKey] : null) ||
+ // a key like "month"
(spec.singleUnit ? buttonText[spec.singleUnit] : null);
}
// highest to lowest priority
spec.buttonTextOverride =
+ queryButtonText(this.dynamicOverrides) ||
queryButtonText(this.overrides) || // constructor-specified buttonText lookup hash takes precedence
spec.overrides.buttonText; // `buttonText` for view-specific options is a string
// highest to lowest priority. mirrors buildViewSpecOptions
spec.buttonTextDefault =
- queryButtonText(this.langDefaults) ||
+ queryButtonText(this.localeDefaults) ||
queryButtonText(this.dirDefaults) ||
spec.defaults.buttonText || // a single string. from ViewSubclass.defaults
queryButtonText(Calendar.defaults) ||
@@ -9324,10 +9300,6 @@ function Calendar_constructor(element, overrides) {
var t = this;
- t.initOptions(overrides || {});
- var options = this.options;
-
-
// Exports
// -----------------------------------------------------------------------------------
@@ -9352,67 +9324,95 @@ function Calendar_constructor(element, overrides) {
t.getDate = getDate;
t.getCalendar = getCalendar;
t.getView = getView;
- t.option = option;
+ t.option = option; // getter/setter method
t.trigger = trigger;
+ // Options
+ // -----------------------------------------------------------------------------------
+
+ t.dynamicOverrides = {};
+ t.viewSpecCache = {};
+ t.optionHandlers = {}; // for Calendar.options.js
+ t.overrides = $.extend({}, overrides); // make a copy
- // Language-data Internals
+ t.populateOptionsHash(); // sets this.options
+
+
+
+ // Locale-data Internals
// -----------------------------------------------------------------------------------
- // Apply overrides to the current language's data
+ // Apply overrides to the current locale's data
+ var localeData;
- var localeData = createObject( // make a cheap copy
- getMomentLocaleData(options.lang) // will fall back to en
- );
+ // Called immediately, and when any of the options change.
+ // Happens before any internal objects rebuild or rerender, because this is very core.
+ t.bindOptions([
+ 'locale', 'monthNames', 'monthNamesShort', 'dayNames', 'dayNamesShort', 'firstDay', 'weekNumberCalculation'
+ ], function(locale, monthNames, monthNamesShort, dayNames, dayNamesShort, firstDay, weekNumberCalculation) {
- if (options.monthNames) {
- localeData._months = options.monthNames;
- }
- if (options.monthNamesShort) {
- localeData._monthsShort = options.monthNamesShort;
- }
- if (options.dayNames) {
- localeData._weekdays = options.dayNames;
- }
- if (options.dayNamesShort) {
- localeData._weekdaysShort = options.dayNamesShort;
- }
- if (options.firstDay != null) {
- var _week = createObject(localeData._week); // _week: { dow: # }
- _week.dow = options.firstDay;
- localeData._week = _week;
- }
+ // normalize
+ if (weekNumberCalculation === 'iso') {
+ weekNumberCalculation = 'ISO'; // normalize
+ }
+
+ localeData = createObject( // make a cheap copy
+ getMomentLocaleData(locale) // will fall back to en
+ );
+
+ if (monthNames) {
+ localeData._months = monthNames;
+ }
+ if (monthNamesShort) {
+ localeData._monthsShort = monthNamesShort;
+ }
+ if (dayNames) {
+ localeData._weekdays = dayNames;
+ }
+ if (dayNamesShort) {
+ localeData._weekdaysShort = dayNamesShort;
+ }
- // assign a normalized value, to be used by our .week() moment extension
- localeData._fullCalendar_weekCalc = (function(weekCalc) {
- if (typeof weekCalc === 'function') {
- return weekCalc;
+ if (firstDay == null && weekNumberCalculation === 'ISO') {
+ firstDay = 1;
}
- else if (weekCalc === 'local') {
- return weekCalc;
+ if (firstDay != null) {
+ var _week = createObject(localeData._week); // _week: { dow: # }
+ _week.dow = firstDay;
+ localeData._week = _week;
}
- else if (weekCalc === 'iso' || weekCalc === 'ISO') {
- return 'ISO';
+
+ if ( // whitelist certain kinds of input
+ weekNumberCalculation === 'ISO' ||
+ weekNumberCalculation === 'local' ||
+ typeof weekNumberCalculation === 'function'
+ ) {
+ localeData._fullCalendar_weekCalc = weekNumberCalculation; // moment-ext will know what to do with it
}
- })(options.weekNumberCalculation);
+ // If the internal current date object already exists, move to new locale.
+ // We do NOT need to do this technique for event dates, because this happens when converting to "segments".
+ if (date) {
+ localizeMoment(date); // sets to localeData
+ }
+ });
// Calendar-specific Date Utilities
// -----------------------------------------------------------------------------------
- t.defaultAllDayEventDuration = moment.duration(options.defaultAllDayEventDuration);
- t.defaultTimedEventDuration = moment.duration(options.defaultTimedEventDuration);
+ t.defaultAllDayEventDuration = moment.duration(t.options.defaultAllDayEventDuration);
+ t.defaultTimedEventDuration = moment.duration(t.options.defaultTimedEventDuration);
- // Builds a moment using the settings of the current calendar: timezone and language.
+ // Builds a moment using the settings of the current calendar: timezone and locale.
// Accepts anything the vanilla moment() constructor accepts.
t.moment = function() {
var mom;
- if (options.timezone === 'local') {
+ if (t.options.timezone === 'local') {
mom = FC.moment.apply(null, arguments);
// Force the moment to be local, because FC.moment doesn't guarantee it.
@@ -9420,28 +9420,30 @@ function Calendar_constructor(element, overrides) {
mom.local();
}
}
- else if (options.timezone === 'UTC') {
+ else if (t.options.timezone === 'UTC') {
mom = FC.moment.utc.apply(null, arguments); // process as UTC
}
else {
mom = FC.moment.parseZone.apply(null, arguments); // let the input decide the zone
}
- if ('_locale' in mom) { // moment 2.8 and above
- mom._locale = localeData;
- }
- else { // pre-moment-2.8
- mom._lang = localeData;
- }
+ localizeMoment(mom);
return mom;
};
+ // Updates the given moment's locale settings to the current calendar locale settings.
+ function localizeMoment(mom) {
+ mom._locale = localeData;
+ }
+ t.localizeMoment = localizeMoment;
+
+
// Returns a boolean about whether or not the calendar knows how to calculate
// the timezone offset of arbitrary dates in the current timezone.
t.getIsAmbigTimezone = function() {
- return options.timezone !== 'local' && options.timezone !== 'UTC';
+ return t.options.timezone !== 'local' && t.options.timezone !== 'UTC';
};
@@ -9470,7 +9472,7 @@ function Calendar_constructor(element, overrides) {
// Returns a moment for the current date, as defined by the client's computer or from the `now` option.
// Will return an moment with an ambiguous timezone.
t.getNow = function() {
- var now = options.now;
+ var now = t.options.now;
if (typeof now === 'function') {
now = now();
}
@@ -9512,8 +9514,7 @@ function Calendar_constructor(element, overrides) {
// Produces a human-readable string for the given duration.
// Side-effect: changes the locale of the given duration.
t.humanizeDuration = function(duration) {
- return (duration.locale || duration.lang).call(duration, options.lang) // works moment-pre-2.8
- .humanize();
+ return duration.locale(t.options.locale).humanize();
};
@@ -9522,7 +9523,7 @@ function Calendar_constructor(element, overrides) {
// -----------------------------------------------------------------------------------
- EventManager.call(t, options);
+ EventManager.call(t);
var isFetchNeeded = t.isFetchNeeded;
var fetchEvents = t.fetchEvents;
var fetchEventSources = t.fetchEventSources;
@@ -9535,7 +9536,6 @@ function Calendar_constructor(element, overrides) {
var _element = element[0];
var header;
- var headerElement;
var content;
var tm; // for making theme classes
var currentView; // NOTE: keep this in sync with this.view
@@ -9553,8 +9553,8 @@ function Calendar_constructor(element, overrides) {
// compute the initial ambig-timezone date
- if (options.defaultDate != null) {
- date = t.moment(options.defaultDate).stripZone();
+ if (t.options.defaultDate != null) {
+ date = t.moment(t.options.defaultDate).stripZone();
}
else {
date = t.getNow(); // getNow already returns unzoned
@@ -9574,38 +9574,64 @@ function Calendar_constructor(element, overrides) {
function initialRender() {
- tm = options.theme ? 'ui' : 'fc';
element.addClass('fc');
- if (options.isRTL) {
- element.addClass('fc-rtl');
- }
- else {
- element.addClass('fc-ltr');
- }
+ // event delegation for nav links
+ element.on('click.fc', 'a[data-goto]', function(ev) {
+ var anchorEl = $(this);
+ var gotoOptions = anchorEl.data('goto'); // will automatically parse JSON
+ var date = t.moment(gotoOptions.date);
+ var viewType = gotoOptions.type;
- if (options.theme) {
- element.addClass('ui-widget');
- }
- else {
- element.addClass('fc-unthemed');
- }
+ // property like "navLinkDayClick". might be a string or a function
+ var customAction = currentView.opt('navLink' + capitaliseFirstLetter(viewType) + 'Click');
+
+ if (typeof customAction === 'function') {
+ customAction(date, ev);
+ }
+ else {
+ if (typeof customAction === 'string') {
+ viewType = customAction;
+ }
+ zoomTo(date, viewType);
+ }
+ });
+
+ // called immediately, and upon option change
+ t.bindOption('theme', function(theme) {
+ tm = theme ? 'ui' : 'fc'; // affects a larger scope
+ element.toggleClass('ui-widget', theme);
+ element.toggleClass('fc-unthemed', !theme);
+ });
+
+ // called immediately, and upon option change.
+ // HACK: locale often affects isRTL, so we explicitly listen to that too.
+ t.bindOptions([ 'isRTL', 'locale' ], function(isRTL) {
+ element.toggleClass('fc-ltr', !isRTL);
+ element.toggleClass('fc-rtl', isRTL);
+ });
content = $("<div class='fc-view-container'/>").prependTo(element);
- header = t.header = new Header(t, options);
- headerElement = header.render();
- if (headerElement) {
- element.prepend(headerElement);
- }
+ header = t.header = new Header(t);
+ renderHeader();
- renderView(options.defaultView);
+ renderView(t.options.defaultView);
- if (options.handleWindowResize) {
- windowResizeProxy = debounce(windowResize, options.windowResizeDelay); // prevents rapid calls
+ if (t.options.handleWindowResize) {
+ windowResizeProxy = debounce(windowResize, t.options.windowResizeDelay); // prevents rapid calls
$(window).resize(windowResizeProxy);
}
}
+
+
+ // can be called repeatedly and Header will rerender
+ function renderHeader() {
+ header.render();
+ if (header.el) {
+ element.prepend(header.el);
+ }
+ }
function destroy() {
@@ -9621,6 +9647,8 @@ function Calendar_constructor(element, overrides) {
content.remove();
element.removeClass('fc fc-ltr fc-rtl fc-unthemed ui-widget');
+ element.off('.fc'); // unbind nav link handlers
+
if (windowResizeProxy) {
$(window).unbind('resize', windowResizeProxy);
}
@@ -9639,15 +9667,14 @@ function Calendar_constructor(element, overrides) {
// Renders a view because of a date change, view-type change, or for the first time.
// If not given a viewType, keep the current view but render different dates.
- function renderView(viewType) {
+ // Accepts an optional scroll state to restore to.
+ function renderView(viewType, explicitScrollState) {
ignoreWindowResize++;
// if viewType is changing, remove the old view's rendering
if (currentView && viewType && currentView.type !== viewType) {
- header.deactivateButton(currentView.type);
freezeContentHeight(); // prevent a scroll jump when view element is removed
- currentView.removeElement();
- currentView = t.view = null;
+ clearView();
}
// if viewType changed, or the view was never created, create a fresh view
@@ -9670,11 +9697,14 @@ function Calendar_constructor(element, overrides) {
// render or rerender the view
if (
!currentView.displaying ||
- !date.isWithin(currentView.intervalStart, currentView.intervalEnd) // implicit date window change
+ !( // NOT within interval range signals an implicit date window change
+ date >= currentView.intervalStart &&
+ date < currentView.intervalEnd
+ )
) {
if (elementVisible()) {
- currentView.display(date); // will call freezeContentHeight
+ currentView.display(date, explicitScrollState); // will call freezeContentHeight
unfreezeContentHeight(); // immediately unfreeze regardless of whether display is async
// need to do this after View::render, so dates are calculated
@@ -9690,6 +9720,32 @@ function Calendar_constructor(element, overrides) {
ignoreWindowResize--;
}
+
+ // Unrenders the current view and reflects this change in the Header.
+ // Unregsiters the `currentView`, but does not remove from viewByType hash.
+ function clearView() {
+ header.deactivateButton(currentView.type);
+ currentView.removeElement();
+ currentView = t.view = null;
+ }
+
+
+ // Destroys the view, including the view object. Then, re-instantiates it and renders it.
+ // Maintains the same scroll state.
+ // TODO: maintain any other user-manipulated state.
+ function reinitView() {
+ ignoreWindowResize++;
+ freezeContentHeight();
+
+ var viewType = currentView.type;
+ var scrollState = currentView.queryScroll();
+ clearView();
+ renderView(viewType, scrollState);
+
+ unfreezeContentHeight();
+ ignoreWindowResize--;
+ }
+
// Resizing
@@ -9705,7 +9761,7 @@ function Calendar_constructor(element, overrides) {
t.isHeightAuto = function() {
- return options.contentHeight === 'auto' || options.height === 'auto';
+ return t.options.contentHeight === 'auto' || t.options.height === 'auto';
};
@@ -9733,16 +9789,33 @@ function Calendar_constructor(element, overrides) {
function _calcSize() { // assumes elementVisible
- if (typeof options.contentHeight === 'number') { // exists and not 'auto'
- suggestedViewHeight = options.contentHeight;
+ var contentHeightInput = t.options.contentHeight;
+ var heightInput = t.options.height;
+
+ if (typeof contentHeightInput === 'number') { // exists and not 'auto'
+ suggestedViewHeight = contentHeightInput;
+ }
+ else if (typeof contentHeightInput === 'function') { // exists and is a function
+ suggestedViewHeight = contentHeightInput();
}
- else if (typeof options.height === 'number') { // exists and not 'auto'
- suggestedViewHeight = options.height - (headerElement ? headerElement.outerHeight(true) : 0);
+ else if (typeof heightInput === 'number') { // exists and not 'auto'
+ suggestedViewHeight = heightInput - queryHeaderHeight();
+ }
+ else if (typeof heightInput === 'function') { // exists and is a function
+ suggestedViewHeight = heightInput() - queryHeaderHeight();
+ }
+ else if (heightInput === 'parent') { // set to height of parent element
+ suggestedViewHeight = element.parent().height() - queryHeaderHeight();
}
else {
- suggestedViewHeight = Math.round(content.width() / Math.max(options.aspectRatio, .5));
+ suggestedViewHeight = Math.round(content.width() / Math.max(t.options.aspectRatio, .5));
}
}
+
+
+ function queryHeaderHeight() {
+ return header.el ? header.el.outerHeight(true) : 0; // includes margin
+ }
function windowResize(ev) {
@@ -9785,7 +9858,7 @@ function Calendar_constructor(element, overrides) {
function getAndRenderEvents() {
- if (!options.lazyFetching || isFetchNeeded(currentView.start, currentView.end)) {
+ if (!t.options.lazyFetching || isFetchNeeded(currentView.start, currentView.end)) {
fetchAndRenderEvents();
}
else {
@@ -9826,7 +9899,8 @@ function Calendar_constructor(element, overrides) {
function updateTodayButton() {
var now = t.getNow();
- if (now.isWithin(currentView.intervalStart, currentView.intervalEnd)) {
+
+ if (now >= currentView.intervalStart && now < currentView.intervalEnd) {
header.disableButton('today');
}
else {
@@ -9964,14 +10038,70 @@ function Calendar_constructor(element, overrides) {
function option(name, value) {
- if (value === undefined) {
- return options[name];
+ var newOptionHash;
+
+ if (typeof name === 'string') {
+ if (value === undefined) { // getter
+ return t.options[name];
+ }
+ else { // setter for individual option
+ newOptionHash = {};
+ newOptionHash[name] = value;
+ setOptions(newOptionHash);
+ }
}
- if (name == 'height' || name == 'contentHeight' || name == 'aspectRatio') {
- options[name] = value;
- updateSize(true); // true = allow recalculation of height
+ else if (typeof name === 'object') { // compound setter with object input
+ setOptions(name);
}
}
+
+
+ function setOptions(newOptionHash) {
+ var optionCnt = 0;
+ var optionName;
+
+ for (optionName in newOptionHash) {
+ t.dynamicOverrides[optionName] = newOptionHash[optionName];
+ }
+
+ t.viewSpecCache = {}; // the dynamic override invalidates the options in this cache, so just clear it
+ t.populateOptionsHash(); // this.options needs to be recomputed after the dynamic override
+
+ // trigger handlers after this.options has been updated
+ for (optionName in newOptionHash) {
+ t.triggerOptionHandlers(optionName); // recall bindOption/bindOptions
+ optionCnt++;
+ }
+
+ // special-case handling of single option change.
+ // if only one option change, `optionName` will be its name.
+ if (optionCnt === 1) {
+ if (optionName === 'height' || optionName === 'contentHeight' || optionName === 'aspectRatio') {
+ updateSize(true); // true = allow recalculation of height
+ return;
+ }
+ else if (optionName === 'defaultDate') {
+ return; // can't change date this way. use gotoDate instead
+ }
+ else if (optionName === 'businessHours') {
+ if (currentView) {
+ currentView.unrenderBusinessHours();
+ currentView.renderBusinessHours();
+ }
+ return;
+ }
+ else if (optionName === 'timezone') {
+ t.rezoneArrayEventSources();
+ refetchEvents();
+ return;
+ }
+ }
+
+ // catch-all. rerender the header and rebuild/rerender the current view
+ renderHeader();
+ viewsByType = {}; // even non-current views will be affected by this option change. do before rerender
+ reinitView();
+ }
function trigger(name, thisObj) { // overrides the Emitter's trigger method :(
@@ -9980,8 +10110,8 @@ function Calendar_constructor(element, overrides) {
thisObj = thisObj || _element;
this.triggerWith(name, thisObj, args); // Emitter's method
- if (options[name]) {
- return options[name].apply(thisObj, args);
+ if (t.options[name]) {
+ return t.options[name].apply(thisObj, args);
}
}
@@ -9989,11 +10119,75 @@ function Calendar_constructor(element, overrides) {
}
;;
+/*
+Options binding/triggering system.
+*/
+Calendar.mixin({
+
+ // A map of option names to arrays of handler objects. Initialized to {} in Calendar.
+ // Format for a handler object:
+ // {
+ // func // callback function to be called upon change
+ // names // option names whose values should be given to func
+ // }
+ optionHandlers: null,
+
+ // Calls handlerFunc immediately, and when the given option has changed.
+ // handlerFunc will be given the option value.
+ bindOption: function(optionName, handlerFunc) {
+ this.bindOptions([ optionName ], handlerFunc);
+ },
+
+ // Calls handlerFunc immediately, and when any of the given options change.
+ // handlerFunc will be given each option value as ordered function arguments.
+ bindOptions: function(optionNames, handlerFunc) {
+ var handlerObj = { func: handlerFunc, names: optionNames };
+ var i;
+
+ for (i = 0; i < optionNames.length; i++) {
+ this.registerOptionHandlerObj(optionNames[i], handlerObj);
+ }
+
+ this.triggerOptionHandlerObj(handlerObj);
+ },
+
+ // Puts the given handler object into the internal hash
+ registerOptionHandlerObj: function(optionName, handlerObj) {
+ (this.optionHandlers[optionName] || (this.optionHandlers[optionName] = []))
+ .push(handlerObj);
+ },
+
+ // Reports that the given option has changed, and calls all appropriate handlers.
+ triggerOptionHandlers: function(optionName) {
+ var handlerObjs = this.optionHandlers[optionName] || [];
+ var i;
+
+ for (i = 0; i < handlerObjs.length; i++) {
+ this.triggerOptionHandlerObj(handlerObjs[i]);
+ }
+ },
+
+ // Calls the callback for a specific handler object, passing in the appropriate arguments.
+ triggerOptionHandlerObj: function(handlerObj) {
+ var optionNames = handlerObj.names;
+ var optionValues = [];
+ var i;
+
+ for (i = 0; i < optionNames.length; i++) {
+ optionValues.push(this.options[optionNames[i]]);
+ }
+
+ handlerObj.func.apply(this, optionValues); // maintain the Calendar's `this` context
+ }
+
+});
+
+;;
Calendar.defaults = {
titleRangeSeparator: ' \u2013 ', // en dash
- monthYearFormat: 'MMMM YYYY', // required for en. other languages rely on datepicker computable option
+ monthYearFormat: 'MMMM YYYY', // required for en. other locales rely on datepicker computable option
defaultTimedEventDuration: '02:00:00',
defaultAllDayEventDuration: { days: 1 },
@@ -10050,6 +10244,8 @@ Calendar.defaults = {
prevYear: 'left-double-arrow',
nextYear: 'right-double-arrow'
},
+
+ allDayText: 'all-day',
// jquery-ui theming
theme: false,
@@ -10078,14 +10274,14 @@ Calendar.defaults = {
dayPopoverFormat: 'LL',
handleWindowResize: true,
- windowResizeDelay: 200, // milliseconds before an updateSize happens
+ windowResizeDelay: 100, // milliseconds before an updateSize happens
longPressDelay: 1000
};
-Calendar.englishDefaults = { // used by lang.js
+Calendar.englishDefaults = { // used by locale.js
dayPopoverFormat: 'dddd, MMMM D'
};
@@ -10112,19 +10308,18 @@ Calendar.rtlDefaults = { // right-to-left defaults
;;
-var langOptionHash = FC.langs = {}; // initialize and expose
+var localeOptionHash = FC.locales = {}; // initialize and expose
-// TODO: document the structure and ordering of a FullCalendar lang file
-// TODO: rename everything "lang" to "locale", like what the moment project did
+// TODO: document the structure and ordering of a FullCalendar locale file
// Initialize jQuery UI datepicker translations while using some of the translations
-// Will set this as the default language for datepicker.
-FC.datepickerLang = function(langCode, dpLangCode, dpOptions) {
+// Will set this as the default locales for datepicker.
+FC.datepickerLocale = function(localeCode, dpLocaleCode, dpOptions) {
- // get the FullCalendar internal option hash for this language. create if necessary
- var fcOptions = langOptionHash[langCode] || (langOptionHash[langCode] = {});
+ // get the FullCalendar internal option hash for this locale. create if necessary
+ var fcOptions = localeOptionHash[localeCode] || (localeOptionHash[localeCode] = {});
// transfer some simple options from datepicker to fc
fcOptions.isRTL = dpOptions.isRTL;
@@ -10138,15 +10333,15 @@ FC.datepickerLang = function(langCode, dpLangCode, dpOptions) {
// is jQuery UI Datepicker is on the page?
if ($.datepicker) {
- // Register the language data.
- // FullCalendar and MomentJS use language codes like "pt-br" but Datepicker
- // does it like "pt-BR" or if it doesn't have the language, maybe just "pt".
- // Make an alias so the language can be referenced either way.
- $.datepicker.regional[dpLangCode] =
- $.datepicker.regional[langCode] = // alias
+ // Register the locale data.
+ // FullCalendar and MomentJS use locale codes like "pt-br" but Datepicker
+ // does it like "pt-BR" or if it doesn't have the locale, maybe just "pt".
+ // Make an alias so the locale can be referenced either way.
+ $.datepicker.regional[dpLocaleCode] =
+ $.datepicker.regional[localeCode] = // alias
dpOptions;
- // Alias 'en' to the default language data. Do this every time.
+ // Alias 'en' to the default locale data. Do this every time.
$.datepicker.regional.en = $.datepicker.regional[''];
// Set as Datepicker's global defaults.
@@ -10155,35 +10350,35 @@ FC.datepickerLang = function(langCode, dpLangCode, dpOptions) {
};
-// Sets FullCalendar-specific translations. Will set the language as the global default.
-FC.lang = function(langCode, newFcOptions) {
+// Sets FullCalendar-specific translations. Will set the locales as the global default.
+FC.locale = function(localeCode, newFcOptions) {
var fcOptions;
var momOptions;
- // get the FullCalendar internal option hash for this language. create if necessary
- fcOptions = langOptionHash[langCode] || (langOptionHash[langCode] = {});
+ // get the FullCalendar internal option hash for this locale. create if necessary
+ fcOptions = localeOptionHash[localeCode] || (localeOptionHash[localeCode] = {});
- // provided new options for this language? merge them in
+ // provided new options for this locales? merge them in
if (newFcOptions) {
- fcOptions = langOptionHash[langCode] = mergeOptions([ fcOptions, newFcOptions ]);
+ fcOptions = localeOptionHash[localeCode] = mergeOptions([ fcOptions, newFcOptions ]);
}
- // compute language options that weren't defined.
+ // compute locale options that weren't defined.
// always do this. newFcOptions can be undefined when initializing from i18n file,
// so no way to tell if this is an initialization or a default-setting.
- momOptions = getMomentLocaleData(langCode); // will fall back to en
+ momOptions = getMomentLocaleData(localeCode); // will fall back to en
$.each(momComputableOptions, function(name, func) {
if (fcOptions[name] == null) {
fcOptions[name] = func(momOptions, fcOptions);
}
});
- // set it as the default language for FullCalendar
- Calendar.defaults.lang = langCode;
+ // set it as the default locale for FullCalendar
+ Calendar.defaults.locale = localeCode;
};
-// NOTE: can't guarantee any of these computations will run because not every language has datepicker
+// NOTE: can't guarantee any of these computations will run because not every locale has datepicker
// configs, so make sure there are English fallbacks for these in the defaults file.
var dpComputableOptions = {
@@ -10233,7 +10428,7 @@ var momComputableOptions = {
smallTimeFormat: function(momOptions) {
return momOptions.longDateFormat('LT')
.replace(':mm', '(:mm)')
- .replace(/(\Wmm)$/, '($1)') // like above, but for foreign langs
+ .replace(/(\Wmm)$/, '($1)') // like above, but for foreign locales
.replace(/\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand
},
@@ -10241,7 +10436,7 @@ var momComputableOptions = {
extraSmallTimeFormat: function(momOptions) {
return momOptions.longDateFormat('LT')
.replace(':mm', '(:mm)')
- .replace(/(\Wmm)$/, '($1)') // like above, but for foreign langs
+ .replace(/(\Wmm)$/, '($1)') // like above, but for foreign locales
.replace(/\s*a$/i, 't'); // convert to AM/PM/am/pm to lowercase one-letter. remove any spaces beforehand
},
@@ -10249,7 +10444,7 @@ var momComputableOptions = {
hourFormat: function(momOptions) {
return momOptions.longDateFormat('LT')
.replace(':mm', '')
- .replace(/(\Wmm)$/, '') // like above, but for foreign langs
+ .replace(/(\Wmm)$/, '') // like above, but for foreign locales
.replace(/\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand
},
@@ -10263,7 +10458,7 @@ var momComputableOptions = {
// options that should be computed off live calendar options (considers override options)
-// TODO: best place for this? related to lang?
+// TODO: best place for this? related to locale?
// TODO: flipping text based on isRTL is a bad idea because the CSS `direction` might want to handle it
var instanceComputableOptions = {
@@ -10300,17 +10495,14 @@ function populateInstanceComputableOptions(options) {
// Returns moment's internal locale data. If doesn't exist, returns English.
-// Works with moment-pre-2.8
-function getMomentLocaleData(langCode) {
- var func = moment.localeData || moment.langData;
- return func.call(moment, langCode) ||
- func.call(moment, 'en'); // the newer localData could return null, so fall back to en
+function getMomentLocaleData(localeCode) {
+ return moment.localeData(localeCode) || moment.localeData('en');
}
// Initialize English by forcing computation of moment-derived options.
// Also, sets it as the default.
-FC.lang('en', Calendar.englishDefaults);
+FC.locale('en', Calendar.englishDefaults);
;;
@@ -10318,7 +10510,7 @@ FC.lang('en', Calendar.englishDefaults);
----------------------------------------------------------------------------------------------------------------------*/
// TODO: rename all header-related things to "toolbar"
-function Header(calendar, options) {
+function Header(calendar) {
var t = this;
// exports
@@ -10330,38 +10522,50 @@ function Header(calendar, options) {
t.disableButton = disableButton;
t.enableButton = enableButton;
t.getViewsWithButtons = getViewsWithButtons;
+ t.el = null; // mirrors local `el`
// locals
- var el = $();
+ var el;
var viewsWithButtons = [];
var tm;
+ // can be called repeatedly and will rerender
function render() {
+ var options = calendar.options;
var sections = options.header;
tm = options.theme ? 'ui' : 'fc';
if (sections) {
- el = $("<div class='fc-toolbar'/>")
- .append(renderSection('left'))
+ if (!el) {
+ el = this.el = $("<div class='fc-toolbar'/>");
+ }
+ else {
+ el.empty();
+ }
+ el.append(renderSection('left'))
.append(renderSection('right'))
.append(renderSection('center'))
.append('<div class="fc-clear"/>');
-
- return el;
+ }
+ else {
+ removeElement();
}
}
function removeElement() {
- el.remove();
- el = $();
+ if (el) {
+ el.remove();
+ el = t.el = null;
+ }
}
function renderSection(position) {
var sectionEl = $('<div class="fc-' + position + '"/>');
+ var options = calendar.options;
var buttonStr = options.header[position];
if (buttonStr) {
@@ -10387,7 +10591,7 @@ function Header(calendar, options) {
isOnlyButtons = false;
}
else {
- if ((customButtonProps = (calendar.options.customButtons || {})[buttonName])) {
+ if ((customButtonProps = (options.customButtons || {})[buttonName])) {
buttonClick = function(ev) {
if (customButtonProps.click) {
customButtonProps.click.call(button[0], ev);
@@ -10523,33 +10727,43 @@ function Header(calendar, options) {
function updateTitle(text) {
- el.find('h2').text(text);
+ if (el) {
+ el.find('h2').text(text);
+ }
}
function activateButton(buttonName) {
- el.find('.fc-' + buttonName + '-button')
- .addClass(tm + '-state-active');
+ if (el) {
+ el.find('.fc-' + buttonName + '-button')
+ .addClass(tm + '-state-active');
+ }
}
function deactivateButton(buttonName) {
- el.find('.fc-' + buttonName + '-button')
- .removeClass(tm + '-state-active');
+ if (el) {
+ el.find('.fc-' + buttonName + '-button')
+ .removeClass(tm + '-state-active');
+ }
}
function disableButton(buttonName) {
- el.find('.fc-' + buttonName + '-button')
- .prop('disabled', true)
- .addClass(tm + '-state-disabled');
+ if (el) {
+ el.find('.fc-' + buttonName + '-button')
+ .prop('disabled', true)
+ .addClass(tm + '-state-disabled');
+ }
}
function enableButton(buttonName) {
- el.find('.fc-' + buttonName + '-button')
- .prop('disabled', false)
- .removeClass(tm + '-state-disabled');
+ if (el) {
+ el.find('.fc-' + buttonName + '-button')
+ .prop('disabled', false)
+ .removeClass(tm + '-state-disabled');
+ }
}
@@ -10572,7 +10786,7 @@ var ajaxDefaults = {
var eventGUID = 1;
-function EventManager(options) { // assumed to be a calendar
+function EventManager() { // assumed to be a calendar
var t = this;
@@ -10609,7 +10823,7 @@ function EventManager(options) { // assumed to be a calendar
$.each(
- (options.events ? [ options.events ] : []).concat(options.eventSources || []),
+ (t.options.events ? [ t.options.events ] : []).concat(t.options.eventSources || []),
function(i, sourceInput) {
var source = buildEventSource(sourceInput);
if (source) {
@@ -10743,7 +10957,7 @@ function EventManager(options) { // assumed to be a calendar
source,
rangeStart.clone(),
rangeEnd.clone(),
- options.timezone,
+ t.options.timezone,
callback
);
@@ -10766,7 +10980,7 @@ function EventManager(options) { // assumed to be a calendar
t, // this, the Calendar object
rangeStart.clone(),
rangeEnd.clone(),
- options.timezone,
+ t.options.timezone,
function(events) {
callback(events);
t.popLoading();
@@ -10801,9 +11015,9 @@ function EventManager(options) { // assumed to be a calendar
// and not affect the passed-in object.
var data = $.extend({}, customData || {});
- var startParam = firstDefined(source.startParam, options.startParam);
- var endParam = firstDefined(source.endParam, options.endParam);
- var timezoneParam = firstDefined(source.timezoneParam, options.timezoneParam);
+ var startParam = firstDefined(source.startParam, t.options.startParam);
+ var endParam = firstDefined(source.endParam, t.options.endParam);
+ var timezoneParam = firstDefined(source.timezoneParam, t.options.timezoneParam);
if (startParam) {
data[startParam] = rangeStart.format();
@@ -10811,8 +11025,8 @@ function EventManager(options) { // assumed to be a calendar
if (endParam) {
data[endParam] = rangeEnd.format();
}
- if (options.timezone && options.timezone != 'local') {
- data[timezoneParam] = options.timezone;
+ if (t.options.timezone && t.options.timezone != 'local') {
+ data[timezoneParam] = t.options.timezone;
}
t.pushLoading();
@@ -11144,7 +11358,7 @@ function EventManager(options) { // assumed to be a calendar
reportEvents(cache);
}
-
+
function clientEvents(filter) {
if ($.isFunction(filter)) {
@@ -11158,7 +11372,33 @@ function EventManager(options) { // assumed to be a calendar
}
return cache; // else, return all
}
-
+
+
+ // Makes sure all array event sources have their internal event objects
+ // converted over to the Calendar's current timezone.
+ t.rezoneArrayEventSources = function() {
+ var i;
+ var events;
+ var j;
+
+ for (i = 0; i < sources.length; i++) {
+ events = sources[i].events;
+ if ($.isArray(events)) {
+
+ for (j = 0; j < events.length; j++) {
+ rezoneEventDates(events[j]);
+ }
+ }
+ }
+ };
+
+ function rezoneEventDates(event) {
+ event.start = t.moment(event.start);
+ if (event.end) {
+ event.end = t.moment(event.end);
+ }
+ backupEventDates(event);
+ }
/* Event Normalization
@@ -11174,8 +11414,8 @@ function EventManager(options) { // assumed to be a calendar
var start, end;
var allDay;
- if (options.eventDataTransform) {
- input = options.eventDataTransform(input);
+ if (t.options.eventDataTransform) {
+ input = t.options.eventDataTransform(input);
}
if (source && source.eventDataTransform) {
input = source.eventDataTransform(input);
@@ -11241,7 +11481,7 @@ function EventManager(options) { // assumed to be a calendar
if (allDay === undefined) { // still undefined? fallback to default
allDay = firstDefined(
source ? source.allDayDefault : undefined,
- options.allDayDefault
+ t.options.allDayDefault
);
// still undefined? normalizeEventDates will calculate it
}
@@ -11253,6 +11493,7 @@ function EventManager(options) { // assumed to be a calendar
return out;
}
+ t.buildEventFromInput = buildEventFromInput;
// Normalizes and assigns the given dates to the given partially-formed event object.
@@ -11277,7 +11518,7 @@ function EventManager(options) { // assumed to be a calendar
}
if (!eventProps.end) {
- if (options.forceEventDuration) {
+ if (t.options.forceEventDuration) {
eventProps.end = t.getDefaultEventEnd(eventProps.allDay, eventProps.start);
}
else {
@@ -11376,6 +11617,7 @@ function EventManager(options) { // assumed to be a calendar
return events;
}
+ t.expandEvent = expandEvent;
@@ -11569,125 +11811,134 @@ function EventManager(options) { // assumed to be a calendar
}
- /* Business Hours
- -----------------------------------------------------------------------------------------*/
+ t.getEventCache = function() {
+ return cache;
+ };
- t.getBusinessHoursEvents = getBusinessHoursEvents;
+}
- // Returns an array of events as to when the business hours occur in the given view.
- // Abuse of our event system :(
- function getBusinessHoursEvents(wholeDay) {
- var optionVal = options.businessHours;
- var defaultVal = {
- className: 'fc-nonbusiness',
- start: '09:00',
- end: '17:00',
- dow: [ 1, 2, 3, 4, 5 ], // monday - friday
- rendering: 'inverse-background'
- };
- var view = t.getView();
- var eventInput;
+// hook for external libs to manipulate event properties upon creation.
+// should manipulate the event in-place.
+Calendar.prototype.normalizeEvent = function(event) {
+};
- if (optionVal) { // `true` (which means "use the defaults") or an override object
- eventInput = $.extend(
- {}, // copy to a new object in either case
- defaultVal,
- typeof optionVal === 'object' ? optionVal : {} // override the defaults
- );
- }
- if (eventInput) {
+// Does the given span (start, end, and other location information)
+// fully contain the other?
+Calendar.prototype.spanContainsSpan = function(outerSpan, innerSpan) {
+ var eventStart = outerSpan.start.clone().stripZone();
+ var eventEnd = this.getEventEnd(outerSpan).stripZone();
- // if a whole-day series is requested, clear the start/end times
- if (wholeDay) {
- eventInput.start = null;
- eventInput.end = null;
- }
+ return innerSpan.start >= eventStart && innerSpan.end <= eventEnd;
+};
- return expandEvent(
- buildEventFromInput(eventInput),
- view.start,
- view.end
- );
- }
- return [];
+// Returns a list of events that the given event should be compared against when being considered for a move to
+// the specified span. Attached to the Calendar's prototype because EventManager is a mixin for a Calendar.
+Calendar.prototype.getPeerEvents = function(span, event) {
+ var cache = this.getEventCache();
+ var peerEvents = [];
+ var i, otherEvent;
+
+ for (i = 0; i < cache.length; i++) {
+ otherEvent = cache[i];
+ if (
+ !event ||
+ event._id !== otherEvent._id // don't compare the event to itself or other related [repeating] events
+ ) {
+ peerEvents.push(otherEvent);
+ }
}
+ return peerEvents;
+};
- /* Overlapping / Constraining
- -----------------------------------------------------------------------------------------*/
- t.isEventSpanAllowed = isEventSpanAllowed;
- t.isExternalSpanAllowed = isExternalSpanAllowed;
- t.isSelectionSpanAllowed = isSelectionSpanAllowed;
+// updates the "backup" properties, which are preserved in order to compute diffs later on.
+function backupEventDates(event) {
+ event._allDay = event.allDay;
+ event._start = event.start.clone();
+ event._end = event.end ? event.end.clone() : null;
+}
- // Determines if the given event can be relocated to the given span (unzoned start/end with other misc data)
- function isEventSpanAllowed(span, event) {
- var source = event.source || {};
- var constraint = firstDefined(
- event.constraint,
- source.constraint,
- options.eventConstraint
- );
- var overlap = firstDefined(
- event.overlap,
- source.overlap,
- options.eventOverlap
- );
- return isSpanAllowed(span, constraint, overlap, event);
- }
+/* Overlapping / Constraining
+-----------------------------------------------------------------------------------------*/
- // Determines if an external event can be relocated to the given span (unzoned start/end with other misc data)
- function isExternalSpanAllowed(eventSpan, eventLocation, eventProps) {
- var eventInput;
- var event;
+// Determines if the given event can be relocated to the given span (unzoned start/end with other misc data)
+Calendar.prototype.isEventSpanAllowed = function(span, event) {
+ var source = event.source || {};
- // note: very similar logic is in View's reportExternalDrop
- if (eventProps) {
- eventInput = $.extend({}, eventProps, eventLocation);
- event = expandEvent(buildEventFromInput(eventInput))[0];
- }
+ var constraint = firstDefined(
+ event.constraint,
+ source.constraint,
+ this.options.eventConstraint
+ );
- if (event) {
- return isEventSpanAllowed(eventSpan, event);
- }
- else { // treat it as a selection
+ var overlap = firstDefined(
+ event.overlap,
+ source.overlap,
+ this.options.eventOverlap
+ );
- return isSelectionSpanAllowed(eventSpan);
- }
+ return this.isSpanAllowed(span, constraint, overlap, event) &&
+ (!this.options.eventAllow || this.options.eventAllow(span, event) !== false);
+};
+
+
+// Determines if an external event can be relocated to the given span (unzoned start/end with other misc data)
+Calendar.prototype.isExternalSpanAllowed = function(eventSpan, eventLocation, eventProps) {
+ var eventInput;
+ var event;
+
+ // note: very similar logic is in View's reportExternalDrop
+ if (eventProps) {
+ eventInput = $.extend({}, eventProps, eventLocation);
+ event = this.expandEvent(
+ this.buildEventFromInput(eventInput)
+ )[0];
}
+ if (event) {
+ return this.isEventSpanAllowed(eventSpan, event);
+ }
+ else { // treat it as a selection
- // Determines the given span (unzoned start/end with other misc data) can be selected.
- function isSelectionSpanAllowed(span) {
- return isSpanAllowed(span, options.selectConstraint, options.selectOverlap);
+ return this.isSelectionSpanAllowed(eventSpan);
}
+};
- // Returns true if the given span (caused by an event drop/resize or a selection) is allowed to exist
- // according to the constraint/overlap settings.
- // `event` is not required if checking a selection.
- function isSpanAllowed(span, constraint, overlap, event) {
- var constraintEvents;
- var anyContainment;
- var peerEvents;
- var i, peerEvent;
- var peerOverlap;
+// Determines the given span (unzoned start/end with other misc data) can be selected.
+Calendar.prototype.isSelectionSpanAllowed = function(span) {
+ return this.isSpanAllowed(span, this.options.selectConstraint, this.options.selectOverlap) &&
+ (!this.options.selectAllow || this.options.selectAllow(span) !== false);
+};
+
- // the range must be fully contained by at least one of produced constraint events
- if (constraint != null) {
+// Returns true if the given span (caused by an event drop/resize or a selection) is allowed to exist
+// according to the constraint/overlap settings.
+// `event` is not required if checking a selection.
+Calendar.prototype.isSpanAllowed = function(span, constraint, overlap, event) {
+ var constraintEvents;
+ var anyContainment;
+ var peerEvents;
+ var i, peerEvent;
+ var peerOverlap;
- // not treated as an event! intermediate data structure
- // TODO: use ranges in the future
- constraintEvents = constraintToEvents(constraint);
+ // the range must be fully contained by at least one of produced constraint events
+ if (constraint != null) {
+
+ // not treated as an event! intermediate data structure
+ // TODO: use ranges in the future
+ constraintEvents = this.constraintToEvents(constraint);
+ if (constraintEvents) { // not invalid
anyContainment = false;
for (i = 0; i < constraintEvents.length; i++) {
- if (eventContainsRange(constraintEvents[i], span)) {
+ if (this.spanContainsSpan(constraintEvents[i], span)) {
anyContainment = true;
break;
}
@@ -11697,126 +11948,150 @@ function EventManager(options) { // assumed to be a calendar
return false;
}
}
+ }
- peerEvents = t.getPeerEvents(span, event);
+ peerEvents = this.getPeerEvents(span, event);
- for (i = 0; i < peerEvents.length; i++) {
- peerEvent = peerEvents[i];
+ for (i = 0; i < peerEvents.length; i++) {
+ peerEvent = peerEvents[i];
- // there needs to be an actual intersection before disallowing anything
- if (eventIntersectsRange(peerEvent, span)) {
+ // there needs to be an actual intersection before disallowing anything
+ if (this.eventIntersectsRange(peerEvent, span)) {
- // evaluate overlap for the given range and short-circuit if necessary
- if (overlap === false) {
+ // evaluate overlap for the given range and short-circuit if necessary
+ if (overlap === false) {
+ return false;
+ }
+ // if the event's overlap is a test function, pass the peer event in question as the first param
+ else if (typeof overlap === 'function' && !overlap(peerEvent, event)) {
+ return false;
+ }
+
+ // if we are computing if the given range is allowable for an event, consider the other event's
+ // EventObject-specific or Source-specific `overlap` property
+ if (event) {
+ peerOverlap = firstDefined(
+ peerEvent.overlap,
+ (peerEvent.source || {}).overlap
+ // we already considered the global `eventOverlap`
+ );
+ if (peerOverlap === false) {
return false;
}
- // if the event's overlap is a test function, pass the peer event in question as the first param
- else if (typeof overlap === 'function' && !overlap(peerEvent, event)) {
+ // if the peer event's overlap is a test function, pass the subject event as the first param
+ if (typeof peerOverlap === 'function' && !peerOverlap(event, peerEvent)) {
return false;
}
-
- // if we are computing if the given range is allowable for an event, consider the other event's
- // EventObject-specific or Source-specific `overlap` property
- if (event) {
- peerOverlap = firstDefined(
- peerEvent.overlap,
- (peerEvent.source || {}).overlap
- // we already considered the global `eventOverlap`
- );
- if (peerOverlap === false) {
- return false;
- }
- // if the peer event's overlap is a test function, pass the subject event as the first param
- if (typeof peerOverlap === 'function' && !peerOverlap(event, peerEvent)) {
- return false;
- }
- }
}
}
-
- return true;
}
+ return true;
+};
- // Given an event input from the API, produces an array of event objects. Possible event inputs:
- // 'businessHours'
- // An event ID (number or string)
- // An object with specific start/end dates or a recurring event (like what businessHours accepts)
- function constraintToEvents(constraintInput) {
- if (constraintInput === 'businessHours') {
- return getBusinessHoursEvents();
- }
+// Given an event input from the API, produces an array of event objects. Possible event inputs:
+// 'businessHours'
+// An event ID (number or string)
+// An object with specific start/end dates or a recurring event (like what businessHours accepts)
+Calendar.prototype.constraintToEvents = function(constraintInput) {
- if (typeof constraintInput === 'object') {
- return expandEvent(buildEventFromInput(constraintInput));
- }
+ if (constraintInput === 'businessHours') {
+ return this.getCurrentBusinessHourEvents();
+ }
- return clientEvents(constraintInput); // probably an ID
+ if (typeof constraintInput === 'object') {
+ if (constraintInput.start != null) { // needs to be event-like input
+ return this.expandEvent(this.buildEventFromInput(constraintInput));
+ }
+ else {
+ return null; // invalid
+ }
}
+ return this.clientEvents(constraintInput); // probably an ID
+};
- // Does the event's date range fully contain the given range?
- // start/end already assumed to have stripped zones :(
- function eventContainsRange(event, range) {
- var eventStart = event.start.clone().stripZone();
- var eventEnd = t.getEventEnd(event).stripZone();
- return range.start >= eventStart && range.end <= eventEnd;
- }
+// Does the event's date range intersect with the given range?
+// start/end already assumed to have stripped zones :(
+Calendar.prototype.eventIntersectsRange = function(event, range) {
+ var eventStart = event.start.clone().stripZone();
+ var eventEnd = this.getEventEnd(event).stripZone();
+ return range.start < eventEnd && range.end > eventStart;
+};
- // Does the event's date range intersect with the given range?
- // start/end already assumed to have stripped zones :(
- function eventIntersectsRange(event, range) {
- var eventStart = event.start.clone().stripZone();
- var eventEnd = t.getEventEnd(event).stripZone();
- return range.start < eventEnd && range.end > eventStart;
- }
+/* Business Hours
+-----------------------------------------------------------------------------------------*/
+var BUSINESS_HOUR_EVENT_DEFAULTS = {
+ id: '_fcBusinessHours', // will relate events from different calls to expandEvent
+ start: '09:00',
+ end: '17:00',
+ dow: [ 1, 2, 3, 4, 5 ], // monday - friday
+ rendering: 'inverse-background'
+ // classNames are defined in businessHoursSegClasses
+};
- t.getEventCache = function() {
- return cache;
- };
+// Return events objects for business hours within the current view.
+// Abuse of our event system :(
+Calendar.prototype.getCurrentBusinessHourEvents = function(wholeDay) {
+ return this.computeBusinessHourEvents(wholeDay, this.options.businessHours);
+};
-}
+// Given a raw input value from options, return events objects for business hours within the current view.
+Calendar.prototype.computeBusinessHourEvents = function(wholeDay, input) {
+ if (input === true) {
+ return this.expandBusinessHourEvents(wholeDay, [ {} ]);
+ }
+ else if ($.isPlainObject(input)) {
+ return this.expandBusinessHourEvents(wholeDay, [ input ]);
+ }
+ else if ($.isArray(input)) {
+ return this.expandBusinessHourEvents(wholeDay, input, true);
+ }
+ else {
+ return [];
+ }
+};
+// inputs expected to be an array of objects.
+// if ignoreNoDow is true, will ignore entries that don't specify a day-of-week (dow) key.
+Calendar.prototype.expandBusinessHourEvents = function(wholeDay, inputs, ignoreNoDow) {
+ var view = this.getView();
+ var events = [];
+ var i, input;
-// hook for external libs to manipulate event properties upon creation.
-// should manipulate the event in-place.
-Calendar.prototype.normalizeEvent = function(event) {
-};
+ for (i = 0; i < inputs.length; i++) {
+ input = inputs[i];
+ if (ignoreNoDow && !input.dow) {
+ continue;
+ }
-// Returns a list of events that the given event should be compared against when being considered for a move to
-// the specified span. Attached to the Calendar's prototype because EventManager is a mixin for a Calendar.
-Calendar.prototype.getPeerEvents = function(span, event) {
- var cache = this.getEventCache();
- var peerEvents = [];
- var i, otherEvent;
+ // give defaults. will make a copy
+ input = $.extend({}, BUSINESS_HOUR_EVENT_DEFAULTS, input);
- for (i = 0; i < cache.length; i++) {
- otherEvent = cache[i];
- if (
- !event ||
- event._id !== otherEvent._id // don't compare the event to itself or other related [repeating] events
- ) {
- peerEvents.push(otherEvent);
+ // if a whole-day series is requested, clear the start/end times
+ if (wholeDay) {
+ input.start = null;
+ input.end = null;
}
+
+ events.push.apply(events, // append
+ this.expandEvent(
+ this.buildEventFromInput(input),
+ view.start,
+ view.end
+ )
+ );
}
- return peerEvents;
+ return events;
};
-
-// updates the "backup" properties, which are preserved in order to compute diffs later on.
-function backupEventDates(event) {
- event._allDay = event.allDay;
- event._start = event.start.clone();
- event._end = event.end ? event.end.clone() : null;
-}
-
;;
/* An abstract class for the "basic" views, as well as month view. Renders one or more rows of day cells.
@@ -11832,7 +12107,8 @@ var BasicView = FC.BasicView = View.extend({
dayGrid: null, // the main subcomponent that does most of the heavy lifting
dayNumbersVisible: false, // display day numbers on each day cell?
- weekNumbersVisible: false, // display week numbers along the side?
+ colWeekNumbersVisible: false, // display week numbers along the side?
+ cellWeekNumbersVisible: false, // display week numbers in day cell?
weekNumberWidth: null, // width of all the week-number cells running down the side
@@ -11893,8 +12169,18 @@ var BasicView = FC.BasicView = View.extend({
renderDates: function() {
this.dayNumbersVisible = this.dayGrid.rowCnt > 1; // TODO: make grid responsible
- this.weekNumbersVisible = this.opt('weekNumbers');
- this.dayGrid.numbersVisible = this.dayNumbersVisible || this.weekNumbersVisible;
+ if (this.opt('weekNumbers')) {
+ if (this.opt('weekNumbersWithinDays')) {
+ this.cellWeekNumbersVisible = true;
+ this.colWeekNumbersVisible = false;
+ }
+ else {
+ this.cellWeekNumbersVisible = false;
+ this.colWeekNumbersVisible = true;
+ };
+ }
+ this.dayGrid.numbersVisible = this.dayNumbersVisible ||
+ this.cellWeekNumbersVisible || this.colWeekNumbersVisible;
this.el.addClass('fc-basic-view').html(this.renderSkeletonHtml());
this.renderHead();
@@ -11932,6 +12218,11 @@ var BasicView = FC.BasicView = View.extend({
},
+ unrenderBusinessHours: function() {
+ this.dayGrid.unrenderBusinessHours();
+ },
+
+
// Builds the HTML skeleton for the view.
// The day-grid component will render inside of a container defined by this HTML.
renderSkeletonHtml: function() {
@@ -11973,7 +12264,7 @@ var BasicView = FC.BasicView = View.extend({
// Refreshes the horizontal dimensions of the view
updateWidth: function() {
- if (this.weekNumbersVisible) {
+ if (this.colWeekNumbersVisible) {
// Make sure all week number cells running down the side have the same width.
// Record the width for cells created later.
this.weekNumberWidth = matchCellWidths(
@@ -12114,9 +12405,8 @@ var BasicView = FC.BasicView = View.extend({
unrenderEvents: function() {
this.dayGrid.unrenderEvents();
- // we DON'T need to call updateHeight() because:
- // A) a renderEvents() call always happens after this, which will eventually call updateHeight()
- // B) in IE8, this causes a flash whenever events are rerendered
+ // we DON'T need to call updateHeight() because
+ // a renderEvents() call always happens after this, which will eventually call updateHeight()
},
@@ -12161,7 +12451,7 @@ var basicDayGridMethods = {
renderHeadIntroHtml: function() {
var view = this.view;
- if (view.weekNumbersVisible) {
+ if (view.colWeekNumbersVisible) {
return '' +
'<th class="fc-week-number ' + view.widgetHeaderClass + '" ' + view.weekNumberStyleAttr() + '>' +
'<span>' + // needed for matchCellWidths
@@ -12177,13 +12467,15 @@ var basicDayGridMethods = {
// Generates the HTML that will go before content-skeleton cells that display the day/week numbers
renderNumberIntroHtml: function(row) {
var view = this.view;
+ var weekStart = this.getCellDate(row, 0);
- if (view.weekNumbersVisible) {
+ if (view.colWeekNumbersVisible) {
return '' +
'<td class="fc-week-number" ' + view.weekNumberStyleAttr() + '>' +
- '<span>' + // needed for matchCellWidths
- this.getCellDate(row, 0).format('w') +
- '</span>' +
+ view.buildGotoAnchorHtml( // aside from link, important for matchCellWidths
+ { date: weekStart, type: 'week', forceOff: this.colCnt === 1 },
+ weekStart.format('w') // inner HTML
+ ) +
'</td>';
}
@@ -12195,7 +12487,7 @@ var basicDayGridMethods = {
renderBgIntroHtml: function() {
var view = this.view;
- if (view.weekNumbersVisible) {
+ if (view.colWeekNumbersVisible) {
return '<td class="fc-week-number ' + view.widgetContentClass + '" ' +
view.weekNumberStyleAttr() + '></td>';
}
@@ -12209,7 +12501,7 @@ var basicDayGridMethods = {
renderIntroHtml: function() {
var view = this.view;
- if (view.weekNumbersVisible) {
+ if (view.colWeekNumbersVisible) {
return '<td class="fc-week-number" ' + view.weekNumberStyleAttr() + '></td>';
}
@@ -12243,8 +12535,6 @@ var MonthView = FC.MonthView = BasicView.extend({
// Overrides the default BasicView behavior to have special multi-week auto-height logic
setGridHeight: function(height, isAuto) {
- isAuto = isAuto || this.opt('weekMode') === 'variable'; // LEGACY: weekMode is deprecated
-
// if auto, make the height of each row the height that it would be if there were 6 weeks
if (isAuto) {
height *= this.rowCnt / 6;
@@ -12255,11 +12545,6 @@ var MonthView = FC.MonthView = BasicView.extend({
isFixedWeeks: function() {
- var weekMode = this.opt('weekMode'); // LEGACY: weekMode is deprecated
- if (weekMode) {
- return weekMode === 'fixed'; // if any other type of weekMode, assume NOT fixed
- }
-
return this.opt('fixedWeekCount');
}
@@ -12689,9 +12974,8 @@ var AgendaView = FC.AgendaView = View.extend({
this.dayGrid.unrenderEvents();
}
- // we DON'T need to call updateHeight() because:
- // A) a renderEvents() call always happens after this, which will eventually call updateHeight()
- // B) in IE8, this causes a flash whenever events are rerendered
+ // we DON'T need to call updateHeight() because
+ // a renderEvents() call always happens after this, which will eventually call updateHeight()
},
@@ -12759,9 +13043,10 @@ var agendaTimeGridMethods = {
return '' +
'<th class="fc-axis fc-week-number ' + view.widgetHeaderClass + '" ' + view.axisStyleAttr() + '>' +
- '<span>' + // needed for matchCellWidths
- htmlEscape(weekText) +
- '</span>' +
+ view.buildGotoAnchorHtml( // aside from link, important for matchCellWidths
+ { date: this.start, type: 'week', forceOff: this.colCnt > 1 },
+ htmlEscape(weekText) // inner HTML
+ ) +
'</th>';
}
else {
@@ -12800,7 +13085,7 @@ var agendaDayGridMethods = {
return '' +
'<td class="fc-axis ' + view.widgetContentClass + '" ' + view.axisStyleAttr() + '>' +
'<span>' + // needed for matchCellWidths
- (view.opt('allDayHtml') || htmlEscape(view.opt('allDayText'))) +
+ view.getAllDayHtml() +
'</span>' +
'</td>';
},
@@ -12834,7 +13119,6 @@ fcViews.agenda = {
'class': AgendaView,
defaults: {
allDaySlot: true,
- allDayText: 'all-day',
slotDuration: '00:30:00',
minTime: '00:00:00',
maxTime: '24:00:00',
@@ -12853,5 +13137,293 @@ fcViews.agendaWeek = {
};
;;
-return FC; // export for Node/CommonJS
+/*
+Responsible for the scroller, and forwarding event-related actions into the "grid"
+*/
+var ListView = View.extend({
+
+ grid: null,
+ scroller: null,
+
+ initialize: function() {
+ this.grid = new ListViewGrid(this);
+ this.scroller = new Scroller({
+ overflowX: 'hidden',
+ overflowY: 'auto'
+ });
+ },
+
+ setRange: function(range) {
+ View.prototype.setRange.call(this, range); // super
+
+ this.grid.setRange(range); // needs to process range-related options
+ },
+
+ renderSkeleton: function() {
+ this.el.addClass(
+ 'fc-list-view ' +
+ this.widgetContentClass
+ );
+
+ this.scroller.render();
+ this.scroller.el.appendTo(this.el);
+
+ this.grid.setElement(this.scroller.scrollEl);
+ },
+
+ unrenderSkeleton: function() {
+ this.scroller.destroy(); // will remove the Grid too
+ },
+
+ setHeight: function(totalHeight, isAuto) {
+ this.scroller.setHeight(this.computeScrollerHeight(totalHeight));
+ },
+
+ computeScrollerHeight: function(totalHeight) {
+ return totalHeight -
+ subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller
+ },
+
+ renderEvents: function(events) {
+ this.grid.renderEvents(events);
+ },
+
+ unrenderEvents: function() {
+ this.grid.unrenderEvents();
+ },
+
+ isEventResizable: function(event) {
+ return false;
+ },
+
+ isEventDraggable: function(event) {
+ return false;
+ }
+
+});
+
+/*
+Responsible for event rendering and user-interaction.
+Its "el" is the inner-content of the above view's scroller.
+*/
+var ListViewGrid = Grid.extend({
+
+ segSelector: '.fc-list-item', // which elements accept event actions
+ hasDayInteractions: false, // no day selection or day clicking
+
+ // slices by day
+ spanToSegs: function(span) {
+ var view = this.view;
+ var dayStart = view.start.clone();
+ var dayEnd;
+ var seg;
+ var segs = [];
+
+ while (dayStart < view.end) {
+ dayEnd = dayStart.clone().add(1, 'day');
+ seg = intersectRanges(span, {
+ start: dayStart,
+ end: dayEnd
+ });
+ if (seg) {
+ segs.push(seg);
+ }
+ dayStart = dayEnd;
+ }
+
+ return segs;
+ },
+
+ // like "4:00am"
+ computeEventTimeFormat: function() {
+ return this.view.opt('mediumTimeFormat');
+ },
+
+ // for events with a url, the whole <tr> should be clickable,
+ // but it's impossible to wrap with an <a> tag. simulate this.
+ handleSegClick: function(seg, ev) {
+ var url;
+
+ Grid.prototype.handleSegClick.apply(this, arguments); // super. might prevent the default action
+
+ // not clicking on or within an <a> with an href
+ if (!$(ev.target).closest('a[href]').length) {
+ url = seg.event.url;
+ if (url && !ev.isDefaultPrevented()) { // jsEvent not cancelled in handler
+ window.location.href = url; // simulate link click
+ }
+ }
+ },
+
+ // returns list of foreground segs that were actually rendered
+ renderFgSegs: function(segs) {
+ segs = this.renderFgSegEls(segs); // might filter away hidden events
+
+ if (!segs.length) {
+ this.renderEmptyMessage();
+ return segs;
+ }
+ else {
+ return this.renderSegList(segs);
+ }
+ },
+
+ renderEmptyMessage: function() {
+ this.el.html(
+ '<div class="fc-list-empty-wrap2">' + // TODO: try less wraps
+ '<div class="fc-list-empty-wrap1">' +
+ '<div class="fc-list-empty">' +
+ htmlEscape(this.view.opt('noEventsMessage')) +
+ '</div>' +
+ '</div>' +
+ '</div>'
+ );
+ },
+
+ // render the event segments in the view. returns the mutated array.
+ renderSegList: function(segs) {
+ var tableEl = $('<table class="fc-list-table"><tbody/></table>');
+ var tbodyEl = tableEl.find('tbody');
+ var i, seg;
+ var dayDate;
+
+ this.sortEventSegs(segs);
+
+ for (i = 0; i < segs.length; i++) {
+ seg = segs[i];
+
+ // append a day header
+ if (!dayDate || !seg.start.isSame(dayDate, 'day')) {
+ dayDate = seg.start.clone().stripTime();
+ tbodyEl.append(this.dayHeaderHtml(dayDate));
+ }
+
+ tbodyEl.append(seg.el); // append event row
+ }
+
+ this.el.empty().append(tableEl);
+
+ return segs; // return the sorted list
+ },
+
+ // generates the HTML for the day headers that live amongst the event rows
+ dayHeaderHtml: function(dayDate) {
+ var view = this.view;
+ var mainFormat = view.opt('listDayFormat');
+ var altFormat = view.opt('listDayAltFormat');
+
+ return '<tr class="fc-list-heading" data-date="' + dayDate.format('YYYY-MM-DD') + '">' +
+ '<td class="' + view.widgetHeaderClass + '" colspan="3">' +
+ (mainFormat ?
+ view.buildGotoAnchorHtml(
+ dayDate,
+ { 'class': 'fc-list-heading-main' },
+ htmlEscape(dayDate.format(mainFormat)) // inner HTML
+ ) :
+ '') +
+ (altFormat ?
+ view.buildGotoAnchorHtml(
+ dayDate,
+ { 'class': 'fc-list-heading-alt' },
+ htmlEscape(dayDate.format(altFormat)) // inner HTML
+ ) :
+ '') +
+ '</td>' +
+ '</tr>';
+ },
+
+ // generates the HTML for a single event row
+ fgSegHtml: function(seg) {
+ var view = this.view;
+ var classes = [ 'fc-list-item' ].concat(this.getSegCustomClasses(seg));
+ var bgColor = this.getSegBackgroundColor(seg);
+ var event = seg.event;
+ var url = event.url;
+ var timeHtml;
+
+ if (!seg.start.hasTime()) {
+ if (this.displayEventTime) {
+ timeHtml = view.getAllDayHtml();
+ }
+ }
+ else {
+ timeHtml = htmlEscape(this.getEventTimeText(event)); // might return empty
+ }
+
+ if (url) {
+ classes.push('fc-has-url');
+ }
+
+ return '<tr class="' + classes.join(' ') + '">' +
+ (timeHtml ?
+ '<td class="fc-list-item-time ' + view.widgetContentClass + '">' +
+ timeHtml +
+ '</td>' :
+ '') +
+ '<td class="fc-list-item-marker ' + view.widgetContentClass + '">' +
+ '<span class="fc-event-dot"' +
+ (bgColor ?
+ ' style="background-color:' + bgColor + '"' :
+ '') +
+ '></span>' +
+ '</td>' +
+ '<td class="fc-list-item-title ' + view.widgetContentClass + '">' +
+ '<a' + (url ? ' href="' + htmlEscape(url) + '"' : '') + '>' +
+ htmlEscape(seg.event.title) +
+ '</a>' +
+ '</td>' +
+ '</tr>';
+ }
+
+});
+
+;;
+
+fcViews.list = {
+ 'class': ListView,
+ buttonTextKey: 'list', // what to lookup in locale files
+ defaults: {
+ buttonText: 'list', // text to display for English
+ listTime: true, // show the time column?
+ listDayFormat: 'LL', // like "January 1, 2016"
+ noEventsMessage: 'No events to display'
+ }
+};
+
+fcViews.listDay = {
+ type: 'list',
+ duration: { days: 1 },
+ defaults: {
+ listDayFormat: 'dddd' // day-of-week is all we need. full date is probably in header
+ }
+};
+
+fcViews.listWeek = {
+ type: 'list',
+ duration: { weeks: 1 },
+ defaults: {
+ listDayFormat: 'dddd', // day-of-week is more important
+ listDayAltFormat: 'LL'
+ }
+};
+
+fcViews.listMonth = {
+ type: 'list',
+ duration: { month: 1 },
+ defaults: {
+ listDayAltFormat: 'dddd' // day-of-week is nice-to-have
+ }
+};
+
+fcViews.listYear = {
+ type: 'list',
+ duration: { year: 1 },
+ defaults: {
+ listDayAltFormat: 'dddd' // day-of-week is nice-to-have
+ }
+};
+
+;;
+
+return FC; // export for Node/CommonJS
}); \ No newline at end of file
diff --git a/library/fullcalendar/fullcalendar.min.css b/library/fullcalendar/fullcalendar.min.css
index 9f395b445..3d2bd5b2e 100644
--- a/library/fullcalendar/fullcalendar.min.css
+++ b/library/fullcalendar/fullcalendar.min.css
@@ -1,5 +1,5 @@
/*!
- * FullCalendar v2.8.0 Stylesheet
+ * FullCalendar v3.0.0 Stylesheet
* Docs & License: http://fullcalendar.io/
* (c) 2016 Adam Shaw
- */.fc-bgevent,.fc-highlight{opacity:.3;filter:alpha(opacity=30)}.fc-icon,body .fc{font-size:1em}.fc-button-group,.fc-icon{display:inline-block}.fc-bg,.fc-row .fc-bgevent-skeleton,.fc-row .fc-highlight-skeleton{bottom:0}.fc-icon,.fc-unselectable{-khtml-user-select:none;-webkit-touch-callout:none}.fc .fc-axis,.fc button,.fc-time-grid-event .fc-time,.fc-time-grid-event.fc-short .fc-content{white-space:nowrap}.fc{direction:ltr;text-align:left}.fc-rtl{text-align:right}.fc th,.fc-basic-view .fc-week-number,.fc-icon,.fc-toolbar{text-align:center}.fc-unthemed .fc-content,.fc-unthemed .fc-divider,.fc-unthemed .fc-popover,.fc-unthemed .fc-row,.fc-unthemed tbody,.fc-unthemed td,.fc-unthemed th,.fc-unthemed thead{border-color:#ddd}.fc-unthemed .fc-popover{background-color:#fff}.fc-unthemed .fc-divider,.fc-unthemed .fc-popover .fc-header{background:#eee}.fc-unthemed .fc-popover .fc-header .fc-close{color:#666}.fc-unthemed .fc-today{background:#fcf8e3}.fc-highlight{background:#bce8f1}.fc-bgevent{background:#8fdf82}.fc-nonbusiness{background:#d7d7d7}.fc-icon{height:1em;line-height:1em;overflow:hidden;font-family:"Courier New",Courier,monospace;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fc-icon:after{position:relative}.fc-icon-left-single-arrow:after{content:"\02039";font-weight:700;font-size:200%;top:-7%}.fc-icon-right-single-arrow:after{content:"\0203A";font-weight:700;font-size:200%;top:-7%}.fc-icon-left-double-arrow:after{content:"\000AB";font-size:160%;top:-7%}.fc-icon-right-double-arrow:after{content:"\000BB";font-size:160%;top:-7%}.fc-icon-left-triangle:after{content:"\25C4";font-size:125%;top:3%}.fc-icon-right-triangle:after{content:"\25BA";font-size:125%;top:3%}.fc-icon-down-triangle:after{content:"\25BC";font-size:125%;top:2%}.fc-icon-x:after{content:"\000D7";font-size:200%;top:6%}.fc button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;height:2.1em;padding:0 .6em;font-size:1em;cursor:pointer}.fc button::-moz-focus-inner{margin:0;padding:0}.fc-state-default{border:1px solid;background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);color:#333;text-shadow:0 1px 1px rgba(255,255,255,.75);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.fc-state-default.fc-corner-left{border-top-left-radius:4px;border-bottom-left-radius:4px}.fc-state-default.fc-corner-right{border-top-right-radius:4px;border-bottom-right-radius:4px}.fc button .fc-icon{position:relative;top:-.05em;margin:0 .2em;vertical-align:middle}.fc-state-active,.fc-state-disabled,.fc-state-down,.fc-state-hover{color:#333;background-color:#e6e6e6}.fc-state-hover{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.fc-state-active,.fc-state-down{background-color:#ccc;background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.fc-state-disabled{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);box-shadow:none}.fc-event.fc-draggable,.fc-event[href],.fc-popover .fc-header .fc-close{cursor:pointer}.fc .fc-button-group>*{float:left;margin:0 0 0 -1px}.fc .fc-button-group>:first-child{margin-left:0}.fc-popover{position:absolute;box-shadow:0 2px 6px rgba(0,0,0,.15)}.fc-popover .fc-header{padding:2px 4px}.fc-popover .fc-header .fc-title{margin:0 2px}.fc-ltr .fc-popover .fc-header .fc-title,.fc-rtl .fc-popover .fc-header .fc-close{float:left}.fc-ltr .fc-popover .fc-header .fc-close,.fc-rtl .fc-popover .fc-header .fc-title{float:right}.fc-unthemed .fc-popover{border-width:1px;border-style:solid}.fc-unthemed .fc-popover .fc-header .fc-close{font-size:.9em;margin-top:2px}.fc-popover>.ui-widget-header+.ui-widget-content{border-top:0}.fc-divider{border-style:solid;border-width:1px}hr.fc-divider{height:0;margin:0;padding:0 0 2px;border-width:1px 0}.fc-bg table,.fc-row .fc-bgevent-skeleton table,.fc-row .fc-highlight-skeleton table{height:100%}.fc-clear{clear:both}.fc-bg,.fc-bgevent-skeleton,.fc-helper-skeleton,.fc-highlight-skeleton{position:absolute;top:0;left:0;right:0}.fc table{width:100%;box-sizing:border-box;table-layout:fixed;border-collapse:collapse;border-spacing:0;font-size:1em}.fc td,.fc th{border-style:solid;border-width:1px;padding:0;vertical-align:top}.fc td.fc-today{border-style:double}.fc .fc-row{border-style:solid;border-width:0}.fc-row table{border-left:0 hidden transparent;border-right:0 hidden transparent;border-bottom:0 hidden transparent}.fc-row:first-child table{border-top:0 hidden transparent}.fc-row{position:relative}.fc-row .fc-bg{z-index:1}.fc-row .fc-bgevent-skeleton td,.fc-row .fc-highlight-skeleton td{border-color:transparent}.fc-row .fc-bgevent-skeleton{z-index:2}.fc-row .fc-highlight-skeleton{z-index:3}.fc-row .fc-content-skeleton{position:relative;z-index:4;padding-bottom:2px}.fc-row .fc-helper-skeleton{z-index:5}.fc-row .fc-content-skeleton td,.fc-row .fc-helper-skeleton td{background:0 0;border-color:transparent;border-bottom:0}.fc-row .fc-content-skeleton tbody td,.fc-row .fc-helper-skeleton tbody td{border-top:0}.fc-scroller{-webkit-overflow-scrolling:touch}.fc-row.fc-rigid,.fc-time-grid-event{overflow:hidden}.fc-scroller>.fc-day-grid,.fc-scroller>.fc-time-grid{position:relative;width:100%}.fc-event{position:relative;display:block;font-size:.85em;line-height:1.3;border-radius:3px;border:1px solid #3a87ad;background-color:#3a87ad;font-weight:400}.fc-event,.fc-event:hover,.ui-widget .fc-event{color:#fff;text-decoration:none}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-event .fc-bg{z-index:1;background:#fff;opacity:.25;filter:alpha(opacity=25)}.fc-event .fc-content{position:relative;z-index:2}.fc-event .fc-resizer{position:absolute;z-index:4;display:none}.fc-event.fc-allow-mouse-resize .fc-resizer,.fc-event.fc-selected .fc-resizer{display:block}.fc-event.fc-selected .fc-resizer:before{content:"";position:absolute;z-index:9999;top:50%;left:50%;width:40px;height:40px;margin-left:-20px;margin-top:-20px}.fc-event.fc-selected{z-index:9999!important;box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event.fc-selected.fc-dragging{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-h-event.fc-selected:before{content:"";position:absolute;z-index:3;top:-10px;bottom:-10px;left:0;right:0}.fc-ltr .fc-h-event.fc-not-start,.fc-rtl .fc-h-event.fc-not-end{margin-left:0;border-left-width:0;padding-left:1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-ltr .fc-h-event.fc-not-end,.fc-rtl .fc-h-event.fc-not-start{margin-right:0;border-right-width:0;padding-right:1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-ltr .fc-h-event .fc-start-resizer,.fc-rtl .fc-h-event .fc-end-resizer{cursor:w-resize;left:-1px}.fc-ltr .fc-h-event .fc-end-resizer,.fc-rtl .fc-h-event .fc-start-resizer{cursor:e-resize;right:-1px}.fc-h-event.fc-allow-mouse-resize .fc-resizer{width:7px;top:-1px;bottom:-1px}.fc-h-event.fc-selected .fc-resizer{border-radius:4px;border-width:1px;width:6px;height:6px;border-style:solid;border-color:inherit;background:#fff;top:50%;margin-top:-4px}.fc-ltr .fc-h-event.fc-selected .fc-start-resizer,.fc-rtl .fc-h-event.fc-selected .fc-end-resizer{margin-left:-4px}.fc-ltr .fc-h-event.fc-selected .fc-end-resizer,.fc-rtl .fc-h-event.fc-selected .fc-start-resizer{margin-right:-4px}.fc-day-grid-event{margin:1px 2px 0;padding:0 1px}.fc-day-grid-event.fc-selected:after{content:"";position:absolute;z-index:1;top:-1px;right:-1px;bottom:-1px;left:-1px;background:#000;opacity:.25;filter:alpha(opacity=25)}.fc-day-grid-event .fc-content{white-space:nowrap;overflow:hidden}.fc-day-grid-event .fc-time{font-weight:700}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer{margin-left:-2px}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer{margin-right:-2px}a.fc-more{margin:1px 3px;font-size:.85em;cursor:pointer;text-decoration:none}a.fc-more:hover{text-decoration:underline}.fc-limited{display:none}.fc-day-grid .fc-row{z-index:1}.fc-more-popover{z-index:2;width:220px}.fc-more-popover .fc-event-container{padding:10px}.fc-now-indicator{position:absolute;border:0 solid red}.fc-unselectable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.fc-toolbar{margin-bottom:1em}.fc-toolbar .fc-left{float:left}.fc-toolbar .fc-right{float:right}.fc-toolbar .fc-center{display:inline-block}.fc .fc-toolbar>*>*{float:left;margin-left:.75em}.fc .fc-toolbar>*>:first-child{margin-left:0}.fc-toolbar h2{margin:0}.fc-toolbar button{position:relative}.fc-toolbar .fc-state-hover,.fc-toolbar .ui-state-hover{z-index:2}.fc-toolbar .fc-state-down{z-index:3}.fc-toolbar .fc-state-active,.fc-toolbar .ui-state-active{z-index:4}.fc-toolbar button:focus{z-index:5}.fc-view-container *,.fc-view-container :after,.fc-view-container :before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fc-view,.fc-view>table{position:relative;z-index:1}.fc-basicDay-view .fc-content-skeleton,.fc-basicWeek-view .fc-content-skeleton{padding-top:1px;padding-bottom:1em}.fc-basic-view .fc-body .fc-row{min-height:4em}.fc-row.fc-rigid .fc-content-skeleton{position:absolute;top:0;left:0;right:0}.fc-basic-view .fc-day-number,.fc-basic-view .fc-week-number{padding:0 2px}.fc-basic-view td.fc-day-number,.fc-basic-view td.fc-week-number span{padding-top:2px;padding-bottom:2px}.fc-basic-view .fc-week-number span{display:inline-block;min-width:1.25em}.fc-ltr .fc-basic-view .fc-day-number{text-align:right}.fc-rtl .fc-basic-view .fc-day-number{text-align:left}.fc-day-number.fc-other-month{opacity:.3;filter:alpha(opacity=30)}.fc-agenda-view .fc-day-grid{position:relative;z-index:2}.fc-agenda-view .fc-day-grid .fc-row{min-height:3em}.fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton{padding-top:1px;padding-bottom:1em}.fc .fc-axis{vertical-align:middle;padding:0 4px}.fc-ltr .fc-axis{text-align:right}.fc-rtl .fc-axis{text-align:left}.ui-widget td.fc-axis{font-weight:400}.fc-time-grid,.fc-time-grid-container{position:relative;z-index:1}.fc-time-grid{min-height:100%}.fc-time-grid table{border:0 hidden transparent}.fc-time-grid>.fc-bg{z-index:1}.fc-time-grid .fc-slats,.fc-time-grid>hr{position:relative;z-index:2}.fc-time-grid .fc-content-col{position:relative}.fc-time-grid .fc-content-skeleton{position:absolute;z-index:3;top:0;left:0;right:0}.fc-time-grid .fc-business-container{position:relative;z-index:1}.fc-time-grid .fc-bgevent-container{position:relative;z-index:2}.fc-time-grid .fc-highlight-container{z-index:3;position:relative}.fc-time-grid .fc-event-container{position:relative;z-index:4}.fc-time-grid .fc-now-indicator-line{z-index:5}.fc-time-grid .fc-helper-container{position:relative;z-index:6}.fc-time-grid .fc-slats td{height:1.5em;border-bottom:0}.fc-time-grid .fc-slats .fc-minor td{border-top-style:dotted}.fc-time-grid .fc-slats .ui-widget-content{background:0 0}.fc-time-grid .fc-highlight{position:absolute;left:0;right:0}.fc-ltr .fc-time-grid .fc-event-container{margin:0 2.5% 0 2px}.fc-rtl .fc-time-grid .fc-event-container{margin:0 2px 0 2.5%}.fc-time-grid .fc-bgevent,.fc-time-grid .fc-event{position:absolute;z-index:1}.fc-time-grid .fc-bgevent{left:0;right:0}.fc-v-event.fc-not-start{border-top-width:0;padding-top:1px;border-top-left-radius:0;border-top-right-radius:0}.fc-v-event.fc-not-end{border-bottom-width:0;padding-bottom:1px;border-bottom-left-radius:0;border-bottom-right-radius:0}.fc-time-grid-event.fc-selected{overflow:visible}.fc-time-grid-event.fc-selected .fc-bg{display:none}.fc-time-grid-event .fc-content{overflow:hidden}.fc-time-grid-event .fc-time,.fc-time-grid-event .fc-title{padding:0 1px}.fc-time-grid-event .fc-time{font-size:.85em}.fc-time-grid-event.fc-short .fc-time,.fc-time-grid-event.fc-short .fc-title{display:inline-block;vertical-align:top}.fc-time-grid-event.fc-short .fc-time span{display:none}.fc-time-grid-event.fc-short .fc-time:before{content:attr(data-start)}.fc-time-grid-event.fc-short .fc-time:after{content:"\000A0-\000A0"}.fc-time-grid-event.fc-short .fc-title{font-size:.85em;padding:0}.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer{left:0;right:0;bottom:0;height:8px;overflow:hidden;line-height:8px;font-size:11px;font-family:monospace;text-align:center;cursor:s-resize}.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer:after{content:"="}.fc-time-grid-event.fc-selected .fc-resizer{border-radius:5px;border-width:1px;width:8px;height:8px;border-style:solid;border-color:inherit;background:#fff;left:50%;margin-left:-5px;bottom:-5px}.fc-time-grid .fc-now-indicator-line{border-top-width:1px;left:0;right:0}.fc-time-grid .fc-now-indicator-arrow{margin-top:-5px}.fc-ltr .fc-time-grid .fc-now-indicator-arrow{left:0;border-width:5px 0 5px 6px;border-top-color:transparent;border-bottom-color:transparent}.fc-rtl .fc-time-grid .fc-now-indicator-arrow{right:0;border-width:5px 6px 5px 0;border-top-color:transparent;border-bottom-color:transparent} \ No newline at end of file
+ */.fc-icon,body .fc{font-size:1em}.fc-button-group,.fc-icon{display:inline-block}.fc-bg,.fc-row .fc-bgevent-skeleton,.fc-row .fc-highlight-skeleton{bottom:0}.fc-icon,.fc-unselectable{-khtml-user-select:none;-webkit-touch-callout:none}.fc{direction:ltr;text-align:left}.fc-rtl{text-align:right}.fc th,.fc-basic-view td.fc-week-number,.fc-icon,.fc-toolbar{text-align:center}.fc-unthemed .fc-content,.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading td,.fc-unthemed .fc-list-view,.fc-unthemed .fc-popover,.fc-unthemed .fc-row,.fc-unthemed tbody,.fc-unthemed td,.fc-unthemed th,.fc-unthemed thead{border-color:#ddd}.fc-unthemed .fc-popover{background-color:#fff}.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading td,.fc-unthemed .fc-popover .fc-header{background:#eee}.fc-unthemed .fc-popover .fc-header .fc-close{color:#666}.fc-unthemed .fc-today{background:#fcf8e3}.fc-highlight{background:#bce8f1;opacity:.3}.fc-bgevent{background:#8fdf82;opacity:.3}.fc-nonbusiness{background:#d7d7d7}.fc-icon{height:1em;line-height:1em;overflow:hidden;font-family:"Courier New",Courier,monospace;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fc-icon:after{position:relative}.fc-icon-left-single-arrow:after{content:"\02039";font-weight:700;font-size:200%;top:-7%}.fc-icon-right-single-arrow:after{content:"\0203A";font-weight:700;font-size:200%;top:-7%}.fc-icon-left-double-arrow:after{content:"\000AB";font-size:160%;top:-7%}.fc-icon-right-double-arrow:after{content:"\000BB";font-size:160%;top:-7%}.fc-icon-left-triangle:after{content:"\25C4";font-size:125%;top:3%}.fc-icon-right-triangle:after{content:"\25BA";font-size:125%;top:3%}.fc-icon-down-triangle:after{content:"\25BC";font-size:125%;top:2%}.fc-icon-x:after{content:"\000D7";font-size:200%;top:6%}.fc button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;height:2.1em;padding:0 .6em;font-size:1em;white-space:nowrap;cursor:pointer}.fc button::-moz-focus-inner{margin:0;padding:0}.fc-state-default{border:1px solid;background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);color:#333;text-shadow:0 1px 1px rgba(255,255,255,.75);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.fc-state-default.fc-corner-left{border-top-left-radius:4px;border-bottom-left-radius:4px}.fc-state-default.fc-corner-right{border-top-right-radius:4px;border-bottom-right-radius:4px}.fc button .fc-icon{position:relative;top:-.05em;margin:0 .2em;vertical-align:middle}.fc-state-active,.fc-state-disabled,.fc-state-down,.fc-state-hover{color:#333;background-color:#e6e6e6}.fc-state-hover{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.fc-state-active,.fc-state-down{background-color:#ccc;background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.fc-state-disabled{cursor:default;background-image:none;opacity:.65;box-shadow:none}.fc-event.fc-draggable,.fc-event[href],.fc-popover .fc-header .fc-close,a[data-goto]{cursor:pointer}.fc .fc-button-group>*{float:left;margin:0 0 0 -1px}.fc .fc-button-group>:first-child{margin-left:0}.fc-popover{position:absolute;box-shadow:0 2px 6px rgba(0,0,0,.15)}.fc-popover .fc-header{padding:2px 4px}.fc-popover .fc-header .fc-title{margin:0 2px}.fc-ltr .fc-popover .fc-header .fc-title,.fc-rtl .fc-popover .fc-header .fc-close{float:left}.fc-ltr .fc-popover .fc-header .fc-close,.fc-rtl .fc-popover .fc-header .fc-title{float:right}.fc-unthemed .fc-popover{border-width:1px;border-style:solid}.fc-unthemed .fc-popover .fc-header .fc-close{font-size:.9em;margin-top:2px}.fc-popover>.ui-widget-header+.ui-widget-content{border-top:0}.fc-divider{border-style:solid;border-width:1px}hr.fc-divider{height:0;margin:0;padding:0 0 2px;border-width:1px 0}.fc-bg table,.fc-row .fc-bgevent-skeleton table,.fc-row .fc-highlight-skeleton table{height:100%}.fc-clear{clear:both}.fc-bg,.fc-bgevent-skeleton,.fc-helper-skeleton,.fc-highlight-skeleton{position:absolute;top:0;left:0;right:0}.fc table{width:100%;box-sizing:border-box;table-layout:fixed;border-collapse:collapse;border-spacing:0;font-size:1em}.fc td,.fc th{border-style:solid;border-width:1px;padding:0;vertical-align:top}.fc td.fc-today{border-style:double}a[data-goto]:hover{text-decoration:underline}.fc .fc-row{border-style:solid;border-width:0}.fc-row table{border-left:0 hidden transparent;border-right:0 hidden transparent;border-bottom:0 hidden transparent}.fc-row:first-child table{border-top:0 hidden transparent}.fc-row{position:relative}.fc-row .fc-bg{z-index:1}.fc-row .fc-bgevent-skeleton td,.fc-row .fc-highlight-skeleton td{border-color:transparent}.fc-row .fc-bgevent-skeleton{z-index:2}.fc-row .fc-highlight-skeleton{z-index:3}.fc-row .fc-content-skeleton{position:relative;z-index:4;padding-bottom:2px}.fc-row .fc-helper-skeleton{z-index:5}.fc-row .fc-content-skeleton td,.fc-row .fc-helper-skeleton td{background:0 0;border-color:transparent;border-bottom:0}.fc-row .fc-content-skeleton tbody td,.fc-row .fc-helper-skeleton tbody td{border-top:0}.fc-scroller{-webkit-overflow-scrolling:touch}.fc-row.fc-rigid,.fc-time-grid-event{overflow:hidden}.fc-scroller>.fc-day-grid,.fc-scroller>.fc-time-grid{position:relative;width:100%}.fc-event{position:relative;display:block;font-size:.85em;line-height:1.3;border-radius:3px;border:1px solid #3a87ad;font-weight:400}.fc-event,.fc-event-dot{background-color:#3a87ad}.fc-event,.fc-event:hover,.ui-widget .fc-event{color:#fff;text-decoration:none}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-event .fc-bg{z-index:1;background:#fff;opacity:.25}.fc-event .fc-content{position:relative;z-index:2}.fc-event .fc-resizer{position:absolute;z-index:4;display:none}.fc-event.fc-allow-mouse-resize .fc-resizer,.fc-event.fc-selected .fc-resizer{display:block}.fc-event.fc-selected .fc-resizer:before{content:"";position:absolute;z-index:9999;top:50%;left:50%;width:40px;height:40px;margin-left:-20px;margin-top:-20px}.fc-event.fc-selected{z-index:9999!important;box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event.fc-selected.fc-dragging{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-h-event.fc-selected:before{content:"";position:absolute;z-index:3;top:-10px;bottom:-10px;left:0;right:0}.fc-ltr .fc-h-event.fc-not-start,.fc-rtl .fc-h-event.fc-not-end{margin-left:0;border-left-width:0;padding-left:1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-ltr .fc-h-event.fc-not-end,.fc-rtl .fc-h-event.fc-not-start{margin-right:0;border-right-width:0;padding-right:1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-ltr .fc-h-event .fc-start-resizer,.fc-rtl .fc-h-event .fc-end-resizer{cursor:w-resize;left:-1px}.fc-ltr .fc-h-event .fc-end-resizer,.fc-rtl .fc-h-event .fc-start-resizer{cursor:e-resize;right:-1px}.fc-h-event.fc-allow-mouse-resize .fc-resizer{width:7px;top:-1px;bottom:-1px}.fc-h-event.fc-selected .fc-resizer{border-radius:4px;border-width:1px;width:6px;height:6px;border-style:solid;border-color:inherit;background:#fff;top:50%;margin-top:-4px}.fc-ltr .fc-h-event.fc-selected .fc-start-resizer,.fc-rtl .fc-h-event.fc-selected .fc-end-resizer{margin-left:-4px}.fc-ltr .fc-h-event.fc-selected .fc-end-resizer,.fc-rtl .fc-h-event.fc-selected .fc-start-resizer{margin-right:-4px}.fc-day-grid-event{margin:1px 2px 0;padding:0 1px}tr:first-child>td>.fc-day-grid-event{margin-top:2px}.fc-day-grid-event.fc-selected:after{content:"";position:absolute;z-index:1;top:-1px;right:-1px;bottom:-1px;left:-1px;background:#000;opacity:.25}.fc-day-grid-event .fc-content{white-space:nowrap;overflow:hidden}.fc-day-grid-event .fc-time{font-weight:700}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer{margin-left:-2px}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer{margin-right:-2px}a.fc-more{margin:1px 3px;font-size:.85em;cursor:pointer;text-decoration:none}a.fc-more:hover{text-decoration:underline}.fc-limited{display:none}.fc-day-grid .fc-row{z-index:1}.fc-more-popover{z-index:2;width:220px}.fc-more-popover .fc-event-container{padding:10px}.fc-now-indicator{position:absolute;border:0 solid red}.fc-unselectable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.fc-toolbar{margin-bottom:1em}.fc-toolbar .fc-left{float:left}.fc-toolbar .fc-right{float:right}.fc-toolbar .fc-center{display:inline-block}.fc .fc-toolbar>*>*{float:left;margin-left:.75em}.fc .fc-toolbar>*>:first-child{margin-left:0}.fc-toolbar h2{margin:0}.fc-toolbar button{position:relative}.fc-toolbar .fc-state-hover,.fc-toolbar .ui-state-hover{z-index:2}.fc-toolbar .fc-state-down{z-index:3}.fc-toolbar .fc-state-active,.fc-toolbar .ui-state-active{z-index:4}.fc-toolbar button:focus{z-index:5}.fc-view-container *,.fc-view-container :after,.fc-view-container :before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fc-view,.fc-view>table{position:relative;z-index:1}.fc-basicDay-view .fc-content-skeleton,.fc-basicWeek-view .fc-content-skeleton{padding-bottom:1em}.fc-basic-view .fc-body .fc-row{min-height:4em}.fc-row.fc-rigid .fc-content-skeleton{position:absolute;top:0;left:0;right:0}.fc-day-top.fc-other-month{opacity:.3}.fc-basic-view .fc-day-number,.fc-basic-view .fc-week-number{padding:2px}.fc-basic-view th.fc-day-number,.fc-basic-view th.fc-week-number{padding:0 2px}.fc-ltr .fc-basic-view .fc-day-top .fc-day-number{float:right}.fc-rtl .fc-basic-view .fc-day-top .fc-day-number{float:left}.fc-ltr .fc-basic-view .fc-day-top .fc-week-number{float:left;border-radius:0 0 3px}.fc-rtl .fc-basic-view .fc-day-top .fc-week-number{float:right;border-radius:0 0 0 3px}.fc-basic-view .fc-day-top .fc-week-number{min-width:1.5em;text-align:center;background-color:#f2f2f2;color:grey}.fc-basic-view td.fc-week-number>*{display:inline-block;min-width:1.25em}.fc-agenda-view .fc-day-grid{position:relative;z-index:2}.fc-agenda-view .fc-day-grid .fc-row{min-height:3em}.fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton{padding-bottom:1em}.fc .fc-axis{vertical-align:middle;padding:0 4px;white-space:nowrap}.fc-ltr .fc-axis{text-align:right}.fc-rtl .fc-axis{text-align:left}.ui-widget td.fc-axis{font-weight:400}.fc-time-grid,.fc-time-grid-container{position:relative;z-index:1}.fc-time-grid{min-height:100%}.fc-time-grid table{border:0 hidden transparent}.fc-time-grid>.fc-bg{z-index:1}.fc-time-grid .fc-slats,.fc-time-grid>hr{position:relative;z-index:2}.fc-time-grid .fc-content-col{position:relative}.fc-time-grid .fc-content-skeleton{position:absolute;z-index:3;top:0;left:0;right:0}.fc-time-grid .fc-business-container{position:relative;z-index:1}.fc-time-grid .fc-bgevent-container{position:relative;z-index:2}.fc-time-grid .fc-highlight-container{z-index:3;position:relative}.fc-time-grid .fc-event-container{position:relative;z-index:4}.fc-time-grid .fc-now-indicator-line{z-index:5}.fc-time-grid .fc-helper-container{position:relative;z-index:6}.fc-time-grid .fc-slats td{height:1.5em;border-bottom:0}.fc-time-grid .fc-slats .fc-minor td{border-top-style:dotted}.fc-time-grid .fc-slats .ui-widget-content{background:0 0}.fc-time-grid .fc-highlight{position:absolute;left:0;right:0}.fc-ltr .fc-time-grid .fc-event-container{margin:0 2.5% 0 2px}.fc-rtl .fc-time-grid .fc-event-container{margin:0 2px 0 2.5%}.fc-time-grid .fc-bgevent,.fc-time-grid .fc-event{position:absolute;z-index:1}.fc-time-grid .fc-bgevent{left:0;right:0}.fc-v-event.fc-not-start{border-top-width:0;padding-top:1px;border-top-left-radius:0;border-top-right-radius:0}.fc-v-event.fc-not-end{border-bottom-width:0;padding-bottom:1px;border-bottom-left-radius:0;border-bottom-right-radius:0}.fc-time-grid-event.fc-selected{overflow:visible}.fc-time-grid-event.fc-selected .fc-bg{display:none}.fc-time-grid-event .fc-content{overflow:hidden}.fc-time-grid-event .fc-time,.fc-time-grid-event .fc-title{padding:0 1px}.fc-time-grid-event .fc-time{font-size:.85em;white-space:nowrap}.fc-time-grid-event.fc-short .fc-content{white-space:nowrap}.fc-time-grid-event.fc-short .fc-time,.fc-time-grid-event.fc-short .fc-title{display:inline-block;vertical-align:top}.fc-time-grid-event.fc-short .fc-time span{display:none}.fc-time-grid-event.fc-short .fc-time:before{content:attr(data-start)}.fc-time-grid-event.fc-short .fc-time:after{content:"\000A0-\000A0"}.fc-time-grid-event.fc-short .fc-title{font-size:.85em;padding:0}.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer{left:0;right:0;bottom:0;height:8px;overflow:hidden;line-height:8px;font-size:11px;font-family:monospace;text-align:center;cursor:s-resize}.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer:after{content:"="}.fc-time-grid-event.fc-selected .fc-resizer{border-radius:5px;border-width:1px;width:8px;height:8px;border-style:solid;border-color:inherit;background:#fff;left:50%;margin-left:-5px;bottom:-5px}.fc-time-grid .fc-now-indicator-line{border-top-width:1px;left:0;right:0}.fc-time-grid .fc-now-indicator-arrow{margin-top:-5px}.fc-ltr .fc-time-grid .fc-now-indicator-arrow{left:0;border-width:5px 0 5px 6px;border-top-color:transparent;border-bottom-color:transparent}.fc-rtl .fc-time-grid .fc-now-indicator-arrow{right:0;border-width:5px 6px 5px 0;border-top-color:transparent;border-bottom-color:transparent}.fc-event-dot{display:inline-block;width:10px;height:10px;border-radius:5px}.fc-rtl .fc-list-view{direction:rtl}.fc-list-view{border-width:1px;border-style:solid}.fc .fc-list-table{table-layout:auto}.fc-list-table td{border-width:1px 0 0;padding:8px 14px}.fc-list-table tr:first-child td{border-top-width:0}.fc-list-heading{border-bottom-width:1px}.fc-list-heading td{font-weight:700}.fc-ltr .fc-list-heading-main{float:left}.fc-ltr .fc-list-heading-alt,.fc-rtl .fc-list-heading-main{float:right}.fc-rtl .fc-list-heading-alt{float:left}.fc-list-item.fc-has-url{cursor:pointer}.fc-list-item:hover td{background-color:#f5f5f5}.fc-list-item-marker,.fc-list-item-time{white-space:nowrap;width:1px}.fc-ltr .fc-list-item-marker{padding-right:0}.fc-rtl .fc-list-item-marker{padding-left:0}.fc-list-item-title a{text-decoration:none;color:inherit}.fc-list-item-title a[href]:hover{text-decoration:underline}.fc-list-empty-wrap2{position:absolute;top:0;left:0;right:0;bottom:0}.fc-list-empty-wrap1{width:100%;height:100%;display:table}.fc-list-empty{display:table-cell;vertical-align:middle;text-align:center}.fc-unthemed .fc-list-empty{background-color:#eee} \ No newline at end of file
diff --git a/library/fullcalendar/fullcalendar.min.js b/library/fullcalendar/fullcalendar.min.js
index d05408974..6a67dd880 100644
--- a/library/fullcalendar/fullcalendar.min.js
+++ b/library/fullcalendar/fullcalendar.min.js
@@ -1,9 +1,9 @@
/*!
- * FullCalendar v2.8.0
+ * FullCalendar v3.0.0
* Docs & License: http://fullcalendar.io/
* (c) 2016 Adam Shaw
*/
-!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):"object"==typeof exports?module.exports=a(require("jquery"),require("moment")):a(jQuery,moment)}(function(a,b){function c(a){return W(a,Ya)}function d(b){var c,d={views:b.views||{}};return a.each(b,function(b,e){"views"!=b&&(a.isPlainObject(e)&&!/(time|duration|interval)$/i.test(b)&&-1==a.inArray(b,Ya)?(c=null,a.each(e,function(a,e){/^(month|week|day|default|basic(Week|Day)?|agenda(Week|Day)?)$/.test(a)?(d.views[a]||(d.views[a]={}),d.views[a][b]=e):(c||(c={}),c[a]=e)}),c&&(d[b]=c)):d[b]=e)}),d}function e(a,b){b.left&&a.css({"border-left-width":1,"margin-left":b.left-1}),b.right&&a.css({"border-right-width":1,"margin-right":b.right-1})}function f(a){a.css({"margin-left":"","margin-right":"","border-left-width":"","border-right-width":""})}function g(){a("body").addClass("fc-not-allowed")}function h(){a("body").removeClass("fc-not-allowed")}function i(b,c,d){var e=Math.floor(c/b.length),f=Math.floor(c-e*(b.length-1)),g=[],h=[],i=[],k=0;j(b),b.each(function(c,d){var j=c===b.length-1?f:e,l=a(d).outerHeight(!0);j>l?(g.push(d),h.push(l),i.push(a(d).height())):k+=l}),d&&(c-=k,e=Math.floor(c/g.length),f=Math.floor(c-e*(g.length-1))),a(g).each(function(b,c){var d=b===g.length-1?f:e,j=h[b],k=i[b],l=d-(j-k);d>j&&a(c).height(l)})}function j(a){a.height("")}function k(b){var c=0;return b.find("> span").each(function(b,d){var e=a(d).outerWidth();e>c&&(c=e)}),c++,b.width(c),c}function l(a,b){var c,d=a.add(b);return d.css({position:"relative",left:-1}),c=a.outerHeight()-b.outerHeight(),d.css({position:"",left:""}),c}function m(b){var c=b.css("position"),d=b.parents().filter(function(){var b=a(this);return/(auto|scroll)/.test(b.css("overflow")+b.css("overflow-y")+b.css("overflow-x"))}).eq(0);return"fixed"!==c&&d.length?d:a(b[0].ownerDocument||document)}function n(a,b){var c=a.offset(),d=c.left-(b?b.left:0),e=c.top-(b?b.top:0);return{left:d,right:d+a.outerWidth(),top:e,bottom:e+a.outerHeight()}}function o(a,b){var c=a.offset(),d=q(a),e=c.left+t(a,"border-left-width")+d.left-(b?b.left:0),f=c.top+t(a,"border-top-width")+d.top-(b?b.top:0);return{left:e,right:e+a[0].clientWidth,top:f,bottom:f+a[0].clientHeight}}function p(a,b){var c=a.offset(),d=c.left+t(a,"border-left-width")+t(a,"padding-left")-(b?b.left:0),e=c.top+t(a,"border-top-width")+t(a,"padding-top")-(b?b.top:0);return{left:d,right:d+a.width(),top:e,bottom:e+a.height()}}function q(a){var b=a.innerWidth()-a[0].clientWidth,c={left:0,right:0,top:0,bottom:a.innerHeight()-a[0].clientHeight};return r()&&"rtl"==a.css("direction")?c.left=b:c.right=b,c}function r(){return null===Za&&(Za=s()),Za}function s(){var b=a("<div><div/></div>").css({position:"absolute",top:-1e3,left:0,border:0,padding:0,overflow:"scroll",direction:"rtl"}).appendTo("body"),c=b.children(),d=c.offset().left>b.offset().left;return b.remove(),d}function t(a,b){return parseFloat(a.css(b))||0}function u(a){return 1==a.which&&!a.ctrlKey}function v(a){if(void 0!==a.pageX)return a.pageX;var b=a.originalEvent.touches;return b?b[0].pageX:void 0}function w(a){if(void 0!==a.pageY)return a.pageY;var b=a.originalEvent.touches;return b?b[0].pageY:void 0}function x(a){return/^touch/.test(a.type)}function y(a){a.addClass("fc-unselectable").on("selectstart",z)}function z(a){a.preventDefault()}function A(a){return window.addEventListener?(window.addEventListener("scroll",a,!0),!0):!1}function B(a){return window.removeEventListener?(window.removeEventListener("scroll",a,!0),!0):!1}function C(a,b){var c={left:Math.max(a.left,b.left),right:Math.min(a.right,b.right),top:Math.max(a.top,b.top),bottom:Math.min(a.bottom,b.bottom)};return c.left<c.right&&c.top<c.bottom?c:!1}function D(a,b){return{left:Math.min(Math.max(a.left,b.left),b.right),top:Math.min(Math.max(a.top,b.top),b.bottom)}}function E(a){return{left:(a.left+a.right)/2,top:(a.top+a.bottom)/2}}function F(a,b){return{left:a.left-b.left,top:a.top-b.top}}function G(b){var c,d,e=[],f=[];for("string"==typeof b?f=b.split(/\s*,\s*/):"function"==typeof b?f=[b]:a.isArray(b)&&(f=b),c=0;c<f.length;c++)d=f[c],"string"==typeof d?e.push("-"==d.charAt(0)?{field:d.substring(1),order:-1}:{field:d,order:1}):"function"==typeof d&&e.push({func:d});return e}function H(a,b,c){var d,e;for(d=0;d<c.length;d++)if(e=I(a,b,c[d]))return e;return 0}function I(a,b,c){return c.func?c.func(a,b):J(a[c.field],b[c.field])*(c.order||1)}function J(b,c){return b||c?null==c?-1:null==b?1:"string"===a.type(b)||"string"===a.type(c)?String(b).localeCompare(String(c)):b-c:0}function K(a,b){var c,d,e,f,g=a.start,h=a.end,i=b.start,j=b.end;return h>i&&j>g?(g>=i?(c=g.clone(),e=!0):(c=i.clone(),e=!1),j>=h?(d=h.clone(),f=!0):(d=j.clone(),f=!1),{start:c,end:d,isStart:e,isEnd:f}):void 0}function L(a,c){return b.duration({days:a.clone().stripTime().diff(c.clone().stripTime(),"days"),ms:a.time()-c.time()})}function M(a,c){return b.duration({days:a.clone().stripTime().diff(c.clone().stripTime(),"days")})}function N(a,c,d){return b.duration(Math.round(a.diff(c,d,!0)),d)}function O(a,b){var c,d,e;for(c=0;c<_a.length&&(d=_a[c],e=P(d,a,b),!(e>=1&&ha(e)));c++);return d}function P(a,c,d){return null!=d?d.diff(c,a,!0):b.isDuration(c)?c.as(a):c.end.diff(c.start,a,!0)}function Q(a,b,c){var d;return T(c)?(b-a)/c:(d=c.asMonths(),Math.abs(d)>=1&&ha(d)?b.diff(a,"months",!0)/d:b.diff(a,"days",!0)/c.asDays())}function R(a,b){var c,d;return T(a)||T(b)?a/b:(c=a.asMonths(),d=b.asMonths(),Math.abs(c)>=1&&ha(c)&&Math.abs(d)>=1&&ha(d)?c/d:a.asDays()/b.asDays())}function S(a,c){var d;return T(a)?b.duration(a*c):(d=a.asMonths(),Math.abs(d)>=1&&ha(d)?b.duration({months:d*c}):b.duration({days:a.asDays()*c}))}function T(a){return Boolean(a.hours()||a.minutes()||a.seconds()||a.milliseconds())}function U(a){return"[object Date]"===Object.prototype.toString.call(a)||a instanceof Date}function V(a){return/^\d+\:\d+(?:\:\d+\.?(?:\d{3})?)?$/.test(a)}function W(a,b){var c,d,e,f,g,h,i={};if(b)for(c=0;c<b.length;c++){for(d=b[c],e=[],f=a.length-1;f>=0;f--)if(g=a[f][d],"object"==typeof g)e.unshift(g);else if(void 0!==g){i[d]=g;break}e.length&&(i[d]=W(e))}for(c=a.length-1;c>=0;c--){h=a[c];for(d in h)d in i||(i[d]=h[d])}return i}function X(a){var b=function(){};return b.prototype=a,new b}function Y(a,b){for(var c in a)$(a,c)&&(b[c]=a[c])}function Z(a,b){var c,d,e=["constructor","toString","valueOf"];for(c=0;c<e.length;c++)d=e[c],a[d]!==Object.prototype[d]&&(b[d]=a[d])}function $(a,b){return db.call(a,b)}function _(b){return/undefined|null|boolean|number|string/.test(a.type(b))}function aa(b,c,d){if(a.isFunction(b)&&(b=[b]),b){var e,f;for(e=0;e<b.length;e++)f=b[e].apply(c,d)||f;return f}}function ba(){for(var a=0;a<arguments.length;a++)if(void 0!==arguments[a])return arguments[a]}function ca(a){return(a+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#039;").replace(/"/g,"&quot;").replace(/\n/g,"<br />")}function da(a){return a.replace(/&.*?;/g,"")}function ea(b){var c=[];return a.each(b,function(a,b){null!=b&&c.push(a+":"+b)}),c.join(";")}function fa(a){return a.charAt(0).toUpperCase()+a.slice(1)}function ga(a,b){return a-b}function ha(a){return a%1===0}function ia(a,b){var c=a[b];return function(){return c.apply(a,arguments)}}function ja(a,b,c){var d,e,f,g,h,i=function(){var j=+new Date-g;b>j?d=setTimeout(i,b-j):(d=null,c||(h=a.apply(f,e),f=e=null))};return function(){f=this,e=arguments,g=+new Date;var j=c&&!d;return d||(d=setTimeout(i,b)),j&&(h=a.apply(f,e),f=e=null),h}}function ka(b,c){return b&&b.then&&"resolved"!==b.state()?c?b.then(c):void 0:a.when(c())}function la(c,d,e){var f,g,h,i,j=c[0],k=1==c.length&&"string"==typeof j;return b.isMoment(j)?(i=b.apply(null,c),na(j,i)):U(j)||void 0===j?i=b.apply(null,c):(f=!1,g=!1,k?eb.test(j)?(j+="-01",c=[j],f=!0,g=!0):(h=fb.exec(j))&&(f=!h[5],g=!0):a.isArray(j)&&(g=!0),i=d||f?b.utc.apply(b,c):b.apply(null,c),f?(i._ambigTime=!0,i._ambigZone=!0):e&&(g?i._ambigZone=!0:k&&(i.utcOffset?i.utcOffset(j):i.zone(j)))),i._fullCalendar=!0,i}function ma(a,c){var d,e,f=!1,g=!1,h=a.length,i=[];for(d=0;h>d;d++)e=a[d],b.isMoment(e)||(e=Wa.moment.parseZone(e)),f=f||e._ambigTime,g=g||e._ambigZone,i.push(e);for(d=0;h>d;d++)e=i[d],c||!f||e._ambigTime?g&&!e._ambigZone&&(i[d]=e.clone().stripZone()):i[d]=e.clone().stripTime();return i}function na(a,b){a._ambigTime?b._ambigTime=!0:b._ambigTime&&(b._ambigTime=!1),a._ambigZone?b._ambigZone=!0:b._ambigZone&&(b._ambigZone=!1)}function oa(a,b){a.year(b[0]||0).month(b[1]||0).date(b[2]||0).hours(b[3]||0).minutes(b[4]||0).seconds(b[5]||0).milliseconds(b[6]||0)}function pa(a,b){return hb.format.call(a,b)}function qa(a,b){return ra(a,wa(b))}function ra(a,b){var c,d="";for(c=0;c<b.length;c++)d+=sa(a,b[c]);return d}function sa(a,b){var c,d;return"string"==typeof b?b:(c=b.token)?ib[c]?ib[c](a):pa(a,c):b.maybe&&(d=ra(a,b.maybe),d.match(/[1-9]/))?d:""}function ta(a,b,c,d,e){var f;return a=Wa.moment.parseZone(a),b=Wa.moment.parseZone(b),f=(a.localeData||a.lang).call(a),c=f.longDateFormat(c)||c,d=d||" - ",ua(a,b,wa(c),d,e)}function ua(a,b,c,d,e){var f,g,h,i,j=a.clone().stripZone(),k=b.clone().stripZone(),l="",m="",n="",o="",p="";for(g=0;g<c.length&&(f=va(a,b,j,k,c[g]),f!==!1);g++)l+=f;for(h=c.length-1;h>g&&(f=va(a,b,j,k,c[h]),f!==!1);h--)m=f+m;for(i=g;h>=i;i++)n+=sa(a,c[i]),o+=sa(b,c[i]);return(n||o)&&(p=e?o+d+n:n+d+o),l+p+m}function va(a,b,c,d,e){var f,g;return"string"==typeof e?e:(f=e.token)&&(g=jb[f.charAt(0)],g&&c.isSame(d,g))?pa(a,f):!1}function wa(a){return a in kb?kb[a]:kb[a]=xa(a)}function xa(a){for(var b,c=[],d=/\[([^\]]*)\]|\(([^\)]*)\)|(LTS|LT|(\w)\4*o?)|([^\w\[\(]+)/g;b=d.exec(a);)b[1]?c.push(b[1]):b[2]?c.push({maybe:xa(b[2])}):b[3]?c.push({token:b[3]}):b[5]&&c.push(b[5]);return c}function ya(){}function za(a,b){var c;return $(b,"constructor")&&(c=b.constructor),"function"!=typeof c&&(c=b.constructor=function(){a.apply(this,arguments)}),c.prototype=X(a.prototype),Y(b,c.prototype),Z(b,c.prototype),Y(a,c),c}function Aa(a,b){Y(b,a.prototype)}function Ba(a,b){return a||b?a&&b?a.component===b.component&&Ca(a,b)&&Ca(b,a):!1:!0}function Ca(a,b){for(var c in a)if(!/^(component|left|right|top|bottom)$/.test(c)&&a[c]!==b[c])return!1;return!0}function Da(a){var b=Fa(a);return"background"===b||"inverse-background"===b}function Ea(a){return"inverse-background"===Fa(a)}function Fa(a){return ba((a.source||{}).rendering,a.rendering)}function Ga(a){var b,c,d={};for(b=0;b<a.length;b++)c=a[b],(d[c._id]||(d[c._id]=[])).push(c);return d}function Ha(a,b){return a.start-b.start}function Ia(c){var d,e,f,g,h=Wa.dataAttrPrefix;return h&&(h+="-"),d=c.data(h+"event")||null,d&&(d="object"==typeof d?a.extend({},d):{},e=d.start,null==e&&(e=d.time),f=d.duration,g=d.stick,delete d.start,delete d.time,delete d.duration,delete d.stick),null==e&&(e=c.data(h+"start")),null==e&&(e=c.data(h+"time")),null==f&&(f=c.data(h+"duration")),null==g&&(g=c.data(h+"stick")),e=null!=e?b.duration(e):null,f=null!=f?b.duration(f):null,g=Boolean(g),{eventProps:d,startTime:e,duration:f,stick:g}}function Ja(a,b){var c,d;for(c=0;c<b.length;c++)if(d=b[c],d.leftCol<=a.rightCol&&d.rightCol>=a.leftCol)return!0;return!1}function Ka(a,b){return a.leftCol-b.leftCol}function La(a){var b,c,d,e=[];for(b=0;b<a.length;b++){for(c=a[b],d=0;d<e.length&&Oa(c,e[d]).length;d++);c.level=d,(e[d]||(e[d]=[])).push(c)}return e}function Ma(a){var b,c,d,e,f;for(b=0;b<a.length;b++)for(c=a[b],d=0;d<c.length;d++)for(e=c[d],e.forwardSegs=[],f=b+1;f<a.length;f++)Oa(e,a[f],e.forwardSegs)}function Na(a){var b,c,d=a.forwardSegs,e=0;if(void 0===a.forwardPressure){for(b=0;b<d.length;b++)c=d[b],Na(c),e=Math.max(e,1+c.forwardPressure);a.forwardPressure=e}}function Oa(a,b,c){c=c||[];for(var d=0;d<b.length;d++)Pa(a,b[d])&&c.push(b[d]);return c}function Pa(a,b){return a.bottom>b.top&&a.top<b.bottom}function Qa(c,d){function e(){T?h()&&(k(),i()):f()}function f(){U=O.theme?"ui":"fc",c.addClass("fc"),O.isRTL?c.addClass("fc-rtl"):c.addClass("fc-ltr"),O.theme?c.addClass("ui-widget"):c.addClass("fc-unthemed"),T=a("<div class='fc-view-container'/>").prependTo(c),R=N.header=new Ta(N,O),S=R.render(),S&&c.prepend(S),i(O.defaultView),O.handleWindowResize&&(Y=ja(m,O.windowResizeDelay),a(window).resize(Y))}function g(){V&&V.removeElement(),R.removeElement(),T.remove(),c.removeClass("fc fc-ltr fc-rtl fc-unthemed ui-widget"),Y&&a(window).unbind("resize",Y)}function h(){return c.is(":visible")}function i(b){da++,V&&b&&V.type!==b&&(R.deactivateButton(V.type),H(),V.removeElement(),V=N.view=null),!V&&b&&(V=N.view=ca[b]||(ca[b]=N.instantiateView(b)),V.setElement(a("<div class='fc-view fc-"+b+"-view' />").appendTo(T)),R.activateButton(b)),V&&(Z=V.massageCurrentDate(Z),V.displaying&&Z.isWithin(V.intervalStart,V.intervalEnd)||h()&&(V.display(Z),I(),u(),v(),q())),I(),da--}function j(a){return h()?(a&&l(),da++,V.updateSize(!0),da--,!0):void 0}function k(){h()&&l()}function l(){W="number"==typeof O.contentHeight?O.contentHeight:"number"==typeof O.height?O.height-(S?S.outerHeight(!0):0):Math.round(T.width()/Math.max(O.aspectRatio,.5))}function m(a){!da&&a.target===window&&V.start&&j(!0)&&V.trigger("windowResize",ba)}function n(){r()}function o(a){aa(N.getEventSourcesByMatchArray(a))}function p(){h()&&(H(),V.displayEvents(ea),I())}function q(){!O.lazyFetching||$(V.start,V.end)?r():p()}function r(){_(V.start,V.end)}function s(a){ea=a,p()}function t(){p()}function u(){R.updateTitle(V.title)}function v(){var a=N.getNow();a.isWithin(V.intervalStart,V.intervalEnd)?R.disableButton("today"):R.enableButton("today")}function w(a,b){V.select(N.buildSelectSpan.apply(N,arguments))}function x(){V&&V.unselect()}function y(){Z=V.computePrevDate(Z),i()}function z(){Z=V.computeNextDate(Z),i()}function A(){Z.add(-1,"years"),i()}function B(){Z.add(1,"years"),i()}function C(){Z=N.getNow(),i()}function D(a){Z=N.moment(a).stripZone(),i()}function E(a){Z.add(b.duration(a)),i()}function F(a,b){var c;b=b||"day",c=N.getViewSpec(b)||N.getUnitViewSpec(b),Z=a.clone(),i(c?c.type:null)}function G(){return N.applyTimezone(Z)}function H(){T.css({width:"100%",height:T.height(),overflow:"hidden"})}function I(){T.css({width:"",height:"",overflow:""})}function J(){return N}function K(){return V}function L(a,b){return void 0===b?O[a]:void("height"!=a&&"contentHeight"!=a&&"aspectRatio"!=a||(O[a]=b,j(!0)))}function M(a,b){var c=Array.prototype.slice.call(arguments,2);return b=b||ba,this.triggerWith(a,b,c),O[a]?O[a].apply(b,c):void 0}var N=this;N.initOptions(d||{});var O=this.options;N.render=e,N.destroy=g,N.refetchEvents=n,N.refetchEventSources=o,N.reportEvents=s,N.reportEventChange=t,N.rerenderEvents=p,N.changeView=i,N.select=w,N.unselect=x,N.prev=y,N.next=z,N.prevYear=A,N.nextYear=B,N.today=C,N.gotoDate=D,N.incrementDate=E,N.zoomTo=F,N.getDate=G,N.getCalendar=J,N.getView=K,N.option=L,N.trigger=M;var P=X(Sa(O.lang));if(O.monthNames&&(P._months=O.monthNames),O.monthNamesShort&&(P._monthsShort=O.monthNamesShort),O.dayNames&&(P._weekdays=O.dayNames),O.dayNamesShort&&(P._weekdaysShort=O.dayNamesShort),null!=O.firstDay){var Q=X(P._week);Q.dow=O.firstDay,P._week=Q}P._fullCalendar_weekCalc=function(a){return"function"==typeof a?a:"local"===a?a:"iso"===a||"ISO"===a?"ISO":void 0}(O.weekNumberCalculation),N.defaultAllDayEventDuration=b.duration(O.defaultAllDayEventDuration),N.defaultTimedEventDuration=b.duration(O.defaultTimedEventDuration),N.moment=function(){var a;return"local"===O.timezone?(a=Wa.moment.apply(null,arguments),a.hasTime()&&a.local()):a="UTC"===O.timezone?Wa.moment.utc.apply(null,arguments):Wa.moment.parseZone.apply(null,arguments),"_locale"in a?a._locale=P:a._lang=P,a},N.getIsAmbigTimezone=function(){return"local"!==O.timezone&&"UTC"!==O.timezone},N.applyTimezone=function(a){if(!a.hasTime())return a.clone();var b,c=N.moment(a.toArray()),d=a.time()-c.time();return d&&(b=c.clone().add(d),a.time()-b.time()===0&&(c=b)),c},N.getNow=function(){var a=O.now;return"function"==typeof a&&(a=a()),N.moment(a).stripZone()},N.getEventEnd=function(a){return a.end?a.end.clone():N.getDefaultEventEnd(a.allDay,a.start)},N.getDefaultEventEnd=function(a,b){var c=b.clone();return a?c.stripTime().add(N.defaultAllDayEventDuration):c.add(N.defaultTimedEventDuration),N.getIsAmbigTimezone()&&c.stripZone(),c},N.humanizeDuration=function(a){return(a.locale||a.lang).call(a,O.lang).humanize()},Ua.call(N,O);var R,S,T,U,V,W,Y,Z,$=N.isFetchNeeded,_=N.fetchEvents,aa=N.fetchEventSources,ba=c[0],ca={},da=0,ea=[];Z=null!=O.defaultDate?N.moment(O.defaultDate).stripZone():N.getNow(),N.getSuggestedViewHeight=function(){return void 0===W&&k(),W},N.isHeightAuto=function(){return"auto"===O.contentHeight||"auto"===O.height},N.freezeContentHeight=H,N.unfreezeContentHeight=I,N.initialize()}function Ra(b){a.each(Db,function(a,c){null==b[a]&&(b[a]=c(b))})}function Sa(a){var c=b.localeData||b.langData;return c.call(b,a)||c.call(b,"en")}function Ta(b,c){function d(){var b=c.header;return n=c.theme?"ui":"fc",b?o=a("<div class='fc-toolbar'/>").append(f("left")).append(f("right")).append(f("center")).append('<div class="fc-clear"/>'):void 0}function e(){o.remove(),o=a()}function f(d){var e=a('<div class="fc-'+d+'"/>'),f=c.header[d];return f&&a.each(f.split(" "),function(d){var f,g=a(),h=!0;a.each(this.split(","),function(d,e){var f,i,j,k,l,m,o,q,r,s;"title"==e?(g=g.add(a("<h2>&nbsp;</h2>")),h=!1):((f=(b.options.customButtons||{})[e])?(j=function(a){f.click&&f.click.call(s[0],a)},k="",l=f.text):(i=b.getViewSpec(e))?(j=function(){b.changeView(e)},p.push(e),k=i.buttonTextOverride,l=i.buttonTextDefault):b[e]&&(j=function(){b[e]()},k=(b.overrides.buttonText||{})[e],l=c.buttonText[e]),j&&(m=f?f.themeIcon:c.themeButtonIcons[e],o=f?f.icon:c.buttonIcons[e],q=k?ca(k):m&&c.theme?"<span class='ui-icon ui-icon-"+m+"'></span>":o&&!c.theme?"<span class='fc-icon fc-icon-"+o+"'></span>":ca(l),r=["fc-"+e+"-button",n+"-button",n+"-state-default"],s=a('<button type="button" class="'+r.join(" ")+'">'+q+"</button>").click(function(a){s.hasClass(n+"-state-disabled")||(j(a),(s.hasClass(n+"-state-active")||s.hasClass(n+"-state-disabled"))&&s.removeClass(n+"-state-hover"))}).mousedown(function(){s.not("."+n+"-state-active").not("."+n+"-state-disabled").addClass(n+"-state-down")}).mouseup(function(){s.removeClass(n+"-state-down")}).hover(function(){s.not("."+n+"-state-active").not("."+n+"-state-disabled").addClass(n+"-state-hover")},function(){s.removeClass(n+"-state-hover").removeClass(n+"-state-down")}),g=g.add(s)))}),h&&g.first().addClass(n+"-corner-left").end().last().addClass(n+"-corner-right").end(),g.length>1?(f=a("<div/>"),h&&f.addClass("fc-button-group"),f.append(g),e.append(f)):e.append(g)}),e}function g(a){o.find("h2").text(a)}function h(a){o.find(".fc-"+a+"-button").addClass(n+"-state-active")}function i(a){o.find(".fc-"+a+"-button").removeClass(n+"-state-active")}function j(a){o.find(".fc-"+a+"-button").prop("disabled",!0).addClass(n+"-state-disabled")}function k(a){o.find(".fc-"+a+"-button").prop("disabled",!1).removeClass(n+"-state-disabled")}function l(){return p}var m=this;m.render=d,m.removeElement=e,m.updateTitle=g,m.activateButton=h,m.deactivateButton=i,m.disableButton=j,m.enableButton=k,m.getViewsWithButtons=l;var n,o=a(),p=[]}function Ua(c){function d(a,b){return!W||W>a||b>X}function e(a,b){W=a,X=b,f($,"reset")}function f(a,b){var c,d;for("reset"===b?da=[]:"add"!==b&&(da=v(da,a)),c=0;c<a.length;c++)d=a[c],"pending"!==d._status&&ca++,d._fetchId=(d._fetchId||0)+1,d._status="pending";for(c=0;c<a.length;c++)d=a[c],g(d,d._fetchId)}function g(b,c){j(b,function(d){var e,f,g,h=a.isArray(b.events);if(c===b._fetchId&&"rejected"!==b._status){if(b._status="resolved",d)for(e=0;e<d.length;e++)f=d[e],g=h?f:C(f,b),g&&da.push.apply(da,G(g));i()}})}function h(a){var b="pending"===a._status;a._status="rejected",b&&i()}function i(){ca--,ca||Y(da)}function j(b,d){var e,f,g=Wa.sourceFetchers;for(e=0;e<g.length;e++){if(f=g[e].call(U,b,W.clone(),X.clone(),c.timezone,d),f===!0)return;if("object"==typeof f)return void j(f,d)}var h=b.events;if(h)a.isFunction(h)?(U.pushLoading(),h.call(U,W.clone(),X.clone(),c.timezone,function(a){d(a),U.popLoading()})):a.isArray(h)?d(h):d();else{var i=b.url;if(i){var k,l=b.success,m=b.error,n=b.complete;k=a.isFunction(b.data)?b.data():b.data;var o=a.extend({},k||{}),p=ba(b.startParam,c.startParam),q=ba(b.endParam,c.endParam),r=ba(b.timezoneParam,c.timezoneParam);p&&(o[p]=W.format()),q&&(o[q]=X.format()),c.timezone&&"local"!=c.timezone&&(o[r]=c.timezone),U.pushLoading(),a.ajax(a.extend({},Eb,b,{data:o,success:function(b){b=b||[];var c=aa(l,this,arguments);a.isArray(c)&&(b=c),d(b)},error:function(){aa(m,this,arguments),d()},complete:function(){aa(n,this,arguments),U.popLoading()}}))}else d()}}function k(a){var b=l(a);b&&($.push(b),f([b],"add"))}function l(b){var c,d,e=Wa.sourceNormalizers;if(a.isFunction(b)||a.isArray(b)?c={events:b}:"string"==typeof b?c={url:b}:"object"==typeof b&&(c=a.extend({},b)),c){for(c.className?"string"==typeof c.className&&(c.className=c.className.split(/\s+/)):c.className=[],a.isArray(c.events)&&(c.origArray=c.events,c.events=a.map(c.events,function(a){return C(a,c)})),d=0;d<e.length;d++)e[d].call(U,c);return c}}function m(a){o(s(a))}function n(a){null==a?o($,!0):o(r(a))}function o(b,c){var d;for(d=0;d<b.length;d++)h(b[d]);c?($=[],da=[]):($=a.grep($,function(a){for(d=0;d<b.length;d++)if(a===b[d])return!1;return!0}),da=v(da,b)),Y(da)}function p(){return $.slice(1)}function q(b){return a.grep($,function(a){return a.id&&a.id===b})[0]}function r(b){b?a.isArray(b)||(b=[b]):b=[];var c,d=[];for(c=0;c<b.length;c++)d.push.apply(d,s(b[c]));return d}function s(b){var c,d;for(c=0;c<$.length;c++)if(d=$[c],d===b)return[d];return d=q(b),d?[d]:a.grep($,function(a){return t(b,a)})}function t(a,b){return a&&b&&u(a)==u(b)}function u(a){return("object"==typeof a?a.origArray||a.googleCalendarId||a.url||a.events:null)||a}function v(b,c){return a.grep(b,function(a){for(var b=0;b<c.length;b++)if(a.source===c[b])return!1;return!0})}function w(a){a.start=U.moment(a.start),a.end?a.end=U.moment(a.end):a.end=null,H(a,x(a)),Y(da)}function x(b){var c={};return a.each(b,function(a,b){y(a)&&void 0!==b&&_(b)&&(c[a]=b)}),c}function y(a){return!/^_|^(id|allDay|start|end)$/.test(a)}function z(a,b){var c,d,e,f=C(a);if(f){for(c=G(f),d=0;d<c.length;d++)e=c[d],e.source||(b&&(Z.events.push(e),e.source=Z),da.push(e));return Y(da),c}return[]}function A(b){var c,d;for(null==b?b=function(){return!0}:a.isFunction(b)||(c=b+"",b=function(a){return a._id==c}),da=a.grep(da,b,!0),d=0;d<$.length;d++)a.isArray($[d].events)&&($[d].events=a.grep($[d].events,b,!0));Y(da)}function B(b){return a.isFunction(b)?a.grep(da,b):null!=b?(b+="",a.grep(da,function(a){return a._id==b})):da}function C(d,e){var f,g,h,i={};if(c.eventDataTransform&&(d=c.eventDataTransform(d)),e&&e.eventDataTransform&&(d=e.eventDataTransform(d)),a.extend(i,d),e&&(i.source=e),i._id=d._id||(void 0===d.id?"_fc"+Fb++:d.id+""),d.className?"string"==typeof d.className?i.className=d.className.split(/\s+/):i.className=d.className:i.className=[],f=d.start||d.date,g=d.end,V(f)&&(f=b.duration(f)),V(g)&&(g=b.duration(g)),d.dow||b.isDuration(f)||b.isDuration(g))i.start=f?b.duration(f):null,i.end=g?b.duration(g):null,i._recurring=!0;else{if(f&&(f=U.moment(f),!f.isValid()))return!1;g&&(g=U.moment(g),g.isValid()||(g=null)),h=d.allDay,void 0===h&&(h=ba(e?e.allDayDefault:void 0,c.allDayDefault)),D(f,g,h,i)}return U.normalizeEvent(i),i}function D(a,b,c,d){d.start=a,d.end=b,d.allDay=c,E(d),Va(d)}function E(a){F(a),a.end&&!a.end.isAfter(a.start)&&(a.end=null),a.end||(c.forceEventDuration?a.end=U.getDefaultEventEnd(a.allDay,a.start):a.end=null)}function F(a){null==a.allDay&&(a.allDay=!(a.start.hasTime()||a.end&&a.end.hasTime())),a.allDay?(a.start.stripTime(),a.end&&a.end.stripTime()):(a.start.hasTime()||(a.start=U.applyTimezone(a.start.time(0))),a.end&&!a.end.hasTime()&&(a.end=U.applyTimezone(a.end.time(0))))}function G(b,c,d){var e,f,g,h,i,j,k,l,m,n=[];if(c=c||W,d=d||X,b)if(b._recurring){if(f=b.dow)for(e={},g=0;g<f.length;g++)e[f[g]]=!0;for(h=c.clone().stripTime();h.isBefore(d);)e&&!e[h.day()]||(i=b.start,j=b.end,k=h.clone(),l=null,i&&(k=k.time(i)),j&&(l=h.clone().time(j)),m=a.extend({},b),D(k,l,!i&&!j,m),n.push(m)),h.add(1,"days")}else n.push(b);return n}function H(b,c,d){function e(a,b){return d?N(a,b,d):c.allDay?M(a,b):L(a,b)}var f,g,h,i,j,k,l={};return c=c||{},c.start||(c.start=b.start.clone()),void 0===c.end&&(c.end=b.end?b.end.clone():null),null==c.allDay&&(c.allDay=b.allDay),E(c),f={start:b._start.clone(),end:b._end?b._end.clone():U.getDefaultEventEnd(b._allDay,b._start),allDay:c.allDay},E(f),g=null!==b._end&&null===c.end,h=e(c.start,f.start),c.end?(i=e(c.end,f.end),j=i.subtract(h)):j=null,a.each(c,function(a,b){y(a)&&void 0!==b&&(l[a]=b)}),k=I(B(b._id),g,c.allDay,h,j,l),{dateDelta:h,durationDelta:j,undo:k}}function I(b,c,d,e,f,g){var h=U.getIsAmbigTimezone(),i=[];return e&&!e.valueOf()&&(e=null),f&&!f.valueOf()&&(f=null),a.each(b,function(b,j){var k,l;k={start:j.start.clone(),end:j.end?j.end.clone():null,allDay:j.allDay},a.each(g,function(a){k[a]=j[a]}),l={start:j._start,end:j._end,allDay:d},E(l),c?l.end=null:f&&!l.end&&(l.end=U.getDefaultEventEnd(l.allDay,l.start)),e&&(l.start.add(e),l.end&&l.end.add(e)),f&&l.end.add(f),h&&!l.allDay&&(e||f)&&(l.start.stripZone(),l.end&&l.end.stripZone()),a.extend(j,g,l),Va(j),i.push(function(){a.extend(j,k),Va(j)})}),function(){for(var a=0;a<i.length;a++)i[a]()}}function J(b){var d,e=c.businessHours,f={className:"fc-nonbusiness",start:"09:00",end:"17:00",dow:[1,2,3,4,5],rendering:"inverse-background"},g=U.getView();return e&&(d=a.extend({},f,"object"==typeof e?e:{})),d?(b&&(d.start=null,d.end=null),G(C(d),g.start,g.end)):[]}function K(a,b){var d=b.source||{},e=ba(b.constraint,d.constraint,c.eventConstraint),f=ba(b.overlap,d.overlap,c.eventOverlap);return Q(a,e,f,b)}function O(b,c,d){var e,f;return d&&(e=a.extend({},d,c),f=G(C(e))[0]),f?K(b,f):P(b)}function P(a){return Q(a,c.selectConstraint,c.selectOverlap)}function Q(a,b,c,d){var e,f,g,h,i,j;if(null!=b){for(e=R(b),f=!1,h=0;h<e.length;h++)if(S(e[h],a)){f=!0;break}if(!f)return!1}for(g=U.getPeerEvents(a,d),h=0;h<g.length;h++)if(i=g[h],T(i,a)){if(c===!1)return!1;if("function"==typeof c&&!c(i,d))return!1;if(d){if(j=ba(i.overlap,(i.source||{}).overlap),j===!1)return!1;if("function"==typeof j&&!j(d,i))return!1}}return!0}function R(a){return"businessHours"===a?J():"object"==typeof a?G(C(a)):B(a)}function S(a,b){var c=a.start.clone().stripZone(),d=U.getEventEnd(a).stripZone();return b.start>=c&&b.end<=d}function T(a,b){var c=a.start.clone().stripZone(),d=U.getEventEnd(a).stripZone();return b.start<d&&b.end>c}var U=this;U.isFetchNeeded=d,U.fetchEvents=e,U.fetchEventSources=f,U.getEventSources=p,U.getEventSourceById=q,U.getEventSourcesByMatchArray=r,U.getEventSourcesByMatch=s,U.addEventSource=k,U.removeEventSource=m,U.removeEventSources=n,U.updateEvent=w,U.renderEvent=z,U.removeEvents=A,U.clientEvents=B,U.mutateEvent=H,U.normalizeEventDates=E,U.normalizeEventTimes=F;var W,X,Y=U.reportEvents,Z={events:[]},$=[Z],ca=0,da=[];a.each((c.events?[c.events]:[]).concat(c.eventSources||[]),function(a,b){var c=l(b);c&&$.push(c)}),U.getBusinessHoursEvents=J,U.isEventSpanAllowed=K,U.isExternalSpanAllowed=O,U.isSelectionSpanAllowed=P,U.getEventCache=function(){return da}}function Va(a){a._allDay=a.allDay,a._start=a.start.clone(),a._end=a.end?a.end.clone():null}var Wa=a.fullCalendar={version:"2.8.0",internalApiVersion:4},Xa=Wa.views={};a.fn.fullCalendar=function(b){var c=Array.prototype.slice.call(arguments,1),d=this;return this.each(function(e,f){var g,h=a(f),i=h.data("fullCalendar");"string"==typeof b?i&&a.isFunction(i[b])&&(g=i[b].apply(i,c),e||(d=g),"destroy"===b&&h.removeData("fullCalendar")):i||(i=new zb(h,b),h.data("fullCalendar",i),i.render())}),d};var Ya=["header","buttonText","buttonIcons","themeButtonIcons"];Wa.intersectRanges=K,Wa.applyAll=aa,Wa.debounce=ja,Wa.isInt=ha,Wa.htmlEscape=ca,Wa.cssToStr=ea,Wa.proxy=ia,Wa.capitaliseFirstLetter=fa,Wa.getOuterRect=n,Wa.getClientRect=o,Wa.getContentRect=p,Wa.getScrollbarWidths=q;var Za=null;Wa.preventDefault=z,Wa.intersectRects=C,Wa.parseFieldSpecs=G,Wa.compareByFieldSpecs=H,Wa.compareByFieldSpec=I,Wa.flexibleCompare=J,Wa.computeIntervalUnit=O,Wa.divideRangeByDuration=Q,Wa.divideDurationByDuration=R,Wa.multiplyDuration=S,Wa.durationHasTime=T;var $a=["sun","mon","tue","wed","thu","fri","sat"],_a=["year","month","week","day","hour","minute","second","millisecond"];Wa.log=function(){var a=window.console;return a&&a.log?a.log.apply(a,arguments):void 0},Wa.warn=function(){var a=window.console;return a&&a.warn?a.warn.apply(a,arguments):Wa.log.apply(Wa,arguments)};var ab,bb,cb,db={}.hasOwnProperty,eb=/^\s*\d{4}-\d\d$/,fb=/^\s*\d{4}-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?)?$/,gb=b.fn,hb=a.extend({},gb);Wa.moment=function(){return la(arguments)},Wa.moment.utc=function(){var a=la(arguments,!0);return a.hasTime()&&a.utc(),a},Wa.moment.parseZone=function(){return la(arguments,!0,!0)},gb.clone=function(){var a=hb.clone.apply(this,arguments);return na(this,a),this._fullCalendar&&(a._fullCalendar=!0),a},gb.week=gb.weeks=function(a){var b=(this._locale||this._lang)._fullCalendar_weekCalc;return null==a&&"function"==typeof b?b(this):"ISO"===b?hb.isoWeek.apply(this,arguments):hb.week.apply(this,arguments)},gb.time=function(a){if(!this._fullCalendar)return hb.time.apply(this,arguments);if(null==a)return b.duration({hours:this.hours(),minutes:this.minutes(),seconds:this.seconds(),milliseconds:this.milliseconds()});this._ambigTime=!1,b.isDuration(a)||b.isMoment(a)||(a=b.duration(a));var c=0;return b.isDuration(a)&&(c=24*Math.floor(a.asDays())),this.hours(c+a.hours()).minutes(a.minutes()).seconds(a.seconds()).milliseconds(a.milliseconds())},gb.stripTime=function(){var a;return this._ambigTime||(a=this.toArray(),this.utc(),bb(this,a.slice(0,3)),this._ambigTime=!0,this._ambigZone=!0),this},gb.hasTime=function(){return!this._ambigTime},gb.stripZone=function(){var a,b;return this._ambigZone||(a=this.toArray(),b=this._ambigTime,this.utc(),bb(this,a),this._ambigTime=b||!1,this._ambigZone=!0),this},gb.hasZone=function(){return!this._ambigZone},gb.local=function(){var a=this.toArray(),b=this._ambigZone;return hb.local.apply(this,arguments),this._ambigTime=!1,this._ambigZone=!1,b&&cb(this,a),this},gb.utc=function(){return hb.utc.apply(this,arguments),this._ambigTime=!1,this._ambigZone=!1,this},a.each(["zone","utcOffset"],function(a,b){hb[b]&&(gb[b]=function(a){return null!=a&&(this._ambigTime=!1,this._ambigZone=!1),hb[b].apply(this,arguments)})}),gb.format=function(){return this._fullCalendar&&arguments[0]?qa(this,arguments[0]):this._ambigTime?pa(this,"YYYY-MM-DD"):this._ambigZone?pa(this,"YYYY-MM-DD[T]HH:mm:ss"):hb.format.apply(this,arguments)},gb.toISOString=function(){return this._ambigTime?pa(this,"YYYY-MM-DD"):this._ambigZone?pa(this,"YYYY-MM-DD[T]HH:mm:ss"):hb.toISOString.apply(this,arguments)},gb.isWithin=function(a,b){var c=ma([this,a,b]);return c[0]>=c[1]&&c[0]<c[2]},gb.isSame=function(a,b){var c;return this._fullCalendar?b?(c=ma([this,a],!0),hb.isSame.call(c[0],c[1],b)):(a=Wa.moment.parseZone(a),hb.isSame.call(this,a)&&Boolean(this._ambigTime)===Boolean(a._ambigTime)&&Boolean(this._ambigZone)===Boolean(a._ambigZone)):hb.isSame.apply(this,arguments)},a.each(["isBefore","isAfter"],function(a,b){gb[b]=function(a,c){var d;return this._fullCalendar?(d=ma([this,a]),hb[b].call(d[0],d[1],c)):hb[b].apply(this,arguments)}}),ab="_d"in b()&&"updateOffset"in b,bb=ab?function(a,c){a._d.setTime(Date.UTC.apply(Date,c)),b.updateOffset(a,!1)}:oa,cb=ab?function(a,c){a._d.setTime(+new Date(c[0]||0,c[1]||0,c[2]||0,c[3]||0,c[4]||0,c[5]||0,c[6]||0)),b.updateOffset(a,!1)}:oa;var ib={t:function(a){return pa(a,"a").charAt(0)},T:function(a){return pa(a,"A").charAt(0)}};Wa.formatRange=ta;var jb={Y:"year",M:"month",D:"day",d:"day",A:"second",a:"second",T:"second",t:"second",H:"second",h:"second",m:"second",s:"second"},kb={};Wa.Class=ya,ya.extend=function(){var a,b,c=arguments.length;for(a=0;c>a;a++)b=arguments[a],c-1>a&&Aa(this,b);return za(this,b||{});
-},ya.mixin=function(a){Aa(this,a)};var lb=Wa.EmitterMixin={on:function(b,c){var d=function(a,b){return c.apply(b.context||this,b.args||[])};return c.guid||(c.guid=a.guid++),d.guid=c.guid,a(this).on(b,d),this},off:function(b,c){return a(this).off(b,c),this},trigger:function(b){var c=Array.prototype.slice.call(arguments,1);return a(this).triggerHandler(b,{args:c}),this},triggerWith:function(b,c,d){return a(this).triggerHandler(b,{context:c,args:d}),this}},mb=Wa.ListenerMixin=function(){var b=0,c={listenerId:null,listenTo:function(b,c,d){if("object"==typeof c)for(var e in c)c.hasOwnProperty(e)&&this.listenTo(b,e,c[e]);else"string"==typeof c&&b.on(c+"."+this.getListenerNamespace(),a.proxy(d,this))},stopListeningTo:function(a,b){a.off((b||"")+"."+this.getListenerNamespace())},getListenerNamespace:function(){return null==this.listenerId&&(this.listenerId=b++),"_listener"+this.listenerId}};return c}(),nb={isIgnoringMouse:!1,delayUnignoreMouse:null,initMouseIgnoring:function(a){this.delayUnignoreMouse=ja(ia(this,"unignoreMouse"),a||1e3)},tempIgnoreMouse:function(){this.isIgnoringMouse=!0,this.delayUnignoreMouse()},unignoreMouse:function(){this.isIgnoringMouse=!1}},ob=ya.extend(mb,{isHidden:!0,options:null,el:null,margin:10,constructor:function(a){this.options=a||{}},show:function(){this.isHidden&&(this.el||this.render(),this.el.show(),this.position(),this.isHidden=!1,this.trigger("show"))},hide:function(){this.isHidden||(this.el.hide(),this.isHidden=!0,this.trigger("hide"))},render:function(){var b=this,c=this.options;this.el=a('<div class="fc-popover"/>').addClass(c.className||"").css({top:0,left:0}).append(c.content).appendTo(c.parentEl),this.el.on("click",".fc-close",function(){b.hide()}),c.autoHide&&this.listenTo(a(document),"mousedown",this.documentMousedown)},documentMousedown:function(b){this.el&&!a(b.target).closest(this.el).length&&this.hide()},removeElement:function(){this.hide(),this.el&&(this.el.remove(),this.el=null),this.stopListeningTo(a(document),"mousedown")},position:function(){var b,c,d,e,f,g=this.options,h=this.el.offsetParent().offset(),i=this.el.outerWidth(),j=this.el.outerHeight(),k=a(window),l=m(this.el);e=g.top||0,f=void 0!==g.left?g.left:void 0!==g.right?g.right-i:0,l.is(window)||l.is(document)?(l=k,b=0,c=0):(d=l.offset(),b=d.top,c=d.left),b+=k.scrollTop(),c+=k.scrollLeft(),g.viewportConstrain!==!1&&(e=Math.min(e,b+l.outerHeight()-j-this.margin),e=Math.max(e,b+this.margin),f=Math.min(f,c+l.outerWidth()-i-this.margin),f=Math.max(f,c+this.margin)),this.el.css({top:e-h.top,left:f-h.left})},trigger:function(a){this.options[a]&&this.options[a].apply(this,Array.prototype.slice.call(arguments,1))}}),pb=Wa.CoordCache=ya.extend({els:null,forcedOffsetParentEl:null,origin:null,boundingRect:null,isHorizontal:!1,isVertical:!1,lefts:null,rights:null,tops:null,bottoms:null,constructor:function(b){this.els=a(b.els),this.isHorizontal=b.isHorizontal,this.isVertical=b.isVertical,this.forcedOffsetParentEl=b.offsetParent?a(b.offsetParent):null},build:function(){var a=this.forcedOffsetParentEl||this.els.eq(0).offsetParent();this.origin=a.offset(),this.boundingRect=this.queryBoundingRect(),this.isHorizontal&&this.buildElHorizontals(),this.isVertical&&this.buildElVerticals()},clear:function(){this.origin=null,this.boundingRect=null,this.lefts=null,this.rights=null,this.tops=null,this.bottoms=null},ensureBuilt:function(){this.origin||this.build()},queryBoundingRect:function(){var a=m(this.els.eq(0));return a.is(document)?void 0:o(a)},buildElHorizontals:function(){var b=[],c=[];this.els.each(function(d,e){var f=a(e),g=f.offset().left,h=f.outerWidth();b.push(g),c.push(g+h)}),this.lefts=b,this.rights=c},buildElVerticals:function(){var b=[],c=[];this.els.each(function(d,e){var f=a(e),g=f.offset().top,h=f.outerHeight();b.push(g),c.push(g+h)}),this.tops=b,this.bottoms=c},getHorizontalIndex:function(a){this.ensureBuilt();var b,c=this.boundingRect,d=this.lefts,e=this.rights,f=d.length;if(!c||a>=c.left&&a<c.right)for(b=0;f>b;b++)if(a>=d[b]&&a<e[b])return b},getVerticalIndex:function(a){this.ensureBuilt();var b,c=this.boundingRect,d=this.tops,e=this.bottoms,f=d.length;if(!c||a>=c.top&&a<c.bottom)for(b=0;f>b;b++)if(a>=d[b]&&a<e[b])return b},getLeftOffset:function(a){return this.ensureBuilt(),this.lefts[a]},getLeftPosition:function(a){return this.ensureBuilt(),this.lefts[a]-this.origin.left},getRightOffset:function(a){return this.ensureBuilt(),this.rights[a]},getRightPosition:function(a){return this.ensureBuilt(),this.rights[a]-this.origin.left},getWidth:function(a){return this.ensureBuilt(),this.rights[a]-this.lefts[a]},getTopOffset:function(a){return this.ensureBuilt(),this.tops[a]},getTopPosition:function(a){return this.ensureBuilt(),this.tops[a]-this.origin.top},getBottomOffset:function(a){return this.ensureBuilt(),this.bottoms[a]},getBottomPosition:function(a){return this.ensureBuilt(),this.bottoms[a]-this.origin.top},getHeight:function(a){return this.ensureBuilt(),this.bottoms[a]-this.tops[a]}}),qb=Wa.DragListener=ya.extend(mb,nb,{options:null,subjectEl:null,subjectHref:null,originX:null,originY:null,scrollEl:null,isInteracting:!1,isDistanceSurpassed:!1,isDelayEnded:!1,isDragging:!1,isTouch:!1,delay:null,delayTimeoutId:null,minDistance:null,handleTouchScrollProxy:null,constructor:function(a){this.options=a||{},this.handleTouchScrollProxy=ia(this,"handleTouchScroll"),this.initMouseIgnoring(500)},startInteraction:function(b,c){var d=x(b);if("mousedown"===b.type){if(this.isIgnoringMouse)return;if(!u(b))return;b.preventDefault()}this.isInteracting||(c=c||{},this.delay=ba(c.delay,this.options.delay,0),this.minDistance=ba(c.distance,this.options.distance,0),this.subjectEl=this.options.subjectEl,this.isInteracting=!0,this.isTouch=d,this.isDelayEnded=!1,this.isDistanceSurpassed=!1,this.originX=v(b),this.originY=w(b),this.scrollEl=m(a(b.target)),this.bindHandlers(),this.initAutoScroll(),this.handleInteractionStart(b),this.startDelay(b),this.minDistance||this.handleDistanceSurpassed(b))},handleInteractionStart:function(a){this.trigger("interactionStart",a)},endInteraction:function(a,b){this.isInteracting&&(this.endDrag(a),this.delayTimeoutId&&(clearTimeout(this.delayTimeoutId),this.delayTimeoutId=null),this.destroyAutoScroll(),this.unbindHandlers(),this.isInteracting=!1,this.handleInteractionEnd(a,b),this.isTouch&&this.tempIgnoreMouse())},handleInteractionEnd:function(a,b){this.trigger("interactionEnd",a,b||!1)},bindHandlers:function(){var b=this,c=1;this.isTouch?(this.listenTo(a(document),{touchmove:this.handleTouchMove,touchend:this.endInteraction,touchcancel:this.endInteraction,touchstart:function(a){c?c--:b.endInteraction(a,!0)}}),!A(this.handleTouchScrollProxy)&&this.scrollEl&&this.listenTo(this.scrollEl,"scroll",this.handleTouchScroll)):this.listenTo(a(document),{mousemove:this.handleMouseMove,mouseup:this.endInteraction}),this.listenTo(a(document),{selectstart:z,contextmenu:z})},unbindHandlers:function(){this.stopListeningTo(a(document)),B(this.handleTouchScrollProxy),this.scrollEl&&this.stopListeningTo(this.scrollEl,"scroll")},startDrag:function(a,b){this.startInteraction(a,b),this.isDragging||(this.isDragging=!0,this.handleDragStart(a))},handleDragStart:function(a){this.trigger("dragStart",a),this.initHrefHack()},handleMove:function(a){var b,c=v(a)-this.originX,d=w(a)-this.originY,e=this.minDistance;this.isDistanceSurpassed||(b=c*c+d*d,b>=e*e&&this.handleDistanceSurpassed(a)),this.isDragging&&this.handleDrag(c,d,a)},handleDrag:function(a,b,c){this.trigger("drag",a,b,c),this.updateAutoScroll(c)},endDrag:function(a){this.isDragging&&(this.isDragging=!1,this.handleDragEnd(a))},handleDragEnd:function(a){this.trigger("dragEnd",a),this.destroyHrefHack()},startDelay:function(a){var b=this;this.delay?this.delayTimeoutId=setTimeout(function(){b.handleDelayEnd(a)},this.delay):this.handleDelayEnd(a)},handleDelayEnd:function(a){this.isDelayEnded=!0,this.isDistanceSurpassed&&this.startDrag(a)},handleDistanceSurpassed:function(a){this.isDistanceSurpassed=!0,this.isDelayEnded&&this.startDrag(a)},handleTouchMove:function(a){this.isDragging&&a.preventDefault(),this.handleMove(a)},handleMouseMove:function(a){this.handleMove(a)},handleTouchScroll:function(a){this.isDragging||this.endInteraction(a,!0)},initHrefHack:function(){var a=this.subjectEl;(this.subjectHref=a?a.attr("href"):null)&&a.removeAttr("href")},destroyHrefHack:function(){var a=this.subjectEl,b=this.subjectHref;setTimeout(function(){b&&a.attr("href",b)},0)},trigger:function(a){this.options[a]&&this.options[a].apply(this,Array.prototype.slice.call(arguments,1)),this["_"+a]&&this["_"+a].apply(this,Array.prototype.slice.call(arguments,1))}});qb.mixin({isAutoScroll:!1,scrollBounds:null,scrollTopVel:null,scrollLeftVel:null,scrollIntervalId:null,scrollSensitivity:30,scrollSpeed:200,scrollIntervalMs:50,initAutoScroll:function(){var a=this.scrollEl;this.isAutoScroll=this.options.scroll&&a&&!a.is(window)&&!a.is(document),this.isAutoScroll&&this.listenTo(a,"scroll",ja(this.handleDebouncedScroll,100))},destroyAutoScroll:function(){this.endAutoScroll(),this.isAutoScroll&&this.stopListeningTo(this.scrollEl,"scroll")},computeScrollBounds:function(){this.isAutoScroll&&(this.scrollBounds=n(this.scrollEl))},updateAutoScroll:function(a){var b,c,d,e,f=this.scrollSensitivity,g=this.scrollBounds,h=0,i=0;g&&(b=(f-(w(a)-g.top))/f,c=(f-(g.bottom-w(a)))/f,d=(f-(v(a)-g.left))/f,e=(f-(g.right-v(a)))/f,b>=0&&1>=b?h=b*this.scrollSpeed*-1:c>=0&&1>=c&&(h=c*this.scrollSpeed),d>=0&&1>=d?i=d*this.scrollSpeed*-1:e>=0&&1>=e&&(i=e*this.scrollSpeed)),this.setScrollVel(h,i)},setScrollVel:function(a,b){this.scrollTopVel=a,this.scrollLeftVel=b,this.constrainScrollVel(),!this.scrollTopVel&&!this.scrollLeftVel||this.scrollIntervalId||(this.scrollIntervalId=setInterval(ia(this,"scrollIntervalFunc"),this.scrollIntervalMs))},constrainScrollVel:function(){var a=this.scrollEl;this.scrollTopVel<0?a.scrollTop()<=0&&(this.scrollTopVel=0):this.scrollTopVel>0&&a.scrollTop()+a[0].clientHeight>=a[0].scrollHeight&&(this.scrollTopVel=0),this.scrollLeftVel<0?a.scrollLeft()<=0&&(this.scrollLeftVel=0):this.scrollLeftVel>0&&a.scrollLeft()+a[0].clientWidth>=a[0].scrollWidth&&(this.scrollLeftVel=0)},scrollIntervalFunc:function(){var a=this.scrollEl,b=this.scrollIntervalMs/1e3;this.scrollTopVel&&a.scrollTop(a.scrollTop()+this.scrollTopVel*b),this.scrollLeftVel&&a.scrollLeft(a.scrollLeft()+this.scrollLeftVel*b),this.constrainScrollVel(),this.scrollTopVel||this.scrollLeftVel||this.endAutoScroll()},endAutoScroll:function(){this.scrollIntervalId&&(clearInterval(this.scrollIntervalId),this.scrollIntervalId=null,this.handleScrollEnd())},handleDebouncedScroll:function(){this.scrollIntervalId||this.handleScrollEnd()},handleScrollEnd:function(){}});var rb=qb.extend({component:null,origHit:null,hit:null,coordAdjust:null,constructor:function(a,b){qb.call(this,b),this.component=a},handleInteractionStart:function(a){var b,c,d,e=this.subjectEl;this.computeCoords(),a?(c={left:v(a),top:w(a)},d=c,e&&(b=n(e),d=D(d,b)),this.origHit=this.queryHit(d.left,d.top),e&&this.options.subjectCenter&&(this.origHit&&(b=C(this.origHit,b)||b),d=E(b)),this.coordAdjust=F(d,c)):(this.origHit=null,this.coordAdjust=null),qb.prototype.handleInteractionStart.apply(this,arguments)},computeCoords:function(){this.component.prepareHits(),this.computeScrollBounds()},handleDragStart:function(a){var b;qb.prototype.handleDragStart.apply(this,arguments),b=this.queryHit(v(a),w(a)),b&&this.handleHitOver(b)},handleDrag:function(a,b,c){var d;qb.prototype.handleDrag.apply(this,arguments),d=this.queryHit(v(c),w(c)),Ba(d,this.hit)||(this.hit&&this.handleHitOut(),d&&this.handleHitOver(d))},handleDragEnd:function(){this.handleHitDone(),qb.prototype.handleDragEnd.apply(this,arguments)},handleHitOver:function(a){var b=Ba(a,this.origHit);this.hit=a,this.trigger("hitOver",this.hit,b,this.origHit)},handleHitOut:function(){this.hit&&(this.trigger("hitOut",this.hit),this.handleHitDone(),this.hit=null)},handleHitDone:function(){this.hit&&this.trigger("hitDone",this.hit)},handleInteractionEnd:function(){qb.prototype.handleInteractionEnd.apply(this,arguments),this.origHit=null,this.hit=null,this.component.releaseHits()},handleScrollEnd:function(){qb.prototype.handleScrollEnd.apply(this,arguments),this.computeCoords()},queryHit:function(a,b){return this.coordAdjust&&(a+=this.coordAdjust.left,b+=this.coordAdjust.top),this.component.queryHit(a,b)}}),sb=ya.extend(mb,{options:null,sourceEl:null,el:null,parentEl:null,top0:null,left0:null,y0:null,x0:null,topDelta:null,leftDelta:null,isFollowing:!1,isHidden:!1,isAnimating:!1,constructor:function(b,c){this.options=c=c||{},this.sourceEl=b,this.parentEl=c.parentEl?a(c.parentEl):b.parent()},start:function(b){this.isFollowing||(this.isFollowing=!0,this.y0=w(b),this.x0=v(b),this.topDelta=0,this.leftDelta=0,this.isHidden||this.updatePosition(),x(b)?this.listenTo(a(document),"touchmove",this.handleMove):this.listenTo(a(document),"mousemove",this.handleMove))},stop:function(b,c){function d(){this.isAnimating=!1,e.removeElement(),this.top0=this.left0=null,c&&c()}var e=this,f=this.options.revertDuration;this.isFollowing&&!this.isAnimating&&(this.isFollowing=!1,this.stopListeningTo(a(document)),b&&f&&!this.isHidden?(this.isAnimating=!0,this.el.animate({top:this.top0,left:this.left0},{duration:f,complete:d})):d())},getEl:function(){var a=this.el;return a||(this.sourceEl.width(),a=this.el=this.sourceEl.clone().addClass(this.options.additionalClass||"").css({position:"absolute",visibility:"",display:this.isHidden?"none":"",margin:0,right:"auto",bottom:"auto",width:this.sourceEl.width(),height:this.sourceEl.height(),opacity:this.options.opacity||"",zIndex:this.options.zIndex}),a.addClass("fc-unselectable"),a.appendTo(this.parentEl)),a},removeElement:function(){this.el&&(this.el.remove(),this.el=null)},updatePosition:function(){var a,b;this.getEl(),null===this.top0&&(this.sourceEl.width(),a=this.sourceEl.offset(),b=this.el.offsetParent().offset(),this.top0=a.top-b.top,this.left0=a.left-b.left),this.el.css({top:this.top0+this.topDelta,left:this.left0+this.leftDelta})},handleMove:function(a){this.topDelta=w(a)-this.y0,this.leftDelta=v(a)-this.x0,this.isHidden||this.updatePosition()},hide:function(){this.isHidden||(this.isHidden=!0,this.el&&this.el.hide())},show:function(){this.isHidden&&(this.isHidden=!1,this.updatePosition(),this.getEl().show())}}),tb=Wa.Grid=ya.extend(mb,nb,{view:null,isRTL:null,start:null,end:null,el:null,elsByFill:null,eventTimeFormat:null,displayEventTime:null,displayEventEnd:null,minResizeDuration:null,largeUnit:null,dayDragListener:null,segDragListener:null,segResizeListener:null,externalDragListener:null,constructor:function(a){this.view=a,this.isRTL=a.opt("isRTL"),this.elsByFill={},this.dayDragListener=this.buildDayDragListener(),this.initMouseIgnoring()},computeEventTimeFormat:function(){return this.view.opt("smallTimeFormat")},computeDisplayEventTime:function(){return!0},computeDisplayEventEnd:function(){return!0},setRange:function(a){this.start=a.start.clone(),this.end=a.end.clone(),this.rangeUpdated(),this.processRangeOptions()},rangeUpdated:function(){},processRangeOptions:function(){var a,b,c=this.view;this.eventTimeFormat=c.opt("eventTimeFormat")||c.opt("timeFormat")||this.computeEventTimeFormat(),a=c.opt("displayEventTime"),null==a&&(a=this.computeDisplayEventTime()),b=c.opt("displayEventEnd"),null==b&&(b=this.computeDisplayEventEnd()),this.displayEventTime=a,this.displayEventEnd=b},spanToSegs:function(a){},diffDates:function(a,b){return this.largeUnit?N(a,b,this.largeUnit):L(a,b)},prepareHits:function(){},releaseHits:function(){},queryHit:function(a,b){},getHitSpan:function(a){},getHitEl:function(a){},setElement:function(a){this.el=a,y(a),this.bindDayHandler("touchstart",this.dayTouchStart),this.bindDayHandler("mousedown",this.dayMousedown),this.bindSegHandlers(),this.bindGlobalHandlers()},bindDayHandler:function(b,c){var d=this;this.el.on(b,function(b){return a(b.target).is(".fc-event-container *, .fc-more")||a(b.target).closest(".fc-popover").length?void 0:c.call(d,b)})},removeElement:function(){this.unbindGlobalHandlers(),this.clearDragListeners(),this.el.remove()},renderSkeleton:function(){},renderDates:function(){},unrenderDates:function(){},bindGlobalHandlers:function(){this.listenTo(a(document),{dragstart:this.externalDragStart,sortstart:this.externalDragStart})},unbindGlobalHandlers:function(){this.stopListeningTo(a(document))},dayMousedown:function(a){this.isIgnoringMouse||this.dayDragListener.startInteraction(a,{})},dayTouchStart:function(a){var b=this.view;(b.isSelected||b.selectedEvent)&&this.tempIgnoreMouse(),this.dayDragListener.startInteraction(a,{delay:this.view.opt("longPressDelay")})},buildDayDragListener:function(){var a,b,c=this,d=this.view,e=d.opt("selectable"),f=new rb(this,{scroll:d.opt("dragScroll"),interactionStart:function(){a=f.origHit},dragStart:function(){d.unselect()},hitOver:function(d,f,h){h&&(f||(a=null),e&&(b=c.computeSelection(c.getHitSpan(h),c.getHitSpan(d)),b?c.renderSelection(b):b===!1&&g()))},hitOut:function(){a=null,b=null,c.unrenderSelection(),h()},interactionEnd:function(e,f){f||(a&&!c.isIgnoringMouse&&d.triggerDayClick(c.getHitSpan(a),c.getHitEl(a),e),b&&d.reportSelection(b,e),h())}});return f},clearDragListeners:function(){this.dayDragListener.endInteraction(),this.segDragListener&&this.segDragListener.endInteraction(),this.segResizeListener&&this.segResizeListener.endInteraction(),this.externalDragListener&&this.externalDragListener.endInteraction()},renderEventLocationHelper:function(a,b){var c=this.fabricateHelperEvent(a,b);return this.renderHelper(c,b)},fabricateHelperEvent:function(a,b){var c=b?X(b.event):{};return c.start=a.start.clone(),c.end=a.end?a.end.clone():null,c.allDay=null,this.view.calendar.normalizeEventDates(c),c.className=(c.className||[]).concat("fc-helper"),b||(c.editable=!1),c},renderHelper:function(a,b){},unrenderHelper:function(){},renderSelection:function(a){this.renderHighlight(a)},unrenderSelection:function(){this.unrenderHighlight()},computeSelection:function(a,b){var c=this.computeSelectionSpan(a,b);return c&&!this.view.calendar.isSelectionSpanAllowed(c)?!1:c},computeSelectionSpan:function(a,b){var c=[a.start,a.end,b.start,b.end];return c.sort(ga),{start:c[0].clone(),end:c[3].clone()}},renderHighlight:function(a){this.renderFill("highlight",this.spanToSegs(a))},unrenderHighlight:function(){this.unrenderFill("highlight")},highlightSegClasses:function(){return["fc-highlight"]},renderBusinessHours:function(){},unrenderBusinessHours:function(){},getNowIndicatorUnit:function(){},renderNowIndicator:function(a){},unrenderNowIndicator:function(){},renderFill:function(a,b){},unrenderFill:function(a){var b=this.elsByFill[a];b&&(b.remove(),delete this.elsByFill[a])},renderFillSegEls:function(b,c){var d,e=this,f=this[b+"SegEl"],g="",h=[];if(c.length){for(d=0;d<c.length;d++)g+=this.fillSegHtml(b,c[d]);a(g).each(function(b,d){var g=c[b],i=a(d);f&&(i=f.call(e,g,i)),i&&(i=a(i),i.is(e.fillSegTag)&&(g.el=i,h.push(g)))})}return h},fillSegTag:"div",fillSegHtml:function(a,b){var c=this[a+"SegClasses"],d=this[a+"SegCss"],e=c?c.call(this,b):[],f=ea(d?d.call(this,b):{});return"<"+this.fillSegTag+(e.length?' class="'+e.join(" ")+'"':"")+(f?' style="'+f+'"':"")+" />"},getDayClasses:function(a){var b=this.view,c=b.calendar.getNow(),d=["fc-"+$a[a.day()]];return 1==b.intervalDuration.as("months")&&a.month()!=b.intervalStart.month()&&d.push("fc-other-month"),a.isSame(c,"day")?d.push("fc-today",b.highlightStateClass):c>a?d.push("fc-past"):d.push("fc-future"),d}});tb.mixin({mousedOverSeg:null,isDraggingSeg:!1,isResizingSeg:!1,isDraggingExternal:!1,segs:null,renderEvents:function(a){var b,c=[],d=[];for(b=0;b<a.length;b++)(Da(a[b])?c:d).push(a[b]);this.segs=[].concat(this.renderBgEvents(c),this.renderFgEvents(d))},renderBgEvents:function(a){var b=this.eventsToSegs(a);return this.renderBgSegs(b)||b},renderFgEvents:function(a){var b=this.eventsToSegs(a);return this.renderFgSegs(b)||b},unrenderEvents:function(){this.handleSegMouseout(),this.clearDragListeners(),this.unrenderFgSegs(),this.unrenderBgSegs(),this.segs=null},getEventSegs:function(){return this.segs||[]},renderFgSegs:function(a){},unrenderFgSegs:function(){},renderFgSegEls:function(b,c){var d,e=this.view,f="",g=[];if(b.length){for(d=0;d<b.length;d++)f+=this.fgSegHtml(b[d],c);a(f).each(function(c,d){var f=b[c],h=e.resolveEventEl(f.event,a(d));h&&(h.data("fc-seg",f),f.el=h,g.push(f))})}return g},fgSegHtml:function(a,b){},renderBgSegs:function(a){return this.renderFill("bgEvent",a)},unrenderBgSegs:function(){this.unrenderFill("bgEvent")},bgEventSegEl:function(a,b){return this.view.resolveEventEl(a.event,b)},bgEventSegClasses:function(a){var b=a.event,c=b.source||{};return["fc-bgevent"].concat(b.className,c.className||[])},bgEventSegCss:function(a){return{"background-color":this.getSegSkinCss(a)["background-color"]}},businessHoursSegClasses:function(a){return["fc-nonbusiness","fc-bgevent"]},bindSegHandlers:function(){this.bindSegHandler("touchstart",this.handleSegTouchStart),this.bindSegHandler("touchend",this.handleSegTouchEnd),this.bindSegHandler("mouseenter",this.handleSegMouseover),this.bindSegHandler("mouseleave",this.handleSegMouseout),this.bindSegHandler("mousedown",this.handleSegMousedown),this.bindSegHandler("click",this.handleSegClick)},bindSegHandler:function(b,c){var d=this;this.el.on(b,".fc-event-container > *",function(b){var e=a(this).data("fc-seg");return!e||d.isDraggingSeg||d.isResizingSeg?void 0:c.call(d,e,b)})},handleSegClick:function(a,b){return this.view.trigger("eventClick",a.el[0],a.event,b)},handleSegMouseover:function(a,b){this.isIgnoringMouse||this.mousedOverSeg||(this.mousedOverSeg=a,a.el.addClass("fc-allow-mouse-resize"),this.view.trigger("eventMouseover",a.el[0],a.event,b))},handleSegMouseout:function(a,b){b=b||{},this.mousedOverSeg&&(a=a||this.mousedOverSeg,this.mousedOverSeg=null,a.el.removeClass("fc-allow-mouse-resize"),this.view.trigger("eventMouseout",a.el[0],a.event,b))},handleSegMousedown:function(a,b){var c=this.startSegResize(a,b,{distance:5});!c&&this.view.isEventDraggable(a.event)&&this.buildSegDragListener(a).startInteraction(b,{distance:5})},handleSegTouchStart:function(a,b){var c,d=this.view,e=a.event,f=d.isEventSelected(e),g=d.isEventDraggable(e),h=d.isEventResizable(e),i=!1;f&&h&&(i=this.startSegResize(a,b)),i||!g&&!h||(c=g?this.buildSegDragListener(a):this.buildSegSelectListener(a),c.startInteraction(b,{delay:f?0:this.view.opt("longPressDelay")})),this.tempIgnoreMouse()},handleSegTouchEnd:function(a,b){this.tempIgnoreMouse()},startSegResize:function(b,c,d){return a(c.target).is(".fc-resizer")?(this.buildSegResizeListener(b,a(c.target).is(".fc-start-resizer")).startInteraction(c,d),!0):!1},buildSegDragListener:function(a){var b,c,d,e=this,f=this.view,i=f.calendar,j=a.el,k=a.event;if(this.segDragListener)return this.segDragListener;var l=this.segDragListener=new rb(f,{scroll:f.opt("dragScroll"),subjectEl:j,subjectCenter:!0,interactionStart:function(d){b=!1,c=new sb(a.el,{additionalClass:"fc-dragging",parentEl:f.el,opacity:l.isTouch?null:f.opt("dragOpacity"),revertDuration:f.opt("dragRevertDuration"),zIndex:2}),c.hide(),c.start(d)},dragStart:function(c){l.isTouch&&!f.isEventSelected(k)&&f.selectEvent(k),b=!0,e.handleSegMouseout(a,c),e.segDragStart(a,c),f.hideEvent(k)},hitOver:function(b,h,j){var m;a.hit&&(j=a.hit),d=e.computeEventDrop(j.component.getHitSpan(j),b.component.getHitSpan(b),k),d&&!i.isEventSpanAllowed(e.eventToSpan(d),k)&&(g(),d=null),d&&(m=f.renderDrag(d,a))?(m.addClass("fc-dragging"),l.isTouch||e.applyDragOpacity(m),c.hide()):c.show(),h&&(d=null)},hitOut:function(){f.unrenderDrag(),c.show(),d=null},hitDone:function(){h()},interactionEnd:function(g){c.stop(!d,function(){b&&(f.unrenderDrag(),f.showEvent(k),e.segDragStop(a,g)),d&&f.reportEventDrop(k,d,this.largeUnit,j,g)}),e.segDragListener=null}});return l},buildSegSelectListener:function(a){var b=this,c=this.view,d=a.event;if(this.segDragListener)return this.segDragListener;var e=this.segDragListener=new qb({dragStart:function(a){e.isTouch&&!c.isEventSelected(d)&&c.selectEvent(d)},interactionEnd:function(a){b.segDragListener=null}});return e},segDragStart:function(a,b){this.isDraggingSeg=!0,this.view.trigger("eventDragStart",a.el[0],a.event,b,{})},segDragStop:function(a,b){this.isDraggingSeg=!1,this.view.trigger("eventDragStop",a.el[0],a.event,b,{})},computeEventDrop:function(a,b,c){var d,e,f=this.view.calendar,g=a.start,h=b.start;return g.hasTime()===h.hasTime()?(d=this.diffDates(h,g),c.allDay&&T(d)?(e={start:c.start.clone(),end:f.getEventEnd(c),allDay:!1},f.normalizeEventTimes(e)):e={start:c.start.clone(),end:c.end?c.end.clone():null,allDay:c.allDay},e.start.add(d),e.end&&e.end.add(d)):e={start:h.clone(),end:null,allDay:!h.hasTime()},e},applyDragOpacity:function(a){var b=this.view.opt("dragOpacity");null!=b&&a.each(function(a,c){c.style.opacity=b})},externalDragStart:function(b,c){var d,e,f=this.view;f.opt("droppable")&&(d=a((c?c.item:null)||b.target),e=f.opt("dropAccept"),(a.isFunction(e)?e.call(d[0],d):d.is(e))&&(this.isDraggingExternal||this.listenToExternalDrag(d,b,c)))},listenToExternalDrag:function(a,b,c){var d,e=this,f=this.view.calendar,i=Ia(a),j=e.externalDragListener=new rb(this,{interactionStart:function(){e.isDraggingExternal=!0},hitOver:function(a){d=e.computeExternalDrop(a.component.getHitSpan(a),i),d&&!f.isExternalSpanAllowed(e.eventToSpan(d),d,i.eventProps)&&(g(),d=null),d&&e.renderDrag(d)},hitOut:function(){d=null},hitDone:function(){h(),e.unrenderDrag()},interactionEnd:function(b){d&&e.view.reportExternalDrop(i,d,a,b,c),e.isDraggingExternal=!1,e.externalDragListener=null}});j.startDrag(b)},computeExternalDrop:function(a,b){var c=this.view.calendar,d={start:c.applyTimezone(a.start),end:null};return b.startTime&&!d.start.hasTime()&&d.start.time(b.startTime),b.duration&&(d.end=d.start.clone().add(b.duration)),d},renderDrag:function(a,b){},unrenderDrag:function(){},buildSegResizeListener:function(a,b){var c,d,e=this,f=this.view,i=f.calendar,j=a.el,k=a.event,l=i.getEventEnd(k),m=this.segResizeListener=new rb(this,{scroll:f.opt("dragScroll"),subjectEl:j,interactionStart:function(){c=!1},dragStart:function(b){c=!0,e.handleSegMouseout(a,b),e.segResizeStart(a,b)},hitOver:function(c,h,j){var m=e.getHitSpan(j),n=e.getHitSpan(c);d=b?e.computeEventStartResize(m,n,k):e.computeEventEndResize(m,n,k),d&&(i.isEventSpanAllowed(e.eventToSpan(d),k)?d.start.isSame(k.start)&&d.end.isSame(l)&&(d=null):(g(),d=null)),d&&(f.hideEvent(k),e.renderEventResize(d,a))},hitOut:function(){d=null},hitDone:function(){e.unrenderEventResize(),f.showEvent(k),h()},interactionEnd:function(b){c&&e.segResizeStop(a,b),d&&f.reportEventResize(k,d,this.largeUnit,j,b),e.segResizeListener=null}});return m},segResizeStart:function(a,b){this.isResizingSeg=!0,this.view.trigger("eventResizeStart",a.el[0],a.event,b,{})},segResizeStop:function(a,b){this.isResizingSeg=!1,this.view.trigger("eventResizeStop",a.el[0],a.event,b,{})},computeEventStartResize:function(a,b,c){return this.computeEventResize("start",a,b,c)},computeEventEndResize:function(a,b,c){return this.computeEventResize("end",a,b,c)},computeEventResize:function(a,b,c,d){var e,f,g=this.view.calendar,h=this.diffDates(c[a],b[a]);return e={start:d.start.clone(),end:g.getEventEnd(d),allDay:d.allDay},e.allDay&&T(h)&&(e.allDay=!1,g.normalizeEventTimes(e)),e[a].add(h),e.start.isBefore(e.end)||(f=this.minResizeDuration||(d.allDay?g.defaultAllDayEventDuration:g.defaultTimedEventDuration),"start"==a?e.start=e.end.clone().subtract(f):e.end=e.start.clone().add(f)),e},renderEventResize:function(a,b){},unrenderEventResize:function(){},getEventTimeText:function(a,b,c){return null==b&&(b=this.eventTimeFormat),null==c&&(c=this.displayEventEnd),this.displayEventTime&&a.start.hasTime()?c&&a.end?this.view.formatRange(a,b):a.start.format(b):""},getSegClasses:function(a,b,c){var d=this.view,e=a.event,f=["fc-event",a.isStart?"fc-start":"fc-not-start",a.isEnd?"fc-end":"fc-not-end"].concat(e.className,e.source?e.source.className:[]);return b&&f.push("fc-draggable"),c&&f.push("fc-resizable"),d.isEventSelected(e)&&f.push("fc-selected"),f},getSegSkinCss:function(a){var b=a.event,c=this.view,d=b.source||{},e=b.color,f=d.color,g=c.opt("eventColor");return{"background-color":b.backgroundColor||e||d.backgroundColor||f||c.opt("eventBackgroundColor")||g,"border-color":b.borderColor||e||d.borderColor||f||c.opt("eventBorderColor")||g,color:b.textColor||d.textColor||c.opt("eventTextColor")}},eventToSegs:function(a){return this.eventsToSegs([a])},eventToSpan:function(a){return this.eventToSpans(a)[0]},eventToSpans:function(a){var b=this.eventToRange(a);return this.eventRangeToSpans(b,a)},eventsToSegs:function(b,c){var d=this,e=Ga(b),f=[];return a.each(e,function(a,b){var e,g=[];for(e=0;e<b.length;e++)g.push(d.eventToRange(b[e]));if(Ea(b[0]))for(g=d.invertRanges(g),e=0;e<g.length;e++)f.push.apply(f,d.eventRangeToSegs(g[e],b[0],c));else for(e=0;e<g.length;e++)f.push.apply(f,d.eventRangeToSegs(g[e],b[e],c))}),f},eventToRange:function(a){return{start:a.start.clone().stripZone(),end:(a.end?a.end.clone():this.view.calendar.getDefaultEventEnd(null!=a.allDay?a.allDay:!a.start.hasTime(),a.start)).stripZone()}},eventRangeToSegs:function(a,b,c){var d,e=this.eventRangeToSpans(a,b),f=[];for(d=0;d<e.length;d++)f.push.apply(f,this.eventSpanToSegs(e[d],b,c));return f},eventRangeToSpans:function(b,c){return[a.extend({},b)]},eventSpanToSegs:function(a,b,c){var d,e,f=c?c(a):this.spanToSegs(a);for(d=0;d<f.length;d++)e=f[d],e.event=b,e.eventStartMS=+a.start,e.eventDurationMS=a.end-a.start;return f},invertRanges:function(a){var b,c,d=this.view,e=d.start.clone(),f=d.end.clone(),g=[],h=e;for(a.sort(Ha),b=0;b<a.length;b++)c=a[b],c.start>h&&g.push({start:h,end:c.start}),h=c.end;return f>h&&g.push({start:h,end:f}),g},sortEventSegs:function(a){a.sort(ia(this,"compareEventSegs"))},compareEventSegs:function(a,b){return a.eventStartMS-b.eventStartMS||b.eventDurationMS-a.eventDurationMS||b.event.allDay-a.event.allDay||H(a.event,b.event,this.view.eventOrderSpecs)}}),Wa.isBgEvent=Da,Wa.dataAttrPrefix="";var ub=Wa.DayTableMixin={breakOnWeeks:!1,dayDates:null,dayIndices:null,daysPerRow:null,rowCnt:null,colCnt:null,colHeadFormat:null,updateDayTable:function(){for(var a,b,c,d=this.view,e=this.start.clone(),f=-1,g=[],h=[];e.isBefore(this.end);)d.isHiddenDay(e)?g.push(f+.5):(f++,g.push(f),h.push(e.clone())),e.add(1,"days");if(this.breakOnWeeks){for(b=h[0].day(),a=1;a<h.length&&h[a].day()!=b;a++);c=Math.ceil(h.length/a)}else c=1,a=h.length;this.dayDates=h,this.dayIndices=g,this.daysPerRow=a,this.rowCnt=c,this.updateDayTableCols()},updateDayTableCols:function(){this.colCnt=this.computeColCnt(),this.colHeadFormat=this.view.opt("columnFormat")||this.computeColHeadFormat()},computeColCnt:function(){return this.daysPerRow},getCellDate:function(a,b){return this.dayDates[this.getCellDayIndex(a,b)].clone()},getCellRange:function(a,b){var c=this.getCellDate(a,b),d=c.clone().add(1,"days");return{start:c,end:d}},getCellDayIndex:function(a,b){return a*this.daysPerRow+this.getColDayIndex(b)},getColDayIndex:function(a){return this.isRTL?this.colCnt-1-a:a},getDateDayIndex:function(a){var b=this.dayIndices,c=a.diff(this.start,"days");return 0>c?b[0]-1:c>=b.length?b[b.length-1]+1:b[c]},computeColHeadFormat:function(){return this.rowCnt>1||this.colCnt>10?"ddd":this.colCnt>1?this.view.opt("dayOfMonthFormat"):"dddd"},sliceRangeByRow:function(a){var b,c,d,e,f,g=this.daysPerRow,h=this.view.computeDayRange(a),i=this.getDateDayIndex(h.start),j=this.getDateDayIndex(h.end.clone().subtract(1,"days")),k=[];for(b=0;b<this.rowCnt;b++)c=b*g,d=c+g-1,e=Math.max(i,c),f=Math.min(j,d),e=Math.ceil(e),f=Math.floor(f),f>=e&&k.push({row:b,firstRowDayIndex:e-c,lastRowDayIndex:f-c,isStart:e===i,isEnd:f===j});return k},sliceRangeByDay:function(a){var b,c,d,e,f,g,h=this.daysPerRow,i=this.view.computeDayRange(a),j=this.getDateDayIndex(i.start),k=this.getDateDayIndex(i.end.clone().subtract(1,"days")),l=[];for(b=0;b<this.rowCnt;b++)for(c=b*h,
-d=c+h-1,e=c;d>=e;e++)f=Math.max(j,e),g=Math.min(k,e),f=Math.ceil(f),g=Math.floor(g),g>=f&&l.push({row:b,firstRowDayIndex:f-c,lastRowDayIndex:g-c,isStart:f===j,isEnd:g===k});return l},renderHeadHtml:function(){var a=this.view;return'<div class="fc-row '+a.widgetHeaderClass+'"><table><thead>'+this.renderHeadTrHtml()+"</thead></table></div>"},renderHeadIntroHtml:function(){return this.renderIntroHtml()},renderHeadTrHtml:function(){return"<tr>"+(this.isRTL?"":this.renderHeadIntroHtml())+this.renderHeadDateCellsHtml()+(this.isRTL?this.renderHeadIntroHtml():"")+"</tr>"},renderHeadDateCellsHtml:function(){var a,b,c=[];for(a=0;a<this.colCnt;a++)b=this.getCellDate(0,a),c.push(this.renderHeadDateCellHtml(b));return c.join("")},renderHeadDateCellHtml:function(a,b,c){var d=this.view;return'<th class="fc-day-header '+d.widgetHeaderClass+" fc-"+$a[a.day()]+'"'+(1==this.rowCnt?' data-date="'+a.format("YYYY-MM-DD")+'"':"")+(b>1?' colspan="'+b+'"':"")+(c?" "+c:"")+">"+ca(a.format(this.colHeadFormat))+"</th>"},renderBgTrHtml:function(a){return"<tr>"+(this.isRTL?"":this.renderBgIntroHtml(a))+this.renderBgCellsHtml(a)+(this.isRTL?this.renderBgIntroHtml(a):"")+"</tr>"},renderBgIntroHtml:function(a){return this.renderIntroHtml()},renderBgCellsHtml:function(a){var b,c,d=[];for(b=0;b<this.colCnt;b++)c=this.getCellDate(a,b),d.push(this.renderBgCellHtml(c));return d.join("")},renderBgCellHtml:function(a,b){var c=this.view,d=this.getDayClasses(a);return d.unshift("fc-day",c.widgetContentClass),'<td class="'+d.join(" ")+'" data-date="'+a.format("YYYY-MM-DD")+'"'+(b?" "+b:"")+"></td>"},renderIntroHtml:function(){},bookendCells:function(a){var b=this.renderIntroHtml();b&&(this.isRTL?a.append(b):a.prepend(b))}},vb=Wa.DayGrid=tb.extend(ub,{numbersVisible:!1,bottomCoordPadding:0,rowEls:null,cellEls:null,helperEls:null,rowCoordCache:null,colCoordCache:null,renderDates:function(a){var b,c,d=this.view,e=this.rowCnt,f=this.colCnt,g="";for(b=0;e>b;b++)g+=this.renderDayRowHtml(b,a);for(this.el.html(g),this.rowEls=this.el.find(".fc-row"),this.cellEls=this.el.find(".fc-day"),this.rowCoordCache=new pb({els:this.rowEls,isVertical:!0}),this.colCoordCache=new pb({els:this.cellEls.slice(0,this.colCnt),isHorizontal:!0}),b=0;e>b;b++)for(c=0;f>c;c++)d.trigger("dayRender",null,this.getCellDate(b,c),this.getCellEl(b,c))},unrenderDates:function(){this.removeSegPopover()},renderBusinessHours:function(){var a=this.view.calendar.getBusinessHoursEvents(!0),b=this.eventsToSegs(a);this.renderFill("businessHours",b,"bgevent")},renderDayRowHtml:function(a,b){var c=this.view,d=["fc-row","fc-week",c.widgetContentClass];return b&&d.push("fc-rigid"),'<div class="'+d.join(" ")+'"><div class="fc-bg"><table>'+this.renderBgTrHtml(a)+'</table></div><div class="fc-content-skeleton"><table>'+(this.numbersVisible?"<thead>"+this.renderNumberTrHtml(a)+"</thead>":"")+"</table></div></div>"},renderNumberTrHtml:function(a){return"<tr>"+(this.isRTL?"":this.renderNumberIntroHtml(a))+this.renderNumberCellsHtml(a)+(this.isRTL?this.renderNumberIntroHtml(a):"")+"</tr>"},renderNumberIntroHtml:function(a){return this.renderIntroHtml()},renderNumberCellsHtml:function(a){var b,c,d=[];for(b=0;b<this.colCnt;b++)c=this.getCellDate(a,b),d.push(this.renderNumberCellHtml(c));return d.join("")},renderNumberCellHtml:function(a){var b;return this.view.dayNumbersVisible?(b=this.getDayClasses(a),b.unshift("fc-day-number"),'<td class="'+b.join(" ")+'" data-date="'+a.format()+'">'+a.date()+"</td>"):"<td/>"},computeEventTimeFormat:function(){return this.view.opt("extraSmallTimeFormat")},computeDisplayEventEnd:function(){return 1==this.colCnt},rangeUpdated:function(){this.updateDayTable()},spanToSegs:function(a){var b,c,d=this.sliceRangeByRow(a);for(b=0;b<d.length;b++)c=d[b],this.isRTL?(c.leftCol=this.daysPerRow-1-c.lastRowDayIndex,c.rightCol=this.daysPerRow-1-c.firstRowDayIndex):(c.leftCol=c.firstRowDayIndex,c.rightCol=c.lastRowDayIndex);return d},prepareHits:function(){this.colCoordCache.build(),this.rowCoordCache.build(),this.rowCoordCache.bottoms[this.rowCnt-1]+=this.bottomCoordPadding},releaseHits:function(){this.colCoordCache.clear(),this.rowCoordCache.clear()},queryHit:function(a,b){var c=this.colCoordCache.getHorizontalIndex(a),d=this.rowCoordCache.getVerticalIndex(b);return null!=d&&null!=c?this.getCellHit(d,c):void 0},getHitSpan:function(a){return this.getCellRange(a.row,a.col)},getHitEl:function(a){return this.getCellEl(a.row,a.col)},getCellHit:function(a,b){return{row:a,col:b,component:this,left:this.colCoordCache.getLeftOffset(b),right:this.colCoordCache.getRightOffset(b),top:this.rowCoordCache.getTopOffset(a),bottom:this.rowCoordCache.getBottomOffset(a)}},getCellEl:function(a,b){return this.cellEls.eq(a*this.colCnt+b)},renderDrag:function(a,b){return this.renderHighlight(this.eventToSpan(a)),b&&!b.el.closest(this.el).length?this.renderEventLocationHelper(a,b):void 0},unrenderDrag:function(){this.unrenderHighlight(),this.unrenderHelper()},renderEventResize:function(a,b){return this.renderHighlight(this.eventToSpan(a)),this.renderEventLocationHelper(a,b)},unrenderEventResize:function(){this.unrenderHighlight(),this.unrenderHelper()},renderHelper:function(b,c){var d,e=[],f=this.eventToSegs(b);return f=this.renderFgSegEls(f),d=this.renderSegRows(f),this.rowEls.each(function(b,f){var g,h=a(f),i=a('<div class="fc-helper-skeleton"><table/></div>');g=c&&c.row===b?c.el.position().top:h.find(".fc-content-skeleton tbody").position().top,i.css("top",g).find("table").append(d[b].tbodyEl),h.append(i),e.push(i[0])}),this.helperEls=a(e)},unrenderHelper:function(){this.helperEls&&(this.helperEls.remove(),this.helperEls=null)},fillSegTag:"td",renderFill:function(b,c,d){var e,f,g,h=[];for(c=this.renderFillSegEls(b,c),e=0;e<c.length;e++)f=c[e],g=this.renderFillRow(b,f,d),this.rowEls.eq(f.row).append(g),h.push(g[0]);return this.elsByFill[b]=a(h),c},renderFillRow:function(b,c,d){var e,f,g=this.colCnt,h=c.leftCol,i=c.rightCol+1;return d=d||b.toLowerCase(),e=a('<div class="fc-'+d+'-skeleton"><table><tr/></table></div>'),f=e.find("tr"),h>0&&f.append('<td colspan="'+h+'"/>'),f.append(c.el.attr("colspan",i-h)),g>i&&f.append('<td colspan="'+(g-i)+'"/>'),this.bookendCells(f),e}});vb.mixin({rowStructs:null,unrenderEvents:function(){this.removeSegPopover(),tb.prototype.unrenderEvents.apply(this,arguments)},getEventSegs:function(){return tb.prototype.getEventSegs.call(this).concat(this.popoverSegs||[])},renderBgSegs:function(b){var c=a.grep(b,function(a){return a.event.allDay});return tb.prototype.renderBgSegs.call(this,c)},renderFgSegs:function(b){var c;return b=this.renderFgSegEls(b),c=this.rowStructs=this.renderSegRows(b),this.rowEls.each(function(b,d){a(d).find(".fc-content-skeleton > table").append(c[b].tbodyEl)}),b},unrenderFgSegs:function(){for(var a,b=this.rowStructs||[];a=b.pop();)a.tbodyEl.remove();this.rowStructs=null},renderSegRows:function(a){var b,c,d=[];for(b=this.groupSegRows(a),c=0;c<b.length;c++)d.push(this.renderSegRow(c,b[c]));return d},fgSegHtml:function(a,b){var c,d,e=this.view,f=a.event,g=e.isEventDraggable(f),h=!b&&f.allDay&&a.isStart&&e.isEventResizableFromStart(f),i=!b&&f.allDay&&a.isEnd&&e.isEventResizableFromEnd(f),j=this.getSegClasses(a,g,h||i),k=ea(this.getSegSkinCss(a)),l="";return j.unshift("fc-day-grid-event","fc-h-event"),a.isStart&&(c=this.getEventTimeText(f),c&&(l='<span class="fc-time">'+ca(c)+"</span>")),d='<span class="fc-title">'+(ca(f.title||"")||"&nbsp;")+"</span>",'<a class="'+j.join(" ")+'"'+(f.url?' href="'+ca(f.url)+'"':"")+(k?' style="'+k+'"':"")+'><div class="fc-content">'+(this.isRTL?d+" "+l:l+" "+d)+"</div>"+(h?'<div class="fc-resizer fc-start-resizer" />':"")+(i?'<div class="fc-resizer fc-end-resizer" />':"")+"</a>"},renderSegRow:function(b,c){function d(b){for(;b>g;)k=(r[e-1]||[])[g],k?k.attr("rowspan",parseInt(k.attr("rowspan")||1,10)+1):(k=a("<td/>"),h.append(k)),q[e][g]=k,r[e][g]=k,g++}var e,f,g,h,i,j,k,l=this.colCnt,m=this.buildSegLevels(c),n=Math.max(1,m.length),o=a("<tbody/>"),p=[],q=[],r=[];for(e=0;n>e;e++){if(f=m[e],g=0,h=a("<tr/>"),p.push([]),q.push([]),r.push([]),f)for(i=0;i<f.length;i++){for(j=f[i],d(j.leftCol),k=a('<td class="fc-event-container"/>').append(j.el),j.leftCol!=j.rightCol?k.attr("colspan",j.rightCol-j.leftCol+1):r[e][g]=k;g<=j.rightCol;)q[e][g]=k,p[e][g]=j,g++;h.append(k)}d(l),this.bookendCells(h),o.append(h)}return{row:b,tbodyEl:o,cellMatrix:q,segMatrix:p,segLevels:m,segs:c}},buildSegLevels:function(a){var b,c,d,e=[];for(this.sortEventSegs(a),b=0;b<a.length;b++){for(c=a[b],d=0;d<e.length&&Ja(c,e[d]);d++);c.level=d,(e[d]||(e[d]=[])).push(c)}for(d=0;d<e.length;d++)e[d].sort(Ka);return e},groupSegRows:function(a){var b,c=[];for(b=0;b<this.rowCnt;b++)c.push([]);for(b=0;b<a.length;b++)c[a[b].row].push(a[b]);return c}}),vb.mixin({segPopover:null,popoverSegs:null,removeSegPopover:function(){this.segPopover&&this.segPopover.hide()},limitRows:function(a){var b,c,d=this.rowStructs||[];for(b=0;b<d.length;b++)this.unlimitRow(b),c=a?"number"==typeof a?a:this.computeRowLevelLimit(b):!1,c!==!1&&this.limitRow(b,c)},computeRowLevelLimit:function(b){function c(b,c){f=Math.max(f,a(c).outerHeight())}var d,e,f,g=this.rowEls.eq(b),h=g.height(),i=this.rowStructs[b].tbodyEl.children();for(d=0;d<i.length;d++)if(e=i.eq(d).removeClass("fc-limited"),f=0,e.find("> td > :first-child").each(c),e.position().top+f>h)return d;return!1},limitRow:function(b,c){function d(d){for(;d>w;)j=t.getCellSegs(b,w,c),j.length&&(m=f[c-1][w],s=t.renderMoreLink(b,w,j),r=a("<div/>").append(s),m.append(r),v.push(r[0])),w++}var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t=this,u=this.rowStructs[b],v=[],w=0;if(c&&c<u.segLevels.length){for(e=u.segLevels[c-1],f=u.cellMatrix,g=u.tbodyEl.children().slice(c).addClass("fc-limited").get(),h=0;h<e.length;h++){for(i=e[h],d(i.leftCol),l=[],k=0;w<=i.rightCol;)j=this.getCellSegs(b,w,c),l.push(j),k+=j.length,w++;if(k){for(m=f[c-1][i.leftCol],n=m.attr("rowspan")||1,o=[],p=0;p<l.length;p++)q=a('<td class="fc-more-cell"/>').attr("rowspan",n),j=l[p],s=this.renderMoreLink(b,i.leftCol+p,[i].concat(j)),r=a("<div/>").append(s),q.append(r),o.push(q[0]),v.push(q[0]);m.addClass("fc-limited").after(a(o)),g.push(m[0])}}d(this.colCnt),u.moreEls=a(v),u.limitedEls=a(g)}},unlimitRow:function(a){var b=this.rowStructs[a];b.moreEls&&(b.moreEls.remove(),b.moreEls=null),b.limitedEls&&(b.limitedEls.removeClass("fc-limited"),b.limitedEls=null)},renderMoreLink:function(b,c,d){var e=this,f=this.view;return a('<a class="fc-more"/>').text(this.getMoreLinkText(d.length)).on("click",function(g){var h=f.opt("eventLimitClick"),i=e.getCellDate(b,c),j=a(this),k=e.getCellEl(b,c),l=e.getCellSegs(b,c),m=e.resliceDaySegs(l,i),n=e.resliceDaySegs(d,i);"function"==typeof h&&(h=f.trigger("eventLimitClick",null,{date:i,dayEl:k,moreEl:j,segs:m,hiddenSegs:n},g)),"popover"===h?e.showSegPopover(b,c,j,m):"string"==typeof h&&f.calendar.zoomTo(i,h)})},showSegPopover:function(a,b,c,d){var e,f,g=this,h=this.view,i=c.parent();e=1==this.rowCnt?h.el:this.rowEls.eq(a),f={className:"fc-more-popover",content:this.renderSegPopoverContent(a,b,d),parentEl:this.el,top:e.offset().top,autoHide:!0,viewportConstrain:h.opt("popoverViewportConstrain"),hide:function(){g.segPopover.removeElement(),g.segPopover=null,g.popoverSegs=null}},this.isRTL?f.right=i.offset().left+i.outerWidth()+1:f.left=i.offset().left-1,this.segPopover=new ob(f),this.segPopover.show()},renderSegPopoverContent:function(b,c,d){var e,f=this.view,g=f.opt("theme"),h=this.getCellDate(b,c).format(f.opt("dayPopoverFormat")),i=a('<div class="fc-header '+f.widgetHeaderClass+'"><span class="fc-close '+(g?"ui-icon ui-icon-closethick":"fc-icon fc-icon-x")+'"></span><span class="fc-title">'+ca(h)+'</span><div class="fc-clear"/></div><div class="fc-body '+f.widgetContentClass+'"><div class="fc-event-container"></div></div>'),j=i.find(".fc-event-container");for(d=this.renderFgSegEls(d,!0),this.popoverSegs=d,e=0;e<d.length;e++)this.prepareHits(),d[e].hit=this.getCellHit(b,c),this.releaseHits(),j.append(d[e].el);return i},resliceDaySegs:function(b,c){var d=a.map(b,function(a){return a.event}),e=c.clone(),f=e.clone().add(1,"days"),g={start:e,end:f};return b=this.eventsToSegs(d,function(a){var b=K(a,g);return b?[b]:[]}),this.sortEventSegs(b),b},getMoreLinkText:function(a){var b=this.view.opt("eventLimitText");return"function"==typeof b?b(a):"+"+a+" "+b},getCellSegs:function(a,b,c){for(var d,e=this.rowStructs[a].segMatrix,f=c||0,g=[];f<e.length;)d=e[f][b],d&&g.push(d),f++;return g}});var wb=Wa.TimeGrid=tb.extend(ub,{slotDuration:null,snapDuration:null,snapsPerSlot:null,minTime:null,maxTime:null,labelFormat:null,labelInterval:null,colEls:null,slatContainerEl:null,slatEls:null,nowIndicatorEls:null,colCoordCache:null,slatCoordCache:null,constructor:function(){tb.apply(this,arguments),this.processOptions()},renderDates:function(){this.el.html(this.renderHtml()),this.colEls=this.el.find(".fc-day"),this.slatContainerEl=this.el.find(".fc-slats"),this.slatEls=this.slatContainerEl.find("tr"),this.colCoordCache=new pb({els:this.colEls,isHorizontal:!0}),this.slatCoordCache=new pb({els:this.slatEls,isVertical:!0}),this.renderContentSkeleton()},renderHtml:function(){return'<div class="fc-bg"><table>'+this.renderBgTrHtml(0)+'</table></div><div class="fc-slats"><table>'+this.renderSlatRowHtml()+"</table></div>"},renderSlatRowHtml:function(){for(var a,c,d,e=this.view,f=this.isRTL,g="",h=b.duration(+this.minTime);h<this.maxTime;)a=this.start.clone().time(h),c=ha(R(h,this.labelInterval)),d='<td class="fc-axis fc-time '+e.widgetContentClass+'" '+e.axisStyleAttr()+">"+(c?"<span>"+ca(a.format(this.labelFormat))+"</span>":"")+"</td>",g+='<tr data-time="'+a.format("HH:mm:ss")+'"'+(c?"":' class="fc-minor"')+">"+(f?"":d)+'<td class="'+e.widgetContentClass+'"/>'+(f?d:"")+"</tr>",h.add(this.slotDuration);return g},processOptions:function(){var c,d=this.view,e=d.opt("slotDuration"),f=d.opt("snapDuration");e=b.duration(e),f=f?b.duration(f):e,this.slotDuration=e,this.snapDuration=f,this.snapsPerSlot=e/f,this.minResizeDuration=f,this.minTime=b.duration(d.opt("minTime")),this.maxTime=b.duration(d.opt("maxTime")),c=d.opt("slotLabelFormat"),a.isArray(c)&&(c=c[c.length-1]),this.labelFormat=c||d.opt("axisFormat")||d.opt("smallTimeFormat"),c=d.opt("slotLabelInterval"),this.labelInterval=c?b.duration(c):this.computeLabelInterval(e)},computeLabelInterval:function(a){var c,d,e;for(c=Nb.length-1;c>=0;c--)if(d=b.duration(Nb[c]),e=R(d,a),ha(e)&&e>1)return d;return b.duration(a)},computeEventTimeFormat:function(){return this.view.opt("noMeridiemTimeFormat")},computeDisplayEventEnd:function(){return!0},prepareHits:function(){this.colCoordCache.build(),this.slatCoordCache.build()},releaseHits:function(){this.colCoordCache.clear()},queryHit:function(a,b){var c=this.snapsPerSlot,d=this.colCoordCache,e=this.slatCoordCache,f=d.getHorizontalIndex(a),g=e.getVerticalIndex(b);if(null!=f&&null!=g){var h=e.getTopOffset(g),i=e.getHeight(g),j=(b-h)/i,k=Math.floor(j*c),l=g*c+k,m=h+k/c*i,n=h+(k+1)/c*i;return{col:f,snap:l,component:this,left:d.getLeftOffset(f),right:d.getRightOffset(f),top:m,bottom:n}}},getHitSpan:function(a){var b,c=this.getCellDate(0,a.col),d=this.computeSnapTime(a.snap);return c.time(d),b=c.clone().add(this.snapDuration),{start:c,end:b}},getHitEl:function(a){return this.colEls.eq(a.col)},rangeUpdated:function(){this.updateDayTable()},computeSnapTime:function(a){return b.duration(this.minTime+this.snapDuration*a)},spanToSegs:function(a){var b,c=this.sliceRangeByTimes(a);for(b=0;b<c.length;b++)this.isRTL?c[b].col=this.daysPerRow-1-c[b].dayIndex:c[b].col=c[b].dayIndex;return c},sliceRangeByTimes:function(a){var b,c,d,e,f=[];for(c=0;c<this.daysPerRow;c++)d=this.dayDates[c].clone(),e={start:d.clone().time(this.minTime),end:d.clone().time(this.maxTime)},b=K(a,e),b&&(b.dayIndex=c,f.push(b));return f},updateSize:function(a){this.slatCoordCache.build(),a&&this.updateSegVerticals([].concat(this.fgSegs||[],this.bgSegs||[],this.businessSegs||[]))},getTotalSlatHeight:function(){return this.slatContainerEl.outerHeight()},computeDateTop:function(a,c){return this.computeTimeTop(b.duration(a-c.clone().stripTime()))},computeTimeTop:function(a){var b,c,d=this.slatEls.length,e=(a-this.minTime)/this.slotDuration;return e=Math.max(0,e),e=Math.min(d,e),b=Math.floor(e),b=Math.min(b,d-1),c=e-b,this.slatCoordCache.getTopPosition(b)+this.slatCoordCache.getHeight(b)*c},renderDrag:function(a,b){return b?this.renderEventLocationHelper(a,b):void this.renderHighlight(this.eventToSpan(a))},unrenderDrag:function(){this.unrenderHelper(),this.unrenderHighlight()},renderEventResize:function(a,b){return this.renderEventLocationHelper(a,b)},unrenderEventResize:function(){this.unrenderHelper()},renderHelper:function(a,b){return this.renderHelperSegs(this.eventToSegs(a),b)},unrenderHelper:function(){this.unrenderHelperSegs()},renderBusinessHours:function(){var a=this.view.calendar.getBusinessHoursEvents(),b=this.eventsToSegs(a);this.renderBusinessSegs(b)},unrenderBusinessHours:function(){this.unrenderBusinessSegs()},getNowIndicatorUnit:function(){return"minute"},renderNowIndicator:function(b){var c,d=this.spanToSegs({start:b,end:b}),e=this.computeDateTop(b,b),f=[];for(c=0;c<d.length;c++)f.push(a('<div class="fc-now-indicator fc-now-indicator-line"></div>').css("top",e).appendTo(this.colContainerEls.eq(d[c].col))[0]);d.length>0&&f.push(a('<div class="fc-now-indicator fc-now-indicator-arrow"></div>').css("top",e).appendTo(this.el.find(".fc-content-skeleton"))[0]),this.nowIndicatorEls=a(f)},unrenderNowIndicator:function(){this.nowIndicatorEls&&(this.nowIndicatorEls.remove(),this.nowIndicatorEls=null)},renderSelection:function(a){this.view.opt("selectHelper")?this.renderEventLocationHelper(a):this.renderHighlight(a)},unrenderSelection:function(){this.unrenderHelper(),this.unrenderHighlight()},renderHighlight:function(a){this.renderHighlightSegs(this.spanToSegs(a))},unrenderHighlight:function(){this.unrenderHighlightSegs()}});wb.mixin({colContainerEls:null,fgContainerEls:null,bgContainerEls:null,helperContainerEls:null,highlightContainerEls:null,businessContainerEls:null,fgSegs:null,bgSegs:null,helperSegs:null,highlightSegs:null,businessSegs:null,renderContentSkeleton:function(){var b,c,d="";for(b=0;b<this.colCnt;b++)d+='<td><div class="fc-content-col"><div class="fc-event-container fc-helper-container"></div><div class="fc-event-container"></div><div class="fc-highlight-container"></div><div class="fc-bgevent-container"></div><div class="fc-business-container"></div></div></td>';c=a('<div class="fc-content-skeleton"><table><tr>'+d+"</tr></table></div>"),this.colContainerEls=c.find(".fc-content-col"),this.helperContainerEls=c.find(".fc-helper-container"),this.fgContainerEls=c.find(".fc-event-container:not(.fc-helper-container)"),this.bgContainerEls=c.find(".fc-bgevent-container"),this.highlightContainerEls=c.find(".fc-highlight-container"),this.businessContainerEls=c.find(".fc-business-container"),this.bookendCells(c.find("tr")),this.el.append(c)},renderFgSegs:function(a){return a=this.renderFgSegsIntoContainers(a,this.fgContainerEls),this.fgSegs=a,a},unrenderFgSegs:function(){this.unrenderNamedSegs("fgSegs")},renderHelperSegs:function(b,c){var d,e,f,g=[];for(b=this.renderFgSegsIntoContainers(b,this.helperContainerEls),d=0;d<b.length;d++)e=b[d],c&&c.col===e.col&&(f=c.el,e.el.css({left:f.css("left"),right:f.css("right"),"margin-left":f.css("margin-left"),"margin-right":f.css("margin-right")})),g.push(e.el[0]);return this.helperSegs=b,a(g)},unrenderHelperSegs:function(){this.unrenderNamedSegs("helperSegs")},renderBgSegs:function(a){return a=this.renderFillSegEls("bgEvent",a),this.updateSegVerticals(a),this.attachSegsByCol(this.groupSegsByCol(a),this.bgContainerEls),this.bgSegs=a,a},unrenderBgSegs:function(){this.unrenderNamedSegs("bgSegs")},renderHighlightSegs:function(a){a=this.renderFillSegEls("highlight",a),this.updateSegVerticals(a),this.attachSegsByCol(this.groupSegsByCol(a),this.highlightContainerEls),this.highlightSegs=a},unrenderHighlightSegs:function(){this.unrenderNamedSegs("highlightSegs")},renderBusinessSegs:function(a){a=this.renderFillSegEls("businessHours",a),this.updateSegVerticals(a),this.attachSegsByCol(this.groupSegsByCol(a),this.businessContainerEls),this.businessSegs=a},unrenderBusinessSegs:function(){this.unrenderNamedSegs("businessSegs")},groupSegsByCol:function(a){var b,c=[];for(b=0;b<this.colCnt;b++)c.push([]);for(b=0;b<a.length;b++)c[a[b].col].push(a[b]);return c},attachSegsByCol:function(a,b){var c,d,e;for(c=0;c<this.colCnt;c++)for(d=a[c],e=0;e<d.length;e++)b.eq(c).append(d[e].el)},unrenderNamedSegs:function(a){var b,c=this[a];if(c){for(b=0;b<c.length;b++)c[b].el.remove();this[a]=null}},renderFgSegsIntoContainers:function(a,b){var c,d;for(a=this.renderFgSegEls(a),c=this.groupSegsByCol(a),d=0;d<this.colCnt;d++)this.updateFgSegCoords(c[d]);return this.attachSegsByCol(c,b),a},fgSegHtml:function(a,b){var c,d,e,f=this.view,g=a.event,h=f.isEventDraggable(g),i=!b&&a.isStart&&f.isEventResizableFromStart(g),j=!b&&a.isEnd&&f.isEventResizableFromEnd(g),k=this.getSegClasses(a,h,i||j),l=ea(this.getSegSkinCss(a));return k.unshift("fc-time-grid-event","fc-v-event"),f.isMultiDayEvent(g)?(a.isStart||a.isEnd)&&(c=this.getEventTimeText(a),d=this.getEventTimeText(a,"LT"),e=this.getEventTimeText(a,null,!1)):(c=this.getEventTimeText(g),d=this.getEventTimeText(g,"LT"),e=this.getEventTimeText(g,null,!1)),'<a class="'+k.join(" ")+'"'+(g.url?' href="'+ca(g.url)+'"':"")+(l?' style="'+l+'"':"")+'><div class="fc-content">'+(c?'<div class="fc-time" data-start="'+ca(e)+'" data-full="'+ca(d)+'"><span>'+ca(c)+"</span></div>":"")+(g.title?'<div class="fc-title">'+ca(g.title)+"</div>":"")+'</div><div class="fc-bg"/>'+(j?'<div class="fc-resizer fc-end-resizer" />':"")+"</a>"},updateSegVerticals:function(a){this.computeSegVerticals(a),this.assignSegVerticals(a)},computeSegVerticals:function(a){var b,c;for(b=0;b<a.length;b++)c=a[b],c.top=this.computeDateTop(c.start,c.start),c.bottom=this.computeDateTop(c.end,c.start)},assignSegVerticals:function(a){var b,c;for(b=0;b<a.length;b++)c=a[b],c.el.css(this.generateSegVerticalCss(c))},generateSegVerticalCss:function(a){return{top:a.top,bottom:-a.bottom}},updateFgSegCoords:function(a){this.computeSegVerticals(a),this.computeFgSegHorizontals(a),this.assignSegVerticals(a),this.assignFgSegHorizontals(a)},computeFgSegHorizontals:function(a){var b,c,d;if(this.sortEventSegs(a),b=La(a),Ma(b),c=b[0]){for(d=0;d<c.length;d++)Na(c[d]);for(d=0;d<c.length;d++)this.computeFgSegForwardBack(c[d],0,0)}},computeFgSegForwardBack:function(a,b,c){var d,e=a.forwardSegs;if(void 0===a.forwardCoord)for(e.length?(this.sortForwardSegs(e),this.computeFgSegForwardBack(e[0],b+1,c),a.forwardCoord=e[0].backwardCoord):a.forwardCoord=1,a.backwardCoord=a.forwardCoord-(a.forwardCoord-c)/(b+1),d=0;d<e.length;d++)this.computeFgSegForwardBack(e[d],0,a.forwardCoord)},sortForwardSegs:function(a){a.sort(ia(this,"compareForwardSegs"))},compareForwardSegs:function(a,b){return b.forwardPressure-a.forwardPressure||(a.backwardCoord||0)-(b.backwardCoord||0)||this.compareEventSegs(a,b)},assignFgSegHorizontals:function(a){var b,c;for(b=0;b<a.length;b++)c=a[b],c.el.css(this.generateFgSegHorizontalCss(c)),c.bottom-c.top<30&&c.el.addClass("fc-short")},generateFgSegHorizontalCss:function(a){var b,c,d=this.view.opt("slotEventOverlap"),e=a.backwardCoord,f=a.forwardCoord,g=this.generateSegVerticalCss(a);return d&&(f=Math.min(1,e+2*(f-e))),this.isRTL?(b=1-f,c=e):(b=e,c=1-f),g.zIndex=a.level+1,g.left=100*b+"%",g.right=100*c+"%",d&&a.forwardPressure&&(g[this.isRTL?"marginLeft":"marginRight"]=20),g}});var xb=Wa.View=ya.extend(lb,mb,{type:null,name:null,title:null,calendar:null,options:null,el:null,displaying:null,isSkeletonRendered:!1,isEventsRendered:!1,start:null,end:null,intervalStart:null,intervalEnd:null,intervalDuration:null,intervalUnit:null,isRTL:!1,isSelected:!1,selectedEvent:null,eventOrderSpecs:null,widgetHeaderClass:null,widgetContentClass:null,highlightStateClass:null,nextDayThreshold:null,isHiddenDayHash:null,isNowIndicatorRendered:null,initialNowDate:null,initialNowQueriedMs:null,nowIndicatorTimeoutID:null,nowIndicatorIntervalID:null,constructor:function(a,c,d,e){this.calendar=a,this.type=this.name=c,this.options=d,this.intervalDuration=e||b.duration(1,"day"),this.nextDayThreshold=b.duration(this.opt("nextDayThreshold")),this.initThemingProps(),this.initHiddenDays(),this.isRTL=this.opt("isRTL"),this.eventOrderSpecs=G(this.opt("eventOrder")),this.initialize()},initialize:function(){},opt:function(a){return this.options[a]},trigger:function(a,b){var c=this.calendar;return c.trigger.apply(c,[a,b||this].concat(Array.prototype.slice.call(arguments,2),[this]))},setDate:function(a){this.setRange(this.computeRange(a))},setRange:function(b){a.extend(this,b),this.updateTitle()},computeRange:function(a){var b,c,d=O(this.intervalDuration),e=a.clone().startOf(d),f=e.clone().add(this.intervalDuration);return/year|month|week|day/.test(d)?(e.stripTime(),f.stripTime()):(e.hasTime()||(e=this.calendar.time(0)),f.hasTime()||(f=this.calendar.time(0))),b=e.clone(),b=this.skipHiddenDays(b),c=f.clone(),c=this.skipHiddenDays(c,-1,!0),{intervalUnit:d,intervalStart:e,intervalEnd:f,start:b,end:c}},computePrevDate:function(a){return this.massageCurrentDate(a.clone().startOf(this.intervalUnit).subtract(this.intervalDuration),-1)},computeNextDate:function(a){return this.massageCurrentDate(a.clone().startOf(this.intervalUnit).add(this.intervalDuration))},massageCurrentDate:function(a,b){return this.intervalDuration.as("days")<=1&&this.isHiddenDay(a)&&(a=this.skipHiddenDays(a,b),a.startOf("day")),a},updateTitle:function(){this.title=this.computeTitle()},computeTitle:function(){return this.formatRange({start:this.calendar.applyTimezone(this.intervalStart),end:this.calendar.applyTimezone(this.intervalEnd)},this.opt("titleFormat")||this.computeTitleFormat(),this.opt("titleRangeSeparator"))},computeTitleFormat:function(){return"year"==this.intervalUnit?"YYYY":"month"==this.intervalUnit?this.opt("monthYearFormat"):this.intervalDuration.as("days")>1?"ll":"LL"},formatRange:function(a,b,c){var d=a.end;return d.hasTime()||(d=d.clone().subtract(1)),ta(a.start,d,b,c,this.opt("isRTL"))},setElement:function(a){this.el=a,this.bindGlobalHandlers()},removeElement:function(){this.clear(),this.isSkeletonRendered&&(this.unrenderSkeleton(),this.isSkeletonRendered=!1),this.unbindGlobalHandlers(),this.el.remove()},display:function(a){var b=this,c=null;return this.displaying&&(c=this.queryScroll()),this.calendar.freezeContentHeight(),ka(this.clear(),function(){return b.displaying=ka(b.displayView(a),function(){b.forceScroll(b.computeInitialScroll(c)),b.calendar.unfreezeContentHeight(),b.triggerRender()})})},clear:function(){var b=this,c=this.displaying;return c?ka(c,function(){return b.displaying=null,b.clearEvents(),b.clearView()}):a.when()},displayView:function(a){this.isSkeletonRendered||(this.renderSkeleton(),this.isSkeletonRendered=!0),a&&this.setDate(a),this.render&&this.render(),this.renderDates(),this.updateSize(),this.renderBusinessHours(),this.startNowIndicator()},clearView:function(){this.unselect(),this.stopNowIndicator(),this.triggerUnrender(),this.unrenderBusinessHours(),this.unrenderDates(),this.destroy&&this.destroy()},renderSkeleton:function(){},unrenderSkeleton:function(){},renderDates:function(){},unrenderDates:function(){},triggerRender:function(){this.trigger("viewRender",this,this,this.el)},triggerUnrender:function(){this.trigger("viewDestroy",this,this,this.el)},bindGlobalHandlers:function(){this.listenTo(a(document),"mousedown",this.handleDocumentMousedown),this.listenTo(a(document),"touchstart",this.processUnselect)},unbindGlobalHandlers:function(){this.stopListeningTo(a(document))},initThemingProps:function(){var a=this.opt("theme")?"ui":"fc";this.widgetHeaderClass=a+"-widget-header",this.widgetContentClass=a+"-widget-content",this.highlightStateClass=a+"-state-highlight"},renderBusinessHours:function(){},unrenderBusinessHours:function(){},startNowIndicator:function(){var a,c,d,e=this;this.opt("nowIndicator")&&(a=this.getNowIndicatorUnit(),a&&(c=ia(this,"updateNowIndicator"),this.initialNowDate=this.calendar.getNow(),this.initialNowQueriedMs=+new Date,this.renderNowIndicator(this.initialNowDate),this.isNowIndicatorRendered=!0,d=this.initialNowDate.clone().startOf(a).add(1,a)-this.initialNowDate,this.nowIndicatorTimeoutID=setTimeout(function(){e.nowIndicatorTimeoutID=null,c(),d=+b.duration(1,a),d=Math.max(100,d),e.nowIndicatorIntervalID=setInterval(c,d)},d)))},updateNowIndicator:function(){this.isNowIndicatorRendered&&(this.unrenderNowIndicator(),this.renderNowIndicator(this.initialNowDate.clone().add(new Date-this.initialNowQueriedMs)))},stopNowIndicator:function(){this.isNowIndicatorRendered&&(this.nowIndicatorTimeoutID&&(clearTimeout(this.nowIndicatorTimeoutID),this.nowIndicatorTimeoutID=null),this.nowIndicatorIntervalID&&(clearTimeout(this.nowIndicatorIntervalID),this.nowIndicatorIntervalID=null),this.unrenderNowIndicator(),this.isNowIndicatorRendered=!1)},getNowIndicatorUnit:function(){},renderNowIndicator:function(a){},unrenderNowIndicator:function(){},updateSize:function(a){var b;a&&(b=this.queryScroll()),this.updateHeight(a),this.updateWidth(a),this.updateNowIndicator(),a&&this.setScroll(b)},updateWidth:function(a){},updateHeight:function(a){var b=this.calendar;this.setHeight(b.getSuggestedViewHeight(),b.isHeightAuto())},setHeight:function(a,b){},computeInitialScroll:function(a){return 0},queryScroll:function(){},setScroll:function(a){},forceScroll:function(a){var b=this;this.setScroll(a),setTimeout(function(){b.setScroll(a)},0)},displayEvents:function(a){var b=this.queryScroll();this.clearEvents(),this.renderEvents(a),this.isEventsRendered=!0,this.setScroll(b),this.triggerEventRender()},clearEvents:function(){var a;this.isEventsRendered&&(a=this.queryScroll(),this.triggerEventUnrender(),this.destroyEvents&&this.destroyEvents(),this.unrenderEvents(),this.setScroll(a),this.isEventsRendered=!1)},renderEvents:function(a){},unrenderEvents:function(){},triggerEventRender:function(){this.renderedEventSegEach(function(a){this.trigger("eventAfterRender",a.event,a.event,a.el)}),this.trigger("eventAfterAllRender")},triggerEventUnrender:function(){this.renderedEventSegEach(function(a){this.trigger("eventDestroy",a.event,a.event,a.el)})},resolveEventEl:function(b,c){var d=this.trigger("eventRender",b,b,c);return d===!1?c=null:d&&d!==!0&&(c=a(d)),c},showEvent:function(a){this.renderedEventSegEach(function(a){a.el.css("visibility","")},a)},hideEvent:function(a){this.renderedEventSegEach(function(a){a.el.css("visibility","hidden")},a)},renderedEventSegEach:function(a,b){var c,d=this.getEventSegs();for(c=0;c<d.length;c++)b&&d[c].event._id!==b._id||d[c].el&&a.call(this,d[c])},getEventSegs:function(){return[]},isEventDraggable:function(a){var b=a.source||{};return ba(a.startEditable,b.startEditable,this.opt("eventStartEditable"),a.editable,b.editable,this.opt("editable"))},reportEventDrop:function(a,b,c,d,e){var f=this.calendar,g=f.mutateEvent(a,b,c),h=function(){g.undo(),f.reportEventChange()};this.triggerEventDrop(a,g.dateDelta,h,d,e),f.reportEventChange()},triggerEventDrop:function(a,b,c,d,e){this.trigger("eventDrop",d[0],a,b,c,e,{})},reportExternalDrop:function(b,c,d,e,f){var g,h,i=b.eventProps;i&&(g=a.extend({},i,c),h=this.calendar.renderEvent(g,b.stick)[0]),this.triggerExternalDrop(h,c,d,e,f)},triggerExternalDrop:function(a,b,c,d,e){this.trigger("drop",c[0],b.start,d,e),a&&this.trigger("eventReceive",null,a)},renderDrag:function(a,b){},unrenderDrag:function(){},isEventResizableFromStart:function(a){return this.opt("eventResizableFromStart")&&this.isEventResizable(a)},isEventResizableFromEnd:function(a){return this.isEventResizable(a)},isEventResizable:function(a){var b=a.source||{};return ba(a.durationEditable,b.durationEditable,this.opt("eventDurationEditable"),a.editable,b.editable,this.opt("editable"))},reportEventResize:function(a,b,c,d,e){var f=this.calendar,g=f.mutateEvent(a,b,c),h=function(){g.undo(),
-f.reportEventChange()};this.triggerEventResize(a,g.durationDelta,h,d,e),f.reportEventChange()},triggerEventResize:function(a,b,c,d,e){this.trigger("eventResize",d[0],a,b,c,e,{})},select:function(a,b){this.unselect(b),this.renderSelection(a),this.reportSelection(a,b)},renderSelection:function(a){},reportSelection:function(a,b){this.isSelected=!0,this.triggerSelect(a,b)},triggerSelect:function(a,b){this.trigger("select",null,this.calendar.applyTimezone(a.start),this.calendar.applyTimezone(a.end),b)},unselect:function(a){this.isSelected&&(this.isSelected=!1,this.destroySelection&&this.destroySelection(),this.unrenderSelection(),this.trigger("unselect",null,a))},unrenderSelection:function(){},selectEvent:function(a){this.selectedEvent&&this.selectedEvent===a||(this.unselectEvent(),this.renderedEventSegEach(function(a){a.el.addClass("fc-selected")},a),this.selectedEvent=a)},unselectEvent:function(){this.selectedEvent&&(this.renderedEventSegEach(function(a){a.el.removeClass("fc-selected")},this.selectedEvent),this.selectedEvent=null)},isEventSelected:function(a){return this.selectedEvent&&this.selectedEvent._id===a._id},handleDocumentMousedown:function(a){u(a)&&this.processUnselect(a)},processUnselect:function(a){this.processRangeUnselect(a),this.processEventUnselect(a)},processRangeUnselect:function(b){var c;this.isSelected&&this.opt("unselectAuto")&&(c=this.opt("unselectCancel"),c&&a(b.target).closest(c).length||this.unselect(b))},processEventUnselect:function(b){this.selectedEvent&&(a(b.target).closest(".fc-selected").length||this.unselectEvent())},triggerDayClick:function(a,b,c){this.trigger("dayClick",b,this.calendar.applyTimezone(a.start),c)},initHiddenDays:function(){var b,c=this.opt("hiddenDays")||[],d=[],e=0;for(this.opt("weekends")===!1&&c.push(0,6),b=0;7>b;b++)(d[b]=-1!==a.inArray(b,c))||e++;if(!e)throw"invalid hiddenDays";this.isHiddenDayHash=d},isHiddenDay:function(a){return b.isMoment(a)&&(a=a.day()),this.isHiddenDayHash[a]},skipHiddenDays:function(a,b,c){var d=a.clone();for(b=b||1;this.isHiddenDayHash[(d.day()+(c?b:0)+7)%7];)d.add(b,"days");return d},computeDayRange:function(a){var b,c=a.start.clone().stripTime(),d=a.end,e=null;return d&&(e=d.clone().stripTime(),b=+d.time(),b&&b>=this.nextDayThreshold&&e.add(1,"days")),(!d||c>=e)&&(e=c.clone().add(1,"days")),{start:c,end:e}},isMultiDayEvent:function(a){var b=this.computeDayRange(a);return b.end.diff(b.start,"days")>1}}),yb=Wa.Scroller=ya.extend({el:null,scrollEl:null,overflowX:null,overflowY:null,constructor:function(a){a=a||{},this.overflowX=a.overflowX||a.overflow||"auto",this.overflowY=a.overflowY||a.overflow||"auto"},render:function(){this.el=this.renderEl(),this.applyOverflow()},renderEl:function(){return this.scrollEl=a('<div class="fc-scroller"></div>')},clear:function(){this.setHeight("auto"),this.applyOverflow()},destroy:function(){this.el.remove()},applyOverflow:function(){this.scrollEl.css({"overflow-x":this.overflowX,"overflow-y":this.overflowY})},lockOverflow:function(a){var b=this.overflowX,c=this.overflowY;a=a||this.getScrollbarWidths(),"auto"===b&&(b=a.top||a.bottom||this.scrollEl[0].scrollWidth-1>this.scrollEl[0].clientWidth?"scroll":"hidden"),"auto"===c&&(c=a.left||a.right||this.scrollEl[0].scrollHeight-1>this.scrollEl[0].clientHeight?"scroll":"hidden"),this.scrollEl.css({"overflow-x":b,"overflow-y":c})},setHeight:function(a){this.scrollEl.height(a)},getScrollTop:function(){return this.scrollEl.scrollTop()},setScrollTop:function(a){this.scrollEl.scrollTop(a)},getClientWidth:function(){return this.scrollEl[0].clientWidth},getClientHeight:function(){return this.scrollEl[0].clientHeight},getScrollbarWidths:function(){return q(this.scrollEl)}}),zb=Wa.Calendar=ya.extend({dirDefaults:null,langDefaults:null,overrides:null,options:null,viewSpecCache:null,view:null,header:null,loadingLevel:0,constructor:Qa,initialize:function(){},initOptions:function(a){var b,e,f,g;a=d(a),b=a.lang,e=Ab[b],e||(b=zb.defaults.lang,e=Ab[b]||{}),f=ba(a.isRTL,e.isRTL,zb.defaults.isRTL),g=f?zb.rtlDefaults:{},this.dirDefaults=g,this.langDefaults=e,this.overrides=a,this.options=c([zb.defaults,g,e,a]),Ra(this.options),this.viewSpecCache={}},getViewSpec:function(a){var b=this.viewSpecCache;return b[a]||(b[a]=this.buildViewSpec(a))},getUnitViewSpec:function(b){var c,d,e;if(-1!=a.inArray(b,_a))for(c=this.header.getViewsWithButtons(),a.each(Wa.views,function(a){c.push(a)}),d=0;d<c.length;d++)if(e=this.getViewSpec(c[d]),e&&e.singleUnit==b)return e},buildViewSpec:function(a){for(var d,e,f,g,h=this.overrides.views||{},i=[],j=[],k=[],l=a;l;)d=Xa[l],e=h[l],l=null,"function"==typeof d&&(d={"class":d}),d&&(i.unshift(d),j.unshift(d.defaults||{}),f=f||d.duration,l=l||d.type),e&&(k.unshift(e),f=f||e.duration,l=l||e.type);return d=W(i),d.type=a,d["class"]?(f&&(f=b.duration(f),f.valueOf()&&(d.duration=f,g=O(f),1===f.as(g)&&(d.singleUnit=g,k.unshift(h[g]||{})))),d.defaults=c(j),d.overrides=c(k),this.buildViewSpecOptions(d),this.buildViewSpecButtonText(d,a),d):!1},buildViewSpecOptions:function(a){a.options=c([zb.defaults,a.defaults,this.dirDefaults,this.langDefaults,this.overrides,a.overrides]),Ra(a.options)},buildViewSpecButtonText:function(a,b){function c(c){var d=c.buttonText||{};return d[b]||(a.singleUnit?d[a.singleUnit]:null)}a.buttonTextOverride=c(this.overrides)||a.overrides.buttonText,a.buttonTextDefault=c(this.langDefaults)||c(this.dirDefaults)||a.defaults.buttonText||c(zb.defaults)||(a.duration?this.humanizeDuration(a.duration):null)||b},instantiateView:function(a){var b=this.getViewSpec(a);return new b["class"](this,a,b.options,b.duration)},isValidViewType:function(a){return Boolean(this.getViewSpec(a))},pushLoading:function(){this.loadingLevel++||this.trigger("loading",null,!0,this.view)},popLoading:function(){--this.loadingLevel||this.trigger("loading",null,!1,this.view)},buildSelectSpan:function(a,b){var c,d=this.moment(a).stripZone();return c=b?this.moment(b).stripZone():d.hasTime()?d.clone().add(this.defaultTimedEventDuration):d.clone().add(this.defaultAllDayEventDuration),{start:d,end:c}}});zb.mixin(lb),zb.defaults={titleRangeSeparator:" – ",monthYearFormat:"MMMM YYYY",defaultTimedEventDuration:"02:00:00",defaultAllDayEventDuration:{days:1},forceEventDuration:!1,nextDayThreshold:"09:00:00",defaultView:"month",aspectRatio:1.35,header:{left:"title",center:"",right:"today prev,next"},weekends:!0,weekNumbers:!1,weekNumberTitle:"W",weekNumberCalculation:"local",scrollTime:"06:00:00",lazyFetching:!0,startParam:"start",endParam:"end",timezoneParam:"timezone",timezone:!1,isRTL:!1,buttonText:{prev:"prev",next:"next",prevYear:"prev year",nextYear:"next year",year:"year",today:"today",month:"month",week:"week",day:"day"},buttonIcons:{prev:"left-single-arrow",next:"right-single-arrow",prevYear:"left-double-arrow",nextYear:"right-double-arrow"},theme:!1,themeButtonIcons:{prev:"circle-triangle-w",next:"circle-triangle-e",prevYear:"seek-prev",nextYear:"seek-next"},dragOpacity:.75,dragRevertDuration:500,dragScroll:!0,unselectAuto:!0,dropAccept:"*",eventOrder:"title",eventLimit:!1,eventLimitText:"more",eventLimitClick:"popover",dayPopoverFormat:"LL",handleWindowResize:!0,windowResizeDelay:200,longPressDelay:1e3},zb.englishDefaults={dayPopoverFormat:"dddd, MMMM D"},zb.rtlDefaults={header:{left:"next,prev today",center:"",right:"title"},buttonIcons:{prev:"right-single-arrow",next:"left-single-arrow",prevYear:"right-double-arrow",nextYear:"left-double-arrow"},themeButtonIcons:{prev:"circle-triangle-e",next:"circle-triangle-w",nextYear:"seek-prev",prevYear:"seek-next"}};var Ab=Wa.langs={};Wa.datepickerLang=function(b,c,d){var e=Ab[b]||(Ab[b]={});e.isRTL=d.isRTL,e.weekNumberTitle=d.weekHeader,a.each(Bb,function(a,b){e[a]=b(d)}),a.datepicker&&(a.datepicker.regional[c]=a.datepicker.regional[b]=d,a.datepicker.regional.en=a.datepicker.regional[""],a.datepicker.setDefaults(d))},Wa.lang=function(b,d){var e,f;e=Ab[b]||(Ab[b]={}),d&&(e=Ab[b]=c([e,d])),f=Sa(b),a.each(Cb,function(a,b){null==e[a]&&(e[a]=b(f,e))}),zb.defaults.lang=b};var Bb={buttonText:function(a){return{prev:da(a.prevText),next:da(a.nextText),today:da(a.currentText)}},monthYearFormat:function(a){return a.showMonthAfterYear?"YYYY["+a.yearSuffix+"] MMMM":"MMMM YYYY["+a.yearSuffix+"]"}},Cb={dayOfMonthFormat:function(a,b){var c=a.longDateFormat("l");return c=c.replace(/^Y+[^\w\s]*|[^\w\s]*Y+$/g,""),b.isRTL?c+=" ddd":c="ddd "+c,c},mediumTimeFormat:function(a){return a.longDateFormat("LT").replace(/\s*a$/i,"a")},smallTimeFormat:function(a){return a.longDateFormat("LT").replace(":mm","(:mm)").replace(/(\Wmm)$/,"($1)").replace(/\s*a$/i,"a")},extraSmallTimeFormat:function(a){return a.longDateFormat("LT").replace(":mm","(:mm)").replace(/(\Wmm)$/,"($1)").replace(/\s*a$/i,"t")},hourFormat:function(a){return a.longDateFormat("LT").replace(":mm","").replace(/(\Wmm)$/,"").replace(/\s*a$/i,"a")},noMeridiemTimeFormat:function(a){return a.longDateFormat("LT").replace(/\s*a$/i,"")}},Db={smallDayDateFormat:function(a){return a.isRTL?"D dd":"dd D"},weekFormat:function(a){return a.isRTL?"w[ "+a.weekNumberTitle+"]":"["+a.weekNumberTitle+" ]w"},smallWeekFormat:function(a){return a.isRTL?"w["+a.weekNumberTitle+"]":"["+a.weekNumberTitle+"]w"}};Wa.lang("en",zb.englishDefaults),Wa.sourceNormalizers=[],Wa.sourceFetchers=[];var Eb={dataType:"json",cache:!1},Fb=1;zb.prototype.normalizeEvent=function(a){},zb.prototype.getPeerEvents=function(a,b){var c,d,e=this.getEventCache(),f=[];for(c=0;c<e.length;c++)d=e[c],b&&b._id===d._id||f.push(d);return f};var Gb=Wa.BasicView=xb.extend({scroller:null,dayGridClass:vb,dayGrid:null,dayNumbersVisible:!1,weekNumbersVisible:!1,weekNumberWidth:null,headContainerEl:null,headRowEl:null,initialize:function(){this.dayGrid=this.instantiateDayGrid(),this.scroller=new yb({overflowX:"hidden",overflowY:"auto"})},instantiateDayGrid:function(){var a=this.dayGridClass.extend(Hb);return new a(this)},setRange:function(a){xb.prototype.setRange.call(this,a),this.dayGrid.breakOnWeeks=/year|month|week/.test(this.intervalUnit),this.dayGrid.setRange(a)},computeRange:function(a){var b=xb.prototype.computeRange.call(this,a);return/year|month/.test(b.intervalUnit)&&(b.start.startOf("week"),b.start=this.skipHiddenDays(b.start),b.end.weekday()&&(b.end.add(1,"week").startOf("week"),b.end=this.skipHiddenDays(b.end,-1,!0))),b},renderDates:function(){this.dayNumbersVisible=this.dayGrid.rowCnt>1,this.weekNumbersVisible=this.opt("weekNumbers"),this.dayGrid.numbersVisible=this.dayNumbersVisible||this.weekNumbersVisible,this.el.addClass("fc-basic-view").html(this.renderSkeletonHtml()),this.renderHead(),this.scroller.render();var b=this.scroller.el.addClass("fc-day-grid-container"),c=a('<div class="fc-day-grid" />').appendTo(b);this.el.find(".fc-body > tr > td").append(b),this.dayGrid.setElement(c),this.dayGrid.renderDates(this.hasRigidRows())},renderHead:function(){this.headContainerEl=this.el.find(".fc-head-container").html(this.dayGrid.renderHeadHtml()),this.headRowEl=this.headContainerEl.find(".fc-row")},unrenderDates:function(){this.dayGrid.unrenderDates(),this.dayGrid.removeElement(),this.scroller.destroy()},renderBusinessHours:function(){this.dayGrid.renderBusinessHours()},renderSkeletonHtml:function(){return'<table><thead class="fc-head"><tr><td class="fc-head-container '+this.widgetHeaderClass+'"></td></tr></thead><tbody class="fc-body"><tr><td class="'+this.widgetContentClass+'"></td></tr></tbody></table>'},weekNumberStyleAttr:function(){return null!==this.weekNumberWidth?'style="width:'+this.weekNumberWidth+'px"':""},hasRigidRows:function(){var a=this.opt("eventLimit");return a&&"number"!=typeof a},updateWidth:function(){this.weekNumbersVisible&&(this.weekNumberWidth=k(this.el.find(".fc-week-number")))},setHeight:function(a,b){var c,d,g=this.opt("eventLimit");this.scroller.clear(),f(this.headRowEl),this.dayGrid.removeSegPopover(),g&&"number"==typeof g&&this.dayGrid.limitRows(g),c=this.computeScrollerHeight(a),this.setGridHeight(c,b),g&&"number"!=typeof g&&this.dayGrid.limitRows(g),b||(this.scroller.setHeight(c),d=this.scroller.getScrollbarWidths(),(d.left||d.right)&&(e(this.headRowEl,d),c=this.computeScrollerHeight(a),this.scroller.setHeight(c)),this.scroller.lockOverflow(d))},computeScrollerHeight:function(a){return a-l(this.el,this.scroller.el)},setGridHeight:function(a,b){b?j(this.dayGrid.rowEls):i(this.dayGrid.rowEls,a,!0)},queryScroll:function(){return this.scroller.getScrollTop()},setScroll:function(a){this.scroller.setScrollTop(a)},prepareHits:function(){this.dayGrid.prepareHits()},releaseHits:function(){this.dayGrid.releaseHits()},queryHit:function(a,b){return this.dayGrid.queryHit(a,b)},getHitSpan:function(a){return this.dayGrid.getHitSpan(a)},getHitEl:function(a){return this.dayGrid.getHitEl(a)},renderEvents:function(a){this.dayGrid.renderEvents(a),this.updateHeight()},getEventSegs:function(){return this.dayGrid.getEventSegs()},unrenderEvents:function(){this.dayGrid.unrenderEvents()},renderDrag:function(a,b){return this.dayGrid.renderDrag(a,b)},unrenderDrag:function(){this.dayGrid.unrenderDrag()},renderSelection:function(a){this.dayGrid.renderSelection(a)},unrenderSelection:function(){this.dayGrid.unrenderSelection()}}),Hb={renderHeadIntroHtml:function(){var a=this.view;return a.weekNumbersVisible?'<th class="fc-week-number '+a.widgetHeaderClass+'" '+a.weekNumberStyleAttr()+"><span>"+ca(a.opt("weekNumberTitle"))+"</span></th>":""},renderNumberIntroHtml:function(a){var b=this.view;return b.weekNumbersVisible?'<td class="fc-week-number" '+b.weekNumberStyleAttr()+"><span>"+this.getCellDate(a,0).format("w")+"</span></td>":""},renderBgIntroHtml:function(){var a=this.view;return a.weekNumbersVisible?'<td class="fc-week-number '+a.widgetContentClass+'" '+a.weekNumberStyleAttr()+"></td>":""},renderIntroHtml:function(){var a=this.view;return a.weekNumbersVisible?'<td class="fc-week-number" '+a.weekNumberStyleAttr()+"></td>":""}},Ib=Wa.MonthView=Gb.extend({computeRange:function(a){var b,c=Gb.prototype.computeRange.call(this,a);return this.isFixedWeeks()&&(b=Math.ceil(c.end.diff(c.start,"weeks",!0)),c.end.add(6-b,"weeks")),c},setGridHeight:function(a,b){b=b||"variable"===this.opt("weekMode"),b&&(a*=this.rowCnt/6),i(this.dayGrid.rowEls,a,!b)},isFixedWeeks:function(){var a=this.opt("weekMode");return a?"fixed"===a:this.opt("fixedWeekCount")}});Xa.basic={"class":Gb},Xa.basicDay={type:"basic",duration:{days:1}},Xa.basicWeek={type:"basic",duration:{weeks:1}},Xa.month={"class":Ib,duration:{months:1},defaults:{fixedWeekCount:!0}};var Jb=Wa.AgendaView=xb.extend({scroller:null,timeGridClass:wb,timeGrid:null,dayGridClass:vb,dayGrid:null,axisWidth:null,headContainerEl:null,noScrollRowEls:null,bottomRuleEl:null,initialize:function(){this.timeGrid=this.instantiateTimeGrid(),this.opt("allDaySlot")&&(this.dayGrid=this.instantiateDayGrid()),this.scroller=new yb({overflowX:"hidden",overflowY:"auto"})},instantiateTimeGrid:function(){var a=this.timeGridClass.extend(Kb);return new a(this)},instantiateDayGrid:function(){var a=this.dayGridClass.extend(Lb);return new a(this)},setRange:function(a){xb.prototype.setRange.call(this,a),this.timeGrid.setRange(a),this.dayGrid&&this.dayGrid.setRange(a)},renderDates:function(){this.el.addClass("fc-agenda-view").html(this.renderSkeletonHtml()),this.renderHead(),this.scroller.render();var b=this.scroller.el.addClass("fc-time-grid-container"),c=a('<div class="fc-time-grid" />').appendTo(b);this.el.find(".fc-body > tr > td").append(b),this.timeGrid.setElement(c),this.timeGrid.renderDates(),this.bottomRuleEl=a('<hr class="fc-divider '+this.widgetHeaderClass+'"/>').appendTo(this.timeGrid.el),this.dayGrid&&(this.dayGrid.setElement(this.el.find(".fc-day-grid")),this.dayGrid.renderDates(),this.dayGrid.bottomCoordPadding=this.dayGrid.el.next("hr").outerHeight()),this.noScrollRowEls=this.el.find(".fc-row:not(.fc-scroller *)")},renderHead:function(){this.headContainerEl=this.el.find(".fc-head-container").html(this.timeGrid.renderHeadHtml())},unrenderDates:function(){this.timeGrid.unrenderDates(),this.timeGrid.removeElement(),this.dayGrid&&(this.dayGrid.unrenderDates(),this.dayGrid.removeElement()),this.scroller.destroy()},renderSkeletonHtml:function(){return'<table><thead class="fc-head"><tr><td class="fc-head-container '+this.widgetHeaderClass+'"></td></tr></thead><tbody class="fc-body"><tr><td class="'+this.widgetContentClass+'">'+(this.dayGrid?'<div class="fc-day-grid"/><hr class="fc-divider '+this.widgetHeaderClass+'"/>':"")+"</td></tr></tbody></table>"},axisStyleAttr:function(){return null!==this.axisWidth?'style="width:'+this.axisWidth+'px"':""},renderBusinessHours:function(){this.timeGrid.renderBusinessHours(),this.dayGrid&&this.dayGrid.renderBusinessHours()},unrenderBusinessHours:function(){this.timeGrid.unrenderBusinessHours(),this.dayGrid&&this.dayGrid.unrenderBusinessHours()},getNowIndicatorUnit:function(){return this.timeGrid.getNowIndicatorUnit()},renderNowIndicator:function(a){this.timeGrid.renderNowIndicator(a)},unrenderNowIndicator:function(){this.timeGrid.unrenderNowIndicator()},updateSize:function(a){this.timeGrid.updateSize(a),xb.prototype.updateSize.call(this,a)},updateWidth:function(){this.axisWidth=k(this.el.find(".fc-axis"))},setHeight:function(a,b){var c,d,g;this.bottomRuleEl.hide(),this.scroller.clear(),f(this.noScrollRowEls),this.dayGrid&&(this.dayGrid.removeSegPopover(),c=this.opt("eventLimit"),c&&"number"!=typeof c&&(c=Mb),c&&this.dayGrid.limitRows(c)),b||(d=this.computeScrollerHeight(a),this.scroller.setHeight(d),g=this.scroller.getScrollbarWidths(),(g.left||g.right)&&(e(this.noScrollRowEls,g),d=this.computeScrollerHeight(a),this.scroller.setHeight(d)),this.scroller.lockOverflow(g),this.timeGrid.getTotalSlatHeight()<d&&this.bottomRuleEl.show())},computeScrollerHeight:function(a){return a-l(this.el,this.scroller.el)},computeInitialScroll:function(){var a=b.duration(this.opt("scrollTime")),c=this.timeGrid.computeTimeTop(a);return c=Math.ceil(c),c&&c++,c},queryScroll:function(){return this.scroller.getScrollTop()},setScroll:function(a){this.scroller.setScrollTop(a)},prepareHits:function(){this.timeGrid.prepareHits(),this.dayGrid&&this.dayGrid.prepareHits()},releaseHits:function(){this.timeGrid.releaseHits(),this.dayGrid&&this.dayGrid.releaseHits()},queryHit:function(a,b){var c=this.timeGrid.queryHit(a,b);return!c&&this.dayGrid&&(c=this.dayGrid.queryHit(a,b)),c},getHitSpan:function(a){return a.component.getHitSpan(a)},getHitEl:function(a){return a.component.getHitEl(a)},renderEvents:function(a){var b,c,d=[],e=[],f=[];for(c=0;c<a.length;c++)a[c].allDay?d.push(a[c]):e.push(a[c]);b=this.timeGrid.renderEvents(e),this.dayGrid&&(f=this.dayGrid.renderEvents(d)),this.updateHeight()},getEventSegs:function(){return this.timeGrid.getEventSegs().concat(this.dayGrid?this.dayGrid.getEventSegs():[])},unrenderEvents:function(){this.timeGrid.unrenderEvents(),this.dayGrid&&this.dayGrid.unrenderEvents()},renderDrag:function(a,b){return a.start.hasTime()?this.timeGrid.renderDrag(a,b):this.dayGrid?this.dayGrid.renderDrag(a,b):void 0},unrenderDrag:function(){this.timeGrid.unrenderDrag(),this.dayGrid&&this.dayGrid.unrenderDrag()},renderSelection:function(a){a.start.hasTime()||a.end.hasTime()?this.timeGrid.renderSelection(a):this.dayGrid&&this.dayGrid.renderSelection(a)},unrenderSelection:function(){this.timeGrid.unrenderSelection(),this.dayGrid&&this.dayGrid.unrenderSelection()}}),Kb={renderHeadIntroHtml:function(){var a,b=this.view;return b.opt("weekNumbers")?(a=this.start.format(b.opt("smallWeekFormat")),'<th class="fc-axis fc-week-number '+b.widgetHeaderClass+'" '+b.axisStyleAttr()+"><span>"+ca(a)+"</span></th>"):'<th class="fc-axis '+b.widgetHeaderClass+'" '+b.axisStyleAttr()+"></th>"},renderBgIntroHtml:function(){var a=this.view;return'<td class="fc-axis '+a.widgetContentClass+'" '+a.axisStyleAttr()+"></td>"},renderIntroHtml:function(){var a=this.view;return'<td class="fc-axis" '+a.axisStyleAttr()+"></td>"}},Lb={renderBgIntroHtml:function(){var a=this.view;return'<td class="fc-axis '+a.widgetContentClass+'" '+a.axisStyleAttr()+"><span>"+(a.opt("allDayHtml")||ca(a.opt("allDayText")))+"</span></td>"},renderIntroHtml:function(){var a=this.view;return'<td class="fc-axis" '+a.axisStyleAttr()+"></td>"}},Mb=5,Nb=[{hours:1},{minutes:30},{minutes:15},{seconds:30},{seconds:15}];return Xa.agenda={"class":Jb,defaults:{allDaySlot:!0,allDayText:"all-day",slotDuration:"00:30:00",minTime:"00:00:00",maxTime:"24:00:00",slotEventOverlap:!0}},Xa.agendaDay={type:"agenda",duration:{days:1}},Xa.agendaWeek={type:"agenda",duration:{weeks:1}},Wa}); \ No newline at end of file
+!function(t){"function"==typeof define&&define.amd?define(["jquery","moment"],t):"object"==typeof exports?module.exports=t(require("jquery"),require("moment")):t(jQuery,moment)}(function(t,e){function n(t){return q(t,qt)}function i(t,e){e.left&&t.css({"border-left-width":1,"margin-left":e.left-1}),e.right&&t.css({"border-right-width":1,"margin-right":e.right-1})}function r(t){t.css({"margin-left":"","margin-right":"","border-left-width":"","border-right-width":""})}function s(){t("body").addClass("fc-not-allowed")}function o(){t("body").removeClass("fc-not-allowed")}function l(e,n,i){var r=Math.floor(n/e.length),s=Math.floor(n-r*(e.length-1)),o=[],l=[],u=[],c=0;a(e),e.each(function(n,i){var a=n===e.length-1?s:r,d=t(i).outerHeight(!0);d<a?(o.push(i),l.push(d),u.push(t(i).height())):c+=d}),i&&(n-=c,r=Math.floor(n/o.length),s=Math.floor(n-r*(o.length-1))),t(o).each(function(e,n){var i=e===o.length-1?s:r,a=l[e],c=u[e],d=i-(a-c);a<i&&t(n).height(d)})}function a(t){t.height("")}function u(e){var n=0;return e.find("> *").each(function(e,i){var r=t(i).outerWidth();r>n&&(n=r)}),n++,e.width(n),n}function c(t,e){var n,i=t.add(e);return i.css({position:"relative",left:-1}),n=t.outerHeight()-e.outerHeight(),i.css({position:"",left:""}),n}function d(e){var n=e.css("position"),i=e.parents().filter(function(){var e=t(this);return/(auto|scroll)/.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==n&&i.length?i:t(e[0].ownerDocument||document)}function h(t,e){var n=t.offset(),i=n.left-(e?e.left:0),r=n.top-(e?e.top:0);return{left:i,right:i+t.outerWidth(),top:r,bottom:r+t.outerHeight()}}function f(t,e){var n=t.offset(),i=p(t),r=n.left+y(t,"border-left-width")+i.left-(e?e.left:0),s=n.top+y(t,"border-top-width")+i.top-(e?e.top:0);return{left:r,right:r+t[0].clientWidth,top:s,bottom:s+t[0].clientHeight}}function g(t,e){var n=t.offset(),i=n.left+y(t,"border-left-width")+y(t,"padding-left")-(e?e.left:0),r=n.top+y(t,"border-top-width")+y(t,"padding-top")-(e?e.top:0);return{left:i,right:i+t.width(),top:r,bottom:r+t.height()}}function p(t){var e=t.innerWidth()-t[0].clientWidth,n={left:0,right:0,top:0,bottom:t.innerHeight()-t[0].clientHeight};return v()&&"rtl"==t.css("direction")?n.left=e:n.right=e,n}function v(){return null===Zt&&(Zt=m()),Zt}function m(){var e=t("<div><div/></div>").css({position:"absolute",top:-1e3,left:0,border:0,padding:0,overflow:"scroll",direction:"rtl"}).appendTo("body"),n=e.children(),i=n.offset().left>e.offset().left;return e.remove(),i}function y(t,e){return parseFloat(t.css(e))||0}function S(t){return 1==t.which&&!t.ctrlKey}function w(t){if(void 0!==t.pageX)return t.pageX;var e=t.originalEvent.touches;return e?e[0].pageX:void 0}function E(t){if(void 0!==t.pageY)return t.pageY;var e=t.originalEvent.touches;return e?e[0].pageY:void 0}function b(t){return/^touch/.test(t.type)}function D(t){t.addClass("fc-unselectable").on("selectstart",C)}function C(t){t.preventDefault()}function H(t){return!!window.addEventListener&&(window.addEventListener("scroll",t,!0),!0)}function T(t){return!!window.removeEventListener&&(window.removeEventListener("scroll",t,!0),!0)}function x(t,e){var n={left:Math.max(t.left,e.left),right:Math.min(t.right,e.right),top:Math.max(t.top,e.top),bottom:Math.min(t.bottom,e.bottom)};return n.left<n.right&&n.top<n.bottom&&n}function R(t,e){return{left:Math.min(Math.max(t.left,e.left),e.right),top:Math.min(Math.max(t.top,e.top),e.bottom)}}function I(t){return{left:(t.left+t.right)/2,top:(t.top+t.bottom)/2}}function k(t,e){return{left:t.left-e.left,top:t.top-e.top}}function L(e){var n,i,r=[],s=[];for("string"==typeof e?s=e.split(/\s*,\s*/):"function"==typeof e?s=[e]:t.isArray(e)&&(s=e),n=0;n<s.length;n++)i=s[n],"string"==typeof i?r.push("-"==i.charAt(0)?{field:i.substring(1),order:-1}:{field:i,order:1}):"function"==typeof i&&r.push({func:i});return r}function M(t,e,n){var i,r;for(i=0;i<n.length;i++)if(r=z(t,e,n[i]))return r;return 0}function z(t,e,n){return n.func?n.func(t,e):B(t[n.field],e[n.field])*(n.order||1)}function B(e,n){return e||n?null==n?-1:null==e?1:"string"===t.type(e)||"string"===t.type(n)?String(e).localeCompare(String(n)):e-n:0}function F(t,e){var n,i,r,s,o=t.start,l=t.end,a=e.start,u=e.end;if(l>a&&o<u)return o>=a?(n=o.clone(),r=!0):(n=a.clone(),r=!1),l<=u?(i=l.clone(),s=!0):(i=u.clone(),s=!1),{start:n,end:i,isStart:r,isEnd:s}}function N(t,n){return e.duration({days:t.clone().stripTime().diff(n.clone().stripTime(),"days"),ms:t.time()-n.time()})}function G(t,n){return e.duration({days:t.clone().stripTime().diff(n.clone().stripTime(),"days")})}function O(t,n,i){return e.duration(Math.round(t.diff(n,i,!0)),i)}function A(t,e){var n,i,r;for(n=0;n<Xt.length&&(i=Xt[n],r=V(i,t,e),!(r>=1&&ot(r)));n++);return i}function V(t,n,i){return null!=i?i.diff(n,t,!0):e.isDuration(n)?n.as(t):n.end.diff(n.start,t,!0)}function P(t,e,n){var i;return W(n)?(e-t)/n:(i=n.asMonths(),Math.abs(i)>=1&&ot(i)?e.diff(t,"months",!0)/i:e.diff(t,"days",!0)/n.asDays())}function _(t,e){var n,i;return W(t)||W(e)?t/e:(n=t.asMonths(),i=e.asMonths(),Math.abs(n)>=1&&ot(n)&&Math.abs(i)>=1&&ot(i)?n/i:t.asDays()/e.asDays())}function Y(t,n){var i;return W(t)?e.duration(t*n):(i=t.asMonths(),Math.abs(i)>=1&&ot(i)?e.duration({months:i*n}):e.duration({days:t.asDays()*n}))}function W(t){return Boolean(t.hours()||t.minutes()||t.seconds()||t.milliseconds())}function j(t){return"[object Date]"===Object.prototype.toString.call(t)||t instanceof Date}function U(t){return/^\d+\:\d+(?:\:\d+\.?(?:\d{3})?)?$/.test(t)}function q(t,e){var n,i,r,s,o,l,a={};if(e)for(n=0;n<e.length;n++){for(i=e[n],r=[],s=t.length-1;s>=0;s--)if(o=t[s][i],"object"==typeof o)r.unshift(o);else if(void 0!==o){a[i]=o;break}r.length&&(a[i]=q(r))}for(n=t.length-1;n>=0;n--){l=t[n];for(i in l)i in a||(a[i]=l[i])}return a}function Z(t){var e=function(){};return e.prototype=t,new e}function $(t,e){for(var n in t)X(t,n)&&(e[n]=t[n])}function X(t,e){return Kt.call(t,e)}function K(e){return/undefined|null|boolean|number|string/.test(t.type(e))}function Q(e,n,i){if(t.isFunction(e)&&(e=[e]),e){var r,s;for(r=0;r<e.length;r++)s=e[r].apply(n,i)||s;return s}}function J(){for(var t=0;t<arguments.length;t++)if(void 0!==arguments[t])return arguments[t]}function tt(t){return(t+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#039;").replace(/"/g,"&quot;").replace(/\n/g,"<br />")}function et(t){return t.replace(/&.*?;/g,"")}function nt(e){var n=[];return t.each(e,function(t,e){null!=e&&n.push(t+":"+e)}),n.join(";")}function it(e){var n=[];return t.each(e,function(t,e){null!=e&&n.push(t+'="'+tt(e)+'"')}),n.join(" ")}function rt(t){return t.charAt(0).toUpperCase()+t.slice(1)}function st(t,e){return t-e}function ot(t){return t%1===0}function lt(t,e){var n=t[e];return function(){return n.apply(t,arguments)}}function at(t,e,n){var i,r,s,o,l,a=function(){var u=+new Date-o;u<e?i=setTimeout(a,e-u):(i=null,n||(l=t.apply(s,r),s=r=null))};return function(){s=this,r=arguments,o=+new Date;var u=n&&!i;return i||(i=setTimeout(a,e)),u&&(l=t.apply(s,r),s=r=null),l}}function ut(e,n){return e&&e.then&&"resolved"!==e.state()?n?e.then(n):void 0:t.when(n())}function ct(n,i,r){var s,o,l,a,u=n[0],c=1==n.length&&"string"==typeof u;return e.isMoment(u)||j(u)||void 0===u?a=e.apply(null,n):(s=!1,o=!1,c?Qt.test(u)?(u+="-01",n=[u],s=!0,o=!0):(l=Jt.exec(u))&&(s=!l[5],o=!0):t.isArray(u)&&(o=!0),a=i||s?e.utc.apply(e,n):e.apply(null,n),s?(a._ambigTime=!0,a._ambigZone=!0):r&&(o?a._ambigZone=!0:c&&a.utcOffset(u))),a._fullCalendar=!0,a}function dt(t,e){return ee.format.call(t,e)}function ht(t,e){return ft(t,yt(e))}function ft(t,e){var n,i="";for(n=0;n<e.length;n++)i+=gt(t,e[n]);return i}function gt(t,e){var n,i;return"string"==typeof e?e:(n=e.token)?ie[n]?ie[n](t):dt(t,n):e.maybe&&(i=ft(t,e.maybe),i.match(/[1-9]/))?i:""}function pt(t,e,n,i,r){var s;return t=jt.moment.parseZone(t),e=jt.moment.parseZone(e),s=t.localeData(),n=s.longDateFormat(n)||n,i=i||" - ",vt(t,e,yt(n),i,r)}function vt(t,e,n,i,r){var s,o,l,a,u=t.clone().stripZone(),c=e.clone().stripZone(),d="",h="",f="",g="",p="";for(o=0;o<n.length&&(s=mt(t,e,u,c,n[o]),s!==!1);o++)d+=s;for(l=n.length-1;l>o&&(s=mt(t,e,u,c,n[l]),s!==!1);l--)h=s+h;for(a=o;a<=l;a++)f+=gt(t,n[a]),g+=gt(e,n[a]);return(f||g)&&(p=r?g+i+f:f+i+g),d+p+h}function mt(t,e,n,i,r){var s,o;return"string"==typeof r?r:!!((s=r.token)&&(o=re[s.charAt(0)],o&&n.isSame(i,o)))&&dt(t,s)}function yt(t){return t in se?se[t]:se[t]=St(t)}function St(t){for(var e,n=[],i=/\[([^\]]*)\]|\(([^\)]*)\)|(LTS|LT|(\w)\4*o?)|([^\w\[\(]+)/g;e=i.exec(t);)e[1]?n.push(e[1]):e[2]?n.push({maybe:St(e[2])}):e[3]?n.push({token:e[3]}):e[5]&&n.push(e[5]);return n}function wt(){}function Et(t,e){var n;return X(e,"constructor")&&(n=e.constructor),"function"!=typeof n&&(n=e.constructor=function(){t.apply(this,arguments)}),n.prototype=Z(t.prototype),$(e,n.prototype),$(t,n),n}function bt(t,e){$(e,t.prototype)}function Dt(t,e){return!t&&!e||!(!t||!e)&&(t.component===e.component&&Ct(t,e)&&Ct(e,t))}function Ct(t,e){for(var n in t)if(!/^(component|left|right|top|bottom)$/.test(n)&&t[n]!==e[n])return!1;return!0}function Ht(t){return{start:t.start.clone(),end:t.end?t.end.clone():null,allDay:t.allDay}}function Tt(t){var e=Rt(t);return"background"===e||"inverse-background"===e}function xt(t){return"inverse-background"===Rt(t)}function Rt(t){return J((t.source||{}).rendering,t.rendering)}function It(t){var e,n,i={};for(e=0;e<t.length;e++)n=t[e],(i[n._id]||(i[n._id]=[])).push(n);return i}function kt(t,e){return t.start-e.start}function Lt(n){var i,r,s,o,l=jt.dataAttrPrefix;return l&&(l+="-"),i=n.data(l+"event")||null,i&&(i="object"==typeof i?t.extend({},i):{},r=i.start,null==r&&(r=i.time),s=i.duration,o=i.stick,delete i.start,delete i.time,delete i.duration,delete i.stick),null==r&&(r=n.data(l+"start")),null==r&&(r=n.data(l+"time")),null==s&&(s=n.data(l+"duration")),null==o&&(o=n.data(l+"stick")),r=null!=r?e.duration(r):null,s=null!=s?e.duration(s):null,o=Boolean(o),{eventProps:i,startTime:r,duration:s,stick:o}}function Mt(t,e){var n,i;for(n=0;n<e.length;n++)if(i=e[n],i.leftCol<=t.rightCol&&i.rightCol>=t.leftCol)return!0;return!1}function zt(t,e){return t.leftCol-e.leftCol}function Bt(t){var e,n,i,r=[];for(e=0;e<t.length;e++){for(n=t[e],i=0;i<r.length&&Gt(n,r[i]).length;i++);n.level=i,(r[i]||(r[i]=[])).push(n)}return r}function Ft(t){var e,n,i,r,s;for(e=0;e<t.length;e++)for(n=t[e],i=0;i<n.length;i++)for(r=n[i],r.forwardSegs=[],s=e+1;s<t.length;s++)Gt(r,t[s],r.forwardSegs)}function Nt(t){var e,n,i=t.forwardSegs,r=0;if(void 0===t.forwardPressure){for(e=0;e<i.length;e++)n=i[e],Nt(n),r=Math.max(r,1+n.forwardPressure);t.forwardPressure=r}}function Gt(t,e,n){n=n||[];for(var i=0;i<e.length;i++)Ot(t,e[i])&&n.push(e[i]);return n}function Ot(t,e){return t.bottom>e.top&&t.top<e.bottom}function At(n,i){function r(t){t._locale=U}function s(){$?u()&&(g(),c()):o()}function o(){n.addClass("fc"),n.on("click.fc","a[data-goto]",function(e){var n=t(this),i=n.data("goto"),r=j.moment(i.date),s=i.type,o=K.opt("navLink"+rt(s)+"Click");"function"==typeof o?o(r,e):("string"==typeof o&&(s=o),N(r,s))}),j.bindOption("theme",function(t){X=t?"ui":"fc",n.toggleClass("ui-widget",t),n.toggleClass("fc-unthemed",!t)}),j.bindOptions(["isRTL","locale"],function(t){n.toggleClass("fc-ltr",!t),n.toggleClass("fc-rtl",t)}),$=t("<div class='fc-view-container'/>").prependTo(n),q=j.header=new _t(j),l(),c(j.options.defaultView),j.options.handleWindowResize&&(J=at(m,j.options.windowResizeDelay),t(window).resize(J))}function l(){q.render(),q.el&&n.prepend(q.el)}function a(){K&&K.removeElement(),q.removeElement(),$.remove(),n.removeClass("fc fc-ltr fc-rtl fc-unthemed ui-widget"),n.off(".fc"),J&&t(window).unbind("resize",J)}function u(){return n.is(":visible")}function c(e,n){lt++,K&&e&&K.type!==e&&(O(),d()),!K&&e&&(K=j.view=ot[e]||(ot[e]=j.instantiateView(e)),K.setElement(t("<div class='fc-view fc-"+e+"-view' />").appendTo($)),q.activateButton(e)),K&&(tt=K.massageCurrentDate(tt),K.displaying&&tt>=K.intervalStart&&tt<K.intervalEnd||u()&&(K.display(tt,n),A(),H(),T(),E())),A(),lt--}function d(){q.deactivateButton(K.type),K.removeElement(),K=j.view=null}function h(){lt++,O();var t=K.type,e=K.queryScroll();d(),c(t,e),A(),lt--}function f(t){if(u())return t&&p(),lt++,K.updateSize(!0),lt--,!0}function g(){u()&&p()}function p(){var t=j.options.contentHeight,e=j.options.height;Q="number"==typeof t?t:"function"==typeof t?t():"number"==typeof e?e-v():"function"==typeof e?e()-v():"parent"===e?n.parent().height()-v():Math.round($.width()/Math.max(j.options.aspectRatio,.5))}function v(){return q.el?q.el.outerHeight(!0):0}function m(t){!lt&&t.target===window&&K.start&&f(!0)&&K.trigger("windowResize",st)}function y(){b()}function S(t){it(j.getEventSourcesByMatchArray(t))}function w(){u()&&(O(),K.displayEvents(ut),A())}function E(){!j.options.lazyFetching||et(K.start,K.end)?b():w()}function b(){nt(K.start,K.end)}function D(t){ut=t,w()}function C(){w()}function H(){q.updateTitle(K.title)}function T(){var t=j.getNow();t>=K.intervalStart&&t<K.intervalEnd?q.disableButton("today"):q.enableButton("today")}function x(t,e){K.select(j.buildSelectSpan.apply(j,arguments))}function R(){K&&K.unselect()}function I(){tt=K.computePrevDate(tt),c()}function k(){tt=K.computeNextDate(tt),c()}function L(){tt.add(-1,"years"),c()}function M(){tt.add(1,"years"),c()}function z(){tt=j.getNow(),c()}function B(t){tt=j.moment(t).stripZone(),c()}function F(t){tt.add(e.duration(t)),c()}function N(t,e){var n;e=e||"day",n=j.getViewSpec(e)||j.getUnitViewSpec(e),tt=t.clone(),c(n?n.type:null)}function G(){return j.applyTimezone(tt)}function O(){$.css({width:"100%",height:$.height(),overflow:"hidden"})}function A(){$.css({width:"",height:"",overflow:""})}function V(){return j}function P(){return K}function _(t,e){var n;if("string"==typeof t){if(void 0===e)return j.options[t];n={},n[t]=e,Y(n)}else"object"==typeof t&&Y(t)}function Y(t){var e,n=0;for(e in t)j.dynamicOverrides[e]=t[e];j.viewSpecCache={},j.populateOptionsHash();for(e in t)j.triggerOptionHandlers(e),n++;if(1===n){if("height"===e||"contentHeight"===e||"aspectRatio"===e)return void f(!0);if("defaultDate"===e)return;if("businessHours"===e)return void(K&&(K.unrenderBusinessHours(),K.renderBusinessHours()));if("timezone"===e)return j.rezoneArrayEventSources(),void y()}l(),ot={},h()}function W(t,e){var n=Array.prototype.slice.call(arguments,2);if(e=e||st,this.triggerWith(t,e,n),j.options[t])return j.options[t].apply(e,n)}var j=this;j.render=s,j.destroy=a,j.refetchEvents=y,j.refetchEventSources=S,j.reportEvents=D,j.reportEventChange=C,j.rerenderEvents=w,j.changeView=c,j.select=x,j.unselect=R,j.prev=I,j.next=k,j.prevYear=L,j.nextYear=M,j.today=z,j.gotoDate=B,j.incrementDate=F,j.zoomTo=N,j.getDate=G,j.getCalendar=V,j.getView=P,j.option=_,j.trigger=W,j.dynamicOverrides={},j.viewSpecCache={},j.optionHandlers={},j.overrides=t.extend({},i),j.populateOptionsHash();var U;j.bindOptions(["locale","monthNames","monthNamesShort","dayNames","dayNamesShort","firstDay","weekNumberCalculation"],function(t,e,n,i,s,o,l){if("iso"===l&&(l="ISO"),U=Z(Pt(t)),e&&(U._months=e),n&&(U._monthsShort=n),i&&(U._weekdays=i),s&&(U._weekdaysShort=s),null==o&&"ISO"===l&&(o=1),null!=o){var a=Z(U._week);a.dow=o,U._week=a}"ISO"!==l&&"local"!==l&&"function"!=typeof l||(U._fullCalendar_weekCalc=l),tt&&r(tt)}),j.defaultAllDayEventDuration=e.duration(j.options.defaultAllDayEventDuration),j.defaultTimedEventDuration=e.duration(j.options.defaultTimedEventDuration),j.moment=function(){var t;return"local"===j.options.timezone?(t=jt.moment.apply(null,arguments),t.hasTime()&&t.local()):t="UTC"===j.options.timezone?jt.moment.utc.apply(null,arguments):jt.moment.parseZone.apply(null,arguments),r(t),t},j.localizeMoment=r,j.getIsAmbigTimezone=function(){return"local"!==j.options.timezone&&"UTC"!==j.options.timezone},j.applyTimezone=function(t){if(!t.hasTime())return t.clone();var e,n=j.moment(t.toArray()),i=t.time()-n.time();return i&&(e=n.clone().add(i),t.time()-e.time()===0&&(n=e)),n},j.getNow=function(){var t=j.options.now;return"function"==typeof t&&(t=t()),j.moment(t).stripZone()},j.getEventEnd=function(t){return t.end?t.end.clone():j.getDefaultEventEnd(t.allDay,t.start)},j.getDefaultEventEnd=function(t,e){var n=e.clone();return t?n.stripTime().add(j.defaultAllDayEventDuration):n.add(j.defaultTimedEventDuration),j.getIsAmbigTimezone()&&n.stripZone(),n},j.humanizeDuration=function(t){return t.locale(j.options.locale).humanize()},Yt.call(j);var q,$,X,K,Q,J,tt,et=j.isFetchNeeded,nt=j.fetchEvents,it=j.fetchEventSources,st=n[0],ot={},lt=0,ut=[];tt=null!=j.options.defaultDate?j.moment(j.options.defaultDate).stripZone():j.getNow(),j.getSuggestedViewHeight=function(){return void 0===Q&&g(),Q},j.isHeightAuto=function(){return"auto"===j.options.contentHeight||"auto"===j.options.height},j.freezeContentHeight=O,j.unfreezeContentHeight=A,j.initialize()}function Vt(e){t.each(Ce,function(t,n){null==e[t]&&(e[t]=n(e))})}function Pt(t){return e.localeData(t)||e.localeData("en")}function _t(e){function n(){var n=e.options,s=n.header;f=n.theme?"ui":"fc",s?(h?h.empty():h=this.el=t("<div class='fc-toolbar'/>"),h.append(r("left")).append(r("right")).append(r("center")).append('<div class="fc-clear"/>')):i()}function i(){h&&(h.remove(),h=d.el=null)}function r(n){var i=t('<div class="fc-'+n+'"/>'),r=e.options,s=r.header[n];return s&&t.each(s.split(" "),function(n){var s,o=t(),l=!0;t.each(this.split(","),function(n,i){var s,a,u,c,d,h,p,v,m,y;"title"==i?(o=o.add(t("<h2>&nbsp;</h2>")),l=!1):((s=(r.customButtons||{})[i])?(u=function(t){s.click&&s.click.call(y[0],t)},c="",d=s.text):(a=e.getViewSpec(i))?(u=function(){e.changeView(i)},g.push(i),c=a.buttonTextOverride,d=a.buttonTextDefault):e[i]&&(u=function(){e[i]()},c=(e.overrides.buttonText||{})[i],d=r.buttonText[i]),u&&(h=s?s.themeIcon:r.themeButtonIcons[i],p=s?s.icon:r.buttonIcons[i],v=c?tt(c):h&&r.theme?"<span class='ui-icon ui-icon-"+h+"'></span>":p&&!r.theme?"<span class='fc-icon fc-icon-"+p+"'></span>":tt(d),m=["fc-"+i+"-button",f+"-button",f+"-state-default"],y=t('<button type="button" class="'+m.join(" ")+'">'+v+"</button>").click(function(t){y.hasClass(f+"-state-disabled")||(u(t),(y.hasClass(f+"-state-active")||y.hasClass(f+"-state-disabled"))&&y.removeClass(f+"-state-hover"))}).mousedown(function(){y.not("."+f+"-state-active").not("."+f+"-state-disabled").addClass(f+"-state-down")}).mouseup(function(){y.removeClass(f+"-state-down")}).hover(function(){y.not("."+f+"-state-active").not("."+f+"-state-disabled").addClass(f+"-state-hover")},function(){y.removeClass(f+"-state-hover").removeClass(f+"-state-down")}),o=o.add(y)))}),l&&o.first().addClass(f+"-corner-left").end().last().addClass(f+"-corner-right").end(),o.length>1?(s=t("<div/>"),l&&s.addClass("fc-button-group"),s.append(o),i.append(s)):i.append(o)}),i}function s(t){h&&h.find("h2").text(t)}function o(t){h&&h.find(".fc-"+t+"-button").addClass(f+"-state-active")}function l(t){h&&h.find(".fc-"+t+"-button").removeClass(f+"-state-active")}function a(t){h&&h.find(".fc-"+t+"-button").prop("disabled",!0).addClass(f+"-state-disabled")}function u(t){h&&h.find(".fc-"+t+"-button").prop("disabled",!1).removeClass(f+"-state-disabled")}function c(){return g}var d=this;d.render=n,d.removeElement=i,d.updateTitle=s,d.activateButton=o,d.deactivateButton=l,d.disableButton=a,d.enableButton=u,d.getViewsWithButtons=c,d.el=null;var h,f,g=[]}function Yt(){function n(t,e){return!A||t<A||e>V}function i(t,e){A=t,V=e,r(Y,"reset")}function r(t,e){var n,i;for("reset"===e?j=[]:"add"!==e&&(j=w(j,t)),n=0;n<t.length;n++)i=t[n],"pending"!==i._status&&W++,i._fetchId=(i._fetchId||0)+1,i._status="pending";for(n=0;n<t.length;n++)i=t[n],s(i,i._fetchId)}function s(e,n){a(e,function(i){var r,s,o,a=t.isArray(e.events);if(n===e._fetchId&&"rejected"!==e._status){if(e._status="resolved",i)for(r=0;r<i.length;r++)s=i[r],o=a?s:R(s,e),o&&j.push.apply(j,M(o));l()}})}function o(t){var e="pending"===t._status;t._status="rejected",e&&l()}function l(){W--,W||P(j)}function a(e,n){var i,r,s=jt.sourceFetchers;for(i=0;i<s.length;i++){if(r=s[i].call(F,e,A.clone(),V.clone(),F.options.timezone,n),r===!0)return;if("object"==typeof r)return void a(r,n)}var o=e.events;if(o)t.isFunction(o)?(F.pushLoading(),o.call(F,A.clone(),V.clone(),F.options.timezone,function(t){n(t),F.popLoading()})):t.isArray(o)?n(o):n();else{var l=e.url;if(l){var u,c=e.success,d=e.error,h=e.complete;u=t.isFunction(e.data)?e.data():e.data;var f=t.extend({},u||{}),g=J(e.startParam,F.options.startParam),p=J(e.endParam,F.options.endParam),v=J(e.timezoneParam,F.options.timezoneParam);g&&(f[g]=A.format()),p&&(f[p]=V.format()),F.options.timezone&&"local"!=F.options.timezone&&(f[v]=F.options.timezone),F.pushLoading(),t.ajax(t.extend({},He,e,{data:f,success:function(e){e=e||[];var i=Q(c,this,arguments);t.isArray(i)&&(e=i),n(e)},error:function(){Q(d,this,arguments),n()},complete:function(){Q(h,this,arguments),F.popLoading()}}))}else n()}}function u(t){var e=c(t);e&&(Y.push(e),r([e],"add"))}function c(e){var n,i,r=jt.sourceNormalizers;if(t.isFunction(e)||t.isArray(e)?n={events:e}:"string"==typeof e?n={url:e}:"object"==typeof e&&(n=t.extend({},e)),n){for(n.className?"string"==typeof n.className&&(n.className=n.className.split(/\s+/)):n.className=[],t.isArray(n.events)&&(n.origArray=n.events,n.events=t.map(n.events,function(t){return R(t,n)})),i=0;i<r.length;i++)r[i].call(F,n);return n}}function d(t){f(m(t))}function h(t){null==t?f(Y,!0):f(v(t))}function f(e,n){var i;for(i=0;i<e.length;i++)o(e[i]);n?(Y=[],j=[]):(Y=t.grep(Y,function(t){for(i=0;i<e.length;i++)if(t===e[i])return!1;return!0}),j=w(j,e)),P(j)}function g(){return Y.slice(1)}function p(e){return t.grep(Y,function(t){return t.id&&t.id===e})[0]}function v(e){e?t.isArray(e)||(e=[e]):e=[];var n,i=[];for(n=0;n<e.length;n++)i.push.apply(i,m(e[n]));return i}function m(e){var n,i;for(n=0;n<Y.length;n++)if(i=Y[n],i===e)return[i];return i=p(e),i?[i]:t.grep(Y,function(t){return y(e,t)})}function y(t,e){return t&&e&&S(t)==S(e)}function S(t){return("object"==typeof t?t.origArray||t.googleCalendarId||t.url||t.events:null)||t}function w(e,n){return t.grep(e,function(t){for(var e=0;e<n.length;e++)if(t.source===n[e])return!1;return!0})}function E(t){t.start=F.moment(t.start),t.end?t.end=F.moment(t.end):t.end=null,z(t,b(t)),P(j)}function b(e){var n={};return t.each(e,function(t,e){D(t)&&void 0!==e&&K(e)&&(n[t]=e)}),n}function D(t){return!/^_|^(id|allDay|start|end)$/.test(t)}function C(t,e){var n,i,r,s=R(t);if(s){for(n=M(s),i=0;i<n.length;i++)r=n[i],r.source||(e&&(_.events.push(r),r.source=_),j.push(r));return P(j),n}return[]}function H(e){var n,i;for(null==e?e=function(){return!0}:t.isFunction(e)||(n=e+"",e=function(t){return t._id==n}),j=t.grep(j,e,!0),i=0;i<Y.length;i++)t.isArray(Y[i].events)&&(Y[i].events=t.grep(Y[i].events,e,!0));P(j)}function T(e){return t.isFunction(e)?t.grep(j,e):null!=e?(e+="",t.grep(j,function(t){return t._id==e})):j}function x(t){t.start=F.moment(t.start),t.end&&(t.end=F.moment(t.end)),Wt(t)}function R(n,i){var r,s,o,l={};if(F.options.eventDataTransform&&(n=F.options.eventDataTransform(n)),i&&i.eventDataTransform&&(n=i.eventDataTransform(n)),t.extend(l,n),i&&(l.source=i),l._id=n._id||(void 0===n.id?"_fc"+Te++:n.id+""),n.className?"string"==typeof n.className?l.className=n.className.split(/\s+/):l.className=n.className:l.className=[],r=n.start||n.date,s=n.end,U(r)&&(r=e.duration(r)),U(s)&&(s=e.duration(s)),n.dow||e.isDuration(r)||e.isDuration(s))l.start=r?e.duration(r):null,l.end=s?e.duration(s):null,l._recurring=!0;else{if(r&&(r=F.moment(r),!r.isValid()))return!1;s&&(s=F.moment(s),s.isValid()||(s=null)),o=n.allDay,void 0===o&&(o=J(i?i.allDayDefault:void 0,F.options.allDayDefault)),I(r,s,o,l)}return F.normalizeEvent(l),l}function I(t,e,n,i){i.start=t,i.end=e,i.allDay=n,k(i),Wt(i)}function k(t){L(t),t.end&&!t.end.isAfter(t.start)&&(t.end=null),t.end||(F.options.forceEventDuration?t.end=F.getDefaultEventEnd(t.allDay,t.start):t.end=null)}function L(t){null==t.allDay&&(t.allDay=!(t.start.hasTime()||t.end&&t.end.hasTime())),t.allDay?(t.start.stripTime(),t.end&&t.end.stripTime()):(t.start.hasTime()||(t.start=F.applyTimezone(t.start.time(0))),t.end&&!t.end.hasTime()&&(t.end=F.applyTimezone(t.end.time(0))))}function M(e,n,i){var r,s,o,l,a,u,c,d,h,f=[];if(n=n||A,i=i||V,e)if(e._recurring){if(s=e.dow)for(r={},o=0;o<s.length;o++)r[s[o]]=!0;for(l=n.clone().stripTime();l.isBefore(i);)r&&!r[l.day()]||(a=e.start,u=e.end,c=l.clone(),d=null,a&&(c=c.time(a)),u&&(d=l.clone().time(u)),h=t.extend({},e),I(c,d,!a&&!u,h),f.push(h)),l.add(1,"days")}else f.push(e);return f}function z(e,n,i){function r(t,e){return i?O(t,e,i):n.allDay?G(t,e):N(t,e)}var s,o,l,a,u,c,d={};return n=n||{},n.start||(n.start=e.start.clone()),void 0===n.end&&(n.end=e.end?e.end.clone():null),null==n.allDay&&(n.allDay=e.allDay),k(n),s={start:e._start.clone(),end:e._end?e._end.clone():F.getDefaultEventEnd(e._allDay,e._start),allDay:n.allDay},k(s),o=null!==e._end&&null===n.end,l=r(n.start,s.start),n.end?(a=r(n.end,s.end),u=a.subtract(l)):u=null,t.each(n,function(t,e){D(t)&&void 0!==e&&(d[t]=e)}),c=B(T(e._id),o,n.allDay,l,u,d),{dateDelta:l,durationDelta:u,undo:c}}function B(e,n,i,r,s,o){var l=F.getIsAmbigTimezone(),a=[];return r&&!r.valueOf()&&(r=null),s&&!s.valueOf()&&(s=null),t.each(e,function(e,u){var c,d;c={start:u.start.clone(),end:u.end?u.end.clone():null,allDay:u.allDay},t.each(o,function(t){c[t]=u[t]}),d={start:u._start,end:u._end,allDay:i},k(d),n?d.end=null:s&&!d.end&&(d.end=F.getDefaultEventEnd(d.allDay,d.start)),r&&(d.start.add(r),d.end&&d.end.add(r)),s&&d.end.add(s),l&&!d.allDay&&(r||s)&&(d.start.stripZone(),d.end&&d.end.stripZone()),t.extend(u,o,d),Wt(u),a.push(function(){t.extend(u,c),Wt(u)})}),function(){for(var t=0;t<a.length;t++)a[t]()}}var F=this;F.isFetchNeeded=n,F.fetchEvents=i,F.fetchEventSources=r,F.getEventSources=g,F.getEventSourceById=p,F.getEventSourcesByMatchArray=v,F.getEventSourcesByMatch=m,F.addEventSource=u,F.removeEventSource=d,F.removeEventSources=h,F.updateEvent=E,F.renderEvent=C,F.removeEvents=H,F.clientEvents=T,F.mutateEvent=z,F.normalizeEventDates=k,F.normalizeEventTimes=L;var A,V,P=F.reportEvents,_={events:[]},Y=[_],W=0,j=[];t.each((F.options.events?[F.options.events]:[]).concat(F.options.eventSources||[]),function(t,e){var n=c(e);n&&Y.push(n)}),F.rezoneArrayEventSources=function(){var e,n,i;for(e=0;e<Y.length;e++)if(n=Y[e].events,t.isArray(n))for(i=0;i<n.length;i++)x(n[i])},F.buildEventFromInput=R,F.expandEvent=M,F.getEventCache=function(){return j}}function Wt(t){t._allDay=t.allDay,t._start=t.start.clone(),t._end=t.end?t.end.clone():null}var jt=t.fullCalendar={version:"3.0.0",internalApiVersion:6},Ut=jt.views={};t.fn.fullCalendar=function(e){var n=Array.prototype.slice.call(arguments,1),i=this;return this.each(function(r,s){var o,l=t(s),a=l.data("fullCalendar");"string"==typeof e?a&&t.isFunction(a[e])&&(o=a[e].apply(a,n),r||(i=o),"destroy"===e&&l.removeData("fullCalendar")):a||(a=new we(l,e),l.data("fullCalendar",a),a.render())}),i};var qt=["header","buttonText","buttonIcons","themeButtonIcons"];jt.intersectRanges=F,jt.applyAll=Q,jt.debounce=at,jt.isInt=ot,jt.htmlEscape=tt,jt.cssToStr=nt,jt.proxy=lt,jt.capitaliseFirstLetter=rt,jt.getOuterRect=h,jt.getClientRect=f,jt.getContentRect=g,jt.getScrollbarWidths=p;var Zt=null;jt.preventDefault=C,jt.intersectRects=x,jt.parseFieldSpecs=L,jt.compareByFieldSpecs=M,jt.compareByFieldSpec=z,jt.flexibleCompare=B,jt.computeIntervalUnit=A,jt.divideRangeByDuration=P,jt.divideDurationByDuration=_,jt.multiplyDuration=Y,jt.durationHasTime=W;var $t=["sun","mon","tue","wed","thu","fri","sat"],Xt=["year","month","week","day","hour","minute","second","millisecond"];jt.log=function(){var t=window.console;if(t&&t.log)return t.log.apply(t,arguments)},jt.warn=function(){var t=window.console;return t&&t.warn?t.warn.apply(t,arguments):jt.log.apply(jt,arguments)};var Kt={}.hasOwnProperty,Qt=/^\s*\d{4}-\d\d$/,Jt=/^\s*\d{4}-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?)?$/,te=e.fn,ee=t.extend({},te),ne=e.momentProperties;ne.push("_fullCalendar"),ne.push("_ambigTime"),ne.push("_ambigZone"),jt.moment=function(){return ct(arguments)},jt.moment.utc=function(){var t=ct(arguments,!0);return t.hasTime()&&t.utc(),t},jt.moment.parseZone=function(){return ct(arguments,!0,!0)},te.week=te.weeks=function(t){var e=this._locale._fullCalendar_weekCalc;return null==t&&"function"==typeof e?e(this):"ISO"===e?ee.isoWeek.apply(this,arguments):ee.week.apply(this,arguments)},te.time=function(t){if(!this._fullCalendar)return ee.time.apply(this,arguments);if(null==t)return e.duration({hours:this.hours(),minutes:this.minutes(),seconds:this.seconds(),milliseconds:this.milliseconds()});this._ambigTime=!1,e.isDuration(t)||e.isMoment(t)||(t=e.duration(t));var n=0;return e.isDuration(t)&&(n=24*Math.floor(t.asDays())),this.hours(n+t.hours()).minutes(t.minutes()).seconds(t.seconds()).milliseconds(t.milliseconds())},te.stripTime=function(){return this._ambigTime||(this.utc(!0),this.set({hours:0,minutes:0,seconds:0,ms:0}),this._ambigTime=!0,this._ambigZone=!0),this},te.hasTime=function(){return!this._ambigTime},te.stripZone=function(){var t;return this._ambigZone||(t=this._ambigTime,this.utc(!0),this._ambigTime=t||!1,this._ambigZone=!0),this},te.hasZone=function(){return!this._ambigZone},te.local=function(t){return ee.local.call(this,this._ambigZone||t),this._ambigTime=!1,this._ambigZone=!1,this},te.utc=function(t){return ee.utc.call(this,t),this._ambigTime=!1,this._ambigZone=!1,this},te.utcOffset=function(t){return null!=t&&(this._ambigTime=!1,this._ambigZone=!1),ee.utcOffset.apply(this,arguments)},te.format=function(){return this._fullCalendar&&arguments[0]?ht(this,arguments[0]):this._ambigTime?dt(this,"YYYY-MM-DD"):this._ambigZone?dt(this,"YYYY-MM-DD[T]HH:mm:ss"):ee.format.apply(this,arguments)},te.toISOString=function(){return this._ambigTime?dt(this,"YYYY-MM-DD"):this._ambigZone?dt(this,"YYYY-MM-DD[T]HH:mm:ss"):ee.toISOString.apply(this,arguments)};var ie={t:function(t){return dt(t,"a").charAt(0)},T:function(t){return dt(t,"A").charAt(0)}};jt.formatRange=pt;var re={Y:"year",M:"month",D:"day",d:"day",A:"second",a:"second",T:"second",t:"second",H:"second",h:"second",m:"second",s:"second"},se={};jt.Class=wt,wt.extend=function(){var t,e,n=arguments.length;for(t=0;t<n;t++)e=arguments[t],t<n-1&&bt(this,e);return Et(this,e||{})},wt.mixin=function(t){bt(this,t)};var oe=jt.EmitterMixin={on:function(e,n){var i=function(t,e){return n.apply(e.context||this,e.args||[])};return n.guid||(n.guid=t.guid++),i.guid=n.guid,t(this).on(e,i),this},off:function(e,n){return t(this).off(e,n),this},trigger:function(e){var n=Array.prototype.slice.call(arguments,1);return t(this).triggerHandler(e,{args:n}),this},triggerWith:function(e,n,i){return t(this).triggerHandler(e,{context:n,args:i}),this}},le=jt.ListenerMixin=function(){var e=0,n={listenerId:null,listenTo:function(e,n,i){if("object"==typeof n)for(var r in n)n.hasOwnProperty(r)&&this.listenTo(e,r,n[r]);else"string"==typeof n&&e.on(n+"."+this.getListenerNamespace(),t.proxy(i,this))},stopListeningTo:function(t,e){t.off((e||"")+"."+this.getListenerNamespace())},getListenerNamespace:function(){return null==this.listenerId&&(this.listenerId=e++),"_listener"+this.listenerId}};return n}(),ae={isIgnoringMouse:!1,delayUnignoreMouse:null,initMouseIgnoring:function(t){this.delayUnignoreMouse=at(lt(this,"unignoreMouse"),t||1e3)},tempIgnoreMouse:function(){this.isIgnoringMouse=!0,this.delayUnignoreMouse()},unignoreMouse:function(){this.isIgnoringMouse=!1}},ue=wt.extend(le,{isHidden:!0,options:null,el:null,margin:10,constructor:function(t){this.options=t||{}},show:function(){this.isHidden&&(this.el||this.render(),this.el.show(),this.position(),this.isHidden=!1,this.trigger("show"))},hide:function(){this.isHidden||(this.el.hide(),this.isHidden=!0,this.trigger("hide"))},render:function(){var e=this,n=this.options;this.el=t('<div class="fc-popover"/>').addClass(n.className||"").css({top:0,left:0}).append(n.content).appendTo(n.parentEl),
+this.el.on("click",".fc-close",function(){e.hide()}),n.autoHide&&this.listenTo(t(document),"mousedown",this.documentMousedown)},documentMousedown:function(e){this.el&&!t(e.target).closest(this.el).length&&this.hide()},removeElement:function(){this.hide(),this.el&&(this.el.remove(),this.el=null),this.stopListeningTo(t(document),"mousedown")},position:function(){var e,n,i,r,s,o=this.options,l=this.el.offsetParent().offset(),a=this.el.outerWidth(),u=this.el.outerHeight(),c=t(window),h=d(this.el);r=o.top||0,s=void 0!==o.left?o.left:void 0!==o.right?o.right-a:0,h.is(window)||h.is(document)?(h=c,e=0,n=0):(i=h.offset(),e=i.top,n=i.left),e+=c.scrollTop(),n+=c.scrollLeft(),o.viewportConstrain!==!1&&(r=Math.min(r,e+h.outerHeight()-u-this.margin),r=Math.max(r,e+this.margin),s=Math.min(s,n+h.outerWidth()-a-this.margin),s=Math.max(s,n+this.margin)),this.el.css({top:r-l.top,left:s-l.left})},trigger:function(t){this.options[t]&&this.options[t].apply(this,Array.prototype.slice.call(arguments,1))}}),ce=jt.CoordCache=wt.extend({els:null,forcedOffsetParentEl:null,origin:null,boundingRect:null,isHorizontal:!1,isVertical:!1,lefts:null,rights:null,tops:null,bottoms:null,constructor:function(e){this.els=t(e.els),this.isHorizontal=e.isHorizontal,this.isVertical=e.isVertical,this.forcedOffsetParentEl=e.offsetParent?t(e.offsetParent):null},build:function(){var t=this.forcedOffsetParentEl||this.els.eq(0).offsetParent();this.origin=t.offset(),this.boundingRect=this.queryBoundingRect(),this.isHorizontal&&this.buildElHorizontals(),this.isVertical&&this.buildElVerticals()},clear:function(){this.origin=null,this.boundingRect=null,this.lefts=null,this.rights=null,this.tops=null,this.bottoms=null},ensureBuilt:function(){this.origin||this.build()},buildElHorizontals:function(){var e=[],n=[];this.els.each(function(i,r){var s=t(r),o=s.offset().left,l=s.outerWidth();e.push(o),n.push(o+l)}),this.lefts=e,this.rights=n},buildElVerticals:function(){var e=[],n=[];this.els.each(function(i,r){var s=t(r),o=s.offset().top,l=s.outerHeight();e.push(o),n.push(o+l)}),this.tops=e,this.bottoms=n},getHorizontalIndex:function(t){this.ensureBuilt();var e,n=this.lefts,i=this.rights,r=n.length;for(e=0;e<r;e++)if(t>=n[e]&&t<i[e])return e},getVerticalIndex:function(t){this.ensureBuilt();var e,n=this.tops,i=this.bottoms,r=n.length;for(e=0;e<r;e++)if(t>=n[e]&&t<i[e])return e},getLeftOffset:function(t){return this.ensureBuilt(),this.lefts[t]},getLeftPosition:function(t){return this.ensureBuilt(),this.lefts[t]-this.origin.left},getRightOffset:function(t){return this.ensureBuilt(),this.rights[t]},getRightPosition:function(t){return this.ensureBuilt(),this.rights[t]-this.origin.left},getWidth:function(t){return this.ensureBuilt(),this.rights[t]-this.lefts[t]},getTopOffset:function(t){return this.ensureBuilt(),this.tops[t]},getTopPosition:function(t){return this.ensureBuilt(),this.tops[t]-this.origin.top},getBottomOffset:function(t){return this.ensureBuilt(),this.bottoms[t]},getBottomPosition:function(t){return this.ensureBuilt(),this.bottoms[t]-this.origin.top},getHeight:function(t){return this.ensureBuilt(),this.bottoms[t]-this.tops[t]},queryBoundingRect:function(){var t=d(this.els.eq(0));if(!t.is(document))return f(t)},isPointInBounds:function(t,e){return this.isLeftInBounds(t)&&this.isTopInBounds(e)},isLeftInBounds:function(t){return!this.boundingRect||t>=this.boundingRect.left&&t<this.boundingRect.right},isTopInBounds:function(t){return!this.boundingRect||t>=this.boundingRect.top&&t<this.boundingRect.bottom}}),de=jt.DragListener=wt.extend(le,ae,{options:null,subjectEl:null,originX:null,originY:null,scrollEl:null,isInteracting:!1,isDistanceSurpassed:!1,isDelayEnded:!1,isDragging:!1,isTouch:!1,delay:null,delayTimeoutId:null,minDistance:null,handleTouchScrollProxy:null,constructor:function(t){this.options=t||{},this.handleTouchScrollProxy=lt(this,"handleTouchScroll"),this.initMouseIgnoring(500)},startInteraction:function(e,n){var i=b(e);if("mousedown"===e.type){if(this.isIgnoringMouse)return;if(!S(e))return;e.preventDefault()}this.isInteracting||(n=n||{},this.delay=J(n.delay,this.options.delay,0),this.minDistance=J(n.distance,this.options.distance,0),this.subjectEl=this.options.subjectEl,this.isInteracting=!0,this.isTouch=i,this.isDelayEnded=!1,this.isDistanceSurpassed=!1,this.originX=w(e),this.originY=E(e),this.scrollEl=d(t(e.target)),this.bindHandlers(),this.initAutoScroll(),this.handleInteractionStart(e),this.startDelay(e),this.minDistance||this.handleDistanceSurpassed(e))},handleInteractionStart:function(t){this.trigger("interactionStart",t)},endInteraction:function(t,e){this.isInteracting&&(this.endDrag(t),this.delayTimeoutId&&(clearTimeout(this.delayTimeoutId),this.delayTimeoutId=null),this.destroyAutoScroll(),this.unbindHandlers(),this.isInteracting=!1,this.handleInteractionEnd(t,e),this.isTouch&&this.tempIgnoreMouse())},handleInteractionEnd:function(t,e){this.trigger("interactionEnd",t,e||!1)},bindHandlers:function(){var e=this,n=1;this.isTouch?(this.listenTo(t(document),{touchmove:this.handleTouchMove,touchend:this.endInteraction,touchcancel:this.endInteraction,touchstart:function(t){n?n--:e.endInteraction(t,!0)}}),!H(this.handleTouchScrollProxy)&&this.scrollEl&&this.listenTo(this.scrollEl,"scroll",this.handleTouchScroll)):this.listenTo(t(document),{mousemove:this.handleMouseMove,mouseup:this.endInteraction}),this.listenTo(t(document),{selectstart:C,contextmenu:C})},unbindHandlers:function(){this.stopListeningTo(t(document)),T(this.handleTouchScrollProxy),this.scrollEl&&this.stopListeningTo(this.scrollEl,"scroll")},startDrag:function(t,e){this.startInteraction(t,e),this.isDragging||(this.isDragging=!0,this.handleDragStart(t))},handleDragStart:function(t){this.trigger("dragStart",t)},handleMove:function(t){var e,n=w(t)-this.originX,i=E(t)-this.originY,r=this.minDistance;this.isDistanceSurpassed||(e=n*n+i*i,e>=r*r&&this.handleDistanceSurpassed(t)),this.isDragging&&this.handleDrag(n,i,t)},handleDrag:function(t,e,n){this.trigger("drag",t,e,n),this.updateAutoScroll(n)},endDrag:function(t){this.isDragging&&(this.isDragging=!1,this.handleDragEnd(t))},handleDragEnd:function(t){this.trigger("dragEnd",t)},startDelay:function(t){var e=this;this.delay?this.delayTimeoutId=setTimeout(function(){e.handleDelayEnd(t)},this.delay):this.handleDelayEnd(t)},handleDelayEnd:function(t){this.isDelayEnded=!0,this.isDistanceSurpassed&&this.startDrag(t)},handleDistanceSurpassed:function(t){this.isDistanceSurpassed=!0,this.isDelayEnded&&this.startDrag(t)},handleTouchMove:function(t){this.isDragging&&t.preventDefault(),this.handleMove(t)},handleMouseMove:function(t){this.handleMove(t)},handleTouchScroll:function(t){this.isDragging||this.endInteraction(t,!0)},trigger:function(t){this.options[t]&&this.options[t].apply(this,Array.prototype.slice.call(arguments,1)),this["_"+t]&&this["_"+t].apply(this,Array.prototype.slice.call(arguments,1))}});de.mixin({isAutoScroll:!1,scrollBounds:null,scrollTopVel:null,scrollLeftVel:null,scrollIntervalId:null,scrollSensitivity:30,scrollSpeed:200,scrollIntervalMs:50,initAutoScroll:function(){var t=this.scrollEl;this.isAutoScroll=this.options.scroll&&t&&!t.is(window)&&!t.is(document),this.isAutoScroll&&this.listenTo(t,"scroll",at(this.handleDebouncedScroll,100))},destroyAutoScroll:function(){this.endAutoScroll(),this.isAutoScroll&&this.stopListeningTo(this.scrollEl,"scroll")},computeScrollBounds:function(){this.isAutoScroll&&(this.scrollBounds=h(this.scrollEl))},updateAutoScroll:function(t){var e,n,i,r,s=this.scrollSensitivity,o=this.scrollBounds,l=0,a=0;o&&(e=(s-(E(t)-o.top))/s,n=(s-(o.bottom-E(t)))/s,i=(s-(w(t)-o.left))/s,r=(s-(o.right-w(t)))/s,e>=0&&e<=1?l=e*this.scrollSpeed*-1:n>=0&&n<=1&&(l=n*this.scrollSpeed),i>=0&&i<=1?a=i*this.scrollSpeed*-1:r>=0&&r<=1&&(a=r*this.scrollSpeed)),this.setScrollVel(l,a)},setScrollVel:function(t,e){this.scrollTopVel=t,this.scrollLeftVel=e,this.constrainScrollVel(),!this.scrollTopVel&&!this.scrollLeftVel||this.scrollIntervalId||(this.scrollIntervalId=setInterval(lt(this,"scrollIntervalFunc"),this.scrollIntervalMs))},constrainScrollVel:function(){var t=this.scrollEl;this.scrollTopVel<0?t.scrollTop()<=0&&(this.scrollTopVel=0):this.scrollTopVel>0&&t.scrollTop()+t[0].clientHeight>=t[0].scrollHeight&&(this.scrollTopVel=0),this.scrollLeftVel<0?t.scrollLeft()<=0&&(this.scrollLeftVel=0):this.scrollLeftVel>0&&t.scrollLeft()+t[0].clientWidth>=t[0].scrollWidth&&(this.scrollLeftVel=0)},scrollIntervalFunc:function(){var t=this.scrollEl,e=this.scrollIntervalMs/1e3;this.scrollTopVel&&t.scrollTop(t.scrollTop()+this.scrollTopVel*e),this.scrollLeftVel&&t.scrollLeft(t.scrollLeft()+this.scrollLeftVel*e),this.constrainScrollVel(),this.scrollTopVel||this.scrollLeftVel||this.endAutoScroll()},endAutoScroll:function(){this.scrollIntervalId&&(clearInterval(this.scrollIntervalId),this.scrollIntervalId=null,this.handleScrollEnd())},handleDebouncedScroll:function(){this.scrollIntervalId||this.handleScrollEnd()},handleScrollEnd:function(){}});var he=de.extend({component:null,origHit:null,hit:null,coordAdjust:null,constructor:function(t,e){de.call(this,e),this.component=t},handleInteractionStart:function(t){var e,n,i,r=this.subjectEl;this.computeCoords(),t?(n={left:w(t),top:E(t)},i=n,r&&(e=h(r),i=R(i,e)),this.origHit=this.queryHit(i.left,i.top),r&&this.options.subjectCenter&&(this.origHit&&(e=x(this.origHit,e)||e),i=I(e)),this.coordAdjust=k(i,n)):(this.origHit=null,this.coordAdjust=null),de.prototype.handleInteractionStart.apply(this,arguments)},computeCoords:function(){this.component.prepareHits(),this.computeScrollBounds()},handleDragStart:function(t){var e;de.prototype.handleDragStart.apply(this,arguments),e=this.queryHit(w(t),E(t)),e&&this.handleHitOver(e)},handleDrag:function(t,e,n){var i;de.prototype.handleDrag.apply(this,arguments),i=this.queryHit(w(n),E(n)),Dt(i,this.hit)||(this.hit&&this.handleHitOut(),i&&this.handleHitOver(i))},handleDragEnd:function(){this.handleHitDone(),de.prototype.handleDragEnd.apply(this,arguments)},handleHitOver:function(t){var e=Dt(t,this.origHit);this.hit=t,this.trigger("hitOver",this.hit,e,this.origHit)},handleHitOut:function(){this.hit&&(this.trigger("hitOut",this.hit),this.handleHitDone(),this.hit=null)},handleHitDone:function(){this.hit&&this.trigger("hitDone",this.hit)},handleInteractionEnd:function(){de.prototype.handleInteractionEnd.apply(this,arguments),this.origHit=null,this.hit=null,this.component.releaseHits()},handleScrollEnd:function(){de.prototype.handleScrollEnd.apply(this,arguments),this.computeCoords()},queryHit:function(t,e){return this.coordAdjust&&(t+=this.coordAdjust.left,e+=this.coordAdjust.top),this.component.queryHit(t,e)}}),fe=wt.extend(le,{options:null,sourceEl:null,el:null,parentEl:null,top0:null,left0:null,y0:null,x0:null,topDelta:null,leftDelta:null,isFollowing:!1,isHidden:!1,isAnimating:!1,constructor:function(e,n){this.options=n=n||{},this.sourceEl=e,this.parentEl=n.parentEl?t(n.parentEl):e.parent()},start:function(e){this.isFollowing||(this.isFollowing=!0,this.y0=E(e),this.x0=w(e),this.topDelta=0,this.leftDelta=0,this.isHidden||this.updatePosition(),b(e)?this.listenTo(t(document),"touchmove",this.handleMove):this.listenTo(t(document),"mousemove",this.handleMove))},stop:function(e,n){function i(){r.isAnimating=!1,r.removeElement(),r.top0=r.left0=null,n&&n()}var r=this,s=this.options.revertDuration;this.isFollowing&&!this.isAnimating&&(this.isFollowing=!1,this.stopListeningTo(t(document)),e&&s&&!this.isHidden?(this.isAnimating=!0,this.el.animate({top:this.top0,left:this.left0},{duration:s,complete:i})):i())},getEl:function(){var t=this.el;return t||(t=this.el=this.sourceEl.clone().addClass(this.options.additionalClass||"").css({position:"absolute",visibility:"",display:this.isHidden?"none":"",margin:0,right:"auto",bottom:"auto",width:this.sourceEl.width(),height:this.sourceEl.height(),opacity:this.options.opacity||"",zIndex:this.options.zIndex}),t.addClass("fc-unselectable"),t.appendTo(this.parentEl)),t},removeElement:function(){this.el&&(this.el.remove(),this.el=null)},updatePosition:function(){var t,e;this.getEl(),null===this.top0&&(t=this.sourceEl.offset(),e=this.el.offsetParent().offset(),this.top0=t.top-e.top,this.left0=t.left-e.left),this.el.css({top:this.top0+this.topDelta,left:this.left0+this.leftDelta})},handleMove:function(t){this.topDelta=E(t)-this.y0,this.leftDelta=w(t)-this.x0,this.isHidden||this.updatePosition()},hide:function(){this.isHidden||(this.isHidden=!0,this.el&&this.el.hide())},show:function(){this.isHidden&&(this.isHidden=!1,this.updatePosition(),this.getEl().show())}}),ge=jt.Grid=wt.extend(le,ae,{hasDayInteractions:!0,view:null,isRTL:null,start:null,end:null,el:null,elsByFill:null,eventTimeFormat:null,displayEventTime:null,displayEventEnd:null,minResizeDuration:null,largeUnit:null,dayDragListener:null,segDragListener:null,segResizeListener:null,externalDragListener:null,constructor:function(t){this.view=t,this.isRTL=t.opt("isRTL"),this.elsByFill={},this.dayDragListener=this.buildDayDragListener(),this.initMouseIgnoring()},computeEventTimeFormat:function(){return this.view.opt("smallTimeFormat")},computeDisplayEventTime:function(){return!0},computeDisplayEventEnd:function(){return!0},setRange:function(t){this.start=t.start.clone(),this.end=t.end.clone(),this.rangeUpdated(),this.processRangeOptions()},rangeUpdated:function(){},processRangeOptions:function(){var t,e,n=this.view;this.eventTimeFormat=n.opt("eventTimeFormat")||n.opt("timeFormat")||this.computeEventTimeFormat(),t=n.opt("displayEventTime"),null==t&&(t=this.computeDisplayEventTime()),e=n.opt("displayEventEnd"),null==e&&(e=this.computeDisplayEventEnd()),this.displayEventTime=t,this.displayEventEnd=e},spanToSegs:function(t){},diffDates:function(t,e){return this.largeUnit?O(t,e,this.largeUnit):N(t,e)},prepareHits:function(){},releaseHits:function(){},queryHit:function(t,e){},getHitSpan:function(t){},getHitEl:function(t){},setElement:function(t){this.el=t,this.hasDayInteractions&&(D(t),this.bindDayHandler("touchstart",this.dayTouchStart),this.bindDayHandler("mousedown",this.dayMousedown)),this.bindSegHandlers(),this.bindGlobalHandlers()},bindDayHandler:function(e,n){var i=this;this.el.on(e,function(e){if(!t(e.target).is(i.segSelector+","+i.segSelector+" *,.fc-more,a[data-goto]"))return n.call(i,e)})},removeElement:function(){this.unbindGlobalHandlers(),this.clearDragListeners(),this.el.remove()},renderSkeleton:function(){},renderDates:function(){},unrenderDates:function(){},bindGlobalHandlers:function(){this.listenTo(t(document),{dragstart:this.externalDragStart,sortstart:this.externalDragStart})},unbindGlobalHandlers:function(){this.stopListeningTo(t(document))},dayMousedown:function(t){this.isIgnoringMouse||this.dayDragListener.startInteraction(t,{})},dayTouchStart:function(t){var e=this.view;(e.isSelected||e.selectedEvent)&&this.tempIgnoreMouse(),this.dayDragListener.startInteraction(t,{delay:this.view.opt("longPressDelay")})},buildDayDragListener:function(){var t,e,n=this,i=this.view,r=i.opt("selectable"),l=new he(this,{scroll:i.opt("dragScroll"),interactionStart:function(){t=l.origHit,e=null},dragStart:function(){i.unselect()},hitOver:function(i,o,l){l&&(o||(t=null),r&&(e=n.computeSelection(n.getHitSpan(l),n.getHitSpan(i)),e?n.renderSelection(e):e===!1&&s()))},hitOut:function(){t=null,e=null,n.unrenderSelection()},hitDone:function(){o()},interactionEnd:function(r,s){s||(t&&!n.isIgnoringMouse&&i.triggerDayClick(n.getHitSpan(t),n.getHitEl(t),r),e&&i.reportSelection(e,r))}});return l},clearDragListeners:function(){this.dayDragListener.endInteraction(),this.segDragListener&&this.segDragListener.endInteraction(),this.segResizeListener&&this.segResizeListener.endInteraction(),this.externalDragListener&&this.externalDragListener.endInteraction()},renderEventLocationHelper:function(t,e){var n=this.fabricateHelperEvent(t,e);return this.renderHelper(n,e)},fabricateHelperEvent:function(t,e){var n=e?Z(e.event):{};return n.start=t.start.clone(),n.end=t.end?t.end.clone():null,n.allDay=null,this.view.calendar.normalizeEventDates(n),n.className=(n.className||[]).concat("fc-helper"),e||(n.editable=!1),n},renderHelper:function(t,e){},unrenderHelper:function(){},renderSelection:function(t){this.renderHighlight(t)},unrenderSelection:function(){this.unrenderHighlight()},computeSelection:function(t,e){var n=this.computeSelectionSpan(t,e);return!(n&&!this.view.calendar.isSelectionSpanAllowed(n))&&n},computeSelectionSpan:function(t,e){var n=[t.start,t.end,e.start,e.end];return n.sort(st),{start:n[0].clone(),end:n[3].clone()}},renderHighlight:function(t){this.renderFill("highlight",this.spanToSegs(t))},unrenderHighlight:function(){this.unrenderFill("highlight")},highlightSegClasses:function(){return["fc-highlight"]},renderBusinessHours:function(){},unrenderBusinessHours:function(){},getNowIndicatorUnit:function(){},renderNowIndicator:function(t){},unrenderNowIndicator:function(){},renderFill:function(t,e){},unrenderFill:function(t){var e=this.elsByFill[t];e&&(e.remove(),delete this.elsByFill[t])},renderFillSegEls:function(e,n){var i,r=this,s=this[e+"SegEl"],o="",l=[];if(n.length){for(i=0;i<n.length;i++)o+=this.fillSegHtml(e,n[i]);t(o).each(function(e,i){var o=n[e],a=t(i);s&&(a=s.call(r,o,a)),a&&(a=t(a),a.is(r.fillSegTag)&&(o.el=a,l.push(o)))})}return l},fillSegTag:"div",fillSegHtml:function(t,e){var n=this[t+"SegClasses"],i=this[t+"SegCss"],r=n?n.call(this,e):[],s=nt(i?i.call(this,e):{});return"<"+this.fillSegTag+(r.length?' class="'+r.join(" ")+'"':"")+(s?' style="'+s+'"':"")+" />"},getDayClasses:function(t){var e=this.view,n=e.calendar.getNow(),i=["fc-"+$t[t.day()]];return 1==e.intervalDuration.as("months")&&t.month()!=e.intervalStart.month()&&i.push("fc-other-month"),t.isSame(n,"day")?i.push("fc-today",e.highlightStateClass):t<n?i.push("fc-past"):i.push("fc-future"),i}});ge.mixin({segSelector:".fc-event-container > *",mousedOverSeg:null,isDraggingSeg:!1,isResizingSeg:!1,isDraggingExternal:!1,segs:null,renderEvents:function(t){var e,n=[],i=[];for(e=0;e<t.length;e++)(Tt(t[e])?n:i).push(t[e]);this.segs=[].concat(this.renderBgEvents(n),this.renderFgEvents(i))},renderBgEvents:function(t){var e=this.eventsToSegs(t);return this.renderBgSegs(e)||e},renderFgEvents:function(t){var e=this.eventsToSegs(t);return this.renderFgSegs(e)||e},unrenderEvents:function(){this.handleSegMouseout(),this.clearDragListeners(),this.unrenderFgSegs(),this.unrenderBgSegs(),this.segs=null},getEventSegs:function(){return this.segs||[]},renderFgSegs:function(t){},unrenderFgSegs:function(){},renderFgSegEls:function(e,n){var i,r=this.view,s="",o=[];if(e.length){for(i=0;i<e.length;i++)s+=this.fgSegHtml(e[i],n);t(s).each(function(n,i){var s=e[n],l=r.resolveEventEl(s.event,t(i));l&&(l.data("fc-seg",s),s.el=l,o.push(s))})}return o},fgSegHtml:function(t,e){},renderBgSegs:function(t){return this.renderFill("bgEvent",t)},unrenderBgSegs:function(){this.unrenderFill("bgEvent")},bgEventSegEl:function(t,e){return this.view.resolveEventEl(t.event,e)},bgEventSegClasses:function(t){var e=t.event,n=e.source||{};return["fc-bgevent"].concat(e.className,n.className||[])},bgEventSegCss:function(t){return{"background-color":this.getSegSkinCss(t)["background-color"]}},businessHoursSegClasses:function(t){return["fc-nonbusiness","fc-bgevent"]},buildBusinessHourSegs:function(e){var n=this.view.calendar.getCurrentBusinessHourEvents(e);return!n.length&&this.view.calendar.options.businessHours&&(n=[t.extend({},xe,{start:this.view.end,end:this.view.end,dow:null})]),this.eventsToSegs(n)},bindSegHandlers:function(){this.bindSegHandlersToEl(this.el)},bindSegHandlersToEl:function(t){this.bindSegHandlerToEl(t,"touchstart",this.handleSegTouchStart),this.bindSegHandlerToEl(t,"touchend",this.handleSegTouchEnd),this.bindSegHandlerToEl(t,"mouseenter",this.handleSegMouseover),this.bindSegHandlerToEl(t,"mouseleave",this.handleSegMouseout),this.bindSegHandlerToEl(t,"mousedown",this.handleSegMousedown),this.bindSegHandlerToEl(t,"click",this.handleSegClick)},bindSegHandlerToEl:function(e,n,i){var r=this;e.on(n,this.segSelector,function(e){var n=t(this).data("fc-seg");if(n&&!r.isDraggingSeg&&!r.isResizingSeg)return i.call(r,n,e)})},handleSegClick:function(t,e){var n=this.view.trigger("eventClick",t.el[0],t.event,e);n===!1&&e.preventDefault()},handleSegMouseover:function(t,e){this.isIgnoringMouse||this.mousedOverSeg||(this.mousedOverSeg=t,this.view.isEventResizable(t.event)&&t.el.addClass("fc-allow-mouse-resize"),this.view.trigger("eventMouseover",t.el[0],t.event,e))},handleSegMouseout:function(t,e){e=e||{},this.mousedOverSeg&&(t=t||this.mousedOverSeg,this.mousedOverSeg=null,this.view.isEventResizable(t.event)&&t.el.removeClass("fc-allow-mouse-resize"),this.view.trigger("eventMouseout",t.el[0],t.event,e))},handleSegMousedown:function(t,e){var n=this.startSegResize(t,e,{distance:5});!n&&this.view.isEventDraggable(t.event)&&this.buildSegDragListener(t).startInteraction(e,{distance:5})},handleSegTouchStart:function(t,e){var n,i=this.view,r=t.event,s=i.isEventSelected(r),o=i.isEventDraggable(r),l=i.isEventResizable(r),a=!1;s&&l&&(a=this.startSegResize(t,e)),a||!o&&!l||(n=o?this.buildSegDragListener(t):this.buildSegSelectListener(t),n.startInteraction(e,{delay:s?0:this.view.opt("longPressDelay")})),this.tempIgnoreMouse()},handleSegTouchEnd:function(t,e){this.tempIgnoreMouse()},startSegResize:function(e,n,i){return!!t(n.target).is(".fc-resizer")&&(this.buildSegResizeListener(e,t(n.target).is(".fc-start-resizer")).startInteraction(n,i),!0)},buildSegDragListener:function(t){var e,n,i,r=this,l=this.view,a=l.calendar,u=t.el,c=t.event;if(this.segDragListener)return this.segDragListener;var d=this.segDragListener=new he(l,{scroll:l.opt("dragScroll"),subjectEl:u,subjectCenter:!0,interactionStart:function(i){t.component=r,e=!1,n=new fe(t.el,{additionalClass:"fc-dragging",parentEl:l.el,opacity:d.isTouch?null:l.opt("dragOpacity"),revertDuration:l.opt("dragRevertDuration"),zIndex:2}),n.hide(),n.start(i)},dragStart:function(n){d.isTouch&&!l.isEventSelected(c)&&l.selectEvent(c),e=!0,r.handleSegMouseout(t,n),r.segDragStart(t,n),l.hideEvent(c)},hitOver:function(e,o,u){var h;t.hit&&(u=t.hit),i=r.computeEventDrop(u.component.getHitSpan(u),e.component.getHitSpan(e),c),i&&!a.isEventSpanAllowed(r.eventToSpan(i),c)&&(s(),i=null),i&&(h=l.renderDrag(i,t))?(h.addClass("fc-dragging"),d.isTouch||r.applyDragOpacity(h),n.hide()):n.show(),o&&(i=null)},hitOut:function(){l.unrenderDrag(),n.show(),i=null},hitDone:function(){o()},interactionEnd:function(s){delete t.component,n.stop(!i,function(){e&&(l.unrenderDrag(),l.showEvent(c),r.segDragStop(t,s)),i&&l.reportEventDrop(c,i,this.largeUnit,u,s)}),r.segDragListener=null}});return d},buildSegSelectListener:function(t){var e=this,n=this.view,i=t.event;if(this.segDragListener)return this.segDragListener;var r=this.segDragListener=new de({dragStart:function(t){r.isTouch&&!n.isEventSelected(i)&&n.selectEvent(i)},interactionEnd:function(t){e.segDragListener=null}});return r},segDragStart:function(t,e){this.isDraggingSeg=!0,this.view.trigger("eventDragStart",t.el[0],t.event,e,{})},segDragStop:function(t,e){this.isDraggingSeg=!1,this.view.trigger("eventDragStop",t.el[0],t.event,e,{})},computeEventDrop:function(t,e,n){var i,r,s=this.view.calendar,o=t.start,l=e.start;return o.hasTime()===l.hasTime()?(i=this.diffDates(l,o),n.allDay&&W(i)?(r={start:n.start.clone(),end:s.getEventEnd(n),allDay:!1},s.normalizeEventTimes(r)):r=Ht(n),r.start.add(i),r.end&&r.end.add(i)):r={start:l.clone(),end:null,allDay:!l.hasTime()},r},applyDragOpacity:function(t){var e=this.view.opt("dragOpacity");null!=e&&t.css("opacity",e)},externalDragStart:function(e,n){var i,r,s=this.view;s.opt("droppable")&&(i=t((n?n.item:null)||e.target),r=s.opt("dropAccept"),(t.isFunction(r)?r.call(i[0],i):i.is(r))&&(this.isDraggingExternal||this.listenToExternalDrag(i,e,n)))},listenToExternalDrag:function(t,e,n){var i,r=this,l=this.view.calendar,a=Lt(t),u=r.externalDragListener=new he(this,{interactionStart:function(){r.isDraggingExternal=!0},hitOver:function(t){i=r.computeExternalDrop(t.component.getHitSpan(t),a),i&&!l.isExternalSpanAllowed(r.eventToSpan(i),i,a.eventProps)&&(s(),i=null),i&&r.renderDrag(i)},hitOut:function(){i=null},hitDone:function(){o(),r.unrenderDrag()},interactionEnd:function(e){i&&r.view.reportExternalDrop(a,i,t,e,n),r.isDraggingExternal=!1,r.externalDragListener=null}});u.startDrag(e)},computeExternalDrop:function(t,e){var n=this.view.calendar,i={start:n.applyTimezone(t.start),end:null};return e.startTime&&!i.start.hasTime()&&i.start.time(e.startTime),e.duration&&(i.end=i.start.clone().add(e.duration)),i},renderDrag:function(t,e){},unrenderDrag:function(){},buildSegResizeListener:function(t,e){var n,i,r=this,l=this.view,a=l.calendar,u=t.el,c=t.event,d=a.getEventEnd(c),h=this.segResizeListener=new he(this,{scroll:l.opt("dragScroll"),subjectEl:u,interactionStart:function(){n=!1},dragStart:function(e){n=!0,r.handleSegMouseout(t,e),r.segResizeStart(t,e)},hitOver:function(n,o,u){var h=r.getHitSpan(u),f=r.getHitSpan(n);i=e?r.computeEventStartResize(h,f,c):r.computeEventEndResize(h,f,c),i&&(a.isEventSpanAllowed(r.eventToSpan(i),c)?i.start.isSame(c.start.clone().stripZone())&&i.end.isSame(d.clone().stripZone())&&(i=null):(s(),i=null)),i&&(l.hideEvent(c),r.renderEventResize(i,t))},hitOut:function(){i=null},hitDone:function(){r.unrenderEventResize(),l.showEvent(c),o()},interactionEnd:function(e){n&&r.segResizeStop(t,e),i&&l.reportEventResize(c,i,this.largeUnit,u,e),r.segResizeListener=null}});return h},segResizeStart:function(t,e){this.isResizingSeg=!0,this.view.trigger("eventResizeStart",t.el[0],t.event,e,{})},segResizeStop:function(t,e){this.isResizingSeg=!1,this.view.trigger("eventResizeStop",t.el[0],t.event,e,{})},computeEventStartResize:function(t,e,n){return this.computeEventResize("start",t,e,n)},computeEventEndResize:function(t,e,n){return this.computeEventResize("end",t,e,n)},computeEventResize:function(t,e,n,i){var r,s,o=this.view.calendar,l=this.diffDates(n[t],e[t]);return r={start:i.start.clone(),end:o.getEventEnd(i),allDay:i.allDay},r.allDay&&W(l)&&(r.allDay=!1,o.normalizeEventTimes(r)),r[t].add(l),r.start.isBefore(r.end)||(s=this.minResizeDuration||(i.allDay?o.defaultAllDayEventDuration:o.defaultTimedEventDuration),"start"==t?r.start=r.end.clone().subtract(s):r.end=r.start.clone().add(s)),r},renderEventResize:function(t,e){},unrenderEventResize:function(){},getEventTimeText:function(t,e,n){return null==e&&(e=this.eventTimeFormat),null==n&&(n=this.displayEventEnd),this.displayEventTime&&t.start.hasTime()?n&&t.end?this.view.formatRange(t,e):t.start.format(e):""},getSegClasses:function(t,e,n){var i=this.view,r=["fc-event",t.isStart?"fc-start":"fc-not-start",t.isEnd?"fc-end":"fc-not-end"].concat(this.getSegCustomClasses(t));return e&&r.push("fc-draggable"),n&&r.push("fc-resizable"),i.isEventSelected(t.event)&&r.push("fc-selected"),r},getSegCustomClasses:function(t){var e=t.event;return[].concat(e.className,e.source?e.source.className:[])},getSegSkinCss:function(t){return{"background-color":this.getSegBackgroundColor(t),"border-color":this.getSegBorderColor(t),color:this.getSegTextColor(t)}},getSegBackgroundColor:function(t){return t.event.backgroundColor||t.event.color||this.getSegDefaultBackgroundColor(t)},getSegDefaultBackgroundColor:function(t){var e=t.event.source||{};return e.backgroundColor||e.color||this.view.opt("eventBackgroundColor")||this.view.opt("eventColor")},getSegBorderColor:function(t){return t.event.borderColor||t.event.color||this.getSegDefaultBorderColor(t)},getSegDefaultBorderColor:function(t){var e=t.event.source||{};return e.borderColor||e.color||this.view.opt("eventBorderColor")||this.view.opt("eventColor")},getSegTextColor:function(t){return t.event.textColor||this.getSegDefaultTextColor(t)},getSegDefaultTextColor:function(t){var e=t.event.source||{};return e.textColor||this.view.opt("eventTextColor")},eventToSegs:function(t){return this.eventsToSegs([t])},eventToSpan:function(t){return this.eventToSpans(t)[0]},eventToSpans:function(t){var e=this.eventToRange(t);return this.eventRangeToSpans(e,t)},eventsToSegs:function(e,n){var i=this,r=It(e),s=[];return t.each(r,function(t,e){var r,o=[];for(r=0;r<e.length;r++)o.push(i.eventToRange(e[r]));if(xt(e[0]))for(o=i.invertRanges(o),r=0;r<o.length;r++)s.push.apply(s,i.eventRangeToSegs(o[r],e[0],n));else for(r=0;r<o.length;r++)s.push.apply(s,i.eventRangeToSegs(o[r],e[r],n))}),s},eventToRange:function(t){var e=this.view.calendar,n=t.start.clone().stripZone(),i=(t.end?t.end.clone():e.getDefaultEventEnd(null!=t.allDay?t.allDay:!t.start.hasTime(),t.start)).stripZone();return e.localizeMoment(n),e.localizeMoment(i),{start:n,end:i}},eventRangeToSegs:function(t,e,n){var i,r=this.eventRangeToSpans(t,e),s=[];for(i=0;i<r.length;i++)s.push.apply(s,this.eventSpanToSegs(r[i],e,n));return s},eventRangeToSpans:function(e,n){return[t.extend({},e)]},eventSpanToSegs:function(t,e,n){var i,r,s=n?n(t):this.spanToSegs(t);for(i=0;i<s.length;i++)r=s[i],r.event=e,r.eventStartMS=+t.start,r.eventDurationMS=t.end-t.start;return s},invertRanges:function(t){var e,n,i=this.view,r=i.start.clone(),s=i.end.clone(),o=[],l=r;for(t.sort(kt),e=0;e<t.length;e++)n=t[e],n.start>l&&o.push({start:l,end:n.start}),l=n.end;return l<s&&o.push({start:l,end:s}),o},sortEventSegs:function(t){t.sort(lt(this,"compareEventSegs"))},compareEventSegs:function(t,e){return t.eventStartMS-e.eventStartMS||e.eventDurationMS-t.eventDurationMS||e.event.allDay-t.event.allDay||M(t.event,e.event,this.view.eventOrderSpecs)}}),jt.pluckEventDateProps=Ht,jt.isBgEvent=Tt,jt.dataAttrPrefix="";var pe=jt.DayTableMixin={breakOnWeeks:!1,dayDates:null,dayIndices:null,daysPerRow:null,rowCnt:null,colCnt:null,colHeadFormat:null,updateDayTable:function(){for(var t,e,n,i=this.view,r=this.start.clone(),s=-1,o=[],l=[];r.isBefore(this.end);)i.isHiddenDay(r)?o.push(s+.5):(s++,o.push(s),l.push(r.clone())),r.add(1,"days");if(this.breakOnWeeks){for(e=l[0].day(),t=1;t<l.length&&l[t].day()!=e;t++);n=Math.ceil(l.length/t)}else n=1,t=l.length;this.dayDates=l,this.dayIndices=o,this.daysPerRow=t,this.rowCnt=n,this.updateDayTableCols()},updateDayTableCols:function(){this.colCnt=this.computeColCnt(),this.colHeadFormat=this.view.opt("columnFormat")||this.computeColHeadFormat()},computeColCnt:function(){return this.daysPerRow},getCellDate:function(t,e){return this.dayDates[this.getCellDayIndex(t,e)].clone()},getCellRange:function(t,e){var n=this.getCellDate(t,e),i=n.clone().add(1,"days");return{start:n,end:i}},getCellDayIndex:function(t,e){return t*this.daysPerRow+this.getColDayIndex(e)},getColDayIndex:function(t){return this.isRTL?this.colCnt-1-t:t},getDateDayIndex:function(t){var e=this.dayIndices,n=t.diff(this.start,"days");return n<0?e[0]-1:n>=e.length?e[e.length-1]+1:e[n]},computeColHeadFormat:function(){return this.rowCnt>1||this.colCnt>10?"ddd":this.colCnt>1?this.view.opt("dayOfMonthFormat"):"dddd"},sliceRangeByRow:function(t){var e,n,i,r,s,o=this.daysPerRow,l=this.view.computeDayRange(t),a=this.getDateDayIndex(l.start),u=this.getDateDayIndex(l.end.clone().subtract(1,"days")),c=[];for(e=0;e<this.rowCnt;e++)n=e*o,i=n+o-1,r=Math.max(a,n),s=Math.min(u,i),r=Math.ceil(r),s=Math.floor(s),r<=s&&c.push({row:e,firstRowDayIndex:r-n,lastRowDayIndex:s-n,isStart:r===a,isEnd:s===u});return c},sliceRangeByDay:function(t){var e,n,i,r,s,o,l=this.daysPerRow,a=this.view.computeDayRange(t),u=this.getDateDayIndex(a.start),c=this.getDateDayIndex(a.end.clone().subtract(1,"days")),d=[];for(e=0;e<this.rowCnt;e++)for(n=e*l,i=n+l-1,r=n;r<=i;r++)s=Math.max(u,r),o=Math.min(c,r),s=Math.ceil(s),o=Math.floor(o),s<=o&&d.push({row:e,firstRowDayIndex:s-n,lastRowDayIndex:o-n,isStart:s===u,isEnd:o===c});return d},renderHeadHtml:function(){var t=this.view;return'<div class="fc-row '+t.widgetHeaderClass+'"><table><thead>'+this.renderHeadTrHtml()+"</thead></table></div>"},renderHeadIntroHtml:function(){return this.renderIntroHtml()},renderHeadTrHtml:function(){return"<tr>"+(this.isRTL?"":this.renderHeadIntroHtml())+this.renderHeadDateCellsHtml()+(this.isRTL?this.renderHeadIntroHtml():"")+"</tr>";
+},renderHeadDateCellsHtml:function(){var t,e,n=[];for(t=0;t<this.colCnt;t++)e=this.getCellDate(0,t),n.push(this.renderHeadDateCellHtml(e));return n.join("")},renderHeadDateCellHtml:function(t,e,n){var i=this.view;return'<th class="fc-day-header '+i.widgetHeaderClass+" fc-"+$t[t.day()]+'"'+(1===this.rowCnt?' data-date="'+t.format("YYYY-MM-DD")+'"':"")+(e>1?' colspan="'+e+'"':"")+(n?" "+n:"")+">"+i.buildGotoAnchorHtml({date:t,forceOff:this.rowCnt>1||1===this.colCnt},tt(t.format(this.colHeadFormat)))+"</th>"},renderBgTrHtml:function(t){return"<tr>"+(this.isRTL?"":this.renderBgIntroHtml(t))+this.renderBgCellsHtml(t)+(this.isRTL?this.renderBgIntroHtml(t):"")+"</tr>"},renderBgIntroHtml:function(t){return this.renderIntroHtml()},renderBgCellsHtml:function(t){var e,n,i=[];for(e=0;e<this.colCnt;e++)n=this.getCellDate(t,e),i.push(this.renderBgCellHtml(n));return i.join("")},renderBgCellHtml:function(t,e){var n=this.view,i=this.getDayClasses(t);return i.unshift("fc-day",n.widgetContentClass),'<td class="'+i.join(" ")+'" data-date="'+t.format("YYYY-MM-DD")+'"'+(e?" "+e:"")+"></td>"},renderIntroHtml:function(){},bookendCells:function(t){var e=this.renderIntroHtml();e&&(this.isRTL?t.append(e):t.prepend(e))}},ve=jt.DayGrid=ge.extend(pe,{numbersVisible:!1,bottomCoordPadding:0,rowEls:null,cellEls:null,helperEls:null,rowCoordCache:null,colCoordCache:null,renderDates:function(t){var e,n,i=this.view,r=this.rowCnt,s=this.colCnt,o="";for(e=0;e<r;e++)o+=this.renderDayRowHtml(e,t);for(this.el.html(o),this.rowEls=this.el.find(".fc-row"),this.cellEls=this.el.find(".fc-day"),this.rowCoordCache=new ce({els:this.rowEls,isVertical:!0}),this.colCoordCache=new ce({els:this.cellEls.slice(0,this.colCnt),isHorizontal:!0}),e=0;e<r;e++)for(n=0;n<s;n++)i.trigger("dayRender",null,this.getCellDate(e,n),this.getCellEl(e,n))},unrenderDates:function(){this.removeSegPopover()},renderBusinessHours:function(){var t=this.buildBusinessHourSegs(!0);this.renderFill("businessHours",t,"bgevent")},unrenderBusinessHours:function(){this.unrenderFill("businessHours")},renderDayRowHtml:function(t,e){var n=this.view,i=["fc-row","fc-week",n.widgetContentClass];return e&&i.push("fc-rigid"),'<div class="'+i.join(" ")+'"><div class="fc-bg"><table>'+this.renderBgTrHtml(t)+'</table></div><div class="fc-content-skeleton"><table>'+(this.numbersVisible?"<thead>"+this.renderNumberTrHtml(t)+"</thead>":"")+"</table></div></div>"},renderNumberTrHtml:function(t){return"<tr>"+(this.isRTL?"":this.renderNumberIntroHtml(t))+this.renderNumberCellsHtml(t)+(this.isRTL?this.renderNumberIntroHtml(t):"")+"</tr>"},renderNumberIntroHtml:function(t){return this.renderIntroHtml()},renderNumberCellsHtml:function(t){var e,n,i=[];for(e=0;e<this.colCnt;e++)n=this.getCellDate(t,e),i.push(this.renderNumberCellHtml(n));return i.join("")},renderNumberCellHtml:function(t){var e,n,i="";return this.view.dayNumbersVisible||this.view.cellWeekNumbersVisible?(e=this.getDayClasses(t),e.unshift("fc-day-top"),this.view.cellWeekNumbersVisible&&(n="ISO"===t._locale._fullCalendar_weekCalc?1:t._locale.firstDayOfWeek()),i+='<td class="'+e.join(" ")+'" data-date="'+t.format()+'">',this.view.cellWeekNumbersVisible&&t.day()==n&&(i+=this.view.buildGotoAnchorHtml({date:t,type:"week"},{class:"fc-week-number"},t.format("w"))),this.view.dayNumbersVisible&&(i+=this.view.buildGotoAnchorHtml(t,{class:"fc-day-number"},t.date())),i+="</td>"):"<td/>"},computeEventTimeFormat:function(){return this.view.opt("extraSmallTimeFormat")},computeDisplayEventEnd:function(){return 1==this.colCnt},rangeUpdated:function(){this.updateDayTable()},spanToSegs:function(t){var e,n,i=this.sliceRangeByRow(t);for(e=0;e<i.length;e++)n=i[e],this.isRTL?(n.leftCol=this.daysPerRow-1-n.lastRowDayIndex,n.rightCol=this.daysPerRow-1-n.firstRowDayIndex):(n.leftCol=n.firstRowDayIndex,n.rightCol=n.lastRowDayIndex);return i},prepareHits:function(){this.colCoordCache.build(),this.rowCoordCache.build(),this.rowCoordCache.bottoms[this.rowCnt-1]+=this.bottomCoordPadding},releaseHits:function(){this.colCoordCache.clear(),this.rowCoordCache.clear()},queryHit:function(t,e){if(this.colCoordCache.isLeftInBounds(t)&&this.rowCoordCache.isTopInBounds(e)){var n=this.colCoordCache.getHorizontalIndex(t),i=this.rowCoordCache.getVerticalIndex(e);if(null!=i&&null!=n)return this.getCellHit(i,n)}},getHitSpan:function(t){return this.getCellRange(t.row,t.col)},getHitEl:function(t){return this.getCellEl(t.row,t.col)},getCellHit:function(t,e){return{row:t,col:e,component:this,left:this.colCoordCache.getLeftOffset(e),right:this.colCoordCache.getRightOffset(e),top:this.rowCoordCache.getTopOffset(t),bottom:this.rowCoordCache.getBottomOffset(t)}},getCellEl:function(t,e){return this.cellEls.eq(t*this.colCnt+e)},renderDrag:function(t,e){if(this.renderHighlight(this.eventToSpan(t)),e&&e.component!==this)return this.renderEventLocationHelper(t,e)},unrenderDrag:function(){this.unrenderHighlight(),this.unrenderHelper()},renderEventResize:function(t,e){return this.renderHighlight(this.eventToSpan(t)),this.renderEventLocationHelper(t,e)},unrenderEventResize:function(){this.unrenderHighlight(),this.unrenderHelper()},renderHelper:function(e,n){var i,r=[],s=this.eventToSegs(e);return s=this.renderFgSegEls(s),i=this.renderSegRows(s),this.rowEls.each(function(e,s){var o,l=t(s),a=t('<div class="fc-helper-skeleton"><table/></div>');o=n&&n.row===e?n.el.position().top:l.find(".fc-content-skeleton tbody").position().top,a.css("top",o).find("table").append(i[e].tbodyEl),l.append(a),r.push(a[0])}),this.helperEls=t(r)},unrenderHelper:function(){this.helperEls&&(this.helperEls.remove(),this.helperEls=null)},fillSegTag:"td",renderFill:function(e,n,i){var r,s,o,l=[];for(n=this.renderFillSegEls(e,n),r=0;r<n.length;r++)s=n[r],o=this.renderFillRow(e,s,i),this.rowEls.eq(s.row).append(o),l.push(o[0]);return this.elsByFill[e]=t(l),n},renderFillRow:function(e,n,i){var r,s,o=this.colCnt,l=n.leftCol,a=n.rightCol+1;return i=i||e.toLowerCase(),r=t('<div class="fc-'+i+'-skeleton"><table><tr/></table></div>'),s=r.find("tr"),l>0&&s.append('<td colspan="'+l+'"/>'),s.append(n.el.attr("colspan",a-l)),a<o&&s.append('<td colspan="'+(o-a)+'"/>'),this.bookendCells(s),r}});ve.mixin({rowStructs:null,unrenderEvents:function(){this.removeSegPopover(),ge.prototype.unrenderEvents.apply(this,arguments)},getEventSegs:function(){return ge.prototype.getEventSegs.call(this).concat(this.popoverSegs||[])},renderBgSegs:function(e){var n=t.grep(e,function(t){return t.event.allDay});return ge.prototype.renderBgSegs.call(this,n)},renderFgSegs:function(e){var n;return e=this.renderFgSegEls(e),n=this.rowStructs=this.renderSegRows(e),this.rowEls.each(function(e,i){t(i).find(".fc-content-skeleton > table").append(n[e].tbodyEl)}),e},unrenderFgSegs:function(){for(var t,e=this.rowStructs||[];t=e.pop();)t.tbodyEl.remove();this.rowStructs=null},renderSegRows:function(t){var e,n,i=[];for(e=this.groupSegRows(t),n=0;n<e.length;n++)i.push(this.renderSegRow(n,e[n]));return i},fgSegHtml:function(t,e){var n,i,r=this.view,s=t.event,o=r.isEventDraggable(s),l=!e&&s.allDay&&t.isStart&&r.isEventResizableFromStart(s),a=!e&&s.allDay&&t.isEnd&&r.isEventResizableFromEnd(s),u=this.getSegClasses(t,o,l||a),c=nt(this.getSegSkinCss(t)),d="";return u.unshift("fc-day-grid-event","fc-h-event"),t.isStart&&(n=this.getEventTimeText(s),n&&(d='<span class="fc-time">'+tt(n)+"</span>")),i='<span class="fc-title">'+(tt(s.title||"")||"&nbsp;")+"</span>",'<a class="'+u.join(" ")+'"'+(s.url?' href="'+tt(s.url)+'"':"")+(c?' style="'+c+'"':"")+'><div class="fc-content">'+(this.isRTL?i+" "+d:d+" "+i)+"</div>"+(l?'<div class="fc-resizer fc-start-resizer" />':"")+(a?'<div class="fc-resizer fc-end-resizer" />':"")+"</a>"},renderSegRow:function(e,n){function i(e){for(;o<e;)c=(m[r-1]||[])[o],c?c.attr("rowspan",parseInt(c.attr("rowspan")||1,10)+1):(c=t("<td/>"),l.append(c)),v[r][o]=c,m[r][o]=c,o++}var r,s,o,l,a,u,c,d=this.colCnt,h=this.buildSegLevels(n),f=Math.max(1,h.length),g=t("<tbody/>"),p=[],v=[],m=[];for(r=0;r<f;r++){if(s=h[r],o=0,l=t("<tr/>"),p.push([]),v.push([]),m.push([]),s)for(a=0;a<s.length;a++){for(u=s[a],i(u.leftCol),c=t('<td class="fc-event-container"/>').append(u.el),u.leftCol!=u.rightCol?c.attr("colspan",u.rightCol-u.leftCol+1):m[r][o]=c;o<=u.rightCol;)v[r][o]=c,p[r][o]=u,o++;l.append(c)}i(d),this.bookendCells(l),g.append(l)}return{row:e,tbodyEl:g,cellMatrix:v,segMatrix:p,segLevels:h,segs:n}},buildSegLevels:function(t){var e,n,i,r=[];for(this.sortEventSegs(t),e=0;e<t.length;e++){for(n=t[e],i=0;i<r.length&&Mt(n,r[i]);i++);n.level=i,(r[i]||(r[i]=[])).push(n)}for(i=0;i<r.length;i++)r[i].sort(zt);return r},groupSegRows:function(t){var e,n=[];for(e=0;e<this.rowCnt;e++)n.push([]);for(e=0;e<t.length;e++)n[t[e].row].push(t[e]);return n}}),ve.mixin({segPopover:null,popoverSegs:null,removeSegPopover:function(){this.segPopover&&this.segPopover.hide()},limitRows:function(t){var e,n,i=this.rowStructs||[];for(e=0;e<i.length;e++)this.unlimitRow(e),n=!!t&&("number"==typeof t?t:this.computeRowLevelLimit(e)),n!==!1&&this.limitRow(e,n)},computeRowLevelLimit:function(e){function n(e,n){s=Math.max(s,t(n).outerHeight())}var i,r,s,o=this.rowEls.eq(e),l=o.height(),a=this.rowStructs[e].tbodyEl.children();for(i=0;i<a.length;i++)if(r=a.eq(i).removeClass("fc-limited"),s=0,r.find("> td > :first-child").each(n),r.position().top+s>l)return i;return!1},limitRow:function(e,n){function i(i){for(;b<i;)u=S.getCellSegs(e,b,n),u.length&&(h=s[n-1][b],y=S.renderMoreLink(e,b,u),m=t("<div/>").append(y),h.append(m),E.push(m[0])),b++}var r,s,o,l,a,u,c,d,h,f,g,p,v,m,y,S=this,w=this.rowStructs[e],E=[],b=0;if(n&&n<w.segLevels.length){for(r=w.segLevels[n-1],s=w.cellMatrix,o=w.tbodyEl.children().slice(n).addClass("fc-limited").get(),l=0;l<r.length;l++){for(a=r[l],i(a.leftCol),d=[],c=0;b<=a.rightCol;)u=this.getCellSegs(e,b,n),d.push(u),c+=u.length,b++;if(c){for(h=s[n-1][a.leftCol],f=h.attr("rowspan")||1,g=[],p=0;p<d.length;p++)v=t('<td class="fc-more-cell"/>').attr("rowspan",f),u=d[p],y=this.renderMoreLink(e,a.leftCol+p,[a].concat(u)),m=t("<div/>").append(y),v.append(m),g.push(v[0]),E.push(v[0]);h.addClass("fc-limited").after(t(g)),o.push(h[0])}}i(this.colCnt),w.moreEls=t(E),w.limitedEls=t(o)}},unlimitRow:function(t){var e=this.rowStructs[t];e.moreEls&&(e.moreEls.remove(),e.moreEls=null),e.limitedEls&&(e.limitedEls.removeClass("fc-limited"),e.limitedEls=null)},renderMoreLink:function(e,n,i){var r=this,s=this.view;return t('<a class="fc-more"/>').text(this.getMoreLinkText(i.length)).on("click",function(o){var l=s.opt("eventLimitClick"),a=r.getCellDate(e,n),u=t(this),c=r.getCellEl(e,n),d=r.getCellSegs(e,n),h=r.resliceDaySegs(d,a),f=r.resliceDaySegs(i,a);"function"==typeof l&&(l=s.trigger("eventLimitClick",null,{date:a,dayEl:c,moreEl:u,segs:h,hiddenSegs:f},o)),"popover"===l?r.showSegPopover(e,n,u,h):"string"==typeof l&&s.calendar.zoomTo(a,l)})},showSegPopover:function(t,e,n,i){var r,s,o=this,l=this.view,a=n.parent();r=1==this.rowCnt?l.el:this.rowEls.eq(t),s={className:"fc-more-popover",content:this.renderSegPopoverContent(t,e,i),parentEl:this.view.el,top:r.offset().top,autoHide:!0,viewportConstrain:l.opt("popoverViewportConstrain"),hide:function(){o.segPopover.removeElement(),o.segPopover=null,o.popoverSegs=null}},this.isRTL?s.right=a.offset().left+a.outerWidth()+1:s.left=a.offset().left-1,this.segPopover=new ue(s),this.segPopover.show(),this.bindSegHandlersToEl(this.segPopover.el)},renderSegPopoverContent:function(e,n,i){var r,s=this.view,o=s.opt("theme"),l=this.getCellDate(e,n).format(s.opt("dayPopoverFormat")),a=t('<div class="fc-header '+s.widgetHeaderClass+'"><span class="fc-close '+(o?"ui-icon ui-icon-closethick":"fc-icon fc-icon-x")+'"></span><span class="fc-title">'+tt(l)+'</span><div class="fc-clear"/></div><div class="fc-body '+s.widgetContentClass+'"><div class="fc-event-container"></div></div>'),u=a.find(".fc-event-container");for(i=this.renderFgSegEls(i,!0),this.popoverSegs=i,r=0;r<i.length;r++)this.prepareHits(),i[r].hit=this.getCellHit(e,n),this.releaseHits(),u.append(i[r].el);return a},resliceDaySegs:function(e,n){var i=t.map(e,function(t){return t.event}),r=n.clone(),s=r.clone().add(1,"days"),o={start:r,end:s};return e=this.eventsToSegs(i,function(t){var e=F(t,o);return e?[e]:[]}),this.sortEventSegs(e),e},getMoreLinkText:function(t){var e=this.view.opt("eventLimitText");return"function"==typeof e?e(t):"+"+t+" "+e},getCellSegs:function(t,e,n){for(var i,r=this.rowStructs[t].segMatrix,s=n||0,o=[];s<r.length;)i=r[s][e],i&&o.push(i),s++;return o}});var me=jt.TimeGrid=ge.extend(pe,{slotDuration:null,snapDuration:null,snapsPerSlot:null,minTime:null,maxTime:null,labelFormat:null,labelInterval:null,colEls:null,slatContainerEl:null,slatEls:null,nowIndicatorEls:null,colCoordCache:null,slatCoordCache:null,constructor:function(){ge.apply(this,arguments),this.processOptions()},renderDates:function(){this.el.html(this.renderHtml()),this.colEls=this.el.find(".fc-day"),this.slatContainerEl=this.el.find(".fc-slats"),this.slatEls=this.slatContainerEl.find("tr"),this.colCoordCache=new ce({els:this.colEls,isHorizontal:!0}),this.slatCoordCache=new ce({els:this.slatEls,isVertical:!0}),this.renderContentSkeleton()},renderHtml:function(){return'<div class="fc-bg"><table>'+this.renderBgTrHtml(0)+'</table></div><div class="fc-slats"><table>'+this.renderSlatRowHtml()+"</table></div>"},renderSlatRowHtml:function(){for(var t,n,i,r=this.view,s=this.isRTL,o="",l=e.duration(+this.minTime);l<this.maxTime;)t=this.start.clone().time(l),n=ot(_(l,this.labelInterval)),i='<td class="fc-axis fc-time '+r.widgetContentClass+'" '+r.axisStyleAttr()+">"+(n?"<span>"+tt(t.format(this.labelFormat))+"</span>":"")+"</td>",o+='<tr data-time="'+t.format("HH:mm:ss")+'"'+(n?"":' class="fc-minor"')+">"+(s?"":i)+'<td class="'+r.widgetContentClass+'"/>'+(s?i:"")+"</tr>",l.add(this.slotDuration);return o},processOptions:function(){var n,i=this.view,r=i.opt("slotDuration"),s=i.opt("snapDuration");r=e.duration(r),s=s?e.duration(s):r,this.slotDuration=r,this.snapDuration=s,this.snapsPerSlot=r/s,this.minResizeDuration=s,this.minTime=e.duration(i.opt("minTime")),this.maxTime=e.duration(i.opt("maxTime")),n=i.opt("slotLabelFormat"),t.isArray(n)&&(n=n[n.length-1]),this.labelFormat=n||i.opt("smallTimeFormat"),n=i.opt("slotLabelInterval"),this.labelInterval=n?e.duration(n):this.computeLabelInterval(r)},computeLabelInterval:function(t){var n,i,r;for(n=Fe.length-1;n>=0;n--)if(i=e.duration(Fe[n]),r=_(i,t),ot(r)&&r>1)return i;return e.duration(t)},computeEventTimeFormat:function(){return this.view.opt("noMeridiemTimeFormat")},computeDisplayEventEnd:function(){return!0},prepareHits:function(){this.colCoordCache.build(),this.slatCoordCache.build()},releaseHits:function(){this.colCoordCache.clear()},queryHit:function(t,e){var n=this.snapsPerSlot,i=this.colCoordCache,r=this.slatCoordCache;if(i.isLeftInBounds(t)&&r.isTopInBounds(e)){var s=i.getHorizontalIndex(t),o=r.getVerticalIndex(e);if(null!=s&&null!=o){var l=r.getTopOffset(o),a=r.getHeight(o),u=(e-l)/a,c=Math.floor(u*n),d=o*n+c,h=l+c/n*a,f=l+(c+1)/n*a;return{col:s,snap:d,component:this,left:i.getLeftOffset(s),right:i.getRightOffset(s),top:h,bottom:f}}}},getHitSpan:function(t){var e,n=this.getCellDate(0,t.col),i=this.computeSnapTime(t.snap);return n.time(i),e=n.clone().add(this.snapDuration),{start:n,end:e}},getHitEl:function(t){return this.colEls.eq(t.col)},rangeUpdated:function(){this.updateDayTable()},computeSnapTime:function(t){return e.duration(this.minTime+this.snapDuration*t)},spanToSegs:function(t){var e,n=this.sliceRangeByTimes(t);for(e=0;e<n.length;e++)this.isRTL?n[e].col=this.daysPerRow-1-n[e].dayIndex:n[e].col=n[e].dayIndex;return n},sliceRangeByTimes:function(t){var e,n,i,r,s=[];for(n=0;n<this.daysPerRow;n++)i=this.dayDates[n].clone(),r={start:i.clone().time(this.minTime),end:i.clone().time(this.maxTime)},e=F(t,r),e&&(e.dayIndex=n,s.push(e));return s},updateSize:function(t){this.slatCoordCache.build(),t&&this.updateSegVerticals([].concat(this.fgSegs||[],this.bgSegs||[],this.businessSegs||[]))},getTotalSlatHeight:function(){return this.slatContainerEl.outerHeight()},computeDateTop:function(t,n){return this.computeTimeTop(e.duration(t-n.clone().stripTime()))},computeTimeTop:function(t){var e,n,i=this.slatEls.length,r=(t-this.minTime)/this.slotDuration;return r=Math.max(0,r),r=Math.min(i,r),e=Math.floor(r),e=Math.min(e,i-1),n=r-e,this.slatCoordCache.getTopPosition(e)+this.slatCoordCache.getHeight(e)*n},renderDrag:function(t,e){return e?this.renderEventLocationHelper(t,e):void this.renderHighlight(this.eventToSpan(t))},unrenderDrag:function(){this.unrenderHelper(),this.unrenderHighlight()},renderEventResize:function(t,e){return this.renderEventLocationHelper(t,e)},unrenderEventResize:function(){this.unrenderHelper()},renderHelper:function(t,e){return this.renderHelperSegs(this.eventToSegs(t),e)},unrenderHelper:function(){this.unrenderHelperSegs()},renderBusinessHours:function(){this.renderBusinessSegs(this.buildBusinessHourSegs())},unrenderBusinessHours:function(){this.unrenderBusinessSegs()},getNowIndicatorUnit:function(){return"minute"},renderNowIndicator:function(e){var n,i=this.spanToSegs({start:e,end:e}),r=this.computeDateTop(e,e),s=[];for(n=0;n<i.length;n++)s.push(t('<div class="fc-now-indicator fc-now-indicator-line"></div>').css("top",r).appendTo(this.colContainerEls.eq(i[n].col))[0]);i.length>0&&s.push(t('<div class="fc-now-indicator fc-now-indicator-arrow"></div>').css("top",r).appendTo(this.el.find(".fc-content-skeleton"))[0]),this.nowIndicatorEls=t(s)},unrenderNowIndicator:function(){this.nowIndicatorEls&&(this.nowIndicatorEls.remove(),this.nowIndicatorEls=null)},renderSelection:function(t){this.view.opt("selectHelper")?this.renderEventLocationHelper(t):this.renderHighlight(t)},unrenderSelection:function(){this.unrenderHelper(),this.unrenderHighlight()},renderHighlight:function(t){this.renderHighlightSegs(this.spanToSegs(t))},unrenderHighlight:function(){this.unrenderHighlightSegs()}});me.mixin({colContainerEls:null,fgContainerEls:null,bgContainerEls:null,helperContainerEls:null,highlightContainerEls:null,businessContainerEls:null,fgSegs:null,bgSegs:null,helperSegs:null,highlightSegs:null,businessSegs:null,renderContentSkeleton:function(){var e,n,i="";for(e=0;e<this.colCnt;e++)i+='<td><div class="fc-content-col"><div class="fc-event-container fc-helper-container"></div><div class="fc-event-container"></div><div class="fc-highlight-container"></div><div class="fc-bgevent-container"></div><div class="fc-business-container"></div></div></td>';n=t('<div class="fc-content-skeleton"><table><tr>'+i+"</tr></table></div>"),this.colContainerEls=n.find(".fc-content-col"),this.helperContainerEls=n.find(".fc-helper-container"),this.fgContainerEls=n.find(".fc-event-container:not(.fc-helper-container)"),this.bgContainerEls=n.find(".fc-bgevent-container"),this.highlightContainerEls=n.find(".fc-highlight-container"),this.businessContainerEls=n.find(".fc-business-container"),this.bookendCells(n.find("tr")),this.el.append(n)},renderFgSegs:function(t){return t=this.renderFgSegsIntoContainers(t,this.fgContainerEls),this.fgSegs=t,t},unrenderFgSegs:function(){this.unrenderNamedSegs("fgSegs")},renderHelperSegs:function(e,n){var i,r,s,o=[];for(e=this.renderFgSegsIntoContainers(e,this.helperContainerEls),i=0;i<e.length;i++)r=e[i],n&&n.col===r.col&&(s=n.el,r.el.css({left:s.css("left"),right:s.css("right"),"margin-left":s.css("margin-left"),"margin-right":s.css("margin-right")})),o.push(r.el[0]);return this.helperSegs=e,t(o)},unrenderHelperSegs:function(){this.unrenderNamedSegs("helperSegs")},renderBgSegs:function(t){return t=this.renderFillSegEls("bgEvent",t),this.updateSegVerticals(t),this.attachSegsByCol(this.groupSegsByCol(t),this.bgContainerEls),this.bgSegs=t,t},unrenderBgSegs:function(){this.unrenderNamedSegs("bgSegs")},renderHighlightSegs:function(t){t=this.renderFillSegEls("highlight",t),this.updateSegVerticals(t),this.attachSegsByCol(this.groupSegsByCol(t),this.highlightContainerEls),this.highlightSegs=t},unrenderHighlightSegs:function(){this.unrenderNamedSegs("highlightSegs")},renderBusinessSegs:function(t){t=this.renderFillSegEls("businessHours",t),this.updateSegVerticals(t),this.attachSegsByCol(this.groupSegsByCol(t),this.businessContainerEls),this.businessSegs=t},unrenderBusinessSegs:function(){this.unrenderNamedSegs("businessSegs")},groupSegsByCol:function(t){var e,n=[];for(e=0;e<this.colCnt;e++)n.push([]);for(e=0;e<t.length;e++)n[t[e].col].push(t[e]);return n},attachSegsByCol:function(t,e){var n,i,r;for(n=0;n<this.colCnt;n++)for(i=t[n],r=0;r<i.length;r++)e.eq(n).append(i[r].el)},unrenderNamedSegs:function(t){var e,n=this[t];if(n){for(e=0;e<n.length;e++)n[e].el.remove();this[t]=null}},renderFgSegsIntoContainers:function(t,e){var n,i;for(t=this.renderFgSegEls(t),n=this.groupSegsByCol(t),i=0;i<this.colCnt;i++)this.updateFgSegCoords(n[i]);return this.attachSegsByCol(n,e),t},fgSegHtml:function(t,e){var n,i,r,s=this.view,o=t.event,l=s.isEventDraggable(o),a=!e&&t.isStart&&s.isEventResizableFromStart(o),u=!e&&t.isEnd&&s.isEventResizableFromEnd(o),c=this.getSegClasses(t,l,a||u),d=nt(this.getSegSkinCss(t));return c.unshift("fc-time-grid-event","fc-v-event"),s.isMultiDayEvent(o)?(t.isStart||t.isEnd)&&(n=this.getEventTimeText(t),i=this.getEventTimeText(t,"LT"),r=this.getEventTimeText(t,null,!1)):(n=this.getEventTimeText(o),i=this.getEventTimeText(o,"LT"),r=this.getEventTimeText(o,null,!1)),'<a class="'+c.join(" ")+'"'+(o.url?' href="'+tt(o.url)+'"':"")+(d?' style="'+d+'"':"")+'><div class="fc-content">'+(n?'<div class="fc-time" data-start="'+tt(r)+'" data-full="'+tt(i)+'"><span>'+tt(n)+"</span></div>":"")+(o.title?'<div class="fc-title">'+tt(o.title)+"</div>":"")+'</div><div class="fc-bg"/>'+(u?'<div class="fc-resizer fc-end-resizer" />':"")+"</a>"},updateSegVerticals:function(t){this.computeSegVerticals(t),this.assignSegVerticals(t)},computeSegVerticals:function(t){var e,n;for(e=0;e<t.length;e++)n=t[e],n.top=this.computeDateTop(n.start,n.start),n.bottom=this.computeDateTop(n.end,n.start)},assignSegVerticals:function(t){var e,n;for(e=0;e<t.length;e++)n=t[e],n.el.css(this.generateSegVerticalCss(n))},generateSegVerticalCss:function(t){return{top:t.top,bottom:-t.bottom}},updateFgSegCoords:function(t){this.computeSegVerticals(t),this.computeFgSegHorizontals(t),this.assignSegVerticals(t),this.assignFgSegHorizontals(t)},computeFgSegHorizontals:function(t){var e,n,i;if(this.sortEventSegs(t),e=Bt(t),Ft(e),n=e[0]){for(i=0;i<n.length;i++)Nt(n[i]);for(i=0;i<n.length;i++)this.computeFgSegForwardBack(n[i],0,0)}},computeFgSegForwardBack:function(t,e,n){var i,r=t.forwardSegs;if(void 0===t.forwardCoord)for(r.length?(this.sortForwardSegs(r),this.computeFgSegForwardBack(r[0],e+1,n),t.forwardCoord=r[0].backwardCoord):t.forwardCoord=1,t.backwardCoord=t.forwardCoord-(t.forwardCoord-n)/(e+1),i=0;i<r.length;i++)this.computeFgSegForwardBack(r[i],0,t.forwardCoord)},sortForwardSegs:function(t){t.sort(lt(this,"compareForwardSegs"))},compareForwardSegs:function(t,e){return e.forwardPressure-t.forwardPressure||(t.backwardCoord||0)-(e.backwardCoord||0)||this.compareEventSegs(t,e)},assignFgSegHorizontals:function(t){var e,n;for(e=0;e<t.length;e++)n=t[e],n.el.css(this.generateFgSegHorizontalCss(n)),n.bottom-n.top<30&&n.el.addClass("fc-short")},generateFgSegHorizontalCss:function(t){var e,n,i=this.view.opt("slotEventOverlap"),r=t.backwardCoord,s=t.forwardCoord,o=this.generateSegVerticalCss(t);return i&&(s=Math.min(1,r+2*(s-r))),this.isRTL?(e=1-s,n=r):(e=r,n=1-s),o.zIndex=t.level+1,o.left=100*e+"%",o.right=100*n+"%",i&&t.forwardPressure&&(o[this.isRTL?"marginLeft":"marginRight"]=20),o}});var ye=jt.View=wt.extend(oe,le,{type:null,name:null,title:null,calendar:null,options:null,el:null,displaying:null,isSkeletonRendered:!1,isEventsRendered:!1,start:null,end:null,intervalStart:null,intervalEnd:null,intervalDuration:null,intervalUnit:null,isRTL:!1,isSelected:!1,selectedEvent:null,eventOrderSpecs:null,widgetHeaderClass:null,widgetContentClass:null,highlightStateClass:null,nextDayThreshold:null,isHiddenDayHash:null,isNowIndicatorRendered:null,initialNowDate:null,initialNowQueriedMs:null,nowIndicatorTimeoutID:null,nowIndicatorIntervalID:null,constructor:function(t,n,i,r){this.calendar=t,this.type=this.name=n,this.options=i,this.intervalDuration=r||e.duration(1,"day"),this.nextDayThreshold=e.duration(this.opt("nextDayThreshold")),this.initThemingProps(),this.initHiddenDays(),this.isRTL=this.opt("isRTL"),this.eventOrderSpecs=L(this.opt("eventOrder")),this.initialize()},initialize:function(){},opt:function(t){return this.options[t]},trigger:function(t,e){var n=this.calendar;return n.trigger.apply(n,[t,e||this].concat(Array.prototype.slice.call(arguments,2),[this]))},setDate:function(t){this.setRange(this.computeRange(t))},setRange:function(e){t.extend(this,e),this.updateTitle()},computeRange:function(t){var e,n,i=A(this.intervalDuration),r=t.clone().startOf(i),s=r.clone().add(this.intervalDuration);return/year|month|week|day/.test(i)?(r.stripTime(),s.stripTime()):(r.hasTime()||(r=this.calendar.time(0)),s.hasTime()||(s=this.calendar.time(0))),e=r.clone(),e=this.skipHiddenDays(e),n=s.clone(),n=this.skipHiddenDays(n,-1,!0),{intervalUnit:i,intervalStart:r,intervalEnd:s,start:e,end:n}},computePrevDate:function(t){return this.massageCurrentDate(t.clone().startOf(this.intervalUnit).subtract(this.intervalDuration),-1)},computeNextDate:function(t){return this.massageCurrentDate(t.clone().startOf(this.intervalUnit).add(this.intervalDuration))},massageCurrentDate:function(t,e){return this.intervalDuration.as("days")<=1&&this.isHiddenDay(t)&&(t=this.skipHiddenDays(t,e),t.startOf("day")),t},updateTitle:function(){this.title=this.computeTitle()},computeTitle:function(){return this.formatRange({start:this.calendar.applyTimezone(this.intervalStart),end:this.calendar.applyTimezone(this.intervalEnd)},this.opt("titleFormat")||this.computeTitleFormat(),this.opt("titleRangeSeparator"))},computeTitleFormat:function(){return"year"==this.intervalUnit?"YYYY":"month"==this.intervalUnit?this.opt("monthYearFormat"):this.intervalDuration.as("days")>1?"ll":"LL"},formatRange:function(t,e,n){var i=t.end;return i.hasTime()||(i=i.clone().subtract(1)),pt(t.start,i,e,n,this.opt("isRTL"))},getAllDayHtml:function(){return this.opt("allDayHtml")||tt(this.opt("allDayText"))},buildGotoAnchorHtml:function(e,n,i){var r,s,o,l;return t.isPlainObject(e)?(r=e.date,s=e.type,o=e.forceOff):r=e,r=jt.moment(r),l={date:r.format("YYYY-MM-DD"),type:s||"day"},"string"==typeof n&&(i=n,n=null),n=n?" "+it(n):"",i=i||"",!o&&this.opt("navLinks")?"<a"+n+' data-goto="'+tt(JSON.stringify(l))+'">'+i+"</a>":"<span"+n+">"+i+"</span>"},setElement:function(t){this.el=t,this.bindGlobalHandlers()},removeElement:function(){this.clear(),this.isSkeletonRendered&&(this.unrenderSkeleton(),this.isSkeletonRendered=!1),this.unbindGlobalHandlers(),this.el.remove()},display:function(t,e){var n=this,i=null;return null!=e&&this.displaying&&(i=this.queryScroll()),this.calendar.freezeContentHeight(),ut(this.clear(),function(){return n.displaying=ut(n.displayView(t),function(){null!=e?n.setScroll(e):n.forceScroll(n.computeInitialScroll(i)),n.calendar.unfreezeContentHeight(),n.triggerRender()})})},clear:function(){var e=this,n=this.displaying;return n?ut(n,function(){return e.displaying=null,e.clearEvents(),e.clearView()}):t.when()},displayView:function(t){this.isSkeletonRendered||(this.renderSkeleton(),this.isSkeletonRendered=!0),t&&this.setDate(t),this.render&&this.render(),this.renderDates(),this.updateSize(),this.renderBusinessHours(),this.startNowIndicator()},clearView:function(){this.unselect(),this.stopNowIndicator(),this.triggerUnrender(),this.unrenderBusinessHours(),this.unrenderDates(),this.destroy&&this.destroy()},renderSkeleton:function(){},unrenderSkeleton:function(){},renderDates:function(){},unrenderDates:function(){},triggerRender:function(){this.trigger("viewRender",this,this,this.el)},triggerUnrender:function(){this.trigger("viewDestroy",this,this,this.el)},bindGlobalHandlers:function(){this.listenTo(t(document),"mousedown",this.handleDocumentMousedown),this.listenTo(t(document),"touchstart",this.processUnselect)},unbindGlobalHandlers:function(){this.stopListeningTo(t(document))},initThemingProps:function(){var t=this.opt("theme")?"ui":"fc";this.widgetHeaderClass=t+"-widget-header",this.widgetContentClass=t+"-widget-content",this.highlightStateClass=t+"-state-highlight"},renderBusinessHours:function(){},unrenderBusinessHours:function(){},startNowIndicator:function(){var t,n,i,r=this;this.opt("nowIndicator")&&(t=this.getNowIndicatorUnit(),t&&(n=lt(this,"updateNowIndicator"),this.initialNowDate=this.calendar.getNow(),this.initialNowQueriedMs=+new Date,this.renderNowIndicator(this.initialNowDate),this.isNowIndicatorRendered=!0,i=this.initialNowDate.clone().startOf(t).add(1,t)-this.initialNowDate,this.nowIndicatorTimeoutID=setTimeout(function(){r.nowIndicatorTimeoutID=null,n(),i=+e.duration(1,t),i=Math.max(100,i),r.nowIndicatorIntervalID=setInterval(n,i)},i)))},updateNowIndicator:function(){this.isNowIndicatorRendered&&(this.unrenderNowIndicator(),this.renderNowIndicator(this.initialNowDate.clone().add(new Date-this.initialNowQueriedMs)))},stopNowIndicator:function(){this.isNowIndicatorRendered&&(this.nowIndicatorTimeoutID&&(clearTimeout(this.nowIndicatorTimeoutID),this.nowIndicatorTimeoutID=null),this.nowIndicatorIntervalID&&(clearTimeout(this.nowIndicatorIntervalID),this.nowIndicatorIntervalID=null),this.unrenderNowIndicator(),this.isNowIndicatorRendered=!1)},getNowIndicatorUnit:function(){},renderNowIndicator:function(t){},unrenderNowIndicator:function(){},updateSize:function(t){var e;t&&(e=this.queryScroll()),this.updateHeight(t),this.updateWidth(t),this.updateNowIndicator(),t&&this.setScroll(e)},updateWidth:function(t){},updateHeight:function(t){var e=this.calendar;this.setHeight(e.getSuggestedViewHeight(),e.isHeightAuto())},setHeight:function(t,e){},computeInitialScroll:function(t){return 0},queryScroll:function(){},setScroll:function(t){},forceScroll:function(t){var e=this;this.setScroll(t),setTimeout(function(){e.setScroll(t)},0)},displayEvents:function(t){var e=this.queryScroll();this.clearEvents(),this.renderEvents(t),this.isEventsRendered=!0,this.setScroll(e),this.triggerEventRender()},clearEvents:function(){var t;this.isEventsRendered&&(t=this.queryScroll(),this.triggerEventUnrender(),this.destroyEvents&&this.destroyEvents(),this.unrenderEvents(),this.setScroll(t),this.isEventsRendered=!1)},renderEvents:function(t){},unrenderEvents:function(){},triggerEventRender:function(){this.renderedEventSegEach(function(t){this.trigger("eventAfterRender",t.event,t.event,t.el)}),this.trigger("eventAfterAllRender")},triggerEventUnrender:function(){this.renderedEventSegEach(function(t){this.trigger("eventDestroy",t.event,t.event,t.el)})},resolveEventEl:function(e,n){var i=this.trigger("eventRender",e,e,n);return i===!1?n=null:i&&i!==!0&&(n=t(i)),n},showEvent:function(t){this.renderedEventSegEach(function(t){t.el.css("visibility","")},t)},hideEvent:function(t){this.renderedEventSegEach(function(t){t.el.css("visibility","hidden")},t)},renderedEventSegEach:function(t,e){var n,i=this.getEventSegs();for(n=0;n<i.length;n++)e&&i[n].event._id!==e._id||i[n].el&&t.call(this,i[n])},getEventSegs:function(){return[]},isEventDraggable:function(t){return this.isEventStartEditable(t)},isEventStartEditable:function(t){return J(t.startEditable,(t.source||{}).startEditable,this.opt("eventStartEditable"),this.isEventGenerallyEditable(t))},isEventGenerallyEditable:function(t){return J(t.editable,(t.source||{}).editable,this.opt("editable"))},reportEventDrop:function(t,e,n,i,r){var s=this.calendar,o=s.mutateEvent(t,e,n),l=function(){o.undo(),s.reportEventChange()};this.triggerEventDrop(t,o.dateDelta,l,i,r),s.reportEventChange()},triggerEventDrop:function(t,e,n,i,r){this.trigger("eventDrop",i[0],t,e,n,r,{})},reportExternalDrop:function(e,n,i,r,s){var o,l,a=e.eventProps;a&&(o=t.extend({},a,n),l=this.calendar.renderEvent(o,e.stick)[0]),this.triggerExternalDrop(l,n,i,r,s);
+},triggerExternalDrop:function(t,e,n,i,r){this.trigger("drop",n[0],e.start,i,r),t&&this.trigger("eventReceive",null,t)},renderDrag:function(t,e){},unrenderDrag:function(){},isEventResizableFromStart:function(t){return this.opt("eventResizableFromStart")&&this.isEventResizable(t)},isEventResizableFromEnd:function(t){return this.isEventResizable(t)},isEventResizable:function(t){var e=t.source||{};return J(t.durationEditable,e.durationEditable,this.opt("eventDurationEditable"),t.editable,e.editable,this.opt("editable"))},reportEventResize:function(t,e,n,i,r){var s=this.calendar,o=s.mutateEvent(t,e,n),l=function(){o.undo(),s.reportEventChange()};this.triggerEventResize(t,o.durationDelta,l,i,r),s.reportEventChange()},triggerEventResize:function(t,e,n,i,r){this.trigger("eventResize",i[0],t,e,n,r,{})},select:function(t,e){this.unselect(e),this.renderSelection(t),this.reportSelection(t,e)},renderSelection:function(t){},reportSelection:function(t,e){this.isSelected=!0,this.triggerSelect(t,e)},triggerSelect:function(t,e){this.trigger("select",null,this.calendar.applyTimezone(t.start),this.calendar.applyTimezone(t.end),e)},unselect:function(t){this.isSelected&&(this.isSelected=!1,this.destroySelection&&this.destroySelection(),this.unrenderSelection(),this.trigger("unselect",null,t))},unrenderSelection:function(){},selectEvent:function(t){this.selectedEvent&&this.selectedEvent===t||(this.unselectEvent(),this.renderedEventSegEach(function(t){t.el.addClass("fc-selected")},t),this.selectedEvent=t)},unselectEvent:function(){this.selectedEvent&&(this.renderedEventSegEach(function(t){t.el.removeClass("fc-selected")},this.selectedEvent),this.selectedEvent=null)},isEventSelected:function(t){return this.selectedEvent&&this.selectedEvent._id===t._id},handleDocumentMousedown:function(t){S(t)&&this.processUnselect(t)},processUnselect:function(t){this.processRangeUnselect(t),this.processEventUnselect(t)},processRangeUnselect:function(e){var n;this.isSelected&&this.opt("unselectAuto")&&(n=this.opt("unselectCancel"),n&&t(e.target).closest(n).length||this.unselect(e))},processEventUnselect:function(e){this.selectedEvent&&(t(e.target).closest(".fc-selected").length||this.unselectEvent())},triggerDayClick:function(t,e,n){this.trigger("dayClick",e,this.calendar.applyTimezone(t.start),n)},initHiddenDays:function(){var e,n=this.opt("hiddenDays")||[],i=[],r=0;for(this.opt("weekends")===!1&&n.push(0,6),e=0;e<7;e++)(i[e]=t.inArray(e,n)!==-1)||r++;if(!r)throw"invalid hiddenDays";this.isHiddenDayHash=i},isHiddenDay:function(t){return e.isMoment(t)&&(t=t.day()),this.isHiddenDayHash[t]},skipHiddenDays:function(t,e,n){var i=t.clone();for(e=e||1;this.isHiddenDayHash[(i.day()+(n?e:0)+7)%7];)i.add(e,"days");return i},computeDayRange:function(t){var e,n=t.start.clone().stripTime(),i=t.end,r=null;return i&&(r=i.clone().stripTime(),e=+i.time(),e&&e>=this.nextDayThreshold&&r.add(1,"days")),(!i||r<=n)&&(r=n.clone().add(1,"days")),{start:n,end:r}},isMultiDayEvent:function(t){var e=this.computeDayRange(t);return e.end.diff(e.start,"days")>1}}),Se=jt.Scroller=wt.extend({el:null,scrollEl:null,overflowX:null,overflowY:null,constructor:function(t){t=t||{},this.overflowX=t.overflowX||t.overflow||"auto",this.overflowY=t.overflowY||t.overflow||"auto"},render:function(){this.el=this.renderEl(),this.applyOverflow()},renderEl:function(){return this.scrollEl=t('<div class="fc-scroller"></div>')},clear:function(){this.setHeight("auto"),this.applyOverflow()},destroy:function(){this.el.remove()},applyOverflow:function(){this.scrollEl.css({"overflow-x":this.overflowX,"overflow-y":this.overflowY})},lockOverflow:function(t){var e=this.overflowX,n=this.overflowY;t=t||this.getScrollbarWidths(),"auto"===e&&(e=t.top||t.bottom||this.scrollEl[0].scrollWidth-1>this.scrollEl[0].clientWidth?"scroll":"hidden"),"auto"===n&&(n=t.left||t.right||this.scrollEl[0].scrollHeight-1>this.scrollEl[0].clientHeight?"scroll":"hidden"),this.scrollEl.css({"overflow-x":e,"overflow-y":n})},setHeight:function(t){this.scrollEl.height(t)},getScrollTop:function(){return this.scrollEl.scrollTop()},setScrollTop:function(t){this.scrollEl.scrollTop(t)},getClientWidth:function(){return this.scrollEl[0].clientWidth},getClientHeight:function(){return this.scrollEl[0].clientHeight},getScrollbarWidths:function(){return p(this.scrollEl)}}),we=jt.Calendar=wt.extend({dirDefaults:null,localeDefaults:null,overrides:null,dynamicOverrides:null,options:null,viewSpecCache:null,view:null,header:null,loadingLevel:0,constructor:At,initialize:function(){},populateOptionsHash:function(){var t,e,i,r;t=J(this.dynamicOverrides.locale,this.overrides.locale),e=Ee[t],e||(t=we.defaults.locale,e=Ee[t]||{}),i=J(this.dynamicOverrides.isRTL,this.overrides.isRTL,e.isRTL,we.defaults.isRTL),r=i?we.rtlDefaults:{},this.dirDefaults=r,this.localeDefaults=e,this.options=n([we.defaults,r,e,this.overrides,this.dynamicOverrides]),Vt(this.options)},getViewSpec:function(t){var e=this.viewSpecCache;return e[t]||(e[t]=this.buildViewSpec(t))},getUnitViewSpec:function(e){var n,i,r;if(t.inArray(e,Xt)!=-1)for(n=this.header.getViewsWithButtons(),t.each(jt.views,function(t){n.push(t)}),i=0;i<n.length;i++)if(r=this.getViewSpec(n[i]),r&&r.singleUnit==e)return r},buildViewSpec:function(t){for(var i,r,s,o,l=this.overrides.views||{},a=[],u=[],c=[],d=t;d;)i=Ut[d],r=l[d],d=null,"function"==typeof i&&(i={class:i}),i&&(a.unshift(i),u.unshift(i.defaults||{}),s=s||i.duration,d=d||i.type),r&&(c.unshift(r),s=s||r.duration,d=d||r.type);return i=q(a),i.type=t,!!i.class&&(s&&(s=e.duration(s),s.valueOf()&&(i.duration=s,o=A(s),1===s.as(o)&&(i.singleUnit=o,c.unshift(l[o]||{})))),i.defaults=n(u),i.overrides=n(c),this.buildViewSpecOptions(i),this.buildViewSpecButtonText(i,t),i)},buildViewSpecOptions:function(t){t.options=n([we.defaults,t.defaults,this.dirDefaults,this.localeDefaults,this.overrides,t.overrides,this.dynamicOverrides]),Vt(t.options)},buildViewSpecButtonText:function(t,e){function n(n){var i=n.buttonText||{};return i[e]||(t.buttonTextKey?i[t.buttonTextKey]:null)||(t.singleUnit?i[t.singleUnit]:null)}t.buttonTextOverride=n(this.dynamicOverrides)||n(this.overrides)||t.overrides.buttonText,t.buttonTextDefault=n(this.localeDefaults)||n(this.dirDefaults)||t.defaults.buttonText||n(we.defaults)||(t.duration?this.humanizeDuration(t.duration):null)||e},instantiateView:function(t){var e=this.getViewSpec(t);return new e.class(this,t,e.options,e.duration)},isValidViewType:function(t){return Boolean(this.getViewSpec(t))},pushLoading:function(){this.loadingLevel++||this.trigger("loading",null,!0,this.view)},popLoading:function(){--this.loadingLevel||this.trigger("loading",null,!1,this.view)},buildSelectSpan:function(t,e){var n,i=this.moment(t).stripZone();return n=e?this.moment(e).stripZone():i.hasTime()?i.clone().add(this.defaultTimedEventDuration):i.clone().add(this.defaultAllDayEventDuration),{start:i,end:n}}});we.mixin(oe),we.mixin({optionHandlers:null,bindOption:function(t,e){this.bindOptions([t],e)},bindOptions:function(t,e){var n,i={func:e,names:t};for(n=0;n<t.length;n++)this.registerOptionHandlerObj(t[n],i);this.triggerOptionHandlerObj(i)},registerOptionHandlerObj:function(t,e){(this.optionHandlers[t]||(this.optionHandlers[t]=[])).push(e)},triggerOptionHandlers:function(t){var e,n=this.optionHandlers[t]||[];for(e=0;e<n.length;e++)this.triggerOptionHandlerObj(n[e])},triggerOptionHandlerObj:function(t){var e,n=t.names,i=[];for(e=0;e<n.length;e++)i.push(this.options[n[e]]);t.func.apply(this,i)}}),we.defaults={titleRangeSeparator:" – ",monthYearFormat:"MMMM YYYY",defaultTimedEventDuration:"02:00:00",defaultAllDayEventDuration:{days:1},forceEventDuration:!1,nextDayThreshold:"09:00:00",defaultView:"month",aspectRatio:1.35,header:{left:"title",center:"",right:"today prev,next"},weekends:!0,weekNumbers:!1,weekNumberTitle:"W",weekNumberCalculation:"local",scrollTime:"06:00:00",lazyFetching:!0,startParam:"start",endParam:"end",timezoneParam:"timezone",timezone:!1,isRTL:!1,buttonText:{prev:"prev",next:"next",prevYear:"prev year",nextYear:"next year",year:"year",today:"today",month:"month",week:"week",day:"day"},buttonIcons:{prev:"left-single-arrow",next:"right-single-arrow",prevYear:"left-double-arrow",nextYear:"right-double-arrow"},allDayText:"all-day",theme:!1,themeButtonIcons:{prev:"circle-triangle-w",next:"circle-triangle-e",prevYear:"seek-prev",nextYear:"seek-next"},dragOpacity:.75,dragRevertDuration:500,dragScroll:!0,unselectAuto:!0,dropAccept:"*",eventOrder:"title",eventLimit:!1,eventLimitText:"more",eventLimitClick:"popover",dayPopoverFormat:"LL",handleWindowResize:!0,windowResizeDelay:100,longPressDelay:1e3},we.englishDefaults={dayPopoverFormat:"dddd, MMMM D"},we.rtlDefaults={header:{left:"next,prev today",center:"",right:"title"},buttonIcons:{prev:"right-single-arrow",next:"left-single-arrow",prevYear:"right-double-arrow",nextYear:"left-double-arrow"},themeButtonIcons:{prev:"circle-triangle-e",next:"circle-triangle-w",nextYear:"seek-prev",prevYear:"seek-next"}};var Ee=jt.locales={};jt.datepickerLocale=function(e,n,i){var r=Ee[e]||(Ee[e]={});r.isRTL=i.isRTL,r.weekNumberTitle=i.weekHeader,t.each(be,function(t,e){r[t]=e(i)}),t.datepicker&&(t.datepicker.regional[n]=t.datepicker.regional[e]=i,t.datepicker.regional.en=t.datepicker.regional[""],t.datepicker.setDefaults(i))},jt.locale=function(e,i){var r,s;r=Ee[e]||(Ee[e]={}),i&&(r=Ee[e]=n([r,i])),s=Pt(e),t.each(De,function(t,e){null==r[t]&&(r[t]=e(s,r))}),we.defaults.locale=e};var be={buttonText:function(t){return{prev:et(t.prevText),next:et(t.nextText),today:et(t.currentText)}},monthYearFormat:function(t){return t.showMonthAfterYear?"YYYY["+t.yearSuffix+"] MMMM":"MMMM YYYY["+t.yearSuffix+"]"}},De={dayOfMonthFormat:function(t,e){var n=t.longDateFormat("l");return n=n.replace(/^Y+[^\w\s]*|[^\w\s]*Y+$/g,""),e.isRTL?n+=" ddd":n="ddd "+n,n},mediumTimeFormat:function(t){return t.longDateFormat("LT").replace(/\s*a$/i,"a")},smallTimeFormat:function(t){return t.longDateFormat("LT").replace(":mm","(:mm)").replace(/(\Wmm)$/,"($1)").replace(/\s*a$/i,"a")},extraSmallTimeFormat:function(t){return t.longDateFormat("LT").replace(":mm","(:mm)").replace(/(\Wmm)$/,"($1)").replace(/\s*a$/i,"t")},hourFormat:function(t){return t.longDateFormat("LT").replace(":mm","").replace(/(\Wmm)$/,"").replace(/\s*a$/i,"a")},noMeridiemTimeFormat:function(t){return t.longDateFormat("LT").replace(/\s*a$/i,"")}},Ce={smallDayDateFormat:function(t){return t.isRTL?"D dd":"dd D"},weekFormat:function(t){return t.isRTL?"w[ "+t.weekNumberTitle+"]":"["+t.weekNumberTitle+" ]w"},smallWeekFormat:function(t){return t.isRTL?"w["+t.weekNumberTitle+"]":"["+t.weekNumberTitle+"]w"}};jt.locale("en",we.englishDefaults),jt.sourceNormalizers=[],jt.sourceFetchers=[];var He={dataType:"json",cache:!1},Te=1;we.prototype.normalizeEvent=function(t){},we.prototype.spanContainsSpan=function(t,e){var n=t.start.clone().stripZone(),i=this.getEventEnd(t).stripZone();return e.start>=n&&e.end<=i},we.prototype.getPeerEvents=function(t,e){var n,i,r=this.getEventCache(),s=[];for(n=0;n<r.length;n++)i=r[n],e&&e._id===i._id||s.push(i);return s},we.prototype.isEventSpanAllowed=function(t,e){var n=e.source||{},i=J(e.constraint,n.constraint,this.options.eventConstraint),r=J(e.overlap,n.overlap,this.options.eventOverlap);return this.isSpanAllowed(t,i,r,e)&&(!this.options.eventAllow||this.options.eventAllow(t,e)!==!1)},we.prototype.isExternalSpanAllowed=function(e,n,i){var r,s;return i&&(r=t.extend({},i,n),s=this.expandEvent(this.buildEventFromInput(r))[0]),s?this.isEventSpanAllowed(e,s):this.isSelectionSpanAllowed(e)},we.prototype.isSelectionSpanAllowed=function(t){return this.isSpanAllowed(t,this.options.selectConstraint,this.options.selectOverlap)&&(!this.options.selectAllow||this.options.selectAllow(t)!==!1)},we.prototype.isSpanAllowed=function(t,e,n,i){var r,s,o,l,a,u;if(null!=e&&(r=this.constraintToEvents(e))){for(s=!1,l=0;l<r.length;l++)if(this.spanContainsSpan(r[l],t)){s=!0;break}if(!s)return!1}for(o=this.getPeerEvents(t,i),l=0;l<o.length;l++)if(a=o[l],this.eventIntersectsRange(a,t)){if(n===!1)return!1;if("function"==typeof n&&!n(a,i))return!1;if(i){if(u=J(a.overlap,(a.source||{}).overlap),u===!1)return!1;if("function"==typeof u&&!u(i,a))return!1}}return!0},we.prototype.constraintToEvents=function(t){return"businessHours"===t?this.getCurrentBusinessHourEvents():"object"==typeof t?null!=t.start?this.expandEvent(this.buildEventFromInput(t)):null:this.clientEvents(t)},we.prototype.eventIntersectsRange=function(t,e){var n=t.start.clone().stripZone(),i=this.getEventEnd(t).stripZone();return e.start<i&&e.end>n};var xe={id:"_fcBusinessHours",start:"09:00",end:"17:00",dow:[1,2,3,4,5],rendering:"inverse-background"};we.prototype.getCurrentBusinessHourEvents=function(t){return this.computeBusinessHourEvents(t,this.options.businessHours)},we.prototype.computeBusinessHourEvents=function(e,n){return n===!0?this.expandBusinessHourEvents(e,[{}]):t.isPlainObject(n)?this.expandBusinessHourEvents(e,[n]):t.isArray(n)?this.expandBusinessHourEvents(e,n,!0):[]},we.prototype.expandBusinessHourEvents=function(e,n,i){var r,s,o=this.getView(),l=[];for(r=0;r<n.length;r++)s=n[r],i&&!s.dow||(s=t.extend({},xe,s),e&&(s.start=null,s.end=null),l.push.apply(l,this.expandEvent(this.buildEventFromInput(s),o.start,o.end)));return l};var Re=jt.BasicView=ye.extend({scroller:null,dayGridClass:ve,dayGrid:null,dayNumbersVisible:!1,colWeekNumbersVisible:!1,cellWeekNumbersVisible:!1,weekNumberWidth:null,headContainerEl:null,headRowEl:null,initialize:function(){this.dayGrid=this.instantiateDayGrid(),this.scroller=new Se({overflowX:"hidden",overflowY:"auto"})},instantiateDayGrid:function(){var t=this.dayGridClass.extend(Ie);return new t(this)},setRange:function(t){ye.prototype.setRange.call(this,t),this.dayGrid.breakOnWeeks=/year|month|week/.test(this.intervalUnit),this.dayGrid.setRange(t)},computeRange:function(t){var e=ye.prototype.computeRange.call(this,t);return/year|month/.test(e.intervalUnit)&&(e.start.startOf("week"),e.start=this.skipHiddenDays(e.start),e.end.weekday()&&(e.end.add(1,"week").startOf("week"),e.end=this.skipHiddenDays(e.end,-1,!0))),e},renderDates:function(){this.dayNumbersVisible=this.dayGrid.rowCnt>1,this.opt("weekNumbers")&&(this.opt("weekNumbersWithinDays")?(this.cellWeekNumbersVisible=!0,this.colWeekNumbersVisible=!1):(this.cellWeekNumbersVisible=!1,this.colWeekNumbersVisible=!0)),this.dayGrid.numbersVisible=this.dayNumbersVisible||this.cellWeekNumbersVisible||this.colWeekNumbersVisible,this.el.addClass("fc-basic-view").html(this.renderSkeletonHtml()),this.renderHead(),this.scroller.render();var e=this.scroller.el.addClass("fc-day-grid-container"),n=t('<div class="fc-day-grid" />').appendTo(e);this.el.find(".fc-body > tr > td").append(e),this.dayGrid.setElement(n),this.dayGrid.renderDates(this.hasRigidRows())},renderHead:function(){this.headContainerEl=this.el.find(".fc-head-container").html(this.dayGrid.renderHeadHtml()),this.headRowEl=this.headContainerEl.find(".fc-row")},unrenderDates:function(){this.dayGrid.unrenderDates(),this.dayGrid.removeElement(),this.scroller.destroy()},renderBusinessHours:function(){this.dayGrid.renderBusinessHours()},unrenderBusinessHours:function(){this.dayGrid.unrenderBusinessHours()},renderSkeletonHtml:function(){return'<table><thead class="fc-head"><tr><td class="fc-head-container '+this.widgetHeaderClass+'"></td></tr></thead><tbody class="fc-body"><tr><td class="'+this.widgetContentClass+'"></td></tr></tbody></table>'},weekNumberStyleAttr:function(){return null!==this.weekNumberWidth?'style="width:'+this.weekNumberWidth+'px"':""},hasRigidRows:function(){var t=this.opt("eventLimit");return t&&"number"!=typeof t},updateWidth:function(){this.colWeekNumbersVisible&&(this.weekNumberWidth=u(this.el.find(".fc-week-number")))},setHeight:function(t,e){var n,s,o=this.opt("eventLimit");this.scroller.clear(),r(this.headRowEl),this.dayGrid.removeSegPopover(),o&&"number"==typeof o&&this.dayGrid.limitRows(o),n=this.computeScrollerHeight(t),this.setGridHeight(n,e),o&&"number"!=typeof o&&this.dayGrid.limitRows(o),e||(this.scroller.setHeight(n),s=this.scroller.getScrollbarWidths(),(s.left||s.right)&&(i(this.headRowEl,s),n=this.computeScrollerHeight(t),this.scroller.setHeight(n)),this.scroller.lockOverflow(s))},computeScrollerHeight:function(t){return t-c(this.el,this.scroller.el)},setGridHeight:function(t,e){e?a(this.dayGrid.rowEls):l(this.dayGrid.rowEls,t,!0)},queryScroll:function(){return this.scroller.getScrollTop()},setScroll:function(t){this.scroller.setScrollTop(t)},prepareHits:function(){this.dayGrid.prepareHits()},releaseHits:function(){this.dayGrid.releaseHits()},queryHit:function(t,e){return this.dayGrid.queryHit(t,e)},getHitSpan:function(t){return this.dayGrid.getHitSpan(t)},getHitEl:function(t){return this.dayGrid.getHitEl(t)},renderEvents:function(t){this.dayGrid.renderEvents(t),this.updateHeight()},getEventSegs:function(){return this.dayGrid.getEventSegs()},unrenderEvents:function(){this.dayGrid.unrenderEvents()},renderDrag:function(t,e){return this.dayGrid.renderDrag(t,e)},unrenderDrag:function(){this.dayGrid.unrenderDrag()},renderSelection:function(t){this.dayGrid.renderSelection(t)},unrenderSelection:function(){this.dayGrid.unrenderSelection()}}),Ie={renderHeadIntroHtml:function(){var t=this.view;return t.colWeekNumbersVisible?'<th class="fc-week-number '+t.widgetHeaderClass+'" '+t.weekNumberStyleAttr()+"><span>"+tt(t.opt("weekNumberTitle"))+"</span></th>":""},renderNumberIntroHtml:function(t){var e=this.view,n=this.getCellDate(t,0);return e.colWeekNumbersVisible?'<td class="fc-week-number" '+e.weekNumberStyleAttr()+">"+e.buildGotoAnchorHtml({date:n,type:"week",forceOff:1===this.colCnt},n.format("w"))+"</td>":""},renderBgIntroHtml:function(){var t=this.view;return t.colWeekNumbersVisible?'<td class="fc-week-number '+t.widgetContentClass+'" '+t.weekNumberStyleAttr()+"></td>":""},renderIntroHtml:function(){var t=this.view;return t.colWeekNumbersVisible?'<td class="fc-week-number" '+t.weekNumberStyleAttr()+"></td>":""}},ke=jt.MonthView=Re.extend({computeRange:function(t){var e,n=Re.prototype.computeRange.call(this,t);return this.isFixedWeeks()&&(e=Math.ceil(n.end.diff(n.start,"weeks",!0)),n.end.add(6-e,"weeks")),n},setGridHeight:function(t,e){e&&(t*=this.rowCnt/6),l(this.dayGrid.rowEls,t,!e)},isFixedWeeks:function(){return this.opt("fixedWeekCount")}});Ut.basic={class:Re},Ut.basicDay={type:"basic",duration:{days:1}},Ut.basicWeek={type:"basic",duration:{weeks:1}},Ut.month={class:ke,duration:{months:1},defaults:{fixedWeekCount:!0}};var Le=jt.AgendaView=ye.extend({scroller:null,timeGridClass:me,timeGrid:null,dayGridClass:ve,dayGrid:null,axisWidth:null,headContainerEl:null,noScrollRowEls:null,bottomRuleEl:null,initialize:function(){this.timeGrid=this.instantiateTimeGrid(),this.opt("allDaySlot")&&(this.dayGrid=this.instantiateDayGrid()),this.scroller=new Se({overflowX:"hidden",overflowY:"auto"})},instantiateTimeGrid:function(){var t=this.timeGridClass.extend(Me);return new t(this)},instantiateDayGrid:function(){var t=this.dayGridClass.extend(ze);return new t(this)},setRange:function(t){ye.prototype.setRange.call(this,t),this.timeGrid.setRange(t),this.dayGrid&&this.dayGrid.setRange(t)},renderDates:function(){this.el.addClass("fc-agenda-view").html(this.renderSkeletonHtml()),this.renderHead(),this.scroller.render();var e=this.scroller.el.addClass("fc-time-grid-container"),n=t('<div class="fc-time-grid" />').appendTo(e);this.el.find(".fc-body > tr > td").append(e),this.timeGrid.setElement(n),this.timeGrid.renderDates(),this.bottomRuleEl=t('<hr class="fc-divider '+this.widgetHeaderClass+'"/>').appendTo(this.timeGrid.el),this.dayGrid&&(this.dayGrid.setElement(this.el.find(".fc-day-grid")),this.dayGrid.renderDates(),this.dayGrid.bottomCoordPadding=this.dayGrid.el.next("hr").outerHeight()),this.noScrollRowEls=this.el.find(".fc-row:not(.fc-scroller *)")},renderHead:function(){this.headContainerEl=this.el.find(".fc-head-container").html(this.timeGrid.renderHeadHtml())},unrenderDates:function(){this.timeGrid.unrenderDates(),this.timeGrid.removeElement(),this.dayGrid&&(this.dayGrid.unrenderDates(),this.dayGrid.removeElement()),this.scroller.destroy()},renderSkeletonHtml:function(){return'<table><thead class="fc-head"><tr><td class="fc-head-container '+this.widgetHeaderClass+'"></td></tr></thead><tbody class="fc-body"><tr><td class="'+this.widgetContentClass+'">'+(this.dayGrid?'<div class="fc-day-grid"/><hr class="fc-divider '+this.widgetHeaderClass+'"/>':"")+"</td></tr></tbody></table>"},axisStyleAttr:function(){return null!==this.axisWidth?'style="width:'+this.axisWidth+'px"':""},renderBusinessHours:function(){this.timeGrid.renderBusinessHours(),this.dayGrid&&this.dayGrid.renderBusinessHours()},unrenderBusinessHours:function(){this.timeGrid.unrenderBusinessHours(),this.dayGrid&&this.dayGrid.unrenderBusinessHours()},getNowIndicatorUnit:function(){return this.timeGrid.getNowIndicatorUnit()},renderNowIndicator:function(t){this.timeGrid.renderNowIndicator(t)},unrenderNowIndicator:function(){this.timeGrid.unrenderNowIndicator()},updateSize:function(t){this.timeGrid.updateSize(t),ye.prototype.updateSize.call(this,t)},updateWidth:function(){this.axisWidth=u(this.el.find(".fc-axis"))},setHeight:function(t,e){var n,s,o;this.bottomRuleEl.hide(),this.scroller.clear(),r(this.noScrollRowEls),this.dayGrid&&(this.dayGrid.removeSegPopover(),n=this.opt("eventLimit"),n&&"number"!=typeof n&&(n=Be),n&&this.dayGrid.limitRows(n)),e||(s=this.computeScrollerHeight(t),this.scroller.setHeight(s),o=this.scroller.getScrollbarWidths(),(o.left||o.right)&&(i(this.noScrollRowEls,o),s=this.computeScrollerHeight(t),this.scroller.setHeight(s)),this.scroller.lockOverflow(o),this.timeGrid.getTotalSlatHeight()<s&&this.bottomRuleEl.show())},computeScrollerHeight:function(t){return t-c(this.el,this.scroller.el)},computeInitialScroll:function(){var t=e.duration(this.opt("scrollTime")),n=this.timeGrid.computeTimeTop(t);return n=Math.ceil(n),n&&n++,n},queryScroll:function(){return this.scroller.getScrollTop()},setScroll:function(t){this.scroller.setScrollTop(t)},prepareHits:function(){this.timeGrid.prepareHits(),this.dayGrid&&this.dayGrid.prepareHits()},releaseHits:function(){this.timeGrid.releaseHits(),this.dayGrid&&this.dayGrid.releaseHits()},queryHit:function(t,e){var n=this.timeGrid.queryHit(t,e);return!n&&this.dayGrid&&(n=this.dayGrid.queryHit(t,e)),n},getHitSpan:function(t){return t.component.getHitSpan(t)},getHitEl:function(t){return t.component.getHitEl(t)},renderEvents:function(t){var e,n,i=[],r=[],s=[];for(n=0;n<t.length;n++)t[n].allDay?i.push(t[n]):r.push(t[n]);e=this.timeGrid.renderEvents(r),this.dayGrid&&(s=this.dayGrid.renderEvents(i)),this.updateHeight()},getEventSegs:function(){return this.timeGrid.getEventSegs().concat(this.dayGrid?this.dayGrid.getEventSegs():[])},unrenderEvents:function(){this.timeGrid.unrenderEvents(),this.dayGrid&&this.dayGrid.unrenderEvents()},renderDrag:function(t,e){return t.start.hasTime()?this.timeGrid.renderDrag(t,e):this.dayGrid?this.dayGrid.renderDrag(t,e):void 0},unrenderDrag:function(){this.timeGrid.unrenderDrag(),this.dayGrid&&this.dayGrid.unrenderDrag()},renderSelection:function(t){t.start.hasTime()||t.end.hasTime()?this.timeGrid.renderSelection(t):this.dayGrid&&this.dayGrid.renderSelection(t)},unrenderSelection:function(){this.timeGrid.unrenderSelection(),this.dayGrid&&this.dayGrid.unrenderSelection()}}),Me={renderHeadIntroHtml:function(){var t,e=this.view;return e.opt("weekNumbers")?(t=this.start.format(e.opt("smallWeekFormat")),'<th class="fc-axis fc-week-number '+e.widgetHeaderClass+'" '+e.axisStyleAttr()+">"+e.buildGotoAnchorHtml({date:this.start,type:"week",forceOff:this.colCnt>1},tt(t))+"</th>"):'<th class="fc-axis '+e.widgetHeaderClass+'" '+e.axisStyleAttr()+"></th>"},renderBgIntroHtml:function(){var t=this.view;return'<td class="fc-axis '+t.widgetContentClass+'" '+t.axisStyleAttr()+"></td>"},renderIntroHtml:function(){var t=this.view;return'<td class="fc-axis" '+t.axisStyleAttr()+"></td>"}},ze={renderBgIntroHtml:function(){var t=this.view;return'<td class="fc-axis '+t.widgetContentClass+'" '+t.axisStyleAttr()+"><span>"+t.getAllDayHtml()+"</span></td>"},renderIntroHtml:function(){var t=this.view;return'<td class="fc-axis" '+t.axisStyleAttr()+"></td>"}},Be=5,Fe=[{hours:1},{minutes:30},{minutes:15},{seconds:30},{seconds:15}];Ut.agenda={class:Le,defaults:{allDaySlot:!0,slotDuration:"00:30:00",minTime:"00:00:00",maxTime:"24:00:00",slotEventOverlap:!0}},Ut.agendaDay={type:"agenda",duration:{days:1}},Ut.agendaWeek={type:"agenda",duration:{weeks:1}};var Ne=ye.extend({grid:null,scroller:null,initialize:function(){this.grid=new Ge(this),this.scroller=new Se({overflowX:"hidden",overflowY:"auto"})},setRange:function(t){ye.prototype.setRange.call(this,t),this.grid.setRange(t)},renderSkeleton:function(){this.el.addClass("fc-list-view "+this.widgetContentClass),this.scroller.render(),this.scroller.el.appendTo(this.el),this.grid.setElement(this.scroller.scrollEl)},unrenderSkeleton:function(){this.scroller.destroy()},setHeight:function(t,e){this.scroller.setHeight(this.computeScrollerHeight(t))},computeScrollerHeight:function(t){return t-c(this.el,this.scroller.el)},renderEvents:function(t){this.grid.renderEvents(t)},unrenderEvents:function(){this.grid.unrenderEvents()},isEventResizable:function(t){return!1},isEventDraggable:function(t){return!1}}),Ge=ge.extend({segSelector:".fc-list-item",hasDayInteractions:!1,spanToSegs:function(t){for(var e,n,i=this.view,r=i.start.clone(),s=[];r<i.end;)e=r.clone().add(1,"day"),n=F(t,{start:r,end:e}),n&&s.push(n),r=e;return s},computeEventTimeFormat:function(){return this.view.opt("mediumTimeFormat")},handleSegClick:function(e,n){var i;ge.prototype.handleSegClick.apply(this,arguments),t(n.target).closest("a[href]").length||(i=e.event.url,i&&!n.isDefaultPrevented()&&(window.location.href=i))},renderFgSegs:function(t){return t=this.renderFgSegEls(t),t.length?this.renderSegList(t):(this.renderEmptyMessage(),t)},renderEmptyMessage:function(){this.el.html('<div class="fc-list-empty-wrap2"><div class="fc-list-empty-wrap1"><div class="fc-list-empty">'+tt(this.view.opt("noEventsMessage"))+"</div></div></div>")},renderSegList:function(e){var n,i,r,s=t('<table class="fc-list-table"><tbody/></table>'),o=s.find("tbody");for(this.sortEventSegs(e),n=0;n<e.length;n++)i=e[n],r&&i.start.isSame(r,"day")||(r=i.start.clone().stripTime(),o.append(this.dayHeaderHtml(r))),o.append(i.el);return this.el.empty().append(s),e},dayHeaderHtml:function(t){var e=this.view,n=e.opt("listDayFormat"),i=e.opt("listDayAltFormat");return'<tr class="fc-list-heading" data-date="'+t.format("YYYY-MM-DD")+'"><td class="'+e.widgetHeaderClass+'" colspan="3">'+(n?e.buildGotoAnchorHtml(t,{class:"fc-list-heading-main"},tt(t.format(n))):"")+(i?e.buildGotoAnchorHtml(t,{class:"fc-list-heading-alt"},tt(t.format(i))):"")+"</td></tr>"},fgSegHtml:function(t){var e,n=this.view,i=["fc-list-item"].concat(this.getSegCustomClasses(t)),r=this.getSegBackgroundColor(t),s=t.event,o=s.url;return t.start.hasTime()?e=tt(this.getEventTimeText(s)):this.displayEventTime&&(e=n.getAllDayHtml()),o&&i.push("fc-has-url"),'<tr class="'+i.join(" ")+'">'+(e?'<td class="fc-list-item-time '+n.widgetContentClass+'">'+e+"</td>":"")+'<td class="fc-list-item-marker '+n.widgetContentClass+'"><span class="fc-event-dot"'+(r?' style="background-color:'+r+'"':"")+'></span></td><td class="fc-list-item-title '+n.widgetContentClass+'"><a'+(o?' href="'+tt(o)+'"':"")+">"+tt(t.event.title)+"</a></td></tr>"}});return Ut.list={class:Ne,buttonTextKey:"list",defaults:{buttonText:"list",listTime:!0,listDayFormat:"LL",noEventsMessage:"No events to display"}},Ut.listDay={type:"list",duration:{days:1},defaults:{listDayFormat:"dddd"}},Ut.listWeek={type:"list",duration:{weeks:1},defaults:{listDayFormat:"dddd",listDayAltFormat:"LL"}},Ut.listMonth={type:"list",duration:{month:1},defaults:{listDayAltFormat:"dddd"}},Ut.listYear={type:"list",duration:{year:1},defaults:{listDayAltFormat:"dddd"}},jt}); \ No newline at end of file
diff --git a/library/fullcalendar/fullcalendar.print.css b/library/fullcalendar/fullcalendar.print.css
index 83d11563b..c420097ca 100644
--- a/library/fullcalendar/fullcalendar.print.css
+++ b/library/fullcalendar/fullcalendar.print.css
@@ -1,5 +1,5 @@
/*!
- * FullCalendar v2.8.0 Print Stylesheet
+ * FullCalendar v3.0.0 Print Stylesheet
* Docs & License: http://fullcalendar.io/
* (c) 2016 Adam Shaw
*/
diff --git a/library/fullcalendar/gcal.js b/library/fullcalendar/gcal.js
index 1d6b91c5b..ff9748e4c 100644
--- a/library/fullcalendar/gcal.js
+++ b/library/fullcalendar/gcal.js
@@ -1,5 +1,5 @@
/*!
- * FullCalendar v2.8.0 Google Calendar Plugin
+ * FullCalendar v3.0.0 Google Calendar Plugin
* Docs & License: http://fullcalendar.io/
* (c) 2016 Adam Shaw
*/
diff --git a/library/fullcalendar/lang-all.js b/library/fullcalendar/lang-all.js
deleted file mode 100644
index dc7577063..000000000
--- a/library/fullcalendar/lang-all.js
+++ /dev/null
@@ -1,4 +0,0 @@
-!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):"object"==typeof exports?module.exports=a(require("jquery"),require("moment")):a(jQuery,moment)}(function(a,b){!function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"ar-ma",{months:"يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"Ø­_Ù†_Ø«_ر_Ø®_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"ÙÙŠ %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}});return a}(),a.fullCalendar.datepickerLang("ar-ma","ar",{closeText:"إغلاق",prevText:"&#x3C;السابق",nextText:"التالي&#x3E;",currentText:"اليوم",monthNames:["يناير","Ùبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوÙمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],dayNamesMin:["Ø­","Ù†","Ø«","ر","Ø®","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("ar-ma",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى"})}(),function(){!function(){"use strict";var a={1:"Ù¡",2:"Ù¢",3:"Ù£",4:"Ù¤",5:"Ù¥",6:"Ù¦",7:"Ù§",8:"Ù¨",9:"Ù©",0:"Ù "},c={"Ù¡":"1","Ù¢":"2","Ù£":"3","Ù¤":"4","Ù¥":"5","Ù¦":"6","Ù§":"7","Ù¨":"8","Ù©":"9","Ù ":"0"},d=(b.defineLocale||b.lang).call(b,"ar-sa",{months:"يناير_Ùبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوÙمبر_ديسمبر".split("_"),monthsShort:"يناير_Ùبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوÙمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"Ø­_Ù†_Ø«_ر_Ø®_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|Ù…/,isPM:function(a){return"Ù…"===a},meridiem:function(a,b,c){return 12>a?"ص":"Ù…"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"ÙÙŠ %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(a){return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return c[a]}).replace(/ØŒ/g,",")},postformat:function(b){return b.replace(/\d/g,function(b){return a[b]}).replace(/,/g,"ØŒ")},week:{dow:6,doy:12}});return d}(),a.fullCalendar.datepickerLang("ar-sa","ar",{closeText:"إغلاق",prevText:"&#x3C;السابق",nextText:"التالي&#x3E;",currentText:"اليوم",monthNames:["يناير","Ùبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوÙمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],dayNamesMin:["Ø­","Ù†","Ø«","ر","Ø®","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("ar-sa",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى"})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"ar-tn",{months:"جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر".split("_"),monthsShort:"جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"Ø­_Ù†_Ø«_ر_Ø®_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"ÙÙŠ %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}});return a}(),a.fullCalendar.datepickerLang("ar-tn","ar",{closeText:"إغلاق",prevText:"&#x3C;السابق",nextText:"التالي&#x3E;",currentText:"اليوم",monthNames:["يناير","Ùبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوÙمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],dayNamesMin:["Ø­","Ù†","Ø«","ر","Ø®","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("ar-tn",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى"})}(),function(){!function(){"use strict";var a={1:"Ù¡",2:"Ù¢",3:"Ù£",4:"Ù¤",5:"Ù¥",6:"Ù¦",7:"Ù§",8:"Ù¨",9:"Ù©",0:"Ù "},c={"Ù¡":"1","Ù¢":"2","Ù£":"3","Ù¤":"4","Ù¥":"5","Ù¦":"6","Ù§":"7","Ù¨":"8","Ù©":"9","Ù ":"0"},d=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5},e={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},f=function(a){return function(b,c,f,g){var h=d(b),i=e[a][d(b)];return 2===h&&(i=i[c?0:1]),i.replace(/%d/i,b)}},g=["كانون الثاني يناير","شباط Ùبراير","آذار مارس","نيسان أبريل","أيار مايو","حزيران يونيو","تموز يوليو","آب أغسطس","أيلول سبتمبر","تشرين الأول أكتوبر","تشرين الثاني نوÙمبر","كانون الأول ديسمبر"],h=(b.defineLocale||b.lang).call(b,"ar",{months:g,monthsShort:g,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"Ø­_Ù†_Ø«_ر_Ø®_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/â€M/â€YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|Ù…/,isPM:function(a){return"Ù…"===a},meridiem:function(a,b,c){return 12>a?"ص":"Ù…"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:f("s"),m:f("m"),mm:f("m"),h:f("h"),hh:f("h"),d:f("d"),dd:f("d"),M:f("M"),MM:f("M"),y:f("y"),yy:f("y")},preparse:function(a){return a.replace(/\u200f/g,"").replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return c[a]}).replace(/ØŒ/g,",")},postformat:function(b){return b.replace(/\d/g,function(b){return a[b]}).replace(/,/g,"ØŒ")},week:{dow:6,doy:12}});return h}(),a.fullCalendar.datepickerLang("ar","ar",{closeText:"إغلاق",prevText:"&#x3C;السابق",nextText:"التالي&#x3E;",currentText:"اليوم",monthNames:["يناير","Ùبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوÙمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],dayNamesMin:["Ø­","Ù†","Ø«","ر","Ø®","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("ar",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى"})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"bg",{months:"Ñнуари_февруари_март_април_май_юни_юли_авгуÑÑ‚_Ñептември_октомври_ноември_декември".split("_"),monthsShort:"Ñнр_фев_мар_апр_май_юни_юли_авг_Ñеп_окт_ное_дек".split("_"),weekdays:"неделÑ_понеделник_вторник_ÑÑ€Ñда_четвъртък_петък_Ñъбота".split("_"),weekdaysShort:"нед_пон_вто_ÑÑ€Ñ_чет_пет_Ñъб".split("_"),weekdaysMin:"нд_пн_вт_ÑÑ€_чт_пт_Ñб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Ð”Ð½ÐµÑ Ð²] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Ð’ изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[Ð’ изминалиÑ] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"Ñлед %s",past:"преди %s",s:"нÑколко Ñекунди",m:"минута",mm:"%d минути",h:"чаÑ",hh:"%d чаÑа",d:"ден",dd:"%d дни",M:"меÑец",MM:"%d меÑеца",y:"година",yy:"%d години"},ordinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&20>c?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}});return a}(),a.fullCalendar.datepickerLang("bg","bg",{closeText:"затвори",prevText:"&#x3C;назад",nextText:"напред&#x3E;",nextBigText:"&#x3E;&#x3E;",currentText:"днеÑ",monthNames:["Януари","Февруари","Март","Ðприл","Май","Юни","Юли","ÐвгуÑÑ‚","Септември","Октомври","Ðоември","Декември"],monthNamesShort:["Яну","Фев","Мар","Ðпр","Май","Юни","Юли","Ðвг","Сеп","Окт","Ðов","Дек"],dayNames:["ÐеделÑ","Понеделник","Вторник","СрÑда","Четвъртък","Петък","Събота"],dayNamesShort:["Ðед","Пон","Вто","СрÑ","Чет","Пет","Съб"],dayNamesMin:["Ðе","По","Ð’Ñ‚","Ср","Че","Пе","Съ"],weekHeader:"Wk",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("bg",{buttonText:{month:"МеÑец",week:"Седмица",day:"Ден",list:"График"},allDayText:"ЦÑл ден",eventLimitText:function(a){return"+още "+a}})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"ca",{months:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),monthsShort:"gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd D MMMM YYYY H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},ordinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(a,b){var c=1===a?"r":2===a?"n":3===a?"r":4===a?"t":"è";return"w"!==b&&"W"!==b||(c="a"),a+c},week:{dow:1,doy:4}});return a}(),a.fullCalendar.datepickerLang("ca","ca",{closeText:"Tanca",prevText:"Anterior",nextText:"Següent",currentText:"Avui",monthNames:["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],monthNamesShort:["gen","feb","març","abr","maig","juny","jul","ag","set","oct","nov","des"],dayNames:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],dayNamesShort:["dg","dl","dt","dc","dj","dv","ds"],dayNamesMin:["dg","dl","dt","dc","dj","dv","ds"],weekHeader:"Set",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("ca",{buttonText:{month:"Mes",week:"Setmana",day:"Dia",list:"Agenda"},allDayText:"Tot el dia",eventLimitText:"més"})}(),function(){!function(){"use strict";function a(a){return a>1&&5>a&&1!==~~(a/10)}function c(b,c,d,e){var f=b+" ";switch(d){case"s":return c||e?"pár sekund":"pár sekundami";case"m":return c?"minuta":e?"minutu":"minutou";case"mm":return c||e?f+(a(b)?"minuty":"minut"):f+"minutami";case"h":return c?"hodina":e?"hodinu":"hodinou";case"hh":return c||e?f+(a(b)?"hodiny":"hodin"):f+"hodinami";case"d":return c||e?"den":"dnem";case"dd":return c||e?f+(a(b)?"dny":"dní"):f+"dny";case"M":return c||e?"mÄ›síc":"mÄ›sícem";case"MM":return c||e?f+(a(b)?"mÄ›síce":"mÄ›síců"):f+"mÄ›síci";case"y":return c||e?"rok":"rokem";case"yy":return c||e?f+(a(b)?"roky":"let"):f+"lety"}}var d="leden_únor_bÅ™ezen_duben_kvÄ›ten_Äerven_Äervenec_srpen_září_říjen_listopad_prosinec".split("_"),e="led_úno_bÅ™e_dub_kvÄ›_Ävn_Ävc_srp_zář_říj_lis_pro".split("_"),f=(b.defineLocale||b.lang).call(b,"cs",{months:d,monthsShort:e,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(d,e),shortMonthsParse:function(a){var b,c=[];for(b=0;12>b;b++)c[b]=new RegExp("^"+a[b]+"$","i");return c}(e),longMonthsParse:function(a){var b,c=[];for(b=0;12>b;b++)c[b]=new RegExp("^"+a[b]+"$","i");return c}(d),weekdays:"nedÄ›le_pondÄ›lí_úterý_stÅ™eda_Ätvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_Ät_pá_so".split("_"),weekdaysMin:"ne_po_út_st_Ät_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedÄ›li v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve stÅ™edu v] LT";case 4:return"[ve Ätvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[vÄera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou nedÄ›li v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou stÅ™edu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pÅ™ed %s",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return f}(),a.fullCalendar.datepickerLang("cs","cs",{closeText:"Zavřít",prevText:"&#x3C;Dříve",nextText:"PozdÄ›ji&#x3E;",currentText:"Nyní",monthNames:["leden","únor","bÅ™ezen","duben","kvÄ›ten","Äerven","Äervenec","srpen","září","říjen","listopad","prosinec"],monthNamesShort:["led","úno","bÅ™e","dub","kvÄ›","Äer","Ävc","srp","zář","říj","lis","pro"],dayNames:["nedÄ›le","pondÄ›lí","úterý","stÅ™eda","Ätvrtek","pátek","sobota"],dayNamesShort:["ne","po","út","st","Ät","pá","so"],dayNamesMin:["ne","po","út","st","Ät","pá","so"],weekHeader:"Týd",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("cs",{buttonText:{month:"MÄ›síc",week:"Týden",day:"Den",list:"Agenda"},allDayText:"Celý den",eventLimitText:function(a){return"+další: "+a}})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY HH:mm"},calendar:{sameDay:"[I dag kl.] LT",nextDay:"[I morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[I gÃ¥r kl.] LT",lastWeek:"[sidste] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"fÃ¥ sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en mÃ¥ned",MM:"%d mÃ¥neder",y:"et Ã¥r",yy:"%d Ã¥r"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return a}(),a.fullCalendar.datepickerLang("da","da",{closeText:"Luk",prevText:"&#x3C;Forrige",nextText:"Næste&#x3E;",currentText:"Idag",monthNames:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNames:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],dayNamesShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayNamesMin:["Sø","Ma","Ti","On","To","Fr","Lø"],weekHeader:"Uge",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("da",{buttonText:{month:"MÃ¥ned",week:"Uge",day:"Dag",list:"Agenda"},allDayText:"Hele dagen",eventLimitText:"flere"})}(),function(){!function(){"use strict";function a(a,b,c,d){var e={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?e[c][0]:e[c][1]}var c=(b.defineLocale||b.lang).call(b,"de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:a,mm:"%d Minuten",h:a,hh:"%d Stunden",d:a,dd:a,M:a,MM:a,y:a,yy:a},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return c}(),a.fullCalendar.datepickerLang("de-at","de",{closeText:"Schließen",prevText:"&#x3C;Zurück",nextText:"Vor&#x3E;",currentText:"Heute",monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayNamesMin:["So","Mo","Di","Mi","Do","Fr","Sa"],weekHeader:"KW",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("de-at",{buttonText:{month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},allDayText:"Ganztägig",eventLimitText:function(a){return"+ weitere "+a}})}(),function(){!function(){"use strict";function a(a,b,c,d){var e={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?e[c][0]:e[c][1]}var c=(b.defineLocale||b.lang).call(b,"de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:a,mm:"%d Minuten",h:a,hh:"%d Stunden",d:a,dd:a,M:a,MM:a,y:a,yy:a},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return c}(),a.fullCalendar.datepickerLang("de","de",{closeText:"Schließen",prevText:"&#x3C;Zurück",nextText:"Vor&#x3E;",currentText:"Heute",monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayNamesMin:["So","Mo","Di","Mi","Do","Fr","Sa"],weekHeader:"KW",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("de",{buttonText:{month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},allDayText:"Ganztägig",eventLimitText:function(a){return"+ weitere "+a}})}(),function(){!function(){"use strict";function a(a){return a instanceof Function||"[object Function]"===Object.prototype.toString.call(a)}var c=(b.defineLocale||b.lang).call(b,"el",{monthsNominativeEl:"ΙανουάÏιος_ΦεβÏουάÏιος_ΜάÏτιος_ΑπÏίλιος_Μάιος_ΙοÏνιος_ΙοÏλιος_ΑÏγουστος_ΣεπτέμβÏιος_ΟκτώβÏιος_ÎοέμβÏιος_ΔεκέμβÏιος".split("_"),monthsGenitiveEl:"ΙανουαÏίου_ΦεβÏουαÏίου_ΜαÏτίου_ΑπÏιλίου_ΜαÎου_Ιουνίου_Ιουλίου_ΑυγοÏστου_ΣεπτεμβÏίου_ΟκτωβÏίου_ÎοεμβÏίου_ΔεκεμβÏίου".split("_"),months:function(a,b){return/D/.test(b.substring(0,b.indexOf("MMMM")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]},monthsShort:"Ιαν_Φεβ_ΜαÏ_ΑπÏ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Îοε_Δεκ".split("_"),weekdays:"ΚυÏιακή_ΔευτέÏα_ΤÏίτη_ΤετάÏτη_Πέμπτη_ΠαÏασκευή_Σάββατο".split("_"),weekdaysShort:"ΚυÏ_Δευ_ΤÏι_Τετ_Πεμ_ΠαÏ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_ΤÏ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(a,b,c){return a>11?c?"μμ":"ΜΜ":c?"πμ":"ΠΜ"},isPM:function(a){return"μ"===(a+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Îœ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[ΣήμεÏα {}] LT",nextDay:"[ΑÏÏιο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το Ï€ÏοηγοÏμενο] dddd [{}] LT";default:return"[την Ï€ÏοηγοÏμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(b,c){var d=this._calendarEl[b],e=c&&c.hours();return a(d)&&(d=d.apply(c)),d.replace("{}",e%12===1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s Ï€Ïιν",s:"λίγα δευτεÏόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ÏŽÏα",hh:"%d ÏŽÏες",d:"μία μέÏα",dd:"%d μέÏες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χÏόνος",yy:"%d χÏόνια"},ordinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}});return c}(),a.fullCalendar.datepickerLang("el","el",{closeText:"Κλείσιμο",prevText:"ΠÏοηγοÏμενος",nextText:"Επόμενος",currentText:"ΣήμεÏα",monthNames:["ΙανουάÏιος","ΦεβÏουάÏιος","ΜάÏτιος","ΑπÏίλιος","Μάιος","ΙοÏνιος","ΙοÏλιος","ΑÏγουστος","ΣεπτέμβÏιος","ΟκτώβÏιος","ÎοέμβÏιος","ΔεκέμβÏιος"],monthNamesShort:["Ιαν","Φεβ","ΜαÏ","ΑπÏ","Μαι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Îοε","Δεκ"],dayNames:["ΚυÏιακή","ΔευτέÏα","ΤÏίτη","ΤετάÏτη","Πέμπτη","ΠαÏασκευή","Σάββατο"],dayNamesShort:["ΚυÏ","Δευ","ΤÏι","Τετ","Πεμ","ΠαÏ","Σαβ"],dayNamesMin:["Κυ","Δε","ΤÏ","Τε","Πε","Πα","Σα"],weekHeader:"Εβδ",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("el",{buttonText:{month:"Μήνας",week:"Εβδομάδα",day:"ΗμέÏα",list:"Ατζέντα"},allDayText:"ΟλοήμεÏο",eventLimitText:"πεÏισσότεÏα"})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}});return a}(),a.fullCalendar.datepickerLang("en-au","en-AU",{closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("en-au")}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}});return a}(),a.fullCalendar.lang("en-ca")}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}});return a}(),a.fullCalendar.datepickerLang("en-gb","en-GB",{closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("en-gb")}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}});return a}(),a.fullCalendar.lang("en-ie")}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}});return a}(),a.fullCalendar.datepickerLang("en-nz","en-NZ",{closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("en-nz")}(),function(){!function(){"use strict";var a="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),c="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),d=(b.defineLocale||b.lang).call(b,"es",{
-months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(b,d){return/-MMM-/.test(d)?c[b.month()]:a[b.month()]},monthsParseExact:!0,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return d}(),a.fullCalendar.datepickerLang("es","es",{closeText:"Cerrar",prevText:"&#x3C;Ant",nextText:"Sig&#x3E;",currentText:"Hoy",monthNames:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],monthNamesShort:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],dayNames:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],dayNamesShort:["dom","lun","mar","mié","jue","vie","sáb"],dayNamesMin:["D","L","M","X","J","V","S"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("es",{buttonText:{month:"Mes",week:"Semana",day:"Día",list:"Agenda"},allDayHtml:"Todo<br/>el día",eventLimitText:"más"})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return a}(),a.fullCalendar.datepickerLang("eu","eu",{closeText:"Egina",prevText:"&#x3C;Aur",nextText:"Hur&#x3E;",currentText:"Gaur",monthNames:["urtarrila","otsaila","martxoa","apirila","maiatza","ekaina","uztaila","abuztua","iraila","urria","azaroa","abendua"],monthNamesShort:["urt.","ots.","mar.","api.","mai.","eka.","uzt.","abu.","ira.","urr.","aza.","abe."],dayNames:["igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata"],dayNamesShort:["ig.","al.","ar.","az.","og.","ol.","lr."],dayNamesMin:["ig","al","ar","az","og","ol","lr"],weekHeader:"As",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("eu",{buttonText:{month:"Hilabetea",week:"Astea",day:"Eguna",list:"Agenda"},allDayHtml:"Egun<br/>osoa",eventLimitText:"gehiago"})}(),function(){!function(){"use strict";var a={1:"Û±",2:"Û²",3:"Û³",4:"Û´",5:"Ûµ",6:"Û¶",7:"Û·",8:"Û¸",9:"Û¹",0:"Û°"},c={"Û±":"1","Û²":"2","Û³":"3","Û´":"4","Ûµ":"5","Û¶":"6","Û·":"7","Û¸":"8","Û¹":"9","Û°":"0"},d=(b.defineLocale||b.lang).call(b,"fa",{months:"ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ÛŒ_د_س_Ú†_Ù¾_ج_Ø´".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(a){return/بعد از ظهر/.test(a)},meridiem:function(a,b,c){return 12>a?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[Ùردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چندین ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(a){return a.replace(/[Û°-Û¹]/g,function(a){return c[a]}).replace(/ØŒ/g,",")},postformat:function(b){return b.replace(/\d/g,function(b){return a[b]}).replace(/,/g,"ØŒ")},ordinalParse:/\d{1,2}Ù…/,ordinal:"%dÙ…",week:{dow:6,doy:12}});return d}(),a.fullCalendar.datepickerLang("fa","fa",{closeText:"بستن",prevText:"&#x3C;قبلی",nextText:"بعدی&#x3E;",currentText:"امروز",monthNames:["ژانویه","Ùوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["يکشنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],dayNamesShort:["ÛŒ","د","س","Ú†","Ù¾","ج","Ø´"],dayNamesMin:["ÛŒ","د","س","Ú†","Ù¾","ج","Ø´"],weekHeader:"Ù‡Ù",dateFormat:"yy/mm/dd",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("fa",{buttonText:{month:"ماه",week:"Ù‡Ùته",day:"روز",list:"برنامه"},allDayText:"تمام روز",eventLimitText:function(a){return"بیش از "+a}})}(),function(){!function(){"use strict";function a(a,b,d,e){var f="";switch(d){case"s":return e?"muutaman sekunnin":"muutama sekunti";case"m":return e?"minuutin":"minuutti";case"mm":f=e?"minuutin":"minuuttia";break;case"h":return e?"tunnin":"tunti";case"hh":f=e?"tunnin":"tuntia";break;case"d":return e?"päivän":"päivä";case"dd":f=e?"päivän":"päivää";break;case"M":return e?"kuukauden":"kuukausi";case"MM":f=e?"kuukauden":"kuukautta";break;case"y":return e?"vuoden":"vuosi";case"yy":f=e?"vuoden":"vuotta"}return f=c(a,e)+" "+f}function c(a,b){return 10>a?b?e[a]:d[a]:a}var d="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),e=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",d[7],d[8],d[9]],f=(b.defineLocale||b.lang).call(b,"fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return f}(),a.fullCalendar.datepickerLang("fi","fi",{closeText:"Sulje",prevText:"&#xAB;Edellinen",nextText:"Seuraava&#xBB;",currentText:"Tänään",monthNames:["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu","Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],monthNamesShort:["Tammi","Helmi","Maalis","Huhti","Touko","Kesä","Heinä","Elo","Syys","Loka","Marras","Joulu"],dayNamesShort:["Su","Ma","Ti","Ke","To","Pe","La"],dayNames:["Sunnuntai","Maanantai","Tiistai","Keskiviikko","Torstai","Perjantai","Lauantai"],dayNamesMin:["Su","Ma","Ti","Ke","To","Pe","La"],weekHeader:"Vk",dateFormat:"d.m.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("fi",{buttonText:{month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},allDayText:"Koko päivä",eventLimitText:"lisää"})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|e)/,ordinal:function(a){return a+(1===a?"er":"e")}});return a}(),a.fullCalendar.datepickerLang("fr-ca","fr-CA",{closeText:"Fermer",prevText:"Précédent",nextText:"Suivant",currentText:"Aujourd'hui",monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthNamesShort:["janv.","févr.","mars","avril","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dayNames:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],dayNamesShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sem.",dateFormat:"yy-mm-dd",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("fr-ca",{buttonText:{year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},allDayHtml:"Toute la<br/>journée",eventLimitText:"en plus"})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|e)/,ordinal:function(a){return a+(1===a?"er":"e")},week:{dow:1,doy:4}});return a}(),a.fullCalendar.datepickerLang("fr-ch","fr-CH",{closeText:"Fermer",prevText:"&#x3C;Préc",nextText:"Suiv&#x3E;",currentText:"Courant",monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthNamesShort:["janv.","févr.","mars","avril","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dayNames:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],dayNamesShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sm",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("fr-ch",{buttonText:{year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},allDayHtml:"Toute la<br/>journée",eventLimitText:"en plus"})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|)/,ordinal:function(a){return a+(1===a?"er":"")},week:{dow:1,doy:4}});return a}(),a.fullCalendar.datepickerLang("fr","fr",{closeText:"Fermer",prevText:"Précédent",nextText:"Suivant",currentText:"Aujourd'hui",monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthNamesShort:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dayNames:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],dayNamesShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sem.",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("fr",{buttonText:{year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},allDayHtml:"Toute la<br/>journée",eventLimitText:"en plus"})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"gl",{months:"Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro".split("_"),monthsShort:"Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.".split("_"),monthsParseExact:!0,weekdays:"Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado".split("_"),weekdaysShort:"Dom._Lun._Mar._Mér._Xov._Ven._Sáb.".split("_"),weekdaysMin:"Do_Lu_Ma_Mé_Xo_Ve_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd D MMMM YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(a){return"uns segundos"===a?"nuns segundos":"en "+a},past:"hai %s",s:"uns segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:7}});return a}(),a.fullCalendar.datepickerLang("gl","gl",{closeText:"Pechar",prevText:"&#x3C;Ant",nextText:"Seg&#x3E;",currentText:"Hoxe",monthNames:["Xaneiro","Febreiro","Marzo","Abril","Maio","Xuño","Xullo","Agosto","Setembro","Outubro","Novembro","Decembro"],monthNamesShort:["Xan","Feb","Mar","Abr","Mai","Xuñ","Xul","Ago","Set","Out","Nov","Dec"],dayNames:["Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado"],dayNamesShort:["Dom","Lun","Mar","Mér","Xov","Ven","Sáb"],dayNamesMin:["Do","Lu","Ma","Mé","Xo","Ve","Sá"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("gl",{buttonText:{month:"Mes",week:"Semana",day:"Día",list:"Axenda"},allDayHtml:"Todo<br/>o día",eventLimitText:"máis"})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"he",{months:"ינו×ר_פברו×ר_מרץ_×פריל_מ××™_יוני_יולי_×וגוסט_ספטמבר_×וקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_×פר׳_מ××™_יוני_יולי_×וג׳_ספט׳_×וק׳_נוב׳_דצמ׳".split("_"),weekdays:"ר×שון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"×׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"×_ב_×’_ד_×”_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[×”×™×•× ×‘Ö¾]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[×תמול ב־]LT",lastWeek:"[ביו×] dddd [×”×חרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(a){return 2===a?"שעתיי×":a+" שעות"},d:"יו×",dd:function(a){return 2===a?"יומיי×":a+" ימי×"},M:"חודש",MM:function(a){return 2===a?"חודשיי×":a+" חודשי×"},y:"שנה",yy:function(a){return 2===a?"שנתיי×":a%10===0&&10!==a?a+" שנה":a+" שני×"}},meridiemParse:/××—×”"צ|לפנה"צ|×חרי הצהריי×|לפני הצהריי×|לפנות בוקר|בבוקר|בערב/i,isPM:function(a){return/^(××—×”"צ|×חרי הצהריי×|בערב)$/.test(a)},meridiem:function(a,b,c){return 5>a?"לפנות בוקר":10>a?"בבוקר":12>a?c?'לפנה"צ':"לפני הצהריי×":18>a?c?'××—×”"צ':"×חרי הצהריי×":"בערב"}});return a}(),a.fullCalendar.datepickerLang("he","he",{closeText:"סגור",prevText:"&#x3C;הקוד×",nextText:"הב×&#x3E;",currentText:"היו×",monthNames:["ינו×ר","פברו×ר","מרץ","×פריל","מ××™","יוני","יולי","×וגוסט","ספטמבר","×וקטובר","נובמבר","דצמבר"],monthNamesShort:["ינו","פבר","מרץ","×פר","מ××™","יוני","יולי","×וג","ספט","×וק","נוב","דצמ"],dayNames:["ר×שון","שני","שלישי","רביעי","חמישי","שישי","שבת"],dayNamesShort:["×'","ב'","×’'","ד'","×”'","ו'","שבת"],dayNamesMin:["×'","ב'","×’'","ד'","×”'","ו'","שבת"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("he",{defaultButtonText:{month:"חודש",week:"שבוע",day:"יו×",list:"סדר יו×"},weekNumberTitle:"שבוע",allDayText:"כל היו×",eventLimitText:"×חר"})}(),function(){!function(){"use strict";var a={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},c={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},d=(b.defineLocale||b.lang).call(b,"hi",{months:"जनवरी_फ़रवरी_मारà¥à¤š_अपà¥à¤°à¥ˆà¤²_मई_जून_जà¥à¤²à¤¾à¤ˆ_अगसà¥à¤¤_सितमà¥à¤¬à¤°_अकà¥à¤Ÿà¥‚बर_नवमà¥à¤¬à¤°_दिसमà¥à¤¬à¤°".split("_"),monthsShort:"जन._फ़र._मारà¥à¤š_अपà¥à¤°à¥ˆ._मई_जून_जà¥à¤²._अग._सित._अकà¥à¤Ÿà¥‚._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बà¥à¤§à¤µà¤¾à¤°_गà¥à¤°à¥‚वार_शà¥à¤•à¥à¤°à¤µà¤¾à¤°_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बà¥à¤§_गà¥à¤°à¥‚_शà¥à¤•à¥à¤°_शनि".split("_"),weekdaysMin:"र_सो_मं_बà¥_गà¥_शà¥_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कà¥à¤› ही कà¥à¤·à¤£",m:"à¤à¤• मिनट",mm:"%d मिनट",h:"à¤à¤• घंटा",hh:"%d घंटे",d:"à¤à¤• दिन",dd:"%d दिन",M:"à¤à¤• महीने",MM:"%d महीने",y:"à¤à¤• वरà¥à¤·",yy:"%d वरà¥à¤·"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return c[a]})},postformat:function(b){return b.replace(/\d/g,function(b){return a[b]})},meridiemParse:/रात|सà¥à¤¬à¤¹|दोपहर|शाम/,meridiemHour:function(a,b){return 12===a&&(a=0),"रात"===b?4>a?a:a+12:"सà¥à¤¬à¤¹"===b?a:"दोपहर"===b?a>=10?a:a+12:"शाम"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?"रात":10>a?"सà¥à¤¬à¤¹":17>a?"दोपहर":20>a?"शाम":"रात"},week:{dow:0,doy:6}});return d}(),a.fullCalendar.datepickerLang("hi","hi",{closeText:"बंद",prevText:"पिछला",nextText:"अगला",currentText:"आज",monthNames:["जनवरी ","फरवरी","मारà¥à¤š","अपà¥à¤°à¥‡à¤²","मई","जून","जूलाई","अगसà¥à¤¤ ","सितमà¥à¤¬à¤°","अकà¥à¤Ÿà¥‚बर","नवमà¥à¤¬à¤°","दिसमà¥à¤¬à¤°"],monthNamesShort:["जन","फर","मारà¥à¤š","अपà¥à¤°à¥‡à¤²","मई","जून","जूलाई","अग","सित","अकà¥à¤Ÿ","नव","दि"],dayNames:["रविवार","सोमवार","मंगलवार","बà¥à¤§à¤µà¤¾à¤°","गà¥à¤°à¥à¤µà¤¾à¤°","शà¥à¤•à¥à¤°à¤µà¤¾à¤°","शनिवार"],dayNamesShort:["रवि","सोम","मंगल","बà¥à¤§","गà¥à¤°à¥","शà¥à¤•à¥à¤°","शनि"],dayNamesMin:["रवि","सोम","मंगल","बà¥à¤§","गà¥à¤°à¥","शà¥à¤•à¥à¤°","शनि"],weekHeader:"हफà¥à¤¤à¤¾",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("hi",{buttonText:{month:"महीना",week:"सपà¥à¤¤à¤¾à¤¹",day:"दिन",list:"कारà¥à¤¯à¤¸à¥‚ची"},allDayText:"सभी दिन",eventLimitText:function(a){return"+अधिक "+a}})}(),function(){!function(){"use strict";function a(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}var c=(b.defineLocale||b.lang).call(b,"hr",{months:{format:"sijeÄnja_veljaÄe_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"sijeÄanj_veljaÄa_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._Äet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_Äe_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juÄer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[proÅ¡lu] dddd [u] LT";case 6:return"[proÅ¡le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[proÅ¡li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:a,mm:a,h:a,hh:a,d:"dan",dd:a,M:"mjesec",MM:a,y:"godinu",yy:a},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return c}(),a.fullCalendar.datepickerLang("hr","hr",{closeText:"Zatvori",prevText:"&#x3C;",nextText:"&#x3E;",currentText:"Danas",monthNames:["SijeÄanj","VeljaÄa","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],monthNamesShort:["Sij","Velj","Ožu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"],dayNames:["Nedjelja","Ponedjeljak","Utorak","Srijeda","ÄŒetvrtak","Petak","Subota"],dayNamesShort:["Ned","Pon","Uto","Sri","ÄŒet","Pet","Sub"],dayNamesMin:["Ne","Po","Ut","Sr","ÄŒe","Pe","Su"],weekHeader:"Tje",dateFormat:"dd.mm.yy.",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("hr",{buttonText:{month:"Mjesec",week:"Tjedan",day:"Dan",list:"Raspored"},allDayText:"Cijeli dan",eventLimitText:function(a){return"+ joÅ¡ "+a}})}(),function(){!function(){"use strict";function a(a,b,c,d){var e=a;switch(c){case"s":return d||b?"néhány másodperc":"néhány másodperce";case"m":return"egy"+(d||b?" perc":" perce");case"mm":return e+(d||b?" perc":" perce");case"h":return"egy"+(d||b?" óra":" órája");case"hh":return e+(d||b?" óra":" órája");case"d":return"egy"+(d||b?" nap":" napja");case"dd":return e+(d||b?" nap":" napja");case"M":return"egy"+(d||b?" hónap":" hónapja");case"MM":return e+(d||b?" hónap":" hónapja");case"y":return"egy"+(d||b?" év":" éve");case"yy":return e+(d||b?" év":" éve")}return""}function c(a){return(a?"":"[múlt] ")+"["+d[this.day()]+"] LT[-kor]"}var d="vasárnap hétfÅ‘n kedden szerdán csütörtökön pénteken szombaton".split(" "),e=(b.defineLocale||b.lang).call(b,"hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfÅ‘_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(a){return"u"===a.charAt(1).toLowerCase()},meridiem:function(a,b,c){return 12>a?c===!0?"de":"DE":c===!0?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return c.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return c.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return e}(),a.fullCalendar.datepickerLang("hu","hu",{closeText:"bezár",prevText:"vissza",nextText:"elÅ‘re",currentText:"ma",monthNames:["Január","Február","Március","Ãprilis","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],monthNamesShort:["Jan","Feb","Már","Ãpr","Máj","Jún","Júl","Aug","Szep","Okt","Nov","Dec"],dayNames:["Vasárnap","HétfÅ‘","Kedd","Szerda","Csütörtök","Péntek","Szombat"],dayNamesShort:["Vas","Hét","Ked","Sze","Csü","Pén","Szo"],dayNamesMin:["V","H","K","Sze","Cs","P","Szo"],weekHeader:"Hét",dateFormat:"yy.mm.dd.",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:""}),a.fullCalendar.lang("hu",{buttonText:{month:"Hónap",week:"Hét",day:"Nap",list:"Napló"},allDayText:"Egész nap",eventLimitText:"további"})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"siang"===b?a>=11?a:a+12:"sore"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"pagi":15>a?"siang":19>a?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}});return a}(),a.fullCalendar.datepickerLang("id","id",{closeText:"Tutup",prevText:"&#x3C;mundur",nextText:"maju&#x3E;",currentText:"hari ini",monthNames:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","Nopember","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agus","Sep","Okt","Nop","Des"],dayNames:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],dayNamesShort:["Min","Sen","Sel","Rab","kam","Jum","Sab"],dayNamesMin:["Mg","Sn","Sl","Rb","Km","jm","Sb"],weekHeader:"Mg",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("id",{buttonText:{month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},allDayHtml:"Sehari<br/>penuh",eventLimitText:"lebih"})}(),function(){!function(){"use strict";function a(a){return a%100===11?!0:a%10!==1}function c(b,c,d,e){var f=b+" ";switch(d){case"s":return c||e?"nokkrar sekúndur":"nokkrum sekúndum";case"m":return c?"mínúta":"mínútu";case"mm":return a(b)?f+(c||e?"mínútur":"mínútum"):c?f+"mínúta":f+"mínútu";case"hh":return a(b)?f+(c||e?"klukkustundir":"klukkustundum"):f+"klukkustund";case"d":return c?"dagur":e?"dag":"degi";case"dd":return a(b)?c?f+"dagar":f+(e?"daga":"dögum"):c?f+"dagur":f+(e?"dag":"degi");case"M":return c?"mánuður":e?"mánuð":"mánuði";case"MM":return a(b)?c?f+"mánuðir":f+(e?"mánuði":"mánuðum"):c?f+"mánuður":f+(e?"mánuð":"mánuði");case"y":return c||e?"ár":"ári";case"yy":return a(b)?f+(c||e?"ár":"árum"):f+(c||e?"ár":"ári")}}var d=(b.defineLocale||b.lang).call(b,"is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:c,m:c,mm:c,h:"klukkustund",hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return d}(),a.fullCalendar.datepickerLang("is","is",{closeText:"Loka",prevText:"&#x3C; Fyrri",nextText:"Næsti &#x3E;",currentText:"à dag",monthNames:["Janúar","Febrúar","Mars","Apríl","Maí","Júní","Júlí","Ãgúst","September","Október","Nóvember","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Maí","Jún","Júl","Ãgú","Sep","Okt","Nóv","Des"],dayNames:["Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"],dayNamesShort:["Sun","Mán","Þri","Mið","Fim","Fös","Lau"],dayNamesMin:["Su","Má","Þr","Mi","Fi","Fö","La"],weekHeader:"Vika",dateFormat:"dd.mm.yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("is",{buttonText:{month:"Mánuður",week:"Vika",day:"Dagur",list:"Dagskrá"},allDayHtml:"Allan<br/>daginn",eventLimitText:"meira"})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),weekdaysShort:"Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"),weekdaysMin:"Do_Lu_Ma_Me_Gi_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?"tra":"in")+" "+a},past:"%s fa",s:"alcuni secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return a}(),a.fullCalendar.datepickerLang("it","it",{closeText:"Chiudi",prevText:"&#x3C;Prec",nextText:"Succ&#x3E;",currentText:"Oggi",monthNames:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],
-monthNamesShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],dayNames:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],dayNamesShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],dayNamesMin:["Do","Lu","Ma","Me","Gi","Ve","Sa"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("it",{buttonText:{month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},allDayHtml:"Tutto il<br/>giorno",eventLimitText:function(a){return"+altri "+a}})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"ja",{months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_ç«æ›œæ—¥_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"æ—¥_月_ç«_æ°´_木_金_土".split("_"),weekdaysMin:"æ—¥_月_ç«_æ°´_木_金_土".split("_"),longDateFormat:{LT:"Ah時m分",LTS:"Ah時m分s秒",L:"YYYY/MM/DD",LL:"YYYYå¹´M月Dæ—¥",LLL:"YYYYå¹´M月Dæ—¥Ah時m分",LLLL:"YYYYå¹´M月Dæ—¥Ah時m分 dddd"},meridiemParse:/åˆå‰|åˆå¾Œ/i,isPM:function(a){return"åˆå¾Œ"===a},meridiem:function(a,b,c){return 12>a?"åˆå‰":"åˆå¾Œ"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[æ¥é€±]dddd LT",lastDay:"[昨日] LT",lastWeek:"[å‰é€±]dddd LT",sameElse:"L"},ordinalParse:/\d{1,2}æ—¥/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"æ—¥";default:return a}},relativeTime:{future:"%s後",past:"%så‰",s:"数秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1æ—¥",dd:"%dæ—¥",M:"1ヶ月",MM:"%dヶ月",y:"1å¹´",yy:"%då¹´"}});return a}(),a.fullCalendar.datepickerLang("ja","ja",{closeText:"é–‰ã˜ã‚‹",prevText:"&#x3C;å‰",nextText:"次&#x3E;",currentText:"今日",monthNames:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthNamesShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayNames:["日曜日","月曜日","ç«æ›œæ—¥","水曜日","木曜日","金曜日","土曜日"],dayNamesShort:["æ—¥","月","ç«","æ°´","木","金","土"],dayNamesMin:["æ—¥","月","ç«","æ°´","木","金","土"],weekHeader:"週",dateFormat:"yy/mm/dd",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"å¹´"}),a.fullCalendar.lang("ja",{buttonText:{month:"月",week:"週",day:"æ—¥",list:"予定リスト"},allDayText:"終日",eventLimitText:function(a){return"ä»– "+a+" 件"}})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"ko",{months:"1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”".split("_"),monthsShort:"1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”".split("_"),weekdays:"ì¼ìš”ì¼_월요ì¼_화요ì¼_수요ì¼_목요ì¼_금요ì¼_토요ì¼".split("_"),weekdaysShort:"ì¼_ì›”_í™”_수_목_금_토".split("_"),weekdaysMin:"ì¼_ì›”_í™”_수_목_금_토".split("_"),longDateFormat:{LT:"A hì‹œ m분",LTS:"A hì‹œ m분 sì´ˆ",L:"YYYY.MM.DD",LL:"YYYYë…„ MMMM Dì¼",LLL:"YYYYë…„ MMMM Dì¼ A hì‹œ m분",LLLL:"YYYYë…„ MMMM Dì¼ dddd A hì‹œ m분"},calendar:{sameDay:"오늘 LT",nextDay:"ë‚´ì¼ LT",nextWeek:"dddd LT",lastDay:"ì–´ì œ LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s ì „",s:"몇 ì´ˆ",ss:"%dì´ˆ",m:"ì¼ë¶„",mm:"%d분",h:"í•œ 시간",hh:"%d시간",d:"하루",dd:"%dì¼",M:"í•œ 달",MM:"%d달",y:"ì¼ ë…„",yy:"%dë…„"},ordinalParse:/\d{1,2}ì¼/,ordinal:"%dì¼",meridiemParse:/오전|오후/,isPM:function(a){return"오후"===a},meridiem:function(a,b,c){return 12>a?"오전":"오후"}});return a}(),a.fullCalendar.datepickerLang("ko","ko",{closeText:"닫기",prevText:"ì´ì „달",nextText:"다ìŒë‹¬",currentText:"오늘",monthNames:["1ì›”","2ì›”","3ì›”","4ì›”","5ì›”","6ì›”","7ì›”","8ì›”","9ì›”","10ì›”","11ì›”","12ì›”"],monthNamesShort:["1ì›”","2ì›”","3ì›”","4ì›”","5ì›”","6ì›”","7ì›”","8ì›”","9ì›”","10ì›”","11ì›”","12ì›”"],dayNames:["ì¼ìš”ì¼","월요ì¼","화요ì¼","수요ì¼","목요ì¼","금요ì¼","토요ì¼"],dayNamesShort:["ì¼","ì›”","í™”","수","목","금","토"],dayNamesMin:["ì¼","ì›”","í™”","수","목","금","토"],weekHeader:"Wk",dateFormat:"yy-mm-dd",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"ë…„"}),a.fullCalendar.lang("ko",{buttonText:{month:"ì›”",week:"주",day:"ì¼",list:"ì¼ì •ëª©ë¡"},allDayText:"종ì¼",eventLimitText:"ê°œ"})}(),function(){!function(){"use strict";function a(a,b,c,d){var e={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return b?e[c][0]:e[c][1]}function c(a){var b=a.substr(0,a.indexOf(" "));return e(b)?"a "+a:"an "+a}function d(a){var b=a.substr(0,a.indexOf(" "));return e(b)?"viru "+a:"virun "+a}function e(a){if(a=parseInt(a,10),isNaN(a))return!1;if(0>a)return!0;if(10>a)return a>=4&&7>=a;if(100>a){var b=a%10,c=a/10;return e(0===b?c:b)}if(1e4>a){for(;a>=10;)a/=10;return e(a)}return a/=1e3,e(a)}var f=(b.defineLocale||b.lang).call(b,"lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:c,past:d,s:"e puer Sekonnen",m:a,mm:"%d Minutten",h:a,hh:"%d Stonnen",d:a,dd:"%d Deeg",M:a,MM:"%d Méint",y:a,yy:"%d Joer"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return f}(),a.fullCalendar.datepickerLang("lb","lb",{closeText:"Fäerdeg",prevText:"Zréck",nextText:"Weider",currentText:"Haut",monthNames:["Januar","Februar","Mäerz","Abrëll","Mee","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mäe","Abr","Mee","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonndeg","Méindeg","Dënschdeg","Mëttwoch","Donneschdeg","Freideg","Samschdeg"],dayNamesShort:["Son","Méi","Dën","Mët","Don","Fre","Sam"],dayNamesMin:["So","Mé","Dë","Më","Do","Fr","Sa"],weekHeader:"W",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("lb",{buttonText:{month:"Mount",week:"Woch",day:"Dag",list:"Terminiwwersiicht"},allDayText:"Ganzen Dag",eventLimitText:"méi"})}(),function(){!function(){"use strict";function a(a,b,c,d){return b?"kelios sekundÄ—s":d?"kelių sekundžių":"kelias sekundes"}function c(a,b,c,d){return b?e(c)[0]:d?e(c)[1]:e(c)[2]}function d(a){return a%10===0||a>10&&20>a}function e(a){return g[a].split("_")}function f(a,b,f,g){var h=a+" ";return 1===a?h+c(a,b,f[0],g):b?h+(d(a)?e(f)[1]:e(f)[0]):g?h+e(f)[1]:h+(d(a)?e(f)[1]:e(f)[2])}var g={m:"minutÄ—_minutÄ—s_minutÄ™",mm:"minutÄ—s_minuÄių_minutes",h:"valanda_valandos_valandÄ…",hh:"valandos_valandų_valandas",d:"diena_dienos_dienÄ…",dd:"dienos_dienų_dienas",M:"mÄ—nuo_mÄ—nesio_mÄ—nesį",MM:"mÄ—nesiai_mÄ—nesių_mÄ—nesius",y:"metai_metų_metus",yy:"metai_metų_metus"},h=(b.defineLocale||b.lang).call(b,"lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjÅ«Äio_rugsÄ—jo_spalio_lapkriÄio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjÅ«tis_rugsÄ—jis_spalis_lapkritis_gruodis".split("_")},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_treÄiadienį_ketvirtadienį_penktadienį_Å¡eÅ¡tadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_treÄiadienis_ketvirtadienis_penktadienis_Å¡eÅ¡tadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Å eÅ¡".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Å ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Å iandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[PraÄ—jusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieÅ¡ %s",s:a,m:c,mm:f,h:c,hh:f,d:c,dd:f,M:c,MM:f,y:c,yy:f},ordinalParse:/\d{1,2}-oji/,ordinal:function(a){return a+"-oji"},week:{dow:1,doy:4}});return h}(),a.fullCalendar.datepickerLang("lt","lt",{closeText:"Uždaryti",prevText:"&#x3C;Atgal",nextText:"Pirmyn&#x3E;",currentText:"Å iandien",monthNames:["Sausis","Vasaris","Kovas","Balandis","Gegužė","Birželis","Liepa","RugpjÅ«tis","RugsÄ—jis","Spalis","Lapkritis","Gruodis"],monthNamesShort:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rugp","Rugs","Spa","Lap","Gru"],dayNames:["sekmadienis","pirmadienis","antradienis","treÄiadienis","ketvirtadienis","penktadienis","Å¡eÅ¡tadienis"],dayNamesShort:["sek","pir","ant","tre","ket","pen","Å¡eÅ¡"],dayNamesMin:["Se","Pr","An","Tr","Ke","Pe","Å e"],weekHeader:"SAV",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:""}),a.fullCalendar.lang("lt",{buttonText:{month:"MÄ—nuo",week:"SavaitÄ—",day:"Diena",list:"DarbotvarkÄ—"},allDayText:"VisÄ… dienÄ…",eventLimitText:"daugiau"})}(),function(){!function(){"use strict";function a(a,b,c){return c?b%10===1&&11!==b?a[2]:a[3]:b%10===1&&11!==b?a[0]:a[1]}function c(b,c,d){return b+" "+a(f[d],b,c)}function d(b,c,d){return a(f[d],b,c)}function e(a,b){return b?"dažas sekundes":"dažÄm sekundÄ“m"}var f={m:"minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes".split("_"),mm:"minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes".split("_"),h:"stundas_stundÄm_stunda_stundas".split("_"),hh:"stundas_stundÄm_stunda_stundas".split("_"),d:"dienas_dienÄm_diena_dienas".split("_"),dd:"dienas_dienÄm_diena_dienas".split("_"),M:"mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i".split("_"),MM:"mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")},g=(b.defineLocale||b.lang).call(b,"lv",{months:"janvÄris_februÄris_marts_aprÄ«lis_maijs_jÅ«nijs_jÅ«lijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jÅ«n_jÅ«l_aug_sep_okt_nov_dec".split("_"),weekdays:"svÄ“tdiena_pirmdiena_otrdiena_treÅ¡diena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Å odien pulksten] LT",nextDay:"[RÄ«t pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[PagÄjuÅ¡Ä] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pÄ“c %s",past:"pirms %s",s:e,m:d,mm:c,h:d,hh:c,d:d,dd:c,M:d,MM:c,y:d,yy:c},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return g}(),a.fullCalendar.datepickerLang("lv","lv",{closeText:"AizvÄ“rt",prevText:"Iepr.",nextText:"NÄk.",currentText:"Å odien",monthNames:["JanvÄris","FebruÄris","Marts","AprÄ«lis","Maijs","JÅ«nijs","JÅ«lijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],monthNamesShort:["Jan","Feb","Mar","Apr","Mai","JÅ«n","JÅ«l","Aug","Sep","Okt","Nov","Dec"],dayNames:["svÄ“tdiena","pirmdiena","otrdiena","treÅ¡diena","ceturtdiena","piektdiena","sestdiena"],dayNamesShort:["svt","prm","otr","tre","ctr","pkt","sst"],dayNamesMin:["Sv","Pr","Ot","Tr","Ct","Pk","Ss"],weekHeader:"Ned.",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("lv",{buttonText:{month:"MÄ“nesis",week:"Nedēļa",day:"Diena",list:"Dienas kÄrtÄ«ba"},allDayText:"Visu dienu",eventLimitText:function(a){return"+vÄ“l "+a}})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i gÃ¥r kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en mÃ¥ned",MM:"%d mÃ¥neder",y:"ett Ã¥r",yy:"%d Ã¥r"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return a}(),a.fullCalendar.datepickerLang("nb","nb",{closeText:"Lukk",prevText:"&#xAB;Forrige",nextText:"Neste&#xBB;",currentText:"I dag",monthNames:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],monthNamesShort:["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],dayNamesShort:["søn","man","tir","ons","tor","fre","lør"],dayNames:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],dayNamesMin:["sø","ma","ti","on","to","fr","lø"],weekHeader:"Uke",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("nb",{buttonText:{month:"MÃ¥ned",week:"Uke",day:"Dag",list:"Agenda"},allDayText:"Hele dagen",eventLimitText:"til"})}(),function(){!function(){"use strict";var a="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),c="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),d=(b.defineLocale||b.lang).call(b,"nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(b,d){return/-MMM-/.test(d)?c[b.month()]:a[b.month()]},monthsParseExact:!0,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}});return d}(),a.fullCalendar.datepickerLang("nl","nl",{closeText:"Sluiten",prevText:"â†",nextText:"→",currentText:"Vandaag",monthNames:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthNamesShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],dayNames:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],dayNamesShort:["zon","maa","din","woe","don","vri","zat"],dayNamesMin:["zo","ma","di","wo","do","vr","za"],weekHeader:"Wk",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("nl",{buttonText:{month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag",eventLimitText:"extra"})}(),function(){!function(){"use strict";function a(a){return 5>a%10&&a%10>1&&~~(a/10)%10!==1}function c(b,c,d){var e=b+" ";switch(d){case"m":return c?"minuta":"minutÄ™";case"mm":return e+(a(b)?"minuty":"minut");case"h":return c?"godzina":"godzinÄ™";case"hh":return e+(a(b)?"godziny":"godzin");case"MM":return e+(a(b)?"miesiÄ…ce":"miesiÄ™cy");case"yy":return e+(a(b)?"lata":"lat")}}var d="styczeÅ„_luty_marzec_kwiecieÅ„_maj_czerwiec_lipiec_sierpieÅ„_wrzesieÅ„_październik_listopad_grudzieÅ„".split("_"),e="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrzeÅ›nia_października_listopada_grudnia".split("_"),f=(b.defineLocale||b.lang).call(b,"pl",{months:function(a,b){return""===b?"("+e[a.month()]+"|"+d[a.month()]+")":/D MMMM/.test(b)?e[a.month()]:d[a.month()]},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziaÅ‚ek_wtorek_Å›roda_czwartek_piÄ…tek_sobota".split("_"),weekdaysShort:"nie_pon_wt_Å›r_czw_pt_sb".split("_"),weekdaysMin:"Nd_Pn_Wt_Åšr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DziÅ› o] LT",nextDay:"[Jutro o] LT",nextWeek:"[W] dddd [o] LT",lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszÅ‚Ä… niedzielÄ™ o] LT";case 3:return"[W zeszÅ‚Ä… Å›rodÄ™ o] LT";case 6:return"[W zeszÅ‚Ä… sobotÄ™ o] LT";default:return"[W zeszÅ‚y] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:c,mm:c,h:c,hh:c,d:"1 dzieÅ„",dd:"%d dni",M:"miesiÄ…c",MM:c,y:"rok",yy:c},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return f}(),a.fullCalendar.datepickerLang("pl","pl",{closeText:"Zamknij",prevText:"&#x3C;Poprzedni",nextText:"NastÄ™pny&#x3E;",currentText:"DziÅ›",monthNames:["StyczeÅ„","Luty","Marzec","KwiecieÅ„","Maj","Czerwiec","Lipiec","SierpieÅ„","WrzesieÅ„","Październik","Listopad","GrudzieÅ„"],monthNamesShort:["Sty","Lu","Mar","Kw","Maj","Cze","Lip","Sie","Wrz","Pa","Lis","Gru"],dayNames:["Niedziela","PoniedziaÅ‚ek","Wtorek","Åšroda","Czwartek","PiÄ…tek","Sobota"],dayNamesShort:["Nie","Pn","Wt","Åšr","Czw","Pt","So"],dayNamesMin:["N","Pn","Wt","Åšr","Cz","Pt","So"],weekHeader:"Tydz",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("pl",{buttonText:{month:"MiesiÄ…c",week:"TydzieÅ„",day:"DzieÅ„",list:"Plan dnia"},allDayText:"CaÅ‚y dzieÅ„",eventLimitText:"wiÄ™cej"})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"pt-br",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"poucos segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº"});return a}(),a.fullCalendar.datepickerLang("pt-br","pt-BR",{closeText:"Fechar",prevText:"&#x3C;Anterior",nextText:"Próximo&#x3E;",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("pt-br",{buttonText:{month:"Mês",week:"Semana",day:"Dia",list:"Compromissos"},allDayText:"dia inteiro",eventLimitText:function(a){return"mais +"+a}})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"pt",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return a}(),a.fullCalendar.datepickerLang("pt","pt",{closeText:"Fechar",prevText:"Anterior",nextText:"Seguinte",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],weekHeader:"Sem",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("pt",{buttonText:{month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},allDayText:"Todo o dia",eventLimitText:"mais"})}(),function(){!function(){"use strict";function a(a,b,c){var d={mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"},e=" ";return(a%100>=20||a>=100&&a%100===0)&&(e=" de "),a+e+d[c]}var c=(b.defineLocale||b.lang).call(b,"ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marÈ›i_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",m:"un minut",mm:a,h:"o oră",hh:a,d:"o zi",dd:a,M:"o lună",MM:a,y:"un an",yy:a},week:{dow:1,doy:7}});return c}(),a.fullCalendar.datepickerLang("ro","ro",{closeText:"ÃŽnchide",prevText:"&#xAB; Luna precedentă",nextText:"Luna următoare &#xBB;",currentText:"Azi",monthNames:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],monthNamesShort:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Duminică","Luni","MarÅ£i","Miercuri","Joi","Vineri","Sâmbătă"],dayNamesShort:["Dum","Lun","Mar","Mie","Joi","Vin","Sâm"],dayNamesMin:["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],weekHeader:"Săpt",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("ro",{buttonText:{prev:"precedentă",next:"următoare",month:"Lună",week:"Săptămână",day:"Zi",list:"Agendă"},allDayText:"Toată ziua",eventLimitText:function(a){return"+alte "+a}})}(),function(){!function(){"use strict";function a(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function c(b,c,d){var e={mm:c?"минута_минуты_минут":"минуту_минуты_минут",hh:"чаÑ_чаÑа_чаÑов",dd:"день_днÑ_дней",MM:"меÑÑц_меÑÑца_меÑÑцев",yy:"год_года_лет"};return"m"===d?c?"минута":"минуту":b+" "+a(e[d],+b)}var d=[/^Ñнв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йÑ]/i,/^июн/i,/^июл/i,/^авг/i,/^Ñен/i,/^окт/i,/^ноÑ/i,/^дек/i],e=(b.defineLocale||b.lang).call(b,"ru",{months:{format:"ÑнварÑ_февралÑ_марта_апрелÑ_маÑ_июнÑ_июлÑ_авгуÑта_ÑентÑбрÑ_октÑбрÑ_ноÑбрÑ_декабрÑ".split("_"),standalone:"Ñнварь_февраль_март_апрель_май_июнь_июль_авгуÑÑ‚_ÑентÑбрь_октÑбрь_ноÑбрь_декабрь".split("_")},monthsShort:{format:"Ñнв._февр._мар._апр._маÑ_июнÑ_июлÑ_авг._Ñент._окт._ноÑб._дек.".split("_"),standalone:"Ñнв._февр._март_апр._май_июнь_июль_авг._Ñент._окт._ноÑб._дек.".split("_")},weekdays:{standalone:"воÑкреÑенье_понедельник_вторник_Ñреда_четверг_пÑтница_Ñуббота".split("_"),format:"воÑкреÑенье_понедельник_вторник_Ñреду_четверг_пÑтницу_Ñубботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|Ñледующую|Ñту)? ?\] ?dddd/},weekdaysShort:"вÑ_пн_вт_ÑÑ€_чт_пт_Ñб".split("_"),weekdaysMin:"вÑ_пн_вт_ÑÑ€_чт_пт_Ñб".split("_"),monthsParse:d,longMonthsParse:d,shortMonthsParse:d,monthsRegex:/^(ÑентÑбр[ÑÑŒ]|октÑбр[ÑÑŒ]|декабр[ÑÑŒ]|феврал[ÑÑŒ]|Ñнвар[ÑÑŒ]|апрел[ÑÑŒ]|авгуÑта?|ноÑбр[ÑÑŒ]|Ñент\.|февр\.|ноÑб\.|июнь|Ñнв.|июль|дек.|авг.|апр.|марта|мар[.Ñ‚]|окт.|июн[ÑÑŒ]|июл[ÑÑŒ]|ма[Ñй])/i,monthsShortRegex:/^(ÑентÑбр[ÑÑŒ]|октÑбр[ÑÑŒ]|декабр[ÑÑŒ]|феврал[ÑÑŒ]|Ñнвар[ÑÑŒ]|апрел[ÑÑŒ]|авгуÑта?|ноÑбр[ÑÑŒ]|Ñент\.|февр\.|ноÑб\.|июнь|Ñнв.|июль|дек.|авг.|апр.|марта|мар[.Ñ‚]|окт.|июн[ÑÑŒ]|июл[ÑÑŒ]|ма[Ñй])/i,monthsStrictRegex:/^(ÑентÑбр[ÑÑŒ]|октÑбр[ÑÑŒ]|декабр[ÑÑŒ]|феврал[ÑÑŒ]|Ñнвар[ÑÑŒ]|апрел[ÑÑŒ]|авгуÑта?|ноÑбр[ÑÑŒ]|марта?|июн[ÑÑŒ]|июл[ÑÑŒ]|ма[Ñй])/i,monthsShortStrictRegex:/^(ноÑб\.|февр\.|Ñент\.|июль|Ñнв\.|июн[ÑÑŒ]|мар[.Ñ‚]|авг\.|апр\.|окт\.|дек\.|ма[Ñй])/i,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Ð¡ÐµÐ³Ð¾Ð´Ð½Ñ Ð²] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(a){if(a.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[Ð’] dddd [в] LT";switch(this.day()){case 0:return"[Ð’ Ñледующее] dddd [в] LT";case 1:case 2:case 4:return"[Ð’ Ñледующий] dddd [в] LT";case 3:case 5:case 6:return"[Ð’ Ñледующую] dddd [в] LT"}},lastWeek:function(a){if(a.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[Ð’] dddd [в] LT";switch(this.day()){case 0:return"[Ð’ прошлое] dddd [в] LT";case 1:case 2:case 4:return"[Ð’ прошлый] dddd [в] LT";case 3:case 5:case 6:return"[Ð’ прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"неÑколько Ñекунд",m:c,mm:c,h:"чаÑ",hh:c,d:"день",dd:c,M:"меÑÑц",MM:c,y:"год",yy:c},meridiemParse:/ночи|утра|днÑ|вечера/i,isPM:function(a){return/^(днÑ|вечера)$/.test(a)},meridiem:function(a,b,c){return 4>a?"ночи":12>a?"утра":17>a?"днÑ":"вечера"},ordinalParse:/\d{1,2}-(й|го|Ñ)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":return a+"-й";case"D":return a+"-го";case"w":case"W":return a+"-Ñ";default:return a}},week:{dow:1,doy:7}});return e}(),a.fullCalendar.datepickerLang("ru","ru",{closeText:"Закрыть",prevText:"&#x3C;Пред",nextText:"След&#x3E;",currentText:"СегоднÑ",monthNames:["Январь","Февраль","Март","Ðпрель","Май","Июнь","Июль","ÐвгуÑÑ‚","СентÑбрь","ОктÑбрь","ÐоÑбрь","Декабрь"],monthNamesShort:["Янв","Фев","Мар","Ðпр","Май","Июн","Июл","Ðвг","Сен","Окт","ÐоÑ","Дек"],dayNames:["воÑкреÑенье","понедельник","вторник","Ñреда","четверг","пÑтница","Ñуббота"],dayNamesShort:["вÑк","пнд","втр","Ñрд","чтв","птн","Ñбт"],dayNamesMin:["Ð’Ñ","Пн","Ð’Ñ‚","Ср","Чт","Пт","Сб"],weekHeader:"Ðед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("ru",{buttonText:{month:"МеÑÑц",week:"ÐеделÑ",day:"День",list:"ПовеÑтка днÑ"},allDayText:"ВеÑÑŒ день",eventLimitText:function(a){return"+ ещё "+a}})}(),function(){!function(){"use strict";function a(a){return a>1&&5>a}function c(b,c,d,e){var f=b+" ";switch(d){case"s":return c||e?"pár sekúnd":"pár sekundami";case"m":return c?"minúta":e?"minútu":"minútou";case"mm":return c||e?f+(a(b)?"minúty":"minút"):f+"minútami";case"h":return c?"hodina":e?"hodinu":"hodinou";case"hh":return c||e?f+(a(b)?"hodiny":"hodín"):f+"hodinami";case"d":return c||e?"deň":"dňom";case"dd":return c||e?f+(a(b)?"dni":"dní"):f+"dňami";case"M":return c||e?"mesiac":"mesiacom";case"MM":return c||e?f+(a(b)?"mesiace":"mesiacov"):f+"mesiacmi";case"y":return c||e?"rok":"rokom";case"yy":return c||e?f+(a(b)?"roky":"rokov"):f+"rokmi"}}var d="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),e="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_"),f=(b.defineLocale||b.lang).call(b,"sk",{months:d,monthsShort:e,weekdays:"nedeľa_pondelok_utorok_streda_Å¡tvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_Å¡t_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_Å¡t_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo Å¡tvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[vÄera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return f}(),a.fullCalendar.datepickerLang("sk","sk",{closeText:"ZavrieÅ¥",prevText:"&#x3C;Predchádzajúci",nextText:"Nasledujúci&#x3E;",currentText:"Dnes",monthNames:["január","február","marec","apríl","máj","jún","júl","august","september","október","november","december"],monthNamesShort:["Jan","Feb","Mar","Apr","Máj","Jún","Júl","Aug","Sep","Okt","Nov","Dec"],dayNames:["nedeľa","pondelok","utorok","streda","Å¡tvrtok","piatok","sobota"],dayNamesShort:["Ned","Pon","Uto","Str","Å tv","Pia","Sob"],dayNamesMin:["Ne","Po","Ut","St","Å t","Pia","So"],weekHeader:"Ty",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("sk",{buttonText:{month:"Mesiac",week:"Týždeň",day:"Deň",list:"Rozvrh"},allDayText:"Celý deň",eventLimitText:function(a){return"+ÄalÅ¡ie: "+a}})}(),function(){!function(){"use strict";function a(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"nekaj sekund":"nekaj sekundami";case"m":return b?"ena minuta":"eno minuto";case"mm":return e+=1===a?b?"minuta":"minuto":2===a?b||d?"minuti":"minutama":5>a?b||d?"minute":"minutami":b||d?"minut":"minutami";case"h":return b?"ena ura":"eno uro";case"hh":return e+=1===a?b?"ura":"uro":2===a?b||d?"uri":"urama":5>a?b||d?"ure":"urami":b||d?"ur":"urami";case"d":return b||d?"en dan":"enim dnem";case"dd":return e+=1===a?b||d?"dan":"dnem":2===a?b||d?"dni":"dnevoma":b||d?"dni":"dnevi";case"M":return b||d?"en mesec":"enim mesecem";case"MM":return e+=1===a?b||d?"mesec":"mesecem":2===a?b||d?"meseca":"mesecema":5>a?b||d?"mesece":"meseci":b||d?"mesecev":"meseci";case"y":return b||d?"eno leto":"enim letom";case"yy":return e+=1===a?b||d?"leto":"letom":2===a?b||d?"leti":"letoma":5>a?b||d?"leta":"leti":b||d?"let":"leti"}}var c=(b.defineLocale||b.lang).call(b,"sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_Äetrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._Äet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_Äe_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[vÄeraj ob] LT",lastWeek:function(){
-switch(this.day()){case 0:return"[prejÅ¡njo] [nedeljo] [ob] LT";case 3:return"[prejÅ¡njo] [sredo] [ob] LT";case 6:return"[prejÅ¡njo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejÅ¡nji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"Äez %s",past:"pred %s",s:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return c}(),a.fullCalendar.datepickerLang("sl","sl",{closeText:"Zapri",prevText:"&#x3C;PrejÅ¡nji",nextText:"Naslednji&#x3E;",currentText:"Trenutni",monthNames:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],dayNames:["Nedelja","Ponedeljek","Torek","Sreda","ÄŒetrtek","Petek","Sobota"],dayNamesShort:["Ned","Pon","Tor","Sre","ÄŒet","Pet","Sob"],dayNamesMin:["Ne","Po","To","Sr","ÄŒe","Pe","So"],weekHeader:"Teden",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("sl",{buttonText:{month:"Mesec",week:"Teden",day:"Dan",list:"Dnevni red"},allDayText:"Ves dan",eventLimitText:"veÄ"})}(),function(){!function(){"use strict";var a={words:{m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један Ñат","једног Ñата"],hh:["Ñат","Ñата","Ñати"],dd:["дан","дана","дана"],MM:["меÑец","меÑеца","меÑеци"],yy:["година","године","година"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(b,c,d){var e=a.words[d];return 1===d.length?c?e[0]:e[1]:b+" "+a.correctGrammaticalCase(b,e)}},c=(b.defineLocale||b.lang).call(b,"sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_авгуÑÑ‚_Ñептембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._Ñеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_Ñреда_четвртак_петак_Ñубота".split("_"),weekdaysShort:"нед._пон._уто._Ñре._чет._пет._Ñуб.".split("_"),weekdaysMin:"не_по_ут_ÑÑ€_че_пе_Ñу".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Ð´Ð°Ð½Ð°Ñ Ñƒ] LT",nextDay:"[Ñутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [Ñреду] [у] LT";case 6:return"[у] [Ñуботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){var a=["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [Ñреде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [Ñуботе] [у] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико Ñекунди",m:a.translate,mm:a.translate,h:a.translate,hh:a.translate,d:"дан",dd:a.translate,M:"меÑец",MM:a.translate,y:"годину",yy:a.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return c}(),a.fullCalendar.datepickerLang("sr-cyrl","sr",{closeText:"Затвори",prevText:"&#x3C;",nextText:"&#x3E;",currentText:"ДанаÑ",monthNames:["Јануар","Фебруар","Март","Ðприл","Мај","Јун","Јул","ÐвгуÑÑ‚","Септембар","Октобар","Ðовембар","Децембар"],monthNamesShort:["Јан","Феб","Мар","Ðпр","Мај","Јун","Јул","Ðвг","Сеп","Окт","Ðов","Дец"],dayNames:["Ðедеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],dayNamesShort:["Ðед","Пон","Уто","Сре","Чет","Пет","Суб"],dayNamesMin:["Ðе","По","Ут","Ср","Че","Пе","Су"],weekHeader:"Сед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("sr-cyrl",{buttonText:{month:"МеÑец",week:"Ðедеља",day:"Дан",list:"Планер"},allDayText:"Цео дан",eventLimitText:function(a){return"+ још "+a}})}(),function(){!function(){"use strict";var a={words:{m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(b,c,d){var e=a.words[d];return 1===d.length?c?e[0]:e[1]:b+" "+a.correctGrammaticalCase(b,e)}},c=(b.defineLocale||b.lang).call(b,"sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_Äetvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._Äet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_Äe_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juÄe u] LT",lastWeek:function(){var a=["[proÅ¡le] [nedelje] [u] LT","[proÅ¡log] [ponedeljka] [u] LT","[proÅ¡log] [utorka] [u] LT","[proÅ¡le] [srede] [u] LT","[proÅ¡log] [Äetvrtka] [u] LT","[proÅ¡log] [petka] [u] LT","[proÅ¡le] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:a.translate,mm:a.translate,h:a.translate,hh:a.translate,d:"dan",dd:a.translate,M:"mesec",MM:a.translate,y:"godinu",yy:a.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return c}(),a.fullCalendar.datepickerLang("sr","sr",{closeText:"Затвори",prevText:"&#x3C;",nextText:"&#x3E;",currentText:"ДанаÑ",monthNames:["Јануар","Фебруар","Март","Ðприл","Мај","Јун","Јул","ÐвгуÑÑ‚","Септембар","Октобар","Ðовембар","Децембар"],monthNamesShort:["Јан","Феб","Мар","Ðпр","Мај","Јун","Јул","Ðвг","Сеп","Окт","Ðов","Дец"],dayNames:["Ðедеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],dayNamesShort:["Ðед","Пон","Уто","Сре","Чет","Пет","Суб"],dayNamesMin:["Ðе","По","Ут","Ср","Че","Пе","Су"],weekHeader:"Сед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("sr",{buttonText:{month:"МеÑец",week:"Ðедеља",day:"Дан",list:"Планер"},allDayText:"Цео дан",eventLimitText:function(a){return"+ још "+a}})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_mÃ¥ndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mÃ¥n_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_mÃ¥_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[IgÃ¥r] LT",nextWeek:"[PÃ¥] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"nÃ¥gra sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en mÃ¥nad",MM:"%d mÃ¥nader",y:"ett Ã¥r",yy:"%d Ã¥r"},ordinalParse:/\d{1,2}(e|a)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"e":1===b?"a":2===b?"a":"e";return a+c},week:{dow:1,doy:4}});return a}(),a.fullCalendar.datepickerLang("sv","sv",{closeText:"Stäng",prevText:"&#xAB;Förra",nextText:"Nästa&#xBB;",currentText:"Idag",monthNames:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNamesShort:["Sön","MÃ¥n","Tis","Ons","Tor","Fre","Lör"],dayNames:["Söndag","MÃ¥ndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"],dayNamesMin:["Sö","MÃ¥","Ti","On","To","Fr","Lö"],weekHeader:"Ve",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("sv",{buttonText:{month:"MÃ¥nad",week:"Vecka",day:"Dag",list:"Program"},allDayText:"Heldag",eventLimitText:"till"})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"th",{months:"มà¸à¸£à¸²à¸„ม_à¸à¸¸à¸¡à¸ à¸²à¸žà¸±à¸™à¸˜à¹Œ_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_à¸à¸£à¸à¸Žà¸²à¸„ม_สิงหาคม_à¸à¸±à¸™à¸¢à¸²à¸¢à¸™_ตุลาคม_พฤศจิà¸à¸²à¸¢à¸™_ธันวาคม".split("_"),monthsShort:"มà¸à¸£à¸²_à¸à¸¸à¸¡à¸ à¸²_มีนา_เมษา_พฤษภา_มิถุนา_à¸à¸£à¸à¸Žà¸²_สิงหา_à¸à¸±à¸™à¸¢à¸²_ตุลา_พฤศจิà¸à¸²_ธันวา".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุà¸à¸£à¹Œ_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุà¸à¸£à¹Œ_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H นาฬิà¸à¸² m นาที",LTS:"H นาฬิà¸à¸² m นาที s วินาที",L:"YYYY/MM/DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H นาฬิà¸à¸² m นาที",LLLL:"วันddddที่ D MMMM YYYY เวลา H นาฬิà¸à¸² m นาที"},meridiemParse:/à¸à¹ˆà¸­à¸™à¹€à¸—ี่ยง|หลังเที่ยง/,isPM:function(a){return"หลังเที่ยง"===a},meridiem:function(a,b,c){return 12>a?"à¸à¹ˆà¸­à¸™à¹€à¸—ี่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่à¹à¸¥à¹‰à¸§ เวลา] LT",sameElse:"L"},relativeTime:{future:"อีภ%s",past:"%sที่à¹à¸¥à¹‰à¸§",s:"ไม่à¸à¸µà¹ˆà¸§à¸´à¸™à¸²à¸—ี",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}});return a}(),a.fullCalendar.datepickerLang("th","th",{closeText:"ปิด",prevText:"&#xAB;&#xA0;ย้อน",nextText:"ถัดไป&#xA0;&#xBB;",currentText:"วันนี้",monthNames:["มà¸à¸£à¸²à¸„ม","à¸à¸¸à¸¡à¸ à¸²à¸žà¸±à¸™à¸˜à¹Œ","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","à¸à¸£à¸à¸Žà¸²à¸„ม","สิงหาคม","à¸à¸±à¸™à¸¢à¸²à¸¢à¸™","ตุลาคม","พฤศจิà¸à¸²à¸¢à¸™","ธันวาคม"],monthNamesShort:["ม.ค.","à¸.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","à¸.ค.","ส.ค.","à¸.ย.","ต.ค.","พ.ย.","ธ.ค."],dayNames:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุà¸à¸£à¹Œ","เสาร์"],dayNamesShort:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],dayNamesMin:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("th",{buttonText:{month:"เดือน",week:"สัปดาห์",day:"วัน",list:"à¹à¸œà¸™à¸‡à¸²à¸™"},allDayText:"ตลอดวัน",eventLimitText:"เพิ่มเติม"})}(),function(){!function(){"use strict";var a={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"},c=(b.defineLocale||b.lang).call(b,"tr",{months:"Ocak_Åžubat_Mart_Nisan_Mayıs_Haziran_Temmuz_AÄŸustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Åžub_Mar_Nis_May_Haz_Tem_AÄŸu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_ÇarÅŸamba_PerÅŸembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[haftaya] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen hafta] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinalParse:/\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(b){if(0===b)return b+"'ıncı";var c=b%10,d=b%100-c,e=b>=100?100:null;return b+(a[c]||a[d]||a[e])},week:{dow:1,doy:7}});return c}(),a.fullCalendar.datepickerLang("tr","tr",{closeText:"kapat",prevText:"&#x3C;geri",nextText:"ileri&#x3e",currentText:"bugün",monthNames:["Ocak","Åžubat","Mart","Nisan","Mayıs","Haziran","Temmuz","AÄŸustos","Eylül","Ekim","Kasım","Aralık"],monthNamesShort:["Oca","Åžub","Mar","Nis","May","Haz","Tem","AÄŸu","Eyl","Eki","Kas","Ara"],dayNames:["Pazar","Pazartesi","Salı","ÇarÅŸamba","PerÅŸembe","Cuma","Cumartesi"],dayNamesShort:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],dayNamesMin:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],weekHeader:"Hf",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("tr",{buttonText:{next:"ileri",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},allDayText:"Tüm gün",eventLimitText:"daha fazla"})}(),function(){!function(){"use strict";function a(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function c(b,c,d){var e={mm:c?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:c?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"міÑÑць_міÑÑці_міÑÑців",yy:"рік_роки_років"};return"m"===d?c?"хвилина":"хвилину":"h"===d?c?"година":"годину":b+" "+a(e[d],+b)}function d(a,b){var c={nominative:"неділÑ_понеділок_вівторок_Ñереда_четвер_п’ÑтницÑ_Ñубота".split("_"),accusative:"неділю_понеділок_вівторок_Ñереду_четвер_п’Ñтницю_Ñуботу".split("_"),genitive:"неділі_понеділка_вівторка_Ñереди_четверга_п’Ñтниці_Ñуботи".split("_")},d=/(\[[ВвУу]\]) ?dddd/.test(b)?"accusative":/\[?(?:минулої|наÑтупної)? ?\] ?dddd/.test(b)?"genitive":"nominative";return c[d][a.day()]}function e(a){return function(){return a+"о"+(11===this.hours()?"б":"")+"] LT"}}var f=(b.defineLocale||b.lang).call(b,"uk",{months:{format:"ÑічнÑ_лютого_березнÑ_квітнÑ_травнÑ_червнÑ_липнÑ_ÑерпнÑ_вереÑнÑ_жовтнÑ_лиÑтопада_груднÑ".split("_"),standalone:"Ñічень_лютий_березень_квітень_травень_червень_липень_Ñерпень_вереÑень_жовтень_лиÑтопад_грудень".split("_")},monthsShort:"Ñіч_лют_бер_квіт_трав_черв_лип_Ñерп_вер_жовт_лиÑÑ‚_груд".split("_"),weekdays:d,weekdaysShort:"нд_пн_вт_ÑÑ€_чт_пт_Ñб".split("_"),weekdaysMin:"нд_пн_вт_ÑÑ€_чт_пт_Ñб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY Ñ€.",LLL:"D MMMM YYYY Ñ€., HH:mm",LLLL:"dddd, D MMMM YYYY Ñ€., HH:mm"},calendar:{sameDay:e("[Сьогодні "),nextDay:e("[Завтра "),lastDay:e("[Вчора "),nextWeek:e("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return e("[Минулої] dddd [").call(this);case 1:case 2:case 4:return e("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька Ñекунд",m:c,mm:c,h:"годину",hh:c,d:"день",dd:c,M:"міÑÑць",MM:c,y:"рік",yy:c},meridiemParse:/ночі|ранку|днÑ|вечора/,isPM:function(a){return/^(днÑ|вечора)$/.test(a)},meridiem:function(a,b,c){return 4>a?"ночі":12>a?"ранку":17>a?"днÑ":"вечора"},ordinalParse:/\d{1,2}-(й|го)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a+"-й";case"D":return a+"-го";default:return a}},week:{dow:1,doy:7}});return f}(),a.fullCalendar.datepickerLang("uk","uk",{closeText:"Закрити",prevText:"&#x3C;",nextText:"&#x3E;",currentText:"Сьогодні",monthNames:["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","ВереÑень","Жовтень","ЛиÑтопад","Грудень"],monthNamesShort:["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","ЛиÑ","Гру"],dayNames:["неділÑ","понеділок","вівторок","Ñереда","четвер","п’ÑтницÑ","Ñубота"],dayNamesShort:["нед","пнд","вів","Ñрд","чтв","птн","Ñбт"],dayNamesMin:["Ðд","Пн","Ð’Ñ‚","Ср","Чт","Пт","Сб"],weekHeader:"Тиж",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("uk",{buttonText:{month:"МіÑÑць",week:"Тиждень",day:"День",list:"ПорÑдок денний"},allDayText:"УвеÑÑŒ день",eventLimitText:function(a){return"+ще "+a+"..."}})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tÆ°_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(a){return/^ch$/i.test(a)},meridiem:function(a,b,c){return 12>a?c?"sa":"SA":c?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tá»›i lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tá»›i",past:"%s trÆ°á»›c",s:"vài giây",m:"má»™t phút",mm:"%d phút",h:"má»™t giá»",hh:"%d giá»",d:"má»™t ngày",dd:"%d ngày",M:"má»™t tháng",MM:"%d tháng",y:"má»™t năm",yy:"%d năm"},ordinalParse:/\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}});return a}(),a.fullCalendar.datepickerLang("vi","vi",{closeText:"Äóng",prevText:"&#x3C;TrÆ°á»›c",nextText:"Tiếp&#x3E;",currentText:"Hôm nay",monthNames:["Tháng Má»™t","Tháng Hai","Tháng Ba","Tháng TÆ°","Tháng Năm","Tháng Sáu","Tháng Bảy","Tháng Tám","Tháng Chín","Tháng MÆ°á»i","Tháng MÆ°á»i Má»™t","Tháng MÆ°á»i Hai"],monthNamesShort:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],dayNames:["Chủ Nhật","Thứ Hai","Thứ Ba","Thứ TÆ°","Thứ Năm","Thứ Sáu","Thứ Bảy"],dayNamesShort:["CN","T2","T3","T4","T5","T6","T7"],dayNamesMin:["CN","T2","T3","T4","T5","T6","T7"],weekHeader:"Tu",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("vi",{buttonText:{month:"Tháng",week:"Tuần",day:"Ngày",list:"Lịch biểu"},allDayText:"Cả ngày",eventLimitText:function(a){return"+ thêm "+a}})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_ä¹æœˆ_å月_å一月_å二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"æ—¥_一_二_三_å››_五_å…­".split("_"),longDateFormat:{LT:"Ah点mm分",LTS:"Ah点m分s秒",L:"YYYY-MM-DD",LL:"YYYYå¹´MMMDæ—¥",LLL:"YYYYå¹´MMMDæ—¥Ah点mm分",LLLL:"YYYYå¹´MMMDæ—¥ddddAh点mm分",l:"YYYY-MM-DD",ll:"YYYYå¹´MMMDæ—¥",lll:"YYYYå¹´MMMDæ—¥Ah点mm分",llll:"YYYYå¹´MMMDæ—¥ddddAh点mm分"},meridiemParse:/凌晨|早上|上åˆ|中åˆ|下åˆ|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"凌晨"===b||"早上"===b||"上åˆ"===b?a:"下åˆ"===b||"晚上"===b?a+12:a>=11?a:a+12},meridiem:function(a,b,c){var d=100*a+b;return 600>d?"凌晨":900>d?"早上":1130>d?"上åˆ":1230>d?"中åˆ":1800>d?"下åˆ":"晚上"},calendar:{sameDay:function(){return 0===this.minutes()?"[今天]Ah[点整]":"[今天]LT"},nextDay:function(){return 0===this.minutes()?"[明天]Ah[点整]":"[明天]LT"},lastDay:function(){return 0===this.minutes()?"[昨天]Ah[点整]":"[昨天]LT"},nextWeek:function(){var a,c;return a=b().startOf("week"),c=this.diff(a,"days")>=7?"[下]":"[本]",0===this.minutes()?c+"dddAh点整":c+"dddAh点mm"},lastWeek:function(){var a,c;return a=b().startOf("week"),c=this.unix()<a.unix()?"[上]":"[本]",0===this.minutes()?c+"dddAh点整":c+"dddAh点mm"},sameElse:"LL"},ordinalParse:/\d{1,2}(æ—¥|月|周)/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"æ—¥";case"M":return a+"月";case"w":case"W":return a+"周";default:return a}},relativeTime:{future:"%s内",past:"%så‰",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 å°æ—¶",hh:"%d å°æ—¶",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 å¹´",yy:"%d å¹´"},week:{dow:1,doy:4}});return a}(),a.fullCalendar.datepickerLang("zh-cn","zh-CN",{closeText:"关闭",prevText:"&#x3C;上月",nextText:"下月&#x3E;",currentText:"今天",monthNames:["一月","二月","三月","四月","五月","六月","七月","八月","ä¹æœˆ","å月","å一月","å二月"],monthNamesShort:["一月","二月","三月","四月","五月","六月","七月","八月","ä¹æœˆ","å月","å一月","å二月"],dayNames:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayNamesShort:["周日","周一","周二","周三","周四","周五","周六"],dayNamesMin:["æ—¥","一","二","三","å››","五","å…­"],weekHeader:"周",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"å¹´"}),a.fullCalendar.lang("zh-cn",{buttonText:{month:"月",week:"周",day:"æ—¥",list:"日程"},allDayText:"全天",eventLimitText:function(a){return"å¦å¤– "+a+" 个"}})}(),function(){!function(){"use strict";var a=(b.defineLocale||b.lang).call(b,"zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_ä¹æœˆ_å月_å一月_å二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"æ—¥_一_二_三_å››_五_å…­".split("_"),longDateFormat:{LT:"Ah點mm分",LTS:"Ah點m分s秒",L:"YYYYå¹´MMMDæ—¥",LL:"YYYYå¹´MMMDæ—¥",LLL:"YYYYå¹´MMMDæ—¥Ah點mm分",LLLL:"YYYYå¹´MMMDæ—¥ddddAh點mm分",l:"YYYYå¹´MMMDæ—¥",ll:"YYYYå¹´MMMDæ—¥",lll:"YYYYå¹´MMMDæ—¥Ah點mm分",llll:"YYYYå¹´MMMDæ—¥ddddAh點mm分"},meridiemParse:/早上|上åˆ|中åˆ|下åˆ|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"早上"===b||"上åˆ"===b?a:"中åˆ"===b?a>=11?a:a+12:"下åˆ"===b||"晚上"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return 900>d?"早上":1130>d?"上åˆ":1230>d?"中åˆ":1800>d?"下åˆ":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},ordinalParse:/\d{1,2}(æ—¥|月|週)/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"æ—¥";case"M":return a+"月";case"w":case"W":return a+"週";default:return a}},relativeTime:{future:"%så…§",past:"%så‰",s:"幾秒",m:"1分é˜",mm:"%d分é˜",h:"1å°æ™‚",hh:"%då°æ™‚",d:"1天",dd:"%d天",M:"1個月",MM:"%d個月",y:"1å¹´",yy:"%då¹´"}});return a}(),a.fullCalendar.datepickerLang("zh-tw","zh-TW",{closeText:"關閉",prevText:"&#x3C;上月",nextText:"下月&#x3E;",currentText:"今天",monthNames:["一月","二月","三月","四月","五月","六月","七月","八月","ä¹æœˆ","å月","å一月","å二月"],monthNamesShort:["一月","二月","三月","四月","五月","六月","七月","八月","ä¹æœˆ","å月","å一月","å二月"],dayNames:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayNamesShort:["周日","周一","周二","周三","周四","周五","周六"],dayNamesMin:["æ—¥","一","二","三","å››","五","å…­"],weekHeader:"周",dateFormat:"yy/mm/dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"å¹´"}),a.fullCalendar.lang("zh-tw",{buttonText:{month:"月",week:"週",day:"天",list:"待辦事項"},allDayText:"全天",eventLimitText:"更多"})}(),(b.locale||b.lang).call(b,"en"),a.fullCalendar.lang("en"),a.datepicker&&a.datepicker.setDefaults(a.datepicker.regional[""])}); \ No newline at end of file
diff --git a/library/fullcalendar/locale-all.js b/library/fullcalendar/locale-all.js
new file mode 100644
index 000000000..b8247c54e
--- /dev/null
+++ b/library/fullcalendar/locale-all.js
@@ -0,0 +1,5 @@
+!function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):"object"==typeof exports?module.exports=e(require("jquery"),require("moment")):e(jQuery,moment)}(function(e,a){!function(){!function(){var e={1:"Ù¡",2:"Ù¢",3:"Ù£",4:"Ù¤",5:"Ù¥",6:"Ù¦",7:"Ù§",8:"Ù¨",9:"Ù©",0:"Ù "},t={"Ù¡":"1","Ù¢":"2","Ù£":"3","Ù¤":"4","Ù¥":"5","Ù¦":"6","Ù§":"7","Ù¨":"8","Ù©":"9","Ù ":"0"},n=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},r={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},s=function(e){return function(a,t,s,d){var i=n(a),o=r[e][n(a)];return 2===i&&(o=o[t?0:1]),o.replace(/%d/i,a)}},d=["كانون الثاني يناير","شباط Ùبراير","آذار مارس","نيسان أبريل","أيار مايو","حزيران يونيو","تموز يوليو","آب أغسطس","أيلول سبتمبر","تشرين الأول أكتوبر","تشرين الثاني نوÙمبر","كانون الأول ديسمبر"],i=a.defineLocale("ar",{months:d,monthsShort:d,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"Ø­_Ù†_Ø«_ر_Ø®_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/â€M/â€YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|Ù…/,isPM:function(e){return"Ù…"===e},meridiem:function(e,a,t){return e<12?"ص":"Ù…"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:s("s"),m:s("m"),mm:s("m"),h:s("h"),hh:s("h"),d:s("d"),dd:s("d"),M:s("M"),MM:s("M"),y:s("y"),yy:s("y")},preparse:function(e){return e.replace(/\u200f/g,"").replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(e){return t[e]}).replace(/ØŒ/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return e[a]}).replace(/,/g,"ØŒ")},week:{dow:6,doy:12}});return i}(),e.fullCalendar.datepickerLocale("ar","ar",{closeText:"إغلاق",prevText:"&#x3C;السابق",nextText:"التالي&#x3E;",currentText:"اليوم",monthNames:["يناير","Ùبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوÙمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],dayNamesMin:["Ø­","Ù†","Ø«","ر","Ø®","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("ar",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"})}(),function(){!function(){var e=a.defineLocale("ar-ma",{months:"يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"Ø­_Ù†_Ø«_ر_Ø®_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"ÙÙŠ %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}});return e}(),e.fullCalendar.datepickerLocale("ar-ma","ar",{closeText:"إغلاق",prevText:"&#x3C;السابق",nextText:"التالي&#x3E;",currentText:"اليوم",monthNames:["يناير","Ùبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوÙمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],dayNamesMin:["Ø­","Ù†","Ø«","ر","Ø®","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("ar-ma",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"})}(),function(){!function(){var e={1:"Ù¡",2:"Ù¢",3:"Ù£",4:"Ù¤",5:"Ù¥",6:"Ù¦",7:"Ù§",8:"Ù¨",9:"Ù©",0:"Ù "},t={"Ù¡":"1","Ù¢":"2","Ù£":"3","Ù¤":"4","Ù¥":"5","Ù¦":"6","Ù§":"7","Ù¨":"8","Ù©":"9","Ù ":"0"},n=a.defineLocale("ar-sa",{months:"يناير_Ùبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوÙمبر_ديسمبر".split("_"),monthsShort:"يناير_Ùبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوÙمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"Ø­_Ù†_Ø«_ر_Ø®_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|Ù…/,isPM:function(e){return"Ù…"===e},meridiem:function(e,a,t){return e<12?"ص":"Ù…"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"ÙÙŠ %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(e){return t[e]}).replace(/ØŒ/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return e[a]}).replace(/,/g,"ØŒ")},week:{dow:6,doy:12}});return n}(),e.fullCalendar.datepickerLocale("ar-sa","ar",{closeText:"إغلاق",prevText:"&#x3C;السابق",nextText:"التالي&#x3E;",currentText:"اليوم",monthNames:["يناير","Ùبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوÙمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],dayNamesMin:["Ø­","Ù†","Ø«","ر","Ø®","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("ar-sa",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"})}(),function(){!function(){var e=a.defineLocale("ar-tn",{months:"جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر".split("_"),monthsShort:"جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"Ø­_Ù†_Ø«_ر_Ø®_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"ÙÙŠ %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("ar-tn","ar",{closeText:"إغلاق",prevText:"&#x3C;السابق",nextText:"التالي&#x3E;",currentText:"اليوم",monthNames:["يناير","Ùبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوÙمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],dayNamesMin:["Ø­","Ù†","Ø«","ر","Ø®","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("ar-tn",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"})}(),function(){!function(){var e=a.defineLocale("bg",{months:"Ñнуари_февруари_март_април_май_юни_юли_авгуÑÑ‚_Ñептември_октомври_ноември_декември".split("_"),monthsShort:"Ñнр_фев_мар_апр_май_юни_юли_авг_Ñеп_окт_ное_дек".split("_"),weekdays:"неделÑ_понеделник_вторник_ÑÑ€Ñда_четвъртък_петък_Ñъбота".split("_"),weekdaysShort:"нед_пон_вто_ÑÑ€Ñ_чет_пет_Ñъб".split("_"),weekdaysMin:"нд_пн_вт_ÑÑ€_чт_пт_Ñб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Ð”Ð½ÐµÑ Ð²] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Ð’ изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[Ð’ изминалиÑ] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"Ñлед %s",past:"преди %s",s:"нÑколко Ñекунди",m:"минута",mm:"%d минути",h:"чаÑ",hh:"%d чаÑа",d:"ден",dd:"%d дни",M:"меÑец",MM:"%d меÑеца",y:"година",yy:"%d години"},ordinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var a=e%10,t=e%100;return 0===e?e+"-ев":0===t?e+"-ен":t>10&&t<20?e+"-ти":1===a?e+"-ви":2===a?e+"-ри":7===a||8===a?e+"-ми":e+"-ти"},week:{dow:1,doy:7}});return e}(),e.fullCalendar.datepickerLocale("bg","bg",{closeText:"затвори",prevText:"&#x3C;назад",nextText:"напред&#x3E;",nextBigText:"&#x3E;&#x3E;",currentText:"днеÑ",monthNames:["Януари","Февруари","Март","Ðприл","Май","Юни","Юли","ÐвгуÑÑ‚","Септември","Октомври","Ðоември","Декември"],monthNamesShort:["Яну","Фев","Мар","Ðпр","Май","Юни","Юли","Ðвг","Сеп","Окт","Ðов","Дек"],dayNames:["ÐеделÑ","Понеделник","Вторник","СрÑда","Четвъртък","Петък","Събота"],dayNamesShort:["Ðед","Пон","Вто","СрÑ","Чет","Пет","Съб"],dayNamesMin:["Ðе","По","Ð’Ñ‚","Ср","Че","Пе","Съ"],weekHeader:"Wk",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("bg",{buttonText:{month:"МеÑец",week:"Седмица",day:"Ден",list:"График"},allDayText:"ЦÑл ден",eventLimitText:function(e){return"+още "+e},noEventsMessage:"ÐÑма ÑÑŠÐ±Ð¸Ñ‚Ð¸Ñ Ð·Ð° показване"})}(),function(){!function(){var e=a.defineLocale("ca",{months:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),monthsShort:"gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd D MMMM YYYY H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},ordinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,a){var t=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==a&&"W"!==a||(t="a"),e+t},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("ca","ca",{closeText:"Tanca",prevText:"Anterior",nextText:"Següent",currentText:"Avui",monthNames:["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],monthNamesShort:["gen","feb","març","abr","maig","juny","jul","ag","set","oct","nov","des"],dayNames:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],dayNamesShort:["dg","dl","dt","dc","dj","dv","ds"],dayNamesMin:["dg","dl","dt","dc","dj","dv","ds"],weekHeader:"Set",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("ca",{buttonText:{month:"Mes",week:"Setmana",day:"Dia",list:"Agenda"},allDayText:"Tot el dia",eventLimitText:"més",noEventsMessage:"No hi ha esdeveniments per mostrar"})}(),function(){!function(){function e(e){return e>1&&e<5&&1!==~~(e/10)}function t(a,t,n,r){var s=a+" ";switch(n){case"s":return t||r?"pár sekund":"pár sekundami";case"m":return t?"minuta":r?"minutu":"minutou";case"mm":return t||r?s+(e(a)?"minuty":"minut"):s+"minutami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?s+(e(a)?"hodiny":"hodin"):s+"hodinami";case"d":return t||r?"den":"dnem";case"dd":return t||r?s+(e(a)?"dny":"dní"):s+"dny";case"M":return t||r?"mÄ›síc":"mÄ›sícem";case"MM":return t||r?s+(e(a)?"mÄ›síce":"mÄ›síců"):s+"mÄ›síci";case"y":return t||r?"rok":"rokem";case"yy":return t||r?s+(e(a)?"roky":"let"):s+"lety"}}var n="leden_únor_bÅ™ezen_duben_kvÄ›ten_Äerven_Äervenec_srpen_září_říjen_listopad_prosinec".split("_"),r="led_úno_bÅ™e_dub_kvÄ›_Ävn_Ävc_srp_zář_říj_lis_pro".split("_"),s=a.defineLocale("cs",{months:n,monthsShort:r,monthsParse:function(e,a){var t,n=[];for(t=0;t<12;t++)n[t]=new RegExp("^"+e[t]+"$|^"+a[t]+"$","i");return n}(n,r),shortMonthsParse:function(e){var a,t=[];for(a=0;a<12;a++)t[a]=new RegExp("^"+e[a]+"$","i");return t}(r),longMonthsParse:function(e){var a,t=[];for(a=0;a<12;a++)t[a]=new RegExp("^"+e[a]+"$","i");return t}(n),weekdays:"nedÄ›le_pondÄ›lí_úterý_stÅ™eda_Ätvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_Ät_pá_so".split("_"),weekdaysMin:"ne_po_út_st_Ät_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedÄ›li v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve stÅ™edu v] LT";case 4:return"[ve Ätvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[vÄera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou nedÄ›li v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou stÅ™edu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pÅ™ed %s",s:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return s}(),e.fullCalendar.datepickerLocale("cs","cs",{closeText:"Zavřít",prevText:"&#x3C;Dříve",nextText:"PozdÄ›ji&#x3E;",currentText:"Nyní",monthNames:["leden","únor","bÅ™ezen","duben","kvÄ›ten","Äerven","Äervenec","srpen","září","říjen","listopad","prosinec"],monthNamesShort:["led","úno","bÅ™e","dub","kvÄ›","Äer","Ävc","srp","zář","říj","lis","pro"],dayNames:["nedÄ›le","pondÄ›lí","úterý","stÅ™eda","Ätvrtek","pátek","sobota"],dayNamesShort:["ne","po","út","st","Ät","pá","so"],dayNamesMin:["ne","po","út","st","Ät","pá","so"],weekHeader:"Týd",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("cs",{buttonText:{month:"MÄ›síc",week:"Týden",day:"Den",list:"Agenda"},allDayText:"Celý den",eventLimitText:function(e){return"+další: "+e},noEventsMessage:"Žádné akce k zobrazení"})}(),function(){!function(){var e=a.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY HH:mm"},calendar:{sameDay:"[I dag kl.] LT",nextDay:"[I morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[I gÃ¥r kl.] LT",lastWeek:"[sidste] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"fÃ¥ sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en mÃ¥ned",MM:"%d mÃ¥neder",y:"et Ã¥r",yy:"%d Ã¥r"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("da","da",{closeText:"Luk",prevText:"&#x3C;Forrige",nextText:"Næste&#x3E;",currentText:"Idag",monthNames:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNames:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],dayNamesShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayNamesMin:["Sø","Ma","Ti","On","To","Fr","Lø"],weekHeader:"Uge",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("da",{buttonText:{month:"MÃ¥ned",week:"Uge",day:"Dag",list:"Agenda"},allDayText:"Hele dagen",eventLimitText:"flere",noEventsMessage:"Ingen arrangementer at vise"})}(),function(){!function(){function e(e,a,t,n){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return a?r[t][0]:r[t][1]}var t=a.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return t}(),e.fullCalendar.datepickerLocale("de","de",{closeText:"Schließen",prevText:"&#x3C;Zurück",nextText:"Vor&#x3E;",currentText:"Heute",monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayNamesMin:["So","Mo","Di","Mi","Do","Fr","Sa"],weekHeader:"KW",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("de",{buttonText:{month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},allDayText:"Ganztägig",eventLimitText:function(e){return"+ weitere "+e},noEventsMessage:"Keine Ereignisse anzeigen"})}(),function(){!function(){function e(e,a,t,n){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return a?r[t][0]:r[t][1]}var t=a.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return t}(),e.fullCalendar.datepickerLocale("de-at","de",{closeText:"Schließen",prevText:"&#x3C;Zurück",nextText:"Vor&#x3E;",currentText:"Heute",monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayNamesMin:["So","Mo","Di","Mi","Do","Fr","Sa"],weekHeader:"KW",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("de-at",{buttonText:{month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},allDayText:"Ganztägig",eventLimitText:function(e){return"+ weitere "+e},noEventsMessage:"Keine Ereignisse anzeigen"})}(),function(){!function(){function e(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}var t=a.defineLocale("el",{monthsNominativeEl:"ΙανουάÏιος_ΦεβÏουάÏιος_ΜάÏτιος_ΑπÏίλιος_Μάιος_ΙοÏνιος_ΙοÏλιος_ΑÏγουστος_ΣεπτέμβÏιος_ΟκτώβÏιος_ÎοέμβÏιος_ΔεκέμβÏιος".split("_"),monthsGenitiveEl:"ΙανουαÏίου_ΦεβÏουαÏίου_ΜαÏτίου_ΑπÏιλίου_ΜαÎου_Ιουνίου_Ιουλίου_ΑυγοÏστου_ΣεπτεμβÏίου_ΟκτωβÏίου_ÎοεμβÏίου_ΔεκεμβÏίου".split("_"),months:function(e,a){return/D/.test(a.substring(0,a.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]},monthsShort:"Ιαν_Φεβ_ΜαÏ_ΑπÏ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Îοε_Δεκ".split("_"),weekdays:"ΚυÏιακή_ΔευτέÏα_ΤÏίτη_ΤετάÏτη_Πέμπτη_ΠαÏασκευή_Σάββατο".split("_"),weekdaysShort:"ΚυÏ_Δευ_ΤÏι_Τετ_Πεμ_ΠαÏ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_ΤÏ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,a,t){return e>11?t?"μμ":"ΜΜ":t?"πμ":"ΠΜ"},isPM:function(e){return"μ"===(e+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Îœ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[ΣήμεÏα {}] LT",nextDay:"[ΑÏÏιο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το Ï€ÏοηγοÏμενο] dddd [{}] LT";default:return"[την Ï€ÏοηγοÏμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(a,t){var n=this._calendarEl[a],r=t&&t.hours();return e(n)&&(n=n.apply(t)),n.replace("{}",r%12===1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s Ï€Ïιν",s:"λίγα δευτεÏόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ÏŽÏα",hh:"%d ÏŽÏες",d:"μία μέÏα",dd:"%d μέÏες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χÏόνος",yy:"%d χÏόνια"},ordinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}});return t}(),e.fullCalendar.datepickerLocale("el","el",{closeText:"Κλείσιμο",prevText:"ΠÏοηγοÏμενος",nextText:"Επόμενος",currentText:"ΣήμεÏα",monthNames:["ΙανουάÏιος","ΦεβÏουάÏιος","ΜάÏτιος","ΑπÏίλιος","Μάιος","ΙοÏνιος","ΙοÏλιος","ΑÏγουστος","ΣεπτέμβÏιος","ΟκτώβÏιος","ÎοέμβÏιος","ΔεκέμβÏιος"],monthNamesShort:["Ιαν","Φεβ","ΜαÏ","ΑπÏ","Μαι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Îοε","Δεκ"],dayNames:["ΚυÏιακή","ΔευτέÏα","ΤÏίτη","ΤετάÏτη","Πέμπτη","ΠαÏασκευή","Σάββατο"],dayNamesShort:["ΚυÏ","Δευ","ΤÏι","Τετ","Πεμ","ΠαÏ","Σαβ"],dayNamesMin:["Κυ","Δε","ΤÏ","Τε","Πε","Πα","Σα"],weekHeader:"Εβδ",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("el",{buttonText:{month:"Μήνας",week:"Εβδομάδα",day:"ΗμέÏα",list:"Ατζέντα"},allDayText:"ΟλοήμεÏο",eventLimitText:"πεÏισσότεÏα",noEventsMessage:"Δεν υπάÏχουν γεγονότα για να εμφανιστεί"})}(),function(){!function(){var e=a.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10,t=1===~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th";return e+t},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("en-au","en-AU",{closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("en-au")}(),function(){!function(){var e=a.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10,t=1===~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th";return e+t}});return e}(),e.fullCalendar.locale("en-ca")}(),function(){!function(){var e=a.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10,t=1===~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th";return e+t},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("en-gb","en-GB",{closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("en-gb")}(),function(){!function(){var e=a.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10,t=1===~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th";return e+t},week:{dow:1,doy:4}});return e}(),e.fullCalendar.locale("en-ie")}(),function(){!function(){var e=a.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10,t=1===~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th";return e+t},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("en-nz","en-NZ",{closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("en-nz")}(),function(){!function(){var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),t="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),n=a.defineLocale("es",{
+months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,n){return/-MMM-/.test(n)?t[a.month()]:e[a.month()]},monthsParseExact:!0,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return n}(),e.fullCalendar.datepickerLocale("es","es",{closeText:"Cerrar",prevText:"&#x3C;Ant",nextText:"Sig&#x3E;",currentText:"Hoy",monthNames:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],monthNamesShort:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],dayNames:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],dayNamesShort:["dom","lun","mar","mié","jue","vie","sáb"],dayNamesMin:["D","L","M","X","J","V","S"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("es",{buttonText:{month:"Mes",week:"Semana",day:"Día",list:"Agenda"},allDayHtml:"Todo<br/>el día",eventLimitText:"más",noEventsMessage:"No hay eventos para mostrar"})}(),function(){!function(){var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),t="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),n=a.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,n){return/-MMM-/.test(n)?t[a.month()]:e[a.month()]},monthsParseExact:!0,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return n}(),e.fullCalendar.datepickerLocale("es-do","es",{closeText:"Cerrar",prevText:"&#x3C;Ant",nextText:"Sig&#x3E;",currentText:"Hoy",monthNames:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],monthNamesShort:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],dayNames:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],dayNamesShort:["dom","lun","mar","mié","jue","vie","sáb"],dayNamesMin:["D","L","M","X","J","V","S"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("es-do",{buttonText:{month:"Mes",week:"Semana",day:"Día",list:"Agenda"},allDayHtml:"Todo<br/>el día",eventLimitText:"más",noEventsMessage:"No hay eventos para mostrar"})}(),function(){!function(){var e=a.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return e}(),e.fullCalendar.datepickerLocale("eu","eu",{closeText:"Egina",prevText:"&#x3C;Aur",nextText:"Hur&#x3E;",currentText:"Gaur",monthNames:["urtarrila","otsaila","martxoa","apirila","maiatza","ekaina","uztaila","abuztua","iraila","urria","azaroa","abendua"],monthNamesShort:["urt.","ots.","mar.","api.","mai.","eka.","uzt.","abu.","ira.","urr.","aza.","abe."],dayNames:["igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata"],dayNamesShort:["ig.","al.","ar.","az.","og.","ol.","lr."],dayNamesMin:["ig","al","ar","az","og","ol","lr"],weekHeader:"As",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("eu",{buttonText:{month:"Hilabetea",week:"Astea",day:"Eguna",list:"Agenda"},allDayHtml:"Egun<br/>osoa",eventLimitText:"gehiago",noEventsMessage:"Ez dago ekitaldirik erakusteko"})}(),function(){!function(){var e={1:"Û±",2:"Û²",3:"Û³",4:"Û´",5:"Ûµ",6:"Û¶",7:"Û·",8:"Û¸",9:"Û¹",0:"Û°"},t={"Û±":"1","Û²":"2","Û³":"3","Û´":"4","Ûµ":"5","Û¶":"6","Û·":"7","Û¸":"8","Û¹":"9","Û°":"0"},n=a.defineLocale("fa",{months:"ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ÛŒ_د_س_Ú†_Ù¾_ج_Ø´".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(e){return/بعد از ظهر/.test(e)},meridiem:function(e,a,t){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[Ùردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چندین ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[Û°-Û¹]/g,function(e){return t[e]}).replace(/ØŒ/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return e[a]}).replace(/,/g,"ØŒ")},ordinalParse:/\d{1,2}Ù…/,ordinal:"%dÙ…",week:{dow:6,doy:12}});return n}(),e.fullCalendar.datepickerLocale("fa","fa",{closeText:"بستن",prevText:"&#x3C;قبلی",nextText:"بعدی&#x3E;",currentText:"امروز",monthNames:["ژانویه","Ùوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["يکشنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],dayNamesShort:["ÛŒ","د","س","Ú†","Ù¾","ج","Ø´"],dayNamesMin:["ÛŒ","د","س","Ú†","Ù¾","ج","Ø´"],weekHeader:"Ù‡Ù",dateFormat:"yy/mm/dd",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("fa",{buttonText:{month:"ماه",week:"Ù‡Ùته",day:"روز",list:"برنامه"},allDayText:"تمام روز",eventLimitText:function(e){return"بیش از "+e},noEventsMessage:"هیچ رویدادی به نمایش"})}(),function(){!function(){function e(e,a,n,r){var s="";switch(n){case"s":return r?"muutaman sekunnin":"muutama sekunti";case"m":return r?"minuutin":"minuutti";case"mm":s=r?"minuutin":"minuuttia";break;case"h":return r?"tunnin":"tunti";case"hh":s=r?"tunnin":"tuntia";break;case"d":return r?"päivän":"päivä";case"dd":s=r?"päivän":"päivää";break;case"M":return r?"kuukauden":"kuukausi";case"MM":s=r?"kuukauden":"kuukautta";break;case"y":return r?"vuoden":"vuosi";case"yy":s=r?"vuoden":"vuotta"}return s=t(e,r)+" "+s}function t(e,a){return e<10?a?r[e]:n[e]:e}var n="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),r=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",n[7],n[8],n[9]],s=a.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return s}(),e.fullCalendar.datepickerLocale("fi","fi",{closeText:"Sulje",prevText:"&#xAB;Edellinen",nextText:"Seuraava&#xBB;",currentText:"Tänään",monthNames:["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu","Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],monthNamesShort:["Tammi","Helmi","Maalis","Huhti","Touko","Kesä","Heinä","Elo","Syys","Loka","Marras","Joulu"],dayNamesShort:["Su","Ma","Ti","Ke","To","Pe","La"],dayNames:["Sunnuntai","Maanantai","Tiistai","Keskiviikko","Torstai","Perjantai","Lauantai"],dayNamesMin:["Su","Ma","Ti","Ke","To","Pe","La"],weekHeader:"Vk",dateFormat:"d.m.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("fi",{buttonText:{month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},allDayText:"Koko päivä",eventLimitText:"lisää",noEventsMessage:"Ei tapahtumia näytettäviä"})}(),function(){!function(){var e=a.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|)/,ordinal:function(e){return e+(1===e?"er":"")},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("fr","fr",{closeText:"Fermer",prevText:"Précédent",nextText:"Suivant",currentText:"Aujourd'hui",monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthNamesShort:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dayNames:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],dayNamesShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sem.",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("fr",{buttonText:{year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},allDayHtml:"Toute la<br/>journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"})}(),function(){!function(){var e=a.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|e)/,ordinal:function(e){return e+(1===e?"er":"e")}});return e}(),e.fullCalendar.datepickerLocale("fr-ca","fr-CA",{closeText:"Fermer",prevText:"Précédent",nextText:"Suivant",currentText:"Aujourd'hui",monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthNamesShort:["janv.","févr.","mars","avril","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dayNames:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],dayNamesShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sem.",dateFormat:"yy-mm-dd",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("fr-ca",{buttonText:{year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},allDayHtml:"Toute la<br/>journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"})}(),function(){!function(){var e=a.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|e)/,ordinal:function(e){return e+(1===e?"er":"e")},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("fr-ch","fr-CH",{closeText:"Fermer",prevText:"&#x3C;Préc",nextText:"Suiv&#x3E;",currentText:"Courant",monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthNamesShort:["janv.","févr.","mars","avril","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dayNames:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],dayNamesShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sm",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("fr-ch",{buttonText:{year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},allDayHtml:"Toute la<br/>journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"})}(),function(){!function(){var e=a.defineLocale("gl",{months:"Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro".split("_"),monthsShort:"Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.".split("_"),monthsParseExact:!0,weekdays:"Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado".split("_"),weekdaysShort:"Dom._Lun._Mar._Mér._Xov._Ven._Sáb.".split("_"),weekdaysMin:"Do_Lu_Ma_Mé_Xo_Ve_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd D MMMM YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return"uns segundos"===e?"nuns segundos":"en "+e},past:"hai %s",s:"uns segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:7}});return e}(),e.fullCalendar.datepickerLocale("gl","gl",{closeText:"Pechar",prevText:"&#x3C;Ant",nextText:"Seg&#x3E;",currentText:"Hoxe",monthNames:["Xaneiro","Febreiro","Marzo","Abril","Maio","Xuño","Xullo","Agosto","Setembro","Outubro","Novembro","Decembro"],monthNamesShort:["Xan","Feb","Mar","Abr","Mai","Xuñ","Xul","Ago","Set","Out","Nov","Dec"],dayNames:["Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado"],dayNamesShort:["Dom","Lun","Mar","Mér","Xov","Ven","Sáb"],dayNamesMin:["Do","Lu","Ma","Mé","Xo","Ve","Sá"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("gl",{buttonText:{month:"Mes",week:"Semana",day:"Día",list:"Axenda"},allDayHtml:"Todo<br/>o día",eventLimitText:"máis",noEventsMessage:"Non hai eventos para amosar"})}(),function(){!function(){var e=a.defineLocale("he",{months:"ינו×ר_פברו×ר_מרץ_×פריל_מ××™_יוני_יולי_×וגוסט_ספטמבר_×וקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_×פר׳_מ××™_יוני_יולי_×וג׳_ספט׳_×וק׳_נוב׳_דצמ׳".split("_"),weekdays:"ר×שון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"×׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"×_ב_×’_ד_×”_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[×”×™×•× ×‘Ö¾]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[×תמול ב־]LT",lastWeek:"[ביו×] dddd [×”×חרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return 2===e?"שעתיי×":e+" שעות"},d:"יו×",dd:function(e){return 2===e?"יומיי×":e+" ימי×"},M:"חודש",MM:function(e){return 2===e?"חודשיי×":e+" חודשי×"},y:"שנה",yy:function(e){return 2===e?"שנתיי×":e%10===0&&10!==e?e+" שנה":e+" שני×"}},meridiemParse:/××—×”"צ|לפנה"צ|×חרי הצהריי×|לפני הצהריי×|לפנות בוקר|בבוקר|בערב/i,isPM:function(e){return/^(××—×”"צ|×חרי הצהריי×|בערב)$/.test(e)},meridiem:function(e,a,t){return e<5?"לפנות בוקר":e<10?"בבוקר":e<12?t?'לפנה"צ':"לפני הצהריי×":e<18?t?'××—×”"צ':"×חרי הצהריי×":"בערב"}});return e}(),e.fullCalendar.datepickerLocale("he","he",{closeText:"סגור",prevText:"&#x3C;הקוד×",nextText:"הב×&#x3E;",currentText:"היו×",monthNames:["ינו×ר","פברו×ר","מרץ","×פריל","מ××™","יוני","יולי","×וגוסט","ספטמבר","×וקטובר","נובמבר","דצמבר"],monthNamesShort:["ינו","פבר","מרץ","×פר","מ××™","יוני","יולי","×וג","ספט","×וק","נוב","דצמ"],dayNames:["ר×שון","שני","שלישי","רביעי","חמישי","שישי","שבת"],dayNamesShort:["×'","ב'","×’'","ד'","×”'","ו'","שבת"],dayNamesMin:["×'","ב'","×’'","ד'","×”'","ו'","שבת"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("he",{buttonText:{month:"חודש",week:"שבוע",day:"יו×",list:"סדר יו×"},allDayText:"כל היו×",eventLimitText:"×חר",noEventsMessage:"×ין ××™×¨×•×¢×™× ×œ×”×¦×’×”",weekNumberTitle:"שבוע"})}(),function(){!function(){var e={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},t={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},n=a.defineLocale("hi",{months:"जनवरी_फ़रवरी_मारà¥à¤š_अपà¥à¤°à¥ˆà¤²_मई_जून_जà¥à¤²à¤¾à¤ˆ_अगसà¥à¤¤_सितमà¥à¤¬à¤°_अकà¥à¤Ÿà¥‚बर_नवमà¥à¤¬à¤°_दिसमà¥à¤¬à¤°".split("_"),monthsShort:"जन._फ़र._मारà¥à¤š_अपà¥à¤°à¥ˆ._मई_जून_जà¥à¤²._अग._सित._अकà¥à¤Ÿà¥‚._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बà¥à¤§à¤µà¤¾à¤°_गà¥à¤°à¥‚वार_शà¥à¤•à¥à¤°à¤µà¤¾à¤°_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बà¥à¤§_गà¥à¤°à¥‚_शà¥à¤•à¥à¤°_शनि".split("_"),weekdaysMin:"र_सो_मं_बà¥_गà¥_शà¥_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कà¥à¤› ही कà¥à¤·à¤£",m:"à¤à¤• मिनट",mm:"%d मिनट",h:"à¤à¤• घंटा",hh:"%d घंटे",d:"à¤à¤• दिन",dd:"%d दिन",M:"à¤à¤• महीने",MM:"%d महीने",y:"à¤à¤• वरà¥à¤·",yy:"%d वरà¥à¤·"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,function(e){return t[e]})},postformat:function(a){return a.replace(/\d/g,function(a){return e[a]})},meridiemParse:/रात|सà¥à¤¬à¤¹|दोपहर|शाम/,meridiemHour:function(e,a){return 12===e&&(e=0),"रात"===a?e<4?e:e+12:"सà¥à¤¬à¤¹"===a?e:"दोपहर"===a?e>=10?e:e+12:"शाम"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?"रात":e<10?"सà¥à¤¬à¤¹":e<17?"दोपहर":e<20?"शाम":"रात"},week:{dow:0,doy:6}});return n}(),e.fullCalendar.datepickerLocale("hi","hi",{closeText:"बंद",prevText:"पिछला",nextText:"अगला",currentText:"आज",monthNames:["जनवरी ","फरवरी","मारà¥à¤š","अपà¥à¤°à¥‡à¤²","मई","जून","जूलाई","अगसà¥à¤¤ ","सितमà¥à¤¬à¤°","अकà¥à¤Ÿà¥‚बर","नवमà¥à¤¬à¤°","दिसमà¥à¤¬à¤°"],monthNamesShort:["जन","फर","मारà¥à¤š","अपà¥à¤°à¥‡à¤²","मई","जून","जूलाई","अग","सित","अकà¥à¤Ÿ","नव","दि"],dayNames:["रविवार","सोमवार","मंगलवार","बà¥à¤§à¤µà¤¾à¤°","गà¥à¤°à¥à¤µà¤¾à¤°","शà¥à¤•à¥à¤°à¤µà¤¾à¤°","शनिवार"],dayNamesShort:["रवि","सोम","मंगल","बà¥à¤§","गà¥à¤°à¥","शà¥à¤•à¥à¤°","शनि"],dayNamesMin:["रवि","सोम","मंगल","बà¥à¤§","गà¥à¤°à¥","शà¥à¤•à¥à¤°","शनि"],weekHeader:"हफà¥à¤¤à¤¾",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("hi",{buttonText:{month:"महीना",week:"सपà¥à¤¤à¤¾à¤¹",day:"दिन",list:"कारà¥à¤¯à¤¸à¥‚ची"},allDayText:"सभी दिन",eventLimitText:function(e){return"+अधिक "+e},noEventsMessage:"कोई घटनाओं को पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करने के लिà¤"})}(),function(){!function(){function e(e,a,t){var n=e+" ";switch(t){case"m":return a?"jedna minuta":"jedne minute";case"mm":return n+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return a?"jedan sat":"jednog sata";case"hh":return n+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return n+=1===e?"dan":"dana";case"MM":return n+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return n+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}var t=a.defineLocale("hr",{months:{format:"sijeÄnja_veljaÄe_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"sijeÄanj_veljaÄa_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._Äet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_Äe_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juÄer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[proÅ¡lu] dddd [u] LT";case 6:return"[proÅ¡le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[proÅ¡li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:e,mm:e,h:e,hh:e,d:"dan",dd:e,M:"mjesec",MM:e,y:"godinu",yy:e},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return t}(),e.fullCalendar.datepickerLocale("hr","hr",{closeText:"Zatvori",prevText:"&#x3C;",nextText:"&#x3E;",currentText:"Danas",monthNames:["SijeÄanj","VeljaÄa","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],monthNamesShort:["Sij","Velj","Ožu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"],dayNames:["Nedjelja","Ponedjeljak","Utorak","Srijeda","ÄŒetvrtak","Petak","Subota"],dayNamesShort:["Ned","Pon","Uto","Sri","ÄŒet","Pet","Sub"],dayNamesMin:["Ne","Po","Ut","Sr","ÄŒe","Pe","Su"],weekHeader:"Tje",dateFormat:"dd.mm.yy.",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("hr",{buttonText:{month:"Mjesec",week:"Tjedan",day:"Dan",list:"Raspored"},allDayText:"Cijeli dan",eventLimitText:function(e){return"+ joÅ¡ "+e},noEventsMessage:"Nema dogaÄ‘aja za prikaz"})}(),function(){!function(){function e(e,a,t,n){var r=e;switch(t){case"s":return n||a?"néhány másodperc":"néhány másodperce";case"m":return"egy"+(n||a?" perc":" perce");case"mm":return r+(n||a?" perc":" perce");case"h":return"egy"+(n||a?" óra":" órája");case"hh":return r+(n||a?" óra":" órája");case"d":return"egy"+(n||a?" nap":" napja");case"dd":return r+(n||a?" nap":" napja");case"M":return"egy"+(n||a?" hónap":" hónapja");case"MM":return r+(n||a?" hónap":" hónapja");case"y":return"egy"+(n||a?" év":" éve");case"yy":return r+(n||a?" év":" éve")}return""}function t(e){return(e?"":"[múlt] ")+"["+n[this.day()]+"] LT[-kor]"}var n="vasárnap hétfÅ‘n kedden szerdán csütörtökön pénteken szombaton".split(" "),r=a.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfÅ‘_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,a,t){return e<12?t===!0?"de":"DE":t===!0?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return t.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return t.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return r}(),e.fullCalendar.datepickerLocale("hu","hu",{closeText:"bezár",prevText:"vissza",nextText:"elÅ‘re",currentText:"ma",monthNames:["Január","Február","Március","Ãprilis","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],monthNamesShort:["Jan","Feb","Már","Ãpr","Máj","Jún","Júl","Aug","Szep","Okt","Nov","Dec"],dayNames:["Vasárnap","HétfÅ‘","Kedd","Szerda","Csütörtök","Péntek","Szombat"],dayNamesShort:["Vas","Hét","Ked","Sze","Csü","Pén","Szo"],dayNamesMin:["V","H","K","Sze","Cs","P","Szo"],weekHeader:"Hét",dateFormat:"yy.mm.dd.",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:""}),e.fullCalendar.locale("hu",{buttonText:{month:"Hónap",week:"Hét",day:"Nap",list:"Napló"},allDayText:"Egész nap",eventLimitText:"további",noEventsMessage:"Nincs megjeleníthetÅ‘ események"})}(),function(){!function(){var e=a.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,a){return 12===e&&(e=0),"pagi"===a?e:"siang"===a?e>=11?e:e+12:"sore"===a||"malam"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}});return e}(),e.fullCalendar.datepickerLocale("id","id",{closeText:"Tutup",prevText:"&#x3C;mundur",nextText:"maju&#x3E;",currentText:"hari ini",monthNames:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","Nopember","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agus","Sep","Okt","Nop","Des"],dayNames:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],dayNamesShort:["Min","Sen","Sel","Rab","kam","Jum","Sab"],dayNamesMin:["Mg","Sn","Sl","Rb","Km","jm","Sb"],weekHeader:"Mg",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("id",{buttonText:{month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},allDayHtml:"Sehari<br/>penuh",eventLimitText:"lebih",noEventsMessage:"Tidak ada acara untuk ditampilkan"})}(),function(){!function(){function e(e){return e%100===11||e%10!==1}function t(a,t,n,r){var s=a+" ";switch(n){case"s":return t||r?"nokkrar sekúndur":"nokkrum sekúndum";case"m":return t?"mínúta":"mínútu";case"mm":return e(a)?s+(t||r?"mínútur":"mínútum"):t?s+"mínúta":s+"mínútu";case"hh":return e(a)?s+(t||r?"klukkustundir":"klukkustundum"):s+"klukkustund";case"d":return t?"dagur":r?"dag":"degi";case"dd":return e(a)?t?s+"dagar":s+(r?"daga":"dögum"):t?s+"dagur":s+(r?"dag":"degi");case"M":return t?"mánuður":r?"mánuð":"mánuði";case"MM":return e(a)?t?s+"mánuðir":s+(r?"mánuði":"mánuðum"):t?s+"mánuður":s+(r?"mánuð":"mánuði");case"y":return t||r?"ár":"ári";case"yy":return e(a)?s+(t||r?"ár":"árum"):s+(t||r?"ár":"ári")}}var n=a.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{
+sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:t,m:t,mm:t,h:"klukkustund",hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return n}(),e.fullCalendar.datepickerLocale("is","is",{closeText:"Loka",prevText:"&#x3C; Fyrri",nextText:"Næsti &#x3E;",currentText:"à dag",monthNames:["Janúar","Febrúar","Mars","Apríl","Maí","Júní","Júlí","Ãgúst","September","Október","Nóvember","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Maí","Jún","Júl","Ãgú","Sep","Okt","Nóv","Des"],dayNames:["Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"],dayNamesShort:["Sun","Mán","Þri","Mið","Fim","Fös","Lau"],dayNamesMin:["Su","Má","Þr","Mi","Fi","Fö","La"],weekHeader:"Vika",dateFormat:"dd.mm.yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("is",{buttonText:{month:"Mánuður",week:"Vika",day:"Dagur",list:"Dagskrá"},allDayHtml:"Allan<br/>daginn",eventLimitText:"meira",noEventsMessage:"Engir viðburðir til að sýna"})}(),function(){!function(){var e=a.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),weekdaysShort:"Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"),weekdaysMin:"Do_Lu_Ma_Me_Gi_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("it","it",{closeText:"Chiudi",prevText:"&#x3C;Prec",nextText:"Succ&#x3E;",currentText:"Oggi",monthNames:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthNamesShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],dayNames:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],dayNamesShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],dayNamesMin:["Do","Lu","Ma","Me","Gi","Ve","Sa"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("it",{buttonText:{month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},allDayHtml:"Tutto il<br/>giorno",eventLimitText:function(e){return"+altri "+e},noEventsMessage:"Non ci sono eventi da visualizzare"})}(),function(){!function(){var e=a.defineLocale("ja",{months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_ç«æ›œæ—¥_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"æ—¥_月_ç«_æ°´_木_金_土".split("_"),weekdaysMin:"æ—¥_月_ç«_æ°´_木_金_土".split("_"),longDateFormat:{LT:"Ah時m分",LTS:"Ah時m分s秒",L:"YYYY/MM/DD",LL:"YYYYå¹´M月Dæ—¥",LLL:"YYYYå¹´M月Dæ—¥Ah時m分",LLLL:"YYYYå¹´M月Dæ—¥Ah時m分 dddd"},meridiemParse:/åˆå‰|åˆå¾Œ/i,isPM:function(e){return"åˆå¾Œ"===e},meridiem:function(e,a,t){return e<12?"åˆå‰":"åˆå¾Œ"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[æ¥é€±]dddd LT",lastDay:"[昨日] LT",lastWeek:"[å‰é€±]dddd LT",sameElse:"L"},ordinalParse:/\d{1,2}æ—¥/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"æ—¥";default:return e}},relativeTime:{future:"%s後",past:"%så‰",s:"数秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1æ—¥",dd:"%dæ—¥",M:"1ヶ月",MM:"%dヶ月",y:"1å¹´",yy:"%då¹´"}});return e}(),e.fullCalendar.datepickerLocale("ja","ja",{closeText:"é–‰ã˜ã‚‹",prevText:"&#x3C;å‰",nextText:"次&#x3E;",currentText:"今日",monthNames:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthNamesShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayNames:["日曜日","月曜日","ç«æ›œæ—¥","水曜日","木曜日","金曜日","土曜日"],dayNamesShort:["æ—¥","月","ç«","æ°´","木","金","土"],dayNamesMin:["æ—¥","月","ç«","æ°´","木","金","土"],weekHeader:"週",dateFormat:"yy/mm/dd",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"å¹´"}),e.fullCalendar.locale("ja",{buttonText:{month:"月",week:"週",day:"æ—¥",list:"予定リスト"},allDayText:"終日",eventLimitText:function(e){return"ä»– "+e+" 件"},noEventsMessage:"イベントãŒè¡¨ç¤ºã•ã‚Œãªã„よã†ã«"})}(),function(){!function(){var e=a.defineLocale("ko",{months:"1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”".split("_"),monthsShort:"1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”".split("_"),weekdays:"ì¼ìš”ì¼_월요ì¼_화요ì¼_수요ì¼_목요ì¼_금요ì¼_토요ì¼".split("_"),weekdaysShort:"ì¼_ì›”_í™”_수_목_금_토".split("_"),weekdaysMin:"ì¼_ì›”_í™”_수_목_금_토".split("_"),longDateFormat:{LT:"A hì‹œ m분",LTS:"A hì‹œ m분 sì´ˆ",L:"YYYY.MM.DD",LL:"YYYYë…„ MMMM Dì¼",LLL:"YYYYë…„ MMMM Dì¼ A hì‹œ m분",LLLL:"YYYYë…„ MMMM Dì¼ dddd A hì‹œ m분"},calendar:{sameDay:"오늘 LT",nextDay:"ë‚´ì¼ LT",nextWeek:"dddd LT",lastDay:"ì–´ì œ LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s ì „",s:"몇 ì´ˆ",ss:"%dì´ˆ",m:"ì¼ë¶„",mm:"%d분",h:"í•œ 시간",hh:"%d시간",d:"하루",dd:"%dì¼",M:"í•œ 달",MM:"%d달",y:"ì¼ ë…„",yy:"%dë…„"},ordinalParse:/\d{1,2}ì¼/,ordinal:"%dì¼",meridiemParse:/오전|오후/,isPM:function(e){return"오후"===e},meridiem:function(e,a,t){return e<12?"오전":"오후"}});return e}(),e.fullCalendar.datepickerLocale("ko","ko",{closeText:"닫기",prevText:"ì´ì „달",nextText:"다ìŒë‹¬",currentText:"오늘",monthNames:["1ì›”","2ì›”","3ì›”","4ì›”","5ì›”","6ì›”","7ì›”","8ì›”","9ì›”","10ì›”","11ì›”","12ì›”"],monthNamesShort:["1ì›”","2ì›”","3ì›”","4ì›”","5ì›”","6ì›”","7ì›”","8ì›”","9ì›”","10ì›”","11ì›”","12ì›”"],dayNames:["ì¼ìš”ì¼","월요ì¼","화요ì¼","수요ì¼","목요ì¼","금요ì¼","토요ì¼"],dayNamesShort:["ì¼","ì›”","í™”","수","목","금","토"],dayNamesMin:["ì¼","ì›”","í™”","수","목","금","토"],weekHeader:"주",dateFormat:"yy. m. d.",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"ë…„"}),e.fullCalendar.locale("ko",{buttonText:{month:"ì›”",week:"주",day:"ì¼",list:"ì¼ì •ëª©ë¡"},allDayText:"종ì¼",eventLimitText:"ê°œ",noEventsMessage:"ì¼ì •ì´ 표시 없습니다"})}(),function(){!function(){function e(e,a,t,n){var r={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return a?r[t][0]:r[t][1]}function t(e){var a=e.substr(0,e.indexOf(" "));return r(a)?"a "+e:"an "+e}function n(e){var a=e.substr(0,e.indexOf(" "));return r(a)?"viru "+e:"virun "+e}function r(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;if(e<10)return 4<=e&&e<=7;if(e<100){var a=e%10,t=e/10;return r(0===a?t:a)}if(e<1e4){for(;e>=10;)e/=10;return r(e)}return e/=1e3,r(e)}var s=a.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:t,past:n,s:"e puer Sekonnen",m:e,mm:"%d Minutten",h:e,hh:"%d Stonnen",d:e,dd:"%d Deeg",M:e,MM:"%d Méint",y:e,yy:"%d Joer"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return s}(),e.fullCalendar.datepickerLocale("lb","lb",{closeText:"Fäerdeg",prevText:"Zréck",nextText:"Weider",currentText:"Haut",monthNames:["Januar","Februar","Mäerz","Abrëll","Mee","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mäe","Abr","Mee","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonndeg","Méindeg","Dënschdeg","Mëttwoch","Donneschdeg","Freideg","Samschdeg"],dayNamesShort:["Son","Méi","Dën","Mët","Don","Fre","Sam"],dayNamesMin:["So","Mé","Dë","Më","Do","Fr","Sa"],weekHeader:"W",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("lb",{buttonText:{month:"Mount",week:"Woch",day:"Dag",list:"Terminiwwersiicht"},allDayText:"Ganzen Dag",eventLimitText:"méi",noEventsMessage:"Nee Evenementer ze affichéieren"})}(),function(){!function(){function e(e,a,t,n){return a?"kelios sekundÄ—s":n?"kelių sekundžių":"kelias sekundes"}function t(e,a,t,n){return a?r(t)[0]:n?r(t)[1]:r(t)[2]}function n(e){return e%10===0||e>10&&e<20}function r(e){return d[e].split("_")}function s(e,a,s,d){var i=e+" ";return 1===e?i+t(e,a,s[0],d):a?i+(n(e)?r(s)[1]:r(s)[0]):d?i+r(s)[1]:i+(n(e)?r(s)[1]:r(s)[2])}var d={m:"minutÄ—_minutÄ—s_minutÄ™",mm:"minutÄ—s_minuÄių_minutes",h:"valanda_valandos_valandÄ…",hh:"valandos_valandų_valandas",d:"diena_dienos_dienÄ…",dd:"dienos_dienų_dienas",M:"mÄ—nuo_mÄ—nesio_mÄ—nesį",MM:"mÄ—nesiai_mÄ—nesių_mÄ—nesius",y:"metai_metų_metus",yy:"metai_metų_metus"},i=a.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjÅ«Äio_rugsÄ—jo_spalio_lapkriÄio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjÅ«tis_rugsÄ—jis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?|MMMM?(\[[^\[\]]*\]|\s+)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_treÄiadienį_ketvirtadienį_penktadienį_Å¡eÅ¡tadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_treÄiadienis_ketvirtadienis_penktadienis_Å¡eÅ¡tadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Å eÅ¡".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Å ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Å iandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[PraÄ—jusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieÅ¡ %s",s:e,m:t,mm:s,h:t,hh:s,d:t,dd:s,M:t,MM:s,y:t,yy:s},ordinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}});return i}(),e.fullCalendar.datepickerLocale("lt","lt",{closeText:"Uždaryti",prevText:"&#x3C;Atgal",nextText:"Pirmyn&#x3E;",currentText:"Å iandien",monthNames:["Sausis","Vasaris","Kovas","Balandis","Gegužė","Birželis","Liepa","RugpjÅ«tis","RugsÄ—jis","Spalis","Lapkritis","Gruodis"],monthNamesShort:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rugp","Rugs","Spa","Lap","Gru"],dayNames:["sekmadienis","pirmadienis","antradienis","treÄiadienis","ketvirtadienis","penktadienis","Å¡eÅ¡tadienis"],dayNamesShort:["sek","pir","ant","tre","ket","pen","Å¡eÅ¡"],dayNamesMin:["Se","Pr","An","Tr","Ke","Pe","Å e"],weekHeader:"SAV",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:""}),e.fullCalendar.locale("lt",{buttonText:{month:"MÄ—nuo",week:"SavaitÄ—",day:"Diena",list:"DarbotvarkÄ—"},allDayText:"VisÄ… dienÄ…",eventLimitText:"daugiau",noEventsMessage:"NÄ—ra įvykių rodyti"})}(),function(){!function(){function e(e,a,t){return t?a%10===1&&a%100!==11?e[2]:e[3]:a%10===1&&a%100!==11?e[0]:e[1]}function t(a,t,n){return a+" "+e(s[n],a,t)}function n(a,t,n){return e(s[n],a,t)}function r(e,a){return a?"dažas sekundes":"dažÄm sekundÄ“m"}var s={m:"minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes".split("_"),mm:"minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes".split("_"),h:"stundas_stundÄm_stunda_stundas".split("_"),hh:"stundas_stundÄm_stunda_stundas".split("_"),d:"dienas_dienÄm_diena_dienas".split("_"),dd:"dienas_dienÄm_diena_dienas".split("_"),M:"mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i".split("_"),MM:"mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")},d=a.defineLocale("lv",{months:"janvÄris_februÄris_marts_aprÄ«lis_maijs_jÅ«nijs_jÅ«lijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jÅ«n_jÅ«l_aug_sep_okt_nov_dec".split("_"),weekdays:"svÄ“tdiena_pirmdiena_otrdiena_treÅ¡diena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Å odien pulksten] LT",nextDay:"[RÄ«t pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[PagÄjuÅ¡Ä] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pÄ“c %s",past:"pirms %s",s:r,m:n,mm:t,h:n,hh:t,d:n,dd:t,M:n,MM:t,y:n,yy:t},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return d}(),e.fullCalendar.datepickerLocale("lv","lv",{closeText:"AizvÄ“rt",prevText:"Iepr.",nextText:"NÄk.",currentText:"Å odien",monthNames:["JanvÄris","FebruÄris","Marts","AprÄ«lis","Maijs","JÅ«nijs","JÅ«lijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],monthNamesShort:["Jan","Feb","Mar","Apr","Mai","JÅ«n","JÅ«l","Aug","Sep","Okt","Nov","Dec"],dayNames:["svÄ“tdiena","pirmdiena","otrdiena","treÅ¡diena","ceturtdiena","piektdiena","sestdiena"],dayNamesShort:["svt","prm","otr","tre","ctr","pkt","sst"],dayNamesMin:["Sv","Pr","Ot","Tr","Ct","Pk","Ss"],weekHeader:"Ned.",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("lv",{buttonText:{month:"MÄ“nesis",week:"Nedēļa",day:"Diena",list:"Dienas kÄrtÄ«ba"},allDayText:"Visu dienu",eventLimitText:function(e){return"+vÄ“l "+e},noEventsMessage:"Nav notikumu, lai parÄdÄ«tu"})}(),function(){!function(){var e=a.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_авгуÑÑ‚_Ñептември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_Ñеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_Ñреда_четврток_петок_Ñабота".split("_"),weekdaysShort:"нед_пон_вто_Ñре_чет_пет_Ñаб".split("_"),weekdaysMin:"нe_пo_вт_ÑÑ€_че_пе_Ña".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Ð”ÐµÐ½ÐµÑ Ð²Ð¾] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"поÑле %s",past:"пред %s",s:"неколку Ñекунди",m:"минута",mm:"%d минути",h:"чаÑ",hh:"%d чаÑа",d:"ден",dd:"%d дена",M:"меÑец",MM:"%d меÑеци",y:"година",yy:"%d години"},ordinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var a=e%10,t=e%100;return 0===e?e+"-ев":0===t?e+"-ен":t>10&&t<20?e+"-ти":1===a?e+"-ви":2===a?e+"-ри":7===a||8===a?e+"-ми":e+"-ти"},week:{dow:1,doy:7}});return e}(),e.fullCalendar.datepickerLocale("mk","mk",{closeText:"Затвори",prevText:"&#x3C;",nextText:"&#x3E;",currentText:"ДенеÑ",monthNames:["Јануари","Февруари","Март","Ðприл","Мај","Јуни","Јули","ÐвгуÑÑ‚","Септември","Октомври","Ðоември","Декември"],monthNamesShort:["Јан","Фев","Мар","Ðпр","Мај","Јун","Јул","Ðвг","Сеп","Окт","Ðое","Дек"],dayNames:["Ðедела","Понеделник","Вторник","Среда","Четврток","Петок","Сабота"],dayNamesShort:["Ðед","Пон","Вто","Сре","Чет","Пет","Саб"],dayNamesMin:["Ðе","По","Ð’Ñ‚","Ср","Че","Пе","Са"],weekHeader:"Сед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("mk",{buttonText:{month:"МеÑец",week:"Ðедела",day:"Ден",list:"График"},allDayText:"Цел ден",eventLimitText:function(e){return"+повеќе "+e},noEventsMessage:"Ðема наÑтани за прикажување"})}(),function(){!function(){var e=a.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,a){return 12===e&&(e=0),"pagi"===a?e:"tengahari"===a?e>=11?e:e+12:"petang"===a||"malam"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}});return e}(),e.fullCalendar.datepickerLocale("ms","ms",{closeText:"Tutup",prevText:"&#x3C;Sebelum",nextText:"Selepas&#x3E;",currentText:"hari ini",monthNames:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"],monthNamesShort:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogo","Sep","Okt","Nov","Dis"],dayNames:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"],dayNamesShort:["Aha","Isn","Sel","Rab","kha","Jum","Sab"],dayNamesMin:["Ah","Is","Se","Ra","Kh","Ju","Sa"],weekHeader:"Mg",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("ms",{buttonText:{month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},allDayText:"Sepanjang hari",eventLimitText:function(e){return"masih ada "+e+" acara"},noEventsMessage:"Tiada peristiwa untuk dipaparkan"})}(),function(){!function(){var e=a.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,a){return 12===e&&(e=0),"pagi"===a?e:"tengahari"===a?e>=11?e:e+12:"petang"===a||"malam"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}});return e}(),e.fullCalendar.datepickerLocale("ms-my","ms",{closeText:"Tutup",prevText:"&#x3C;Sebelum",nextText:"Selepas&#x3E;",currentText:"hari ini",monthNames:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"],monthNamesShort:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogo","Sep","Okt","Nov","Dis"],dayNames:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"],dayNamesShort:["Aha","Isn","Sel","Rab","kha","Jum","Sab"],dayNamesMin:["Ah","Is","Se","Ra","Kh","Ju","Sa"],weekHeader:"Mg",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("ms-my",{buttonText:{month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},allDayText:"Sepanjang hari",eventLimitText:function(e){return"masih ada "+e+" acara"},noEventsMessage:"Tiada peristiwa untuk dipaparkan"})}(),function(){!function(){var e=a.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i gÃ¥r kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en mÃ¥ned",MM:"%d mÃ¥neder",y:"ett Ã¥r",yy:"%d Ã¥r"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("nb","nb",{closeText:"Lukk",prevText:"&#xAB;Forrige",nextText:"Neste&#xBB;",currentText:"I dag",monthNames:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],monthNamesShort:["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],dayNamesShort:["søn","man","tir","ons","tor","fre","lør"],dayNames:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],dayNamesMin:["sø","ma","ti","on","to","fr","lø"],weekHeader:"Uke",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("nb",{buttonText:{month:"MÃ¥ned",week:"Uke",day:"Dag",list:"Agenda"},allDayText:"Hele dagen",eventLimitText:"til",noEventsMessage:"Ingen hendelser Ã¥ vise"})}(),function(){!function(){var e="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),t="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),n=a.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(a,n){return/-MMM-/.test(n)?t[a.month()]:e[a.month()]},monthsParseExact:!0,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}});return n}(),e.fullCalendar.datepickerLocale("nl","nl",{closeText:"Sluiten",prevText:"â†",nextText:"→",currentText:"Vandaag",monthNames:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthNamesShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],dayNames:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],dayNamesShort:["zon","maa","din","woe","don","vri","zat"],dayNamesMin:["zo","ma","di","wo","do","vr","za"],weekHeader:"Wk",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("nl",{buttonText:{month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag",eventLimitText:"extra",noEventsMessage:"Geen evenementen om te laten zien"})}(),function(){!function(){var e=a.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_mÃ¥ndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mÃ¥n_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_mÃ¥_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I gÃ¥r klokka] LT",lastWeek:"[FøregÃ¥ande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein mÃ¥nad",MM:"%d mÃ¥nader",y:"eit Ã¥r",yy:"%d Ã¥r"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("nn","nn",{closeText:"Lukk",prevText:"&#xAB;Førre",nextText:"Neste&#xBB;",currentText:"I dag",monthNames:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],monthNamesShort:["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],dayNamesShort:["sun","mÃ¥n","tys","ons","tor","fre","lau"],dayNames:["sundag","mÃ¥ndag","tysdag","onsdag","torsdag","fredag","laurdag"],dayNamesMin:["su","mÃ¥","ty","on","to","fr","la"],weekHeader:"Veke",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("nn",{buttonText:{month:"MÃ¥nad",week:"Veke",day:"Dag",list:"Agenda"},allDayText:"Heile dagen",eventLimitText:"til",noEventsMessage:"Ingen hendelser Ã¥ vise"})}(),function(){!function(){function e(e){return e%10<5&&e%10>1&&~~(e/10)%10!==1}function t(a,t,n){var r=a+" ";switch(n){case"m":return t?"minuta":"minutÄ™";case"mm":return r+(e(a)?"minuty":"minut");case"h":return t?"godzina":"godzinÄ™";case"hh":return r+(e(a)?"godziny":"godzin");case"MM":return r+(e(a)?"miesiÄ…ce":"miesiÄ™cy");case"yy":return r+(e(a)?"lata":"lat")}}var n="styczeÅ„_luty_marzec_kwiecieÅ„_maj_czerwiec_lipiec_sierpieÅ„_wrzesieÅ„_październik_listopad_grudzieÅ„".split("_"),r="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrzeÅ›nia_października_listopada_grudnia".split("_"),s=a.defineLocale("pl",{months:function(e,a){return""===a?"("+r[e.month()]+"|"+n[e.month()]+")":/D MMMM/.test(a)?r[e.month()]:n[e.month()]},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziaÅ‚ek_wtorek_Å›roda_czwartek_piÄ…tek_sobota".split("_"),weekdaysShort:"nie_pon_wt_Å›r_czw_pt_sb".split("_"),weekdaysMin:"Nd_Pn_Wt_Åšr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DziÅ› o] LT",nextDay:"[Jutro o] LT",nextWeek:"[W] dddd [o] LT",lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszÅ‚Ä… niedzielÄ™ o] LT";case 3:return"[W zeszÅ‚Ä… Å›rodÄ™ o] LT";case 6:return"[W zeszÅ‚Ä… sobotÄ™ o] LT";default:return"[W zeszÅ‚y] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:t,mm:t,h:t,hh:t,d:"1 dzieÅ„",dd:"%d dni",M:"miesiÄ…c",MM:t,y:"rok",yy:t},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return s}(),e.fullCalendar.datepickerLocale("pl","pl",{closeText:"Zamknij",prevText:"&#x3C;Poprzedni",nextText:"NastÄ™pny&#x3E;",currentText:"DziÅ›",monthNames:["StyczeÅ„","Luty","Marzec","KwiecieÅ„","Maj","Czerwiec","Lipiec","SierpieÅ„","WrzesieÅ„","Październik","Listopad","GrudzieÅ„"],monthNamesShort:["Sty","Lu","Mar","Kw","Maj","Cze","Lip","Sie","Wrz","Pa","Lis","Gru"],dayNames:["Niedziela","PoniedziaÅ‚ek","Wtorek","Åšroda","Czwartek","PiÄ…tek","Sobota"],dayNamesShort:["Nie","Pn","Wt","Åšr","Czw","Pt","So"],dayNamesMin:["N","Pn","Wt","Åšr","Cz","Pt","So"],weekHeader:"Tydz",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("pl",{buttonText:{month:"MiesiÄ…c",week:"TydzieÅ„",day:"DzieÅ„",list:"Plan dnia"},allDayText:"CaÅ‚y dzieÅ„",eventLimitText:"wiÄ™cej",noEventsMessage:"Brak wydarzeÅ„ do wyÅ›wietlenia"})}(),function(){!function(){var e=a.defineLocale("pt",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("pt","pt",{closeText:"Fechar",prevText:"Anterior",nextText:"Seguinte",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],weekHeader:"Sem",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("pt",{buttonText:{month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},allDayText:"Todo o dia",eventLimitText:"mais",noEventsMessage:"Não há eventos para mostrar"})}(),function(){!function(){var e=a.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"poucos segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº"});return e}(),e.fullCalendar.datepickerLocale("pt-br","pt-BR",{closeText:"Fechar",prevText:"&#x3C;Anterior",nextText:"Próximo&#x3E;",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],
+weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("pt-br",{buttonText:{month:"Mês",week:"Semana",day:"Dia",list:"Compromissos"},allDayText:"dia inteiro",eventLimitText:function(e){return"mais +"+e},noEventsMessage:"Não há eventos para mostrar"})}(),function(){!function(){function e(e,a,t){var n={mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"},r=" ";return(e%100>=20||e>=100&&e%100===0)&&(r=" de "),e+r+n[t]}var t=a.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marÈ›i_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",m:"un minut",mm:e,h:"o oră",hh:e,d:"o zi",dd:e,M:"o lună",MM:e,y:"un an",yy:e},week:{dow:1,doy:7}});return t}(),e.fullCalendar.datepickerLocale("ro","ro",{closeText:"ÃŽnchide",prevText:"&#xAB; Luna precedentă",nextText:"Luna următoare &#xBB;",currentText:"Azi",monthNames:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],monthNamesShort:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Duminică","Luni","MarÅ£i","Miercuri","Joi","Vineri","Sâmbătă"],dayNamesShort:["Dum","Lun","Mar","Mie","Joi","Vin","Sâm"],dayNamesMin:["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],weekHeader:"Săpt",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("ro",{buttonText:{prev:"precedentă",next:"următoare",month:"Lună",week:"Săptămână",day:"Zi",list:"Agendă"},allDayText:"Toată ziua",eventLimitText:function(e){return"+alte "+e},noEventsMessage:"Nu există evenimente de afiÈ™at"})}(),function(){!function(){function e(e,a){var t=e.split("_");return a%10===1&&a%100!==11?t[0]:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?t[1]:t[2]}function t(a,t,n){var r={mm:t?"минута_минуты_минут":"минуту_минуты_минут",hh:"чаÑ_чаÑа_чаÑов",dd:"день_днÑ_дней",MM:"меÑÑц_меÑÑца_меÑÑцев",yy:"год_года_лет"};return"m"===n?t?"минута":"минуту":a+" "+e(r[n],+a)}var n=[/^Ñнв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йÑ]/i,/^июн/i,/^июл/i,/^авг/i,/^Ñен/i,/^окт/i,/^ноÑ/i,/^дек/i],r=a.defineLocale("ru",{months:{format:"ÑнварÑ_февралÑ_марта_апрелÑ_маÑ_июнÑ_июлÑ_авгуÑта_ÑентÑбрÑ_октÑбрÑ_ноÑбрÑ_декабрÑ".split("_"),standalone:"Ñнварь_февраль_март_апрель_май_июнь_июль_авгуÑÑ‚_ÑентÑбрь_октÑбрь_ноÑбрь_декабрь".split("_")},monthsShort:{format:"Ñнв._февр._мар._апр._маÑ_июнÑ_июлÑ_авг._Ñент._окт._ноÑб._дек.".split("_"),standalone:"Ñнв._февр._март_апр._май_июнь_июль_авг._Ñент._окт._ноÑб._дек.".split("_")},weekdays:{standalone:"воÑкреÑенье_понедельник_вторник_Ñреда_четверг_пÑтница_Ñуббота".split("_"),format:"воÑкреÑенье_понедельник_вторник_Ñреду_четверг_пÑтницу_Ñубботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|Ñледующую|Ñту)? ?\] ?dddd/},weekdaysShort:"вÑ_пн_вт_ÑÑ€_чт_пт_Ñб".split("_"),weekdaysMin:"вÑ_пн_вт_ÑÑ€_чт_пт_Ñб".split("_"),monthsParse:n,longMonthsParse:n,shortMonthsParse:n,monthsRegex:/^(Ñнвар[ÑŒÑ]|Ñнв\.?|феврал[ÑŒÑ]|февр?\.?|марта?|мар\.?|апрел[ÑŒÑ]|апр\.?|ма[йÑ]|июн[ÑŒÑ]|июн\.?|июл[ÑŒÑ]|июл\.?|авгуÑта?|авг\.?|ÑентÑбр[ÑŒÑ]|Ñент?\.?|октÑбр[ÑŒÑ]|окт\.?|ноÑбр[ÑŒÑ]|ноÑб?\.?|декабр[ÑŒÑ]|дек\.?)/i,monthsShortRegex:/^(Ñнвар[ÑŒÑ]|Ñнв\.?|феврал[ÑŒÑ]|февр?\.?|марта?|мар\.?|апрел[ÑŒÑ]|апр\.?|ма[йÑ]|июн[ÑŒÑ]|июн\.?|июл[ÑŒÑ]|июл\.?|авгуÑта?|авг\.?|ÑентÑбр[ÑŒÑ]|Ñент?\.?|октÑбр[ÑŒÑ]|окт\.?|ноÑбр[ÑŒÑ]|ноÑб?\.?|декабр[ÑŒÑ]|дек\.?)/i,monthsStrictRegex:/^(Ñнвар[ÑÑŒ]|феврал[ÑÑŒ]|марта?|апрел[ÑÑŒ]|ма[Ñй]|июн[ÑÑŒ]|июл[ÑÑŒ]|авгуÑта?|ÑентÑбр[ÑÑŒ]|октÑбр[ÑÑŒ]|ноÑбр[ÑÑŒ]|декабр[ÑÑŒ])/i,monthsShortStrictRegex:/^(Ñнв\.|февр?\.|мар[Ñ‚.]|апр\.|ма[Ñй]|июн[ÑŒÑ.]|июл[ÑŒÑ.]|авг\.|Ñент?\.|окт\.|ноÑб?\.|дек\.)/i,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Ð¡ÐµÐ³Ð¾Ð´Ð½Ñ Ð²] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[Ð’] dddd [в] LT";switch(this.day()){case 0:return"[Ð’ Ñледующее] dddd [в] LT";case 1:case 2:case 4:return"[Ð’ Ñледующий] dddd [в] LT";case 3:case 5:case 6:return"[Ð’ Ñледующую] dddd [в] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[Ð’] dddd [в] LT";switch(this.day()){case 0:return"[Ð’ прошлое] dddd [в] LT";case 1:case 2:case 4:return"[Ð’ прошлый] dddd [в] LT";case 3:case 5:case 6:return"[Ð’ прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"неÑколько Ñекунд",m:t,mm:t,h:"чаÑ",hh:t,d:"день",dd:t,M:"меÑÑц",MM:t,y:"год",yy:t},meridiemParse:/ночи|утра|днÑ|вечера/i,isPM:function(e){return/^(днÑ|вечера)$/.test(e)},meridiem:function(e,a,t){return e<4?"ночи":e<12?"утра":e<17?"днÑ":"вечера"},ordinalParse:/\d{1,2}-(й|го|Ñ)/,ordinal:function(e,a){switch(a){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-Ñ";default:return e}},week:{dow:1,doy:7}});return r}(),e.fullCalendar.datepickerLocale("ru","ru",{closeText:"Закрыть",prevText:"&#x3C;Пред",nextText:"След&#x3E;",currentText:"СегоднÑ",monthNames:["Январь","Февраль","Март","Ðпрель","Май","Июнь","Июль","ÐвгуÑÑ‚","СентÑбрь","ОктÑбрь","ÐоÑбрь","Декабрь"],monthNamesShort:["Янв","Фев","Мар","Ðпр","Май","Июн","Июл","Ðвг","Сен","Окт","ÐоÑ","Дек"],dayNames:["воÑкреÑенье","понедельник","вторник","Ñреда","четверг","пÑтница","Ñуббота"],dayNamesShort:["вÑк","пнд","втр","Ñрд","чтв","птн","Ñбт"],dayNamesMin:["Ð’Ñ","Пн","Ð’Ñ‚","Ср","Чт","Пт","Сб"],weekHeader:"Ðед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("ru",{buttonText:{month:"МеÑÑц",week:"ÐеделÑ",day:"День",list:"ПовеÑтка днÑ"},allDayText:"ВеÑÑŒ день",eventLimitText:function(e){return"+ ещё "+e},noEventsMessage:"Ðет Ñобытий Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ"})}(),function(){!function(){function e(e){return e>1&&e<5}function t(a,t,n,r){var s=a+" ";switch(n){case"s":return t||r?"pár sekúnd":"pár sekundami";case"m":return t?"minúta":r?"minútu":"minútou";case"mm":return t||r?s+(e(a)?"minúty":"minút"):s+"minútami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?s+(e(a)?"hodiny":"hodín"):s+"hodinami";case"d":return t||r?"deň":"dňom";case"dd":return t||r?s+(e(a)?"dni":"dní"):s+"dňami";case"M":return t||r?"mesiac":"mesiacom";case"MM":return t||r?s+(e(a)?"mesiace":"mesiacov"):s+"mesiacmi";case"y":return t||r?"rok":"rokom";case"yy":return t||r?s+(e(a)?"roky":"rokov"):s+"rokmi"}}var n="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),r="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_"),s=a.defineLocale("sk",{months:n,monthsShort:r,weekdays:"nedeľa_pondelok_utorok_streda_Å¡tvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_Å¡t_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_Å¡t_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo Å¡tvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[vÄera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return s}(),e.fullCalendar.datepickerLocale("sk","sk",{closeText:"ZavrieÅ¥",prevText:"&#x3C;Predchádzajúci",nextText:"Nasledujúci&#x3E;",currentText:"Dnes",monthNames:["január","február","marec","apríl","máj","jún","júl","august","september","október","november","december"],monthNamesShort:["Jan","Feb","Mar","Apr","Máj","Jún","Júl","Aug","Sep","Okt","Nov","Dec"],dayNames:["nedeľa","pondelok","utorok","streda","Å¡tvrtok","piatok","sobota"],dayNamesShort:["Ned","Pon","Uto","Str","Å tv","Pia","Sob"],dayNamesMin:["Ne","Po","Ut","St","Å t","Pia","So"],weekHeader:"Ty",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("sk",{buttonText:{month:"Mesiac",week:"Týždeň",day:"Deň",list:"Rozvrh"},allDayText:"Celý deň",eventLimitText:function(e){return"+ÄalÅ¡ie: "+e},noEventsMessage:"Žiadne akcie na zobrazenie"})}(),function(){!function(){function e(e,a,t,n){var r=e+" ";switch(t){case"s":return a||n?"nekaj sekund":"nekaj sekundami";case"m":return a?"ena minuta":"eno minuto";case"mm":return r+=1===e?a?"minuta":"minuto":2===e?a||n?"minuti":"minutama":e<5?a||n?"minute":"minutami":a||n?"minut":"minutami";case"h":return a?"ena ura":"eno uro";case"hh":return r+=1===e?a?"ura":"uro":2===e?a||n?"uri":"urama":e<5?a||n?"ure":"urami":a||n?"ur":"urami";case"d":return a||n?"en dan":"enim dnem";case"dd":return r+=1===e?a||n?"dan":"dnem":2===e?a||n?"dni":"dnevoma":a||n?"dni":"dnevi";case"M":return a||n?"en mesec":"enim mesecem";case"MM":return r+=1===e?a||n?"mesec":"mesecem":2===e?a||n?"meseca":"mesecema":e<5?a||n?"mesece":"meseci":a||n?"mesecev":"meseci";case"y":return a||n?"eno leto":"enim letom";case"yy":return r+=1===e?a||n?"leto":"letom":2===e?a||n?"leti":"letoma":e<5?a||n?"leta":"leti":a||n?"let":"leti"}}var t=a.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_Äetrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._Äet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_Äe_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[vÄeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejÅ¡njo] [nedeljo] [ob] LT";case 3:return"[prejÅ¡njo] [sredo] [ob] LT";case 6:return"[prejÅ¡njo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejÅ¡nji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"Äez %s",past:"pred %s",s:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return t}(),e.fullCalendar.datepickerLocale("sl","sl",{closeText:"Zapri",prevText:"&#x3C;PrejÅ¡nji",nextText:"Naslednji&#x3E;",currentText:"Trenutni",monthNames:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],dayNames:["Nedelja","Ponedeljek","Torek","Sreda","ÄŒetrtek","Petek","Sobota"],dayNamesShort:["Ned","Pon","Tor","Sre","ÄŒet","Pet","Sob"],dayNamesMin:["Ne","Po","To","Sr","ÄŒe","Pe","So"],weekHeader:"Teden",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("sl",{buttonText:{month:"Mesec",week:"Teden",day:"Dan",list:"Dnevni red"},allDayText:"Ves dan",eventLimitText:"veÄ",noEventsMessage:"Ni dogodkov za prikaz"})}(),function(){!function(){var e={words:{m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,a){return 1===e?a[0]:e>=2&&e<=4?a[1]:a[2]},translate:function(a,t,n){var r=e.words[n];return 1===n.length?t?r[0]:r[1]:a+" "+e.correctGrammaticalCase(a,r)}},t=a.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_Äetvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._Äet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_Äe_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juÄe u] LT",lastWeek:function(){var e=["[proÅ¡le] [nedelje] [u] LT","[proÅ¡log] [ponedeljka] [u] LT","[proÅ¡log] [utorka] [u] LT","[proÅ¡le] [srede] [u] LT","[proÅ¡log] [Äetvrtka] [u] LT","[proÅ¡log] [petka] [u] LT","[proÅ¡le] [subote] [u] LT"];return e[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"dan",dd:e.translate,M:"mesec",MM:e.translate,y:"godinu",yy:e.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return t}(),e.fullCalendar.datepickerLocale("sr","sr",{closeText:"Затвори",prevText:"&#x3C;",nextText:"&#x3E;",currentText:"ДанаÑ",monthNames:["Јануар","Фебруар","Март","Ðприл","Мај","Јун","Јул","ÐвгуÑÑ‚","Септембар","Октобар","Ðовембар","Децембар"],monthNamesShort:["Јан","Феб","Мар","Ðпр","Мај","Јун","Јул","Ðвг","Сеп","Окт","Ðов","Дец"],dayNames:["Ðедеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],dayNamesShort:["Ðед","Пон","Уто","Сре","Чет","Пет","Суб"],dayNamesMin:["Ðе","По","Ут","Ср","Че","Пе","Су"],weekHeader:"Сед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("sr",{buttonText:{month:"МеÑец",week:"Ðедеља",day:"Дан",list:"Планер"},allDayText:"Цео дан",eventLimitText:function(e){return"+ још "+e},noEventsMessage:"Ðема догађаја за приказ"})}(),function(){!function(){var e={words:{m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један Ñат","једног Ñата"],hh:["Ñат","Ñата","Ñати"],dd:["дан","дана","дана"],MM:["меÑец","меÑеца","меÑеци"],yy:["година","године","година"]},correctGrammaticalCase:function(e,a){return 1===e?a[0]:e>=2&&e<=4?a[1]:a[2]},translate:function(a,t,n){var r=e.words[n];return 1===n.length?t?r[0]:r[1]:a+" "+e.correctGrammaticalCase(a,r)}},t=a.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_авгуÑÑ‚_Ñептембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._Ñеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_Ñреда_четвртак_петак_Ñубота".split("_"),weekdaysShort:"нед._пон._уто._Ñре._чет._пет._Ñуб.".split("_"),weekdaysMin:"не_по_ут_ÑÑ€_че_пе_Ñу".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Ð´Ð°Ð½Ð°Ñ Ñƒ] LT",nextDay:"[Ñутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [Ñреду] [у] LT";case 6:return"[у] [Ñуботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){var e=["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [Ñреде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [Ñуботе] [у] LT"];return e[this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико Ñекунди",m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"дан",dd:e.translate,M:"меÑец",MM:e.translate,y:"годину",yy:e.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return t}(),e.fullCalendar.datepickerLocale("sr-cyrl","sr",{closeText:"Затвори",prevText:"&#x3C;",nextText:"&#x3E;",currentText:"ДанаÑ",monthNames:["Јануар","Фебруар","Март","Ðприл","Мај","Јун","Јул","ÐвгуÑÑ‚","Септембар","Октобар","Ðовембар","Децембар"],monthNamesShort:["Јан","Феб","Мар","Ðпр","Мај","Јун","Јул","Ðвг","Сеп","Окт","Ðов","Дец"],dayNames:["Ðедеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],dayNamesShort:["Ðед","Пон","Уто","Сре","Чет","Пет","Суб"],dayNamesMin:["Ðе","По","Ут","Ср","Че","Пе","Су"],weekHeader:"Сед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("sr-cyrl",{buttonText:{month:"МеÑец",week:"Ðедеља",day:"Дан",list:"Планер"},allDayText:"Цео дан",eventLimitText:function(e){return"+ још "+e},noEventsMessage:"Ðема догађаја за приказ"})}(),function(){!function(){var e=a.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_mÃ¥ndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mÃ¥n_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_mÃ¥_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[IgÃ¥r] LT",nextWeek:"[PÃ¥] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"nÃ¥gra sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en mÃ¥nad",MM:"%d mÃ¥nader",y:"ett Ã¥r",yy:"%d Ã¥r"},ordinalParse:/\d{1,2}(e|a)/,ordinal:function(e){var a=e%10,t=1===~~(e%100/10)?"e":1===a?"a":2===a?"a":"e";return e+t},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("sv","sv",{closeText:"Stäng",prevText:"&#xAB;Förra",nextText:"Nästa&#xBB;",currentText:"Idag",monthNames:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNamesShort:["Sön","MÃ¥n","Tis","Ons","Tor","Fre","Lör"],dayNames:["Söndag","MÃ¥ndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"],dayNamesMin:["Sö","MÃ¥","Ti","On","To","Fr","Lö"],weekHeader:"Ve",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("sv",{buttonText:{month:"MÃ¥nad",week:"Vecka",day:"Dag",list:"Program"},allDayText:"Heldag",eventLimitText:"till",noEventsMessage:"Inga händelser att visa"})}(),function(){!function(){var e=a.defineLocale("th",{months:"มà¸à¸£à¸²à¸„ม_à¸à¸¸à¸¡à¸ à¸²à¸žà¸±à¸™à¸˜à¹Œ_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_à¸à¸£à¸à¸Žà¸²à¸„ม_สิงหาคม_à¸à¸±à¸™à¸¢à¸²à¸¢à¸™_ตุลาคม_พฤศจิà¸à¸²à¸¢à¸™_ธันวาคม".split("_"),monthsShort:"ม.ค._à¸.พ._มี.ค._เม.ย._พ.ค._มิ.ย._à¸.ค._ส.ค._à¸.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุà¸à¸£à¹Œ_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุà¸à¸£à¹Œ_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H นาฬิà¸à¸² m นาที",LTS:"H นาฬิà¸à¸² m นาที s วินาที",L:"YYYY/MM/DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H นาฬิà¸à¸² m นาที",LLLL:"วันddddที่ D MMMM YYYY เวลา H นาฬิà¸à¸² m นาที"},meridiemParse:/à¸à¹ˆà¸­à¸™à¹€à¸—ี่ยง|หลังเที่ยง/,isPM:function(e){return"หลังเที่ยง"===e},meridiem:function(e,a,t){return e<12?"à¸à¹ˆà¸­à¸™à¹€à¸—ี่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่à¹à¸¥à¹‰à¸§ เวลา] LT",sameElse:"L"},relativeTime:{future:"อีภ%s",past:"%sที่à¹à¸¥à¹‰à¸§",s:"ไม่à¸à¸µà¹ˆà¸§à¸´à¸™à¸²à¸—ี",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}});return e}(),e.fullCalendar.datepickerLocale("th","th",{closeText:"ปิด",prevText:"&#xAB;&#xA0;ย้อน",nextText:"ถัดไป&#xA0;&#xBB;",currentText:"วันนี้",monthNames:["มà¸à¸£à¸²à¸„ม","à¸à¸¸à¸¡à¸ à¸²à¸žà¸±à¸™à¸˜à¹Œ","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","à¸à¸£à¸à¸Žà¸²à¸„ม","สิงหาคม","à¸à¸±à¸™à¸¢à¸²à¸¢à¸™","ตุลาคม","พฤศจิà¸à¸²à¸¢à¸™","ธันวาคม"],monthNamesShort:["ม.ค.","à¸.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","à¸.ค.","ส.ค.","à¸.ย.","ต.ค.","พ.ย.","ธ.ค."],dayNames:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุà¸à¸£à¹Œ","เสาร์"],dayNamesShort:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],dayNamesMin:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("th",{buttonText:{month:"เดือน",week:"สัปดาห์",day:"วัน",list:"à¹à¸œà¸™à¸‡à¸²à¸™"},allDayText:"ตลอดวัน",eventLimitText:"เพิ่มเติม",noEventsMessage:"ไม่มีà¸à¸´à¸ˆà¸à¸£à¸£à¸¡à¸—ี่จะà¹à¸ªà¸”ง"})}(),function(){!function(){var e={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"},t=a.defineLocale("tr",{months:"Ocak_Åžubat_Mart_Nisan_Mayıs_Haziran_Temmuz_AÄŸustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Åžub_Mar_Nis_May_Haz_Tem_AÄŸu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_ÇarÅŸamba_PerÅŸembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[haftaya] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen hafta] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinalParse:/\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(a){if(0===a)return a+"'ıncı";var t=a%10,n=a%100-t,r=a>=100?100:null;return a+(e[t]||e[n]||e[r])},week:{dow:1,doy:7}});return t}(),e.fullCalendar.datepickerLocale("tr","tr",{closeText:"kapat",prevText:"&#x3C;geri",nextText:"ileri&#x3e",currentText:"bugün",monthNames:["Ocak","Åžubat","Mart","Nisan","Mayıs","Haziran","Temmuz","AÄŸustos","Eylül","Ekim","Kasım","Aralık"],monthNamesShort:["Oca","Åžub","Mar","Nis","May","Haz","Tem","AÄŸu","Eyl","Eki","Kas","Ara"],dayNames:["Pazar","Pazartesi","Salı","ÇarÅŸamba","PerÅŸembe","Cuma","Cumartesi"],dayNamesShort:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],dayNamesMin:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],weekHeader:"Hf",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("tr",{buttonText:{next:"ileri",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},allDayText:"Tüm gün",eventLimitText:"daha fazla",noEventsMessage:"Herhangi bir etkinlik görüntülemek için"})}(),function(){!function(){function e(e,a){var t=e.split("_");return a%10===1&&a%100!==11?t[0]:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?t[1]:t[2]}function t(a,t,n){var r={mm:t?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:t?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"міÑÑць_міÑÑці_міÑÑців",yy:"рік_роки_років"};return"m"===n?t?"хвилина":"хвилину":"h"===n?t?"година":"годину":a+" "+e(r[n],+a)}function n(e,a){var t={nominative:"неділÑ_понеділок_вівторок_Ñереда_четвер_п’ÑтницÑ_Ñубота".split("_"),accusative:"неділю_понеділок_вівторок_Ñереду_четвер_п’Ñтницю_Ñуботу".split("_"),genitive:"неділі_понеділка_вівторка_Ñереди_четверга_п’Ñтниці_Ñуботи".split("_")},n=/(\[[ВвУу]\]) ?dddd/.test(a)?"accusative":/\[?(?:минулої|наÑтупної)? ?\] ?dddd/.test(a)?"genitive":"nominative";return t[n][e.day()]}function r(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}var s=a.defineLocale("uk",{months:{format:"ÑічнÑ_лютого_березнÑ_квітнÑ_травнÑ_червнÑ_липнÑ_ÑерпнÑ_вереÑнÑ_жовтнÑ_лиÑтопада_груднÑ".split("_"),standalone:"Ñічень_лютий_березень_квітень_травень_червень_липень_Ñерпень_вереÑень_жовтень_лиÑтопад_грудень".split("_")},monthsShort:"Ñіч_лют_бер_квіт_трав_черв_лип_Ñерп_вер_жовт_лиÑÑ‚_груд".split("_"),weekdays:n,weekdaysShort:"нд_пн_вт_ÑÑ€_чт_пт_Ñб".split("_"),weekdaysMin:"нд_пн_вт_ÑÑ€_чт_пт_Ñб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY Ñ€.",LLL:"D MMMM YYYY Ñ€., HH:mm",LLLL:"dddd, D MMMM YYYY Ñ€., HH:mm"},calendar:{sameDay:r("[Сьогодні "),nextDay:r("[Завтра "),lastDay:r("[Вчора "),nextWeek:r("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return r("[Минулої] dddd [").call(this);case 1:case 2:case 4:return r("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька Ñекунд",m:t,mm:t,h:"годину",hh:t,d:"день",dd:t,M:"міÑÑць",MM:t,y:"рік",yy:t},meridiemParse:/ночі|ранку|днÑ|вечора/,isPM:function(e){return/^(днÑ|вечора)$/.test(e)},meridiem:function(e,a,t){return e<4?"ночі":e<12?"ранку":e<17?"днÑ":"вечора"},ordinalParse:/\d{1,2}-(й|го)/,ordinal:function(e,a){switch(a){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}});return s}(),e.fullCalendar.datepickerLocale("uk","uk",{closeText:"Закрити",prevText:"&#x3C;",nextText:"&#x3E;",currentText:"Сьогодні",monthNames:["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","ВереÑень","Жовтень","ЛиÑтопад","Грудень"],monthNamesShort:["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","ЛиÑ","Гру"],dayNames:["неділÑ","понеділок","вівторок","Ñереда","четвер","п’ÑтницÑ","Ñубота"],dayNamesShort:["нед","пнд","вів","Ñрд","чтв","птн","Ñбт"],dayNamesMin:["Ðд","Пн","Ð’Ñ‚","Ср","Чт","Пт","Сб"],weekHeader:"Тиж",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("uk",{buttonText:{month:"МіÑÑць",week:"Тиждень",day:"День",list:"ПорÑдок денний"},allDayText:"УвеÑÑŒ день",eventLimitText:function(e){return"+ще "+e+"..."},noEventsMessage:"Ðемає подій Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ"})}(),function(){!function(){var e=a.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tÆ°_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,a,t){return e<12?t?"sa":"SA":t?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tá»›i lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tá»›i",past:"%s trÆ°á»›c",s:"vài giây",m:"má»™t phút",mm:"%d phút",h:"má»™t giá»",hh:"%d giá»",d:"má»™t ngày",dd:"%d ngày",M:"má»™t tháng",MM:"%d tháng",y:"má»™t năm",yy:"%d năm"},ordinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("vi","vi",{closeText:"Äóng",prevText:"&#x3C;TrÆ°á»›c",nextText:"Tiếp&#x3E;",currentText:"Hôm nay",monthNames:["Tháng Má»™t","Tháng Hai","Tháng Ba","Tháng TÆ°","Tháng Năm","Tháng Sáu","Tháng Bảy","Tháng Tám","Tháng Chín","Tháng MÆ°á»i","Tháng MÆ°á»i Má»™t","Tháng MÆ°á»i Hai"],monthNamesShort:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],dayNames:["Chủ Nhật","Thứ Hai","Thứ Ba","Thứ TÆ°","Thứ Năm","Thứ Sáu","Thứ Bảy"],dayNamesShort:["CN","T2","T3","T4","T5","T6","T7"],dayNamesMin:["CN","T2","T3","T4","T5","T6","T7"],weekHeader:"Tu",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("vi",{buttonText:{month:"Tháng",week:"Tuần",day:"Ngày",list:"Lịch biểu"},allDayText:"Cả ngày",eventLimitText:function(e){return"+ thêm "+e},noEventsMessage:"Không có sá»± kiện để hiển thị"})}(),function(){!function(){var e=a.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_ä¹æœˆ_å月_å一月_å二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"æ—¥_一_二_三_å››_五_å…­".split("_"),longDateFormat:{LT:"Ah点mm分",LTS:"Ah点m分s秒",L:"YYYY-MM-DD",LL:"YYYYå¹´MMMDæ—¥",LLL:"YYYYå¹´MMMDæ—¥Ah点mm分",LLLL:"YYYYå¹´MMMDæ—¥ddddAh点mm分",l:"YYYY-MM-DD",ll:"YYYYå¹´MMMDæ—¥",lll:"YYYYå¹´MMMDæ—¥Ah点mm分",llll:"YYYYå¹´MMMDæ—¥ddddAh点mm分"},meridiemParse:/凌晨|早上|上åˆ|中åˆ|下åˆ|晚上/,meridiemHour:function(e,a){return 12===e&&(e=0),"凌晨"===a||"早上"===a||"上åˆ"===a?e:"下åˆ"===a||"晚上"===a?e+12:e>=11?e:e+12},meridiem:function(e,a,t){var n=100*e+a;return n<600?"凌晨":n<900?"早上":n<1130?"上åˆ":n<1230?"中åˆ":n<1800?"下åˆ":"晚上"},calendar:{sameDay:function(){return 0===this.minutes()?"[今天]Ah[点整]":"[今天]LT"},nextDay:function(){return 0===this.minutes()?"[明天]Ah[点整]":"[明天]LT"},lastDay:function(){return 0===this.minutes()?"[昨天]Ah[点整]":"[昨天]LT"},nextWeek:function(){var e,t;return e=a().startOf("week"),t=this.diff(e,"days")>=7?"[下]":"[本]",0===this.minutes()?t+"dddAh点整":t+"dddAh点mm"},lastWeek:function(){var e,t;return e=a().startOf("week"),t=this.unix()<e.unix()?"[上]":"[本]",0===this.minutes()?t+"dddAh点整":t+"dddAh点mm"},sameElse:"LL"},ordinalParse:/\d{1,2}(æ—¥|月|周)/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"æ—¥";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s内",past:"%så‰",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 å°æ—¶",hh:"%d å°æ—¶",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 å¹´",yy:"%d å¹´"},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("zh-cn","zh-CN",{closeText:"关闭",prevText:"&#x3C;上月",nextText:"下月&#x3E;",currentText:"今天",monthNames:["一月","二月","三月","四月","五月","六月","七月","八月","ä¹æœˆ","å月","å一月","å二月"],monthNamesShort:["一月","二月","三月","四月","五月","六月","七月","八月","ä¹æœˆ","å月","å一月","å二月"],dayNames:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayNamesShort:["周日","周一","周二","周三","周四","周五","周六"],dayNamesMin:["æ—¥","一","二","三","å››","五","å…­"],weekHeader:"周",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"å¹´"}),e.fullCalendar.locale("zh-cn",{buttonText:{month:"月",week:"周",day:"æ—¥",list:"日程"},allDayText:"全天",eventLimitText:function(e){return"å¦å¤– "+e+" 个"},noEventsMessage:"没有事件显示"})}(),function(){!function(){var e=a.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_ä¹æœˆ_å月_å一月_å二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"æ—¥_一_二_三_å››_五_å…­".split("_"),longDateFormat:{LT:"Ah點mm分",LTS:"Ah點m分s秒",L:"YYYYå¹´MMMDæ—¥",LL:"YYYYå¹´MMMDæ—¥",LLL:"YYYYå¹´MMMDæ—¥Ah點mm分",LLLL:"YYYYå¹´MMMDæ—¥ddddAh點mm分",l:"YYYYå¹´MMMDæ—¥",ll:"YYYYå¹´MMMDæ—¥",lll:"YYYYå¹´MMMDæ—¥Ah點mm分",llll:"YYYYå¹´MMMDæ—¥ddddAh點mm分"},meridiemParse:/凌晨|早上|上åˆ|中åˆ|下åˆ|晚上/,meridiemHour:function(e,a){return 12===e&&(e=0),"凌晨"===a||"早上"===a||"上åˆ"===a?e:"中åˆ"===a?e>=11?e:e+12:"下åˆ"===a||"晚上"===a?e+12:void 0},meridiem:function(e,a,t){var n=100*e+a;return n<600?"凌晨":n<900?"早上":n<1130?"上åˆ":n<1230?"中åˆ":n<1800?"下åˆ":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},ordinalParse:/\d{1,2}(æ—¥|月|週)/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"æ—¥";case"M":return e+"月";case"w":case"W":return e+"週";
+default:return e}},relativeTime:{future:"%så…§",past:"%så‰",s:"幾秒",m:"1 分é˜",mm:"%d 分é˜",h:"1 å°æ™‚",hh:"%d å°æ™‚",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 å¹´",yy:"%d å¹´"}});return e}(),e.fullCalendar.datepickerLocale("zh-tw","zh-TW",{closeText:"關閉",prevText:"&#x3C;上月",nextText:"下月&#x3E;",currentText:"今天",monthNames:["一月","二月","三月","四月","五月","六月","七月","八月","ä¹æœˆ","å月","å一月","å二月"],monthNamesShort:["一月","二月","三月","四月","五月","六月","七月","八月","ä¹æœˆ","å月","å一月","å二月"],dayNames:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayNamesShort:["周日","周一","周二","周三","周四","周五","周六"],dayNamesMin:["æ—¥","一","二","三","å››","五","å…­"],weekHeader:"周",dateFormat:"yy/mm/dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"å¹´"}),e.fullCalendar.locale("zh-tw",{buttonText:{month:"月",week:"週",day:"天",list:"待辦事項"},allDayText:"全天",eventLimitText:"更多",noEventsMessage:"没有事件显示"})}(),a.locale("en"),e.fullCalendar.locale("en"),e.datepicker&&e.datepicker.setDefaults(e.datepicker.regional[""])}); \ No newline at end of file
diff --git a/library/justifiedGallery/jquery.justifiedGallery.js b/library/justifiedGallery/jquery.justifiedGallery.js
index d3259fe44..82445b403 100644
--- a/library/justifiedGallery/jquery.justifiedGallery.js
+++ b/library/justifiedGallery/jquery.justifiedGallery.js
@@ -1,11 +1,14 @@
/*!
- * Justified Gallery - v3.6.1
+ * Justified Gallery - v3.6.3
* http://miromannino.github.io/Justified-Gallery/
- * Copyright (c) 2015 Miro Mannino
+ * Copyright (c) 2016 Miro Mannino
* Licensed under the MIT license.
*/
(function($) {
+ function hasScrollBar() {
+ return $("body").height() > $(window).height();
+ }
/**
* Justified Gallery controller constructor
*
@@ -26,6 +29,7 @@
height : 0,
aspectRatio : 0
};
+ this.lastFetchedEntry = null;
this.lastAnalyzedIndex = -1;
this.yield = {
every : 2, // do a flush every n flushes (must be greater than 1)
@@ -35,6 +39,7 @@
this.maxRowHeight = this.retrieveMaxRowHeight();
this.suffixRanges = this.retrieveSuffixRanges();
this.offY = this.border;
+ this.rows = 0;
this.spinner = {
phase : 0,
timeSlot : 150,
@@ -97,11 +102,11 @@
*
* @returns {String} the suffix to use
*/
- JustifiedGallery.prototype.newSrc = function (imageSrc, imgWidth, imgHeight) {
+ JustifiedGallery.prototype.newSrc = function (imageSrc, imgWidth, imgHeight, image) {
var newImageSrc;
-
+
if (this.settings.thumbnailPath) {
- newImageSrc = this.settings.thumbnailPath(imageSrc, imgWidth, imgHeight);
+ newImageSrc = this.settings.thumbnailPath(imageSrc, imgWidth, imgHeight, image);
} else {
var matchRes = imageSrc.match(this.settings.extension);
var ext = (matchRes !== null) ? matchRes[0] : '';
@@ -125,6 +130,7 @@
if (callback) callback();
} else {
$entry.stop().fadeTo(this.settings.imagesAnimationDuration, 1.0, callback);
+ $entry.find('> img, > a > img').stop().fadeTo(this.settings.imagesAnimationDuration, 1.0, callback);
}
};
@@ -179,7 +185,7 @@
// Image reloading for an high quality of thumbnails
var imageSrc = $image.attr('src');
- var newImageSrc = this.newSrc(imageSrc, imgWidth, imgHeight);
+ var newImageSrc = this.newSrc(imageSrc, imgWidth, imgHeight, $image[0]);
$image.one('error', function () {
$image.attr('src', $image.data('jg.originalSrc')); //revert to the original thumbnail, we got it.
@@ -325,6 +331,7 @@
var availableWidth = this.galleryWidth - 2 * this.border - (
(this.buildingRow.entriesBuff.length - 1) * this.settings.margins);
var rowHeight = availableWidth / this.buildingRow.aspectRatio;
+ var defaultRowHeight = this.settings.rowHeight;
var justifiable = this.buildingRow.width / availableWidth > this.settings.justifyThreshold;
//Skip the last row if we can't justify it and the lastRow == 'hide'
@@ -333,14 +340,23 @@
$entry = this.buildingRow.entriesBuff[i];
if (this.settings.cssAnimation)
$entry.removeClass('entry-visible');
- else
- $entry.stop().fadeTo(0, 0);
+ else {
+ $entry.stop().fadeTo(0, 0.1);
+ $entry.find('> img, > a > img').fadeTo(0, 0);
+ }
}
return -1;
}
// With lastRow = nojustify, justify if is justificable (the images will not become too big)
- if (isLastRow && !justifiable && this.settings.lastRow !== 'justify' && this.settings.lastRow !== 'hide') justify = false;
+ if (isLastRow && !justifiable && this.settings.lastRow !== 'justify' && this.settings.lastRow !== 'hide') {
+ justify = false;
+
+ if (this.rows > 0) {
+ defaultRowHeight = (this.offY - this.border - this.settings.margins * this.rows) / this.rows;
+ justify = defaultRowHeight * this.buildingRow.aspectRatio / availableWidth > this.settings.justifyThreshold;
+ }
+ }
for (i = 0; i < this.buildingRow.entriesBuff.length; i++) {
$entry = this.buildingRow.entriesBuff[i];
@@ -349,19 +365,9 @@
if (justify) {
newImgW = (i === this.buildingRow.entriesBuff.length - 1) ? availableWidth : rowHeight * imgAspectRatio;
newImgH = rowHeight;
-
- /* With fixedHeight the newImgH must be greater than rowHeight.
- In some cases here this is not satisfied (due to the justification).
- But we comment it, because is better to have a shorter but justified row instead
- to have a cropped image at the end. */
- /*if (this.settings.fixedHeight && newImgH < this.settings.rowHeight) {
- newImgW = this.settings.rowHeight * imgAspectRatio;
- newImgH = this.settings.rowHeight;
- }*/
-
} else {
- newImgW = this.settings.rowHeight * imgAspectRatio;
- newImgH = this.settings.rowHeight;
+ newImgW = defaultRowHeight * imgAspectRatio;
+ newImgH = defaultRowHeight;
}
availableWidth -= Math.round(newImgW);
@@ -370,9 +376,6 @@
if (i === 0 || minHeight > newImgH) minHeight = newImgH;
}
- if (this.settings.fixedHeight && minHeight > this.settings.rowHeight)
- minHeight = this.settings.rowHeight;
-
this.buildingRow.height = minHeight;
return justify;
};
@@ -396,17 +399,15 @@
var $entry, buildingRowRes, offX = this.border, i;
buildingRowRes = this.prepareBuildingRow(isLastRow);
- if (isLastRow && settings.lastRow === 'hide' && this.buildingRow.height === -1) {
+ if (isLastRow && settings.lastRow === 'hide' && buildingRowRes === -1) {
this.clearBuildingRow();
return;
}
- if (this.maxRowHeight.isPercentage) {
- if (this.maxRowHeight.value * settings.rowHeight < this.buildingRow.height) {
+ if (this.maxRowHeight) {
+ if (this.maxRowHeight.isPercentage && this.maxRowHeight.value * settings.rowHeight < this.buildingRow.height) {
this.buildingRow.height = this.maxRowHeight.value * settings.rowHeight;
- }
- } else {
- if (this.maxRowHeight.value > 0 && this.maxRowHeight.value < this.buildingRow.height) {
+ } else if (this.maxRowHeight.value >= settings.rowHeight && this.maxRowHeight.value < this.buildingRow.height) {
this.buildingRow.height = this.maxRowHeight.value;
}
}
@@ -426,7 +427,6 @@
offX += availableWidth;
}
-
for (i = 0; i < this.buildingRow.entriesBuff.length; i++) {
$entry = this.buildingRow.entriesBuff[i];
this.displayEntry($entry, offX, this.offY, $entry.data('jg.jwidth'), $entry.data('jg.jheight'), this.buildingRow.height);
@@ -434,12 +434,13 @@
}
//Gallery Height
- this.$gallery.height(this.offY + this.buildingRow.height +
- this.border + (this.isSpinnerActive() ? this.getSpinnerHeight() : 0));
+ this.galleryHeightToSet = this.offY + this.buildingRow.height + this.border;
+ this.$gallery.height(this.galleryHeightToSet + this.getSpinnerHeight());
if (!isLastRow || (this.buildingRow.height <= settings.rowHeight && buildingRowRes)) {
//Ready for a new row
this.offY += this.buildingRow.height + settings.margins;
+ this.rows += 1;
this.clearBuildingRow();
this.$gallery.trigger('jg.rowflush');
}
@@ -448,15 +449,21 @@
/**
* Checks the width of the gallery container, to know if a new justification is needed
*/
+ var scrollBarOn = false;
JustifiedGallery.prototype.checkWidth = function () {
this.checkWidthIntervalId = setInterval($.proxy(function () {
var galleryWidth = parseFloat(this.$gallery.width());
- if (Math.abs(galleryWidth - this.galleryWidth) > this.settings.refreshSensitivity) {
- this.galleryWidth = galleryWidth;
- this.rewind();
+ if (hasScrollBar() === scrollBarOn) {
+ if (Math.abs(galleryWidth - this.galleryWidth) > this.settings.refreshSensitivity) {
+ this.galleryWidth = galleryWidth;
+ this.rewind();
- // Restart to analyze
- this.startImgAnalyzer(true);
+ // Restart to analyze
+ this.startImgAnalyzer(true);
+ }
+ } else {
+ scrollBarOn = hasScrollBar();
+ this.galleryWidth = galleryWidth;
}
}, this), this.settings.refreshTime);
};
@@ -508,8 +515,10 @@
* Rewind the image analysis to start from the first entry.
*/
JustifiedGallery.prototype.rewind = function () {
+ this.lastFetchedEntry = null;
this.lastAnalyzedIndex = -1;
this.offY = this.border;
+ this.rows = 0;
this.clearBuildingRow();
};
@@ -520,23 +529,35 @@
* @returns {boolean} true if some entries has been founded
*/
JustifiedGallery.prototype.updateEntries = function (norewind) {
- this.entries = this.$gallery.find(this.settings.selector).toArray();
- if (this.entries.length === 0) return false;
+ var newEntries;
- // Filter
- if (this.settings.filter) {
- this.modifyEntries(this.filterArray, norewind);
+ if (norewind && this.lastFetchedEntry != null) {
+ newEntries = $(this.lastFetchedEntry).nextAll(this.settings.selector).toArray();
} else {
- this.modifyEntries(this.resetFilters, norewind);
+ this.entries = [];
+ newEntries = this.$gallery.children(this.settings.selector).toArray();
}
- // Sort or randomize
- if ($.isFunction(this.settings.sort)) {
- this.modifyEntries(this.sortArray, norewind);
- } else if (this.settings.randomize) {
- this.modifyEntries(this.shuffleArray, norewind);
+ if (newEntries.length > 0) {
+
+ // Sort or randomize
+ if ($.isFunction(this.settings.sort)) {
+ newEntries = this.sortArray(newEntries);
+ } else if (this.settings.randomize) {
+ newEntries = this.shuffleArray(newEntries);
+ }
+ this.lastFetchedEntry = newEntries[newEntries.length - 1];
+
+ // Filter
+ if (this.settings.filter) {
+ newEntries = this.filterArray(newEntries);
+ } else {
+ this.resetFilters(newEntries);
+ }
+
}
+ this.entries = this.entries.concat(newEntries);
return true;
};
@@ -589,7 +610,6 @@
*/
JustifiedGallery.prototype.resetFilters = function (a) {
for (var i = 0; i < a.length; i++) $(a[i]).removeClass('jg-filtered');
- return a;
};
/**
@@ -608,31 +628,25 @@
$el.removeClass('jg-filtered');
return true;
} else {
- $el.addClass('jg-filtered');
+ $el.addClass('jg-filtered').removeClass('jg-visible');
return false;
}
});
} else if ($.isFunction(settings.filter)) {
// Filter using the passed function
- return a.filter(settings.filter);
+ var filteredArr = a.filter(settings.filter);
+ for (var i = 0; i < a.length; i++) {
+ if (filteredArr.indexOf(a[i]) == -1) {
+ $(a[i]).addClass('jg-filtered').removeClass('jg-visible');
+ } else {
+ $(a[i]).removeClass('jg-filtered');
+ }
+ }
+ return filteredArr;
}
};
/**
- * Modify the entries. With norewind only the new inserted images will be modified (the ones after lastAnalyzedIndex)
- *
- * @param functionToApply the function to call to modify the entries (e.g. sorting, randomization, filtering)
- * @param norewind specify if the norewind has been called or not
- */
- JustifiedGallery.prototype.modifyEntries = function (functionToApply, norewind) {
- var lastEntries = norewind ?
- this.entries.splice(this.lastAnalyzedIndex + 1, this.entries.length - this.lastAnalyzedIndex - 1)
- : this.entries;
- lastEntries = functionToApply.call(this, lastEntries);
- this.entries = norewind ? this.entries.concat(lastEntries) : lastEntries;
- };
-
- /**
* Destroy the Justified Gallery instance.
*
* It clears all the css properties added in the style attributes. We doesn't backup the original
@@ -727,6 +741,7 @@
//On complete callback
this.$gallery.trigger(isForResize ? 'jg.resize' : 'jg.complete');
+ this.$gallery.height(this.galleryHeightToSet);
};
/**
@@ -915,6 +930,10 @@
} else if ($.type(this.settings.maxRowHeight) === 'number') {
newMaxRowHeight.value = this.settings.maxRowHeight;
newMaxRowHeight.isPercentage = false;
+ } else if (this.settings.maxRowHeight === false ||
+ this.settings.maxRowHeight === null ||
+ typeof this.settings.maxRowHeight == 'undefined') {
+ return null;
} else {
throw 'maxRowHeight must be a number or a percentage';
}
@@ -925,14 +944,9 @@
// check values
if (newMaxRowHeight.isPercentage) {
if (newMaxRowHeight.value < 100) newMaxRowHeight.value = 100;
- } else {
- if (newMaxRowHeight.value > 0 && newMaxRowHeight.value < this.settings.rowHeight) {
- newMaxRowHeight.value = this.settings.rowHeight;
- }
}
return newMaxRowHeight;
-
};
/**
@@ -945,12 +959,16 @@
this.checkOrConvertNumber(this.settings, 'margins');
this.checkOrConvertNumber(this.settings, 'border');
- if (this.settings.lastRow !== 'justify' &&
- this.settings.lastRow !== 'nojustify' && this.settings.lastRow !== 'left' &&
- this.settings.lastRow !== 'center' &&
- this.settings.lastRow !== 'right' &&
- this.settings.lastRow !== 'hide') {
- throw 'lastRow must be "justify", "nojustify", "left", "center", "right" or "hide"';
+ var lastRowModes = [
+ 'justify',
+ 'nojustify',
+ 'left',
+ 'center',
+ 'right',
+ 'hide'
+ ];
+ if (lastRowModes.indexOf(this.settings.lastRow) === -1) {
+ throw 'lastRow must be one of: ' + lastRowModes.join(', ');
}
this.checkOrConvertNumber(this.settings, 'justifyThreshold');
@@ -976,7 +994,6 @@
throw 'captionSettings.nonVisibleOpacity must be in the interval [0, 1]';
}
- if ($.type(this.settings.fixedHeight) !== 'boolean') throw 'fixedHeight must be a boolean';
this.checkOrConvertNumber(this.settings, 'imagesAnimationDuration');
this.checkOrConvertNumber(this.settings, 'refreshTime');
this.checkOrConvertNumber(this.settings, 'refreshSensitivity');
@@ -1051,7 +1068,7 @@
$gallery.data('jg.controller', controller);
} else if (arg === 'norewind') {
// In this case we don't rewind: we analyze only the latest images (e.g. to complete the last unfinished row
- // ... left to be more readable
+ // ... left to be more readable
} else if (arg === 'destroy') {
controller.destroy();
return;
@@ -1083,23 +1100,22 @@
}
*/
thumbnailPath: undefined, /* If defined, sizeRangeSuffixes is not used, and this function is used to determine the
- path relative to a specific thumbnail size. The function should accept respectively three arguments:
+ path relative to a specific thumbnail size. The function should accept respectively three arguments:
current path, width and height */
rowHeight: 120,
- maxRowHeight: -1, // negative value = no limits, number to express the value in pixels,
- // '[0-9]+%' to express in percentage (e.g. 300% means that the row height
- // can't exceed 3 * rowHeight)
+ maxRowHeight: false, // false or negative value to deactivate. Positive number to express the value in pixels,
+ // A string '[0-9]+%' to express in percentage (e.g. 300% means that the row height
+ // can't exceed 3 * rowHeight)
margins: 1,
border: -1, // negative value = same as margins, 0 = disabled, any other value to set the border
lastRow: 'nojustify', // … which is the same as 'left', or can be 'justify', 'center', 'right' or 'hide'
-
- justifyThreshold: 0.75, /* if row width / available space > 0.75 it will be always justified
+
+ justifyThreshold: 0.90, /* if row width / available space > 0.90 it will be always justified
* (i.e. lastRow setting is not considered) */
- fixedHeight: false,
waitThumbnailsLoad: true,
captions: true,
- cssAnimation: false,
+ cssAnimation: true,
imagesAnimationDuration: 500, // ignored with css animations
captionSettings: { // ignored with css animations
animationDuration: 500,
@@ -1117,13 +1133,13 @@
- function: to sort them using the function as comparator (see Array.prototype.sort())
*/
filter: false, /*
- - false: for a disabled filter
+ - false, null or undefined: for a disabled filter
- a string: an entry is kept if entry.is(filter string) returns true
see jQuery's .is() function for further information
- a function: invoked with arguments (entry, index, array). Return true to keep the entry, false otherwise.
- see Array.prototype.filter for further information.
+ It follows the specifications of the Array.prototype.filter() function of JavaScript.
*/
- selector: '> a, > div:not(.spinner)' // The selector that is used to know what are the entries of the gallery
+ selector: 'a, div:not(.spinner)' // The selector that is used to know what are the entries of the gallery
};
}(jQuery));
diff --git a/library/justifiedGallery/jquery.justifiedGallery.min.js b/library/justifiedGallery/jquery.justifiedGallery.min.js
index 030636ccc..91ebcd259 100644
--- a/library/justifiedGallery/jquery.justifiedGallery.min.js
+++ b/library/justifiedGallery/jquery.justifiedGallery.min.js
@@ -1,7 +1,7 @@
/*!
- * Justified Gallery - v3.6.1
+ * Justified Gallery - v3.6.3
* http://miromannino.github.io/Justified-Gallery/
- * Copyright (c) 2015 Miro Mannino
+ * Copyright (c) 2016 Miro Mannino
* Licensed under the MIT license.
*/
-!function(a){var b=function(b,c){this.settings=c,this.checkSettings(),this.imgAnalyzerTimeout=null,this.entries=null,this.buildingRow={entriesBuff:[],width:0,height:0,aspectRatio:0},this.lastAnalyzedIndex=-1,this.yield={every:2,flushed:0},this.border=c.border>=0?c.border:c.margins,this.maxRowHeight=this.retrieveMaxRowHeight(),this.suffixRanges=this.retrieveSuffixRanges(),this.offY=this.border,this.spinner={phase:0,timeSlot:150,$el:a('<div class="spinner"><span></span><span></span><span></span></div>'),intervalId:null},this.checkWidthIntervalId=null,this.galleryWidth=b.width(),this.$gallery=b};b.prototype.getSuffix=function(a,b){var c,d;for(c=a>b?a:b,d=0;d<this.suffixRanges.length;d++)if(c<=this.suffixRanges[d])return this.settings.sizeRangeSuffixes[this.suffixRanges[d]];return this.settings.sizeRangeSuffixes[this.suffixRanges[d-1]]},b.prototype.removeSuffix=function(a,b){return a.substring(0,a.length-b.length)},b.prototype.endsWith=function(a,b){return-1!==a.indexOf(b,a.length-b.length)},b.prototype.getUsedSuffix=function(a){for(var b in this.settings.sizeRangeSuffixes)if(this.settings.sizeRangeSuffixes.hasOwnProperty(b)){if(0===this.settings.sizeRangeSuffixes[b].length)continue;if(this.endsWith(a,this.settings.sizeRangeSuffixes[b]))return this.settings.sizeRangeSuffixes[b]}return""},b.prototype.newSrc=function(a,b,c){var d;if(this.settings.thumbnailPath)d=this.settings.thumbnailPath(a,b,c);else{var e=a.match(this.settings.extension),f=null!==e?e[0]:"";d=a.replace(this.settings.extension,""),d=this.removeSuffix(d,this.getUsedSuffix(d)),d+=this.getSuffix(b,c)+f}return d},b.prototype.showImg=function(a,b){this.settings.cssAnimation?(a.addClass("entry-visible"),b&&b()):a.stop().fadeTo(this.settings.imagesAnimationDuration,1,b)},b.prototype.extractImgSrcFromImage=function(a){var b="undefined"!=typeof a.data("safe-src")?a.data("safe-src"):a.attr("src");return a.data("jg.originalSrc",b),b},b.prototype.imgFromEntry=function(a){var b=a.find("> img");return 0===b.length&&(b=a.find("> a > img")),0===b.length?null:b},b.prototype.captionFromEntry=function(a){var b=a.find("> .caption");return 0===b.length?null:b},b.prototype.displayEntry=function(b,c,d,e,f,g){b.width(e),b.height(g),b.css("top",d),b.css("left",c);var h=this.imgFromEntry(b);if(null!==h){h.css("width",e),h.css("height",f),h.css("margin-left",-e/2),h.css("margin-top",-f/2);var i=h.attr("src"),j=this.newSrc(i,e,f);h.one("error",function(){h.attr("src",h.data("jg.originalSrc"))});var k=function(){i!==j&&h.attr("src",j)};"skipped"===b.data("jg.loaded")?this.onImageEvent(i,a.proxy(function(){this.showImg(b,k),b.data("jg.loaded",!0)},this)):this.showImg(b,k)}else this.showImg(b);this.displayEntryCaption(b)},b.prototype.displayEntryCaption=function(b){var c=this.imgFromEntry(b);if(null!==c&&this.settings.captions){var d=this.captionFromEntry(b);if(null===d){var e=c.attr("alt");this.isValidCaption(e)||(e=b.attr("title")),this.isValidCaption(e)&&(d=a('<div class="caption">'+e+"</div>"),b.append(d),b.data("jg.createdCaption",!0))}null!==d&&(this.settings.cssAnimation||d.stop().fadeTo(0,this.settings.captionSettings.nonVisibleOpacity),this.addCaptionEventsHandlers(b))}else this.removeCaptionEventsHandlers(b)},b.prototype.isValidCaption=function(a){return"undefined"!=typeof a&&a.length>0},b.prototype.onEntryMouseEnterForCaption=function(b){var c=this.captionFromEntry(a(b.currentTarget));this.settings.cssAnimation?c.addClass("caption-visible").removeClass("caption-hidden"):c.stop().fadeTo(this.settings.captionSettings.animationDuration,this.settings.captionSettings.visibleOpacity)},b.prototype.onEntryMouseLeaveForCaption=function(b){var c=this.captionFromEntry(a(b.currentTarget));this.settings.cssAnimation?c.removeClass("caption-visible").removeClass("caption-hidden"):c.stop().fadeTo(this.settings.captionSettings.animationDuration,this.settings.captionSettings.nonVisibleOpacity)},b.prototype.addCaptionEventsHandlers=function(b){var c=b.data("jg.captionMouseEvents");"undefined"==typeof c&&(c={mouseenter:a.proxy(this.onEntryMouseEnterForCaption,this),mouseleave:a.proxy(this.onEntryMouseLeaveForCaption,this)},b.on("mouseenter",void 0,void 0,c.mouseenter),b.on("mouseleave",void 0,void 0,c.mouseleave),b.data("jg.captionMouseEvents",c))},b.prototype.removeCaptionEventsHandlers=function(a){var b=a.data("jg.captionMouseEvents");"undefined"!=typeof b&&(a.off("mouseenter",void 0,b.mouseenter),a.off("mouseleave",void 0,b.mouseleave),a.removeData("jg.captionMouseEvents"))},b.prototype.prepareBuildingRow=function(a){var b,c,d,e,f,g=!0,h=0,i=this.galleryWidth-2*this.border-(this.buildingRow.entriesBuff.length-1)*this.settings.margins,j=i/this.buildingRow.aspectRatio,k=this.buildingRow.width/i>this.settings.justifyThreshold;if(a&&"hide"===this.settings.lastRow&&!k){for(b=0;b<this.buildingRow.entriesBuff.length;b++)c=this.buildingRow.entriesBuff[b],this.settings.cssAnimation?c.removeClass("entry-visible"):c.stop().fadeTo(0,0);return-1}for(a&&!k&&"justify"!==this.settings.lastRow&&"hide"!==this.settings.lastRow&&(g=!1),b=0;b<this.buildingRow.entriesBuff.length;b++)c=this.buildingRow.entriesBuff[b],d=c.data("jg.width")/c.data("jg.height"),g?(e=b===this.buildingRow.entriesBuff.length-1?i:j*d,f=j):(e=this.settings.rowHeight*d,f=this.settings.rowHeight),i-=Math.round(e),c.data("jg.jwidth",Math.round(e)),c.data("jg.jheight",Math.ceil(f)),(0===b||h>f)&&(h=f);return this.settings.fixedHeight&&h>this.settings.rowHeight&&(h=this.settings.rowHeight),this.buildingRow.height=h,g},b.prototype.clearBuildingRow=function(){this.buildingRow.entriesBuff=[],this.buildingRow.aspectRatio=0,this.buildingRow.width=0},b.prototype.flushRow=function(a){var b,c,d,e=this.settings,f=this.border;if(c=this.prepareBuildingRow(a),a&&"hide"===e.lastRow&&-1===this.buildingRow.height)return void this.clearBuildingRow();if(this.maxRowHeight.isPercentage?this.maxRowHeight.value*e.rowHeight<this.buildingRow.height&&(this.buildingRow.height=this.maxRowHeight.value*e.rowHeight):this.maxRowHeight.value>0&&this.maxRowHeight.value<this.buildingRow.height&&(this.buildingRow.height=this.maxRowHeight.value),"center"===e.lastRow||"right"===e.lastRow){var g=this.galleryWidth-2*this.border-(this.buildingRow.entriesBuff.length-1)*e.margins;for(d=0;d<this.buildingRow.entriesBuff.length;d++)b=this.buildingRow.entriesBuff[d],g-=b.data("jg.jwidth");"center"===e.lastRow?f+=g/2:"right"===e.lastRow&&(f+=g)}for(d=0;d<this.buildingRow.entriesBuff.length;d++)b=this.buildingRow.entriesBuff[d],this.displayEntry(b,f,this.offY,b.data("jg.jwidth"),b.data("jg.jheight"),this.buildingRow.height),f+=b.data("jg.jwidth")+e.margins;this.$gallery.height(this.offY+this.buildingRow.height+this.border+(this.isSpinnerActive()?this.getSpinnerHeight():0)),(!a||this.buildingRow.height<=e.rowHeight&&c)&&(this.offY+=this.buildingRow.height+e.margins,this.clearBuildingRow(),this.$gallery.trigger("jg.rowflush"))},b.prototype.checkWidth=function(){this.checkWidthIntervalId=setInterval(a.proxy(function(){var a=parseFloat(this.$gallery.width());Math.abs(a-this.galleryWidth)>this.settings.refreshSensitivity&&(this.galleryWidth=a,this.rewind(),this.startImgAnalyzer(!0))},this),this.settings.refreshTime)},b.prototype.isSpinnerActive=function(){return null!==this.spinner.intervalId},b.prototype.getSpinnerHeight=function(){return this.spinner.$el.innerHeight()},b.prototype.stopLoadingSpinnerAnimation=function(){clearInterval(this.spinner.intervalId),this.spinner.intervalId=null,this.$gallery.height(this.$gallery.height()-this.getSpinnerHeight()),this.spinner.$el.detach()},b.prototype.startLoadingSpinnerAnimation=function(){var a=this.spinner,b=a.$el.find("span");clearInterval(a.intervalId),this.$gallery.append(a.$el),this.$gallery.height(this.offY+this.buildingRow.height+this.getSpinnerHeight()),a.intervalId=setInterval(function(){a.phase<b.length?b.eq(a.phase).fadeTo(a.timeSlot,1):b.eq(a.phase-b.length).fadeTo(a.timeSlot,0),a.phase=(a.phase+1)%(2*b.length)},a.timeSlot)},b.prototype.rewind=function(){this.lastAnalyzedIndex=-1,this.offY=this.border,this.clearBuildingRow()},b.prototype.updateEntries=function(b){return this.entries=this.$gallery.find(this.settings.selector).toArray(),0===this.entries.length?!1:(this.settings.filter?this.modifyEntries(this.filterArray,b):this.modifyEntries(this.resetFilters,b),a.isFunction(this.settings.sort)?this.modifyEntries(this.sortArray,b):this.settings.randomize&&this.modifyEntries(this.shuffleArray,b),!0)},b.prototype.insertToGallery=function(b){var c=this;a.each(b,function(){a(this).appendTo(c.$gallery)})},b.prototype.shuffleArray=function(a){var b,c,d;for(b=a.length-1;b>0;b--)c=Math.floor(Math.random()*(b+1)),d=a[b],a[b]=a[c],a[c]=d;return this.insertToGallery(a),a},b.prototype.sortArray=function(a){return a.sort(this.settings.sort),this.insertToGallery(a),a},b.prototype.resetFilters=function(b){for(var c=0;c<b.length;c++)a(b[c]).removeClass("jg-filtered");return b},b.prototype.filterArray=function(b){var c=this.settings;return"string"===a.type(c.filter)?b.filter(function(b){var d=a(b);return d.is(c.filter)?(d.removeClass("jg-filtered"),!0):(d.addClass("jg-filtered"),!1)}):a.isFunction(c.filter)?b.filter(c.filter):void 0},b.prototype.modifyEntries=function(a,b){var c=b?this.entries.splice(this.lastAnalyzedIndex+1,this.entries.length-this.lastAnalyzedIndex-1):this.entries;c=a.call(this,c),this.entries=b?this.entries.concat(c):c},b.prototype.destroy=function(){clearInterval(this.checkWidthIntervalId),a.each(this.entries,a.proxy(function(b,c){var d=a(c);d.css("width",""),d.css("height",""),d.css("top",""),d.css("left",""),d.data("jg.loaded",void 0),d.removeClass("jg-entry");var e=this.imgFromEntry(d);e.css("width",""),e.css("height",""),e.css("margin-left",""),e.css("margin-top",""),e.attr("src",e.data("jg.originalSrc")),e.data("jg.originalSrc",void 0),this.removeCaptionEventsHandlers(d);var f=this.captionFromEntry(d);d.data("jg.createdCaption")?(d.data("jg.createdCaption",void 0),null!==f&&f.remove()):null!==f&&f.fadeTo(0,1)},this)),this.$gallery.css("height",""),this.$gallery.removeClass("justified-gallery"),this.$gallery.data("jg.controller",void 0)},b.prototype.analyzeImages=function(b){for(var c=this.lastAnalyzedIndex+1;c<this.entries.length;c++){var d=a(this.entries[c]);if(d.data("jg.loaded")===!0||"skipped"===d.data("jg.loaded")){var e=this.galleryWidth-2*this.border-(this.buildingRow.entriesBuff.length-1)*this.settings.margins,f=d.data("jg.width")/d.data("jg.height");if(e/(this.buildingRow.aspectRatio+f)<this.settings.rowHeight&&(this.flushRow(!1),++this.yield.flushed>=this.yield.every))return void this.startImgAnalyzer(b);this.buildingRow.entriesBuff.push(d),this.buildingRow.aspectRatio+=f,this.buildingRow.width+=f*this.settings.rowHeight,this.lastAnalyzedIndex=c}else if("error"!==d.data("jg.loaded"))return}this.buildingRow.entriesBuff.length>0&&this.flushRow(!0),this.isSpinnerActive()&&this.stopLoadingSpinnerAnimation(),this.stopImgAnalyzerStarter(),this.$gallery.trigger(b?"jg.resize":"jg.complete")},b.prototype.stopImgAnalyzerStarter=function(){this.yield.flushed=0,null!==this.imgAnalyzerTimeout&&clearTimeout(this.imgAnalyzerTimeout)},b.prototype.startImgAnalyzer=function(a){var b=this;this.stopImgAnalyzerStarter(),this.imgAnalyzerTimeout=setTimeout(function(){b.analyzeImages(a)},.001)},b.prototype.onImageEvent=function(b,c,d){if(c||d){var e=new Image,f=a(e);c&&f.one("load",function(){f.off("load error"),c(e)}),d&&f.one("error",function(){f.off("load error"),d(e)}),e.src=b}},b.prototype.init=function(){var b=!1,c=!1,d=this;a.each(this.entries,function(e,f){var g=a(f),h=d.imgFromEntry(g);if(g.addClass("jg-entry"),g.data("jg.loaded")!==!0&&"skipped"!==g.data("jg.loaded"))if(null!==d.settings.rel&&g.attr("rel",d.settings.rel),null!==d.settings.target&&g.attr("target",d.settings.target),null!==h){var i=d.extractImgSrcFromImage(h);if(h.attr("src",i),d.settings.waitThumbnailsLoad===!1){var j=parseFloat(h.attr("width")),k=parseFloat(h.attr("height"));if(!isNaN(j)&&!isNaN(k))return g.data("jg.width",j),g.data("jg.height",k),g.data("jg.loaded","skipped"),c=!0,d.startImgAnalyzer(!1),!0}g.data("jg.loaded",!1),b=!0,d.isSpinnerActive()||d.startLoadingSpinnerAnimation(),d.onImageEvent(i,function(a){g.data("jg.width",a.width),g.data("jg.height",a.height),g.data("jg.loaded",!0),d.startImgAnalyzer(!1)},function(){g.data("jg.loaded","error"),d.startImgAnalyzer(!1)})}else g.data("jg.loaded",!0),g.data("jg.width",g.width()|parseFloat(g.css("width"))|1),g.data("jg.height",g.height()|parseFloat(g.css("height"))|1)}),b||c||this.startImgAnalyzer(!1),this.checkWidth()},b.prototype.checkOrConvertNumber=function(b,c){if("string"===a.type(b[c])&&(b[c]=parseFloat(b[c])),"number"!==a.type(b[c]))throw c+" must be a number";if(isNaN(b[c]))throw"invalid number for "+c},b.prototype.checkSizeRangesSuffixes=function(){if("object"!==a.type(this.settings.sizeRangeSuffixes))throw"sizeRangeSuffixes must be defined and must be an object";var b=[];for(var c in this.settings.sizeRangeSuffixes)this.settings.sizeRangeSuffixes.hasOwnProperty(c)&&b.push(c);for(var d={0:""},e=0;e<b.length;e++)if("string"===a.type(b[e]))try{var f=parseInt(b[e].replace(/^[a-z]+/,""),10);d[f]=this.settings.sizeRangeSuffixes[b[e]]}catch(g){throw"sizeRangeSuffixes keys must contains correct numbers ("+g+")"}else d[b[e]]=this.settings.sizeRangeSuffixes[b[e]];this.settings.sizeRangeSuffixes=d},b.prototype.retrieveMaxRowHeight=function(){var b={};if("string"===a.type(this.settings.maxRowHeight))this.settings.maxRowHeight.match(/^[0-9]+%$/)?(b.value=parseFloat(this.settings.maxRowHeight.match(/^([0-9]+)%$/)[1])/100,b.isPercentage=!1):(b.value=parseFloat(this.settings.maxRowHeight),b.isPercentage=!0);else{if("number"!==a.type(this.settings.maxRowHeight))throw"maxRowHeight must be a number or a percentage";b.value=this.settings.maxRowHeight,b.isPercentage=!1}if(isNaN(b.value))throw"invalid number for maxRowHeight";return b.isPercentage?b.value<100&&(b.value=100):b.value>0&&b.value<this.settings.rowHeight&&(b.value=this.settings.rowHeight),b},b.prototype.checkSettings=function(){if(this.checkSizeRangesSuffixes(),this.checkOrConvertNumber(this.settings,"rowHeight"),this.checkOrConvertNumber(this.settings,"margins"),this.checkOrConvertNumber(this.settings,"border"),"justify"!==this.settings.lastRow&&"nojustify"!==this.settings.lastRow&&"left"!==this.settings.lastRow&&"center"!==this.settings.lastRow&&"right"!==this.settings.lastRow&&"hide"!==this.settings.lastRow)throw'lastRow must be "justify", "nojustify", "left", "center", "right" or "hide"';if(this.checkOrConvertNumber(this.settings,"justifyThreshold"),this.settings.justifyThreshold<0||this.settings.justifyThreshold>1)throw"justifyThreshold must be in the interval [0,1]";if("boolean"!==a.type(this.settings.cssAnimation))throw"cssAnimation must be a boolean";if("boolean"!==a.type(this.settings.captions))throw"captions must be a boolean";if(this.checkOrConvertNumber(this.settings.captionSettings,"animationDuration"),this.checkOrConvertNumber(this.settings.captionSettings,"visibleOpacity"),this.settings.captionSettings.visibleOpacity<0||this.settings.captionSettings.visibleOpacity>1)throw"captionSettings.visibleOpacity must be in the interval [0, 1]";if(this.checkOrConvertNumber(this.settings.captionSettings,"nonVisibleOpacity"),this.settings.captionSettings.nonVisibleOpacity<0||this.settings.captionSettings.nonVisibleOpacity>1)throw"captionSettings.nonVisibleOpacity must be in the interval [0, 1]";if("boolean"!==a.type(this.settings.fixedHeight))throw"fixedHeight must be a boolean";if(this.checkOrConvertNumber(this.settings,"imagesAnimationDuration"),this.checkOrConvertNumber(this.settings,"refreshTime"),this.checkOrConvertNumber(this.settings,"refreshSensitivity"),"boolean"!==a.type(this.settings.randomize))throw"randomize must be a boolean";if("string"!==a.type(this.settings.selector))throw"selector must be a string";if(this.settings.sort!==!1&&!a.isFunction(this.settings.sort))throw"sort must be false or a comparison function";if(this.settings.filter!==!1&&!a.isFunction(this.settings.filter)&&"string"!==a.type(this.settings.filter))throw"filter must be false, a string or a filter function"},b.prototype.retrieveSuffixRanges=function(){var a=[];for(var b in this.settings.sizeRangeSuffixes)this.settings.sizeRangeSuffixes.hasOwnProperty(b)&&a.push(parseInt(b,10));return a.sort(function(a,b){return a>b?1:b>a?-1:0}),a},b.prototype.updateSettings=function(b){this.settings=a.extend({},this.settings,b),this.checkSettings(),this.border=this.settings.border>=0?this.settings.border:this.settings.margins,this.maxRowHeight=this.retrieveMaxRowHeight(),this.suffixRanges=this.retrieveSuffixRanges()},a.fn.justifiedGallery=function(c){return this.each(function(d,e){var f=a(e);f.addClass("justified-gallery");var g=f.data("jg.controller");if("undefined"==typeof g){if("undefined"!=typeof c&&null!==c&&"object"!==a.type(c)){if("destroy"===c)return;throw"The argument must be an object"}g=new b(f,a.extend({},a.fn.justifiedGallery.defaults,c)),f.data("jg.controller",g)}else if("norewind"===c);else{if("destroy"===c)return void g.destroy();g.updateSettings(c),g.rewind()}g.updateEntries("norewind"===c)&&g.init()})},a.fn.justifiedGallery.defaults={sizeRangeSuffixes:{},thumbnailPath:void 0,rowHeight:120,maxRowHeight:-1,margins:1,border:-1,lastRow:"nojustify",justifyThreshold:.75,fixedHeight:!1,waitThumbnailsLoad:!0,captions:!0,cssAnimation:!1,imagesAnimationDuration:500,captionSettings:{animationDuration:500,visibleOpacity:.7,nonVisibleOpacity:0},rel:null,target:null,extension:/\.[^.\\/]+$/,refreshTime:200,refreshSensitivity:0,randomize:!1,sort:!1,filter:!1,selector:"> a, > div:not(.spinner)"}}(jQuery); \ No newline at end of file
+!function(a){function b(){return a("body").height()>a(window).height()}var c=function(b,c){this.settings=c,this.checkSettings(),this.imgAnalyzerTimeout=null,this.entries=null,this.buildingRow={entriesBuff:[],width:0,height:0,aspectRatio:0},this.lastFetchedEntry=null,this.lastAnalyzedIndex=-1,this.yield={every:2,flushed:0},this.border=c.border>=0?c.border:c.margins,this.maxRowHeight=this.retrieveMaxRowHeight(),this.suffixRanges=this.retrieveSuffixRanges(),this.offY=this.border,this.rows=0,this.spinner={phase:0,timeSlot:150,$el:a('<div class="spinner"><span></span><span></span><span></span></div>'),intervalId:null},this.checkWidthIntervalId=null,this.galleryWidth=b.width(),this.$gallery=b};c.prototype.getSuffix=function(a,b){var c,d;for(c=a>b?a:b,d=0;d<this.suffixRanges.length;d++)if(c<=this.suffixRanges[d])return this.settings.sizeRangeSuffixes[this.suffixRanges[d]];return this.settings.sizeRangeSuffixes[this.suffixRanges[d-1]]},c.prototype.removeSuffix=function(a,b){return a.substring(0,a.length-b.length)},c.prototype.endsWith=function(a,b){return-1!==a.indexOf(b,a.length-b.length)},c.prototype.getUsedSuffix=function(a){for(var b in this.settings.sizeRangeSuffixes)if(this.settings.sizeRangeSuffixes.hasOwnProperty(b)){if(0===this.settings.sizeRangeSuffixes[b].length)continue;if(this.endsWith(a,this.settings.sizeRangeSuffixes[b]))return this.settings.sizeRangeSuffixes[b]}return""},c.prototype.newSrc=function(a,b,c,d){var e;if(this.settings.thumbnailPath)e=this.settings.thumbnailPath(a,b,c,d);else{var f=a.match(this.settings.extension),g=null!==f?f[0]:"";e=a.replace(this.settings.extension,""),e=this.removeSuffix(e,this.getUsedSuffix(e)),e+=this.getSuffix(b,c)+g}return e},c.prototype.showImg=function(a,b){this.settings.cssAnimation?(a.addClass("entry-visible"),b&&b()):(a.stop().fadeTo(this.settings.imagesAnimationDuration,1,b),a.find("> img, > a > img").stop().fadeTo(this.settings.imagesAnimationDuration,1,b))},c.prototype.extractImgSrcFromImage=function(a){var b="undefined"!=typeof a.data("safe-src")?a.data("safe-src"):a.attr("src");return a.data("jg.originalSrc",b),b},c.prototype.imgFromEntry=function(a){var b=a.find("> img");return 0===b.length&&(b=a.find("> a > img")),0===b.length?null:b},c.prototype.captionFromEntry=function(a){var b=a.find("> .caption");return 0===b.length?null:b},c.prototype.displayEntry=function(b,c,d,e,f,g){b.width(e),b.height(g),b.css("top",d),b.css("left",c);var h=this.imgFromEntry(b);if(null!==h){h.css("width",e),h.css("height",f),h.css("margin-left",-e/2),h.css("margin-top",-f/2);var i=h.attr("src"),j=this.newSrc(i,e,f,h[0]);h.one("error",function(){h.attr("src",h.data("jg.originalSrc"))});var k=function(){i!==j&&h.attr("src",j)};"skipped"===b.data("jg.loaded")?this.onImageEvent(i,a.proxy(function(){this.showImg(b,k),b.data("jg.loaded",!0)},this)):this.showImg(b,k)}else this.showImg(b);this.displayEntryCaption(b)},c.prototype.displayEntryCaption=function(b){var c=this.imgFromEntry(b);if(null!==c&&this.settings.captions){var d=this.captionFromEntry(b);if(null===d){var e=c.attr("alt");this.isValidCaption(e)||(e=b.attr("title")),this.isValidCaption(e)&&(d=a('<div class="caption">'+e+"</div>"),b.append(d),b.data("jg.createdCaption",!0))}null!==d&&(this.settings.cssAnimation||d.stop().fadeTo(0,this.settings.captionSettings.nonVisibleOpacity),this.addCaptionEventsHandlers(b))}else this.removeCaptionEventsHandlers(b)},c.prototype.isValidCaption=function(a){return"undefined"!=typeof a&&a.length>0},c.prototype.onEntryMouseEnterForCaption=function(b){var c=this.captionFromEntry(a(b.currentTarget));this.settings.cssAnimation?c.addClass("caption-visible").removeClass("caption-hidden"):c.stop().fadeTo(this.settings.captionSettings.animationDuration,this.settings.captionSettings.visibleOpacity)},c.prototype.onEntryMouseLeaveForCaption=function(b){var c=this.captionFromEntry(a(b.currentTarget));this.settings.cssAnimation?c.removeClass("caption-visible").removeClass("caption-hidden"):c.stop().fadeTo(this.settings.captionSettings.animationDuration,this.settings.captionSettings.nonVisibleOpacity)},c.prototype.addCaptionEventsHandlers=function(b){var c=b.data("jg.captionMouseEvents");"undefined"==typeof c&&(c={mouseenter:a.proxy(this.onEntryMouseEnterForCaption,this),mouseleave:a.proxy(this.onEntryMouseLeaveForCaption,this)},b.on("mouseenter",void 0,void 0,c.mouseenter),b.on("mouseleave",void 0,void 0,c.mouseleave),b.data("jg.captionMouseEvents",c))},c.prototype.removeCaptionEventsHandlers=function(a){var b=a.data("jg.captionMouseEvents");"undefined"!=typeof b&&(a.off("mouseenter",void 0,b.mouseenter),a.off("mouseleave",void 0,b.mouseleave),a.removeData("jg.captionMouseEvents"))},c.prototype.prepareBuildingRow=function(a){var b,c,d,e,f,g=!0,h=0,i=this.galleryWidth-2*this.border-(this.buildingRow.entriesBuff.length-1)*this.settings.margins,j=i/this.buildingRow.aspectRatio,k=this.settings.rowHeight,l=this.buildingRow.width/i>this.settings.justifyThreshold;if(a&&"hide"===this.settings.lastRow&&!l){for(b=0;b<this.buildingRow.entriesBuff.length;b++)c=this.buildingRow.entriesBuff[b],this.settings.cssAnimation?c.removeClass("entry-visible"):(c.stop().fadeTo(0,.1),c.find("> img, > a > img").fadeTo(0,0));return-1}for(a&&!l&&"justify"!==this.settings.lastRow&&"hide"!==this.settings.lastRow&&(g=!1,this.rows>0&&(k=(this.offY-this.border-this.settings.margins*this.rows)/this.rows,g=k*this.buildingRow.aspectRatio/i>this.settings.justifyThreshold)),b=0;b<this.buildingRow.entriesBuff.length;b++)c=this.buildingRow.entriesBuff[b],d=c.data("jg.width")/c.data("jg.height"),g?(e=b===this.buildingRow.entriesBuff.length-1?i:j*d,f=j):(e=k*d,f=k),i-=Math.round(e),c.data("jg.jwidth",Math.round(e)),c.data("jg.jheight",Math.ceil(f)),(0===b||h>f)&&(h=f);return this.buildingRow.height=h,g},c.prototype.clearBuildingRow=function(){this.buildingRow.entriesBuff=[],this.buildingRow.aspectRatio=0,this.buildingRow.width=0},c.prototype.flushRow=function(a){var b,c,d,e=this.settings,f=this.border;if(c=this.prepareBuildingRow(a),a&&"hide"===e.lastRow&&-1===c)return void this.clearBuildingRow();if(this.maxRowHeight&&(this.maxRowHeight.isPercentage&&this.maxRowHeight.value*e.rowHeight<this.buildingRow.height?this.buildingRow.height=this.maxRowHeight.value*e.rowHeight:this.maxRowHeight.value>=e.rowHeight&&this.maxRowHeight.value<this.buildingRow.height&&(this.buildingRow.height=this.maxRowHeight.value)),"center"===e.lastRow||"right"===e.lastRow){var g=this.galleryWidth-2*this.border-(this.buildingRow.entriesBuff.length-1)*e.margins;for(d=0;d<this.buildingRow.entriesBuff.length;d++)b=this.buildingRow.entriesBuff[d],g-=b.data("jg.jwidth");"center"===e.lastRow?f+=g/2:"right"===e.lastRow&&(f+=g)}for(d=0;d<this.buildingRow.entriesBuff.length;d++)b=this.buildingRow.entriesBuff[d],this.displayEntry(b,f,this.offY,b.data("jg.jwidth"),b.data("jg.jheight"),this.buildingRow.height),f+=b.data("jg.jwidth")+e.margins;this.galleryHeightToSet=this.offY+this.buildingRow.height+this.border,this.$gallery.height(this.galleryHeightToSet+this.getSpinnerHeight()),(!a||this.buildingRow.height<=e.rowHeight&&c)&&(this.offY+=this.buildingRow.height+e.margins,this.rows+=1,this.clearBuildingRow(),this.$gallery.trigger("jg.rowflush"))};var d=!1;c.prototype.checkWidth=function(){this.checkWidthIntervalId=setInterval(a.proxy(function(){var a=parseFloat(this.$gallery.width());b()===d?Math.abs(a-this.galleryWidth)>this.settings.refreshSensitivity&&(this.galleryWidth=a,this.rewind(),this.startImgAnalyzer(!0)):(d=b(),this.galleryWidth=a)},this),this.settings.refreshTime)},c.prototype.isSpinnerActive=function(){return null!==this.spinner.intervalId},c.prototype.getSpinnerHeight=function(){return this.spinner.$el.innerHeight()},c.prototype.stopLoadingSpinnerAnimation=function(){clearInterval(this.spinner.intervalId),this.spinner.intervalId=null,this.$gallery.height(this.$gallery.height()-this.getSpinnerHeight()),this.spinner.$el.detach()},c.prototype.startLoadingSpinnerAnimation=function(){var a=this.spinner,b=a.$el.find("span");clearInterval(a.intervalId),this.$gallery.append(a.$el),this.$gallery.height(this.offY+this.buildingRow.height+this.getSpinnerHeight()),a.intervalId=setInterval(function(){a.phase<b.length?b.eq(a.phase).fadeTo(a.timeSlot,1):b.eq(a.phase-b.length).fadeTo(a.timeSlot,0),a.phase=(a.phase+1)%(2*b.length)},a.timeSlot)},c.prototype.rewind=function(){this.lastFetchedEntry=null,this.lastAnalyzedIndex=-1,this.offY=this.border,this.rows=0,this.clearBuildingRow()},c.prototype.updateEntries=function(b){var c;return b&&null!=this.lastFetchedEntry?c=a(this.lastFetchedEntry).nextAll(this.settings.selector).toArray():(this.entries=[],c=this.$gallery.children(this.settings.selector).toArray()),c.length>0&&(a.isFunction(this.settings.sort)?c=this.sortArray(c):this.settings.randomize&&(c=this.shuffleArray(c)),this.lastFetchedEntry=c[c.length-1],this.settings.filter?c=this.filterArray(c):this.resetFilters(c)),this.entries=this.entries.concat(c),!0},c.prototype.insertToGallery=function(b){var c=this;a.each(b,function(){a(this).appendTo(c.$gallery)})},c.prototype.shuffleArray=function(a){var b,c,d;for(b=a.length-1;b>0;b--)c=Math.floor(Math.random()*(b+1)),d=a[b],a[b]=a[c],a[c]=d;return this.insertToGallery(a),a},c.prototype.sortArray=function(a){return a.sort(this.settings.sort),this.insertToGallery(a),a},c.prototype.resetFilters=function(b){for(var c=0;c<b.length;c++)a(b[c]).removeClass("jg-filtered")},c.prototype.filterArray=function(b){var c=this.settings;if("string"===a.type(c.filter))return b.filter(function(b){var d=a(b);return d.is(c.filter)?(d.removeClass("jg-filtered"),!0):(d.addClass("jg-filtered").removeClass("jg-visible"),!1)});if(a.isFunction(c.filter)){for(var d=b.filter(c.filter),e=0;e<b.length;e++)-1==d.indexOf(b[e])?a(b[e]).addClass("jg-filtered").removeClass("jg-visible"):a(b[e]).removeClass("jg-filtered");return d}},c.prototype.destroy=function(){clearInterval(this.checkWidthIntervalId),a.each(this.entries,a.proxy(function(b,c){var d=a(c);d.css("width",""),d.css("height",""),d.css("top",""),d.css("left",""),d.data("jg.loaded",void 0),d.removeClass("jg-entry");var e=this.imgFromEntry(d);e.css("width",""),e.css("height",""),e.css("margin-left",""),e.css("margin-top",""),e.attr("src",e.data("jg.originalSrc")),e.data("jg.originalSrc",void 0),this.removeCaptionEventsHandlers(d);var f=this.captionFromEntry(d);d.data("jg.createdCaption")?(d.data("jg.createdCaption",void 0),null!==f&&f.remove()):null!==f&&f.fadeTo(0,1)},this)),this.$gallery.css("height",""),this.$gallery.removeClass("justified-gallery"),this.$gallery.data("jg.controller",void 0)},c.prototype.analyzeImages=function(b){for(var c=this.lastAnalyzedIndex+1;c<this.entries.length;c++){var d=a(this.entries[c]);if(d.data("jg.loaded")===!0||"skipped"===d.data("jg.loaded")){var e=this.galleryWidth-2*this.border-(this.buildingRow.entriesBuff.length-1)*this.settings.margins,f=d.data("jg.width")/d.data("jg.height");if(e/(this.buildingRow.aspectRatio+f)<this.settings.rowHeight&&(this.flushRow(!1),++this.yield.flushed>=this.yield.every))return void this.startImgAnalyzer(b);this.buildingRow.entriesBuff.push(d),this.buildingRow.aspectRatio+=f,this.buildingRow.width+=f*this.settings.rowHeight,this.lastAnalyzedIndex=c}else if("error"!==d.data("jg.loaded"))return}this.buildingRow.entriesBuff.length>0&&this.flushRow(!0),this.isSpinnerActive()&&this.stopLoadingSpinnerAnimation(),this.stopImgAnalyzerStarter(),this.$gallery.trigger(b?"jg.resize":"jg.complete"),this.$gallery.height(this.galleryHeightToSet)},c.prototype.stopImgAnalyzerStarter=function(){this.yield.flushed=0,null!==this.imgAnalyzerTimeout&&clearTimeout(this.imgAnalyzerTimeout)},c.prototype.startImgAnalyzer=function(a){var b=this;this.stopImgAnalyzerStarter(),this.imgAnalyzerTimeout=setTimeout(function(){b.analyzeImages(a)},.001)},c.prototype.onImageEvent=function(b,c,d){if(c||d){var e=new Image,f=a(e);c&&f.one("load",function(){f.off("load error"),c(e)}),d&&f.one("error",function(){f.off("load error"),d(e)}),e.src=b}},c.prototype.init=function(){var b=!1,c=!1,d=this;a.each(this.entries,function(e,f){var g=a(f),h=d.imgFromEntry(g);if(g.addClass("jg-entry"),g.data("jg.loaded")!==!0&&"skipped"!==g.data("jg.loaded"))if(null!==d.settings.rel&&g.attr("rel",d.settings.rel),null!==d.settings.target&&g.attr("target",d.settings.target),null!==h){var i=d.extractImgSrcFromImage(h);if(h.attr("src",i),d.settings.waitThumbnailsLoad===!1){var j=parseFloat(h.attr("width")),k=parseFloat(h.attr("height"));if(!isNaN(j)&&!isNaN(k))return g.data("jg.width",j),g.data("jg.height",k),g.data("jg.loaded","skipped"),c=!0,d.startImgAnalyzer(!1),!0}g.data("jg.loaded",!1),b=!0,d.isSpinnerActive()||d.startLoadingSpinnerAnimation(),d.onImageEvent(i,function(a){g.data("jg.width",a.width),g.data("jg.height",a.height),g.data("jg.loaded",!0),d.startImgAnalyzer(!1)},function(){g.data("jg.loaded","error"),d.startImgAnalyzer(!1)})}else g.data("jg.loaded",!0),g.data("jg.width",g.width()|parseFloat(g.css("width"))|1),g.data("jg.height",g.height()|parseFloat(g.css("height"))|1)}),b||c||this.startImgAnalyzer(!1),this.checkWidth()},c.prototype.checkOrConvertNumber=function(b,c){if("string"===a.type(b[c])&&(b[c]=parseFloat(b[c])),"number"!==a.type(b[c]))throw c+" must be a number";if(isNaN(b[c]))throw"invalid number for "+c},c.prototype.checkSizeRangesSuffixes=function(){if("object"!==a.type(this.settings.sizeRangeSuffixes))throw"sizeRangeSuffixes must be defined and must be an object";var b=[];for(var c in this.settings.sizeRangeSuffixes)this.settings.sizeRangeSuffixes.hasOwnProperty(c)&&b.push(c);for(var d={0:""},e=0;e<b.length;e++)if("string"===a.type(b[e]))try{var f=parseInt(b[e].replace(/^[a-z]+/,""),10);d[f]=this.settings.sizeRangeSuffixes[b[e]]}catch(g){throw"sizeRangeSuffixes keys must contains correct numbers ("+g+")"}else d[b[e]]=this.settings.sizeRangeSuffixes[b[e]];this.settings.sizeRangeSuffixes=d},c.prototype.retrieveMaxRowHeight=function(){var b={};if("string"===a.type(this.settings.maxRowHeight))this.settings.maxRowHeight.match(/^[0-9]+%$/)?(b.value=parseFloat(this.settings.maxRowHeight.match(/^([0-9]+)%$/)[1])/100,b.isPercentage=!1):(b.value=parseFloat(this.settings.maxRowHeight),b.isPercentage=!0);else{if("number"!==a.type(this.settings.maxRowHeight)){if(this.settings.maxRowHeight===!1||null===this.settings.maxRowHeight||"undefined"==typeof this.settings.maxRowHeight)return null;throw"maxRowHeight must be a number or a percentage"}b.value=this.settings.maxRowHeight,b.isPercentage=!1}if(isNaN(b.value))throw"invalid number for maxRowHeight";return b.isPercentage&&b.value<100&&(b.value=100),b},c.prototype.checkSettings=function(){this.checkSizeRangesSuffixes(),this.checkOrConvertNumber(this.settings,"rowHeight"),this.checkOrConvertNumber(this.settings,"margins"),this.checkOrConvertNumber(this.settings,"border");var b=["justify","nojustify","left","center","right","hide"];if(-1===b.indexOf(this.settings.lastRow))throw"lastRow must be one of: "+b.join(", ");if(this.checkOrConvertNumber(this.settings,"justifyThreshold"),this.settings.justifyThreshold<0||this.settings.justifyThreshold>1)throw"justifyThreshold must be in the interval [0,1]";if("boolean"!==a.type(this.settings.cssAnimation))throw"cssAnimation must be a boolean";if("boolean"!==a.type(this.settings.captions))throw"captions must be a boolean";if(this.checkOrConvertNumber(this.settings.captionSettings,"animationDuration"),this.checkOrConvertNumber(this.settings.captionSettings,"visibleOpacity"),this.settings.captionSettings.visibleOpacity<0||this.settings.captionSettings.visibleOpacity>1)throw"captionSettings.visibleOpacity must be in the interval [0, 1]";if(this.checkOrConvertNumber(this.settings.captionSettings,"nonVisibleOpacity"),this.settings.captionSettings.nonVisibleOpacity<0||this.settings.captionSettings.nonVisibleOpacity>1)throw"captionSettings.nonVisibleOpacity must be in the interval [0, 1]";if(this.checkOrConvertNumber(this.settings,"imagesAnimationDuration"),this.checkOrConvertNumber(this.settings,"refreshTime"),this.checkOrConvertNumber(this.settings,"refreshSensitivity"),"boolean"!==a.type(this.settings.randomize))throw"randomize must be a boolean";if("string"!==a.type(this.settings.selector))throw"selector must be a string";if(this.settings.sort!==!1&&!a.isFunction(this.settings.sort))throw"sort must be false or a comparison function";if(this.settings.filter!==!1&&!a.isFunction(this.settings.filter)&&"string"!==a.type(this.settings.filter))throw"filter must be false, a string or a filter function"},c.prototype.retrieveSuffixRanges=function(){var a=[];for(var b in this.settings.sizeRangeSuffixes)this.settings.sizeRangeSuffixes.hasOwnProperty(b)&&a.push(parseInt(b,10));return a.sort(function(a,b){return a>b?1:b>a?-1:0}),a},c.prototype.updateSettings=function(b){this.settings=a.extend({},this.settings,b),this.checkSettings(),this.border=this.settings.border>=0?this.settings.border:this.settings.margins,this.maxRowHeight=this.retrieveMaxRowHeight(),this.suffixRanges=this.retrieveSuffixRanges()},a.fn.justifiedGallery=function(b){return this.each(function(d,e){var f=a(e);f.addClass("justified-gallery");var g=f.data("jg.controller");if("undefined"==typeof g){if("undefined"!=typeof b&&null!==b&&"object"!==a.type(b)){if("destroy"===b)return;throw"The argument must be an object"}g=new c(f,a.extend({},a.fn.justifiedGallery.defaults,b)),f.data("jg.controller",g)}else if("norewind"===b);else{if("destroy"===b)return void g.destroy();g.updateSettings(b),g.rewind()}g.updateEntries("norewind"===b)&&g.init()})},a.fn.justifiedGallery.defaults={sizeRangeSuffixes:{},thumbnailPath:void 0,rowHeight:120,maxRowHeight:!1,margins:1,border:-1,lastRow:"nojustify",justifyThreshold:.9,waitThumbnailsLoad:!0,captions:!0,cssAnimation:!0,imagesAnimationDuration:500,captionSettings:{animationDuration:500,visibleOpacity:.7,nonVisibleOpacity:0},rel:null,target:null,extension:/\.[^.\\/]+$/,refreshTime:200,refreshSensitivity:0,randomize:!1,sort:!1,filter:!1,selector:"a, div:not(.spinner)"}}(jQuery); \ No newline at end of file
diff --git a/library/justifiedGallery/justifiedGallery.css b/library/justifiedGallery/justifiedGallery.css
index 99be92ff2..00c84fda0 100644
--- a/library/justifiedGallery/justifiedGallery.css
+++ b/library/justifiedGallery/justifiedGallery.css
@@ -1,73 +1,9 @@
/*!
- * Justified Gallery - v3.6.1
+ * Justified Gallery - v3.6.3
* http://miromannino.github.io/Justified-Gallery/
- * Copyright (c) 2015 Miro Mannino
+ * Copyright (c) 2016 Miro Mannino
* Licensed under the MIT license.
*/
-@-webkit-keyframes justified-gallery-show-caption-animation {
- from {
- opacity: 0;
- }
- to {
- opacity: 0.7;
- }
-}
-@-moz-keyframes justified-gallery-show-caption-animation {
- from {
- opacity: 0;
- }
- to {
- opacity: 0.7;
- }
-}
-@-o-keyframes justified-gallery-show-caption-animation {
- from {
- opacity: 0;
- }
- to {
- opacity: 0.7;
- }
-}
-@keyframes justified-gallery-show-caption-animation {
- from {
- opacity: 0;
- }
- to {
- opacity: 0.7;
- }
-}
-@-webkit-keyframes justified-gallery-show-entry-animation {
- from {
- opacity: 0;
- }
- to {
- opacity: 1.0;
- }
-}
-@-moz-keyframes justified-gallery-show-entry-animation {
- from {
- opacity: 0;
- }
- to {
- opacity: 1.0;
- }
-}
-@-o-keyframes justified-gallery-show-entry-animation {
- from {
- opacity: 0;
- }
- to {
- opacity: 1.0;
- }
-}
-@keyframes justified-gallery-show-entry-animation {
- from {
- opacity: 0;
- }
- to {
- opacity: 1.0;
- }
-}
.justified-gallery {
width: 100%;
position: relative;
@@ -78,9 +14,9 @@
position: absolute;
display: inline-block;
overflow: hidden;
- opacity: 0;
- filter: alpha(opacity=0);
- /* IE8 or Earlier */
+ /* background: #888888; To have gray placeholders while the gallery is loading with waitThumbnailsLoad = false */
+ filter: "alpha(opacity=10)";
+ opacity: 0.1;
}
.justified-gallery > a > img,
.justified-gallery > div > img,
@@ -92,6 +28,8 @@
margin: 0;
padding: 0;
border: none;
+ filter: "alpha(opacity=0)";
+ opacity: 0;
}
.justified-gallery > a > .caption,
.justified-gallery > div > .caption {
@@ -111,20 +49,26 @@
.justified-gallery > a > .caption.caption-visible,
.justified-gallery > div > .caption.caption-visible {
display: initial;
- opacity: 0.7;
filter: "alpha(opacity=70)";
- /* IE8 or Earlier */
- -webkit-animation: justified-gallery-show-caption-animation 500ms 0 ease;
- -moz-animation: justified-gallery-show-caption-animation 500ms 0 ease;
- -ms-animation: justified-gallery-show-caption-animation 500ms 0 ease;
+ opacity: 0.7;
+ -webkit-transition: opacity 500ms ease-in;
+ -moz-transition: opacity 500ms ease-in;
+ -o-transition: opacity 500ms ease-in;
+ transition: opacity 500ms ease-in;
}
.justified-gallery > .entry-visible {
- opacity: 1.0;
- filter: alpha(opacity=100);
- /* IE8 or Earlier */
- -webkit-animation: justified-gallery-show-entry-animation 500ms 0 ease;
- -moz-animation: justified-gallery-show-entry-animation 500ms 0 ease;
- -ms-animation: justified-gallery-show-entry-animation 500ms 0 ease;
+ filter: "alpha(opacity=100)";
+ opacity: 1;
+ background: none;
+}
+.justified-gallery > .entry-visible > img,
+.justified-gallery > .entry-visible > a > img {
+ filter: "alpha(opacity=100)";
+ opacity: 1;
+ -webkit-transition: opacity 500ms ease-in;
+ -moz-transition: opacity 500ms ease-in;
+ -o-transition: opacity 500ms ease-in;
+ transition: opacity 500ms ease-in;
}
.justified-gallery > .jg-filtered {
display: none;
@@ -135,21 +79,17 @@
margin-left: -24px;
padding: 10px 0 10px 0;
left: 50%;
- opacity: initial;
- filter: initial;
+ filter: "alpha(opacity=100)";
+ opacity: 1;
overflow: initial;
}
.justified-gallery > .spinner > span {
display: inline-block;
+ filter: "alpha(opacity=0)";
opacity: 0;
- filter: alpha(opacity=0);
- /* IE8 or Earlier */
width: 8px;
height: 8px;
margin: 0 4px 0 4px;
background-color: #000;
- border-top-left-radius: 6px;
- border-top-right-radius: 6px;
- border-bottom-right-radius: 6px;
- border-bottom-left-radius: 6px;
+ border-radius: 6px;
}
diff --git a/library/justifiedGallery/justifiedGallery.min.css b/library/justifiedGallery/justifiedGallery.min.css
index 09ae4e1f0..78ca2f8d4 100644
--- a/library/justifiedGallery/justifiedGallery.min.css
+++ b/library/justifiedGallery/justifiedGallery.min.css
@@ -1,7 +1,7 @@
/*!
- * Justified Gallery - v3.6.1
+ * Justified Gallery - v3.6.3
* http://miromannino.github.io/Justified-Gallery/
- * Copyright (c) 2015 Miro Mannino
+ * Copyright (c) 2016 Miro Mannino
* Licensed under the MIT license.
*/
-@-webkit-keyframes justified-gallery-show-caption-animation{from{opacity:0}to{opacity:.7}}@-moz-keyframes justified-gallery-show-caption-animation{from{opacity:0}to{opacity:.7}}@-o-keyframes justified-gallery-show-caption-animation{from{opacity:0}to{opacity:.7}}@keyframes justified-gallery-show-caption-animation{from{opacity:0}to{opacity:.7}}@-webkit-keyframes justified-gallery-show-entry-animation{from{opacity:0}to{opacity:1}}@-moz-keyframes justified-gallery-show-entry-animation{from{opacity:0}to{opacity:1}}@-o-keyframes justified-gallery-show-entry-animation{from{opacity:0}to{opacity:1}}@keyframes justified-gallery-show-entry-animation{from{opacity:0}to{opacity:1}}.justified-gallery{width:100%;position:relative;overflow:hidden}.justified-gallery>a,.justified-gallery>div{position:absolute;display:inline-block;overflow:hidden;opacity:0;filter:alpha(opacity=0)}.justified-gallery>a>img,.justified-gallery>div>img,.justified-gallery>a>a>img,.justified-gallery>div>a>img{position:absolute;top:50%;left:50%;margin:0;padding:0;border:0}.justified-gallery>a>.caption,.justified-gallery>div>.caption{display:none;position:absolute;bottom:0;padding:5px;background-color:#000;left:0;right:0;margin:0;color:#fff;font-size:12px;font-weight:300;font-family:sans-serif}.justified-gallery>a>.caption.caption-visible,.justified-gallery>div>.caption.caption-visible{display:initial;opacity:.7;filter:"alpha(opacity=70)";-webkit-animation:justified-gallery-show-caption-animation 500ms 0 ease;-moz-animation:justified-gallery-show-caption-animation 500ms 0 ease;-ms-animation:justified-gallery-show-caption-animation 500ms 0 ease}.justified-gallery>.entry-visible{opacity:1;filter:alpha(opacity=100);-webkit-animation:justified-gallery-show-entry-animation 500ms 0 ease;-moz-animation:justified-gallery-show-entry-animation 500ms 0 ease;-ms-animation:justified-gallery-show-entry-animation 500ms 0 ease}.justified-gallery>.jg-filtered{display:none}.justified-gallery>.spinner{position:absolute;bottom:0;margin-left:-24px;padding:10px 0;left:50%;opacity:initial;filter:initial;overflow:initial}.justified-gallery>.spinner>span{display:inline-block;opacity:0;filter:alpha(opacity=0);width:8px;height:8px;margin:0 4px;background-color:#000;border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-right-radius:6px;border-bottom-left-radius:6px} \ No newline at end of file
+.justified-gallery{width:100%;position:relative;overflow:hidden}.justified-gallery>a,.justified-gallery>div{position:absolute;display:inline-block;overflow:hidden;filter:"alpha(opacity=10)";opacity:.1}.justified-gallery>a>img,.justified-gallery>div>img,.justified-gallery>a>a>img,.justified-gallery>div>a>img{position:absolute;top:50%;left:50%;margin:0;padding:0;border:0;filter:"alpha(opacity=0)";opacity:0}.justified-gallery>a>.caption,.justified-gallery>div>.caption{display:none;position:absolute;bottom:0;padding:5px;background-color:#000;left:0;right:0;margin:0;color:#fff;font-size:12px;font-weight:300;font-family:sans-serif}.justified-gallery>a>.caption.caption-visible,.justified-gallery>div>.caption.caption-visible{display:initial;filter:"alpha(opacity=70)";opacity:.7;-webkit-transition:opacity 500ms ease-in;-moz-transition:opacity 500ms ease-in;-o-transition:opacity 500ms ease-in;transition:opacity 500ms ease-in}.justified-gallery>.entry-visible{filter:"alpha(opacity=100)";opacity:1;background:0 0}.justified-gallery>.entry-visible>img,.justified-gallery>.entry-visible>a>img{filter:"alpha(opacity=100)";opacity:1;-webkit-transition:opacity 500ms ease-in;-moz-transition:opacity 500ms ease-in;-o-transition:opacity 500ms ease-in;transition:opacity 500ms ease-in}.justified-gallery>.jg-filtered{display:none}.justified-gallery>.spinner{position:absolute;bottom:0;margin-left:-24px;padding:10px 0;left:50%;filter:"alpha(opacity=100)";opacity:1;overflow:initial}.justified-gallery>.spinner>span{display:inline-block;filter:"alpha(opacity=0)";opacity:0;width:8px;height:8px;margin:0 4px;background-color:#000;border-radius:6px} \ No newline at end of file
diff --git a/util/add_addon_repo b/util/add_addon_repo
index a8dd9f49a..de19bebfe 100755
--- a/util/add_addon_repo
+++ b/util/add_addon_repo
@@ -5,16 +5,16 @@ if [ $# -lt 2 ]; then
exit 1
fi
-if [[ $1 != *"//github.com/redmatrix"* && $3 != 'insecure' ]]; then
- echo "";
- echo "This is NOT an official project repository.";
- echo "In order to protect you from unverified and";
- echo "possibly malicious content, this repository";
- echo "will not be linked to your site unless you";
- echo "append the word 'insecure' to the command.";
- echo "";
- exit 1
-fi
+#if [[ $1 != *"//github.com/redmatrix"* && $3 != 'insecure' ]]; then
+# echo "";
+# echo "This is NOT an official project repository.";
+# echo "In order to protect you from unverified and";
+# echo "possibly malicious content, this repository";
+# echo "will not be linked to your site unless you";
+# echo "append the word 'insecure' to the command.";
+# echo "";
+# exit 1
+#fi
mkdir -p extend/addon/$2
mkdir addon > /dev/null 2>&1
diff --git a/util/add_theme_repo b/util/add_theme_repo
index 8280c447b..1f8e7c1dd 100755
--- a/util/add_theme_repo
+++ b/util/add_theme_repo
@@ -5,16 +5,16 @@ if [ $# -lt 2 ]; then
exit 1
fi
-if [[ $1 != *"//github.com/redmatrix"* && $3 != 'insecure' ]]; then
- echo "";
- echo "This is NOT an official project repository.";
- echo "In order to protect you from unverified and";
- echo "possibly malicious content, this repository";
- echo "will not be linked to your site unless you";
- echo "append the word 'insecure' to the command.";
- echo "";
- exit 1
-fi
+#if [[ $1 != *"//github.com/redmatrix"* && $3 != 'insecure' ]]; then
+# echo "";
+# echo "This is NOT an official project repository.";
+# echo "In order to protect you from unverified and";
+# echo "possibly malicious content, this repository";
+# echo "will not be linked to your site unless you";
+# echo "append the word 'insecure' to the command.";
+# echo "";
+# exit 1
+#fi
mkdir -p extend/theme/$2
git clone $1 extend/theme/$2
diff --git a/util/add_widget_repo b/util/add_widget_repo
index e7e316ba4..cb3112626 100755
--- a/util/add_widget_repo
+++ b/util/add_widget_repo
@@ -5,16 +5,16 @@ if [ $# -lt 2 ]; then
exit 1
fi
-if [[ $1 != *"//github.com/redmatrix"* && $3 != 'insecure' ]]; then
- echo "";
- echo "This is NOT an official project repository.";
- echo "In order to protect you from unverified and";
- echo "possibly malicious content, this repository";
- echo "will not be linked to your site unless you";
- echo "append the word 'insecure' to the command.";
- echo "";
- exit 1
-fi
+#if [[ $1 != *"//github.com/redmatrix"* && $3 != 'insecure' ]]; then
+# echo "";
+# echo "This is NOT an official project repository.";
+# echo "In order to protect you from unverified and";
+# echo "possibly malicious content, this repository";
+# echo "will not be linked to your site unless you";
+# echo "append the word 'insecure' to the command.";
+# echo "";
+# exit 1
+#fi
mkdir -p extend/widget/$2
mkdir widget > /dev/null 2>&1
diff --git a/util/config b/util/config
index d4bcd5da1..38d2fed4f 100755
--- a/util/config
+++ b/util/config
@@ -48,7 +48,11 @@ EndOfOutput;
return;
}
-
+if($argc > 1 && strpos($argv[1],'.')) {
+ $x = explode('.',$argv[1]);
+ $argv = [ $argv[0], $x[0], $x[1], (($argc > 2) ? $argv[2] : null) ];
+ $argc = $argc + 1;
+}
if($argc > 3) {
set_config($argv[1],$argv[2],$argv[3]);
diff --git a/util/hmessages.po b/util/hmessages.po
index 99a478c2e..ffd91669f 100644
--- a/util/hmessages.po
+++ b/util/hmessages.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-12 00:02-0700\n"
+"POT-Creation-Date: 2016-09-17 14:51-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,83 +18,87 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#: ../../Zotlabs/Access/PermissionRoles.php:182
-#: ../../include/permissions.php:939
+#: ../../include/permissions.php:945
msgid "Social Networking"
msgstr ""
#: ../../Zotlabs/Access/PermissionRoles.php:183
-#: ../../include/permissions.php:939
+#: ../../include/permissions.php:945
msgid "Social - Mostly Public"
msgstr ""
#: ../../Zotlabs/Access/PermissionRoles.php:184
-#: ../../include/permissions.php:939
+#: ../../include/permissions.php:945
msgid "Social - Restricted"
msgstr ""
#: ../../Zotlabs/Access/PermissionRoles.php:185
-#: ../../include/permissions.php:939
+#: ../../include/permissions.php:945
msgid "Social - Private"
msgstr ""
#: ../../Zotlabs/Access/PermissionRoles.php:188
-#: ../../include/permissions.php:940
+#: ../../include/permissions.php:946
msgid "Community Forum"
msgstr ""
#: ../../Zotlabs/Access/PermissionRoles.php:189
-#: ../../include/permissions.php:940
+#: ../../include/permissions.php:946
msgid "Forum - Mostly Public"
msgstr ""
#: ../../Zotlabs/Access/PermissionRoles.php:190
-#: ../../include/permissions.php:940
+#: ../../include/permissions.php:946
msgid "Forum - Restricted"
msgstr ""
#: ../../Zotlabs/Access/PermissionRoles.php:191
-#: ../../include/permissions.php:940
+#: ../../include/permissions.php:946
msgid "Forum - Private"
msgstr ""
#: ../../Zotlabs/Access/PermissionRoles.php:194
-#: ../../include/permissions.php:941
+#: ../../include/permissions.php:947
msgid "Feed Republish"
msgstr ""
#: ../../Zotlabs/Access/PermissionRoles.php:195
-#: ../../include/permissions.php:941
+#: ../../include/permissions.php:947
msgid "Feed - Mostly Public"
msgstr ""
#: ../../Zotlabs/Access/PermissionRoles.php:196
-#: ../../include/permissions.php:941
+#: ../../include/permissions.php:947
msgid "Feed - Restricted"
msgstr ""
#: ../../Zotlabs/Access/PermissionRoles.php:199
-#: ../../include/permissions.php:942
+#: ../../include/permissions.php:948
msgid "Special Purpose"
msgstr ""
#: ../../Zotlabs/Access/PermissionRoles.php:200
-#: ../../include/permissions.php:942
+#: ../../include/permissions.php:948
msgid "Special - Celebrity/Soapbox"
msgstr ""
#: ../../Zotlabs/Access/PermissionRoles.php:201
-#: ../../include/permissions.php:942
+#: ../../include/permissions.php:948
msgid "Special - Group Repository"
msgstr ""
-#: ../../Zotlabs/Access/PermissionRoles.php:204 ../../include/selectors.php:49
+#: ../../Zotlabs/Access/PermissionRoles.php:204
+#: ../../Zotlabs/Module/Register.php:213
+#: ../../Zotlabs/Module/New_channel.php:132
+#: ../../Zotlabs/Module/Settings/Channel.php:442
+#: ../../include/permissions.php:949 ../../include/selectors.php:49
#: ../../include/selectors.php:66 ../../include/selectors.php:104
-#: ../../include/selectors.php:140 ../../include/permissions.php:943
+#: ../../include/selectors.php:140
msgid "Other"
msgstr ""
#: ../../Zotlabs/Access/PermissionRoles.php:205
-#: ../../include/permissions.php:943
+#: ../../include/permissions.php:949
msgid "Custom/Expert Mode"
msgstr ""
@@ -102,19 +106,19 @@ msgstr ""
msgid "Can view my channel stream and posts"
msgstr ""
-#: ../../Zotlabs/Access/Permissions.php:31 ../../include/permissions.php:36
+#: ../../Zotlabs/Access/Permissions.php:31 ../../include/permissions.php:42
msgid "Can send me their channel stream and posts"
msgstr ""
-#: ../../Zotlabs/Access/Permissions.php:32 ../../include/permissions.php:30
+#: ../../Zotlabs/Access/Permissions.php:32 ../../include/permissions.php:36
msgid "Can view my default channel profile"
msgstr ""
-#: ../../Zotlabs/Access/Permissions.php:33 ../../include/permissions.php:31
+#: ../../Zotlabs/Access/Permissions.php:33 ../../include/permissions.php:37
msgid "Can view my connections"
msgstr ""
-#: ../../Zotlabs/Access/Permissions.php:34 ../../include/permissions.php:32
+#: ../../Zotlabs/Access/Permissions.php:34 ../../include/permissions.php:38
msgid "Can view my file storage and photos"
msgstr ""
@@ -134,11 +138,11 @@ msgstr ""
msgid "Can post on my channel (wall) page"
msgstr ""
-#: ../../Zotlabs/Access/Permissions.php:39 ../../include/permissions.php:38
+#: ../../Zotlabs/Access/Permissions.php:39 ../../include/permissions.php:44
msgid "Can comment on or like my posts"
msgstr ""
-#: ../../Zotlabs/Access/Permissions.php:40 ../../include/permissions.php:39
+#: ../../Zotlabs/Access/Permissions.php:40 ../../include/permissions.php:45
msgid "Can send me private mail messages"
msgstr ""
@@ -154,7 +158,7 @@ msgstr ""
msgid "Can chat with me"
msgstr ""
-#: ../../Zotlabs/Access/Permissions.php:44 ../../include/permissions.php:47
+#: ../../Zotlabs/Access/Permissions.php:44 ../../include/permissions.php:53
msgid "Can source my public posts in derived channels"
msgstr ""
@@ -166,7 +170,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2657
+#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2711
msgid "Collection"
msgstr ""
@@ -190,17 +194,17 @@ msgstr ""
msgid "Schedule Outbox"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Module/Photos.php:800
+#: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Module/Photos.php:789
#: ../../Zotlabs/Module/Photos.php:1249
#: ../../Zotlabs/Module/Embedphotos.php:147 ../../Zotlabs/Lib/Apps.php:490
-#: ../../Zotlabs/Lib/Apps.php:565 ../../include/conversation.php:1036
-#: ../../include/widgets.php:1613
+#: ../../Zotlabs/Lib/Apps.php:565 ../../include/conversation.php:1033
+#: ../../include/widgets.php:1679
msgid "Unknown"
msgstr ""
#: ../../Zotlabs/Storage/Browser.php:226 ../../Zotlabs/Module/Fbrowser.php:85
-#: ../../Zotlabs/Lib/Apps.php:217 ../../include/nav.php:95
-#: ../../include/conversation.php:1659
+#: ../../Zotlabs/Lib/Apps.php:217 ../../include/nav.php:96
+#: ../../include/conversation.php:1678
msgid "Files"
msgstr ""
@@ -213,24 +217,25 @@ msgid "Shared"
msgstr ""
#: ../../Zotlabs/Storage/Browser.php:230 ../../Zotlabs/Storage/Browser.php:323
-#: ../../Zotlabs/Module/Webpages.php:216 ../../Zotlabs/Module/Menu.php:118
-#: ../../Zotlabs/Module/New_channel.php:142
+#: ../../Zotlabs/Module/Menu.php:118 ../../Zotlabs/Module/Webpages.php:239
+#: ../../Zotlabs/Module/New_channel.php:147
#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Layouts.php:184
msgid "Create"
msgstr ""
#: ../../Zotlabs/Storage/Browser.php:231 ../../Zotlabs/Storage/Browser.php:325
#: ../../Zotlabs/Module/Cover_photo.php:357
-#: ../../Zotlabs/Module/Photos.php:827 ../../Zotlabs/Module/Photos.php:1370
#: ../../Zotlabs/Module/Profile_photo.php:390
-#: ../../Zotlabs/Module/Embedphotos.php:159 ../../include/widgets.php:1626
+#: ../../Zotlabs/Module/Photos.php:816 ../../Zotlabs/Module/Photos.php:1370
+#: ../../Zotlabs/Module/Embedphotos.php:159 ../../include/widgets.php:1692
msgid "Upload"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:235 ../../Zotlabs/Module/Chat.php:250
-#: ../../Zotlabs/Module/Settings.php:662 ../../Zotlabs/Module/Settings.php:688
-#: ../../Zotlabs/Module/Admin.php:1223
-#: ../../Zotlabs/Module/Sharedwithme.php:99
+#: ../../Zotlabs/Storage/Browser.php:235
+#: ../../Zotlabs/Module/Admin/Channels.php:163
+#: ../../Zotlabs/Module/Sharedwithme.php:99 ../../Zotlabs/Module/Chat.php:250
+#: ../../Zotlabs/Module/Settings/Oauth.php:89
+#: ../../Zotlabs/Module/Settings/Oauth.php:115
msgid "Name"
msgstr ""
@@ -239,7 +244,7 @@ msgid "Type"
msgstr ""
#: ../../Zotlabs/Storage/Browser.php:237
-#: ../../Zotlabs/Module/Sharedwithme.php:101 ../../include/text.php:1326
+#: ../../Zotlabs/Module/Sharedwithme.php:101 ../../include/text.php:1372
msgid "Size"
msgstr ""
@@ -248,32 +253,35 @@ msgstr ""
msgid "Last Modified"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:240 ../../Zotlabs/Module/Webpages.php:217
+#: ../../Zotlabs/Storage/Browser.php:240
+#: ../../Zotlabs/Module/Admin/Profs.php:154
#: ../../Zotlabs/Module/Connections.php:290
#: ../../Zotlabs/Module/Connections.php:310
#: ../../Zotlabs/Module/Editblock.php:109
#: ../../Zotlabs/Module/Editlayout.php:114
#: ../../Zotlabs/Module/Editwebpage.php:145 ../../Zotlabs/Module/Menu.php:112
-#: ../../Zotlabs/Module/Editpost.php:84 ../../Zotlabs/Module/Settings.php:722
-#: ../../Zotlabs/Module/Admin.php:2113 ../../Zotlabs/Module/Blocks.php:160
-#: ../../Zotlabs/Module/Layouts.php:192 ../../Zotlabs/Module/Thing.php:260
-#: ../../Zotlabs/Lib/Apps.php:341 ../../Zotlabs/Lib/ThreadItem.php:106
-#: ../../include/menu.php:113 ../../include/page_widgets.php:9
+#: ../../Zotlabs/Module/Webpages.php:240 ../../Zotlabs/Module/Blocks.php:160
+#: ../../Zotlabs/Module/Layouts.php:192 ../../Zotlabs/Module/Editpost.php:84
+#: ../../Zotlabs/Module/Thing.php:260
+#: ../../Zotlabs/Module/Settings/Oauth.php:149 ../../Zotlabs/Lib/Apps.php:341
+#: ../../Zotlabs/Lib/ThreadItem.php:106 ../../include/page_widgets.php:9
#: ../../include/page_widgets.php:39 ../../include/channel.php:959
-#: ../../include/channel.php:963
+#: ../../include/channel.php:963 ../../include/menu.php:113
msgid "Edit"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:241 ../../Zotlabs/Module/Webpages.php:219
+#: ../../Zotlabs/Storage/Browser.php:241
+#: ../../Zotlabs/Module/Admin/Accounts.php:174
+#: ../../Zotlabs/Module/Admin/Channels.php:153
+#: ../../Zotlabs/Module/Admin/Profs.php:155
#: ../../Zotlabs/Module/Connections.php:263
#: ../../Zotlabs/Module/Editblock.php:134
#: ../../Zotlabs/Module/Editlayout.php:137
-#: ../../Zotlabs/Module/Editwebpage.php:170
-#: ../../Zotlabs/Module/Connedit.php:610 ../../Zotlabs/Module/Group.php:177
-#: ../../Zotlabs/Module/Photos.php:1179 ../../Zotlabs/Module/Settings.php:723
-#: ../../Zotlabs/Module/Admin.php:1039 ../../Zotlabs/Module/Admin.php:1213
-#: ../../Zotlabs/Module/Admin.php:2114 ../../Zotlabs/Module/Blocks.php:162
-#: ../../Zotlabs/Module/Thing.php:261 ../../Zotlabs/Lib/Apps.php:342
+#: ../../Zotlabs/Module/Editwebpage.php:170 ../../Zotlabs/Module/Group.php:177
+#: ../../Zotlabs/Module/Webpages.php:242 ../../Zotlabs/Module/Blocks.php:162
+#: ../../Zotlabs/Module/Connedit.php:607 ../../Zotlabs/Module/Thing.php:261
+#: ../../Zotlabs/Module/Photos.php:1179
+#: ../../Zotlabs/Module/Settings/Oauth.php:150 ../../Zotlabs/Lib/Apps.php:342
#: ../../Zotlabs/Lib/ThreadItem.php:126 ../../include/conversation.php:660
msgid "Delete"
msgstr ""
@@ -305,57 +313,58 @@ msgid "Drop files here to immediately upload"
msgstr ""
#: ../../Zotlabs/Web/Router.php:65 ../../Zotlabs/Web/WebServer.php:128
-#: ../../Zotlabs/Module/Achievements.php:34 ../../Zotlabs/Module/Setup.php:215
-#: ../../Zotlabs/Module/Webpages.php:95 ../../Zotlabs/Module/Authtest.php:16
-#: ../../Zotlabs/Module/Profiles.php:203 ../../Zotlabs/Module/Profiles.php:601
-#: ../../Zotlabs/Module/Bookmarks.php:61 ../../Zotlabs/Module/Item.php:213
-#: ../../Zotlabs/Module/Item.php:221 ../../Zotlabs/Module/Item.php:1071
-#: ../../Zotlabs/Module/Page.php:35 ../../Zotlabs/Module/Page.php:91
-#: ../../Zotlabs/Module/Channel.php:104 ../../Zotlabs/Module/Channel.php:226
-#: ../../Zotlabs/Module/Channel.php:267
-#: ../../Zotlabs/Module/Connections.php:33
+#: ../../Zotlabs/Module/Achievements.php:34
+#: ../../Zotlabs/Module/Register.php:77 ../../Zotlabs/Module/Authtest.php:16
+#: ../../Zotlabs/Module/Bookmarks.php:61 ../../Zotlabs/Module/Page.php:35
+#: ../../Zotlabs/Module/Page.php:91 ../../Zotlabs/Module/Connections.php:33
#: ../../Zotlabs/Module/Cover_photo.php:277
-#: ../../Zotlabs/Module/Cover_photo.php:290 ../../Zotlabs/Module/Like.php:181
+#: ../../Zotlabs/Module/Cover_photo.php:290
#: ../../Zotlabs/Module/Editblock.php:67
#: ../../Zotlabs/Module/Editlayout.php:67
#: ../../Zotlabs/Module/Editlayout.php:90
#: ../../Zotlabs/Module/Editwebpage.php:68
#: ../../Zotlabs/Module/Editwebpage.php:89
#: ../../Zotlabs/Module/Editwebpage.php:104
-#: ../../Zotlabs/Module/Editwebpage.php:126 ../../Zotlabs/Module/Appman.php:75
-#: ../../Zotlabs/Module/Pdledit.php:26 ../../Zotlabs/Module/Filestorage.php:23
+#: ../../Zotlabs/Module/Editwebpage.php:126 ../../Zotlabs/Module/Menu.php:78
+#: ../../Zotlabs/Module/Appman.php:75 ../../Zotlabs/Module/Mail.php:121
+#: ../../Zotlabs/Module/Settings.php:59
+#: ../../Zotlabs/Module/Filestorage.php:23
#: ../../Zotlabs/Module/Filestorage.php:78
#: ../../Zotlabs/Module/Filestorage.php:93
-#: ../../Zotlabs/Module/Filestorage.php:120
-#: ../../Zotlabs/Module/Connedit.php:398 ../../Zotlabs/Module/Group.php:13
-#: ../../Zotlabs/Module/Menu.php:78 ../../Zotlabs/Module/Block.php:26
-#: ../../Zotlabs/Module/Block.php:76 ../../Zotlabs/Module/Editpost.php:17
-#: ../../Zotlabs/Module/Invite.php:17 ../../Zotlabs/Module/Invite.php:91
-#: ../../Zotlabs/Module/Locs.php:87 ../../Zotlabs/Module/Chat.php:100
-#: ../../Zotlabs/Module/Chat.php:105 ../../Zotlabs/Module/Events.php:264
-#: ../../Zotlabs/Module/Message.php:18 ../../Zotlabs/Module/Mail.php:121
-#: ../../Zotlabs/Module/Mood.php:116 ../../Zotlabs/Module/Manage.php:10
-#: ../../Zotlabs/Module/Photos.php:73 ../../Zotlabs/Module/Settings.php:642
+#: ../../Zotlabs/Module/Filestorage.php:120 ../../Zotlabs/Module/Group.php:13
+#: ../../Zotlabs/Module/Webpages.php:116 ../../Zotlabs/Module/Block.php:26
+#: ../../Zotlabs/Module/Block.php:76 ../../Zotlabs/Module/Invite.php:17
+#: ../../Zotlabs/Module/Invite.php:91 ../../Zotlabs/Module/Locs.php:87
+#: ../../Zotlabs/Module/Network.php:15 ../../Zotlabs/Module/Like.php:181
+#: ../../Zotlabs/Module/Manage.php:10 ../../Zotlabs/Module/Mitem.php:115
+#: ../../Zotlabs/Module/Message.php:18 ../../Zotlabs/Module/Rate.php:113
+#: ../../Zotlabs/Module/Mood.php:116 ../../Zotlabs/Module/Profiles.php:203
+#: ../../Zotlabs/Module/Profiles.php:601 ../../Zotlabs/Module/Api.php:12
+#: ../../Zotlabs/Module/Events.php:264 ../../Zotlabs/Module/Item.php:214
+#: ../../Zotlabs/Module/Item.php:222 ../../Zotlabs/Module/Item.php:1073
#: ../../Zotlabs/Module/New_channel.php:77
#: ../../Zotlabs/Module/New_channel.php:104
#: ../../Zotlabs/Module/Notifications.php:70 ../../Zotlabs/Module/Poke.php:137
-#: ../../Zotlabs/Module/Profile.php:68 ../../Zotlabs/Module/Profile.php:76
-#: ../../Zotlabs/Module/Blocks.php:73 ../../Zotlabs/Module/Blocks.php:80
-#: ../../Zotlabs/Module/Layouts.php:71 ../../Zotlabs/Module/Layouts.php:78
-#: ../../Zotlabs/Module/Layouts.php:89
+#: ../../Zotlabs/Module/Setup.php:220 ../../Zotlabs/Module/Profile.php:68
+#: ../../Zotlabs/Module/Profile.php:76 ../../Zotlabs/Module/Blocks.php:73
+#: ../../Zotlabs/Module/Blocks.php:80 ../../Zotlabs/Module/Layouts.php:71
+#: ../../Zotlabs/Module/Layouts.php:78 ../../Zotlabs/Module/Layouts.php:89
#: ../../Zotlabs/Module/Profile_photo.php:265
#: ../../Zotlabs/Module/Profile_photo.php:278
-#: ../../Zotlabs/Module/Common.php:39 ../../Zotlabs/Module/Register.php:77
-#: ../../Zotlabs/Module/Mitem.php:115 ../../Zotlabs/Module/Network.php:15
-#: ../../Zotlabs/Module/Regmod.php:21 ../../Zotlabs/Module/Thing.php:274
-#: ../../Zotlabs/Module/Thing.php:294 ../../Zotlabs/Module/Thing.php:335
+#: ../../Zotlabs/Module/Common.php:39 ../../Zotlabs/Module/Pdledit.php:29
+#: ../../Zotlabs/Module/Connedit.php:395 ../../Zotlabs/Module/Regmod.php:21
+#: ../../Zotlabs/Module/Editpost.php:17 ../../Zotlabs/Module/Channel.php:104
+#: ../../Zotlabs/Module/Channel.php:228 ../../Zotlabs/Module/Channel.php:269
#: ../../Zotlabs/Module/Service_limits.php:11
-#: ../../Zotlabs/Module/Rate.php:113 ../../Zotlabs/Module/Sharedwithme.php:11
+#: ../../Zotlabs/Module/Thing.php:274 ../../Zotlabs/Module/Thing.php:294
+#: ../../Zotlabs/Module/Thing.php:335 ../../Zotlabs/Module/Sharedwithme.php:11
#: ../../Zotlabs/Module/Sources.php:74 ../../Zotlabs/Module/Suggest.php:30
-#: ../../Zotlabs/Module/Api.php:12 ../../Zotlabs/Module/Viewconnections.php:28
+#: ../../Zotlabs/Module/Photos.php:73
+#: ../../Zotlabs/Module/Viewconnections.php:28
#: ../../Zotlabs/Module/Viewconnections.php:33
-#: ../../Zotlabs/Module/Viewsrc.php:18 ../../Zotlabs/Lib/Chatroom.php:137
-#: ../../include/items.php:3448 ../../include/photos.php:27
+#: ../../Zotlabs/Module/Viewsrc.php:18 ../../Zotlabs/Module/Chat.php:100
+#: ../../Zotlabs/Module/Chat.php:105 ../../Zotlabs/Lib/Chatroom.php:137
+#: ../../include/photos.php:27 ../../include/items.php:3496
#: ../../include/attach.php:142 ../../include/attach.php:190
#: ../../include/attach.php:253 ../../include/attach.php:267
#: ../../include/attach.php:274 ../../include/attach.php:339
@@ -365,21 +374,21 @@ msgstr ""
msgid "Permission denied."
msgstr ""
-#: ../../Zotlabs/Web/Router.php:146 ../../Zotlabs/Module/Help.php:94
+#: ../../Zotlabs/Web/Router.php:146 ../../include/help.php:53
msgid "Not Found"
msgstr ""
#: ../../Zotlabs/Web/Router.php:149 ../../Zotlabs/Module/Page.php:94
-#: ../../Zotlabs/Module/Help.php:97 ../../Zotlabs/Module/Block.php:79
-#: ../../Zotlabs/Module/Display.php:119
+#: ../../Zotlabs/Module/Display.php:120 ../../Zotlabs/Module/Block.php:79
+#: ../../include/help.php:56
msgid "Page not found."
msgstr ""
#: ../../Zotlabs/Web/WebServer.php:127 ../../Zotlabs/Module/Dreport.php:10
-#: ../../Zotlabs/Module/Dreport.php:66 ../../Zotlabs/Module/Like.php:283
-#: ../../Zotlabs/Module/Group.php:72 ../../Zotlabs/Module/Import_items.php:114
+#: ../../Zotlabs/Module/Dreport.php:66 ../../Zotlabs/Module/Group.php:72
+#: ../../Zotlabs/Module/Import_items.php:114 ../../Zotlabs/Module/Like.php:283
#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Subthread.php:62
-#: ../../include/items.php:384
+#: ../../include/items.php:403
msgid "Permission denied"
msgstr ""
@@ -395,13 +404,13 @@ msgid "Welcome %s. Remote authentication successful."
msgstr ""
#: ../../Zotlabs/Module/Achievements.php:15
-#: ../../Zotlabs/Module/Webpages.php:33 ../../Zotlabs/Module/Editblock.php:31
+#: ../../Zotlabs/Module/Editblock.php:31
#: ../../Zotlabs/Module/Editlayout.php:31
#: ../../Zotlabs/Module/Editwebpage.php:32
-#: ../../Zotlabs/Module/Filestorage.php:59 ../../Zotlabs/Module/Hcard.php:12
+#: ../../Zotlabs/Module/Filestorage.php:59 ../../Zotlabs/Module/Connect.php:17
+#: ../../Zotlabs/Module/Webpages.php:33 ../../Zotlabs/Module/Hcard.php:12
#: ../../Zotlabs/Module/Profile.php:20 ../../Zotlabs/Module/Blocks.php:33
-#: ../../Zotlabs/Module/Layouts.php:31 ../../Zotlabs/Module/Connect.php:17
-#: ../../include/channel.php:859
+#: ../../Zotlabs/Module/Layouts.php:31 ../../include/channel.php:859
msgid "Requested profile is not available."
msgstr ""
@@ -417,1071 +426,1581 @@ msgstr ""
msgid "Online"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:179
-msgid "$Projectname Server - Setup"
+#: ../../Zotlabs/Module/Dreport.php:44
+msgid "Invalid message"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:183
-msgid "Could not connect to database."
+#: ../../Zotlabs/Module/Dreport.php:76
+msgid "no results"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:187
-msgid ""
-"Could not connect to specified site URL. Possible SSL certificate or DNS "
-"issue."
+#: ../../Zotlabs/Module/Dreport.php:91
+msgid "channel sync processed"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:194
-msgid "Could not create table."
+#: ../../Zotlabs/Module/Dreport.php:95
+msgid "queued"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:199
-msgid "Your site database has been installed."
+#: ../../Zotlabs/Module/Dreport.php:99
+msgid "posted"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:203
-msgid ""
-"You may need to import the file \"install/schema_xxx.sql\" manually using a "
-"database client."
+#: ../../Zotlabs/Module/Dreport.php:103
+msgid "accepted for delivery"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:204 ../../Zotlabs/Module/Setup.php:266
-#: ../../Zotlabs/Module/Setup.php:722
-msgid "Please see the file \"install/INSTALL.txt\"."
+#: ../../Zotlabs/Module/Dreport.php:107
+msgid "updated"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:263
-msgid "System check"
+#: ../../Zotlabs/Module/Dreport.php:110
+msgid "update ignored"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:267 ../../Zotlabs/Module/Events.php:676
-#: ../../Zotlabs/Module/Events.php:685 ../../Zotlabs/Module/Photos.php:960
-#: ../../Zotlabs/Module/Cal.php:333 ../../Zotlabs/Module/Cal.php:340
-msgid "Next"
+#: ../../Zotlabs/Module/Dreport.php:113
+msgid "permission denied"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:268
-msgid "Check again"
+#: ../../Zotlabs/Module/Dreport.php:117
+msgid "recipient not found"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:290
-msgid "Database connection"
+#: ../../Zotlabs/Module/Dreport.php:120
+msgid "mail recalled"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:291
+#: ../../Zotlabs/Module/Dreport.php:123
+msgid "duplicate mail received"
+msgstr ""
+
+#: ../../Zotlabs/Module/Dreport.php:126
+msgid "mail delivered"
+msgstr ""
+
+#: ../../Zotlabs/Module/Dreport.php:146
+#, php-format
+msgid "Delivery report for %1$s"
+msgstr ""
+
+#: ../../Zotlabs/Module/Dreport.php:149
+msgid "Options"
+msgstr ""
+
+#: ../../Zotlabs/Module/Dreport.php:150
+msgid "Redeliver"
+msgstr ""
+
+#: ../../Zotlabs/Module/Probe.php:28 ../../Zotlabs/Module/Probe.php:32
+#, php-format
+msgid "Fetching URL returns error: %1$s"
+msgstr ""
+
+#: ../../Zotlabs/Module/Register.php:49
+msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
+msgstr ""
+
+#: ../../Zotlabs/Module/Register.php:55
msgid ""
-"In order to install $Projectname we need to know how to connect to your "
-"database."
+"Please indicate acceptance of the Terms of Service. Registration failed."
+msgstr ""
+
+#: ../../Zotlabs/Module/Register.php:89
+msgid "Passwords do not match."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:292
+#: ../../Zotlabs/Module/Register.php:131
msgid ""
-"Please contact your hosting provider or site administrator if you have "
-"questions about these settings."
+"Registration successful. Please check your email for validation instructions."
+msgstr ""
+
+#: ../../Zotlabs/Module/Register.php:137
+msgid "Your registration is pending approval by the site owner."
+msgstr ""
+
+#: ../../Zotlabs/Module/Register.php:140
+msgid "Your registration can not be processed."
+msgstr ""
+
+#: ../../Zotlabs/Module/Register.php:184
+msgid "Registration on this hub is disabled."
+msgstr ""
+
+#: ../../Zotlabs/Module/Register.php:193
+msgid "Registration on this hub is by approval only."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:293
+#: ../../Zotlabs/Module/Register.php:194
+msgid "<a href=\"pubsites\">Register at another affiliated hub.</a>"
+msgstr ""
+
+#: ../../Zotlabs/Module/Register.php:204
msgid ""
-"The database you specify below should already exist. If it does not, please "
-"create it before continuing."
+"This site has exceeded the number of allowed daily account registrations. "
+"Please try again tomorrow."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:297
-msgid "Database Server Name"
+#: ../../Zotlabs/Module/Register.php:221
+msgid "Terms of Service"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:297
-msgid "Default is 127.0.0.1"
+#: ../../Zotlabs/Module/Register.php:227
+#, php-format
+msgid "I accept the %s for this website"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:298
-msgid "Database Port"
+#: ../../Zotlabs/Module/Register.php:229
+#, php-format
+msgid "I am over 13 years of age and accept the %s for this website"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:298
-msgid "Communication port number - use 0 for default"
+#: ../../Zotlabs/Module/Register.php:233
+msgid "Your email address"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:299
-msgid "Database Login Name"
+#: ../../Zotlabs/Module/Register.php:234
+msgid "Choose a password"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:300
-msgid "Database Login Password"
+#: ../../Zotlabs/Module/Register.php:235
+msgid "Please re-enter your password"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:301
-msgid "Database Name"
+#: ../../Zotlabs/Module/Register.php:236
+msgid "Please enter your invitation code"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:302
-msgid "Database Type"
+#: ../../Zotlabs/Module/Register.php:237
+#: ../../Zotlabs/Module/New_channel.php:134
+msgid "Name or caption"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:304 ../../Zotlabs/Module/Setup.php:344
-msgid "Site administrator email address"
+#: ../../Zotlabs/Module/Register.php:237
+#: ../../Zotlabs/Module/New_channel.php:134
+msgid ""
+"Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation "
+"Group\""
+msgstr ""
+
+#: ../../Zotlabs/Module/Register.php:239
+#: ../../Zotlabs/Module/New_channel.php:136
+msgid "Choose a short nickname"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:304 ../../Zotlabs/Module/Setup.php:344
+#: ../../Zotlabs/Module/Register.php:239
+#: ../../Zotlabs/Module/New_channel.php:136
+#, php-format
msgid ""
-"Your account email address must match this in order to use the web admin "
-"panel."
+"Your nickname will be used to create an easy to remember channel address e."
+"g. nickname%s"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:305 ../../Zotlabs/Module/Setup.php:346
-msgid "Website URL"
+#: ../../Zotlabs/Module/Register.php:240
+#: ../../Zotlabs/Module/New_channel.php:137
+msgid "Channel role and privacy"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:305 ../../Zotlabs/Module/Setup.php:346
-msgid "Please use SSL (https) URL if available."
+#: ../../Zotlabs/Module/Register.php:240
+#: ../../Zotlabs/Module/New_channel.php:137
+msgid "Select a channel role with your privacy requirements."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:306 ../../Zotlabs/Module/Setup.php:349
-msgid "Please select a default timezone for your website"
+#: ../../Zotlabs/Module/Register.php:240
+#: ../../Zotlabs/Module/New_channel.php:137
+msgid "Read more about roles"
+msgstr ""
+
+#: ../../Zotlabs/Module/Register.php:241
+msgid "no"
+msgstr ""
+
+#: ../../Zotlabs/Module/Register.php:241
+msgid "yes"
+msgstr ""
+
+#: ../../Zotlabs/Module/Register.php:253
+#: ../../Zotlabs/Module/Admin/Site.php:268
+msgid "Registration"
+msgstr ""
+
+#: ../../Zotlabs/Module/Register.php:258
+msgid "Membership on this site is by invitation only."
+msgstr ""
+
+#: ../../Zotlabs/Module/Register.php:270 ../../include/nav.php:152
+#: ../../boot.php:1721
+msgid "Register"
+msgstr ""
+
+#: ../../Zotlabs/Module/Register.php:271
+msgid ""
+"This site may require email verification after submitting this form. If you "
+"are returned to a login page, please check your email for instructions."
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:36
+#, php-format
+msgid "%s account blocked/unblocked"
+msgid_plural "%s account blocked/unblocked"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:43
+#, php-format
+msgid "%s account deleted"
+msgid_plural "%s accounts deleted"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:79
+msgid "Account not found"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:312 ../../Zotlabs/Module/Setup.php:353
-#: ../../Zotlabs/Module/Profiles.php:687 ../../Zotlabs/Module/Appman.php:126
-#: ../../Zotlabs/Module/Pdledit.php:66
-#: ../../Zotlabs/Module/Filestorage.php:165
-#: ../../Zotlabs/Module/Connedit.php:786 ../../Zotlabs/Module/Group.php:85
+#: ../../Zotlabs/Module/Admin/Accounts.php:90
+#, php-format
+msgid "Account '%s' deleted"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:98
+#, php-format
+msgid "Account '%s' blocked"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:106
+#, php-format
+msgid "Account '%s' unblocked"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:165
+#: ../../Zotlabs/Module/Admin/Channels.php:149
+#: ../../Zotlabs/Module/Admin/Logs.php:82
+#: ../../Zotlabs/Module/Admin/Plugins.php:336
+#: ../../Zotlabs/Module/Admin/Plugins.php:427
+#: ../../Zotlabs/Module/Admin/Security.php:86
+#: ../../Zotlabs/Module/Admin/Site.php:265
+#: ../../Zotlabs/Module/Admin/Themes.php:120
+#: ../../Zotlabs/Module/Admin/Themes.php:154
+#: ../../Zotlabs/Module/Admin.php:141
+msgid "Administration"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:166
+#: ../../Zotlabs/Module/Admin/Accounts.php:179 ../../include/widgets.php:1557
+msgid "Accounts"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Accounts.php:167
+#: ../../Zotlabs/Module/Admin/Channels.php:151
+#: ../../Zotlabs/Module/Admin/Features.php:66
+#: ../../Zotlabs/Module/Admin/Logs.php:84
+#: ../../Zotlabs/Module/Admin/Plugins.php:429
+#: ../../Zotlabs/Module/Admin/Profs.php:157
+#: ../../Zotlabs/Module/Admin/Security.php:104
+#: ../../Zotlabs/Module/Admin/Site.php:267
+#: ../../Zotlabs/Module/Admin/Themes.php:156
+#: ../../Zotlabs/Module/Import.php:560 ../../Zotlabs/Module/Appman.php:126
+#: ../../Zotlabs/Module/Mail.php:370 ../../Zotlabs/Module/Filestorage.php:165
+#: ../../Zotlabs/Module/Connect.php:98 ../../Zotlabs/Module/Group.php:85
#: ../../Zotlabs/Module/Import_items.php:122
#: ../../Zotlabs/Module/Invite.php:146 ../../Zotlabs/Module/Locs.php:121
-#: ../../Zotlabs/Module/Chat.php:196 ../../Zotlabs/Module/Chat.php:241
-#: ../../Zotlabs/Module/Events.php:484 ../../Zotlabs/Module/Mail.php:370
-#: ../../Zotlabs/Module/Mood.php:139 ../../Zotlabs/Module/Photos.php:679
-#: ../../Zotlabs/Module/Photos.php:1058 ../../Zotlabs/Module/Photos.php:1098
-#: ../../Zotlabs/Module/Photos.php:1216 ../../Zotlabs/Module/Settings.php:660
-#: ../../Zotlabs/Module/Settings.php:773 ../../Zotlabs/Module/Settings.php:864
-#: ../../Zotlabs/Module/Settings.php:890 ../../Zotlabs/Module/Settings.php:913
-#: ../../Zotlabs/Module/Settings.php:1001
-#: ../../Zotlabs/Module/Settings.php:1187 ../../Zotlabs/Module/Admin.php:492
-#: ../../Zotlabs/Module/Admin.php:688 ../../Zotlabs/Module/Admin.php:771
-#: ../../Zotlabs/Module/Admin.php:1032 ../../Zotlabs/Module/Admin.php:1211
-#: ../../Zotlabs/Module/Admin.php:1421 ../../Zotlabs/Module/Admin.php:1648
-#: ../../Zotlabs/Module/Admin.php:1733 ../../Zotlabs/Module/Admin.php:2116
-#: ../../Zotlabs/Module/Poke.php:186 ../../Zotlabs/Module/Pconfig.php:107
-#: ../../Zotlabs/Module/Cal.php:338 ../../Zotlabs/Module/Mitem.php:243
-#: ../../Zotlabs/Module/Connect.php:98 ../../Zotlabs/Module/Thing.php:320
-#: ../../Zotlabs/Module/Thing.php:370 ../../Zotlabs/Module/Rate.php:170
+#: ../../Zotlabs/Module/Mitem.php:243 ../../Zotlabs/Module/Rate.php:166
+#: ../../Zotlabs/Module/Mood.php:139 ../../Zotlabs/Module/Profiles.php:687
+#: ../../Zotlabs/Module/Events.php:484 ../../Zotlabs/Module/Poke.php:186
+#: ../../Zotlabs/Module/Setup.php:317 ../../Zotlabs/Module/Setup.php:365
+#: ../../Zotlabs/Module/Pconfig.php:107 ../../Zotlabs/Module/Cal.php:338
+#: ../../Zotlabs/Module/Pdledit.php:74 ../../Zotlabs/Module/Connedit.php:779
+#: ../../Zotlabs/Module/Thing.php:320 ../../Zotlabs/Module/Thing.php:370
#: ../../Zotlabs/Module/Sources.php:114 ../../Zotlabs/Module/Sources.php:149
-#: ../../Zotlabs/Module/Import.php:560 ../../Zotlabs/Module/Xchan.php:15
-#: ../../Zotlabs/Lib/ThreadItem.php:711 ../../include/js_strings.php:22
-#: ../../include/widgets.php:763 ../../view/theme/redbasic/php/config.php:99
+#: ../../Zotlabs/Module/Photos.php:668 ../../Zotlabs/Module/Photos.php:1058
+#: ../../Zotlabs/Module/Photos.php:1098 ../../Zotlabs/Module/Photos.php:1216
+#: ../../Zotlabs/Module/Chat.php:196 ../../Zotlabs/Module/Chat.php:241
+#: ../../Zotlabs/Module/Xchan.php:15
+#: ../../Zotlabs/Module/Settings/Account.php:126
+#: ../../Zotlabs/Module/Settings/Channel.php:452
+#: ../../Zotlabs/Module/Settings/Display.php:194
+#: ../../Zotlabs/Module/Settings/Features.php:47
+#: ../../Zotlabs/Module/Settings/Oauth.php:87
+#: ../../Zotlabs/Module/Settings/Tokens.php:167
+#: ../../Zotlabs/Lib/ThreadItem.php:712 ../../include/js_strings.php:22
+#: ../../include/widgets.php:796 ../../view/theme/redbasic/php/config.php:106
msgid "Submit"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:333
-msgid "Site settings"
+#: ../../Zotlabs/Module/Admin/Accounts.php:168
+#: ../../Zotlabs/Module/Admin/Channels.php:152
+msgid "select all"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:347
-msgid "Enable $Projectname <strong>advanced</strong> features?"
+#: ../../Zotlabs/Module/Admin/Accounts.php:169
+msgid "Registrations waiting for confirm"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:347
-msgid ""
-"Some advanced features, while useful - may be best suited for technically "
-"proficient audiences"
+#: ../../Zotlabs/Module/Admin/Accounts.php:170
+msgid "Request date"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:388
-msgid "PHP version 5.5 or greater is required."
+#: ../../Zotlabs/Module/Admin/Accounts.php:170
+#: ../../Zotlabs/Module/Admin/Accounts.php:182 ../../include/network.php:2208
+msgid "Email"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:389
-msgid "PHP version"
+#: ../../Zotlabs/Module/Admin/Accounts.php:171
+msgid "No registrations."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:404
-msgid "Could not find a command line version of PHP in the web server PATH."
+#: ../../Zotlabs/Module/Admin/Accounts.php:172
+#: ../../Zotlabs/Module/Connections.php:275
+msgid "Approve"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:405
-msgid ""
-"If you don't have a command line version of PHP installed on server, you "
-"will not be able to run background polling via cron."
+#: ../../Zotlabs/Module/Admin/Accounts.php:173
+msgid "Deny"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:409
-msgid "PHP executable path"
+#: ../../Zotlabs/Module/Admin/Accounts.php:175
+#: ../../Zotlabs/Module/Connedit.php:575
+msgid "Block"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:409
-msgid ""
-"Enter full path to php executable. You can leave this blank to continue the "
-"installation."
+#: ../../Zotlabs/Module/Admin/Accounts.php:176
+#: ../../Zotlabs/Module/Connedit.php:575
+msgid "Unblock"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:414
-msgid "Command line PHP"
+#: ../../Zotlabs/Module/Admin/Accounts.php:181
+msgid "ID"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:423
-msgid ""
-"The command line version of PHP on your system does not have "
-"\"register_argc_argv\" enabled."
+#: ../../Zotlabs/Module/Admin/Accounts.php:183 ../../include/group.php:267
+msgid "All Channels"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:424
-msgid "This is required for message delivery to work."
+#: ../../Zotlabs/Module/Admin/Accounts.php:184
+msgid "Register date"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:427
-msgid "PHP register_argc_argv"
+#: ../../Zotlabs/Module/Admin/Accounts.php:185
+msgid "Last login"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:445
-#, php-format
-msgid ""
-"Your max allowed total upload size is set to %s. Maximum size of one file to "
-"upload is set to %s. You are allowed to upload up to %d files at once."
+#: ../../Zotlabs/Module/Admin/Accounts.php:186
+msgid "Expires"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:450
-msgid "You can adjust these settings in the servers php.ini."
+#: ../../Zotlabs/Module/Admin/Accounts.php:187
+msgid "Service Class"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:452
-msgid "PHP upload limits"
+#: ../../Zotlabs/Module/Admin/Accounts.php:189
+msgid ""
+"Selected accounts will be deleted!\\n\\nEverything these accounts had posted "
+"on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:475
+#: ../../Zotlabs/Module/Admin/Accounts.php:190
msgid ""
-"Error: the \"openssl_pkey_new\" function on this system is not able to "
-"generate encryption keys"
+"The account {0} will be deleted!\\n\\nEverything this account has posted on "
+"this site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:476
-msgid ""
-"If running under Windows, please see \"http://www.php.net/manual/en/openssl."
-"installation.php\"."
+#: ../../Zotlabs/Module/Admin/Channels.php:30
+#, php-format
+msgid "%s channel censored/uncensored"
+msgid_plural "%s channels censored/uncensored"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../Zotlabs/Module/Admin/Channels.php:39
+#, php-format
+msgid "%s channel code allowed/disallowed"
+msgid_plural "%s channels code allowed/disallowed"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../Zotlabs/Module/Admin/Channels.php:45
+#, php-format
+msgid "%s channel deleted"
+msgid_plural "%s channels deleted"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../Zotlabs/Module/Admin/Channels.php:66
+msgid "Channel not found"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:479
-msgid "Generate encryption keys"
+#: ../../Zotlabs/Module/Admin/Channels.php:76
+#, php-format
+msgid "Channel '%s' deleted"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:491
-msgid "libCurl PHP module"
+#: ../../Zotlabs/Module/Admin/Channels.php:88
+#, php-format
+msgid "Channel '%s' censored"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:492
-msgid "GD graphics PHP module"
+#: ../../Zotlabs/Module/Admin/Channels.php:88
+#, php-format
+msgid "Channel '%s' uncensored"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:493
-msgid "OpenSSL PHP module"
+#: ../../Zotlabs/Module/Admin/Channels.php:99
+#, php-format
+msgid "Channel '%s' code allowed"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:494
-msgid "mysqli or postgres PHP module"
+#: ../../Zotlabs/Module/Admin/Channels.php:99
+#, php-format
+msgid "Channel '%s' code disallowed"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:495
-msgid "mb_string PHP module"
+#: ../../Zotlabs/Module/Admin/Channels.php:150 ../../include/widgets.php:1558
+msgid "Channels"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:496
-msgid "xml PHP module"
+#: ../../Zotlabs/Module/Admin/Channels.php:154
+msgid "Censor"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:500 ../../Zotlabs/Module/Setup.php:502
-msgid "Apache mod_rewrite module"
+#: ../../Zotlabs/Module/Admin/Channels.php:155
+msgid "Uncensor"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:500
-msgid ""
-"Error: Apache webserver mod-rewrite module is required but not installed."
+#: ../../Zotlabs/Module/Admin/Channels.php:156
+msgid "Allow Code"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:506 ../../Zotlabs/Module/Setup.php:509
-msgid "proc_open"
+#: ../../Zotlabs/Module/Admin/Channels.php:157
+msgid "Disallow Code"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:506
-msgid ""
-"Error: proc_open is required but is either not installed or has been "
-"disabled in php.ini"
+#: ../../Zotlabs/Module/Admin/Channels.php:158
+#: ../../include/conversation.php:1650
+msgid "Channel"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:514
-msgid "Error: libCURL PHP module required but not installed."
+#: ../../Zotlabs/Module/Admin/Channels.php:162
+msgid "UID"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:518
-msgid ""
-"Error: GD graphics PHP module with JPEG support required but not installed."
+#: ../../Zotlabs/Module/Admin/Channels.php:164
+#: ../../Zotlabs/Module/Locs.php:118 ../../Zotlabs/Module/Profiles.php:470
+msgid "Address"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:522
-msgid "Error: openssl PHP module required but not installed."
+#: ../../Zotlabs/Module/Admin/Channels.php:166
+msgid ""
+"Selected channels will be deleted!\\n\\nEverything that was posted in these "
+"channels on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:526
+#: ../../Zotlabs/Module/Admin/Channels.php:167
msgid ""
-"Error: mysqli or postgres PHP module required but neither are installed."
+"The channel {0} will be deleted!\\n\\nEverything that was posted in this "
+"channel on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:530
-msgid "Error: mb_string PHP module required but not installed."
+#: ../../Zotlabs/Module/Admin/Dbsync.php:19
+msgid "Update has been marked successful"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:534
-msgid "Error: xml PHP module required for DAV but not installed."
+#: ../../Zotlabs/Module/Admin/Dbsync.php:29
+#, php-format
+msgid "Executing %s failed. Check system logs."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:552
-msgid ""
-"The web installer needs to be able to create a file called \".htconfig.php\" "
-"in the top folder of your web server and it is unable to do so."
+#: ../../Zotlabs/Module/Admin/Dbsync.php:32
+#, php-format
+msgid "Update %s was successfully applied."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:553
-msgid ""
-"This is most often a permission setting, as the web server may not be able "
-"to write files in your folder - even if you can."
+#: ../../Zotlabs/Module/Admin/Dbsync.php:36
+#, php-format
+msgid "Update %s did not return a status. Unknown if it succeeded."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:554
-msgid ""
-"At the end of this procedure, we will give you a text to save in a file "
-"named .htconfig.php in your Red top folder."
+#: ../../Zotlabs/Module/Admin/Dbsync.php:39
+#, php-format
+msgid "Update function %s could not be found."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:555
-msgid ""
-"You can alternatively skip this procedure and perform a manual installation. "
-"Please see the file \"install/INSTALL.txt\" for instructions."
+#: ../../Zotlabs/Module/Admin/Dbsync.php:55
+msgid "No failed updates."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:558
-msgid ".htconfig.php is writable"
+#: ../../Zotlabs/Module/Admin/Dbsync.php:59
+msgid "Failed Updates"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:572
-msgid ""
-"Red uses the Smarty3 template engine to render its web views. Smarty3 "
-"compiles templates to PHP to speed up rendering."
+#: ../../Zotlabs/Module/Admin/Dbsync.php:61
+msgid "Mark success (if update was manually applied)"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Dbsync.php:62
+msgid "Attempt to execute this update step automatically"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Features.php:55
+#: ../../Zotlabs/Module/Admin/Features.php:56
+#: ../../Zotlabs/Module/Settings/Features.php:38
+msgid "Off"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Features.php:55
+#: ../../Zotlabs/Module/Admin/Features.php:56
+#: ../../Zotlabs/Module/Settings/Features.php:38
+msgid "On"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:573
+#: ../../Zotlabs/Module/Admin/Features.php:56
#, php-format
-msgid ""
-"In order to store these compiled templates, the web server needs to have "
-"write access to the directory %s under the top level web folder."
+msgid "Lock feature %s"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Features.php:64
+msgid "Manage Additional Features"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Logs.php:28
+msgid "Log settings updated."
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Logs.php:83 ../../include/widgets.php:1583
+#: ../../include/widgets.php:1593
+msgid "Logs"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Logs.php:85
+msgid "Clear"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Logs.php:91
+msgid "Debugging"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:574 ../../Zotlabs/Module/Setup.php:595
+#: ../../Zotlabs/Module/Admin/Logs.php:92
+msgid "Log file"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Logs.php:92
msgid ""
-"Please ensure that the user that your web server runs as (e.g. www-data) has "
-"write access to this folder."
+"Must be writable by web server. Relative to your top-level webserver "
+"directory."
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Logs.php:93
+msgid "Log level"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:254
+#: ../../Zotlabs/Module/Admin/Themes.php:69
+#: ../../Zotlabs/Module/Display.php:40 ../../Zotlabs/Module/Filestorage.php:32
+#: ../../Zotlabs/Module/Thing.php:89 ../../Zotlabs/Module/Viewsrc.php:24
+#: ../../Zotlabs/Module/Admin.php:62 ../../include/items.php:3417
+msgid "Item not found."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:575
+#: ../../Zotlabs/Module/Admin/Plugins.php:284
#, php-format
-msgid ""
-"Note: as a security measure, you should give the web server write access to "
-"%s only--not the template files (.tpl) that it contains."
+msgid "Plugin %s disabled."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:578
+#: ../../Zotlabs/Module/Admin/Plugins.php:289
#, php-format
-msgid "%s is writable"
+msgid "Plugin %s enabled."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:594
-msgid ""
-"This software uses the store directory to save uploaded files. The web "
-"server needs to have write access to the store directory under the Red top "
-"level folder"
+#: ../../Zotlabs/Module/Admin/Plugins.php:305
+#: ../../Zotlabs/Module/Admin/Themes.php:93
+msgid "Disable"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:598
-msgid "store is writable"
+#: ../../Zotlabs/Module/Admin/Plugins.php:308
+#: ../../Zotlabs/Module/Admin/Themes.php:95
+msgid "Enable"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:631
-msgid ""
-"SSL certificate cannot be validated. Fix certificate or disable https access "
-"to this site."
+#: ../../Zotlabs/Module/Admin/Plugins.php:337
+#: ../../Zotlabs/Module/Admin/Plugins.php:428 ../../include/widgets.php:1561
+msgid "Plugins"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:338
+#: ../../Zotlabs/Module/Admin/Themes.php:122
+msgid "Toggle"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:339
+#: ../../Zotlabs/Module/Admin/Themes.php:123 ../../Zotlabs/Lib/Apps.php:216
+#: ../../include/nav.php:213 ../../include/widgets.php:680
+msgid "Settings"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:346
+#: ../../Zotlabs/Module/Admin/Themes.php:132
+msgid "Author: "
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:347
+#: ../../Zotlabs/Module/Admin/Themes.php:133
+msgid "Maintainer: "
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:348
+msgid "Minimum project version: "
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:349
+msgid "Maximum project version: "
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:350
+msgid "Minimum PHP version: "
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:351
+msgid "Compatible Server Roles: "
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:632
+#: ../../Zotlabs/Module/Admin/Plugins.php:352
+msgid "Requires: "
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:353
+#: ../../Zotlabs/Module/Admin/Plugins.php:433
+msgid "Disabled - version incompatibility"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:402
+msgid "Enter the public git repository URL of the plugin repo."
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:403
+msgid "Plugin repo git URL"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:404
+msgid "Custom repo name"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:404
+msgid "(optional)"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:405
+msgid "Download Plugin Repo"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:412
+msgid "Install new repo"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:413 ../../Zotlabs/Lib/Apps.php:334
+msgid "Install"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:414
+#: ../../Zotlabs/Module/Fbrowser.php:66 ../../Zotlabs/Module/Fbrowser.php:88
+#: ../../Zotlabs/Module/Wiki.php:171 ../../Zotlabs/Module/Wiki.php:211
+#: ../../Zotlabs/Module/Tagrm.php:15 ../../Zotlabs/Module/Tagrm.php:138
+#: ../../Zotlabs/Module/Settings/Oauth.php:88
+#: ../../Zotlabs/Module/Settings/Oauth.php:114
+#: ../../include/conversation.php:1247 ../../include/conversation.php:1296
+msgid "Cancel"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:435
+msgid "Manage Repos"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:436
+msgid "Installed Plugin Repositories"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:437
+msgid "Install a New Plugin Repository"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:443
+#: ../../Zotlabs/Module/Settings/Oauth.php:42
+#: ../../Zotlabs/Module/Settings/Oauth.php:113 ../../Zotlabs/Lib/Apps.php:334
+msgid "Update"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:444
+msgid "Switch branch"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Plugins.php:445
+#: ../../Zotlabs/Module/Tagrm.php:137 ../../Zotlabs/Module/Photos.php:989
+msgid "Remove"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Profs.php:69
+msgid "New Profile Field"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Profs.php:70
+#: ../../Zotlabs/Module/Admin/Profs.php:90
+msgid "Field nickname"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Profs.php:70
+#: ../../Zotlabs/Module/Admin/Profs.php:90
+msgid "System name of field"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Profs.php:71
+#: ../../Zotlabs/Module/Admin/Profs.php:91
+msgid "Input type"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Profs.php:72
+#: ../../Zotlabs/Module/Admin/Profs.php:92
+msgid "Field Name"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Profs.php:72
+#: ../../Zotlabs/Module/Admin/Profs.php:92
+msgid "Label on profile pages"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Profs.php:73
+#: ../../Zotlabs/Module/Admin/Profs.php:93
+msgid "Help text"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Profs.php:73
+#: ../../Zotlabs/Module/Admin/Profs.php:93
+msgid "Additional info (optional)"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Profs.php:74
+#: ../../Zotlabs/Module/Admin/Profs.php:94 ../../Zotlabs/Module/Filer.php:53
+#: ../../Zotlabs/Module/Rbmark.php:32 ../../Zotlabs/Module/Rbmark.php:104
+#: ../../include/text.php:972 ../../include/text.php:984
+#: ../../include/widgets.php:201
+msgid "Save"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Profs.php:83
+msgid "Field definition not found"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Profs.php:89
+msgid "Edit Profile Field"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Profs.php:147 ../../include/widgets.php:1564
+msgid "Profile Fields"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Profs.php:148
+msgid "Basic Profile Fields"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Profs.php:149
+msgid "Advanced Profile Fields"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Profs.php:149
+msgid "(In addition to basic fields)"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Profs.php:151
+msgid "All available fields"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Profs.php:152
+msgid "Custom Fields"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Profs.php:156
+msgid "Create Custom Field"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Queue.php:36
+msgid "Queue Statistics"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Queue.php:37
+msgid "Total Entries"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Queue.php:38
+msgid "Priority"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Queue.php:39
+msgid "Destination URL"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Queue.php:40
+msgid "Mark hub permanently offline"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Queue.php:41
+msgid "Empty queue for this hub"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Queue.php:42
+msgid "Last known contact"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Security.php:77
msgid ""
-"If you have https access to your website or allow connections to TCP port "
-"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
-"NOT use self-signed certificates!"
+"By default, unfiltered HTML is allowed in embedded media. This is inherently "
+"insecure."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:633
+#: ../../Zotlabs/Module/Admin/Security.php:80
msgid ""
-"This restriction is incorporated because public posts from you may for "
-"example contain references to images on your own hub."
+"The recommended setting is to only allow unfiltered HTML from the following "
+"sites:"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:634
+#: ../../Zotlabs/Module/Admin/Security.php:81
msgid ""
-"If your certificate is not recognized, members of other sites (who may "
-"themselves have valid certificates) will get a warning message on their own "
-"site complaining about security issues."
+"https://youtube.com/<br />https://www.youtube.com/<br />https://youtu.be/"
+"<br />https://vimeo.com/<br />https://soundcloud.com/<br />"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:635
+#: ../../Zotlabs/Module/Admin/Security.php:82
msgid ""
-"This can cause usability issues elsewhere (not just on your own site) so we "
-"must insist on this requirement."
+"All other embedded content will be filtered, <strong>unless</strong> "
+"embedded content from that site is explicitly blocked."
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Security.php:87 ../../include/widgets.php:1559
+msgid "Security"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:636
+#: ../../Zotlabs/Module/Admin/Security.php:89
+msgid "Block public"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Security.php:89
msgid ""
-"Providers are available that issue free certificates which are browser-valid."
+"Check to block public access to all otherwise public personal pages on this "
+"site unless you are currently authenticated."
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Security.php:90
+msgid "Set \"Transport Security\" HTTP header"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Security.php:91
+msgid "Set \"Content Security Policy\" HTTP header"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Security.php:92
+msgid "Allowed email domains"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:638
+#: ../../Zotlabs/Module/Admin/Security.php:92
msgid ""
-"If you are confident that the certificate is valid and signed by a trusted "
-"authority, check to see if you have failed to install an intermediate cert. "
-"These are not normally required by browsers, but are required for server-to-"
-"server communications."
+"Comma separated list of domains which are allowed in email addresses for "
+"registrations to this site. Wildcards are accepted. Empty to allow any "
+"domains"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:641
-msgid "SSL certificate validation"
+#: ../../Zotlabs/Module/Admin/Security.php:93
+msgid "Not allowed email domains"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:647
+#: ../../Zotlabs/Module/Admin/Security.php:93
msgid ""
-"Url rewrite in .htaccess is not working. Check your server configuration."
-"Test: "
+"Comma separated list of domains which are not allowed in email addresses for "
+"registrations to this site. Wildcards are accepted. Empty to allow any "
+"domains, unless allowed domains have been defined."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:650
-msgid "Url rewrite is working"
+#: ../../Zotlabs/Module/Admin/Security.php:94
+msgid "Allow communications only from these sites"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:659
+#: ../../Zotlabs/Module/Admin/Security.php:94
msgid ""
-"The database configuration file \".htconfig.php\" could not be written. "
-"Please use the enclosed text to create a configuration file in your web "
-"server root."
+"One site per line. Leave empty to allow communication from anywhere by "
+"default"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:683
-msgid "Errors encountered creating database tables."
+#: ../../Zotlabs/Module/Admin/Security.php:95
+msgid "Block communications from these sites"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:720
-msgid "<h1>What next</h1>"
+#: ../../Zotlabs/Module/Admin/Security.php:96
+msgid "Allow communications only from these channels"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:721
+#: ../../Zotlabs/Module/Admin/Security.php:96
msgid ""
-"IMPORTANT: You will need to [manually] setup a scheduled task for the poller."
+"One channel (hash) per line. Leave empty to allow from any channel by default"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:44
-msgid "Invalid message"
+#: ../../Zotlabs/Module/Admin/Security.php:97
+msgid "Block communications from these channels"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:76
-msgid "no results"
+#: ../../Zotlabs/Module/Admin/Security.php:98
+msgid "Only allow embeds from secure (SSL) websites and links."
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:91
-msgid "channel sync processed"
+#: ../../Zotlabs/Module/Admin/Security.php:99
+msgid "Allow unfiltered embedded HTML content only from these domains"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:95
-msgid "queued"
+#: ../../Zotlabs/Module/Admin/Security.php:99
+msgid "One site per line. By default embedded content is filtered."
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:99
-msgid "posted"
+#: ../../Zotlabs/Module/Admin/Security.php:100
+msgid "Block embedded HTML from these domains"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:103
-msgid "accepted for delivery"
+#: ../../Zotlabs/Module/Admin/Site.php:135
+msgid "Site settings updated."
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:107
-msgid "updated"
+#: ../../Zotlabs/Module/Admin/Site.php:162 ../../include/text.php:2942
+msgid "Default"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:110
-msgid "update ignored"
+#: ../../Zotlabs/Module/Admin/Site.php:172
+#: ../../Zotlabs/Module/Settings/Display.php:141
+msgid "mobile"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:113
-msgid "permission denied"
+#: ../../Zotlabs/Module/Admin/Site.php:174
+msgid "experimental"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:117
-msgid "recipient not found"
+#: ../../Zotlabs/Module/Admin/Site.php:176
+msgid "unsupported"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:120
-msgid "mail recalled"
+#: ../../Zotlabs/Module/Admin/Site.php:221 ../../Zotlabs/Module/Menu.php:100
+#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Filestorage.php:160
+#: ../../Zotlabs/Module/Filestorage.php:168 ../../Zotlabs/Module/Mitem.php:162
+#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:240
+#: ../../Zotlabs/Module/Mitem.php:241 ../../Zotlabs/Module/Profiles.php:647
+#: ../../Zotlabs/Module/Api.php:85 ../../Zotlabs/Module/Events.php:462
+#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:472
+#: ../../Zotlabs/Module/Connedit.php:408 ../../Zotlabs/Module/Connedit.php:686
+#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Photos.php:653
+#: ../../Zotlabs/Module/Settings/Channel.php:289
+#: ../../Zotlabs/Module/Settings/Display.php:101 ../../include/dir_fns.php:143
+#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
+#: ../../view/theme/redbasic/php/config.php:111
+#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1743
+msgid "No"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:123
-msgid "duplicate mail received"
+#: ../../Zotlabs/Module/Admin/Site.php:222
+msgid "Yes - with approval"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:126
-msgid "mail delivered"
+#: ../../Zotlabs/Module/Admin/Site.php:223 ../../Zotlabs/Module/Menu.php:100
+#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Filestorage.php:160
+#: ../../Zotlabs/Module/Filestorage.php:168 ../../Zotlabs/Module/Mitem.php:162
+#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:240
+#: ../../Zotlabs/Module/Mitem.php:241 ../../Zotlabs/Module/Profiles.php:647
+#: ../../Zotlabs/Module/Api.php:84 ../../Zotlabs/Module/Events.php:462
+#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:472
+#: ../../Zotlabs/Module/Connedit.php:408 ../../Zotlabs/Module/Removeme.php:63
+#: ../../Zotlabs/Module/Photos.php:653
+#: ../../Zotlabs/Module/Settings/Channel.php:289
+#: ../../Zotlabs/Module/Settings/Display.php:101 ../../include/dir_fns.php:143
+#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
+#: ../../view/theme/redbasic/php/config.php:111
+#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1743
+msgid "Yes"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:146
-#, php-format
-msgid "Delivery report for %1$s"
+#: ../../Zotlabs/Module/Admin/Site.php:228
+msgid "My site is not a public server"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:149
-msgid "Options"
+#: ../../Zotlabs/Module/Admin/Site.php:229
+msgid "My site has paid access only"
msgstr ""
-#: ../../Zotlabs/Module/Dreport.php:150
-msgid "Redeliver"
+#: ../../Zotlabs/Module/Admin/Site.php:230
+msgid "My site has free access only"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:53
-msgid "Import Webpage Elements"
+#: ../../Zotlabs/Module/Admin/Site.php:231
+msgid "My site offers free accounts with optional paid upgrades"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:54
-msgid "Import selected"
+#: ../../Zotlabs/Module/Admin/Site.php:242 ../../Zotlabs/Module/Setup.php:336
+msgid "Basic/Minimal Social Networking"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:214 ../../Zotlabs/Lib/Apps.php:218
-#: ../../include/nav.php:108 ../../include/conversation.php:1705
-msgid "Webpages"
+#: ../../Zotlabs/Module/Admin/Site.php:243 ../../Zotlabs/Module/Setup.php:337
+msgid "Standard Configuration (default)"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:218 ../../Zotlabs/Module/Photos.php:1078
-#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Layouts.php:193
-#: ../../include/conversation.php:1220
-msgid "Share"
+#: ../../Zotlabs/Module/Admin/Site.php:244 ../../Zotlabs/Module/Setup.php:338
+msgid "Professional"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:223 ../../Zotlabs/Module/Events.php:680
-#: ../../Zotlabs/Module/Blocks.php:166 ../../Zotlabs/Module/Layouts.php:197
-#: ../../Zotlabs/Module/Pubsites.php:47 ../../include/page_widgets.php:42
-msgid "View"
+#: ../../Zotlabs/Module/Admin/Site.php:249
+#: ../../Zotlabs/Module/Settings/Account.php:105
+msgid "Beginner/Basic"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:224 ../../Zotlabs/Module/Events.php:473
-#: ../../Zotlabs/Module/Photos.php:1099 ../../Zotlabs/Lib/ThreadItem.php:720
-#: ../../include/page_widgets.php:43 ../../include/conversation.php:1199
-msgid "Preview"
+#: ../../Zotlabs/Module/Admin/Site.php:250
+#: ../../Zotlabs/Module/Settings/Account.php:106
+msgid "Novice - not skilled but willing to learn"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:225 ../../include/page_widgets.php:44
-msgid "Actions"
+#: ../../Zotlabs/Module/Admin/Site.php:251
+#: ../../Zotlabs/Module/Settings/Account.php:107
+msgid "Intermediate - somewhat comfortable"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:226 ../../include/page_widgets.php:45
-msgid "Page Link"
+#: ../../Zotlabs/Module/Admin/Site.php:252
+#: ../../Zotlabs/Module/Settings/Account.php:108
+msgid "Advanced - very comfortable"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:227
-msgid "Page Title"
+#: ../../Zotlabs/Module/Admin/Site.php:253
+#: ../../Zotlabs/Module/Settings/Account.php:109
+msgid "Expert - I can write computer code"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:228 ../../Zotlabs/Module/Menu.php:114
-#: ../../Zotlabs/Module/Blocks.php:157 ../../Zotlabs/Module/Layouts.php:190
-#: ../../include/page_widgets.php:47
-msgid "Created"
+#: ../../Zotlabs/Module/Admin/Site.php:254
+#: ../../Zotlabs/Module/Settings/Account.php:110
+msgid "Wizard - I probably know more than you do"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:229 ../../Zotlabs/Module/Menu.php:115
-#: ../../Zotlabs/Module/Blocks.php:158 ../../Zotlabs/Module/Layouts.php:191
-#: ../../include/page_widgets.php:48
-msgid "Edited"
+#: ../../Zotlabs/Module/Admin/Site.php:266 ../../include/widgets.php:1556
+msgid "Site"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:258
-msgid "Invalid file type."
+#: ../../Zotlabs/Module/Admin/Site.php:269
+msgid "File upload"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:270
-msgid "Error opening zip file"
+#: ../../Zotlabs/Module/Admin/Site.php:270
+msgid "Policies"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:281
-msgid "Invalid folder path."
+#: ../../Zotlabs/Module/Admin/Site.php:271
+#: ../../include/contact_widgets.php:16
+msgid "Advanced"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:308
-msgid "No webpage elements detected."
+#: ../../Zotlabs/Module/Admin/Site.php:275
+msgid "Site name"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:382
-msgid "Import complete."
+#: ../../Zotlabs/Module/Admin/Site.php:277 ../../Zotlabs/Module/Setup.php:359
+msgid "Server Configuration/Role"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:63 ../../Zotlabs/Module/Display.php:17
-#: ../../Zotlabs/Module/Photos.php:520 ../../Zotlabs/Module/Ratings.php:86
-#: ../../Zotlabs/Module/Search.php:17
-#: ../../Zotlabs/Module/Viewconnections.php:23
-msgid "Public access denied."
+#: ../../Zotlabs/Module/Admin/Site.php:279
+msgid "Site default technical skill level"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:243
-#, php-format
-msgid "%d rating"
-msgid_plural "%d ratings"
-msgstr[0] ""
-msgstr[1] ""
+#: ../../Zotlabs/Module/Admin/Site.php:279
+msgid "Used to provide a member experience matched to technical comfort level"
+msgstr ""
-#: ../../Zotlabs/Module/Directory.php:254
-msgid "Gender: "
+#: ../../Zotlabs/Module/Admin/Site.php:281
+msgid "Lock the technical skill level setting"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:256
-msgid "Status: "
+#: ../../Zotlabs/Module/Admin/Site.php:281
+msgid "Members can set their own technical comfort level by default"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:258
-msgid "Homepage: "
+#: ../../Zotlabs/Module/Admin/Site.php:284
+msgid "Banner/Logo"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:306 ../../include/channel.php:1207
-msgid "Age:"
+#: ../../Zotlabs/Module/Admin/Site.php:285
+msgid "Administrator Information"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:311 ../../include/event.php:52
-#: ../../include/event.php:84 ../../include/channel.php:1049
-#: ../../include/bb2diaspora.php:507
-msgid "Location:"
+#: ../../Zotlabs/Module/Admin/Site.php:285
+msgid ""
+"Contact information for site administrators. Displayed on siteinfo page. "
+"BBCode can be used here"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:317
-msgid "Description:"
+#: ../../Zotlabs/Module/Admin/Site.php:286
+msgid "System language"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:322 ../../include/channel.php:1223
-msgid "Hometown:"
+#: ../../Zotlabs/Module/Admin/Site.php:287
+msgid "System theme"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:324 ../../include/channel.php:1231
-msgid "About:"
+#: ../../Zotlabs/Module/Admin/Site.php:287
+msgid ""
+"Default system theme - may be over-ridden by user profiles - <a href='#' "
+"id='cnftheme'>change theme settings</a>"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:325 ../../Zotlabs/Module/Match.php:68
-#: ../../Zotlabs/Module/Suggest.php:56 ../../include/channel.php:1034
-#: ../../include/conversation.php:960 ../../include/widgets.php:147
-#: ../../include/widgets.php:184 ../../include/connections.php:78
-msgid "Connect"
+#: ../../Zotlabs/Module/Admin/Site.php:288
+msgid "Mobile system theme"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:326
-msgid "Public Forum:"
+#: ../../Zotlabs/Module/Admin/Site.php:288
+msgid "Theme for mobile devices"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:329
-msgid "Keywords: "
+#: ../../Zotlabs/Module/Admin/Site.php:290
+msgid "Allow Feeds as Connections"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:332
-msgid "Don't suggest"
+#: ../../Zotlabs/Module/Admin/Site.php:290
+msgid "(Heavy system resource usage)"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:334
-msgid "Common connections:"
+#: ../../Zotlabs/Module/Admin/Site.php:291
+msgid "Maximum image size"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:383
-msgid "Global Directory"
+#: ../../Zotlabs/Module/Admin/Site.php:291
+msgid ""
+"Maximum size in bytes of uploaded images. Default is 0, which means no "
+"limits."
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:383
-msgid "Local Directory"
+#: ../../Zotlabs/Module/Admin/Site.php:292
+msgid "Does this site allow new member registration?"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:388
-#: ../../Zotlabs/Module/Directory.php:393
-#: ../../Zotlabs/Module/Connections.php:309
-#: ../../include/contact_widgets.php:23
-msgid "Find"
+#: ../../Zotlabs/Module/Admin/Site.php:293
+msgid "Invitation only"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:389
-msgid "Finding:"
+#: ../../Zotlabs/Module/Admin/Site.php:293
+msgid ""
+"Only allow new member registrations with an invitation code. Above register "
+"policy must be set to Yes."
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:392 ../../Zotlabs/Module/Suggest.php:64
-#: ../../include/contact_widgets.php:24
-msgid "Channel Suggestions"
+#: ../../Zotlabs/Module/Admin/Site.php:294
+msgid "Which best describes the types of account offered by this hub?"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:394
-msgid "next page"
+#: ../../Zotlabs/Module/Admin/Site.php:295
+msgid "Register text"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:394
-msgid "previous page"
+#: ../../Zotlabs/Module/Admin/Site.php:295
+msgid "Will be displayed prominently on the registration page."
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:395
-msgid "Sort options"
+#: ../../Zotlabs/Module/Admin/Site.php:296
+msgid "Site homepage to show visitors (default: login box)"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:396
-msgid "Alphabetic"
+#: ../../Zotlabs/Module/Admin/Site.php:296
+msgid ""
+"example: 'public' to show public stream, 'page/sys/home' to show a system "
+"webpage called 'home' or 'include:home.html' to include a file."
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:397
-msgid "Reverse Alphabetic"
+#: ../../Zotlabs/Module/Admin/Site.php:297
+msgid "Preserve site homepage URL"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:398
-msgid "Newest to Oldest"
+#: ../../Zotlabs/Module/Admin/Site.php:297
+msgid ""
+"Present the site homepage in a frame at the original location instead of "
+"redirecting"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:399
-msgid "Oldest to Newest"
+#: ../../Zotlabs/Module/Admin/Site.php:298
+msgid "Accounts abandoned after x days"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:416
-msgid "No entries (some entries may be hidden)."
+#: ../../Zotlabs/Module/Admin/Site.php:298
+msgid ""
+"Will not waste system resources polling external sites for abandonded "
+"accounts. Enter 0 for no time limit."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:24 ../../Zotlabs/Module/Profiles.php:189
-#: ../../Zotlabs/Module/Profiles.php:246 ../../Zotlabs/Module/Profiles.php:625
-msgid "Profile not found."
+#: ../../Zotlabs/Module/Admin/Site.php:299
+msgid "Allowed friend domains"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:44
-msgid "Profile deleted."
+#: ../../Zotlabs/Module/Admin/Site.php:299
+msgid ""
+"Comma separated list of domains which are allowed to establish friendships "
+"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:68 ../../Zotlabs/Module/Profiles.php:104
-msgid "Profile-"
+#: ../../Zotlabs/Module/Admin/Site.php:300
+msgid "Verify Email Addresses"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:89 ../../Zotlabs/Module/Profiles.php:132
-msgid "New profile created."
+#: ../../Zotlabs/Module/Admin/Site.php:300
+msgid ""
+"Check to verify email addresses used in account registration (recommended)."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:110
-msgid "Profile unavailable to clone."
+#: ../../Zotlabs/Module/Admin/Site.php:301
+msgid "Force publish"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:151
-msgid "Profile unavailable to export."
+#: ../../Zotlabs/Module/Admin/Site.php:301
+msgid ""
+"Check to force all profiles on this site to be listed in the site directory."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:256
-msgid "Profile Name is required."
+#: ../../Zotlabs/Module/Admin/Site.php:302
+msgid "Import Public Streams"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:427
-msgid "Marital Status"
+#: ../../Zotlabs/Module/Admin/Site.php:302
+msgid ""
+"Import and allow access to public content pulled from other sites. Warning: "
+"this content is unmoderated."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:431
-msgid "Romantic Partner"
+#: ../../Zotlabs/Module/Admin/Site.php:303
+msgid "Login on Homepage"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:435 ../../Zotlabs/Module/Profiles.php:736
-msgid "Likes"
+#: ../../Zotlabs/Module/Admin/Site.php:303
+msgid ""
+"Present a login box to visitors on the home page if no other content has "
+"been configured."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:439 ../../Zotlabs/Module/Profiles.php:737
-msgid "Dislikes"
+#: ../../Zotlabs/Module/Admin/Site.php:304
+msgid "Enable context help"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:443 ../../Zotlabs/Module/Profiles.php:744
-msgid "Work/Employment"
+#: ../../Zotlabs/Module/Admin/Site.php:304
+msgid ""
+"Display contextual help for the current page when the help button is pressed."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:446
-msgid "Religion"
+#: ../../Zotlabs/Module/Admin/Site.php:306
+msgid "Directory Server URL"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:450
-msgid "Political Views"
+#: ../../Zotlabs/Module/Admin/Site.php:306
+msgid "Default directory server"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:454
-msgid "Gender"
+#: ../../Zotlabs/Module/Admin/Site.php:308
+msgid "Proxy user"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:458
-msgid "Sexual Preference"
+#: ../../Zotlabs/Module/Admin/Site.php:309
+msgid "Proxy URL"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:462
-msgid "Homepage"
+#: ../../Zotlabs/Module/Admin/Site.php:310
+msgid "Network timeout"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:466
-msgid "Interests"
+#: ../../Zotlabs/Module/Admin/Site.php:310
+msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:470 ../../Zotlabs/Module/Locs.php:118
-#: ../../Zotlabs/Module/Admin.php:1224
-msgid "Address"
+#: ../../Zotlabs/Module/Admin/Site.php:311
+msgid "Delivery interval"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:477 ../../Zotlabs/Module/Profiles.php:698
-#: ../../Zotlabs/Module/Locs.php:117 ../../Zotlabs/Module/Events.php:467
-#: ../../Zotlabs/Module/Pubsites.php:41 ../../include/js_strings.php:25
-msgid "Location"
+#: ../../Zotlabs/Module/Admin/Site.php:311
+msgid ""
+"Delay background delivery processes by this many seconds to reduce system "
+"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
+"for large dedicated servers."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:560
-msgid "Profile updated."
+#: ../../Zotlabs/Module/Admin/Site.php:312
+msgid "Deliveries per process"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:644
-msgid "Hide your connections list from viewers of this profile"
+#: ../../Zotlabs/Module/Admin/Site.php:312
+msgid ""
+"Number of deliveries to attempt in a single operating system process. Adjust "
+"if necessary to tune system performance. Recommend: 1-5."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:647
-#: ../../Zotlabs/Module/Filestorage.php:160
-#: ../../Zotlabs/Module/Filestorage.php:168
-#: ../../Zotlabs/Module/Connedit.php:411 ../../Zotlabs/Module/Connedit.php:693
-#: ../../Zotlabs/Module/Menu.php:100 ../../Zotlabs/Module/Menu.php:157
-#: ../../Zotlabs/Module/Events.php:462 ../../Zotlabs/Module/Events.php:463
-#: ../../Zotlabs/Module/Events.php:472 ../../Zotlabs/Module/Photos.php:664
-#: ../../Zotlabs/Module/Settings.php:651 ../../Zotlabs/Module/Admin.php:459
-#: ../../Zotlabs/Module/Mitem.php:162 ../../Zotlabs/Module/Mitem.php:163
-#: ../../Zotlabs/Module/Mitem.php:240 ../../Zotlabs/Module/Mitem.php:241
-#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Api.php:85
-#: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144
-#: ../../include/dir_fns.php:145 ../../view/theme/redbasic/php/config.php:105
-#: ../../view/theme/redbasic/php/config.php:130 ../../boot.php:1717
-msgid "No"
+#: ../../Zotlabs/Module/Admin/Site.php:313
+msgid "Poll interval"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:647
-#: ../../Zotlabs/Module/Filestorage.php:160
-#: ../../Zotlabs/Module/Filestorage.php:168
-#: ../../Zotlabs/Module/Connedit.php:411 ../../Zotlabs/Module/Menu.php:100
-#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Events.php:462
-#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:472
-#: ../../Zotlabs/Module/Photos.php:664 ../../Zotlabs/Module/Settings.php:651
-#: ../../Zotlabs/Module/Admin.php:461 ../../Zotlabs/Module/Mitem.php:162
-#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:240
-#: ../../Zotlabs/Module/Mitem.php:241 ../../Zotlabs/Module/Removeme.php:63
-#: ../../Zotlabs/Module/Api.php:84 ../../include/dir_fns.php:143
-#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
-#: ../../view/theme/redbasic/php/config.php:105
-#: ../../view/theme/redbasic/php/config.php:130 ../../boot.php:1717
-msgid "Yes"
+#: ../../Zotlabs/Module/Admin/Site.php:313
+msgid ""
+"Delay background polling processes by this many seconds to reduce system "
+"load. If 0, use delivery interval."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:686
-msgid "Edit Profile Details"
+#: ../../Zotlabs/Module/Admin/Site.php:314
+msgid "Maximum Load Average"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:688
-msgid "View this profile"
+#: ../../Zotlabs/Module/Admin/Site.php:314
+msgid ""
+"Maximum system load before delivery and poll processes are deferred - "
+"default 50."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:689 ../../Zotlabs/Module/Profiles.php:771
-#: ../../include/channel.php:981
-msgid "Edit visibility"
+#: ../../Zotlabs/Module/Admin/Site.php:315
+msgid "Expiration period in days for imported (grid/network) content"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:690
-msgid "Profile Tools"
+#: ../../Zotlabs/Module/Admin/Site.php:315
+msgid "0 for no expiration of imported content"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:691
-msgid "Change cover photo"
+#: ../../Zotlabs/Module/Admin/Themes.php:18
+msgid "Theme settings updated."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:692 ../../include/channel.php:952
-msgid "Change profile photo"
+#: ../../Zotlabs/Module/Admin/Themes.php:58
+msgid "No themes found."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:693
-msgid "Create a new profile using these settings"
+#: ../../Zotlabs/Module/Admin/Themes.php:114
+msgid "Screenshot"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:694
-msgid "Clone this profile"
+#: ../../Zotlabs/Module/Admin/Themes.php:121
+#: ../../Zotlabs/Module/Admin/Themes.php:155 ../../include/widgets.php:1562
+msgid "Themes"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:695
-msgid "Delete this profile"
+#: ../../Zotlabs/Module/Admin/Themes.php:160
+msgid "[Experimental]"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:696
-msgid "Add profile things"
+#: ../../Zotlabs/Module/Admin/Themes.php:161
+msgid "[Unsupported]"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:697 ../../include/conversation.php:1546
-#: ../../include/widgets.php:105
-msgid "Personal"
+#: ../../Zotlabs/Module/Import.php:33
+#, php-format
+msgid "Your service plan only allows %d channels."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:699
-msgid "Relation"
+#: ../../Zotlabs/Module/Import.php:71 ../../Zotlabs/Module/Import_items.php:42
+msgid "Nothing to import."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:700 ../../include/datetime.php:48
-msgid "Miscellaneous"
+#: ../../Zotlabs/Module/Import.php:95 ../../Zotlabs/Module/Import_items.php:66
+msgid "Unable to download data from old server"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:702
-msgid "Import profile from file"
+#: ../../Zotlabs/Module/Import.php:101
+#: ../../Zotlabs/Module/Import_items.php:72
+msgid "Imported file is empty."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:703
-msgid "Export profile to file"
+#: ../../Zotlabs/Module/Import.php:123
+#: ../../Zotlabs/Module/Import_items.php:88
+#, php-format
+msgid "Warning: Database versions differ by %1$d updates."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:704
-msgid "Your gender"
+#: ../../Zotlabs/Module/Import.php:153 ../../include/import.php:107
+msgid "Cloned channel not found. Import failed."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:705
-msgid "Marital status"
+#: ../../Zotlabs/Module/Import.php:163
+msgid "No channel. Import failed."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:706
-msgid "Sexual preference"
+#: ../../Zotlabs/Module/Import.php:520
+#: ../../include/Import/import_diaspora.php:142
+msgid "Import completed."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:709
-msgid "Profile name"
+#: ../../Zotlabs/Module/Import.php:542
+msgid "You must be logged in to use this feature."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:709 ../../Zotlabs/Module/Profiles.php:713
-#: ../../Zotlabs/Module/Appman.php:115 ../../Zotlabs/Module/Appman.php:116
-#: ../../Zotlabs/Module/Events.php:452 ../../Zotlabs/Module/Events.php:457
-#: ../../include/datetime.php:245
-msgid "Required"
+#: ../../Zotlabs/Module/Import.php:547
+msgid "Import Channel"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:711
-msgid "This is your default profile."
+#: ../../Zotlabs/Module/Import.php:548
+msgid ""
+"Use this form to import an existing channel from a different server/hub. You "
+"may retrieve the channel identity from the old server/hub via the network or "
+"provide an export file."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:713
-msgid "Your full name"
+#: ../../Zotlabs/Module/Import.php:549
+#: ../../Zotlabs/Module/Import_items.php:121
+msgid "File to Upload"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:714
-msgid "Title/Description"
+#: ../../Zotlabs/Module/Import.php:550
+msgid "Or provide the old server/hub details"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:717
-msgid "Street address"
+#: ../../Zotlabs/Module/Import.php:551
+msgid "Your old identity address (xyz@example.com)"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:718
-msgid "Locality/City"
+#: ../../Zotlabs/Module/Import.php:552
+msgid "Your old login email address"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:719
-msgid "Region/State"
+#: ../../Zotlabs/Module/Import.php:553
+msgid "Your old login password"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:720
-msgid "Postal/Zip code"
+#: ../../Zotlabs/Module/Import.php:554
+msgid ""
+"For either option, please choose whether to make this hub your new primary "
+"address, or whether your old location should continue this role. You will be "
+"able to post from either location, but only one can be marked as the primary "
+"location for files, photos, and media."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:721
-msgid "Country"
+#: ../../Zotlabs/Module/Import.php:555
+msgid "Make this hub my primary location"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:726
-msgid "Who (if applicable)"
+#: ../../Zotlabs/Module/Import.php:556
+msgid ""
+"Import existing posts if possible (experimental - limited by available memory"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:726
-msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
+#: ../../Zotlabs/Module/Import.php:557
+msgid ""
+"This process may take several minutes to complete. Please submit the form "
+"only once and leave this page open until finished."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:727
-msgid "Since (date)"
+#: ../../Zotlabs/Module/Directory.php:63 ../../Zotlabs/Module/Ratings.php:83
+#: ../../Zotlabs/Module/Display.php:17 ../../Zotlabs/Module/Search.php:17
+#: ../../Zotlabs/Module/Photos.php:509
+#: ../../Zotlabs/Module/Viewconnections.php:23
+msgid "Public access denied."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:730
-msgid "Tell us about yourself"
+#: ../../Zotlabs/Module/Directory.php:243
+#, php-format
+msgid "%d rating"
+msgid_plural "%d ratings"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../Zotlabs/Module/Directory.php:254
+msgid "Gender: "
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:731
-msgid "Homepage URL"
+#: ../../Zotlabs/Module/Directory.php:256
+msgid "Status: "
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:732
-msgid "Hometown"
+#: ../../Zotlabs/Module/Directory.php:258
+msgid "Homepage: "
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:733
-msgid "Political views"
+#: ../../Zotlabs/Module/Directory.php:306 ../../include/channel.php:1207
+msgid "Age:"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:734
-msgid "Religious views"
+#: ../../Zotlabs/Module/Directory.php:311 ../../include/event.php:52
+#: ../../include/event.php:84 ../../include/bb2diaspora.php:507
+#: ../../include/channel.php:1049
+msgid "Location:"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:735
-msgid "Keywords used in directory listings"
+#: ../../Zotlabs/Module/Directory.php:317
+msgid "Description:"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:735
-msgid "Example: fishing photography software"
+#: ../../Zotlabs/Module/Directory.php:322 ../../include/channel.php:1223
+msgid "Hometown:"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:738
-msgid "Musical interests"
+#: ../../Zotlabs/Module/Directory.php:324 ../../include/channel.php:1231
+msgid "About:"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:739
-msgid "Books, literature"
+#: ../../Zotlabs/Module/Directory.php:325 ../../Zotlabs/Module/Match.php:68
+#: ../../Zotlabs/Module/Suggest.php:56 ../../include/channel.php:1034
+#: ../../include/connections.php:78 ../../include/conversation.php:957
+#: ../../include/widgets.php:147 ../../include/widgets.php:184
+msgid "Connect"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:740
-msgid "Television"
+#: ../../Zotlabs/Module/Directory.php:326
+msgid "Public Forum:"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:741
-msgid "Film/Dance/Culture/Entertainment"
+#: ../../Zotlabs/Module/Directory.php:329
+msgid "Keywords: "
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:742
-msgid "Hobbies/Interests"
+#: ../../Zotlabs/Module/Directory.php:332
+msgid "Don't suggest"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:743
-msgid "Love/Romance"
+#: ../../Zotlabs/Module/Directory.php:334
+msgid "Common connections:"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:745
-msgid "School/Education"
+#: ../../Zotlabs/Module/Directory.php:383
+msgid "Global Directory"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:746
-msgid "Contact information and social networks"
+#: ../../Zotlabs/Module/Directory.php:383
+msgid "Local Directory"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:747
-msgid "My other channels"
+#: ../../Zotlabs/Module/Directory.php:388
+#: ../../Zotlabs/Module/Directory.php:393
+#: ../../Zotlabs/Module/Connections.php:309
+#: ../../include/contact_widgets.php:23
+msgid "Find"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:767 ../../include/channel.php:977
-msgid "Profile Image"
+#: ../../Zotlabs/Module/Directory.php:389
+msgid "Finding:"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:777 ../../include/nav.php:90
-#: ../../include/channel.php:959
-msgid "Edit Profiles"
+#: ../../Zotlabs/Module/Directory.php:392 ../../Zotlabs/Module/Suggest.php:64
+#: ../../include/contact_widgets.php:24
+msgid "Channel Suggestions"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:778 ../../Zotlabs/Module/Chat.php:255
-#: ../../Zotlabs/Module/Manage.php:143
-msgid "Create New"
+#: ../../Zotlabs/Module/Directory.php:394
+msgid "next page"
msgstr ""
-#: ../../Zotlabs/Module/Rpost.php:135 ../../Zotlabs/Module/Editpost.php:106
-msgid "Edit post"
+#: ../../Zotlabs/Module/Directory.php:394
+msgid "previous page"
+msgstr ""
+
+#: ../../Zotlabs/Module/Directory.php:395
+msgid "Sort options"
+msgstr ""
+
+#: ../../Zotlabs/Module/Directory.php:396
+msgid "Alphabetic"
+msgstr ""
+
+#: ../../Zotlabs/Module/Directory.php:397
+msgid "Reverse Alphabetic"
+msgstr ""
+
+#: ../../Zotlabs/Module/Directory.php:398
+msgid "Newest to Oldest"
+msgstr ""
+
+#: ../../Zotlabs/Module/Directory.php:399
+msgid "Oldest to Newest"
+msgstr ""
+
+#: ../../Zotlabs/Module/Directory.php:416
+msgid "No entries (some entries may be hidden)."
msgstr ""
#: ../../Zotlabs/Module/Bookmarks.php:53
@@ -1496,54 +2015,36 @@ msgstr ""
msgid "My Connections Bookmarks"
msgstr ""
-#: ../../Zotlabs/Module/Item.php:179
-msgid "Unable to locate original post."
-msgstr ""
-
-#: ../../Zotlabs/Module/Item.php:432
-msgid "Empty post discarded."
-msgstr ""
-
-#: ../../Zotlabs/Module/Item.php:472
-msgid "Executable content type not permitted to this channel."
+#: ../../Zotlabs/Module/Rpost.php:138 ../../Zotlabs/Module/Editpost.php:106
+msgid "Edit post"
msgstr ""
-#: ../../Zotlabs/Module/Item.php:856
-msgid "Duplicate post suppressed."
+#: ../../Zotlabs/Module/Ratings.php:70
+msgid "No ratings"
msgstr ""
-#: ../../Zotlabs/Module/Item.php:989
-msgid "System error. Post not saved."
+#: ../../Zotlabs/Module/Ratings.php:97 ../../Zotlabs/Module/Pubsites.php:35
+#: ../../include/conversation.php:960
+msgid "Ratings"
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1242
-msgid "Unable to obtain post information from database."
+#: ../../Zotlabs/Module/Ratings.php:98
+msgid "Rating: "
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1249
-#, php-format
-msgid "You have reached your limit of %1$.0f top level posts."
+#: ../../Zotlabs/Module/Ratings.php:99
+msgid "Website: "
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1256
-#, php-format
-msgid "You have reached your limit of %1$.0f webpages."
+#: ../../Zotlabs/Module/Ratings.php:101
+msgid "Description: "
msgstr ""
#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:222
-#: ../../include/nav.php:94 ../../include/conversation.php:1652
+#: ../../include/nav.php:95 ../../include/conversation.php:1671
msgid "Photos"
msgstr ""
-#: ../../Zotlabs/Module/Fbrowser.php:66 ../../Zotlabs/Module/Fbrowser.php:88
-#: ../../Zotlabs/Module/Settings.php:661 ../../Zotlabs/Module/Settings.php:687
-#: ../../Zotlabs/Module/Admin.php:1406 ../../Zotlabs/Module/Wiki.php:171
-#: ../../Zotlabs/Module/Wiki.php:211 ../../Zotlabs/Module/Tagrm.php:15
-#: ../../Zotlabs/Module/Tagrm.php:138 ../../include/conversation.php:1236
-#: ../../include/conversation.php:1279
-msgid "Cancel"
-msgstr ""
-
#: ../../Zotlabs/Module/Page.php:40 ../../Zotlabs/Module/Block.php:31
msgid "Invalid item."
msgstr ""
@@ -1571,30 +2072,6 @@ msgstr ""
msgid "- select -"
msgstr ""
-#: ../../Zotlabs/Module/Filer.php:53 ../../Zotlabs/Module/Admin.php:2033
-#: ../../Zotlabs/Module/Admin.php:2053 ../../Zotlabs/Module/Rbmark.php:32
-#: ../../Zotlabs/Module/Rbmark.php:104 ../../include/text.php:926
-#: ../../include/text.php:938 ../../include/widgets.php:201
-msgid "Save"
-msgstr ""
-
-#: ../../Zotlabs/Module/Channel.php:28 ../../Zotlabs/Module/Chat.php:25
-#: ../../Zotlabs/Module/Wiki.php:20
-msgid "You must be logged in to see this page."
-msgstr ""
-
-#: ../../Zotlabs/Module/Channel.php:40
-msgid "Posts and comments"
-msgstr ""
-
-#: ../../Zotlabs/Module/Channel.php:41
-msgid "Only posts"
-msgstr ""
-
-#: ../../Zotlabs/Module/Channel.php:101
-msgid "Insufficient permissions. Request redirected to profile page."
-msgstr ""
-
#: ../../Zotlabs/Module/Connections.php:56
#: ../../Zotlabs/Module/Connections.php:161
#: ../../Zotlabs/Module/Connections.php:242
@@ -1621,13 +2098,13 @@ msgstr ""
#: ../../Zotlabs/Module/Connections.php:76
#: ../../Zotlabs/Module/Connections.php:86 ../../Zotlabs/Module/Menu.php:116
-#: ../../include/conversation.php:1555
+#: ../../include/conversation.php:1572
msgid "New"
msgstr ""
#: ../../Zotlabs/Module/Connections.php:92
#: ../../Zotlabs/Module/Connections.php:107
-#: ../../Zotlabs/Module/Connedit.php:632 ../../include/widgets.php:497
+#: ../../Zotlabs/Module/Connedit.php:629 ../../include/widgets.php:533
msgid "All"
msgstr ""
@@ -1689,7 +2166,7 @@ msgstr ""
msgid "Network"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:270 ../../Zotlabs/Module/Admin.php:710
+#: ../../Zotlabs/Module/Connections.php:270
msgid "Status"
msgstr ""
@@ -1701,18 +2178,13 @@ msgstr ""
msgid "Approve connection"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:275
-#: ../../Zotlabs/Module/Admin.php:1037
-msgid "Approve"
-msgstr ""
-
#: ../../Zotlabs/Module/Connections.php:276
msgid "Ignore connection"
msgstr ""
#: ../../Zotlabs/Module/Connections.php:277
-#: ../../Zotlabs/Module/Connedit.php:586
#: ../../Zotlabs/Module/Notifications.php:55
+#: ../../Zotlabs/Module/Connedit.php:583
msgid "Ignore"
msgstr ""
@@ -1721,14 +2193,14 @@ msgid "Recent activity"
msgstr ""
#: ../../Zotlabs/Module/Connections.php:302 ../../Zotlabs/Lib/Apps.php:209
-#: ../../include/text.php:855 ../../include/nav.php:190
+#: ../../include/nav.php:191 ../../include/text.php:901
msgid "Connections"
msgstr ""
#: ../../Zotlabs/Module/Connections.php:306 ../../Zotlabs/Module/Search.php:44
-#: ../../Zotlabs/Lib/Apps.php:230 ../../include/acl_selectors.php:274
-#: ../../include/text.php:925 ../../include/text.php:937
-#: ../../include/nav.php:169
+#: ../../Zotlabs/Lib/Apps.php:230 ../../include/nav.php:170
+#: ../../include/acl_selectors.php:174 ../../include/text.php:971
+#: ../../include/text.php:983 ../../include/widgets.php:315
msgid "Search"
msgstr ""
@@ -1770,30 +2242,30 @@ msgstr ""
msgid "Unable to process image."
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4283
+#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4331
msgid "female"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4284
+#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4332
#, php-format
msgid "%1$s updated her %2$s"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4285
+#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4333
msgid "male"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4286
+#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4334
#, php-format
msgid "%1$s updated his %2$s"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4288
+#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4336
#, php-format
msgid "%1$s updated their %2$s"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/channel.php:1710
+#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/channel.php:1731
msgid "cover photo"
msgstr ""
@@ -1819,8 +2291,8 @@ msgid "Upload Cover Photo"
msgstr ""
#: ../../Zotlabs/Module/Cover_photo.php:361
-#: ../../Zotlabs/Module/Settings.php:1138
#: ../../Zotlabs/Module/Profile_photo.php:396
+#: ../../Zotlabs/Module/Settings/Channel.php:399
msgid "or"
msgstr ""
@@ -1849,195 +2321,166 @@ msgstr ""
msgid "Done Editing"
msgstr ""
-#: ../../Zotlabs/Module/Impel.php:41 ../../include/bbcode.php:192
-msgid "webpage"
-msgstr ""
-
-#: ../../Zotlabs/Module/Impel.php:46 ../../include/bbcode.php:198
-msgid "block"
-msgstr ""
-
-#: ../../Zotlabs/Module/Impel.php:51 ../../include/bbcode.php:195
-msgid "layout"
-msgstr ""
-
-#: ../../Zotlabs/Module/Impel.php:58 ../../include/bbcode.php:201
-msgid "menu"
-msgstr ""
-
-#: ../../Zotlabs/Module/Impel.php:191
-#, php-format
-msgid "%s element installed"
+#: ../../Zotlabs/Module/Editblock.php:79 ../../Zotlabs/Module/Editblock.php:95
+#: ../../Zotlabs/Module/Editlayout.php:79
+#: ../../Zotlabs/Module/Editwebpage.php:80
+#: ../../Zotlabs/Module/Editpost.php:24
+msgid "Item not found"
msgstr ""
-#: ../../Zotlabs/Module/Impel.php:194
-#, php-format
-msgid "%s element installation failed"
+#: ../../Zotlabs/Module/Editblock.php:108 ../../Zotlabs/Module/Blocks.php:97
+#: ../../Zotlabs/Module/Blocks.php:155
+msgid "Block Name"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:19
-msgid "Like/Dislike"
+#: ../../Zotlabs/Module/Editblock.php:111
+#: ../../Zotlabs/Module/Editwebpage.php:146 ../../Zotlabs/Module/Mail.php:244
+#: ../../Zotlabs/Module/Mail.php:369 ../../Zotlabs/Module/Chat.php:207
+#: ../../include/conversation.php:1148
+msgid "Insert web link"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:24
-msgid "This action is restricted to members."
+#: ../../Zotlabs/Module/Editblock.php:124 ../../include/conversation.php:1259
+msgid "Title (optional)"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:25
-msgid ""
-"Please <a href=\"rmagic\">login with your $Projectname ID</a> or <a href="
-"\"register\">register as a new $Projectname member</a> to continue."
+#: ../../Zotlabs/Module/Editblock.php:133
+msgid "Edit Block"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:105 ../../Zotlabs/Module/Like.php:131
-#: ../../Zotlabs/Module/Like.php:169
-msgid "Invalid request."
+#: ../../Zotlabs/Module/Editlayout.php:127
+#: ../../Zotlabs/Module/Layouts.php:128 ../../Zotlabs/Module/Layouts.php:188
+msgid "Layout Name"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:117 ../../include/conversation.php:126
-msgid "channel"
+#: ../../Zotlabs/Module/Editlayout.php:128
+#: ../../Zotlabs/Module/Layouts.php:131
+msgid "Layout Description (Optional)"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:146
-msgid "thing"
+#: ../../Zotlabs/Module/Editlayout.php:136
+msgid "Edit Layout"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:192
-msgid "Channel unavailable."
+#: ../../Zotlabs/Module/Editwebpage.php:142
+msgid "Page link"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:240
-msgid "Previous action reversed."
+#: ../../Zotlabs/Module/Editwebpage.php:169
+msgid "Edit Webpage"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87
-#: ../../Zotlabs/Module/Tagger.php:47 ../../include/text.php:1945
-#: ../../include/conversation.php:120
-msgid "photo"
+#: ../../Zotlabs/Module/Menu.php:49
+msgid "Unable to update menu."
msgstr ""
-#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87
-#: ../../include/text.php:1951 ../../include/conversation.php:148
-msgid "status"
+#: ../../Zotlabs/Module/Menu.php:60
+msgid "Unable to create menu."
msgstr ""
-#: ../../Zotlabs/Module/Like.php:372 ../../Zotlabs/Module/Events.php:253
-#: ../../Zotlabs/Module/Tagger.php:51 ../../include/text.php:1948
-#: ../../include/event.php:951 ../../include/conversation.php:123
-msgid "event"
+#: ../../Zotlabs/Module/Menu.php:98 ../../Zotlabs/Module/Menu.php:110
+msgid "Menu Name"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:419 ../../include/conversation.php:164
-#, php-format
-msgid "%1$s likes %2$s's %3$s"
+#: ../../Zotlabs/Module/Menu.php:98
+msgid "Unique name (not visible on webpage) - required"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:421 ../../include/conversation.php:167
-#, php-format
-msgid "%1$s doesn't like %2$s's %3$s"
+#: ../../Zotlabs/Module/Menu.php:99 ../../Zotlabs/Module/Menu.php:111
+msgid "Menu Title"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:423
-#, php-format
-msgid "%1$s agrees with %2$s's %3$s"
+#: ../../Zotlabs/Module/Menu.php:99
+msgid "Visible on webpage - leave empty for no title"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:425
-#, php-format
-msgid "%1$s doesn't agree with %2$s's %3$s"
+#: ../../Zotlabs/Module/Menu.php:100
+msgid "Allow Bookmarks"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:427
-#, php-format
-msgid "%1$s abstains from a decision on %2$s's %3$s"
+#: ../../Zotlabs/Module/Menu.php:100 ../../Zotlabs/Module/Menu.php:157
+msgid "Menu may be used to store saved bookmarks"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:429
-#, php-format
-msgid "%1$s is attending %2$s's %3$s"
+#: ../../Zotlabs/Module/Menu.php:101 ../../Zotlabs/Module/Menu.php:159
+msgid "Submit and proceed"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:431
-#, php-format
-msgid "%1$s is not attending %2$s's %3$s"
+#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2309
+msgid "Menus"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:433
-#, php-format
-msgid "%1$s may attend %2$s's %3$s"
+#: ../../Zotlabs/Module/Menu.php:113 ../../Zotlabs/Module/Locs.php:120
+msgid "Drop"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:538
-msgid "Action completed."
+#: ../../Zotlabs/Module/Menu.php:114 ../../Zotlabs/Module/Webpages.php:251
+#: ../../Zotlabs/Module/Blocks.php:157 ../../Zotlabs/Module/Layouts.php:190
+#: ../../include/page_widgets.php:47
+msgid "Created"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:539
-msgid "Thank you."
+#: ../../Zotlabs/Module/Menu.php:115 ../../Zotlabs/Module/Webpages.php:252
+#: ../../Zotlabs/Module/Blocks.php:158 ../../Zotlabs/Module/Layouts.php:191
+#: ../../include/page_widgets.php:48
+msgid "Edited"
msgstr ""
-#: ../../Zotlabs/Module/Dirsearch.php:25 ../../Zotlabs/Module/Regdir.php:49
-msgid "This site is not a directory server"
+#: ../../Zotlabs/Module/Menu.php:117
+msgid "Bookmarks allowed"
msgstr ""
-#: ../../Zotlabs/Module/Dirsearch.php:33
-msgid "This directory server requires an access token"
+#: ../../Zotlabs/Module/Menu.php:119
+msgid "Delete this menu"
msgstr ""
-#: ../../Zotlabs/Module/Editblock.php:79 ../../Zotlabs/Module/Editblock.php:95
-#: ../../Zotlabs/Module/Editlayout.php:79
-#: ../../Zotlabs/Module/Editwebpage.php:80
-#: ../../Zotlabs/Module/Editpost.php:24
-msgid "Item not found"
+#: ../../Zotlabs/Module/Menu.php:120 ../../Zotlabs/Module/Menu.php:154
+msgid "Edit menu contents"
msgstr ""
-#: ../../Zotlabs/Module/Editblock.php:108 ../../Zotlabs/Module/Blocks.php:97
-#: ../../Zotlabs/Module/Blocks.php:155
-msgid "Block Name"
+#: ../../Zotlabs/Module/Menu.php:121
+msgid "Edit this menu"
msgstr ""
-#: ../../Zotlabs/Module/Editblock.php:111
-#: ../../Zotlabs/Module/Editwebpage.php:146 ../../Zotlabs/Module/Chat.php:207
-#: ../../Zotlabs/Module/Mail.php:244 ../../Zotlabs/Module/Mail.php:369
-#: ../../include/conversation.php:1147
-msgid "Insert web link"
+#: ../../Zotlabs/Module/Menu.php:136
+msgid "Menu could not be deleted."
msgstr ""
-#: ../../Zotlabs/Module/Editblock.php:124 ../../include/conversation.php:1244
-msgid "Title (optional)"
+#: ../../Zotlabs/Module/Menu.php:144 ../../Zotlabs/Module/Mitem.php:28
+msgid "Menu not found."
msgstr ""
-#: ../../Zotlabs/Module/Editblock.php:133
-msgid "Edit Block"
+#: ../../Zotlabs/Module/Menu.php:149
+msgid "Edit Menu"
msgstr ""
-#: ../../Zotlabs/Module/Editlayout.php:127
-#: ../../Zotlabs/Module/Layouts.php:128 ../../Zotlabs/Module/Layouts.php:188
-msgid "Layout Name"
+#: ../../Zotlabs/Module/Menu.php:153
+msgid "Add or remove entries to this menu"
msgstr ""
-#: ../../Zotlabs/Module/Editlayout.php:128
-#: ../../Zotlabs/Module/Layouts.php:131
-msgid "Layout Description (Optional)"
+#: ../../Zotlabs/Module/Menu.php:155
+msgid "Menu name"
msgstr ""
-#: ../../Zotlabs/Module/Editlayout.php:136
-msgid "Edit Layout"
+#: ../../Zotlabs/Module/Menu.php:155
+msgid "Must be unique, only seen by you"
msgstr ""
-#: ../../Zotlabs/Module/Editwebpage.php:142
-msgid "Page link"
+#: ../../Zotlabs/Module/Menu.php:156
+msgid "Menu title"
msgstr ""
-#: ../../Zotlabs/Module/Editwebpage.php:169
-msgid "Edit Webpage"
+#: ../../Zotlabs/Module/Menu.php:156
+msgid "Menu title as seen by others"
msgstr ""
-#: ../../Zotlabs/Module/Acl.php:312
-msgid "network"
+#: ../../Zotlabs/Module/Menu.php:157
+msgid "Allow bookmarks"
msgstr ""
-#: ../../Zotlabs/Module/Acl.php:322
-msgid "RSS"
+#: ../../Zotlabs/Module/Menu.php:166 ../../Zotlabs/Module/Mitem.php:120
+#: ../../Zotlabs/Module/Xchan.php:41
+msgid "Not found."
msgstr ""
#: ../../Zotlabs/Module/Appman.php:37 ../../Zotlabs/Module/Appman.php:53
@@ -2064,6 +2507,13 @@ msgstr ""
msgid "Name of app"
msgstr ""
+#: ../../Zotlabs/Module/Appman.php:115 ../../Zotlabs/Module/Appman.php:116
+#: ../../Zotlabs/Module/Profiles.php:709 ../../Zotlabs/Module/Profiles.php:713
+#: ../../Zotlabs/Module/Events.php:452 ../../Zotlabs/Module/Events.php:457
+#: ../../include/datetime.php:245
+msgid "Required"
+msgstr ""
+
#: ../../Zotlabs/Module/Appman.php:116
msgid "Location (URL) of app"
msgstr ""
@@ -2097,430 +2547,252 @@ msgstr ""
msgid "Location (URL) to purchase app"
msgstr ""
-#: ../../Zotlabs/Module/Help.php:26
-msgid "Documentation Search"
-msgstr ""
-
-#: ../../Zotlabs/Module/Help.php:67 ../../Zotlabs/Module/Help.php:73
-#: ../../Zotlabs/Module/Help.php:79
-msgid "Help:"
-msgstr ""
-
-#: ../../Zotlabs/Module/Help.php:85 ../../Zotlabs/Module/Help.php:90
-#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Lib/Apps.php:225
-#: ../../include/nav.php:163
-msgid "Help"
-msgstr ""
-
-#: ../../Zotlabs/Module/Help.php:120
-msgid "$Projectname Documentation"
-msgstr ""
-
-#: ../../Zotlabs/Module/Attach.php:13
-msgid "Item not available."
+#: ../../Zotlabs/Module/Mail.php:38
+msgid "Unable to lookup recipient."
msgstr ""
-#: ../../Zotlabs/Module/Pdledit.php:18
-msgid "Layout updated."
+#: ../../Zotlabs/Module/Mail.php:45
+msgid "Unable to communicate with requested channel."
msgstr ""
-#: ../../Zotlabs/Module/Pdledit.php:34 ../../Zotlabs/Module/Pdledit.php:61
-msgid "Edit System Page Description"
+#: ../../Zotlabs/Module/Mail.php:52
+msgid "Cannot verify requested channel."
msgstr ""
-#: ../../Zotlabs/Module/Pdledit.php:56
-msgid "Layout not found."
+#: ../../Zotlabs/Module/Mail.php:70
+msgid "Selected channel has private message restrictions. Send failed."
msgstr ""
-#: ../../Zotlabs/Module/Pdledit.php:62
-msgid "Module Name:"
+#: ../../Zotlabs/Module/Mail.php:135
+msgid "Messages"
msgstr ""
-#: ../../Zotlabs/Module/Pdledit.php:63
-msgid "Layout Help"
+#: ../../Zotlabs/Module/Mail.php:170
+msgid "Message recalled."
msgstr ""
-#: ../../Zotlabs/Module/Ffsapi.php:12
-msgid "Share content from Firefox to $Projectname"
+#: ../../Zotlabs/Module/Mail.php:183
+msgid "Conversation removed."
msgstr ""
-#: ../../Zotlabs/Module/Ffsapi.php:15
-msgid "Activate the Firefox $Projectname provider"
+#: ../../Zotlabs/Module/Mail.php:197 ../../Zotlabs/Module/Mail.php:306
+#: ../../Zotlabs/Module/Chat.php:205 ../../include/conversation.php:1183
+msgid "Please enter a link URL:"
msgstr ""
-#: ../../Zotlabs/Module/Home.php:74 ../../Zotlabs/Module/Home.php:82
-#: ../../Zotlabs/Module/Siteinfo.php:48
-msgid "$Projectname"
+#: ../../Zotlabs/Module/Mail.php:198 ../../Zotlabs/Module/Mail.php:307
+msgid "Expires YYYY-MM-DD HH:MM"
msgstr ""
-#: ../../Zotlabs/Module/Home.php:92
-#, php-format
-msgid "Welcome to %s"
+#: ../../Zotlabs/Module/Mail.php:226
+msgid "Requested channel is not in this network"
msgstr ""
-#: ../../Zotlabs/Module/Lockview.php:75
-msgid "Remote privacy information not available."
+#: ../../Zotlabs/Module/Mail.php:234
+msgid "Send Private Message"
msgstr ""
-#: ../../Zotlabs/Module/Lockview.php:96
-msgid "Visible to:"
+#: ../../Zotlabs/Module/Mail.php:235 ../../Zotlabs/Module/Mail.php:360
+msgid "To:"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:32 ../../Zotlabs/Module/Display.php:40
-#: ../../Zotlabs/Module/Admin.php:164 ../../Zotlabs/Module/Admin.php:1255
-#: ../../Zotlabs/Module/Admin.php:1561 ../../Zotlabs/Module/Thing.php:89
-#: ../../Zotlabs/Module/Viewsrc.php:24 ../../include/items.php:3369
-msgid "Item not found."
+#: ../../Zotlabs/Module/Mail.php:238 ../../Zotlabs/Module/Mail.php:362
+msgid "Subject:"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:87
-msgid "Permission Denied."
+#: ../../Zotlabs/Module/Mail.php:241 ../../Zotlabs/Module/Invite.php:135
+msgid "Your message:"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:103
-msgid "File not found."
+#: ../../Zotlabs/Module/Mail.php:243 ../../Zotlabs/Module/Mail.php:368
+#: ../../include/conversation.php:1243
+msgid "Attach file"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:146
-msgid "Edit file permissions"
+#: ../../Zotlabs/Module/Mail.php:245
+msgid "Send"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:152 ../../Zotlabs/Module/Chat.php:234
-#: ../../Zotlabs/Module/Photos.php:669 ../../Zotlabs/Module/Photos.php:1047
-#: ../../Zotlabs/Module/Thing.php:313 ../../Zotlabs/Module/Thing.php:363
-#: ../../include/acl_selectors.php:281
-msgid "Permissions"
+#: ../../Zotlabs/Module/Mail.php:248 ../../Zotlabs/Module/Mail.php:373
+#: ../../include/conversation.php:1288
+msgid "Set expiration date"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:159
-msgid "Set/edit permissions"
+#: ../../Zotlabs/Module/Mail.php:250 ../../Zotlabs/Module/Mail.php:375
+#: ../../Zotlabs/Module/Chat.php:206 ../../Zotlabs/Lib/ThreadItem.php:724
+#: ../../include/conversation.php:1293
+msgid "Encrypt text"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:160
-msgid "Include all files and sub folders"
+#: ../../Zotlabs/Module/Mail.php:332
+msgid "Delete message"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:161
-msgid "Return to file list"
+#: ../../Zotlabs/Module/Mail.php:333
+msgid "Delivery report"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:163
-msgid "Copy/paste this code to attach file to a post"
+#: ../../Zotlabs/Module/Mail.php:334
+msgid "Recall message"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:164
-msgid "Copy/paste this URL to link file from a web page"
+#: ../../Zotlabs/Module/Mail.php:336
+msgid "Message has been recalled."
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:166
-msgid "Share this file"
+#: ../../Zotlabs/Module/Mail.php:353
+msgid "Delete Conversation"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:167
-msgid "Show URL to this file"
+#: ../../Zotlabs/Module/Mail.php:355
+msgid ""
+"No secure communications available. You <strong>may</strong> be able to "
+"respond from the sender's profile page."
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:168
-msgid "Notify your contacts about this file"
+#: ../../Zotlabs/Module/Mail.php:359
+msgid "Send Reply"
msgstr ""
-#: ../../Zotlabs/Module/Probe.php:28 ../../Zotlabs/Module/Probe.php:32
+#: ../../Zotlabs/Module/Mail.php:364
#, php-format
-msgid "Fetching URL returns error: %1$s"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:80
-msgid "Could not access contact record."
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:104
-msgid "Could not locate selected profile."
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:256
-msgid "Connection updated."
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:258
-msgid "Failed to update connection record."
+msgid "Your message for %s (%s):"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:308
-msgid "is now connected to"
+#: ../../Zotlabs/Module/Attach.php:13
+msgid "Item not available."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:443
-msgid "Could not access address book record."
+#: ../../Zotlabs/Module/Ffsapi.php:12
+msgid "Share content from Firefox to $Projectname"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:463
-msgid "Refresh failed - channel is currently unavailable."
+#: ../../Zotlabs/Module/Ffsapi.php:15
+msgid "Activate the Firefox $Projectname provider"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:478 ../../Zotlabs/Module/Connedit.php:487
-#: ../../Zotlabs/Module/Connedit.php:496 ../../Zotlabs/Module/Connedit.php:505
-#: ../../Zotlabs/Module/Connedit.php:518
-msgid "Unable to set address book parameters."
+#: ../../Zotlabs/Module/Help.php:27
+msgid "Documentation Search"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:541
-msgid "Connection has been removed."
+#: ../../Zotlabs/Module/Help.php:57
+msgid "$Projectname Documentation"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:557 ../../Zotlabs/Lib/Apps.php:221
-#: ../../include/nav.php:88 ../../include/conversation.php:958
-msgid "View Profile"
+#: ../../Zotlabs/Module/Home.php:74 ../../Zotlabs/Module/Home.php:82
+#: ../../Zotlabs/Module/Siteinfo.php:48
+msgid "$Projectname"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:560
+#: ../../Zotlabs/Module/Home.php:92
#, php-format
-msgid "View %s's profile"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:564
-msgid "Refresh Permissions"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:567
-msgid "Fetch updated permissions"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:571
-msgid "Recent Activity"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:574
-msgid "View recent posts and comments"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:578 ../../Zotlabs/Module/Admin.php:1041
-msgid "Unblock"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:578 ../../Zotlabs/Module/Admin.php:1040
-msgid "Block"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:581
-msgid "Block (or Unblock) all communications with this connection"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:582
-msgid "This connection is blocked!"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:586
-msgid "Unignore"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:589
-msgid "Ignore (or Unignore) all inbound communications from this connection"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:590
-msgid "This connection is ignored!"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:594
-msgid "Unarchive"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:594
-msgid "Archive"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:597
-msgid ""
-"Archive (or Unarchive) this connection - mark channel dead but keep content"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:598
-msgid "This connection is archived!"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:602
-msgid "Unhide"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:602
-msgid "Hide"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:605
-msgid "Hide or Unhide this connection from your other connections"
+msgid "Welcome to %s"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:606
-msgid "This connection is hidden!"
+#: ../../Zotlabs/Module/Lockview.php:75
+msgid "Remote privacy information not available."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:613
-msgid "Delete this connection"
+#: ../../Zotlabs/Module/Lockview.php:96
+msgid "Visible to:"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:628 ../../include/widgets.php:493
-msgid "Me"
+#: ../../Zotlabs/Module/Filestorage.php:87
+msgid "Permission Denied."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:629 ../../include/widgets.php:494
-msgid "Family"
+#: ../../Zotlabs/Module/Filestorage.php:103
+msgid "File not found."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:630 ../../Zotlabs/Module/Settings.php:407
-#: ../../Zotlabs/Module/Settings.php:411 ../../Zotlabs/Module/Settings.php:412
-#: ../../Zotlabs/Module/Settings.php:415 ../../Zotlabs/Module/Settings.php:426
-#: ../../include/selectors.php:123 ../../include/channel.php:402
-#: ../../include/channel.php:403 ../../include/channel.php:410
-#: ../../include/widgets.php:495
-msgid "Friends"
+#: ../../Zotlabs/Module/Filestorage.php:146
+msgid "Edit file permissions"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:631 ../../include/widgets.php:496
-msgid "Acquaintances"
+#: ../../Zotlabs/Module/Filestorage.php:152 ../../Zotlabs/Module/Thing.php:313
+#: ../../Zotlabs/Module/Thing.php:363 ../../Zotlabs/Module/Photos.php:658
+#: ../../Zotlabs/Module/Photos.php:1047 ../../Zotlabs/Module/Chat.php:234
+#: ../../include/acl_selectors.php:179
+msgid "Permissions"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:693
-msgid "Approve this connection"
+#: ../../Zotlabs/Module/Filestorage.php:159
+msgid "Set/edit permissions"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:693
-msgid "Accept connection to allow communication"
+#: ../../Zotlabs/Module/Filestorage.php:160
+msgid "Include all files and sub folders"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:698
-msgid "Set Affinity"
+#: ../../Zotlabs/Module/Filestorage.php:161
+msgid "Return to file list"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:701
-msgid "Set Profile"
+#: ../../Zotlabs/Module/Filestorage.php:163
+msgid "Copy/paste this code to attach file to a post"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:704
-msgid "Set Affinity & Profile"
+#: ../../Zotlabs/Module/Filestorage.php:164
+msgid "Copy/paste this URL to link file from a web page"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:753
-msgid "none"
+#: ../../Zotlabs/Module/Filestorage.php:166
+msgid "Share this file"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:757 ../../include/widgets.php:623
-msgid "Connection Default Permissions"
+#: ../../Zotlabs/Module/Filestorage.php:167
+msgid "Show URL to this file"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:757 ../../include/items.php:3935
-#, php-format
-msgid "Connection: %s"
+#: ../../Zotlabs/Module/Filestorage.php:168
+msgid "Notify your contacts about this file"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:758
-msgid "Apply these permissions automatically"
+#: ../../Zotlabs/Module/Magic.php:71
+msgid "Hub not found."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:758
-msgid "Connection requests will be approved without your interaction"
+#: ../../Zotlabs/Module/Connect.php:61 ../../Zotlabs/Module/Connect.php:109
+msgid "Continue"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:760
-msgid "This connection's primary address is"
+#: ../../Zotlabs/Module/Connect.php:90
+msgid "Premium Channel Setup"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:761
-msgid "Available locations:"
+#: ../../Zotlabs/Module/Connect.php:92
+msgid "Enable premium channel connection restrictions"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:765
+#: ../../Zotlabs/Module/Connect.php:93
msgid ""
-"The permissions indicated on this page will be applied to all new "
-"connections."
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:766
-msgid "Connection Tools"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:768
-msgid "Slide to adjust your degree of friendship"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:769 ../../Zotlabs/Module/Rate.php:159
-#: ../../include/js_strings.php:20
-msgid "Rating"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:770
-msgid "Slide to adjust your rating"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:771 ../../Zotlabs/Module/Connedit.php:776
-msgid "Optionally explain your rating"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:773
-msgid "Custom Filter"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:774
-msgid "Only import posts with this text"
+"Please enter your restrictions or conditions, such as paypal receipt, usage "
+"guidelines, etc."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:774 ../../Zotlabs/Module/Connedit.php:775
+#: ../../Zotlabs/Module/Connect.php:95 ../../Zotlabs/Module/Connect.php:115
msgid ""
-"words one per line or #tags or /patterns/ or lang=xx, leave blank to import "
-"all posts"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:775
-msgid "Do not import posts with this text"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:777
-msgid "This information is public!"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:782
-msgid "Connection Pending Approval"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:785 ../../Zotlabs/Module/Settings.php:860
-msgid "inherited"
+"This channel may require additional steps or acknowledgement of the "
+"following conditions prior to connecting:"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:787
-#, php-format
+#: ../../Zotlabs/Module/Connect.php:96
msgid ""
-"Please choose the profile you would like to display to %s when viewing your "
-"profile securely."
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:789 ../../Zotlabs/Module/Settings.php:857
-msgid "Their Settings"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:790 ../../Zotlabs/Module/Settings.php:858
-msgid "My Settings"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connedit.php:792 ../../Zotlabs/Module/Settings.php:862
-msgid "Individual Permissions"
+"Potential connections will then see the following text before proceeding:"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:793 ../../Zotlabs/Module/Settings.php:863
+#: ../../Zotlabs/Module/Connect.php:97 ../../Zotlabs/Module/Connect.php:118
msgid ""
-"Some permissions may be inherited from your channel's <a href=\"settings"
-"\"><strong>privacy settings</strong></a>, which have higher priority than "
-"individual settings. You can <strong>not</strong> change those settings here."
+"By continuing, I certify that I have complied with any instructions provided "
+"on this page."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:794
-msgid ""
-"Some permissions may be inherited from your channel's <a href=\"settings"
-"\"><strong>privacy settings</strong></a>, which have higher priority than "
-"individual settings. You can change those settings here but they wont have "
-"any impact unless the inherited setting changes."
+#: ../../Zotlabs/Module/Connect.php:106
+msgid "(No specific instructions have been provided by the channel owner.)"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:795
-msgid "Last update:"
+#: ../../Zotlabs/Module/Connect.php:114
+msgid "Restricted or Premium Channel"
msgstr ""
#: ../../Zotlabs/Module/Group.php:24
@@ -2532,7 +2804,7 @@ msgid "Could not create privacy group."
msgstr ""
#: ../../Zotlabs/Module/Group.php:42 ../../Zotlabs/Module/Group.php:141
-#: ../../include/items.php:3902
+#: ../../include/items.php:3950
msgid "Privacy group not found."
msgstr ""
@@ -2576,128 +2848,101 @@ msgstr ""
msgid "Click on a channel to add or remove."
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:49
-msgid "Unable to update menu."
-msgstr ""
-
-#: ../../Zotlabs/Module/Menu.php:60
-msgid "Unable to create menu."
-msgstr ""
-
-#: ../../Zotlabs/Module/Menu.php:98 ../../Zotlabs/Module/Menu.php:110
-msgid "Menu Name"
-msgstr ""
-
-#: ../../Zotlabs/Module/Menu.php:98
-msgid "Unique name (not visible on webpage) - required"
-msgstr ""
-
-#: ../../Zotlabs/Module/Menu.php:99 ../../Zotlabs/Module/Menu.php:111
-msgid "Menu Title"
-msgstr ""
-
-#: ../../Zotlabs/Module/Menu.php:99
-msgid "Visible on webpage - leave empty for no title"
-msgstr ""
-
-#: ../../Zotlabs/Module/Menu.php:100
-msgid "Allow Bookmarks"
-msgstr ""
-
-#: ../../Zotlabs/Module/Menu.php:100 ../../Zotlabs/Module/Menu.php:157
-msgid "Menu may be used to store saved bookmarks"
-msgstr ""
-
-#: ../../Zotlabs/Module/Menu.php:101 ../../Zotlabs/Module/Menu.php:159
-msgid "Submit and proceed"
+#: ../../Zotlabs/Module/Webpages.php:52
+msgid "Import Webpage Elements"
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2263
-msgid "Menus"
+#: ../../Zotlabs/Module/Webpages.php:53
+msgid "Import selected"
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:113 ../../Zotlabs/Module/Locs.php:120
-msgid "Drop"
+#: ../../Zotlabs/Module/Webpages.php:76
+msgid "Export Webpage Elements"
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:117
-msgid "Bookmarks allowed"
+#: ../../Zotlabs/Module/Webpages.php:77
+msgid "Export selected"
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:119
-msgid "Delete this menu"
+#: ../../Zotlabs/Module/Webpages.php:237 ../../Zotlabs/Lib/Apps.php:218
+#: ../../include/nav.php:109 ../../include/conversation.php:1724
+msgid "Webpages"
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:120 ../../Zotlabs/Module/Menu.php:154
-msgid "Edit menu contents"
+#: ../../Zotlabs/Module/Webpages.php:241 ../../Zotlabs/Module/Blocks.php:161
+#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Module/Photos.php:1078
+#: ../../include/conversation.php:1231
+msgid "Share"
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:121
-msgid "Edit this menu"
+#: ../../Zotlabs/Module/Webpages.php:246 ../../Zotlabs/Module/Events.php:680
+#: ../../Zotlabs/Module/Blocks.php:166 ../../Zotlabs/Module/Layouts.php:197
+#: ../../Zotlabs/Module/Pubsites.php:59 ../../include/page_widgets.php:42
+msgid "View"
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:136
-msgid "Menu could not be deleted."
+#: ../../Zotlabs/Module/Webpages.php:247 ../../Zotlabs/Module/Events.php:473
+#: ../../Zotlabs/Module/Photos.php:1099 ../../Zotlabs/Lib/ThreadItem.php:721
+#: ../../include/page_widgets.php:43 ../../include/conversation.php:1200
+msgid "Preview"
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:144 ../../Zotlabs/Module/Mitem.php:28
-msgid "Menu not found."
+#: ../../Zotlabs/Module/Webpages.php:248 ../../include/page_widgets.php:44
+msgid "Actions"
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:149
-msgid "Edit Menu"
+#: ../../Zotlabs/Module/Webpages.php:249 ../../include/page_widgets.php:45
+msgid "Page Link"
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:153
-msgid "Add or remove entries to this menu"
+#: ../../Zotlabs/Module/Webpages.php:250
+msgid "Page Title"
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:155
-msgid "Menu name"
+#: ../../Zotlabs/Module/Webpages.php:280
+msgid "Invalid file type."
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:155
-msgid "Must be unique, only seen by you"
+#: ../../Zotlabs/Module/Webpages.php:292
+msgid "Error opening zip file"
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:156
-msgid "Menu title"
+#: ../../Zotlabs/Module/Webpages.php:303
+msgid "Invalid folder path."
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:156
-msgid "Menu title as seen by others"
+#: ../../Zotlabs/Module/Webpages.php:330
+msgid "No webpage elements detected."
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:157
-msgid "Allow bookmarks"
+#: ../../Zotlabs/Module/Webpages.php:405
+msgid "Import complete."
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:166 ../../Zotlabs/Module/Mitem.php:120
-#: ../../Zotlabs/Module/Xchan.php:41
-msgid "Not found."
+#: ../../Zotlabs/Module/Impel.php:41 ../../include/bbcode.php:192
+msgid "webpage"
msgstr ""
-#: ../../Zotlabs/Module/Editpost.php:35
-msgid "Item is not editable"
+#: ../../Zotlabs/Module/Impel.php:46 ../../include/bbcode.php:198
+msgid "block"
msgstr ""
-#: ../../Zotlabs/Module/Import_items.php:42 ../../Zotlabs/Module/Import.php:71
-msgid "Nothing to import."
+#: ../../Zotlabs/Module/Impel.php:51 ../../include/bbcode.php:195
+msgid "layout"
msgstr ""
-#: ../../Zotlabs/Module/Import_items.php:66 ../../Zotlabs/Module/Import.php:95
-msgid "Unable to download data from old server"
+#: ../../Zotlabs/Module/Impel.php:58 ../../include/bbcode.php:201
+msgid "menu"
msgstr ""
-#: ../../Zotlabs/Module/Import_items.php:72
-#: ../../Zotlabs/Module/Import.php:101
-msgid "Imported file is empty."
+#: ../../Zotlabs/Module/Impel.php:191
+#, php-format
+msgid "%s element installed"
msgstr ""
-#: ../../Zotlabs/Module/Import_items.php:88
-#: ../../Zotlabs/Module/Import.php:123
+#: ../../Zotlabs/Module/Impel.php:194
#, php-format
-msgid "Warning: Database versions differ by %1$d updates."
+msgid "%s element installation failed"
msgstr ""
#: ../../Zotlabs/Module/Import_items.php:104
@@ -2712,11 +2957,6 @@ msgstr ""
msgid "Use this form to import existing posts and content from an export file."
msgstr ""
-#: ../../Zotlabs/Module/Import_items.php:121
-#: ../../Zotlabs/Module/Import.php:549
-msgid "File to Upload"
-msgstr ""
-
#: ../../Zotlabs/Module/Invite.php:29
msgid "Total invitation limit exceeded."
msgstr ""
@@ -2758,10 +2998,6 @@ msgstr ""
msgid "Enter email addresses, one per line:"
msgstr ""
-#: ../../Zotlabs/Module/Invite.php:135 ../../Zotlabs/Module/Mail.php:241
-msgid "Your message:"
-msgstr ""
-
#: ../../Zotlabs/Module/Invite.php:136
msgid "Please join my community on $Projectname."
msgstr ""
@@ -2812,6 +3048,12 @@ msgstr ""
msgid "Manage Channel Locations"
msgstr ""
+#: ../../Zotlabs/Module/Locs.php:117 ../../Zotlabs/Module/Profiles.php:477
+#: ../../Zotlabs/Module/Profiles.php:698 ../../Zotlabs/Module/Events.php:467
+#: ../../Zotlabs/Module/Pubsites.php:51 ../../include/js_strings.php:25
+msgid "Location"
+msgstr ""
+
#: ../../Zotlabs/Module/Locs.php:119
msgid "Primary"
msgstr ""
@@ -2834,331 +3076,321 @@ msgstr ""
msgid "Use this form to drop the location if the hub is no longer operating."
msgstr ""
-#: ../../Zotlabs/Module/Magic.php:71
-msgid "Hub not found."
-msgstr ""
-
-#: ../../Zotlabs/Module/Chat.php:181
-msgid "Room not found"
-msgstr ""
-
-#: ../../Zotlabs/Module/Chat.php:197
-msgid "Leave Room"
-msgstr ""
-
-#: ../../Zotlabs/Module/Chat.php:198
-msgid "Delete Room"
-msgstr ""
-
-#: ../../Zotlabs/Module/Chat.php:199
-msgid "I am away right now"
-msgstr ""
-
-#: ../../Zotlabs/Module/Chat.php:200
-msgid "I am online"
+#: ../../Zotlabs/Module/Network.php:95
+msgid "No such group"
msgstr ""
-#: ../../Zotlabs/Module/Chat.php:202
-msgid "Bookmark this room"
+#: ../../Zotlabs/Module/Network.php:135
+msgid "No such channel"
msgstr ""
-#: ../../Zotlabs/Module/Chat.php:205 ../../Zotlabs/Module/Mail.php:197
-#: ../../Zotlabs/Module/Mail.php:306 ../../include/conversation.php:1182
-msgid "Please enter a link URL:"
+#: ../../Zotlabs/Module/Network.php:140
+msgid "forum"
msgstr ""
-#: ../../Zotlabs/Module/Chat.php:206 ../../Zotlabs/Module/Mail.php:250
-#: ../../Zotlabs/Module/Mail.php:375 ../../Zotlabs/Lib/ThreadItem.php:723
-#: ../../include/conversation.php:1276
-msgid "Encrypt text"
+#: ../../Zotlabs/Module/Network.php:152
+msgid "Search Results For:"
msgstr ""
-#: ../../Zotlabs/Module/Chat.php:218
-msgid "Feature disabled."
+#: ../../Zotlabs/Module/Network.php:218
+msgid "Privacy group is empty"
msgstr ""
-#: ../../Zotlabs/Module/Chat.php:231
-msgid "New Chatroom"
+#: ../../Zotlabs/Module/Network.php:227
+msgid "Privacy group: "
msgstr ""
-#: ../../Zotlabs/Module/Chat.php:232
-msgid "Chatroom name"
+#: ../../Zotlabs/Module/Network.php:253
+msgid "Invalid connection."
msgstr ""
-#: ../../Zotlabs/Module/Chat.php:233
-msgid "Expiration of chats (minutes)"
+#: ../../Zotlabs/Module/Like.php:19
+msgid "Like/Dislike"
msgstr ""
-#: ../../Zotlabs/Module/Chat.php:249
-#, php-format
-msgid "%1$s's Chatrooms"
+#: ../../Zotlabs/Module/Like.php:24
+msgid "This action is restricted to members."
msgstr ""
-#: ../../Zotlabs/Module/Chat.php:254
-msgid "No chatrooms available"
+#: ../../Zotlabs/Module/Like.php:25
+msgid ""
+"Please <a href=\"rmagic\">login with your $Projectname ID</a> or <a href="
+"\"register\">register as a new $Projectname member</a> to continue."
msgstr ""
-#: ../../Zotlabs/Module/Chat.php:258
-msgid "Expiration"
+#: ../../Zotlabs/Module/Like.php:105 ../../Zotlabs/Module/Like.php:131
+#: ../../Zotlabs/Module/Like.php:169
+msgid "Invalid request."
msgstr ""
-#: ../../Zotlabs/Module/Chat.php:259
-msgid "min"
+#: ../../Zotlabs/Module/Like.php:117 ../../include/conversation.php:126
+msgid "channel"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:25
-msgid "Calendar entries imported."
+#: ../../Zotlabs/Module/Like.php:146
+msgid "thing"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:27
-msgid "No calendar entries found."
+#: ../../Zotlabs/Module/Like.php:192
+msgid "Channel unavailable."
msgstr ""
-#: ../../Zotlabs/Module/Events.php:104
-msgid "Event can not end before it has started."
+#: ../../Zotlabs/Module/Like.php:240
+msgid "Previous action reversed."
msgstr ""
-#: ../../Zotlabs/Module/Events.php:106 ../../Zotlabs/Module/Events.php:115
-#: ../../Zotlabs/Module/Events.php:135
-msgid "Unable to generate preview."
+#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87
+#: ../../Zotlabs/Module/Tagger.php:47 ../../include/conversation.php:120
+#: ../../include/text.php:1991
+msgid "photo"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:113
-msgid "Event title and start time are required."
+#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87
+#: ../../include/conversation.php:148 ../../include/text.php:1997
+msgid "status"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:133 ../../Zotlabs/Module/Events.php:258
-msgid "Event not found."
+#: ../../Zotlabs/Module/Like.php:372 ../../Zotlabs/Module/Events.php:253
+#: ../../Zotlabs/Module/Tagger.php:51 ../../include/event.php:958
+#: ../../include/conversation.php:123 ../../include/text.php:1994
+msgid "event"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:452
-msgid "Edit event title"
+#: ../../Zotlabs/Module/Like.php:419 ../../include/conversation.php:164
+#, php-format
+msgid "%1$s likes %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:452
-msgid "Event title"
+#: ../../Zotlabs/Module/Like.php:421 ../../include/conversation.php:167
+#, php-format
+msgid "%1$s doesn't like %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:454
-msgid "Categories (comma-separated list)"
+#: ../../Zotlabs/Module/Like.php:423
+#, php-format
+msgid "%1$s agrees with %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:455
-msgid "Edit Category"
+#: ../../Zotlabs/Module/Like.php:425
+#, php-format
+msgid "%1$s doesn't agree with %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:455
-msgid "Category"
+#: ../../Zotlabs/Module/Like.php:427
+#, php-format
+msgid "%1$s abstains from a decision on %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:458
-msgid "Edit start date and time"
+#: ../../Zotlabs/Module/Like.php:429
+#, php-format
+msgid "%1$s is attending %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:458
-msgid "Start date and time"
+#: ../../Zotlabs/Module/Like.php:431
+#, php-format
+msgid "%1$s is not attending %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:459 ../../Zotlabs/Module/Events.php:462
-msgid "Finish date and time are not known or not relevant"
+#: ../../Zotlabs/Module/Like.php:433
+#, php-format
+msgid "%1$s may attend %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:461
-msgid "Edit finish date and time"
+#: ../../Zotlabs/Module/Like.php:538
+msgid "Action completed."
msgstr ""
-#: ../../Zotlabs/Module/Events.php:461
-msgid "Finish date and time"
+#: ../../Zotlabs/Module/Like.php:539
+msgid "Thank you."
msgstr ""
-#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:464
-msgid "Adjust for viewer timezone"
+#: ../../Zotlabs/Module/Manage.php:136
+#: ../../Zotlabs/Module/New_channel.php:121
+#, php-format
+msgid "You have created %1$.0f of %2$.0f allowed channels."
msgstr ""
-#: ../../Zotlabs/Module/Events.php:463
-msgid ""
-"Important for events that happen in a particular place. Not practical for "
-"global holidays."
+#: ../../Zotlabs/Module/Manage.php:143
+msgid "Create a new channel"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:465
-msgid "Edit Description"
+#: ../../Zotlabs/Module/Manage.php:143 ../../Zotlabs/Module/Profiles.php:778
+#: ../../Zotlabs/Module/Chat.php:255
+msgid "Create New"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:467
-msgid "Edit Location"
+#: ../../Zotlabs/Module/Manage.php:164 ../../Zotlabs/Lib/Apps.php:214
+#: ../../include/nav.php:211
+msgid "Channel Manager"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Events.php:472
-msgid "Share this event"
+#: ../../Zotlabs/Module/Manage.php:165
+msgid "Current Channel"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:474 ../../include/conversation.php:1248
-msgid "Permission settings"
+#: ../../Zotlabs/Module/Manage.php:167
+msgid "Switch to one of your channels by selecting it."
msgstr ""
-#: ../../Zotlabs/Module/Events.php:485
-msgid "Advanced Options"
+#: ../../Zotlabs/Module/Manage.php:168
+msgid "Default Channel"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:597 ../../Zotlabs/Module/Cal.php:259
-msgid "l, F j"
+#: ../../Zotlabs/Module/Manage.php:169
+msgid "Make Default"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:619
-msgid "Edit event"
+#: ../../Zotlabs/Module/Manage.php:172
+#, php-format
+msgid "%d new messages"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:621
-msgid "Delete event"
+#: ../../Zotlabs/Module/Manage.php:173
+#, php-format
+msgid "%d new introductions"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:646 ../../Zotlabs/Module/Cal.php:308
-#: ../../include/text.php:1716
-msgid "Link to Source"
+#: ../../Zotlabs/Module/Manage.php:175
+msgid "Delegated Channel"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:655
-msgid "calendar"
+#: ../../Zotlabs/Module/Mitem.php:52
+msgid "Unable to create element."
msgstr ""
-#: ../../Zotlabs/Module/Events.php:674 ../../Zotlabs/Module/Cal.php:331
-msgid "Edit Event"
+#: ../../Zotlabs/Module/Mitem.php:76
+msgid "Unable to update menu element."
msgstr ""
-#: ../../Zotlabs/Module/Events.php:674 ../../Zotlabs/Module/Cal.php:331
-msgid "Create Event"
+#: ../../Zotlabs/Module/Mitem.php:92
+msgid "Unable to add menu element."
msgstr ""
-#: ../../Zotlabs/Module/Events.php:675 ../../Zotlabs/Module/Events.php:684
-#: ../../Zotlabs/Module/Photos.php:951 ../../Zotlabs/Module/Cal.php:332
-#: ../../Zotlabs/Module/Cal.php:339
-msgid "Previous"
+#: ../../Zotlabs/Module/Mitem.php:153 ../../Zotlabs/Module/Mitem.php:230
+msgid "Menu Item Permissions"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:677 ../../Zotlabs/Module/Cal.php:334
-msgid "Export"
+#: ../../Zotlabs/Module/Mitem.php:154 ../../Zotlabs/Module/Mitem.php:231
+#: ../../Zotlabs/Module/Settings/Channel.php:486
+msgid "(click to open/close)"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:681
-msgid "Month"
+#: ../../Zotlabs/Module/Mitem.php:160 ../../Zotlabs/Module/Mitem.php:176
+msgid "Link Name"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:682
-msgid "Week"
+#: ../../Zotlabs/Module/Mitem.php:161 ../../Zotlabs/Module/Mitem.php:239
+msgid "Link or Submenu Target"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:683
-msgid "Day"
+#: ../../Zotlabs/Module/Mitem.php:161
+msgid "Enter URL of the link or select a menu name to create a submenu"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:686 ../../Zotlabs/Module/Cal.php:341
-msgid "Today"
+#: ../../Zotlabs/Module/Mitem.php:162 ../../Zotlabs/Module/Mitem.php:240
+msgid "Use magic-auth if available"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:717
-msgid "Event removed"
+#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:241
+msgid "Open link in new window"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:720
-msgid "Failed to remove event"
+#: ../../Zotlabs/Module/Mitem.php:164 ../../Zotlabs/Module/Mitem.php:242
+msgid "Order in list"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:38
-msgid "Unable to lookup recipient."
+#: ../../Zotlabs/Module/Mitem.php:164 ../../Zotlabs/Module/Mitem.php:242
+msgid "Higher numbers will sink to bottom of listing"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:45
-msgid "Unable to communicate with requested channel."
+#: ../../Zotlabs/Module/Mitem.php:165
+msgid "Submit and finish"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:52
-msgid "Cannot verify requested channel."
+#: ../../Zotlabs/Module/Mitem.php:166
+msgid "Submit and continue"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:70
-msgid "Selected channel has private message restrictions. Send failed."
+#: ../../Zotlabs/Module/Mitem.php:174
+msgid "Menu:"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:135
-msgid "Messages"
+#: ../../Zotlabs/Module/Mitem.php:177
+msgid "Link Target"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:170
-msgid "Message recalled."
+#: ../../Zotlabs/Module/Mitem.php:180
+msgid "Edit menu"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:183
-msgid "Conversation removed."
+#: ../../Zotlabs/Module/Mitem.php:183
+msgid "Edit element"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:198 ../../Zotlabs/Module/Mail.php:307
-msgid "Expires YYYY-MM-DD HH:MM"
+#: ../../Zotlabs/Module/Mitem.php:184
+msgid "Drop element"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:226
-msgid "Requested channel is not in this network"
+#: ../../Zotlabs/Module/Mitem.php:185
+msgid "New element"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:234
-msgid "Send Private Message"
+#: ../../Zotlabs/Module/Mitem.php:186
+msgid "Edit this menu container"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:235 ../../Zotlabs/Module/Mail.php:360
-msgid "To:"
+#: ../../Zotlabs/Module/Mitem.php:187
+msgid "Add menu element"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:238 ../../Zotlabs/Module/Mail.php:362
-msgid "Subject:"
+#: ../../Zotlabs/Module/Mitem.php:188
+msgid "Delete this menu item"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:243 ../../Zotlabs/Module/Mail.php:368
-#: ../../include/conversation.php:1232
-msgid "Attach file"
+#: ../../Zotlabs/Module/Mitem.php:189
+msgid "Edit this menu item"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:245
-msgid "Send"
+#: ../../Zotlabs/Module/Mitem.php:206
+msgid "Menu item not found."
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:248 ../../Zotlabs/Module/Mail.php:373
-#: ../../include/conversation.php:1271
-msgid "Set expiration date"
+#: ../../Zotlabs/Module/Mitem.php:219
+msgid "Menu item deleted."
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:332
-msgid "Delete message"
+#: ../../Zotlabs/Module/Mitem.php:221
+msgid "Menu item could not be deleted."
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:333
-msgid "Delivery report"
+#: ../../Zotlabs/Module/Mitem.php:228
+msgid "Edit Menu Element"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:334
-msgid "Recall message"
+#: ../../Zotlabs/Module/Mitem.php:238
+msgid "Link text"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:336
-msgid "Message has been recalled."
+#: ../../Zotlabs/Module/Rate.php:155 ../../Zotlabs/Module/Connedit.php:762
+#: ../../include/js_strings.php:20
+msgid "Rating"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:353
-msgid "Delete Conversation"
+#: ../../Zotlabs/Module/Rate.php:156
+msgid "Website:"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:355
-msgid ""
-"No secure communications available. You <strong>may</strong> be able to "
-"respond from the sender's profile page."
+#: ../../Zotlabs/Module/Rate.php:159
+#, php-format
+msgid "Remote Channel [%s] (not yet known on this site)"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:359
-msgid "Send Reply"
+#: ../../Zotlabs/Module/Rate.php:160
+msgid "Rating (this information is public)"
msgstr ""
-#: ../../Zotlabs/Module/Mail.php:364
-#, php-format
-msgid "Your message for %s (%s):"
+#: ../../Zotlabs/Module/Rate.php:161
+msgid "Optionally explain your rating (this information is public)"
msgstr ""
#: ../../Zotlabs/Module/Lostpass.php:19
@@ -3185,7 +3417,7 @@ msgid ""
"Password reset failed."
msgstr ""
-#: ../../Zotlabs/Module/Lostpass.php:90 ../../boot.php:1721
+#: ../../Zotlabs/Module/Lostpass.php:90 ../../boot.php:1747
msgid "Password Reset"
msgstr ""
@@ -3248,3238 +3480,3120 @@ msgstr ""
msgid "Set your current mood and tell your friends"
msgstr ""
-#: ../../Zotlabs/Module/Manage.php:136
-#: ../../Zotlabs/Module/New_channel.php:121
-#, php-format
-msgid "You have created %1$.0f of %2$.0f allowed channels."
-msgstr ""
-
-#: ../../Zotlabs/Module/Manage.php:143
-msgid "Create a new channel"
-msgstr ""
-
-#: ../../Zotlabs/Module/Manage.php:164 ../../Zotlabs/Lib/Apps.php:214
-#: ../../include/nav.php:210
-msgid "Channel Manager"
+#: ../../Zotlabs/Module/Profiles.php:24 ../../Zotlabs/Module/Profiles.php:189
+#: ../../Zotlabs/Module/Profiles.php:246 ../../Zotlabs/Module/Profiles.php:625
+msgid "Profile not found."
msgstr ""
-#: ../../Zotlabs/Module/Manage.php:165
-msgid "Current Channel"
+#: ../../Zotlabs/Module/Profiles.php:44
+msgid "Profile deleted."
msgstr ""
-#: ../../Zotlabs/Module/Manage.php:167
-msgid "Switch to one of your channels by selecting it."
+#: ../../Zotlabs/Module/Profiles.php:68 ../../Zotlabs/Module/Profiles.php:104
+msgid "Profile-"
msgstr ""
-#: ../../Zotlabs/Module/Manage.php:168
-msgid "Default Channel"
+#: ../../Zotlabs/Module/Profiles.php:89 ../../Zotlabs/Module/Profiles.php:132
+msgid "New profile created."
msgstr ""
-#: ../../Zotlabs/Module/Manage.php:169
-msgid "Make Default"
+#: ../../Zotlabs/Module/Profiles.php:110
+msgid "Profile unavailable to clone."
msgstr ""
-#: ../../Zotlabs/Module/Manage.php:172
-#, php-format
-msgid "%d new messages"
+#: ../../Zotlabs/Module/Profiles.php:151
+msgid "Profile unavailable to export."
msgstr ""
-#: ../../Zotlabs/Module/Manage.php:173
-#, php-format
-msgid "%d new introductions"
+#: ../../Zotlabs/Module/Profiles.php:256
+msgid "Profile Name is required."
msgstr ""
-#: ../../Zotlabs/Module/Manage.php:175
-msgid "Delegated Channel"
+#: ../../Zotlabs/Module/Profiles.php:427
+msgid "Marital Status"
msgstr ""
-#: ../../Zotlabs/Module/Notify.php:57
-#: ../../Zotlabs/Module/Notifications.php:98
-msgid "No more system notifications."
+#: ../../Zotlabs/Module/Profiles.php:431
+msgid "Romantic Partner"
msgstr ""
-#: ../../Zotlabs/Module/Notify.php:61
-#: ../../Zotlabs/Module/Notifications.php:102
-msgid "System Notifications"
+#: ../../Zotlabs/Module/Profiles.php:435 ../../Zotlabs/Module/Profiles.php:736
+msgid "Likes"
msgstr ""
-#: ../../Zotlabs/Module/Match.php:26
-msgid "Profile Match"
+#: ../../Zotlabs/Module/Profiles.php:439 ../../Zotlabs/Module/Profiles.php:737
+msgid "Dislikes"
msgstr ""
-#: ../../Zotlabs/Module/Match.php:35
-msgid "No keywords to match. Please add keywords to your default profile."
+#: ../../Zotlabs/Module/Profiles.php:443 ../../Zotlabs/Module/Profiles.php:744
+msgid "Work/Employment"
msgstr ""
-#: ../../Zotlabs/Module/Match.php:67
-msgid "is interested in:"
+#: ../../Zotlabs/Module/Profiles.php:446
+msgid "Religion"
msgstr ""
-#: ../../Zotlabs/Module/Match.php:74
-msgid "No matches"
+#: ../../Zotlabs/Module/Profiles.php:450
+msgid "Political Views"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:82
-msgid "Page owner information could not be retrieved."
+#: ../../Zotlabs/Module/Profiles.php:454
+msgid "Gender"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:97 ../../Zotlabs/Module/Photos.php:745
-#: ../../Zotlabs/Module/Profile_photo.php:115
-#: ../../Zotlabs/Module/Profile_photo.php:212
-#: ../../Zotlabs/Module/Profile_photo.php:311
-#: ../../include/photo/photo_driver.php:718
-msgid "Profile Photos"
+#: ../../Zotlabs/Module/Profiles.php:458
+msgid "Sexual Preference"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:103 ../../Zotlabs/Module/Photos.php:147
-msgid "Album not found."
+#: ../../Zotlabs/Module/Profiles.php:462
+msgid "Homepage"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:130
-msgid "Delete Album"
+#: ../../Zotlabs/Module/Profiles.php:466
+msgid "Interests"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:151
-msgid ""
-"Multiple storage folders exist with this album name, but within different "
-"directories. Please remove the desired folder or folders using the Files "
-"manager"
+#: ../../Zotlabs/Module/Profiles.php:560
+msgid "Profile updated."
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:208 ../../Zotlabs/Module/Photos.php:1059
-msgid "Delete Photo"
+#: ../../Zotlabs/Module/Profiles.php:644
+msgid "Hide your connections list from viewers of this profile"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:531
-msgid "No photos selected"
+#: ../../Zotlabs/Module/Profiles.php:686
+msgid "Edit Profile Details"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:580
-msgid "Access to this item is restricted."
+#: ../../Zotlabs/Module/Profiles.php:688
+msgid "View this profile"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:619
-#, php-format
-msgid "%1$.2f MB of %2$.2f MB photo storage used."
+#: ../../Zotlabs/Module/Profiles.php:689 ../../Zotlabs/Module/Profiles.php:771
+#: ../../include/channel.php:981
+msgid "Edit visibility"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:622
-#, php-format
-msgid "%1$.2f MB photo storage used."
+#: ../../Zotlabs/Module/Profiles.php:690
+msgid "Profile Tools"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:658
-msgid "Upload Photos"
+#: ../../Zotlabs/Module/Profiles.php:691
+msgid "Change cover photo"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:662
-msgid "Enter an album name"
+#: ../../Zotlabs/Module/Profiles.php:692 ../../include/channel.php:952
+msgid "Change profile photo"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:663
-msgid "or select an existing album (doubleclick)"
+#: ../../Zotlabs/Module/Profiles.php:693
+msgid "Create a new profile using these settings"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:664
-msgid "Create a status post for this upload"
+#: ../../Zotlabs/Module/Profiles.php:694
+msgid "Clone this profile"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:665
-msgid "Caption (optional):"
+#: ../../Zotlabs/Module/Profiles.php:695
+msgid "Delete this profile"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:666
-msgid "Description (optional):"
+#: ../../Zotlabs/Module/Profiles.php:696
+msgid "Add profile things"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:697
-msgid "Album name could not be decoded"
+#: ../../Zotlabs/Module/Profiles.php:697 ../../include/conversation.php:1563
+#: ../../include/widgets.php:105
+msgid "Personal"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:745
-msgid "Contact Photos"
+#: ../../Zotlabs/Module/Profiles.php:699
+msgid "Relation"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:768
-msgid "Show Newest First"
+#: ../../Zotlabs/Module/Profiles.php:700 ../../include/datetime.php:48
+msgid "Miscellaneous"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:770
-msgid "Show Oldest First"
+#: ../../Zotlabs/Module/Profiles.php:702
+msgid "Import profile from file"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:794 ../../Zotlabs/Module/Photos.php:1337
-#: ../../Zotlabs/Module/Embedphotos.php:141 ../../include/widgets.php:1607
-msgid "View Photo"
+#: ../../Zotlabs/Module/Profiles.php:703
+msgid "Export profile to file"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:825
-#: ../../Zotlabs/Module/Embedphotos.php:157 ../../include/widgets.php:1624
-msgid "Edit Album"
+#: ../../Zotlabs/Module/Profiles.php:704
+msgid "Your gender"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:872
-msgid "Permission denied. Access to this item may be restricted."
+#: ../../Zotlabs/Module/Profiles.php:705
+msgid "Marital status"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:874
-msgid "Photo not available"
+#: ../../Zotlabs/Module/Profiles.php:706
+msgid "Sexual preference"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:932
-msgid "Use as profile photo"
+#: ../../Zotlabs/Module/Profiles.php:709
+msgid "Profile name"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:933
-msgid "Use as cover photo"
+#: ../../Zotlabs/Module/Profiles.php:711
+msgid "This is your default profile."
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:940
-msgid "Private Photo"
+#: ../../Zotlabs/Module/Profiles.php:713
+msgid "Your full name"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:955
-msgid "View Full Size"
+#: ../../Zotlabs/Module/Profiles.php:714
+msgid "Title/Description"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1000 ../../Zotlabs/Module/Admin.php:1437
-#: ../../Zotlabs/Module/Tagrm.php:137
-msgid "Remove"
+#: ../../Zotlabs/Module/Profiles.php:717
+msgid "Street address"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1034
-msgid "Edit photo"
+#: ../../Zotlabs/Module/Profiles.php:718
+msgid "Locality/City"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1036
-msgid "Rotate CW (right)"
+#: ../../Zotlabs/Module/Profiles.php:719
+msgid "Region/State"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1037
-msgid "Rotate CCW (left)"
+#: ../../Zotlabs/Module/Profiles.php:720
+msgid "Postal/Zip code"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1040
-msgid "Enter a new album name"
+#: ../../Zotlabs/Module/Profiles.php:721
+msgid "Country"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1041
-msgid "or select an existing one (doubleclick)"
+#: ../../Zotlabs/Module/Profiles.php:726
+msgid "Who (if applicable)"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1044
-msgid "Caption"
+#: ../../Zotlabs/Module/Profiles.php:726
+msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1046
-msgid "Add a Tag"
+#: ../../Zotlabs/Module/Profiles.php:727
+msgid "Since (date)"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1054
-msgid "Example: @bob, @Barbara_Jensen, @jim@example.com"
+#: ../../Zotlabs/Module/Profiles.php:730
+msgid "Tell us about yourself"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1057
-msgid "Flag as adult in album view"
+#: ../../Zotlabs/Module/Profiles.php:731
+msgid "Homepage URL"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1076 ../../Zotlabs/Lib/ThreadItem.php:262
-msgid "I like this (toggle)"
+#: ../../Zotlabs/Module/Profiles.php:732
+msgid "Hometown"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1077 ../../Zotlabs/Lib/ThreadItem.php:263
-msgid "I don't like this (toggle)"
+#: ../../Zotlabs/Module/Profiles.php:733
+msgid "Political views"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1079 ../../Zotlabs/Lib/ThreadItem.php:398
-#: ../../include/conversation.php:743
-msgid "Please wait"
+#: ../../Zotlabs/Module/Profiles.php:734
+msgid "Religious views"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1095 ../../Zotlabs/Module/Photos.php:1213
-#: ../../Zotlabs/Lib/ThreadItem.php:708
-msgid "This is you"
+#: ../../Zotlabs/Module/Profiles.php:735
+msgid "Keywords used in directory listings"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1097 ../../Zotlabs/Module/Photos.php:1215
-#: ../../Zotlabs/Lib/ThreadItem.php:710 ../../include/js_strings.php:6
-msgid "Comment"
+#: ../../Zotlabs/Module/Profiles.php:735
+msgid "Example: fishing photography software"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:577
-msgctxt "title"
-msgid "Likes"
+#: ../../Zotlabs/Module/Profiles.php:738
+msgid "Musical interests"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:577
-msgctxt "title"
-msgid "Dislikes"
+#: ../../Zotlabs/Module/Profiles.php:739
+msgid "Books, literature"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578
-msgctxt "title"
-msgid "Agree"
+#: ../../Zotlabs/Module/Profiles.php:740
+msgid "Television"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578
-msgctxt "title"
-msgid "Disagree"
+#: ../../Zotlabs/Module/Profiles.php:741
+msgid "Film/Dance/Culture/Entertainment"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578
-msgctxt "title"
-msgid "Abstain"
+#: ../../Zotlabs/Module/Profiles.php:742
+msgid "Hobbies/Interests"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579
-msgctxt "title"
-msgid "Attending"
+#: ../../Zotlabs/Module/Profiles.php:743
+msgid "Love/Romance"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579
-msgctxt "title"
-msgid "Not attending"
+#: ../../Zotlabs/Module/Profiles.php:745
+msgid "School/Education"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579
-msgctxt "title"
-msgid "Might attend"
+#: ../../Zotlabs/Module/Profiles.php:746
+msgid "Contact information and social networks"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1132 ../../Zotlabs/Module/Photos.php:1144
-#: ../../Zotlabs/Lib/ThreadItem.php:181 ../../Zotlabs/Lib/ThreadItem.php:193
-#: ../../include/conversation.php:1743
-msgid "View all"
+#: ../../Zotlabs/Module/Profiles.php:747
+msgid "My other channels"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1136 ../../Zotlabs/Lib/ThreadItem.php:185
-#: ../../include/channel.php:1182 ../../include/conversation.php:1767
-#: ../../include/taxonomy.php:403
-msgctxt "noun"
-msgid "Like"
-msgid_plural "Likes"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../Zotlabs/Module/Photos.php:1141 ../../Zotlabs/Lib/ThreadItem.php:190
-#: ../../include/conversation.php:1770
-msgctxt "noun"
-msgid "Dislike"
-msgid_plural "Dislikes"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../Zotlabs/Module/Photos.php:1241
-msgid "Photo Tools"
+#: ../../Zotlabs/Module/Profiles.php:767 ../../include/channel.php:977
+msgid "Profile Image"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1250
-msgid "In This Photo:"
+#: ../../Zotlabs/Module/Profiles.php:777 ../../include/nav.php:91
+#: ../../include/channel.php:959
+msgid "Edit Profiles"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1255
-msgid "Map"
+#: ../../Zotlabs/Module/Notify.php:57
+#: ../../Zotlabs/Module/Notifications.php:98
+msgid "No more system notifications."
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1263 ../../Zotlabs/Lib/ThreadItem.php:387
-msgctxt "noun"
-msgid "Likes"
+#: ../../Zotlabs/Module/Notify.php:61
+#: ../../Zotlabs/Module/Notifications.php:102
+msgid "System Notifications"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1264 ../../Zotlabs/Lib/ThreadItem.php:388
-msgctxt "noun"
-msgid "Dislikes"
+#: ../../Zotlabs/Module/Match.php:26
+msgid "Profile Match"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1269 ../../Zotlabs/Lib/ThreadItem.php:393
-#: ../../include/acl_selectors.php:283
-msgid "Close"
+#: ../../Zotlabs/Module/Match.php:35
+msgid "No keywords to match. Please add keywords to your default profile."
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1343
-msgid "View Album"
+#: ../../Zotlabs/Module/Match.php:67
+msgid "is interested in:"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1354 ../../Zotlabs/Module/Photos.php:1367
-#: ../../Zotlabs/Module/Photos.php:1368
-msgid "Recent Photos"
+#: ../../Zotlabs/Module/Match.php:74
+msgid "No matches"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:64
-msgid "Name is required"
+#: ../../Zotlabs/Module/Api.php:60 ../../Zotlabs/Module/Api.php:81
+msgid "Authorize application connection"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:68
-msgid "Key and Secret are required"
+#: ../../Zotlabs/Module/Api.php:61
+msgid "Return to your app and insert this Security Code:"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:72 ../../Zotlabs/Module/Settings.php:686
-#: ../../Zotlabs/Module/Admin.php:1435 ../../Zotlabs/Lib/Apps.php:334
-msgid "Update"
+#: ../../Zotlabs/Module/Api.php:71
+msgid "Please login to continue."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:138
-#, php-format
-msgid "This channel is limited to %d tokens"
+#: ../../Zotlabs/Module/Api.php:83
+msgid ""
+"Do you want to authorize this application to access your posts and contacts, "
+"and/or create new posts for you?"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:144
-msgid "Name and Password are required."
+#: ../../Zotlabs/Module/Events.php:25
+msgid "Calendar entries imported."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:184
-msgid "Token saved."
+#: ../../Zotlabs/Module/Events.php:27
+msgid "No calendar entries found."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:290
-msgid "Not valid email."
+#: ../../Zotlabs/Module/Events.php:104
+msgid "Event can not end before it has started."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:293
-msgid "Protected email address. Cannot change to that email."
+#: ../../Zotlabs/Module/Events.php:106 ../../Zotlabs/Module/Events.php:115
+#: ../../Zotlabs/Module/Events.php:135
+msgid "Unable to generate preview."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:302
-msgid "System failure storing new email. Please try again."
+#: ../../Zotlabs/Module/Events.php:113
+msgid "Event title and start time are required."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:319
-msgid "Password verification failed."
+#: ../../Zotlabs/Module/Events.php:133 ../../Zotlabs/Module/Events.php:258
+msgid "Event not found."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:326
-msgid "Passwords do not match. Password unchanged."
+#: ../../Zotlabs/Module/Events.php:452
+msgid "Edit event title"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:330
-msgid "Empty passwords are not allowed. Password unchanged."
+#: ../../Zotlabs/Module/Events.php:452
+msgid "Event title"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:344
-msgid "Password changed."
+#: ../../Zotlabs/Module/Events.php:454
+msgid "Categories (comma-separated list)"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:346
-msgid "Password update failed. Please try again."
+#: ../../Zotlabs/Module/Events.php:455
+msgid "Edit Category"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:595
-msgid "Settings updated."
+#: ../../Zotlabs/Module/Events.php:455
+msgid "Category"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:659 ../../Zotlabs/Module/Settings.php:685
-#: ../../Zotlabs/Module/Settings.php:721
-msgid "Add application"
+#: ../../Zotlabs/Module/Events.php:458
+msgid "Edit start date and time"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:662
-msgid "Name of application"
+#: ../../Zotlabs/Module/Events.php:458
+msgid "Start date and time"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:663 ../../Zotlabs/Module/Settings.php:689
-msgid "Consumer Key"
+#: ../../Zotlabs/Module/Events.php:459 ../../Zotlabs/Module/Events.php:462
+msgid "Finish date and time are not known or not relevant"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:663 ../../Zotlabs/Module/Settings.php:664
-msgid "Automatically generated - change if desired. Max length 20"
+#: ../../Zotlabs/Module/Events.php:461
+msgid "Edit finish date and time"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:664 ../../Zotlabs/Module/Settings.php:690
-msgid "Consumer Secret"
+#: ../../Zotlabs/Module/Events.php:461
+msgid "Finish date and time"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:665 ../../Zotlabs/Module/Settings.php:691
-msgid "Redirect"
+#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:464
+msgid "Adjust for viewer timezone"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:665
+#: ../../Zotlabs/Module/Events.php:463
msgid ""
-"Redirect URI - leave blank unless your application specifically requires this"
-msgstr ""
-
-#: ../../Zotlabs/Module/Settings.php:666 ../../Zotlabs/Module/Settings.php:692
-msgid "Icon url"
+"Important for events that happen in a particular place. Not practical for "
+"global holidays."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:666 ../../Zotlabs/Module/Sources.php:112
-#: ../../Zotlabs/Module/Sources.php:147
-msgid "Optional"
+#: ../../Zotlabs/Module/Events.php:465
+msgid "Edit Description"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:677
-msgid "Application not found."
+#: ../../Zotlabs/Module/Events.php:467
+msgid "Edit Location"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:720
-msgid "Connected Apps"
+#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Events.php:472
+msgid "Share this event"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:724
-msgid "Client key starts with"
+#: ../../Zotlabs/Module/Events.php:474 ../../include/conversation.php:1263
+msgid "Permission settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:725
-msgid "No name"
+#: ../../Zotlabs/Module/Events.php:485
+msgid "Advanced Options"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:726
-msgid "Remove authorization"
+#: ../../Zotlabs/Module/Events.php:597 ../../Zotlabs/Module/Cal.php:259
+msgid "l, F j"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:739
-msgid "No feature settings configured"
+#: ../../Zotlabs/Module/Events.php:619
+msgid "Edit event"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:746
-msgid "Feature/Addon Settings"
+#: ../../Zotlabs/Module/Events.php:621
+msgid "Delete event"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:769
-msgid "Account Settings"
+#: ../../Zotlabs/Module/Events.php:646 ../../Zotlabs/Module/Cal.php:308
+#: ../../include/text.php:1762
+msgid "Link to Source"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:770
-msgid "Current Password"
+#: ../../Zotlabs/Module/Events.php:655
+msgid "calendar"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:771
-msgid "Enter New Password"
+#: ../../Zotlabs/Module/Events.php:674 ../../Zotlabs/Module/Cal.php:331
+msgid "Edit Event"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:772
-msgid "Confirm New Password"
+#: ../../Zotlabs/Module/Events.php:674 ../../Zotlabs/Module/Cal.php:331
+msgid "Create Event"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:772
-msgid "Leave password fields blank unless changing"
+#: ../../Zotlabs/Module/Events.php:675 ../../Zotlabs/Module/Events.php:684
+#: ../../Zotlabs/Module/Cal.php:332 ../../Zotlabs/Module/Cal.php:339
+#: ../../Zotlabs/Module/Photos.php:940
+msgid "Previous"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:774
-#: ../../Zotlabs/Module/Settings.php:1194
-msgid "Email Address:"
+#: ../../Zotlabs/Module/Events.php:676 ../../Zotlabs/Module/Events.php:685
+#: ../../Zotlabs/Module/Setup.php:272 ../../Zotlabs/Module/Cal.php:333
+#: ../../Zotlabs/Module/Cal.php:340 ../../Zotlabs/Module/Photos.php:949
+msgid "Next"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:775
-#: ../../Zotlabs/Module/Removeaccount.php:61
-msgid "Remove Account"
+#: ../../Zotlabs/Module/Events.php:677 ../../Zotlabs/Module/Cal.php:334
+msgid "Export"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:776
-msgid "Remove this account including all its channels"
+#: ../../Zotlabs/Module/Events.php:681
+msgid "Month"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:810
-msgid ""
-"Use this form to create temporary access identifiers to share things with "
-"non-members. These identities may be used in Access Control Lists and "
-"visitors may login using these credentials to access private content."
+#: ../../Zotlabs/Module/Events.php:682
+msgid "Week"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:812
-msgid ""
-"You may also provide <em>dropbox</em> style access links to friends and "
-"associates by adding the Login Password to any specific site URL as shown. "
-"Examples:"
+#: ../../Zotlabs/Module/Events.php:683
+msgid "Day"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:847 ../../include/widgets.php:614
-msgid "Guest Access Tokens"
+#: ../../Zotlabs/Module/Events.php:686 ../../Zotlabs/Module/Cal.php:341
+msgid "Today"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:854
-msgid "Login Name"
+#: ../../Zotlabs/Module/Events.php:717
+msgid "Event removed"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:855
-msgid "Login Password"
+#: ../../Zotlabs/Module/Events.php:720
+msgid "Failed to remove event"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:856
-msgid "Expires (yyyy-mm-dd)"
+#: ../../Zotlabs/Module/Item.php:180
+msgid "Unable to locate original post."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:881 ../../Zotlabs/Module/Admin.php:677
-#: ../../Zotlabs/Module/Admin.php:678
-msgid "Off"
+#: ../../Zotlabs/Module/Item.php:433
+msgid "Empty post discarded."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:881 ../../Zotlabs/Module/Admin.php:677
-#: ../../Zotlabs/Module/Admin.php:678
-msgid "On"
+#: ../../Zotlabs/Module/Item.php:473
+msgid "Executable content type not permitted to this channel."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:888
-msgid "Additional Features"
+#: ../../Zotlabs/Module/Item.php:858
+msgid "Duplicate post suppressed."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:912
-msgid "Connector Settings"
+#: ../../Zotlabs/Module/Item.php:991
+msgid "System error. Post not saved."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:951
-msgid "No special theme for mobile devices"
+#: ../../Zotlabs/Module/Item.php:1112
+msgid "Unable to obtain post information from database."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:954
+#: ../../Zotlabs/Module/Item.php:1119
#, php-format
-msgid "%s - (Experimental)"
+msgid "You have reached your limit of %1$.0f top level posts."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:957 ../../Zotlabs/Module/Admin.php:410
-msgid "mobile"
+#: ../../Zotlabs/Module/Item.php:1126
+#, php-format
+msgid "You have reached your limit of %1$.0f webpages."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:996
-msgid "Display Settings"
+#: ../../Zotlabs/Module/New_channel.php:140
+msgid "Create Channel"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:997
-msgid "Theme Settings"
+#: ../../Zotlabs/Module/New_channel.php:141
+msgid ""
+"A channel is your identity on this network. It can represent a person, a "
+"blog, or a forum to name a few. Channels can make connections with other "
+"channels to share information with highly detailed permissions."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:998
-msgid "Custom Theme Settings"
+#: ../../Zotlabs/Module/New_channel.php:142
+msgid ""
+"or <a href=\"import\">import an existing channel</a> from another location."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:999
-msgid "Content Settings"
+#: ../../Zotlabs/Module/Ping.php:265
+msgid "sent you a private message"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1005
-msgid "Display Theme:"
+#: ../../Zotlabs/Module/Ping.php:313
+msgid "added your channel"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1006
-msgid "Mobile Theme:"
+#: ../../Zotlabs/Module/Ping.php:323
+msgid "g A l F d"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1007
-msgid "Preload images before rendering the page"
+#: ../../Zotlabs/Module/Ping.php:346
+msgid "[today]"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1007
-msgid ""
-"The subjective page load time will be longer but the page will be ready when "
-"displayed"
+#: ../../Zotlabs/Module/Ping.php:355
+msgid "posted an event"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1008
-msgid "Enable user zoom on mobile devices"
+#: ../../Zotlabs/Module/Notifications.php:30
+msgid "Invalid request identifier."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1009
-msgid "Update browser every xx seconds"
+#: ../../Zotlabs/Module/Notifications.php:39
+msgid "Discard"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1009
-msgid "Minimum of 10 seconds, no maximum"
+#: ../../Zotlabs/Module/Notifications.php:103 ../../include/nav.php:196
+msgid "Mark all system notifications seen"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1010
-msgid "Maximum number of conversations to load at any time:"
+#: ../../Zotlabs/Module/Poke.php:168 ../../Zotlabs/Lib/Apps.php:228
+#: ../../include/conversation.php:961
+msgid "Poke"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1010
-msgid "Maximum of 100 items"
+#: ../../Zotlabs/Module/Poke.php:169
+msgid "Poke somebody"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1011
-msgid "Show emoticons (smilies) as images"
+#: ../../Zotlabs/Module/Poke.php:172
+msgid "Poke/Prod"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1012
-msgid "Link post titles to source"
+#: ../../Zotlabs/Module/Poke.php:173
+msgid "Poke, prod or do other things to somebody"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1013
-msgid "System Page Layout Editor - (advanced)"
+#: ../../Zotlabs/Module/Poke.php:180
+msgid "Recipient"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1016
-msgid "Use blog/list mode on channel page"
+#: ../../Zotlabs/Module/Poke.php:181
+msgid "Choose what you wish to do to recipient"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1016
-#: ../../Zotlabs/Module/Settings.php:1017
-msgid "(comments displayed separately)"
+#: ../../Zotlabs/Module/Poke.php:184 ../../Zotlabs/Module/Poke.php:185
+msgid "Make this post private"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1017
-msgid "Use blog/list mode on grid page"
+#: ../../Zotlabs/Module/Setup.php:184
+msgid "$Projectname Server - Setup"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1018
-msgid "Channel page max height of content (in pixels)"
+#: ../../Zotlabs/Module/Setup.php:188
+msgid "Could not connect to database."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1018
-#: ../../Zotlabs/Module/Settings.php:1019
-msgid "click to expand content exceeding this height"
+#: ../../Zotlabs/Module/Setup.php:192
+msgid ""
+"Could not connect to specified site URL. Possible SSL certificate or DNS "
+"issue."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1019
-msgid "Grid page max height of content (in pixels)"
+#: ../../Zotlabs/Module/Setup.php:199
+msgid "Could not create table."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1048
-msgid "Nobody except yourself"
+#: ../../Zotlabs/Module/Setup.php:204
+msgid "Your site database has been installed."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1049
-msgid "Only those you specifically allow"
+#: ../../Zotlabs/Module/Setup.php:208
+msgid ""
+"You may need to import the file \"install/schema_xxx.sql\" manually using a "
+"database client."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1050
-msgid "Approved connections"
+#: ../../Zotlabs/Module/Setup.php:209 ../../Zotlabs/Module/Setup.php:271
+#: ../../Zotlabs/Module/Setup.php:734
+msgid "Please see the file \"install/INSTALL.txt\"."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1051
-msgid "Any connections"
+#: ../../Zotlabs/Module/Setup.php:268
+msgid "System check"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1052
-msgid "Anybody on this website"
+#: ../../Zotlabs/Module/Setup.php:273
+msgid "Check again"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1053
-msgid "Anybody in this network"
+#: ../../Zotlabs/Module/Setup.php:295
+msgid "Database connection"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1054
-msgid "Anybody authenticated"
+#: ../../Zotlabs/Module/Setup.php:296
+msgid ""
+"In order to install $Projectname we need to know how to connect to your "
+"database."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1055
-msgid "Anybody on the internet"
+#: ../../Zotlabs/Module/Setup.php:297
+msgid ""
+"Please contact your hosting provider or site administrator if you have "
+"questions about these settings."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1129
-msgid "Publish your default profile in the network directory"
+#: ../../Zotlabs/Module/Setup.php:298
+msgid ""
+"The database you specify below should already exist. If it does not, please "
+"create it before continuing."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1134
-msgid "Allow us to suggest you as a potential friend to new members?"
+#: ../../Zotlabs/Module/Setup.php:302
+msgid "Database Server Name"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1143
-msgid "Your channel address is"
+#: ../../Zotlabs/Module/Setup.php:302
+msgid "Default is 127.0.0.1"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1185
-msgid "Channel Settings"
+#: ../../Zotlabs/Module/Setup.php:303
+msgid "Database Port"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1192
-msgid "Basic Settings"
+#: ../../Zotlabs/Module/Setup.php:303
+msgid "Communication port number - use 0 for default"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1193 ../../include/channel.php:1164
-msgid "Full Name:"
+#: ../../Zotlabs/Module/Setup.php:304
+msgid "Database Login Name"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1195
-msgid "Your Timezone:"
+#: ../../Zotlabs/Module/Setup.php:305
+msgid "Database Login Password"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1196
-msgid "Default Post Location:"
+#: ../../Zotlabs/Module/Setup.php:306
+msgid "Database Name"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1196
-msgid "Geographical location to display on your posts"
+#: ../../Zotlabs/Module/Setup.php:307
+msgid "Database Type"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1197
-msgid "Use Browser Location:"
+#: ../../Zotlabs/Module/Setup.php:309 ../../Zotlabs/Module/Setup.php:355
+msgid "Site administrator email address"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1199
-msgid "Adult Content"
+#: ../../Zotlabs/Module/Setup.php:309 ../../Zotlabs/Module/Setup.php:355
+msgid ""
+"Your account email address must match this in order to use the web admin "
+"panel."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1199
-msgid ""
-"This channel frequently or regularly publishes adult content. (Please tag "
-"any adult material and/or nudity with #NSFW)"
+#: ../../Zotlabs/Module/Setup.php:310 ../../Zotlabs/Module/Setup.php:357
+msgid "Website URL"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1201
-msgid "Security and Privacy Settings"
+#: ../../Zotlabs/Module/Setup.php:310 ../../Zotlabs/Module/Setup.php:357
+msgid "Please use SSL (https) URL if available."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1204
-msgid "Your permissions are already configured. Click to view/adjust"
+#: ../../Zotlabs/Module/Setup.php:311 ../../Zotlabs/Module/Setup.php:361
+msgid "Please select a default timezone for your website"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1206
-msgid "Hide my online presence"
+#: ../../Zotlabs/Module/Setup.php:344
+msgid "Site settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1206
-msgid "Prevents displaying in your profile that you are online"
+#: ../../Zotlabs/Module/Setup.php:400
+msgid "PHP version 5.5 or greater is required."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1208
-msgid "Simple Privacy Settings:"
+#: ../../Zotlabs/Module/Setup.php:401
+msgid "PHP version"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1209
-msgid ""
-"Very Public - <em>extremely permissive (should be used with caution)</em>"
+#: ../../Zotlabs/Module/Setup.php:416
+msgid "Could not find a command line version of PHP in the web server PATH."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1210
+#: ../../Zotlabs/Module/Setup.php:417
msgid ""
-"Typical - <em>default public, privacy when desired (similar to social "
-"network permissions but with improved privacy)</em>"
+"If you don't have a command line version of PHP installed on server, you "
+"will not be able to run background polling via cron."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1211
-msgid "Private - <em>default private, never open or public</em>"
+#: ../../Zotlabs/Module/Setup.php:421
+msgid "PHP executable path"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1212
-msgid "Blocked - <em>default blocked to/from everybody</em>"
+#: ../../Zotlabs/Module/Setup.php:421
+msgid ""
+"Enter full path to php executable. You can leave this blank to continue the "
+"installation."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1214
-msgid "Allow others to tag your posts"
+#: ../../Zotlabs/Module/Setup.php:426
+msgid "Command line PHP"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1214
+#: ../../Zotlabs/Module/Setup.php:435
msgid ""
-"Often used by the community to retro-actively flag inappropriate content"
-msgstr ""
-
-#: ../../Zotlabs/Module/Settings.php:1216
-msgid "Advanced Privacy Settings"
+"The command line version of PHP on your system does not have "
+"\"register_argc_argv\" enabled."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1218
-msgid "Expire other channel content after this many days"
+#: ../../Zotlabs/Module/Setup.php:436
+msgid "This is required for message delivery to work."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1218
-msgid "0 or blank to use the website limit."
+#: ../../Zotlabs/Module/Setup.php:439
+msgid "PHP register_argc_argv"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1218
+#: ../../Zotlabs/Module/Setup.php:457
#, php-format
-msgid "This website expires after %d days."
+msgid ""
+"Your max allowed total upload size is set to %s. Maximum size of one file to "
+"upload is set to %s. You are allowed to upload up to %d files at once."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1218
-msgid "This website does not expire imported content."
+#: ../../Zotlabs/Module/Setup.php:462
+msgid "You can adjust these settings in the servers php.ini."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1218
-msgid "The website limit takes precedence if lower than your limit."
+#: ../../Zotlabs/Module/Setup.php:464
+msgid "PHP upload limits"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1219
-msgid "Maximum Friend Requests/Day:"
+#: ../../Zotlabs/Module/Setup.php:487
+msgid ""
+"Error: the \"openssl_pkey_new\" function on this system is not able to "
+"generate encryption keys"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1219
-msgid "May reduce spam activity"
+#: ../../Zotlabs/Module/Setup.php:488
+msgid ""
+"If running under Windows, please see \"http://www.php.net/manual/en/openssl."
+"installation.php\"."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1220
-msgid "Default Post and Publish Permissions"
+#: ../../Zotlabs/Module/Setup.php:491
+msgid "Generate encryption keys"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1221 ../../Zotlabs/Module/Mitem.php:154
-#: ../../Zotlabs/Module/Mitem.php:231
-msgid "(click to open/close)"
+#: ../../Zotlabs/Module/Setup.php:503
+msgid "libCurl PHP module"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1222
-msgid "Use my default audience setting for the type of object published"
+#: ../../Zotlabs/Module/Setup.php:504
+msgid "GD graphics PHP module"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1229
-msgid "Channel permissions category:"
+#: ../../Zotlabs/Module/Setup.php:505
+msgid "OpenSSL PHP module"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1235
-msgid "Maximum private messages per day from unknown people:"
+#: ../../Zotlabs/Module/Setup.php:506
+msgid "mysqli or postgres PHP module"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1235
-msgid "Useful to reduce spamming"
+#: ../../Zotlabs/Module/Setup.php:507
+msgid "mb_string PHP module"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1238
-msgid "Notification Settings"
+#: ../../Zotlabs/Module/Setup.php:508
+msgid "xml PHP module"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1239
-msgid "By default post a status message when:"
+#: ../../Zotlabs/Module/Setup.php:512 ../../Zotlabs/Module/Setup.php:514
+msgid "Apache mod_rewrite module"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1240
-msgid "accepting a friend request"
+#: ../../Zotlabs/Module/Setup.php:512
+msgid ""
+"Error: Apache webserver mod-rewrite module is required but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1241
-msgid "joining a forum/community"
+#: ../../Zotlabs/Module/Setup.php:518 ../../Zotlabs/Module/Setup.php:521
+msgid "proc_open"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1242
-msgid "making an <em>interesting</em> profile change"
+#: ../../Zotlabs/Module/Setup.php:518
+msgid ""
+"Error: proc_open is required but is either not installed or has been "
+"disabled in php.ini"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1243
-msgid "Send a notification email when:"
+#: ../../Zotlabs/Module/Setup.php:526
+msgid "Error: libCURL PHP module required but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1244
-msgid "You receive a connection request"
+#: ../../Zotlabs/Module/Setup.php:530
+msgid ""
+"Error: GD graphics PHP module with JPEG support required but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1245
-msgid "Your connections are confirmed"
+#: ../../Zotlabs/Module/Setup.php:534
+msgid "Error: openssl PHP module required but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1246
-msgid "Someone writes on your profile wall"
+#: ../../Zotlabs/Module/Setup.php:538
+msgid ""
+"Error: mysqli or postgres PHP module required but neither are installed."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1247
-msgid "Someone writes a followup comment"
+#: ../../Zotlabs/Module/Setup.php:542
+msgid "Error: mb_string PHP module required but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1248
-msgid "You receive a private message"
+#: ../../Zotlabs/Module/Setup.php:546
+msgid "Error: xml PHP module required for DAV but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1249
-msgid "You receive a friend suggestion"
+#: ../../Zotlabs/Module/Setup.php:564
+msgid ""
+"The web installer needs to be able to create a file called \".htconfig.php\" "
+"in the top folder of your web server and it is unable to do so."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1250
-msgid "You are tagged in a post"
+#: ../../Zotlabs/Module/Setup.php:565
+msgid ""
+"This is most often a permission setting, as the web server may not be able "
+"to write files in your folder - even if you can."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1251
-msgid "You are poked/prodded/etc. in a post"
+#: ../../Zotlabs/Module/Setup.php:566
+msgid ""
+"At the end of this procedure, we will give you a text to save in a file "
+"named .htconfig.php in your Red top folder."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1254
-msgid "Show visual notifications including:"
+#: ../../Zotlabs/Module/Setup.php:567
+msgid ""
+"You can alternatively skip this procedure and perform a manual installation. "
+"Please see the file \"install/INSTALL.txt\" for instructions."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1256
-msgid "Unseen grid activity"
+#: ../../Zotlabs/Module/Setup.php:570
+msgid ".htconfig.php is writable"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1257
-msgid "Unseen channel activity"
+#: ../../Zotlabs/Module/Setup.php:584
+msgid ""
+"Red uses the Smarty3 template engine to render its web views. Smarty3 "
+"compiles templates to PHP to speed up rendering."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1258
-msgid "Unseen private messages"
+#: ../../Zotlabs/Module/Setup.php:585
+#, php-format
+msgid ""
+"In order to store these compiled templates, the web server needs to have "
+"write access to the directory %s under the top level web folder."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1258
-#: ../../Zotlabs/Module/Settings.php:1263
-#: ../../Zotlabs/Module/Settings.php:1264
-#: ../../Zotlabs/Module/Settings.php:1265
-msgid "Recommended"
+#: ../../Zotlabs/Module/Setup.php:586 ../../Zotlabs/Module/Setup.php:607
+msgid ""
+"Please ensure that the user that your web server runs as (e.g. www-data) has "
+"write access to this folder."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1259
-msgid "Upcoming events"
+#: ../../Zotlabs/Module/Setup.php:587
+#, php-format
+msgid ""
+"Note: as a security measure, you should give the web server write access to "
+"%s only--not the template files (.tpl) that it contains."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1260
-msgid "Events today"
+#: ../../Zotlabs/Module/Setup.php:590
+#, php-format
+msgid "%s is writable"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1261
-msgid "Upcoming birthdays"
+#: ../../Zotlabs/Module/Setup.php:606
+msgid ""
+"This software uses the store directory to save uploaded files. The web "
+"server needs to have write access to the store directory under the Red top "
+"level folder"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1261
-msgid "Not available in all themes"
+#: ../../Zotlabs/Module/Setup.php:610
+msgid "store is writable"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1262
-msgid "System (personal) notifications"
+#: ../../Zotlabs/Module/Setup.php:643
+msgid ""
+"SSL certificate cannot be validated. Fix certificate or disable https access "
+"to this site."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1263
-msgid "System info messages"
+#: ../../Zotlabs/Module/Setup.php:644
+msgid ""
+"If you have https access to your website or allow connections to TCP port "
+"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
+"NOT use self-signed certificates!"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1264
-msgid "System critical alerts"
+#: ../../Zotlabs/Module/Setup.php:645
+msgid ""
+"This restriction is incorporated because public posts from you may for "
+"example contain references to images on your own hub."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1265
-msgid "New connections"
+#: ../../Zotlabs/Module/Setup.php:646
+msgid ""
+"If your certificate is not recognized, members of other sites (who may "
+"themselves have valid certificates) will get a warning message on their own "
+"site complaining about security issues."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1266
-msgid "System Registrations"
+#: ../../Zotlabs/Module/Setup.php:647
+msgid ""
+"This can cause usability issues elsewhere (not just on your own site) so we "
+"must insist on this requirement."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1267
+#: ../../Zotlabs/Module/Setup.php:648
msgid ""
-"Also show new wall posts, private messages and connections under Notices"
+"Providers are available that issue free certificates which are browser-valid."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1269
-msgid "Notify me of events this many days in advance"
+#: ../../Zotlabs/Module/Setup.php:650
+msgid ""
+"If you are confident that the certificate is valid and signed by a trusted "
+"authority, check to see if you have failed to install an intermediate cert. "
+"These are not normally required by browsers, but are required for server-to-"
+"server communications."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1269
-msgid "Must be greater than 0"
+#: ../../Zotlabs/Module/Setup.php:653
+msgid "SSL certificate validation"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1271
-msgid "Advanced Account/Page Type Settings"
+#: ../../Zotlabs/Module/Setup.php:659
+msgid ""
+"Url rewrite in .htaccess is not working. Check your server configuration."
+"Test: "
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1272
-msgid "Change the behaviour of this account for special situations"
+#: ../../Zotlabs/Module/Setup.php:662
+msgid "Url rewrite is working"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1275
+#: ../../Zotlabs/Module/Setup.php:671
msgid ""
-"Please enable expert mode (in <a href=\"settings/features\">Settings > "
-"Additional features</a>) to adjust!"
+"The database configuration file \".htconfig.php\" could not be written. "
+"Please use the enclosed text to create a configuration file in your web "
+"server root."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1276
-msgid "Miscellaneous Settings"
+#: ../../Zotlabs/Module/Setup.php:695
+msgid "Errors encountered creating database tables."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1277
-msgid "Default photo upload folder"
+#: ../../Zotlabs/Module/Setup.php:732
+msgid "<h1>What next</h1>"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1277
-#: ../../Zotlabs/Module/Settings.php:1278
-msgid "%Y - current year, %m - current month"
+#: ../../Zotlabs/Module/Setup.php:733
+msgid ""
+"IMPORTANT: You will need to [manually] setup a scheduled task for the poller."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1278
-msgid "Default file upload folder"
+#: ../../Zotlabs/Module/Oexchange.php:27
+msgid "Unable to find your hub."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1280
-msgid "Personal menu to display in your channel pages"
+#: ../../Zotlabs/Module/Oexchange.php:41
+msgid "Post successful."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1281 ../../Zotlabs/Module/Removeme.php:64
-msgid "Remove Channel"
+#: ../../Zotlabs/Module/Profperm.php:34 ../../Zotlabs/Module/Profperm.php:63
+msgid "Invalid profile identifier."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1282
-msgid "Remove this channel."
+#: ../../Zotlabs/Module/Profperm.php:115
+msgid "Profile Visibility Editor"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1283
-msgid "Firefox Share $Projectname provider"
+#: ../../Zotlabs/Module/Profperm.php:117 ../../include/channel.php:1274
+msgid "Profile"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1284
-msgid "Start calendar week on monday"
+#: ../../Zotlabs/Module/Profperm.php:119
+msgid "Click on a contact to add or remove."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:77
-msgid "Theme settings updated."
+#: ../../Zotlabs/Module/Profperm.php:128
+msgid "Visible To"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:197
-msgid "# Accounts"
+#: ../../Zotlabs/Module/Pconfig.php:26 ../../Zotlabs/Module/Pconfig.php:59
+msgid "This setting requires special processing and editing has been blocked."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:198
-msgid "# blocked accounts"
+#: ../../Zotlabs/Module/Pconfig.php:48
+msgid "Configuration Editor"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:199
-msgid "# expired accounts"
+#: ../../Zotlabs/Module/Pconfig.php:49
+msgid ""
+"Warning: Changing some settings could render your channel inoperable. Please "
+"leave this page unless you are comfortable with and knowledgeable about how "
+"to correctly use this feature."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:200
-msgid "# expiring accounts"
+#: ../../Zotlabs/Module/Apps.php:46 ../../include/nav.php:168
+#: ../../include/widgets.php:102
+msgid "Apps"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:211
-msgid "# Channels"
+#: ../../Zotlabs/Module/Siteinfo.php:19
+#, php-format
+msgid "Version %s"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:212
-msgid "# primary"
+#: ../../Zotlabs/Module/Siteinfo.php:34
+msgid "Installed plugins/addons/apps:"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:213
-msgid "# clones"
+#: ../../Zotlabs/Module/Siteinfo.php:36
+msgid "No installed plugins/addons/apps"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:219
-msgid "Message queues"
+#: ../../Zotlabs/Module/Siteinfo.php:49
+msgid ""
+"This is a hub of $Projectname - a global cooperative network of "
+"decentralized privacy enhanced websites."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:236
-msgid "Your software should be updated"
+#: ../../Zotlabs/Module/Siteinfo.php:51
+msgid "Tag: "
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:241 ../../Zotlabs/Module/Admin.php:490
-#: ../../Zotlabs/Module/Admin.php:711 ../../Zotlabs/Module/Admin.php:755
-#: ../../Zotlabs/Module/Admin.php:1030 ../../Zotlabs/Module/Admin.php:1209
-#: ../../Zotlabs/Module/Admin.php:1329 ../../Zotlabs/Module/Admin.php:1419
-#: ../../Zotlabs/Module/Admin.php:1612 ../../Zotlabs/Module/Admin.php:1646
-#: ../../Zotlabs/Module/Admin.php:1731
-msgid "Administration"
+#: ../../Zotlabs/Module/Siteinfo.php:53
+msgid "Last background fetch: "
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:242
-msgid "Summary"
+#: ../../Zotlabs/Module/Siteinfo.php:55
+msgid "Current load average: "
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:245
-msgid "Registered accounts"
+#: ../../Zotlabs/Module/Siteinfo.php:58
+msgid "Running at web location"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:246 ../../Zotlabs/Module/Admin.php:715
-msgid "Pending registrations"
+#: ../../Zotlabs/Module/Siteinfo.php:59
+msgid ""
+"Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more "
+"about $Projectname."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:247
-msgid "Registered channels"
+#: ../../Zotlabs/Module/Siteinfo.php:60
+msgid "Bug reports and issues: please visit"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:248 ../../Zotlabs/Module/Admin.php:716
-msgid "Active plugins"
+#: ../../Zotlabs/Module/Siteinfo.php:62
+msgid "$projectname issues"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:249
-msgid "Version"
+#: ../../Zotlabs/Module/Siteinfo.php:63
+msgid ""
+"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:250
-msgid "Repository version (master)"
+#: ../../Zotlabs/Module/Siteinfo.php:65
+msgid "Site Administrators"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:251
-msgid "Repository version (dev)"
+#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2308
+msgid "Blocks"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:373
-msgid "Site settings updated."
+#: ../../Zotlabs/Module/Blocks.php:156
+msgid "Block Title"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:400 ../../include/text.php:2888
-msgid "Default"
+#: ../../Zotlabs/Module/Layouts.php:183 ../../include/text.php:2310
+msgid "Layouts"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:412
-msgid "experimental"
+#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Lib/Apps.php:225
+#: ../../include/nav.php:164 ../../include/help.php:44
+#: ../../include/help.php:49
+msgid "Help"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:414
-msgid "unsupported"
+#: ../../Zotlabs/Module/Layouts.php:185
+msgid "Comanche page description language help"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:460
-msgid "Yes - with approval"
+#: ../../Zotlabs/Module/Layouts.php:189
+msgid "Layout Description"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:466
-msgid "My site is not a public server"
+#: ../../Zotlabs/Module/Layouts.php:194
+msgid "Download PDL file"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:467
-msgid "My site has paid access only"
+#: ../../Zotlabs/Module/Profile_photo.php:115
+#: ../../Zotlabs/Module/Profile_photo.php:212
+#: ../../Zotlabs/Module/Profile_photo.php:311
+#: ../../Zotlabs/Module/Photos.php:97 ../../Zotlabs/Module/Photos.php:734
+#: ../../include/photo/photo_driver.php:718
+msgid "Profile Photos"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:468
-msgid "My site has free access only"
+#: ../../Zotlabs/Module/Profile_photo.php:186
+msgid ""
+"Shift-reload the page or clear browser cache if the new photo does not "
+"display immediately."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:469
-msgid "My site offers free accounts with optional paid upgrades"
+#: ../../Zotlabs/Module/Profile_photo.php:389
+msgid "Upload Profile Photo"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:491 ../../include/widgets.php:1490
-msgid "Site"
+#: ../../Zotlabs/Module/Cal.php:69
+msgid "Permissions denied."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:493 ../../Zotlabs/Module/Register.php:248
-msgid "Registration"
+#: ../../Zotlabs/Module/Cal.php:337 ../../include/text.php:2332
+msgid "Import"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:494
-msgid "File upload"
+#: ../../Zotlabs/Module/Common.php:14
+msgid "No channel."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:495
-msgid "Policies"
+#: ../../Zotlabs/Module/Common.php:43
+msgid "Common connections"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:496 ../../include/contact_widgets.php:16
-msgid "Advanced"
+#: ../../Zotlabs/Module/Common.php:48
+msgid "No connections in common."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:500
-msgid "Site name"
+#: ../../Zotlabs/Module/Acl.php:313
+msgid "network"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:501
-msgid "Banner/Logo"
+#: ../../Zotlabs/Module/Acl.php:323
+msgid "RSS"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:502
-msgid "Administrator Information"
+#: ../../Zotlabs/Module/Pubsites.php:24 ../../include/widgets.php:1392
+msgid "Public Hubs"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:502
+#: ../../Zotlabs/Module/Pubsites.php:27
msgid ""
-"Contact information for site administrators. Displayed on siteinfo page. "
-"BBCode can be used here"
+"The listed hubs allow public registration for the $Projectname network. All "
+"hubs in the network are interlinked so membership on any of them conveys "
+"membership in the network as a whole. Some hubs may require subscription or "
+"provide tiered service plans. The hub itself <strong>may</strong> provide "
+"additional details."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:503
-msgid "System language"
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Hub URL"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:504
-msgid "System theme"
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Access Type"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:504
-msgid ""
-"Default system theme - may be over-ridden by user profiles - <a href='#' "
-"id='cnftheme'>change theme settings</a>"
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Registration Policy"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:505
-msgid "Mobile system theme"
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Stats"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:505
-msgid "Theme for mobile devices"
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Software"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:507
-msgid "Allow Feeds as Connections"
+#: ../../Zotlabs/Module/Pubsites.php:48
+msgid "Rate"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:507
-msgid "(Heavy system resource usage)"
+#: ../../Zotlabs/Module/Pdledit.php:21
+msgid "Layout updated."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:508
-msgid "Maximum image size"
+#: ../../Zotlabs/Module/Pdledit.php:34 ../../Zotlabs/Module/Chat.php:218
+msgid "Feature disabled."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:508
-msgid ""
-"Maximum size in bytes of uploaded images. Default is 0, which means no "
-"limits."
+#: ../../Zotlabs/Module/Pdledit.php:42 ../../Zotlabs/Module/Pdledit.php:69
+msgid "Edit System Page Description"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:509
-msgid "Does this site allow new member registration?"
+#: ../../Zotlabs/Module/Pdledit.php:64
+msgid "Layout not found."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:510
-msgid "Invitation only"
+#: ../../Zotlabs/Module/Pdledit.php:70
+msgid "Module Name:"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:510
-msgid ""
-"Only allow new member registrations with an invitation code. Above register "
-"policy must be set to Yes."
+#: ../../Zotlabs/Module/Pdledit.php:71
+msgid "Layout Help"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:511
-msgid "Which best describes the types of account offered by this hub?"
+#: ../../Zotlabs/Module/Connedit.php:80
+msgid "Could not access contact record."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:512
-msgid "Register text"
+#: ../../Zotlabs/Module/Connedit.php:104
+msgid "Could not locate selected profile."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:512
-msgid "Will be displayed prominently on the registration page."
+#: ../../Zotlabs/Module/Connedit.php:256
+msgid "Connection updated."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:513
-msgid "Site homepage to show visitors (default: login box)"
+#: ../../Zotlabs/Module/Connedit.php:258
+msgid "Failed to update connection record."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:513
-msgid ""
-"example: 'public' to show public stream, 'page/sys/home' to show a system "
-"webpage called 'home' or 'include:home.html' to include a file."
+#: ../../Zotlabs/Module/Connedit.php:308
+msgid "is now connected to"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:514
-msgid "Preserve site homepage URL"
+#: ../../Zotlabs/Module/Connedit.php:440
+msgid "Could not access address book record."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:514
-msgid ""
-"Present the site homepage in a frame at the original location instead of "
-"redirecting"
+#: ../../Zotlabs/Module/Connedit.php:460
+msgid "Refresh failed - channel is currently unavailable."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:515
-msgid "Accounts abandoned after x days"
+#: ../../Zotlabs/Module/Connedit.php:475 ../../Zotlabs/Module/Connedit.php:484
+#: ../../Zotlabs/Module/Connedit.php:493 ../../Zotlabs/Module/Connedit.php:502
+#: ../../Zotlabs/Module/Connedit.php:515
+msgid "Unable to set address book parameters."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:515
-msgid ""
-"Will not waste system resources polling external sites for abandonded "
-"accounts. Enter 0 for no time limit."
+#: ../../Zotlabs/Module/Connedit.php:538
+msgid "Connection has been removed."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:516
-msgid "Allowed friend domains"
+#: ../../Zotlabs/Module/Connedit.php:554 ../../Zotlabs/Lib/Apps.php:221
+#: ../../include/nav.php:89 ../../include/conversation.php:955
+msgid "View Profile"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:516
-msgid ""
-"Comma separated list of domains which are allowed to establish friendships "
-"with this site. Wildcards are accepted. Empty to allow any domains"
+#: ../../Zotlabs/Module/Connedit.php:557
+#, php-format
+msgid "View %s's profile"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:517
-msgid "Allowed email domains"
+#: ../../Zotlabs/Module/Connedit.php:561
+msgid "Refresh Permissions"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:517
-msgid ""
-"Comma separated list of domains which are allowed in email addresses for "
-"registrations to this site. Wildcards are accepted. Empty to allow any "
-"domains"
+#: ../../Zotlabs/Module/Connedit.php:564
+msgid "Fetch updated permissions"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:518
-msgid "Not allowed email domains"
+#: ../../Zotlabs/Module/Connedit.php:568
+msgid "Recent Activity"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:518
-msgid ""
-"Comma separated list of domains which are not allowed in email addresses for "
-"registrations to this site. Wildcards are accepted. Empty to allow any "
-"domains, unless allowed domains have been defined."
+#: ../../Zotlabs/Module/Connedit.php:571
+msgid "View recent posts and comments"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:519
-msgid "Verify Email Addresses"
+#: ../../Zotlabs/Module/Connedit.php:578
+msgid "Block (or Unblock) all communications with this connection"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:519
-msgid ""
-"Check to verify email addresses used in account registration (recommended)."
+#: ../../Zotlabs/Module/Connedit.php:579
+msgid "This connection is blocked!"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:520
-msgid "Force publish"
+#: ../../Zotlabs/Module/Connedit.php:583
+msgid "Unignore"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:520
-msgid ""
-"Check to force all profiles on this site to be listed in the site directory."
+#: ../../Zotlabs/Module/Connedit.php:586
+msgid "Ignore (or Unignore) all inbound communications from this connection"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:521
-msgid "Import Public Streams"
+#: ../../Zotlabs/Module/Connedit.php:587
+msgid "This connection is ignored!"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:521
-msgid ""
-"Import and allow access to public content pulled from other sites. Warning: "
-"this content is unmoderated."
+#: ../../Zotlabs/Module/Connedit.php:591
+msgid "Unarchive"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:522
-msgid "Login on Homepage"
+#: ../../Zotlabs/Module/Connedit.php:591
+msgid "Archive"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:522
+#: ../../Zotlabs/Module/Connedit.php:594
msgid ""
-"Present a login box to visitors on the home page if no other content has "
-"been configured."
-msgstr ""
-
-#: ../../Zotlabs/Module/Admin.php:523
-msgid "Enable context help"
+"Archive (or Unarchive) this connection - mark channel dead but keep content"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:523
-msgid ""
-"Display contextual help for the current page when the help button is pressed."
+#: ../../Zotlabs/Module/Connedit.php:595
+msgid "This connection is archived!"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:525
-msgid "Directory Server URL"
+#: ../../Zotlabs/Module/Connedit.php:599
+msgid "Unhide"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:525
-msgid "Default directory server"
+#: ../../Zotlabs/Module/Connedit.php:599
+msgid "Hide"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:527
-msgid "Proxy user"
+#: ../../Zotlabs/Module/Connedit.php:602
+msgid "Hide or Unhide this connection from your other connections"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:528
-msgid "Proxy URL"
+#: ../../Zotlabs/Module/Connedit.php:603
+msgid "This connection is hidden!"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:529
-msgid "Network timeout"
+#: ../../Zotlabs/Module/Connedit.php:610
+msgid "Delete this connection"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:529
-msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
+#: ../../Zotlabs/Module/Connedit.php:625 ../../include/widgets.php:529
+msgid "Me"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:530
-msgid "Delivery interval"
+#: ../../Zotlabs/Module/Connedit.php:626 ../../include/widgets.php:530
+msgid "Family"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:530
-msgid ""
-"Delay background delivery processes by this many seconds to reduce system "
-"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
-"for large dedicated servers."
+#: ../../Zotlabs/Module/Connedit.php:627
+#: ../../Zotlabs/Module/Settings/Channel.php:61
+#: ../../Zotlabs/Module/Settings/Channel.php:65
+#: ../../Zotlabs/Module/Settings/Channel.php:66
+#: ../../Zotlabs/Module/Settings/Channel.php:69
+#: ../../Zotlabs/Module/Settings/Channel.php:80
+#: ../../include/selectors.php:123 ../../include/channel.php:402
+#: ../../include/channel.php:403 ../../include/channel.php:410
+#: ../../include/widgets.php:531
+msgid "Friends"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:531
-msgid "Deliveries per process"
+#: ../../Zotlabs/Module/Connedit.php:628 ../../include/widgets.php:532
+msgid "Acquaintances"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:531
-msgid ""
-"Number of deliveries to attempt in a single operating system process. Adjust "
-"if necessary to tune system performance. Recommend: 1-5."
+#: ../../Zotlabs/Module/Connedit.php:686
+msgid "Approve this connection"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:532
-msgid "Poll interval"
+#: ../../Zotlabs/Module/Connedit.php:686
+msgid "Accept connection to allow communication"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:532
-msgid ""
-"Delay background polling processes by this many seconds to reduce system "
-"load. If 0, use delivery interval."
+#: ../../Zotlabs/Module/Connedit.php:691
+msgid "Set Affinity"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:533
-msgid "Maximum Load Average"
+#: ../../Zotlabs/Module/Connedit.php:694
+msgid "Set Profile"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:533
-msgid ""
-"Maximum system load before delivery and poll processes are deferred - "
-"default 50."
+#: ../../Zotlabs/Module/Connedit.php:697
+msgid "Set Affinity & Profile"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:534
-msgid "Expiration period in days for imported (grid/network) content"
+#: ../../Zotlabs/Module/Connedit.php:746
+msgid "none"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:534
-msgid "0 for no expiration of imported content"
+#: ../../Zotlabs/Module/Connedit.php:750 ../../include/widgets.php:656
+msgid "Connection Default Permissions"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:678
+#: ../../Zotlabs/Module/Connedit.php:750 ../../include/items.php:3983
#, php-format
-msgid "Lock feature %s"
-msgstr ""
-
-#: ../../Zotlabs/Module/Admin.php:686
-msgid "Manage Additional Features"
-msgstr ""
-
-#: ../../Zotlabs/Module/Admin.php:703
-msgid "No server found"
-msgstr ""
-
-#: ../../Zotlabs/Module/Admin.php:710 ../../Zotlabs/Module/Admin.php:1046
-msgid "ID"
-msgstr ""
-
-#: ../../Zotlabs/Module/Admin.php:710
-msgid "for channel"
-msgstr ""
-
-#: ../../Zotlabs/Module/Admin.php:710
-msgid "on server"
+msgid "Connection: %s"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:712
-msgid "Server"
+#: ../../Zotlabs/Module/Connedit.php:751
+msgid "Apply these permissions automatically"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:746
-msgid ""
-"By default, unfiltered HTML is allowed in embedded media. This is inherently "
-"insecure."
+#: ../../Zotlabs/Module/Connedit.php:751
+msgid "Connection requests will be approved without your interaction"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:749
-msgid ""
-"The recommended setting is to only allow unfiltered HTML from the following "
-"sites:"
+#: ../../Zotlabs/Module/Connedit.php:753
+msgid "This connection's primary address is"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:750
-msgid ""
-"https://youtube.com/<br />https://www.youtube.com/<br />https://youtu.be/"
-"<br />https://vimeo.com/<br />https://soundcloud.com/<br />"
+#: ../../Zotlabs/Module/Connedit.php:754
+msgid "Available locations:"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:751
+#: ../../Zotlabs/Module/Connedit.php:758
msgid ""
-"All other embedded content will be filtered, <strong>unless</strong> "
-"embedded content from that site is explicitly blocked."
+"The permissions indicated on this page will be applied to all new "
+"connections."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:756 ../../include/widgets.php:1493
-msgid "Security"
+#: ../../Zotlabs/Module/Connedit.php:759
+msgid "Connection Tools"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:758
-msgid "Block public"
+#: ../../Zotlabs/Module/Connedit.php:761
+msgid "Slide to adjust your degree of friendship"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:758
-msgid ""
-"Check to block public access to all otherwise public personal pages on this "
-"site unless you are currently authenticated."
+#: ../../Zotlabs/Module/Connedit.php:763
+msgid "Slide to adjust your rating"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:759
-msgid "Set \"Transport Security\" HTTP header"
+#: ../../Zotlabs/Module/Connedit.php:764 ../../Zotlabs/Module/Connedit.php:769
+msgid "Optionally explain your rating"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:760
-msgid "Set \"Content Security Policy\" HTTP header"
+#: ../../Zotlabs/Module/Connedit.php:766
+msgid "Custom Filter"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:761
-msgid "Allow communications only from these sites"
+#: ../../Zotlabs/Module/Connedit.php:767
+msgid "Only import posts with this text"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:761
+#: ../../Zotlabs/Module/Connedit.php:767 ../../Zotlabs/Module/Connedit.php:768
msgid ""
-"One site per line. Leave empty to allow communication from anywhere by "
-"default"
+"words one per line or #tags or /patterns/ or lang=xx, leave blank to import "
+"all posts"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:762
-msgid "Block communications from these sites"
+#: ../../Zotlabs/Module/Connedit.php:768
+msgid "Do not import posts with this text"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:763
-msgid "Allow communications only from these channels"
+#: ../../Zotlabs/Module/Connedit.php:770
+msgid "This information is public!"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:763
-msgid ""
-"One channel (hash) per line. Leave empty to allow from any channel by default"
+#: ../../Zotlabs/Module/Connedit.php:775
+msgid "Connection Pending Approval"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:764
-msgid "Block communications from these channels"
+#: ../../Zotlabs/Module/Connedit.php:778
+#: ../../Zotlabs/Module/Settings/Tokens.php:163
+msgid "inherited"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:765
-msgid "Only allow embeds from secure (SSL) websites and links."
+#: ../../Zotlabs/Module/Connedit.php:780
+#, php-format
+msgid ""
+"Please choose the profile you would like to display to %s when viewing your "
+"profile securely."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:766
-msgid "Allow unfiltered embedded HTML content only from these domains"
+#: ../../Zotlabs/Module/Connedit.php:782
+#: ../../Zotlabs/Module/Settings/Tokens.php:160
+msgid "Their Settings"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:766
-msgid "One site per line. By default embedded content is filtered."
+#: ../../Zotlabs/Module/Connedit.php:783
+#: ../../Zotlabs/Module/Settings/Tokens.php:161
+msgid "My Settings"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:767
-msgid "Block embedded HTML from these domains"
+#: ../../Zotlabs/Module/Connedit.php:785
+#: ../../Zotlabs/Module/Settings/Tokens.php:165
+msgid "Individual Permissions"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:785
-msgid "Update has been marked successful"
+#: ../../Zotlabs/Module/Connedit.php:786
+#: ../../Zotlabs/Module/Settings/Tokens.php:166
+msgid ""
+"Some permissions may be inherited from your channel's <a href=\"settings"
+"\"><strong>privacy settings</strong></a>, which have higher priority than "
+"individual settings. You can <strong>not</strong> change those settings here."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:795
-#, php-format
-msgid "Executing %s failed. Check system logs."
+#: ../../Zotlabs/Module/Connedit.php:787
+msgid ""
+"Some permissions may be inherited from your channel's <a href=\"settings"
+"\"><strong>privacy settings</strong></a>, which have higher priority than "
+"individual settings. You can change those settings here but they wont have "
+"any impact unless the inherited setting changes."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:798
-#, php-format
-msgid "Update %s was successfully applied."
+#: ../../Zotlabs/Module/Connedit.php:788
+msgid "Last update:"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:802
-#, php-format
-msgid "Update %s did not return a status. Unknown if it succeeded."
+#: ../../Zotlabs/Module/Rbmark.php:94
+msgid "Select a bookmark folder"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:805
-#, php-format
-msgid "Update function %s could not be found."
+#: ../../Zotlabs/Module/Rbmark.php:99
+msgid "Save Bookmark"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:821
-msgid "No failed updates."
+#: ../../Zotlabs/Module/Rbmark.php:100
+msgid "URL of bookmark"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:825
-msgid "Failed Updates"
+#: ../../Zotlabs/Module/Rbmark.php:105
+msgid "Or enter new bookmark folder name"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:827
-msgid "Mark success (if update was manually applied)"
+#: ../../Zotlabs/Module/Regdir.php:49 ../../Zotlabs/Module/Dirsearch.php:25
+msgid "This site is not a directory server"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:828
-msgid "Attempt to execute this update step automatically"
+#: ../../Zotlabs/Module/Rmagic.php:35
+msgid "Authentication failed."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:859
-msgid "Queue Statistics"
+#: ../../Zotlabs/Module/Rmagic.php:75
+msgid "Remote Authentication"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:860
-msgid "Total Entries"
+#: ../../Zotlabs/Module/Rmagic.php:76
+msgid "Enter your channel address (e.g. channel@example.com)"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:861
-msgid "Priority"
+#: ../../Zotlabs/Module/Rmagic.php:77
+msgid "Authenticate"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:862
-msgid "Destination URL"
+#: ../../Zotlabs/Module/Regmod.php:15
+msgid "Please login."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:863
-msgid "Mark hub permanently offline"
+#: ../../Zotlabs/Module/Removeaccount.php:35
+msgid ""
+"Account removals are not allowed within 48 hours of changing the account "
+"password."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:864
-msgid "Empty queue for this hub"
+#: ../../Zotlabs/Module/Removeaccount.php:57
+msgid "Remove This Account"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:865
-msgid "Last known contact"
+#: ../../Zotlabs/Module/Removeaccount.php:58
+#: ../../Zotlabs/Module/Removeme.php:61
+msgid "WARNING: "
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:901
-#, php-format
-msgid "%s account blocked/unblocked"
-msgid_plural "%s account blocked/unblocked"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../Zotlabs/Module/Admin.php:908
-#, php-format
-msgid "%s account deleted"
-msgid_plural "%s accounts deleted"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../Zotlabs/Module/Admin.php:944
-msgid "Account not found"
+#: ../../Zotlabs/Module/Removeaccount.php:58
+msgid ""
+"This account and all its channels will be completely removed from the "
+"network. "
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:955
-#, php-format
-msgid "Account '%s' deleted"
+#: ../../Zotlabs/Module/Removeaccount.php:58
+#: ../../Zotlabs/Module/Removeme.php:61
+msgid "This action is permanent and can not be undone!"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:963
-#, php-format
-msgid "Account '%s' blocked"
+#: ../../Zotlabs/Module/Removeaccount.php:59
+#: ../../Zotlabs/Module/Removeme.php:62
+msgid "Please enter your password for verification:"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:971
-#, php-format
-msgid "Account '%s' unblocked"
+#: ../../Zotlabs/Module/Removeaccount.php:60
+msgid ""
+"Remove this account, all its channels and all its channel clones from the "
+"network"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1031 ../../Zotlabs/Module/Admin.php:1044
-#: ../../include/widgets.php:1491
-msgid "Accounts"
+#: ../../Zotlabs/Module/Removeaccount.php:60
+msgid ""
+"By default only the instances of the channels located on this hub will be "
+"removed from the network"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1033 ../../Zotlabs/Module/Admin.php:1212
-msgid "select all"
+#: ../../Zotlabs/Module/Removeaccount.php:61
+#: ../../Zotlabs/Module/Settings/Account.php:128
+msgid "Remove Account"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1034
-msgid "Registrations waiting for confirm"
+#: ../../Zotlabs/Module/Removeme.php:35
+msgid ""
+"Channel removals are not allowed within 48 hours of changing the account "
+"password."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1035
-msgid "Request date"
+#: ../../Zotlabs/Module/Removeme.php:60
+msgid "Remove This Channel"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1035 ../../Zotlabs/Module/Admin.php:1047
-#: ../../include/network.php:2208
-msgid "Email"
+#: ../../Zotlabs/Module/Removeme.php:61
+msgid "This channel will be completely removed from the network. "
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1036
-msgid "No registrations."
+#: ../../Zotlabs/Module/Removeme.php:63
+msgid "Remove this channel and all its clones from the network"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1038
-msgid "Deny"
+#: ../../Zotlabs/Module/Removeme.php:63
+msgid ""
+"By default only the instance of the channel located on this hub will be "
+"removed from the network"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1048 ../../include/group.php:267
-msgid "All Channels"
+#: ../../Zotlabs/Module/Removeme.php:64
+#: ../../Zotlabs/Module/Settings/Channel.php:544
+msgid "Remove Channel"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1049
-msgid "Register date"
+#: ../../Zotlabs/Module/Uexport.php:55 ../../Zotlabs/Module/Uexport.php:56
+msgid "Export Channel"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1050
-msgid "Last login"
+#: ../../Zotlabs/Module/Uexport.php:57
+msgid ""
+"Export your basic channel information to a file. This acts as a backup of "
+"your connections, permissions, profile and basic data, which can be used to "
+"import your data to a new server hub, but does not contain your content."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1051
-msgid "Expires"
+#: ../../Zotlabs/Module/Uexport.php:58
+msgid "Export Content"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1052
-msgid "Service Class"
+#: ../../Zotlabs/Module/Uexport.php:59
+msgid ""
+"Export your channel information and recent content to a JSON backup that can "
+"be restored or imported to another server hub. This backs up all of your "
+"connections, permissions, profile data and several months of posts. This "
+"file may be VERY large. Please be patient - it may take several minutes for "
+"this download to begin."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1054
-msgid ""
-"Selected accounts will be deleted!\\n\\nEverything these accounts had posted "
-"on this site will be permanently deleted!\\n\\nAre you sure?"
+#: ../../Zotlabs/Module/Uexport.php:60
+msgid "Export your posts from a given year."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1055
+#: ../../Zotlabs/Module/Uexport.php:62
msgid ""
-"The account {0} will be deleted!\\n\\nEverything this account has posted on "
-"this site will be permanently deleted!\\n\\nAre you sure?"
+"You may also export your posts and conversations for a particular year or "
+"month. Adjust the date in your browser location bar to select other dates. "
+"If the export fails (possibly due to memory exhaustion on your server hub), "
+"please try again selecting a more limited date range."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1091
-#, php-format
-msgid "%s channel censored/uncensored"
-msgid_plural "%s channels censored/uncensored"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../Zotlabs/Module/Admin.php:1100
-#, php-format
-msgid "%s channel code allowed/disallowed"
-msgid_plural "%s channels code allowed/disallowed"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../Zotlabs/Module/Admin.php:1106
+#: ../../Zotlabs/Module/Uexport.php:63
#, php-format
-msgid "%s channel deleted"
-msgid_plural "%s channels deleted"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../Zotlabs/Module/Admin.php:1126
-msgid "Channel not found"
+msgid ""
+"To select all posts for a given year, such as this year, visit <a href=\"%1$s"
+"\">%2$s</a>"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1136
+#: ../../Zotlabs/Module/Uexport.php:64
#, php-format
-msgid "Channel '%s' deleted"
+msgid ""
+"To select all posts for a given month, such as January of this year, visit "
+"<a href=\"%1$s\">%2$s</a>"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1148
+#: ../../Zotlabs/Module/Uexport.php:65
#, php-format
-msgid "Channel '%s' censored"
+msgid ""
+"These content files may be imported or restored by visiting <a href=\"%1$s\">"
+"%2$s</a> on any site containing your channel. For best results please import "
+"or restore these in date order (oldest first)."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1148
-#, php-format
-msgid "Channel '%s' uncensored"
+#: ../../Zotlabs/Module/Editpost.php:35
+msgid "Item is not editable"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1159
+#: ../../Zotlabs/Module/Search.php:216
#, php-format
-msgid "Channel '%s' code allowed"
+msgid "Items tagged with: %s"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1159
+#: ../../Zotlabs/Module/Search.php:218
#, php-format
-msgid "Channel '%s' code disallowed"
-msgstr ""
-
-#: ../../Zotlabs/Module/Admin.php:1210 ../../include/widgets.php:1492
-msgid "Channels"
-msgstr ""
-
-#: ../../Zotlabs/Module/Admin.php:1214
-msgid "Censor"
+msgid "Search results for: %s"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1215
-msgid "Uncensor"
+#: ../../Zotlabs/Module/Channel.php:28 ../../Zotlabs/Module/Wiki.php:20
+#: ../../Zotlabs/Module/Chat.php:25
+msgid "You must be logged in to see this page."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1216
-msgid "Allow Code"
+#: ../../Zotlabs/Module/Channel.php:40
+msgid "Posts and comments"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1217
-msgid "Disallow Code"
+#: ../../Zotlabs/Module/Channel.php:41
+msgid "Only posts"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1218 ../../include/conversation.php:1631
-msgid "Channel"
+#: ../../Zotlabs/Module/Channel.php:101
+msgid "Insufficient permissions. Request redirected to profile page."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1222
-msgid "UID"
+#: ../../Zotlabs/Module/Service_limits.php:23
+msgid "No service class restrictions found."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1226
-msgid ""
-"Selected channels will be deleted!\\n\\nEverything that was posted in these "
-"channels on this site will be permanently deleted!\\n\\nAre you sure?"
+#: ../../Zotlabs/Module/Thing.php:114
+msgid "Thing updated"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1227
-msgid ""
-"The channel {0} will be deleted!\\n\\nEverything that was posted in this "
-"channel on this site will be permanently deleted!\\n\\nAre you sure?"
+#: ../../Zotlabs/Module/Thing.php:166
+msgid "Object store: failed"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1284
-#, php-format
-msgid "Plugin %s disabled."
+#: ../../Zotlabs/Module/Thing.php:170
+msgid "Thing added"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1288
+#: ../../Zotlabs/Module/Thing.php:196
#, php-format
-msgid "Plugin %s enabled."
-msgstr ""
-
-#: ../../Zotlabs/Module/Admin.php:1298 ../../Zotlabs/Module/Admin.php:1585
-msgid "Disable"
-msgstr ""
-
-#: ../../Zotlabs/Module/Admin.php:1301 ../../Zotlabs/Module/Admin.php:1587
-msgid "Enable"
+msgid "OBJ: %1$s %2$s %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1330 ../../Zotlabs/Module/Admin.php:1420
-#: ../../include/widgets.php:1495
-msgid "Plugins"
+#: ../../Zotlabs/Module/Thing.php:259
+msgid "Show Thing"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1331 ../../Zotlabs/Module/Admin.php:1614
-msgid "Toggle"
+#: ../../Zotlabs/Module/Thing.php:266
+msgid "item not found."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1332 ../../Zotlabs/Module/Admin.php:1615
-#: ../../Zotlabs/Lib/Apps.php:216 ../../include/nav.php:212
-#: ../../include/widgets.php:647
-msgid "Settings"
+#: ../../Zotlabs/Module/Thing.php:299
+msgid "Edit Thing"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1339 ../../Zotlabs/Module/Admin.php:1624
-msgid "Author: "
+#: ../../Zotlabs/Module/Thing.php:301 ../../Zotlabs/Module/Thing.php:355
+msgid "Select a profile"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1340 ../../Zotlabs/Module/Admin.php:1625
-msgid "Maintainer: "
+#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358
+msgid "Post an activity"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1341
-msgid "Minimum project version: "
+#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358
+msgid "Only sends to viewers of the applicable profile"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1342
-msgid "Maximum project version: "
+#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:360
+msgid "Name of thing e.g. something"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1343
-msgid "Minimum PHP version: "
+#: ../../Zotlabs/Module/Thing.php:309 ../../Zotlabs/Module/Thing.php:361
+msgid "URL of thing (optional)"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1344
-msgid "Requires: "
+#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:362
+msgid "URL for photo of thing (optional)"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1345 ../../Zotlabs/Module/Admin.php:1425
-msgid "Disabled - version incompatibility"
+#: ../../Zotlabs/Module/Thing.php:353
+msgid "Add Thing to your Profile"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1394
-msgid "Enter the public git repository URL of the plugin repo."
+#: ../../Zotlabs/Module/Dirsearch.php:33
+msgid "This directory server requires an access token"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1395
-msgid "Plugin repo git URL"
+#: ../../Zotlabs/Module/Sharedwithme.php:98
+msgid "Files: shared with me"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1396
-msgid "Custom repo name"
+#: ../../Zotlabs/Module/Sharedwithme.php:100
+msgid "NEW"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1396
-msgid "(optional)"
+#: ../../Zotlabs/Module/Sharedwithme.php:103
+msgid "Remove all files"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1397
-msgid "Download Plugin Repo"
+#: ../../Zotlabs/Module/Sharedwithme.php:104
+msgid "Remove this file"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1404
-msgid "Install new repo"
+#: ../../Zotlabs/Module/Wiki.php:34
+msgid "Not found"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1405 ../../Zotlabs/Lib/Apps.php:334
-msgid "Install"
+#: ../../Zotlabs/Module/Wiki.php:97 ../../Zotlabs/Lib/Apps.php:219
+#: ../../include/nav.php:111 ../../include/conversation.php:1734
+#: ../../include/conversation.php:1737 ../../include/features.php:57
+msgid "Wiki"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1427
-msgid "Manage Repos"
+#: ../../Zotlabs/Module/Wiki.php:98
+msgid "Sandbox"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1428
-msgid "Installed Plugin Repositories"
+#: ../../Zotlabs/Module/Wiki.php:100
+msgid ""
+"\"# Wiki Sandbox\\n\\nContent you **edit** and **preview** here *will not be "
+"saved*.\""
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1429
-msgid "Install a New Plugin Repository"
+#: ../../Zotlabs/Module/Wiki.php:169
+msgid "Revision Comparison"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1436
-msgid "Switch branch"
+#: ../../Zotlabs/Module/Wiki.php:170
+msgid "Revert"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1550
-msgid "No themes found."
+#: ../../Zotlabs/Module/Wiki.php:201
+msgid "Enter the name of your new wiki:"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1606
-msgid "Screenshot"
+#: ../../Zotlabs/Module/Wiki.php:202
+msgid "Enter the name of the new page:"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1613 ../../Zotlabs/Module/Admin.php:1647
-#: ../../include/widgets.php:1496
-msgid "Themes"
+#: ../../Zotlabs/Module/Wiki.php:203
+msgid "Enter the new name:"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1652
-msgid "[Experimental]"
+#: ../../Zotlabs/Module/Wiki.php:209 ../../include/conversation.php:1152
+msgid "Embed image from photo albums"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1653
-msgid "[Unsupported]"
+#: ../../Zotlabs/Module/Wiki.php:210 ../../include/conversation.php:1246
+msgid "Embed an image from your albums"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1677
-msgid "Log settings updated."
+#: ../../Zotlabs/Module/Wiki.php:212 ../../include/conversation.php:1248
+#: ../../include/conversation.php:1295
+msgid "OK"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1732 ../../include/widgets.php:1517
-#: ../../include/widgets.php:1527
-msgid "Logs"
+#: ../../Zotlabs/Module/Wiki.php:213 ../../include/conversation.php:1188
+msgid "Choose images to embed"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1734
-msgid "Clear"
+#: ../../Zotlabs/Module/Wiki.php:214 ../../include/conversation.php:1189
+msgid "Choose an album"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1740
-msgid "Debugging"
+#: ../../Zotlabs/Module/Wiki.php:215 ../../include/conversation.php:1190
+msgid "Choose a different album..."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1741
-msgid "Log file"
+#: ../../Zotlabs/Module/Wiki.php:216 ../../include/conversation.php:1191
+msgid "Error getting album list"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1741
-msgid ""
-"Must be writable by web server. Relative to your top-level webserver "
-"directory."
+#: ../../Zotlabs/Module/Wiki.php:217 ../../include/conversation.php:1192
+msgid "Error getting photo link"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1742
-msgid "Log level"
+#: ../../Zotlabs/Module/Wiki.php:218 ../../include/conversation.php:1193
+msgid "Error getting album"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:2028
-msgid "New Profile Field"
+#: ../../Zotlabs/Module/Sources.php:37
+msgid "Failed to create source. No channel selected."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:2029 ../../Zotlabs/Module/Admin.php:2049
-msgid "Field nickname"
+#: ../../Zotlabs/Module/Sources.php:51
+msgid "Source created."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:2029 ../../Zotlabs/Module/Admin.php:2049
-msgid "System name of field"
+#: ../../Zotlabs/Module/Sources.php:64
+msgid "Source updated."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:2030 ../../Zotlabs/Module/Admin.php:2050
-msgid "Input type"
+#: ../../Zotlabs/Module/Sources.php:90
+msgid "*"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:2031 ../../Zotlabs/Module/Admin.php:2051
-msgid "Field Name"
+#: ../../Zotlabs/Module/Sources.php:96 ../../include/widgets.php:672
+#: ../../include/features.php:70
+msgid "Channel Sources"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:2031 ../../Zotlabs/Module/Admin.php:2051
-msgid "Label on profile pages"
+#: ../../Zotlabs/Module/Sources.php:97
+msgid "Manage remote sources of content for your channel."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:2032 ../../Zotlabs/Module/Admin.php:2052
-msgid "Help text"
+#: ../../Zotlabs/Module/Sources.php:98 ../../Zotlabs/Module/Sources.php:108
+msgid "New Source"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:2032 ../../Zotlabs/Module/Admin.php:2052
-msgid "Additional info (optional)"
+#: ../../Zotlabs/Module/Sources.php:109 ../../Zotlabs/Module/Sources.php:143
+msgid ""
+"Import all or selected content from the following channel into this channel "
+"and distribute it according to your channel settings."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:2042
-msgid "Field definition not found"
+#: ../../Zotlabs/Module/Sources.php:110 ../../Zotlabs/Module/Sources.php:144
+msgid "Only import content with these words (one per line)"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:2048
-msgid "Edit Profile Field"
+#: ../../Zotlabs/Module/Sources.php:110 ../../Zotlabs/Module/Sources.php:144
+msgid "Leave blank to import all public content"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:2106 ../../include/widgets.php:1498
-msgid "Profile Fields"
+#: ../../Zotlabs/Module/Sources.php:111 ../../Zotlabs/Module/Sources.php:148
+msgid "Channel Name"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:2107
-msgid "Basic Profile Fields"
+#: ../../Zotlabs/Module/Sources.php:112 ../../Zotlabs/Module/Sources.php:147
+msgid ""
+"Add the following categories to posts imported from this source (comma "
+"separated)"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:2108
-msgid "Advanced Profile Fields"
+#: ../../Zotlabs/Module/Sources.php:112 ../../Zotlabs/Module/Sources.php:147
+#: ../../Zotlabs/Module/Settings/Oauth.php:93
+msgid "Optional"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:2108
-msgid "(In addition to basic fields)"
+#: ../../Zotlabs/Module/Sources.php:133 ../../Zotlabs/Module/Sources.php:161
+msgid "Source not found."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:2110
-msgid "All available fields"
+#: ../../Zotlabs/Module/Sources.php:140
+msgid "Edit Source"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:2111
-msgid "Custom Fields"
+#: ../../Zotlabs/Module/Sources.php:141
+msgid "Delete Source"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:2115
-msgid "Create Custom Field"
+#: ../../Zotlabs/Module/Sources.php:169
+msgid "Source removed"
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:128
-#: ../../Zotlabs/Module/Register.php:231
-msgid "Name or caption"
+#: ../../Zotlabs/Module/Sources.php:171
+msgid "Unable to remove source."
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:128
-#: ../../Zotlabs/Module/Register.php:231
-msgid ""
-"Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation "
-"Group\""
+#: ../../Zotlabs/Module/Subthread.php:118
+#, php-format
+msgid "%1$s is following %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:130
-#: ../../Zotlabs/Module/Register.php:233
-msgid "Choose a short nickname"
+#: ../../Zotlabs/Module/Subthread.php:120
+#, php-format
+msgid "%1$s stopped following %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:130
-#: ../../Zotlabs/Module/Register.php:233
-#, php-format
+#: ../../Zotlabs/Module/Suggest.php:39
msgid ""
-"Your nickname will be used to create an easy to remember channel address e."
-"g. nickname%s"
+"No suggestions available. If this is a new site, please try again in 24 "
+"hours."
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:132
-#: ../../Zotlabs/Module/Register.php:235
-msgid "Channel role and privacy"
+#: ../../Zotlabs/Module/Suggest.php:58 ../../include/widgets.php:149
+msgid "Ignore/Hide"
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:132
-#: ../../Zotlabs/Module/Register.php:235
-msgid "Select a channel role with your privacy requirements."
+#: ../../Zotlabs/Module/Tagger.php:55 ../../include/bbcode.php:263
+msgid "post"
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:132
-#: ../../Zotlabs/Module/Register.php:235
-msgid "Read more about roles"
+#: ../../Zotlabs/Module/Tagger.php:57 ../../include/conversation.php:150
+#: ../../include/text.php:1999
+msgid "comment"
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:135
-msgid "Create Channel"
+#: ../../Zotlabs/Module/Tagger.php:100
+#, php-format
+msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:136
-msgid ""
-"A channel is your identity on this network. It can represent a person, a "
-"blog, or a forum to name a few. Channels can make connections with other "
-"channels to share information with highly detailed permissions."
+#: ../../Zotlabs/Module/Tagrm.php:48 ../../Zotlabs/Module/Tagrm.php:98
+msgid "Tag removed"
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:137
-msgid ""
-"or <a href=\"import\">import an existing channel</a> from another location."
+#: ../../Zotlabs/Module/Tagrm.php:123
+msgid "Remove Item Tag"
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:265
-msgid "sent you a private message"
+#: ../../Zotlabs/Module/Tagrm.php:125
+msgid "Select a tag to remove: "
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:313
-msgid "added your channel"
+#: ../../Zotlabs/Module/Photos.php:82
+msgid "Page owner information could not be retrieved."
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:323
-msgid "g A l F d"
+#: ../../Zotlabs/Module/Photos.php:103 ../../Zotlabs/Module/Photos.php:129
+msgid "Album not found."
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:346
-msgid "[today]"
+#: ../../Zotlabs/Module/Photos.php:112
+msgid "Delete Album"
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:355
-msgid "posted an event"
+#: ../../Zotlabs/Module/Photos.php:133
+msgid ""
+"Multiple storage folders exist with this album name, but within different "
+"directories. Please remove the desired folder or folders using the Files "
+"manager"
msgstr ""
-#: ../../Zotlabs/Module/Notifications.php:30
-msgid "Invalid request identifier."
+#: ../../Zotlabs/Module/Photos.php:190 ../../Zotlabs/Module/Photos.php:1059
+msgid "Delete Photo"
msgstr ""
-#: ../../Zotlabs/Module/Notifications.php:39
-msgid "Discard"
+#: ../../Zotlabs/Module/Photos.php:520
+msgid "No photos selected"
msgstr ""
-#: ../../Zotlabs/Module/Notifications.php:103 ../../include/nav.php:195
-msgid "Mark all system notifications seen"
+#: ../../Zotlabs/Module/Photos.php:569
+msgid "Access to this item is restricted."
msgstr ""
-#: ../../Zotlabs/Module/Poke.php:168 ../../Zotlabs/Lib/Apps.php:228
-#: ../../include/conversation.php:964
-msgid "Poke"
+#: ../../Zotlabs/Module/Photos.php:608
+#, php-format
+msgid "%1$.2f MB of %2$.2f MB photo storage used."
msgstr ""
-#: ../../Zotlabs/Module/Poke.php:169
-msgid "Poke somebody"
+#: ../../Zotlabs/Module/Photos.php:611
+#, php-format
+msgid "%1$.2f MB photo storage used."
msgstr ""
-#: ../../Zotlabs/Module/Poke.php:172
-msgid "Poke/Prod"
+#: ../../Zotlabs/Module/Photos.php:647
+msgid "Upload Photos"
msgstr ""
-#: ../../Zotlabs/Module/Poke.php:173
-msgid "Poke, prod or do other things to somebody"
+#: ../../Zotlabs/Module/Photos.php:651
+msgid "Enter an album name"
msgstr ""
-#: ../../Zotlabs/Module/Poke.php:180
-msgid "Recipient"
+#: ../../Zotlabs/Module/Photos.php:652
+msgid "or select an existing album (doubleclick)"
msgstr ""
-#: ../../Zotlabs/Module/Poke.php:181
-msgid "Choose what you wish to do to recipient"
+#: ../../Zotlabs/Module/Photos.php:653
+msgid "Create a status post for this upload"
msgstr ""
-#: ../../Zotlabs/Module/Poke.php:184 ../../Zotlabs/Module/Poke.php:185
-msgid "Make this post private"
+#: ../../Zotlabs/Module/Photos.php:654
+msgid "Caption (optional):"
msgstr ""
-#: ../../Zotlabs/Module/Oexchange.php:27
-msgid "Unable to find your hub."
+#: ../../Zotlabs/Module/Photos.php:655
+msgid "Description (optional):"
msgstr ""
-#: ../../Zotlabs/Module/Oexchange.php:41
-msgid "Post successful."
+#: ../../Zotlabs/Module/Photos.php:686
+msgid "Album name could not be decoded"
msgstr ""
-#: ../../Zotlabs/Module/Profperm.php:34 ../../Zotlabs/Module/Profperm.php:63
-msgid "Invalid profile identifier."
+#: ../../Zotlabs/Module/Photos.php:734
+msgid "Contact Photos"
msgstr ""
-#: ../../Zotlabs/Module/Profperm.php:115
-msgid "Profile Visibility Editor"
+#: ../../Zotlabs/Module/Photos.php:757
+msgid "Show Newest First"
msgstr ""
-#: ../../Zotlabs/Module/Profperm.php:117 ../../include/channel.php:1274
-msgid "Profile"
+#: ../../Zotlabs/Module/Photos.php:759
+msgid "Show Oldest First"
msgstr ""
-#: ../../Zotlabs/Module/Profperm.php:119
-msgid "Click on a contact to add or remove."
+#: ../../Zotlabs/Module/Photos.php:783 ../../Zotlabs/Module/Photos.php:1337
+#: ../../Zotlabs/Module/Embedphotos.php:141 ../../include/widgets.php:1673
+msgid "View Photo"
msgstr ""
-#: ../../Zotlabs/Module/Profperm.php:128
-msgid "Visible To"
+#: ../../Zotlabs/Module/Photos.php:814
+#: ../../Zotlabs/Module/Embedphotos.php:157 ../../include/widgets.php:1690
+msgid "Edit Album"
msgstr ""
-#: ../../Zotlabs/Module/Pconfig.php:26 ../../Zotlabs/Module/Pconfig.php:59
-msgid "This setting requires special processing and editing has been blocked."
+#: ../../Zotlabs/Module/Photos.php:861
+msgid "Permission denied. Access to this item may be restricted."
msgstr ""
-#: ../../Zotlabs/Module/Pconfig.php:48
-msgid "Configuration Editor"
+#: ../../Zotlabs/Module/Photos.php:863
+msgid "Photo not available"
msgstr ""
-#: ../../Zotlabs/Module/Pconfig.php:49
-msgid ""
-"Warning: Changing some settings could render your channel inoperable. Please "
-"leave this page unless you are comfortable with and knowledgeable about how "
-"to correctly use this feature."
+#: ../../Zotlabs/Module/Photos.php:921
+msgid "Use as profile photo"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:34
-msgid "Not found"
+#: ../../Zotlabs/Module/Photos.php:922
+msgid "Use as cover photo"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:97 ../../Zotlabs/Lib/Apps.php:219
-#: ../../include/features.php:57 ../../include/nav.php:110
-#: ../../include/conversation.php:1715 ../../include/conversation.php:1718
-msgid "Wiki"
+#: ../../Zotlabs/Module/Photos.php:929
+msgid "Private Photo"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:98
-msgid "Sandbox"
+#: ../../Zotlabs/Module/Photos.php:944
+msgid "View Full Size"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:100
-msgid ""
-"\"# Wiki Sandbox\\n\\nContent you **edit** and **preview** here *will not be "
-"saved*.\""
+#: ../../Zotlabs/Module/Photos.php:1033
+msgid "Edit photo"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:169
-msgid "Revision Comparison"
+#: ../../Zotlabs/Module/Photos.php:1035
+msgid "Rotate CW (right)"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:170
-msgid "Revert"
+#: ../../Zotlabs/Module/Photos.php:1036
+msgid "Rotate CCW (left)"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:201
-msgid "Enter the name of your new wiki:"
+#: ../../Zotlabs/Module/Photos.php:1039
+msgid "Move photo to album"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:202
-msgid "Enter the name of the new page:"
+#: ../../Zotlabs/Module/Photos.php:1040
+msgid "Enter a new album name"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:203
-msgid "Enter the new name:"
+#: ../../Zotlabs/Module/Photos.php:1041
+msgid "or select an existing one (doubleclick)"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:209 ../../include/conversation.php:1151
-msgid "Embed image from photo albums"
+#: ../../Zotlabs/Module/Photos.php:1044
+msgid "Caption"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:210 ../../include/conversation.php:1235
-msgid "Embed an image from your albums"
+#: ../../Zotlabs/Module/Photos.php:1046
+msgid "Add a Tag"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:212 ../../include/conversation.php:1237
-#: ../../include/conversation.php:1278
-msgid "OK"
+#: ../../Zotlabs/Module/Photos.php:1054
+msgid "Example: @bob, @Barbara_Jensen, @jim@example.com"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:213 ../../include/conversation.php:1187
-msgid "Choose images to embed"
+#: ../../Zotlabs/Module/Photos.php:1057
+msgid "Flag as adult in album view"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:214 ../../include/conversation.php:1188
-msgid "Choose an album"
+#: ../../Zotlabs/Module/Photos.php:1076 ../../Zotlabs/Lib/ThreadItem.php:263
+msgid "I like this (toggle)"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:215 ../../include/conversation.php:1189
-msgid "Choose a different album..."
+#: ../../Zotlabs/Module/Photos.php:1077 ../../Zotlabs/Lib/ThreadItem.php:264
+msgid "I don't like this (toggle)"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:216 ../../include/conversation.php:1190
-msgid "Error getting album list"
+#: ../../Zotlabs/Module/Photos.php:1079 ../../Zotlabs/Lib/ThreadItem.php:399
+#: ../../include/conversation.php:743
+msgid "Please wait"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:217 ../../include/conversation.php:1191
-msgid "Error getting photo link"
+#: ../../Zotlabs/Module/Photos.php:1095 ../../Zotlabs/Module/Photos.php:1213
+#: ../../Zotlabs/Lib/ThreadItem.php:709
+msgid "This is you"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:218 ../../include/conversation.php:1192
-msgid "Error getting album"
+#: ../../Zotlabs/Module/Photos.php:1097 ../../Zotlabs/Module/Photos.php:1215
+#: ../../Zotlabs/Lib/ThreadItem.php:711 ../../include/js_strings.php:6
+msgid "Comment"
msgstr ""
-#: ../../Zotlabs/Module/Siteinfo.php:19
-#, php-format
-msgid "Version %s"
+#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:577
+msgctxt "title"
+msgid "Likes"
msgstr ""
-#: ../../Zotlabs/Module/Siteinfo.php:34
-msgid "Installed plugins/addons/apps:"
+#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:577
+msgctxt "title"
+msgid "Dislikes"
msgstr ""
-#: ../../Zotlabs/Module/Siteinfo.php:36
-msgid "No installed plugins/addons/apps"
+#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578
+msgctxt "title"
+msgid "Agree"
msgstr ""
-#: ../../Zotlabs/Module/Siteinfo.php:49
-msgid ""
-"This is a hub of $Projectname - a global cooperative network of "
-"decentralized privacy enhanced websites."
+#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578
+msgctxt "title"
+msgid "Disagree"
msgstr ""
-#: ../../Zotlabs/Module/Siteinfo.php:51
-msgid "Tag: "
+#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578
+msgctxt "title"
+msgid "Abstain"
msgstr ""
-#: ../../Zotlabs/Module/Siteinfo.php:53
-msgid "Last background fetch: "
+#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579
+msgctxt "title"
+msgid "Attending"
msgstr ""
-#: ../../Zotlabs/Module/Siteinfo.php:55
-msgid "Current load average: "
+#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579
+msgctxt "title"
+msgid "Not attending"
msgstr ""
-#: ../../Zotlabs/Module/Siteinfo.php:58
-msgid "Running at web location"
+#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579
+msgctxt "title"
+msgid "Might attend"
msgstr ""
-#: ../../Zotlabs/Module/Siteinfo.php:59
-msgid ""
-"Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more "
-"about $Projectname."
+#: ../../Zotlabs/Module/Photos.php:1132 ../../Zotlabs/Module/Photos.php:1144
+#: ../../Zotlabs/Lib/ThreadItem.php:181 ../../Zotlabs/Lib/ThreadItem.php:193
+#: ../../include/conversation.php:1762
+msgid "View all"
msgstr ""
-#: ../../Zotlabs/Module/Siteinfo.php:60
-msgid "Bug reports and issues: please visit"
-msgstr ""
+#: ../../Zotlabs/Module/Photos.php:1136 ../../Zotlabs/Lib/ThreadItem.php:185
+#: ../../include/channel.php:1182 ../../include/conversation.php:1786
+#: ../../include/taxonomy.php:403
+msgctxt "noun"
+msgid "Like"
+msgid_plural "Likes"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../Zotlabs/Module/Siteinfo.php:62
-msgid "$projectname issues"
-msgstr ""
+#: ../../Zotlabs/Module/Photos.php:1141 ../../Zotlabs/Lib/ThreadItem.php:190
+#: ../../include/conversation.php:1789
+msgctxt "noun"
+msgid "Dislike"
+msgid_plural "Dislikes"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../Zotlabs/Module/Siteinfo.php:63
-msgid ""
-"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"
+#: ../../Zotlabs/Module/Photos.php:1241
+msgid "Photo Tools"
msgstr ""
-#: ../../Zotlabs/Module/Siteinfo.php:65
-msgid "Site Administrators"
+#: ../../Zotlabs/Module/Photos.php:1250
+msgid "In This Photo:"
msgstr ""
-#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2262
-msgid "Blocks"
+#: ../../Zotlabs/Module/Photos.php:1255
+msgid "Map"
msgstr ""
-#: ../../Zotlabs/Module/Blocks.php:156
-msgid "Block Title"
+#: ../../Zotlabs/Module/Photos.php:1263 ../../Zotlabs/Lib/ThreadItem.php:388
+msgctxt "noun"
+msgid "Likes"
msgstr ""
-#: ../../Zotlabs/Module/Layouts.php:183 ../../include/text.php:2264
-msgid "Layouts"
+#: ../../Zotlabs/Module/Photos.php:1264 ../../Zotlabs/Lib/ThreadItem.php:389
+msgctxt "noun"
+msgid "Dislikes"
msgstr ""
-#: ../../Zotlabs/Module/Layouts.php:185
-msgid "Comanche page description language help"
+#: ../../Zotlabs/Module/Photos.php:1269 ../../Zotlabs/Lib/ThreadItem.php:394
+#: ../../include/acl_selectors.php:181
+msgid "Close"
msgstr ""
-#: ../../Zotlabs/Module/Layouts.php:189
-msgid "Layout Description"
+#: ../../Zotlabs/Module/Photos.php:1343
+msgid "View Album"
msgstr ""
-#: ../../Zotlabs/Module/Layouts.php:194
-msgid "Download PDL file"
+#: ../../Zotlabs/Module/Photos.php:1354 ../../Zotlabs/Module/Photos.php:1367
+#: ../../Zotlabs/Module/Photos.php:1368
+msgid "Recent Photos"
msgstr ""
-#: ../../Zotlabs/Module/Pubsites.php:22 ../../include/widgets.php:1351
-msgid "Public Hubs"
+#: ../../Zotlabs/Module/Follow.php:34
+msgid "Channel added."
msgstr ""
-#: ../../Zotlabs/Module/Pubsites.php:25
-msgid ""
-"The listed hubs allow public registration for the $Projectname network. All "
-"hubs in the network are interlinked so membership on any of them conveys "
-"membership in the network as a whole. Some hubs may require subscription or "
-"provide tiered service plans. The hub itself <strong>may</strong> provide "
-"additional details."
+#: ../../Zotlabs/Module/Viewconnections.php:65
+msgid "No connections."
msgstr ""
-#: ../../Zotlabs/Module/Pubsites.php:31
-msgid "Hub URL"
+#: ../../Zotlabs/Module/Viewconnections.php:78
+#, php-format
+msgid "Visit %s's profile [%s]"
msgstr ""
-#: ../../Zotlabs/Module/Pubsites.php:31
-msgid "Access Type"
+#: ../../Zotlabs/Module/Viewconnections.php:107
+msgid "View Connections"
msgstr ""
-#: ../../Zotlabs/Module/Pubsites.php:31
-msgid "Registration Policy"
+#: ../../Zotlabs/Module/Viewsrc.php:44
+msgid "Source of Item"
msgstr ""
-#: ../../Zotlabs/Module/Pubsites.php:31
-msgid "Stats"
+#: ../../Zotlabs/Module/Chat.php:181
+msgid "Room not found"
msgstr ""
-#: ../../Zotlabs/Module/Pubsites.php:31
-msgid "Software"
+#: ../../Zotlabs/Module/Chat.php:197
+msgid "Leave Room"
msgstr ""
-#: ../../Zotlabs/Module/Pubsites.php:31 ../../Zotlabs/Module/Ratings.php:103
-#: ../../include/conversation.php:963
-msgid "Ratings"
+#: ../../Zotlabs/Module/Chat.php:198
+msgid "Delete Room"
msgstr ""
-#: ../../Zotlabs/Module/Pubsites.php:38
-msgid "Rate"
+#: ../../Zotlabs/Module/Chat.php:199
+msgid "I am away right now"
msgstr ""
-#: ../../Zotlabs/Module/Profile_photo.php:186
-msgid ""
-"Shift-reload the page or clear browser cache if the new photo does not "
-"display immediately."
+#: ../../Zotlabs/Module/Chat.php:200
+msgid "I am online"
msgstr ""
-#: ../../Zotlabs/Module/Profile_photo.php:389
-msgid "Upload Profile Photo"
+#: ../../Zotlabs/Module/Chat.php:202
+msgid "Bookmark this room"
msgstr ""
-#: ../../Zotlabs/Module/Cal.php:69
-msgid "Permissions denied."
+#: ../../Zotlabs/Module/Chat.php:231
+msgid "New Chatroom"
msgstr ""
-#: ../../Zotlabs/Module/Cal.php:337 ../../include/text.php:2286
-msgid "Import"
+#: ../../Zotlabs/Module/Chat.php:232
+msgid "Chatroom name"
msgstr ""
-#: ../../Zotlabs/Module/Common.php:14
-msgid "No channel."
+#: ../../Zotlabs/Module/Chat.php:233
+msgid "Expiration of chats (minutes)"
msgstr ""
-#: ../../Zotlabs/Module/Common.php:43
-msgid "Common connections"
+#: ../../Zotlabs/Module/Chat.php:249
+#, php-format
+msgid "%1$s's Chatrooms"
msgstr ""
-#: ../../Zotlabs/Module/Common.php:48
-msgid "No connections in common."
+#: ../../Zotlabs/Module/Chat.php:254
+msgid "No chatrooms available"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:49
-msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
+#: ../../Zotlabs/Module/Chat.php:258
+msgid "Expiration"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:55
-msgid ""
-"Please indicate acceptance of the Terms of Service. Registration failed."
+#: ../../Zotlabs/Module/Chat.php:259
+msgid "min"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:89
-msgid "Passwords do not match."
+#: ../../Zotlabs/Module/Xchan.php:10
+msgid "Xchan Lookup"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:131
-msgid ""
-"Registration successful. Please check your email for validation instructions."
+#: ../../Zotlabs/Module/Xchan.php:13
+msgid "Lookup xchan beginning with (or webbie): "
msgstr ""
-#: ../../Zotlabs/Module/Register.php:137
-msgid "Your registration is pending approval by the site owner."
+#: ../../Zotlabs/Module/Admin.php:97
+msgid "# Accounts"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:140
-msgid "Your registration can not be processed."
+#: ../../Zotlabs/Module/Admin.php:98
+msgid "# blocked accounts"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:184
-msgid "Registration on this hub is disabled."
+#: ../../Zotlabs/Module/Admin.php:99
+msgid "# expired accounts"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:193
-msgid "Registration on this hub is by approval only."
+#: ../../Zotlabs/Module/Admin.php:100
+msgid "# expiring accounts"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:194
-msgid "<a href=\"pubsites\">Register at another affiliated hub.</a>"
+#: ../../Zotlabs/Module/Admin.php:111
+msgid "# Channels"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:204
-msgid ""
-"This site has exceeded the number of allowed daily account registrations. "
-"Please try again tomorrow."
+#: ../../Zotlabs/Module/Admin.php:112
+msgid "# primary"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:215
-msgid "Terms of Service"
+#: ../../Zotlabs/Module/Admin.php:113
+msgid "# clones"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:221
-#, php-format
-msgid "I accept the %s for this website"
+#: ../../Zotlabs/Module/Admin.php:119
+msgid "Message queues"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:223
-#, php-format
-msgid "I am over 13 years of age and accept the %s for this website"
+#: ../../Zotlabs/Module/Admin.php:136
+msgid "Your software should be updated"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:227
-msgid "Your email address"
+#: ../../Zotlabs/Module/Admin.php:142
+msgid "Summary"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:228
-msgid "Choose a password"
+#: ../../Zotlabs/Module/Admin.php:145
+msgid "Registered accounts"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:229
-msgid "Please re-enter your password"
+#: ../../Zotlabs/Module/Admin.php:146
+msgid "Pending registrations"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:230
-msgid "Please enter your invitation code"
+#: ../../Zotlabs/Module/Admin.php:147
+msgid "Registered channels"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:236
-msgid "no"
+#: ../../Zotlabs/Module/Admin.php:148
+msgid "Active plugins"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:236
-msgid "yes"
+#: ../../Zotlabs/Module/Admin.php:149
+msgid "Version"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:253
-msgid "Membership on this site is by invitation only."
+#: ../../Zotlabs/Module/Admin.php:150
+msgid "Repository version (master)"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:265 ../../include/nav.php:151
-#: ../../boot.php:1695
-msgid "Register"
+#: ../../Zotlabs/Module/Admin.php:151
+msgid "Repository version (dev)"
msgstr ""
-#: ../../Zotlabs/Module/Register.php:266
-msgid ""
-"This site may require email verification after submitting this form. If you "
-"are returned to a login page, please check your email for instructions."
+#: ../../Zotlabs/Module/Settings/Account.php:20
+msgid "Not valid email."
msgstr ""
-#: ../../Zotlabs/Module/Ratings.php:73
-msgid "No ratings"
+#: ../../Zotlabs/Module/Settings/Account.php:23
+msgid "Protected email address. Cannot change to that email."
msgstr ""
-#: ../../Zotlabs/Module/Ratings.php:104
-msgid "Rating: "
+#: ../../Zotlabs/Module/Settings/Account.php:32
+msgid "System failure storing new email. Please try again."
msgstr ""
-#: ../../Zotlabs/Module/Ratings.php:105
-msgid "Website: "
+#: ../../Zotlabs/Module/Settings/Account.php:40
+msgid "Technical skill level updated"
msgstr ""
-#: ../../Zotlabs/Module/Ratings.php:107
-msgid "Description: "
+#: ../../Zotlabs/Module/Settings/Account.php:56
+msgid "Password verification failed."
msgstr ""
-#: ../../Zotlabs/Module/Apps.php:47 ../../include/nav.php:167
-#: ../../include/widgets.php:102
-msgid "Apps"
+#: ../../Zotlabs/Module/Settings/Account.php:63
+msgid "Passwords do not match. Password unchanged."
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:52
-msgid "Unable to create element."
+#: ../../Zotlabs/Module/Settings/Account.php:67
+msgid "Empty passwords are not allowed. Password unchanged."
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:76
-msgid "Unable to update menu element."
+#: ../../Zotlabs/Module/Settings/Account.php:81
+msgid "Password changed."
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:92
-msgid "Unable to add menu element."
+#: ../../Zotlabs/Module/Settings/Account.php:83
+msgid "Password update failed. Please try again."
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:153 ../../Zotlabs/Module/Mitem.php:230
-msgid "Menu Item Permissions"
+#: ../../Zotlabs/Module/Settings/Account.php:120
+msgid "Account Settings"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:160 ../../Zotlabs/Module/Mitem.php:176
-msgid "Link Name"
+#: ../../Zotlabs/Module/Settings/Account.php:121
+msgid "Current Password"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:161 ../../Zotlabs/Module/Mitem.php:239
-msgid "Link or Submenu Target"
+#: ../../Zotlabs/Module/Settings/Account.php:122
+msgid "Enter New Password"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:161
-msgid "Enter URL of the link or select a menu name to create a submenu"
+#: ../../Zotlabs/Module/Settings/Account.php:123
+msgid "Confirm New Password"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:162 ../../Zotlabs/Module/Mitem.php:240
-msgid "Use magic-auth if available"
+#: ../../Zotlabs/Module/Settings/Account.php:123
+msgid "Leave password fields blank unless changing"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:241
-msgid "Open link in new window"
+#: ../../Zotlabs/Module/Settings/Account.php:124
+msgid "Your technical skill level"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:164 ../../Zotlabs/Module/Mitem.php:242
-msgid "Order in list"
+#: ../../Zotlabs/Module/Settings/Account.php:124
+msgid "Used to provide a member experience matched to your comfort level"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:164 ../../Zotlabs/Module/Mitem.php:242
-msgid "Higher numbers will sink to bottom of listing"
+#: ../../Zotlabs/Module/Settings/Account.php:127
+#: ../../Zotlabs/Module/Settings/Channel.php:459
+msgid "Email Address:"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:165
-msgid "Submit and finish"
+#: ../../Zotlabs/Module/Settings/Account.php:129
+msgid "Remove this account including all its channels"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:166
-msgid "Submit and continue"
+#: ../../Zotlabs/Module/Settings/Channel.php:246
+msgid "Settings updated."
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:174
-msgid "Menu:"
+#: ../../Zotlabs/Module/Settings/Channel.php:307
+msgid "Nobody except yourself"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:177
-msgid "Link Target"
+#: ../../Zotlabs/Module/Settings/Channel.php:308
+msgid "Only those you specifically allow"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:180
-msgid "Edit menu"
+#: ../../Zotlabs/Module/Settings/Channel.php:309
+msgid "Approved connections"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:183
-msgid "Edit element"
+#: ../../Zotlabs/Module/Settings/Channel.php:310
+msgid "Any connections"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:184
-msgid "Drop element"
+#: ../../Zotlabs/Module/Settings/Channel.php:311
+msgid "Anybody on this website"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:185
-msgid "New element"
+#: ../../Zotlabs/Module/Settings/Channel.php:312
+msgid "Anybody in this network"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:186
-msgid "Edit this menu container"
+#: ../../Zotlabs/Module/Settings/Channel.php:313
+msgid "Anybody authenticated"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:187
-msgid "Add menu element"
+#: ../../Zotlabs/Module/Settings/Channel.php:314
+msgid "Anybody on the internet"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:188
-msgid "Delete this menu item"
+#: ../../Zotlabs/Module/Settings/Channel.php:390
+msgid "Publish your default profile in the network directory"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:189
-msgid "Edit this menu item"
+#: ../../Zotlabs/Module/Settings/Channel.php:395
+msgid "Allow us to suggest you as a potential friend to new members?"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:206
-msgid "Menu item not found."
+#: ../../Zotlabs/Module/Settings/Channel.php:404
+msgid "Your channel address is"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:219
-msgid "Menu item deleted."
+#: ../../Zotlabs/Module/Settings/Channel.php:450
+msgid "Channel Settings"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:221
-msgid "Menu item could not be deleted."
+#: ../../Zotlabs/Module/Settings/Channel.php:457
+msgid "Basic Settings"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:228
-msgid "Edit Menu Element"
+#: ../../Zotlabs/Module/Settings/Channel.php:458
+#: ../../include/channel.php:1164
+msgid "Full Name:"
msgstr ""
-#: ../../Zotlabs/Module/Mitem.php:238
-msgid "Link text"
+#: ../../Zotlabs/Module/Settings/Channel.php:460
+msgid "Your Timezone:"
msgstr ""
-#: ../../Zotlabs/Module/Connect.php:61 ../../Zotlabs/Module/Connect.php:109
-msgid "Continue"
+#: ../../Zotlabs/Module/Settings/Channel.php:461
+msgid "Default Post Location:"
msgstr ""
-#: ../../Zotlabs/Module/Connect.php:90
-msgid "Premium Channel Setup"
+#: ../../Zotlabs/Module/Settings/Channel.php:461
+msgid "Geographical location to display on your posts"
msgstr ""
-#: ../../Zotlabs/Module/Connect.php:92
-msgid "Enable premium channel connection restrictions"
+#: ../../Zotlabs/Module/Settings/Channel.php:462
+msgid "Use Browser Location:"
msgstr ""
-#: ../../Zotlabs/Module/Connect.php:93
-msgid ""
-"Please enter your restrictions or conditions, such as paypal receipt, usage "
-"guidelines, etc."
+#: ../../Zotlabs/Module/Settings/Channel.php:464
+msgid "Adult Content"
msgstr ""
-#: ../../Zotlabs/Module/Connect.php:95 ../../Zotlabs/Module/Connect.php:115
+#: ../../Zotlabs/Module/Settings/Channel.php:464
msgid ""
-"This channel may require additional steps or acknowledgement of the "
-"following conditions prior to connecting:"
+"This channel frequently or regularly publishes adult content. (Please tag "
+"any adult material and/or nudity with #NSFW)"
msgstr ""
-#: ../../Zotlabs/Module/Connect.php:96
-msgid ""
-"Potential connections will then see the following text before proceeding:"
+#: ../../Zotlabs/Module/Settings/Channel.php:466
+msgid "Security and Privacy Settings"
msgstr ""
-#: ../../Zotlabs/Module/Connect.php:97 ../../Zotlabs/Module/Connect.php:118
-msgid ""
-"By continuing, I certify that I have complied with any instructions provided "
-"on this page."
+#: ../../Zotlabs/Module/Settings/Channel.php:469
+msgid "Your permissions are already configured. Click to view/adjust"
msgstr ""
-#: ../../Zotlabs/Module/Connect.php:106
-msgid "(No specific instructions have been provided by the channel owner.)"
+#: ../../Zotlabs/Module/Settings/Channel.php:471
+msgid "Hide my online presence"
msgstr ""
-#: ../../Zotlabs/Module/Connect.php:114
-msgid "Restricted or Premium Channel"
+#: ../../Zotlabs/Module/Settings/Channel.php:471
+msgid "Prevents displaying in your profile that you are online"
msgstr ""
-#: ../../Zotlabs/Module/Rbmark.php:94
-msgid "Select a bookmark folder"
+#: ../../Zotlabs/Module/Settings/Channel.php:473
+msgid "Simple Privacy Settings:"
msgstr ""
-#: ../../Zotlabs/Module/Rbmark.php:99
-msgid "Save Bookmark"
+#: ../../Zotlabs/Module/Settings/Channel.php:474
+msgid ""
+"Very Public - <em>extremely permissive (should be used with caution)</em>"
msgstr ""
-#: ../../Zotlabs/Module/Rbmark.php:100
-msgid "URL of bookmark"
+#: ../../Zotlabs/Module/Settings/Channel.php:475
+msgid ""
+"Typical - <em>default public, privacy when desired (similar to social "
+"network permissions but with improved privacy)</em>"
msgstr ""
-#: ../../Zotlabs/Module/Rbmark.php:105
-msgid "Or enter new bookmark folder name"
+#: ../../Zotlabs/Module/Settings/Channel.php:476
+msgid "Private - <em>default private, never open or public</em>"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:94
-msgid "No such group"
+#: ../../Zotlabs/Module/Settings/Channel.php:477
+msgid "Blocked - <em>default blocked to/from everybody</em>"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:134
-msgid "No such channel"
+#: ../../Zotlabs/Module/Settings/Channel.php:479
+msgid "Allow others to tag your posts"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:139
-msgid "forum"
+#: ../../Zotlabs/Module/Settings/Channel.php:479
+msgid ""
+"Often used by the community to retro-actively flag inappropriate content"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:151
-msgid "Search Results For:"
+#: ../../Zotlabs/Module/Settings/Channel.php:481
+msgid "Channel Permission Limits"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:216
-msgid "Privacy group is empty"
+#: ../../Zotlabs/Module/Settings/Channel.php:483
+msgid "Expire other channel content after this many days"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:225
-msgid "Privacy group: "
+#: ../../Zotlabs/Module/Settings/Channel.php:483
+msgid "0 or blank to use the website limit."
msgstr ""
-#: ../../Zotlabs/Module/Network.php:251
-msgid "Invalid connection."
+#: ../../Zotlabs/Module/Settings/Channel.php:483
+#, php-format
+msgid "This website expires after %d days."
msgstr ""
-#: ../../Zotlabs/Module/Regmod.php:15
-msgid "Please login."
+#: ../../Zotlabs/Module/Settings/Channel.php:483
+msgid "This website does not expire imported content."
msgstr ""
-#: ../../Zotlabs/Module/Removeaccount.php:35
-msgid ""
-"Account removals are not allowed within 48 hours of changing the account "
-"password."
+#: ../../Zotlabs/Module/Settings/Channel.php:483
+msgid "The website limit takes precedence if lower than your limit."
msgstr ""
-#: ../../Zotlabs/Module/Removeaccount.php:57
-msgid "Remove This Account"
+#: ../../Zotlabs/Module/Settings/Channel.php:484
+msgid "Maximum Friend Requests/Day:"
msgstr ""
-#: ../../Zotlabs/Module/Removeaccount.php:58
-#: ../../Zotlabs/Module/Removeme.php:61
-msgid "WARNING: "
+#: ../../Zotlabs/Module/Settings/Channel.php:484
+msgid "May reduce spam activity"
msgstr ""
-#: ../../Zotlabs/Module/Removeaccount.php:58
-msgid ""
-"This account and all its channels will be completely removed from the "
-"network. "
+#: ../../Zotlabs/Module/Settings/Channel.php:485
+msgid "Default Access Control List (ACL)"
msgstr ""
-#: ../../Zotlabs/Module/Removeaccount.php:58
-#: ../../Zotlabs/Module/Removeme.php:61
-msgid "This action is permanent and can not be undone!"
+#: ../../Zotlabs/Module/Settings/Channel.php:487
+msgid "Use my default audience setting for the type of object published"
msgstr ""
-#: ../../Zotlabs/Module/Removeaccount.php:59
-#: ../../Zotlabs/Module/Removeme.php:62
-msgid "Please enter your password for verification:"
+#: ../../Zotlabs/Module/Settings/Channel.php:494
+msgid "Channel permissions category:"
msgstr ""
-#: ../../Zotlabs/Module/Removeaccount.php:60
-msgid ""
-"Remove this account, all its channels and all its channel clones from the "
-"network"
+#: ../../Zotlabs/Module/Settings/Channel.php:500
+msgid "Maximum private messages per day from unknown people:"
msgstr ""
-#: ../../Zotlabs/Module/Removeaccount.php:60
-msgid ""
-"By default only the instances of the channels located on this hub will be "
-"removed from the network"
+#: ../../Zotlabs/Module/Settings/Channel.php:500
+msgid "Useful to reduce spamming"
msgstr ""
-#: ../../Zotlabs/Module/Removeme.php:35
-msgid ""
-"Channel removals are not allowed within 48 hours of changing the account "
-"password."
+#: ../../Zotlabs/Module/Settings/Channel.php:503
+msgid "Notification Settings"
msgstr ""
-#: ../../Zotlabs/Module/Removeme.php:60
-msgid "Remove This Channel"
+#: ../../Zotlabs/Module/Settings/Channel.php:504
+msgid "By default post a status message when:"
msgstr ""
-#: ../../Zotlabs/Module/Removeme.php:61
-msgid "This channel will be completely removed from the network. "
+#: ../../Zotlabs/Module/Settings/Channel.php:505
+msgid "accepting a friend request"
msgstr ""
-#: ../../Zotlabs/Module/Removeme.php:63
-msgid "Remove this channel and all its clones from the network"
+#: ../../Zotlabs/Module/Settings/Channel.php:506
+msgid "joining a forum/community"
msgstr ""
-#: ../../Zotlabs/Module/Removeme.php:63
-msgid ""
-"By default only the instance of the channel located on this hub will be "
-"removed from the network"
+#: ../../Zotlabs/Module/Settings/Channel.php:507
+msgid "making an <em>interesting</em> profile change"
msgstr ""
-#: ../../Zotlabs/Module/Uexport.php:55 ../../Zotlabs/Module/Uexport.php:56
-msgid "Export Channel"
+#: ../../Zotlabs/Module/Settings/Channel.php:508
+msgid "Send a notification email when:"
msgstr ""
-#: ../../Zotlabs/Module/Uexport.php:57
-msgid ""
-"Export your basic channel information to a file. This acts as a backup of "
-"your connections, permissions, profile and basic data, which can be used to "
-"import your data to a new server hub, but does not contain your content."
+#: ../../Zotlabs/Module/Settings/Channel.php:509
+msgid "You receive a connection request"
msgstr ""
-#: ../../Zotlabs/Module/Uexport.php:58
-msgid "Export Content"
+#: ../../Zotlabs/Module/Settings/Channel.php:510
+msgid "Your connections are confirmed"
msgstr ""
-#: ../../Zotlabs/Module/Uexport.php:59
-msgid ""
-"Export your channel information and recent content to a JSON backup that can "
-"be restored or imported to another server hub. This backs up all of your "
-"connections, permissions, profile data and several months of posts. This "
-"file may be VERY large. Please be patient - it may take several minutes for "
-"this download to begin."
+#: ../../Zotlabs/Module/Settings/Channel.php:511
+msgid "Someone writes on your profile wall"
msgstr ""
-#: ../../Zotlabs/Module/Uexport.php:60
-msgid "Export your posts from a given year."
+#: ../../Zotlabs/Module/Settings/Channel.php:512
+msgid "Someone writes a followup comment"
msgstr ""
-#: ../../Zotlabs/Module/Uexport.php:62
-msgid ""
-"You may also export your posts and conversations for a particular year or "
-"month. Adjust the date in your browser location bar to select other dates. "
-"If the export fails (possibly due to memory exhaustion on your server hub), "
-"please try again selecting a more limited date range."
+#: ../../Zotlabs/Module/Settings/Channel.php:513
+msgid "You receive a private message"
msgstr ""
-#: ../../Zotlabs/Module/Uexport.php:63
-#, php-format
-msgid ""
-"To select all posts for a given year, such as this year, visit <a href=\"%1$s"
-"\">%2$s</a>"
+#: ../../Zotlabs/Module/Settings/Channel.php:514
+msgid "You receive a friend suggestion"
msgstr ""
-#: ../../Zotlabs/Module/Uexport.php:64
-#, php-format
-msgid ""
-"To select all posts for a given month, such as January of this year, visit "
-"<a href=\"%1$s\">%2$s</a>"
+#: ../../Zotlabs/Module/Settings/Channel.php:515
+msgid "You are tagged in a post"
msgstr ""
-#: ../../Zotlabs/Module/Uexport.php:65
-#, php-format
-msgid ""
-"These content files may be imported or restored by visiting <a href=\"%1$s\">"
-"%2$s</a> on any site containing your channel. For best results please import "
-"or restore these in date order (oldest first)."
+#: ../../Zotlabs/Module/Settings/Channel.php:516
+msgid "You are poked/prodded/etc. in a post"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:114
-msgid "Thing updated"
+#: ../../Zotlabs/Module/Settings/Channel.php:519
+msgid "Show visual notifications including:"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:166
-msgid "Object store: failed"
+#: ../../Zotlabs/Module/Settings/Channel.php:521
+msgid "Unseen grid activity"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:170
-msgid "Thing added"
+#: ../../Zotlabs/Module/Settings/Channel.php:522
+msgid "Unseen channel activity"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:196
-#, php-format
-msgid "OBJ: %1$s %2$s %3$s"
+#: ../../Zotlabs/Module/Settings/Channel.php:523
+msgid "Unseen private messages"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:259
-msgid "Show Thing"
+#: ../../Zotlabs/Module/Settings/Channel.php:523
+#: ../../Zotlabs/Module/Settings/Channel.php:528
+#: ../../Zotlabs/Module/Settings/Channel.php:529
+#: ../../Zotlabs/Module/Settings/Channel.php:530
+msgid "Recommended"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:266
-msgid "item not found."
+#: ../../Zotlabs/Module/Settings/Channel.php:524
+msgid "Upcoming events"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:299
-msgid "Edit Thing"
+#: ../../Zotlabs/Module/Settings/Channel.php:525
+msgid "Events today"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:301 ../../Zotlabs/Module/Thing.php:355
-msgid "Select a profile"
+#: ../../Zotlabs/Module/Settings/Channel.php:526
+msgid "Upcoming birthdays"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358
-msgid "Post an activity"
+#: ../../Zotlabs/Module/Settings/Channel.php:526
+msgid "Not available in all themes"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358
-msgid "Only sends to viewers of the applicable profile"
+#: ../../Zotlabs/Module/Settings/Channel.php:527
+msgid "System (personal) notifications"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:360
-msgid "Name of thing e.g. something"
+#: ../../Zotlabs/Module/Settings/Channel.php:528
+msgid "System info messages"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:309 ../../Zotlabs/Module/Thing.php:361
-msgid "URL of thing (optional)"
+#: ../../Zotlabs/Module/Settings/Channel.php:529
+msgid "System critical alerts"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:362
-msgid "URL for photo of thing (optional)"
+#: ../../Zotlabs/Module/Settings/Channel.php:530
+msgid "New connections"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:353
-msgid "Add Thing to your Profile"
+#: ../../Zotlabs/Module/Settings/Channel.php:531
+msgid "System Registrations"
msgstr ""
-#: ../../Zotlabs/Module/Search.php:216
-#, php-format
-msgid "Items tagged with: %s"
+#: ../../Zotlabs/Module/Settings/Channel.php:532
+msgid ""
+"Also show new wall posts, private messages and connections under Notices"
msgstr ""
-#: ../../Zotlabs/Module/Search.php:218
-#, php-format
-msgid "Search results for: %s"
+#: ../../Zotlabs/Module/Settings/Channel.php:534
+msgid "Notify me of events this many days in advance"
msgstr ""
-#: ../../Zotlabs/Module/Service_limits.php:23
-msgid "No service class restrictions found."
+#: ../../Zotlabs/Module/Settings/Channel.php:534
+msgid "Must be greater than 0"
msgstr ""
-#: ../../Zotlabs/Module/Rate.php:160
-msgid "Website:"
+#: ../../Zotlabs/Module/Settings/Channel.php:536
+msgid "Advanced Account/Page Type Settings"
msgstr ""
-#: ../../Zotlabs/Module/Rate.php:163
-#, php-format
-msgid "Remote Channel [%s] (not yet known on this site)"
+#: ../../Zotlabs/Module/Settings/Channel.php:537
+msgid "Change the behaviour of this account for special situations"
msgstr ""
-#: ../../Zotlabs/Module/Rate.php:164
-msgid "Rating (this information is public)"
+#: ../../Zotlabs/Module/Settings/Channel.php:539
+msgid "Miscellaneous Settings"
msgstr ""
-#: ../../Zotlabs/Module/Rate.php:165
-msgid "Optionally explain your rating (this information is public)"
+#: ../../Zotlabs/Module/Settings/Channel.php:540
+msgid "Default photo upload folder"
msgstr ""
-#: ../../Zotlabs/Module/Rmagic.php:35
-msgid "Authentication failed."
+#: ../../Zotlabs/Module/Settings/Channel.php:540
+#: ../../Zotlabs/Module/Settings/Channel.php:541
+msgid "%Y - current year, %m - current month"
msgstr ""
-#: ../../Zotlabs/Module/Rmagic.php:75
-msgid "Remote Authentication"
+#: ../../Zotlabs/Module/Settings/Channel.php:541
+msgid "Default file upload folder"
msgstr ""
-#: ../../Zotlabs/Module/Rmagic.php:76
-msgid "Enter your channel address (e.g. channel@example.com)"
+#: ../../Zotlabs/Module/Settings/Channel.php:543
+msgid "Personal menu to display in your channel pages"
msgstr ""
-#: ../../Zotlabs/Module/Rmagic.php:77
-msgid "Authenticate"
+#: ../../Zotlabs/Module/Settings/Channel.php:545
+msgid "Remove this channel."
msgstr ""
-#: ../../Zotlabs/Module/Sharedwithme.php:98
-msgid "Files: shared with me"
+#: ../../Zotlabs/Module/Settings/Channel.php:546
+msgid "Firefox Share $Projectname provider"
msgstr ""
-#: ../../Zotlabs/Module/Sharedwithme.php:100
-msgid "NEW"
+#: ../../Zotlabs/Module/Settings/Channel.php:547
+msgid "Start calendar week on monday"
msgstr ""
-#: ../../Zotlabs/Module/Sharedwithme.php:103
-msgid "Remove all files"
+#: ../../Zotlabs/Module/Settings/Display.php:135
+msgid "No special theme for mobile devices"
msgstr ""
-#: ../../Zotlabs/Module/Sharedwithme.php:104
-msgid "Remove this file"
+#: ../../Zotlabs/Module/Settings/Display.php:138
+#, php-format
+msgid "%s - (Experimental)"
msgstr ""
-#: ../../Zotlabs/Module/Follow.php:34
-msgid "Channel added."
+#: ../../Zotlabs/Module/Settings/Display.php:189
+msgid "Display Settings"
msgstr ""
-#: ../../Zotlabs/Module/Sources.php:37
-msgid "Failed to create source. No channel selected."
+#: ../../Zotlabs/Module/Settings/Display.php:190
+msgid "Theme Settings"
msgstr ""
-#: ../../Zotlabs/Module/Sources.php:51
-msgid "Source created."
+#: ../../Zotlabs/Module/Settings/Display.php:191
+msgid "Custom Theme Settings"
msgstr ""
-#: ../../Zotlabs/Module/Sources.php:64
-msgid "Source updated."
+#: ../../Zotlabs/Module/Settings/Display.php:192
+msgid "Content Settings"
msgstr ""
-#: ../../Zotlabs/Module/Sources.php:90
-msgid "*"
+#: ../../Zotlabs/Module/Settings/Display.php:198
+msgid "Display Theme:"
msgstr ""
-#: ../../Zotlabs/Module/Sources.php:96 ../../include/features.php:74
-#: ../../include/widgets.php:639
-msgid "Channel Sources"
+#: ../../Zotlabs/Module/Settings/Display.php:199
+msgid "Select scheme"
msgstr ""
-#: ../../Zotlabs/Module/Sources.php:97
-msgid "Manage remote sources of content for your channel."
+#: ../../Zotlabs/Module/Settings/Display.php:201
+msgid "Mobile Theme:"
msgstr ""
-#: ../../Zotlabs/Module/Sources.php:98 ../../Zotlabs/Module/Sources.php:108
-msgid "New Source"
+#: ../../Zotlabs/Module/Settings/Display.php:202
+msgid "Preload images before rendering the page"
msgstr ""
-#: ../../Zotlabs/Module/Sources.php:109 ../../Zotlabs/Module/Sources.php:143
+#: ../../Zotlabs/Module/Settings/Display.php:202
msgid ""
-"Import all or selected content from the following channel into this channel "
-"and distribute it according to your channel settings."
-msgstr ""
-
-#: ../../Zotlabs/Module/Sources.php:110 ../../Zotlabs/Module/Sources.php:144
-msgid "Only import content with these words (one per line)"
+"The subjective page load time will be longer but the page will be ready when "
+"displayed"
msgstr ""
-#: ../../Zotlabs/Module/Sources.php:110 ../../Zotlabs/Module/Sources.php:144
-msgid "Leave blank to import all public content"
+#: ../../Zotlabs/Module/Settings/Display.php:203
+msgid "Enable user zoom on mobile devices"
msgstr ""
-#: ../../Zotlabs/Module/Sources.php:111 ../../Zotlabs/Module/Sources.php:148
-msgid "Channel Name"
+#: ../../Zotlabs/Module/Settings/Display.php:204
+msgid "Update browser every xx seconds"
msgstr ""
-#: ../../Zotlabs/Module/Sources.php:112 ../../Zotlabs/Module/Sources.php:147
-msgid ""
-"Add the following categories to posts imported from this source (comma "
-"separated)"
+#: ../../Zotlabs/Module/Settings/Display.php:204
+msgid "Minimum of 10 seconds, no maximum"
msgstr ""
-#: ../../Zotlabs/Module/Sources.php:133 ../../Zotlabs/Module/Sources.php:161
-msgid "Source not found."
+#: ../../Zotlabs/Module/Settings/Display.php:205
+msgid "Maximum number of conversations to load at any time:"
msgstr ""
-#: ../../Zotlabs/Module/Sources.php:140
-msgid "Edit Source"
+#: ../../Zotlabs/Module/Settings/Display.php:205
+msgid "Maximum of 100 items"
msgstr ""
-#: ../../Zotlabs/Module/Sources.php:141
-msgid "Delete Source"
+#: ../../Zotlabs/Module/Settings/Display.php:206
+msgid "Show emoticons (smilies) as images"
msgstr ""
-#: ../../Zotlabs/Module/Sources.php:169
-msgid "Source removed"
+#: ../../Zotlabs/Module/Settings/Display.php:207
+msgid "Link post titles to source"
msgstr ""
-#: ../../Zotlabs/Module/Sources.php:171
-msgid "Unable to remove source."
+#: ../../Zotlabs/Module/Settings/Display.php:208
+msgid "System Page Layout Editor - (advanced)"
msgstr ""
-#: ../../Zotlabs/Module/Subthread.php:118
-#, php-format
-msgid "%1$s is following %2$s's %3$s"
+#: ../../Zotlabs/Module/Settings/Display.php:211
+msgid "Use blog/list mode on channel page"
msgstr ""
-#: ../../Zotlabs/Module/Subthread.php:120
-#, php-format
-msgid "%1$s stopped following %2$s's %3$s"
+#: ../../Zotlabs/Module/Settings/Display.php:211
+#: ../../Zotlabs/Module/Settings/Display.php:212
+msgid "(comments displayed separately)"
msgstr ""
-#: ../../Zotlabs/Module/Suggest.php:39
-msgid ""
-"No suggestions available. If this is a new site, please try again in 24 "
-"hours."
+#: ../../Zotlabs/Module/Settings/Display.php:212
+msgid "Use blog/list mode on grid page"
msgstr ""
-#: ../../Zotlabs/Module/Suggest.php:58 ../../include/widgets.php:149
-msgid "Ignore/Hide"
+#: ../../Zotlabs/Module/Settings/Display.php:213
+msgid "Channel page max height of content (in pixels)"
msgstr ""
-#: ../../Zotlabs/Module/Tagger.php:55 ../../include/bbcode.php:263
-msgid "post"
+#: ../../Zotlabs/Module/Settings/Display.php:213
+#: ../../Zotlabs/Module/Settings/Display.php:214
+msgid "click to expand content exceeding this height"
msgstr ""
-#: ../../Zotlabs/Module/Tagger.php:57 ../../include/text.php:1953
-#: ../../include/conversation.php:150
-msgid "comment"
+#: ../../Zotlabs/Module/Settings/Display.php:214
+msgid "Grid page max height of content (in pixels)"
msgstr ""
-#: ../../Zotlabs/Module/Tagger.php:100
-#, php-format
-msgid "%1$s tagged %2$s's %3$s with %4$s"
+#: ../../Zotlabs/Module/Settings/Featured.php:24
+msgid "No feature settings configured"
msgstr ""
-#: ../../Zotlabs/Module/Tagrm.php:48 ../../Zotlabs/Module/Tagrm.php:98
-msgid "Tag removed"
+#: ../../Zotlabs/Module/Settings/Featured.php:31
+msgid "Feature/Addon Settings"
msgstr ""
-#: ../../Zotlabs/Module/Tagrm.php:123
-msgid "Remove Item Tag"
+#: ../../Zotlabs/Module/Settings/Features.php:45
+msgid "Additional Features"
msgstr ""
-#: ../../Zotlabs/Module/Tagrm.php:125
-msgid "Select a tag to remove: "
+#: ../../Zotlabs/Module/Settings/Oauth.php:34
+msgid "Name is required"
msgstr ""
-#: ../../Zotlabs/Module/Api.php:60 ../../Zotlabs/Module/Api.php:81
-msgid "Authorize application connection"
+#: ../../Zotlabs/Module/Settings/Oauth.php:38
+msgid "Key and Secret are required"
msgstr ""
-#: ../../Zotlabs/Module/Api.php:61
-msgid "Return to your app and insert this Security Code:"
+#: ../../Zotlabs/Module/Settings/Oauth.php:86
+#: ../../Zotlabs/Module/Settings/Oauth.php:112
+#: ../../Zotlabs/Module/Settings/Oauth.php:148
+msgid "Add application"
msgstr ""
-#: ../../Zotlabs/Module/Api.php:71
-msgid "Please login to continue."
+#: ../../Zotlabs/Module/Settings/Oauth.php:89
+msgid "Name of application"
msgstr ""
-#: ../../Zotlabs/Module/Api.php:83
-msgid ""
-"Do you want to authorize this application to access your posts and contacts, "
-"and/or create new posts for you?"
+#: ../../Zotlabs/Module/Settings/Oauth.php:90
+#: ../../Zotlabs/Module/Settings/Oauth.php:116
+msgid "Consumer Key"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:33
-#, php-format
-msgid "Your service plan only allows %d channels."
+#: ../../Zotlabs/Module/Settings/Oauth.php:90
+#: ../../Zotlabs/Module/Settings/Oauth.php:91
+msgid "Automatically generated - change if desired. Max length 20"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:153 ../../include/import.php:107
-msgid "Cloned channel not found. Import failed."
+#: ../../Zotlabs/Module/Settings/Oauth.php:91
+#: ../../Zotlabs/Module/Settings/Oauth.php:117
+msgid "Consumer Secret"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:163
-msgid "No channel. Import failed."
+#: ../../Zotlabs/Module/Settings/Oauth.php:92
+#: ../../Zotlabs/Module/Settings/Oauth.php:118
+msgid "Redirect"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:520
-#: ../../include/Import/import_diaspora.php:142
-msgid "Import completed."
+#: ../../Zotlabs/Module/Settings/Oauth.php:92
+msgid ""
+"Redirect URI - leave blank unless your application specifically requires this"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:542
-msgid "You must be logged in to use this feature."
+#: ../../Zotlabs/Module/Settings/Oauth.php:93
+#: ../../Zotlabs/Module/Settings/Oauth.php:119
+msgid "Icon url"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:547
-msgid "Import Channel"
+#: ../../Zotlabs/Module/Settings/Oauth.php:104
+msgid "Application not found."
msgstr ""
-#: ../../Zotlabs/Module/Import.php:548
-msgid ""
-"Use this form to import an existing channel from a different server/hub. You "
-"may retrieve the channel identity from the old server/hub via the network or "
-"provide an export file."
+#: ../../Zotlabs/Module/Settings/Oauth.php:147
+msgid "Connected Apps"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:550
-msgid "Or provide the old server/hub details"
+#: ../../Zotlabs/Module/Settings/Oauth.php:151
+msgid "Client key starts with"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:551
-msgid "Your old identity address (xyz@example.com)"
+#: ../../Zotlabs/Module/Settings/Oauth.php:152
+msgid "No name"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:552
-msgid "Your old login email address"
+#: ../../Zotlabs/Module/Settings/Oauth.php:153
+msgid "Remove authorization"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:553
-msgid "Your old login password"
+#: ../../Zotlabs/Module/Settings/Tokens.php:31
+#, php-format
+msgid "This channel is limited to %d tokens"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:554
-msgid ""
-"For either option, please choose whether to make this hub your new primary "
-"address, or whether your old location should continue this role. You will be "
-"able to post from either location, but only one can be marked as the primary "
-"location for files, photos, and media."
+#: ../../Zotlabs/Module/Settings/Tokens.php:37
+msgid "Name and Password are required."
msgstr ""
-#: ../../Zotlabs/Module/Import.php:555
-msgid "Make this hub my primary location"
+#: ../../Zotlabs/Module/Settings/Tokens.php:77
+msgid "Token saved."
msgstr ""
-#: ../../Zotlabs/Module/Import.php:556
+#: ../../Zotlabs/Module/Settings/Tokens.php:113
msgid ""
-"Import existing posts if possible (experimental - limited by available memory"
+"Use this form to create temporary access identifiers to share things with "
+"non-members. These identities may be used in Access Control Lists and "
+"visitors may login using these credentials to access private content."
msgstr ""
-#: ../../Zotlabs/Module/Import.php:557
+#: ../../Zotlabs/Module/Settings/Tokens.php:115
msgid ""
-"This process may take several minutes to complete. Please submit the form "
-"only once and leave this page open until finished."
-msgstr ""
-
-#: ../../Zotlabs/Module/Viewconnections.php:65
-msgid "No connections."
-msgstr ""
-
-#: ../../Zotlabs/Module/Viewconnections.php:78
-#, php-format
-msgid "Visit %s's profile [%s]"
+"You may also provide <em>dropbox</em> style access links to friends and "
+"associates by adding the Login Password to any specific site URL as shown. "
+"Examples:"
msgstr ""
-#: ../../Zotlabs/Module/Viewconnections.php:107
-msgid "View Connections"
+#: ../../Zotlabs/Module/Settings/Tokens.php:150 ../../include/widgets.php:647
+msgid "Guest Access Tokens"
msgstr ""
-#: ../../Zotlabs/Module/Viewsrc.php:44
-msgid "Source of Item"
+#: ../../Zotlabs/Module/Settings/Tokens.php:157
+msgid "Login Name"
msgstr ""
-#: ../../Zotlabs/Module/Xchan.php:10
-msgid "Xchan Lookup"
+#: ../../Zotlabs/Module/Settings/Tokens.php:158
+msgid "Login Password"
msgstr ""
-#: ../../Zotlabs/Module/Xchan.php:13
-msgid "Lookup xchan beginning with (or webbie): "
+#: ../../Zotlabs/Module/Settings/Tokens.php:159
+msgid "Expires (yyyy-mm-dd)"
msgstr ""
#: ../../Zotlabs/Lib/Chatroom.php:27
@@ -6706,6 +6820,69 @@ msgstr ""
msgid "commented on %s's post"
msgstr ""
+#: ../../Zotlabs/Lib/PermissionDescription.php:31
+#: ../../include/acl_selectors.php:124
+msgid "Visible to your default audience"
+msgstr ""
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:106
+#: ../../include/acl_selectors.php:165
+msgid "Only me"
+msgstr ""
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:107
+msgid "Public"
+msgstr ""
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:108
+msgid "Anybody in the $Projectname network"
+msgstr ""
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:109
+#, php-format
+msgid "Any account on %s"
+msgstr ""
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:110
+msgid "Any of my connections"
+msgstr ""
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:111
+msgid "Only connections I specifically allow"
+msgstr ""
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:112
+msgid "Anybody authenticated (could include visitors from other networks)"
+msgstr ""
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:113
+msgid "Any connections including those who haven't yet been approved"
+msgstr ""
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:152
+msgid ""
+"This is your default setting for the audience of your normal stream, and "
+"posts."
+msgstr ""
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:153
+msgid ""
+"This is your default setting for who can view your default channel profile"
+msgstr ""
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:154
+msgid "This is your default setting for who can view your connections"
+msgstr ""
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:155
+msgid ""
+"This is your default setting for who can view your file storage and photos"
+msgstr ""
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:156
+msgid "This is your default setting for the audience of your webpages"
+msgstr ""
+
#: ../../Zotlabs/Lib/Apps.php:205
msgid "Site Admin"
msgstr ""
@@ -6730,37 +6907,37 @@ msgstr ""
msgid "Remote Diagnostics"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:212 ../../include/features.php:92
+#: ../../Zotlabs/Lib/Apps.php:212 ../../include/features.php:88
msgid "Suggest Channels"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:213 ../../include/nav.php:114
-#: ../../boot.php:1713
+#: ../../Zotlabs/Lib/Apps.php:213 ../../include/nav.php:115
+#: ../../boot.php:1739
msgid "Login"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:215 ../../include/nav.php:183
+#: ../../Zotlabs/Lib/Apps.php:215 ../../include/nav.php:184
msgid "Grid"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:220 ../../include/nav.php:186
+#: ../../Zotlabs/Lib/Apps.php:220 ../../include/nav.php:187
msgid "Channel Home"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:223 ../../include/nav.php:205
-#: ../../include/conversation.php:1669 ../../include/conversation.php:1672
+#: ../../Zotlabs/Lib/Apps.php:223 ../../include/nav.php:206
+#: ../../include/conversation.php:1688 ../../include/conversation.php:1691
msgid "Events"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:224 ../../include/nav.php:171
+#: ../../Zotlabs/Lib/Apps.php:224 ../../include/nav.php:172
msgid "Directory"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:226 ../../include/nav.php:197
+#: ../../Zotlabs/Lib/Apps.php:226 ../../include/nav.php:198
msgid "Mail"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:229 ../../include/nav.php:98
+#: ../../Zotlabs/Lib/Apps.php:229 ../../include/nav.php:99
msgid "Chat"
msgstr ""
@@ -6780,7 +6957,7 @@ msgstr ""
msgid "Invite"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:235 ../../include/widgets.php:1494
+#: ../../Zotlabs/Lib/Apps.php:235 ../../include/widgets.php:1560
msgid "Features"
msgstr ""
@@ -6800,69 +6977,6 @@ msgstr ""
msgid "Purchase"
msgstr ""
-#: ../../Zotlabs/Lib/PermissionDescription.php:31
-#: ../../include/acl_selectors.php:230
-msgid "Visible to your default audience"
-msgstr ""
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:106
-#: ../../include/acl_selectors.php:266
-msgid "Only me"
-msgstr ""
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:107
-msgid "Public"
-msgstr ""
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:108
-msgid "Anybody in the $Projectname network"
-msgstr ""
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:109
-#, php-format
-msgid "Any account on %s"
-msgstr ""
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:110
-msgid "Any of my connections"
-msgstr ""
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:111
-msgid "Only connections I specifically allow"
-msgstr ""
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:112
-msgid "Anybody authenticated (could include visitors from other networks)"
-msgstr ""
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:113
-msgid "Any connections including those who haven't yet been approved"
-msgstr ""
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:152
-msgid ""
-"This is your default setting for the audience of your normal stream, and "
-"posts."
-msgstr ""
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:153
-msgid ""
-"This is your default setting for who can view your default channel profile"
-msgstr ""
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:154
-msgid "This is your default setting for who can view your connections"
-msgstr ""
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:155
-msgid ""
-"This is your default setting for who can view your file storage and photos"
-msgstr ""
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:156
-msgid "This is your default setting for the audience of your webpages"
-msgstr ""
-
#: ../../Zotlabs/Lib/ThreadItem.php:95 ../../include/conversation.php:667
msgid "Private Message"
msgstr ""
@@ -6927,115 +7041,115 @@ msgstr ""
msgid "Add Tag"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:262 ../../include/taxonomy.php:316
+#: ../../Zotlabs/Lib/ThreadItem.php:263 ../../include/taxonomy.php:316
msgid "like"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:263 ../../include/taxonomy.php:317
+#: ../../Zotlabs/Lib/ThreadItem.php:264 ../../include/taxonomy.php:317
msgid "dislike"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:267
+#: ../../Zotlabs/Lib/ThreadItem.php:268
msgid "Share This"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:267
+#: ../../Zotlabs/Lib/ThreadItem.php:268
msgid "share"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:276
+#: ../../Zotlabs/Lib/ThreadItem.php:277
msgid "Delivery Report"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:294
+#: ../../Zotlabs/Lib/ThreadItem.php:295
#, php-format
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] ""
msgstr[1] ""
-#: ../../Zotlabs/Lib/ThreadItem.php:323 ../../Zotlabs/Lib/ThreadItem.php:324
+#: ../../Zotlabs/Lib/ThreadItem.php:324 ../../Zotlabs/Lib/ThreadItem.php:325
#, php-format
msgid "View %s's profile - %s"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:327
+#: ../../Zotlabs/Lib/ThreadItem.php:328
msgid "to"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:328
+#: ../../Zotlabs/Lib/ThreadItem.php:329
msgid "via"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:329
+#: ../../Zotlabs/Lib/ThreadItem.php:330
msgid "Wall-to-Wall"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:330
+#: ../../Zotlabs/Lib/ThreadItem.php:331
msgid "via Wall-To-Wall:"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:342 ../../include/conversation.php:722
+#: ../../Zotlabs/Lib/ThreadItem.php:343 ../../include/conversation.php:722
#, php-format
msgid "from %s"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:345 ../../include/conversation.php:725
+#: ../../Zotlabs/Lib/ThreadItem.php:346 ../../include/conversation.php:725
#, php-format
msgid "last edited: %s"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:346 ../../include/conversation.php:726
+#: ../../Zotlabs/Lib/ThreadItem.php:347 ../../include/conversation.php:726
#, php-format
msgid "Expires: %s"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:371
+#: ../../Zotlabs/Lib/ThreadItem.php:372
msgid "Save Bookmarks"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:372
+#: ../../Zotlabs/Lib/ThreadItem.php:373
msgid "Add to Calendar"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:381
+#: ../../Zotlabs/Lib/ThreadItem.php:382
msgid "Mark all seen"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:422 ../../include/js_strings.php:7
+#: ../../Zotlabs/Lib/ThreadItem.php:423 ../../include/js_strings.php:7
#, php-format
msgid "%s show all"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:712 ../../include/conversation.php:1227
+#: ../../Zotlabs/Lib/ThreadItem.php:713 ../../include/conversation.php:1238
msgid "Bold"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:713 ../../include/conversation.php:1228
+#: ../../Zotlabs/Lib/ThreadItem.php:714 ../../include/conversation.php:1239
msgid "Italic"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:714 ../../include/conversation.php:1229
+#: ../../Zotlabs/Lib/ThreadItem.php:715 ../../include/conversation.php:1240
msgid "Underline"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:715 ../../include/conversation.php:1230
+#: ../../Zotlabs/Lib/ThreadItem.php:716 ../../include/conversation.php:1241
msgid "Quote"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:716 ../../include/conversation.php:1231
+#: ../../Zotlabs/Lib/ThreadItem.php:717 ../../include/conversation.php:1242
msgid "Code"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:717
+#: ../../Zotlabs/Lib/ThreadItem.php:718
msgid "Image"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:718
+#: ../../Zotlabs/Lib/ThreadItem.php:719
msgid "Insert Link"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:719
+#: ../../Zotlabs/Lib/ThreadItem.php:720
msgid "Video"
msgstr ""
@@ -7047,72 +7161,62 @@ msgstr ""
msgid "Unable to create a unique channel address. Import failed."
msgstr ""
-#: ../../include/dba/dba_driver.php:171
+#: ../../include/dba/dba_driver.php:173
#, php-format
msgid "Cannot locate DNS info for database server '%s'"
msgstr ""
-#: ../../include/items.php:897 ../../include/items.php:942
-msgid "(Unknown)"
-msgstr ""
-
-#: ../../include/items.php:1141
-msgid "Visible to anybody on the internet."
-msgstr ""
-
-#: ../../include/items.php:1143
-msgid "Visible to you only."
+#: ../../include/network.php:704
+msgid "view full size"
msgstr ""
-#: ../../include/items.php:1145
-msgid "Visible to anybody in this network."
+#: ../../include/network.php:1935 ../../include/account.php:326
+#: ../../include/account.php:353 ../../include/account.php:413
+msgid "Administrator"
msgstr ""
-#: ../../include/items.php:1147
-msgid "Visible to anybody authenticated."
+#: ../../include/network.php:1949
+msgid "No Subject"
msgstr ""
-#: ../../include/items.php:1149
-#, php-format
-msgid "Visible to anybody on %s."
+#: ../../include/network.php:2203 ../../include/network.php:2204
+msgid "Friendica"
msgstr ""
-#: ../../include/items.php:1151
-msgid "Visible to all connections."
+#: ../../include/network.php:2205
+msgid "OStatus"
msgstr ""
-#: ../../include/items.php:1153
-msgid "Visible to approved connections."
+#: ../../include/network.php:2206
+msgid "GNU-Social"
msgstr ""
-#: ../../include/items.php:1155
-msgid "Visible to specific connections."
+#: ../../include/network.php:2207
+msgid "RSS/Atom"
msgstr ""
-#: ../../include/items.php:3918
-msgid "Privacy group is empty."
+#: ../../include/network.php:2209
+msgid "Diaspora"
msgstr ""
-#: ../../include/items.php:3925
-#, php-format
-msgid "Privacy group: %s"
+#: ../../include/network.php:2210
+msgid "Facebook"
msgstr ""
-#: ../../include/items.php:3937
-msgid "Connection not found."
+#: ../../include/network.php:2211
+msgid "Zot"
msgstr ""
-#: ../../include/items.php:4290
-msgid "profile photo"
+#: ../../include/network.php:2212
+msgid "LinkedIn"
msgstr ""
-#: ../../include/import.php:30
-msgid ""
-"Cannot create a duplicate channel identifier on this system. Import failed."
+#: ../../include/network.php:2213
+msgid "XMPP/IM"
msgstr ""
-#: ../../include/import.php:97
-msgid "Channel clone failed. Import failed."
+#: ../../include/network.php:2214
+msgid "MySpace"
msgstr ""
#: ../../include/photos.php:114
@@ -7138,7 +7242,7 @@ msgctxt "photo_upload"
msgid "%1$s posted %2$s to %3$s"
msgstr ""
-#: ../../include/photos.php:506 ../../include/conversation.php:1655
+#: ../../include/photos.php:506 ../../include/conversation.php:1674
msgid "Photo Albums"
msgstr ""
@@ -7146,337 +7250,324 @@ msgstr ""
msgid "Upload New Photos"
msgstr ""
-#: ../../include/features.php:50
-msgid "General Features"
+#: ../../include/nav.php:85 ../../include/nav.php:118 ../../boot.php:1738
+msgid "Logout"
msgstr ""
-#: ../../include/features.php:52
-msgid "Content Expiration"
+#: ../../include/nav.php:85 ../../include/nav.php:118
+msgid "End this session"
msgstr ""
-#: ../../include/features.php:52
-msgid "Remove posts/comments and/or private messages at a future time"
+#: ../../include/nav.php:88 ../../include/nav.php:149
+msgid "Home"
msgstr ""
-#: ../../include/features.php:53
-msgid "Multiple Profiles"
+#: ../../include/nav.php:88
+msgid "Your posts and conversations"
msgstr ""
-#: ../../include/features.php:53
-msgid "Ability to create multiple profiles"
+#: ../../include/nav.php:89
+msgid "Your profile page"
msgstr ""
-#: ../../include/features.php:54
-msgid "Advanced Profiles"
+#: ../../include/nav.php:91
+msgid "Manage/Edit profiles"
msgstr ""
-#: ../../include/features.php:54
-msgid "Additional profile sections and selections"
+#: ../../include/nav.php:93 ../../include/channel.php:963
+msgid "Edit Profile"
msgstr ""
-#: ../../include/features.php:55
-msgid "Profile Import/Export"
+#: ../../include/nav.php:93
+msgid "Edit your profile"
msgstr ""
-#: ../../include/features.php:55
-msgid "Save and load profile details across sites/channels"
+#: ../../include/nav.php:95
+msgid "Your photos"
msgstr ""
-#: ../../include/features.php:56
-msgid "Web Pages"
+#: ../../include/nav.php:96
+msgid "Your files"
msgstr ""
-#: ../../include/features.php:56
-msgid "Provide managed web pages on your channel"
+#: ../../include/nav.php:99
+msgid "Your chatrooms"
msgstr ""
-#: ../../include/features.php:57
-msgid "Provide a wiki for your channel"
+#: ../../include/nav.php:105 ../../include/conversation.php:1714
+msgid "Bookmarks"
msgstr ""
-#: ../../include/features.php:58
-msgid "Hide Rating"
+#: ../../include/nav.php:105
+msgid "Your bookmarks"
msgstr ""
-#: ../../include/features.php:58
-msgid ""
-"Hide the rating buttons on your channel and profile pages. Note: People can "
-"still rate you somewhere else."
+#: ../../include/nav.php:109
+msgid "Your webpages"
msgstr ""
-#: ../../include/features.php:59
-msgid "Private Notes"
+#: ../../include/nav.php:111
+msgid "Your wiki"
msgstr ""
-#: ../../include/features.php:59
-msgid "Enables a tool to store notes and reminders (note: not encrypted)"
+#: ../../include/nav.php:115
+msgid "Sign in"
msgstr ""
-#: ../../include/features.php:60
-msgid "Navigation Channel Select"
+#: ../../include/nav.php:132
+#, php-format
+msgid "%s - click to logout"
msgstr ""
-#: ../../include/features.php:60
-msgid "Change channels directly from within the navigation dropdown menu"
+#: ../../include/nav.php:135
+msgid "Remote authentication"
msgstr ""
-#: ../../include/features.php:61
-msgid "Photo Location"
+#: ../../include/nav.php:135
+msgid "Click to authenticate to your home hub"
msgstr ""
-#: ../../include/features.php:61
-msgid "If location data is available on uploaded photos, link this to a map."
+#: ../../include/nav.php:149
+msgid "Home Page"
msgstr ""
-#: ../../include/features.php:62
-msgid "Access Controlled Chatrooms"
+#: ../../include/nav.php:152
+msgid "Create an account"
msgstr ""
-#: ../../include/features.php:62
-msgid "Provide chatrooms and chat services with access control."
+#: ../../include/nav.php:164
+msgid "Help and documentation"
msgstr ""
-#: ../../include/features.php:63
-msgid "Smart Birthdays"
+#: ../../include/nav.php:168
+msgid "Applications, utilities, links, games"
msgstr ""
-#: ../../include/features.php:63
-msgid ""
-"Make birthday events timezone aware in case your friends are scattered "
-"across the planet."
+#: ../../include/nav.php:170
+msgid "Search site @name, #tag, ?docs, content"
msgstr ""
-#: ../../include/features.php:64
-msgid "Expert Mode"
+#: ../../include/nav.php:172
+msgid "Channel Directory"
msgstr ""
-#: ../../include/features.php:64
-msgid "Enable Expert Mode to provide advanced configuration options"
+#: ../../include/nav.php:184
+msgid "Your grid"
msgstr ""
-#: ../../include/features.php:65
-msgid "Premium Channel"
+#: ../../include/nav.php:185
+msgid "Mark all grid notifications seen"
msgstr ""
-#: ../../include/features.php:65
-msgid ""
-"Allows you to set restrictions and terms on those that connect with your "
-"channel"
+#: ../../include/nav.php:187
+msgid "Channel home"
msgstr ""
-#: ../../include/features.php:70
-msgid "Post Composition Features"
+#: ../../include/nav.php:188
+msgid "Mark all channel notifications seen"
msgstr ""
-#: ../../include/features.php:73
-msgid "Large Photos"
+#: ../../include/nav.php:194
+msgid "Notices"
msgstr ""
-#: ../../include/features.php:73
-msgid ""
-"Include large (1024px) photo thumbnails in posts. If not enabled, use small "
-"(640px) photo thumbnails"
+#: ../../include/nav.php:194
+msgid "Notifications"
msgstr ""
-#: ../../include/features.php:74
-msgid "Automatically import channel content from other channels or feeds"
+#: ../../include/nav.php:195
+msgid "See all notifications"
msgstr ""
-#: ../../include/features.php:75
-msgid "Even More Encryption"
+#: ../../include/nav.php:198
+msgid "Private mail"
msgstr ""
-#: ../../include/features.php:75
-msgid ""
-"Allow optional encryption of content end-to-end with a shared secret key"
+#: ../../include/nav.php:199
+msgid "See all private messages"
msgstr ""
-#: ../../include/features.php:76
-msgid "Enable Voting Tools"
+#: ../../include/nav.php:200
+msgid "Mark all private messages seen"
msgstr ""
-#: ../../include/features.php:76
-msgid "Provide a class of post which others can vote on"
+#: ../../include/nav.php:201 ../../include/widgets.php:700
+msgid "Inbox"
msgstr ""
-#: ../../include/features.php:77
-msgid "Delayed Posting"
+#: ../../include/nav.php:202 ../../include/widgets.php:705
+msgid "Outbox"
msgstr ""
-#: ../../include/features.php:77
-msgid "Allow posts to be published at a later date"
+#: ../../include/nav.php:203 ../../include/widgets.php:710
+msgid "New Message"
msgstr ""
-#: ../../include/features.php:78
-msgid "Suppress Duplicate Posts/Comments"
+#: ../../include/nav.php:206
+msgid "Event Calendar"
msgstr ""
-#: ../../include/features.php:78
-msgid ""
-"Prevent posts with identical content to be published with less than two "
-"minutes in between submissions."
+#: ../../include/nav.php:207
+msgid "See all events"
msgstr ""
-#: ../../include/features.php:84
-msgid "Network and Stream Filtering"
+#: ../../include/nav.php:208
+msgid "Mark all events seen"
msgstr ""
-#: ../../include/features.php:85
-msgid "Search by Date"
+#: ../../include/nav.php:211
+msgid "Manage Your Channels"
msgstr ""
-#: ../../include/features.php:85
-msgid "Ability to select posts by date ranges"
+#: ../../include/nav.php:213
+msgid "Account/Channel Settings"
msgstr ""
-#: ../../include/features.php:86 ../../include/group.php:311
-msgid "Privacy Groups"
+#: ../../include/nav.php:221 ../../include/widgets.php:1590
+msgid "Admin"
msgstr ""
-#: ../../include/features.php:86
-msgid "Enable management and selection of privacy groups"
+#: ../../include/nav.php:221
+msgid "Site Setup and Configuration"
msgstr ""
-#: ../../include/features.php:87 ../../include/widgets.php:281
-msgid "Saved Searches"
+#: ../../include/nav.php:252 ../../include/conversation.php:855
+msgid "Loading..."
msgstr ""
-#: ../../include/features.php:87
-msgid "Save search terms for re-use"
+#: ../../include/nav.php:257
+msgid "@name, #tag, ?doc, content"
msgstr ""
-#: ../../include/features.php:88
-msgid "Network Personal Tab"
+#: ../../include/nav.php:258
+msgid "Please wait..."
msgstr ""
-#: ../../include/features.php:88
-msgid "Enable tab to display only Network posts that you've interacted on"
+#: ../../include/oembed.php:349
+msgid "Embedded content"
msgstr ""
-#: ../../include/features.php:89
-msgid "Network New Tab"
+#: ../../include/oembed.php:358
+msgid "Embedding disabled"
msgstr ""
-#: ../../include/features.php:89
-msgid "Enable tab to display all new Network activity"
+#: ../../include/permissions.php:35
+msgid "Can view my normal stream and posts"
msgstr ""
-#: ../../include/features.php:90
-msgid "Affinity Tool"
+#: ../../include/permissions.php:39
+msgid "Can view my webpages"
msgstr ""
-#: ../../include/features.php:90
-msgid "Filter stream activity by depth of relationships"
+#: ../../include/permissions.php:43
+msgid "Can post on my channel page (\"wall\")"
msgstr ""
-#: ../../include/features.php:91
-msgid "Connection Filtering"
+#: ../../include/permissions.php:46
+msgid "Can like/dislike stuff"
msgstr ""
-#: ../../include/features.php:91
-msgid "Filter incoming posts from connections based on keywords/content"
+#: ../../include/permissions.php:46
+msgid "Profiles and things other than posts/comments"
msgstr ""
-#: ../../include/features.php:92
-msgid "Show channel suggestions"
+#: ../../include/permissions.php:48
+msgid "Can forward to all my channel contacts via post @mentions"
msgstr ""
-#: ../../include/features.php:97
-msgid "Post/Comment Tools"
+#: ../../include/permissions.php:48
+msgid "Advanced - useful for creating group forum channels"
msgstr ""
-#: ../../include/features.php:98
-msgid "Community Tagging"
+#: ../../include/permissions.php:49
+msgid "Can chat with me (when available)"
msgstr ""
-#: ../../include/features.php:98
-msgid "Ability to tag existing posts"
+#: ../../include/permissions.php:50
+msgid "Can write to my file storage and photos"
msgstr ""
-#: ../../include/features.php:99
-msgid "Post Categories"
+#: ../../include/permissions.php:51
+msgid "Can edit my webpages"
msgstr ""
-#: ../../include/features.php:99
-msgid "Add categories to your posts"
+#: ../../include/permissions.php:53
+msgid "Somewhat advanced - very useful in open communities"
msgstr ""
-#: ../../include/features.php:100
-msgid "Emoji Reactions"
+#: ../../include/permissions.php:55
+msgid "Can administer my channel resources"
msgstr ""
-#: ../../include/features.php:100
-msgid "Add emoji reaction ability to posts"
+#: ../../include/permissions.php:55
+msgid "Extremely advanced. Leave this alone unless you know what you are doing"
msgstr ""
-#: ../../include/features.php:101 ../../include/widgets.php:310
-#: ../../include/contact_widgets.php:53
-msgid "Saved Folders"
+#: ../../include/import.php:30
+msgid ""
+"Cannot create a duplicate channel identifier on this system. Import failed."
msgstr ""
-#: ../../include/features.php:101
-msgid "Ability to file posts under folders"
+#: ../../include/import.php:97
+msgid "Channel clone failed. Import failed."
msgstr ""
-#: ../../include/features.php:102
-msgid "Dislike Posts"
+#: ../../include/import.php:1441
+msgid "Unable to import element \""
msgstr ""
-#: ../../include/features.php:102
-msgid "Ability to dislike posts/comments"
+#: ../../include/items.php:918 ../../include/items.php:963
+msgid "(Unknown)"
msgstr ""
-#: ../../include/features.php:103
-msgid "Star Posts"
+#: ../../include/items.php:1162
+msgid "Visible to anybody on the internet."
msgstr ""
-#: ../../include/features.php:103
-msgid "Ability to mark special posts with a star indicator"
+#: ../../include/items.php:1164
+msgid "Visible to you only."
msgstr ""
-#: ../../include/features.php:104
-msgid "Tag Cloud"
+#: ../../include/items.php:1166
+msgid "Visible to anybody in this network."
msgstr ""
-#: ../../include/features.php:104
-msgid "Provide a personal tag cloud on your channel page"
+#: ../../include/items.php:1168
+msgid "Visible to anybody authenticated."
msgstr ""
-#: ../../include/api.php:1337
-msgid "Public Timeline"
+#: ../../include/items.php:1170
+#, php-format
+msgid "Visible to anybody on %s."
msgstr ""
-#: ../../include/acl_selectors.php:269
-msgid "Who can see this?"
+#: ../../include/items.php:1172
+msgid "Visible to all connections."
msgstr ""
-#: ../../include/acl_selectors.php:270
-msgid "Custom selection"
+#: ../../include/items.php:1174
+msgid "Visible to approved connections."
msgstr ""
-#: ../../include/acl_selectors.php:271
-msgid ""
-"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit "
-"the scope of \"Show\"."
+#: ../../include/items.php:1176
+msgid "Visible to specific connections."
msgstr ""
-#: ../../include/acl_selectors.php:272
-msgid "Show"
+#: ../../include/items.php:3966
+msgid "Privacy group is empty."
msgstr ""
-#: ../../include/acl_selectors.php:273
-msgid "Don't show"
+#: ../../include/items.php:3973
+#, php-format
+msgid "Privacy group: %s"
msgstr ""
-#: ../../include/acl_selectors.php:279
-msgid "Other networks and post services"
+#: ../../include/items.php:3985
+msgid "Connection not found."
msgstr ""
-#: ../../include/acl_selectors.php:309
-#, php-format
-msgid ""
-"Post permissions %s cannot be changed %s after a post is shared.</br />These "
-"permissions set who is allowed to view the post."
+#: ../../include/items.php:4338
+msgid "profile photo"
msgstr ""
#: ../../include/datetime.php:135
@@ -7491,7 +7582,7 @@ msgstr ""
msgid "YYYY-MM-DD or MM-DD"
msgstr ""
-#: ../../include/datetime.php:272 ../../boot.php:2549
+#: ../../include/datetime.php:272 ../../boot.php:2578
msgid "never"
msgstr ""
@@ -7564,6 +7655,74 @@ msgstr ""
msgid "Happy Birthday %1$s"
msgstr ""
+#: ../../include/account.php:35
+msgid "Not a valid email address"
+msgstr ""
+
+#: ../../include/account.php:37
+msgid "Your email domain is not among those allowed on this site"
+msgstr ""
+
+#: ../../include/account.php:43
+msgid "Your email address is already registered at this site."
+msgstr ""
+
+#: ../../include/account.php:75
+msgid "An invitation is required."
+msgstr ""
+
+#: ../../include/account.php:79
+msgid "Invitation could not be verified."
+msgstr ""
+
+#: ../../include/account.php:130
+msgid "Please enter the required information."
+msgstr ""
+
+#: ../../include/account.php:198
+msgid "Failed to store account information."
+msgstr ""
+
+#: ../../include/account.php:258
+#, php-format
+msgid "Registration confirmation for %s"
+msgstr ""
+
+#: ../../include/account.php:324
+#, php-format
+msgid "Registration request at %s"
+msgstr ""
+
+#: ../../include/account.php:348
+msgid "your registration password"
+msgstr ""
+
+#: ../../include/account.php:351 ../../include/account.php:411
+#, php-format
+msgid "Registration details for %s"
+msgstr ""
+
+#: ../../include/account.php:423
+msgid "Account approved."
+msgstr ""
+
+#: ../../include/account.php:463
+#, php-format
+msgid "Registration revoked for %s"
+msgstr ""
+
+#: ../../include/account.php:748 ../../include/account.php:750
+msgid "Click here to upgrade."
+msgstr ""
+
+#: ../../include/account.php:756
+msgid "This action exceeds the limits set by your subscription plan."
+msgstr ""
+
+#: ../../include/account.php:761
+msgid "This action is not available under your subscription plan."
+msgstr ""
+
#: ../../include/selectors.php:30
msgid "Frequently"
msgstr ""
@@ -7812,626 +7971,598 @@ msgstr ""
msgid "Ask me"
msgstr ""
-#: ../../include/follow.php:27
-msgid "Channel is blocked on this site."
-msgstr ""
-
-#: ../../include/follow.php:32
-msgid "Channel location missing."
-msgstr ""
-
-#: ../../include/follow.php:80
-msgid "Response from remote channel was incomplete."
-msgstr ""
-
-#: ../../include/follow.php:97
-msgid "Channel was deleted and no longer exists."
-msgstr ""
-
-#: ../../include/follow.php:147 ../../include/follow.php:183
-msgid "Protocol disabled."
-msgstr ""
-
-#: ../../include/follow.php:171
-msgid "Channel discovery failed."
-msgstr ""
-
-#: ../../include/follow.php:210
-msgid "Cannot connect to yourself."
-msgstr ""
-
-#: ../../include/text.php:404
-msgid "prev"
-msgstr ""
-
-#: ../../include/text.php:406
-msgid "first"
-msgstr ""
-
-#: ../../include/text.php:435
-msgid "last"
-msgstr ""
-
-#: ../../include/text.php:438
-msgid "next"
+#: ../../include/bbcode.php:123 ../../include/bbcode.php:881
+#: ../../include/bbcode.php:884 ../../include/bbcode.php:889
+#: ../../include/bbcode.php:892 ../../include/bbcode.php:895
+#: ../../include/bbcode.php:898 ../../include/bbcode.php:903
+#: ../../include/bbcode.php:906 ../../include/bbcode.php:911
+#: ../../include/bbcode.php:914 ../../include/bbcode.php:917
+#: ../../include/bbcode.php:920
+msgid "Image/photo"
msgstr ""
-#: ../../include/text.php:448
-msgid "older"
+#: ../../include/bbcode.php:162 ../../include/bbcode.php:931
+msgid "Encrypted content"
msgstr ""
-#: ../../include/text.php:450
-msgid "newer"
+#: ../../include/bbcode.php:178
+#, php-format
+msgid "Install %s element: "
msgstr ""
-#: ../../include/text.php:843
-msgid "No connections"
+#: ../../include/bbcode.php:182
+#, php-format
+msgid ""
+"This post contains an installable %s element, however you lack permissions "
+"to install it on this site."
msgstr ""
-#: ../../include/text.php:868
+#: ../../include/bbcode.php:261
#, php-format
-msgid "View all %s connections"
+msgid "%1$s wrote the following %2$s %3$s"
msgstr ""
-#: ../../include/text.php:1013 ../../include/text.php:1018
-msgid "poke"
+#: ../../include/bbcode.php:338 ../../include/bbcode.php:346
+msgid "Click to open/close"
msgstr ""
-#: ../../include/text.php:1013 ../../include/text.php:1018
-#: ../../include/conversation.php:243
-msgid "poked"
+#: ../../include/bbcode.php:346
+msgid "spoiler"
msgstr ""
-#: ../../include/text.php:1019
-msgid "ping"
+#: ../../include/bbcode.php:619 ../../include/wiki.php:525
+msgid "Different viewers will see this text differently"
msgstr ""
-#: ../../include/text.php:1019
-msgid "pinged"
+#: ../../include/bbcode.php:869
+msgid "$1 wrote:"
msgstr ""
-#: ../../include/text.php:1020
-msgid "prod"
+#: ../../include/event.php:22 ../../include/event.php:69
+#: ../../include/bb2diaspora.php:485
+msgid "l F d, Y \\@ g:i A"
msgstr ""
-#: ../../include/text.php:1020
-msgid "prodded"
+#: ../../include/event.php:30 ../../include/event.php:73
+#: ../../include/bb2diaspora.php:491
+msgid "Starts:"
msgstr ""
-#: ../../include/text.php:1021
-msgid "slap"
+#: ../../include/event.php:40 ../../include/event.php:77
+#: ../../include/bb2diaspora.php:499
+msgid "Finishes:"
msgstr ""
-#: ../../include/text.php:1021
-msgid "slapped"
+#: ../../include/event.php:821
+msgid "This event has been added to your calendar."
msgstr ""
-#: ../../include/text.php:1022
-msgid "finger"
+#: ../../include/event.php:1021
+msgid "Not specified"
msgstr ""
-#: ../../include/text.php:1022
-msgid "fingered"
+#: ../../include/event.php:1022
+msgid "Needs Action"
msgstr ""
-#: ../../include/text.php:1023
-msgid "rebuff"
+#: ../../include/event.php:1023
+msgid "Completed"
msgstr ""
-#: ../../include/text.php:1023
-msgid "rebuffed"
+#: ../../include/event.php:1024
+msgid "In Process"
msgstr ""
-#: ../../include/text.php:1035
-msgid "happy"
+#: ../../include/event.php:1025
+msgid "Cancelled"
msgstr ""
-#: ../../include/text.php:1036
-msgid "sad"
+#: ../../include/security.php:109
+msgid "guest:"
msgstr ""
-#: ../../include/text.php:1037
-msgid "mellow"
+#: ../../include/security.php:527
+msgid ""
+"The form security token was not correct. This probably happened because the "
+"form has been opened for too long (>3 hours) before submitting it."
msgstr ""
-#: ../../include/text.php:1038
-msgid "tired"
+#: ../../include/help.php:25
+msgid "Help:"
msgstr ""
-#: ../../include/text.php:1039
-msgid "perky"
+#: ../../include/bookmarks.php:35
+#, php-format
+msgid "%1$s's bookmarks"
msgstr ""
-#: ../../include/text.php:1040
-msgid "angry"
+#: ../../include/group.php:26
+msgid ""
+"A deleted group with this name was revived. Existing item permissions "
+"<strong>may</strong> apply to this group and any future members. If this is "
+"not what you intended, please create another group with a different name."
msgstr ""
-#: ../../include/text.php:1041
-msgid "stupefied"
+#: ../../include/group.php:248
+msgid "Add new connections to this privacy group"
msgstr ""
-#: ../../include/text.php:1042
-msgid "puzzled"
+#: ../../include/group.php:289
+msgid "edit"
msgstr ""
-#: ../../include/text.php:1043
-msgid "interested"
+#: ../../include/group.php:311 ../../include/features.php:83
+msgid "Privacy Groups"
msgstr ""
-#: ../../include/text.php:1044
-msgid "bitter"
+#: ../../include/group.php:312
+msgid "Edit group"
msgstr ""
-#: ../../include/text.php:1045
-msgid "cheerful"
+#: ../../include/group.php:313
+msgid "Add privacy group"
msgstr ""
-#: ../../include/text.php:1046
-msgid "alive"
+#: ../../include/group.php:314
+msgid "Channels not in any privacy group"
msgstr ""
-#: ../../include/text.php:1047
-msgid "annoyed"
+#: ../../include/group.php:316 ../../include/widgets.php:284
+msgid "add"
msgstr ""
-#: ../../include/text.php:1048
-msgid "anxious"
+#: ../../include/attach.php:248 ../../include/attach.php:334
+msgid "Item was not found."
msgstr ""
-#: ../../include/text.php:1049
-msgid "cranky"
+#: ../../include/attach.php:500
+msgid "No source file."
msgstr ""
-#: ../../include/text.php:1050
-msgid "disturbed"
+#: ../../include/attach.php:522
+msgid "Cannot locate file to replace"
msgstr ""
-#: ../../include/text.php:1051
-msgid "frustrated"
+#: ../../include/attach.php:540
+msgid "Cannot locate file to revise/update"
msgstr ""
-#: ../../include/text.php:1052
-msgid "depressed"
+#: ../../include/attach.php:675
+#, php-format
+msgid "File exceeds size limit of %d"
msgstr ""
-#: ../../include/text.php:1053
-msgid "motivated"
+#: ../../include/attach.php:689
+#, php-format
+msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
msgstr ""
-#: ../../include/text.php:1054
-msgid "relaxed"
+#: ../../include/attach.php:847
+msgid "File upload failed. Possible system limit or action terminated."
msgstr ""
-#: ../../include/text.php:1055
-msgid "surprised"
+#: ../../include/attach.php:860
+msgid "Stored file could not be verified. Upload failed."
msgstr ""
-#: ../../include/text.php:1239 ../../include/js_strings.php:70
-msgid "Monday"
+#: ../../include/attach.php:916 ../../include/attach.php:932
+msgid "Path not available."
msgstr ""
-#: ../../include/text.php:1239 ../../include/js_strings.php:71
-msgid "Tuesday"
+#: ../../include/attach.php:978 ../../include/attach.php:1130
+msgid "Empty pathname"
msgstr ""
-#: ../../include/text.php:1239 ../../include/js_strings.php:72
-msgid "Wednesday"
+#: ../../include/attach.php:1004
+msgid "duplicate filename or path"
msgstr ""
-#: ../../include/text.php:1239 ../../include/js_strings.php:73
-msgid "Thursday"
+#: ../../include/attach.php:1026
+msgid "Path not found."
msgstr ""
-#: ../../include/text.php:1239 ../../include/js_strings.php:74
-msgid "Friday"
+#: ../../include/attach.php:1084
+msgid "mkdir failed."
msgstr ""
-#: ../../include/text.php:1239 ../../include/js_strings.php:75
-msgid "Saturday"
+#: ../../include/attach.php:1088
+msgid "database storage failed."
msgstr ""
-#: ../../include/text.php:1239 ../../include/js_strings.php:69
-msgid "Sunday"
+#: ../../include/attach.php:1136
+msgid "Empty path"
msgstr ""
-#: ../../include/text.php:1243 ../../include/js_strings.php:45
-msgid "January"
+#: ../../include/page_widgets.php:7
+msgid "New Page"
msgstr ""
-#: ../../include/text.php:1243 ../../include/js_strings.php:46
-msgid "February"
+#: ../../include/page_widgets.php:46
+msgid "Title"
msgstr ""
-#: ../../include/text.php:1243 ../../include/js_strings.php:47
-msgid "March"
+#: ../../include/bb2diaspora.php:398
+msgid "Attachments:"
msgstr ""
-#: ../../include/text.php:1243 ../../include/js_strings.php:48
-msgid "April"
+#: ../../include/bb2diaspora.php:487
+msgid "$Projectname event notification:"
msgstr ""
-#: ../../include/text.php:1243
-msgid "May"
+#: ../../include/js_strings.php:5
+msgid "Delete this item?"
msgstr ""
-#: ../../include/text.php:1243 ../../include/js_strings.php:50
-msgid "June"
+#: ../../include/js_strings.php:8
+#, php-format
+msgid "%s show less"
msgstr ""
-#: ../../include/text.php:1243 ../../include/js_strings.php:51
-msgid "July"
+#: ../../include/js_strings.php:9
+#, php-format
+msgid "%s expand"
msgstr ""
-#: ../../include/text.php:1243 ../../include/js_strings.php:52
-msgid "August"
+#: ../../include/js_strings.php:10
+#, php-format
+msgid "%s collapse"
msgstr ""
-#: ../../include/text.php:1243 ../../include/js_strings.php:53
-msgid "September"
+#: ../../include/js_strings.php:11
+msgid "Password too short"
msgstr ""
-#: ../../include/text.php:1243 ../../include/js_strings.php:54
-msgid "October"
+#: ../../include/js_strings.php:12
+msgid "Passwords do not match"
msgstr ""
-#: ../../include/text.php:1243 ../../include/js_strings.php:55
-msgid "November"
+#: ../../include/js_strings.php:13
+msgid "everybody"
msgstr ""
-#: ../../include/text.php:1243 ../../include/js_strings.php:56
-msgid "December"
+#: ../../include/js_strings.php:14
+msgid "Secret Passphrase"
msgstr ""
-#: ../../include/text.php:1320 ../../include/text.php:1324
-msgid "Unknown Attachment"
+#: ../../include/js_strings.php:15
+msgid "Passphrase hint"
msgstr ""
-#: ../../include/text.php:1326
-msgid "unknown"
+#: ../../include/js_strings.php:16
+msgid "Notice: Permissions have changed but have not yet been submitted."
msgstr ""
-#: ../../include/text.php:1362
-msgid "remove category"
+#: ../../include/js_strings.php:17
+msgid "close all"
msgstr ""
-#: ../../include/text.php:1439
-msgid "remove from file"
+#: ../../include/js_strings.php:18
+msgid "Nothing new here"
msgstr ""
-#: ../../include/text.php:1738 ../../include/text.php:1809
-msgid "default"
+#: ../../include/js_strings.php:19
+msgid "Rate This Channel (this is public)"
msgstr ""
-#: ../../include/text.php:1746
-msgid "Page layout"
+#: ../../include/js_strings.php:21
+msgid "Describe (optional)"
msgstr ""
-#: ../../include/text.php:1746
-msgid "You can create your own with the layouts tool"
+#: ../../include/js_strings.php:23
+msgid "Please enter a link URL"
msgstr ""
-#: ../../include/text.php:1788
-msgid "Page content type"
+#: ../../include/js_strings.php:24
+msgid "Unsaved changes. Are you sure you wish to leave this page?"
msgstr ""
-#: ../../include/text.php:1821
-msgid "Select an alternate language"
+#: ../../include/js_strings.php:27
+msgid "timeago.prefixAgo"
msgstr ""
-#: ../../include/text.php:1958
-msgid "activity"
+#: ../../include/js_strings.php:28
+msgid "timeago.prefixFromNow"
msgstr ""
-#: ../../include/text.php:2259
-msgid "Design Tools"
+#: ../../include/js_strings.php:29
+msgid "ago"
msgstr ""
-#: ../../include/text.php:2265
-msgid "Pages"
+#: ../../include/js_strings.php:30
+msgid "from now"
msgstr ""
-#: ../../include/text.php:2287
-msgid "Import website..."
+#: ../../include/js_strings.php:31
+msgid "less than a minute"
msgstr ""
-#: ../../include/text.php:2288
-msgid "Select folder to import"
+#: ../../include/js_strings.php:32
+msgid "about a minute"
msgstr ""
-#: ../../include/text.php:2289
-msgid "Import from a zipped folder:"
+#: ../../include/js_strings.php:33
+#, php-format
+msgid "%d minutes"
msgstr ""
-#: ../../include/text.php:2290
-msgid "Import from cloud files:"
+#: ../../include/js_strings.php:34
+msgid "about an hour"
msgstr ""
-#: ../../include/text.php:2291
-msgid "/cloud/channel/path/to/folder"
+#: ../../include/js_strings.php:35
+#, php-format
+msgid "about %d hours"
msgstr ""
-#: ../../include/text.php:2292
-msgid "Enter path to website files"
+#: ../../include/js_strings.php:36
+msgid "a day"
msgstr ""
-#: ../../include/text.php:2293
-msgid "Select folder"
+#: ../../include/js_strings.php:37
+#, php-format
+msgid "%d days"
msgstr ""
-#: ../../include/nav.php:84 ../../include/nav.php:117 ../../boot.php:1712
-msgid "Logout"
+#: ../../include/js_strings.php:38
+msgid "about a month"
msgstr ""
-#: ../../include/nav.php:84 ../../include/nav.php:117
-msgid "End this session"
+#: ../../include/js_strings.php:39
+#, php-format
+msgid "%d months"
msgstr ""
-#: ../../include/nav.php:87 ../../include/nav.php:148
-msgid "Home"
+#: ../../include/js_strings.php:40
+msgid "about a year"
msgstr ""
-#: ../../include/nav.php:87
-msgid "Your posts and conversations"
+#: ../../include/js_strings.php:41
+#, php-format
+msgid "%d years"
msgstr ""
-#: ../../include/nav.php:88
-msgid "Your profile page"
+#: ../../include/js_strings.php:42
+msgid " "
msgstr ""
-#: ../../include/nav.php:90
-msgid "Manage/Edit profiles"
+#: ../../include/js_strings.php:43
+msgid "timeago.numbers"
msgstr ""
-#: ../../include/nav.php:92 ../../include/channel.php:963
-msgid "Edit Profile"
+#: ../../include/js_strings.php:45 ../../include/text.php:1289
+msgid "January"
msgstr ""
-#: ../../include/nav.php:92
-msgid "Edit your profile"
+#: ../../include/js_strings.php:46 ../../include/text.php:1289
+msgid "February"
msgstr ""
-#: ../../include/nav.php:94
-msgid "Your photos"
+#: ../../include/js_strings.php:47 ../../include/text.php:1289
+msgid "March"
msgstr ""
-#: ../../include/nav.php:95
-msgid "Your files"
+#: ../../include/js_strings.php:48 ../../include/text.php:1289
+msgid "April"
msgstr ""
-#: ../../include/nav.php:98
-msgid "Your chatrooms"
+#: ../../include/js_strings.php:49
+msgctxt "long"
+msgid "May"
msgstr ""
-#: ../../include/nav.php:104 ../../include/conversation.php:1695
-msgid "Bookmarks"
+#: ../../include/js_strings.php:50 ../../include/text.php:1289
+msgid "June"
msgstr ""
-#: ../../include/nav.php:104
-msgid "Your bookmarks"
+#: ../../include/js_strings.php:51 ../../include/text.php:1289
+msgid "July"
msgstr ""
-#: ../../include/nav.php:108
-msgid "Your webpages"
+#: ../../include/js_strings.php:52 ../../include/text.php:1289
+msgid "August"
msgstr ""
-#: ../../include/nav.php:110
-msgid "Your wiki"
+#: ../../include/js_strings.php:53 ../../include/text.php:1289
+msgid "September"
msgstr ""
-#: ../../include/nav.php:114
-msgid "Sign in"
+#: ../../include/js_strings.php:54 ../../include/text.php:1289
+msgid "October"
msgstr ""
-#: ../../include/nav.php:131
-#, php-format
-msgid "%s - click to logout"
+#: ../../include/js_strings.php:55 ../../include/text.php:1289
+msgid "November"
msgstr ""
-#: ../../include/nav.php:134
-msgid "Remote authentication"
+#: ../../include/js_strings.php:56 ../../include/text.php:1289
+msgid "December"
msgstr ""
-#: ../../include/nav.php:134
-msgid "Click to authenticate to your home hub"
+#: ../../include/js_strings.php:57
+msgid "Jan"
msgstr ""
-#: ../../include/nav.php:148
-msgid "Home Page"
+#: ../../include/js_strings.php:58
+msgid "Feb"
msgstr ""
-#: ../../include/nav.php:151
-msgid "Create an account"
+#: ../../include/js_strings.php:59
+msgid "Mar"
msgstr ""
-#: ../../include/nav.php:163
-msgid "Help and documentation"
+#: ../../include/js_strings.php:60
+msgid "Apr"
msgstr ""
-#: ../../include/nav.php:167
-msgid "Applications, utilities, links, games"
+#: ../../include/js_strings.php:61
+msgctxt "short"
+msgid "May"
msgstr ""
-#: ../../include/nav.php:169
-msgid "Search site @name, #tag, ?docs, content"
+#: ../../include/js_strings.php:62
+msgid "Jun"
msgstr ""
-#: ../../include/nav.php:171
-msgid "Channel Directory"
+#: ../../include/js_strings.php:63
+msgid "Jul"
msgstr ""
-#: ../../include/nav.php:183
-msgid "Your grid"
+#: ../../include/js_strings.php:64
+msgid "Aug"
msgstr ""
-#: ../../include/nav.php:184
-msgid "Mark all grid notifications seen"
+#: ../../include/js_strings.php:65
+msgid "Sep"
msgstr ""
-#: ../../include/nav.php:186
-msgid "Channel home"
+#: ../../include/js_strings.php:66
+msgid "Oct"
msgstr ""
-#: ../../include/nav.php:187
-msgid "Mark all channel notifications seen"
+#: ../../include/js_strings.php:67
+msgid "Nov"
msgstr ""
-#: ../../include/nav.php:193
-msgid "Notices"
+#: ../../include/js_strings.php:68
+msgid "Dec"
msgstr ""
-#: ../../include/nav.php:193
-msgid "Notifications"
+#: ../../include/js_strings.php:69 ../../include/text.php:1285
+msgid "Sunday"
msgstr ""
-#: ../../include/nav.php:194
-msgid "See all notifications"
+#: ../../include/js_strings.php:70 ../../include/text.php:1285
+msgid "Monday"
msgstr ""
-#: ../../include/nav.php:197
-msgid "Private mail"
+#: ../../include/js_strings.php:71 ../../include/text.php:1285
+msgid "Tuesday"
msgstr ""
-#: ../../include/nav.php:198
-msgid "See all private messages"
+#: ../../include/js_strings.php:72 ../../include/text.php:1285
+msgid "Wednesday"
msgstr ""
-#: ../../include/nav.php:199
-msgid "Mark all private messages seen"
+#: ../../include/js_strings.php:73 ../../include/text.php:1285
+msgid "Thursday"
msgstr ""
-#: ../../include/nav.php:200 ../../include/widgets.php:667
-msgid "Inbox"
+#: ../../include/js_strings.php:74 ../../include/text.php:1285
+msgid "Friday"
msgstr ""
-#: ../../include/nav.php:201 ../../include/widgets.php:672
-msgid "Outbox"
+#: ../../include/js_strings.php:75 ../../include/text.php:1285
+msgid "Saturday"
msgstr ""
-#: ../../include/nav.php:202 ../../include/widgets.php:677
-msgid "New Message"
+#: ../../include/js_strings.php:76
+msgid "Sun"
msgstr ""
-#: ../../include/nav.php:205
-msgid "Event Calendar"
+#: ../../include/js_strings.php:77
+msgid "Mon"
msgstr ""
-#: ../../include/nav.php:206
-msgid "See all events"
+#: ../../include/js_strings.php:78
+msgid "Tue"
msgstr ""
-#: ../../include/nav.php:207
-msgid "Mark all events seen"
+#: ../../include/js_strings.php:79
+msgid "Wed"
msgstr ""
-#: ../../include/nav.php:210
-msgid "Manage Your Channels"
+#: ../../include/js_strings.php:80
+msgid "Thu"
msgstr ""
-#: ../../include/nav.php:212
-msgid "Account/Channel Settings"
+#: ../../include/js_strings.php:81
+msgid "Fri"
msgstr ""
-#: ../../include/nav.php:220 ../../include/widgets.php:1524
-msgid "Admin"
+#: ../../include/js_strings.php:82
+msgid "Sat"
msgstr ""
-#: ../../include/nav.php:220
-msgid "Site Setup and Configuration"
+#: ../../include/js_strings.php:83
+msgctxt "calendar"
+msgid "today"
msgstr ""
-#: ../../include/nav.php:251 ../../include/conversation.php:855
-msgid "Loading..."
+#: ../../include/js_strings.php:84
+msgctxt "calendar"
+msgid "month"
msgstr ""
-#: ../../include/nav.php:256
-msgid "@name, #tag, ?doc, content"
+#: ../../include/js_strings.php:85
+msgctxt "calendar"
+msgid "week"
msgstr ""
-#: ../../include/nav.php:257
-msgid "Please wait..."
+#: ../../include/js_strings.php:86
+msgctxt "calendar"
+msgid "day"
msgstr ""
-#: ../../include/bookmarks.php:35
-#, php-format
-msgid "%1$s's bookmarks"
+#: ../../include/js_strings.php:87
+msgctxt "calendar"
+msgid "All day"
msgstr ""
-#: ../../include/event.php:22 ../../include/event.php:69
-#: ../../include/bb2diaspora.php:485
-msgid "l F d, Y \\@ g:i A"
+#: ../../include/follow.php:27
+msgid "Channel is blocked on this site."
msgstr ""
-#: ../../include/event.php:30 ../../include/event.php:73
-#: ../../include/bb2diaspora.php:491
-msgid "Starts:"
+#: ../../include/follow.php:32
+msgid "Channel location missing."
msgstr ""
-#: ../../include/event.php:40 ../../include/event.php:77
-#: ../../include/bb2diaspora.php:499
-msgid "Finishes:"
+#: ../../include/follow.php:80
+msgid "Response from remote channel was incomplete."
msgstr ""
-#: ../../include/event.php:814
-msgid "This event has been added to your calendar."
+#: ../../include/follow.php:97
+msgid "Channel was deleted and no longer exists."
msgstr ""
-#: ../../include/event.php:1014
-msgid "Not specified"
+#: ../../include/follow.php:147 ../../include/follow.php:183
+msgid "Protocol disabled."
msgstr ""
-#: ../../include/event.php:1015
-msgid "Needs Action"
+#: ../../include/follow.php:171
+msgid "Channel discovery failed."
msgstr ""
-#: ../../include/event.php:1016
-msgid "Completed"
+#: ../../include/follow.php:210
+msgid "Cannot connect to yourself."
msgstr ""
-#: ../../include/event.php:1017
-msgid "In Process"
+#: ../../include/acl_selectors.php:169
+msgid "Who can see this?"
msgstr ""
-#: ../../include/event.php:1018
-msgid "Cancelled"
+#: ../../include/acl_selectors.php:170
+msgid "Custom selection"
msgstr ""
-#: ../../include/group.php:26
+#: ../../include/acl_selectors.php:171
msgid ""
-"A deleted group with this name was revived. Existing item permissions "
-"<strong>may</strong> apply to this group and any future members. If this is "
-"not what you intended, please create another group with a different name."
-msgstr ""
-
-#: ../../include/group.php:248
-msgid "Add new connections to this privacy group"
-msgstr ""
-
-#: ../../include/group.php:289
-msgid "edit"
-msgstr ""
-
-#: ../../include/group.php:312
-msgid "Edit group"
-msgstr ""
-
-#: ../../include/group.php:313
-msgid "Add privacy group"
-msgstr ""
-
-#: ../../include/group.php:314
-msgid "Channels not in any privacy group"
+"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit "
+"the scope of \"Show\"."
msgstr ""
-#: ../../include/group.php:316 ../../include/widgets.php:282
-msgid "add"
+#: ../../include/acl_selectors.php:172
+msgid "Show"
msgstr ""
-#: ../../include/page_widgets.php:7
-msgid "New Page"
+#: ../../include/acl_selectors.php:173
+msgid "Don't show"
msgstr ""
-#: ../../include/page_widgets.php:46
-msgid "Title"
+#: ../../include/acl_selectors.php:207
+#, php-format
+msgid ""
+"Post permissions %s cannot be changed %s after a post is shared.</br />These "
+"permissions set who is allowed to view the post."
msgstr ""
#: ../../include/channel.php:33
@@ -8588,817 +8719,739 @@ msgstr ""
msgid "Like this thing"
msgstr ""
-#: ../../include/network.php:704
-msgid "view full size"
+#: ../../include/connections.php:95
+msgid "New window"
msgstr ""
-#: ../../include/network.php:1935 ../../include/account.php:317
-#: ../../include/account.php:344 ../../include/account.php:404
-msgid "Administrator"
+#: ../../include/connections.php:96
+msgid "Open the selected location in a different window or browser tab"
msgstr ""
-#: ../../include/network.php:1949
-msgid "No Subject"
+#: ../../include/connections.php:214
+#, php-format
+msgid "User '%s' deleted"
msgstr ""
-#: ../../include/network.php:2203 ../../include/network.php:2204
-msgid "Friendica"
-msgstr ""
+#: ../../include/contact_widgets.php:11
+#, php-format
+msgid "%d invitation available"
+msgid_plural "%d invitations available"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../include/network.php:2205
-msgid "OStatus"
+#: ../../include/contact_widgets.php:19
+msgid "Find Channels"
msgstr ""
-#: ../../include/network.php:2206
-msgid "GNU-Social"
+#: ../../include/contact_widgets.php:20
+msgid "Enter name or interest"
msgstr ""
-#: ../../include/network.php:2207
-msgid "RSS/Atom"
+#: ../../include/contact_widgets.php:21
+msgid "Connect/Follow"
msgstr ""
-#: ../../include/network.php:2209
-msgid "Diaspora"
+#: ../../include/contact_widgets.php:22
+msgid "Examples: Robert Morgenstein, Fishing"
msgstr ""
-#: ../../include/network.php:2210
-msgid "Facebook"
+#: ../../include/contact_widgets.php:26
+msgid "Random Profile"
msgstr ""
-#: ../../include/network.php:2211
-msgid "Zot"
+#: ../../include/contact_widgets.php:27
+msgid "Invite Friends"
msgstr ""
-#: ../../include/network.php:2212
-msgid "LinkedIn"
+#: ../../include/contact_widgets.php:29
+msgid "Advanced example: name=fred and country=iceland"
msgstr ""
-#: ../../include/network.php:2213
-msgid "XMPP/IM"
+#: ../../include/contact_widgets.php:53 ../../include/widgets.php:346
+#: ../../include/features.php:97
+msgid "Saved Folders"
msgstr ""
-#: ../../include/network.php:2214
-msgid "MySpace"
+#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:94
+#: ../../include/widgets.php:349 ../../include/widgets.php:468
+msgid "Everything"
msgstr ""
-#: ../../include/bb2diaspora.php:398
-msgid "Attachments:"
+#: ../../include/contact_widgets.php:91 ../../include/taxonomy.php:188
+#: ../../include/taxonomy.php:270 ../../include/widgets.php:46
+#: ../../include/widgets.php:465
+msgid "Categories"
msgstr ""
-#: ../../include/bb2diaspora.php:487
-msgid "$Projectname event notification:"
-msgstr ""
+#: ../../include/contact_widgets.php:122
+#, php-format
+msgid "%d connection in common"
+msgid_plural "%d connections in common"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../include/js_strings.php:5
-msgid "Delete this item?"
+#: ../../include/contact_widgets.php:127
+msgid "show more"
msgstr ""
-#: ../../include/js_strings.php:8
-#, php-format
-msgid "%s show less"
+#: ../../include/auth.php:148
+msgid "Logged out."
msgstr ""
-#: ../../include/js_strings.php:9
-#, php-format
-msgid "%s expand"
+#: ../../include/auth.php:275
+msgid "Failed authentication"
msgstr ""
-#: ../../include/js_strings.php:10
-#, php-format
-msgid "%s collapse"
+#: ../../include/auth.php:286
+msgid "Login failed."
msgstr ""
-#: ../../include/js_strings.php:11
-msgid "Password too short"
+#: ../../include/activities.php:41
+msgid " and "
msgstr ""
-#: ../../include/js_strings.php:12
-msgid "Passwords do not match"
+#: ../../include/activities.php:49
+msgid "public profile"
msgstr ""
-#: ../../include/js_strings.php:13
-msgid "everybody"
+#: ../../include/activities.php:58
+#, php-format
+msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
msgstr ""
-#: ../../include/js_strings.php:14
-msgid "Secret Passphrase"
+#: ../../include/activities.php:59
+#, php-format
+msgid "Visit %1$s's %2$s"
msgstr ""
-#: ../../include/js_strings.php:15
-msgid "Passphrase hint"
+#: ../../include/activities.php:62
+#, php-format
+msgid "%1$s has an updated %2$s, changing %3$s."
msgstr ""
-#: ../../include/js_strings.php:16
-msgid "Notice: Permissions have changed but have not yet been submitted."
+#: ../../include/conversation.php:204
+#, php-format
+msgid "%1$s is now connected with %2$s"
msgstr ""
-#: ../../include/js_strings.php:17
-msgid "close all"
+#: ../../include/conversation.php:239
+#, php-format
+msgid "%1$s poked %2$s"
msgstr ""
-#: ../../include/js_strings.php:18
-msgid "Nothing new here"
+#: ../../include/conversation.php:243 ../../include/text.php:1059
+#: ../../include/text.php:1064
+msgid "poked"
msgstr ""
-#: ../../include/js_strings.php:19
-msgid "Rate This Channel (this is public)"
+#: ../../include/conversation.php:694
+#, php-format
+msgid "View %s's profile @ %s"
msgstr ""
-#: ../../include/js_strings.php:21
-msgid "Describe (optional)"
+#: ../../include/conversation.php:713
+msgid "Categories:"
msgstr ""
-#: ../../include/js_strings.php:23
-msgid "Please enter a link URL"
+#: ../../include/conversation.php:714
+msgid "Filed under:"
msgstr ""
-#: ../../include/js_strings.php:24
-msgid "Unsaved changes. Are you sure you wish to leave this page?"
+#: ../../include/conversation.php:741
+msgid "View in context"
msgstr ""
-#: ../../include/js_strings.php:27
-msgid "timeago.prefixAgo"
+#: ../../include/conversation.php:851
+msgid "remove"
msgstr ""
-#: ../../include/js_strings.php:28
-msgid "timeago.prefixFromNow"
+#: ../../include/conversation.php:856
+msgid "Delete Selected Items"
msgstr ""
-#: ../../include/js_strings.php:29
-msgid "ago"
+#: ../../include/conversation.php:949
+msgid "View Source"
msgstr ""
-#: ../../include/js_strings.php:30
-msgid "from now"
+#: ../../include/conversation.php:950
+msgid "Follow Thread"
msgstr ""
-#: ../../include/js_strings.php:31
-msgid "less than a minute"
+#: ../../include/conversation.php:951
+msgid "Unfollow Thread"
msgstr ""
-#: ../../include/js_strings.php:32
-msgid "about a minute"
+#: ../../include/conversation.php:956
+msgid "Activity/Posts"
msgstr ""
-#: ../../include/js_strings.php:33
-#, php-format
-msgid "%d minutes"
+#: ../../include/conversation.php:958
+msgid "Edit Connection"
msgstr ""
-#: ../../include/js_strings.php:34
-msgid "about an hour"
+#: ../../include/conversation.php:959
+msgid "Message"
msgstr ""
-#: ../../include/js_strings.php:35
+#: ../../include/conversation.php:1076
#, php-format
-msgid "about %d hours"
-msgstr ""
-
-#: ../../include/js_strings.php:36
-msgid "a day"
+msgid "%s likes this."
msgstr ""
-#: ../../include/js_strings.php:37
+#: ../../include/conversation.php:1076
#, php-format
-msgid "%d days"
+msgid "%s doesn't like this."
msgstr ""
-#: ../../include/js_strings.php:38
-msgid "about a month"
-msgstr ""
+#: ../../include/conversation.php:1080
+#, php-format
+msgid "<span %1$s>%2$d people</span> like this."
+msgid_plural "<span %1$s>%2$d people</span> like this."
+msgstr[0] ""
+msgstr[1] ""
-#: ../../include/js_strings.php:39
+#: ../../include/conversation.php:1082
#, php-format
-msgid "%d months"
-msgstr ""
+msgid "<span %1$s>%2$d people</span> don't like this."
+msgid_plural "<span %1$s>%2$d people</span> don't like this."
+msgstr[0] ""
+msgstr[1] ""
-#: ../../include/js_strings.php:40
-msgid "about a year"
+#: ../../include/conversation.php:1088
+msgid "and"
msgstr ""
-#: ../../include/js_strings.php:41
+#: ../../include/conversation.php:1091
#, php-format
-msgid "%d years"
-msgstr ""
+msgid ", and %d other people"
+msgid_plural ", and %d other people"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../include/js_strings.php:42
-msgid " "
+#: ../../include/conversation.php:1092
+#, php-format
+msgid "%s like this."
msgstr ""
-#: ../../include/js_strings.php:43
-msgid "timeago.numbers"
+#: ../../include/conversation.php:1092
+#, php-format
+msgid "%s don't like this."
msgstr ""
-#: ../../include/js_strings.php:49
-msgctxt "long"
-msgid "May"
+#: ../../include/conversation.php:1135
+msgid "Set your location"
msgstr ""
-#: ../../include/js_strings.php:57
-msgid "Jan"
+#: ../../include/conversation.php:1136
+msgid "Clear browser location"
msgstr ""
-#: ../../include/js_strings.php:58
-msgid "Feb"
+#: ../../include/conversation.php:1184
+msgid "Tag term:"
msgstr ""
-#: ../../include/js_strings.php:59
-msgid "Mar"
+#: ../../include/conversation.php:1185
+msgid "Where are you right now?"
msgstr ""
-#: ../../include/js_strings.php:60
-msgid "Apr"
+#: ../../include/conversation.php:1194
+msgid "Comments enabled"
msgstr ""
-#: ../../include/js_strings.php:61
-msgctxt "short"
-msgid "May"
+#: ../../include/conversation.php:1195
+msgid "Comments disabled"
msgstr ""
-#: ../../include/js_strings.php:62
-msgid "Jun"
+#: ../../include/conversation.php:1233
+msgid "Page link name"
msgstr ""
-#: ../../include/js_strings.php:63
-msgid "Jul"
+#: ../../include/conversation.php:1236
+msgid "Post as"
msgstr ""
-#: ../../include/js_strings.php:64
-msgid "Aug"
+#: ../../include/conversation.php:1250
+msgid "Toggle voting"
msgstr ""
-#: ../../include/js_strings.php:65
-msgid "Sep"
+#: ../../include/conversation.php:1253
+msgid "Disable comments"
msgstr ""
-#: ../../include/js_strings.php:66
-msgid "Oct"
+#: ../../include/conversation.php:1254
+msgid "Toggle comments"
msgstr ""
-#: ../../include/js_strings.php:67
-msgid "Nov"
+#: ../../include/conversation.php:1262
+msgid "Categories (optional, comma-separated list)"
msgstr ""
-#: ../../include/js_strings.php:68
-msgid "Dec"
+#: ../../include/conversation.php:1285
+msgid "Other networks and post services"
msgstr ""
-#: ../../include/js_strings.php:76
-msgid "Sun"
+#: ../../include/conversation.php:1291
+msgid "Set publish date"
msgstr ""
-#: ../../include/js_strings.php:77
-msgid "Mon"
+#: ../../include/conversation.php:1540
+msgid "Discover"
msgstr ""
-#: ../../include/js_strings.php:78
-msgid "Tue"
+#: ../../include/conversation.php:1543
+msgid "Imported public streams"
msgstr ""
-#: ../../include/js_strings.php:79
-msgid "Wed"
+#: ../../include/conversation.php:1548
+msgid "Commented Order"
msgstr ""
-#: ../../include/js_strings.php:80
-msgid "Thu"
+#: ../../include/conversation.php:1551
+msgid "Sort by Comment Date"
msgstr ""
-#: ../../include/js_strings.php:81
-msgid "Fri"
+#: ../../include/conversation.php:1555
+msgid "Posted Order"
msgstr ""
-#: ../../include/js_strings.php:82
-msgid "Sat"
+#: ../../include/conversation.php:1558
+msgid "Sort by Post Date"
msgstr ""
-#: ../../include/js_strings.php:83
-msgctxt "calendar"
-msgid "today"
+#: ../../include/conversation.php:1566
+msgid "Posts that mention or involve you"
msgstr ""
-#: ../../include/js_strings.php:84
-msgctxt "calendar"
-msgid "month"
+#: ../../include/conversation.php:1575
+msgid "Activity Stream - by date"
msgstr ""
-#: ../../include/js_strings.php:85
-msgctxt "calendar"
-msgid "week"
+#: ../../include/conversation.php:1581
+msgid "Starred"
msgstr ""
-#: ../../include/js_strings.php:86
-msgctxt "calendar"
-msgid "day"
+#: ../../include/conversation.php:1584
+msgid "Favourite Posts"
msgstr ""
-#: ../../include/js_strings.php:87
-msgctxt "calendar"
-msgid "All day"
+#: ../../include/conversation.php:1591
+msgid "Spam"
msgstr ""
-#: ../../include/security.php:109
-msgid "guest:"
+#: ../../include/conversation.php:1594
+msgid "Posts flagged as SPAM"
msgstr ""
-#: ../../include/security.php:527
-msgid ""
-"The form security token was not correct. This probably happened because the "
-"form has been opened for too long (>3 hours) before submitting it."
+#: ../../include/conversation.php:1653
+msgid "Status Messages and Posts"
msgstr ""
-#: ../../include/account.php:28
-msgid "Not a valid email address"
+#: ../../include/conversation.php:1662
+msgid "About"
msgstr ""
-#: ../../include/account.php:30
-msgid "Your email domain is not among those allowed on this site"
+#: ../../include/conversation.php:1665
+msgid "Profile Details"
msgstr ""
-#: ../../include/account.php:36
-msgid "Your email address is already registered at this site."
+#: ../../include/conversation.php:1681
+msgid "Files and Storage"
msgstr ""
-#: ../../include/account.php:68
-msgid "An invitation is required."
+#: ../../include/conversation.php:1701 ../../include/conversation.php:1704
+#: ../../include/widgets.php:883
+msgid "Chatrooms"
msgstr ""
-#: ../../include/account.php:72
-msgid "Invitation could not be verified."
+#: ../../include/conversation.php:1717
+msgid "Saved Bookmarks"
msgstr ""
-#: ../../include/account.php:122
-msgid "Please enter the required information."
+#: ../../include/conversation.php:1727
+msgid "Manage Webpages"
msgstr ""
-#: ../../include/account.php:189
-msgid "Failed to store account information."
-msgstr ""
+#: ../../include/conversation.php:1792
+msgctxt "noun"
+msgid "Attending"
+msgid_plural "Attending"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../include/account.php:249
-#, php-format
-msgid "Registration confirmation for %s"
-msgstr ""
+#: ../../include/conversation.php:1795
+msgctxt "noun"
+msgid "Not Attending"
+msgid_plural "Not Attending"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../include/account.php:315
-#, php-format
-msgid "Registration request at %s"
-msgstr ""
+#: ../../include/conversation.php:1798
+msgctxt "noun"
+msgid "Undecided"
+msgid_plural "Undecided"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../include/account.php:339
-msgid "your registration password"
-msgstr ""
+#: ../../include/conversation.php:1801
+msgctxt "noun"
+msgid "Agree"
+msgid_plural "Agrees"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../include/account.php:342 ../../include/account.php:402
-#, php-format
-msgid "Registration details for %s"
-msgstr ""
+#: ../../include/conversation.php:1804
+msgctxt "noun"
+msgid "Disagree"
+msgid_plural "Disagrees"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../include/account.php:414
-msgid "Account approved."
-msgstr ""
+#: ../../include/conversation.php:1807
+msgctxt "noun"
+msgid "Abstain"
+msgid_plural "Abstains"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../include/account.php:454
-#, php-format
-msgid "Registration revoked for %s"
+#: ../../include/taxonomy.php:228 ../../include/taxonomy.php:249
+msgid "Tags"
msgstr ""
-#: ../../include/account.php:739 ../../include/account.php:741
-msgid "Click here to upgrade."
+#: ../../include/taxonomy.php:293
+msgid "Keywords"
msgstr ""
-#: ../../include/account.php:747
-msgid "This action exceeds the limits set by your subscription plan."
+#: ../../include/taxonomy.php:314
+msgid "have"
msgstr ""
-#: ../../include/account.php:752
-msgid "This action is not available under your subscription plan."
+#: ../../include/taxonomy.php:314
+msgid "has"
msgstr ""
-#: ../../include/bbcode.php:123 ../../include/bbcode.php:878
-#: ../../include/bbcode.php:881 ../../include/bbcode.php:886
-#: ../../include/bbcode.php:889 ../../include/bbcode.php:892
-#: ../../include/bbcode.php:895 ../../include/bbcode.php:900
-#: ../../include/bbcode.php:903 ../../include/bbcode.php:908
-#: ../../include/bbcode.php:911 ../../include/bbcode.php:914
-#: ../../include/bbcode.php:917
-msgid "Image/photo"
+#: ../../include/taxonomy.php:315
+msgid "want"
msgstr ""
-#: ../../include/bbcode.php:162 ../../include/bbcode.php:928
-msgid "Encrypted content"
+#: ../../include/taxonomy.php:315
+msgid "wants"
msgstr ""
-#: ../../include/bbcode.php:178
-#, php-format
-msgid "Install %s element: "
+#: ../../include/taxonomy.php:316
+msgid "likes"
msgstr ""
-#: ../../include/bbcode.php:182
-#, php-format
-msgid ""
-"This post contains an installable %s element, however you lack permissions "
-"to install it on this site."
+#: ../../include/taxonomy.php:317
+msgid "dislikes"
msgstr ""
-#: ../../include/bbcode.php:261
-#, php-format
-msgid "%1$s wrote the following %2$s %3$s"
+#: ../../include/text.php:450
+msgid "prev"
msgstr ""
-#: ../../include/bbcode.php:338 ../../include/bbcode.php:346
-msgid "Click to open/close"
+#: ../../include/text.php:452
+msgid "first"
msgstr ""
-#: ../../include/bbcode.php:346
-msgid "spoiler"
+#: ../../include/text.php:481
+msgid "last"
msgstr ""
-#: ../../include/bbcode.php:619 ../../include/wiki.php:525
-msgid "Different viewers will see this text differently"
+#: ../../include/text.php:484
+msgid "next"
msgstr ""
-#: ../../include/bbcode.php:866
-msgid "$1 wrote:"
+#: ../../include/text.php:494
+msgid "older"
msgstr ""
-#: ../../include/conversation.php:204
-#, php-format
-msgid "%1$s is now connected with %2$s"
+#: ../../include/text.php:496
+msgid "newer"
msgstr ""
-#: ../../include/conversation.php:239
-#, php-format
-msgid "%1$s poked %2$s"
+#: ../../include/text.php:889
+msgid "No connections"
msgstr ""
-#: ../../include/conversation.php:694
+#: ../../include/text.php:914
#, php-format
-msgid "View %s's profile @ %s"
-msgstr ""
-
-#: ../../include/conversation.php:713
-msgid "Categories:"
-msgstr ""
-
-#: ../../include/conversation.php:714
-msgid "Filed under:"
-msgstr ""
-
-#: ../../include/conversation.php:741
-msgid "View in context"
-msgstr ""
-
-#: ../../include/conversation.php:851
-msgid "remove"
+msgid "View all %s connections"
msgstr ""
-#: ../../include/conversation.php:856
-msgid "Delete Selected Items"
+#: ../../include/text.php:1059 ../../include/text.php:1064
+msgid "poke"
msgstr ""
-#: ../../include/conversation.php:952
-msgid "View Source"
+#: ../../include/text.php:1065
+msgid "ping"
msgstr ""
-#: ../../include/conversation.php:953
-msgid "Follow Thread"
+#: ../../include/text.php:1065
+msgid "pinged"
msgstr ""
-#: ../../include/conversation.php:954
-msgid "Unfollow Thread"
+#: ../../include/text.php:1066
+msgid "prod"
msgstr ""
-#: ../../include/conversation.php:959
-msgid "Activity/Posts"
+#: ../../include/text.php:1066
+msgid "prodded"
msgstr ""
-#: ../../include/conversation.php:961
-msgid "Edit Connection"
+#: ../../include/text.php:1067
+msgid "slap"
msgstr ""
-#: ../../include/conversation.php:962
-msgid "Message"
+#: ../../include/text.php:1067
+msgid "slapped"
msgstr ""
-#: ../../include/conversation.php:1079
-#, php-format
-msgid "%s likes this."
+#: ../../include/text.php:1068
+msgid "finger"
msgstr ""
-#: ../../include/conversation.php:1079
-#, php-format
-msgid "%s doesn't like this."
+#: ../../include/text.php:1068
+msgid "fingered"
msgstr ""
-#: ../../include/conversation.php:1083
-#, php-format
-msgid "<span %1$s>%2$d people</span> like this."
-msgid_plural "<span %1$s>%2$d people</span> like this."
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/conversation.php:1085
-#, php-format
-msgid "<span %1$s>%2$d people</span> don't like this."
-msgid_plural "<span %1$s>%2$d people</span> don't like this."
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/conversation.php:1091
-msgid "and"
+#: ../../include/text.php:1069
+msgid "rebuff"
msgstr ""
-#: ../../include/conversation.php:1094
-#, php-format
-msgid ", and %d other people"
-msgid_plural ", and %d other people"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/conversation.php:1095
-#, php-format
-msgid "%s like this."
+#: ../../include/text.php:1069
+msgid "rebuffed"
msgstr ""
-#: ../../include/conversation.php:1095
-#, php-format
-msgid "%s don't like this."
+#: ../../include/text.php:1081
+msgid "happy"
msgstr ""
-#: ../../include/conversation.php:1134
-msgid "Set your location"
+#: ../../include/text.php:1082
+msgid "sad"
msgstr ""
-#: ../../include/conversation.php:1135
-msgid "Clear browser location"
+#: ../../include/text.php:1083
+msgid "mellow"
msgstr ""
-#: ../../include/conversation.php:1183
-msgid "Tag term:"
+#: ../../include/text.php:1084
+msgid "tired"
msgstr ""
-#: ../../include/conversation.php:1184
-msgid "Where are you right now?"
+#: ../../include/text.php:1085
+msgid "perky"
msgstr ""
-#: ../../include/conversation.php:1222
-msgid "Page link name"
+#: ../../include/text.php:1086
+msgid "angry"
msgstr ""
-#: ../../include/conversation.php:1225
-msgid "Post as"
+#: ../../include/text.php:1087
+msgid "stupefied"
msgstr ""
-#: ../../include/conversation.php:1239
-msgid "Toggle voting"
+#: ../../include/text.php:1088
+msgid "puzzled"
msgstr ""
-#: ../../include/conversation.php:1247
-msgid "Categories (optional, comma-separated list)"
+#: ../../include/text.php:1089
+msgid "interested"
msgstr ""
-#: ../../include/conversation.php:1274
-msgid "Set publish date"
+#: ../../include/text.php:1090
+msgid "bitter"
msgstr ""
-#: ../../include/conversation.php:1523
-msgid "Discover"
+#: ../../include/text.php:1091
+msgid "cheerful"
msgstr ""
-#: ../../include/conversation.php:1526
-msgid "Imported public streams"
+#: ../../include/text.php:1092
+msgid "alive"
msgstr ""
-#: ../../include/conversation.php:1531
-msgid "Commented Order"
+#: ../../include/text.php:1093
+msgid "annoyed"
msgstr ""
-#: ../../include/conversation.php:1534
-msgid "Sort by Comment Date"
+#: ../../include/text.php:1094
+msgid "anxious"
msgstr ""
-#: ../../include/conversation.php:1538
-msgid "Posted Order"
+#: ../../include/text.php:1095
+msgid "cranky"
msgstr ""
-#: ../../include/conversation.php:1541
-msgid "Sort by Post Date"
+#: ../../include/text.php:1096
+msgid "disturbed"
msgstr ""
-#: ../../include/conversation.php:1549
-msgid "Posts that mention or involve you"
+#: ../../include/text.php:1097
+msgid "frustrated"
msgstr ""
-#: ../../include/conversation.php:1558
-msgid "Activity Stream - by date"
+#: ../../include/text.php:1098
+msgid "depressed"
msgstr ""
-#: ../../include/conversation.php:1564
-msgid "Starred"
+#: ../../include/text.php:1099
+msgid "motivated"
msgstr ""
-#: ../../include/conversation.php:1567
-msgid "Favourite Posts"
+#: ../../include/text.php:1100
+msgid "relaxed"
msgstr ""
-#: ../../include/conversation.php:1574
-msgid "Spam"
+#: ../../include/text.php:1101
+msgid "surprised"
msgstr ""
-#: ../../include/conversation.php:1577
-msgid "Posts flagged as SPAM"
+#: ../../include/text.php:1289
+msgid "May"
msgstr ""
-#: ../../include/conversation.php:1634
-msgid "Status Messages and Posts"
+#: ../../include/text.php:1366 ../../include/text.php:1370
+msgid "Unknown Attachment"
msgstr ""
-#: ../../include/conversation.php:1643
-msgid "About"
+#: ../../include/text.php:1372
+msgid "unknown"
msgstr ""
-#: ../../include/conversation.php:1646
-msgid "Profile Details"
+#: ../../include/text.php:1408
+msgid "remove category"
msgstr ""
-#: ../../include/conversation.php:1662
-msgid "Files and Storage"
+#: ../../include/text.php:1485
+msgid "remove from file"
msgstr ""
-#: ../../include/conversation.php:1682 ../../include/conversation.php:1685
-#: ../../include/widgets.php:850
-msgid "Chatrooms"
+#: ../../include/text.php:1784 ../../include/text.php:1855
+msgid "default"
msgstr ""
-#: ../../include/conversation.php:1698
-msgid "Saved Bookmarks"
+#: ../../include/text.php:1792
+msgid "Page layout"
msgstr ""
-#: ../../include/conversation.php:1708
-msgid "Manage Webpages"
+#: ../../include/text.php:1792
+msgid "You can create your own with the layouts tool"
msgstr ""
-#: ../../include/conversation.php:1773
-msgctxt "noun"
-msgid "Attending"
-msgid_plural "Attending"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/conversation.php:1776
-msgctxt "noun"
-msgid "Not Attending"
-msgid_plural "Not Attending"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/conversation.php:1779
-msgctxt "noun"
-msgid "Undecided"
-msgid_plural "Undecided"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/conversation.php:1782
-msgctxt "noun"
-msgid "Agree"
-msgid_plural "Agrees"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/conversation.php:1785
-msgctxt "noun"
-msgid "Disagree"
-msgid_plural "Disagrees"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/conversation.php:1788
-msgctxt "noun"
-msgid "Abstain"
-msgid_plural "Abstains"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/oembed.php:340
-msgid "Embedded content"
+#: ../../include/text.php:1834
+msgid "Page content type"
msgstr ""
-#: ../../include/oembed.php:349
-msgid "Embedding disabled"
+#: ../../include/text.php:1867
+msgid "Select an alternate language"
msgstr ""
-#: ../../include/activities.php:41
-msgid " and "
+#: ../../include/text.php:2004
+msgid "activity"
msgstr ""
-#: ../../include/activities.php:49
-msgid "public profile"
+#: ../../include/text.php:2305
+msgid "Design Tools"
msgstr ""
-#: ../../include/activities.php:58
-#, php-format
-msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
+#: ../../include/text.php:2311
+msgid "Pages"
msgstr ""
-#: ../../include/activities.php:59
-#, php-format
-msgid "Visit %1$s's %2$s"
+#: ../../include/text.php:2333
+msgid "Import website..."
msgstr ""
-#: ../../include/activities.php:62
-#, php-format
-msgid "%1$s has an updated %2$s, changing %3$s."
+#: ../../include/text.php:2334
+msgid "Select folder to import"
msgstr ""
-#: ../../include/taxonomy.php:188 ../../include/taxonomy.php:270
-#: ../../include/widgets.php:46 ../../include/widgets.php:429
-#: ../../include/contact_widgets.php:91
-msgid "Categories"
+#: ../../include/text.php:2335
+msgid "Import from a zipped folder:"
msgstr ""
-#: ../../include/taxonomy.php:228 ../../include/taxonomy.php:249
-msgid "Tags"
+#: ../../include/text.php:2336
+msgid "Import from cloud files:"
msgstr ""
-#: ../../include/taxonomy.php:293
-msgid "Keywords"
+#: ../../include/text.php:2337
+msgid "/cloud/channel/path/to/folder"
msgstr ""
-#: ../../include/taxonomy.php:314
-msgid "have"
+#: ../../include/text.php:2338
+msgid "Enter path to website files"
msgstr ""
-#: ../../include/taxonomy.php:314
-msgid "has"
+#: ../../include/text.php:2339
+msgid "Select folder"
msgstr ""
-#: ../../include/taxonomy.php:315
-msgid "want"
+#: ../../include/text.php:2340
+msgid "Export website..."
msgstr ""
-#: ../../include/taxonomy.php:315
-msgid "wants"
+#: ../../include/text.php:2341
+msgid "Export to a zip file"
msgstr ""
-#: ../../include/taxonomy.php:316
-msgid "likes"
+#: ../../include/text.php:2342
+msgid "website.zip"
msgstr ""
-#: ../../include/taxonomy.php:317
-msgid "dislikes"
+#: ../../include/text.php:2343
+msgid "Enter a name for the zip file."
msgstr ""
-#: ../../include/permissions.php:29
-msgid "Can view my normal stream and posts"
+#: ../../include/text.php:2344
+msgid "Export to cloud files"
msgstr ""
-#: ../../include/permissions.php:33
-msgid "Can view my webpages"
+#: ../../include/text.php:2345
+msgid "/path/to/export/folder"
msgstr ""
-#: ../../include/permissions.php:37
-msgid "Can post on my channel page (\"wall\")"
+#: ../../include/text.php:2346
+msgid "Enter a path to a cloud files destination."
msgstr ""
-#: ../../include/permissions.php:40
-msgid "Can like/dislike stuff"
+#: ../../include/text.php:2347
+msgid "Specify folder"
msgstr ""
-#: ../../include/permissions.php:40
-msgid "Profiles and things other than posts/comments"
+#: ../../include/api.php:1330
+msgid "Public Timeline"
msgstr ""
-#: ../../include/permissions.php:42
-msgid "Can forward to all my channel contacts via post @mentions"
+#: ../../include/dir_fns.php:141
+msgid "Directory Options"
msgstr ""
-#: ../../include/permissions.php:42
-msgid "Advanced - useful for creating group forum channels"
+#: ../../include/dir_fns.php:143
+msgid "Safe Mode"
msgstr ""
-#: ../../include/permissions.php:43
-msgid "Can chat with me (when available)"
+#: ../../include/dir_fns.php:144
+msgid "Public Forums Only"
msgstr ""
-#: ../../include/permissions.php:44
-msgid "Can write to my file storage and photos"
+#: ../../include/dir_fns.php:145
+msgid "This Website Only"
msgstr ""
-#: ../../include/permissions.php:45
-msgid "Can edit my webpages"
+#: ../../include/message.php:20
+msgid "No recipient provided."
msgstr ""
-#: ../../include/permissions.php:47
-msgid "Somewhat advanced - very useful in open communities"
+#: ../../include/message.php:25
+msgid "[no subject]"
msgstr ""
-#: ../../include/permissions.php:49
-msgid "Can administer my channel resources"
+#: ../../include/message.php:45
+msgid "Unable to determine sender."
msgstr ""
-#: ../../include/permissions.php:49
-msgid "Extremely advanced. Leave this alone unless you know what you are doing"
+#: ../../include/message.php:222
+msgid "Stored post could not be verified."
msgstr ""
#: ../../include/widgets.php:103
@@ -9438,565 +9491,668 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: ../../include/widgets.php:273
+#: ../../include/widgets.php:275
msgid "Remove term"
msgstr ""
-#: ../../include/widgets.php:313 ../../include/widgets.php:432
-#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:94
-msgid "Everything"
+#: ../../include/widgets.php:283 ../../include/features.php:84
+msgid "Saved Searches"
msgstr ""
-#: ../../include/widgets.php:354
+#: ../../include/widgets.php:390
msgid "Archives"
msgstr ""
-#: ../../include/widgets.php:516
+#: ../../include/widgets.php:552
msgid "Refresh"
msgstr ""
-#: ../../include/widgets.php:556
+#: ../../include/widgets.php:592
msgid "Account settings"
msgstr ""
-#: ../../include/widgets.php:562
+#: ../../include/widgets.php:598
msgid "Channel settings"
msgstr ""
-#: ../../include/widgets.php:571
+#: ../../include/widgets.php:607
msgid "Additional features"
msgstr ""
-#: ../../include/widgets.php:578
+#: ../../include/widgets.php:614
msgid "Feature/Addon settings"
msgstr ""
-#: ../../include/widgets.php:584
+#: ../../include/widgets.php:620
msgid "Display settings"
msgstr ""
-#: ../../include/widgets.php:591
+#: ../../include/widgets.php:627
msgid "Manage locations"
msgstr ""
-#: ../../include/widgets.php:600
+#: ../../include/widgets.php:634
msgid "Export channel"
msgstr ""
-#: ../../include/widgets.php:607
+#: ../../include/widgets.php:640
msgid "Connected apps"
msgstr ""
-#: ../../include/widgets.php:631
+#: ../../include/widgets.php:664
msgid "Premium Channel Settings"
msgstr ""
-#: ../../include/widgets.php:660
+#: ../../include/widgets.php:693
msgid "Private Mail Menu"
msgstr ""
-#: ../../include/widgets.php:662
+#: ../../include/widgets.php:695
msgid "Combined View"
msgstr ""
-#: ../../include/widgets.php:694 ../../include/widgets.php:706
+#: ../../include/widgets.php:727 ../../include/widgets.php:739
msgid "Conversations"
msgstr ""
-#: ../../include/widgets.php:698
+#: ../../include/widgets.php:731
msgid "Received Messages"
msgstr ""
-#: ../../include/widgets.php:702
+#: ../../include/widgets.php:735
msgid "Sent Messages"
msgstr ""
-#: ../../include/widgets.php:716
+#: ../../include/widgets.php:749
msgid "No messages."
msgstr ""
-#: ../../include/widgets.php:734
+#: ../../include/widgets.php:767
msgid "Delete conversation"
msgstr ""
-#: ../../include/widgets.php:760
+#: ../../include/widgets.php:793
msgid "Events Tools"
msgstr ""
-#: ../../include/widgets.php:761
+#: ../../include/widgets.php:794
msgid "Export Calendar"
msgstr ""
-#: ../../include/widgets.php:762
+#: ../../include/widgets.php:795
msgid "Import Calendar"
msgstr ""
-#: ../../include/widgets.php:854
+#: ../../include/widgets.php:887
msgid "Overview"
msgstr ""
-#: ../../include/widgets.php:861
+#: ../../include/widgets.php:894
msgid "Chat Members"
msgstr ""
-#: ../../include/widgets.php:883
+#: ../../include/widgets.php:916
msgid "Wiki List"
msgstr ""
-#: ../../include/widgets.php:921
+#: ../../include/widgets.php:954
msgid "Wiki Pages"
msgstr ""
-#: ../../include/widgets.php:956
+#: ../../include/widgets.php:989
msgid "Bookmarked Chatrooms"
msgstr ""
-#: ../../include/widgets.php:979
+#: ../../include/widgets.php:1020
msgid "Suggested Chatrooms"
msgstr ""
-#: ../../include/widgets.php:1125 ../../include/widgets.php:1237
+#: ../../include/widgets.php:1166 ../../include/widgets.php:1278
msgid "photo/image"
msgstr ""
-#: ../../include/widgets.php:1180
+#: ../../include/widgets.php:1221
msgid "Click to show more"
msgstr ""
-#: ../../include/widgets.php:1331
+#: ../../include/widgets.php:1372
msgid "Rating Tools"
msgstr ""
-#: ../../include/widgets.php:1335 ../../include/widgets.php:1337
+#: ../../include/widgets.php:1376 ../../include/widgets.php:1378
msgid "Rate Me"
msgstr ""
-#: ../../include/widgets.php:1340
+#: ../../include/widgets.php:1381
msgid "View Ratings"
msgstr ""
-#: ../../include/widgets.php:1424
+#: ../../include/widgets.php:1465
msgid "Forums"
msgstr ""
-#: ../../include/widgets.php:1453
+#: ../../include/widgets.php:1494
msgid "Tasks"
msgstr ""
-#: ../../include/widgets.php:1462
+#: ../../include/widgets.php:1505
msgid "Documentation"
msgstr ""
-#: ../../include/widgets.php:1464
-msgid "Project/Site Information"
+#: ../../include/widgets.php:1557 ../../include/widgets.php:1595
+msgid "Member registrations waiting for confirmation"
msgstr ""
-#: ../../include/widgets.php:1465
-msgid "For Members"
+#: ../../include/widgets.php:1563
+msgid "Inspect queue"
msgstr ""
-#: ../../include/widgets.php:1466
-msgid "For Administrators"
+#: ../../include/widgets.php:1565
+msgid "DB updates"
msgstr ""
-#: ../../include/widgets.php:1467
-msgid "For Developers"
+#: ../../include/widgets.php:1591
+msgid "Plugin Features"
msgstr ""
-#: ../../include/widgets.php:1491 ../../include/widgets.php:1529
-msgid "Member registrations waiting for confirmation"
+#: ../../include/zot.php:700
+msgid "Invalid data packet"
msgstr ""
-#: ../../include/widgets.php:1497
-msgid "Inspect queue"
+#: ../../include/zot.php:716
+msgid "Unable to verify channel signature"
msgstr ""
-#: ../../include/widgets.php:1499
-msgid "DB updates"
+#: ../../include/zot.php:2329
+#, php-format
+msgid "Unable to verify site signature for %s"
msgstr ""
-#: ../../include/widgets.php:1525
-msgid "Plugin Features"
+#: ../../include/zot.php:3711
+msgid "invalid target signature"
msgstr ""
-#: ../../include/attach.php:248 ../../include/attach.php:334
-msgid "Item was not found."
+#: ../../include/features.php:50
+msgid "General Features"
msgstr ""
-#: ../../include/attach.php:500
-msgid "No source file."
+#: ../../include/features.php:52
+msgid "Content Expiration"
msgstr ""
-#: ../../include/attach.php:522
-msgid "Cannot locate file to replace"
+#: ../../include/features.php:52
+msgid "Remove posts/comments and/or private messages at a future time"
msgstr ""
-#: ../../include/attach.php:540
-msgid "Cannot locate file to revise/update"
+#: ../../include/features.php:53
+msgid "Multiple Profiles"
msgstr ""
-#: ../../include/attach.php:675
-#, php-format
-msgid "File exceeds size limit of %d"
+#: ../../include/features.php:53
+msgid "Ability to create multiple profiles"
msgstr ""
-#: ../../include/attach.php:689
-#, php-format
-msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
+#: ../../include/features.php:54
+msgid "Advanced Profiles"
msgstr ""
-#: ../../include/attach.php:847
-msgid "File upload failed. Possible system limit or action terminated."
+#: ../../include/features.php:54
+msgid "Additional profile sections and selections"
msgstr ""
-#: ../../include/attach.php:860
-msgid "Stored file could not be verified. Upload failed."
+#: ../../include/features.php:55
+msgid "Profile Import/Export"
msgstr ""
-#: ../../include/attach.php:916 ../../include/attach.php:932
-msgid "Path not available."
+#: ../../include/features.php:55
+msgid "Save and load profile details across sites/channels"
msgstr ""
-#: ../../include/attach.php:978 ../../include/attach.php:1130
-msgid "Empty pathname"
+#: ../../include/features.php:56
+msgid "Web Pages"
msgstr ""
-#: ../../include/attach.php:1004
-msgid "duplicate filename or path"
+#: ../../include/features.php:56
+msgid "Provide managed web pages on your channel"
msgstr ""
-#: ../../include/attach.php:1026
-msgid "Path not found."
+#: ../../include/features.php:57
+msgid "Provide a wiki for your channel"
msgstr ""
-#: ../../include/attach.php:1084
-msgid "mkdir failed."
+#: ../../include/features.php:59
+msgid "Private Notes"
msgstr ""
-#: ../../include/attach.php:1088
-msgid "database storage failed."
+#: ../../include/features.php:59
+msgid "Enables a tool to store notes and reminders (note: not encrypted)"
msgstr ""
-#: ../../include/attach.php:1136
-msgid "Empty path"
+#: ../../include/features.php:60
+msgid "Navigation Channel Select"
msgstr ""
-#: ../../include/contact_widgets.php:11
-#, php-format
-msgid "%d invitation available"
-msgid_plural "%d invitations available"
-msgstr[0] ""
-msgstr[1] ""
+#: ../../include/features.php:60
+msgid "Change channels directly from within the navigation dropdown menu"
+msgstr ""
-#: ../../include/contact_widgets.php:19
-msgid "Find Channels"
+#: ../../include/features.php:61
+msgid "Photo Location"
msgstr ""
-#: ../../include/contact_widgets.php:20
-msgid "Enter name or interest"
+#: ../../include/features.php:61
+msgid "If location data is available on uploaded photos, link this to a map."
msgstr ""
-#: ../../include/contact_widgets.php:21
-msgid "Connect/Follow"
+#: ../../include/features.php:62
+msgid "Access Controlled Chatrooms"
msgstr ""
-#: ../../include/contact_widgets.php:22
-msgid "Examples: Robert Morgenstein, Fishing"
+#: ../../include/features.php:62
+msgid "Provide chatrooms and chat services with access control."
msgstr ""
-#: ../../include/contact_widgets.php:26
-msgid "Random Profile"
+#: ../../include/features.php:63
+msgid "Smart Birthdays"
msgstr ""
-#: ../../include/contact_widgets.php:27
-msgid "Invite Friends"
+#: ../../include/features.php:63
+msgid ""
+"Make birthday events timezone aware in case your friends are scattered "
+"across the planet."
msgstr ""
-#: ../../include/contact_widgets.php:29
-msgid "Advanced example: name=fred and country=iceland"
+#: ../../include/features.php:68
+msgid "Post Composition Features"
msgstr ""
-#: ../../include/contact_widgets.php:122
-#, php-format
-msgid "%d connection in common"
-msgid_plural "%d connections in common"
-msgstr[0] ""
-msgstr[1] ""
+#: ../../include/features.php:69
+msgid "Large Photos"
+msgstr ""
-#: ../../include/contact_widgets.php:127
-msgid "show more"
+#: ../../include/features.php:69
+msgid ""
+"Include large (1024px) photo thumbnails in posts. If not enabled, use small "
+"(640px) photo thumbnails"
msgstr ""
-#: ../../include/dir_fns.php:141
-msgid "Directory Options"
+#: ../../include/features.php:70
+msgid "Automatically import channel content from other channels or feeds"
msgstr ""
-#: ../../include/dir_fns.php:143
-msgid "Safe Mode"
+#: ../../include/features.php:71
+msgid "Even More Encryption"
msgstr ""
-#: ../../include/dir_fns.php:144
-msgid "Public Forums Only"
+#: ../../include/features.php:71
+msgid ""
+"Allow optional encryption of content end-to-end with a shared secret key"
msgstr ""
-#: ../../include/dir_fns.php:145
-msgid "This Website Only"
+#: ../../include/features.php:72
+msgid "Enable Voting Tools"
msgstr ""
-#: ../../include/message.php:20
-msgid "No recipient provided."
+#: ../../include/features.php:72
+msgid "Provide a class of post which others can vote on"
msgstr ""
-#: ../../include/message.php:25
-msgid "[no subject]"
+#: ../../include/features.php:73
+msgid "Disable Comments"
msgstr ""
-#: ../../include/message.php:45
-msgid "Unable to determine sender."
+#: ../../include/features.php:73
+msgid "Provide the option to disable comments for a post"
msgstr ""
-#: ../../include/message.php:222
-msgid "Stored post could not be verified."
+#: ../../include/features.php:74
+msgid "Delayed Posting"
msgstr ""
-#: ../../include/auth.php:148
-msgid "Logged out."
+#: ../../include/features.php:74
+msgid "Allow posts to be published at a later date"
msgstr ""
-#: ../../include/auth.php:275
-msgid "Failed authentication"
+#: ../../include/features.php:75
+msgid "Suppress Duplicate Posts/Comments"
msgstr ""
-#: ../../include/auth.php:286
-msgid "Login failed."
+#: ../../include/features.php:75
+msgid ""
+"Prevent posts with identical content to be published with less than two "
+"minutes in between submissions."
msgstr ""
-#: ../../include/connections.php:95
-msgid "New window"
+#: ../../include/features.php:81
+msgid "Network and Stream Filtering"
msgstr ""
-#: ../../include/connections.php:96
-msgid "Open the selected location in a different window or browser tab"
+#: ../../include/features.php:82
+msgid "Search by Date"
msgstr ""
-#: ../../include/connections.php:214
-#, php-format
-msgid "User '%s' deleted"
+#: ../../include/features.php:82
+msgid "Ability to select posts by date ranges"
msgstr ""
-#: ../../include/zot.php:697
-msgid "Invalid data packet"
+#: ../../include/features.php:83
+msgid "Enable management and selection of privacy groups"
msgstr ""
-#: ../../include/zot.php:713
-msgid "Unable to verify channel signature"
+#: ../../include/features.php:84
+msgid "Save search terms for re-use"
msgstr ""
-#: ../../include/zot.php:2326
-#, php-format
-msgid "Unable to verify site signature for %s"
+#: ../../include/features.php:85
+msgid "Network Personal Tab"
msgstr ""
-#: ../../include/zot.php:3703
-msgid "invalid target signature"
+#: ../../include/features.php:85
+msgid "Enable tab to display only Network posts that you've interacted on"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:82
-msgid "Focus (Hubzilla default)"
+#: ../../include/features.php:86
+msgid "Network New Tab"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:103
-msgid "Theme settings"
+#: ../../include/features.php:86
+msgid "Enable tab to display all new Network activity"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:104
-msgid "Select scheme"
+#: ../../include/features.php:87
+msgid "Affinity Tool"
+msgstr ""
+
+#: ../../include/features.php:87
+msgid "Filter stream activity by depth of relationships"
+msgstr ""
+
+#: ../../include/features.php:88
+msgid "Show friend and connection suggestions"
+msgstr ""
+
+#: ../../include/features.php:93
+msgid "Post/Comment Tools"
+msgstr ""
+
+#: ../../include/features.php:94
+msgid "Community Tagging"
+msgstr ""
+
+#: ../../include/features.php:94
+msgid "Ability to tag existing posts"
+msgstr ""
+
+#: ../../include/features.php:95
+msgid "Post Categories"
+msgstr ""
+
+#: ../../include/features.php:95
+msgid "Add categories to your posts"
+msgstr ""
+
+#: ../../include/features.php:96
+msgid "Emoji Reactions"
+msgstr ""
+
+#: ../../include/features.php:96
+msgid "Add emoji reaction ability to posts"
+msgstr ""
+
+#: ../../include/features.php:97
+msgid "Ability to file posts under folders"
+msgstr ""
+
+#: ../../include/features.php:98
+msgid "Dislike Posts"
+msgstr ""
+
+#: ../../include/features.php:98
+msgid "Ability to dislike posts/comments"
+msgstr ""
+
+#: ../../include/features.php:99
+msgid "Star Posts"
+msgstr ""
+
+#: ../../include/features.php:99
+msgid "Ability to mark special posts with a star indicator"
+msgstr ""
+
+#: ../../include/features.php:100
+msgid "Tag Cloud"
+msgstr ""
+
+#: ../../include/features.php:100
+msgid "Provide a personal tag cloud on your channel page"
+msgstr ""
+
+#: ../../include/features.php:109
+msgid "Connection Filtering"
+msgstr ""
+
+#: ../../include/features.php:110
+msgid "Filter incoming posts from connections based on keywords/content"
+msgstr ""
+
+#: ../../include/features.php:120
+msgid "Premium Channel"
+msgstr ""
+
+#: ../../include/features.php:121
+msgid ""
+"Allows you to set restrictions and terms on those that connect with your "
+"channel"
+msgstr ""
+
+#: ../../include/features.php:128
+msgid "Advanced Directory Search"
+msgstr ""
+
+#: ../../include/features.php:129
+msgid "Allows creation of complex directory search queries"
+msgstr ""
+
+#: ../../include/features.php:135
+msgid "Advanced Theme and Layout Settings"
+msgstr ""
+
+#: ../../include/features.php:136
+msgid "Allows fine tuning of themes and page layouts"
+msgstr ""
+
+#: ../../view/theme/redbasic/php/config.php:9
+msgid "Focus (Hubzilla default)"
+msgstr ""
+
+#: ../../view/theme/redbasic/php/config.php:110
+msgid "Theme settings"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:105
+#: ../../view/theme/redbasic/php/config.php:111
msgid "Narrow navbar"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:106
+#: ../../view/theme/redbasic/php/config.php:112
msgid "Navigation bar background color"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:107
+#: ../../view/theme/redbasic/php/config.php:113
msgid "Navigation bar gradient top color"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:108
+#: ../../view/theme/redbasic/php/config.php:114
msgid "Navigation bar gradient bottom color"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:109
+#: ../../view/theme/redbasic/php/config.php:115
msgid "Navigation active button gradient top color"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:110
+#: ../../view/theme/redbasic/php/config.php:116
msgid "Navigation active button gradient bottom color"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:111
+#: ../../view/theme/redbasic/php/config.php:117
msgid "Navigation bar border color "
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:112
+#: ../../view/theme/redbasic/php/config.php:118
msgid "Navigation bar icon color "
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:113
+#: ../../view/theme/redbasic/php/config.php:119
msgid "Navigation bar active icon color "
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:114
+#: ../../view/theme/redbasic/php/config.php:120
msgid "link color"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:115
+#: ../../view/theme/redbasic/php/config.php:121
msgid "Set font-color for banner"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:116
+#: ../../view/theme/redbasic/php/config.php:122
msgid "Set the background color"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:117
+#: ../../view/theme/redbasic/php/config.php:123
msgid "Set the background image"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:118
+#: ../../view/theme/redbasic/php/config.php:124
msgid "Set the background color of items"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:119
+#: ../../view/theme/redbasic/php/config.php:125
msgid "Set the background color of comments"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:120
+#: ../../view/theme/redbasic/php/config.php:126
msgid "Set the border color of comments"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:121
+#: ../../view/theme/redbasic/php/config.php:127
msgid "Set the indent for comments"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:122
+#: ../../view/theme/redbasic/php/config.php:128
msgid "Set the basic color for item icons"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:123
+#: ../../view/theme/redbasic/php/config.php:129
msgid "Set the hover color for item icons"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:124
+#: ../../view/theme/redbasic/php/config.php:130
msgid "Set font-size for the entire application"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:124
+#: ../../view/theme/redbasic/php/config.php:130
msgid "Example: 14px"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:125
+#: ../../view/theme/redbasic/php/config.php:131
msgid "Set font-size for posts and comments"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:126
+#: ../../view/theme/redbasic/php/config.php:132
msgid "Set font-color for posts and comments"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:127
+#: ../../view/theme/redbasic/php/config.php:133
msgid "Set radius of corners"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:128
+#: ../../view/theme/redbasic/php/config.php:134
msgid "Set shadow depth of photos"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:129
+#: ../../view/theme/redbasic/php/config.php:135
msgid "Set maximum width of content region in pixel"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:129
+#: ../../view/theme/redbasic/php/config.php:135
msgid "Leave empty for default width"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:130
+#: ../../view/theme/redbasic/php/config.php:136
msgid "Left align page content"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:131
+#: ../../view/theme/redbasic/php/config.php:137
msgid "Set minimum opacity of nav bar - to hide it"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:132
+#: ../../view/theme/redbasic/php/config.php:138
msgid "Set size of conversation author photo"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:133
+#: ../../view/theme/redbasic/php/config.php:139
msgid "Set size of followup author photos"
msgstr ""
-#: ../../boot.php:1169
+#: ../../boot.php:1195
#, php-format
msgctxt "opensearch"
msgid "Search %1$s (%2$s)"
msgstr ""
-#: ../../boot.php:1169
+#: ../../boot.php:1195
msgctxt "opensearch"
msgid "$Projectname"
msgstr ""
-#: ../../boot.php:1487
+#: ../../boot.php:1513
#, php-format
msgid "Update %s failed. See error logs."
msgstr ""
-#: ../../boot.php:1490
+#: ../../boot.php:1516
#, php-format
msgid "Update Error at %s"
msgstr ""
-#: ../../boot.php:1694
+#: ../../boot.php:1720
msgid ""
"Create an account to access services and applications within the Hubzilla"
msgstr ""
-#: ../../boot.php:1715
+#: ../../boot.php:1741
msgid "Login/Email"
msgstr ""
-#: ../../boot.php:1716
+#: ../../boot.php:1742
msgid "Password"
msgstr ""
-#: ../../boot.php:1717
+#: ../../boot.php:1743
msgid "Remember me"
msgstr ""
-#: ../../boot.php:1720
+#: ../../boot.php:1746
msgid "Forgot your password?"
msgstr ""
-#: ../../boot.php:2286
+#: ../../boot.php:2315
msgid "toggle mobile"
msgstr ""
-#: ../../boot.php:2441
+#: ../../boot.php:2470
msgid "Website SSL certificate is not valid. Please correct."
msgstr ""
-#: ../../boot.php:2444
+#: ../../boot.php:2473
#, php-format
msgid "[hubzilla] Website SSL error for %s"
msgstr ""
-#: ../../boot.php:2548
+#: ../../boot.php:2577
msgid "Cron/Scheduled tasks not running."
msgstr ""
-#: ../../boot.php:2552
+#: ../../boot.php:2581
#, php-format
msgid "[hubzilla] Cron tasks not running on %s"
msgstr ""
diff --git a/util/pconfig b/util/pconfig
index 1afba8306..1847a5a81 100755
--- a/util/pconfig
+++ b/util/pconfig
@@ -54,6 +54,13 @@ EndOfOutput;
}
+if($argc > 2 && strpos($argv[2],'.')) {
+ $x = explode('.',$argv[2]);
+ $argv = [ $argv[0], $argv[1], $x[0], $x[1], (($argc > 3) ? $argv[3] : null) ];
+ $argc = $argc + 1;
+}
+
+
if($argc > 4) {
set_pconfig($argv[1],$argv[2],$argv[3],$argv[4]);
build_sync_packet($argv[1]);
diff --git a/util/typo.php b/util/typo.php
index e9a9be5f0..3f6ffb166 100644
--- a/util/typo.php
+++ b/util/typo.php
@@ -42,6 +42,13 @@
include_once($file);
}
+ echo "Directory: Zotlabs/Module (sub-modules)\n";
+ $files = glob('Zotlabs/Module/*/*.php');
+ foreach($files as $file) {
+ echo $file . "\n";
+ include_once($file);
+ }
+
echo "Directory: include/photo\n";
$files = glob('include/photo/*.php');
diff --git a/view/css/conversation.css b/view/css/conversation.css
index 5af0c55e7..e8b2f926b 100644
--- a/view/css/conversation.css
+++ b/view/css/conversation.css
@@ -1,6 +1,6 @@
/* jot */
-.jothidden input {
+.jothidden input[type="text"] {
border: 0px;
margin: 0px;
height: 39px;
@@ -46,6 +46,13 @@
box-shadow: inset 0 0px 7px #5cb85c;
}
+.comment-edit-text-empty.hover, .comment-edit-text-full.hover {
+ background-color: aliceblue;
+ opacity: 0.5;
+ box-shadow: inset 0 0px 7px #5cb85c;
+}
+
+
.jot-attachment {
border: 0px;
padding: 10px;
@@ -70,6 +77,10 @@
margin-bottom: 30px;
}
+#profile-jot-plugin-wrapper {
+ margin-top: 10px;
+}
+
#profile-rotator-wrapper {
float: left;
}
@@ -78,14 +89,6 @@
padding: 15px 0px 0px 15px;
}
-.profile-jot-net {
- float: left;
- margin-right: 10px;
- margin-top: 5px;
- margin-bottom: 5px;
- padding: 5px;
-}
-
/* conversation */
.thread-wrapper.toplevel_item {
@@ -323,3 +326,17 @@ img.smiley.emoji:hover {
width: 32px;
height: 32px;
}
+
+
+.checklist input {
+ margin: 0px;
+ vertical-align: middle;
+}
+
+.combobox {
+ padding: 15px;
+}
+
+#filer_save {
+ margin-left: 15px;
+}
diff --git a/view/css/mod_webpages.css b/view/css/mod_webpages.css
index f72f632dd..805d95dc2 100644
--- a/view/css/mod_webpages.css
+++ b/view/css/mod_webpages.css
@@ -119,3 +119,77 @@
opacity: 1;
}
+
+/* SQUARED THREE */
+.squaredThree {
+ width: 14px;
+ height: 14px;
+ background: #fcfff4;
+
+ background: -webkit-linear-gradient(top, #fcfff4 0%, #dfe5d7 40%, #b3bead 100%);
+ background: -moz-linear-gradient(top, #fcfff4 0%, #dfe5d7 40%, #b3bead 100%);
+ background: -o-linear-gradient(top, #fcfff4 0%, #dfe5d7 40%, #b3bead 100%);
+ background: -ms-linear-gradient(top, #fcfff4 0%, #dfe5d7 40%, #b3bead 100%);
+ background: linear-gradient(top, #fcfff4 0%, #dfe5d7 40%, #b3bead 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fcfff4', endColorstr='#b3bead',GradientType=0 );
+ margin: 5px auto;
+
+ -webkit-box-shadow: inset 0px 1px 1px white, 0px 1px 3px rgba(0,0,0,0.5);
+ -moz-box-shadow: inset 0px 1px 1px white, 0px 1px 3px rgba(0,0,0,0.5);
+ box-shadow: inset 0px 1px 1px white, 0px 1px 3px rgba(0,0,0,0.5);
+ position: relative;
+}
+
+.squaredThree label {
+ cursor: pointer;
+ position: absolute;
+ width: 10px;
+ height: 10px;
+ left: 2px;
+ top: 2px;
+
+ -webkit-box-shadow: inset 0px 1px 1px rgba(0,0,0,0.5), 0px 1px 0px rgba(255,255,255,1);
+ -moz-box-shadow: inset 0px 1px 1px rgba(0,0,0,0.5), 0px 1px 0px rgba(255,255,255,1);
+ box-shadow: inset 0px 1px 1px rgba(0,0,0,0.5), 0px 1px 0px rgba(255,255,255,1);
+
+ background: -webkit-linear-gradient(top, #222 0%, #45484d 100%);
+ background: -moz-linear-gradient(top, #222 0%, #45484d 100%);
+ background: -o-linear-gradient(top, #222 0%, #45484d 100%);
+ background: -ms-linear-gradient(top, #222 0%, #45484d 100%);
+ background: linear-gradient(top, #222 0%, #45484d 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#222', endColorstr='#45484d',GradientType=0 );
+}
+
+.squaredThree label:after {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
+ filter: alpha(opacity=0);
+ opacity: 0;
+ content: '';
+ position: absolute;
+ width: 9px;
+ height: 5px;
+ background: transparent;
+ top: 2px;
+ left: 2px;
+ border: 3px solid #fcfff4;
+ border-top: none;
+ border-right: none;
+
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -o-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+.squaredThree label:hover::after {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
+ filter: alpha(opacity=30);
+ opacity: 0.3;
+}
+
+.squaredThree input[type=checkbox]:checked + label:after {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
+ filter: alpha(opacity=100);
+ opacity: 1;
+} \ No newline at end of file
diff --git a/view/es-es/hmessages.po b/view/es-es/hmessages.po
index 0c3c85159..0e6b25df5 100644
--- a/view/es-es/hmessages.po
+++ b/view/es-es/hmessages.po
@@ -13,8 +13,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Redmatrix\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-07-22 00:02-0700\n"
-"PO-Revision-Date: 2016-07-29 07:05+0000\n"
+"POT-Creation-Date: 2016-08-26 00:02-0700\n"
+"PO-Revision-Date: 2016-08-31 06:34+0000\n"
"Last-Translator: Manuel Jiménez Friaza <mjfriaza@openmailbox.org>\n"
"Language-Team: Spanish (Spain) (http://www.transifex.com/Friendica/red-matrix/language/es_ES/)\n"
"MIME-Version: 1.0\n"
@@ -24,83 +24,84 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../../Zotlabs/Access/PermissionRoles.php:182
-#: ../../include/permissions.php:904
+#: ../../include/permissions.php:939
msgid "Social Networking"
msgstr "Redes sociales"
#: ../../Zotlabs/Access/PermissionRoles.php:183
-#: ../../include/permissions.php:904
+#: ../../include/permissions.php:939
msgid "Social - Mostly Public"
msgstr "Social - Público en su mayor parte"
#: ../../Zotlabs/Access/PermissionRoles.php:184
-#: ../../include/permissions.php:904
+#: ../../include/permissions.php:939
msgid "Social - Restricted"
msgstr "Social - Restringido"
#: ../../Zotlabs/Access/PermissionRoles.php:185
-#: ../../include/permissions.php:904
+#: ../../include/permissions.php:939
msgid "Social - Private"
msgstr "Social - Privado"
#: ../../Zotlabs/Access/PermissionRoles.php:188
-#: ../../include/permissions.php:905
+#: ../../include/permissions.php:940
msgid "Community Forum"
msgstr "Foro de discusión"
#: ../../Zotlabs/Access/PermissionRoles.php:189
-#: ../../include/permissions.php:905
+#: ../../include/permissions.php:940
msgid "Forum - Mostly Public"
msgstr "Foro - Público en su mayor parte"
#: ../../Zotlabs/Access/PermissionRoles.php:190
-#: ../../include/permissions.php:905
+#: ../../include/permissions.php:940
msgid "Forum - Restricted"
msgstr "Foro - Restringido"
#: ../../Zotlabs/Access/PermissionRoles.php:191
-#: ../../include/permissions.php:905
+#: ../../include/permissions.php:940
msgid "Forum - Private"
msgstr "Foro - Privado"
#: ../../Zotlabs/Access/PermissionRoles.php:194
-#: ../../include/permissions.php:906
+#: ../../include/permissions.php:941
msgid "Feed Republish"
msgstr "Republicar un \"feed\""
#: ../../Zotlabs/Access/PermissionRoles.php:195
-#: ../../include/permissions.php:906
+#: ../../include/permissions.php:941
msgid "Feed - Mostly Public"
msgstr "Feed - Público en su mayor parte"
#: ../../Zotlabs/Access/PermissionRoles.php:196
-#: ../../include/permissions.php:906
+#: ../../include/permissions.php:941
msgid "Feed - Restricted"
msgstr "Feed - Restringido"
#: ../../Zotlabs/Access/PermissionRoles.php:199
-#: ../../include/permissions.php:907
+#: ../../include/permissions.php:942
msgid "Special Purpose"
msgstr "Propósito especial"
#: ../../Zotlabs/Access/PermissionRoles.php:200
-#: ../../include/permissions.php:907
+#: ../../include/permissions.php:942
msgid "Special - Celebrity/Soapbox"
msgstr "Especial - Celebridad / Tribuna improvisada"
#: ../../Zotlabs/Access/PermissionRoles.php:201
-#: ../../include/permissions.php:907
+#: ../../include/permissions.php:942
msgid "Special - Group Repository"
msgstr "Especial - Repositorio de grupo"
-#: ../../Zotlabs/Access/PermissionRoles.php:204 ../../include/selectors.php:49
+#: ../../Zotlabs/Access/PermissionRoles.php:204
+#: ../../include/permissions.php:943 ../../include/selectors.php:49
#: ../../include/selectors.php:66 ../../include/selectors.php:104
-#: ../../include/selectors.php:140 ../../include/permissions.php:908
+#: ../../include/selectors.php:140
msgid "Other"
msgstr "Otro"
#: ../../Zotlabs/Access/PermissionRoles.php:205
-#: ../../include/permissions.php:908
+#: ../../include/permissions.php:943
msgid "Custom/Expert Mode"
msgstr "Modo personalizado/experto"
@@ -108,19 +109,19 @@ msgstr "Modo personalizado/experto"
msgid "Can view my channel stream and posts"
msgstr "Pueden verse la actividad y publicaciones de mi canal"
-#: ../../Zotlabs/Access/Permissions.php:31 ../../include/permissions.php:33
+#: ../../Zotlabs/Access/Permissions.php:31 ../../include/permissions.php:36
msgid "Can send me their channel stream and posts"
msgstr "Se me pueden enviar entradas y contenido de un canal"
-#: ../../Zotlabs/Access/Permissions.php:32 ../../include/permissions.php:27
+#: ../../Zotlabs/Access/Permissions.php:32 ../../include/permissions.php:30
msgid "Can view my default channel profile"
msgstr "Puede verse mi perfil de canal predeterminado."
-#: ../../Zotlabs/Access/Permissions.php:33 ../../include/permissions.php:28
+#: ../../Zotlabs/Access/Permissions.php:33 ../../include/permissions.php:31
msgid "Can view my connections"
msgstr "Pueden verse mis conexiones"
-#: ../../Zotlabs/Access/Permissions.php:34 ../../include/permissions.php:29
+#: ../../Zotlabs/Access/Permissions.php:34 ../../include/permissions.php:32
msgid "Can view my file storage and photos"
msgstr "Pueden verse mi repositorio de ficheros y mis fotos"
@@ -140,11 +141,11 @@ msgstr "Pueden crearse / modificarse páginas personales en mi canal"
msgid "Can post on my channel (wall) page"
msgstr "Pueden crearse entradas en mi página de inicio del canal (“muroâ€)"
-#: ../../Zotlabs/Access/Permissions.php:39 ../../include/permissions.php:35
+#: ../../Zotlabs/Access/Permissions.php:39 ../../include/permissions.php:38
msgid "Can comment on or like my posts"
msgstr "Pueden publicarse comentarios en mis publicaciones o marcar mis entradas con 'me gusta'."
-#: ../../Zotlabs/Access/Permissions.php:40 ../../include/permissions.php:36
+#: ../../Zotlabs/Access/Permissions.php:40 ../../include/permissions.php:39
msgid "Can send me private mail messages"
msgstr "Se me pueden enviar mensajes privados"
@@ -160,7 +161,7 @@ msgstr "Pueden reenviarse publicaciones a todas las conexiones de mi canal a tra
msgid "Can chat with me"
msgstr "Se puede chatear conmigo"
-#: ../../Zotlabs/Access/Permissions.php:44 ../../include/permissions.php:44
+#: ../../Zotlabs/Access/Permissions.php:44 ../../include/permissions.php:47
msgid "Can source my public posts in derived channels"
msgstr "Pueden utilizarse mis publicaciones públicas como origen de contenidos en canales derivados"
@@ -172,7 +173,7 @@ msgstr "Se puede administrar mi canal"
msgid "parent"
msgstr "padre"
-#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2605
+#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2657
msgid "Collection"
msgstr "Colección"
@@ -196,17 +197,17 @@ msgstr "Programar bandeja de entrada"
msgid "Schedule Outbox"
msgstr "Programar bandeja de salida"
-#: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Module/Photos.php:796
-#: ../../Zotlabs/Module/Photos.php:1241
+#: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Module/Photos.php:800
+#: ../../Zotlabs/Module/Photos.php:1249
#: ../../Zotlabs/Module/Embedphotos.php:147 ../../Zotlabs/Lib/Apps.php:490
-#: ../../Zotlabs/Lib/Apps.php:565 ../../include/conversation.php:1035
-#: ../../include/widgets.php:1599
+#: ../../Zotlabs/Lib/Apps.php:565 ../../include/widgets.php:1613
+#: ../../include/conversation.php:1033
msgid "Unknown"
msgstr "Desconocido"
#: ../../Zotlabs/Storage/Browser.php:226 ../../Zotlabs/Module/Fbrowser.php:85
-#: ../../Zotlabs/Lib/Apps.php:217 ../../include/nav.php:93
-#: ../../include/conversation.php:1654
+#: ../../Zotlabs/Lib/Apps.php:217 ../../include/conversation.php:1672
+#: ../../include/nav.php:95
msgid "Files"
msgstr "Ficheros"
@@ -218,25 +219,24 @@ msgstr "Total"
msgid "Shared"
msgstr "Compartido"
-#: ../../Zotlabs/Storage/Browser.php:230 ../../Zotlabs/Storage/Browser.php:306
-#: ../../Zotlabs/Module/Layouts.php:184 ../../Zotlabs/Module/Menu.php:118
+#: ../../Zotlabs/Storage/Browser.php:230 ../../Zotlabs/Storage/Browser.php:323
+#: ../../Zotlabs/Module/Menu.php:118 ../../Zotlabs/Module/Webpages.php:216
#: ../../Zotlabs/Module/New_channel.php:142
-#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Webpages.php:193
+#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Layouts.php:184
msgid "Create"
msgstr "Crear"
-#: ../../Zotlabs/Storage/Browser.php:231 ../../Zotlabs/Storage/Browser.php:308
+#: ../../Zotlabs/Storage/Browser.php:231 ../../Zotlabs/Storage/Browser.php:325
#: ../../Zotlabs/Module/Cover_photo.php:357
-#: ../../Zotlabs/Module/Photos.php:823 ../../Zotlabs/Module/Photos.php:1362
+#: ../../Zotlabs/Module/Photos.php:827 ../../Zotlabs/Module/Photos.php:1370
#: ../../Zotlabs/Module/Profile_photo.php:390
-#: ../../Zotlabs/Module/Embedphotos.php:159 ../../include/widgets.php:1612
+#: ../../Zotlabs/Module/Embedphotos.php:159 ../../include/widgets.php:1626
msgid "Upload"
msgstr "Subir"
-#: ../../Zotlabs/Storage/Browser.php:235 ../../Zotlabs/Module/Chat.php:247
-#: ../../Zotlabs/Module/Admin.php:1223 ../../Zotlabs/Module/Settings.php:646
-#: ../../Zotlabs/Module/Settings.php:672
-#: ../../Zotlabs/Module/Sharedwithme.php:99
+#: ../../Zotlabs/Storage/Browser.php:235 ../../Zotlabs/Module/Settings.php:684
+#: ../../Zotlabs/Module/Settings.php:710 ../../Zotlabs/Module/Admin.php:1236
+#: ../../Zotlabs/Module/Sharedwithme.php:99 ../../Zotlabs/Module/Chat.php:250
msgid "Name"
msgstr "Nombre"
@@ -245,7 +245,7 @@ msgid "Type"
msgstr "Tipo"
#: ../../Zotlabs/Storage/Browser.php:237
-#: ../../Zotlabs/Module/Sharedwithme.php:101 ../../include/text.php:1324
+#: ../../Zotlabs/Module/Sharedwithme.php:101 ../../include/text.php:1326
msgid "Size"
msgstr "Tamaño"
@@ -254,124 +254,121 @@ msgstr "Tamaño"
msgid "Last Modified"
msgstr "Última modificación"
-#: ../../Zotlabs/Storage/Browser.php:240 ../../Zotlabs/Module/Editpost.php:84
+#: ../../Zotlabs/Storage/Browser.php:240
#: ../../Zotlabs/Module/Connections.php:290
#: ../../Zotlabs/Module/Connections.php:310
-#: ../../Zotlabs/Module/Editlayout.php:114
-#: ../../Zotlabs/Module/Editwebpage.php:145
-#: ../../Zotlabs/Module/Layouts.php:192 ../../Zotlabs/Module/Menu.php:112
-#: ../../Zotlabs/Module/Admin.php:2113 ../../Zotlabs/Module/Blocks.php:160
#: ../../Zotlabs/Module/Editblock.php:109
-#: ../../Zotlabs/Module/Settings.php:706 ../../Zotlabs/Module/Thing.php:260
-#: ../../Zotlabs/Module/Webpages.php:194 ../../Zotlabs/Lib/Apps.php:341
-#: ../../Zotlabs/Lib/ThreadItem.php:106 ../../include/page_widgets.php:9
-#: ../../include/page_widgets.php:39 ../../include/channel.php:976
-#: ../../include/channel.php:980 ../../include/menu.php:108
+#: ../../Zotlabs/Module/Editlayout.php:114
+#: ../../Zotlabs/Module/Editwebpage.php:145 ../../Zotlabs/Module/Menu.php:112
+#: ../../Zotlabs/Module/Settings.php:744 ../../Zotlabs/Module/Admin.php:2127
+#: ../../Zotlabs/Module/Webpages.php:217 ../../Zotlabs/Module/Blocks.php:160
+#: ../../Zotlabs/Module/Layouts.php:192 ../../Zotlabs/Module/Editpost.php:84
+#: ../../Zotlabs/Module/Thing.php:260 ../../Zotlabs/Lib/Apps.php:341
+#: ../../Zotlabs/Lib/ThreadItem.php:106 ../../include/channel.php:959
+#: ../../include/channel.php:963 ../../include/page_widgets.php:9
+#: ../../include/page_widgets.php:39 ../../include/menu.php:113
msgid "Edit"
msgstr "Editar"
-#: ../../Zotlabs/Storage/Browser.php:241 ../../Zotlabs/Module/Connedit.php:602
+#: ../../Zotlabs/Storage/Browser.php:241
#: ../../Zotlabs/Module/Connections.php:263
+#: ../../Zotlabs/Module/Editblock.php:134
#: ../../Zotlabs/Module/Editlayout.php:137
-#: ../../Zotlabs/Module/Editwebpage.php:169 ../../Zotlabs/Module/Group.php:177
-#: ../../Zotlabs/Module/Photos.php:1171 ../../Zotlabs/Module/Admin.php:1039
-#: ../../Zotlabs/Module/Admin.php:1213 ../../Zotlabs/Module/Admin.php:2114
-#: ../../Zotlabs/Module/Blocks.php:162 ../../Zotlabs/Module/Editblock.php:134
-#: ../../Zotlabs/Module/Settings.php:707 ../../Zotlabs/Module/Thing.php:261
-#: ../../Zotlabs/Module/Webpages.php:196 ../../Zotlabs/Lib/Apps.php:342
-#: ../../Zotlabs/Lib/ThreadItem.php:126 ../../include/conversation.php:660
+#: ../../Zotlabs/Module/Editwebpage.php:170
+#: ../../Zotlabs/Module/Settings.php:745 ../../Zotlabs/Module/Group.php:177
+#: ../../Zotlabs/Module/Photos.php:1179 ../../Zotlabs/Module/Admin.php:1052
+#: ../../Zotlabs/Module/Admin.php:1226 ../../Zotlabs/Module/Admin.php:2128
+#: ../../Zotlabs/Module/Webpages.php:219 ../../Zotlabs/Module/Blocks.php:162
+#: ../../Zotlabs/Module/Connedit.php:607 ../../Zotlabs/Module/Thing.php:261
+#: ../../Zotlabs/Lib/Apps.php:342 ../../Zotlabs/Lib/ThreadItem.php:126
+#: ../../include/conversation.php:660
msgid "Delete"
msgstr "Eliminar"
-#: ../../Zotlabs/Storage/Browser.php:285
+#: ../../Zotlabs/Storage/Browser.php:301
#, php-format
msgid "You are using %1$s of your available file storage."
msgstr "Está usando %1$s de su espacio disponible para ficheros."
-#: ../../Zotlabs/Storage/Browser.php:290
+#: ../../Zotlabs/Storage/Browser.php:306
#, php-format
msgid "You are using %1$s of %2$s available file storage. (%3$s&#37;)"
msgstr "Está usando %1$s de %2$s que tiene a su disposición para ficheros. (%3$s&#37;)"
-#: ../../Zotlabs/Storage/Browser.php:302
+#: ../../Zotlabs/Storage/Browser.php:317
msgid "WARNING:"
msgstr "ATENCIÓN:"
-#: ../../Zotlabs/Storage/Browser.php:305
+#: ../../Zotlabs/Storage/Browser.php:322
msgid "Create new folder"
msgstr "Crear nueva carpeta"
-#: ../../Zotlabs/Storage/Browser.php:307
+#: ../../Zotlabs/Storage/Browser.php:324
msgid "Upload file"
msgstr "Subir fichero"
-#: ../../Zotlabs/Web/WebServer.php:127 ../../Zotlabs/Module/Dreport.php:10
-#: ../../Zotlabs/Module/Dreport.php:66 ../../Zotlabs/Module/Group.php:72
-#: ../../Zotlabs/Module/Like.php:283 ../../Zotlabs/Module/Import_items.php:114
-#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Subthread.php:62
-#: ../../include/items.php:384
-msgid "Permission denied"
-msgstr "Permiso denegado"
+#: ../../Zotlabs/Storage/Browser.php:337
+msgid "Drop files here to immediately upload"
+msgstr "Arrastre los ficheros aquí para subirlos de forma inmediata"
-#: ../../Zotlabs/Web/WebServer.php:128 ../../Zotlabs/Web/Router.php:65
-#: ../../Zotlabs/Module/Achievements.php:34
-#: ../../Zotlabs/Module/Connedit.php:390 ../../Zotlabs/Module/Id.php:76
-#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Events.php:264
-#: ../../Zotlabs/Module/Bookmarks.php:61 ../../Zotlabs/Module/Editpost.php:17
+#: ../../Zotlabs/Web/Router.php:65 ../../Zotlabs/Web/WebServer.php:128
+#: ../../Zotlabs/Module/Achievements.php:34 ../../Zotlabs/Module/Api.php:12
+#: ../../Zotlabs/Module/Rate.php:113 ../../Zotlabs/Module/Authtest.php:16
+#: ../../Zotlabs/Module/Register.php:77 ../../Zotlabs/Module/Bookmarks.php:61
#: ../../Zotlabs/Module/Page.php:35 ../../Zotlabs/Module/Page.php:91
-#: ../../Zotlabs/Module/Connections.php:33
+#: ../../Zotlabs/Module/Network.php:15 ../../Zotlabs/Module/Connections.php:33
#: ../../Zotlabs/Module/Cover_photo.php:277
-#: ../../Zotlabs/Module/Cover_photo.php:290 ../../Zotlabs/Module/Chat.php:100
-#: ../../Zotlabs/Module/Chat.php:105 ../../Zotlabs/Module/Editlayout.php:67
+#: ../../Zotlabs/Module/Cover_photo.php:290 ../../Zotlabs/Module/Setup.php:219
+#: ../../Zotlabs/Module/Editblock.php:67
+#: ../../Zotlabs/Module/Editlayout.php:67
#: ../../Zotlabs/Module/Editlayout.php:90
#: ../../Zotlabs/Module/Editwebpage.php:68
#: ../../Zotlabs/Module/Editwebpage.php:89
#: ../../Zotlabs/Module/Editwebpage.php:104
-#: ../../Zotlabs/Module/Editwebpage.php:126 ../../Zotlabs/Module/Group.php:13
+#: ../../Zotlabs/Module/Editwebpage.php:126 ../../Zotlabs/Module/Menu.php:78
#: ../../Zotlabs/Module/Appman.php:75 ../../Zotlabs/Module/Pdledit.php:26
#: ../../Zotlabs/Module/Filestorage.php:23
#: ../../Zotlabs/Module/Filestorage.php:78
#: ../../Zotlabs/Module/Filestorage.php:93
#: ../../Zotlabs/Module/Filestorage.php:120
-#: ../../Zotlabs/Module/Layouts.php:71 ../../Zotlabs/Module/Layouts.php:78
-#: ../../Zotlabs/Module/Layouts.php:89 ../../Zotlabs/Module/Like.php:181
-#: ../../Zotlabs/Module/Profiles.php:203 ../../Zotlabs/Module/Profiles.php:601
-#: ../../Zotlabs/Module/Item.php:213 ../../Zotlabs/Module/Item.php:221
-#: ../../Zotlabs/Module/Item.php:1071 ../../Zotlabs/Module/Photos.php:73
-#: ../../Zotlabs/Module/Invite.php:17 ../../Zotlabs/Module/Invite.php:91
-#: ../../Zotlabs/Module/Locs.php:87 ../../Zotlabs/Module/Mail.php:121
-#: ../../Zotlabs/Module/Manage.php:10 ../../Zotlabs/Module/Menu.php:78
-#: ../../Zotlabs/Module/Message.php:18 ../../Zotlabs/Module/Mood.php:116
-#: ../../Zotlabs/Module/Network.php:15 ../../Zotlabs/Module/Channel.php:104
-#: ../../Zotlabs/Module/Channel.php:225 ../../Zotlabs/Module/Channel.php:266
-#: ../../Zotlabs/Module/Mitem.php:115 ../../Zotlabs/Module/New_channel.php:77
+#: ../../Zotlabs/Module/Settings.php:664 ../../Zotlabs/Module/Group.php:13
+#: ../../Zotlabs/Module/Photos.php:73 ../../Zotlabs/Module/Block.php:26
+#: ../../Zotlabs/Module/Block.php:76 ../../Zotlabs/Module/Invite.php:17
+#: ../../Zotlabs/Module/Invite.php:91 ../../Zotlabs/Module/Locs.php:87
+#: ../../Zotlabs/Module/Like.php:181 ../../Zotlabs/Module/Manage.php:10
+#: ../../Zotlabs/Module/Mitem.php:115 ../../Zotlabs/Module/Message.php:18
+#: ../../Zotlabs/Module/Mood.php:116 ../../Zotlabs/Module/Profiles.php:203
+#: ../../Zotlabs/Module/Profiles.php:601 ../../Zotlabs/Module/Webpages.php:95
+#: ../../Zotlabs/Module/Events.php:264 ../../Zotlabs/Module/New_channel.php:77
#: ../../Zotlabs/Module/New_channel.php:104
#: ../../Zotlabs/Module/Notifications.php:70 ../../Zotlabs/Module/Poke.php:137
#: ../../Zotlabs/Module/Profile.php:68 ../../Zotlabs/Module/Profile.php:76
-#: ../../Zotlabs/Module/Block.php:26 ../../Zotlabs/Module/Block.php:76
+#: ../../Zotlabs/Module/Channel.php:104 ../../Zotlabs/Module/Channel.php:227
+#: ../../Zotlabs/Module/Channel.php:268 ../../Zotlabs/Module/Blocks.php:73
+#: ../../Zotlabs/Module/Blocks.php:80 ../../Zotlabs/Module/Layouts.php:71
+#: ../../Zotlabs/Module/Layouts.php:78 ../../Zotlabs/Module/Layouts.php:89
#: ../../Zotlabs/Module/Profile_photo.php:265
#: ../../Zotlabs/Module/Profile_photo.php:278
-#: ../../Zotlabs/Module/Blocks.php:73 ../../Zotlabs/Module/Blocks.php:80
-#: ../../Zotlabs/Module/Rate.php:113 ../../Zotlabs/Module/Editblock.php:67
-#: ../../Zotlabs/Module/Common.php:39 ../../Zotlabs/Module/Register.php:77
-#: ../../Zotlabs/Module/Regmod.php:21
+#: ../../Zotlabs/Module/Common.php:39 ../../Zotlabs/Module/Mail.php:121
+#: ../../Zotlabs/Module/Connedit.php:395 ../../Zotlabs/Module/Regmod.php:21
+#: ../../Zotlabs/Module/Editpost.php:17
#: ../../Zotlabs/Module/Service_limits.php:11
-#: ../../Zotlabs/Module/Settings.php:626 ../../Zotlabs/Module/Setup.php:215
-#: ../../Zotlabs/Module/Sharedwithme.php:11 ../../Zotlabs/Module/Thing.php:274
-#: ../../Zotlabs/Module/Thing.php:294 ../../Zotlabs/Module/Thing.php:331
+#: ../../Zotlabs/Module/Thing.php:274 ../../Zotlabs/Module/Thing.php:294
+#: ../../Zotlabs/Module/Thing.php:335 ../../Zotlabs/Module/Item.php:214
+#: ../../Zotlabs/Module/Item.php:222 ../../Zotlabs/Module/Item.php:1073
+#: ../../Zotlabs/Module/Sharedwithme.php:11
#: ../../Zotlabs/Module/Sources.php:74 ../../Zotlabs/Module/Suggest.php:30
-#: ../../Zotlabs/Module/Webpages.php:73
#: ../../Zotlabs/Module/Viewconnections.php:28
#: ../../Zotlabs/Module/Viewconnections.php:33
-#: ../../Zotlabs/Module/Viewsrc.php:18 ../../Zotlabs/Module/Api.php:13
-#: ../../Zotlabs/Module/Api.php:18 ../../Zotlabs/Lib/Chatroom.php:137
-#: ../../include/photos.php:27 ../../include/attach.php:141
-#: ../../include/attach.php:189 ../../include/attach.php:252
-#: ../../include/attach.php:266 ../../include/attach.php:273
-#: ../../include/attach.php:338 ../../include/attach.php:352
-#: ../../include/attach.php:359 ../../include/attach.php:439
-#: ../../include/attach.php:901 ../../include/attach.php:972
-#: ../../include/attach.php:1124 ../../include/items.php:3448
+#: ../../Zotlabs/Module/Viewsrc.php:18 ../../Zotlabs/Module/Chat.php:100
+#: ../../Zotlabs/Module/Chat.php:105 ../../Zotlabs/Lib/Chatroom.php:137
+#: ../../include/items.php:3477 ../../include/photos.php:27
+#: ../../include/attach.php:142 ../../include/attach.php:190
+#: ../../include/attach.php:253 ../../include/attach.php:267
+#: ../../include/attach.php:274 ../../include/attach.php:339
+#: ../../include/attach.php:353 ../../include/attach.php:360
+#: ../../include/attach.php:440 ../../include/attach.php:902
+#: ../../include/attach.php:973 ../../include/attach.php:1125
msgid "Permission denied."
msgstr "Acceso denegado."
@@ -379,31 +376,40 @@ msgstr "Acceso denegado."
msgid "Not Found"
msgstr "No encontrado"
-#: ../../Zotlabs/Web/Router.php:149 ../../Zotlabs/Module/Display.php:118
+#: ../../Zotlabs/Web/Router.php:149 ../../Zotlabs/Module/Display.php:120
#: ../../Zotlabs/Module/Page.php:94 ../../Zotlabs/Module/Help.php:97
#: ../../Zotlabs/Module/Block.php:79
msgid "Page not found."
msgstr "Página no encontrada."
+#: ../../Zotlabs/Web/WebServer.php:127 ../../Zotlabs/Module/Dreport.php:10
+#: ../../Zotlabs/Module/Dreport.php:66 ../../Zotlabs/Module/Group.php:72
+#: ../../Zotlabs/Module/Import_items.php:114 ../../Zotlabs/Module/Like.php:283
+#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Subthread.php:62
+#: ../../include/items.php:384
+msgid "Permission denied"
+msgstr "Permiso denegado"
+
#: ../../Zotlabs/Zot/Auth.php:138
msgid ""
"Remote authentication blocked. You are logged into this site locally. Please"
" logout and retry."
msgstr "La autenticación desde su servidor está bloqueada. Ha iniciado sesión localmente. Por favor, salga de la sesión y vuelva a intentarlo."
-#: ../../Zotlabs/Zot/Auth.php:246 ../../Zotlabs/Module/Openid.php:76
-#: ../../Zotlabs/Module/Openid.php:183
+#: ../../Zotlabs/Zot/Auth.php:246
#, php-format
msgid "Welcome %s. Remote authentication successful."
msgstr "Bienvenido %s. La identificación desde su servidor se ha llevado a cabo correctamente."
#: ../../Zotlabs/Module/Achievements.php:15
-#: ../../Zotlabs/Module/Connect.php:17 ../../Zotlabs/Module/Editlayout.php:31
-#: ../../Zotlabs/Module/Editwebpage.php:32 ../../Zotlabs/Module/Hcard.php:12
-#: ../../Zotlabs/Module/Filestorage.php:59 ../../Zotlabs/Module/Layouts.php:31
+#: ../../Zotlabs/Module/Editblock.php:31
+#: ../../Zotlabs/Module/Editlayout.php:31
+#: ../../Zotlabs/Module/Editwebpage.php:32
+#: ../../Zotlabs/Module/Filestorage.php:59
+#: ../../Zotlabs/Module/Webpages.php:33 ../../Zotlabs/Module/Hcard.php:12
#: ../../Zotlabs/Module/Profile.php:20 ../../Zotlabs/Module/Blocks.php:33
-#: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Webpages.php:33
-#: ../../include/channel.php:876
+#: ../../Zotlabs/Module/Layouts.php:31 ../../Zotlabs/Module/Connect.php:17
+#: ../../include/channel.php:859
msgid "Requested profile is not available."
msgstr "El perfil solicitado no está disponible."
@@ -419,850 +425,373 @@ msgstr "Ausente"
msgid "Online"
msgstr "Conectado/a"
-#: ../../Zotlabs/Module/Connedit.php:80
-msgid "Could not access contact record."
-msgstr "No se ha podido acceder al registro de contacto."
-
-#: ../../Zotlabs/Module/Connedit.php:104
-msgid "Could not locate selected profile."
-msgstr "No se ha podido localizar el perfil seleccionado."
-
-#: ../../Zotlabs/Module/Connedit.php:248
-msgid "Connection updated."
-msgstr "Conexión actualizada."
-
-#: ../../Zotlabs/Module/Connedit.php:250
-msgid "Failed to update connection record."
-msgstr "Error al actualizar el registro de la conexión."
-
-#: ../../Zotlabs/Module/Connedit.php:300
-msgid "is now connected to"
-msgstr "ahora está conectado/a"
-
-#: ../../Zotlabs/Module/Connedit.php:403 ../../Zotlabs/Module/Connedit.php:685
-#: ../../Zotlabs/Module/Events.php:458 ../../Zotlabs/Module/Events.php:459
-#: ../../Zotlabs/Module/Events.php:468
-#: ../../Zotlabs/Module/Filestorage.php:156
-#: ../../Zotlabs/Module/Filestorage.php:164
-#: ../../Zotlabs/Module/Profiles.php:647 ../../Zotlabs/Module/Photos.php:664
-#: ../../Zotlabs/Module/Menu.php:100 ../../Zotlabs/Module/Menu.php:157
-#: ../../Zotlabs/Module/Mitem.php:158 ../../Zotlabs/Module/Mitem.php:159
-#: ../../Zotlabs/Module/Mitem.php:232 ../../Zotlabs/Module/Mitem.php:233
-#: ../../Zotlabs/Module/Admin.php:459 ../../Zotlabs/Module/Removeme.php:63
-#: ../../Zotlabs/Module/Settings.php:635 ../../Zotlabs/Module/Api.php:89
-#: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144
-#: ../../include/dir_fns.php:145 ../../view/theme/redbasic/php/config.php:105
-#: ../../view/theme/redbasic/php/config.php:130 ../../boot.php:1708
-msgid "No"
-msgstr "No"
-
-#: ../../Zotlabs/Module/Connedit.php:403 ../../Zotlabs/Module/Events.php:458
-#: ../../Zotlabs/Module/Events.php:459 ../../Zotlabs/Module/Events.php:468
-#: ../../Zotlabs/Module/Filestorage.php:156
-#: ../../Zotlabs/Module/Filestorage.php:164
-#: ../../Zotlabs/Module/Profiles.php:647 ../../Zotlabs/Module/Photos.php:664
-#: ../../Zotlabs/Module/Menu.php:100 ../../Zotlabs/Module/Menu.php:157
-#: ../../Zotlabs/Module/Mitem.php:158 ../../Zotlabs/Module/Mitem.php:159
-#: ../../Zotlabs/Module/Mitem.php:232 ../../Zotlabs/Module/Mitem.php:233
-#: ../../Zotlabs/Module/Admin.php:461 ../../Zotlabs/Module/Removeme.php:63
-#: ../../Zotlabs/Module/Settings.php:635 ../../Zotlabs/Module/Api.php:88
-#: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144
-#: ../../include/dir_fns.php:145 ../../view/theme/redbasic/php/config.php:105
-#: ../../view/theme/redbasic/php/config.php:130 ../../boot.php:1708
-msgid "Yes"
-msgstr "Sí"
-
-#: ../../Zotlabs/Module/Connedit.php:435
-msgid "Could not access address book record."
-msgstr "No se pudo acceder al registro en su libreta de direcciones."
-
-#: ../../Zotlabs/Module/Connedit.php:455
-msgid "Refresh failed - channel is currently unavailable."
-msgstr "Recarga fallida - no se puede encontrar el canal en este momento."
-
-#: ../../Zotlabs/Module/Connedit.php:470 ../../Zotlabs/Module/Connedit.php:479
-#: ../../Zotlabs/Module/Connedit.php:488 ../../Zotlabs/Module/Connedit.php:497
-#: ../../Zotlabs/Module/Connedit.php:510
-msgid "Unable to set address book parameters."
-msgstr "No ha sido posible establecer los parámetros de la libreta de direcciones."
-
-#: ../../Zotlabs/Module/Connedit.php:533
-msgid "Connection has been removed."
-msgstr "La conexión ha sido eliminada."
-
-#: ../../Zotlabs/Module/Connedit.php:549 ../../Zotlabs/Lib/Apps.php:221
-#: ../../include/nav.php:86 ../../include/conversation.php:957
-msgid "View Profile"
-msgstr "Ver el perfil"
-
-#: ../../Zotlabs/Module/Connedit.php:552
-#, php-format
-msgid "View %s's profile"
-msgstr "Ver el perfil de %s"
-
-#: ../../Zotlabs/Module/Connedit.php:556
-msgid "Refresh Permissions"
-msgstr "Recargar los permisos"
-
-#: ../../Zotlabs/Module/Connedit.php:559
-msgid "Fetch updated permissions"
-msgstr "Obtener los permisos actualizados"
-
-#: ../../Zotlabs/Module/Connedit.php:563
-msgid "Recent Activity"
-msgstr "Actividad reciente"
-
-#: ../../Zotlabs/Module/Connedit.php:566
-msgid "View recent posts and comments"
-msgstr "Ver publicaciones y comentarios recientes"
-
-#: ../../Zotlabs/Module/Connedit.php:570 ../../Zotlabs/Module/Admin.php:1041
-msgid "Unblock"
-msgstr "Desbloquear"
-
-#: ../../Zotlabs/Module/Connedit.php:570 ../../Zotlabs/Module/Admin.php:1040
-msgid "Block"
-msgstr "Bloquear"
-
-#: ../../Zotlabs/Module/Connedit.php:573
-msgid "Block (or Unblock) all communications with this connection"
-msgstr "Bloquear (o desbloquear) todas las comunicaciones con esta conexión"
-
-#: ../../Zotlabs/Module/Connedit.php:574
-msgid "This connection is blocked!"
-msgstr "¡Esta conexión está bloqueada!"
-
-#: ../../Zotlabs/Module/Connedit.php:578
-msgid "Unignore"
-msgstr "Dejar de ignorar"
-
-#: ../../Zotlabs/Module/Connedit.php:578
-#: ../../Zotlabs/Module/Connections.php:277
-#: ../../Zotlabs/Module/Notifications.php:55
-msgid "Ignore"
-msgstr "Ignorar"
-
-#: ../../Zotlabs/Module/Connedit.php:581
-msgid "Ignore (or Unignore) all inbound communications from this connection"
-msgstr "Ignorar (o dejar de ignorar) todas las comunicaciones entrantes de esta conexión"
-
-#: ../../Zotlabs/Module/Connedit.php:582
-msgid "This connection is ignored!"
-msgstr "¡Esta conexión es ignorada!"
-
-#: ../../Zotlabs/Module/Connedit.php:586
-msgid "Unarchive"
-msgstr "Desarchivar"
-
-#: ../../Zotlabs/Module/Connedit.php:586
-msgid "Archive"
-msgstr "Archivar"
-
-#: ../../Zotlabs/Module/Connedit.php:589
-msgid ""
-"Archive (or Unarchive) this connection - mark channel dead but keep content"
-msgstr "Archiva (o desarchiva) esta conexión - marca el canal como muerto aunque mantiene sus contenidos"
-
-#: ../../Zotlabs/Module/Connedit.php:590
-msgid "This connection is archived!"
-msgstr "¡Esta conexión esta archivada!"
-
-#: ../../Zotlabs/Module/Connedit.php:594
-msgid "Unhide"
-msgstr "Mostrar"
-
-#: ../../Zotlabs/Module/Connedit.php:594
-msgid "Hide"
-msgstr "Ocultar"
+#: ../../Zotlabs/Module/Dreport.php:44
+msgid "Invalid message"
+msgstr "Mensaje no válido"
-#: ../../Zotlabs/Module/Connedit.php:597
-msgid "Hide or Unhide this connection from your other connections"
-msgstr "Ocultar o mostrar esta conexión a sus otras conexiones"
+#: ../../Zotlabs/Module/Dreport.php:76
+msgid "no results"
+msgstr "sin resultados"
-#: ../../Zotlabs/Module/Connedit.php:598
-msgid "This connection is hidden!"
-msgstr "¡Esta conexión está oculta!"
+#: ../../Zotlabs/Module/Dreport.php:91
+msgid "channel sync processed"
+msgstr "se ha realizado la sincronización del canal"
-#: ../../Zotlabs/Module/Connedit.php:605
-msgid "Delete this connection"
-msgstr "Eliminar esta conexión"
+#: ../../Zotlabs/Module/Dreport.php:95
+msgid "queued"
+msgstr "encolado"
-#: ../../Zotlabs/Module/Connedit.php:620 ../../include/widgets.php:493
-msgid "Me"
-msgstr "Yo"
+#: ../../Zotlabs/Module/Dreport.php:99
+msgid "posted"
+msgstr "enviado"
-#: ../../Zotlabs/Module/Connedit.php:621 ../../include/widgets.php:494
-msgid "Family"
-msgstr "Familia"
+#: ../../Zotlabs/Module/Dreport.php:103
+msgid "accepted for delivery"
+msgstr "aceptado para el envío"
-#: ../../Zotlabs/Module/Connedit.php:622 ../../Zotlabs/Module/Settings.php:391
-#: ../../Zotlabs/Module/Settings.php:395 ../../Zotlabs/Module/Settings.php:396
-#: ../../Zotlabs/Module/Settings.php:399 ../../Zotlabs/Module/Settings.php:410
-#: ../../include/channel.php:402 ../../include/channel.php:403
-#: ../../include/channel.php:410 ../../include/selectors.php:123
-#: ../../include/widgets.php:495
-msgid "Friends"
-msgstr "Amigos/as"
+#: ../../Zotlabs/Module/Dreport.php:107
+msgid "updated"
+msgstr "actualizado"
-#: ../../Zotlabs/Module/Connedit.php:623 ../../include/widgets.php:496
-msgid "Acquaintances"
-msgstr "Conocidos/as"
+#: ../../Zotlabs/Module/Dreport.php:110
+msgid "update ignored"
+msgstr "actualización ignorada"
-#: ../../Zotlabs/Module/Connedit.php:624
-#: ../../Zotlabs/Module/Connections.php:92
-#: ../../Zotlabs/Module/Connections.php:107 ../../include/widgets.php:497
-msgid "All"
-msgstr "Todos/as"
+#: ../../Zotlabs/Module/Dreport.php:113
+msgid "permission denied"
+msgstr "permiso denegado"
-#: ../../Zotlabs/Module/Connedit.php:685
-msgid "Approve this connection"
-msgstr "Aprobar esta conexión"
+#: ../../Zotlabs/Module/Dreport.php:117
+msgid "recipient not found"
+msgstr "destinatario no encontrado"
-#: ../../Zotlabs/Module/Connedit.php:685
-msgid "Accept connection to allow communication"
-msgstr "Aceptar la conexión para permitir la comunicación"
+#: ../../Zotlabs/Module/Dreport.php:120
+msgid "mail recalled"
+msgstr "mensaje de correo revocado"
-#: ../../Zotlabs/Module/Connedit.php:690
-msgid "Set Affinity"
-msgstr "Ajustar la afinidad"
+#: ../../Zotlabs/Module/Dreport.php:123
+msgid "duplicate mail received"
+msgstr "se ha recibido mensaje duplicado"
-#: ../../Zotlabs/Module/Connedit.php:693
-msgid "Set Profile"
-msgstr "Ajustar el perfil"
+#: ../../Zotlabs/Module/Dreport.php:126
+msgid "mail delivered"
+msgstr "correo enviado"
-#: ../../Zotlabs/Module/Connedit.php:696
-msgid "Set Affinity & Profile"
-msgstr "Ajustar la afinidad y el perfil"
+#: ../../Zotlabs/Module/Dreport.php:146
+#, php-format
+msgid "Delivery report for %1$s"
+msgstr "Informe de entrega para %1$s"
-#: ../../Zotlabs/Module/Connedit.php:745
-msgid "none"
-msgstr "-"
+#: ../../Zotlabs/Module/Dreport.php:149
+msgid "Options"
+msgstr "Opciones"
-#: ../../Zotlabs/Module/Connedit.php:749 ../../include/widgets.php:623
-msgid "Connection Default Permissions"
-msgstr "Permisos predeterminados de conexión"
+#: ../../Zotlabs/Module/Dreport.php:150
+msgid "Redeliver"
+msgstr "Volver a enviar"
-#: ../../Zotlabs/Module/Connedit.php:749 ../../include/items.php:3935
+#: ../../Zotlabs/Module/Probe.php:28 ../../Zotlabs/Module/Probe.php:32
#, php-format
-msgid "Connection: %s"
-msgstr "Conexión: %s"
-
-#: ../../Zotlabs/Module/Connedit.php:750
-msgid "Apply these permissions automatically"
-msgstr "Aplicar estos permisos automaticamente"
+msgid "Fetching URL returns error: %1$s"
+msgstr "Al intentar obtener la dirección, retorna el error: %1$s"
-#: ../../Zotlabs/Module/Connedit.php:750
-msgid "Connection requests will be approved without your interaction"
-msgstr "Las solicitudes de conexión serán aprobadas sin su intervención"
+#: ../../Zotlabs/Module/Api.php:60 ../../Zotlabs/Module/Api.php:81
+msgid "Authorize application connection"
+msgstr "Autorizar una conexión de aplicación"
-#: ../../Zotlabs/Module/Connedit.php:752
-msgid "This connection's primary address is"
-msgstr "La dirección primaria de esta conexión es"
+#: ../../Zotlabs/Module/Api.php:61
+msgid "Return to your app and insert this Security Code:"
+msgstr "Volver a su aplicación e introducir este código de seguridad:"
-#: ../../Zotlabs/Module/Connedit.php:753
-msgid "Available locations:"
-msgstr "Ubicaciones disponibles:"
+#: ../../Zotlabs/Module/Api.php:71
+msgid "Please login to continue."
+msgstr "Por favor inicie sesión para continuar."
-#: ../../Zotlabs/Module/Connedit.php:757
+#: ../../Zotlabs/Module/Api.php:83
msgid ""
-"The permissions indicated on this page will be applied to all new "
-"connections."
-msgstr "Los permisos indicados en esta página serán aplicados en todas las nuevas conexiones."
+"Do you want to authorize this application to access your posts and contacts,"
+" and/or create new posts for you?"
+msgstr "¿Desea autorizar a esta aplicación a acceder a sus publicaciones y contactos, y/o crear nuevas publicaciones por usted?"
-#: ../../Zotlabs/Module/Connedit.php:758
-msgid "Connection Tools"
-msgstr "Gestión de las conexiones"
+#: ../../Zotlabs/Module/Api.php:84 ../../Zotlabs/Module/Menu.php:100
+#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Filestorage.php:160
+#: ../../Zotlabs/Module/Filestorage.php:168
+#: ../../Zotlabs/Module/Settings.php:673 ../../Zotlabs/Module/Photos.php:664
+#: ../../Zotlabs/Module/Mitem.php:162 ../../Zotlabs/Module/Mitem.php:163
+#: ../../Zotlabs/Module/Mitem.php:240 ../../Zotlabs/Module/Mitem.php:241
+#: ../../Zotlabs/Module/Admin.php:465 ../../Zotlabs/Module/Profiles.php:647
+#: ../../Zotlabs/Module/Events.php:462 ../../Zotlabs/Module/Events.php:463
+#: ../../Zotlabs/Module/Events.php:472 ../../Zotlabs/Module/Connedit.php:408
+#: ../../Zotlabs/Module/Removeme.php:63 ../../include/dir_fns.php:143
+#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
+#: ../../view/theme/redbasic/php/config.php:111
+#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1742
+msgid "Yes"
+msgstr "Sí"
-#: ../../Zotlabs/Module/Connedit.php:760
-msgid "Slide to adjust your degree of friendship"
-msgstr "Deslizar para ajustar el grado de amistad"
+#: ../../Zotlabs/Module/Api.php:85 ../../Zotlabs/Module/Menu.php:100
+#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Filestorage.php:160
+#: ../../Zotlabs/Module/Filestorage.php:168
+#: ../../Zotlabs/Module/Settings.php:673 ../../Zotlabs/Module/Photos.php:664
+#: ../../Zotlabs/Module/Mitem.php:162 ../../Zotlabs/Module/Mitem.php:163
+#: ../../Zotlabs/Module/Mitem.php:240 ../../Zotlabs/Module/Mitem.php:241
+#: ../../Zotlabs/Module/Admin.php:463 ../../Zotlabs/Module/Profiles.php:647
+#: ../../Zotlabs/Module/Events.php:462 ../../Zotlabs/Module/Events.php:463
+#: ../../Zotlabs/Module/Events.php:472 ../../Zotlabs/Module/Connedit.php:408
+#: ../../Zotlabs/Module/Connedit.php:686 ../../Zotlabs/Module/Removeme.php:63
+#: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144
+#: ../../include/dir_fns.php:145 ../../view/theme/redbasic/php/config.php:111
+#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1742
+msgid "No"
+msgstr "No"
-#: ../../Zotlabs/Module/Connedit.php:761 ../../Zotlabs/Module/Rate.php:159
+#: ../../Zotlabs/Module/Rate.php:155 ../../Zotlabs/Module/Connedit.php:762
#: ../../include/js_strings.php:20
msgid "Rating"
msgstr "Valoración"
-#: ../../Zotlabs/Module/Connedit.php:762
-msgid "Slide to adjust your rating"
-msgstr "Deslizar para ajustar su valoración"
-
-#: ../../Zotlabs/Module/Connedit.php:763 ../../Zotlabs/Module/Connedit.php:768
-msgid "Optionally explain your rating"
-msgstr "Opcionalmente, puede explicar su valoración"
-
-#: ../../Zotlabs/Module/Connedit.php:765
-msgid "Custom Filter"
-msgstr "Filtro personalizado"
-
-#: ../../Zotlabs/Module/Connedit.php:766
-msgid "Only import posts with this text"
-msgstr "Importar solo entradas que contengan este texto"
-
-#: ../../Zotlabs/Module/Connedit.php:766 ../../Zotlabs/Module/Connedit.php:767
-msgid ""
-"words one per line or #tags or /patterns/ or lang=xx, leave blank to import "
-"all posts"
-msgstr "Una sola opción por línea: palabras, #etiquetas, /patrones/ o lang=xx. Dejar en blanco para importarlo todo"
-
-#: ../../Zotlabs/Module/Connedit.php:767
-msgid "Do not import posts with this text"
-msgstr "No importar entradas que contengan este texto"
+#: ../../Zotlabs/Module/Rate.php:156
+msgid "Website:"
+msgstr "Sitio web:"
-#: ../../Zotlabs/Module/Connedit.php:769
-msgid "This information is public!"
-msgstr "¡Esta información es pública!"
+#: ../../Zotlabs/Module/Rate.php:159
+#, php-format
+msgid "Remote Channel [%s] (not yet known on this site)"
+msgstr "Canal remoto [%s] (aún no es conocido en este sitio)"
-#: ../../Zotlabs/Module/Connedit.php:774
-msgid "Connection Pending Approval"
-msgstr "Conexión pendiente de aprobación"
+#: ../../Zotlabs/Module/Rate.php:160
+msgid "Rating (this information is public)"
+msgstr "Valoración (esta información es pública)"
-#: ../../Zotlabs/Module/Connedit.php:777
-msgid "inherited"
-msgstr "heredado"
+#: ../../Zotlabs/Module/Rate.php:161
+msgid "Optionally explain your rating (this information is public)"
+msgstr "Opcionalmente puede explicar su valoración (esta información es pública)"
-#: ../../Zotlabs/Module/Connedit.php:778 ../../Zotlabs/Module/Connect.php:98
-#: ../../Zotlabs/Module/Events.php:474 ../../Zotlabs/Module/Cal.php:338
-#: ../../Zotlabs/Module/Chat.php:196 ../../Zotlabs/Module/Chat.php:238
-#: ../../Zotlabs/Module/Group.php:85 ../../Zotlabs/Module/Appman.php:126
+#: ../../Zotlabs/Module/Rate.php:166 ../../Zotlabs/Module/Setup.php:316
+#: ../../Zotlabs/Module/Setup.php:364 ../../Zotlabs/Module/Appman.php:126
#: ../../Zotlabs/Module/Pdledit.php:66
-#: ../../Zotlabs/Module/Filestorage.php:161
-#: ../../Zotlabs/Module/Profiles.php:687 ../../Zotlabs/Module/Import.php:560
-#: ../../Zotlabs/Module/Photos.php:675 ../../Zotlabs/Module/Photos.php:1050
-#: ../../Zotlabs/Module/Photos.php:1090 ../../Zotlabs/Module/Photos.php:1208
+#: ../../Zotlabs/Module/Filestorage.php:165
+#: ../../Zotlabs/Module/Settings.php:682 ../../Zotlabs/Module/Settings.php:795
+#: ../../Zotlabs/Module/Settings.php:886 ../../Zotlabs/Module/Settings.php:912
+#: ../../Zotlabs/Module/Settings.php:935
+#: ../../Zotlabs/Module/Settings.php:1040
+#: ../../Zotlabs/Module/Settings.php:1229 ../../Zotlabs/Module/Group.php:85
+#: ../../Zotlabs/Module/Photos.php:679 ../../Zotlabs/Module/Photos.php:1058
+#: ../../Zotlabs/Module/Photos.php:1098 ../../Zotlabs/Module/Photos.php:1216
#: ../../Zotlabs/Module/Import_items.php:122
#: ../../Zotlabs/Module/Invite.php:146 ../../Zotlabs/Module/Locs.php:121
-#: ../../Zotlabs/Module/Mail.php:370 ../../Zotlabs/Module/Mood.php:139
-#: ../../Zotlabs/Module/Mitem.php:235 ../../Zotlabs/Module/Admin.php:492
-#: ../../Zotlabs/Module/Admin.php:688 ../../Zotlabs/Module/Admin.php:771
-#: ../../Zotlabs/Module/Admin.php:1032 ../../Zotlabs/Module/Admin.php:1211
-#: ../../Zotlabs/Module/Admin.php:1421 ../../Zotlabs/Module/Admin.php:1648
-#: ../../Zotlabs/Module/Admin.php:1733 ../../Zotlabs/Module/Admin.php:2116
+#: ../../Zotlabs/Module/Mitem.php:243 ../../Zotlabs/Module/Admin.php:502
+#: ../../Zotlabs/Module/Admin.php:701 ../../Zotlabs/Module/Admin.php:784
+#: ../../Zotlabs/Module/Admin.php:1045 ../../Zotlabs/Module/Admin.php:1224
+#: ../../Zotlabs/Module/Admin.php:1435 ../../Zotlabs/Module/Admin.php:1662
+#: ../../Zotlabs/Module/Admin.php:1747 ../../Zotlabs/Module/Admin.php:2130
+#: ../../Zotlabs/Module/Mood.php:139 ../../Zotlabs/Module/Profiles.php:687
+#: ../../Zotlabs/Module/Events.php:484 ../../Zotlabs/Module/Import.php:560
#: ../../Zotlabs/Module/Poke.php:186 ../../Zotlabs/Module/Pconfig.php:107
-#: ../../Zotlabs/Module/Rate.php:170 ../../Zotlabs/Module/Settings.php:644
-#: ../../Zotlabs/Module/Settings.php:757 ../../Zotlabs/Module/Settings.php:806
-#: ../../Zotlabs/Module/Settings.php:832 ../../Zotlabs/Module/Settings.php:855
-#: ../../Zotlabs/Module/Settings.php:943
-#: ../../Zotlabs/Module/Settings.php:1129 ../../Zotlabs/Module/Setup.php:312
-#: ../../Zotlabs/Module/Setup.php:353 ../../Zotlabs/Module/Thing.php:316
-#: ../../Zotlabs/Module/Thing.php:362 ../../Zotlabs/Module/Sources.php:114
-#: ../../Zotlabs/Module/Sources.php:149 ../../Zotlabs/Module/Xchan.php:15
-#: ../../Zotlabs/Lib/ThreadItem.php:710 ../../include/widgets.php:763
-#: ../../include/js_strings.php:22 ../../view/theme/redbasic/php/config.php:99
+#: ../../Zotlabs/Module/Cal.php:338 ../../Zotlabs/Module/Mail.php:370
+#: ../../Zotlabs/Module/Connedit.php:779 ../../Zotlabs/Module/Connect.php:98
+#: ../../Zotlabs/Module/Thing.php:320 ../../Zotlabs/Module/Thing.php:370
+#: ../../Zotlabs/Module/Sources.php:114 ../../Zotlabs/Module/Sources.php:149
+#: ../../Zotlabs/Module/Chat.php:196 ../../Zotlabs/Module/Chat.php:241
+#: ../../Zotlabs/Module/Xchan.php:15 ../../Zotlabs/Lib/ThreadItem.php:711
+#: ../../include/widgets.php:763 ../../include/js_strings.php:22
+#: ../../view/theme/redbasic/php/config.php:106
msgid "Submit"
msgstr "Enviar"
-#: ../../Zotlabs/Module/Connedit.php:779
-#, php-format
-msgid ""
-"Please choose the profile you would like to display to %s when viewing your "
-"profile securely."
-msgstr "Por favor, escoja el perfil que quiere mostrar a %s cuando esté viendo su perfil de forma segura."
-
-#: ../../Zotlabs/Module/Connedit.php:781
-msgid "Their Settings"
-msgstr "Sus ajustes"
-
-#: ../../Zotlabs/Module/Connedit.php:782
-msgid "My Settings"
-msgstr "Mis ajustes"
-
-#: ../../Zotlabs/Module/Connedit.php:784
-msgid "Individual Permissions"
-msgstr "Permisos individuales"
-
-#: ../../Zotlabs/Module/Connedit.php:785
-msgid ""
-"Some permissions may be inherited from your channel's <a "
-"href=\"settings\"><strong>privacy settings</strong></a>, which have higher "
-"priority than individual settings. You can <strong>not</strong> change those"
-" settings here."
-msgstr "Algunos permisos pueden ser heredados de los <a href=\"settings\"><strong>ajustes de privacidad</strong></a> de sus canales, los cuales tienen una prioridad más alta que los ajustes individuales. <strong>No</strong> puede cambiar estos ajustes aquí."
+#: ../../Zotlabs/Module/Pubsites.php:24 ../../include/widgets.php:1351
+msgid "Public Hubs"
+msgstr "Servidores públicos"
-#: ../../Zotlabs/Module/Connedit.php:786
+#: ../../Zotlabs/Module/Pubsites.php:27
msgid ""
-"Some permissions may be inherited from your channel's <a "
-"href=\"settings\"><strong>privacy settings</strong></a>, which have higher "
-"priority than individual settings. You can change those settings here but "
-"they wont have any impact unless the inherited setting changes."
-msgstr "Algunos permisos pueden ser heredados de los <a href=\"settings\"><strong>ajustes de privacidad</strong></a> de sus canales, los cuales tienen una prioridad más alta que los ajustes individuales. Puede cambiar estos ajustes aquí, pero no tendrán ningún consecuencia hasta que cambie los ajustes heredados."
-
-#: ../../Zotlabs/Module/Connedit.php:787
-msgid "Last update:"
-msgstr "Última actualización:"
-
-#: ../../Zotlabs/Module/Display.php:17 ../../Zotlabs/Module/Directory.php:63
-#: ../../Zotlabs/Module/Photos.php:520 ../../Zotlabs/Module/Ratings.php:86
-#: ../../Zotlabs/Module/Search.php:17
-#: ../../Zotlabs/Module/Viewconnections.php:23
-msgid "Public access denied."
-msgstr "Acceso público denegado."
-
-#: ../../Zotlabs/Module/Display.php:40 ../../Zotlabs/Module/Filestorage.php:32
-#: ../../Zotlabs/Module/Admin.php:164 ../../Zotlabs/Module/Admin.php:1255
-#: ../../Zotlabs/Module/Admin.php:1561 ../../Zotlabs/Module/Thing.php:89
-#: ../../Zotlabs/Module/Viewsrc.php:24 ../../include/items.php:3369
-msgid "Item not found."
-msgstr "Elemento no encontrado."
-
-#: ../../Zotlabs/Module/Id.php:13
-msgid "First Name"
-msgstr "Nombre"
-
-#: ../../Zotlabs/Module/Id.php:14
-msgid "Last Name"
-msgstr "Apellido"
-
-#: ../../Zotlabs/Module/Id.php:15
-msgid "Nickname"
-msgstr "Sobrenombre o Alias"
-
-#: ../../Zotlabs/Module/Id.php:16
-msgid "Full Name"
-msgstr "Nombre completo"
-
-#: ../../Zotlabs/Module/Id.php:17 ../../Zotlabs/Module/Id.php:18
-#: ../../Zotlabs/Module/Admin.php:1035 ../../Zotlabs/Module/Admin.php:1047
-#: ../../include/network.php:2203
-msgid "Email"
-msgstr "Correo electrónico"
-
-#: ../../Zotlabs/Module/Id.php:19 ../../Zotlabs/Module/Id.php:20
-#: ../../Zotlabs/Module/Id.php:21 ../../Zotlabs/Lib/Apps.php:238
-msgid "Profile Photo"
-msgstr "Foto del perfil"
-
-#: ../../Zotlabs/Module/Id.php:22
-msgid "Profile Photo 16px"
-msgstr "Foto del perfil 16px"
-
-#: ../../Zotlabs/Module/Id.php:23
-msgid "Profile Photo 32px"
-msgstr "Foto del perfil 32px"
-
-#: ../../Zotlabs/Module/Id.php:24
-msgid "Profile Photo 48px"
-msgstr "Foto del perfil 48px"
-
-#: ../../Zotlabs/Module/Id.php:25
-msgid "Profile Photo 64px"
-msgstr "Foto del perfil 64px"
-
-#: ../../Zotlabs/Module/Id.php:26
-msgid "Profile Photo 80px"
-msgstr "Foto del perfil 80px"
-
-#: ../../Zotlabs/Module/Id.php:27
-msgid "Profile Photo 128px"
-msgstr "Foto del perfil 128px"
-
-#: ../../Zotlabs/Module/Id.php:28
-msgid "Timezone"
-msgstr "Huso horario"
-
-#: ../../Zotlabs/Module/Id.php:29 ../../Zotlabs/Module/Profiles.php:731
-msgid "Homepage URL"
-msgstr "Dirección de la página personal"
-
-#: ../../Zotlabs/Module/Id.php:30 ../../Zotlabs/Lib/Apps.php:236
-msgid "Language"
-msgstr "Idioma"
-
-#: ../../Zotlabs/Module/Id.php:31
-msgid "Birth Year"
-msgstr "Año de nacimiento"
-
-#: ../../Zotlabs/Module/Id.php:32
-msgid "Birth Month"
-msgstr "Mes de nacimiento"
-
-#: ../../Zotlabs/Module/Id.php:33
-msgid "Birth Day"
-msgstr "Día de nacimiento"
-
-#: ../../Zotlabs/Module/Id.php:34
-msgid "Birthdate"
-msgstr "Fecha de nacimiento"
-
-#: ../../Zotlabs/Module/Id.php:35 ../../Zotlabs/Module/Profiles.php:454
-msgid "Gender"
-msgstr "Género"
-
-#: ../../Zotlabs/Module/Id.php:108 ../../include/selectors.php:49
-#: ../../include/selectors.php:66
-msgid "Male"
-msgstr "Hombre"
-
-#: ../../Zotlabs/Module/Id.php:110 ../../include/selectors.php:49
-#: ../../include/selectors.php:66
-msgid "Female"
-msgstr "Mujer"
-
-#: ../../Zotlabs/Module/Follow.php:34
-msgid "Channel added."
-msgstr "Canal añadido."
-
-#: ../../Zotlabs/Module/Directory.php:243
-#, php-format
-msgid "%d rating"
-msgid_plural "%d ratings"
-msgstr[0] "%d valoración"
-msgstr[1] "%d valoraciones"
-
-#: ../../Zotlabs/Module/Directory.php:254
-msgid "Gender: "
-msgstr "Género:"
-
-#: ../../Zotlabs/Module/Directory.php:256
-msgid "Status: "
-msgstr "Estado:"
-
-#: ../../Zotlabs/Module/Directory.php:258
-msgid "Homepage: "
-msgstr "Página personal:"
-
-#: ../../Zotlabs/Module/Directory.php:306 ../../include/channel.php:1223
-msgid "Age:"
-msgstr "Edad:"
-
-#: ../../Zotlabs/Module/Directory.php:311 ../../include/channel.php:1066
-#: ../../include/event.php:52 ../../include/event.php:84
-#: ../../include/bb2diaspora.php:507
-msgid "Location:"
-msgstr "Ubicación:"
-
-#: ../../Zotlabs/Module/Directory.php:317
-msgid "Description:"
-msgstr "Descripción:"
-
-#: ../../Zotlabs/Module/Directory.php:322 ../../include/channel.php:1239
-msgid "Hometown:"
-msgstr "Lugar de nacimiento:"
-
-#: ../../Zotlabs/Module/Directory.php:324 ../../include/channel.php:1247
-msgid "About:"
-msgstr "Sobre mí:"
-
-#: ../../Zotlabs/Module/Directory.php:325 ../../Zotlabs/Module/Match.php:68
-#: ../../Zotlabs/Module/Suggest.php:56 ../../include/channel.php:1051
-#: ../../include/connections.php:78 ../../include/conversation.php:959
-#: ../../include/widgets.php:147 ../../include/widgets.php:184
-msgid "Connect"
-msgstr "Conectar"
-
-#: ../../Zotlabs/Module/Directory.php:326
-msgid "Public Forum:"
-msgstr "Foro público:"
-
-#: ../../Zotlabs/Module/Directory.php:329
-msgid "Keywords: "
-msgstr "Palabras clave:"
-
-#: ../../Zotlabs/Module/Directory.php:332
-msgid "Don't suggest"
-msgstr "No sugerir:"
-
-#: ../../Zotlabs/Module/Directory.php:334
-msgid "Common connections:"
-msgstr "Conexiones comunes:"
-
-#: ../../Zotlabs/Module/Directory.php:383
-msgid "Global Directory"
-msgstr "Directorio global:"
-
-#: ../../Zotlabs/Module/Directory.php:383
-msgid "Local Directory"
-msgstr "Directorio local:"
-
-#: ../../Zotlabs/Module/Directory.php:388
-#: ../../Zotlabs/Module/Directory.php:393
-#: ../../Zotlabs/Module/Connections.php:309
-#: ../../include/contact_widgets.php:23
-msgid "Find"
-msgstr "Encontrar"
-
-#: ../../Zotlabs/Module/Directory.php:389
-msgid "Finding:"
-msgstr "Encontrar:"
-
-#: ../../Zotlabs/Module/Directory.php:392 ../../Zotlabs/Module/Suggest.php:64
-#: ../../include/contact_widgets.php:24
-msgid "Channel Suggestions"
-msgstr "Sugerencias de canales"
-
-#: ../../Zotlabs/Module/Directory.php:394
-msgid "next page"
-msgstr "siguiente página"
-
-#: ../../Zotlabs/Module/Directory.php:394
-msgid "previous page"
-msgstr "página anterior"
+"The listed hubs allow public registration for the $Projectname network. All "
+"hubs in the network are interlinked so membership on any of them conveys "
+"membership in the network as a whole. Some hubs may require subscription or "
+"provide tiered service plans. The hub itself <strong>may</strong> provide "
+"additional details."
+msgstr "Los sitios listados permiten el registro público en la red $Projectname. Todos los sitios de la red están vinculados entre sí, por lo que sus miembros, en ninguno de ellos, indican la pertenencia a la red en su conjunto. Algunos sitios pueden requerir suscripción o proporcionar planes de servicio por niveles. Los mismos hubs <strong>pueden</strong> proporcionar detalles adicionales."
-#: ../../Zotlabs/Module/Directory.php:395
-msgid "Sort options"
-msgstr "Ordenar opciones"
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Hub URL"
+msgstr "Dirección del hub"
-#: ../../Zotlabs/Module/Directory.php:396
-msgid "Alphabetic"
-msgstr "Alfabético"
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Access Type"
+msgstr "Tipo de acceso"
-#: ../../Zotlabs/Module/Directory.php:397
-msgid "Reverse Alphabetic"
-msgstr "Alfabético inverso"
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Registration Policy"
+msgstr "Normas de registro"
-#: ../../Zotlabs/Module/Directory.php:398
-msgid "Newest to Oldest"
-msgstr "De más nuevo a más antiguo"
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Stats"
+msgstr "Estadísticas"
-#: ../../Zotlabs/Module/Directory.php:399
-msgid "Oldest to Newest"
-msgstr "De más antiguo a más nuevo"
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Software"
+msgstr "Software"
-#: ../../Zotlabs/Module/Directory.php:416
-msgid "No entries (some entries may be hidden)."
-msgstr "Sin entradas (algunas entradas pueden estar ocultas)."
+#: ../../Zotlabs/Module/Pubsites.php:35 ../../Zotlabs/Module/Ratings.php:97
+#: ../../include/conversation.php:960
+msgid "Ratings"
+msgstr "Valoraciones"
-#: ../../Zotlabs/Module/Connect.php:61 ../../Zotlabs/Module/Connect.php:109
-msgid "Continue"
-msgstr "Continuar"
+#: ../../Zotlabs/Module/Pubsites.php:43
+msgid "Rate"
+msgstr "Valorar"
-#: ../../Zotlabs/Module/Connect.php:90
-msgid "Premium Channel Setup"
-msgstr "Configuración del canal premium"
+#: ../../Zotlabs/Module/Pubsites.php:46 ../../Zotlabs/Module/Locs.php:117
+#: ../../Zotlabs/Module/Profiles.php:477 ../../Zotlabs/Module/Profiles.php:698
+#: ../../Zotlabs/Module/Events.php:467 ../../include/js_strings.php:25
+msgid "Location"
+msgstr "Ubicación"
-#: ../../Zotlabs/Module/Connect.php:92
-msgid "Enable premium channel connection restrictions"
-msgstr "Habilitar restricciones de conexión del canal premium"
+#: ../../Zotlabs/Module/Pubsites.php:54 ../../Zotlabs/Module/Webpages.php:223
+#: ../../Zotlabs/Module/Events.php:680 ../../Zotlabs/Module/Blocks.php:166
+#: ../../Zotlabs/Module/Layouts.php:197 ../../include/page_widgets.php:42
+msgid "View"
+msgstr "Ver"
-#: ../../Zotlabs/Module/Connect.php:93
-msgid ""
-"Please enter your restrictions or conditions, such as paypal receipt, usage "
-"guidelines, etc."
-msgstr "Por favor introduzca sus restricciones o condiciones, como recibo de paypal, normas de uso, etc."
+#: ../../Zotlabs/Module/Register.php:49
+msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
+msgstr "Se ha superado el límite máximo de inscripciones diarias de este sitio. Por favor, pruebe de nuevo mañana."
-#: ../../Zotlabs/Module/Connect.php:95 ../../Zotlabs/Module/Connect.php:115
+#: ../../Zotlabs/Module/Register.php:55
msgid ""
-"This channel may require additional steps or acknowledgement of the "
-"following conditions prior to connecting:"
-msgstr "Este canal puede requerir antes de conectar unos pasos adicionales o el conocimiento de las siguientes condiciones:"
+"Please indicate acceptance of the Terms of Service. Registration failed."
+msgstr "Por favor, confirme que acepta los Términos del servicio. El registro ha fallado."
-#: ../../Zotlabs/Module/Connect.php:96
-msgid ""
-"Potential connections will then see the following text before proceeding:"
-msgstr "Las posibles conexiones verán, por tanto, el siguiente texto antes de proceder:"
+#: ../../Zotlabs/Module/Register.php:89
+msgid "Passwords do not match."
+msgstr "Las contraseñas no coinciden."
-#: ../../Zotlabs/Module/Connect.php:97 ../../Zotlabs/Module/Connect.php:118
+#: ../../Zotlabs/Module/Register.php:131
msgid ""
-"By continuing, I certify that I have complied with any instructions provided"
-" on this page."
-msgstr "Al continuar, certifico que he cumplido con todas las instrucciones proporcionadas en esta página."
-
-#: ../../Zotlabs/Module/Connect.php:106
-msgid "(No specific instructions have been provided by the channel owner.)"
-msgstr "(No ha sido proporcionada ninguna instrucción específica por el propietario del canal.)"
-
-#: ../../Zotlabs/Module/Connect.php:114
-msgid "Restricted or Premium Channel"
-msgstr "Canal premium o restringido"
-
-#: ../../Zotlabs/Module/Events.php:25
-msgid "Calendar entries imported."
-msgstr "Entradas de calendario importadas."
-
-#: ../../Zotlabs/Module/Events.php:27
-msgid "No calendar entries found."
-msgstr "No se han encontrado entradas de calendario."
-
-#: ../../Zotlabs/Module/Events.php:104
-msgid "Event can not end before it has started."
-msgstr "Un evento no puede terminar antes de que haya comenzado."
-
-#: ../../Zotlabs/Module/Events.php:106 ../../Zotlabs/Module/Events.php:115
-#: ../../Zotlabs/Module/Events.php:135
-msgid "Unable to generate preview."
-msgstr "No se puede crear la vista previa."
-
-#: ../../Zotlabs/Module/Events.php:113
-msgid "Event title and start time are required."
-msgstr "Se requieren el título del evento y su hora de inicio."
-
-#: ../../Zotlabs/Module/Events.php:133 ../../Zotlabs/Module/Events.php:258
-msgid "Event not found."
-msgstr "Evento no encontrado."
-
-#: ../../Zotlabs/Module/Events.php:253 ../../Zotlabs/Module/Like.php:372
-#: ../../Zotlabs/Module/Tagger.php:51 ../../include/conversation.php:123
-#: ../../include/text.php:1924 ../../include/event.php:951
-msgid "event"
-msgstr "evento"
-
-#: ../../Zotlabs/Module/Events.php:448
-msgid "Edit event title"
-msgstr "Editar el título del evento"
-
-#: ../../Zotlabs/Module/Events.php:448
-msgid "Event title"
-msgstr "Título del evento"
-
-#: ../../Zotlabs/Module/Events.php:448 ../../Zotlabs/Module/Events.php:453
-#: ../../Zotlabs/Module/Appman.php:115 ../../Zotlabs/Module/Appman.php:116
-#: ../../Zotlabs/Module/Profiles.php:709 ../../Zotlabs/Module/Profiles.php:713
-#: ../../include/datetime.php:245
-msgid "Required"
-msgstr "Obligatorio"
-
-#: ../../Zotlabs/Module/Events.php:450
-msgid "Categories (comma-separated list)"
-msgstr "Categorías (lista separada por comas)"
-
-#: ../../Zotlabs/Module/Events.php:451
-msgid "Edit Category"
-msgstr "Editar la categoría"
-
-#: ../../Zotlabs/Module/Events.php:451
-msgid "Category"
-msgstr "Categoría"
-
-#: ../../Zotlabs/Module/Events.php:454
-msgid "Edit start date and time"
-msgstr "Modificar la fecha y hora de comienzo"
+"Registration successful. Please check your email for validation "
+"instructions."
+msgstr "Registro realizado con éxito. Por favor, compruebe su correo electrónico para ver las instrucciones para validarlo."
-#: ../../Zotlabs/Module/Events.php:454
-msgid "Start date and time"
-msgstr "Fecha y hora de comienzo"
+#: ../../Zotlabs/Module/Register.php:137
+msgid "Your registration is pending approval by the site owner."
+msgstr "Su registro está pendiente de aprobación por el propietario del sitio."
-#: ../../Zotlabs/Module/Events.php:455 ../../Zotlabs/Module/Events.php:458
-msgid "Finish date and time are not known or not relevant"
-msgstr "La fecha y hora de terminación no se conocen o no son relevantes"
+#: ../../Zotlabs/Module/Register.php:140
+msgid "Your registration can not be processed."
+msgstr "Su registro no puede ser procesado."
-#: ../../Zotlabs/Module/Events.php:457
-msgid "Edit finish date and time"
-msgstr "Modificar la fecha y hora de terminación"
+#: ../../Zotlabs/Module/Register.php:184
+msgid "Registration on this hub is disabled."
+msgstr "El registro está deshabilitado en este sitio."
-#: ../../Zotlabs/Module/Events.php:457
-msgid "Finish date and time"
-msgstr "Fecha y hora de terminación"
+#: ../../Zotlabs/Module/Register.php:193
+msgid "Registration on this hub is by approval only."
+msgstr "El registro en este hub está sometido a aprobación previa."
-#: ../../Zotlabs/Module/Events.php:459 ../../Zotlabs/Module/Events.php:460
-msgid "Adjust for viewer timezone"
-msgstr "Ajustar para obtener el visor de los husos horarios"
+#: ../../Zotlabs/Module/Register.php:194
+msgid "<a href=\"pubsites\">Register at another affiliated hub.</a>"
+msgstr "<a href=\"pubsites\">Registrarse en otro hub afiliado.</a>"
-#: ../../Zotlabs/Module/Events.php:459
+#: ../../Zotlabs/Module/Register.php:204
msgid ""
-"Important for events that happen in a particular place. Not practical for "
-"global holidays."
-msgstr "Importante para los eventos que suceden en un lugar determinado. No es práctico para los globales."
-
-#: ../../Zotlabs/Module/Events.php:461
-msgid "Edit Description"
-msgstr "Editar la descripción"
-
-#: ../../Zotlabs/Module/Events.php:461 ../../Zotlabs/Module/Appman.php:117
-#: ../../Zotlabs/Module/Rbmark.php:101
-msgid "Description"
-msgstr "Descripción"
-
-#: ../../Zotlabs/Module/Events.php:463
-msgid "Edit Location"
-msgstr "Modificar la dirección"
-
-#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Profiles.php:477
-#: ../../Zotlabs/Module/Profiles.php:698 ../../Zotlabs/Module/Locs.php:117
-#: ../../Zotlabs/Module/Pubsites.php:41 ../../include/js_strings.php:25
-msgid "Location"
-msgstr "Ubicación"
-
-#: ../../Zotlabs/Module/Events.php:466 ../../Zotlabs/Module/Events.php:468
-msgid "Share this event"
-msgstr "Compartir este evento"
+"This site has exceeded the number of allowed daily account registrations. "
+"Please try again tomorrow."
+msgstr "Este sitio ha excedido el límite de inscripción diaria de cuentas. Por favor, inténtelo de nuevo mañana."
-#: ../../Zotlabs/Module/Events.php:469 ../../Zotlabs/Module/Photos.php:1091
-#: ../../Zotlabs/Module/Webpages.php:201 ../../Zotlabs/Lib/ThreadItem.php:719
-#: ../../include/page_widgets.php:43 ../../include/conversation.php:1198
-msgid "Preview"
-msgstr "Previsualizar"
+#: ../../Zotlabs/Module/Register.php:215
+msgid "Terms of Service"
+msgstr "Términos del servicio"
-#: ../../Zotlabs/Module/Events.php:470 ../../include/conversation.php:1247
-msgid "Permission settings"
-msgstr "Configuración de permisos"
+#: ../../Zotlabs/Module/Register.php:221
+#, php-format
+msgid "I accept the %s for this website"
+msgstr "Acepto los %s de este sitio"
-#: ../../Zotlabs/Module/Events.php:475
-msgid "Advanced Options"
-msgstr "Opciones avanzadas"
+#: ../../Zotlabs/Module/Register.php:223
+#, php-format
+msgid "I am over 13 years of age and accept the %s for this website"
+msgstr "Tengo más de 13 años de edad y acepto los %s de este sitio"
-#: ../../Zotlabs/Module/Events.php:587 ../../Zotlabs/Module/Cal.php:259
-msgid "l, F j"
-msgstr "l j F"
+#: ../../Zotlabs/Module/Register.php:227
+msgid "Your email address"
+msgstr "Su dirección de correo electrónico"
-#: ../../Zotlabs/Module/Events.php:609
-msgid "Edit event"
-msgstr "Editar evento"
+#: ../../Zotlabs/Module/Register.php:228
+msgid "Choose a password"
+msgstr "Elija una contraseña"
-#: ../../Zotlabs/Module/Events.php:611
-msgid "Delete event"
-msgstr "Borrar evento"
+#: ../../Zotlabs/Module/Register.php:229
+msgid "Please re-enter your password"
+msgstr "Por favor, vuelva a escribir su contraseña"
-#: ../../Zotlabs/Module/Events.php:636 ../../Zotlabs/Module/Cal.php:308
-#: ../../include/text.php:1712
-msgid "Link to Source"
-msgstr "Enlazar con la entrada en su ubicación original"
+#: ../../Zotlabs/Module/Register.php:230
+msgid "Please enter your invitation code"
+msgstr "Por favor, introduzca el código de su invitación"
-#: ../../Zotlabs/Module/Events.php:645
-msgid "calendar"
-msgstr "calendario"
+#: ../../Zotlabs/Module/Register.php:231
+#: ../../Zotlabs/Module/New_channel.php:128
+msgid "Name or caption"
+msgstr "Nombre o descripción"
-#: ../../Zotlabs/Module/Events.php:664 ../../Zotlabs/Module/Cal.php:331
-msgid "Edit Event"
-msgstr "Editar el evento"
+#: ../../Zotlabs/Module/Register.php:231
+#: ../../Zotlabs/Module/New_channel.php:128
+msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\""
+msgstr "Ejemplos: \"Juan García\", \"Luisa y sus caballos\", \"Fútbol\", \"Grupo de aviación\""
-#: ../../Zotlabs/Module/Events.php:664 ../../Zotlabs/Module/Cal.php:331
-msgid "Create Event"
-msgstr "Crear un evento"
+#: ../../Zotlabs/Module/Register.php:233
+#: ../../Zotlabs/Module/New_channel.php:130
+msgid "Choose a short nickname"
+msgstr "Elija un alias corto"
-#: ../../Zotlabs/Module/Events.php:665 ../../Zotlabs/Module/Events.php:674
-#: ../../Zotlabs/Module/Cal.php:332 ../../Zotlabs/Module/Cal.php:339
-#: ../../Zotlabs/Module/Photos.php:947
-msgid "Previous"
-msgstr "Anterior"
+#: ../../Zotlabs/Module/Register.php:233
+#: ../../Zotlabs/Module/New_channel.php:130
+#, php-format
+msgid ""
+"Your nickname will be used to create an easy to remember channel address "
+"e.g. nickname%s"
+msgstr "Su alias se usará para crear una dirección de canal fácil de recordar, p. ej.: alias%s"
-#: ../../Zotlabs/Module/Events.php:666 ../../Zotlabs/Module/Events.php:675
-#: ../../Zotlabs/Module/Cal.php:333 ../../Zotlabs/Module/Cal.php:340
-#: ../../Zotlabs/Module/Photos.php:956 ../../Zotlabs/Module/Setup.php:267
-msgid "Next"
-msgstr "Siguiente"
+#: ../../Zotlabs/Module/Register.php:235
+#: ../../Zotlabs/Module/New_channel.php:132
+msgid "Channel role and privacy"
+msgstr "Clase de canal y privacidad"
-#: ../../Zotlabs/Module/Events.php:667 ../../Zotlabs/Module/Cal.php:334
-msgid "Export"
-msgstr "Exportar"
+#: ../../Zotlabs/Module/Register.php:235
+#: ../../Zotlabs/Module/New_channel.php:132
+msgid "Select a channel role with your privacy requirements."
+msgstr "Seleccione un tipo de canal con sus requisitos de privacidad"
-#: ../../Zotlabs/Module/Events.php:670 ../../Zotlabs/Module/Layouts.php:197
-#: ../../Zotlabs/Module/Pubsites.php:47 ../../Zotlabs/Module/Blocks.php:166
-#: ../../Zotlabs/Module/Webpages.php:200 ../../include/page_widgets.php:42
-msgid "View"
-msgstr "Ver"
+#: ../../Zotlabs/Module/Register.php:235
+#: ../../Zotlabs/Module/New_channel.php:132
+msgid "Read more about roles"
+msgstr "Leer más sobre los roles"
-#: ../../Zotlabs/Module/Events.php:671
-msgid "Month"
-msgstr "Mes"
+#: ../../Zotlabs/Module/Register.php:236
+msgid "no"
+msgstr "no"
-#: ../../Zotlabs/Module/Events.php:672
-msgid "Week"
-msgstr "Semana"
+#: ../../Zotlabs/Module/Register.php:236
+msgid "yes"
+msgstr "sí"
-#: ../../Zotlabs/Module/Events.php:673
-msgid "Day"
-msgstr "Día"
+#: ../../Zotlabs/Module/Register.php:248 ../../Zotlabs/Module/Admin.php:503
+msgid "Registration"
+msgstr "Registro"
-#: ../../Zotlabs/Module/Events.php:676 ../../Zotlabs/Module/Cal.php:341
-msgid "Today"
-msgstr "Hoy"
+#: ../../Zotlabs/Module/Register.php:253
+msgid "Membership on this site is by invitation only."
+msgstr "Para registrarse en este sitio es necesaria una invitación."
-#: ../../Zotlabs/Module/Events.php:707
-msgid "Event removed"
-msgstr "Evento borrado"
+#: ../../Zotlabs/Module/Register.php:265 ../../include/nav.php:151
+#: ../../boot.php:1720
+msgid "Register"
+msgstr "Registrarse"
-#: ../../Zotlabs/Module/Events.php:710
-msgid "Failed to remove event"
-msgstr "Error al eliminar el evento"
+#: ../../Zotlabs/Module/Register.php:266
+msgid ""
+"This site may require email verification after submitting this form. If you "
+"are returned to a login page, please check your email for instructions."
+msgstr "Este sitio puede requerir una verificación de correo electrónico después de enviar este formulario. Si es devuelto a una página de inicio de sesión, compruebe su email para recibir y leer las instrucciones."
#: ../../Zotlabs/Module/Bookmarks.php:53
msgid "Bookmark added"
@@ -1276,31 +805,31 @@ msgstr "Mis marcadores"
msgid "My Connections Bookmarks"
msgstr "Marcadores de mis conexiones"
-#: ../../Zotlabs/Module/Editpost.php:24 ../../Zotlabs/Module/Editlayout.php:79
-#: ../../Zotlabs/Module/Editwebpage.php:80
-#: ../../Zotlabs/Module/Editblock.php:79 ../../Zotlabs/Module/Editblock.php:95
-msgid "Item not found"
-msgstr "Elemento no encontrado"
-
-#: ../../Zotlabs/Module/Editpost.php:35
-msgid "Item is not editable"
-msgstr "El elemento no es editable"
+#: ../../Zotlabs/Module/Display.php:17 ../../Zotlabs/Module/Directory.php:63
+#: ../../Zotlabs/Module/Photos.php:520 ../../Zotlabs/Module/Ratings.php:83
+#: ../../Zotlabs/Module/Search.php:17
+#: ../../Zotlabs/Module/Viewconnections.php:23
+msgid "Public access denied."
+msgstr "Acceso público denegado."
-#: ../../Zotlabs/Module/Editpost.php:106 ../../Zotlabs/Module/Rpost.php:134
-msgid "Edit post"
-msgstr "Editar la entrada"
+#: ../../Zotlabs/Module/Display.php:40 ../../Zotlabs/Module/Filestorage.php:32
+#: ../../Zotlabs/Module/Admin.php:164 ../../Zotlabs/Module/Admin.php:1268
+#: ../../Zotlabs/Module/Admin.php:1575 ../../Zotlabs/Module/Thing.php:89
+#: ../../Zotlabs/Module/Viewsrc.php:24 ../../include/items.php:3398
+msgid "Item not found."
+msgstr "Elemento no encontrado."
#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:222
-#: ../../include/nav.php:92 ../../include/conversation.php:1647
+#: ../../include/conversation.php:1665 ../../include/nav.php:94
msgid "Photos"
msgstr "Fotos"
#: ../../Zotlabs/Module/Fbrowser.php:66 ../../Zotlabs/Module/Fbrowser.php:88
-#: ../../Zotlabs/Module/Admin.php:1406 ../../Zotlabs/Module/Settings.php:645
-#: ../../Zotlabs/Module/Settings.php:671 ../../Zotlabs/Module/Tagrm.php:15
-#: ../../Zotlabs/Module/Tagrm.php:138 ../../Zotlabs/Module/Wiki.php:166
-#: ../../Zotlabs/Module/Wiki.php:202 ../../include/conversation.php:1235
-#: ../../include/conversation.php:1274
+#: ../../Zotlabs/Module/Settings.php:683 ../../Zotlabs/Module/Settings.php:709
+#: ../../Zotlabs/Module/Admin.php:1420 ../../Zotlabs/Module/Wiki.php:171
+#: ../../Zotlabs/Module/Wiki.php:211 ../../Zotlabs/Module/Tagrm.php:15
+#: ../../Zotlabs/Module/Tagrm.php:138 ../../include/conversation.php:1243
+#: ../../include/conversation.php:1292
msgid "Cancel"
msgstr "Cancelar"
@@ -1308,8 +837,8 @@ msgstr "Cancelar"
msgid "Invalid item."
msgstr "Elemento no válido."
-#: ../../Zotlabs/Module/Page.php:56 ../../Zotlabs/Module/Cal.php:62
-#: ../../Zotlabs/Module/Block.php:43 ../../Zotlabs/Module/Wall_upload.php:33
+#: ../../Zotlabs/Module/Page.php:56 ../../Zotlabs/Module/Block.php:43
+#: ../../Zotlabs/Module/Cal.php:62 ../../Zotlabs/Module/Wall_upload.php:33
msgid "Channel not found."
msgstr "Canal no encontrado."
@@ -1331,13 +860,41 @@ msgstr "Guardar en carpeta:"
msgid "- select -"
msgstr "- seleccionar -"
-#: ../../Zotlabs/Module/Filer.php:53 ../../Zotlabs/Module/Admin.php:2033
-#: ../../Zotlabs/Module/Admin.php:2053 ../../Zotlabs/Module/Rbmark.php:32
+#: ../../Zotlabs/Module/Filer.php:53 ../../Zotlabs/Module/Admin.php:2047
+#: ../../Zotlabs/Module/Admin.php:2067 ../../Zotlabs/Module/Rbmark.php:32
#: ../../Zotlabs/Module/Rbmark.php:104 ../../include/text.php:926
#: ../../include/text.php:938 ../../include/widgets.php:201
msgid "Save"
msgstr "Guardar"
+#: ../../Zotlabs/Module/Network.php:94
+msgid "No such group"
+msgstr "No se encuentra el grupo"
+
+#: ../../Zotlabs/Module/Network.php:134
+msgid "No such channel"
+msgstr "No se encuentra el canal"
+
+#: ../../Zotlabs/Module/Network.php:139
+msgid "forum"
+msgstr "foro"
+
+#: ../../Zotlabs/Module/Network.php:151
+msgid "Search Results For:"
+msgstr "Buscar resultados para:"
+
+#: ../../Zotlabs/Module/Network.php:217
+msgid "Privacy group is empty"
+msgstr "El grupo de canales está vacío"
+
+#: ../../Zotlabs/Module/Network.php:226
+msgid "Privacy group: "
+msgstr "Grupo de canales: "
+
+#: ../../Zotlabs/Module/Network.php:252
+msgid "Invalid connection."
+msgstr "Conexión no válida."
+
#: ../../Zotlabs/Module/Connections.php:56
#: ../../Zotlabs/Module/Connections.php:161
#: ../../Zotlabs/Module/Connections.php:242
@@ -1364,10 +921,16 @@ msgstr "Archivadas"
#: ../../Zotlabs/Module/Connections.php:76
#: ../../Zotlabs/Module/Connections.php:86 ../../Zotlabs/Module/Menu.php:116
-#: ../../include/conversation.php:1550
+#: ../../include/conversation.php:1568
msgid "New"
msgstr "Nuevas"
+#: ../../Zotlabs/Module/Connections.php:92
+#: ../../Zotlabs/Module/Connections.php:107
+#: ../../Zotlabs/Module/Connedit.php:629 ../../include/widgets.php:497
+msgid "All"
+msgstr "Todos/as"
+
#: ../../Zotlabs/Module/Connections.php:138
msgid "New Connections"
msgstr "Nuevas conexiones"
@@ -1426,7 +989,7 @@ msgstr "Dirección del canal"
msgid "Network"
msgstr "Red"
-#: ../../Zotlabs/Module/Connections.php:270 ../../Zotlabs/Module/Admin.php:710
+#: ../../Zotlabs/Module/Connections.php:270 ../../Zotlabs/Module/Admin.php:723
msgid "Status"
msgstr "Estado"
@@ -1439,7 +1002,7 @@ msgid "Approve connection"
msgstr "Aprobar esta conexión"
#: ../../Zotlabs/Module/Connections.php:275
-#: ../../Zotlabs/Module/Admin.php:1037
+#: ../../Zotlabs/Module/Admin.php:1050
msgid "Approve"
msgstr "Aprobar"
@@ -1447,19 +1010,25 @@ msgstr "Aprobar"
msgid "Ignore connection"
msgstr "Ignorar esta conexión"
+#: ../../Zotlabs/Module/Connections.php:277
+#: ../../Zotlabs/Module/Notifications.php:55
+#: ../../Zotlabs/Module/Connedit.php:583
+msgid "Ignore"
+msgstr "Ignorar"
+
#: ../../Zotlabs/Module/Connections.php:278
msgid "Recent activity"
msgstr "Actividad reciente"
#: ../../Zotlabs/Module/Connections.php:302 ../../Zotlabs/Lib/Apps.php:209
-#: ../../include/nav.php:188 ../../include/text.php:855
+#: ../../include/text.php:855 ../../include/nav.php:190
msgid "Connections"
msgstr "Conexiones"
#: ../../Zotlabs/Module/Connections.php:306 ../../Zotlabs/Module/Search.php:44
-#: ../../Zotlabs/Lib/Apps.php:230 ../../include/nav.php:167
-#: ../../include/text.php:925 ../../include/text.php:937
-#: ../../include/acl_selectors.php:274
+#: ../../Zotlabs/Lib/Apps.php:230 ../../include/text.php:925
+#: ../../include/text.php:937 ../../include/acl_selectors.php:174
+#: ../../include/nav.php:169
msgid "Search"
msgstr "Buscar"
@@ -1471,6 +1040,12 @@ msgstr "Buscar sus conexiones"
msgid "Connections search"
msgstr "Buscar conexiones"
+#: ../../Zotlabs/Module/Connections.php:309
+#: ../../Zotlabs/Module/Directory.php:388
+#: ../../Zotlabs/Module/Directory.php:393 ../../include/contact_widgets.php:23
+msgid "Find"
+msgstr "Encontrar"
+
#: ../../Zotlabs/Module/Cover_photo.php:58
#: ../../Zotlabs/Module/Profile_photo.php:61
msgid "Image uploaded but image cropping failed."
@@ -1501,30 +1076,30 @@ msgstr "La carga de la imagen ha fallado."
msgid "Unable to process image."
msgstr "No ha sido posible procesar la imagen."
-#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4283
+#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4312
msgid "female"
msgstr "mujer"
-#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4284
+#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4313
#, php-format
msgid "%1$s updated her %2$s"
msgstr "%1$s ha actualizado su %2$s"
-#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4285
+#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4314
msgid "male"
msgstr "hombre"
-#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4286
+#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4315
#, php-format
msgid "%1$s updated his %2$s"
msgstr "%1$s ha actualizado su %2$s"
-#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4288
+#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4317
#, php-format
msgid "%1$s updated their %2$s"
msgstr "%1$s ha actualizado su %2$s"
-#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/channel.php:1726
+#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/channel.php:1720
msgid "cover photo"
msgstr "Imagen de portada del perfil"
@@ -1550,8 +1125,8 @@ msgid "Upload Cover Photo"
msgstr "Subir imagen de portada del perfil"
#: ../../Zotlabs/Module/Cover_photo.php:361
+#: ../../Zotlabs/Module/Settings.php:1180
#: ../../Zotlabs/Module/Profile_photo.php:396
-#: ../../Zotlabs/Module/Settings.php:1080
msgid "or"
msgstr "o"
@@ -1580,203 +1155,593 @@ msgstr "Por favor ajuste el recorte de la imagen para una visión óptima."
msgid "Done Editing"
msgstr "Edición completada"
-#: ../../Zotlabs/Module/Impel.php:41 ../../include/bbcode.php:192
-msgid "webpage"
-msgstr "página web"
+#: ../../Zotlabs/Module/Setup.php:183
+msgid "$Projectname Server - Setup"
+msgstr "Servidor $Projectname - Instalación"
-#: ../../Zotlabs/Module/Impel.php:46 ../../include/bbcode.php:198
-msgid "block"
-msgstr "bloque"
+#: ../../Zotlabs/Module/Setup.php:187
+msgid "Could not connect to database."
+msgstr "No se ha podido conectar a la base de datos."
-#: ../../Zotlabs/Module/Impel.php:51 ../../include/bbcode.php:195
-msgid "layout"
-msgstr "plantilla"
+#: ../../Zotlabs/Module/Setup.php:191
+msgid ""
+"Could not connect to specified site URL. Possible SSL certificate or DNS "
+"issue."
+msgstr "No se puede conectar con la dirección del sitio indicada. Podría tratarse de un problema de SSL o DNS."
-#: ../../Zotlabs/Module/Impel.php:58 ../../include/bbcode.php:201
-msgid "menu"
-msgstr "menú"
+#: ../../Zotlabs/Module/Setup.php:198
+msgid "Could not create table."
+msgstr "No se puede crear la tabla."
-#: ../../Zotlabs/Module/Impel.php:187
-#, php-format
-msgid "%s element installed"
-msgstr "%s elemento instalado"
+#: ../../Zotlabs/Module/Setup.php:203
+msgid "Your site database has been installed."
+msgstr "La base de datos del sitio ha sido instalada."
+
+#: ../../Zotlabs/Module/Setup.php:207
+msgid ""
+"You may need to import the file \"install/schema_xxx.sql\" manually using a "
+"database client."
+msgstr "Podría tener que importar manualmente el fichero \"install/schema_xxx.sql\" usando un cliente de base de datos."
+
+#: ../../Zotlabs/Module/Setup.php:208 ../../Zotlabs/Module/Setup.php:270
+#: ../../Zotlabs/Module/Setup.php:733
+msgid "Please see the file \"install/INSTALL.txt\"."
+msgstr "Por favor, lea el fichero \"install/INSTALL.txt\"."
+
+#: ../../Zotlabs/Module/Setup.php:267
+msgid "System check"
+msgstr "Verificación del sistema"
+
+#: ../../Zotlabs/Module/Setup.php:271 ../../Zotlabs/Module/Photos.php:960
+#: ../../Zotlabs/Module/Events.php:676 ../../Zotlabs/Module/Events.php:685
+#: ../../Zotlabs/Module/Cal.php:333 ../../Zotlabs/Module/Cal.php:340
+msgid "Next"
+msgstr "Siguiente"
+
+#: ../../Zotlabs/Module/Setup.php:272
+msgid "Check again"
+msgstr "Verificar de nuevo"
+
+#: ../../Zotlabs/Module/Setup.php:294
+msgid "Database connection"
+msgstr "Conexión a la base de datos"
+
+#: ../../Zotlabs/Module/Setup.php:295
+msgid ""
+"In order to install $Projectname we need to know how to connect to your "
+"database."
+msgstr "Para instalar $Projectname es necesario saber cómo conectar con su base de datos."
+
+#: ../../Zotlabs/Module/Setup.php:296
+msgid ""
+"Please contact your hosting provider or site administrator if you have "
+"questions about these settings."
+msgstr "Por favor, contacte con el proveedor de servicios o el administrador del sitio si tiene dudas sobre estos ajustes."
+
+#: ../../Zotlabs/Module/Setup.php:297
+msgid ""
+"The database you specify below should already exist. If it does not, please "
+"create it before continuing."
+msgstr "La base de datos que especifique a continuación debe existir ya. Si no es así, por favor, créela antes de seguir."
+
+#: ../../Zotlabs/Module/Setup.php:301
+msgid "Database Server Name"
+msgstr "Nombre del servidor de base de datos"
+
+#: ../../Zotlabs/Module/Setup.php:301
+msgid "Default is 127.0.0.1"
+msgstr "De forma predeterminada es 127.0.0.1"
+
+#: ../../Zotlabs/Module/Setup.php:302
+msgid "Database Port"
+msgstr "Puerto de la base de datos"
+
+#: ../../Zotlabs/Module/Setup.php:302
+msgid "Communication port number - use 0 for default"
+msgstr "Número del puerto de comunicaciones - use 0 como valor por defecto"
+
+#: ../../Zotlabs/Module/Setup.php:303
+msgid "Database Login Name"
+msgstr "Usuario de la base de datos"
+
+#: ../../Zotlabs/Module/Setup.php:304
+msgid "Database Login Password"
+msgstr "Contraseña de acceso a la base de datos"
+
+#: ../../Zotlabs/Module/Setup.php:305
+msgid "Database Name"
+msgstr "Nombre de la base de datos"
+
+#: ../../Zotlabs/Module/Setup.php:306
+msgid "Database Type"
+msgstr "Tipo de base de datos"
+
+#: ../../Zotlabs/Module/Setup.php:308 ../../Zotlabs/Module/Setup.php:354
+msgid "Site administrator email address"
+msgstr "Dirección de correo electrónico del administrador del sitio"
-#: ../../Zotlabs/Module/Impel.php:190
+#: ../../Zotlabs/Module/Setup.php:308 ../../Zotlabs/Module/Setup.php:354
+msgid ""
+"Your account email address must match this in order to use the web admin "
+"panel."
+msgstr "Su cuenta deberá usar la misma dirección de correo electrónico para poder utilizar el panel de administración web."
+
+#: ../../Zotlabs/Module/Setup.php:309 ../../Zotlabs/Module/Setup.php:356
+msgid "Website URL"
+msgstr "Dirección del sitio web"
+
+#: ../../Zotlabs/Module/Setup.php:309 ../../Zotlabs/Module/Setup.php:356
+msgid "Please use SSL (https) URL if available."
+msgstr "Por favor, use SSL (https) si está disponible."
+
+#: ../../Zotlabs/Module/Setup.php:310 ../../Zotlabs/Module/Setup.php:360
+msgid "Please select a default timezone for your website"
+msgstr "Por favor, selecciones el huso horario por defecto de su sitio web"
+
+#: ../../Zotlabs/Module/Setup.php:335 ../../Zotlabs/Module/Admin.php:489
+msgid "Basic/Minimal Social Networking"
+msgstr "Red social básica o mínima"
+
+#: ../../Zotlabs/Module/Setup.php:336 ../../Zotlabs/Module/Admin.php:490
+msgid "Standard Configuration (default)"
+msgstr "Configuración estándar (por defecto)"
+
+#: ../../Zotlabs/Module/Setup.php:337 ../../Zotlabs/Module/Admin.php:491
+msgid "Professional"
+msgstr "Profesional"
+
+#: ../../Zotlabs/Module/Setup.php:343
+msgid "Site settings"
+msgstr "Ajustes del sitio"
+
+#: ../../Zotlabs/Module/Setup.php:358 ../../Zotlabs/Module/Admin.php:512
+msgid "Server Configuration/Role"
+msgstr "Configuración del servidor"
+
+#: ../../Zotlabs/Module/Setup.php:399
+msgid "PHP version 5.5 or greater is required."
+msgstr "Se requiere la versión 5.5, o superior, de PHP."
+
+#: ../../Zotlabs/Module/Setup.php:400
+msgid "PHP version"
+msgstr "Versión de PHP"
+
+#: ../../Zotlabs/Module/Setup.php:415
+msgid "Could not find a command line version of PHP in the web server PATH."
+msgstr "No se puede encontrar una versión en línea de comandos de PHP en la ruta del servidor web."
+
+#: ../../Zotlabs/Module/Setup.php:416
+msgid ""
+"If you don't have a command line version of PHP installed on server, you "
+"will not be able to run background polling via cron."
+msgstr "Si no tiene instalada la versión de línea de comandos de PHP en su servidor, no podrá realizar envíos en segundo plano mediante cron."
+
+#: ../../Zotlabs/Module/Setup.php:420
+msgid "PHP executable path"
+msgstr "Ruta del ejecutable PHP"
+
+#: ../../Zotlabs/Module/Setup.php:420
+msgid ""
+"Enter full path to php executable. You can leave this blank to continue the "
+"installation."
+msgstr "Introducir la ruta completa del ejecutable PHP. Puede dejar la línea en blanco para continuar la instalación."
+
+#: ../../Zotlabs/Module/Setup.php:425
+msgid "Command line PHP"
+msgstr "PHP en línea de comandos"
+
+#: ../../Zotlabs/Module/Setup.php:434
+msgid ""
+"The command line version of PHP on your system does not have "
+"\"register_argc_argv\" enabled."
+msgstr "La línea de comandos PHP de su sistema no tiene activado \"register_argc_argv\"."
+
+#: ../../Zotlabs/Module/Setup.php:435
+msgid "This is required for message delivery to work."
+msgstr "Esto es necesario para que funcione la transmisión de mensajes."
+
+#: ../../Zotlabs/Module/Setup.php:438
+msgid "PHP register_argc_argv"
+msgstr "PHP register_argc_argv"
+
+#: ../../Zotlabs/Module/Setup.php:456
#, php-format
-msgid "%s element installation failed"
-msgstr "Elemento con instalación fallida: %s"
+msgid ""
+"Your max allowed total upload size is set to %s. Maximum size of one file to"
+" upload is set to %s. You are allowed to upload up to %d files at once."
+msgstr "La carga máxima que se le permite subir está establecida en %s. El tamaño máximo de un fichero está establecido en %s. Está permitido subir hasta un máximo de %d ficheros de una sola vez."
-#: ../../Zotlabs/Module/Cal.php:69
-msgid "Permissions denied."
-msgstr "Permisos denegados."
+#: ../../Zotlabs/Module/Setup.php:461
+msgid "You can adjust these settings in the servers php.ini."
+msgstr "Puede ajustar estos valores en el fichero php.ini de su servidor."
-#: ../../Zotlabs/Module/Cal.php:337
-msgid "Import"
-msgstr "Importar"
+#: ../../Zotlabs/Module/Setup.php:463
+msgid "PHP upload limits"
+msgstr "Límites PHP de subida"
-#: ../../Zotlabs/Module/Dirsearch.php:25 ../../Zotlabs/Module/Regdir.php:49
-msgid "This site is not a directory server"
-msgstr "Este sitio no es un servidor de directorio"
+#: ../../Zotlabs/Module/Setup.php:486
+msgid ""
+"Error: the \"openssl_pkey_new\" function on this system is not able to "
+"generate encryption keys"
+msgstr "Error: La función \"openssl_pkey_new\" en este sistema no es capaz de general claves de cifrado."
-#: ../../Zotlabs/Module/Dirsearch.php:33
-msgid "This directory server requires an access token"
-msgstr "El servidor de este directorio necesita un \"token\" de acceso"
+#: ../../Zotlabs/Module/Setup.php:487
+msgid ""
+"If running under Windows, please see "
+"\"http://www.php.net/manual/en/openssl.installation.php\"."
+msgstr "Si está en un servidor Windows, por favor, lea \"http://www.php.net/manual/en/openssl.installation.php\"."
-#: ../../Zotlabs/Module/Chat.php:25 ../../Zotlabs/Module/Channel.php:28
-#: ../../Zotlabs/Module/Wiki.php:20
-msgid "You must be logged in to see this page."
-msgstr "Debe haber iniciado sesión para poder ver esta página."
+#: ../../Zotlabs/Module/Setup.php:490
+msgid "Generate encryption keys"
+msgstr "Generar claves de cifrado"
-#: ../../Zotlabs/Module/Chat.php:181
-msgid "Room not found"
-msgstr "Sala no encontrada"
+#: ../../Zotlabs/Module/Setup.php:502
+msgid "libCurl PHP module"
+msgstr "módulo libCurl PHP"
-#: ../../Zotlabs/Module/Chat.php:197
-msgid "Leave Room"
-msgstr "Abandonar la sala"
+#: ../../Zotlabs/Module/Setup.php:503
+msgid "GD graphics PHP module"
+msgstr "módulo PHP GD graphics"
-#: ../../Zotlabs/Module/Chat.php:198
-msgid "Delete Room"
-msgstr "Eliminar esta sala"
+#: ../../Zotlabs/Module/Setup.php:504
+msgid "OpenSSL PHP module"
+msgstr "módulo PHP OpenSSL"
-#: ../../Zotlabs/Module/Chat.php:199
-msgid "I am away right now"
-msgstr "Estoy ausente momentáneamente"
+#: ../../Zotlabs/Module/Setup.php:505
+msgid "mysqli or postgres PHP module"
+msgstr "módulo PHP mysqli o postgres"
-#: ../../Zotlabs/Module/Chat.php:200
-msgid "I am online"
-msgstr "Estoy conectado/a"
+#: ../../Zotlabs/Module/Setup.php:506
+msgid "mb_string PHP module"
+msgstr "módulo PHP mb_string"
-#: ../../Zotlabs/Module/Chat.php:202
-msgid "Bookmark this room"
-msgstr "Añadir esta sala a Marcadores"
+#: ../../Zotlabs/Module/Setup.php:507
+msgid "xml PHP module"
+msgstr "módulo PHP xml"
-#: ../../Zotlabs/Module/Chat.php:205 ../../Zotlabs/Module/Mail.php:197
-#: ../../Zotlabs/Module/Mail.php:306 ../../include/conversation.php:1181
-msgid "Please enter a link URL:"
-msgstr "Por favor, introduzca la dirección del enlace:"
+#: ../../Zotlabs/Module/Setup.php:511 ../../Zotlabs/Module/Setup.php:513
+msgid "Apache mod_rewrite module"
+msgstr "módulo Apache mod_rewrite "
-#: ../../Zotlabs/Module/Chat.php:206 ../../Zotlabs/Module/Mail.php:250
-#: ../../Zotlabs/Module/Mail.php:375 ../../Zotlabs/Lib/ThreadItem.php:722
-#: ../../include/conversation.php:1271
-msgid "Encrypt text"
-msgstr "Cifrar texto"
+#: ../../Zotlabs/Module/Setup.php:511
+msgid ""
+"Error: Apache webserver mod-rewrite module is required but not installed."
+msgstr "Error: se necesita el módulo del servidor web Apache mod-rewrite pero no está instalado."
-#: ../../Zotlabs/Module/Chat.php:207 ../../Zotlabs/Module/Editwebpage.php:146
-#: ../../Zotlabs/Module/Mail.php:244 ../../Zotlabs/Module/Mail.php:369
-#: ../../Zotlabs/Module/Editblock.php:111 ../../include/conversation.php:1146
-msgid "Insert web link"
-msgstr "Insertar enlace web"
+#: ../../Zotlabs/Module/Setup.php:517 ../../Zotlabs/Module/Setup.php:520
+msgid "proc_open"
+msgstr "proc_open"
-#: ../../Zotlabs/Module/Chat.php:218
-msgid "Feature disabled."
-msgstr "Funcionalidad deshabilitada."
+#: ../../Zotlabs/Module/Setup.php:517
+msgid ""
+"Error: proc_open is required but is either not installed or has been "
+"disabled in php.ini"
+msgstr "Error: se necesita proc_open pero o no está instalado o ha sido desactivado en el fichero php.ini"
-#: ../../Zotlabs/Module/Chat.php:232
-msgid "New Chatroom"
-msgstr "Nueva sala de chat"
+#: ../../Zotlabs/Module/Setup.php:525
+msgid "Error: libCURL PHP module required but not installed."
+msgstr "Error: se necesita el módulo PHP libCURL pero no está instalado."
-#: ../../Zotlabs/Module/Chat.php:233
-msgid "Chatroom name"
-msgstr "Nombre de la sala de chat"
+#: ../../Zotlabs/Module/Setup.php:529
+msgid ""
+"Error: GD graphics PHP module with JPEG support required but not installed."
+msgstr "Error: el módulo PHP GD graphics es necesario, pero no está instalado."
-#: ../../Zotlabs/Module/Chat.php:234
-msgid "Expiration of chats (minutes)"
-msgstr "Caducidad de los mensajes en los chats (en minutos)"
+#: ../../Zotlabs/Module/Setup.php:533
+msgid "Error: openssl PHP module required but not installed."
+msgstr "Error: el módulo PHP openssl es necesario, pero no está instalado."
-#: ../../Zotlabs/Module/Chat.php:235 ../../Zotlabs/Module/Filestorage.php:152
-#: ../../Zotlabs/Module/Photos.php:669 ../../Zotlabs/Module/Photos.php:1043
-#: ../../Zotlabs/Module/Thing.php:313 ../../Zotlabs/Module/Thing.php:359
-#: ../../include/acl_selectors.php:281
-msgid "Permissions"
-msgstr "Permisos"
+#: ../../Zotlabs/Module/Setup.php:537
+msgid ""
+"Error: mysqli or postgres PHP module required but neither are installed."
+msgstr "Error: el módulo PHP mysqli o postgres es necesario pero ninguno de los dos está instalado."
+
+#: ../../Zotlabs/Module/Setup.php:541
+msgid "Error: mb_string PHP module required but not installed."
+msgstr "Error: el módulo PHP mb_string es necesario, pero no está instalado."
+
+#: ../../Zotlabs/Module/Setup.php:545
+msgid "Error: xml PHP module required for DAV but not installed."
+msgstr "Error: el módulo PHP xml es necesario para DAV, pero no está instalado."
+
+#: ../../Zotlabs/Module/Setup.php:563
+msgid ""
+"The web installer needs to be able to create a file called \".htconfig.php\""
+" in the top folder of your web server and it is unable to do so."
+msgstr "El instalador web no ha podido crear un fichero llamado “.htconfig.php†en la carpeta base de su servidor."
-#: ../../Zotlabs/Module/Chat.php:246
+#: ../../Zotlabs/Module/Setup.php:564
+msgid ""
+"This is most often a permission setting, as the web server may not be able "
+"to write files in your folder - even if you can."
+msgstr "Esto está generalmente ligado a un problema de permisos, a causa del cual el servidor web tiene prohibido modificar ficheros en su carpeta - incluso si usted mismo tiene esos permisos."
+
+#: ../../Zotlabs/Module/Setup.php:565
+msgid ""
+"At the end of this procedure, we will give you a text to save in a file "
+"named .htconfig.php in your Red top folder."
+msgstr "Al término de este procedimiento, podemos crear un fichero de texto para guardar con el nombre .htconfig.php en el directorio raíz de su instalación de Hubzilla."
+
+#: ../../Zotlabs/Module/Setup.php:566
+msgid ""
+"You can alternatively skip this procedure and perform a manual installation."
+" Please see the file \"install/INSTALL.txt\" for instructions."
+msgstr "Como alternativa, puede dejar este procedimiento e intentar realizar una instalación manual. Lea, por favor, el fichero\"install/INSTALL.txt\" para las instrucciones."
+
+#: ../../Zotlabs/Module/Setup.php:569
+msgid ".htconfig.php is writable"
+msgstr ".htconfig.php tiene permisos de escritura"
+
+#: ../../Zotlabs/Module/Setup.php:583
+msgid ""
+"Red uses the Smarty3 template engine to render its web views. Smarty3 "
+"compiles templates to PHP to speed up rendering."
+msgstr "Hubzilla hace uso del motor de plantillas Smarty3 para diseñar sus plantillas gráficas. Smarty3 es más rápido porque compila las plantillas de páginas directamente en PHP."
+
+#: ../../Zotlabs/Module/Setup.php:584
#, php-format
-msgid "%1$s's Chatrooms"
-msgstr "Salas de chat de %1$s"
+msgid ""
+"In order to store these compiled templates, the web server needs to have "
+"write access to the directory %s under the top level web folder."
+msgstr "Para poder guardar las plantillas compiladas, el servidor web necesita permisos para acceder al directorio %s en la carpeta web principal."
-#: ../../Zotlabs/Module/Chat.php:251
-msgid "No chatrooms available"
-msgstr "No hay salas de chat disponibles"
+#: ../../Zotlabs/Module/Setup.php:585 ../../Zotlabs/Module/Setup.php:606
+msgid ""
+"Please ensure that the user that your web server runs as (e.g. www-data) has"
+" write access to this folder."
+msgstr "Por favor, asegúrese de que el servidor web está siendo ejecutado por un usuario que tenga permisos de escritura sobre esta carpeta (por ejemplo, www-data)."
-#: ../../Zotlabs/Module/Chat.php:252 ../../Zotlabs/Module/Profiles.php:778
-#: ../../Zotlabs/Module/Manage.php:143
-msgid "Create New"
-msgstr "Crear"
+#: ../../Zotlabs/Module/Setup.php:586
+#, php-format
+msgid ""
+"Note: as a security measure, you should give the web server write access to "
+"%s only--not the template files (.tpl) that it contains."
+msgstr "Nota: como medida de seguridad, debe dar al servidor web permisos de escritura solo sobre %s - no sobre el fichero de plantilla (.tpl) que contiene."
-#: ../../Zotlabs/Module/Chat.php:255
-msgid "Expiration"
-msgstr "Caducidad"
+#: ../../Zotlabs/Module/Setup.php:589
+#, php-format
+msgid "%s is writable"
+msgstr "%s tiene permisos de escritura"
-#: ../../Zotlabs/Module/Chat.php:256
-msgid "min"
-msgstr "min"
+#: ../../Zotlabs/Module/Setup.php:605
+msgid ""
+"This software uses the store directory to save uploaded files. The web "
+"server needs to have write access to the store directory under the Red top "
+"level folder"
+msgstr "Este software utiliza el directorio de almacenamiento para guardar los archivos subidos. El servidor web debe tener acceso de escritura al directorio de almacenamiento en la carpeta de nivel superior"
-#: ../../Zotlabs/Module/Dreport.php:44
-msgid "Invalid message"
-msgstr "Mensaje no válido"
+#: ../../Zotlabs/Module/Setup.php:609
+msgid "store is writable"
+msgstr "\"store\" tiene permisos de escritura"
-#: ../../Zotlabs/Module/Dreport.php:76
-msgid "no results"
-msgstr "sin resultados"
+#: ../../Zotlabs/Module/Setup.php:642
+msgid ""
+"SSL certificate cannot be validated. Fix certificate or disable https access"
+" to this site."
+msgstr "El certificado SSL no ha podido ser validado. Corrija este problema o desactive el acceso https a este sitio."
-#: ../../Zotlabs/Module/Dreport.php:91
-msgid "channel sync processed"
-msgstr "se ha realizado la sincronización del canal"
+#: ../../Zotlabs/Module/Setup.php:643
+msgid ""
+"If you have https access to your website or allow connections to TCP port "
+"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
+"NOT use self-signed certificates!"
+msgstr "Si su servidor soporta conexiones cifradas SSL o si permite conexiones al puerto TCP 443 (el puerto usado por el protocolo https), debe utilizar un certificado válido. No debe usar un certificado firmado por usted mismo."
-#: ../../Zotlabs/Module/Dreport.php:95
-msgid "queued"
-msgstr "encolado"
+#: ../../Zotlabs/Module/Setup.php:644
+msgid ""
+"This restriction is incorporated because public posts from you may for "
+"example contain references to images on your own hub."
+msgstr "Se ha incorporado esta restricción para evitar que sus publicaciones públicas hagan referencia a imágenes en su propio servidor."
-#: ../../Zotlabs/Module/Dreport.php:99
-msgid "posted"
-msgstr "enviado"
+#: ../../Zotlabs/Module/Setup.php:645
+msgid ""
+"If your certificate is not recognized, members of other sites (who may "
+"themselves have valid certificates) will get a warning message on their own "
+"site complaining about security issues."
+msgstr "Si su certificado no ha sido reconocido, los miembros de otros sitios (con certificados válidos) recibirán mensajes de aviso en sus propios sitios web."
-#: ../../Zotlabs/Module/Dreport.php:103
-msgid "accepted for delivery"
-msgstr "aceptado para el envío"
+#: ../../Zotlabs/Module/Setup.php:646
+msgid ""
+"This can cause usability issues elsewhere (not just on your own site) so we "
+"must insist on this requirement."
+msgstr "Por razones de compatibilidad (sobre el conjunto de la red, no solo sobre su propio sitio), debemos insistir en estos requisitos."
-#: ../../Zotlabs/Module/Dreport.php:107
-msgid "updated"
-msgstr "actualizado"
+#: ../../Zotlabs/Module/Setup.php:647
+msgid ""
+"Providers are available that issue free certificates which are browser-"
+"valid."
+msgstr "Existen varias Autoridades de Certificación que le pueden proporcionar certificados válidos."
-#: ../../Zotlabs/Module/Dreport.php:110
-msgid "update ignored"
-msgstr "actualización ignorada"
+#: ../../Zotlabs/Module/Setup.php:649
+msgid ""
+"If you are confident that the certificate is valid and signed by a trusted "
+"authority, check to see if you have failed to install an intermediate cert. "
+"These are not normally required by browsers, but are required for server-to-"
+"server communications."
+msgstr "Si se tiene la certeza de que el certificado es válido y está firmado por una autoridad de confianza, comprobar para ver si hubo un error al instalar un certificado intermedio. Estos no son normalmente requeridos por los navegadores, pero son necesarios para las comunicaciones de servidor a servidor."
-#: ../../Zotlabs/Module/Dreport.php:113
-msgid "permission denied"
-msgstr "permiso denegado"
+#: ../../Zotlabs/Module/Setup.php:652
+msgid "SSL certificate validation"
+msgstr "validación del certificado SSL"
-#: ../../Zotlabs/Module/Dreport.php:117
-msgid "recipient not found"
-msgstr "destinatario no encontrado"
+#: ../../Zotlabs/Module/Setup.php:658
+msgid ""
+"Url rewrite in .htaccess is not working. Check your server "
+"configuration.Test: "
+msgstr "No se pueden reescribir las direcciones web en .htaccess. Compruebe la configuración de su servidor:"
-#: ../../Zotlabs/Module/Dreport.php:120
-msgid "mail recalled"
-msgstr "mensaje de correo revocado"
+#: ../../Zotlabs/Module/Setup.php:661
+msgid "Url rewrite is working"
+msgstr "La reescritura de las direcciones funciona correctamente"
-#: ../../Zotlabs/Module/Dreport.php:123
-msgid "duplicate mail received"
-msgstr "se ha recibido mensaje duplicado"
+#: ../../Zotlabs/Module/Setup.php:670
+msgid ""
+"The database configuration file \".htconfig.php\" could not be written. "
+"Please use the enclosed text to create a configuration file in your web "
+"server root."
+msgstr "El fichero de configuración de la base de datos .htconfig.php no se ha podido modificar. Por favor, copie el texto generado en un fichero con ese nombre en el directorio raíz de su servidor."
-#: ../../Zotlabs/Module/Dreport.php:126
-msgid "mail delivered"
-msgstr "correo enviado"
+#: ../../Zotlabs/Module/Setup.php:694
+msgid "Errors encountered creating database tables."
+msgstr "Se han encontrado errores al crear las tablas de la base de datos."
-#: ../../Zotlabs/Module/Dreport.php:146
+#: ../../Zotlabs/Module/Setup.php:731
+msgid "<h1>What next</h1>"
+msgstr "<h1>Siguiente paso</h1>"
+
+#: ../../Zotlabs/Module/Setup.php:732
+msgid ""
+"IMPORTANT: You will need to [manually] setup a scheduled task for the "
+"poller."
+msgstr "IMPORTANTE: Debe crear [manualmente] una tarea programada para el \"poller\"."
+
+#: ../../Zotlabs/Module/Directory.php:243
#, php-format
-msgid "Delivery report for %1$s"
-msgstr "Informe de entrega para %1$s"
+msgid "%d rating"
+msgid_plural "%d ratings"
+msgstr[0] "%d valoración"
+msgstr[1] "%d valoraciones"
-#: ../../Zotlabs/Module/Dreport.php:149
-msgid "Options"
-msgstr "Opciones"
+#: ../../Zotlabs/Module/Directory.php:254
+msgid "Gender: "
+msgstr "Género:"
-#: ../../Zotlabs/Module/Dreport.php:150
-msgid "Redeliver"
-msgstr "Volver a enviar"
+#: ../../Zotlabs/Module/Directory.php:256
+msgid "Status: "
+msgstr "Estado:"
+
+#: ../../Zotlabs/Module/Directory.php:258
+msgid "Homepage: "
+msgstr "Página personal:"
+
+#: ../../Zotlabs/Module/Directory.php:306 ../../include/channel.php:1207
+msgid "Age:"
+msgstr "Edad:"
+
+#: ../../Zotlabs/Module/Directory.php:311 ../../include/channel.php:1049
+#: ../../include/event.php:52 ../../include/event.php:84
+#: ../../include/bb2diaspora.php:507
+msgid "Location:"
+msgstr "Ubicación:"
+
+#: ../../Zotlabs/Module/Directory.php:317
+msgid "Description:"
+msgstr "Descripción:"
+
+#: ../../Zotlabs/Module/Directory.php:322 ../../include/channel.php:1223
+msgid "Hometown:"
+msgstr "Lugar de nacimiento:"
+
+#: ../../Zotlabs/Module/Directory.php:324 ../../include/channel.php:1231
+msgid "About:"
+msgstr "Sobre mí:"
+
+#: ../../Zotlabs/Module/Directory.php:325 ../../Zotlabs/Module/Match.php:68
+#: ../../Zotlabs/Module/Suggest.php:56 ../../include/widgets.php:147
+#: ../../include/widgets.php:184 ../../include/connections.php:78
+#: ../../include/channel.php:1034 ../../include/conversation.php:957
+msgid "Connect"
+msgstr "Conectar"
+
+#: ../../Zotlabs/Module/Directory.php:326
+msgid "Public Forum:"
+msgstr "Foro público:"
+
+#: ../../Zotlabs/Module/Directory.php:329
+msgid "Keywords: "
+msgstr "Palabras clave:"
+
+#: ../../Zotlabs/Module/Directory.php:332
+msgid "Don't suggest"
+msgstr "No sugerir:"
+
+#: ../../Zotlabs/Module/Directory.php:334
+msgid "Common connections:"
+msgstr "Conexiones comunes:"
+
+#: ../../Zotlabs/Module/Directory.php:383
+msgid "Global Directory"
+msgstr "Directorio global:"
+
+#: ../../Zotlabs/Module/Directory.php:383
+msgid "Local Directory"
+msgstr "Directorio local:"
+
+#: ../../Zotlabs/Module/Directory.php:389
+msgid "Finding:"
+msgstr "Encontrar:"
+
+#: ../../Zotlabs/Module/Directory.php:392 ../../Zotlabs/Module/Suggest.php:64
+#: ../../include/contact_widgets.php:24
+msgid "Channel Suggestions"
+msgstr "Sugerencias de canales"
+
+#: ../../Zotlabs/Module/Directory.php:394
+msgid "next page"
+msgstr "siguiente página"
+
+#: ../../Zotlabs/Module/Directory.php:394
+msgid "previous page"
+msgstr "página anterior"
+
+#: ../../Zotlabs/Module/Directory.php:395
+msgid "Sort options"
+msgstr "Ordenar opciones"
+
+#: ../../Zotlabs/Module/Directory.php:396
+msgid "Alphabetic"
+msgstr "Alfabético"
+
+#: ../../Zotlabs/Module/Directory.php:397
+msgid "Reverse Alphabetic"
+msgstr "Alfabético inverso"
+
+#: ../../Zotlabs/Module/Directory.php:398
+msgid "Newest to Oldest"
+msgstr "De más nuevo a más antiguo"
+
+#: ../../Zotlabs/Module/Directory.php:399
+msgid "Oldest to Newest"
+msgstr "De más antiguo a más nuevo"
+
+#: ../../Zotlabs/Module/Directory.php:416
+msgid "No entries (some entries may be hidden)."
+msgstr "Sin entradas (algunas entradas pueden estar ocultas)."
+
+#: ../../Zotlabs/Module/Dirsearch.php:25 ../../Zotlabs/Module/Regdir.php:49
+msgid "This site is not a directory server"
+msgstr "Este sitio no es un servidor de directorio"
+
+#: ../../Zotlabs/Module/Dirsearch.php:33
+msgid "This directory server requires an access token"
+msgstr "El servidor de este directorio necesita un \"token\" de acceso"
+
+#: ../../Zotlabs/Module/Editblock.php:79 ../../Zotlabs/Module/Editblock.php:95
+#: ../../Zotlabs/Module/Editlayout.php:79
+#: ../../Zotlabs/Module/Editwebpage.php:80
+#: ../../Zotlabs/Module/Editpost.php:24
+msgid "Item not found"
+msgstr "Elemento no encontrado"
+
+#: ../../Zotlabs/Module/Editblock.php:108 ../../Zotlabs/Module/Blocks.php:97
+#: ../../Zotlabs/Module/Blocks.php:155
+msgid "Block Name"
+msgstr "Nombre del bloque"
+
+#: ../../Zotlabs/Module/Editblock.php:111
+#: ../../Zotlabs/Module/Editwebpage.php:146 ../../Zotlabs/Module/Mail.php:244
+#: ../../Zotlabs/Module/Mail.php:369 ../../Zotlabs/Module/Chat.php:207
+#: ../../include/conversation.php:1148
+msgid "Insert web link"
+msgstr "Insertar enlace web"
+
+#: ../../Zotlabs/Module/Editblock.php:124 ../../include/conversation.php:1255
+msgid "Title (optional)"
+msgstr "Título (opcional)"
+
+#: ../../Zotlabs/Module/Editblock.php:133
+msgid "Edit Block"
+msgstr "Modificar este bloque"
#: ../../Zotlabs/Module/Editlayout.php:127
#: ../../Zotlabs/Module/Layouts.php:128 ../../Zotlabs/Module/Layouts.php:188
@@ -1796,62 +1761,122 @@ msgstr "Modificar la plantilla"
msgid "Page link"
msgstr "Enlace de la página"
-#: ../../Zotlabs/Module/Editwebpage.php:168
+#: ../../Zotlabs/Module/Editwebpage.php:169
msgid "Edit Webpage"
msgstr "Editar la página web"
-#: ../../Zotlabs/Module/Group.php:24
-msgid "Privacy group created."
-msgstr "El grupo de canales ha sido creado."
+#: ../../Zotlabs/Module/Menu.php:49
+msgid "Unable to update menu."
+msgstr "No se puede actualizar el menú."
-#: ../../Zotlabs/Module/Group.php:30
-msgid "Could not create privacy group."
-msgstr "No se puede crear el grupo de canales"
+#: ../../Zotlabs/Module/Menu.php:60
+msgid "Unable to create menu."
+msgstr "No se puede crear el menú."
-#: ../../Zotlabs/Module/Group.php:42 ../../Zotlabs/Module/Group.php:141
-#: ../../include/items.php:3902
-msgid "Privacy group not found."
-msgstr "Grupo de canales no encontrado."
+#: ../../Zotlabs/Module/Menu.php:98 ../../Zotlabs/Module/Menu.php:110
+msgid "Menu Name"
+msgstr "Nombre del menú"
-#: ../../Zotlabs/Module/Group.php:58
-msgid "Privacy group updated."
-msgstr "Grupo de canales actualizado."
+#: ../../Zotlabs/Module/Menu.php:98
+msgid "Unique name (not visible on webpage) - required"
+msgstr "Nombre único (no será visible en la página web) - requerido"
-#: ../../Zotlabs/Module/Group.php:90
-msgid "Create a group of channels."
-msgstr "Crear un grupo de canales."
+#: ../../Zotlabs/Module/Menu.php:99 ../../Zotlabs/Module/Menu.php:111
+msgid "Menu Title"
+msgstr "Título del menú"
-#: ../../Zotlabs/Module/Group.php:91 ../../Zotlabs/Module/Group.php:184
-msgid "Privacy group name: "
-msgstr "Nombre del grupo de canales:"
+#: ../../Zotlabs/Module/Menu.php:99
+msgid "Visible on webpage - leave empty for no title"
+msgstr "Visible en la página web - no ponga nada si no desea un título"
-#: ../../Zotlabs/Module/Group.php:93 ../../Zotlabs/Module/Group.php:187
-msgid "Members are visible to other channels"
-msgstr "Los miembros son visibles para otros canales"
+#: ../../Zotlabs/Module/Menu.php:100
+msgid "Allow Bookmarks"
+msgstr "Permitir marcadores"
-#: ../../Zotlabs/Module/Group.php:111
-msgid "Privacy group removed."
-msgstr "Grupo de canales eliminado."
+#: ../../Zotlabs/Module/Menu.php:100 ../../Zotlabs/Module/Menu.php:157
+msgid "Menu may be used to store saved bookmarks"
+msgstr "El menú se puede usar para guardar marcadores"
-#: ../../Zotlabs/Module/Group.php:113
-msgid "Unable to remove privacy group."
-msgstr "Imposible eliminar el grupo de canales."
+#: ../../Zotlabs/Module/Menu.php:101 ../../Zotlabs/Module/Menu.php:159
+msgid "Submit and proceed"
+msgstr "Enviar y proceder"
-#: ../../Zotlabs/Module/Group.php:183
-msgid "Privacy group editor"
-msgstr "Editor de grupos de canales"
+#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2263
+msgid "Menus"
+msgstr "Menús"
-#: ../../Zotlabs/Module/Group.php:197
-msgid "Members"
-msgstr "Miembros"
+#: ../../Zotlabs/Module/Menu.php:113 ../../Zotlabs/Module/Locs.php:120
+msgid "Drop"
+msgstr "Eliminar"
-#: ../../Zotlabs/Module/Group.php:199
-msgid "All Connected Channels"
-msgstr "Todos los canales conectados"
+#: ../../Zotlabs/Module/Menu.php:114 ../../Zotlabs/Module/Webpages.php:228
+#: ../../Zotlabs/Module/Blocks.php:157 ../../Zotlabs/Module/Layouts.php:190
+#: ../../include/page_widgets.php:47
+msgid "Created"
+msgstr "Creado"
-#: ../../Zotlabs/Module/Group.php:231
-msgid "Click on a channel to add or remove."
-msgstr "Haga clic en un canal para agregarlo o quitarlo."
+#: ../../Zotlabs/Module/Menu.php:115 ../../Zotlabs/Module/Webpages.php:229
+#: ../../Zotlabs/Module/Blocks.php:158 ../../Zotlabs/Module/Layouts.php:191
+#: ../../include/page_widgets.php:48
+msgid "Edited"
+msgstr "Editado"
+
+#: ../../Zotlabs/Module/Menu.php:117
+msgid "Bookmarks allowed"
+msgstr "Marcadores permitidos"
+
+#: ../../Zotlabs/Module/Menu.php:119
+msgid "Delete this menu"
+msgstr "Borrar este menú"
+
+#: ../../Zotlabs/Module/Menu.php:120 ../../Zotlabs/Module/Menu.php:154
+msgid "Edit menu contents"
+msgstr "Editar los contenidos del menú"
+
+#: ../../Zotlabs/Module/Menu.php:121
+msgid "Edit this menu"
+msgstr "Modificar este menú"
+
+#: ../../Zotlabs/Module/Menu.php:136
+msgid "Menu could not be deleted."
+msgstr "El menú no puede ser eliminado."
+
+#: ../../Zotlabs/Module/Menu.php:144 ../../Zotlabs/Module/Mitem.php:28
+msgid "Menu not found."
+msgstr "Menú no encontrado"
+
+#: ../../Zotlabs/Module/Menu.php:149
+msgid "Edit Menu"
+msgstr "Modificar el menú"
+
+#: ../../Zotlabs/Module/Menu.php:153
+msgid "Add or remove entries to this menu"
+msgstr "Añadir o quitar entradas en este menú"
+
+#: ../../Zotlabs/Module/Menu.php:155
+msgid "Menu name"
+msgstr "Nombre del menú"
+
+#: ../../Zotlabs/Module/Menu.php:155
+msgid "Must be unique, only seen by you"
+msgstr "Debe ser único, solo será visible para usted"
+
+#: ../../Zotlabs/Module/Menu.php:156
+msgid "Menu title"
+msgstr "Título del menú"
+
+#: ../../Zotlabs/Module/Menu.php:156
+msgid "Menu title as seen by others"
+msgstr "El título del menú tal como será visto por los demás"
+
+#: ../../Zotlabs/Module/Menu.php:157
+msgid "Allow bookmarks"
+msgstr "Permitir marcadores"
+
+#: ../../Zotlabs/Module/Menu.php:166 ../../Zotlabs/Module/Mitem.php:120
+#: ../../Zotlabs/Module/Xchan.php:41
+msgid "Not found."
+msgstr "No encontrado."
#: ../../Zotlabs/Module/Appman.php:37 ../../Zotlabs/Module/Appman.php:53
msgid "App installed."
@@ -1877,10 +1902,22 @@ msgstr "Crear una aplicación"
msgid "Name of app"
msgstr "Nombre de la aplicación"
+#: ../../Zotlabs/Module/Appman.php:115 ../../Zotlabs/Module/Appman.php:116
+#: ../../Zotlabs/Module/Profiles.php:709 ../../Zotlabs/Module/Profiles.php:713
+#: ../../Zotlabs/Module/Events.php:452 ../../Zotlabs/Module/Events.php:457
+#: ../../include/datetime.php:245
+msgid "Required"
+msgstr "Obligatorio"
+
#: ../../Zotlabs/Module/Appman.php:116
msgid "Location (URL) of app"
msgstr "Dirección (URL) de la aplicación"
+#: ../../Zotlabs/Module/Appman.php:117 ../../Zotlabs/Module/Events.php:465
+#: ../../Zotlabs/Module/Rbmark.php:101
+msgid "Description"
+msgstr "Descripción"
+
#: ../../Zotlabs/Module/Appman.php:118
msgid "Photo icon URL"
msgstr "Dirección del icono"
@@ -1891,7 +1928,7 @@ msgstr "80 x 80 pixels - opcional"
#: ../../Zotlabs/Module/Appman.php:119
msgid "Categories (optional, comma separated list)"
-msgstr "Categorías (opcional, lista separada por comas)"
+msgstr "Temas (opcional, lista separada por comas)"
#: ../../Zotlabs/Module/Appman.php:120
msgid "Version ID"
@@ -1916,7 +1953,7 @@ msgstr "Ayuda:"
#: ../../Zotlabs/Module/Help.php:85 ../../Zotlabs/Module/Help.php:90
#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Lib/Apps.php:225
-#: ../../include/nav.php:161
+#: ../../include/nav.php:163
msgid "Help"
msgstr "Ayuda"
@@ -1956,13 +1993,23 @@ msgstr "Compartir contenido desde Firefox a $Projectname"
msgid "Activate the Firefox $Projectname provider"
msgstr "Servicio de compartición de Firefox: activar el proveedor $Projectname "
-#: ../../Zotlabs/Module/Acl.php:312
-msgid "network"
-msgstr "red"
+#: ../../Zotlabs/Module/Home.php:74 ../../Zotlabs/Module/Home.php:82
+#: ../../Zotlabs/Module/Siteinfo.php:48
+msgid "$Projectname"
+msgstr "$Projectname"
-#: ../../Zotlabs/Module/Acl.php:322
-msgid "RSS"
-msgstr "RSS"
+#: ../../Zotlabs/Module/Home.php:92
+#, php-format
+msgid "Welcome to %s"
+msgstr "Bienvenido a %s"
+
+#: ../../Zotlabs/Module/Lockview.php:75
+msgid "Remote privacy information not available."
+msgstr "La información privada remota no está disponible."
+
+#: ../../Zotlabs/Module/Lockview.php:96
+msgid "Visible to:"
+msgstr "Visible para:"
#: ../../Zotlabs/Module/Filestorage.php:87
msgid "Permission Denied."
@@ -1976,585 +2023,832 @@ msgstr "Fichero no encontrado."
msgid "Edit file permissions"
msgstr "Modificar los permisos del fichero"
-#: ../../Zotlabs/Module/Filestorage.php:155
+#: ../../Zotlabs/Module/Filestorage.php:152
+#: ../../Zotlabs/Module/Photos.php:669 ../../Zotlabs/Module/Photos.php:1047
+#: ../../Zotlabs/Module/Thing.php:313 ../../Zotlabs/Module/Thing.php:363
+#: ../../Zotlabs/Module/Chat.php:234 ../../include/acl_selectors.php:179
+msgid "Permissions"
+msgstr "Permisos"
+
+#: ../../Zotlabs/Module/Filestorage.php:159
msgid "Set/edit permissions"
msgstr "Establecer/editar los permisos"
-#: ../../Zotlabs/Module/Filestorage.php:156
+#: ../../Zotlabs/Module/Filestorage.php:160
msgid "Include all files and sub folders"
msgstr "Incluir todos los ficheros y subcarpetas"
-#: ../../Zotlabs/Module/Filestorage.php:157
+#: ../../Zotlabs/Module/Filestorage.php:161
msgid "Return to file list"
msgstr "Volver a la lista de ficheros"
-#: ../../Zotlabs/Module/Filestorage.php:159
+#: ../../Zotlabs/Module/Filestorage.php:163
msgid "Copy/paste this code to attach file to a post"
msgstr "Copiar/pegar este código para adjuntar el fichero al envío"
-#: ../../Zotlabs/Module/Filestorage.php:160
+#: ../../Zotlabs/Module/Filestorage.php:164
msgid "Copy/paste this URL to link file from a web page"
msgstr "Copiar/pegar esta dirección para enlazar el fichero desde una página web"
-#: ../../Zotlabs/Module/Filestorage.php:162
+#: ../../Zotlabs/Module/Filestorage.php:166
msgid "Share this file"
msgstr "Compartir este fichero"
-#: ../../Zotlabs/Module/Filestorage.php:163
+#: ../../Zotlabs/Module/Filestorage.php:167
msgid "Show URL to this file"
msgstr "Mostrar la dirección de este fichero"
-#: ../../Zotlabs/Module/Filestorage.php:164
+#: ../../Zotlabs/Module/Filestorage.php:168
msgid "Notify your contacts about this file"
msgstr "Avisar a sus contactos sobre este fichero"
-#: ../../Zotlabs/Module/Layouts.php:183 ../../include/text.php:2240
-msgid "Layouts"
-msgstr "Plantillas"
+#: ../../Zotlabs/Module/Settings.php:64
+msgid "Name is required"
+msgstr "El nombre es obligatorio"
-#: ../../Zotlabs/Module/Layouts.php:185
-msgid "Comanche page description language help"
-msgstr "Página de ayuda del lenguaje de descripción de páginas (PDL) Comanche"
+#: ../../Zotlabs/Module/Settings.php:68
+msgid "Key and Secret are required"
+msgstr "\"Key\" y \"Secret\" son obligatorios"
-#: ../../Zotlabs/Module/Layouts.php:189
-msgid "Layout Description"
-msgstr "Descripción de la plantilla"
+#: ../../Zotlabs/Module/Settings.php:72 ../../Zotlabs/Module/Settings.php:708
+#: ../../Zotlabs/Module/Admin.php:1449 ../../Zotlabs/Lib/Apps.php:334
+msgid "Update"
+msgstr "Actualizar"
-#: ../../Zotlabs/Module/Layouts.php:190 ../../Zotlabs/Module/Menu.php:114
-#: ../../Zotlabs/Module/Blocks.php:157 ../../Zotlabs/Module/Webpages.php:205
-#: ../../include/page_widgets.php:47
-msgid "Created"
-msgstr "Creado"
+#: ../../Zotlabs/Module/Settings.php:138
+#, php-format
+msgid "This channel is limited to %d tokens"
+msgstr "Este canal tiene un límite de %d tokens"
-#: ../../Zotlabs/Module/Layouts.php:191 ../../Zotlabs/Module/Menu.php:115
-#: ../../Zotlabs/Module/Blocks.php:158 ../../Zotlabs/Module/Webpages.php:206
-#: ../../include/page_widgets.php:48
-msgid "Edited"
-msgstr "Editado"
+#: ../../Zotlabs/Module/Settings.php:144
+msgid "Name and Password are required."
+msgstr "Se requiere el nombre y la contraseña."
-#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Module/Photos.php:1070
-#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Webpages.php:195
-#: ../../include/conversation.php:1219
-msgid "Share"
-msgstr "Compartir"
+#: ../../Zotlabs/Module/Settings.php:184
+msgid "Token saved."
+msgstr "Token salvado."
-#: ../../Zotlabs/Module/Layouts.php:194
-msgid "Download PDL file"
-msgstr "Descargar el fichero PDL"
+#: ../../Zotlabs/Module/Settings.php:312
+msgid "Not valid email."
+msgstr "Correo electrónico no válido."
-#: ../../Zotlabs/Module/Like.php:19
-msgid "Like/Dislike"
-msgstr "Me gusta/No me gusta"
+#: ../../Zotlabs/Module/Settings.php:315
+msgid "Protected email address. Cannot change to that email."
+msgstr "Dirección de correo electrónico protegida. No se puede cambiar a ella."
-#: ../../Zotlabs/Module/Like.php:24
-msgid "This action is restricted to members."
-msgstr "Esta acción está restringida solo para miembros."
+#: ../../Zotlabs/Module/Settings.php:324
+msgid "System failure storing new email. Please try again."
+msgstr "Fallo de sistema al guardar el nuevo correo electrónico. Por favor, inténtelo de nuevo."
-#: ../../Zotlabs/Module/Like.php:25
+#: ../../Zotlabs/Module/Settings.php:341
+msgid "Password verification failed."
+msgstr "La comprobación de la contraseña ha fallado."
+
+#: ../../Zotlabs/Module/Settings.php:348
+msgid "Passwords do not match. Password unchanged."
+msgstr "Las contraseñas no coinciden. La contraseña no se ha cambiado."
+
+#: ../../Zotlabs/Module/Settings.php:352
+msgid "Empty passwords are not allowed. Password unchanged."
+msgstr "No se permiten contraseñas vacías. La contraseña no se ha cambiado."
+
+#: ../../Zotlabs/Module/Settings.php:366
+msgid "Password changed."
+msgstr "Contraseña cambiada."
+
+#: ../../Zotlabs/Module/Settings.php:368
+msgid "Password update failed. Please try again."
+msgstr "La actualización de la contraseña ha fallado. Por favor, inténtalo de nuevo."
+
+#: ../../Zotlabs/Module/Settings.php:429 ../../Zotlabs/Module/Settings.php:433
+#: ../../Zotlabs/Module/Settings.php:434 ../../Zotlabs/Module/Settings.php:437
+#: ../../Zotlabs/Module/Settings.php:448 ../../Zotlabs/Module/Connedit.php:627
+#: ../../include/widgets.php:495 ../../include/channel.php:402
+#: ../../include/channel.php:403 ../../include/channel.php:410
+#: ../../include/selectors.php:123
+msgid "Friends"
+msgstr "Amigos/as"
+
+#: ../../Zotlabs/Module/Settings.php:617
+msgid "Settings updated."
+msgstr "Ajustes actualizados."
+
+#: ../../Zotlabs/Module/Settings.php:681 ../../Zotlabs/Module/Settings.php:707
+#: ../../Zotlabs/Module/Settings.php:743
+msgid "Add application"
+msgstr "Añadir aplicación"
+
+#: ../../Zotlabs/Module/Settings.php:684
+msgid "Name of application"
+msgstr "Nombre de la aplicación"
+
+#: ../../Zotlabs/Module/Settings.php:685 ../../Zotlabs/Module/Settings.php:711
+msgid "Consumer Key"
+msgstr "Consumer Key"
+
+#: ../../Zotlabs/Module/Settings.php:685 ../../Zotlabs/Module/Settings.php:686
+msgid "Automatically generated - change if desired. Max length 20"
+msgstr "Generado automáticamente - si lo desea, cámbielo. Longitud máxima: 20"
+
+#: ../../Zotlabs/Module/Settings.php:686 ../../Zotlabs/Module/Settings.php:712
+msgid "Consumer Secret"
+msgstr "Consumer Secret"
+
+#: ../../Zotlabs/Module/Settings.php:687 ../../Zotlabs/Module/Settings.php:713
+msgid "Redirect"
+msgstr "Redirigir"
+
+#: ../../Zotlabs/Module/Settings.php:687
msgid ""
-"Please <a href=\"rmagic\">login with your $Projectname ID</a> or <a "
-"href=\"register\">register as a new $Projectname member</a> to continue."
-msgstr "Por favor, <a href=\"rmagic\">identifíquese con su $Projectname ID</a> o <a href=\"register\">rregístrese como un nuevo $Projectname member</a> para continuar."
+"Redirect URI - leave blank unless your application specifically requires "
+"this"
+msgstr "URI de redirección - dejar en blanco a menos que su aplicación específicamente lo requiera"
-#: ../../Zotlabs/Module/Like.php:105 ../../Zotlabs/Module/Like.php:131
-#: ../../Zotlabs/Module/Like.php:169
-msgid "Invalid request."
-msgstr "Solicitud incorrecta."
+#: ../../Zotlabs/Module/Settings.php:688 ../../Zotlabs/Module/Settings.php:714
+msgid "Icon url"
+msgstr "Dirección del icono"
-#: ../../Zotlabs/Module/Like.php:117 ../../include/conversation.php:126
-msgid "channel"
-msgstr "el canal"
+#: ../../Zotlabs/Module/Settings.php:688 ../../Zotlabs/Module/Sources.php:112
+#: ../../Zotlabs/Module/Sources.php:147
+msgid "Optional"
+msgstr "Opcional"
-#: ../../Zotlabs/Module/Like.php:146
-msgid "thing"
-msgstr "elemento"
+#: ../../Zotlabs/Module/Settings.php:699
+msgid "Application not found."
+msgstr "Aplicación no encontrada."
-#: ../../Zotlabs/Module/Like.php:192
-msgid "Channel unavailable."
-msgstr "Canal no disponible."
+#: ../../Zotlabs/Module/Settings.php:742
+msgid "Connected Apps"
+msgstr "Aplicaciones (apps) conectadas"
-#: ../../Zotlabs/Module/Like.php:240
-msgid "Previous action reversed."
-msgstr "Acción anterior revocada."
+#: ../../Zotlabs/Module/Settings.php:746
+msgid "Client key starts with"
+msgstr "La \"client key\" empieza por"
-#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87
-#: ../../Zotlabs/Module/Tagger.php:47 ../../include/conversation.php:120
-#: ../../include/text.php:1921
-msgid "photo"
-msgstr "foto"
+#: ../../Zotlabs/Module/Settings.php:747
+msgid "No name"
+msgstr "Sin nombre"
-#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87
-#: ../../include/conversation.php:148 ../../include/text.php:1927
-msgid "status"
-msgstr "el mensaje de estado"
+#: ../../Zotlabs/Module/Settings.php:748
+msgid "Remove authorization"
+msgstr "Eliminar autorización"
-#: ../../Zotlabs/Module/Like.php:419 ../../include/conversation.php:164
-#, php-format
-msgid "%1$s likes %2$s's %3$s"
-msgstr "A %1$s le gusta %3$s de %2$s"
+#: ../../Zotlabs/Module/Settings.php:761
+msgid "No feature settings configured"
+msgstr "No se ha establecido la configuración de los complementos"
-#: ../../Zotlabs/Module/Like.php:421 ../../include/conversation.php:167
-#, php-format
-msgid "%1$s doesn't like %2$s's %3$s"
-msgstr "A %1$s no le gusta %3$s de %2$s"
+#: ../../Zotlabs/Module/Settings.php:768
+msgid "Feature/Addon Settings"
+msgstr "Ajustes de los complementos"
-#: ../../Zotlabs/Module/Like.php:423
-#, php-format
-msgid "%1$s agrees with %2$s's %3$s"
-msgstr "%3$s de %2$s: %1$s está de acuerdo"
+#: ../../Zotlabs/Module/Settings.php:791
+msgid "Account Settings"
+msgstr "Configuración de la cuenta"
-#: ../../Zotlabs/Module/Like.php:425
-#, php-format
-msgid "%1$s doesn't agree with %2$s's %3$s"
-msgstr "%3$s de %2$s: %1$s no está de acuerdo"
+#: ../../Zotlabs/Module/Settings.php:792
+msgid "Current Password"
+msgstr "Contraseña actual"
-#: ../../Zotlabs/Module/Like.php:427
-#, php-format
-msgid "%1$s abstains from a decision on %2$s's %3$s"
-msgstr "%3$s de %2$s: %1$s se abstiene"
+#: ../../Zotlabs/Module/Settings.php:793
+msgid "Enter New Password"
+msgstr "Escribir una nueva contraseña"
-#: ../../Zotlabs/Module/Like.php:429
-#, php-format
-msgid "%1$s is attending %2$s's %3$s"
-msgstr "%3$s de %2$s: %1$s participa"
+#: ../../Zotlabs/Module/Settings.php:794
+msgid "Confirm New Password"
+msgstr "Confirmar la nueva contraseña"
-#: ../../Zotlabs/Module/Like.php:431
-#, php-format
-msgid "%1$s is not attending %2$s's %3$s"
-msgstr "%3$s de %2$s: %1$s no participa"
+#: ../../Zotlabs/Module/Settings.php:794
+msgid "Leave password fields blank unless changing"
+msgstr "Dejar en blanco la contraseña a menos que desee cambiarla."
-#: ../../Zotlabs/Module/Like.php:433
-#, php-format
-msgid "%1$s may attend %2$s's %3$s"
-msgstr "%3$s de %2$s: %1$s quizá participe"
+#: ../../Zotlabs/Module/Settings.php:796
+#: ../../Zotlabs/Module/Settings.php:1236
+msgid "Email Address:"
+msgstr "Dirección de correo electrónico:"
-#: ../../Zotlabs/Module/Like.php:536
-msgid "Action completed."
-msgstr "Acción completada."
+#: ../../Zotlabs/Module/Settings.php:797
+#: ../../Zotlabs/Module/Removeaccount.php:61
+msgid "Remove Account"
+msgstr "Eliminar cuenta"
-#: ../../Zotlabs/Module/Like.php:537
-msgid "Thank you."
-msgstr "Gracias."
+#: ../../Zotlabs/Module/Settings.php:798
+msgid "Remove this account including all its channels"
+msgstr "Eliminar esta cuenta incluyendo todos sus canales"
-#: ../../Zotlabs/Module/Profiles.php:24 ../../Zotlabs/Module/Profiles.php:189
-#: ../../Zotlabs/Module/Profiles.php:246 ../../Zotlabs/Module/Profiles.php:625
-msgid "Profile not found."
-msgstr "Perfil no encontrado."
+#: ../../Zotlabs/Module/Settings.php:832
+msgid ""
+"Use this form to create temporary access identifiers to share things with "
+"non-members. These identities may be used in Access Control Lists and "
+"visitors may login using these credentials to access private content."
+msgstr "Utilice este formulario para crear identificadores de acceso temporal para compartir cosas con los no miembros de Hubzilla. Estas identidades se pueden usar en las Listas de control de acceso (ACL) y así los visitantes pueden iniciar sesión, utilizando estas credenciales, para acceder a su contenido privado."
-#: ../../Zotlabs/Module/Profiles.php:44
-msgid "Profile deleted."
-msgstr "Perfil eliminado."
+#: ../../Zotlabs/Module/Settings.php:834
+msgid ""
+"You may also provide <em>dropbox</em> style access links to friends and "
+"associates by adding the Login Password to any specific site URL as shown. "
+"Examples:"
+msgstr "También puede proporcionar, con el estilo <em>dropbox</em>, enlaces de acceso a sus amigos y asociados añadiendo la contraseña de inicio de sesión a cualquier dirección URL, como se muestra. Ejemplos: "
-#: ../../Zotlabs/Module/Profiles.php:68 ../../Zotlabs/Module/Profiles.php:104
-msgid "Profile-"
-msgstr "Perfil-"
+#: ../../Zotlabs/Module/Settings.php:869 ../../include/widgets.php:614
+msgid "Guest Access Tokens"
+msgstr "Tokens de acceso para invitados"
-#: ../../Zotlabs/Module/Profiles.php:89 ../../Zotlabs/Module/Profiles.php:132
-msgid "New profile created."
-msgstr "El nuevo perfil ha sido creado."
+#: ../../Zotlabs/Module/Settings.php:876
+msgid "Login Name"
+msgstr "Nombre de inicio de sesión"
-#: ../../Zotlabs/Module/Profiles.php:110
-msgid "Profile unavailable to clone."
-msgstr "Perfil no disponible para clonar."
+#: ../../Zotlabs/Module/Settings.php:877
+msgid "Login Password"
+msgstr "Contraseña de inicio de sesión"
-#: ../../Zotlabs/Module/Profiles.php:151
-msgid "Profile unavailable to export."
-msgstr "Perfil no disponible para exportar."
+#: ../../Zotlabs/Module/Settings.php:878
+msgid "Expires (yyyy-mm-dd)"
+msgstr "Expira (aaaa-mm-dd)"
-#: ../../Zotlabs/Module/Profiles.php:256
-msgid "Profile Name is required."
-msgstr "Se necesita el nombre del perfil."
+#: ../../Zotlabs/Module/Settings.php:879 ../../Zotlabs/Module/Connedit.php:782
+msgid "Their Settings"
+msgstr "Sus ajustes"
-#: ../../Zotlabs/Module/Profiles.php:427
-msgid "Marital Status"
-msgstr "Estado civil"
+#: ../../Zotlabs/Module/Settings.php:880 ../../Zotlabs/Module/Connedit.php:783
+msgid "My Settings"
+msgstr "Mis ajustes"
-#: ../../Zotlabs/Module/Profiles.php:431
-msgid "Romantic Partner"
-msgstr "Pareja sentimental"
+#: ../../Zotlabs/Module/Settings.php:882 ../../Zotlabs/Module/Connedit.php:778
+msgid "inherited"
+msgstr "heredado"
-#: ../../Zotlabs/Module/Profiles.php:435 ../../Zotlabs/Module/Profiles.php:736
-msgid "Likes"
-msgstr "Me gusta"
+#: ../../Zotlabs/Module/Settings.php:884 ../../Zotlabs/Module/Connedit.php:785
+msgid "Individual Permissions"
+msgstr "Permisos individuales"
-#: ../../Zotlabs/Module/Profiles.php:439 ../../Zotlabs/Module/Profiles.php:737
-msgid "Dislikes"
-msgstr "No me gusta"
+#: ../../Zotlabs/Module/Settings.php:885 ../../Zotlabs/Module/Connedit.php:786
+msgid ""
+"Some permissions may be inherited from your channel's <a "
+"href=\"settings\"><strong>privacy settings</strong></a>, which have higher "
+"priority than individual settings. You can <strong>not</strong> change those"
+" settings here."
+msgstr "Algunos permisos pueden ser heredados de los <a href=\"settings\"><strong>ajustes de privacidad</strong></a> de sus canales, los cuales tienen una prioridad más alta que los ajustes individuales. <strong>No</strong> puede cambiar estos ajustes aquí."
-#: ../../Zotlabs/Module/Profiles.php:443 ../../Zotlabs/Module/Profiles.php:744
-msgid "Work/Employment"
-msgstr "Trabajo:"
+#: ../../Zotlabs/Module/Settings.php:903 ../../Zotlabs/Module/Admin.php:690
+#: ../../Zotlabs/Module/Admin.php:691
+msgid "Off"
+msgstr "Desactivado"
-#: ../../Zotlabs/Module/Profiles.php:446
-msgid "Religion"
-msgstr "Religión"
+#: ../../Zotlabs/Module/Settings.php:903 ../../Zotlabs/Module/Admin.php:690
+#: ../../Zotlabs/Module/Admin.php:691
+msgid "On"
+msgstr "Activado"
-#: ../../Zotlabs/Module/Profiles.php:450
-msgid "Political Views"
-msgstr "Ideas políticas"
+#: ../../Zotlabs/Module/Settings.php:910
+msgid "Additional Features"
+msgstr "Funcionalidades"
-#: ../../Zotlabs/Module/Profiles.php:458
-msgid "Sexual Preference"
-msgstr "Preferencia sexual"
+#: ../../Zotlabs/Module/Settings.php:934
+msgid "Connector Settings"
+msgstr "Configuración del conector"
-#: ../../Zotlabs/Module/Profiles.php:462
-msgid "Homepage"
-msgstr "Página personal"
+#: ../../Zotlabs/Module/Settings.php:981
+msgid "No special theme for mobile devices"
+msgstr "Sin tema especial para dispositivos móviles"
-#: ../../Zotlabs/Module/Profiles.php:466
-msgid "Interests"
-msgstr "Intereses"
+#: ../../Zotlabs/Module/Settings.php:984
+#, php-format
+msgid "%s - (Experimental)"
+msgstr "%s - (Experimental)"
-#: ../../Zotlabs/Module/Profiles.php:470 ../../Zotlabs/Module/Locs.php:118
-#: ../../Zotlabs/Module/Admin.php:1224
-msgid "Address"
-msgstr "Dirección"
+#: ../../Zotlabs/Module/Settings.php:987 ../../Zotlabs/Module/Admin.php:414
+msgid "mobile"
+msgstr "móvil"
-#: ../../Zotlabs/Module/Profiles.php:560
-msgid "Profile updated."
-msgstr "Perfil actualizado."
+#: ../../Zotlabs/Module/Settings.php:1035
+msgid "Display Settings"
+msgstr "Ajustes de visualización"
-#: ../../Zotlabs/Module/Profiles.php:644
-msgid "Hide your connections list from viewers of this profile"
-msgstr "Ocultar la lista de conexiones a los visitantes del perfil"
+#: ../../Zotlabs/Module/Settings.php:1036
+msgid "Theme Settings"
+msgstr "Ajustes del tema"
-#: ../../Zotlabs/Module/Profiles.php:686
-msgid "Edit Profile Details"
-msgstr "Modificar los detalles de este perfil"
+#: ../../Zotlabs/Module/Settings.php:1037
+msgid "Custom Theme Settings"
+msgstr "Ajustes personalizados del tema"
-#: ../../Zotlabs/Module/Profiles.php:688
-msgid "View this profile"
-msgstr "Ver este perfil"
+#: ../../Zotlabs/Module/Settings.php:1038
+msgid "Content Settings"
+msgstr "Ajustes del contenido"
-#: ../../Zotlabs/Module/Profiles.php:689 ../../Zotlabs/Module/Profiles.php:771
-#: ../../include/channel.php:998
-msgid "Edit visibility"
-msgstr "Editar visibilidad"
+#: ../../Zotlabs/Module/Settings.php:1044
+msgid "Display Theme:"
+msgstr "Tema gráfico del perfil:"
-#: ../../Zotlabs/Module/Profiles.php:690
-msgid "Profile Tools"
-msgstr "Gestión del perfil"
+#: ../../Zotlabs/Module/Settings.php:1045
+msgid "Select scheme"
+msgstr "Elegir un esquema"
-#: ../../Zotlabs/Module/Profiles.php:691
-msgid "Change cover photo"
-msgstr "Cambiar la imagen de portada del perfil"
+#: ../../Zotlabs/Module/Settings.php:1047
+msgid "Mobile Theme:"
+msgstr "Tema para el móvil:"
-#: ../../Zotlabs/Module/Profiles.php:692 ../../include/channel.php:969
-msgid "Change profile photo"
-msgstr "Cambiar la foto del perfil"
+#: ../../Zotlabs/Module/Settings.php:1048
+msgid "Preload images before rendering the page"
+msgstr "Carga previa de las imágenes antes de generar la página"
-#: ../../Zotlabs/Module/Profiles.php:693
-msgid "Create a new profile using these settings"
-msgstr "Crear un nuevo perfil usando estos ajustes"
+#: ../../Zotlabs/Module/Settings.php:1048
+msgid ""
+"The subjective page load time will be longer but the page will be ready when"
+" displayed"
+msgstr "El tiempo subjetivo de carga de la página será más largo, pero la página estará lista cuando se muestre."
-#: ../../Zotlabs/Module/Profiles.php:694
-msgid "Clone this profile"
-msgstr "Clonar este perfil"
+#: ../../Zotlabs/Module/Settings.php:1049
+msgid "Enable user zoom on mobile devices"
+msgstr "Habilitar zoom de usuario en dispositivos móviles"
-#: ../../Zotlabs/Module/Profiles.php:695
-msgid "Delete this profile"
-msgstr "Eliminar este perfil"
+#: ../../Zotlabs/Module/Settings.php:1050
+msgid "Update browser every xx seconds"
+msgstr "Actualizar navegador cada xx segundos"
-#: ../../Zotlabs/Module/Profiles.php:696
-msgid "Add profile things"
-msgstr "Añadir cosas al perfil"
+#: ../../Zotlabs/Module/Settings.php:1050
+msgid "Minimum of 10 seconds, no maximum"
+msgstr "Mínimo de 10 segundos, sin máximo"
-#: ../../Zotlabs/Module/Profiles.php:697 ../../include/conversation.php:1541
-#: ../../include/widgets.php:105
-msgid "Personal"
-msgstr "Personales"
+#: ../../Zotlabs/Module/Settings.php:1051
+msgid "Maximum number of conversations to load at any time:"
+msgstr "Máximo número de conversaciones a cargar en cualquier momento:"
-#: ../../Zotlabs/Module/Profiles.php:699
-msgid "Relation"
-msgstr "Relación"
+#: ../../Zotlabs/Module/Settings.php:1051
+msgid "Maximum of 100 items"
+msgstr "Máximo de 100 elementos"
-#: ../../Zotlabs/Module/Profiles.php:700 ../../include/datetime.php:48
-msgid "Miscellaneous"
-msgstr "Varios"
+#: ../../Zotlabs/Module/Settings.php:1052
+msgid "Show emoticons (smilies) as images"
+msgstr "Mostrar emoticonos (smilies) como imágenes"
-#: ../../Zotlabs/Module/Profiles.php:702
-msgid "Import profile from file"
-msgstr "Importar perfil desde un fichero"
+#: ../../Zotlabs/Module/Settings.php:1053
+msgid "Link post titles to source"
+msgstr "Enlazar título de la publicación a la fuente original"
-#: ../../Zotlabs/Module/Profiles.php:703
-msgid "Export profile to file"
-msgstr "Exportar perfil a un fichero"
+#: ../../Zotlabs/Module/Settings.php:1054
+msgid "System Page Layout Editor - (advanced)"
+msgstr "Editor de plantilla de página del sistema - (avanzado)"
-#: ../../Zotlabs/Module/Profiles.php:704
-msgid "Your gender"
-msgstr "Género"
+#: ../../Zotlabs/Module/Settings.php:1057
+msgid "Use blog/list mode on channel page"
+msgstr "Usar modo blog/lista en la página de inicio del canal"
-#: ../../Zotlabs/Module/Profiles.php:705
-msgid "Marital status"
-msgstr "Estado civil"
+#: ../../Zotlabs/Module/Settings.php:1057
+#: ../../Zotlabs/Module/Settings.php:1058
+msgid "(comments displayed separately)"
+msgstr "(comentarios mostrados de forma separada)"
-#: ../../Zotlabs/Module/Profiles.php:706
-msgid "Sexual preference"
-msgstr "Preferencia sexual"
+#: ../../Zotlabs/Module/Settings.php:1058
+msgid "Use blog/list mode on grid page"
+msgstr "Mostrar mi red en modo blog"
-#: ../../Zotlabs/Module/Profiles.php:709
-msgid "Profile name"
-msgstr "Nombre del perfil"
+#: ../../Zotlabs/Module/Settings.php:1059
+msgid "Channel page max height of content (in pixels)"
+msgstr "Altura máxima del contenido de la página del canal (en píxeles)"
-#: ../../Zotlabs/Module/Profiles.php:711
-msgid "This is your default profile."
-msgstr "Este es su perfil principal."
+#: ../../Zotlabs/Module/Settings.php:1059
+#: ../../Zotlabs/Module/Settings.php:1060
+msgid "click to expand content exceeding this height"
+msgstr "Pulsar para expandir el contenido que exceda de esta altura"
-#: ../../Zotlabs/Module/Profiles.php:713
-msgid "Your full name"
-msgstr "Nombre completo"
+#: ../../Zotlabs/Module/Settings.php:1060
+msgid "Grid page max height of content (in pixels)"
+msgstr "Altura máxima del contenido de mi red (en píxeles)"
-#: ../../Zotlabs/Module/Profiles.php:714
-msgid "Title/Description"
-msgstr "Título o descripción"
+#: ../../Zotlabs/Module/Settings.php:1090
+msgid "Nobody except yourself"
+msgstr "Nadie excepto usted"
-#: ../../Zotlabs/Module/Profiles.php:717
-msgid "Street address"
-msgstr "Dirección"
+#: ../../Zotlabs/Module/Settings.php:1091
+msgid "Only those you specifically allow"
+msgstr "Solo aquellos a los que usted permita explícitamente"
-#: ../../Zotlabs/Module/Profiles.php:718
-msgid "Locality/City"
-msgstr "Ciudad"
+#: ../../Zotlabs/Module/Settings.php:1092
+msgid "Approved connections"
+msgstr "Conexiones aprobadas"
-#: ../../Zotlabs/Module/Profiles.php:719
-msgid "Region/State"
-msgstr "Región o Estado"
+#: ../../Zotlabs/Module/Settings.php:1093
+msgid "Any connections"
+msgstr "Cualquier conexión"
-#: ../../Zotlabs/Module/Profiles.php:720
-msgid "Postal/Zip code"
-msgstr "Código postal"
+#: ../../Zotlabs/Module/Settings.php:1094
+msgid "Anybody on this website"
+msgstr "Cualquiera en este sitio web"
-#: ../../Zotlabs/Module/Profiles.php:721
-msgid "Country"
-msgstr "País"
+#: ../../Zotlabs/Module/Settings.php:1095
+msgid "Anybody in this network"
+msgstr "Cualquiera en esta red"
-#: ../../Zotlabs/Module/Profiles.php:726
-msgid "Who (if applicable)"
-msgstr "Quién (si es pertinente)"
+#: ../../Zotlabs/Module/Settings.php:1096
+msgid "Anybody authenticated"
+msgstr "Cualquiera que esté autenticado"
-#: ../../Zotlabs/Module/Profiles.php:726
-msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
-msgstr "Por ejemplo: ana123, María González, sara@ejemplo.com"
+#: ../../Zotlabs/Module/Settings.php:1097
+msgid "Anybody on the internet"
+msgstr "Cualquiera en internet"
-#: ../../Zotlabs/Module/Profiles.php:727
-msgid "Since (date)"
-msgstr "Desde (fecha)"
+#: ../../Zotlabs/Module/Settings.php:1171
+msgid "Publish your default profile in the network directory"
+msgstr "Publicar su perfil principal en el directorio de la red"
-#: ../../Zotlabs/Module/Profiles.php:730
-msgid "Tell us about yourself"
-msgstr "Háblenos de usted"
+#: ../../Zotlabs/Module/Settings.php:1176
+msgid "Allow us to suggest you as a potential friend to new members?"
+msgstr "¿Nos permite sugerirle como amigo potencial a los nuevos miembros?"
-#: ../../Zotlabs/Module/Profiles.php:732
-msgid "Hometown"
-msgstr "Lugar de nacimiento"
+#: ../../Zotlabs/Module/Settings.php:1185
+msgid "Your channel address is"
+msgstr "Su dirección de canal es"
-#: ../../Zotlabs/Module/Profiles.php:733
-msgid "Political views"
-msgstr "Ideas políticas"
+#: ../../Zotlabs/Module/Settings.php:1227
+msgid "Channel Settings"
+msgstr "Ajustes del canal"
-#: ../../Zotlabs/Module/Profiles.php:734
-msgid "Religious views"
-msgstr "Creencias religiosas"
+#: ../../Zotlabs/Module/Settings.php:1234
+msgid "Basic Settings"
+msgstr "Configuración básica"
-#: ../../Zotlabs/Module/Profiles.php:735
-msgid "Keywords used in directory listings"
-msgstr "Palabras clave utilizadas en los listados de directorios"
+#: ../../Zotlabs/Module/Settings.php:1235 ../../include/channel.php:1164
+msgid "Full Name:"
+msgstr "Nombre completo:"
-#: ../../Zotlabs/Module/Profiles.php:735
-msgid "Example: fishing photography software"
-msgstr "Por ejemplo: software de fotografía submarina"
+#: ../../Zotlabs/Module/Settings.php:1237
+msgid "Your Timezone:"
+msgstr "Su huso horario:"
-#: ../../Zotlabs/Module/Profiles.php:738
-msgid "Musical interests"
-msgstr "Preferencias musicales"
+#: ../../Zotlabs/Module/Settings.php:1238
+msgid "Default Post Location:"
+msgstr "Localización geográfica predeterminada para sus publicaciones:"
-#: ../../Zotlabs/Module/Profiles.php:739
-msgid "Books, literature"
-msgstr "Libros, literatura"
+#: ../../Zotlabs/Module/Settings.php:1238
+msgid "Geographical location to display on your posts"
+msgstr "Localización geográfica que debe mostrarse en sus publicaciones"
-#: ../../Zotlabs/Module/Profiles.php:740
-msgid "Television"
-msgstr "Televisión"
+#: ../../Zotlabs/Module/Settings.php:1239
+msgid "Use Browser Location:"
+msgstr "Usar la localización geográfica del navegador:"
-#: ../../Zotlabs/Module/Profiles.php:741
-msgid "Film/Dance/Culture/Entertainment"
-msgstr "Cine, danza, cultura, entretenimiento"
+#: ../../Zotlabs/Module/Settings.php:1241
+msgid "Adult Content"
+msgstr "Contenido solo para adultos"
-#: ../../Zotlabs/Module/Profiles.php:742
-msgid "Hobbies/Interests"
-msgstr "Aficiones o intereses"
+#: ../../Zotlabs/Module/Settings.php:1241
+msgid ""
+"This channel frequently or regularly publishes adult content. (Please tag "
+"any adult material and/or nudity with #NSFW)"
+msgstr "Este canal publica contenido solo para adultos con frecuencia o regularmente. (Por favor etiquete cualquier material para adultos con la etiqueta #NSFW)"
-#: ../../Zotlabs/Module/Profiles.php:743
-msgid "Love/Romance"
-msgstr "Vida sentimental o amorosa"
+#: ../../Zotlabs/Module/Settings.php:1243
+msgid "Security and Privacy Settings"
+msgstr "Configuración de seguridad y privacidad"
-#: ../../Zotlabs/Module/Profiles.php:745
-msgid "School/Education"
-msgstr "Estudios"
+#: ../../Zotlabs/Module/Settings.php:1246
+msgid "Your permissions are already configured. Click to view/adjust"
+msgstr "Sus permisos ya están configurados. Pulse para ver/ajustar"
-#: ../../Zotlabs/Module/Profiles.php:746
-msgid "Contact information and social networks"
-msgstr "Información de contacto y redes sociales"
+#: ../../Zotlabs/Module/Settings.php:1248
+msgid "Hide my online presence"
+msgstr "Ocultar mi presencia en línea"
-#: ../../Zotlabs/Module/Profiles.php:747
-msgid "My other channels"
-msgstr "Mis otros canales"
+#: ../../Zotlabs/Module/Settings.php:1248
+msgid "Prevents displaying in your profile that you are online"
+msgstr "Evitar mostrar en su perfil que está en línea"
-#: ../../Zotlabs/Module/Profiles.php:767 ../../include/channel.php:994
-msgid "Profile Image"
-msgstr "Imagen del perfil"
+#: ../../Zotlabs/Module/Settings.php:1250
+msgid "Simple Privacy Settings:"
+msgstr "Configuración de privacidad sencilla:"
-#: ../../Zotlabs/Module/Profiles.php:777 ../../include/nav.php:88
-#: ../../include/channel.php:976
-msgid "Edit Profiles"
-msgstr "Editar perfiles"
+#: ../../Zotlabs/Module/Settings.php:1251
+msgid ""
+"Very Public - <em>extremely permissive (should be used with caution)</em>"
+msgstr "Muy Público - <em>extremadamente permisivo (debería ser usado con precaución)</em>"
-#: ../../Zotlabs/Module/Import.php:33
-#, php-format
-msgid "Your service plan only allows %d channels."
-msgstr "Su paquete de servicios solo permite %d canales."
+#: ../../Zotlabs/Module/Settings.php:1252
+msgid ""
+"Typical - <em>default public, privacy when desired (similar to social "
+"network permissions but with improved privacy)</em>"
+msgstr "Típico - <em>por defecto público, privado cuando se desee (similar a los permisos de una red social pero con privacidad mejorada)</em>"
-#: ../../Zotlabs/Module/Import.php:71 ../../Zotlabs/Module/Import_items.php:42
-msgid "Nothing to import."
-msgstr "No hay nada para importar."
+#: ../../Zotlabs/Module/Settings.php:1253
+msgid "Private - <em>default private, never open or public</em>"
+msgstr "Privado - <em>por defecto, privado, nunca abierto o público</em>"
-#: ../../Zotlabs/Module/Import.php:95 ../../Zotlabs/Module/Import_items.php:66
-msgid "Unable to download data from old server"
-msgstr "No se han podido descargar datos de su antiguo servidor"
+#: ../../Zotlabs/Module/Settings.php:1254
+msgid "Blocked - <em>default blocked to/from everybody</em>"
+msgstr "Bloqueado - <em>por defecto, bloqueado/a para cualquiera</em>"
-#: ../../Zotlabs/Module/Import.php:101
-#: ../../Zotlabs/Module/Import_items.php:72
-msgid "Imported file is empty."
-msgstr "El fichero importado está vacío."
+#: ../../Zotlabs/Module/Settings.php:1256
+msgid "Allow others to tag your posts"
+msgstr "Permitir a otros etiquetar sus publicaciones"
-#: ../../Zotlabs/Module/Import.php:123
-#: ../../Zotlabs/Module/Import_items.php:88
+#: ../../Zotlabs/Module/Settings.php:1256
+msgid ""
+"Often used by the community to retro-actively flag inappropriate content"
+msgstr "A menudo usado por la comunidad para marcar contenido inapropiado de forma retroactiva."
+
+#: ../../Zotlabs/Module/Settings.php:1258
+msgid "Advanced Privacy Settings"
+msgstr "Configuración de privacidad avanzada"
+
+#: ../../Zotlabs/Module/Settings.php:1260
+msgid "Expire other channel content after this many days"
+msgstr "Caducar contenido de otros canales después de este número de días"
+
+#: ../../Zotlabs/Module/Settings.php:1260
+msgid "0 or blank to use the website limit."
+msgstr "0 o en blanco para usar el límite del sitio web."
+
+#: ../../Zotlabs/Module/Settings.php:1260
#, php-format
-msgid "Warning: Database versions differ by %1$d updates."
-msgstr "Atención: Las versiones de la base de datos difieren en %1$d actualizaciones."
+msgid "This website expires after %d days."
+msgstr "Este sitio web caduca después de %d días."
-#: ../../Zotlabs/Module/Import.php:153 ../../include/import.php:107
-msgid "Cloned channel not found. Import failed."
-msgstr "No se ha podido importar el canal porque el canal clonado no se ha encontrado."
+#: ../../Zotlabs/Module/Settings.php:1260
+msgid "This website does not expire imported content."
+msgstr "Este sitio web no caduca el contenido importado."
-#: ../../Zotlabs/Module/Import.php:163
-msgid "No channel. Import failed."
-msgstr "No hay canal. La importación ha fallado"
+#: ../../Zotlabs/Module/Settings.php:1260
+msgid "The website limit takes precedence if lower than your limit."
+msgstr "El límite del sitio web tiene prioridad si es inferior a su propio límite."
-#: ../../Zotlabs/Module/Import.php:520
-#: ../../include/Import/import_diaspora.php:142
-msgid "Import completed."
-msgstr "Importación completada."
+#: ../../Zotlabs/Module/Settings.php:1261
+msgid "Maximum Friend Requests/Day:"
+msgstr "Máximo de solicitudes de amistad por día:"
-#: ../../Zotlabs/Module/Import.php:542
-msgid "You must be logged in to use this feature."
-msgstr "Debe estar registrado para poder usar esta funcionalidad."
+#: ../../Zotlabs/Module/Settings.php:1261
+msgid "May reduce spam activity"
+msgstr "Podría reducir la actividad de spam"
-#: ../../Zotlabs/Module/Import.php:547
-msgid "Import Channel"
-msgstr "Importar canal"
+#: ../../Zotlabs/Module/Settings.php:1262
+msgid "Default Post and Publish Permissions"
+msgstr "Permisos predeterminados de entradas y publicaciones"
-#: ../../Zotlabs/Module/Import.php:548
-msgid ""
-"Use this form to import an existing channel from a different server/hub. You"
-" may retrieve the channel identity from the old server/hub via the network "
-"or provide an export file."
-msgstr "Emplee este formulario para importar un canal desde un servidor/hub diferente. Puede recuperar el canal desde el antiguo servidor/hub a través de la red o proporcionando un fichero de exportación."
+#: ../../Zotlabs/Module/Settings.php:1263 ../../Zotlabs/Module/Mitem.php:154
+#: ../../Zotlabs/Module/Mitem.php:231
+msgid "(click to open/close)"
+msgstr "(pulsar para abrir o cerrar)"
-#: ../../Zotlabs/Module/Import.php:549
-#: ../../Zotlabs/Module/Import_items.php:121
-msgid "File to Upload"
-msgstr "Fichero para subir"
+#: ../../Zotlabs/Module/Settings.php:1264
+msgid "Use my default audience setting for the type of object published"
+msgstr "Usar los ajustes de mi audiencia predeterminada para el tipo de publicación"
-#: ../../Zotlabs/Module/Import.php:550
-msgid "Or provide the old server/hub details"
-msgstr "O proporcione los detalles de su antiguo servidor/hub"
+#: ../../Zotlabs/Module/Settings.php:1271
+msgid "Channel permissions category:"
+msgstr "Categoría de los permisos del canal:"
-#: ../../Zotlabs/Module/Import.php:551
-msgid "Your old identity address (xyz@example.com)"
-msgstr "Su identidad en el antiguo servidor (canal@ejemplo.com)"
+#: ../../Zotlabs/Module/Settings.php:1277
+msgid "Maximum private messages per day from unknown people:"
+msgstr "Máximo de mensajes privados por día de gente desconocida:"
-#: ../../Zotlabs/Module/Import.php:552
-msgid "Your old login email address"
-msgstr "Su antigua dirección de correo electrónico"
+#: ../../Zotlabs/Module/Settings.php:1277
+msgid "Useful to reduce spamming"
+msgstr "Útil para reducir el envío de correo no deseado"
-#: ../../Zotlabs/Module/Import.php:553
-msgid "Your old login password"
-msgstr "Su antigua contraseña"
+#: ../../Zotlabs/Module/Settings.php:1280
+msgid "Notification Settings"
+msgstr "Configuración de las notificaciones"
-#: ../../Zotlabs/Module/Import.php:554
-msgid ""
-"For either option, please choose whether to make this hub your new primary "
-"address, or whether your old location should continue this role. You will be"
-" able to post from either location, but only one can be marked as the "
-"primary location for files, photos, and media."
-msgstr "Para cualquiera de las opciones, elija si hacer de este servidor su nueva dirección primaria, o si su antigua dirección debe continuar con este papel. Usted podrá publicar desde cualquier ubicación, pero sólo una puede estar marcada como la ubicación principal para los ficheros, fotos y otras imágenes o vídeos."
+#: ../../Zotlabs/Module/Settings.php:1281
+msgid "By default post a status message when:"
+msgstr "Por defecto, enviar un mensaje de estado cuando:"
-#: ../../Zotlabs/Module/Import.php:555
-msgid "Make this hub my primary location"
-msgstr "Convertir este servidor en mi ubicación primaria"
+#: ../../Zotlabs/Module/Settings.php:1282
+msgid "accepting a friend request"
+msgstr "Acepte una solicitud de amistad"
-#: ../../Zotlabs/Module/Import.php:556
+#: ../../Zotlabs/Module/Settings.php:1283
+msgid "joining a forum/community"
+msgstr "al unirse a un foro o comunidad"
+
+#: ../../Zotlabs/Module/Settings.php:1284
+msgid "making an <em>interesting</em> profile change"
+msgstr "Realice un cambio <em>interesante</em> en su perfil"
+
+#: ../../Zotlabs/Module/Settings.php:1285
+msgid "Send a notification email when:"
+msgstr "Enviar una notificación por correo electrónico cuando:"
+
+#: ../../Zotlabs/Module/Settings.php:1286
+msgid "You receive a connection request"
+msgstr "Reciba una solicitud de conexión"
+
+#: ../../Zotlabs/Module/Settings.php:1287
+msgid "Your connections are confirmed"
+msgstr "Sus conexiones hayan sido confirmadas"
+
+#: ../../Zotlabs/Module/Settings.php:1288
+msgid "Someone writes on your profile wall"
+msgstr "Alguien escriba en la página de su perfil (\"muro\")"
+
+#: ../../Zotlabs/Module/Settings.php:1289
+msgid "Someone writes a followup comment"
+msgstr "Alguien escriba un comentario sobre sus publicaciones"
+
+#: ../../Zotlabs/Module/Settings.php:1290
+msgid "You receive a private message"
+msgstr "Reciba un mensaje privado"
+
+#: ../../Zotlabs/Module/Settings.php:1291
+msgid "You receive a friend suggestion"
+msgstr "Reciba una sugerencia de amistad"
+
+#: ../../Zotlabs/Module/Settings.php:1292
+msgid "You are tagged in a post"
+msgstr "Usted sea etiquetado en una publicación"
+
+#: ../../Zotlabs/Module/Settings.php:1293
+msgid "You are poked/prodded/etc. in a post"
+msgstr "Reciba un toque o incitación en una publicación"
+
+#: ../../Zotlabs/Module/Settings.php:1296
+msgid "Show visual notifications including:"
+msgstr "Mostrar notificaciones visuales que incluyan:"
+
+#: ../../Zotlabs/Module/Settings.php:1298
+msgid "Unseen grid activity"
+msgstr "Nueva actividad en la red"
+
+#: ../../Zotlabs/Module/Settings.php:1299
+msgid "Unseen channel activity"
+msgstr "Actividad no vista en el canal"
+
+#: ../../Zotlabs/Module/Settings.php:1300
+msgid "Unseen private messages"
+msgstr "Mensajes privados no leídos"
+
+#: ../../Zotlabs/Module/Settings.php:1300
+#: ../../Zotlabs/Module/Settings.php:1305
+#: ../../Zotlabs/Module/Settings.php:1306
+#: ../../Zotlabs/Module/Settings.php:1307
+msgid "Recommended"
+msgstr "Recomendado"
+
+#: ../../Zotlabs/Module/Settings.php:1301
+msgid "Upcoming events"
+msgstr "Próximos eventos"
+
+#: ../../Zotlabs/Module/Settings.php:1302
+msgid "Events today"
+msgstr "Eventos de hoy"
+
+#: ../../Zotlabs/Module/Settings.php:1303
+msgid "Upcoming birthdays"
+msgstr "Próximos cumpleaños"
+
+#: ../../Zotlabs/Module/Settings.php:1303
+msgid "Not available in all themes"
+msgstr "No disponible en todos los temas"
+
+#: ../../Zotlabs/Module/Settings.php:1304
+msgid "System (personal) notifications"
+msgstr "Notificaciones del sistema (personales)"
+
+#: ../../Zotlabs/Module/Settings.php:1305
+msgid "System info messages"
+msgstr "Mensajes de información del sistema"
+
+#: ../../Zotlabs/Module/Settings.php:1306
+msgid "System critical alerts"
+msgstr "Alertas críticas del sistema"
+
+#: ../../Zotlabs/Module/Settings.php:1307
+msgid "New connections"
+msgstr "Nuevas conexiones"
+
+#: ../../Zotlabs/Module/Settings.php:1308
+msgid "System Registrations"
+msgstr "Registros del sistema"
+
+#: ../../Zotlabs/Module/Settings.php:1309
msgid ""
-"Import existing posts if possible (experimental - limited by available "
-"memory"
-msgstr "Importar el contenido publicado si es posible (experimental - limitado por la memoria disponible"
+"Also show new wall posts, private messages and connections under Notices"
+msgstr "Mostrar también en Avisos las nuevas publicaciones, los mensajes privados y las conexiones"
-#: ../../Zotlabs/Module/Import.php:557
+#: ../../Zotlabs/Module/Settings.php:1311
+msgid "Notify me of events this many days in advance"
+msgstr "Avisarme de los eventos con algunos días de antelación"
+
+#: ../../Zotlabs/Module/Settings.php:1311
+msgid "Must be greater than 0"
+msgstr "Debe ser mayor que 0"
+
+#: ../../Zotlabs/Module/Settings.php:1313
+msgid "Advanced Account/Page Type Settings"
+msgstr "Ajustes avanzados de la cuenta y de los tipos de página"
+
+#: ../../Zotlabs/Module/Settings.php:1314
+msgid "Change the behaviour of this account for special situations"
+msgstr "Cambiar el comportamiento de esta cuenta en situaciones especiales"
+
+#: ../../Zotlabs/Module/Settings.php:1317
msgid ""
-"This process may take several minutes to complete. Please submit the form "
-"only once and leave this page open until finished."
-msgstr "Este proceso puede tardar varios minutos en completarse. Por favor envíe el formulario una sola vez y mantenga esta página abierta hasta que termine."
+"Please enable expert mode (in <a href=\"settings/features\">Settings > "
+"Additional features</a>) to adjust!"
+msgstr "¡Activar el modo de experto (en <a href=\"settings/features\">Ajustes > Funcionalidades</a>) para realizar cambios!."
-#: ../../Zotlabs/Module/Home.php:74 ../../Zotlabs/Module/Home.php:82
-#: ../../Zotlabs/Module/Siteinfo.php:48
-msgid "$Projectname"
-msgstr "$Projectname"
+#: ../../Zotlabs/Module/Settings.php:1318
+msgid "Miscellaneous Settings"
+msgstr "Ajustes diversos"
-#: ../../Zotlabs/Module/Home.php:92
-#, php-format
-msgid "Welcome to %s"
-msgstr "Bienvenido a %s"
+#: ../../Zotlabs/Module/Settings.php:1319
+msgid "Default photo upload folder"
+msgstr "Carpeta por defecto de las fotos subidas"
-#: ../../Zotlabs/Module/Item.php:179
-msgid "Unable to locate original post."
-msgstr "No ha sido posible encontrar la entrada original."
+#: ../../Zotlabs/Module/Settings.php:1319
+#: ../../Zotlabs/Module/Settings.php:1320
+msgid "%Y - current year, %m - current month"
+msgstr "%Y - año en curso, %m - mes actual"
-#: ../../Zotlabs/Module/Item.php:432
-msgid "Empty post discarded."
-msgstr "La entrada vacía ha sido desechada."
+#: ../../Zotlabs/Module/Settings.php:1320
+msgid "Default file upload folder"
+msgstr "Carpeta por defecto de los archivos subidos"
-#: ../../Zotlabs/Module/Item.php:472
-msgid "Executable content type not permitted to this channel."
-msgstr "Contenido de tipo ejecutable no permitido en este canal."
+#: ../../Zotlabs/Module/Settings.php:1322
+msgid "Personal menu to display in your channel pages"
+msgstr "Menú personal que debe mostrarse en las páginas de su canal"
-#: ../../Zotlabs/Module/Item.php:856
-msgid "Duplicate post suppressed."
-msgstr "Se ha suprimido la entrada duplicada."
+#: ../../Zotlabs/Module/Settings.php:1323 ../../Zotlabs/Module/Removeme.php:64
+msgid "Remove Channel"
+msgstr "Eliminar el canal"
-#: ../../Zotlabs/Module/Item.php:989
-msgid "System error. Post not saved."
-msgstr "Error del sistema. La entrada no se ha podido salvar."
+#: ../../Zotlabs/Module/Settings.php:1324
+msgid "Remove this channel."
+msgstr "Eliminar este canal."
-#: ../../Zotlabs/Module/Item.php:1242
-msgid "Unable to obtain post information from database."
-msgstr "No ha sido posible obtener información de la entrada en la base de datos."
+#: ../../Zotlabs/Module/Settings.php:1325
+msgid "Firefox Share $Projectname provider"
+msgstr "Servicio de compartición de Firefox: proveedor $Projectname"
-#: ../../Zotlabs/Module/Item.php:1249
-#, php-format
-msgid "You have reached your limit of %1$.0f top level posts."
-msgstr "Ha alcanzado su límite de %1$.0f entradas en la página principal."
+#: ../../Zotlabs/Module/Settings.php:1326
+msgid "Start calendar week on monday"
+msgstr "Comenzar el calendario semanal por el lunes"
-#: ../../Zotlabs/Module/Item.php:1256
-#, php-format
-msgid "You have reached your limit of %1$.0f webpages."
-msgstr "Ha alcanzado su límite de %1$.0f páginas web."
+#: ../../Zotlabs/Module/Acl.php:313
+msgid "network"
+msgstr "red"
+
+#: ../../Zotlabs/Module/Acl.php:323
+msgid "RSS"
+msgstr "RSS"
+
+#: ../../Zotlabs/Module/Group.php:24
+msgid "Privacy group created."
+msgstr "El grupo de canales ha sido creado."
+
+#: ../../Zotlabs/Module/Group.php:30
+msgid "Could not create privacy group."
+msgstr "No se puede crear el grupo de canales"
+
+#: ../../Zotlabs/Module/Group.php:42 ../../Zotlabs/Module/Group.php:141
+#: ../../include/items.php:3931
+msgid "Privacy group not found."
+msgstr "Grupo de canales no encontrado."
+
+#: ../../Zotlabs/Module/Group.php:58
+msgid "Privacy group updated."
+msgstr "Grupo de canales actualizado."
+
+#: ../../Zotlabs/Module/Group.php:90
+msgid "Create a group of channels."
+msgstr "Crear un grupo de canales."
+
+#: ../../Zotlabs/Module/Group.php:91 ../../Zotlabs/Module/Group.php:184
+msgid "Privacy group name: "
+msgstr "Nombre del grupo de canales:"
+
+#: ../../Zotlabs/Module/Group.php:93 ../../Zotlabs/Module/Group.php:187
+msgid "Members are visible to other channels"
+msgstr "Los miembros son visibles para otros canales"
+
+#: ../../Zotlabs/Module/Group.php:111
+msgid "Privacy group removed."
+msgstr "Grupo de canales eliminado."
+
+#: ../../Zotlabs/Module/Group.php:113
+msgid "Unable to remove privacy group."
+msgstr "No se puede eliminar el grupo de canales."
+
+#: ../../Zotlabs/Module/Group.php:183
+msgid "Privacy group editor"
+msgstr "Editor de grupos de canales"
+
+#: ../../Zotlabs/Module/Group.php:197
+msgid "Members"
+msgstr "Miembros"
+
+#: ../../Zotlabs/Module/Group.php:199
+msgid "All Connected Channels"
+msgstr "Todos los canales conectados"
+
+#: ../../Zotlabs/Module/Group.php:231
+msgid "Click on a channel to add or remove."
+msgstr "Haga clic en un canal para agregarlo o quitarlo."
#: ../../Zotlabs/Module/Photos.php:82
msgid "Page owner information could not be retrieved."
msgstr "La información del propietario de la página no pudo ser recuperada."
-#: ../../Zotlabs/Module/Photos.php:97 ../../Zotlabs/Module/Photos.php:741
+#: ../../Zotlabs/Module/Photos.php:97 ../../Zotlabs/Module/Photos.php:745
#: ../../Zotlabs/Module/Profile_photo.php:115
#: ../../Zotlabs/Module/Profile_photo.php:212
#: ../../Zotlabs/Module/Profile_photo.php:311
@@ -2577,7 +2871,7 @@ msgid ""
"manager"
msgstr "Hay varias carpetas con este nombre de álbum, pero dentro de diferentes directorios. Por favor, elimine la carpeta o carpetas que desee utilizando el administrador de ficheros"
-#: ../../Zotlabs/Module/Photos.php:208 ../../Zotlabs/Module/Photos.php:1051
+#: ../../Zotlabs/Module/Photos.php:208 ../../Zotlabs/Module/Photos.php:1059
msgid "Delete Photo"
msgstr "Borrar foto"
@@ -2623,226 +2917,281 @@ msgstr "Título (opcional):"
msgid "Description (optional):"
msgstr "Descripción (opcional):"
-#: ../../Zotlabs/Module/Photos.php:693
+#: ../../Zotlabs/Module/Photos.php:697
msgid "Album name could not be decoded"
msgstr "El nombre del álbum no ha podido ser descifrado"
-#: ../../Zotlabs/Module/Photos.php:741
+#: ../../Zotlabs/Module/Photos.php:745
msgid "Contact Photos"
msgstr "Fotos de contacto"
-#: ../../Zotlabs/Module/Photos.php:764
+#: ../../Zotlabs/Module/Photos.php:768
msgid "Show Newest First"
msgstr "Mostrar lo más reciente primero"
-#: ../../Zotlabs/Module/Photos.php:766
+#: ../../Zotlabs/Module/Photos.php:770
msgid "Show Oldest First"
msgstr "Mostrar lo más antiguo primero"
-#: ../../Zotlabs/Module/Photos.php:790 ../../Zotlabs/Module/Photos.php:1329
-#: ../../Zotlabs/Module/Embedphotos.php:141 ../../include/widgets.php:1593
+#: ../../Zotlabs/Module/Photos.php:794 ../../Zotlabs/Module/Photos.php:1337
+#: ../../Zotlabs/Module/Embedphotos.php:141 ../../include/widgets.php:1607
msgid "View Photo"
msgstr "Ver foto"
-#: ../../Zotlabs/Module/Photos.php:821
-#: ../../Zotlabs/Module/Embedphotos.php:157 ../../include/widgets.php:1610
+#: ../../Zotlabs/Module/Photos.php:825
+#: ../../Zotlabs/Module/Embedphotos.php:157 ../../include/widgets.php:1624
msgid "Edit Album"
msgstr "Editar álbum"
-#: ../../Zotlabs/Module/Photos.php:868
+#: ../../Zotlabs/Module/Photos.php:872
msgid "Permission denied. Access to this item may be restricted."
msgstr "Permiso denegado. El acceso a este elemento puede estar restringido."
-#: ../../Zotlabs/Module/Photos.php:870
+#: ../../Zotlabs/Module/Photos.php:874
msgid "Photo not available"
msgstr "Foto no disponible"
-#: ../../Zotlabs/Module/Photos.php:928
+#: ../../Zotlabs/Module/Photos.php:932
msgid "Use as profile photo"
msgstr "Usar como foto del perfil"
-#: ../../Zotlabs/Module/Photos.php:929
+#: ../../Zotlabs/Module/Photos.php:933
msgid "Use as cover photo"
msgstr "Usar como imagen de portada del perfil"
-#: ../../Zotlabs/Module/Photos.php:936
+#: ../../Zotlabs/Module/Photos.php:940
msgid "Private Photo"
msgstr "Foto privada"
-#: ../../Zotlabs/Module/Photos.php:951
+#: ../../Zotlabs/Module/Photos.php:951 ../../Zotlabs/Module/Events.php:675
+#: ../../Zotlabs/Module/Events.php:684 ../../Zotlabs/Module/Cal.php:332
+#: ../../Zotlabs/Module/Cal.php:339
+msgid "Previous"
+msgstr "Anterior"
+
+#: ../../Zotlabs/Module/Photos.php:955
msgid "View Full Size"
msgstr "Ver tamaño completo"
-#: ../../Zotlabs/Module/Photos.php:996 ../../Zotlabs/Module/Admin.php:1437
+#: ../../Zotlabs/Module/Photos.php:1000 ../../Zotlabs/Module/Admin.php:1451
#: ../../Zotlabs/Module/Tagrm.php:137
msgid "Remove"
msgstr "Eliminar"
-#: ../../Zotlabs/Module/Photos.php:1030
+#: ../../Zotlabs/Module/Photos.php:1034
msgid "Edit photo"
msgstr "Editar foto"
-#: ../../Zotlabs/Module/Photos.php:1032
+#: ../../Zotlabs/Module/Photos.php:1036
msgid "Rotate CW (right)"
msgstr "Girar CW (a la derecha)"
-#: ../../Zotlabs/Module/Photos.php:1033
+#: ../../Zotlabs/Module/Photos.php:1037
msgid "Rotate CCW (left)"
msgstr "Girar CCW (a la izquierda)"
-#: ../../Zotlabs/Module/Photos.php:1036
+#: ../../Zotlabs/Module/Photos.php:1040
msgid "Enter a new album name"
msgstr "Introducir un nuevo nombre de álbum"
-#: ../../Zotlabs/Module/Photos.php:1037
+#: ../../Zotlabs/Module/Photos.php:1041
msgid "or select an existing one (doubleclick)"
msgstr "o seleccionar uno (doble click) existente"
-#: ../../Zotlabs/Module/Photos.php:1040
+#: ../../Zotlabs/Module/Photos.php:1044
msgid "Caption"
msgstr "Título"
-#: ../../Zotlabs/Module/Photos.php:1042
+#: ../../Zotlabs/Module/Photos.php:1046
msgid "Add a Tag"
msgstr "Añadir una etiqueta"
-#: ../../Zotlabs/Module/Photos.php:1046
+#: ../../Zotlabs/Module/Photos.php:1054
msgid "Example: @bob, @Barbara_Jensen, @jim@example.com"
msgstr "Ejemplos: @eva, @Carmen_Osuna, @jaime@ejemplo.com"
-#: ../../Zotlabs/Module/Photos.php:1049
+#: ../../Zotlabs/Module/Photos.php:1057
msgid "Flag as adult in album view"
msgstr "Marcar como \"solo para adultos\" en el álbum"
-#: ../../Zotlabs/Module/Photos.php:1068 ../../Zotlabs/Lib/ThreadItem.php:261
+#: ../../Zotlabs/Module/Photos.php:1076 ../../Zotlabs/Lib/ThreadItem.php:262
msgid "I like this (toggle)"
msgstr "Me gusta (cambiar)"
-#: ../../Zotlabs/Module/Photos.php:1069 ../../Zotlabs/Lib/ThreadItem.php:262
+#: ../../Zotlabs/Module/Photos.php:1077 ../../Zotlabs/Lib/ThreadItem.php:263
msgid "I don't like this (toggle)"
msgstr "No me gusta esto (cambiar)"
-#: ../../Zotlabs/Module/Photos.php:1071 ../../Zotlabs/Lib/ThreadItem.php:397
+#: ../../Zotlabs/Module/Photos.php:1078 ../../Zotlabs/Module/Webpages.php:218
+#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Layouts.php:193
+#: ../../include/conversation.php:1227
+msgid "Share"
+msgstr "Compartir"
+
+#: ../../Zotlabs/Module/Photos.php:1079 ../../Zotlabs/Lib/ThreadItem.php:398
#: ../../include/conversation.php:743
msgid "Please wait"
msgstr "Espere por favor"
-#: ../../Zotlabs/Module/Photos.php:1087 ../../Zotlabs/Module/Photos.php:1205
-#: ../../Zotlabs/Lib/ThreadItem.php:707
+#: ../../Zotlabs/Module/Photos.php:1095 ../../Zotlabs/Module/Photos.php:1213
+#: ../../Zotlabs/Lib/ThreadItem.php:708
msgid "This is you"
msgstr "Este es usted"
-#: ../../Zotlabs/Module/Photos.php:1089 ../../Zotlabs/Module/Photos.php:1207
-#: ../../Zotlabs/Lib/ThreadItem.php:709 ../../include/js_strings.php:6
+#: ../../Zotlabs/Module/Photos.php:1097 ../../Zotlabs/Module/Photos.php:1215
+#: ../../Zotlabs/Lib/ThreadItem.php:710 ../../include/js_strings.php:6
msgid "Comment"
msgstr "Comentar"
-#: ../../Zotlabs/Module/Photos.php:1105 ../../include/conversation.php:577
+#: ../../Zotlabs/Module/Photos.php:1099 ../../Zotlabs/Module/Webpages.php:224
+#: ../../Zotlabs/Module/Events.php:473 ../../Zotlabs/Lib/ThreadItem.php:720
+#: ../../include/conversation.php:1200 ../../include/page_widgets.php:43
+msgid "Preview"
+msgstr "Previsualizar"
+
+#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:577
msgctxt "title"
msgid "Likes"
msgstr "Me gusta"
-#: ../../Zotlabs/Module/Photos.php:1105 ../../include/conversation.php:577
+#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:577
msgctxt "title"
msgid "Dislikes"
msgstr "No me gusta"
-#: ../../Zotlabs/Module/Photos.php:1106 ../../include/conversation.php:578
+#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578
msgctxt "title"
msgid "Agree"
msgstr "De acuerdo"
-#: ../../Zotlabs/Module/Photos.php:1106 ../../include/conversation.php:578
+#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578
msgctxt "title"
msgid "Disagree"
msgstr "En desacuerdo"
-#: ../../Zotlabs/Module/Photos.php:1106 ../../include/conversation.php:578
+#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578
msgctxt "title"
msgid "Abstain"
msgstr "Abstención"
-#: ../../Zotlabs/Module/Photos.php:1107 ../../include/conversation.php:579
+#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579
msgctxt "title"
msgid "Attending"
msgstr "Participaré"
-#: ../../Zotlabs/Module/Photos.php:1107 ../../include/conversation.php:579
+#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579
msgctxt "title"
msgid "Not attending"
msgstr "No participaré"
-#: ../../Zotlabs/Module/Photos.php:1107 ../../include/conversation.php:579
+#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579
msgctxt "title"
msgid "Might attend"
msgstr "Quizá participe"
-#: ../../Zotlabs/Module/Photos.php:1124 ../../Zotlabs/Module/Photos.php:1136
+#: ../../Zotlabs/Module/Photos.php:1132 ../../Zotlabs/Module/Photos.php:1144
#: ../../Zotlabs/Lib/ThreadItem.php:181 ../../Zotlabs/Lib/ThreadItem.php:193
-#: ../../include/conversation.php:1738
+#: ../../include/conversation.php:1756
msgid "View all"
msgstr "Ver todo"
-#: ../../Zotlabs/Module/Photos.php:1128 ../../Zotlabs/Lib/ThreadItem.php:185
-#: ../../include/taxonomy.php:403 ../../include/channel.php:1198
-#: ../../include/conversation.php:1762
+#: ../../Zotlabs/Module/Photos.php:1136 ../../Zotlabs/Lib/ThreadItem.php:185
+#: ../../include/channel.php:1182 ../../include/conversation.php:1780
+#: ../../include/taxonomy.php:403
msgctxt "noun"
msgid "Like"
msgid_plural "Likes"
msgstr[0] "Me gusta"
msgstr[1] "Me gusta"
-#: ../../Zotlabs/Module/Photos.php:1133 ../../Zotlabs/Lib/ThreadItem.php:190
-#: ../../include/conversation.php:1765
+#: ../../Zotlabs/Module/Photos.php:1141 ../../Zotlabs/Lib/ThreadItem.php:190
+#: ../../include/conversation.php:1783
msgctxt "noun"
msgid "Dislike"
msgid_plural "Dislikes"
msgstr[0] "No me gusta"
msgstr[1] "No me gusta"
-#: ../../Zotlabs/Module/Photos.php:1233
+#: ../../Zotlabs/Module/Photos.php:1241
msgid "Photo Tools"
msgstr "Gestión de las fotos"
-#: ../../Zotlabs/Module/Photos.php:1242
+#: ../../Zotlabs/Module/Photos.php:1250
msgid "In This Photo:"
msgstr "En esta foto:"
-#: ../../Zotlabs/Module/Photos.php:1247
+#: ../../Zotlabs/Module/Photos.php:1255
msgid "Map"
msgstr "Mapa"
-#: ../../Zotlabs/Module/Photos.php:1255 ../../Zotlabs/Lib/ThreadItem.php:386
+#: ../../Zotlabs/Module/Photos.php:1263 ../../Zotlabs/Lib/ThreadItem.php:387
msgctxt "noun"
msgid "Likes"
msgstr "Me gusta"
-#: ../../Zotlabs/Module/Photos.php:1256 ../../Zotlabs/Lib/ThreadItem.php:387
+#: ../../Zotlabs/Module/Photos.php:1264 ../../Zotlabs/Lib/ThreadItem.php:388
msgctxt "noun"
msgid "Dislikes"
msgstr "No me gusta"
-#: ../../Zotlabs/Module/Photos.php:1261 ../../Zotlabs/Lib/ThreadItem.php:392
-#: ../../include/acl_selectors.php:283
+#: ../../Zotlabs/Module/Photos.php:1269 ../../Zotlabs/Lib/ThreadItem.php:393
+#: ../../include/acl_selectors.php:181
msgid "Close"
msgstr "Cerrar"
-#: ../../Zotlabs/Module/Photos.php:1335
+#: ../../Zotlabs/Module/Photos.php:1343
msgid "View Album"
msgstr "Ver álbum"
-#: ../../Zotlabs/Module/Photos.php:1346 ../../Zotlabs/Module/Photos.php:1359
-#: ../../Zotlabs/Module/Photos.php:1360
+#: ../../Zotlabs/Module/Photos.php:1354 ../../Zotlabs/Module/Photos.php:1367
+#: ../../Zotlabs/Module/Photos.php:1368
msgid "Recent Photos"
msgstr "Fotos recientes"
-#: ../../Zotlabs/Module/Lockview.php:75
-msgid "Remote privacy information not available."
-msgstr "La información privada remota no está disponible."
+#: ../../Zotlabs/Module/Impel.php:41 ../../include/bbcode.php:192
+msgid "webpage"
+msgstr "página web"
-#: ../../Zotlabs/Module/Lockview.php:96
-msgid "Visible to:"
-msgstr "Visible para:"
+#: ../../Zotlabs/Module/Impel.php:46 ../../include/bbcode.php:198
+msgid "block"
+msgstr "bloque"
+
+#: ../../Zotlabs/Module/Impel.php:51 ../../include/bbcode.php:195
+msgid "layout"
+msgstr "plantilla"
+
+#: ../../Zotlabs/Module/Impel.php:58 ../../include/bbcode.php:201
+msgid "menu"
+msgstr "menú"
+
+#: ../../Zotlabs/Module/Impel.php:191
+#, php-format
+msgid "%s element installed"
+msgstr "%s elemento instalado"
+
+#: ../../Zotlabs/Module/Impel.php:194
+#, php-format
+msgid "%s element installation failed"
+msgstr "Elemento con instalación fallida: %s"
+
+#: ../../Zotlabs/Module/Import_items.php:42 ../../Zotlabs/Module/Import.php:71
+msgid "Nothing to import."
+msgstr "No hay nada para importar."
+
+#: ../../Zotlabs/Module/Import_items.php:66 ../../Zotlabs/Module/Import.php:95
+msgid "Unable to download data from old server"
+msgstr "No se han podido descargar datos de su antiguo servidor"
+
+#: ../../Zotlabs/Module/Import_items.php:72
+#: ../../Zotlabs/Module/Import.php:101
+msgid "Imported file is empty."
+msgstr "El fichero importado está vacío."
+
+#: ../../Zotlabs/Module/Import_items.php:88
+#: ../../Zotlabs/Module/Import.php:123
+#, php-format
+msgid "Warning: Database versions differ by %1$d updates."
+msgstr "Atención: Las versiones de la base de datos difieren en %1$d actualizaciones."
#: ../../Zotlabs/Module/Import_items.php:104
msgid "Import completed"
@@ -2857,6 +3206,11 @@ msgid ""
"Use this form to import existing posts and content from an export file."
msgstr "Utilice este formulario para importar entradas existentes y contenido desde un archivo de exportación."
+#: ../../Zotlabs/Module/Import_items.php:121
+#: ../../Zotlabs/Module/Import.php:549
+msgid "File to Upload"
+msgstr "Fichero para subir"
+
#: ../../Zotlabs/Module/Invite.php:29
msgid "Total invitation limit exceeded."
msgstr "Se ha superado el límite máximo de invitaciones."
@@ -2943,7 +3297,7 @@ msgstr "Por favor, seleccione una copia de su canal (un clon) para convertirlo e
#: ../../Zotlabs/Module/Locs.php:95
msgid "Syncing locations"
-msgstr "Sincronización de ubicaciones"
+msgstr "Sincronizando ubicaciones"
#: ../../Zotlabs/Module/Locs.php:105
msgid "No locations found."
@@ -2953,14 +3307,15 @@ msgstr "No encontrada ninguna dirección."
msgid "Manage Channel Locations"
msgstr "Gestionar las direcciones del canal"
+#: ../../Zotlabs/Module/Locs.php:118 ../../Zotlabs/Module/Admin.php:1237
+#: ../../Zotlabs/Module/Profiles.php:470
+msgid "Address"
+msgstr "Dirección"
+
#: ../../Zotlabs/Module/Locs.php:119
msgid "Primary"
msgstr "Primario"
-#: ../../Zotlabs/Module/Locs.php:120 ../../Zotlabs/Module/Menu.php:113
-msgid "Drop"
-msgstr "Eliminar"
-
#: ../../Zotlabs/Module/Locs.php:122
msgid "Sync Now"
msgstr "Sincronizar ahora"
@@ -2983,102 +3338,105 @@ msgstr "Utilice este formulario para eliminar la dirección si el \"hub\" no est
msgid "Hub not found."
msgstr "Servidor no encontrado"
-#: ../../Zotlabs/Module/Mail.php:38
-msgid "Unable to lookup recipient."
-msgstr "Imposible asociar a un destinatario."
-
-#: ../../Zotlabs/Module/Mail.php:45
-msgid "Unable to communicate with requested channel."
-msgstr "Imposible comunicar con el canal solicitado."
-
-#: ../../Zotlabs/Module/Mail.php:52
-msgid "Cannot verify requested channel."
-msgstr "No se puede verificar el canal solicitado."
+#: ../../Zotlabs/Module/Like.php:19
+msgid "Like/Dislike"
+msgstr "Me gusta/No me gusta"
-#: ../../Zotlabs/Module/Mail.php:70
-msgid "Selected channel has private message restrictions. Send failed."
-msgstr "El canal seleccionado tiene restricciones sobre los mensajes privados. El envío falló."
+#: ../../Zotlabs/Module/Like.php:24
+msgid "This action is restricted to members."
+msgstr "Esta acción está restringida solo para miembros."
-#: ../../Zotlabs/Module/Mail.php:135
-msgid "Messages"
-msgstr "Mensajes"
+#: ../../Zotlabs/Module/Like.php:25
+msgid ""
+"Please <a href=\"rmagic\">login with your $Projectname ID</a> or <a "
+"href=\"register\">register as a new $Projectname member</a> to continue."
+msgstr "Por favor, <a href=\"rmagic\">identifíquese con su $Projectname ID</a> o <a href=\"register\">rregístrese como un nuevo $Projectname member</a> para continuar."
-#: ../../Zotlabs/Module/Mail.php:170
-msgid "Message recalled."
-msgstr "Mensaje revocado."
+#: ../../Zotlabs/Module/Like.php:105 ../../Zotlabs/Module/Like.php:131
+#: ../../Zotlabs/Module/Like.php:169
+msgid "Invalid request."
+msgstr "Solicitud incorrecta."
-#: ../../Zotlabs/Module/Mail.php:183
-msgid "Conversation removed."
-msgstr "Conversación eliminada."
+#: ../../Zotlabs/Module/Like.php:117 ../../include/conversation.php:126
+msgid "channel"
+msgstr "el canal"
-#: ../../Zotlabs/Module/Mail.php:198 ../../Zotlabs/Module/Mail.php:307
-msgid "Expires YYYY-MM-DD HH:MM"
-msgstr "Caduca YYYY-MM-DD HH:MM"
+#: ../../Zotlabs/Module/Like.php:146
+msgid "thing"
+msgstr "elemento"
-#: ../../Zotlabs/Module/Mail.php:226
-msgid "Requested channel is not in this network"
-msgstr "El canal solicitado no existe en esta red"
+#: ../../Zotlabs/Module/Like.php:192
+msgid "Channel unavailable."
+msgstr "Canal no disponible."
-#: ../../Zotlabs/Module/Mail.php:234
-msgid "Send Private Message"
-msgstr "Enviar un mensaje privado"
+#: ../../Zotlabs/Module/Like.php:240
+msgid "Previous action reversed."
+msgstr "Acción anterior revocada."
-#: ../../Zotlabs/Module/Mail.php:235 ../../Zotlabs/Module/Mail.php:360
-msgid "To:"
-msgstr "Para:"
+#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87
+#: ../../Zotlabs/Module/Tagger.php:47 ../../include/text.php:1945
+#: ../../include/conversation.php:120
+msgid "photo"
+msgstr "foto"
-#: ../../Zotlabs/Module/Mail.php:238 ../../Zotlabs/Module/Mail.php:362
-msgid "Subject:"
-msgstr "Asunto:"
+#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87
+#: ../../include/text.php:1951 ../../include/conversation.php:148
+msgid "status"
+msgstr "el mensaje de estado"
-#: ../../Zotlabs/Module/Mail.php:243 ../../Zotlabs/Module/Mail.php:368
-#: ../../include/conversation.php:1231
-msgid "Attach file"
-msgstr "Adjuntar fichero"
+#: ../../Zotlabs/Module/Like.php:372 ../../Zotlabs/Module/Events.php:253
+#: ../../Zotlabs/Module/Tagger.php:51 ../../include/text.php:1948
+#: ../../include/conversation.php:123 ../../include/event.php:958
+msgid "event"
+msgstr "evento"
-#: ../../Zotlabs/Module/Mail.php:245
-msgid "Send"
-msgstr "Enviar"
+#: ../../Zotlabs/Module/Like.php:419 ../../include/conversation.php:164
+#, php-format
+msgid "%1$s likes %2$s's %3$s"
+msgstr "A %1$s le gusta %3$s de %2$s"
-#: ../../Zotlabs/Module/Mail.php:248 ../../Zotlabs/Module/Mail.php:373
-#: ../../include/conversation.php:1266
-msgid "Set expiration date"
-msgstr "Configurar fecha de caducidad"
+#: ../../Zotlabs/Module/Like.php:421 ../../include/conversation.php:167
+#, php-format
+msgid "%1$s doesn't like %2$s's %3$s"
+msgstr "A %1$s no le gusta %3$s de %2$s"
-#: ../../Zotlabs/Module/Mail.php:332
-msgid "Delete message"
-msgstr "Borrar mensaje"
+#: ../../Zotlabs/Module/Like.php:423
+#, php-format
+msgid "%1$s agrees with %2$s's %3$s"
+msgstr "%3$s de %2$s: %1$s está de acuerdo"
-#: ../../Zotlabs/Module/Mail.php:333
-msgid "Delivery report"
-msgstr "Informe de transmisión"
+#: ../../Zotlabs/Module/Like.php:425
+#, php-format
+msgid "%1$s doesn't agree with %2$s's %3$s"
+msgstr "%3$s de %2$s: %1$s no está de acuerdo"
-#: ../../Zotlabs/Module/Mail.php:334
-msgid "Recall message"
-msgstr "Revocar el mensaje"
+#: ../../Zotlabs/Module/Like.php:427
+#, php-format
+msgid "%1$s abstains from a decision on %2$s's %3$s"
+msgstr "%3$s de %2$s: %1$s se abstiene"
-#: ../../Zotlabs/Module/Mail.php:336
-msgid "Message has been recalled."
-msgstr "El mensaje ha sido revocado."
+#: ../../Zotlabs/Module/Like.php:429
+#, php-format
+msgid "%1$s is attending %2$s's %3$s"
+msgstr "%3$s de %2$s: %1$s participa"
-#: ../../Zotlabs/Module/Mail.php:353
-msgid "Delete Conversation"
-msgstr "Eliminar conversación"
+#: ../../Zotlabs/Module/Like.php:431
+#, php-format
+msgid "%1$s is not attending %2$s's %3$s"
+msgstr "%3$s de %2$s: %1$s no participa"
-#: ../../Zotlabs/Module/Mail.php:355
-msgid ""
-"No secure communications available. You <strong>may</strong> be able to "
-"respond from the sender's profile page."
-msgstr "Comunicación segura no disponible. Pero <strong>puede</strong> responder desde la página del perfil del remitente."
+#: ../../Zotlabs/Module/Like.php:433
+#, php-format
+msgid "%1$s may attend %2$s's %3$s"
+msgstr "%3$s de %2$s: %1$s quizá participe"
-#: ../../Zotlabs/Module/Mail.php:359
-msgid "Send Reply"
-msgstr "Responder"
+#: ../../Zotlabs/Module/Like.php:538
+msgid "Action completed."
+msgstr "Acción completada."
-#: ../../Zotlabs/Module/Mail.php:364
-#, php-format
-msgid "Your message for %s (%s):"
-msgstr "Su mensaje para %s (%s):"
+#: ../../Zotlabs/Module/Like.php:539
+msgid "Thank you."
+msgstr "Gracias."
#: ../../Zotlabs/Module/Manage.php:136
#: ../../Zotlabs/Module/New_channel.php:121
@@ -3090,8 +3448,13 @@ msgstr "Ha creado %1$.0f de %2$.0f canales permitidos."
msgid "Create a new channel"
msgstr "Crear un nuevo canal"
+#: ../../Zotlabs/Module/Manage.php:143 ../../Zotlabs/Module/Profiles.php:778
+#: ../../Zotlabs/Module/Chat.php:255
+msgid "Create New"
+msgstr "Crear"
+
#: ../../Zotlabs/Module/Manage.php:164 ../../Zotlabs/Lib/Apps.php:214
-#: ../../include/nav.php:208
+#: ../../include/nav.php:210
msgid "Channel Manager"
msgstr "Administración de canales"
@@ -3125,259 +3488,9 @@ msgstr "%d nuevas isolicitudes de conexión"
msgid "Delegated Channel"
msgstr "Canal delegado"
-#: ../../Zotlabs/Module/Menu.php:49
-msgid "Unable to update menu."
-msgstr "No se puede actualizar el menú."
-
-#: ../../Zotlabs/Module/Menu.php:60
-msgid "Unable to create menu."
-msgstr "No se puede crear el menú."
-
-#: ../../Zotlabs/Module/Menu.php:98 ../../Zotlabs/Module/Menu.php:110
-msgid "Menu Name"
-msgstr "Nombre del menú"
-
-#: ../../Zotlabs/Module/Menu.php:98
-msgid "Unique name (not visible on webpage) - required"
-msgstr "Nombre único (no será visible en la página web) - requerido"
-
-#: ../../Zotlabs/Module/Menu.php:99 ../../Zotlabs/Module/Menu.php:111
-msgid "Menu Title"
-msgstr "Título del menú"
-
-#: ../../Zotlabs/Module/Menu.php:99
-msgid "Visible on webpage - leave empty for no title"
-msgstr "Visible en la página web - no ponga nada si no desea un título"
-
-#: ../../Zotlabs/Module/Menu.php:100
-msgid "Allow Bookmarks"
-msgstr "Permitir marcadores"
-
-#: ../../Zotlabs/Module/Menu.php:100 ../../Zotlabs/Module/Menu.php:157
-msgid "Menu may be used to store saved bookmarks"
-msgstr "El menú se puede usar para guardar marcadores"
-
-#: ../../Zotlabs/Module/Menu.php:101 ../../Zotlabs/Module/Menu.php:159
-msgid "Submit and proceed"
-msgstr "Enviar y proceder"
-
-#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2239
-msgid "Menus"
-msgstr "Menús"
-
-#: ../../Zotlabs/Module/Menu.php:117
-msgid "Bookmarks allowed"
-msgstr "Marcadores permitidos"
-
-#: ../../Zotlabs/Module/Menu.php:119
-msgid "Delete this menu"
-msgstr "Borrar este menú"
-
-#: ../../Zotlabs/Module/Menu.php:120 ../../Zotlabs/Module/Menu.php:154
-msgid "Edit menu contents"
-msgstr "Editar los contenidos del menú"
-
-#: ../../Zotlabs/Module/Menu.php:121
-msgid "Edit this menu"
-msgstr "Modificar este menú"
-
-#: ../../Zotlabs/Module/Menu.php:136
-msgid "Menu could not be deleted."
-msgstr "El menú no puede ser eliminado."
-
-#: ../../Zotlabs/Module/Menu.php:144 ../../Zotlabs/Module/Mitem.php:28
-msgid "Menu not found."
-msgstr "Menú no encontrado"
-
-#: ../../Zotlabs/Module/Menu.php:149
-msgid "Edit Menu"
-msgstr "Modificar el menú"
-
-#: ../../Zotlabs/Module/Menu.php:153
-msgid "Add or remove entries to this menu"
-msgstr "Añadir o quitar entradas en este menú"
-
-#: ../../Zotlabs/Module/Menu.php:155
-msgid "Menu name"
-msgstr "Nombre del menú"
-
-#: ../../Zotlabs/Module/Menu.php:155
-msgid "Must be unique, only seen by you"
-msgstr "Debe ser único, solo será visible para usted"
-
-#: ../../Zotlabs/Module/Menu.php:156
-msgid "Menu title"
-msgstr "Título del menú"
-
-#: ../../Zotlabs/Module/Menu.php:156
-msgid "Menu title as seen by others"
-msgstr "El título del menú tal como será visto por los demás"
-
-#: ../../Zotlabs/Module/Menu.php:157
-msgid "Allow bookmarks"
-msgstr "Permitir marcadores"
-
-#: ../../Zotlabs/Module/Menu.php:166 ../../Zotlabs/Module/Mitem.php:120
-#: ../../Zotlabs/Module/Xchan.php:41
-msgid "Not found."
-msgstr "No encontrado."
-
-#: ../../Zotlabs/Module/Lostpass.php:19
-msgid "No valid account found."
-msgstr "No se ha encontrado una cuenta válida."
-
-#: ../../Zotlabs/Module/Lostpass.php:33
-msgid "Password reset request issued. Check your email."
-msgstr "Se ha recibido una solicitud de restablecimiento de contraseña. Consulte su correo electrónico."
-
-#: ../../Zotlabs/Module/Lostpass.php:39 ../../Zotlabs/Module/Lostpass.php:107
-#, php-format
-msgid "Site Member (%s)"
-msgstr "Usuario del sitio (%s)"
-
-#: ../../Zotlabs/Module/Lostpass.php:44
-#, php-format
-msgid "Password reset requested at %s"
-msgstr "Se ha solicitado restablecer la contraseña en %s"
-
-#: ../../Zotlabs/Module/Lostpass.php:67
-msgid ""
-"Request could not be verified. (You may have previously submitted it.) "
-"Password reset failed."
-msgstr "La solicitud no ha podido ser verificada. (Puede que la haya enviado con anterioridad) El restablecimiento de la contraseña ha fallado."
-
-#: ../../Zotlabs/Module/Lostpass.php:90 ../../boot.php:1712
-msgid "Password Reset"
-msgstr "Restablecer la contraseña"
-
-#: ../../Zotlabs/Module/Lostpass.php:91
-msgid "Your password has been reset as requested."
-msgstr "Su contraseña ha sido restablecida según lo solicitó."
-
-#: ../../Zotlabs/Module/Lostpass.php:92
-msgid "Your new password is"
-msgstr "Su nueva contraseña es"
-
-#: ../../Zotlabs/Module/Lostpass.php:93
-msgid "Save or copy your new password - and then"
-msgstr "Guarde o copie su nueva contraseña - y después"
-
-#: ../../Zotlabs/Module/Lostpass.php:94
-msgid "click here to login"
-msgstr "pulse aquí para conectarse"
-
-#: ../../Zotlabs/Module/Lostpass.php:95
-msgid ""
-"Your password may be changed from the <em>Settings</em> page after "
-"successful login."
-msgstr "Puede cambiar la contraseña en la página <em>Ajustes</em> una vez iniciada la sesión."
-
-#: ../../Zotlabs/Module/Lostpass.php:112
-#, php-format
-msgid "Your password has changed at %s"
-msgstr "Su contraseña en %s ha sido cambiada"
-
-#: ../../Zotlabs/Module/Lostpass.php:127
-msgid "Forgot your Password?"
-msgstr "¿Ha olvidado su contraseña?"
-
-#: ../../Zotlabs/Module/Lostpass.php:128
-msgid ""
-"Enter your email address and submit to have your password reset. Then check "
-"your email for further instructions."
-msgstr "Introduzca y envíe su dirección de correo electrónico para el restablecimiento de su contraseña. Luego revise su correo para obtener más instrucciones."
-
-#: ../../Zotlabs/Module/Lostpass.php:129
-msgid "Email Address"
-msgstr "Dirección de correo electrónico"
-
-#: ../../Zotlabs/Module/Lostpass.php:130
-msgid "Reset"
-msgstr "Reiniciar"
-
-#: ../../Zotlabs/Module/Mood.php:67 ../../include/conversation.php:260
-#, php-format
-msgctxt "mood"
-msgid "%1$s is %2$s"
-msgstr "%1$s está %2$s"
-
-#: ../../Zotlabs/Module/Mood.php:135 ../../Zotlabs/Lib/Apps.php:227
-msgid "Mood"
-msgstr "Estado de ánimo"
-
-#: ../../Zotlabs/Module/Mood.php:136
-msgid "Set your current mood and tell your friends"
-msgstr "Describir su estado de ánimo para comunicárselo a sus amigos"
-
-#: ../../Zotlabs/Module/Network.php:94
-msgid "No such group"
-msgstr "No se encuentra el grupo"
-
-#: ../../Zotlabs/Module/Network.php:134
-msgid "No such channel"
-msgstr "No se encuentra el canal"
-
-#: ../../Zotlabs/Module/Network.php:139
-msgid "forum"
-msgstr "foro"
-
-#: ../../Zotlabs/Module/Network.php:151
-msgid "Search Results For:"
-msgstr "Buscar resultados para:"
-
-#: ../../Zotlabs/Module/Network.php:215
-msgid "Privacy group is empty"
-msgstr "El grupo de canales está vacío"
-
-#: ../../Zotlabs/Module/Network.php:224
-msgid "Privacy group: "
-msgstr "Grupo de canales: "
-
-#: ../../Zotlabs/Module/Network.php:250
-msgid "Invalid connection."
-msgstr "Conexión no válida."
-
-#: ../../Zotlabs/Module/Notify.php:57
-#: ../../Zotlabs/Module/Notifications.php:98
-msgid "No more system notifications."
-msgstr "No hay más notificaciones del sistema"
-
-#: ../../Zotlabs/Module/Notify.php:61
-#: ../../Zotlabs/Module/Notifications.php:102
-msgid "System Notifications"
-msgstr "Notificaciones del sistema"
-
-#: ../../Zotlabs/Module/Match.php:26
-msgid "Profile Match"
-msgstr "Perfil compatible"
-
-#: ../../Zotlabs/Module/Match.php:35
-msgid "No keywords to match. Please add keywords to your default profile."
-msgstr "No hay palabras clave en el perfil principal para poder encontrar perfiles compatibles. Por favor, añada palabras clave a su perfil principal."
-
-#: ../../Zotlabs/Module/Match.php:67
-msgid "is interested in:"
-msgstr "está interesado en:"
-
-#: ../../Zotlabs/Module/Match.php:74
-msgid "No matches"
-msgstr "No se han encontrado perfiles compatibles"
-
-#: ../../Zotlabs/Module/Channel.php:40
-msgid "Posts and comments"
-msgstr "Publicaciones y comentarios"
-
-#: ../../Zotlabs/Module/Channel.php:41
-msgid "Only posts"
-msgstr "Solo publicaciones"
-
-#: ../../Zotlabs/Module/Channel.php:101
-msgid "Insufficient permissions. Request redirected to profile page."
-msgstr "Permisos insuficientes. Petición redirigida a la página del perfil."
-
#: ../../Zotlabs/Module/Mitem.php:52
msgid "Unable to create element."
-msgstr "Imposible crear el elemento."
+msgstr "No se puede crear el elemento."
#: ../../Zotlabs/Module/Mitem.php:76
msgid "Unable to update menu element."
@@ -3387,108 +3500,103 @@ msgstr "No es posible actualizar el elemento del menú."
msgid "Unable to add menu element."
msgstr "No es posible añadir el elemento al menú"
-#: ../../Zotlabs/Module/Mitem.php:153 ../../Zotlabs/Module/Mitem.php:226
+#: ../../Zotlabs/Module/Mitem.php:153 ../../Zotlabs/Module/Mitem.php:230
msgid "Menu Item Permissions"
msgstr "Permisos del elemento del menú"
-#: ../../Zotlabs/Module/Mitem.php:154 ../../Zotlabs/Module/Mitem.php:227
-#: ../../Zotlabs/Module/Settings.php:1163
-msgid "(click to open/close)"
-msgstr "(pulsar para abrir o cerrar)"
-
-#: ../../Zotlabs/Module/Mitem.php:156 ../../Zotlabs/Module/Mitem.php:172
+#: ../../Zotlabs/Module/Mitem.php:160 ../../Zotlabs/Module/Mitem.php:176
msgid "Link Name"
msgstr "Nombre del enlace"
-#: ../../Zotlabs/Module/Mitem.php:157 ../../Zotlabs/Module/Mitem.php:231
+#: ../../Zotlabs/Module/Mitem.php:161 ../../Zotlabs/Module/Mitem.php:239
msgid "Link or Submenu Target"
msgstr "Destino del enlace o submenú"
-#: ../../Zotlabs/Module/Mitem.php:157
+#: ../../Zotlabs/Module/Mitem.php:161
msgid "Enter URL of the link or select a menu name to create a submenu"
msgstr "Introducir la dirección del enlace o seleccionar el nombre de un submenú"
-#: ../../Zotlabs/Module/Mitem.php:158 ../../Zotlabs/Module/Mitem.php:232
+#: ../../Zotlabs/Module/Mitem.php:162 ../../Zotlabs/Module/Mitem.php:240
msgid "Use magic-auth if available"
msgstr "Usar la autenticación mágica si está disponible"
-#: ../../Zotlabs/Module/Mitem.php:159 ../../Zotlabs/Module/Mitem.php:233
+#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:241
msgid "Open link in new window"
msgstr "Abrir el enlace en una nueva ventana"
-#: ../../Zotlabs/Module/Mitem.php:160 ../../Zotlabs/Module/Mitem.php:234
+#: ../../Zotlabs/Module/Mitem.php:164 ../../Zotlabs/Module/Mitem.php:242
msgid "Order in list"
msgstr "Orden en la lista"
-#: ../../Zotlabs/Module/Mitem.php:160 ../../Zotlabs/Module/Mitem.php:234
+#: ../../Zotlabs/Module/Mitem.php:164 ../../Zotlabs/Module/Mitem.php:242
msgid "Higher numbers will sink to bottom of listing"
msgstr "Los números más altos irán al final de la lista"
-#: ../../Zotlabs/Module/Mitem.php:161
+#: ../../Zotlabs/Module/Mitem.php:165
msgid "Submit and finish"
msgstr "Enviar y terminar"
-#: ../../Zotlabs/Module/Mitem.php:162
+#: ../../Zotlabs/Module/Mitem.php:166
msgid "Submit and continue"
msgstr "Enviar y continuar"
-#: ../../Zotlabs/Module/Mitem.php:170
+#: ../../Zotlabs/Module/Mitem.php:174
msgid "Menu:"
msgstr "Menú:"
-#: ../../Zotlabs/Module/Mitem.php:173
+#: ../../Zotlabs/Module/Mitem.php:177
msgid "Link Target"
msgstr "Destino del enlace"
-#: ../../Zotlabs/Module/Mitem.php:176
+#: ../../Zotlabs/Module/Mitem.php:180
msgid "Edit menu"
msgstr "Editar menú"
-#: ../../Zotlabs/Module/Mitem.php:179
+#: ../../Zotlabs/Module/Mitem.php:183
msgid "Edit element"
msgstr "Editar el elemento"
-#: ../../Zotlabs/Module/Mitem.php:180
+#: ../../Zotlabs/Module/Mitem.php:184
msgid "Drop element"
msgstr "Eliminar el elemento"
-#: ../../Zotlabs/Module/Mitem.php:181
+#: ../../Zotlabs/Module/Mitem.php:185
msgid "New element"
msgstr "Nuevo elemento"
-#: ../../Zotlabs/Module/Mitem.php:182
+#: ../../Zotlabs/Module/Mitem.php:186
msgid "Edit this menu container"
msgstr "Modificar el contenedor del menú"
-#: ../../Zotlabs/Module/Mitem.php:183
+#: ../../Zotlabs/Module/Mitem.php:187
msgid "Add menu element"
msgstr "Añadir un elemento al menú"
-#: ../../Zotlabs/Module/Mitem.php:184
+#: ../../Zotlabs/Module/Mitem.php:188
msgid "Delete this menu item"
msgstr "Eliminar este elemento del menú"
-#: ../../Zotlabs/Module/Mitem.php:185
+#: ../../Zotlabs/Module/Mitem.php:189
msgid "Edit this menu item"
msgstr "Modificar este elemento del menú"
-#: ../../Zotlabs/Module/Mitem.php:202
+#: ../../Zotlabs/Module/Mitem.php:206
msgid "Menu item not found."
msgstr "Este elemento del menú no se ha encontrado"
-#: ../../Zotlabs/Module/Mitem.php:215
+#: ../../Zotlabs/Module/Mitem.php:219
msgid "Menu item deleted."
msgstr "Este elemento del menú ha sido borrado"
-#: ../../Zotlabs/Module/Mitem.php:217
+#: ../../Zotlabs/Module/Mitem.php:221
msgid "Menu item could not be deleted."
msgstr "Este elemento del menú no puede ser borrado."
-#: ../../Zotlabs/Module/Mitem.php:224
+#: ../../Zotlabs/Module/Mitem.php:228
msgid "Edit Menu Element"
msgstr "Editar elemento del menú"
-#: ../../Zotlabs/Module/Mitem.php:230
+#: ../../Zotlabs/Module/Mitem.php:238
msgid "Link text"
msgstr "Texto del enlace"
@@ -3532,12 +3640,12 @@ msgstr "Mensajes en cola"
msgid "Your software should be updated"
msgstr "Debe actualizar su software"
-#: ../../Zotlabs/Module/Admin.php:241 ../../Zotlabs/Module/Admin.php:490
-#: ../../Zotlabs/Module/Admin.php:711 ../../Zotlabs/Module/Admin.php:755
-#: ../../Zotlabs/Module/Admin.php:1030 ../../Zotlabs/Module/Admin.php:1209
-#: ../../Zotlabs/Module/Admin.php:1329 ../../Zotlabs/Module/Admin.php:1419
-#: ../../Zotlabs/Module/Admin.php:1612 ../../Zotlabs/Module/Admin.php:1646
-#: ../../Zotlabs/Module/Admin.php:1731
+#: ../../Zotlabs/Module/Admin.php:241 ../../Zotlabs/Module/Admin.php:500
+#: ../../Zotlabs/Module/Admin.php:724 ../../Zotlabs/Module/Admin.php:768
+#: ../../Zotlabs/Module/Admin.php:1043 ../../Zotlabs/Module/Admin.php:1222
+#: ../../Zotlabs/Module/Admin.php:1342 ../../Zotlabs/Module/Admin.php:1433
+#: ../../Zotlabs/Module/Admin.php:1626 ../../Zotlabs/Module/Admin.php:1660
+#: ../../Zotlabs/Module/Admin.php:1745
msgid "Administration"
msgstr "Administración"
@@ -3549,7 +3657,7 @@ msgstr "Sumario"
msgid "Registered accounts"
msgstr "Cuentas registradas"
-#: ../../Zotlabs/Module/Admin.php:246 ../../Zotlabs/Module/Admin.php:715
+#: ../../Zotlabs/Module/Admin.php:246 ../../Zotlabs/Module/Admin.php:728
msgid "Pending registrations"
msgstr "Registros pendientes"
@@ -3557,7 +3665,7 @@ msgstr "Registros pendientes"
msgid "Registered channels"
msgstr "Canales registrados"
-#: ../../Zotlabs/Module/Admin.php:248 ../../Zotlabs/Module/Admin.php:716
+#: ../../Zotlabs/Module/Admin.php:248 ../../Zotlabs/Module/Admin.php:729
msgid "Active plugins"
msgstr "Extensiones (plugins) activas"
@@ -3573,977 +3681,1592 @@ msgstr "Versión del repositorio (master)"
msgid "Repository version (dev)"
msgstr "Versión del repositorio (dev)"
-#: ../../Zotlabs/Module/Admin.php:373
+#: ../../Zotlabs/Module/Admin.php:377
msgid "Site settings updated."
msgstr "Ajustes del sitio actualizados."
-#: ../../Zotlabs/Module/Admin.php:400 ../../include/text.php:2829
+#: ../../Zotlabs/Module/Admin.php:404 ../../include/text.php:2888
msgid "Default"
msgstr "Predeterminado"
-#: ../../Zotlabs/Module/Admin.php:410 ../../Zotlabs/Module/Settings.php:899
-msgid "mobile"
-msgstr "móvil"
-
-#: ../../Zotlabs/Module/Admin.php:412
+#: ../../Zotlabs/Module/Admin.php:416
msgid "experimental"
msgstr "experimental"
-#: ../../Zotlabs/Module/Admin.php:414
+#: ../../Zotlabs/Module/Admin.php:418
msgid "unsupported"
msgstr "no soportado"
-#: ../../Zotlabs/Module/Admin.php:460
+#: ../../Zotlabs/Module/Admin.php:464
msgid "Yes - with approval"
msgstr "Sí - con aprobación"
-#: ../../Zotlabs/Module/Admin.php:466
+#: ../../Zotlabs/Module/Admin.php:470
msgid "My site is not a public server"
msgstr "Mi sitio no es un servidor público"
-#: ../../Zotlabs/Module/Admin.php:467
+#: ../../Zotlabs/Module/Admin.php:471
msgid "My site has paid access only"
msgstr "Mi sitio es un servicio de pago"
-#: ../../Zotlabs/Module/Admin.php:468
+#: ../../Zotlabs/Module/Admin.php:472
msgid "My site has free access only"
msgstr "Mi sitio es un servicio gratuito"
-#: ../../Zotlabs/Module/Admin.php:469
+#: ../../Zotlabs/Module/Admin.php:473
msgid "My site offers free accounts with optional paid upgrades"
msgstr "Mi sitio ofrece cuentas gratuitas con opciones extra de pago"
-#: ../../Zotlabs/Module/Admin.php:491 ../../include/widgets.php:1476
+#: ../../Zotlabs/Module/Admin.php:501 ../../include/widgets.php:1490
msgid "Site"
msgstr "Sitio"
-#: ../../Zotlabs/Module/Admin.php:493 ../../Zotlabs/Module/Register.php:245
-msgid "Registration"
-msgstr "Registro"
-
-#: ../../Zotlabs/Module/Admin.php:494
+#: ../../Zotlabs/Module/Admin.php:504
msgid "File upload"
msgstr "Subir fichero"
-#: ../../Zotlabs/Module/Admin.php:495
+#: ../../Zotlabs/Module/Admin.php:505
msgid "Policies"
msgstr "Políticas"
-#: ../../Zotlabs/Module/Admin.php:496 ../../include/contact_widgets.php:16
+#: ../../Zotlabs/Module/Admin.php:506 ../../include/contact_widgets.php:16
msgid "Advanced"
msgstr "Avanzado"
-#: ../../Zotlabs/Module/Admin.php:500
+#: ../../Zotlabs/Module/Admin.php:510
msgid "Site name"
msgstr "Nombre del sitio"
-#: ../../Zotlabs/Module/Admin.php:501
+#: ../../Zotlabs/Module/Admin.php:514
msgid "Banner/Logo"
msgstr "Banner/Logo"
-#: ../../Zotlabs/Module/Admin.php:502
+#: ../../Zotlabs/Module/Admin.php:515
msgid "Administrator Information"
msgstr "Información del Administrador"
-#: ../../Zotlabs/Module/Admin.php:502
+#: ../../Zotlabs/Module/Admin.php:515
msgid ""
"Contact information for site administrators. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr "Información de contacto de los administradores del sitio. Visible en la página \"siteinfo\". Se puede usar BBCode"
-#: ../../Zotlabs/Module/Admin.php:503
+#: ../../Zotlabs/Module/Admin.php:516
msgid "System language"
msgstr "Idioma del sistema"
-#: ../../Zotlabs/Module/Admin.php:504
+#: ../../Zotlabs/Module/Admin.php:517
msgid "System theme"
msgstr "Tema gráfico del sistema"
-#: ../../Zotlabs/Module/Admin.php:504
+#: ../../Zotlabs/Module/Admin.php:517
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href='#' "
"id='cnftheme'>change theme settings</a>"
msgstr "Tema del sistema por defecto - se puede cambiar por cada perfil de usuario - <a href='#' id='cnftheme'>modificar los ajustes del tema</a>"
-#: ../../Zotlabs/Module/Admin.php:505
+#: ../../Zotlabs/Module/Admin.php:518
msgid "Mobile system theme"
msgstr "Tema del sistema para móviles"
-#: ../../Zotlabs/Module/Admin.php:505
+#: ../../Zotlabs/Module/Admin.php:518
msgid "Theme for mobile devices"
msgstr "Tema para dispositivos móviles"
-#: ../../Zotlabs/Module/Admin.php:507
+#: ../../Zotlabs/Module/Admin.php:520
msgid "Allow Feeds as Connections"
msgstr "Permitir contenidos RSS como conexiones"
-#: ../../Zotlabs/Module/Admin.php:507
+#: ../../Zotlabs/Module/Admin.php:520
msgid "(Heavy system resource usage)"
msgstr "(Uso intenso de los recursos del sistema)"
-#: ../../Zotlabs/Module/Admin.php:508
+#: ../../Zotlabs/Module/Admin.php:521
msgid "Maximum image size"
msgstr "Tamaño máximo de la imagen"
-#: ../../Zotlabs/Module/Admin.php:508
+#: ../../Zotlabs/Module/Admin.php:521
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr "Tamaño máximo en bytes de la imagen subida. Por defecto, es 0, lo que significa que no hay límites."
-#: ../../Zotlabs/Module/Admin.php:509
+#: ../../Zotlabs/Module/Admin.php:522
msgid "Does this site allow new member registration?"
msgstr "¿Debe este sitio permitir el registro de nuevos miembros?"
-#: ../../Zotlabs/Module/Admin.php:510
+#: ../../Zotlabs/Module/Admin.php:523
msgid "Invitation only"
msgstr "Solo con una invitación"
-#: ../../Zotlabs/Module/Admin.php:510
+#: ../../Zotlabs/Module/Admin.php:523
msgid ""
"Only allow new member registrations with an invitation code. Above register "
"policy must be set to Yes."
msgstr "Solo se permiten inscripciones de nuevos miembros con un código de invitación. Además, deben aceptarse los términos del registro marcando \"Sí\"."
-#: ../../Zotlabs/Module/Admin.php:511
+#: ../../Zotlabs/Module/Admin.php:524
msgid "Which best describes the types of account offered by this hub?"
msgstr "¿Cómo describiría el tipo de servicio ofrecido por este servidor?"
-#: ../../Zotlabs/Module/Admin.php:512
+#: ../../Zotlabs/Module/Admin.php:525
msgid "Register text"
msgstr "Texto del registro"
-#: ../../Zotlabs/Module/Admin.php:512
+#: ../../Zotlabs/Module/Admin.php:525
msgid "Will be displayed prominently on the registration page."
msgstr "Se mostrará de forma destacada en la página de registro."
-#: ../../Zotlabs/Module/Admin.php:513
+#: ../../Zotlabs/Module/Admin.php:526
msgid "Site homepage to show visitors (default: login box)"
msgstr "Página personal que se mostrará a los visitantes (por defecto: la página de identificación)"
-#: ../../Zotlabs/Module/Admin.php:513
+#: ../../Zotlabs/Module/Admin.php:526
msgid ""
"example: 'public' to show public stream, 'page/sys/home' to show a system "
"webpage called 'home' or 'include:home.html' to include a file."
msgstr "ejemplo: 'public' para mostrar contenido público, 'page/sys/home' para mostrar la página web definida como \"home\" o 'include:home.html' para mostrar el contenido de un fichero."
-#: ../../Zotlabs/Module/Admin.php:514
+#: ../../Zotlabs/Module/Admin.php:527
msgid "Preserve site homepage URL"
msgstr "Preservar la dirección de la página personal"
-#: ../../Zotlabs/Module/Admin.php:514
+#: ../../Zotlabs/Module/Admin.php:527
msgid ""
"Present the site homepage in a frame at the original location instead of "
"redirecting"
msgstr "Presenta la página personal del sitio en un marco en la ubicación original, en vez de redirigirla."
-#: ../../Zotlabs/Module/Admin.php:515
+#: ../../Zotlabs/Module/Admin.php:528
msgid "Accounts abandoned after x days"
msgstr "Cuentas abandonadas después de x días"
-#: ../../Zotlabs/Module/Admin.php:515
+#: ../../Zotlabs/Module/Admin.php:528
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr "Para evitar consumir recursos del sistema intentando poner al día las cuentas abandonadas. Introduzca 0 para no tener límite de tiempo."
-#: ../../Zotlabs/Module/Admin.php:516
+#: ../../Zotlabs/Module/Admin.php:529
msgid "Allowed friend domains"
msgstr "Dominios amigos permitidos"
-#: ../../Zotlabs/Module/Admin.php:516
+#: ../../Zotlabs/Module/Admin.php:529
msgid ""
"Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr "Lista separada por comas de dominios a los que está permitido establecer relaciones de amistad con este sitio. Se permiten comodines. Dejar en claro para aceptar cualquier dominio."
-#: ../../Zotlabs/Module/Admin.php:517
+#: ../../Zotlabs/Module/Admin.php:530
msgid "Allowed email domains"
msgstr "Se aceptan dominios de correo electrónico"
-#: ../../Zotlabs/Module/Admin.php:517
+#: ../../Zotlabs/Module/Admin.php:530
msgid ""
"Comma separated list of domains which are allowed in email addresses for "
"registrations to this site. Wildcards are accepted. Empty to allow any "
"domains"
msgstr "Lista separada por comas de los dominios de los que se acepta una dirección de correo electrónico para registros en este sitio. Se permiten comodines. Dejar en claro para aceptar cualquier dominio. "
-#: ../../Zotlabs/Module/Admin.php:518
+#: ../../Zotlabs/Module/Admin.php:531
msgid "Not allowed email domains"
msgstr "No se permiten dominios de correo electrónico"
-#: ../../Zotlabs/Module/Admin.php:518
+#: ../../Zotlabs/Module/Admin.php:531
msgid ""
"Comma separated list of domains which are not allowed in email addresses for"
" registrations to this site. Wildcards are accepted. Empty to allow any "
"domains, unless allowed domains have been defined."
msgstr "Lista separada por comas de los dominios de los que no se acepta una dirección de correo electrónico para registros en este sitio. Se permiten comodines. Dejar en claro para no aceptar cualquier dominio, excepto los que se hayan autorizado."
-#: ../../Zotlabs/Module/Admin.php:519
+#: ../../Zotlabs/Module/Admin.php:532
msgid "Verify Email Addresses"
msgstr "Verificar las direcciones de correo electrónico"
-#: ../../Zotlabs/Module/Admin.php:519
+#: ../../Zotlabs/Module/Admin.php:532
msgid ""
"Check to verify email addresses used in account registration (recommended)."
msgstr "Activar para la verificación de la dirección de correo electrónico en el registro de una cuenta (recomendado)."
-#: ../../Zotlabs/Module/Admin.php:520
+#: ../../Zotlabs/Module/Admin.php:533
msgid "Force publish"
msgstr "Forzar la publicación"
-#: ../../Zotlabs/Module/Admin.php:520
+#: ../../Zotlabs/Module/Admin.php:533
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr "Intentar forzar todos los perfiles para que sean listados en el directorio de este sitio."
-#: ../../Zotlabs/Module/Admin.php:521
+#: ../../Zotlabs/Module/Admin.php:534
msgid "Import Public Streams"
msgstr "Importar contenido público"
-#: ../../Zotlabs/Module/Admin.php:521
+#: ../../Zotlabs/Module/Admin.php:534
msgid ""
"Import and allow access to public content pulled from other sites. Warning: "
"this content is unmoderated."
msgstr "Importar y permitir acceso al contenido público sacado de otros sitios. Advertencia: este contenido no está moderado, por lo que podría encontrar cosas inapropiadas u ofensivas."
-#: ../../Zotlabs/Module/Admin.php:522
+#: ../../Zotlabs/Module/Admin.php:535
msgid "Login on Homepage"
msgstr "Iniciar sesión en la página personal"
-#: ../../Zotlabs/Module/Admin.php:522
+#: ../../Zotlabs/Module/Admin.php:535
msgid ""
"Present a login box to visitors on the home page if no other content has "
"been configured."
msgstr "Presentar a los visitantes una casilla de identificación en la página de inicio, si no se ha configurado otro tipo de contenido."
-#: ../../Zotlabs/Module/Admin.php:523
+#: ../../Zotlabs/Module/Admin.php:536
msgid "Enable context help"
msgstr "Habilitar la ayuda contextual"
-#: ../../Zotlabs/Module/Admin.php:523
+#: ../../Zotlabs/Module/Admin.php:536
msgid ""
"Display contextual help for the current page when the help button is "
"pressed."
msgstr "Ver la ayuda contextual para la página actual cuando se pulse el botón de Ayuda."
-#: ../../Zotlabs/Module/Admin.php:525
+#: ../../Zotlabs/Module/Admin.php:538
msgid "Directory Server URL"
msgstr "URL del servidor de directorio"
-#: ../../Zotlabs/Module/Admin.php:525
+#: ../../Zotlabs/Module/Admin.php:538
msgid "Default directory server"
msgstr "Servidor de directorio predeterminado"
-#: ../../Zotlabs/Module/Admin.php:527
+#: ../../Zotlabs/Module/Admin.php:540
msgid "Proxy user"
msgstr "Usuario del proxy"
-#: ../../Zotlabs/Module/Admin.php:528
+#: ../../Zotlabs/Module/Admin.php:541
msgid "Proxy URL"
msgstr "Dirección del proxy"
-#: ../../Zotlabs/Module/Admin.php:529
+#: ../../Zotlabs/Module/Admin.php:542
msgid "Network timeout"
msgstr "Tiempo de espera de la red"
-#: ../../Zotlabs/Module/Admin.php:529
+#: ../../Zotlabs/Module/Admin.php:542
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr "Valor en segundos. Poner a 0 para que no haya tiempo límite (no recomendado)"
-#: ../../Zotlabs/Module/Admin.php:530
+#: ../../Zotlabs/Module/Admin.php:543
msgid "Delivery interval"
msgstr "Intervalo de entrega"
-#: ../../Zotlabs/Module/Admin.php:530
+#: ../../Zotlabs/Module/Admin.php:543
msgid ""
"Delay background delivery processes by this many seconds to reduce system "
"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
"for large dedicated servers."
msgstr "Retrasar los procesos de transmisión en segundo plano por esta cantidad de segundos para reducir la carga del sistema. Recomendado: 4-5 para sitios compartidos, 2-3 para servidores virtuales privados, 0-1 para grandes servidores dedicados."
-#: ../../Zotlabs/Module/Admin.php:531
+#: ../../Zotlabs/Module/Admin.php:544
msgid "Deliveries per process"
msgstr "Intentos de envío por proceso"
-#: ../../Zotlabs/Module/Admin.php:531
+#: ../../Zotlabs/Module/Admin.php:544
msgid ""
"Number of deliveries to attempt in a single operating system process. Adjust"
" if necessary to tune system performance. Recommend: 1-5."
msgstr "Numero de envíos a intentar en un único proceso del sistema operativo. Ajustar si es necesario mejorar el rendimiento. Se recomienda: 1-5."
-#: ../../Zotlabs/Module/Admin.php:532
+#: ../../Zotlabs/Module/Admin.php:545
msgid "Poll interval"
msgstr "Intervalo máximo de tiempo entre dos mensajes sucesivos"
-#: ../../Zotlabs/Module/Admin.php:532
+#: ../../Zotlabs/Module/Admin.php:545
msgid ""
"Delay background polling processes by this many seconds to reduce system "
"load. If 0, use delivery interval."
msgstr "Retrasar el intervalo de envío en segundo plano, en esta cantidad de segundos, para reducir la carga del sistema. Si es 0, usar el intervalo de entrega."
-#: ../../Zotlabs/Module/Admin.php:533
+#: ../../Zotlabs/Module/Admin.php:546
msgid "Maximum Load Average"
msgstr "Carga media máxima"
-#: ../../Zotlabs/Module/Admin.php:533
+#: ../../Zotlabs/Module/Admin.php:546
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default 50."
msgstr "Carga máxima del sistema antes de que los procesos de entrega y envío se hayan retardado - por defecto, 50."
-#: ../../Zotlabs/Module/Admin.php:534
+#: ../../Zotlabs/Module/Admin.php:547
msgid "Expiration period in days for imported (grid/network) content"
msgstr "Caducidad del contenido importado de otros sitios (en días)"
-#: ../../Zotlabs/Module/Admin.php:534
+#: ../../Zotlabs/Module/Admin.php:547
msgid "0 for no expiration of imported content"
msgstr "0 para que no caduque el contenido importado"
-#: ../../Zotlabs/Module/Admin.php:677 ../../Zotlabs/Module/Admin.php:678
-#: ../../Zotlabs/Module/Settings.php:823
-msgid "Off"
-msgstr "Desactivado"
-
-#: ../../Zotlabs/Module/Admin.php:677 ../../Zotlabs/Module/Admin.php:678
-#: ../../Zotlabs/Module/Settings.php:823
-msgid "On"
-msgstr "Activado"
-
-#: ../../Zotlabs/Module/Admin.php:678
+#: ../../Zotlabs/Module/Admin.php:691
#, php-format
msgid "Lock feature %s"
msgstr "Bloquear la funcionalidad %s"
-#: ../../Zotlabs/Module/Admin.php:686
+#: ../../Zotlabs/Module/Admin.php:699
msgid "Manage Additional Features"
msgstr "Gestionar las funcionalidades"
-#: ../../Zotlabs/Module/Admin.php:703
+#: ../../Zotlabs/Module/Admin.php:716
msgid "No server found"
msgstr "Servidor no encontrado"
-#: ../../Zotlabs/Module/Admin.php:710 ../../Zotlabs/Module/Admin.php:1046
+#: ../../Zotlabs/Module/Admin.php:723 ../../Zotlabs/Module/Admin.php:1059
msgid "ID"
msgstr "ID"
-#: ../../Zotlabs/Module/Admin.php:710
+#: ../../Zotlabs/Module/Admin.php:723
msgid "for channel"
msgstr "por canal"
-#: ../../Zotlabs/Module/Admin.php:710
+#: ../../Zotlabs/Module/Admin.php:723
msgid "on server"
msgstr "en el servidor"
-#: ../../Zotlabs/Module/Admin.php:712
+#: ../../Zotlabs/Module/Admin.php:725
msgid "Server"
msgstr "Servidor"
-#: ../../Zotlabs/Module/Admin.php:746
+#: ../../Zotlabs/Module/Admin.php:759
msgid ""
"By default, unfiltered HTML is allowed in embedded media. This is inherently"
" insecure."
msgstr "De forma predeterminada, el HTML sin filtrar está permitido en el contenido multimedia incorporado en una publicación. Esto es siempre inseguro."
-#: ../../Zotlabs/Module/Admin.php:749
+#: ../../Zotlabs/Module/Admin.php:762
msgid ""
"The recommended setting is to only allow unfiltered HTML from the following "
"sites:"
msgstr "La configuración recomendada es que sólo se permita HTML sin filtrar desde los siguientes sitios: "
-#: ../../Zotlabs/Module/Admin.php:750
+#: ../../Zotlabs/Module/Admin.php:763
msgid ""
"https://youtube.com/<br />https://www.youtube.com/<br />https://youtu.be/<br"
" />https://vimeo.com/<br />https://soundcloud.com/<br />"
msgstr "https://youtube.com/<br />https://www.youtube.com/<br />https://youtu.be/<br />https://vimeo.com/<br />https://soundcloud.com/<br />"
-#: ../../Zotlabs/Module/Admin.php:751
+#: ../../Zotlabs/Module/Admin.php:764
msgid ""
"All other embedded content will be filtered, <strong>unless</strong> "
"embedded content from that site is explicitly blocked."
msgstr "El resto del contenido incrustado se filtrará, <strong>excepto</ strong> si el contenido incorporado desde ese sitio está bloqueado de forma explícita."
-#: ../../Zotlabs/Module/Admin.php:756 ../../include/widgets.php:1479
+#: ../../Zotlabs/Module/Admin.php:769 ../../include/widgets.php:1493
msgid "Security"
msgstr "Seguridad"
-#: ../../Zotlabs/Module/Admin.php:758
+#: ../../Zotlabs/Module/Admin.php:771
msgid "Block public"
msgstr "Bloquear páginas públicas"
-#: ../../Zotlabs/Module/Admin.php:758
+#: ../../Zotlabs/Module/Admin.php:771
msgid ""
"Check to block public access to all otherwise public personal pages on this "
"site unless you are currently authenticated."
msgstr "Habilitar para impedir ver las páginas personales de este sitio a quien no esté actualmente autenticado."
-#: ../../Zotlabs/Module/Admin.php:759
+#: ../../Zotlabs/Module/Admin.php:772
msgid "Set \"Transport Security\" HTTP header"
msgstr "Habilitar \"Seguridad de transporte\" (\"Transport Security\") en la cabecera HTTP"
-#: ../../Zotlabs/Module/Admin.php:760
+#: ../../Zotlabs/Module/Admin.php:773
msgid "Set \"Content Security Policy\" HTTP header"
msgstr "Habilitar la \"Política de seguridad del contenido\" (\"Content Security Policy\") en la cabecera HTTP"
-#: ../../Zotlabs/Module/Admin.php:761
+#: ../../Zotlabs/Module/Admin.php:774
msgid "Allow communications only from these sites"
msgstr "Permitir la comunicación solo desde estos sitios"
-#: ../../Zotlabs/Module/Admin.php:761
+#: ../../Zotlabs/Module/Admin.php:774
msgid ""
"One site per line. Leave empty to allow communication from anywhere by "
"default"
msgstr "Un sitio por línea. Dejar en blanco para permitir por defecto la comunicación desde cualquiera"
-#: ../../Zotlabs/Module/Admin.php:762
+#: ../../Zotlabs/Module/Admin.php:775
msgid "Block communications from these sites"
msgstr "Bloquear la comunicación desde estos sitios"
-#: ../../Zotlabs/Module/Admin.php:763
+#: ../../Zotlabs/Module/Admin.php:776
msgid "Allow communications only from these channels"
msgstr "Permitir la comunicación solo desde estos canales"
-#: ../../Zotlabs/Module/Admin.php:763
+#: ../../Zotlabs/Module/Admin.php:776
msgid ""
"One channel (hash) per line. Leave empty to allow from any channel by "
"default"
msgstr "Un canal (hash) por línea. Dejar en blanco para permitir por defecto la comunicación desde cualquiera"
-#: ../../Zotlabs/Module/Admin.php:764
+#: ../../Zotlabs/Module/Admin.php:777
msgid "Block communications from these channels"
msgstr "Bloquear la comunicación desde estos canales"
-#: ../../Zotlabs/Module/Admin.php:765
+#: ../../Zotlabs/Module/Admin.php:778
msgid "Only allow embeds from secure (SSL) websites and links."
msgstr "Sólo se permite contenido multimedia incorporado desde sitios y enlaces seguros (SSL)."
-#: ../../Zotlabs/Module/Admin.php:766
+#: ../../Zotlabs/Module/Admin.php:779
msgid "Allow unfiltered embedded HTML content only from these domains"
msgstr "Permitir contenido HTML sin filtrar sólo desde estos dominios "
-#: ../../Zotlabs/Module/Admin.php:766
+#: ../../Zotlabs/Module/Admin.php:779
msgid "One site per line. By default embedded content is filtered."
msgstr "Un sitio por línea. El contenido incorporado se filtra de forma predeterminada."
-#: ../../Zotlabs/Module/Admin.php:767
+#: ../../Zotlabs/Module/Admin.php:780
msgid "Block embedded HTML from these domains"
msgstr "Bloquear contenido con HTML incorporado desde estos dominios"
-#: ../../Zotlabs/Module/Admin.php:785
+#: ../../Zotlabs/Module/Admin.php:798
msgid "Update has been marked successful"
msgstr "La actualización ha sido marcada como exitosa"
-#: ../../Zotlabs/Module/Admin.php:795
+#: ../../Zotlabs/Module/Admin.php:808
#, php-format
msgid "Executing %s failed. Check system logs."
msgstr "La ejecución de %s ha fallado. Mirar en los informes del sistema."
-#: ../../Zotlabs/Module/Admin.php:798
+#: ../../Zotlabs/Module/Admin.php:811
#, php-format
msgid "Update %s was successfully applied."
msgstr "La actualización de %s se ha realizado exitosamente."
-#: ../../Zotlabs/Module/Admin.php:802
+#: ../../Zotlabs/Module/Admin.php:815
#, php-format
msgid "Update %s did not return a status. Unknown if it succeeded."
msgstr "La actualización de %s no ha devuelto ningún estado. No se sabe si ha tenido éxito."
-#: ../../Zotlabs/Module/Admin.php:805
+#: ../../Zotlabs/Module/Admin.php:818
#, php-format
msgid "Update function %s could not be found."
msgstr "No se encuentra la función de actualización de %s."
-#: ../../Zotlabs/Module/Admin.php:821
+#: ../../Zotlabs/Module/Admin.php:834
msgid "No failed updates."
msgstr "No ha fallado ninguna actualización."
-#: ../../Zotlabs/Module/Admin.php:825
+#: ../../Zotlabs/Module/Admin.php:838
msgid "Failed Updates"
msgstr "Han fallado las actualizaciones"
-#: ../../Zotlabs/Module/Admin.php:827
+#: ../../Zotlabs/Module/Admin.php:840
msgid "Mark success (if update was manually applied)"
msgstr "Marcar como exitosa (si la actualización se ha hecho manualmente)"
-#: ../../Zotlabs/Module/Admin.php:828
+#: ../../Zotlabs/Module/Admin.php:841
msgid "Attempt to execute this update step automatically"
msgstr "Intentar ejecutar este paso de actualización automáticamente"
-#: ../../Zotlabs/Module/Admin.php:859
+#: ../../Zotlabs/Module/Admin.php:872
msgid "Queue Statistics"
msgstr "Estadísticas de la cola"
-#: ../../Zotlabs/Module/Admin.php:860
+#: ../../Zotlabs/Module/Admin.php:873
msgid "Total Entries"
msgstr "Total de entradas"
-#: ../../Zotlabs/Module/Admin.php:861
+#: ../../Zotlabs/Module/Admin.php:874
msgid "Priority"
msgstr "Prioridad"
-#: ../../Zotlabs/Module/Admin.php:862
+#: ../../Zotlabs/Module/Admin.php:875
msgid "Destination URL"
msgstr "Dirección de destino"
-#: ../../Zotlabs/Module/Admin.php:863
+#: ../../Zotlabs/Module/Admin.php:876
msgid "Mark hub permanently offline"
msgstr "Marcar el servidor como permanentemente fuera de línea"
-#: ../../Zotlabs/Module/Admin.php:864
+#: ../../Zotlabs/Module/Admin.php:877
msgid "Empty queue for this hub"
msgstr "Vaciar la cola para este servidor"
-#: ../../Zotlabs/Module/Admin.php:865
+#: ../../Zotlabs/Module/Admin.php:878
msgid "Last known contact"
msgstr "Último contacto conocido"
-#: ../../Zotlabs/Module/Admin.php:901
+#: ../../Zotlabs/Module/Admin.php:914
#, php-format
msgid "%s account blocked/unblocked"
msgid_plural "%s account blocked/unblocked"
msgstr[0] "%s cuenta bloqueada/desbloqueada"
msgstr[1] "%s cuenta bloqueada/desbloqueada"
-#: ../../Zotlabs/Module/Admin.php:908
+#: ../../Zotlabs/Module/Admin.php:921
#, php-format
msgid "%s account deleted"
msgid_plural "%s accounts deleted"
msgstr[0] "%s cuentas eliminadas"
msgstr[1] "%s cuentas eliminadas"
-#: ../../Zotlabs/Module/Admin.php:944
+#: ../../Zotlabs/Module/Admin.php:957
msgid "Account not found"
msgstr "Cuenta no encontrada"
-#: ../../Zotlabs/Module/Admin.php:955
+#: ../../Zotlabs/Module/Admin.php:968
#, php-format
msgid "Account '%s' deleted"
msgstr "La cuenta '%s' ha sido eliminada"
-#: ../../Zotlabs/Module/Admin.php:963
+#: ../../Zotlabs/Module/Admin.php:976
#, php-format
msgid "Account '%s' blocked"
msgstr "La cuenta '%s' ha sido bloqueada"
-#: ../../Zotlabs/Module/Admin.php:971
+#: ../../Zotlabs/Module/Admin.php:984
#, php-format
msgid "Account '%s' unblocked"
msgstr "La cuenta '%s' ha sido desbloqueada"
-#: ../../Zotlabs/Module/Admin.php:1031 ../../Zotlabs/Module/Admin.php:1044
-#: ../../include/widgets.php:1477
+#: ../../Zotlabs/Module/Admin.php:1044 ../../Zotlabs/Module/Admin.php:1057
+#: ../../include/widgets.php:1491
msgid "Accounts"
msgstr "Cuentas"
-#: ../../Zotlabs/Module/Admin.php:1033 ../../Zotlabs/Module/Admin.php:1212
+#: ../../Zotlabs/Module/Admin.php:1046 ../../Zotlabs/Module/Admin.php:1225
msgid "select all"
msgstr "seleccionar todo"
-#: ../../Zotlabs/Module/Admin.php:1034
+#: ../../Zotlabs/Module/Admin.php:1047
msgid "Registrations waiting for confirm"
msgstr "Inscripciones en espera de confirmación"
-#: ../../Zotlabs/Module/Admin.php:1035
+#: ../../Zotlabs/Module/Admin.php:1048
msgid "Request date"
msgstr "Fecha de solicitud"
-#: ../../Zotlabs/Module/Admin.php:1036
+#: ../../Zotlabs/Module/Admin.php:1048 ../../Zotlabs/Module/Admin.php:1060
+#: ../../include/network.php:2208
+msgid "Email"
+msgstr "Correo electrónico"
+
+#: ../../Zotlabs/Module/Admin.php:1049
msgid "No registrations."
msgstr "Sin registros."
-#: ../../Zotlabs/Module/Admin.php:1038
+#: ../../Zotlabs/Module/Admin.php:1051
msgid "Deny"
msgstr "Rechazar"
-#: ../../Zotlabs/Module/Admin.php:1048 ../../include/group.php:267
+#: ../../Zotlabs/Module/Admin.php:1053 ../../Zotlabs/Module/Connedit.php:575
+msgid "Block"
+msgstr "Bloquear"
+
+#: ../../Zotlabs/Module/Admin.php:1054 ../../Zotlabs/Module/Connedit.php:575
+msgid "Unblock"
+msgstr "Desbloquear"
+
+#: ../../Zotlabs/Module/Admin.php:1061 ../../include/group.php:267
msgid "All Channels"
msgstr "Todos los canales"
-#: ../../Zotlabs/Module/Admin.php:1049
+#: ../../Zotlabs/Module/Admin.php:1062
msgid "Register date"
msgstr "Fecha de registro"
-#: ../../Zotlabs/Module/Admin.php:1050
+#: ../../Zotlabs/Module/Admin.php:1063
msgid "Last login"
msgstr "Último acceso"
-#: ../../Zotlabs/Module/Admin.php:1051
+#: ../../Zotlabs/Module/Admin.php:1064
msgid "Expires"
msgstr "Caduca"
-#: ../../Zotlabs/Module/Admin.php:1052
+#: ../../Zotlabs/Module/Admin.php:1065
msgid "Service Class"
msgstr "Clase de servicio"
-#: ../../Zotlabs/Module/Admin.php:1054
+#: ../../Zotlabs/Module/Admin.php:1067
msgid ""
"Selected accounts will be deleted!\\n\\nEverything these accounts had posted"
" on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "¡Las cuentas seleccionadas van a ser eliminadas!\\n\\n¡Todo lo que estas cuentas han publicado en este sitio será borrado de forma permanente!\\n\\n¿Está seguro de querer hacerlo?"
-#: ../../Zotlabs/Module/Admin.php:1055
+#: ../../Zotlabs/Module/Admin.php:1068
msgid ""
"The account {0} will be deleted!\\n\\nEverything this account has posted on "
"this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "¡La cuenta {0} va a ser eliminada!\\n\\n¡Todo lo que esta cuenta ha publicado en este sitio será borrado de forma permanente!\\n\\n¿Está seguro de querer hacerlo?"
-#: ../../Zotlabs/Module/Admin.php:1091
+#: ../../Zotlabs/Module/Admin.php:1104
#, php-format
msgid "%s channel censored/uncensored"
msgid_plural "%s channels censored/uncensored"
msgstr[0] "%s canales censurados/no censurados"
msgstr[1] "%s canales censurados/no censurados"
-#: ../../Zotlabs/Module/Admin.php:1100
+#: ../../Zotlabs/Module/Admin.php:1113
#, php-format
msgid "%s channel code allowed/disallowed"
msgid_plural "%s channels code allowed/disallowed"
msgstr[0] "%s código permitido/no permitido al canal"
msgstr[1] "%s código permitido/no permitido al canal"
-#: ../../Zotlabs/Module/Admin.php:1106
+#: ../../Zotlabs/Module/Admin.php:1119
#, php-format
msgid "%s channel deleted"
msgid_plural "%s channels deleted"
msgstr[0] "%s canales eliminados"
msgstr[1] "%s canales eliminados"
-#: ../../Zotlabs/Module/Admin.php:1126
+#: ../../Zotlabs/Module/Admin.php:1139
msgid "Channel not found"
msgstr "Canal no encontrado"
-#: ../../Zotlabs/Module/Admin.php:1136
+#: ../../Zotlabs/Module/Admin.php:1149
#, php-format
msgid "Channel '%s' deleted"
msgstr "Canal '%s' eliminado"
-#: ../../Zotlabs/Module/Admin.php:1148
+#: ../../Zotlabs/Module/Admin.php:1161
#, php-format
msgid "Channel '%s' censored"
msgstr "Canal '%s' censurado"
-#: ../../Zotlabs/Module/Admin.php:1148
+#: ../../Zotlabs/Module/Admin.php:1161
#, php-format
msgid "Channel '%s' uncensored"
msgstr "Canal '%s' no censurado"
-#: ../../Zotlabs/Module/Admin.php:1159
+#: ../../Zotlabs/Module/Admin.php:1172
#, php-format
msgid "Channel '%s' code allowed"
msgstr "Código permitido al canal '%s'"
-#: ../../Zotlabs/Module/Admin.php:1159
+#: ../../Zotlabs/Module/Admin.php:1172
#, php-format
msgid "Channel '%s' code disallowed"
msgstr "Código no permitido al canal '%s'"
-#: ../../Zotlabs/Module/Admin.php:1210 ../../include/widgets.php:1478
+#: ../../Zotlabs/Module/Admin.php:1223 ../../include/widgets.php:1492
msgid "Channels"
msgstr "Canales"
-#: ../../Zotlabs/Module/Admin.php:1214
+#: ../../Zotlabs/Module/Admin.php:1227
msgid "Censor"
msgstr "Censurar"
-#: ../../Zotlabs/Module/Admin.php:1215
+#: ../../Zotlabs/Module/Admin.php:1228
msgid "Uncensor"
msgstr "No censurar"
-#: ../../Zotlabs/Module/Admin.php:1216
+#: ../../Zotlabs/Module/Admin.php:1229
msgid "Allow Code"
msgstr "Permitir código"
-#: ../../Zotlabs/Module/Admin.php:1217
+#: ../../Zotlabs/Module/Admin.php:1230
msgid "Disallow Code"
msgstr "No permitir código"
-#: ../../Zotlabs/Module/Admin.php:1218 ../../include/conversation.php:1626
+#: ../../Zotlabs/Module/Admin.php:1231 ../../include/conversation.php:1644
msgid "Channel"
msgstr "Canal"
-#: ../../Zotlabs/Module/Admin.php:1222
+#: ../../Zotlabs/Module/Admin.php:1235
msgid "UID"
msgstr "UID"
-#: ../../Zotlabs/Module/Admin.php:1226
+#: ../../Zotlabs/Module/Admin.php:1239
msgid ""
"Selected channels will be deleted!\\n\\nEverything that was posted in these "
"channels on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Los canales seleccionados se eliminarán!\\n\\nTodo lo publicado por estos canales en este sitio se borrarán definitivamente!\\n\\n¿Está seguro de querer hacerlo?"
-#: ../../Zotlabs/Module/Admin.php:1227
+#: ../../Zotlabs/Module/Admin.php:1240
msgid ""
"The channel {0} will be deleted!\\n\\nEverything that was posted in this "
"channel on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "El canal {0} va a ser eliminado!\\n\\nTodo lo publicado por el canal en este sitio se borrará definitivamente!\\n\\n¿Está seguro de querer hacerlo?"
-#: ../../Zotlabs/Module/Admin.php:1284
+#: ../../Zotlabs/Module/Admin.php:1297
#, php-format
msgid "Plugin %s disabled."
msgstr "Extensión %s desactivada."
-#: ../../Zotlabs/Module/Admin.php:1288
+#: ../../Zotlabs/Module/Admin.php:1301
#, php-format
msgid "Plugin %s enabled."
msgstr "Extensión %s activada."
-#: ../../Zotlabs/Module/Admin.php:1298 ../../Zotlabs/Module/Admin.php:1585
+#: ../../Zotlabs/Module/Admin.php:1311 ../../Zotlabs/Module/Admin.php:1599
msgid "Disable"
msgstr "Desactivar"
-#: ../../Zotlabs/Module/Admin.php:1301 ../../Zotlabs/Module/Admin.php:1587
+#: ../../Zotlabs/Module/Admin.php:1314 ../../Zotlabs/Module/Admin.php:1601
msgid "Enable"
msgstr "Activar"
-#: ../../Zotlabs/Module/Admin.php:1330 ../../Zotlabs/Module/Admin.php:1420
-#: ../../include/widgets.php:1481
+#: ../../Zotlabs/Module/Admin.php:1343 ../../Zotlabs/Module/Admin.php:1434
+#: ../../include/widgets.php:1495
msgid "Plugins"
msgstr "Extensiones (plugins)"
-#: ../../Zotlabs/Module/Admin.php:1331 ../../Zotlabs/Module/Admin.php:1614
+#: ../../Zotlabs/Module/Admin.php:1344 ../../Zotlabs/Module/Admin.php:1628
msgid "Toggle"
msgstr "Cambiar"
-#: ../../Zotlabs/Module/Admin.php:1332 ../../Zotlabs/Module/Admin.php:1615
-#: ../../Zotlabs/Lib/Apps.php:216 ../../include/nav.php:210
-#: ../../include/widgets.php:647
+#: ../../Zotlabs/Module/Admin.php:1345 ../../Zotlabs/Module/Admin.php:1629
+#: ../../Zotlabs/Lib/Apps.php:216 ../../include/widgets.php:647
+#: ../../include/nav.php:212
msgid "Settings"
msgstr "Ajustes"
-#: ../../Zotlabs/Module/Admin.php:1339 ../../Zotlabs/Module/Admin.php:1624
+#: ../../Zotlabs/Module/Admin.php:1352 ../../Zotlabs/Module/Admin.php:1638
msgid "Author: "
msgstr "Autor:"
-#: ../../Zotlabs/Module/Admin.php:1340 ../../Zotlabs/Module/Admin.php:1625
+#: ../../Zotlabs/Module/Admin.php:1353 ../../Zotlabs/Module/Admin.php:1639
msgid "Maintainer: "
msgstr "Mantenedor:"
-#: ../../Zotlabs/Module/Admin.php:1341
+#: ../../Zotlabs/Module/Admin.php:1354
msgid "Minimum project version: "
msgstr "Versión mínima del proyecto:"
-#: ../../Zotlabs/Module/Admin.php:1342
+#: ../../Zotlabs/Module/Admin.php:1355
msgid "Maximum project version: "
msgstr "Versión máxima del proyecto:"
-#: ../../Zotlabs/Module/Admin.php:1343
+#: ../../Zotlabs/Module/Admin.php:1356
msgid "Minimum PHP version: "
msgstr "Versión mínima de PHP:"
-#: ../../Zotlabs/Module/Admin.php:1344
+#: ../../Zotlabs/Module/Admin.php:1357
+msgid "Compatible Server Roles: "
+msgstr "Configuraciones compatibles con este servidor:"
+
+#: ../../Zotlabs/Module/Admin.php:1358
msgid "Requires: "
msgstr "Se requiere:"
-#: ../../Zotlabs/Module/Admin.php:1345 ../../Zotlabs/Module/Admin.php:1425
+#: ../../Zotlabs/Module/Admin.php:1359 ../../Zotlabs/Module/Admin.php:1439
msgid "Disabled - version incompatibility"
msgstr "Deshabilitado - versiones incompatibles"
-#: ../../Zotlabs/Module/Admin.php:1394
+#: ../../Zotlabs/Module/Admin.php:1408
msgid "Enter the public git repository URL of the plugin repo."
msgstr "Escriba la URL pública del repositorio git del plugin."
-#: ../../Zotlabs/Module/Admin.php:1395
+#: ../../Zotlabs/Module/Admin.php:1409
msgid "Plugin repo git URL"
msgstr "URL del repositorio git del plugin"
-#: ../../Zotlabs/Module/Admin.php:1396
+#: ../../Zotlabs/Module/Admin.php:1410
msgid "Custom repo name"
msgstr "Nombre personalizado del repositorio"
-#: ../../Zotlabs/Module/Admin.php:1396
+#: ../../Zotlabs/Module/Admin.php:1410
msgid "(optional)"
msgstr "(opcional)"
-#: ../../Zotlabs/Module/Admin.php:1397
+#: ../../Zotlabs/Module/Admin.php:1411
msgid "Download Plugin Repo"
msgstr "Descargar el repositorio"
-#: ../../Zotlabs/Module/Admin.php:1404
+#: ../../Zotlabs/Module/Admin.php:1418
msgid "Install new repo"
msgstr "Instalar un nuevo repositorio"
-#: ../../Zotlabs/Module/Admin.php:1405 ../../Zotlabs/Lib/Apps.php:334
+#: ../../Zotlabs/Module/Admin.php:1419 ../../Zotlabs/Lib/Apps.php:334
msgid "Install"
msgstr "Instalar"
-#: ../../Zotlabs/Module/Admin.php:1427
+#: ../../Zotlabs/Module/Admin.php:1441
msgid "Manage Repos"
msgstr "Gestionar los repositorios"
-#: ../../Zotlabs/Module/Admin.php:1428
+#: ../../Zotlabs/Module/Admin.php:1442
msgid "Installed Plugin Repositories"
msgstr "Repositorios de los plugins instalados"
-#: ../../Zotlabs/Module/Admin.php:1429
+#: ../../Zotlabs/Module/Admin.php:1443
msgid "Install a New Plugin Repository"
msgstr "Instalar un nuevo repositorio de plugins"
-#: ../../Zotlabs/Module/Admin.php:1435 ../../Zotlabs/Module/Settings.php:72
-#: ../../Zotlabs/Module/Settings.php:670 ../../Zotlabs/Lib/Apps.php:334
-msgid "Update"
-msgstr "Actualizar"
-
-#: ../../Zotlabs/Module/Admin.php:1436
+#: ../../Zotlabs/Module/Admin.php:1450
msgid "Switch branch"
msgstr "Cambiar la rama"
-#: ../../Zotlabs/Module/Admin.php:1550
+#: ../../Zotlabs/Module/Admin.php:1564
msgid "No themes found."
msgstr "No se han encontrado temas."
-#: ../../Zotlabs/Module/Admin.php:1606
+#: ../../Zotlabs/Module/Admin.php:1620
msgid "Screenshot"
msgstr "Instantánea de pantalla"
-#: ../../Zotlabs/Module/Admin.php:1613 ../../Zotlabs/Module/Admin.php:1647
-#: ../../include/widgets.php:1482
+#: ../../Zotlabs/Module/Admin.php:1627 ../../Zotlabs/Module/Admin.php:1661
+#: ../../include/widgets.php:1496
msgid "Themes"
msgstr "Temas"
-#: ../../Zotlabs/Module/Admin.php:1652
+#: ../../Zotlabs/Module/Admin.php:1666
msgid "[Experimental]"
msgstr "[Experimental]"
-#: ../../Zotlabs/Module/Admin.php:1653
+#: ../../Zotlabs/Module/Admin.php:1667
msgid "[Unsupported]"
msgstr "[No soportado]"
-#: ../../Zotlabs/Module/Admin.php:1677
+#: ../../Zotlabs/Module/Admin.php:1691
msgid "Log settings updated."
msgstr "Actualizado el informe de configuraciones."
-#: ../../Zotlabs/Module/Admin.php:1732 ../../include/widgets.php:1503
-#: ../../include/widgets.php:1513
+#: ../../Zotlabs/Module/Admin.php:1746 ../../include/widgets.php:1517
+#: ../../include/widgets.php:1527
msgid "Logs"
msgstr "Informes"
-#: ../../Zotlabs/Module/Admin.php:1734
+#: ../../Zotlabs/Module/Admin.php:1748
msgid "Clear"
msgstr "Vaciar"
-#: ../../Zotlabs/Module/Admin.php:1740
+#: ../../Zotlabs/Module/Admin.php:1754
msgid "Debugging"
msgstr "Depuración"
-#: ../../Zotlabs/Module/Admin.php:1741
+#: ../../Zotlabs/Module/Admin.php:1755
msgid "Log file"
msgstr "Fichero de informe"
-#: ../../Zotlabs/Module/Admin.php:1741
+#: ../../Zotlabs/Module/Admin.php:1755
msgid ""
"Must be writable by web server. Relative to your top-level webserver "
"directory."
msgstr "Debe tener permisos de escritura por el servidor web. La ruta es relativa al directorio web principal."
-#: ../../Zotlabs/Module/Admin.php:1742
+#: ../../Zotlabs/Module/Admin.php:1756
msgid "Log level"
msgstr "Nivel de depuración"
-#: ../../Zotlabs/Module/Admin.php:2028
+#: ../../Zotlabs/Module/Admin.php:2042
msgid "New Profile Field"
msgstr "Nuevo campo en el perfil"
-#: ../../Zotlabs/Module/Admin.php:2029 ../../Zotlabs/Module/Admin.php:2049
+#: ../../Zotlabs/Module/Admin.php:2043 ../../Zotlabs/Module/Admin.php:2063
msgid "Field nickname"
msgstr "Alias del campo"
-#: ../../Zotlabs/Module/Admin.php:2029 ../../Zotlabs/Module/Admin.php:2049
+#: ../../Zotlabs/Module/Admin.php:2043 ../../Zotlabs/Module/Admin.php:2063
msgid "System name of field"
msgstr "Nombre del campo en el sistema"
-#: ../../Zotlabs/Module/Admin.php:2030 ../../Zotlabs/Module/Admin.php:2050
+#: ../../Zotlabs/Module/Admin.php:2044 ../../Zotlabs/Module/Admin.php:2064
msgid "Input type"
msgstr "Tipo de entrada"
-#: ../../Zotlabs/Module/Admin.php:2031 ../../Zotlabs/Module/Admin.php:2051
+#: ../../Zotlabs/Module/Admin.php:2045 ../../Zotlabs/Module/Admin.php:2065
msgid "Field Name"
msgstr "Nombre del campo"
-#: ../../Zotlabs/Module/Admin.php:2031 ../../Zotlabs/Module/Admin.php:2051
+#: ../../Zotlabs/Module/Admin.php:2045 ../../Zotlabs/Module/Admin.php:2065
msgid "Label on profile pages"
msgstr "Etiqueta a mostrar en la página del perfil"
-#: ../../Zotlabs/Module/Admin.php:2032 ../../Zotlabs/Module/Admin.php:2052
+#: ../../Zotlabs/Module/Admin.php:2046 ../../Zotlabs/Module/Admin.php:2066
msgid "Help text"
msgstr "Texto de ayuda"
-#: ../../Zotlabs/Module/Admin.php:2032 ../../Zotlabs/Module/Admin.php:2052
+#: ../../Zotlabs/Module/Admin.php:2046 ../../Zotlabs/Module/Admin.php:2066
msgid "Additional info (optional)"
msgstr "Información adicional (opcional)"
-#: ../../Zotlabs/Module/Admin.php:2042
+#: ../../Zotlabs/Module/Admin.php:2056
msgid "Field definition not found"
msgstr "Definición del campo no encontrada"
-#: ../../Zotlabs/Module/Admin.php:2048
+#: ../../Zotlabs/Module/Admin.php:2062
msgid "Edit Profile Field"
msgstr "Modificar el campo del perfil"
-#: ../../Zotlabs/Module/Admin.php:2106 ../../include/widgets.php:1484
+#: ../../Zotlabs/Module/Admin.php:2120 ../../include/widgets.php:1498
msgid "Profile Fields"
msgstr "Campos del perfil"
-#: ../../Zotlabs/Module/Admin.php:2107
+#: ../../Zotlabs/Module/Admin.php:2121
msgid "Basic Profile Fields"
msgstr "Campos básicos del perfil"
-#: ../../Zotlabs/Module/Admin.php:2108
+#: ../../Zotlabs/Module/Admin.php:2122
msgid "Advanced Profile Fields"
msgstr "Campos avanzados del perfil"
-#: ../../Zotlabs/Module/Admin.php:2108
+#: ../../Zotlabs/Module/Admin.php:2122
msgid "(In addition to basic fields)"
msgstr "(Además de los campos básicos)"
-#: ../../Zotlabs/Module/Admin.php:2110
+#: ../../Zotlabs/Module/Admin.php:2124
msgid "All available fields"
msgstr "Todos los campos disponibles"
-#: ../../Zotlabs/Module/Admin.php:2111
+#: ../../Zotlabs/Module/Admin.php:2125
msgid "Custom Fields"
msgstr "Campos personalizados"
-#: ../../Zotlabs/Module/Admin.php:2115
+#: ../../Zotlabs/Module/Admin.php:2129
msgid "Create Custom Field"
msgstr "Crear un campo personalizado"
-#: ../../Zotlabs/Module/New_channel.php:128
-#: ../../Zotlabs/Module/Register.php:231
-msgid "Name or caption"
-msgstr "Nombre o descripción"
+#: ../../Zotlabs/Module/Lostpass.php:19
+msgid "No valid account found."
+msgstr "No se ha encontrado una cuenta válida."
-#: ../../Zotlabs/Module/New_channel.php:128
-#: ../../Zotlabs/Module/Register.php:231
-msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\""
-msgstr "Ejemplos: \"Juan García\", \"Luisa y sus caballos\", \"Fútbol\", \"Grupo de aviación\""
+#: ../../Zotlabs/Module/Lostpass.php:33
+msgid "Password reset request issued. Check your email."
+msgstr "Se ha recibido una solicitud de restablecimiento de contraseña. Consulte su correo electrónico."
-#: ../../Zotlabs/Module/New_channel.php:130
-#: ../../Zotlabs/Module/Register.php:233
-msgid "Choose a short nickname"
-msgstr "Elija un alias corto"
+#: ../../Zotlabs/Module/Lostpass.php:39 ../../Zotlabs/Module/Lostpass.php:107
+#, php-format
+msgid "Site Member (%s)"
+msgstr "Usuario del sitio (%s)"
-#: ../../Zotlabs/Module/New_channel.php:130
-#: ../../Zotlabs/Module/Register.php:233
+#: ../../Zotlabs/Module/Lostpass.php:44
#, php-format
+msgid "Password reset requested at %s"
+msgstr "Se ha solicitado restablecer la contraseña en %s"
+
+#: ../../Zotlabs/Module/Lostpass.php:67
msgid ""
-"Your nickname will be used to create an easy to remember channel address "
-"e.g. nickname%s"
-msgstr "Su alias se usará para crear una dirección de canal fácil de recordar, p. ej.: alias%s"
+"Request could not be verified. (You may have previously submitted it.) "
+"Password reset failed."
+msgstr "La solicitud no ha podido ser verificada. (Puede que la haya enviado con anterioridad) El restablecimiento de la contraseña ha fallado."
-#: ../../Zotlabs/Module/New_channel.php:132
-#: ../../Zotlabs/Module/Register.php:235
-msgid "Channel role and privacy"
-msgstr "Clase de canal y privacidad"
+#: ../../Zotlabs/Module/Lostpass.php:90 ../../boot.php:1746
+msgid "Password Reset"
+msgstr "Restablecer la contraseña"
-#: ../../Zotlabs/Module/New_channel.php:132
-#: ../../Zotlabs/Module/Register.php:235
-msgid "Select a channel role with your privacy requirements."
-msgstr "Seleccione un tipo de canal con sus requisitos de privacidad"
+#: ../../Zotlabs/Module/Lostpass.php:91
+msgid "Your password has been reset as requested."
+msgstr "Su contraseña ha sido restablecida según lo solicitó."
-#: ../../Zotlabs/Module/New_channel.php:132
-#: ../../Zotlabs/Module/Register.php:235
-msgid "Read more about roles"
-msgstr "Leer más sobre los roles"
+#: ../../Zotlabs/Module/Lostpass.php:92
+msgid "Your new password is"
+msgstr "Su nueva contraseña es"
+
+#: ../../Zotlabs/Module/Lostpass.php:93
+msgid "Save or copy your new password - and then"
+msgstr "Guarde o copie su nueva contraseña - y después"
+
+#: ../../Zotlabs/Module/Lostpass.php:94
+msgid "click here to login"
+msgstr "pulse aquí para conectarse"
+
+#: ../../Zotlabs/Module/Lostpass.php:95
+msgid ""
+"Your password may be changed from the <em>Settings</em> page after "
+"successful login."
+msgstr "Puede cambiar la contraseña en la página <em>Ajustes</em> una vez iniciada la sesión."
+
+#: ../../Zotlabs/Module/Lostpass.php:112
+#, php-format
+msgid "Your password has changed at %s"
+msgstr "Su contraseña en %s ha sido cambiada"
+
+#: ../../Zotlabs/Module/Lostpass.php:127
+msgid "Forgot your Password?"
+msgstr "¿Ha olvidado su contraseña?"
+
+#: ../../Zotlabs/Module/Lostpass.php:128
+msgid ""
+"Enter your email address and submit to have your password reset. Then check "
+"your email for further instructions."
+msgstr "Introduzca y envíe su dirección de correo electrónico para el restablecimiento de su contraseña. Luego revise su correo para obtener más instrucciones."
+
+#: ../../Zotlabs/Module/Lostpass.php:129
+msgid "Email Address"
+msgstr "Dirección de correo electrónico"
+
+#: ../../Zotlabs/Module/Lostpass.php:130
+msgid "Reset"
+msgstr "Reiniciar"
+
+#: ../../Zotlabs/Module/Mood.php:67 ../../include/conversation.php:260
+#, php-format
+msgctxt "mood"
+msgid "%1$s is %2$s"
+msgstr "%1$s está %2$s"
+
+#: ../../Zotlabs/Module/Mood.php:135 ../../Zotlabs/Lib/Apps.php:227
+msgid "Mood"
+msgstr "Estado de ánimo"
+
+#: ../../Zotlabs/Module/Mood.php:136
+msgid "Set your current mood and tell your friends"
+msgstr "Describir su estado de ánimo para comunicárselo a sus amigos"
+
+#: ../../Zotlabs/Module/Profiles.php:24 ../../Zotlabs/Module/Profiles.php:189
+#: ../../Zotlabs/Module/Profiles.php:246 ../../Zotlabs/Module/Profiles.php:625
+msgid "Profile not found."
+msgstr "Perfil no encontrado."
+
+#: ../../Zotlabs/Module/Profiles.php:44
+msgid "Profile deleted."
+msgstr "Perfil eliminado."
+
+#: ../../Zotlabs/Module/Profiles.php:68 ../../Zotlabs/Module/Profiles.php:104
+msgid "Profile-"
+msgstr "Perfil-"
+
+#: ../../Zotlabs/Module/Profiles.php:89 ../../Zotlabs/Module/Profiles.php:132
+msgid "New profile created."
+msgstr "El nuevo perfil ha sido creado."
+
+#: ../../Zotlabs/Module/Profiles.php:110
+msgid "Profile unavailable to clone."
+msgstr "Perfil no disponible para clonar."
+
+#: ../../Zotlabs/Module/Profiles.php:151
+msgid "Profile unavailable to export."
+msgstr "Perfil no disponible para exportar."
+
+#: ../../Zotlabs/Module/Profiles.php:256
+msgid "Profile Name is required."
+msgstr "Se necesita el nombre del perfil."
+
+#: ../../Zotlabs/Module/Profiles.php:427
+msgid "Marital Status"
+msgstr "Estado civil"
+
+#: ../../Zotlabs/Module/Profiles.php:431
+msgid "Romantic Partner"
+msgstr "Pareja sentimental"
+
+#: ../../Zotlabs/Module/Profiles.php:435 ../../Zotlabs/Module/Profiles.php:736
+msgid "Likes"
+msgstr "Me gusta"
+
+#: ../../Zotlabs/Module/Profiles.php:439 ../../Zotlabs/Module/Profiles.php:737
+msgid "Dislikes"
+msgstr "No me gusta"
+
+#: ../../Zotlabs/Module/Profiles.php:443 ../../Zotlabs/Module/Profiles.php:744
+msgid "Work/Employment"
+msgstr "Trabajo:"
+
+#: ../../Zotlabs/Module/Profiles.php:446
+msgid "Religion"
+msgstr "Religión"
+
+#: ../../Zotlabs/Module/Profiles.php:450
+msgid "Political Views"
+msgstr "Ideas políticas"
+
+#: ../../Zotlabs/Module/Profiles.php:454
+msgid "Gender"
+msgstr "Género"
+
+#: ../../Zotlabs/Module/Profiles.php:458
+msgid "Sexual Preference"
+msgstr "Preferencia sexual"
+
+#: ../../Zotlabs/Module/Profiles.php:462
+msgid "Homepage"
+msgstr "Página personal"
+
+#: ../../Zotlabs/Module/Profiles.php:466
+msgid "Interests"
+msgstr "Intereses"
+
+#: ../../Zotlabs/Module/Profiles.php:560
+msgid "Profile updated."
+msgstr "Perfil actualizado."
+
+#: ../../Zotlabs/Module/Profiles.php:644
+msgid "Hide your connections list from viewers of this profile"
+msgstr "Ocultar la lista de conexiones a los visitantes del perfil"
+
+#: ../../Zotlabs/Module/Profiles.php:686
+msgid "Edit Profile Details"
+msgstr "Modificar los detalles de este perfil"
+
+#: ../../Zotlabs/Module/Profiles.php:688
+msgid "View this profile"
+msgstr "Ver este perfil"
+
+#: ../../Zotlabs/Module/Profiles.php:689 ../../Zotlabs/Module/Profiles.php:771
+#: ../../include/channel.php:981
+msgid "Edit visibility"
+msgstr "Editar visibilidad"
+
+#: ../../Zotlabs/Module/Profiles.php:690
+msgid "Profile Tools"
+msgstr "Gestión del perfil"
+
+#: ../../Zotlabs/Module/Profiles.php:691
+msgid "Change cover photo"
+msgstr "Cambiar la imagen de portada del perfil"
+
+#: ../../Zotlabs/Module/Profiles.php:692 ../../include/channel.php:952
+msgid "Change profile photo"
+msgstr "Cambiar la foto del perfil"
+
+#: ../../Zotlabs/Module/Profiles.php:693
+msgid "Create a new profile using these settings"
+msgstr "Crear un nuevo perfil usando estos ajustes"
+
+#: ../../Zotlabs/Module/Profiles.php:694
+msgid "Clone this profile"
+msgstr "Clonar este perfil"
+
+#: ../../Zotlabs/Module/Profiles.php:695
+msgid "Delete this profile"
+msgstr "Eliminar este perfil"
+
+#: ../../Zotlabs/Module/Profiles.php:696
+msgid "Add profile things"
+msgstr "Añadir cosas al perfil"
+
+#: ../../Zotlabs/Module/Profiles.php:697 ../../include/widgets.php:105
+#: ../../include/conversation.php:1559
+msgid "Personal"
+msgstr "Personales"
+
+#: ../../Zotlabs/Module/Profiles.php:699
+msgid "Relation"
+msgstr "Relación"
+
+#: ../../Zotlabs/Module/Profiles.php:700 ../../include/datetime.php:48
+msgid "Miscellaneous"
+msgstr "Varios"
+
+#: ../../Zotlabs/Module/Profiles.php:702
+msgid "Import profile from file"
+msgstr "Importar perfil desde un fichero"
+
+#: ../../Zotlabs/Module/Profiles.php:703
+msgid "Export profile to file"
+msgstr "Exportar perfil a un fichero"
+
+#: ../../Zotlabs/Module/Profiles.php:704
+msgid "Your gender"
+msgstr "Género"
+
+#: ../../Zotlabs/Module/Profiles.php:705
+msgid "Marital status"
+msgstr "Estado civil"
+
+#: ../../Zotlabs/Module/Profiles.php:706
+msgid "Sexual preference"
+msgstr "Preferencia sexual"
+
+#: ../../Zotlabs/Module/Profiles.php:709
+msgid "Profile name"
+msgstr "Nombre del perfil"
+
+#: ../../Zotlabs/Module/Profiles.php:711
+msgid "This is your default profile."
+msgstr "Este es su perfil principal."
+
+#: ../../Zotlabs/Module/Profiles.php:713
+msgid "Your full name"
+msgstr "Nombre completo"
+
+#: ../../Zotlabs/Module/Profiles.php:714
+msgid "Title/Description"
+msgstr "Título o descripción"
+
+#: ../../Zotlabs/Module/Profiles.php:717
+msgid "Street address"
+msgstr "Dirección"
+
+#: ../../Zotlabs/Module/Profiles.php:718
+msgid "Locality/City"
+msgstr "Ciudad"
+
+#: ../../Zotlabs/Module/Profiles.php:719
+msgid "Region/State"
+msgstr "Región o Estado"
+
+#: ../../Zotlabs/Module/Profiles.php:720
+msgid "Postal/Zip code"
+msgstr "Código postal"
+
+#: ../../Zotlabs/Module/Profiles.php:721
+msgid "Country"
+msgstr "País"
+
+#: ../../Zotlabs/Module/Profiles.php:726
+msgid "Who (if applicable)"
+msgstr "Quién (si es pertinente)"
+
+#: ../../Zotlabs/Module/Profiles.php:726
+msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
+msgstr "Por ejemplo: ana123, María González, sara@ejemplo.com"
+
+#: ../../Zotlabs/Module/Profiles.php:727
+msgid "Since (date)"
+msgstr "Desde (fecha)"
+
+#: ../../Zotlabs/Module/Profiles.php:730
+msgid "Tell us about yourself"
+msgstr "Háblenos de usted"
+
+#: ../../Zotlabs/Module/Profiles.php:731
+msgid "Homepage URL"
+msgstr "Dirección de la página personal"
+
+#: ../../Zotlabs/Module/Profiles.php:732
+msgid "Hometown"
+msgstr "Lugar de nacimiento"
+
+#: ../../Zotlabs/Module/Profiles.php:733
+msgid "Political views"
+msgstr "Ideas políticas"
+
+#: ../../Zotlabs/Module/Profiles.php:734
+msgid "Religious views"
+msgstr "Creencias religiosas"
+
+#: ../../Zotlabs/Module/Profiles.php:735
+msgid "Keywords used in directory listings"
+msgstr "Palabras clave utilizadas en los listados de directorios"
+
+#: ../../Zotlabs/Module/Profiles.php:735
+msgid "Example: fishing photography software"
+msgstr "Por ejemplo: software de fotografía submarina"
+
+#: ../../Zotlabs/Module/Profiles.php:738
+msgid "Musical interests"
+msgstr "Preferencias musicales"
+
+#: ../../Zotlabs/Module/Profiles.php:739
+msgid "Books, literature"
+msgstr "Libros, literatura"
+
+#: ../../Zotlabs/Module/Profiles.php:740
+msgid "Television"
+msgstr "Televisión"
+
+#: ../../Zotlabs/Module/Profiles.php:741
+msgid "Film/Dance/Culture/Entertainment"
+msgstr "Cine, danza, cultura, entretenimiento"
+
+#: ../../Zotlabs/Module/Profiles.php:742
+msgid "Hobbies/Interests"
+msgstr "Aficiones o intereses"
+
+#: ../../Zotlabs/Module/Profiles.php:743
+msgid "Love/Romance"
+msgstr "Vida sentimental o amorosa"
+
+#: ../../Zotlabs/Module/Profiles.php:745
+msgid "School/Education"
+msgstr "Estudios"
+
+#: ../../Zotlabs/Module/Profiles.php:746
+msgid "Contact information and social networks"
+msgstr "Información de contacto y redes sociales"
+
+#: ../../Zotlabs/Module/Profiles.php:747
+msgid "My other channels"
+msgstr "Mis otros canales"
+
+#: ../../Zotlabs/Module/Profiles.php:767 ../../include/channel.php:977
+msgid "Profile Image"
+msgstr "Imagen del perfil"
+
+#: ../../Zotlabs/Module/Profiles.php:777 ../../include/channel.php:959
+#: ../../include/nav.php:90
+msgid "Edit Profiles"
+msgstr "Editar perfiles"
+
+#: ../../Zotlabs/Module/Notify.php:57
+#: ../../Zotlabs/Module/Notifications.php:98
+msgid "No more system notifications."
+msgstr "No hay más notificaciones del sistema"
+
+#: ../../Zotlabs/Module/Notify.php:61
+#: ../../Zotlabs/Module/Notifications.php:102
+msgid "System Notifications"
+msgstr "Notificaciones del sistema"
+
+#: ../../Zotlabs/Module/Match.php:26
+msgid "Profile Match"
+msgstr "Perfil compatible"
+
+#: ../../Zotlabs/Module/Match.php:35
+msgid "No keywords to match. Please add keywords to your default profile."
+msgstr "No hay palabras clave en el perfil principal para poder encontrar perfiles compatibles. Por favor, añada palabras clave a su perfil principal."
+
+#: ../../Zotlabs/Module/Match.php:67
+msgid "is interested in:"
+msgstr "está interesado en:"
+
+#: ../../Zotlabs/Module/Match.php:74
+msgid "No matches"
+msgstr "No se han encontrado perfiles compatibles"
+
+#: ../../Zotlabs/Module/Webpages.php:53
+msgid "Import Webpage Elements"
+msgstr "Importar elementos de una página web"
+
+#: ../../Zotlabs/Module/Webpages.php:54
+msgid "Import selected"
+msgstr "Importar elementos seleccionados"
+
+#: ../../Zotlabs/Module/Webpages.php:214 ../../Zotlabs/Lib/Apps.php:218
+#: ../../include/conversation.php:1718 ../../include/nav.php:108
+msgid "Webpages"
+msgstr "Páginas web"
+
+#: ../../Zotlabs/Module/Webpages.php:225 ../../include/page_widgets.php:44
+msgid "Actions"
+msgstr "Acciones"
+
+#: ../../Zotlabs/Module/Webpages.php:226 ../../include/page_widgets.php:45
+msgid "Page Link"
+msgstr "Vínculo de la página"
+
+#: ../../Zotlabs/Module/Webpages.php:227
+msgid "Page Title"
+msgstr "Título de página"
+
+#: ../../Zotlabs/Module/Webpages.php:258
+msgid "Invalid file type."
+msgstr "Tipo de fichero no válido."
+
+#: ../../Zotlabs/Module/Webpages.php:270
+msgid "Error opening zip file"
+msgstr "Error al abrir el fichero comprimido zip"
+
+#: ../../Zotlabs/Module/Webpages.php:281
+msgid "Invalid folder path."
+msgstr "La ruta de la carpeta no es válida."
+
+#: ../../Zotlabs/Module/Webpages.php:308
+msgid "No webpage elements detected."
+msgstr "No se han detectado elementos de ninguna página web."
+
+#: ../../Zotlabs/Module/Webpages.php:382
+msgid "Import complete."
+msgstr "Importación completada."
+
+#: ../../Zotlabs/Module/Events.php:25
+msgid "Calendar entries imported."
+msgstr "Entradas de calendario importadas."
+
+#: ../../Zotlabs/Module/Events.php:27
+msgid "No calendar entries found."
+msgstr "No se han encontrado entradas de calendario."
+
+#: ../../Zotlabs/Module/Events.php:104
+msgid "Event can not end before it has started."
+msgstr "Un evento no puede terminar antes de que haya comenzado."
+
+#: ../../Zotlabs/Module/Events.php:106 ../../Zotlabs/Module/Events.php:115
+#: ../../Zotlabs/Module/Events.php:135
+msgid "Unable to generate preview."
+msgstr "No se puede crear la vista previa."
+
+#: ../../Zotlabs/Module/Events.php:113
+msgid "Event title and start time are required."
+msgstr "Se requieren el título del evento y su hora de inicio."
+
+#: ../../Zotlabs/Module/Events.php:133 ../../Zotlabs/Module/Events.php:258
+msgid "Event not found."
+msgstr "Evento no encontrado."
+
+#: ../../Zotlabs/Module/Events.php:452
+msgid "Edit event title"
+msgstr "Editar el título del evento"
+
+#: ../../Zotlabs/Module/Events.php:452
+msgid "Event title"
+msgstr "Título del evento"
+
+#: ../../Zotlabs/Module/Events.php:454
+msgid "Categories (comma-separated list)"
+msgstr "Temas (lista separada por comas)"
+
+#: ../../Zotlabs/Module/Events.php:455
+msgid "Edit Category"
+msgstr "Modificar el tema"
+
+#: ../../Zotlabs/Module/Events.php:455
+msgid "Category"
+msgstr "Tema"
+
+#: ../../Zotlabs/Module/Events.php:458
+msgid "Edit start date and time"
+msgstr "Modificar la fecha y hora de comienzo"
+
+#: ../../Zotlabs/Module/Events.php:458
+msgid "Start date and time"
+msgstr "Fecha y hora de comienzo"
+
+#: ../../Zotlabs/Module/Events.php:459 ../../Zotlabs/Module/Events.php:462
+msgid "Finish date and time are not known or not relevant"
+msgstr "La fecha y hora de terminación no se conocen o no son relevantes"
+
+#: ../../Zotlabs/Module/Events.php:461
+msgid "Edit finish date and time"
+msgstr "Modificar la fecha y hora de terminación"
+
+#: ../../Zotlabs/Module/Events.php:461
+msgid "Finish date and time"
+msgstr "Fecha y hora de terminación"
+
+#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:464
+msgid "Adjust for viewer timezone"
+msgstr "Ajustar para obtener el visor de los husos horarios"
+
+#: ../../Zotlabs/Module/Events.php:463
+msgid ""
+"Important for events that happen in a particular place. Not practical for "
+"global holidays."
+msgstr "Importante para los eventos que suceden en un lugar determinado. No es práctico para los globales."
+
+#: ../../Zotlabs/Module/Events.php:465
+msgid "Edit Description"
+msgstr "Editar la descripción"
+
+#: ../../Zotlabs/Module/Events.php:467
+msgid "Edit Location"
+msgstr "Modificar la dirección"
+
+#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Events.php:472
+msgid "Share this event"
+msgstr "Compartir este evento"
+
+#: ../../Zotlabs/Module/Events.php:474 ../../include/conversation.php:1259
+msgid "Permission settings"
+msgstr "Configuración de permisos"
+
+#: ../../Zotlabs/Module/Events.php:485
+msgid "Advanced Options"
+msgstr "Opciones avanzadas"
+
+#: ../../Zotlabs/Module/Events.php:597 ../../Zotlabs/Module/Cal.php:259
+msgid "l, F j"
+msgstr "l j F"
+
+#: ../../Zotlabs/Module/Events.php:619
+msgid "Edit event"
+msgstr "Editar evento"
+
+#: ../../Zotlabs/Module/Events.php:621
+msgid "Delete event"
+msgstr "Borrar evento"
+
+#: ../../Zotlabs/Module/Events.php:646 ../../Zotlabs/Module/Cal.php:308
+#: ../../include/text.php:1716
+msgid "Link to Source"
+msgstr "Enlazar con la entrada en su ubicación original"
+
+#: ../../Zotlabs/Module/Events.php:655
+msgid "calendar"
+msgstr "calendario"
+
+#: ../../Zotlabs/Module/Events.php:674 ../../Zotlabs/Module/Cal.php:331
+msgid "Edit Event"
+msgstr "Editar el evento"
+
+#: ../../Zotlabs/Module/Events.php:674 ../../Zotlabs/Module/Cal.php:331
+msgid "Create Event"
+msgstr "Crear un evento"
+
+#: ../../Zotlabs/Module/Events.php:677 ../../Zotlabs/Module/Cal.php:334
+msgid "Export"
+msgstr "Exportar"
+
+#: ../../Zotlabs/Module/Events.php:681
+msgid "Month"
+msgstr "Mes"
+
+#: ../../Zotlabs/Module/Events.php:682
+msgid "Week"
+msgstr "Semana"
+
+#: ../../Zotlabs/Module/Events.php:683
+msgid "Day"
+msgstr "Día"
+
+#: ../../Zotlabs/Module/Events.php:686 ../../Zotlabs/Module/Cal.php:341
+msgid "Today"
+msgstr "Hoy"
+
+#: ../../Zotlabs/Module/Events.php:717
+msgid "Event removed"
+msgstr "Evento borrado"
+
+#: ../../Zotlabs/Module/Events.php:720
+msgid "Failed to remove event"
+msgstr "Error al eliminar el evento"
+
+#: ../../Zotlabs/Module/Import.php:33
+#, php-format
+msgid "Your service plan only allows %d channels."
+msgstr "Su paquete de servicios solo permite %d canales."
+
+#: ../../Zotlabs/Module/Import.php:153 ../../include/import.php:107
+msgid "Cloned channel not found. Import failed."
+msgstr "No se ha podido importar el canal porque el canal clonado no se ha encontrado."
+
+#: ../../Zotlabs/Module/Import.php:163
+msgid "No channel. Import failed."
+msgstr "No hay canal. La importación ha fallado"
+
+#: ../../Zotlabs/Module/Import.php:520
+#: ../../include/Import/import_diaspora.php:142
+msgid "Import completed."
+msgstr "Importación completada."
+
+#: ../../Zotlabs/Module/Import.php:542
+msgid "You must be logged in to use this feature."
+msgstr "Debe estar registrado para poder usar esta funcionalidad."
+
+#: ../../Zotlabs/Module/Import.php:547
+msgid "Import Channel"
+msgstr "Importar canal"
+
+#: ../../Zotlabs/Module/Import.php:548
+msgid ""
+"Use this form to import an existing channel from a different server/hub. You"
+" may retrieve the channel identity from the old server/hub via the network "
+"or provide an export file."
+msgstr "Emplee este formulario para importar un canal desde un servidor/hub diferente. Puede recuperar el canal desde el antiguo servidor/hub a través de la red o proporcionando un fichero de exportación."
+
+#: ../../Zotlabs/Module/Import.php:550
+msgid "Or provide the old server/hub details"
+msgstr "O proporcione los detalles de su antiguo servidor/hub"
+
+#: ../../Zotlabs/Module/Import.php:551
+msgid "Your old identity address (xyz@example.com)"
+msgstr "Su identidad en el antiguo servidor (canal@ejemplo.com)"
+
+#: ../../Zotlabs/Module/Import.php:552
+msgid "Your old login email address"
+msgstr "Su antigua dirección de correo electrónico"
+
+#: ../../Zotlabs/Module/Import.php:553
+msgid "Your old login password"
+msgstr "Su antigua contraseña"
+
+#: ../../Zotlabs/Module/Import.php:554
+msgid ""
+"For either option, please choose whether to make this hub your new primary "
+"address, or whether your old location should continue this role. You will be"
+" able to post from either location, but only one can be marked as the "
+"primary location for files, photos, and media."
+msgstr "Para cualquiera de las opciones, elija si hacer de este servidor su nueva dirección primaria, o si su antigua dirección debe continuar con este papel. Usted podrá publicar desde cualquier ubicación, pero sólo una puede estar marcada como la ubicación principal para los ficheros, fotos y otras imágenes o vídeos."
+
+#: ../../Zotlabs/Module/Import.php:555
+msgid "Make this hub my primary location"
+msgstr "Convertir este servidor en mi ubicación primaria"
+
+#: ../../Zotlabs/Module/Import.php:556
+msgid ""
+"Import existing posts if possible (experimental - limited by available "
+"memory"
+msgstr "Importar el contenido publicado si es posible (experimental - limitado por la memoria disponible"
+
+#: ../../Zotlabs/Module/Import.php:557
+msgid ""
+"This process may take several minutes to complete. Please submit the form "
+"only once and leave this page open until finished."
+msgstr "Este proceso puede tardar varios minutos en completarse. Por favor envíe el formulario una sola vez y mantenga esta página abierta hasta que termine."
#: ../../Zotlabs/Module/New_channel.php:135
msgid "Create Channel"
@@ -4589,12 +5312,12 @@ msgstr "Petición inválida del identificador."
msgid "Discard"
msgstr "Descartar"
-#: ../../Zotlabs/Module/Notifications.php:103 ../../include/nav.php:193
+#: ../../Zotlabs/Module/Notifications.php:103 ../../include/nav.php:195
msgid "Mark all system notifications seen"
msgstr "Marcar todas las notificaciones de sistema como leídas"
#: ../../Zotlabs/Module/Poke.php:168 ../../Zotlabs/Lib/Apps.php:228
-#: ../../include/conversation.php:963
+#: ../../include/conversation.php:961
msgid "Poke"
msgstr "Toques y otras cosas"
@@ -4630,14 +5353,6 @@ msgstr "No se puede encontrar su servidor."
msgid "Post successful."
msgstr "Enviado con éxito."
-#: ../../Zotlabs/Module/Openid.php:30
-msgid "OpenID protocol error. No ID returned."
-msgstr "Error del protocolo OpenID. Ningún ID recibido como respuesta."
-
-#: ../../Zotlabs/Module/Openid.php:193 ../../include/auth.php:285
-msgid "Login failed."
-msgstr "El acceso ha fallado."
-
#: ../../Zotlabs/Module/Profperm.php:34 ../../Zotlabs/Module/Profperm.php:63
msgid "Invalid profile identifier."
msgstr "Identificador del perfil no válido"
@@ -4646,7 +5361,7 @@ msgstr "Identificador del perfil no válido"
msgid "Profile Visibility Editor"
msgstr "Editor de visibilidad del perfil"
-#: ../../Zotlabs/Module/Profperm.php:117 ../../include/channel.php:1290
+#: ../../Zotlabs/Module/Profperm.php:117 ../../include/channel.php:1274
msgid "Profile"
msgstr "Perfil"
@@ -4673,10 +5388,22 @@ msgid ""
" to correctly use this feature."
msgstr "Atención: El cambio de algunos ajustes puede volver inutilizable su canal. Por favor, abandone la página excepto que esté seguro y sepa cómo usar correctamente esta característica."
-#: ../../Zotlabs/Module/Probe.php:28 ../../Zotlabs/Module/Probe.php:32
-#, php-format
-msgid "Fetching URL returns error: %1$s"
-msgstr "Al intentar obtener la dirección, retorna el error: %1$s"
+#: ../../Zotlabs/Module/Channel.php:28 ../../Zotlabs/Module/Wiki.php:20
+#: ../../Zotlabs/Module/Chat.php:25
+msgid "You must be logged in to see this page."
+msgstr "Debe haber iniciado sesión para poder ver esta página."
+
+#: ../../Zotlabs/Module/Channel.php:40
+msgid "Posts and comments"
+msgstr "Publicaciones y comentarios"
+
+#: ../../Zotlabs/Module/Channel.php:41
+msgid "Only posts"
+msgstr "Solo publicaciones"
+
+#: ../../Zotlabs/Module/Channel.php:101
+msgid "Insufficient permissions. Request redirected to profile page."
+msgstr "Permisos insuficientes. Petición redirigida a la página del perfil."
#: ../../Zotlabs/Module/Siteinfo.php:19
#, php-format
@@ -4737,90 +5464,7 @@ msgstr "Sugerencias, elogios, etc - por favor, un correo electrónico a \"redmat
msgid "Site Administrators"
msgstr "Administradores del sitio"
-#: ../../Zotlabs/Module/Rmagic.php:44
-msgid ""
-"We encountered a problem while logging in with the OpenID you provided. "
-"Please check the correct spelling of the ID."
-msgstr "Encontramos un problema durante el inicio de sesión con la OpenID que proporcionó. Por favor, compruebe que la ID está correctamente escrita."
-
-#: ../../Zotlabs/Module/Rmagic.php:44
-msgid "The error message was:"
-msgstr "El mensaje de error fue:"
-
-#: ../../Zotlabs/Module/Rmagic.php:48
-msgid "Authentication failed."
-msgstr "Falló la autenticación."
-
-#: ../../Zotlabs/Module/Rmagic.php:88
-msgid "Remote Authentication"
-msgstr "Acceso desde su servidor"
-
-#: ../../Zotlabs/Module/Rmagic.php:89
-msgid "Enter your channel address (e.g. channel@example.com)"
-msgstr "Introduzca la dirección del canal (p.ej. canal@ejemplo.com)"
-
-#: ../../Zotlabs/Module/Rmagic.php:90
-msgid "Authenticate"
-msgstr "Acceder"
-
-#: ../../Zotlabs/Module/Pubsites.php:22 ../../include/widgets.php:1337
-msgid "Public Hubs"
-msgstr "Servidores públicos"
-
-#: ../../Zotlabs/Module/Pubsites.php:25
-msgid ""
-"The listed hubs allow public registration for the $Projectname network. All "
-"hubs in the network are interlinked so membership on any of them conveys "
-"membership in the network as a whole. Some hubs may require subscription or "
-"provide tiered service plans. The hub itself <strong>may</strong> provide "
-"additional details."
-msgstr "Los sitios listados permiten el registro público en la red $Projectname. Todos los sitios de la red están vinculados entre sí, por lo que sus miembros, en ninguno de ellos, indican la pertenencia a la red en su conjunto. Algunos sitios pueden requerir suscripción o proporcionar planes de servicio por niveles. Los mismos hubs <strong>pueden</strong> proporcionar detalles adicionales."
-
-#: ../../Zotlabs/Module/Pubsites.php:31
-msgid "Hub URL"
-msgstr "Dirección del hub"
-
-#: ../../Zotlabs/Module/Pubsites.php:31
-msgid "Access Type"
-msgstr "Tipo de acceso"
-
-#: ../../Zotlabs/Module/Pubsites.php:31
-msgid "Registration Policy"
-msgstr "Normas de registro"
-
-#: ../../Zotlabs/Module/Pubsites.php:31
-msgid "Stats"
-msgstr "Estadísticas"
-
-#: ../../Zotlabs/Module/Pubsites.php:31
-msgid "Software"
-msgstr "Software"
-
-#: ../../Zotlabs/Module/Pubsites.php:31 ../../Zotlabs/Module/Ratings.php:103
-#: ../../include/conversation.php:962
-msgid "Ratings"
-msgstr "Valoraciones"
-
-#: ../../Zotlabs/Module/Pubsites.php:38
-msgid "Rate"
-msgstr "Valorar"
-
-#: ../../Zotlabs/Module/Profile_photo.php:186
-msgid ""
-"Shift-reload the page or clear browser cache if the new photo does not "
-"display immediately."
-msgstr "Recargue la página o limpie el caché del navegador si la nueva foto no se muestra inmediatamente."
-
-#: ../../Zotlabs/Module/Profile_photo.php:389
-msgid "Upload Profile Photo"
-msgstr "Subir foto de perfil"
-
-#: ../../Zotlabs/Module/Blocks.php:97 ../../Zotlabs/Module/Blocks.php:155
-#: ../../Zotlabs/Module/Editblock.php:108
-msgid "Block Name"
-msgstr "Nombre del bloque"
-
-#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2238
+#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2262
msgid "Blocks"
msgstr "Bloques"
@@ -4828,51 +5472,55 @@ msgstr "Bloques"
msgid "Block Title"
msgstr "Título del bloque"
-#: ../../Zotlabs/Module/Rate.php:160
-msgid "Website:"
-msgstr "Sitio web:"
+#: ../../Zotlabs/Module/Layouts.php:183 ../../include/text.php:2264
+msgid "Layouts"
+msgstr "Plantillas"
-#: ../../Zotlabs/Module/Rate.php:163
-#, php-format
-msgid "Remote Channel [%s] (not yet known on this site)"
-msgstr "Canal remoto [%s] (aún no es conocido en este sitio)"
+#: ../../Zotlabs/Module/Layouts.php:185
+msgid "Comanche page description language help"
+msgstr "Página de ayuda del lenguaje de descripción de páginas (PDL) Comanche"
-#: ../../Zotlabs/Module/Rate.php:164
-msgid "Rating (this information is public)"
-msgstr "Valoración (esta información es pública)"
+#: ../../Zotlabs/Module/Layouts.php:189
+msgid "Layout Description"
+msgstr "Descripción de la plantilla"
-#: ../../Zotlabs/Module/Rate.php:165
-msgid "Optionally explain your rating (this information is public)"
-msgstr "Opcionalmente puede explicar su valoración (esta información es pública)"
+#: ../../Zotlabs/Module/Layouts.php:194
+msgid "Download PDL file"
+msgstr "Descargar el fichero PDL"
-#: ../../Zotlabs/Module/Ratings.php:73
+#: ../../Zotlabs/Module/Ratings.php:70
msgid "No ratings"
msgstr "Ninguna valoración"
-#: ../../Zotlabs/Module/Ratings.php:104
+#: ../../Zotlabs/Module/Ratings.php:98
msgid "Rating: "
msgstr "Valoración:"
-#: ../../Zotlabs/Module/Ratings.php:105
+#: ../../Zotlabs/Module/Ratings.php:99
msgid "Website: "
msgstr "Sitio web:"
-#: ../../Zotlabs/Module/Ratings.php:107
+#: ../../Zotlabs/Module/Ratings.php:101
msgid "Description: "
msgstr "Descripción:"
-#: ../../Zotlabs/Module/Apps.php:47 ../../include/nav.php:165
-#: ../../include/widgets.php:102
-msgid "Apps"
-msgstr "Aplicaciones (apps)"
+#: ../../Zotlabs/Module/Profile_photo.php:186
+msgid ""
+"Shift-reload the page or clear browser cache if the new photo does not "
+"display immediately."
+msgstr "Recargue la página o limpie el caché del navegador si la nueva foto no se muestra inmediatamente."
-#: ../../Zotlabs/Module/Editblock.php:124 ../../include/conversation.php:1243
-msgid "Title (optional)"
-msgstr "Título (opcional)"
+#: ../../Zotlabs/Module/Profile_photo.php:389
+msgid "Upload Profile Photo"
+msgstr "Subir foto de perfil"
-#: ../../Zotlabs/Module/Editblock.php:133
-msgid "Edit Block"
-msgstr "Modificar este bloque"
+#: ../../Zotlabs/Module/Cal.php:69
+msgid "Permissions denied."
+msgstr "Permisos denegados."
+
+#: ../../Zotlabs/Module/Cal.php:337 ../../include/text.php:2286
+msgid "Import"
+msgstr "Importar"
#: ../../Zotlabs/Module/Common.php:14
msgid "No channel."
@@ -4886,119 +5534,442 @@ msgstr "Conexiones comunes"
msgid "No connections in common."
msgstr "Ninguna conexión en común."
-#: ../../Zotlabs/Module/Rbmark.php:94
-msgid "Select a bookmark folder"
-msgstr "Seleccionar una carpeta de marcadores"
+#: ../../Zotlabs/Module/Mail.php:38
+msgid "Unable to lookup recipient."
+msgstr "No se puede asociar a un destinatario."
-#: ../../Zotlabs/Module/Rbmark.php:99
-msgid "Save Bookmark"
-msgstr "Guardar marcador"
+#: ../../Zotlabs/Module/Mail.php:45
+msgid "Unable to communicate with requested channel."
+msgstr "No se puede establecer la comunicación con el canal solicitado."
-#: ../../Zotlabs/Module/Rbmark.php:100
-msgid "URL of bookmark"
-msgstr "Dirección del marcador"
+#: ../../Zotlabs/Module/Mail.php:52
+msgid "Cannot verify requested channel."
+msgstr "No se puede verificar el canal solicitado."
-#: ../../Zotlabs/Module/Rbmark.php:105
-msgid "Or enter new bookmark folder name"
-msgstr "O introduzca un nuevo nombre para la carpeta de marcadores"
+#: ../../Zotlabs/Module/Mail.php:70
+msgid "Selected channel has private message restrictions. Send failed."
+msgstr "El canal seleccionado tiene restricciones sobre los mensajes privados. El envío falló."
-#: ../../Zotlabs/Module/Register.php:49
-msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
-msgstr "Se ha superado el límite máximo de inscripciones diarias de este sitio. Por favor, pruebe de nuevo mañana."
+#: ../../Zotlabs/Module/Mail.php:135
+msgid "Messages"
+msgstr "Mensajes"
-#: ../../Zotlabs/Module/Register.php:55
-msgid ""
-"Please indicate acceptance of the Terms of Service. Registration failed."
-msgstr "Por favor, confirme que acepta los Términos del servicio. El registro ha fallado."
+#: ../../Zotlabs/Module/Mail.php:170
+msgid "Message recalled."
+msgstr "Mensaje revocado."
-#: ../../Zotlabs/Module/Register.php:89
-msgid "Passwords do not match."
-msgstr "Las contraseñas no coinciden."
+#: ../../Zotlabs/Module/Mail.php:183
+msgid "Conversation removed."
+msgstr "Conversación eliminada."
-#: ../../Zotlabs/Module/Register.php:131
+#: ../../Zotlabs/Module/Mail.php:197 ../../Zotlabs/Module/Mail.php:306
+#: ../../Zotlabs/Module/Chat.php:205 ../../include/conversation.php:1183
+msgid "Please enter a link URL:"
+msgstr "Por favor, introduzca la dirección del enlace:"
+
+#: ../../Zotlabs/Module/Mail.php:198 ../../Zotlabs/Module/Mail.php:307
+msgid "Expires YYYY-MM-DD HH:MM"
+msgstr "Caduca YYYY-MM-DD HH:MM"
+
+#: ../../Zotlabs/Module/Mail.php:226
+msgid "Requested channel is not in this network"
+msgstr "El canal solicitado no existe en esta red"
+
+#: ../../Zotlabs/Module/Mail.php:234
+msgid "Send Private Message"
+msgstr "Enviar un mensaje privado"
+
+#: ../../Zotlabs/Module/Mail.php:235 ../../Zotlabs/Module/Mail.php:360
+msgid "To:"
+msgstr "Para:"
+
+#: ../../Zotlabs/Module/Mail.php:238 ../../Zotlabs/Module/Mail.php:362
+msgid "Subject:"
+msgstr "Asunto:"
+
+#: ../../Zotlabs/Module/Mail.php:243 ../../Zotlabs/Module/Mail.php:368
+#: ../../include/conversation.php:1239
+msgid "Attach file"
+msgstr "Adjuntar fichero"
+
+#: ../../Zotlabs/Module/Mail.php:245
+msgid "Send"
+msgstr "Enviar"
+
+#: ../../Zotlabs/Module/Mail.php:248 ../../Zotlabs/Module/Mail.php:373
+#: ../../include/conversation.php:1284
+msgid "Set expiration date"
+msgstr "Configurar fecha de caducidad"
+
+#: ../../Zotlabs/Module/Mail.php:250 ../../Zotlabs/Module/Mail.php:375
+#: ../../Zotlabs/Module/Chat.php:206 ../../Zotlabs/Lib/ThreadItem.php:723
+#: ../../include/conversation.php:1289
+msgid "Encrypt text"
+msgstr "Cifrar texto"
+
+#: ../../Zotlabs/Module/Mail.php:332
+msgid "Delete message"
+msgstr "Borrar mensaje"
+
+#: ../../Zotlabs/Module/Mail.php:333
+msgid "Delivery report"
+msgstr "Informe de transmisión"
+
+#: ../../Zotlabs/Module/Mail.php:334
+msgid "Recall message"
+msgstr "Revocar el mensaje"
+
+#: ../../Zotlabs/Module/Mail.php:336
+msgid "Message has been recalled."
+msgstr "El mensaje ha sido revocado."
+
+#: ../../Zotlabs/Module/Mail.php:353
+msgid "Delete Conversation"
+msgstr "Eliminar conversación"
+
+#: ../../Zotlabs/Module/Mail.php:355
msgid ""
-"Registration successful. Please check your email for validation "
-"instructions."
-msgstr "Registro realizado con éxito. Por favor, compruebe su correo electrónico para ver las instrucciones para validarlo."
+"No secure communications available. You <strong>may</strong> be able to "
+"respond from the sender's profile page."
+msgstr "Comunicación segura no disponible. Pero <strong>puede</strong> responder desde la página del perfil del remitente."
-#: ../../Zotlabs/Module/Register.php:137
-msgid "Your registration is pending approval by the site owner."
-msgstr "Su registro está pendiente de aprobación por el propietario del sitio."
+#: ../../Zotlabs/Module/Mail.php:359
+msgid "Send Reply"
+msgstr "Responder"
-#: ../../Zotlabs/Module/Register.php:140
-msgid "Your registration can not be processed."
-msgstr "Su registro no puede ser procesado."
+#: ../../Zotlabs/Module/Mail.php:364
+#, php-format
+msgid "Your message for %s (%s):"
+msgstr "Su mensaje para %s (%s):"
-#: ../../Zotlabs/Module/Register.php:184
-msgid "Registration on this hub is disabled."
-msgstr "El registro está deshabilitado en este sitio."
+#: ../../Zotlabs/Module/Connedit.php:80
+msgid "Could not access contact record."
+msgstr "No se ha podido acceder al registro de contacto."
-#: ../../Zotlabs/Module/Register.php:193
-msgid "Registration on this hub is by approval only."
-msgstr "El registro en este hub está sometido a aprobación previa."
+#: ../../Zotlabs/Module/Connedit.php:104
+msgid "Could not locate selected profile."
+msgstr "No se ha podido localizar el perfil seleccionado."
-#: ../../Zotlabs/Module/Register.php:194
-msgid "<a href=\"pubsites\">Register at another affiliated hub.</a>"
-msgstr "<a href=\"pubsites\">Registrarse en otro hub afiliado.</a>"
+#: ../../Zotlabs/Module/Connedit.php:256
+msgid "Connection updated."
+msgstr "Conexión actualizada."
-#: ../../Zotlabs/Module/Register.php:204
+#: ../../Zotlabs/Module/Connedit.php:258
+msgid "Failed to update connection record."
+msgstr "Error al actualizar el registro de la conexión."
+
+#: ../../Zotlabs/Module/Connedit.php:308
+msgid "is now connected to"
+msgstr "ahora está conectado/a"
+
+#: ../../Zotlabs/Module/Connedit.php:440
+msgid "Could not access address book record."
+msgstr "No se pudo acceder al registro en su libreta de direcciones."
+
+#: ../../Zotlabs/Module/Connedit.php:460
+msgid "Refresh failed - channel is currently unavailable."
+msgstr "Recarga fallida - no se puede encontrar el canal en este momento."
+
+#: ../../Zotlabs/Module/Connedit.php:475 ../../Zotlabs/Module/Connedit.php:484
+#: ../../Zotlabs/Module/Connedit.php:493 ../../Zotlabs/Module/Connedit.php:502
+#: ../../Zotlabs/Module/Connedit.php:515
+msgid "Unable to set address book parameters."
+msgstr "No ha sido posible establecer los parámetros de la libreta de direcciones."
+
+#: ../../Zotlabs/Module/Connedit.php:538
+msgid "Connection has been removed."
+msgstr "La conexión ha sido eliminada."
+
+#: ../../Zotlabs/Module/Connedit.php:554 ../../Zotlabs/Lib/Apps.php:221
+#: ../../include/conversation.php:955 ../../include/nav.php:88
+msgid "View Profile"
+msgstr "Ver el perfil"
+
+#: ../../Zotlabs/Module/Connedit.php:557
+#, php-format
+msgid "View %s's profile"
+msgstr "Ver el perfil de %s"
+
+#: ../../Zotlabs/Module/Connedit.php:561
+msgid "Refresh Permissions"
+msgstr "Recargar los permisos"
+
+#: ../../Zotlabs/Module/Connedit.php:564
+msgid "Fetch updated permissions"
+msgstr "Obtener los permisos actualizados"
+
+#: ../../Zotlabs/Module/Connedit.php:568
+msgid "Recent Activity"
+msgstr "Actividad reciente"
+
+#: ../../Zotlabs/Module/Connedit.php:571
+msgid "View recent posts and comments"
+msgstr "Ver publicaciones y comentarios recientes"
+
+#: ../../Zotlabs/Module/Connedit.php:578
+msgid "Block (or Unblock) all communications with this connection"
+msgstr "Bloquear (o desbloquear) todas las comunicaciones con esta conexión"
+
+#: ../../Zotlabs/Module/Connedit.php:579
+msgid "This connection is blocked!"
+msgstr "¡Esta conexión está bloqueada!"
+
+#: ../../Zotlabs/Module/Connedit.php:583
+msgid "Unignore"
+msgstr "Dejar de ignorar"
+
+#: ../../Zotlabs/Module/Connedit.php:586
+msgid "Ignore (or Unignore) all inbound communications from this connection"
+msgstr "Ignorar (o dejar de ignorar) todas las comunicaciones entrantes de esta conexión"
+
+#: ../../Zotlabs/Module/Connedit.php:587
+msgid "This connection is ignored!"
+msgstr "¡Esta conexión es ignorada!"
+
+#: ../../Zotlabs/Module/Connedit.php:591
+msgid "Unarchive"
+msgstr "Desarchivar"
+
+#: ../../Zotlabs/Module/Connedit.php:591
+msgid "Archive"
+msgstr "Archivar"
+
+#: ../../Zotlabs/Module/Connedit.php:594
msgid ""
-"This site has exceeded the number of allowed daily account registrations. "
-"Please try again tomorrow."
-msgstr "Este sitio ha excedido el límite de inscripción diaria de cuentas. Por favor, inténtelo de nuevo mañana."
+"Archive (or Unarchive) this connection - mark channel dead but keep content"
+msgstr "Archiva (o desarchiva) esta conexión - marca el canal como muerto aunque mantiene sus contenidos"
-#: ../../Zotlabs/Module/Register.php:215
-msgid "Terms of Service"
-msgstr "Términos del servicio"
+#: ../../Zotlabs/Module/Connedit.php:595
+msgid "This connection is archived!"
+msgstr "¡Esta conexión esta archivada!"
-#: ../../Zotlabs/Module/Register.php:221
+#: ../../Zotlabs/Module/Connedit.php:599
+msgid "Unhide"
+msgstr "Mostrar"
+
+#: ../../Zotlabs/Module/Connedit.php:599
+msgid "Hide"
+msgstr "Ocultar"
+
+#: ../../Zotlabs/Module/Connedit.php:602
+msgid "Hide or Unhide this connection from your other connections"
+msgstr "Ocultar o mostrar esta conexión a sus otras conexiones"
+
+#: ../../Zotlabs/Module/Connedit.php:603
+msgid "This connection is hidden!"
+msgstr "¡Esta conexión está oculta!"
+
+#: ../../Zotlabs/Module/Connedit.php:610
+msgid "Delete this connection"
+msgstr "Eliminar esta conexión"
+
+#: ../../Zotlabs/Module/Connedit.php:625 ../../include/widgets.php:493
+msgid "Me"
+msgstr "Yo"
+
+#: ../../Zotlabs/Module/Connedit.php:626 ../../include/widgets.php:494
+msgid "Family"
+msgstr "Familia"
+
+#: ../../Zotlabs/Module/Connedit.php:628 ../../include/widgets.php:496
+msgid "Acquaintances"
+msgstr "Conocidos/as"
+
+#: ../../Zotlabs/Module/Connedit.php:686
+msgid "Approve this connection"
+msgstr "Aprobar esta conexión"
+
+#: ../../Zotlabs/Module/Connedit.php:686
+msgid "Accept connection to allow communication"
+msgstr "Aceptar la conexión para permitir la comunicación"
+
+#: ../../Zotlabs/Module/Connedit.php:691
+msgid "Set Affinity"
+msgstr "Ajustar la afinidad"
+
+#: ../../Zotlabs/Module/Connedit.php:694
+msgid "Set Profile"
+msgstr "Ajustar el perfil"
+
+#: ../../Zotlabs/Module/Connedit.php:697
+msgid "Set Affinity & Profile"
+msgstr "Ajustar la afinidad y el perfil"
+
+#: ../../Zotlabs/Module/Connedit.php:746
+msgid "none"
+msgstr "-"
+
+#: ../../Zotlabs/Module/Connedit.php:750 ../../include/widgets.php:623
+msgid "Connection Default Permissions"
+msgstr "Permisos predeterminados de conexión"
+
+#: ../../Zotlabs/Module/Connedit.php:750 ../../include/items.php:3964
#, php-format
-msgid "I accept the %s for this website"
-msgstr "Acepto los %s de este sitio"
+msgid "Connection: %s"
+msgstr "Conexión: %s"
-#: ../../Zotlabs/Module/Register.php:223
+#: ../../Zotlabs/Module/Connedit.php:751
+msgid "Apply these permissions automatically"
+msgstr "Aplicar estos permisos automaticamente"
+
+#: ../../Zotlabs/Module/Connedit.php:751
+msgid "Connection requests will be approved without your interaction"
+msgstr "Las solicitudes de conexión serán aprobadas sin su intervención"
+
+#: ../../Zotlabs/Module/Connedit.php:753
+msgid "This connection's primary address is"
+msgstr "La dirección primaria de esta conexión es"
+
+#: ../../Zotlabs/Module/Connedit.php:754
+msgid "Available locations:"
+msgstr "Ubicaciones disponibles:"
+
+#: ../../Zotlabs/Module/Connedit.php:758
+msgid ""
+"The permissions indicated on this page will be applied to all new "
+"connections."
+msgstr "Los permisos indicados en esta página serán aplicados en todas las nuevas conexiones."
+
+#: ../../Zotlabs/Module/Connedit.php:759
+msgid "Connection Tools"
+msgstr "Gestión de las conexiones"
+
+#: ../../Zotlabs/Module/Connedit.php:761
+msgid "Slide to adjust your degree of friendship"
+msgstr "Deslizar para ajustar el grado de amistad"
+
+#: ../../Zotlabs/Module/Connedit.php:763
+msgid "Slide to adjust your rating"
+msgstr "Deslizar para ajustar su valoración"
+
+#: ../../Zotlabs/Module/Connedit.php:764 ../../Zotlabs/Module/Connedit.php:769
+msgid "Optionally explain your rating"
+msgstr "Opcionalmente, puede explicar su valoración"
+
+#: ../../Zotlabs/Module/Connedit.php:766
+msgid "Custom Filter"
+msgstr "Filtro personalizado"
+
+#: ../../Zotlabs/Module/Connedit.php:767
+msgid "Only import posts with this text"
+msgstr "Importar solo entradas que contengan este texto"
+
+#: ../../Zotlabs/Module/Connedit.php:767 ../../Zotlabs/Module/Connedit.php:768
+msgid ""
+"words one per line or #tags or /patterns/ or lang=xx, leave blank to import "
+"all posts"
+msgstr "Una sola opción por línea: palabras, #etiquetas, /patrones/ o lang=xx. Dejar en blanco para importarlo todo"
+
+#: ../../Zotlabs/Module/Connedit.php:768
+msgid "Do not import posts with this text"
+msgstr "No importar entradas que contengan este texto"
+
+#: ../../Zotlabs/Module/Connedit.php:770
+msgid "This information is public!"
+msgstr "¡Esta información es pública!"
+
+#: ../../Zotlabs/Module/Connedit.php:775
+msgid "Connection Pending Approval"
+msgstr "Conexión pendiente de aprobación"
+
+#: ../../Zotlabs/Module/Connedit.php:780
#, php-format
-msgid "I am over 13 years of age and accept the %s for this website"
-msgstr "Tengo más de 13 años de edad y acepto los %s de este sitio"
+msgid ""
+"Please choose the profile you would like to display to %s when viewing your "
+"profile securely."
+msgstr "Por favor, escoja el perfil que quiere mostrar a %s cuando esté viendo su perfil de forma segura."
-#: ../../Zotlabs/Module/Register.php:227
-msgid "Your email address"
-msgstr "Su dirección de correo electrónico"
+#: ../../Zotlabs/Module/Connedit.php:787
+msgid ""
+"Some permissions may be inherited from your channel's <a "
+"href=\"settings\"><strong>privacy settings</strong></a>, which have higher "
+"priority than individual settings. You can change those settings here but "
+"they wont have any impact unless the inherited setting changes."
+msgstr "Algunos permisos pueden ser heredados de los <a href=\"settings\"><strong>ajustes de privacidad</strong></a> de sus canales, los cuales tienen una prioridad más alta que los ajustes individuales. Puede cambiar estos ajustes aquí, pero no tendrán ningún consecuencia hasta que cambie los ajustes heredados."
-#: ../../Zotlabs/Module/Register.php:228
-msgid "Choose a password"
-msgstr "Elija una contraseña"
+#: ../../Zotlabs/Module/Connedit.php:788
+msgid "Last update:"
+msgstr "Última actualización:"
-#: ../../Zotlabs/Module/Register.php:229
-msgid "Please re-enter your password"
-msgstr "Por favor, vuelva a escribir su contraseña"
+#: ../../Zotlabs/Module/Apps.php:47 ../../include/widgets.php:102
+#: ../../include/nav.php:167
+msgid "Apps"
+msgstr "Aplicaciones (apps)"
-#: ../../Zotlabs/Module/Register.php:230
-msgid "Please enter your invitation code"
-msgstr "Por favor, introduzca el código de su invitación"
+#: ../../Zotlabs/Module/Connect.php:61 ../../Zotlabs/Module/Connect.php:109
+msgid "Continue"
+msgstr "Continuar"
-#: ../../Zotlabs/Module/Register.php:236
-msgid "no"
-msgstr "no"
+#: ../../Zotlabs/Module/Connect.php:90
+msgid "Premium Channel Setup"
+msgstr "Configuración del canal premium"
-#: ../../Zotlabs/Module/Register.php:236
-msgid "yes"
-msgstr "sí"
+#: ../../Zotlabs/Module/Connect.php:92
+msgid "Enable premium channel connection restrictions"
+msgstr "Habilitar restricciones de conexión del canal premium"
-#: ../../Zotlabs/Module/Register.php:250
-msgid "Membership on this site is by invitation only."
-msgstr "Para registrarse en este sitio es necesaria una invitación."
+#: ../../Zotlabs/Module/Connect.php:93
+msgid ""
+"Please enter your restrictions or conditions, such as paypal receipt, usage "
+"guidelines, etc."
+msgstr "Por favor introduzca sus restricciones o condiciones, como recibo de paypal, normas de uso, etc."
-#: ../../Zotlabs/Module/Register.php:262 ../../include/nav.php:149
-#: ../../boot.php:1686
-msgid "Register"
-msgstr "Registrarse"
+#: ../../Zotlabs/Module/Connect.php:95 ../../Zotlabs/Module/Connect.php:115
+msgid ""
+"This channel may require additional steps or acknowledgement of the "
+"following conditions prior to connecting:"
+msgstr "Este canal puede requerir antes de conectar unos pasos adicionales o el conocimiento de las siguientes condiciones:"
-#: ../../Zotlabs/Module/Register.php:263
+#: ../../Zotlabs/Module/Connect.php:96
msgid ""
-"This site may require email verification after submitting this form. If you "
-"are returned to a login page, please check your email for instructions."
-msgstr "Este sitio puede requerir una verificación de correo electrónico después de enviar este formulario. Si es devuelto a una página de inicio de sesión, compruebe su email para recibir y leer las instrucciones."
+"Potential connections will then see the following text before proceeding:"
+msgstr "Las posibles conexiones verán, por tanto, el siguiente texto antes de proceder:"
+
+#: ../../Zotlabs/Module/Connect.php:97 ../../Zotlabs/Module/Connect.php:118
+msgid ""
+"By continuing, I certify that I have complied with any instructions provided"
+" on this page."
+msgstr "Al continuar, certifico que he cumplido con todas las instrucciones proporcionadas en esta página."
+
+#: ../../Zotlabs/Module/Connect.php:106
+msgid "(No specific instructions have been provided by the channel owner.)"
+msgstr "(No ha sido proporcionada ninguna instrucción específica por el propietario del canal.)"
+
+#: ../../Zotlabs/Module/Connect.php:114
+msgid "Restricted or Premium Channel"
+msgstr "Canal premium o restringido"
+
+#: ../../Zotlabs/Module/Rbmark.php:94
+msgid "Select a bookmark folder"
+msgstr "Seleccionar una carpeta de marcadores"
+
+#: ../../Zotlabs/Module/Rbmark.php:99
+msgid "Save Bookmark"
+msgstr "Guardar marcador"
+
+#: ../../Zotlabs/Module/Rbmark.php:100
+msgid "URL of bookmark"
+msgstr "Dirección del marcador"
+
+#: ../../Zotlabs/Module/Rbmark.php:105
+msgid "Or enter new bookmark folder name"
+msgstr "O introduzca un nuevo nombre para la carpeta de marcadores"
+
+#: ../../Zotlabs/Module/Rmagic.php:35
+msgid "Authentication failed."
+msgstr "Falló la autenticación."
+
+#: ../../Zotlabs/Module/Rmagic.php:75
+msgid "Remote Authentication"
+msgstr "Acceso desde su servidor"
+
+#: ../../Zotlabs/Module/Rmagic.php:76
+msgid "Enter your channel address (e.g. channel@example.com)"
+msgstr "Introduzca la dirección del canal (p.ej. canal@ejemplo.com)"
+
+#: ../../Zotlabs/Module/Rmagic.php:77
+msgid "Authenticate"
+msgstr "Acceder"
#: ../../Zotlabs/Module/Regmod.php:15
msgid "Please login."
@@ -5047,11 +6018,6 @@ msgid ""
"removed from the network"
msgstr "Por defecto, solo las instancias de los canales ubicados en este servidor serán eliminados de la red"
-#: ../../Zotlabs/Module/Removeaccount.php:61
-#: ../../Zotlabs/Module/Settings.php:759
-msgid "Remove Account"
-msgstr "Eliminar cuenta"
-
#: ../../Zotlabs/Module/Removeme.php:35
msgid ""
"Channel removals are not allowed within 48 hours of changing the account "
@@ -5076,10 +6042,6 @@ msgid ""
"removed from the network"
msgstr "Por defecto, solo la instancia del canal alojado en este servidor será eliminado de la red"
-#: ../../Zotlabs/Module/Removeme.php:64 ../../Zotlabs/Module/Settings.php:1219
-msgid "Remove Channel"
-msgstr "Eliminar el canal"
-
#: ../../Zotlabs/Module/Uexport.php:55 ../../Zotlabs/Module/Uexport.php:56
msgid "Export Channel"
msgstr "Exportar el canal"
@@ -5138,6 +6100,14 @@ msgid ""
" please import or restore these in date order (oldest first)."
msgstr "Estos ficheros pueden ser importados o restaurados visitando <a href=\"%1$s\">%2$s</a> o cualquier sitio que contenga su canal. Para obtener los mejores resultados, por favor, importar o restaurar estos ficheros en orden de fecha (la más antigua primero)."
+#: ../../Zotlabs/Module/Editpost.php:35
+msgid "Item is not editable"
+msgstr "El elemento no es editable"
+
+#: ../../Zotlabs/Module/Editpost.php:106 ../../Zotlabs/Module/Rpost.php:138
+msgid "Edit post"
+msgstr "Editar la entrada"
+
#: ../../Zotlabs/Module/Search.php:216
#, php-format
msgid "Items tagged with: %s"
@@ -5152,1082 +6122,96 @@ msgstr "Resultados de la búsqueda para: %s"
msgid "No service class restrictions found."
msgstr "No se han encontrado restricciones sobre esta clase de servicio."
-#: ../../Zotlabs/Module/Settings.php:64
-msgid "Name is required"
-msgstr "El nombre es obligatorio"
-
-#: ../../Zotlabs/Module/Settings.php:68
-msgid "Key and Secret are required"
-msgstr "\"Key\" y \"Secret\" son obligatorios"
-
-#: ../../Zotlabs/Module/Settings.php:138
-#, php-format
-msgid "This channel is limited to %d tokens"
-msgstr "Este canal tiene un límite de %d tokens"
-
-#: ../../Zotlabs/Module/Settings.php:144
-msgid "Name and Password are required."
-msgstr "Se requiere el nombre y la contraseña."
-
-#: ../../Zotlabs/Module/Settings.php:168
-msgid "Token saved."
-msgstr "Token salvado."
-
-#: ../../Zotlabs/Module/Settings.php:274
-msgid "Not valid email."
-msgstr "Correo electrónico no válido."
-
-#: ../../Zotlabs/Module/Settings.php:277
-msgid "Protected email address. Cannot change to that email."
-msgstr "Dirección de correo electrónico protegida. No se puede cambiar a ella."
-
-#: ../../Zotlabs/Module/Settings.php:286
-msgid "System failure storing new email. Please try again."
-msgstr "Fallo de sistema al guardar el nuevo correo electrónico. Por favor, inténtelo de nuevo."
-
-#: ../../Zotlabs/Module/Settings.php:303
-msgid "Password verification failed."
-msgstr "La comprobación de la contraseña ha fallado."
-
-#: ../../Zotlabs/Module/Settings.php:310
-msgid "Passwords do not match. Password unchanged."
-msgstr "Las contraseñas no coinciden. La contraseña no se ha cambiado."
-
-#: ../../Zotlabs/Module/Settings.php:314
-msgid "Empty passwords are not allowed. Password unchanged."
-msgstr "No se permiten contraseñas vacías. La contraseña no se ha cambiado."
-
-#: ../../Zotlabs/Module/Settings.php:328
-msgid "Password changed."
-msgstr "Contraseña cambiada."
-
-#: ../../Zotlabs/Module/Settings.php:330
-msgid "Password update failed. Please try again."
-msgstr "La actualización de la contraseña ha fallado. Por favor, inténtalo de nuevo."
-
-#: ../../Zotlabs/Module/Settings.php:579
-msgid "Settings updated."
-msgstr "Ajustes actualizados."
-
-#: ../../Zotlabs/Module/Settings.php:643 ../../Zotlabs/Module/Settings.php:669
-#: ../../Zotlabs/Module/Settings.php:705
-msgid "Add application"
-msgstr "Añadir aplicación"
-
-#: ../../Zotlabs/Module/Settings.php:646
-msgid "Name of application"
-msgstr "Nombre de la aplicación"
-
-#: ../../Zotlabs/Module/Settings.php:647 ../../Zotlabs/Module/Settings.php:673
-msgid "Consumer Key"
-msgstr "Consumer Key"
-
-#: ../../Zotlabs/Module/Settings.php:647 ../../Zotlabs/Module/Settings.php:648
-msgid "Automatically generated - change if desired. Max length 20"
-msgstr "Generado automáticamente - si lo desea, cámbielo. Longitud máxima: 20"
-
-#: ../../Zotlabs/Module/Settings.php:648 ../../Zotlabs/Module/Settings.php:674
-msgid "Consumer Secret"
-msgstr "Consumer Secret"
-
-#: ../../Zotlabs/Module/Settings.php:649 ../../Zotlabs/Module/Settings.php:675
-msgid "Redirect"
-msgstr "Redirigir"
-
-#: ../../Zotlabs/Module/Settings.php:649
-msgid ""
-"Redirect URI - leave blank unless your application specifically requires "
-"this"
-msgstr "URI de redirección - dejar en blanco a menos que su aplicación específicamente lo requiera"
-
-#: ../../Zotlabs/Module/Settings.php:650 ../../Zotlabs/Module/Settings.php:676
-msgid "Icon url"
-msgstr "Dirección del icono"
-
-#: ../../Zotlabs/Module/Settings.php:650 ../../Zotlabs/Module/Sources.php:112
-#: ../../Zotlabs/Module/Sources.php:147
-msgid "Optional"
-msgstr "Opcional"
-
-#: ../../Zotlabs/Module/Settings.php:661
-msgid "Application not found."
-msgstr "Aplicación no encontrada."
-
-#: ../../Zotlabs/Module/Settings.php:704
-msgid "Connected Apps"
-msgstr "Aplicaciones (apps) conectadas"
-
-#: ../../Zotlabs/Module/Settings.php:708
-msgid "Client key starts with"
-msgstr "La \"client key\" empieza por"
-
-#: ../../Zotlabs/Module/Settings.php:709
-msgid "No name"
-msgstr "Sin nombre"
-
-#: ../../Zotlabs/Module/Settings.php:710
-msgid "Remove authorization"
-msgstr "Eliminar autorización"
-
-#: ../../Zotlabs/Module/Settings.php:723
-msgid "No feature settings configured"
-msgstr "No se ha establecido la configuración de los complementos"
-
-#: ../../Zotlabs/Module/Settings.php:730
-msgid "Feature/Addon Settings"
-msgstr "Ajustes de los complementos"
-
-#: ../../Zotlabs/Module/Settings.php:753
-msgid "Account Settings"
-msgstr "Configuración de la cuenta"
-
-#: ../../Zotlabs/Module/Settings.php:754
-msgid "Current Password"
-msgstr "Contraseña actual"
-
-#: ../../Zotlabs/Module/Settings.php:755
-msgid "Enter New Password"
-msgstr "Escribir una nueva contraseña"
-
-#: ../../Zotlabs/Module/Settings.php:756
-msgid "Confirm New Password"
-msgstr "Confirmar la nueva contraseña"
-
-#: ../../Zotlabs/Module/Settings.php:756
-msgid "Leave password fields blank unless changing"
-msgstr "Dejar en blanco la contraseña a menos que desee cambiarla."
-
-#: ../../Zotlabs/Module/Settings.php:758
-#: ../../Zotlabs/Module/Settings.php:1136
-msgid "Email Address:"
-msgstr "Dirección de correo electrónico:"
-
-#: ../../Zotlabs/Module/Settings.php:760
-msgid "Remove this account including all its channels"
-msgstr "Eliminar esta cuenta incluyendo todos sus canales"
-
-#: ../../Zotlabs/Module/Settings.php:789
-msgid ""
-"Use this form to create temporary access identifiers to share things with "
-"non-members. These identities may be used in Access Control Lists and "
-"visitors may login using these credentials to access the private content."
-msgstr "Utilice este formulario para crear identificadores de acceso temporal para compartir cosas con los no miembros. Estas identidades se pueden usar en las Listas de control de acceso y así los visitantes pueden iniciar sesión, utilizando estas credenciales, para acceder a su contenido privado."
-
-#: ../../Zotlabs/Module/Settings.php:791
-msgid ""
-"You may also provide <em>dropbox</em> style access links to friends and "
-"associates by adding the Login Password to any specific site URL as shown. "
-"Examples:"
-msgstr "También puede proporcionar, con el estilo <em>dropbox</em>, enlaces de acceso a sus amigos y asociados añadiendo la contraseña de inicio de sesión a cualquier dirección URL, como se muestra. Ejemplos: "
-
-#: ../../Zotlabs/Module/Settings.php:796 ../../include/widgets.php:614
-msgid "Guest Access Tokens"
-msgstr "Tokens de acceso para invitados"
-
-#: ../../Zotlabs/Module/Settings.php:803
-msgid "Login Name"
-msgstr "Nombre de inicio de sesión"
-
-#: ../../Zotlabs/Module/Settings.php:804
-msgid "Login Password"
-msgstr "Contraseña de inicio de sesión"
-
-#: ../../Zotlabs/Module/Settings.php:805
-msgid "Expires (yyyy-mm-dd)"
-msgstr "Expira (aaaa-mm-dd)"
-
-#: ../../Zotlabs/Module/Settings.php:830
-msgid "Additional Features"
-msgstr "Funcionalidades"
-
-#: ../../Zotlabs/Module/Settings.php:854
-msgid "Connector Settings"
-msgstr "Configuración del conector"
-
-#: ../../Zotlabs/Module/Settings.php:893
-msgid "No special theme for mobile devices"
-msgstr "Sin tema especial para dispositivos móviles"
-
-#: ../../Zotlabs/Module/Settings.php:896
-#, php-format
-msgid "%s - (Experimental)"
-msgstr "%s - (Experimental)"
-
-#: ../../Zotlabs/Module/Settings.php:938
-msgid "Display Settings"
-msgstr "Ajustes de visualización"
-
-#: ../../Zotlabs/Module/Settings.php:939
-msgid "Theme Settings"
-msgstr "Ajustes del tema"
-
-#: ../../Zotlabs/Module/Settings.php:940
-msgid "Custom Theme Settings"
-msgstr "Ajustes personalizados del tema"
-
-#: ../../Zotlabs/Module/Settings.php:941
-msgid "Content Settings"
-msgstr "Ajustes del contenido"
-
-#: ../../Zotlabs/Module/Settings.php:947
-msgid "Display Theme:"
-msgstr "Tema gráfico del perfil:"
-
-#: ../../Zotlabs/Module/Settings.php:948
-msgid "Mobile Theme:"
-msgstr "Tema para el móvil:"
-
-#: ../../Zotlabs/Module/Settings.php:949
-msgid "Preload images before rendering the page"
-msgstr "Carga previa de las imágenes antes de generar la página"
-
-#: ../../Zotlabs/Module/Settings.php:949
-msgid ""
-"The subjective page load time will be longer but the page will be ready when"
-" displayed"
-msgstr "El tiempo subjetivo de carga de la página será más largo, pero la página estará lista cuando se muestre."
-
-#: ../../Zotlabs/Module/Settings.php:950
-msgid "Enable user zoom on mobile devices"
-msgstr "Habilitar zoom de usuario en dispositivos móviles"
-
-#: ../../Zotlabs/Module/Settings.php:951
-msgid "Update browser every xx seconds"
-msgstr "Actualizar navegador cada xx segundos"
-
-#: ../../Zotlabs/Module/Settings.php:951
-msgid "Minimum of 10 seconds, no maximum"
-msgstr "Mínimo de 10 segundos, sin máximo"
-
-#: ../../Zotlabs/Module/Settings.php:952
-msgid "Maximum number of conversations to load at any time:"
-msgstr "Máximo número de conversaciones a cargar en cualquier momento:"
-
-#: ../../Zotlabs/Module/Settings.php:952
-msgid "Maximum of 100 items"
-msgstr "Máximo de 100 elementos"
-
-#: ../../Zotlabs/Module/Settings.php:953
-msgid "Show emoticons (smilies) as images"
-msgstr "Mostrar emoticonos (smilies) como imágenes"
-
-#: ../../Zotlabs/Module/Settings.php:954
-msgid "Link post titles to source"
-msgstr "Enlazar título de la publicación a la fuente original"
-
-#: ../../Zotlabs/Module/Settings.php:955
-msgid "System Page Layout Editor - (advanced)"
-msgstr "Editor de plantilla de página del sistema - (avanzado)"
-
-#: ../../Zotlabs/Module/Settings.php:958
-msgid "Use blog/list mode on channel page"
-msgstr "Usar modo blog/lista en la página de inicio del canal"
-
-#: ../../Zotlabs/Module/Settings.php:958 ../../Zotlabs/Module/Settings.php:959
-msgid "(comments displayed separately)"
-msgstr "(comentarios mostrados de forma separada)"
-
-#: ../../Zotlabs/Module/Settings.php:959
-msgid "Use blog/list mode on grid page"
-msgstr "Mostrar mi red en modo blog"
-
-#: ../../Zotlabs/Module/Settings.php:960
-msgid "Channel page max height of content (in pixels)"
-msgstr "Altura máxima del contenido de la página del canal (en píxeles)"
-
-#: ../../Zotlabs/Module/Settings.php:960 ../../Zotlabs/Module/Settings.php:961
-msgid "click to expand content exceeding this height"
-msgstr "Pulsar para expandir el contenido que exceda de esta altura"
-
-#: ../../Zotlabs/Module/Settings.php:961
-msgid "Grid page max height of content (in pixels)"
-msgstr "Altura máxima del contenido de mi red (en píxeles)"
-
-#: ../../Zotlabs/Module/Settings.php:990
-msgid "Nobody except yourself"
-msgstr "Nadie excepto usted"
-
-#: ../../Zotlabs/Module/Settings.php:991
-msgid "Only those you specifically allow"
-msgstr "Solo aquellos a los que usted permita explícitamente"
-
-#: ../../Zotlabs/Module/Settings.php:992
-msgid "Approved connections"
-msgstr "Conexiones aprobadas"
-
-#: ../../Zotlabs/Module/Settings.php:993
-msgid "Any connections"
-msgstr "Cualquier conexión"
-
-#: ../../Zotlabs/Module/Settings.php:994
-msgid "Anybody on this website"
-msgstr "Cualquiera en este sitio web"
-
-#: ../../Zotlabs/Module/Settings.php:995
-msgid "Anybody in this network"
-msgstr "Cualquiera en esta red"
-
-#: ../../Zotlabs/Module/Settings.php:996
-msgid "Anybody authenticated"
-msgstr "Cualquiera que esté autenticado"
-
-#: ../../Zotlabs/Module/Settings.php:997
-msgid "Anybody on the internet"
-msgstr "Cualquiera en internet"
-
-#: ../../Zotlabs/Module/Settings.php:1071
-msgid "Publish your default profile in the network directory"
-msgstr "Publicar su perfil principal en el directorio de la red"
-
-#: ../../Zotlabs/Module/Settings.php:1076
-msgid "Allow us to suggest you as a potential friend to new members?"
-msgstr "¿Nos permite sugerirle como amigo potencial a los nuevos miembros?"
-
-#: ../../Zotlabs/Module/Settings.php:1085
-msgid "Your channel address is"
-msgstr "Su dirección de canal es"
-
-#: ../../Zotlabs/Module/Settings.php:1127
-msgid "Channel Settings"
-msgstr "Ajustes del canal"
-
-#: ../../Zotlabs/Module/Settings.php:1134
-msgid "Basic Settings"
-msgstr "Configuración básica"
-
-#: ../../Zotlabs/Module/Settings.php:1135 ../../include/channel.php:1180
-msgid "Full Name:"
-msgstr "Nombre completo:"
-
-#: ../../Zotlabs/Module/Settings.php:1137
-msgid "Your Timezone:"
-msgstr "Su huso horario:"
-
-#: ../../Zotlabs/Module/Settings.php:1138
-msgid "Default Post Location:"
-msgstr "Localización geográfica predeterminada para sus publicaciones:"
-
-#: ../../Zotlabs/Module/Settings.php:1138
-msgid "Geographical location to display on your posts"
-msgstr "Localización geográfica que debe mostrarse en sus publicaciones"
-
-#: ../../Zotlabs/Module/Settings.php:1139
-msgid "Use Browser Location:"
-msgstr "Usar la localización geográfica del navegador:"
-
-#: ../../Zotlabs/Module/Settings.php:1141
-msgid "Adult Content"
-msgstr "Contenido solo para adultos"
-
-#: ../../Zotlabs/Module/Settings.php:1141
-msgid ""
-"This channel frequently or regularly publishes adult content. (Please tag "
-"any adult material and/or nudity with #NSFW)"
-msgstr "Este canal publica contenido solo para adultos con frecuencia o regularmente. (Por favor etiquete cualquier material para adultos con la etiqueta #NSFW)"
-
-#: ../../Zotlabs/Module/Settings.php:1143
-msgid "Security and Privacy Settings"
-msgstr "Configuración de seguridad y privacidad"
-
-#: ../../Zotlabs/Module/Settings.php:1146
-msgid "Your permissions are already configured. Click to view/adjust"
-msgstr "Sus permisos ya están configurados. Pulse para ver/ajustar"
-
-#: ../../Zotlabs/Module/Settings.php:1148
-msgid "Hide my online presence"
-msgstr "Ocultar mi presencia en línea"
-
-#: ../../Zotlabs/Module/Settings.php:1148
-msgid "Prevents displaying in your profile that you are online"
-msgstr "Evitar mostrar en su perfil que está en línea"
-
-#: ../../Zotlabs/Module/Settings.php:1150
-msgid "Simple Privacy Settings:"
-msgstr "Configuración de privacidad sencilla:"
-
-#: ../../Zotlabs/Module/Settings.php:1151
-msgid ""
-"Very Public - <em>extremely permissive (should be used with caution)</em>"
-msgstr "Muy Público - <em>extremadamente permisivo (debería ser usado con precaución)</em>"
-
-#: ../../Zotlabs/Module/Settings.php:1152
-msgid ""
-"Typical - <em>default public, privacy when desired (similar to social "
-"network permissions but with improved privacy)</em>"
-msgstr "Típico - <em>por defecto público, privado cuando se desee (similar a los permisos de una red social pero con privacidad mejorada)</em>"
-
-#: ../../Zotlabs/Module/Settings.php:1153
-msgid "Private - <em>default private, never open or public</em>"
-msgstr "Privado - <em>por defecto, privado, nunca abierto o público</em>"
-
-#: ../../Zotlabs/Module/Settings.php:1154
-msgid "Blocked - <em>default blocked to/from everybody</em>"
-msgstr "Bloqueado - <em>por defecto, bloqueado/a para cualquiera</em>"
-
-#: ../../Zotlabs/Module/Settings.php:1156
-msgid "Allow others to tag your posts"
-msgstr "Permitir a otros etiquetar sus publicaciones"
-
-#: ../../Zotlabs/Module/Settings.php:1156
-msgid ""
-"Often used by the community to retro-actively flag inappropriate content"
-msgstr "A menudo usado por la comunidad para marcar contenido inapropiado de forma retroactiva."
-
-#: ../../Zotlabs/Module/Settings.php:1158
-msgid "Advanced Privacy Settings"
-msgstr "Configuración de privacidad avanzada"
-
-#: ../../Zotlabs/Module/Settings.php:1160
-msgid "Expire other channel content after this many days"
-msgstr "Caducar contenido de otros canales después de este número de días"
-
-#: ../../Zotlabs/Module/Settings.php:1160
-msgid "0 or blank to use the website limit."
-msgstr "0 o en blanco para usar el límite del sitio web."
-
-#: ../../Zotlabs/Module/Settings.php:1160
-#, php-format
-msgid "This website expires after %d days."
-msgstr "Este sitio web caduca después de %d días."
-
-#: ../../Zotlabs/Module/Settings.php:1160
-msgid "This website does not expire imported content."
-msgstr "Este sitio web no caduca el contenido importado."
-
-#: ../../Zotlabs/Module/Settings.php:1160
-msgid "The website limit takes precedence if lower than your limit."
-msgstr "El límite del sitio web tiene prioridad si es inferior a su propio límite."
-
-#: ../../Zotlabs/Module/Settings.php:1161
-msgid "Maximum Friend Requests/Day:"
-msgstr "Máximo de solicitudes de amistad por día:"
-
-#: ../../Zotlabs/Module/Settings.php:1161
-msgid "May reduce spam activity"
-msgstr "Podría reducir la actividad de spam"
-
-#: ../../Zotlabs/Module/Settings.php:1162
-msgid "Default Post and Publish Permissions"
-msgstr "Permisos predeterminados de entradas y publicaciones"
-
-#: ../../Zotlabs/Module/Settings.php:1164
-msgid "Use my default audience setting for the type of object published"
-msgstr "Usar los ajustes de mi audiencia predeterminada para el tipo de publicación"
-
-#: ../../Zotlabs/Module/Settings.php:1167
-msgid "Channel permissions category:"
-msgstr "Categoría de permisos del canal:"
-
-#: ../../Zotlabs/Module/Settings.php:1173
-msgid "Maximum private messages per day from unknown people:"
-msgstr "Máximo de mensajes privados por día de gente desconocida:"
-
-#: ../../Zotlabs/Module/Settings.php:1173
-msgid "Useful to reduce spamming"
-msgstr "Útil para reducir el envío de correo no deseado"
-
-#: ../../Zotlabs/Module/Settings.php:1176
-msgid "Notification Settings"
-msgstr "Configuración de las notificaciones"
-
-#: ../../Zotlabs/Module/Settings.php:1177
-msgid "By default post a status message when:"
-msgstr "Por defecto, enviar un mensaje de estado cuando:"
-
-#: ../../Zotlabs/Module/Settings.php:1178
-msgid "accepting a friend request"
-msgstr "Acepte una solicitud de amistad"
-
-#: ../../Zotlabs/Module/Settings.php:1179
-msgid "joining a forum/community"
-msgstr "al unirse a un foro o comunidad"
-
-#: ../../Zotlabs/Module/Settings.php:1180
-msgid "making an <em>interesting</em> profile change"
-msgstr "Realice un cambio <em>interesante</em> en su perfil"
-
-#: ../../Zotlabs/Module/Settings.php:1181
-msgid "Send a notification email when:"
-msgstr "Enviar una notificación por correo electrónico cuando:"
-
-#: ../../Zotlabs/Module/Settings.php:1182
-msgid "You receive a connection request"
-msgstr "Reciba una solicitud de conexión"
-
-#: ../../Zotlabs/Module/Settings.php:1183
-msgid "Your connections are confirmed"
-msgstr "Sus conexiones hayan sido confirmadas"
-
-#: ../../Zotlabs/Module/Settings.php:1184
-msgid "Someone writes on your profile wall"
-msgstr "Alguien escriba en la página de su perfil (\"muro\")"
-
-#: ../../Zotlabs/Module/Settings.php:1185
-msgid "Someone writes a followup comment"
-msgstr "Alguien escriba un comentario sobre sus publicaciones"
-
-#: ../../Zotlabs/Module/Settings.php:1186
-msgid "You receive a private message"
-msgstr "Reciba un mensaje privado"
-
-#: ../../Zotlabs/Module/Settings.php:1187
-msgid "You receive a friend suggestion"
-msgstr "Reciba una sugerencia de amistad"
-
-#: ../../Zotlabs/Module/Settings.php:1188
-msgid "You are tagged in a post"
-msgstr "Usted sea etiquetado en una publicación"
-
-#: ../../Zotlabs/Module/Settings.php:1189
-msgid "You are poked/prodded/etc. in a post"
-msgstr "Reciba un toque o incitación en una publicación"
-
-#: ../../Zotlabs/Module/Settings.php:1192
-msgid "Show visual notifications including:"
-msgstr "Mostrar notificaciones visuales que incluyan:"
-
-#: ../../Zotlabs/Module/Settings.php:1194
-msgid "Unseen grid activity"
-msgstr "Nueva actividad en la red"
-
-#: ../../Zotlabs/Module/Settings.php:1195
-msgid "Unseen channel activity"
-msgstr "Actividad no vista en el canal"
-
-#: ../../Zotlabs/Module/Settings.php:1196
-msgid "Unseen private messages"
-msgstr "Mensajes privados no leídos"
-
-#: ../../Zotlabs/Module/Settings.php:1196
-#: ../../Zotlabs/Module/Settings.php:1201
-#: ../../Zotlabs/Module/Settings.php:1202
-#: ../../Zotlabs/Module/Settings.php:1203
-msgid "Recommended"
-msgstr "Recomendado"
-
-#: ../../Zotlabs/Module/Settings.php:1197
-msgid "Upcoming events"
-msgstr "Próximos eventos"
-
-#: ../../Zotlabs/Module/Settings.php:1198
-msgid "Events today"
-msgstr "Eventos de hoy"
-
-#: ../../Zotlabs/Module/Settings.php:1199
-msgid "Upcoming birthdays"
-msgstr "Próximos cumpleaños"
-
-#: ../../Zotlabs/Module/Settings.php:1199
-msgid "Not available in all themes"
-msgstr "No disponible en todos los temas"
-
-#: ../../Zotlabs/Module/Settings.php:1200
-msgid "System (personal) notifications"
-msgstr "Notificaciones del sistema (personales)"
-
-#: ../../Zotlabs/Module/Settings.php:1201
-msgid "System info messages"
-msgstr "Mensajes de información del sistema"
-
-#: ../../Zotlabs/Module/Settings.php:1202
-msgid "System critical alerts"
-msgstr "Alertas críticas del sistema"
-
-#: ../../Zotlabs/Module/Settings.php:1203
-msgid "New connections"
-msgstr "Nuevas conexiones"
-
-#: ../../Zotlabs/Module/Settings.php:1204
-msgid "System Registrations"
-msgstr "Registros del sistema"
-
-#: ../../Zotlabs/Module/Settings.php:1205
-msgid ""
-"Also show new wall posts, private messages and connections under Notices"
-msgstr "Mostrar también en Avisos las nuevas publicaciones, los mensajes privados y las conexiones"
-
-#: ../../Zotlabs/Module/Settings.php:1207
-msgid "Notify me of events this many days in advance"
-msgstr "Avisarme de los eventos con algunos días de antelación"
-
-#: ../../Zotlabs/Module/Settings.php:1207
-msgid "Must be greater than 0"
-msgstr "Debe ser mayor que 0"
-
-#: ../../Zotlabs/Module/Settings.php:1209
-msgid "Advanced Account/Page Type Settings"
-msgstr "Ajustes avanzados de la cuenta y de los tipos de página"
-
-#: ../../Zotlabs/Module/Settings.php:1210
-msgid "Change the behaviour of this account for special situations"
-msgstr "Cambiar el comportamiento de esta cuenta en situaciones especiales"
-
-#: ../../Zotlabs/Module/Settings.php:1213
-msgid ""
-"Please enable expert mode (in <a href=\"settings/features\">Settings > "
-"Additional features</a>) to adjust!"
-msgstr "¡Activar el modo de experto (en <a href=\"settings/features\">Ajustes > Funcionalidades</a>) para realizar cambios!."
-
-#: ../../Zotlabs/Module/Settings.php:1214
-msgid "Miscellaneous Settings"
-msgstr "Ajustes diversos"
-
-#: ../../Zotlabs/Module/Settings.php:1215
-msgid "Default photo upload folder"
-msgstr "Carpeta por defecto de las fotos subidas"
-
-#: ../../Zotlabs/Module/Settings.php:1215
-#: ../../Zotlabs/Module/Settings.php:1216
-msgid "%Y - current year, %m - current month"
-msgstr "%Y - año en curso, %m - mes actual"
-
-#: ../../Zotlabs/Module/Settings.php:1216
-msgid "Default file upload folder"
-msgstr "Carpeta por defecto de los archivos subidos"
-
-#: ../../Zotlabs/Module/Settings.php:1218
-msgid "Personal menu to display in your channel pages"
-msgstr "Menú personal que debe mostrarse en las páginas de su canal"
-
-#: ../../Zotlabs/Module/Settings.php:1220
-msgid "Remove this channel."
-msgstr "Eliminar este canal."
-
-#: ../../Zotlabs/Module/Settings.php:1221
-msgid "Firefox Share $Projectname provider"
-msgstr "Servicio de compartición de Firefox: proveedor $Projectname"
-
-#: ../../Zotlabs/Module/Settings.php:1222
-msgid "Start calendar week on monday"
-msgstr "Comenzar el calendario semanal por el lunes"
-
-#: ../../Zotlabs/Module/Setup.php:179
-msgid "$Projectname Server - Setup"
-msgstr "Servidor $Projectname - Instalación"
-
-#: ../../Zotlabs/Module/Setup.php:183
-msgid "Could not connect to database."
-msgstr "No se ha podido conectar a la base de datos."
-
-#: ../../Zotlabs/Module/Setup.php:187
-msgid ""
-"Could not connect to specified site URL. Possible SSL certificate or DNS "
-"issue."
-msgstr "No se puede conectar con la dirección del sitio indicada. Podría tratarse de un problema de SSL o DNS."
-
-#: ../../Zotlabs/Module/Setup.php:194
-msgid "Could not create table."
-msgstr "No se puede crear la tabla."
-
-#: ../../Zotlabs/Module/Setup.php:199
-msgid "Your site database has been installed."
-msgstr "La base de datos del sitio ha sido instalada."
-
-#: ../../Zotlabs/Module/Setup.php:203
-msgid ""
-"You may need to import the file \"install/schema_xxx.sql\" manually using a "
-"database client."
-msgstr "Podría tener que importar manualmente el fichero \"install/schema_xxx.sql\" usando un cliente de base de datos."
-
-#: ../../Zotlabs/Module/Setup.php:204 ../../Zotlabs/Module/Setup.php:266
-#: ../../Zotlabs/Module/Setup.php:722
-msgid "Please see the file \"install/INSTALL.txt\"."
-msgstr "Por favor, lea el fichero \"install/INSTALL.txt\"."
-
-#: ../../Zotlabs/Module/Setup.php:263
-msgid "System check"
-msgstr "Verificación del sistema"
-
-#: ../../Zotlabs/Module/Setup.php:268
-msgid "Check again"
-msgstr "Verificar de nuevo"
-
-#: ../../Zotlabs/Module/Setup.php:290
-msgid "Database connection"
-msgstr "Conexión a la base de datos"
-
-#: ../../Zotlabs/Module/Setup.php:291
-msgid ""
-"In order to install $Projectname we need to know how to connect to your "
-"database."
-msgstr "Para instalar $Projectname es necesario saber cómo conectar con su base de datos."
-
-#: ../../Zotlabs/Module/Setup.php:292
-msgid ""
-"Please contact your hosting provider or site administrator if you have "
-"questions about these settings."
-msgstr "Por favor, contacte con el proveedor de servicios o el administrador del sitio si tiene dudas sobre estos ajustes."
-
-#: ../../Zotlabs/Module/Setup.php:293
-msgid ""
-"The database you specify below should already exist. If it does not, please "
-"create it before continuing."
-msgstr "La base de datos que especifique a continuación debe existir ya. Si no es así, por favor, créela antes de seguir."
-
-#: ../../Zotlabs/Module/Setup.php:297
-msgid "Database Server Name"
-msgstr "Nombre del servidor de base de datos"
-
-#: ../../Zotlabs/Module/Setup.php:297
-msgid "Default is 127.0.0.1"
-msgstr "De forma predeterminada es 127.0.0.1"
-
-#: ../../Zotlabs/Module/Setup.php:298
-msgid "Database Port"
-msgstr "Puerto de la base de datos"
-
-#: ../../Zotlabs/Module/Setup.php:298
-msgid "Communication port number - use 0 for default"
-msgstr "Número del puerto de comunicaciones - use 0 como valor por defecto"
-
-#: ../../Zotlabs/Module/Setup.php:299
-msgid "Database Login Name"
-msgstr "Usuario de la base de datos"
-
-#: ../../Zotlabs/Module/Setup.php:300
-msgid "Database Login Password"
-msgstr "Contraseña de acceso a la base de datos"
-
-#: ../../Zotlabs/Module/Setup.php:301
-msgid "Database Name"
-msgstr "Nombre de la base de datos"
-
-#: ../../Zotlabs/Module/Setup.php:302
-msgid "Database Type"
-msgstr "Tipo de base de datos"
-
-#: ../../Zotlabs/Module/Setup.php:304 ../../Zotlabs/Module/Setup.php:344
-msgid "Site administrator email address"
-msgstr "Dirección de correo electrónico del administrador del sitio"
-
-#: ../../Zotlabs/Module/Setup.php:304 ../../Zotlabs/Module/Setup.php:344
-msgid ""
-"Your account email address must match this in order to use the web admin "
-"panel."
-msgstr "Su cuenta deberá usar la misma dirección de correo electrónico para poder utilizar el panel de administración web."
-
-#: ../../Zotlabs/Module/Setup.php:305 ../../Zotlabs/Module/Setup.php:346
-msgid "Website URL"
-msgstr "Dirección del sitio web"
-
-#: ../../Zotlabs/Module/Setup.php:305 ../../Zotlabs/Module/Setup.php:346
-msgid "Please use SSL (https) URL if available."
-msgstr "Por favor, use SSL (https) si está disponible."
-
-#: ../../Zotlabs/Module/Setup.php:306 ../../Zotlabs/Module/Setup.php:349
-msgid "Please select a default timezone for your website"
-msgstr "Por favor, selecciones el huso horario por defecto de su sitio web"
-
-#: ../../Zotlabs/Module/Setup.php:333
-msgid "Site settings"
-msgstr "Ajustes del sitio"
-
-#: ../../Zotlabs/Module/Setup.php:347
-msgid "Enable $Projectname <strong>advanced</strong> features?"
-msgstr "¿Habilitar las funcionalidades <strong>avanzadas</strong> de $Projectname ?"
-
-#: ../../Zotlabs/Module/Setup.php:347
-msgid ""
-"Some advanced features, while useful - may be best suited for technically "
-"proficient audiences"
-msgstr "Algunas funcionalidades avanzadas, si bien son útiles, pueden ser más adecuadas para un público técnicamente competente"
-
-#: ../../Zotlabs/Module/Setup.php:388
-msgid "PHP version 5.5 or greater is required."
-msgstr "Se requiere la versión 5.5, o superior, de PHP."
-
-#: ../../Zotlabs/Module/Setup.php:389
-msgid "PHP version"
-msgstr "Versión de PHP"
-
-#: ../../Zotlabs/Module/Setup.php:404
-msgid "Could not find a command line version of PHP in the web server PATH."
-msgstr "No se puede encontrar una versión en línea de comandos de PHP en la ruta del servidor web."
-
-#: ../../Zotlabs/Module/Setup.php:405
-msgid ""
-"If you don't have a command line version of PHP installed on server, you "
-"will not be able to run background polling via cron."
-msgstr "Si no tiene instalada la versión de línea de comandos de PHP en su servidor, no podrá realizar envíos en segundo plano mediante cron."
-
-#: ../../Zotlabs/Module/Setup.php:409
-msgid "PHP executable path"
-msgstr "Ruta del ejecutable PHP"
-
-#: ../../Zotlabs/Module/Setup.php:409
-msgid ""
-"Enter full path to php executable. You can leave this blank to continue the "
-"installation."
-msgstr "Introducir la ruta completa del ejecutable PHP. Puede dejar la línea en blanco para continuar la instalación."
-
-#: ../../Zotlabs/Module/Setup.php:414
-msgid "Command line PHP"
-msgstr "PHP en línea de comandos"
-
-#: ../../Zotlabs/Module/Setup.php:423
-msgid ""
-"The command line version of PHP on your system does not have "
-"\"register_argc_argv\" enabled."
-msgstr "La línea de comandos PHP de su sistema no tiene activado \"register_argc_argv\"."
+#: ../../Zotlabs/Module/Thing.php:114
+msgid "Thing updated"
+msgstr "Elemento actualizado."
-#: ../../Zotlabs/Module/Setup.php:424
-msgid "This is required for message delivery to work."
-msgstr "Esto es necesario para que funcione la transmisión de mensajes."
+#: ../../Zotlabs/Module/Thing.php:166
+msgid "Object store: failed"
+msgstr "Guardar objeto: ha fallado"
-#: ../../Zotlabs/Module/Setup.php:427
-msgid "PHP register_argc_argv"
-msgstr "PHP register_argc_argv"
+#: ../../Zotlabs/Module/Thing.php:170
+msgid "Thing added"
+msgstr "Elemento añadido"
-#: ../../Zotlabs/Module/Setup.php:445
+#: ../../Zotlabs/Module/Thing.php:196
#, php-format
-msgid ""
-"Your max allowed total upload size is set to %s. Maximum size of one file to"
-" upload is set to %s. You are allowed to upload up to %d files at once."
-msgstr "La carga máxima que se le permite subir está establecida en %s. El tamaño máximo de un fichero está establecido en %s. Está permitido subir hasta un máximo de %d ficheros de una sola vez."
-
-#: ../../Zotlabs/Module/Setup.php:450
-msgid "You can adjust these settings in the servers php.ini."
-msgstr "Puede ajustar estos valores en el fichero php.ini de su servidor."
-
-#: ../../Zotlabs/Module/Setup.php:452
-msgid "PHP upload limits"
-msgstr "Límites PHP de subida"
-
-#: ../../Zotlabs/Module/Setup.php:475
-msgid ""
-"Error: the \"openssl_pkey_new\" function on this system is not able to "
-"generate encryption keys"
-msgstr "Error: La función \"openssl_pkey_new\" en este sistema no es capaz de general claves de cifrado."
-
-#: ../../Zotlabs/Module/Setup.php:476
-msgid ""
-"If running under Windows, please see "
-"\"http://www.php.net/manual/en/openssl.installation.php\"."
-msgstr "Si está en un servidor Windows, por favor, lea \"http://www.php.net/manual/en/openssl.installation.php\"."
-
-#: ../../Zotlabs/Module/Setup.php:479
-msgid "Generate encryption keys"
-msgstr "Generar claves de cifrado"
-
-#: ../../Zotlabs/Module/Setup.php:491
-msgid "libCurl PHP module"
-msgstr "módulo libCurl PHP"
-
-#: ../../Zotlabs/Module/Setup.php:492
-msgid "GD graphics PHP module"
-msgstr "módulo PHP GD graphics"
-
-#: ../../Zotlabs/Module/Setup.php:493
-msgid "OpenSSL PHP module"
-msgstr "módulo PHP OpenSSL"
-
-#: ../../Zotlabs/Module/Setup.php:494
-msgid "mysqli or postgres PHP module"
-msgstr "módulo PHP mysqli o postgres"
-
-#: ../../Zotlabs/Module/Setup.php:495
-msgid "mb_string PHP module"
-msgstr "módulo PHP mb_string"
-
-#: ../../Zotlabs/Module/Setup.php:496
-msgid "xml PHP module"
-msgstr "módulo PHP xml"
-
-#: ../../Zotlabs/Module/Setup.php:500 ../../Zotlabs/Module/Setup.php:502
-msgid "Apache mod_rewrite module"
-msgstr "módulo Apache mod_rewrite "
-
-#: ../../Zotlabs/Module/Setup.php:500
-msgid ""
-"Error: Apache webserver mod-rewrite module is required but not installed."
-msgstr "Error: se necesita el módulo del servidor web Apache mod-rewrite pero no está instalado."
+msgid "OBJ: %1$s %2$s %3$s"
+msgstr "OBJ: %1$s %2$s %3$s"
-#: ../../Zotlabs/Module/Setup.php:506 ../../Zotlabs/Module/Setup.php:509
-msgid "proc_open"
-msgstr "proc_open"
+#: ../../Zotlabs/Module/Thing.php:259
+msgid "Show Thing"
+msgstr "Mostrar elemento"
-#: ../../Zotlabs/Module/Setup.php:506
-msgid ""
-"Error: proc_open is required but is either not installed or has been "
-"disabled in php.ini"
-msgstr "Error: se necesita proc_open pero o no está instalado o ha sido desactivado en el fichero php.ini"
+#: ../../Zotlabs/Module/Thing.php:266
+msgid "item not found."
+msgstr "elemento no encontrado."
-#: ../../Zotlabs/Module/Setup.php:514
-msgid "Error: libCURL PHP module required but not installed."
-msgstr "Error: se necesita el módulo PHP libCURL pero no está instalado."
+#: ../../Zotlabs/Module/Thing.php:299
+msgid "Edit Thing"
+msgstr "Editar elemento"
-#: ../../Zotlabs/Module/Setup.php:518
-msgid ""
-"Error: GD graphics PHP module with JPEG support required but not installed."
-msgstr "Error: el módulo PHP GD graphics es necesario, pero no está instalado."
+#: ../../Zotlabs/Module/Thing.php:301 ../../Zotlabs/Module/Thing.php:355
+msgid "Select a profile"
+msgstr "Seleccionar un perfil"
-#: ../../Zotlabs/Module/Setup.php:522
-msgid "Error: openssl PHP module required but not installed."
-msgstr "Error: el módulo PHP openssl es necesario, pero no está instalado."
+#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358
+msgid "Post an activity"
+msgstr "Publicar una actividad"
-#: ../../Zotlabs/Module/Setup.php:526
-msgid ""
-"Error: mysqli or postgres PHP module required but neither are installed."
-msgstr "Error: el módulo PHP mysqli o postgres es necesario pero ninguno de los dos está instalado."
+#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358
+msgid "Only sends to viewers of the applicable profile"
+msgstr "Sólo enviar a espectadores del perfil pertinente."
-#: ../../Zotlabs/Module/Setup.php:530
-msgid "Error: mb_string PHP module required but not installed."
-msgstr "Error: el módulo PHP mb_string es necesario, pero no está instalado."
+#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:360
+msgid "Name of thing e.g. something"
+msgstr "Nombre del elemento, p. ej.:. \"algo\""
-#: ../../Zotlabs/Module/Setup.php:534
-msgid "Error: xml PHP module required for DAV but not installed."
-msgstr "Error: el módulo PHP xml es necesario para DAV, pero no está instalado."
+#: ../../Zotlabs/Module/Thing.php:309 ../../Zotlabs/Module/Thing.php:361
+msgid "URL of thing (optional)"
+msgstr "Dirección del elemento (opcional)"
-#: ../../Zotlabs/Module/Setup.php:552
-msgid ""
-"The web installer needs to be able to create a file called \".htconfig.php\""
-" in the top folder of your web server and it is unable to do so."
-msgstr "El instalador web no ha podido crear un fichero llamado “.htconfig.php†en la carpeta base de su servidor."
+#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:362
+msgid "URL for photo of thing (optional)"
+msgstr "Dirección para la foto o elemento (opcional)"
-#: ../../Zotlabs/Module/Setup.php:553
-msgid ""
-"This is most often a permission setting, as the web server may not be able "
-"to write files in your folder - even if you can."
-msgstr "Esto está generalmente ligado a un problema de permisos, a causa del cual el servidor web tiene prohibido modificar ficheros en su carpeta - incluso si usted mismo tiene esos permisos."
+#: ../../Zotlabs/Module/Thing.php:353
+msgid "Add Thing to your Profile"
+msgstr "Añadir alguna cosa a su perfil"
-#: ../../Zotlabs/Module/Setup.php:554
-msgid ""
-"At the end of this procedure, we will give you a text to save in a file "
-"named .htconfig.php in your Red top folder."
-msgstr "Al término de este procedimiento, podemos crear un fichero de texto para guardar con el nombre .htconfig.php en el directorio raíz de su instalación de Hubzilla."
+#: ../../Zotlabs/Module/Item.php:180
+msgid "Unable to locate original post."
+msgstr "No ha sido posible encontrar la entrada original."
-#: ../../Zotlabs/Module/Setup.php:555
-msgid ""
-"You can alternatively skip this procedure and perform a manual installation."
-" Please see the file \"install/INSTALL.txt\" for instructions."
-msgstr "Como alternativa, puede dejar este procedimiento e intentar realizar una instalación manual. Lea, por favor, el fichero\"install/INSTALL.txt\" para las instrucciones."
+#: ../../Zotlabs/Module/Item.php:433
+msgid "Empty post discarded."
+msgstr "La entrada vacía ha sido desechada."
-#: ../../Zotlabs/Module/Setup.php:558
-msgid ".htconfig.php is writable"
-msgstr ".htconfig.php tiene permisos de escritura"
+#: ../../Zotlabs/Module/Item.php:473
+msgid "Executable content type not permitted to this channel."
+msgstr "Contenido de tipo ejecutable no permitido en este canal."
-#: ../../Zotlabs/Module/Setup.php:572
-msgid ""
-"Red uses the Smarty3 template engine to render its web views. Smarty3 "
-"compiles templates to PHP to speed up rendering."
-msgstr "Hubzilla hace uso del motor de plantillas Smarty3 para diseñar sus plantillas gráficas. Smarty3 es más rápido porque compila las plantillas de páginas directamente en PHP."
+#: ../../Zotlabs/Module/Item.php:858
+msgid "Duplicate post suppressed."
+msgstr "Se ha suprimido la entrada duplicada."
-#: ../../Zotlabs/Module/Setup.php:573
-#, php-format
-msgid ""
-"In order to store these compiled templates, the web server needs to have "
-"write access to the directory %s under the top level web folder."
-msgstr "Para poder guardar las plantillas compiladas, el servidor web necesita permisos para acceder al directorio %s en la carpeta web principal."
+#: ../../Zotlabs/Module/Item.php:991
+msgid "System error. Post not saved."
+msgstr "Error del sistema. La entrada no se ha podido salvar."
-#: ../../Zotlabs/Module/Setup.php:574 ../../Zotlabs/Module/Setup.php:595
-msgid ""
-"Please ensure that the user that your web server runs as (e.g. www-data) has"
-" write access to this folder."
-msgstr "Por favor, asegúrese de que el servidor web está siendo ejecutado por un usuario que tenga permisos de escritura sobre esta carpeta (por ejemplo, www-data)."
+#: ../../Zotlabs/Module/Item.php:1112
+msgid "Unable to obtain post information from database."
+msgstr "No ha sido posible obtener información de la entrada en la base de datos."
-#: ../../Zotlabs/Module/Setup.php:575
+#: ../../Zotlabs/Module/Item.php:1119
#, php-format
-msgid ""
-"Note: as a security measure, you should give the web server write access to "
-"%s only--not the template files (.tpl) that it contains."
-msgstr "Nota: como medida de seguridad, debe dar al servidor web permisos de escritura solo sobre %s - no sobre el fichero de plantilla (.tpl) que contiene."
+msgid "You have reached your limit of %1$.0f top level posts."
+msgstr "Ha alcanzado su límite de %1$.0f entradas en la página principal."
-#: ../../Zotlabs/Module/Setup.php:578
+#: ../../Zotlabs/Module/Item.php:1126
#, php-format
-msgid "%s is writable"
-msgstr "%s tiene permisos de escritura"
-
-#: ../../Zotlabs/Module/Setup.php:594
-msgid ""
-"This software uses the store directory to save uploaded files. The web "
-"server needs to have write access to the store directory under the Red top "
-"level folder"
-msgstr "Este software utiliza el directorio de almacenamiento para guardar los archivos subidos. El servidor web debe tener acceso de escritura al directorio de almacenamiento en la carpeta de nivel superior"
-
-#: ../../Zotlabs/Module/Setup.php:598
-msgid "store is writable"
-msgstr "\"store\" tiene permisos de escritura"
-
-#: ../../Zotlabs/Module/Setup.php:631
-msgid ""
-"SSL certificate cannot be validated. Fix certificate or disable https access"
-" to this site."
-msgstr "El certificado SSL no ha podido ser validado. Corrija este problema o desactive el acceso https a este sitio."
-
-#: ../../Zotlabs/Module/Setup.php:632
-msgid ""
-"If you have https access to your website or allow connections to TCP port "
-"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
-"NOT use self-signed certificates!"
-msgstr "Si su servidor soporta conexiones cifradas SSL o si permite conexiones al puerto TCP 443 (el puerto usado por el protocolo https), debe utilizar un certificado válido. No debe usar un certificado firmado por usted mismo."
-
-#: ../../Zotlabs/Module/Setup.php:633
-msgid ""
-"This restriction is incorporated because public posts from you may for "
-"example contain references to images on your own hub."
-msgstr "Se ha incorporado esta restricción para evitar que sus publicaciones públicas hagan referencia a imágenes en su propio servidor."
-
-#: ../../Zotlabs/Module/Setup.php:634
-msgid ""
-"If your certificate is not recognized, members of other sites (who may "
-"themselves have valid certificates) will get a warning message on their own "
-"site complaining about security issues."
-msgstr "Si su certificado no ha sido reconocido, los miembros de otros sitios (con certificados válidos) recibirán mensajes de aviso en sus propios sitios web."
-
-#: ../../Zotlabs/Module/Setup.php:635
-msgid ""
-"This can cause usability issues elsewhere (not just on your own site) so we "
-"must insist on this requirement."
-msgstr "Por razones de compatibilidad (sobre el conjunto de la red, no solo sobre su propio sitio), debemos insistir en estos requisitos."
-
-#: ../../Zotlabs/Module/Setup.php:636
-msgid ""
-"Providers are available that issue free certificates which are browser-"
-"valid."
-msgstr "Existen varias Autoridades de Certificación que le pueden proporcionar certificados válidos."
-
-#: ../../Zotlabs/Module/Setup.php:638
-msgid ""
-"If you are confident that the certificate is valid and signed by a trusted "
-"authority, check to see if you have failed to install an intermediate cert. "
-"These are not normally required by browsers, but are required for server-to-"
-"server communications."
-msgstr "Si se tiene la certeza de que el certificado es válido y está firmado por una autoridad de confianza, comprobar para ver si hubo un error al instalar un certificado intermedio. Estos no son normalmente requeridos por los navegadores, pero son necesarios para las comunicaciones de servidor a servidor."
-
-#: ../../Zotlabs/Module/Setup.php:641
-msgid "SSL certificate validation"
-msgstr "validación del certificado SSL"
-
-#: ../../Zotlabs/Module/Setup.php:647
-msgid ""
-"Url rewrite in .htaccess is not working. Check your server "
-"configuration.Test: "
-msgstr "No se pueden reescribir las direcciones web en .htaccess. Compruebe la configuración de su servidor:"
-
-#: ../../Zotlabs/Module/Setup.php:650
-msgid "Url rewrite is working"
-msgstr "La reescritura de las direcciones funciona correctamente"
-
-#: ../../Zotlabs/Module/Setup.php:659
-msgid ""
-"The database configuration file \".htconfig.php\" could not be written. "
-"Please use the enclosed text to create a configuration file in your web "
-"server root."
-msgstr "El fichero de configuración de la base de datos .htconfig.php no se ha podido modificar. Por favor, copie el texto generado en un fichero con ese nombre en el directorio raíz de su servidor."
-
-#: ../../Zotlabs/Module/Setup.php:683
-msgid "Errors encountered creating database tables."
-msgstr "Se han encontrado errores al crear las tablas de la base de datos."
-
-#: ../../Zotlabs/Module/Setup.php:720
-msgid "<h1>What next</h1>"
-msgstr "<h1>Siguiente paso</h1>"
-
-#: ../../Zotlabs/Module/Setup.php:721
-msgid ""
-"IMPORTANT: You will need to [manually] setup a scheduled task for the "
-"poller."
-msgstr "IMPORTANTE: Debe crear [manualmente] una tarea programada para el \"poller\"."
+msgid "You have reached your limit of %1$.0f webpages."
+msgstr "Ha alcanzado su límite de %1$.0f páginas web."
#: ../../Zotlabs/Module/Sharedwithme.php:98
msgid "Files: shared with me"
@@ -6245,66 +6229,86 @@ msgstr "Eliminar todos los ficheros"
msgid "Remove this file"
msgstr "Eliminar este fichero"
-#: ../../Zotlabs/Module/Thing.php:114
-msgid "Thing updated"
-msgstr "Elemento actualizado."
+#: ../../Zotlabs/Module/Wiki.php:34
+msgid "Not found"
+msgstr "No encontrado"
-#: ../../Zotlabs/Module/Thing.php:166
-msgid "Object store: failed"
-msgstr "Guardar objeto: ha fallado"
+#: ../../Zotlabs/Module/Wiki.php:97 ../../Zotlabs/Lib/Apps.php:219
+#: ../../include/conversation.php:1728 ../../include/conversation.php:1731
+#: ../../include/features.php:57 ../../include/nav.php:110
+msgid "Wiki"
+msgstr "Wiki"
-#: ../../Zotlabs/Module/Thing.php:170
-msgid "Thing added"
-msgstr "Elemento añadido"
+#: ../../Zotlabs/Module/Wiki.php:98
+msgid "Sandbox"
+msgstr "Entorno de edición"
-#: ../../Zotlabs/Module/Thing.php:196
-#, php-format
-msgid "OBJ: %1$s %2$s %3$s"
-msgstr "OBJ: %1$s %2$s %3$s"
+#: ../../Zotlabs/Module/Wiki.php:100
+msgid ""
+"\"# Wiki Sandbox\\n\\nContent you **edit** and **preview** here *will not be"
+" saved*.\""
+msgstr "\"# Entorno de edición del Wiki\\n\\nEl contenido que se **edite** y **previsualizce** aquí *no se guardará*.\""
-#: ../../Zotlabs/Module/Thing.php:259
-msgid "Show Thing"
-msgstr "Mostrar elemento"
+#: ../../Zotlabs/Module/Wiki.php:169
+msgid "Revision Comparison"
+msgstr "Comparación de revisiones"
-#: ../../Zotlabs/Module/Thing.php:266
-msgid "item not found."
-msgstr "elemento no encontrado."
+#: ../../Zotlabs/Module/Wiki.php:170
+msgid "Revert"
+msgstr "Revertir"
-#: ../../Zotlabs/Module/Thing.php:299
-msgid "Edit Thing"
-msgstr "Editar elemento"
+#: ../../Zotlabs/Module/Wiki.php:201
+msgid "Enter the name of your new wiki:"
+msgstr "Nombre de su nuevo wiki:"
-#: ../../Zotlabs/Module/Thing.php:301 ../../Zotlabs/Module/Thing.php:351
-msgid "Select a profile"
-msgstr "Seleccionar un perfil"
+#: ../../Zotlabs/Module/Wiki.php:202
+msgid "Enter the name of the new page:"
+msgstr "Nombre de la nueva página:"
-#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:354
-msgid "Post an activity"
-msgstr "Publicar una actividad"
+#: ../../Zotlabs/Module/Wiki.php:203
+msgid "Enter the new name:"
+msgstr "Nuevo nombre:"
-#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:354
-msgid "Only sends to viewers of the applicable profile"
-msgstr "Sólo enviar a espectadores del perfil pertinente."
+#: ../../Zotlabs/Module/Wiki.php:209 ../../include/conversation.php:1152
+msgid "Embed image from photo albums"
+msgstr "Incluir una imagen de los álbumes de fotos"
-#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:356
-msgid "Name of thing e.g. something"
-msgstr "Nombre del elemento, p. ej.:. \"algo\""
+#: ../../Zotlabs/Module/Wiki.php:210 ../../include/conversation.php:1242
+msgid "Embed an image from your albums"
+msgstr "Incluir una imagen de sus álbumes"
-#: ../../Zotlabs/Module/Thing.php:309 ../../Zotlabs/Module/Thing.php:357
-msgid "URL of thing (optional)"
-msgstr "Dirección del elemento (opcional)"
+#: ../../Zotlabs/Module/Wiki.php:212 ../../include/conversation.php:1244
+#: ../../include/conversation.php:1291
+msgid "OK"
+msgstr "OK"
-#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:358
-msgid "URL for photo of thing (optional)"
-msgstr "Dirección para la foto o elemento (opcional)"
+#: ../../Zotlabs/Module/Wiki.php:213 ../../include/conversation.php:1188
+msgid "Choose images to embed"
+msgstr "Elegir imágenes para incluir"
-#: ../../Zotlabs/Module/Thing.php:349
-msgid "Add Thing to your Profile"
-msgstr "Añadir alguna cosa a su perfil"
+#: ../../Zotlabs/Module/Wiki.php:214 ../../include/conversation.php:1189
+msgid "Choose an album"
+msgstr "Elegir un álbum"
+
+#: ../../Zotlabs/Module/Wiki.php:215 ../../include/conversation.php:1190
+msgid "Choose a different album..."
+msgstr "Elegir un álbum diferente..."
+
+#: ../../Zotlabs/Module/Wiki.php:216 ../../include/conversation.php:1191
+msgid "Error getting album list"
+msgstr "Error al obtener la lista de álbumes"
+
+#: ../../Zotlabs/Module/Wiki.php:217 ../../include/conversation.php:1192
+msgid "Error getting photo link"
+msgstr "Error al obtener el enlace de la foto"
+
+#: ../../Zotlabs/Module/Wiki.php:218 ../../include/conversation.php:1193
+msgid "Error getting album"
+msgstr "Error al obtener el álbum"
#: ../../Zotlabs/Module/Sources.php:37
msgid "Failed to create source. No channel selected."
-msgstr "Imposible crear el origen de los contenidos. Ningún canal ha sido seleccionado."
+msgstr "No se ha podido crear el origen de los contenidos. No ha sido seleccionado ningún canal."
#: ../../Zotlabs/Module/Sources.php:51
msgid "Source created."
@@ -6318,8 +6322,8 @@ msgstr "Fuente actualizada."
msgid "*"
msgstr "*"
-#: ../../Zotlabs/Module/Sources.php:96 ../../include/features.php:72
-#: ../../include/widgets.php:639
+#: ../../Zotlabs/Module/Sources.php:96 ../../include/widgets.php:639
+#: ../../include/features.php:71
msgid "Channel Sources"
msgstr "Orígenes de los contenidos del canal"
@@ -6353,7 +6357,7 @@ msgstr "Nombre del canal"
msgid ""
"Add the following categories to posts imported from this source (comma "
"separated)"
-msgstr "Añadir las categorías siguientes a las entradas importadas de esta fuente (separadas por comas)"
+msgstr "Añadir los temas siguientes a las entradas importadas de esta fuente (separadas por comas)"
#: ../../Zotlabs/Module/Sources.php:133 ../../Zotlabs/Module/Sources.php:161
msgid "Source not found."
@@ -6373,7 +6377,7 @@ msgstr "Fuente eliminada"
#: ../../Zotlabs/Module/Sources.php:171
msgid "Unable to remove source."
-msgstr "Imposible eliminar la fuente."
+msgstr "No se puede eliminar la fuente."
#: ../../Zotlabs/Module/Subthread.php:118
#, php-format
@@ -6399,8 +6403,8 @@ msgstr "Ignorar/Ocultar"
msgid "post"
msgstr "la entrada"
-#: ../../Zotlabs/Module/Tagger.php:57 ../../include/conversation.php:150
-#: ../../include/text.php:1929
+#: ../../Zotlabs/Module/Tagger.php:57 ../../include/text.php:1953
+#: ../../include/conversation.php:150
msgid "comment"
msgstr "el comentario"
@@ -6421,99 +6425,9 @@ msgstr "Eliminar etiqueta del elemento."
msgid "Select a tag to remove: "
msgstr "Seleccionar una etiqueta para eliminar:"
-#: ../../Zotlabs/Module/Webpages.php:191 ../../Zotlabs/Lib/Apps.php:218
-#: ../../include/nav.php:106 ../../include/conversation.php:1700
-msgid "Webpages"
-msgstr "Páginas web"
-
-#: ../../Zotlabs/Module/Webpages.php:202 ../../include/page_widgets.php:44
-msgid "Actions"
-msgstr "Acciones"
-
-#: ../../Zotlabs/Module/Webpages.php:203 ../../include/page_widgets.php:45
-msgid "Page Link"
-msgstr "Vínculo de la página"
-
-#: ../../Zotlabs/Module/Webpages.php:204
-msgid "Page Title"
-msgstr "Título de página"
-
-#: ../../Zotlabs/Module/Wiki.php:34
-msgid "Not found"
-msgstr "No encontrado"
-
-#: ../../Zotlabs/Module/Wiki.php:92 ../../Zotlabs/Lib/Apps.php:219
-#: ../../include/nav.php:108 ../../include/conversation.php:1710
-#: ../../include/conversation.php:1713 ../../include/features.php:55
-msgid "Wiki"
-msgstr "Wiki"
-
-#: ../../Zotlabs/Module/Wiki.php:93
-msgid "Sandbox"
-msgstr "Entorno de edición"
-
-#: ../../Zotlabs/Module/Wiki.php:95
-msgid ""
-"\"# Wiki Sandbox\\n\\nContent you **edit** and **preview** here *will not be"
-" saved*.\""
-msgstr "\"# Entorno de edición del Wiki\\n\\nEl contenido que se **edite** y **previsualizce** aquí *no se guardará*.\""
-
-#: ../../Zotlabs/Module/Wiki.php:164
-msgid "Revision Comparison"
-msgstr "Comparación de revisiones"
-
-#: ../../Zotlabs/Module/Wiki.php:165
-msgid "Revert"
-msgstr "Revertir"
-
-#: ../../Zotlabs/Module/Wiki.php:192
-msgid "Enter the name of your new wiki:"
-msgstr "Nombre de su nuevo wiki:"
-
-#: ../../Zotlabs/Module/Wiki.php:193
-msgid "Enter the name of the new page:"
-msgstr "Nombre de la nueva página:"
-
-#: ../../Zotlabs/Module/Wiki.php:194
-msgid "Enter the new name:"
-msgstr "Nuevo nombre:"
-
-#: ../../Zotlabs/Module/Wiki.php:200 ../../include/conversation.php:1150
-msgid "Embed image from photo albums"
-msgstr "Incluir una imagen de los álbumes de fotos"
-
-#: ../../Zotlabs/Module/Wiki.php:201 ../../include/conversation.php:1234
-msgid "Embed an image from your albums"
-msgstr "Incluir una imagen de sus álbumes"
-
-#: ../../Zotlabs/Module/Wiki.php:203 ../../include/conversation.php:1236
-#: ../../include/conversation.php:1273
-msgid "OK"
-msgstr "OK"
-
-#: ../../Zotlabs/Module/Wiki.php:204 ../../include/conversation.php:1186
-msgid "Choose images to embed"
-msgstr "Elegir imágenes para incluir"
-
-#: ../../Zotlabs/Module/Wiki.php:205 ../../include/conversation.php:1187
-msgid "Choose an album"
-msgstr "Elegir un álbum"
-
-#: ../../Zotlabs/Module/Wiki.php:206 ../../include/conversation.php:1188
-msgid "Choose a different album..."
-msgstr "Elegir un álbum diferente..."
-
-#: ../../Zotlabs/Module/Wiki.php:207 ../../include/conversation.php:1189
-msgid "Error getting album list"
-msgstr "Error al obtener la lista de álbumes"
-
-#: ../../Zotlabs/Module/Wiki.php:208 ../../include/conversation.php:1190
-msgid "Error getting photo link"
-msgstr "Error al obtener el enlace de la foto"
-
-#: ../../Zotlabs/Module/Wiki.php:209 ../../include/conversation.php:1191
-msgid "Error getting album"
-msgstr "Error al obtener el álbum"
+#: ../../Zotlabs/Module/Follow.php:34
+msgid "Channel added."
+msgstr "Canal añadido."
#: ../../Zotlabs/Module/Viewconnections.php:65
msgid "No connections."
@@ -6532,23 +6446,62 @@ msgstr "Ver conexiones"
msgid "Source of Item"
msgstr "Origen del elemento"
-#: ../../Zotlabs/Module/Api.php:61 ../../Zotlabs/Module/Api.php:85
-msgid "Authorize application connection"
-msgstr "Autorizar una conexión de aplicación"
+#: ../../Zotlabs/Module/Chat.php:181
+msgid "Room not found"
+msgstr "Sala no encontrada"
-#: ../../Zotlabs/Module/Api.php:62
-msgid "Return to your app and insert this Securty Code:"
-msgstr "Volver a su aplicación e introducir este código de seguridad:"
+#: ../../Zotlabs/Module/Chat.php:197
+msgid "Leave Room"
+msgstr "Abandonar la sala"
-#: ../../Zotlabs/Module/Api.php:72
-msgid "Please login to continue."
-msgstr "Por favor inicie sesión para continuar."
+#: ../../Zotlabs/Module/Chat.php:198
+msgid "Delete Room"
+msgstr "Eliminar esta sala"
-#: ../../Zotlabs/Module/Api.php:87
-msgid ""
-"Do you want to authorize this application to access your posts and contacts,"
-" and/or create new posts for you?"
-msgstr "¿Desea autorizar a esta aplicación a acceder a sus publicaciones y contactos, y/o crear nuevas publicaciones por usted?"
+#: ../../Zotlabs/Module/Chat.php:199
+msgid "I am away right now"
+msgstr "Estoy ausente momentáneamente"
+
+#: ../../Zotlabs/Module/Chat.php:200
+msgid "I am online"
+msgstr "Estoy conectado/a"
+
+#: ../../Zotlabs/Module/Chat.php:202
+msgid "Bookmark this room"
+msgstr "Añadir esta sala a Marcadores"
+
+#: ../../Zotlabs/Module/Chat.php:218
+msgid "Feature disabled."
+msgstr "Funcionalidad deshabilitada."
+
+#: ../../Zotlabs/Module/Chat.php:231
+msgid "New Chatroom"
+msgstr "Nueva sala de chat"
+
+#: ../../Zotlabs/Module/Chat.php:232
+msgid "Chatroom name"
+msgstr "Nombre de la sala de chat"
+
+#: ../../Zotlabs/Module/Chat.php:233
+msgid "Expiration of chats (minutes)"
+msgstr "Caducidad de los mensajes en los chats (en minutos)"
+
+#: ../../Zotlabs/Module/Chat.php:249
+#, php-format
+msgid "%1$s's Chatrooms"
+msgstr "Salas de chat de %1$s"
+
+#: ../../Zotlabs/Module/Chat.php:254
+msgid "No chatrooms available"
+msgstr "No hay salas de chat disponibles"
+
+#: ../../Zotlabs/Module/Chat.php:258
+msgid "Expiration"
+msgstr "Caducidad"
+
+#: ../../Zotlabs/Module/Chat.php:259
+msgid "min"
+msgstr "min"
#: ../../Zotlabs/Module/Xchan.php:10
msgid "Xchan Lookup"
@@ -6578,19 +6531,19 @@ msgstr "Sala no encontrada."
msgid "Room is full"
msgstr "La sala está llena."
-#: ../../Zotlabs/Lib/Enotify.php:60 ../../include/network.php:1882
+#: ../../Zotlabs/Lib/Enotify.php:60 ../../include/network.php:1887
msgid "$Projectname Notification"
msgstr "Notificación de $Projectname"
-#: ../../Zotlabs/Lib/Enotify.php:61 ../../include/network.php:1883
+#: ../../Zotlabs/Lib/Enotify.php:61 ../../include/network.php:1888
msgid "$projectname"
msgstr "$projectname"
-#: ../../Zotlabs/Lib/Enotify.php:63 ../../include/network.php:1885
+#: ../../Zotlabs/Lib/Enotify.php:63 ../../include/network.php:1890
msgid "Thank You,"
msgstr "Gracias,"
-#: ../../Zotlabs/Lib/Enotify.php:65 ../../include/network.php:1887
+#: ../../Zotlabs/Lib/Enotify.php:65 ../../include/network.php:1892
#, php-format
msgid "%s Administrator"
msgstr "%s Administrador"
@@ -6811,33 +6764,33 @@ msgstr "Diagnóstico remoto"
msgid "Suggest Channels"
msgstr "Sugerir canales"
-#: ../../Zotlabs/Lib/Apps.php:213 ../../include/nav.php:112
-#: ../../boot.php:1704
+#: ../../Zotlabs/Lib/Apps.php:213 ../../include/nav.php:114
+#: ../../boot.php:1738
msgid "Login"
msgstr "Iniciar sesión"
-#: ../../Zotlabs/Lib/Apps.php:215 ../../include/nav.php:181
+#: ../../Zotlabs/Lib/Apps.php:215 ../../include/nav.php:183
msgid "Grid"
msgstr "Red"
-#: ../../Zotlabs/Lib/Apps.php:220 ../../include/nav.php:184
+#: ../../Zotlabs/Lib/Apps.php:220 ../../include/nav.php:186
msgid "Channel Home"
msgstr "Mi canal"
-#: ../../Zotlabs/Lib/Apps.php:223 ../../include/nav.php:203
-#: ../../include/conversation.php:1664 ../../include/conversation.php:1667
+#: ../../Zotlabs/Lib/Apps.php:223 ../../include/conversation.php:1682
+#: ../../include/conversation.php:1685 ../../include/nav.php:205
msgid "Events"
msgstr "Eventos"
-#: ../../Zotlabs/Lib/Apps.php:224 ../../include/nav.php:169
+#: ../../Zotlabs/Lib/Apps.php:224 ../../include/nav.php:171
msgid "Directory"
msgstr "Directorio"
-#: ../../Zotlabs/Lib/Apps.php:226 ../../include/nav.php:195
+#: ../../Zotlabs/Lib/Apps.php:226 ../../include/nav.php:197
msgid "Mail"
msgstr "Correo"
-#: ../../Zotlabs/Lib/Apps.php:229 ../../include/nav.php:96
+#: ../../Zotlabs/Lib/Apps.php:229 ../../include/nav.php:98
msgid "Chat"
msgstr "Chat"
@@ -6857,18 +6810,89 @@ msgstr "Canal aleatorio"
msgid "Invite"
msgstr "Invitar"
-#: ../../Zotlabs/Lib/Apps.php:235 ../../include/widgets.php:1480
+#: ../../Zotlabs/Lib/Apps.php:235 ../../include/widgets.php:1494
msgid "Features"
msgstr "Funcionalidades"
+#: ../../Zotlabs/Lib/Apps.php:236
+msgid "Language"
+msgstr "Idioma"
+
#: ../../Zotlabs/Lib/Apps.php:237
msgid "Post"
msgstr "Publicación"
+#: ../../Zotlabs/Lib/Apps.php:238
+msgid "Profile Photo"
+msgstr "Foto del perfil"
+
#: ../../Zotlabs/Lib/Apps.php:339
msgid "Purchase"
msgstr "Comprar"
+#: ../../Zotlabs/Lib/PermissionDescription.php:31
+#: ../../include/acl_selectors.php:124
+msgid "Visible to your default audience"
+msgstr "Visible para su público predeterminado."
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:106
+#: ../../include/acl_selectors.php:165
+msgid "Only me"
+msgstr "Sólo yo"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:107
+msgid "Public"
+msgstr "Público"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:108
+msgid "Anybody in the $Projectname network"
+msgstr "Cualquiera en la red $Projectname"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:109
+#, php-format
+msgid "Any account on %s"
+msgstr "Cualquier cuenta en %s"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:110
+msgid "Any of my connections"
+msgstr "Cualquiera de mis conexiones"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:111
+msgid "Only connections I specifically allow"
+msgstr "Sólo las conexiones que yo permita de forma explícita"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:112
+msgid "Anybody authenticated (could include visitors from other networks)"
+msgstr "Cualquiera que esté autenticado (podría incluir a los visitantes de otras redes)"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:113
+msgid "Any connections including those who haven't yet been approved"
+msgstr "Cualquier conexión incluyendo aquellas que aún no han sido aprobadas"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:152
+msgid ""
+"This is your default setting for the audience of your normal stream, and "
+"posts."
+msgstr "Esta es la configuración predeterminada para su flujo (stream) habitual de publicaciones."
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:153
+msgid ""
+"This is your default setting for who can view your default channel profile"
+msgstr "Esta es su configuración por defecto para establecer quién puede ver su perfil del canal predeterminado"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:154
+msgid "This is your default setting for who can view your connections"
+msgstr "Este es su ajuste predeterminado para establecer quién puede ver sus conexiones"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:155
+msgid ""
+"This is your default setting for who can view your file storage and photos"
+msgstr "Este es su ajuste predeterminado para establecer quién puede ver su repositorio de ficheros y sus fotos"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:156
+msgid "This is your default setting for the audience of your webpages"
+msgstr "Este es el ajuste predeterminado para establecer la audiencia de sus páginas web"
+
#: ../../Zotlabs/Lib/ThreadItem.php:95 ../../include/conversation.php:667
msgid "Private Message"
msgstr "Mensaje Privado"
@@ -6933,516 +6957,920 @@ msgstr "Firma de mensaje incorrecta"
msgid "Add Tag"
msgstr "Añadir etiqueta"
-#: ../../Zotlabs/Lib/ThreadItem.php:261 ../../include/taxonomy.php:316
+#: ../../Zotlabs/Lib/ThreadItem.php:262 ../../include/taxonomy.php:316
msgid "like"
msgstr "me gusta"
-#: ../../Zotlabs/Lib/ThreadItem.php:262 ../../include/taxonomy.php:317
+#: ../../Zotlabs/Lib/ThreadItem.php:263 ../../include/taxonomy.php:317
msgid "dislike"
msgstr "no me gusta"
-#: ../../Zotlabs/Lib/ThreadItem.php:266
+#: ../../Zotlabs/Lib/ThreadItem.php:267
msgid "Share This"
msgstr "Compartir esto"
-#: ../../Zotlabs/Lib/ThreadItem.php:266
+#: ../../Zotlabs/Lib/ThreadItem.php:267
msgid "share"
msgstr "compartir"
-#: ../../Zotlabs/Lib/ThreadItem.php:275
+#: ../../Zotlabs/Lib/ThreadItem.php:276
msgid "Delivery Report"
msgstr "Informe de transmisión"
-#: ../../Zotlabs/Lib/ThreadItem.php:293
+#: ../../Zotlabs/Lib/ThreadItem.php:294
#, php-format
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "%d comentario"
msgstr[1] "%d comentarios"
-#: ../../Zotlabs/Lib/ThreadItem.php:322 ../../Zotlabs/Lib/ThreadItem.php:323
+#: ../../Zotlabs/Lib/ThreadItem.php:323 ../../Zotlabs/Lib/ThreadItem.php:324
#, php-format
msgid "View %s's profile - %s"
msgstr "Ver el perfil de %s - %s"
-#: ../../Zotlabs/Lib/ThreadItem.php:326
+#: ../../Zotlabs/Lib/ThreadItem.php:327
msgid "to"
msgstr "a"
-#: ../../Zotlabs/Lib/ThreadItem.php:327
+#: ../../Zotlabs/Lib/ThreadItem.php:328
msgid "via"
msgstr "mediante"
-#: ../../Zotlabs/Lib/ThreadItem.php:328
+#: ../../Zotlabs/Lib/ThreadItem.php:329
msgid "Wall-to-Wall"
msgstr "De página del perfil a página del perfil (de \"muro\" a \"muro\")"
-#: ../../Zotlabs/Lib/ThreadItem.php:329
+#: ../../Zotlabs/Lib/ThreadItem.php:330
msgid "via Wall-To-Wall:"
msgstr "Mediante el procedimiento página del perfil a página del perfil (de \"muro\" a \"muro\")"
-#: ../../Zotlabs/Lib/ThreadItem.php:341 ../../include/conversation.php:722
+#: ../../Zotlabs/Lib/ThreadItem.php:342 ../../include/conversation.php:722
#, php-format
msgid "from %s"
msgstr "desde %s"
-#: ../../Zotlabs/Lib/ThreadItem.php:344 ../../include/conversation.php:725
+#: ../../Zotlabs/Lib/ThreadItem.php:345 ../../include/conversation.php:725
#, php-format
msgid "last edited: %s"
msgstr "último cambio: %s"
-#: ../../Zotlabs/Lib/ThreadItem.php:345 ../../include/conversation.php:726
+#: ../../Zotlabs/Lib/ThreadItem.php:346 ../../include/conversation.php:726
#, php-format
msgid "Expires: %s"
msgstr "Caduca: %s"
-#: ../../Zotlabs/Lib/ThreadItem.php:370
+#: ../../Zotlabs/Lib/ThreadItem.php:371
msgid "Save Bookmarks"
msgstr "Guardar en Marcadores"
-#: ../../Zotlabs/Lib/ThreadItem.php:371
+#: ../../Zotlabs/Lib/ThreadItem.php:372
msgid "Add to Calendar"
msgstr "Añadir al calendario"
-#: ../../Zotlabs/Lib/ThreadItem.php:380
+#: ../../Zotlabs/Lib/ThreadItem.php:381
msgid "Mark all seen"
msgstr "Marcar todo como visto"
-#: ../../Zotlabs/Lib/ThreadItem.php:421 ../../include/js_strings.php:7
+#: ../../Zotlabs/Lib/ThreadItem.php:422 ../../include/js_strings.php:7
#, php-format
msgid "%s show all"
msgstr "%s mostrar todo"
-#: ../../Zotlabs/Lib/ThreadItem.php:711 ../../include/conversation.php:1226
+#: ../../Zotlabs/Lib/ThreadItem.php:712 ../../include/conversation.php:1234
msgid "Bold"
msgstr "Negrita"
-#: ../../Zotlabs/Lib/ThreadItem.php:712 ../../include/conversation.php:1227
+#: ../../Zotlabs/Lib/ThreadItem.php:713 ../../include/conversation.php:1235
msgid "Italic"
msgstr "Itálico "
-#: ../../Zotlabs/Lib/ThreadItem.php:713 ../../include/conversation.php:1228
+#: ../../Zotlabs/Lib/ThreadItem.php:714 ../../include/conversation.php:1236
msgid "Underline"
msgstr "Subrayar"
-#: ../../Zotlabs/Lib/ThreadItem.php:714 ../../include/conversation.php:1229
+#: ../../Zotlabs/Lib/ThreadItem.php:715 ../../include/conversation.php:1237
msgid "Quote"
msgstr "Citar"
-#: ../../Zotlabs/Lib/ThreadItem.php:715 ../../include/conversation.php:1230
+#: ../../Zotlabs/Lib/ThreadItem.php:716 ../../include/conversation.php:1238
msgid "Code"
msgstr "Código"
-#: ../../Zotlabs/Lib/ThreadItem.php:716
+#: ../../Zotlabs/Lib/ThreadItem.php:717
msgid "Image"
msgstr "Imagen"
-#: ../../Zotlabs/Lib/ThreadItem.php:717
+#: ../../Zotlabs/Lib/ThreadItem.php:718
msgid "Insert Link"
msgstr "Insertar enlace"
-#: ../../Zotlabs/Lib/ThreadItem.php:718
+#: ../../Zotlabs/Lib/ThreadItem.php:719
msgid "Video"
msgstr "Vídeo"
-#: ../../Zotlabs/Lib/PermissionDescription.php:31
-#: ../../include/acl_selectors.php:230
-msgid "Visible to your default audience"
-msgstr "Visible para su público predeterminado."
+#: ../../include/Import/import_diaspora.php:16
+msgid "No username found in import file."
+msgstr "No se ha encontrado el nombre de usuario en el fichero importado."
-#: ../../Zotlabs/Lib/PermissionDescription.php:106
-#: ../../include/acl_selectors.php:266
-msgid "Only me"
-msgstr "Sólo yo"
+#: ../../include/Import/import_diaspora.php:41 ../../include/import.php:51
+msgid "Unable to create a unique channel address. Import failed."
+msgstr "No se ha podido crear una dirección de canal única. Ha fallado la importación."
-#: ../../Zotlabs/Lib/PermissionDescription.php:107
-msgid "Public"
-msgstr "Público"
+#: ../../include/dba/dba_driver.php:173
+#, php-format
+msgid "Cannot locate DNS info for database server '%s'"
+msgstr "No se ha podido localizar información de DNS para el servidor de base de datos “%sâ€"
-#: ../../Zotlabs/Lib/PermissionDescription.php:108
-msgid "Anybody in the $Projectname network"
-msgstr "Cualquiera en la red $Projectname"
+#: ../../include/network.php:704
+msgid "view full size"
+msgstr "Ver en el tamaño original"
-#: ../../Zotlabs/Lib/PermissionDescription.php:109
-#, php-format
-msgid "Any account on %s"
-msgstr "Cualquier cuenta en %s"
+#: ../../include/network.php:1935 ../../include/account.php:317
+#: ../../include/account.php:344 ../../include/account.php:404
+msgid "Administrator"
+msgstr "Administrador"
-#: ../../Zotlabs/Lib/PermissionDescription.php:110
-msgid "Any of my connections"
-msgstr "Cualquiera de mis conexiones"
+#: ../../include/network.php:1949
+msgid "No Subject"
+msgstr "Sin asunto"
-#: ../../Zotlabs/Lib/PermissionDescription.php:111
-msgid "Only connections I specifically allow"
-msgstr "Sólo las conexiones que yo permita de forma explícita"
+#: ../../include/network.php:2203 ../../include/network.php:2204
+msgid "Friendica"
+msgstr "Friendica"
-#: ../../Zotlabs/Lib/PermissionDescription.php:112
-msgid "Anybody authenticated (could include visitors from other networks)"
-msgstr "Cualquiera que esté autenticado (podría incluir a los visitantes de otras redes)"
+#: ../../include/network.php:2205
+msgid "OStatus"
+msgstr "OStatus"
-#: ../../Zotlabs/Lib/PermissionDescription.php:113
-msgid "Any connections including those who haven't yet been approved"
-msgstr "Cualquier conexión incluyendo aquellas que aún no han sido aprobadas"
+#: ../../include/network.php:2206
+msgid "GNU-Social"
+msgstr "GNU Social"
-#: ../../Zotlabs/Lib/PermissionDescription.php:152
-msgid ""
-"This is your default setting for the audience of your normal stream, and "
-"posts."
-msgstr "Esta es la configuración predeterminada para su flujo (stream) habitual de publicaciones."
+#: ../../include/network.php:2207
+msgid "RSS/Atom"
+msgstr "RSS/Atom"
-#: ../../Zotlabs/Lib/PermissionDescription.php:153
-msgid ""
-"This is your default setting for who can view your default channel profile"
-msgstr "Esta es su configuración por defecto para establecer quién puede ver su perfil del canal predeterminado"
+#: ../../include/network.php:2209
+msgid "Diaspora"
+msgstr "Diaspora"
-#: ../../Zotlabs/Lib/PermissionDescription.php:154
-msgid "This is your default setting for who can view your connections"
-msgstr "Este es su ajuste predeterminado para establecer quién puede ver sus conexiones"
+#: ../../include/network.php:2210
+msgid "Facebook"
+msgstr "Facebook"
-#: ../../Zotlabs/Lib/PermissionDescription.php:155
+#: ../../include/network.php:2211
+msgid "Zot"
+msgstr "Zot"
+
+#: ../../include/network.php:2212
+msgid "LinkedIn"
+msgstr "LinkedIn"
+
+#: ../../include/network.php:2213
+msgid "XMPP/IM"
+msgstr "XMPP/IM"
+
+#: ../../include/network.php:2214
+msgid "MySpace"
+msgstr "MySpace"
+
+#: ../../include/oembed.php:340
+msgid "Embedded content"
+msgstr "Contenido incorporado"
+
+#: ../../include/oembed.php:349
+msgid "Embedding disabled"
+msgstr "Incrustación deshabilitada"
+
+#: ../../include/permissions.php:29
+msgid "Can view my normal stream and posts"
+msgstr "Pueden verse mi actividad y publicaciones normales"
+
+#: ../../include/permissions.php:33
+msgid "Can view my webpages"
+msgstr "Pueden verse mis páginas web"
+
+#: ../../include/permissions.php:37
+msgid "Can post on my channel page (\"wall\")"
+msgstr "Pueden crearse entradas en mi página de inicio del canal (“muroâ€)"
+
+#: ../../include/permissions.php:40
+msgid "Can like/dislike stuff"
+msgstr "Puede marcarse contenido como me gusta/no me gusta"
+
+#: ../../include/permissions.php:40
+msgid "Profiles and things other than posts/comments"
+msgstr "Perfiles y otras cosas aparte de publicaciones/comentarios"
+
+#: ../../include/permissions.php:42
+msgid "Can forward to all my channel contacts via post @mentions"
+msgstr "Puede enviarse una entrada a todos mis contactos del canal mediante una @mención"
+
+#: ../../include/permissions.php:42
+msgid "Advanced - useful for creating group forum channels"
+msgstr "Avanzado - útil para crear canales de foros de discusión o grupos"
+
+#: ../../include/permissions.php:43
+msgid "Can chat with me (when available)"
+msgstr "Se puede charlar conmigo (cuando esté disponible)"
+
+#: ../../include/permissions.php:44
+msgid "Can write to my file storage and photos"
+msgstr "Puede escribirse en mi repositorio de ficheros y fotos"
+
+#: ../../include/permissions.php:45
+msgid "Can edit my webpages"
+msgstr "Pueden editarse mis páginas web"
+
+#: ../../include/permissions.php:47
+msgid "Somewhat advanced - very useful in open communities"
+msgstr "Algo avanzado - muy útil en comunidades abiertas"
+
+#: ../../include/permissions.php:49
+msgid "Can administer my channel resources"
+msgstr "Pueden administrarse mis recursos del canal"
+
+#: ../../include/permissions.php:49
msgid ""
-"This is your default setting for who can view your file storage and photos"
-msgstr "Este es su ajuste predeterminado para establecer quién puede ver su repositorio de ficheros y sus fotos"
+"Extremely advanced. Leave this alone unless you know what you are doing"
+msgstr "Muy avanzado. Déjelo a no ser que sepa bien lo que está haciendo."
-#: ../../Zotlabs/Lib/PermissionDescription.php:156
-msgid "This is your default setting for the audience of your webpages"
-msgstr "Este es el ajuste predeterminado para establecer la audiencia de sus páginas web"
+#: ../../include/items.php:899 ../../include/items.php:944
+msgid "(Unknown)"
+msgstr "(Desconocido)"
-#: ../../include/Import/import_diaspora.php:16
-msgid "No username found in import file."
-msgstr "No se ha encontrado el nombre de usuario en el fichero importado."
+#: ../../include/items.php:1143
+msgid "Visible to anybody on the internet."
+msgstr "Visible para cualquiera en internet."
-#: ../../include/Import/import_diaspora.php:41 ../../include/import.php:51
-msgid "Unable to create a unique channel address. Import failed."
-msgstr "No se ha podido crear una dirección de canal única. Ha fallado la importación."
+#: ../../include/items.php:1145
+msgid "Visible to you only."
+msgstr "Visible sólo para usted."
-#: ../../include/dba/dba_driver.php:171
+#: ../../include/items.php:1147
+msgid "Visible to anybody in this network."
+msgstr "Visible para cualquiera en esta red."
+
+#: ../../include/items.php:1149
+msgid "Visible to anybody authenticated."
+msgstr "Visible para cualquiera que esté autenticado."
+
+#: ../../include/items.php:1151
#, php-format
-msgid "Cannot locate DNS info for database server '%s'"
-msgstr "No se ha podido localizar información de DNS para el servidor de base de datos “%sâ€"
+msgid "Visible to anybody on %s."
+msgstr "Visible para cualquiera en %s."
-#: ../../include/photos.php:114
+#: ../../include/items.php:1153
+msgid "Visible to all connections."
+msgstr "Visible para todas las conexiones."
+
+#: ../../include/items.php:1155
+msgid "Visible to approved connections."
+msgstr "Visible para las conexiones permitidas."
+
+#: ../../include/items.php:1157
+msgid "Visible to specific connections."
+msgstr "Visible para conexiones específicas."
+
+#: ../../include/items.php:3947
+msgid "Privacy group is empty."
+msgstr "El grupo de canales está vacío."
+
+#: ../../include/items.php:3954
#, php-format
-msgid "Image exceeds website size limit of %lu bytes"
-msgstr "La imagen excede el límite de %lu bytes del sitio"
+msgid "Privacy group: %s"
+msgstr "Grupo de canales: %s"
-#: ../../include/photos.php:121
-msgid "Image file is empty."
-msgstr "El fichero de imagen está vacío. "
+#: ../../include/items.php:3966
+msgid "Connection not found."
+msgstr "Conexión no encontrada"
-#: ../../include/photos.php:259
-msgid "Photo storage failed."
-msgstr "La foto no ha podido ser guardada."
+#: ../../include/items.php:4319
+msgid "profile photo"
+msgstr "foto del perfil"
-#: ../../include/photos.php:299
-msgid "a new photo"
-msgstr "una nueva foto"
+#: ../../include/text.php:404
+msgid "prev"
+msgstr "anterior"
-#: ../../include/photos.php:303
+#: ../../include/text.php:406
+msgid "first"
+msgstr "primera"
+
+#: ../../include/text.php:435
+msgid "last"
+msgstr "última"
+
+#: ../../include/text.php:438
+msgid "next"
+msgstr "próxima"
+
+#: ../../include/text.php:448
+msgid "older"
+msgstr "más antiguas"
+
+#: ../../include/text.php:450
+msgid "newer"
+msgstr "más recientes"
+
+#: ../../include/text.php:843
+msgid "No connections"
+msgstr "Sin conexiones"
+
+#: ../../include/text.php:868
#, php-format
-msgctxt "photo_upload"
-msgid "%1$s posted %2$s to %3$s"
-msgstr "%1$s ha publicado %2$s en %3$s"
+msgid "View all %s connections"
+msgstr "Ver todas las %s conexiones"
-#: ../../include/photos.php:506 ../../include/conversation.php:1650
-msgid "Photo Albums"
-msgstr "Ãlbumes de fotos"
+#: ../../include/text.php:1013 ../../include/text.php:1018
+msgid "poke"
+msgstr "un toque"
-#: ../../include/photos.php:510
-msgid "Upload New Photos"
-msgstr "Subir nuevas fotos"
+#: ../../include/text.php:1013 ../../include/text.php:1018
+#: ../../include/conversation.php:243
+msgid "poked"
+msgstr "ha dado un toque a"
-#: ../../include/nav.php:82 ../../include/nav.php:115 ../../boot.php:1703
-msgid "Logout"
-msgstr "Finalizar sesión"
+#: ../../include/text.php:1019
+msgid "ping"
+msgstr "un \"ping\""
-#: ../../include/nav.php:82 ../../include/nav.php:115
-msgid "End this session"
-msgstr "Finalizar esta sesión"
+#: ../../include/text.php:1019
+msgid "pinged"
+msgstr "ha enviado un \"ping\" a"
-#: ../../include/nav.php:85 ../../include/nav.php:146
-msgid "Home"
-msgstr "Inicio"
+#: ../../include/text.php:1020
+msgid "prod"
+msgstr "una incitación "
-#: ../../include/nav.php:85
-msgid "Your posts and conversations"
-msgstr "Sus publicaciones y conversaciones"
+#: ../../include/text.php:1020
+msgid "prodded"
+msgstr "ha incitado a "
-#: ../../include/nav.php:86
-msgid "Your profile page"
-msgstr "Su página del perfil"
+#: ../../include/text.php:1021
+msgid "slap"
+msgstr "una bofetada "
-#: ../../include/nav.php:88
-msgid "Manage/Edit profiles"
-msgstr "Administrar/editar perfiles"
+#: ../../include/text.php:1021
+msgid "slapped"
+msgstr "ha abofeteado a "
-#: ../../include/nav.php:90 ../../include/channel.php:980
-msgid "Edit Profile"
-msgstr "Editar el perfil"
+#: ../../include/text.php:1022
+msgid "finger"
+msgstr "un \"finger\" "
-#: ../../include/nav.php:90
-msgid "Edit your profile"
-msgstr "Editar su perfil"
+#: ../../include/text.php:1022
+msgid "fingered"
+msgstr "envió un \"finger\" a"
-#: ../../include/nav.php:92
-msgid "Your photos"
-msgstr "Sus fotos"
+#: ../../include/text.php:1023
+msgid "rebuff"
+msgstr "un reproche"
-#: ../../include/nav.php:93
-msgid "Your files"
-msgstr "Sus ficheros"
+#: ../../include/text.php:1023
+msgid "rebuffed"
+msgstr "ha hecho un reproche a "
-#: ../../include/nav.php:96
-msgid "Your chatrooms"
-msgstr "Sus salas de chat"
+#: ../../include/text.php:1035
+msgid "happy"
+msgstr "feliz "
-#: ../../include/nav.php:102 ../../include/conversation.php:1690
-msgid "Bookmarks"
-msgstr "Marcadores"
+#: ../../include/text.php:1036
+msgid "sad"
+msgstr "triste "
-#: ../../include/nav.php:102
-msgid "Your bookmarks"
-msgstr "Sus marcadores"
+#: ../../include/text.php:1037
+msgid "mellow"
+msgstr "tranquilo/a"
-#: ../../include/nav.php:106
-msgid "Your webpages"
-msgstr "Sus páginas web"
+#: ../../include/text.php:1038
+msgid "tired"
+msgstr "cansado/a "
-#: ../../include/nav.php:108
-msgid "Your wiki"
-msgstr "Su wiki"
+#: ../../include/text.php:1039
+msgid "perky"
+msgstr "vivaz"
-#: ../../include/nav.php:112
-msgid "Sign in"
-msgstr "Acceder"
+#: ../../include/text.php:1040
+msgid "angry"
+msgstr "enfadado/a"
+
+#: ../../include/text.php:1041
+msgid "stupefied"
+msgstr "asombrado/a"
+
+#: ../../include/text.php:1042
+msgid "puzzled"
+msgstr "perplejo/a"
+
+#: ../../include/text.php:1043
+msgid "interested"
+msgstr "interesado/a"
+
+#: ../../include/text.php:1044
+msgid "bitter"
+msgstr "amargado/a"
+
+#: ../../include/text.php:1045
+msgid "cheerful"
+msgstr "alegre"
+
+#: ../../include/text.php:1046
+msgid "alive"
+msgstr "animado/a"
+
+#: ../../include/text.php:1047
+msgid "annoyed"
+msgstr "molesto/a"
+
+#: ../../include/text.php:1048
+msgid "anxious"
+msgstr "ansioso/a"
+
+#: ../../include/text.php:1049
+msgid "cranky"
+msgstr "de mal humor"
+
+#: ../../include/text.php:1050
+msgid "disturbed"
+msgstr "perturbado/a"
+
+#: ../../include/text.php:1051
+msgid "frustrated"
+msgstr "frustrado/a"
+
+#: ../../include/text.php:1052
+msgid "depressed"
+msgstr "deprimido/a"
+
+#: ../../include/text.php:1053
+msgid "motivated"
+msgstr "motivado/a"
+
+#: ../../include/text.php:1054
+msgid "relaxed"
+msgstr "relajado/a"
+
+#: ../../include/text.php:1055
+msgid "surprised"
+msgstr "sorprendido/a"
+
+#: ../../include/text.php:1239 ../../include/js_strings.php:70
+msgid "Monday"
+msgstr "lunes"
+
+#: ../../include/text.php:1239 ../../include/js_strings.php:71
+msgid "Tuesday"
+msgstr "martes"
+
+#: ../../include/text.php:1239 ../../include/js_strings.php:72
+msgid "Wednesday"
+msgstr "miércoles"
+
+#: ../../include/text.php:1239 ../../include/js_strings.php:73
+msgid "Thursday"
+msgstr "jueves"
+
+#: ../../include/text.php:1239 ../../include/js_strings.php:74
+msgid "Friday"
+msgstr "viernes"
+
+#: ../../include/text.php:1239 ../../include/js_strings.php:75
+msgid "Saturday"
+msgstr "sábado"
-#: ../../include/nav.php:129
+#: ../../include/text.php:1239 ../../include/js_strings.php:69
+msgid "Sunday"
+msgstr "domingo"
+
+#: ../../include/text.php:1243 ../../include/js_strings.php:45
+msgid "January"
+msgstr "enero"
+
+#: ../../include/text.php:1243 ../../include/js_strings.php:46
+msgid "February"
+msgstr "febrero"
+
+#: ../../include/text.php:1243 ../../include/js_strings.php:47
+msgid "March"
+msgstr "marzo"
+
+#: ../../include/text.php:1243 ../../include/js_strings.php:48
+msgid "April"
+msgstr "abril"
+
+#: ../../include/text.php:1243
+msgid "May"
+msgstr "mayo"
+
+#: ../../include/text.php:1243 ../../include/js_strings.php:50
+msgid "June"
+msgstr "junio"
+
+#: ../../include/text.php:1243 ../../include/js_strings.php:51
+msgid "July"
+msgstr "julio"
+
+#: ../../include/text.php:1243 ../../include/js_strings.php:52
+msgid "August"
+msgstr "agosto"
+
+#: ../../include/text.php:1243 ../../include/js_strings.php:53
+msgid "September"
+msgstr "septiembre"
+
+#: ../../include/text.php:1243 ../../include/js_strings.php:54
+msgid "October"
+msgstr "octubre"
+
+#: ../../include/text.php:1243 ../../include/js_strings.php:55
+msgid "November"
+msgstr "noviembre"
+
+#: ../../include/text.php:1243 ../../include/js_strings.php:56
+msgid "December"
+msgstr "diciembre"
+
+#: ../../include/text.php:1320 ../../include/text.php:1324
+msgid "Unknown Attachment"
+msgstr "Adjunto no reconocido"
+
+#: ../../include/text.php:1326
+msgid "unknown"
+msgstr "desconocido"
+
+#: ../../include/text.php:1362
+msgid "remove category"
+msgstr "eliminar el tema"
+
+#: ../../include/text.php:1439
+msgid "remove from file"
+msgstr "eliminar del fichero"
+
+#: ../../include/text.php:1738 ../../include/text.php:1809
+msgid "default"
+msgstr "por defecto"
+
+#: ../../include/text.php:1746
+msgid "Page layout"
+msgstr "Plantilla de la página"
+
+#: ../../include/text.php:1746
+msgid "You can create your own with the layouts tool"
+msgstr "Puede crear su propia disposición gráfica con la herramienta de plantillas"
+
+#: ../../include/text.php:1788
+msgid "Page content type"
+msgstr "Tipo de contenido de la página"
+
+#: ../../include/text.php:1821
+msgid "Select an alternate language"
+msgstr "Seleccionar un idioma alternativo"
+
+#: ../../include/text.php:1958
+msgid "activity"
+msgstr "la actividad"
+
+#: ../../include/text.php:2259
+msgid "Design Tools"
+msgstr "Herramientas de diseño web"
+
+#: ../../include/text.php:2265
+msgid "Pages"
+msgstr "Páginas"
+
+#: ../../include/text.php:2287
+msgid "Import website..."
+msgstr "Importar un sitio web..."
+
+#: ../../include/text.php:2288
+msgid "Select folder to import"
+msgstr "Seleccionar la carpeta que se va a importar"
+
+#: ../../include/text.php:2289
+msgid "Import from a zipped folder:"
+msgstr "Importar desde una carpeta comprimida: "
+
+#: ../../include/text.php:2290
+msgid "Import from cloud files:"
+msgstr "Importar desde los ficheros en la nube: "
+
+#: ../../include/text.php:2291
+msgid "/cloud/channel/path/to/folder"
+msgstr "/cloud/canal/ruta/a la/carpeta"
+
+#: ../../include/text.php:2292
+msgid "Enter path to website files"
+msgstr "Ruta a los ficheros del sitio web"
+
+#: ../../include/text.php:2293
+msgid "Select folder"
+msgstr "Seleccionar la carpeta"
+
+#: ../../include/widgets.php:46 ../../include/widgets.php:429
+#: ../../include/taxonomy.php:188 ../../include/taxonomy.php:270
+#: ../../include/contact_widgets.php:91
+msgid "Categories"
+msgstr "Temas"
+
+#: ../../include/widgets.php:103
+msgid "System"
+msgstr "Sistema"
+
+#: ../../include/widgets.php:106
+msgid "New App"
+msgstr "Nueva aplicación (app)"
+
+#: ../../include/widgets.php:154
+msgid "Suggestions"
+msgstr "Sugerencias"
+
+#: ../../include/widgets.php:155
+msgid "See more..."
+msgstr "Ver más..."
+
+#: ../../include/widgets.php:175
#, php-format
-msgid "%s - click to logout"
-msgstr "%s - pulsar para finalizar sesión"
+msgid "You have %1$.0f of %2$.0f allowed connections."
+msgstr "Tiene %1$.0f de %2$.0f conexiones permitidas."
-#: ../../include/nav.php:132
-msgid "Remote authentication"
-msgstr "Acceder desde su servidor"
+#: ../../include/widgets.php:181
+msgid "Add New Connection"
+msgstr "Añadir nueva conexión"
-#: ../../include/nav.php:132
-msgid "Click to authenticate to your home hub"
-msgstr "Pulsar para identificarse en su servidor de inicio"
+#: ../../include/widgets.php:182
+msgid "Enter channel address"
+msgstr "Dirección del canal"
-#: ../../include/nav.php:146
-msgid "Home Page"
-msgstr "Página de inicio"
+#: ../../include/widgets.php:183
+msgid "Examples: bob@example.com, https://example.com/barbara"
+msgstr "Ejemplos: manuel@ejemplo.com, https://ejemplo.com/carmen"
-#: ../../include/nav.php:149
-msgid "Create an account"
-msgstr "Crear una cuenta"
+#: ../../include/widgets.php:199
+msgid "Notes"
+msgstr "Notas"
-#: ../../include/nav.php:161
-msgid "Help and documentation"
-msgstr "Ayuda y documentación"
+#: ../../include/widgets.php:273
+msgid "Remove term"
+msgstr "Eliminar término"
-#: ../../include/nav.php:165
-msgid "Applications, utilities, links, games"
-msgstr "Aplicaciones, utilidades, enlaces, juegos"
+#: ../../include/widgets.php:281 ../../include/features.php:85
+msgid "Saved Searches"
+msgstr "Búsquedas guardadas"
-#: ../../include/nav.php:167
-msgid "Search site @name, #tag, ?docs, content"
-msgstr "Buscar en el sitio por @nombre, #etiqueta, ?ayuda o contenido"
+#: ../../include/widgets.php:282 ../../include/group.php:316
+msgid "add"
+msgstr "añadir"
-#: ../../include/nav.php:169
-msgid "Channel Directory"
-msgstr "Directorio de canales"
+#: ../../include/widgets.php:310 ../../include/features.php:99
+#: ../../include/contact_widgets.php:53
+msgid "Saved Folders"
+msgstr "Carpetas guardadas"
-#: ../../include/nav.php:181
-msgid "Your grid"
-msgstr "Mi red"
+#: ../../include/widgets.php:313 ../../include/widgets.php:432
+#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:94
+msgid "Everything"
+msgstr "Todo"
-#: ../../include/nav.php:182
-msgid "Mark all grid notifications seen"
-msgstr "Marcar todas las notificaciones de la red como vistas"
+#: ../../include/widgets.php:354
+msgid "Archives"
+msgstr "Hemeroteca"
-#: ../../include/nav.php:184
-msgid "Channel home"
-msgstr "Mi canal"
+#: ../../include/widgets.php:516
+msgid "Refresh"
+msgstr "Recargar"
-#: ../../include/nav.php:185
-msgid "Mark all channel notifications seen"
-msgstr "Marcar todas las notificaciones del canal como leídas"
+#: ../../include/widgets.php:556
+msgid "Account settings"
+msgstr "Configuración de la cuenta"
-#: ../../include/nav.php:191
-msgid "Notices"
-msgstr "Avisos"
+#: ../../include/widgets.php:562
+msgid "Channel settings"
+msgstr "Configuración del canal"
-#: ../../include/nav.php:191
-msgid "Notifications"
-msgstr "Notificaciones"
+#: ../../include/widgets.php:571
+msgid "Additional features"
+msgstr "Funcionalidades"
-#: ../../include/nav.php:192
-msgid "See all notifications"
-msgstr "Ver todas las notificaciones"
+#: ../../include/widgets.php:578
+msgid "Feature/Addon settings"
+msgstr "Complementos"
-#: ../../include/nav.php:195
-msgid "Private mail"
-msgstr "Correo privado"
+#: ../../include/widgets.php:584
+msgid "Display settings"
+msgstr "Ajustes de visualización"
-#: ../../include/nav.php:196
-msgid "See all private messages"
-msgstr "Ver todas los mensajes privados"
+#: ../../include/widgets.php:591
+msgid "Manage locations"
+msgstr "Gestión de ubicaciones (clones) del canal"
-#: ../../include/nav.php:197
-msgid "Mark all private messages seen"
-msgstr "Marcar todos los mensajes privados como leídos"
+#: ../../include/widgets.php:600
+msgid "Export channel"
+msgstr "Exportar canal"
+
+#: ../../include/widgets.php:607
+msgid "Connected apps"
+msgstr "Aplicaciones (apps) conectadas"
+
+#: ../../include/widgets.php:631
+msgid "Premium Channel Settings"
+msgstr "Configuración del canal premium"
+
+#: ../../include/widgets.php:660
+msgid "Private Mail Menu"
+msgstr "Menú de correo privado"
-#: ../../include/nav.php:198 ../../include/widgets.php:667
+#: ../../include/widgets.php:662
+msgid "Combined View"
+msgstr "Vista combinada"
+
+#: ../../include/widgets.php:667 ../../include/nav.php:200
msgid "Inbox"
msgstr "Bandeja de entrada"
-#: ../../include/nav.php:199 ../../include/widgets.php:672
+#: ../../include/widgets.php:672 ../../include/nav.php:201
msgid "Outbox"
msgstr "Bandeja de salida"
-#: ../../include/nav.php:200 ../../include/widgets.php:677
+#: ../../include/widgets.php:677 ../../include/nav.php:202
msgid "New Message"
msgstr "Nuevo mensaje"
-#: ../../include/nav.php:203
-msgid "Event Calendar"
-msgstr "Calendario de eventos"
+#: ../../include/widgets.php:694 ../../include/widgets.php:706
+msgid "Conversations"
+msgstr "Conversaciones"
-#: ../../include/nav.php:204
-msgid "See all events"
-msgstr "Ver todos los eventos"
+#: ../../include/widgets.php:698
+msgid "Received Messages"
+msgstr "Mensajes recibidos"
-#: ../../include/nav.php:205
-msgid "Mark all events seen"
-msgstr "Marcar todos los eventos como leidos"
+#: ../../include/widgets.php:702
+msgid "Sent Messages"
+msgstr "Enviar mensajes"
-#: ../../include/nav.php:208
-msgid "Manage Your Channels"
-msgstr "Gestionar sus canales"
+#: ../../include/widgets.php:716
+msgid "No messages."
+msgstr "Sin mensajes."
-#: ../../include/nav.php:210
-msgid "Account/Channel Settings"
-msgstr "Ajustes de cuenta/canales"
+#: ../../include/widgets.php:734
+msgid "Delete conversation"
+msgstr "Eliminar conversación"
-#: ../../include/nav.php:218 ../../include/widgets.php:1510
-msgid "Admin"
-msgstr "Administrador"
+#: ../../include/widgets.php:760
+msgid "Events Tools"
+msgstr "Gestión de eventos"
-#: ../../include/nav.php:218
-msgid "Site Setup and Configuration"
-msgstr "Ajustes y configuración del sitio"
+#: ../../include/widgets.php:761
+msgid "Export Calendar"
+msgstr "Exportar el calendario"
-#: ../../include/nav.php:249 ../../include/conversation.php:854
-msgid "Loading..."
-msgstr "Cargando..."
+#: ../../include/widgets.php:762
+msgid "Import Calendar"
+msgstr "Importar un calendario"
-#: ../../include/nav.php:254
-msgid "@name, #tag, ?doc, content"
-msgstr "@nombre, #etiqueta, ?ayuda, contenido"
+#: ../../include/widgets.php:850 ../../include/conversation.php:1695
+#: ../../include/conversation.php:1698
+msgid "Chatrooms"
+msgstr "Salas de chat"
-#: ../../include/nav.php:255
-msgid "Please wait..."
-msgstr "Espere por favor…"
+#: ../../include/widgets.php:854
+msgid "Overview"
+msgstr "Resumen"
-#: ../../include/network.php:704
-msgid "view full size"
-msgstr "Ver en el tamaño original"
+#: ../../include/widgets.php:861
+msgid "Chat Members"
+msgstr "Miembros del chat"
-#: ../../include/network.php:1930 ../../include/account.php:317
-#: ../../include/account.php:344 ../../include/account.php:404
-msgid "Administrator"
-msgstr "Administrador"
+#: ../../include/widgets.php:883
+msgid "Wiki List"
+msgstr "Lista de wikis"
-#: ../../include/network.php:1944
-msgid "No Subject"
-msgstr "Sin asunto"
+#: ../../include/widgets.php:921
+msgid "Wiki Pages"
+msgstr "Páginas del wiki"
-#: ../../include/network.php:2198 ../../include/network.php:2199
-msgid "Friendica"
-msgstr "Friendica"
+#: ../../include/widgets.php:956
+msgid "Bookmarked Chatrooms"
+msgstr "Salas de chat preferidas"
-#: ../../include/network.php:2200
-msgid "OStatus"
-msgstr "OStatus"
+#: ../../include/widgets.php:979
+msgid "Suggested Chatrooms"
+msgstr "Salas de chat sugeridas"
-#: ../../include/network.php:2201
-msgid "GNU-Social"
-msgstr "GNU Social"
+#: ../../include/widgets.php:1125 ../../include/widgets.php:1237
+msgid "photo/image"
+msgstr "foto/imagen"
-#: ../../include/network.php:2202
-msgid "RSS/Atom"
-msgstr "RSS/Atom"
+#: ../../include/widgets.php:1180
+msgid "Click to show more"
+msgstr "Hacer clic para ver más"
-#: ../../include/network.php:2204
-msgid "Diaspora"
-msgstr "Diaspora"
+#: ../../include/widgets.php:1331
+msgid "Rating Tools"
+msgstr "Valoraciones"
-#: ../../include/network.php:2205
-msgid "Facebook"
-msgstr "Facebook"
+#: ../../include/widgets.php:1335 ../../include/widgets.php:1337
+msgid "Rate Me"
+msgstr "Valorar este canal"
-#: ../../include/network.php:2206
-msgid "Zot"
-msgstr "Zot"
+#: ../../include/widgets.php:1340
+msgid "View Ratings"
+msgstr "Mostrar las valoraciones"
-#: ../../include/network.php:2207
-msgid "LinkedIn"
-msgstr "LinkedIn"
+#: ../../include/widgets.php:1424
+msgid "Forums"
+msgstr "Foros"
-#: ../../include/network.php:2208
-msgid "XMPP/IM"
-msgstr "XMPP/IM"
+#: ../../include/widgets.php:1453
+msgid "Tasks"
+msgstr "Tareas"
-#: ../../include/network.php:2209
-msgid "MySpace"
-msgstr "MySpace"
+#: ../../include/widgets.php:1462
+msgid "Documentation"
+msgstr "Documentación"
-#: ../../include/page_widgets.php:7
-msgid "New Page"
-msgstr "Nueva página"
+#: ../../include/widgets.php:1464
+msgid "Project/Site Information"
+msgstr "Información sobre el proyecto o sitio"
-#: ../../include/page_widgets.php:46
-msgid "Title"
-msgstr "Título"
+#: ../../include/widgets.php:1465
+msgid "For Members"
+msgstr "Para los miembros"
-#: ../../include/taxonomy.php:188 ../../include/taxonomy.php:270
-#: ../../include/widgets.php:46 ../../include/widgets.php:429
-#: ../../include/contact_widgets.php:91
-msgid "Categories"
-msgstr "Categorías"
+#: ../../include/widgets.php:1466
+msgid "For Administrators"
+msgstr "Para los administradores"
-#: ../../include/taxonomy.php:228 ../../include/taxonomy.php:249
-msgid "Tags"
-msgstr "Etiquetas"
+#: ../../include/widgets.php:1467
+msgid "For Developers"
+msgstr "Para los desarrolladores"
-#: ../../include/taxonomy.php:293
-msgid "Keywords"
-msgstr "Palabras clave"
+#: ../../include/widgets.php:1491 ../../include/widgets.php:1529
+msgid "Member registrations waiting for confirmation"
+msgstr "Inscripciones de nuevos miembros pendientes de aprobación"
-#: ../../include/taxonomy.php:314
-msgid "have"
-msgstr "tener"
+#: ../../include/widgets.php:1497
+msgid "Inspect queue"
+msgstr "Examinar la cola"
-#: ../../include/taxonomy.php:314
-msgid "has"
-msgstr "tiene"
+#: ../../include/widgets.php:1499
+msgid "DB updates"
+msgstr "Actualizaciones de la base de datos"
-#: ../../include/taxonomy.php:315
-msgid "want"
-msgstr "quiero"
+#: ../../include/widgets.php:1524 ../../include/nav.php:220
+msgid "Admin"
+msgstr "Administrador"
-#: ../../include/taxonomy.php:315
-msgid "wants"
-msgstr "quiere"
+#: ../../include/widgets.php:1525
+msgid "Plugin Features"
+msgstr "Extensiones"
-#: ../../include/taxonomy.php:316
-msgid "likes"
-msgstr "gusta de"
+#: ../../include/connections.php:95
+msgid "New window"
+msgstr "Nueva ventana"
-#: ../../include/taxonomy.php:317
-msgid "dislikes"
-msgstr "no gusta de"
+#: ../../include/connections.php:96
+msgid "Open the selected location in a different window or browser tab"
+msgstr "Abrir la dirección seleccionada en una ventana o pestaña aparte"
+
+#: ../../include/connections.php:214
+#, php-format
+msgid "User '%s' deleted"
+msgstr "El usuario '%s' ha sido eliminado"
+
+#: ../../include/acl_selectors.php:169
+msgid "Who can see this?"
+msgstr "¿Quién puede ver esto?"
+
+#: ../../include/acl_selectors.php:170
+msgid "Custom selection"
+msgstr "Selección personalizada"
+
+#: ../../include/acl_selectors.php:171
+msgid ""
+"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit"
+" the scope of \"Show\"."
+msgstr "Seleccione \"Mostrar\" para permitir la visualización. La opción \"No mostrar\" le permite anular y limitar el alcance de \"Mostrar\"."
+
+#: ../../include/acl_selectors.php:172
+msgid "Show"
+msgstr "Mostrar"
+
+#: ../../include/acl_selectors.php:173
+msgid "Don't show"
+msgstr "No mostrar"
+
+#: ../../include/acl_selectors.php:207
+#, php-format
+msgid ""
+"Post permissions %s cannot be changed %s after a post is shared.</br />These"
+" permissions set who is allowed to view the post."
+msgstr "Los permisos de la entrada %s no se pueden cambiar %s una vez que se ha compartido.</br /> Estos permisos establecen quién está autorizado para ver el mensaje."
+
+#: ../../include/api.php:1330
+msgid "Public Timeline"
+msgstr "Cronología pública"
#: ../../include/channel.php:33
msgid "Unable to obtain identity information from database"
@@ -7481,408 +7909,211 @@ msgstr "No ha sido posible recuperar la identidad creada"
msgid "Default Profile"
msgstr "Perfil principal"
-#: ../../include/channel.php:830
+#: ../../include/channel.php:813
msgid "Requested channel is not available."
msgstr "El canal solicitado no está disponible."
-#: ../../include/channel.php:977
+#: ../../include/channel.php:960
msgid "Create New Profile"
msgstr "Crear un nuevo perfil"
-#: ../../include/channel.php:997
+#: ../../include/channel.php:963 ../../include/nav.php:92
+msgid "Edit Profile"
+msgstr "Editar el perfil"
+
+#: ../../include/channel.php:980
msgid "Visible to everybody"
msgstr "Visible para todos"
-#: ../../include/channel.php:1070 ../../include/channel.php:1182
+#: ../../include/channel.php:1053 ../../include/channel.php:1166
msgid "Gender:"
msgstr "Género:"
-#: ../../include/channel.php:1071 ../../include/channel.php:1226
+#: ../../include/channel.php:1054 ../../include/channel.php:1210
msgid "Status:"
msgstr "Estado:"
-#: ../../include/channel.php:1072 ../../include/channel.php:1237
+#: ../../include/channel.php:1055 ../../include/channel.php:1221
msgid "Homepage:"
msgstr "Página personal:"
-#: ../../include/channel.php:1073
+#: ../../include/channel.php:1056
msgid "Online Now"
msgstr "Ahora en línea"
-#: ../../include/channel.php:1187
+#: ../../include/channel.php:1171
msgid "Like this channel"
msgstr "Me gusta este canal"
-#: ../../include/channel.php:1211
+#: ../../include/channel.php:1195
msgid "j F, Y"
msgstr "j F Y"
-#: ../../include/channel.php:1212
+#: ../../include/channel.php:1196
msgid "j F"
msgstr "j F"
-#: ../../include/channel.php:1219
+#: ../../include/channel.php:1203
msgid "Birthday:"
msgstr "Cumpleaños:"
-#: ../../include/channel.php:1232
+#: ../../include/channel.php:1216
#, php-format
msgid "for %1$d %2$s"
msgstr "por %1$d %2$s"
-#: ../../include/channel.php:1235
+#: ../../include/channel.php:1219
msgid "Sexual Preference:"
msgstr "Orientación sexual:"
-#: ../../include/channel.php:1241
+#: ../../include/channel.php:1225
msgid "Tags:"
msgstr "Etiquetas:"
-#: ../../include/channel.php:1243
+#: ../../include/channel.php:1227
msgid "Political Views:"
msgstr "Posición política:"
-#: ../../include/channel.php:1245
+#: ../../include/channel.php:1229
msgid "Religion:"
msgstr "Religión:"
-#: ../../include/channel.php:1249
+#: ../../include/channel.php:1233
msgid "Hobbies/Interests:"
msgstr "Aficciones o intereses:"
-#: ../../include/channel.php:1251
+#: ../../include/channel.php:1235
msgid "Likes:"
msgstr "Me gusta:"
-#: ../../include/channel.php:1253
+#: ../../include/channel.php:1237
msgid "Dislikes:"
msgstr "No me gusta:"
-#: ../../include/channel.php:1255
+#: ../../include/channel.php:1239
msgid "Contact information and Social Networks:"
msgstr "Información de contacto y redes sociales:"
-#: ../../include/channel.php:1257
+#: ../../include/channel.php:1241
msgid "My other channels:"
msgstr "Mis otros canales:"
-#: ../../include/channel.php:1259
+#: ../../include/channel.php:1243
msgid "Musical interests:"
msgstr "Preferencias musicales:"
-#: ../../include/channel.php:1261
+#: ../../include/channel.php:1245
msgid "Books, literature:"
msgstr "Libros, literatura:"
-#: ../../include/channel.php:1263
+#: ../../include/channel.php:1247
msgid "Television:"
msgstr "Televisión:"
-#: ../../include/channel.php:1265
+#: ../../include/channel.php:1249
msgid "Film/dance/culture/entertainment:"
msgstr "Cine, danza, cultura, entretenimiento:"
-#: ../../include/channel.php:1267
+#: ../../include/channel.php:1251
msgid "Love/Romance:"
msgstr "Vida sentimental o amorosa:"
-#: ../../include/channel.php:1269
+#: ../../include/channel.php:1253
msgid "Work/employment:"
msgstr "Trabajo:"
-#: ../../include/channel.php:1271
+#: ../../include/channel.php:1255
msgid "School/education:"
msgstr "Estudios:"
-#: ../../include/channel.php:1292
+#: ../../include/channel.php:1276
msgid "Like this thing"
msgstr "Me gusta esto"
-#: ../../include/connections.php:95
-msgid "New window"
-msgstr "Nueva ventana"
-
-#: ../../include/connections.php:96
-msgid "Open the selected location in a different window or browser tab"
-msgstr "Abrir la dirección seleccionada en una ventana o pestaña aparte"
+#: ../../include/datetime.php:135
+msgid "Birthday"
+msgstr "Cumpleaños"
-#: ../../include/connections.php:214
-#, php-format
-msgid "User '%s' deleted"
-msgstr "El usuario '%s' ha sido eliminado"
+#: ../../include/datetime.php:137
+msgid "Age: "
+msgstr "Edad:"
-#: ../../include/conversation.php:204
-#, php-format
-msgid "%1$s is now connected with %2$s"
-msgstr "%1$s ahora está conectado/a con %2$s"
+#: ../../include/datetime.php:139
+msgid "YYYY-MM-DD or MM-DD"
+msgstr "AAAA-MM-DD o MM-DD"
-#: ../../include/conversation.php:239
-#, php-format
-msgid "%1$s poked %2$s"
-msgstr "%1$s ha dado un toque a %2$s"
+#: ../../include/datetime.php:272 ../../boot.php:2577
+msgid "never"
+msgstr "nunca"
-#: ../../include/conversation.php:243 ../../include/text.php:1013
-#: ../../include/text.php:1018
-msgid "poked"
-msgstr "ha dado un toque a"
+#: ../../include/datetime.php:278
+msgid "less than a second ago"
+msgstr "hace un instante"
-#: ../../include/conversation.php:694
+#: ../../include/datetime.php:296
#, php-format
-msgid "View %s's profile @ %s"
-msgstr "Ver el perfil @ %s de %s"
-
-#: ../../include/conversation.php:713
-msgid "Categories:"
-msgstr "Categorías:"
-
-#: ../../include/conversation.php:714
-msgid "Filed under:"
-msgstr "Archivado bajo:"
-
-#: ../../include/conversation.php:741
-msgid "View in context"
-msgstr "Mostrar en su contexto"
-
-#: ../../include/conversation.php:850
-msgid "remove"
-msgstr "eliminar"
-
-#: ../../include/conversation.php:855
-msgid "Delete Selected Items"
-msgstr "Eliminar elementos seleccionados"
-
-#: ../../include/conversation.php:951
-msgid "View Source"
-msgstr "Ver el código fuente de la entrada"
-
-#: ../../include/conversation.php:952
-msgid "Follow Thread"
-msgstr "Seguir este hilo"
-
-#: ../../include/conversation.php:953
-msgid "Unfollow Thread"
-msgstr "Dejar de seguir este hilo"
-
-#: ../../include/conversation.php:958
-msgid "Activity/Posts"
-msgstr "Actividad y publicaciones"
-
-#: ../../include/conversation.php:960
-msgid "Edit Connection"
-msgstr "Editar conexión"
+msgctxt "e.g. 22 hours ago, 1 minute ago"
+msgid "%1$d %2$s ago"
+msgstr "hace %1$d %2$s"
-#: ../../include/conversation.php:961
-msgid "Message"
-msgstr "Mensaje"
+#: ../../include/datetime.php:307
+msgctxt "relative_date"
+msgid "year"
+msgid_plural "years"
+msgstr[0] "año"
+msgstr[1] "años"
-#: ../../include/conversation.php:1078
-#, php-format
-msgid "%s likes this."
-msgstr "A %s le gusta esto."
+#: ../../include/datetime.php:310
+msgctxt "relative_date"
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mes"
+msgstr[1] "meses"
-#: ../../include/conversation.php:1078
-#, php-format
-msgid "%s doesn't like this."
-msgstr "A %s no le gusta esto."
+#: ../../include/datetime.php:313
+msgctxt "relative_date"
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "semana"
+msgstr[1] "semanas"
-#: ../../include/conversation.php:1082
-#, php-format
-msgid "<span %1$s>%2$d people</span> like this."
-msgid_plural "<span %1$s>%2$d people</span> like this."
-msgstr[0] "a <span %1$s>%2$d personas</span> le gusta esto."
-msgstr[1] "A <span %1$s>%2$d personas</span> les gusta esto."
+#: ../../include/datetime.php:316
+msgctxt "relative_date"
+msgid "day"
+msgid_plural "days"
+msgstr[0] "día"
+msgstr[1] "días"
-#: ../../include/conversation.php:1084
-#, php-format
-msgid "<span %1$s>%2$d people</span> don't like this."
-msgid_plural "<span %1$s>%2$d people</span> don't like this."
-msgstr[0] "a <span %1$s>%2$d personas</span> no les gusta esto."
-msgstr[1] "A <span %1$s>%2$d personas</span> no les gusta esto."
+#: ../../include/datetime.php:319
+msgctxt "relative_date"
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "hora"
+msgstr[1] "horas"
-#: ../../include/conversation.php:1090
-msgid "and"
-msgstr "y"
+#: ../../include/datetime.php:322
+msgctxt "relative_date"
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minuto"
+msgstr[1] "minutos"
-#: ../../include/conversation.php:1093
-#, php-format
-msgid ", and %d other people"
-msgid_plural ", and %d other people"
-msgstr[0] ", y %d persona más"
-msgstr[1] ", y %d personas más"
+#: ../../include/datetime.php:325
+msgctxt "relative_date"
+msgid "second"
+msgid_plural "seconds"
+msgstr[0] "segundo"
+msgstr[1] "segundos"
-#: ../../include/conversation.php:1094
+#: ../../include/datetime.php:562
#, php-format
-msgid "%s like this."
-msgstr "A %s le gusta esto."
+msgid "%1$s's birthday"
+msgstr "Cumpleaños de %1$s"
-#: ../../include/conversation.php:1094
+#: ../../include/datetime.php:563
#, php-format
-msgid "%s don't like this."
-msgstr "A %s no le gusta esto."
-
-#: ../../include/conversation.php:1133
-msgid "Set your location"
-msgstr "Establecer su ubicación"
-
-#: ../../include/conversation.php:1134
-msgid "Clear browser location"
-msgstr "Eliminar los datos de localización geográfica del navegador"
-
-#: ../../include/conversation.php:1182
-msgid "Tag term:"
-msgstr "Término de la etiqueta:"
-
-#: ../../include/conversation.php:1183
-msgid "Where are you right now?"
-msgstr "¿Donde está ahora?"
-
-#: ../../include/conversation.php:1221
-msgid "Page link name"
-msgstr "Nombre del enlace de la página"
-
-#: ../../include/conversation.php:1224
-msgid "Post as"
-msgstr "Publicar como"
-
-#: ../../include/conversation.php:1238
-msgid "Toggle voting"
-msgstr "Cambiar votación"
-
-#: ../../include/conversation.php:1246
-msgid "Categories (optional, comma-separated list)"
-msgstr "Categorías (opcional, lista separada por comas)"
-
-#: ../../include/conversation.php:1269
-msgid "Set publish date"
-msgstr "Establecer la fecha de publicación"
-
-#: ../../include/conversation.php:1518
-msgid "Discover"
-msgstr "Descubrir"
-
-#: ../../include/conversation.php:1521
-msgid "Imported public streams"
-msgstr "Contenidos públicos importados"
-
-#: ../../include/conversation.php:1526
-msgid "Commented Order"
-msgstr "Comentarios recientes"
-
-#: ../../include/conversation.php:1529
-msgid "Sort by Comment Date"
-msgstr "Ordenar por fecha de comentario"
-
-#: ../../include/conversation.php:1533
-msgid "Posted Order"
-msgstr "Publicaciones recientes"
-
-#: ../../include/conversation.php:1536
-msgid "Sort by Post Date"
-msgstr "Ordenar por fecha de publicación"
-
-#: ../../include/conversation.php:1544
-msgid "Posts that mention or involve you"
-msgstr "Publicaciones que le mencionan o involucran"
-
-#: ../../include/conversation.php:1553
-msgid "Activity Stream - by date"
-msgstr "Contenido - por fecha"
-
-#: ../../include/conversation.php:1559
-msgid "Starred"
-msgstr "Preferidas"
-
-#: ../../include/conversation.php:1562
-msgid "Favourite Posts"
-msgstr "Publicaciones favoritas"
-
-#: ../../include/conversation.php:1569
-msgid "Spam"
-msgstr "Correo basura"
-
-#: ../../include/conversation.php:1572
-msgid "Posts flagged as SPAM"
-msgstr "Publicaciones marcadas como basura"
-
-#: ../../include/conversation.php:1629
-msgid "Status Messages and Posts"
-msgstr "Mensajes de estado y publicaciones"
-
-#: ../../include/conversation.php:1638
-msgid "About"
-msgstr "Mi perfil"
-
-#: ../../include/conversation.php:1641
-msgid "Profile Details"
-msgstr "Detalles del perfil"
-
-#: ../../include/conversation.php:1657
-msgid "Files and Storage"
-msgstr "Ficheros y repositorio"
-
-#: ../../include/conversation.php:1677 ../../include/conversation.php:1680
-#: ../../include/widgets.php:836
-msgid "Chatrooms"
-msgstr "Salas de chat"
-
-#: ../../include/conversation.php:1693
-msgid "Saved Bookmarks"
-msgstr "Marcadores guardados"
-
-#: ../../include/conversation.php:1703
-msgid "Manage Webpages"
-msgstr "Administrar páginas web"
-
-#: ../../include/conversation.php:1768
-msgctxt "noun"
-msgid "Attending"
-msgid_plural "Attending"
-msgstr[0] "Participaré"
-msgstr[1] "Participaré"
-
-#: ../../include/conversation.php:1771
-msgctxt "noun"
-msgid "Not Attending"
-msgid_plural "Not Attending"
-msgstr[0] "No participaré"
-msgstr[1] "No participaré"
-
-#: ../../include/conversation.php:1774
-msgctxt "noun"
-msgid "Undecided"
-msgid_plural "Undecided"
-msgstr[0] "Indeciso/a"
-msgstr[1] "Indecisos/as"
-
-#: ../../include/conversation.php:1777
-msgctxt "noun"
-msgid "Agree"
-msgid_plural "Agrees"
-msgstr[0] "De acuerdo"
-msgstr[1] "De acuerdo"
-
-#: ../../include/conversation.php:1780
-msgctxt "noun"
-msgid "Disagree"
-msgid_plural "Disagrees"
-msgstr[0] "En desacuerdo"
-msgstr[1] "En desacuerdo"
-
-#: ../../include/conversation.php:1783
-msgctxt "noun"
-msgid "Abstain"
-msgid_plural "Abstains"
-msgstr[0] "se abstiene"
-msgstr[1] "Se abstienen"
-
-#: ../../include/import.php:30
-msgid ""
-"Cannot create a duplicate channel identifier on this system. Import failed."
-msgstr "No se ha podido crear un canal con un identificador que ya existe en este sistema. La importación ha fallado."
-
-#: ../../include/import.php:97
-msgid "Channel clone failed. Import failed."
-msgstr "La clonación del canal no ha salido bien. La importación ha fallado."
+msgid "Happy Birthday %1$s"
+msgstr "Feliz cumpleaños %1$s"
#: ../../include/selectors.php:30
msgid "Frequently"
@@ -7908,6 +8139,14 @@ msgstr "Semanalmente"
msgid "Monthly"
msgstr "Mensualmente"
+#: ../../include/selectors.php:49 ../../include/selectors.php:66
+msgid "Male"
+msgstr "Hombre"
+
+#: ../../include/selectors.php:49 ../../include/selectors.php:66
+msgid "Female"
+msgstr "Mujer"
+
#: ../../include/selectors.php:49
msgid "Currently Male"
msgstr "Actualmente hombre"
@@ -8124,520 +8363,954 @@ msgstr "No me importa"
msgid "Ask me"
msgstr "Pregúnteme"
-#: ../../include/bookmarks.php:35
+#: ../../include/photos.php:114
#, php-format
-msgid "%1$s's bookmarks"
-msgstr "Marcadores de %1$s"
+msgid "Image exceeds website size limit of %lu bytes"
+msgstr "La imagen excede el límite de %lu bytes del sitio"
+
+#: ../../include/photos.php:121
+msgid "Image file is empty."
+msgstr "El fichero de imagen está vacío. "
+
+#: ../../include/photos.php:259
+msgid "Photo storage failed."
+msgstr "La foto no ha podido ser guardada."
+
+#: ../../include/photos.php:299
+msgid "a new photo"
+msgstr "una nueva foto"
+
+#: ../../include/photos.php:303
+#, php-format
+msgctxt "photo_upload"
+msgid "%1$s posted %2$s to %3$s"
+msgstr "%1$s ha publicado %2$s en %3$s"
+
+#: ../../include/photos.php:506 ../../include/conversation.php:1668
+msgid "Photo Albums"
+msgstr "Ãlbumes de fotos"
+
+#: ../../include/photos.php:510
+msgid "Upload New Photos"
+msgstr "Subir nuevas fotos"
#: ../../include/security.php:109
msgid "guest:"
msgstr "invitado: "
-#: ../../include/security.php:427
+#: ../../include/security.php:527
msgid ""
"The form security token was not correct. This probably happened because the "
"form has been opened for too long (>3 hours) before submitting it."
msgstr "El \"token\" de seguridad del formulario no es correcto. Esto ha ocurrido probablemente porque el formulario ha estado abierto demasiado tiempo (>3 horas) antes de ser enviado"
-#: ../../include/text.php:404
-msgid "prev"
-msgstr "anterior"
+#: ../../include/conversation.php:204
+#, php-format
+msgid "%1$s is now connected with %2$s"
+msgstr "%1$s ahora está conectado/a con %2$s"
-#: ../../include/text.php:406
-msgid "first"
-msgstr "primera"
+#: ../../include/conversation.php:239
+#, php-format
+msgid "%1$s poked %2$s"
+msgstr "%1$s ha dado un toque a %2$s"
-#: ../../include/text.php:435
-msgid "last"
-msgstr "última"
+#: ../../include/conversation.php:694
+#, php-format
+msgid "View %s's profile @ %s"
+msgstr "Ver el perfil @ %s de %s"
-#: ../../include/text.php:438
-msgid "next"
-msgstr "próxima"
+#: ../../include/conversation.php:713
+msgid "Categories:"
+msgstr "Temas:"
-#: ../../include/text.php:448
-msgid "older"
-msgstr "más antiguas"
+#: ../../include/conversation.php:714
+msgid "Filed under:"
+msgstr "Archivado bajo:"
-#: ../../include/text.php:450
-msgid "newer"
-msgstr "más recientes"
+#: ../../include/conversation.php:741
+msgid "View in context"
+msgstr "Mostrar en su contexto"
-#: ../../include/text.php:843
-msgid "No connections"
-msgstr "Sin conexiones"
+#: ../../include/conversation.php:851
+msgid "remove"
+msgstr "eliminar"
-#: ../../include/text.php:868
+#: ../../include/conversation.php:855 ../../include/nav.php:251
+msgid "Loading..."
+msgstr "Cargando..."
+
+#: ../../include/conversation.php:856
+msgid "Delete Selected Items"
+msgstr "Eliminar elementos seleccionados"
+
+#: ../../include/conversation.php:949
+msgid "View Source"
+msgstr "Ver el código fuente de la entrada"
+
+#: ../../include/conversation.php:950
+msgid "Follow Thread"
+msgstr "Seguir este hilo"
+
+#: ../../include/conversation.php:951
+msgid "Unfollow Thread"
+msgstr "Dejar de seguir este hilo"
+
+#: ../../include/conversation.php:956
+msgid "Activity/Posts"
+msgstr "Actividad y publicaciones"
+
+#: ../../include/conversation.php:958
+msgid "Edit Connection"
+msgstr "Editar conexión"
+
+#: ../../include/conversation.php:959
+msgid "Message"
+msgstr "Mensaje"
+
+#: ../../include/conversation.php:1076
#, php-format
-msgid "View all %s connections"
-msgstr "Ver todas las %s conexiones"
+msgid "%s likes this."
+msgstr "A %s le gusta esto."
-#: ../../include/text.php:1013 ../../include/text.php:1018
-msgid "poke"
-msgstr "un toque"
+#: ../../include/conversation.php:1076
+#, php-format
+msgid "%s doesn't like this."
+msgstr "A %s no le gusta esto."
-#: ../../include/text.php:1019
-msgid "ping"
-msgstr "un \"ping\""
+#: ../../include/conversation.php:1080
+#, php-format
+msgid "<span %1$s>%2$d people</span> like this."
+msgid_plural "<span %1$s>%2$d people</span> like this."
+msgstr[0] "a <span %1$s>%2$d personas</span> le gusta esto."
+msgstr[1] "A <span %1$s>%2$d personas</span> les gusta esto."
-#: ../../include/text.php:1019
-msgid "pinged"
-msgstr "ha enviado un \"ping\" a"
+#: ../../include/conversation.php:1082
+#, php-format
+msgid "<span %1$s>%2$d people</span> don't like this."
+msgid_plural "<span %1$s>%2$d people</span> don't like this."
+msgstr[0] "a <span %1$s>%2$d personas</span> no les gusta esto."
+msgstr[1] "A <span %1$s>%2$d personas</span> no les gusta esto."
-#: ../../include/text.php:1020
-msgid "prod"
-msgstr "una incitación "
+#: ../../include/conversation.php:1088
+msgid "and"
+msgstr "y"
-#: ../../include/text.php:1020
-msgid "prodded"
-msgstr "ha incitado a "
+#: ../../include/conversation.php:1091
+#, php-format
+msgid ", and %d other people"
+msgid_plural ", and %d other people"
+msgstr[0] ", y %d persona más"
+msgstr[1] ", y %d personas más"
-#: ../../include/text.php:1021
-msgid "slap"
-msgstr "una bofetada "
+#: ../../include/conversation.php:1092
+#, php-format
+msgid "%s like this."
+msgstr "A %s le gusta esto."
-#: ../../include/text.php:1021
-msgid "slapped"
-msgstr "ha abofeteado a "
+#: ../../include/conversation.php:1092
+#, php-format
+msgid "%s don't like this."
+msgstr "A %s no le gusta esto."
-#: ../../include/text.php:1022
-msgid "finger"
-msgstr "un \"finger\" "
+#: ../../include/conversation.php:1135
+msgid "Set your location"
+msgstr "Establecer su ubicación"
-#: ../../include/text.php:1022
-msgid "fingered"
-msgstr "envió un \"finger\" a"
+#: ../../include/conversation.php:1136
+msgid "Clear browser location"
+msgstr "Eliminar los datos de localización geográfica del navegador"
-#: ../../include/text.php:1023
-msgid "rebuff"
-msgstr "un reproche"
+#: ../../include/conversation.php:1184
+msgid "Tag term:"
+msgstr "Término de la etiqueta:"
-#: ../../include/text.php:1023
-msgid "rebuffed"
-msgstr "ha hecho un reproche a "
+#: ../../include/conversation.php:1185
+msgid "Where are you right now?"
+msgstr "¿Donde está ahora?"
-#: ../../include/text.php:1035
-msgid "happy"
-msgstr "feliz "
+#: ../../include/conversation.php:1194
+msgid "Comments enabled"
+msgstr "Comentarios habilitados"
-#: ../../include/text.php:1036
-msgid "sad"
-msgstr "triste "
+#: ../../include/conversation.php:1195
+msgid "Comments disabled"
+msgstr "Comentarios deshabilitados"
-#: ../../include/text.php:1037
-msgid "mellow"
-msgstr "tranquilo/a"
+#: ../../include/conversation.php:1229
+msgid "Page link name"
+msgstr "Nombre del enlace de la página"
-#: ../../include/text.php:1038
-msgid "tired"
-msgstr "cansado/a "
+#: ../../include/conversation.php:1232
+msgid "Post as"
+msgstr "Publicar como"
-#: ../../include/text.php:1039
-msgid "perky"
-msgstr "vivaz"
+#: ../../include/conversation.php:1246
+msgid "Toggle voting"
+msgstr "Cambiar votación"
-#: ../../include/text.php:1040
-msgid "angry"
-msgstr "enfadado/a"
+#: ../../include/conversation.php:1249
+msgid "Disable comments"
+msgstr "Dehabilitar los comentarios"
-#: ../../include/text.php:1041
-msgid "stupefied"
-msgstr "asombrado/a"
+#: ../../include/conversation.php:1250
+msgid "Toggle comments"
+msgstr "Activar o desactivar los comentarios"
-#: ../../include/text.php:1042
-msgid "puzzled"
-msgstr "perplejo/a"
+#: ../../include/conversation.php:1258
+msgid "Categories (optional, comma-separated list)"
+msgstr "Temas (opcional, lista separada por comas)"
-#: ../../include/text.php:1043
-msgid "interested"
-msgstr "interesado/a"
+#: ../../include/conversation.php:1281
+msgid "Other networks and post services"
+msgstr "Otras redes y servicios de publicación"
-#: ../../include/text.php:1044
-msgid "bitter"
-msgstr "amargado/a"
+#: ../../include/conversation.php:1287
+msgid "Set publish date"
+msgstr "Establecer la fecha de publicación"
-#: ../../include/text.php:1045
-msgid "cheerful"
-msgstr "alegre"
+#: ../../include/conversation.php:1536
+msgid "Discover"
+msgstr "Descubrir"
-#: ../../include/text.php:1046
-msgid "alive"
-msgstr "animado/a"
+#: ../../include/conversation.php:1539
+msgid "Imported public streams"
+msgstr "Contenidos públicos importados"
-#: ../../include/text.php:1047
-msgid "annoyed"
-msgstr "molesto/a"
+#: ../../include/conversation.php:1544
+msgid "Commented Order"
+msgstr "Comentarios recientes"
-#: ../../include/text.php:1048
-msgid "anxious"
-msgstr "ansioso/a"
+#: ../../include/conversation.php:1547
+msgid "Sort by Comment Date"
+msgstr "Ordenar por fecha de comentario"
-#: ../../include/text.php:1049
-msgid "cranky"
-msgstr "de mal humor"
+#: ../../include/conversation.php:1551
+msgid "Posted Order"
+msgstr "Publicaciones recientes"
-#: ../../include/text.php:1050
-msgid "disturbed"
-msgstr "perturbado/a"
+#: ../../include/conversation.php:1554
+msgid "Sort by Post Date"
+msgstr "Ordenar por fecha de publicación"
-#: ../../include/text.php:1051
-msgid "frustrated"
-msgstr "frustrado/a"
+#: ../../include/conversation.php:1562
+msgid "Posts that mention or involve you"
+msgstr "Publicaciones que le mencionan o involucran"
-#: ../../include/text.php:1052
-msgid "depressed"
-msgstr "deprimido/a"
+#: ../../include/conversation.php:1571
+msgid "Activity Stream - by date"
+msgstr "Contenido - por fecha"
-#: ../../include/text.php:1053
-msgid "motivated"
-msgstr "motivado/a"
+#: ../../include/conversation.php:1577
+msgid "Starred"
+msgstr "Preferidas"
-#: ../../include/text.php:1054
-msgid "relaxed"
-msgstr "relajado/a"
+#: ../../include/conversation.php:1580
+msgid "Favourite Posts"
+msgstr "Publicaciones favoritas"
-#: ../../include/text.php:1055
-msgid "surprised"
-msgstr "sorprendido/a"
+#: ../../include/conversation.php:1587
+msgid "Spam"
+msgstr "Correo basura"
-#: ../../include/text.php:1237 ../../include/js_strings.php:70
-msgid "Monday"
-msgstr "lunes"
+#: ../../include/conversation.php:1590
+msgid "Posts flagged as SPAM"
+msgstr "Publicaciones marcadas como basura"
-#: ../../include/text.php:1237 ../../include/js_strings.php:71
-msgid "Tuesday"
-msgstr "martes"
+#: ../../include/conversation.php:1647
+msgid "Status Messages and Posts"
+msgstr "Mensajes de estado y publicaciones"
-#: ../../include/text.php:1237 ../../include/js_strings.php:72
-msgid "Wednesday"
-msgstr "miércoles"
+#: ../../include/conversation.php:1656
+msgid "About"
+msgstr "Mi perfil"
-#: ../../include/text.php:1237 ../../include/js_strings.php:73
-msgid "Thursday"
-msgstr "jueves"
+#: ../../include/conversation.php:1659
+msgid "Profile Details"
+msgstr "Detalles del perfil"
-#: ../../include/text.php:1237 ../../include/js_strings.php:74
-msgid "Friday"
-msgstr "viernes"
+#: ../../include/conversation.php:1675
+msgid "Files and Storage"
+msgstr "Ficheros y repositorio"
-#: ../../include/text.php:1237 ../../include/js_strings.php:75
-msgid "Saturday"
-msgstr "sábado"
+#: ../../include/conversation.php:1708 ../../include/nav.php:104
+msgid "Bookmarks"
+msgstr "Marcadores"
-#: ../../include/text.php:1237 ../../include/js_strings.php:69
-msgid "Sunday"
-msgstr "domingo"
+#: ../../include/conversation.php:1711
+msgid "Saved Bookmarks"
+msgstr "Marcadores guardados"
-#: ../../include/text.php:1241 ../../include/js_strings.php:45
-msgid "January"
-msgstr "enero"
+#: ../../include/conversation.php:1721
+msgid "Manage Webpages"
+msgstr "Administrar páginas web"
-#: ../../include/text.php:1241 ../../include/js_strings.php:46
-msgid "February"
-msgstr "febrero"
+#: ../../include/conversation.php:1786
+msgctxt "noun"
+msgid "Attending"
+msgid_plural "Attending"
+msgstr[0] "Participaré"
+msgstr[1] "Participaré"
-#: ../../include/text.php:1241 ../../include/js_strings.php:47
-msgid "March"
-msgstr "marzo"
+#: ../../include/conversation.php:1789
+msgctxt "noun"
+msgid "Not Attending"
+msgid_plural "Not Attending"
+msgstr[0] "No participaré"
+msgstr[1] "No participaré"
-#: ../../include/text.php:1241 ../../include/js_strings.php:48
-msgid "April"
-msgstr "abril"
+#: ../../include/conversation.php:1792
+msgctxt "noun"
+msgid "Undecided"
+msgid_plural "Undecided"
+msgstr[0] "Indeciso/a"
+msgstr[1] "Indecisos/as"
+
+#: ../../include/conversation.php:1795
+msgctxt "noun"
+msgid "Agree"
+msgid_plural "Agrees"
+msgstr[0] "De acuerdo"
+msgstr[1] "De acuerdo"
+
+#: ../../include/conversation.php:1798
+msgctxt "noun"
+msgid "Disagree"
+msgid_plural "Disagrees"
+msgstr[0] "En desacuerdo"
+msgstr[1] "En desacuerdo"
+
+#: ../../include/conversation.php:1801
+msgctxt "noun"
+msgid "Abstain"
+msgid_plural "Abstains"
+msgstr[0] "se abstiene"
+msgstr[1] "Se abstienen"
+
+#: ../../include/bookmarks.php:35
+#, php-format
+msgid "%1$s's bookmarks"
+msgstr "Marcadores de %1$s"
+
+#: ../../include/group.php:26
+msgid ""
+"A deleted group with this name was revived. Existing item permissions "
+"<strong>may</strong> apply to this group and any future members. If this is "
+"not what you intended, please create another group with a different name."
+msgstr "Un grupo suprimido con este nombre ha sido restablecido. <strong>Es posible</strong> que los permisos existentes sean aplicados a este grupo y sus futuros miembros. Si no quiere esto, por favor cree otro grupo con un nombre diferente."
+
+#: ../../include/group.php:248
+msgid "Add new connections to this privacy group"
+msgstr "Añadir conexiones nuevas a este grupo de canales"
+
+#: ../../include/group.php:289
+msgid "edit"
+msgstr "editar"
+
+#: ../../include/group.php:311 ../../include/features.php:84
+msgid "Privacy Groups"
+msgstr "Grupos de canales"
+
+#: ../../include/group.php:312
+msgid "Edit group"
+msgstr "Editar grupo"
+
+#: ../../include/group.php:313
+msgid "Add privacy group"
+msgstr "Añadir un grupo de canales"
+
+#: ../../include/group.php:314
+msgid "Channels not in any privacy group"
+msgstr "Sin canales en ningún grupo"
+
+#: ../../include/page_widgets.php:7
+msgid "New Page"
+msgstr "Nueva página"
+
+#: ../../include/page_widgets.php:46
+msgid "Title"
+msgstr "Título"
+
+#: ../../include/wiki.php:525 ../../include/bbcode.php:619
+msgid "Different viewers will see this text differently"
+msgstr "Visitantes diferentes verán este texto de forma distinta"
+
+#: ../../include/event.php:22 ../../include/event.php:69
+#: ../../include/bb2diaspora.php:485
+msgid "l F d, Y \\@ g:i A"
+msgstr "l d de F, Y \\@ G:i"
+
+#: ../../include/event.php:30 ../../include/event.php:73
+#: ../../include/bb2diaspora.php:491
+msgid "Starts:"
+msgstr "Comienza:"
+
+#: ../../include/event.php:40 ../../include/event.php:77
+#: ../../include/bb2diaspora.php:499
+msgid "Finishes:"
+msgstr "Finaliza:"
+
+#: ../../include/event.php:821
+msgid "This event has been added to your calendar."
+msgstr "Este evento ha sido añadido a su calendario."
+
+#: ../../include/event.php:1021
+msgid "Not specified"
+msgstr "Sin especificar"
+
+#: ../../include/event.php:1022
+msgid "Needs Action"
+msgstr "Necesita de una intervención"
+
+#: ../../include/event.php:1023
+msgid "Completed"
+msgstr "Completado/a"
+
+#: ../../include/event.php:1024
+msgid "In Process"
+msgstr "En proceso"
+
+#: ../../include/event.php:1025
+msgid "Cancelled"
+msgstr "Cancelado/a"
+
+#: ../../include/bb2diaspora.php:398
+msgid "Attachments:"
+msgstr "Ficheros adjuntos:"
+
+#: ../../include/bb2diaspora.php:487
+msgid "$Projectname event notification:"
+msgstr "Notificación de eventos de $Projectname:"
+
+#: ../../include/js_strings.php:5
+msgid "Delete this item?"
+msgstr "¿Borrar este elemento?"
+
+#: ../../include/js_strings.php:8
+#, php-format
+msgid "%s show less"
+msgstr "%s mostrar menos"
-#: ../../include/text.php:1241
+#: ../../include/js_strings.php:9
+#, php-format
+msgid "%s expand"
+msgstr "%s expandir"
+
+#: ../../include/js_strings.php:10
+#, php-format
+msgid "%s collapse"
+msgstr "%s contraer"
+
+#: ../../include/js_strings.php:11
+msgid "Password too short"
+msgstr "Contraseña demasiado corta"
+
+#: ../../include/js_strings.php:12
+msgid "Passwords do not match"
+msgstr "Las contraseñas no coinciden"
+
+#: ../../include/js_strings.php:13
+msgid "everybody"
+msgstr "cualquiera"
+
+#: ../../include/js_strings.php:14
+msgid "Secret Passphrase"
+msgstr "Contraseña secreta"
+
+#: ../../include/js_strings.php:15
+msgid "Passphrase hint"
+msgstr "Pista de contraseña"
+
+#: ../../include/js_strings.php:16
+msgid "Notice: Permissions have changed but have not yet been submitted."
+msgstr "Aviso: los permisos han cambiado pero aún no han sido enviados."
+
+#: ../../include/js_strings.php:17
+msgid "close all"
+msgstr "cerrar todo"
+
+#: ../../include/js_strings.php:18
+msgid "Nothing new here"
+msgstr "Nada nuevo por aquí"
+
+#: ../../include/js_strings.php:19
+msgid "Rate This Channel (this is public)"
+msgstr "Valorar este canal (esto es público)"
+
+#: ../../include/js_strings.php:21
+msgid "Describe (optional)"
+msgstr "Describir (opcional)"
+
+#: ../../include/js_strings.php:23
+msgid "Please enter a link URL"
+msgstr "Por favor, introduzca una dirección de enlace"
+
+#: ../../include/js_strings.php:24
+msgid "Unsaved changes. Are you sure you wish to leave this page?"
+msgstr "Cambios no guardados. ¿Está seguro de que desea abandonar la página?"
+
+#: ../../include/js_strings.php:27
+msgid "timeago.prefixAgo"
+msgstr "timeago.prefixAgo"
+
+#: ../../include/js_strings.php:28
+msgid "timeago.prefixFromNow"
+msgstr "timeago.prefixFromNow"
+
+#: ../../include/js_strings.php:29
+msgid "ago"
+msgstr "antes"
+
+#: ../../include/js_strings.php:30
+msgid "from now"
+msgstr "desde ahora"
+
+#: ../../include/js_strings.php:31
+msgid "less than a minute"
+msgstr "menos de un minuto"
+
+#: ../../include/js_strings.php:32
+msgid "about a minute"
+msgstr "alrededor de un minuto"
+
+#: ../../include/js_strings.php:33
+#, php-format
+msgid "%d minutes"
+msgstr "%d minutos"
+
+#: ../../include/js_strings.php:34
+msgid "about an hour"
+msgstr "alrededor de una hora"
+
+#: ../../include/js_strings.php:35
+#, php-format
+msgid "about %d hours"
+msgstr "alrededor de %d horas"
+
+#: ../../include/js_strings.php:36
+msgid "a day"
+msgstr "un día"
+
+#: ../../include/js_strings.php:37
+#, php-format
+msgid "%d days"
+msgstr "%d días"
+
+#: ../../include/js_strings.php:38
+msgid "about a month"
+msgstr "alrededor de un mes"
+
+#: ../../include/js_strings.php:39
+#, php-format
+msgid "%d months"
+msgstr "%d meses"
+
+#: ../../include/js_strings.php:40
+msgid "about a year"
+msgstr "alrededor de un año"
+
+#: ../../include/js_strings.php:41
+#, php-format
+msgid "%d years"
+msgstr "%d años"
+
+#: ../../include/js_strings.php:42
+msgid " "
+msgstr " "
+
+#: ../../include/js_strings.php:43
+msgid "timeago.numbers"
+msgstr "timeago.numbers"
+
+#: ../../include/js_strings.php:49
+msgctxt "long"
msgid "May"
msgstr "mayo"
-#: ../../include/text.php:1241 ../../include/js_strings.php:50
-msgid "June"
-msgstr "junio"
+#: ../../include/js_strings.php:57
+msgid "Jan"
+msgstr "ene"
-#: ../../include/text.php:1241 ../../include/js_strings.php:51
-msgid "July"
-msgstr "julio"
+#: ../../include/js_strings.php:58
+msgid "Feb"
+msgstr "feb"
-#: ../../include/text.php:1241 ../../include/js_strings.php:52
-msgid "August"
-msgstr "agosto"
+#: ../../include/js_strings.php:59
+msgid "Mar"
+msgstr "mar"
-#: ../../include/text.php:1241 ../../include/js_strings.php:53
-msgid "September"
-msgstr "septiembre"
+#: ../../include/js_strings.php:60
+msgid "Apr"
+msgstr "abr"
-#: ../../include/text.php:1241 ../../include/js_strings.php:54
-msgid "October"
-msgstr "octubre"
+#: ../../include/js_strings.php:61
+msgctxt "short"
+msgid "May"
+msgstr "may"
-#: ../../include/text.php:1241 ../../include/js_strings.php:55
-msgid "November"
-msgstr "noviembre"
+#: ../../include/js_strings.php:62
+msgid "Jun"
+msgstr "jun"
-#: ../../include/text.php:1241 ../../include/js_strings.php:56
-msgid "December"
-msgstr "diciembre"
+#: ../../include/js_strings.php:63
+msgid "Jul"
+msgstr "jul"
-#: ../../include/text.php:1318 ../../include/text.php:1322
-msgid "Unknown Attachment"
-msgstr "Adjunto no reconocido"
+#: ../../include/js_strings.php:64
+msgid "Aug"
+msgstr "ago"
-#: ../../include/text.php:1324
-msgid "unknown"
-msgstr "desconocido"
+#: ../../include/js_strings.php:65
+msgid "Sep"
+msgstr "sep"
-#: ../../include/text.php:1360
-msgid "remove category"
-msgstr "eliminar categoría"
+#: ../../include/js_strings.php:66
+msgid "Oct"
+msgstr "oct"
-#: ../../include/text.php:1437
-msgid "remove from file"
-msgstr "eliminar del fichero"
+#: ../../include/js_strings.php:67
+msgid "Nov"
+msgstr "nov"
-#: ../../include/text.php:1734 ../../include/text.php:1805
-msgid "default"
-msgstr "por defecto"
+#: ../../include/js_strings.php:68
+msgid "Dec"
+msgstr "dic"
-#: ../../include/text.php:1742
-msgid "Page layout"
-msgstr "Plantilla de la página"
+#: ../../include/js_strings.php:76
+msgid "Sun"
+msgstr "dom"
-#: ../../include/text.php:1742
-msgid "You can create your own with the layouts tool"
-msgstr "Puede crear su propia disposición gráfica con la herramienta de plantillas"
+#: ../../include/js_strings.php:77
+msgid "Mon"
+msgstr "lun"
-#: ../../include/text.php:1784
-msgid "Page content type"
-msgstr "Tipo de contenido de la página"
+#: ../../include/js_strings.php:78
+msgid "Tue"
+msgstr "mar"
-#: ../../include/text.php:1817
-msgid "Select an alternate language"
-msgstr "Seleccionar un idioma alternativo"
+#: ../../include/js_strings.php:79
+msgid "Wed"
+msgstr "mié"
-#: ../../include/text.php:1934
-msgid "activity"
-msgstr "la actividad"
+#: ../../include/js_strings.php:80
+msgid "Thu"
+msgstr "jue"
-#: ../../include/text.php:2235
-msgid "Design Tools"
-msgstr "Herramientas de diseño web"
+#: ../../include/js_strings.php:81
+msgid "Fri"
+msgstr "vie"
-#: ../../include/text.php:2241
-msgid "Pages"
-msgstr "Páginas"
+#: ../../include/js_strings.php:82
+msgid "Sat"
+msgstr "sáb"
+
+#: ../../include/js_strings.php:83
+msgctxt "calendar"
+msgid "today"
+msgstr "hoy"
+
+#: ../../include/js_strings.php:84
+msgctxt "calendar"
+msgid "month"
+msgstr "mes"
+
+#: ../../include/js_strings.php:85
+msgctxt "calendar"
+msgid "week"
+msgstr "semana"
+
+#: ../../include/js_strings.php:86
+msgctxt "calendar"
+msgid "day"
+msgstr "día"
+
+#: ../../include/js_strings.php:87
+msgctxt "calendar"
+msgid "All day"
+msgstr "Todos los días"
+
+#: ../../include/follow.php:27
+msgid "Channel is blocked on this site."
+msgstr "El canal está bloqueado en este sitio."
+
+#: ../../include/follow.php:32
+msgid "Channel location missing."
+msgstr "Falta la dirección del canal."
+
+#: ../../include/follow.php:80
+msgid "Response from remote channel was incomplete."
+msgstr "Respuesta incompleta del canal."
+
+#: ../../include/follow.php:97
+msgid "Channel was deleted and no longer exists."
+msgstr "El canal ha sido eliminado y ya no existe."
+
+#: ../../include/follow.php:147 ../../include/follow.php:183
+msgid "Protocol disabled."
+msgstr "Protocolo deshabilitado."
+
+#: ../../include/follow.php:171
+msgid "Channel discovery failed."
+msgstr "El intento de acceder al canal ha fallado."
+
+#: ../../include/follow.php:210
+msgid "Cannot connect to yourself."
+msgstr "No puede conectarse consigo mismo."
+
+#: ../../include/attach.php:248 ../../include/attach.php:334
+msgid "Item was not found."
+msgstr "Elemento no encontrado."
+
+#: ../../include/attach.php:500
+msgid "No source file."
+msgstr "Ningún fichero de origen"
+
+#: ../../include/attach.php:522
+msgid "Cannot locate file to replace"
+msgstr "No se puede localizar el fichero que va a ser sustituido."
+
+#: ../../include/attach.php:540
+msgid "Cannot locate file to revise/update"
+msgstr "No se puede localizar el fichero para revisar/actualizar"
+
+#: ../../include/attach.php:675
+#, php-format
+msgid "File exceeds size limit of %d"
+msgstr "El fichero supera el limite de tamaño de %d"
+
+#: ../../include/attach.php:689
+#, php-format
+msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
+msgstr "Ha alcanzado su límite de %1$.0f Mbytes de almacenamiento de adjuntos."
+
+#: ../../include/attach.php:847
+msgid "File upload failed. Possible system limit or action terminated."
+msgstr "Error de carga, posiblemente por limite del sistema o porque la acción ha finalizado."
+
+#: ../../include/attach.php:860
+msgid "Stored file could not be verified. Upload failed."
+msgstr "El fichero almacenado no ha podido ser verificado. El envío ha fallado."
+
+#: ../../include/attach.php:916 ../../include/attach.php:932
+msgid "Path not available."
+msgstr "Ruta no disponible."
+
+#: ../../include/attach.php:978 ../../include/attach.php:1130
+msgid "Empty pathname"
+msgstr "Ruta vacía"
+
+#: ../../include/attach.php:1004
+msgid "duplicate filename or path"
+msgstr "Nombre duplicado de ruta o fichero"
+
+#: ../../include/attach.php:1026
+msgid "Path not found."
+msgstr "Ruta no encontrada"
+
+#: ../../include/attach.php:1084
+msgid "mkdir failed."
+msgstr "mkdir ha fallado."
+
+#: ../../include/attach.php:1088
+msgid "database storage failed."
+msgstr "el almacenamiento en la base de datos ha fallado."
-#: ../../include/auth.php:147
+#: ../../include/attach.php:1136
+msgid "Empty path"
+msgstr "Ruta vacía"
+
+#: ../../include/auth.php:148
msgid "Logged out."
msgstr "Desconectado/a."
-#: ../../include/auth.php:274
+#: ../../include/auth.php:275
msgid "Failed authentication"
msgstr "Autenticación fallida."
-#: ../../include/permissions.php:26
-msgid "Can view my normal stream and posts"
-msgstr "Pueden verse mi actividad y publicaciones normales"
-
-#: ../../include/permissions.php:30
-msgid "Can view my webpages"
-msgstr "Pueden verse mis páginas web"
-
-#: ../../include/permissions.php:34
-msgid "Can post on my channel page (\"wall\")"
-msgstr "Pueden crearse entradas en mi página de inicio del canal (“muroâ€)"
-
-#: ../../include/permissions.php:37
-msgid "Can like/dislike stuff"
-msgstr "Puede marcarse contenido como me gusta/no me gusta"
+#: ../../include/auth.php:286
+msgid "Login failed."
+msgstr "El acceso ha fallado."
-#: ../../include/permissions.php:37
-msgid "Profiles and things other than posts/comments"
-msgstr "Perfiles y otras cosas aparte de publicaciones/comentarios"
+#: ../../include/activities.php:41
+msgid " and "
+msgstr " y "
-#: ../../include/permissions.php:39
-msgid "Can forward to all my channel contacts via post @mentions"
-msgstr "Puede enviarse una entrada a todos mis contactos del canal mediante una @mención"
+#: ../../include/activities.php:49
+msgid "public profile"
+msgstr "el perfil público"
-#: ../../include/permissions.php:39
-msgid "Advanced - useful for creating group forum channels"
-msgstr "Avanzado - útil para crear canales de foros de discusión o grupos"
+#: ../../include/activities.php:58
+#, php-format
+msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
+msgstr "%1$s ha cambiado %2$s a &ldquo;%3$s&rdquo;"
-#: ../../include/permissions.php:40
-msgid "Can chat with me (when available)"
-msgstr "Se puede charlar conmigo (cuando esté disponible)"
+#: ../../include/activities.php:59
+#, php-format
+msgid "Visit %1$s's %2$s"
+msgstr "Visitar %2$s de %1$s"
-#: ../../include/permissions.php:41
-msgid "Can write to my file storage and photos"
-msgstr "Puede escribirse en mi repositorio de ficheros y fotos"
+#: ../../include/activities.php:62
+#, php-format
+msgid "%1$s has an updated %2$s, changing %3$s."
+msgstr "%1$s ha actualizado %2$s, cambiando %3$s."
-#: ../../include/permissions.php:42
-msgid "Can edit my webpages"
-msgstr "Pueden editarse mis páginas web"
+#: ../../include/zot.php:700
+msgid "Invalid data packet"
+msgstr "Paquete de datos no válido"
-#: ../../include/permissions.php:44
-msgid "Somewhat advanced - very useful in open communities"
-msgstr "Algo avanzado - muy útil en comunidades abiertas"
+#: ../../include/zot.php:716
+msgid "Unable to verify channel signature"
+msgstr "No ha sido posible de verificar la firma del canal"
-#: ../../include/permissions.php:46
-msgid "Can administer my channel resources"
-msgstr "Pueden administrarse mis recursos del canal"
+#: ../../include/zot.php:2329
+#, php-format
+msgid "Unable to verify site signature for %s"
+msgstr "No ha sido posible de verificar la firma del sitio para %s"
-#: ../../include/permissions.php:46
-msgid ""
-"Extremely advanced. Leave this alone unless you know what you are doing"
-msgstr "Muy avanzado. Déjelo a no ser que sepa bien lo que está haciendo."
+#: ../../include/zot.php:3706
+msgid "invalid target signature"
+msgstr "La firma recibida no es válida"
-#: ../../include/features.php:48
+#: ../../include/features.php:50
msgid "General Features"
msgstr "Funcionalidades básicas"
-#: ../../include/features.php:50
+#: ../../include/features.php:52
msgid "Content Expiration"
msgstr "Caducidad del contenido"
-#: ../../include/features.php:50
+#: ../../include/features.php:52
msgid "Remove posts/comments and/or private messages at a future time"
msgstr "Eliminar publicaciones/comentarios y/o mensajes privados más adelante"
-#: ../../include/features.php:51
+#: ../../include/features.php:53
msgid "Multiple Profiles"
msgstr "Múltiples perfiles"
-#: ../../include/features.php:51
+#: ../../include/features.php:53
msgid "Ability to create multiple profiles"
msgstr "Capacidad de crear múltiples perfiles"
-#: ../../include/features.php:52
+#: ../../include/features.php:54
msgid "Advanced Profiles"
msgstr "Perfiles avanzados"
-#: ../../include/features.php:52
+#: ../../include/features.php:54
msgid "Additional profile sections and selections"
msgstr "Secciones y selecciones de perfil adicionales"
-#: ../../include/features.php:53
+#: ../../include/features.php:55
msgid "Profile Import/Export"
msgstr "Importar/Exportar perfil"
-#: ../../include/features.php:53
+#: ../../include/features.php:55
msgid "Save and load profile details across sites/channels"
msgstr "Guardar y cargar detalles del perfil a través de sitios/canales"
-#: ../../include/features.php:54
+#: ../../include/features.php:56
msgid "Web Pages"
msgstr "Páginas web"
-#: ../../include/features.php:54
+#: ../../include/features.php:56
msgid "Provide managed web pages on your channel"
msgstr "Proveer páginas web gestionadas en su canal"
-#: ../../include/features.php:55
+#: ../../include/features.php:57
msgid "Provide a wiki for your channel"
msgstr "Proporcionar un wiki para su canal"
-#: ../../include/features.php:56
-msgid "Hide Rating"
-msgstr "Ocultar las valoraciones"
-
-#: ../../include/features.php:56
-msgid ""
-"Hide the rating buttons on your channel and profile pages. Note: People can "
-"still rate you somewhere else."
-msgstr "Ocultar los botones de valoración en su canal y página de perfil. Tenga en cuenta, sin embargo, que la gente podrá expresar su valoración en otros lugares."
-
-#: ../../include/features.php:57
+#: ../../include/features.php:59
msgid "Private Notes"
msgstr "Notas privadas"
-#: ../../include/features.php:57
+#: ../../include/features.php:59
msgid "Enables a tool to store notes and reminders (note: not encrypted)"
msgstr "Habilita una herramienta para guardar notas y recordatorios (advertencia: las notas no estarán cifradas)"
-#: ../../include/features.php:58
+#: ../../include/features.php:60
msgid "Navigation Channel Select"
msgstr "Navegación por el selector de canales"
-#: ../../include/features.php:58
+#: ../../include/features.php:60
msgid "Change channels directly from within the navigation dropdown menu"
msgstr "Cambiar de canales directamente desde el menú de navegación desplegable"
-#: ../../include/features.php:59
+#: ../../include/features.php:61
msgid "Photo Location"
msgstr "Ubicación de las fotos"
-#: ../../include/features.php:59
+#: ../../include/features.php:61
msgid "If location data is available on uploaded photos, link this to a map."
msgstr "Si los datos de ubicación están disponibles en las fotos subidas, enlazar estas a un mapa."
-#: ../../include/features.php:60
+#: ../../include/features.php:62
msgid "Access Controlled Chatrooms"
msgstr "Salas de chat moderadas"
-#: ../../include/features.php:60
+#: ../../include/features.php:62
msgid "Provide chatrooms and chat services with access control."
msgstr "Proporcionar salas y servicios de chat moderados."
-#: ../../include/features.php:61
+#: ../../include/features.php:63
msgid "Smart Birthdays"
msgstr "Cumpleaños inteligentes"
-#: ../../include/features.php:61
+#: ../../include/features.php:63
msgid ""
"Make birthday events timezone aware in case your friends are scattered "
"across the planet."
msgstr "Enlazar los eventos de cumpleaños con el huso horario en el caso de que sus amigos estén dispersos por el mundo."
-#: ../../include/features.php:62
+#: ../../include/features.php:64
msgid "Expert Mode"
msgstr "Modo de experto"
-#: ../../include/features.php:62
+#: ../../include/features.php:64
msgid "Enable Expert Mode to provide advanced configuration options"
msgstr "Habilitar el modo de experto para acceder a opciones avanzadas de configuración"
-#: ../../include/features.php:63
-msgid "Premium Channel"
-msgstr "Canal premium"
-
-#: ../../include/features.php:63
-msgid ""
-"Allows you to set restrictions and terms on those that connect with your "
-"channel"
-msgstr "Le permite configurar restricciones y normas de uso a aquellos que conectan con su canal"
-
-#: ../../include/features.php:68
+#: ../../include/features.php:69
msgid "Post Composition Features"
msgstr "Opciones para la redacción de entradas"
-#: ../../include/features.php:71
+#: ../../include/features.php:70
msgid "Large Photos"
msgstr "Fotos de gran tamaño"
-#: ../../include/features.php:71
+#: ../../include/features.php:70
msgid ""
"Include large (1024px) photo thumbnails in posts. If not enabled, use small "
"(640px) photo thumbnails"
msgstr "Incluir miniaturas de fotos grandes (1024px) en publicaciones. Si no está habilitado, usar miniaturas pequeñas (640px)"
-#: ../../include/features.php:72
+#: ../../include/features.php:71
msgid "Automatically import channel content from other channels or feeds"
msgstr "Importar automáticamente contenido de otros canales o \"feeds\""
-#: ../../include/features.php:73
+#: ../../include/features.php:72
msgid "Even More Encryption"
msgstr "Más cifrado todavía"
-#: ../../include/features.php:73
+#: ../../include/features.php:72
msgid ""
"Allow optional encryption of content end-to-end with a shared secret key"
msgstr "Permitir cifrado adicional de contenido \"punto-a-punto\" con una clave secreta compartida."
-#: ../../include/features.php:74
+#: ../../include/features.php:73
msgid "Enable Voting Tools"
msgstr "Permitir entradas con votación"
-#: ../../include/features.php:74
+#: ../../include/features.php:73
msgid "Provide a class of post which others can vote on"
msgstr "Proveer una clase de publicación en la que otros puedan votar"
+#: ../../include/features.php:74
+msgid "Disable Comments"
+msgstr "Deshabilitar comentarios"
+
+#: ../../include/features.php:74
+msgid "Provide the option to disable comments for a post"
+msgstr "Proporcionar la opción de desactivar los comentarios de una publicación"
+
#: ../../include/features.php:75
msgid "Delayed Posting"
msgstr "Publicación aplazada"
@@ -8668,18 +9341,10 @@ msgstr "Buscar por fecha"
msgid "Ability to select posts by date ranges"
msgstr "Capacidad de seleccionar entradas por rango de fechas"
-#: ../../include/features.php:84 ../../include/group.php:311
-msgid "Privacy Groups"
-msgstr "Grupos de canales"
-
#: ../../include/features.php:84
msgid "Enable management and selection of privacy groups"
msgstr "Activar la gestión y selección de grupos de canales"
-#: ../../include/features.php:85 ../../include/widgets.php:281
-msgid "Saved Searches"
-msgstr "Búsquedas guardadas"
-
#: ../../include/features.php:85
msgid "Save search terms for re-use"
msgstr "Guardar términos de búsqueda para su reutilización"
@@ -8734,11 +9399,11 @@ msgstr "Capacidad de etiquetar entradas existentes"
#: ../../include/features.php:97
msgid "Post Categories"
-msgstr "Categorías de entradas"
+msgstr "Temas de las entradas"
#: ../../include/features.php:97
msgid "Add categories to your posts"
-msgstr "Añadir categorías a sus publicaciones"
+msgstr "Añadir temas a sus publicaciones"
#: ../../include/features.php:98
msgid "Emoji Reactions"
@@ -8748,11 +9413,6 @@ msgstr "Emoticonos \"emoji\""
msgid "Add emoji reaction ability to posts"
msgstr "Activar la capacidad de añadir un emoticono \"emoji\" a las entradas"
-#: ../../include/features.php:99 ../../include/widgets.php:310
-#: ../../include/contact_widgets.php:53
-msgid "Saved Folders"
-msgstr "Carpetas guardadas"
-
#: ../../include/features.php:99
msgid "Ability to file posts under folders"
msgstr "Capacidad de archivar entradas en carpetas"
@@ -8781,75 +9441,47 @@ msgstr "Nube de etiquetas"
msgid "Provide a personal tag cloud on your channel page"
msgstr "Proveer nube de etiquetas personal en su página de canal"
-#: ../../include/group.php:26
-msgid ""
-"A deleted group with this name was revived. Existing item permissions "
-"<strong>may</strong> apply to this group and any future members. If this is "
-"not what you intended, please create another group with a different name."
-msgstr "Un grupo suprimido con este nombre ha sido restablecido. <strong>Es posible</strong> que los permisos existentes sean aplicados a este grupo y sus futuros miembros. Si no quiere esto, por favor cree otro grupo con un nombre diferente."
-
-#: ../../include/group.php:248
-msgid "Add new connections to this privacy group"
-msgstr "Añadir conexiones nuevas a este grupo de canales"
-
-#: ../../include/group.php:289
-msgid "edit"
-msgstr "editar"
-
-#: ../../include/group.php:312
-msgid "Edit group"
-msgstr "Editar grupo"
-
-#: ../../include/group.php:313
-msgid "Add privacy group"
-msgstr "Añadir un grupo de canales"
-
-#: ../../include/group.php:314
-msgid "Channels not in any privacy group"
-msgstr "Sin canales en ningún grupo"
-
-#: ../../include/group.php:316 ../../include/widgets.php:282
-msgid "add"
-msgstr "añadir"
+#: ../../include/features.php:111
+msgid "Premium Channel"
+msgstr "Canal premium"
-#: ../../include/event.php:22 ../../include/event.php:69
-#: ../../include/bb2diaspora.php:485
-msgid "l F d, Y \\@ g:i A"
-msgstr "l d de F, Y \\@ G:i"
+#: ../../include/features.php:112
+msgid ""
+"Allows you to set restrictions and terms on those that connect with your "
+"channel"
+msgstr "Le permite configurar restricciones y normas de uso a aquellos que conectan con su canal"
-#: ../../include/event.php:30 ../../include/event.php:73
-#: ../../include/bb2diaspora.php:491
-msgid "Starts:"
-msgstr "Comienza:"
+#: ../../include/taxonomy.php:228 ../../include/taxonomy.php:249
+msgid "Tags"
+msgstr "Etiquetas"
-#: ../../include/event.php:40 ../../include/event.php:77
-#: ../../include/bb2diaspora.php:499
-msgid "Finishes:"
-msgstr "Finaliza:"
+#: ../../include/taxonomy.php:293
+msgid "Keywords"
+msgstr "Palabras clave"
-#: ../../include/event.php:814
-msgid "This event has been added to your calendar."
-msgstr "Este evento ha sido añadido a su calendario."
+#: ../../include/taxonomy.php:314
+msgid "have"
+msgstr "tener"
-#: ../../include/event.php:1014
-msgid "Not specified"
-msgstr "Sin especificar"
+#: ../../include/taxonomy.php:314
+msgid "has"
+msgstr "tiene"
-#: ../../include/event.php:1015
-msgid "Needs Action"
-msgstr "Necesita de una intervención"
+#: ../../include/taxonomy.php:315
+msgid "want"
+msgstr "quiero"
-#: ../../include/event.php:1016
-msgid "Completed"
-msgstr "Completado/a"
+#: ../../include/taxonomy.php:315
+msgid "wants"
+msgstr "quiere"
-#: ../../include/event.php:1017
-msgid "In Process"
-msgstr "En proceso"
+#: ../../include/taxonomy.php:316
+msgid "likes"
+msgstr "gusta de"
-#: ../../include/event.php:1018
-msgid "Cancelled"
-msgstr "Cancelado/a"
+#: ../../include/taxonomy.php:317
+msgid "dislikes"
+msgstr "no gusta de"
#: ../../include/account.php:28
msgid "Not a valid email address"
@@ -8919,96 +9551,6 @@ msgstr "Esta acción supera los límites establecidos por su plan de suscripció
msgid "This action is not available under your subscription plan."
msgstr "Esta acción no está disponible en su plan de suscripción."
-#: ../../include/follow.php:27
-msgid "Channel is blocked on this site."
-msgstr "El canal está bloqueado en este sitio."
-
-#: ../../include/follow.php:32
-msgid "Channel location missing."
-msgstr "Falta la dirección del canal."
-
-#: ../../include/follow.php:80
-msgid "Response from remote channel was incomplete."
-msgstr "Respuesta incompleta del canal."
-
-#: ../../include/follow.php:97
-msgid "Channel was deleted and no longer exists."
-msgstr "El canal ha sido eliminado y ya no existe."
-
-#: ../../include/follow.php:147 ../../include/follow.php:183
-msgid "Protocol disabled."
-msgstr "Protocolo deshabilitado."
-
-#: ../../include/follow.php:171
-msgid "Channel discovery failed."
-msgstr "El intento de acceder al canal ha fallado."
-
-#: ../../include/follow.php:210
-msgid "Cannot connect to yourself."
-msgstr "No puede conectarse consigo mismo."
-
-#: ../../include/attach.php:247 ../../include/attach.php:333
-msgid "Item was not found."
-msgstr "Elemento no encontrado."
-
-#: ../../include/attach.php:499
-msgid "No source file."
-msgstr "Ningún fichero de origen"
-
-#: ../../include/attach.php:521
-msgid "Cannot locate file to replace"
-msgstr "No se puede localizar el fichero que va a ser sustituido."
-
-#: ../../include/attach.php:539
-msgid "Cannot locate file to revise/update"
-msgstr "No se puede localizar el fichero para revisar/actualizar"
-
-#: ../../include/attach.php:674
-#, php-format
-msgid "File exceeds size limit of %d"
-msgstr "El fichero supera el limite de tamaño de %d"
-
-#: ../../include/attach.php:688
-#, php-format
-msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
-msgstr "Ha alcanzado su límite de %1$.0f Mbytes de almacenamiento de adjuntos."
-
-#: ../../include/attach.php:846
-msgid "File upload failed. Possible system limit or action terminated."
-msgstr "Error de carga, posiblemente por limite del sistema o porque la acción ha finalizado."
-
-#: ../../include/attach.php:859
-msgid "Stored file could not be verified. Upload failed."
-msgstr "El fichero almacenado no ha podido ser verificado. El envío ha fallado."
-
-#: ../../include/attach.php:915 ../../include/attach.php:931
-msgid "Path not available."
-msgstr "Ruta no disponible."
-
-#: ../../include/attach.php:977 ../../include/attach.php:1129
-msgid "Empty pathname"
-msgstr "Ruta vacía"
-
-#: ../../include/attach.php:1003
-msgid "duplicate filename or path"
-msgstr "Nombre duplicado de ruta o fichero"
-
-#: ../../include/attach.php:1025
-msgid "Path not found."
-msgstr "Ruta no encontrada"
-
-#: ../../include/attach.php:1083
-msgid "mkdir failed."
-msgstr "mkdir ha fallado."
-
-#: ../../include/attach.php:1087
-msgid "database storage failed."
-msgstr "el almacenamiento en la base de datos ha fallado."
-
-#: ../../include/attach.php:1135
-msgid "Empty path"
-msgstr "Ruta vacía"
-
#: ../../include/bbcode.php:123 ../../include/bbcode.php:878
#: ../../include/bbcode.php:881 ../../include/bbcode.php:886
#: ../../include/bbcode.php:889 ../../include/bbcode.php:892
@@ -9048,572 +9590,10 @@ msgstr "Pulsar para abrir/cerrar"
msgid "spoiler"
msgstr "spoiler"
-#: ../../include/bbcode.php:619
-msgid "Different viewers will see this text differently"
-msgstr "Visitantes diferentes verán este texto de forma distinta"
-
#: ../../include/bbcode.php:866
msgid "$1 wrote:"
msgstr "$1 escribió:"
-#: ../../include/items.php:897 ../../include/items.php:942
-msgid "(Unknown)"
-msgstr "(Desconocido)"
-
-#: ../../include/items.php:1141
-msgid "Visible to anybody on the internet."
-msgstr "Visible para cualquiera en internet."
-
-#: ../../include/items.php:1143
-msgid "Visible to you only."
-msgstr "Visible sólo para usted."
-
-#: ../../include/items.php:1145
-msgid "Visible to anybody in this network."
-msgstr "Visible para cualquiera en esta red."
-
-#: ../../include/items.php:1147
-msgid "Visible to anybody authenticated."
-msgstr "Visible para cualquiera que esté autenticado."
-
-#: ../../include/items.php:1149
-#, php-format
-msgid "Visible to anybody on %s."
-msgstr "Visible para cualquiera en %s."
-
-#: ../../include/items.php:1151
-msgid "Visible to all connections."
-msgstr "Visible para todas las conexiones."
-
-#: ../../include/items.php:1153
-msgid "Visible to approved connections."
-msgstr "Visible para las conexiones permitidas."
-
-#: ../../include/items.php:1155
-msgid "Visible to specific connections."
-msgstr "Visible para conexiones específicas."
-
-#: ../../include/items.php:3918
-msgid "Privacy group is empty."
-msgstr "El grupo de canales está vacío."
-
-#: ../../include/items.php:3925
-#, php-format
-msgid "Privacy group: %s"
-msgstr "Grupo de canales: %s"
-
-#: ../../include/items.php:3937
-msgid "Connection not found."
-msgstr "Conexión no encontrada"
-
-#: ../../include/items.php:4290
-msgid "profile photo"
-msgstr "foto del perfil"
-
-#: ../../include/oembed.php:336
-msgid "Embedded content"
-msgstr "Contenido incorporado"
-
-#: ../../include/oembed.php:345
-msgid "Embedding disabled"
-msgstr "Incrustación deshabilitada"
-
-#: ../../include/widgets.php:103
-msgid "System"
-msgstr "Sistema"
-
-#: ../../include/widgets.php:106
-msgid "New App"
-msgstr "Nueva aplicación (app)"
-
-#: ../../include/widgets.php:154
-msgid "Suggestions"
-msgstr "Sugerencias"
-
-#: ../../include/widgets.php:155
-msgid "See more..."
-msgstr "Ver más..."
-
-#: ../../include/widgets.php:175
-#, php-format
-msgid "You have %1$.0f of %2$.0f allowed connections."
-msgstr "Tiene %1$.0f de %2$.0f conexiones permitidas."
-
-#: ../../include/widgets.php:181
-msgid "Add New Connection"
-msgstr "Añadir nueva conexión"
-
-#: ../../include/widgets.php:182
-msgid "Enter channel address"
-msgstr "Dirección del canal"
-
-#: ../../include/widgets.php:183
-msgid "Examples: bob@example.com, https://example.com/barbara"
-msgstr "Ejemplos: manuel@ejemplo.com, https://ejemplo.com/carmen"
-
-#: ../../include/widgets.php:199
-msgid "Notes"
-msgstr "Notas"
-
-#: ../../include/widgets.php:273
-msgid "Remove term"
-msgstr "Eliminar término"
-
-#: ../../include/widgets.php:313 ../../include/widgets.php:432
-#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:94
-msgid "Everything"
-msgstr "Todo"
-
-#: ../../include/widgets.php:354
-msgid "Archives"
-msgstr "Hemeroteca"
-
-#: ../../include/widgets.php:516
-msgid "Refresh"
-msgstr "Recargar"
-
-#: ../../include/widgets.php:556
-msgid "Account settings"
-msgstr "Configuración de la cuenta"
-
-#: ../../include/widgets.php:562
-msgid "Channel settings"
-msgstr "Configuración del canal"
-
-#: ../../include/widgets.php:571
-msgid "Additional features"
-msgstr "Funcionalidades"
-
-#: ../../include/widgets.php:578
-msgid "Feature/Addon settings"
-msgstr "Complementos"
-
-#: ../../include/widgets.php:584
-msgid "Display settings"
-msgstr "Ajustes de visualización"
-
-#: ../../include/widgets.php:591
-msgid "Manage locations"
-msgstr "Gestión de ubicaciones (clones) del canal"
-
-#: ../../include/widgets.php:600
-msgid "Export channel"
-msgstr "Exportar canal"
-
-#: ../../include/widgets.php:607
-msgid "Connected apps"
-msgstr "Aplicaciones (apps) conectadas"
-
-#: ../../include/widgets.php:631
-msgid "Premium Channel Settings"
-msgstr "Configuración del canal premium"
-
-#: ../../include/widgets.php:660
-msgid "Private Mail Menu"
-msgstr "Menú de correo privado"
-
-#: ../../include/widgets.php:662
-msgid "Combined View"
-msgstr "Vista combinada"
-
-#: ../../include/widgets.php:694 ../../include/widgets.php:706
-msgid "Conversations"
-msgstr "Conversaciones"
-
-#: ../../include/widgets.php:698
-msgid "Received Messages"
-msgstr "Mensajes recibidos"
-
-#: ../../include/widgets.php:702
-msgid "Sent Messages"
-msgstr "Enviar mensajes"
-
-#: ../../include/widgets.php:716
-msgid "No messages."
-msgstr "Sin mensajes."
-
-#: ../../include/widgets.php:734
-msgid "Delete conversation"
-msgstr "Eliminar conversación"
-
-#: ../../include/widgets.php:760
-msgid "Events Tools"
-msgstr "Gestión de eventos"
-
-#: ../../include/widgets.php:761
-msgid "Export Calendar"
-msgstr "Exportar el calendario"
-
-#: ../../include/widgets.php:762
-msgid "Import Calendar"
-msgstr "Importar un calendario"
-
-#: ../../include/widgets.php:840
-msgid "Overview"
-msgstr "Resumen"
-
-#: ../../include/widgets.php:847
-msgid "Chat Members"
-msgstr "Miembros del chat"
-
-#: ../../include/widgets.php:869
-msgid "Wiki List"
-msgstr "Lista de wikis"
-
-#: ../../include/widgets.php:907
-msgid "Wiki Pages"
-msgstr "Páginas del wiki"
-
-#: ../../include/widgets.php:942
-msgid "Bookmarked Chatrooms"
-msgstr "Salas de chat preferidas"
-
-#: ../../include/widgets.php:965
-msgid "Suggested Chatrooms"
-msgstr "Salas de chat sugeridas"
-
-#: ../../include/widgets.php:1111 ../../include/widgets.php:1223
-msgid "photo/image"
-msgstr "foto/imagen"
-
-#: ../../include/widgets.php:1166
-msgid "Click to show more"
-msgstr "Hacer clic para ver más"
-
-#: ../../include/widgets.php:1317
-msgid "Rating Tools"
-msgstr "Valoraciones"
-
-#: ../../include/widgets.php:1321 ../../include/widgets.php:1323
-msgid "Rate Me"
-msgstr "Valorar este canal"
-
-#: ../../include/widgets.php:1326
-msgid "View Ratings"
-msgstr "Mostrar las valoraciones"
-
-#: ../../include/widgets.php:1410
-msgid "Forums"
-msgstr "Foros"
-
-#: ../../include/widgets.php:1439
-msgid "Tasks"
-msgstr "Tareas"
-
-#: ../../include/widgets.php:1448
-msgid "Documentation"
-msgstr "Documentación"
-
-#: ../../include/widgets.php:1450
-msgid "Project/Site Information"
-msgstr "Información sobre el proyecto o sitio"
-
-#: ../../include/widgets.php:1451
-msgid "For Members"
-msgstr "Para los miembros"
-
-#: ../../include/widgets.php:1452
-msgid "For Administrators"
-msgstr "Para los administradores"
-
-#: ../../include/widgets.php:1453
-msgid "For Developers"
-msgstr "Para los desarrolladores"
-
-#: ../../include/widgets.php:1477 ../../include/widgets.php:1515
-msgid "Member registrations waiting for confirmation"
-msgstr "Inscripciones de nuevos miembros pendientes de aprobación"
-
-#: ../../include/widgets.php:1483
-msgid "Inspect queue"
-msgstr "Examinar la cola"
-
-#: ../../include/widgets.php:1485
-msgid "DB updates"
-msgstr "Actualizaciones de la base de datos"
-
-#: ../../include/widgets.php:1511
-msgid "Plugin Features"
-msgstr "Extensiones"
-
-#: ../../include/activities.php:41
-msgid " and "
-msgstr " y "
-
-#: ../../include/activities.php:49
-msgid "public profile"
-msgstr "el perfil público"
-
-#: ../../include/activities.php:58
-#, php-format
-msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
-msgstr "%1$s ha cambiado %2$s a &ldquo;%3$s&rdquo;"
-
-#: ../../include/activities.php:59
-#, php-format
-msgid "Visit %1$s's %2$s"
-msgstr "Visitar %2$s de %1$s"
-
-#: ../../include/activities.php:62
-#, php-format
-msgid "%1$s has an updated %2$s, changing %3$s."
-msgstr "%1$s ha actualizado %2$s, cambiando %3$s."
-
-#: ../../include/bb2diaspora.php:398
-msgid "Attachments:"
-msgstr "Ficheros adjuntos:"
-
-#: ../../include/bb2diaspora.php:487
-msgid "$Projectname event notification:"
-msgstr "Notificación de eventos de $Projectname:"
-
-#: ../../include/js_strings.php:5
-msgid "Delete this item?"
-msgstr "¿Borrar este elemento?"
-
-#: ../../include/js_strings.php:8
-#, php-format
-msgid "%s show less"
-msgstr "%s mostrar menos"
-
-#: ../../include/js_strings.php:9
-#, php-format
-msgid "%s expand"
-msgstr "%s expandir"
-
-#: ../../include/js_strings.php:10
-#, php-format
-msgid "%s collapse"
-msgstr "%s contraer"
-
-#: ../../include/js_strings.php:11
-msgid "Password too short"
-msgstr "Contraseña demasiado corta"
-
-#: ../../include/js_strings.php:12
-msgid "Passwords do not match"
-msgstr "Las contraseñas no coinciden"
-
-#: ../../include/js_strings.php:13
-msgid "everybody"
-msgstr "cualquiera"
-
-#: ../../include/js_strings.php:14
-msgid "Secret Passphrase"
-msgstr "Contraseña secreta"
-
-#: ../../include/js_strings.php:15
-msgid "Passphrase hint"
-msgstr "Pista de contraseña"
-
-#: ../../include/js_strings.php:16
-msgid "Notice: Permissions have changed but have not yet been submitted."
-msgstr "Aviso: los permisos han cambiado pero aún no han sido enviados."
-
-#: ../../include/js_strings.php:17
-msgid "close all"
-msgstr "cerrar todo"
-
-#: ../../include/js_strings.php:18
-msgid "Nothing new here"
-msgstr "Nada nuevo por aquí"
-
-#: ../../include/js_strings.php:19
-msgid "Rate This Channel (this is public)"
-msgstr "Valorar este canal (esto es público)"
-
-#: ../../include/js_strings.php:21
-msgid "Describe (optional)"
-msgstr "Describir (opcional)"
-
-#: ../../include/js_strings.php:23
-msgid "Please enter a link URL"
-msgstr "Por favor, introduzca una dirección de enlace"
-
-#: ../../include/js_strings.php:24
-msgid "Unsaved changes. Are you sure you wish to leave this page?"
-msgstr "Cambios no guardados. ¿Está seguro de que desea abandonar la página?"
-
-#: ../../include/js_strings.php:27
-msgid "timeago.prefixAgo"
-msgstr "timeago.prefixAgo"
-
-#: ../../include/js_strings.php:28
-msgid "timeago.prefixFromNow"
-msgstr "timeago.prefixFromNow"
-
-#: ../../include/js_strings.php:29
-msgid "ago"
-msgstr "antes"
-
-#: ../../include/js_strings.php:30
-msgid "from now"
-msgstr "desde ahora"
-
-#: ../../include/js_strings.php:31
-msgid "less than a minute"
-msgstr "menos de un minuto"
-
-#: ../../include/js_strings.php:32
-msgid "about a minute"
-msgstr "alrededor de un minuto"
-
-#: ../../include/js_strings.php:33
-#, php-format
-msgid "%d minutes"
-msgstr "%d minutos"
-
-#: ../../include/js_strings.php:34
-msgid "about an hour"
-msgstr "alrededor de una hora"
-
-#: ../../include/js_strings.php:35
-#, php-format
-msgid "about %d hours"
-msgstr "alrededor de %d horas"
-
-#: ../../include/js_strings.php:36
-msgid "a day"
-msgstr "un día"
-
-#: ../../include/js_strings.php:37
-#, php-format
-msgid "%d days"
-msgstr "%d días"
-
-#: ../../include/js_strings.php:38
-msgid "about a month"
-msgstr "alrededor de un mes"
-
-#: ../../include/js_strings.php:39
-#, php-format
-msgid "%d months"
-msgstr "%d meses"
-
-#: ../../include/js_strings.php:40
-msgid "about a year"
-msgstr "alrededor de un año"
-
-#: ../../include/js_strings.php:41
-#, php-format
-msgid "%d years"
-msgstr "%d años"
-
-#: ../../include/js_strings.php:42
-msgid " "
-msgstr " "
-
-#: ../../include/js_strings.php:43
-msgid "timeago.numbers"
-msgstr "timeago.numbers"
-
-#: ../../include/js_strings.php:49
-msgctxt "long"
-msgid "May"
-msgstr "mayo"
-
-#: ../../include/js_strings.php:57
-msgid "Jan"
-msgstr "ene"
-
-#: ../../include/js_strings.php:58
-msgid "Feb"
-msgstr "feb"
-
-#: ../../include/js_strings.php:59
-msgid "Mar"
-msgstr "mar"
-
-#: ../../include/js_strings.php:60
-msgid "Apr"
-msgstr "abr"
-
-#: ../../include/js_strings.php:61
-msgctxt "short"
-msgid "May"
-msgstr "may"
-
-#: ../../include/js_strings.php:62
-msgid "Jun"
-msgstr "jun"
-
-#: ../../include/js_strings.php:63
-msgid "Jul"
-msgstr "jul"
-
-#: ../../include/js_strings.php:64
-msgid "Aug"
-msgstr "ago"
-
-#: ../../include/js_strings.php:65
-msgid "Sep"
-msgstr "sep"
-
-#: ../../include/js_strings.php:66
-msgid "Oct"
-msgstr "oct"
-
-#: ../../include/js_strings.php:67
-msgid "Nov"
-msgstr "nov"
-
-#: ../../include/js_strings.php:68
-msgid "Dec"
-msgstr "dic"
-
-#: ../../include/js_strings.php:76
-msgid "Sun"
-msgstr "dom"
-
-#: ../../include/js_strings.php:77
-msgid "Mon"
-msgstr "lun"
-
-#: ../../include/js_strings.php:78
-msgid "Tue"
-msgstr "mar"
-
-#: ../../include/js_strings.php:79
-msgid "Wed"
-msgstr "mié"
-
-#: ../../include/js_strings.php:80
-msgid "Thu"
-msgstr "jue"
-
-#: ../../include/js_strings.php:81
-msgid "Fri"
-msgstr "vie"
-
-#: ../../include/js_strings.php:82
-msgid "Sat"
-msgstr "sáb"
-
-#: ../../include/js_strings.php:83
-msgctxt "calendar"
-msgid "today"
-msgstr "hoy"
-
-#: ../../include/js_strings.php:84
-msgctxt "calendar"
-msgid "month"
-msgstr "mes"
-
-#: ../../include/js_strings.php:85
-msgctxt "calendar"
-msgid "week"
-msgstr "semana"
-
-#: ../../include/js_strings.php:86
-msgctxt "calendar"
-msgid "day"
-msgstr "día"
-
-#: ../../include/js_strings.php:87
-msgctxt "calendar"
-msgid "All day"
-msgstr "Todos los días"
-
#: ../../include/contact_widgets.php:11
#, php-format
msgid "%d invitation available"
@@ -9692,341 +9672,372 @@ msgstr "No ha sido posible determinar el remitente. "
msgid "Stored post could not be verified."
msgstr "No se han podido verificar las publicaciones guardadas."
-#: ../../include/acl_selectors.php:269
-msgid "Who can see this?"
-msgstr "¿Quién puede ver esto?"
+#: ../../include/import.php:30
+msgid ""
+"Cannot create a duplicate channel identifier on this system. Import failed."
+msgstr "No se ha podido crear un canal con un identificador que ya existe en este sistema. La importación ha fallado."
-#: ../../include/acl_selectors.php:270
-msgid "Custom selection"
-msgstr "Selección personalizada"
+#: ../../include/import.php:97
+msgid "Channel clone failed. Import failed."
+msgstr "La clonación del canal no ha salido bien. La importación ha fallado."
-#: ../../include/acl_selectors.php:271
-msgid ""
-"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit"
-" the scope of \"Show\"."
-msgstr "Seleccione \"Mostrar\" para permitir la visualización. La opción \"No mostrar\" le permite anular y limitar el alcance de \"Mostrar\"."
+#: ../../include/nav.php:84 ../../include/nav.php:117 ../../boot.php:1737
+msgid "Logout"
+msgstr "Finalizar sesión"
-#: ../../include/acl_selectors.php:272
-msgid "Show"
-msgstr "Mostrar"
+#: ../../include/nav.php:84 ../../include/nav.php:117
+msgid "End this session"
+msgstr "Finalizar esta sesión"
-#: ../../include/acl_selectors.php:273
-msgid "Don't show"
-msgstr "No mostrar"
+#: ../../include/nav.php:87 ../../include/nav.php:148
+msgid "Home"
+msgstr "Inicio"
-#: ../../include/acl_selectors.php:279
-msgid "Other networks and post services"
-msgstr "Otras redes y servicios de publicación"
+#: ../../include/nav.php:87
+msgid "Your posts and conversations"
+msgstr "Sus publicaciones y conversaciones"
-#: ../../include/acl_selectors.php:309
-#, php-format
-msgid ""
-"Post permissions %s cannot be changed %s after a post is shared.</br />These"
-" permissions set who is allowed to view the post."
-msgstr "Los permisos de la entrada %s no se pueden cambiar %s una vez que se ha compartido.</br /> Estos permisos establecen quién está autorizado para ver el mensaje."
+#: ../../include/nav.php:88
+msgid "Your profile page"
+msgstr "Su página del perfil"
-#: ../../include/datetime.php:135
-msgid "Birthday"
-msgstr "Cumpleaños"
+#: ../../include/nav.php:90
+msgid "Manage/Edit profiles"
+msgstr "Administrar/editar perfiles"
-#: ../../include/datetime.php:137
-msgid "Age: "
-msgstr "Edad:"
+#: ../../include/nav.php:92
+msgid "Edit your profile"
+msgstr "Editar su perfil"
-#: ../../include/datetime.php:139
-msgid "YYYY-MM-DD or MM-DD"
-msgstr "AAAA-MM-DD o MM-DD"
+#: ../../include/nav.php:94
+msgid "Your photos"
+msgstr "Sus fotos"
-#: ../../include/datetime.php:272 ../../boot.php:2479
-msgid "never"
-msgstr "nunca"
+#: ../../include/nav.php:95
+msgid "Your files"
+msgstr "Sus ficheros"
-#: ../../include/datetime.php:278
-msgid "less than a second ago"
-msgstr "hace un instante"
+#: ../../include/nav.php:98
+msgid "Your chatrooms"
+msgstr "Sus salas de chat"
-#: ../../include/datetime.php:296
+#: ../../include/nav.php:104
+msgid "Your bookmarks"
+msgstr "Sus marcadores"
+
+#: ../../include/nav.php:108
+msgid "Your webpages"
+msgstr "Sus páginas web"
+
+#: ../../include/nav.php:110
+msgid "Your wiki"
+msgstr "Su wiki"
+
+#: ../../include/nav.php:114
+msgid "Sign in"
+msgstr "Acceder"
+
+#: ../../include/nav.php:131
#, php-format
-msgctxt "e.g. 22 hours ago, 1 minute ago"
-msgid "%1$d %2$s ago"
-msgstr "hace %1$d %2$s"
+msgid "%s - click to logout"
+msgstr "%s - pulsar para finalizar sesión"
-#: ../../include/datetime.php:307
-msgctxt "relative_date"
-msgid "year"
-msgid_plural "years"
-msgstr[0] "año"
-msgstr[1] "años"
+#: ../../include/nav.php:134
+msgid "Remote authentication"
+msgstr "Acceder desde su servidor"
-#: ../../include/datetime.php:310
-msgctxt "relative_date"
-msgid "month"
-msgid_plural "months"
-msgstr[0] "mes"
-msgstr[1] "meses"
+#: ../../include/nav.php:134
+msgid "Click to authenticate to your home hub"
+msgstr "Pulsar para identificarse en su servidor de inicio"
-#: ../../include/datetime.php:313
-msgctxt "relative_date"
-msgid "week"
-msgid_plural "weeks"
-msgstr[0] "semana"
-msgstr[1] "semanas"
+#: ../../include/nav.php:148
+msgid "Home Page"
+msgstr "Página de inicio"
-#: ../../include/datetime.php:316
-msgctxt "relative_date"
-msgid "day"
-msgid_plural "days"
-msgstr[0] "día"
-msgstr[1] "días"
+#: ../../include/nav.php:151
+msgid "Create an account"
+msgstr "Crear una cuenta"
-#: ../../include/datetime.php:319
-msgctxt "relative_date"
-msgid "hour"
-msgid_plural "hours"
-msgstr[0] "hora"
-msgstr[1] "horas"
+#: ../../include/nav.php:163
+msgid "Help and documentation"
+msgstr "Ayuda y documentación"
-#: ../../include/datetime.php:322
-msgctxt "relative_date"
-msgid "minute"
-msgid_plural "minutes"
-msgstr[0] "minuto"
-msgstr[1] "minutos"
+#: ../../include/nav.php:167
+msgid "Applications, utilities, links, games"
+msgstr "Aplicaciones, utilidades, enlaces, juegos"
-#: ../../include/datetime.php:325
-msgctxt "relative_date"
-msgid "second"
-msgid_plural "seconds"
-msgstr[0] "segundo"
-msgstr[1] "segundos"
+#: ../../include/nav.php:169
+msgid "Search site @name, #tag, ?docs, content"
+msgstr "Buscar en el sitio por @nombre, #etiqueta, ?ayuda o contenido"
-#: ../../include/datetime.php:562
-#, php-format
-msgid "%1$s's birthday"
-msgstr "Cumpleaños de %1$s"
+#: ../../include/nav.php:171
+msgid "Channel Directory"
+msgstr "Directorio de canales"
-#: ../../include/datetime.php:563
-#, php-format
-msgid "Happy Birthday %1$s"
-msgstr "Feliz cumpleaños %1$s"
+#: ../../include/nav.php:183
+msgid "Your grid"
+msgstr "Mi red"
-#: ../../include/api.php:1327
-msgid "Public Timeline"
-msgstr "Cronología pública"
+#: ../../include/nav.php:184
+msgid "Mark all grid notifications seen"
+msgstr "Marcar todas las notificaciones de la red como vistas"
-#: ../../include/zot.php:697
-msgid "Invalid data packet"
-msgstr "Paquete de datos no válido"
+#: ../../include/nav.php:186
+msgid "Channel home"
+msgstr "Mi canal"
-#: ../../include/zot.php:713
-msgid "Unable to verify channel signature"
-msgstr "No ha sido posible de verificar la firma del canal"
+#: ../../include/nav.php:187
+msgid "Mark all channel notifications seen"
+msgstr "Marcar todas las notificaciones del canal como leídas"
-#: ../../include/zot.php:2326
-#, php-format
-msgid "Unable to verify site signature for %s"
-msgstr "No ha sido posible de verificar la firma del sitio para %s"
+#: ../../include/nav.php:193
+msgid "Notices"
+msgstr "Avisos"
-#: ../../include/zot.php:3703
-msgid "invalid target signature"
-msgstr "La firma recibida no es válida"
+#: ../../include/nav.php:193
+msgid "Notifications"
+msgstr "Notificaciones"
+
+#: ../../include/nav.php:194
+msgid "See all notifications"
+msgstr "Ver todas las notificaciones"
+
+#: ../../include/nav.php:197
+msgid "Private mail"
+msgstr "Correo privado"
+
+#: ../../include/nav.php:198
+msgid "See all private messages"
+msgstr "Ver todas los mensajes privados"
+
+#: ../../include/nav.php:199
+msgid "Mark all private messages seen"
+msgstr "Marcar todos los mensajes privados como leídos"
+
+#: ../../include/nav.php:205
+msgid "Event Calendar"
+msgstr "Calendario de eventos"
+
+#: ../../include/nav.php:206
+msgid "See all events"
+msgstr "Ver todos los eventos"
+
+#: ../../include/nav.php:207
+msgid "Mark all events seen"
+msgstr "Marcar todos los eventos como leidos"
+
+#: ../../include/nav.php:210
+msgid "Manage Your Channels"
+msgstr "Gestionar sus canales"
+
+#: ../../include/nav.php:212
+msgid "Account/Channel Settings"
+msgstr "Ajustes de cuenta/canales"
-#: ../../view/theme/redbasic/php/config.php:82
+#: ../../include/nav.php:220
+msgid "Site Setup and Configuration"
+msgstr "Ajustes y configuración del sitio"
+
+#: ../../include/nav.php:256
+msgid "@name, #tag, ?doc, content"
+msgstr "@nombre, #etiqueta, ?ayuda, contenido"
+
+#: ../../include/nav.php:257
+msgid "Please wait..."
+msgstr "Espere por favor…"
+
+#: ../../view/theme/redbasic/php/config.php:6
msgid "Focus (Hubzilla default)"
msgstr "Focus (predefinido)"
-#: ../../view/theme/redbasic/php/config.php:103
+#: ../../view/theme/redbasic/php/config.php:110
msgid "Theme settings"
msgstr "Ajustes del tema"
-#: ../../view/theme/redbasic/php/config.php:104
-msgid "Select scheme"
-msgstr "Elegir un esquema"
-
-#: ../../view/theme/redbasic/php/config.php:105
+#: ../../view/theme/redbasic/php/config.php:111
msgid "Narrow navbar"
msgstr "Estrechar la barra de navegación"
-#: ../../view/theme/redbasic/php/config.php:106
+#: ../../view/theme/redbasic/php/config.php:112
msgid "Navigation bar background color"
msgstr "Color de fondo de la barra de navegación"
-#: ../../view/theme/redbasic/php/config.php:107
+#: ../../view/theme/redbasic/php/config.php:113
msgid "Navigation bar gradient top color"
msgstr "Color superior del gradiente de la barra de navegación"
-#: ../../view/theme/redbasic/php/config.php:108
+#: ../../view/theme/redbasic/php/config.php:114
msgid "Navigation bar gradient bottom color"
msgstr "Color inferior del gradiente de la barra de navegación"
-#: ../../view/theme/redbasic/php/config.php:109
+#: ../../view/theme/redbasic/php/config.php:115
msgid "Navigation active button gradient top color"
msgstr "Color superior del gradiente del botón activo de navegación"
-#: ../../view/theme/redbasic/php/config.php:110
+#: ../../view/theme/redbasic/php/config.php:116
msgid "Navigation active button gradient bottom color"
msgstr "Color inferior del gradiente del botón activo de navegación"
-#: ../../view/theme/redbasic/php/config.php:111
+#: ../../view/theme/redbasic/php/config.php:117
msgid "Navigation bar border color "
msgstr "Color del borde de la barra de navegación"
-#: ../../view/theme/redbasic/php/config.php:112
+#: ../../view/theme/redbasic/php/config.php:118
msgid "Navigation bar icon color "
msgstr "Color del icono de la barra de navegación"
-#: ../../view/theme/redbasic/php/config.php:113
+#: ../../view/theme/redbasic/php/config.php:119
msgid "Navigation bar active icon color "
msgstr "Color del icono activo de la barra de navegación"
-#: ../../view/theme/redbasic/php/config.php:114
+#: ../../view/theme/redbasic/php/config.php:120
msgid "link color"
msgstr "Color del enlace"
-#: ../../view/theme/redbasic/php/config.php:115
+#: ../../view/theme/redbasic/php/config.php:121
msgid "Set font-color for banner"
msgstr "Ajustar el color del tipo de letra para el \"banner\""
-#: ../../view/theme/redbasic/php/config.php:116
+#: ../../view/theme/redbasic/php/config.php:122
msgid "Set the background color"
msgstr "Ajustar el color de fondo"
-#: ../../view/theme/redbasic/php/config.php:117
+#: ../../view/theme/redbasic/php/config.php:123
msgid "Set the background image"
msgstr "Ajustar la imagen de fondo"
-#: ../../view/theme/redbasic/php/config.php:118
+#: ../../view/theme/redbasic/php/config.php:124
msgid "Set the background color of items"
msgstr "Ajustar el color de los elementos de fondo"
-#: ../../view/theme/redbasic/php/config.php:119
+#: ../../view/theme/redbasic/php/config.php:125
msgid "Set the background color of comments"
msgstr "Ajustar el color de fondo de los comentarios"
-#: ../../view/theme/redbasic/php/config.php:120
+#: ../../view/theme/redbasic/php/config.php:126
msgid "Set the border color of comments"
msgstr "Ajustar el color del borde de los comentarios"
-#: ../../view/theme/redbasic/php/config.php:121
+#: ../../view/theme/redbasic/php/config.php:127
msgid "Set the indent for comments"
msgstr "Ajustar la indentación de los comentarios"
-#: ../../view/theme/redbasic/php/config.php:122
+#: ../../view/theme/redbasic/php/config.php:128
msgid "Set the basic color for item icons"
msgstr "Ajustar el color básico para los iconos de los elementos"
-#: ../../view/theme/redbasic/php/config.php:123
+#: ../../view/theme/redbasic/php/config.php:129
msgid "Set the hover color for item icons"
msgstr "Ajustar el color flotante para los iconos de los elementos"
-#: ../../view/theme/redbasic/php/config.php:124
+#: ../../view/theme/redbasic/php/config.php:130
msgid "Set font-size for the entire application"
msgstr "Ajustar el tamaño de letra para toda la aplicación"
-#: ../../view/theme/redbasic/php/config.php:124
+#: ../../view/theme/redbasic/php/config.php:130
msgid "Example: 14px"
msgstr "Ejemplo: 14px"
-#: ../../view/theme/redbasic/php/config.php:125
+#: ../../view/theme/redbasic/php/config.php:131
msgid "Set font-size for posts and comments"
msgstr "Ajustar el tamaño del tipo de letra para publicaciones y comentarios"
-#: ../../view/theme/redbasic/php/config.php:126
+#: ../../view/theme/redbasic/php/config.php:132
msgid "Set font-color for posts and comments"
msgstr "Establecer el color de la letra para publicaciones y comentarios"
-#: ../../view/theme/redbasic/php/config.php:127
+#: ../../view/theme/redbasic/php/config.php:133
msgid "Set radius of corners"
msgstr "Establecer el radio de curvatura de las esquinas"
-#: ../../view/theme/redbasic/php/config.php:128
+#: ../../view/theme/redbasic/php/config.php:134
msgid "Set shadow depth of photos"
msgstr "Ajustar la profundidad de sombras de las fotos"
-#: ../../view/theme/redbasic/php/config.php:129
+#: ../../view/theme/redbasic/php/config.php:135
msgid "Set maximum width of content region in pixel"
msgstr "Ajustar la anchura máxima de la región de contenido, en pixels"
-#: ../../view/theme/redbasic/php/config.php:129
+#: ../../view/theme/redbasic/php/config.php:135
msgid "Leave empty for default width"
msgstr "Dejar en blanco para la anchura predeterminada"
-#: ../../view/theme/redbasic/php/config.php:130
+#: ../../view/theme/redbasic/php/config.php:136
msgid "Left align page content"
msgstr "Alinear a la izquierda el contenido de la página"
-#: ../../view/theme/redbasic/php/config.php:131
+#: ../../view/theme/redbasic/php/config.php:137
msgid "Set minimum opacity of nav bar - to hide it"
msgstr "Ajustar la opacidad mínima de la barra de navegación - para ocultarla"
-#: ../../view/theme/redbasic/php/config.php:132
+#: ../../view/theme/redbasic/php/config.php:138
msgid "Set size of conversation author photo"
msgstr "Ajustar el tamaño de la foto del autor de la conversación"
-#: ../../view/theme/redbasic/php/config.php:133
+#: ../../view/theme/redbasic/php/config.php:139
msgid "Set size of followup author photos"
msgstr "Ajustar el tamaño de foto de los seguidores del autor"
-#: ../../boot.php:1163
+#: ../../boot.php:1194
#, php-format
msgctxt "opensearch"
msgid "Search %1$s (%2$s)"
msgstr "Buscar %1$s (%2$s)"
-#: ../../boot.php:1163
+#: ../../boot.php:1194
msgctxt "opensearch"
msgid "$Projectname"
msgstr "$Projectname"
-#: ../../boot.php:1481
+#: ../../boot.php:1512
#, php-format
msgid "Update %s failed. See error logs."
msgstr "La actualización %s ha fallado. Mire el informe de errores."
-#: ../../boot.php:1484
+#: ../../boot.php:1515
#, php-format
msgid "Update Error at %s"
msgstr "Error de actualización en %s"
-#: ../../boot.php:1685
+#: ../../boot.php:1719
msgid ""
"Create an account to access services and applications within the Hubzilla"
msgstr "Crear una cuenta para acceder a los servicios y aplicaciones dentro de Hubzilla"
-#: ../../boot.php:1706
+#: ../../boot.php:1740
msgid "Login/Email"
msgstr "Inicio de sesión / Correo electrónico"
-#: ../../boot.php:1707
+#: ../../boot.php:1741
msgid "Password"
msgstr "Contraseña"
-#: ../../boot.php:1708
+#: ../../boot.php:1742
msgid "Remember me"
msgstr "Recordarme"
-#: ../../boot.php:1711
+#: ../../boot.php:1745
msgid "Forgot your password?"
msgstr "¿Olvidó su contraseña?"
-#: ../../boot.php:2277
+#: ../../boot.php:2314
msgid "toggle mobile"
msgstr "cambiar a modo móvil"
-#: ../../boot.php:2432
+#: ../../boot.php:2469
msgid "Website SSL certificate is not valid. Please correct."
msgstr "El certificado SSL del sitio web no es válido. Por favor, solucione el problema."
-#: ../../boot.php:2435
+#: ../../boot.php:2472
#, php-format
msgid "[hubzilla] Website SSL error for %s"
msgstr "[hubzilla] Error SSL del sitio web en %s"
-#: ../../boot.php:2478
+#: ../../boot.php:2576
msgid "Cron/Scheduled tasks not running."
msgstr "Las tareas del Planificador/Cron no están funcionando."
-#: ../../boot.php:2482
+#: ../../boot.php:2580
#, php-format
msgid "[hubzilla] Cron tasks not running on %s"
msgstr "[hubzilla] Las tareas de Cron no están funcionando en %s"
diff --git a/view/es-es/hstrings.php b/view/es-es/hstrings.php
index f53ce0b18..d8f8d2d10 100644
--- a/view/es-es/hstrings.php
+++ b/view/es-es/hstrings.php
@@ -61,203 +61,92 @@ App::$strings["You are using %1\$s of %2\$s available file storage. (%3\$s&#37;)
App::$strings["WARNING:"] = "ATENCIÓN:";
App::$strings["Create new folder"] = "Crear nueva carpeta";
App::$strings["Upload file"] = "Subir fichero";
-App::$strings["Permission denied"] = "Permiso denegado";
+App::$strings["Drop files here to immediately upload"] = "Arrastre los ficheros aquí para subirlos de forma inmediata";
App::$strings["Permission denied."] = "Acceso denegado.";
App::$strings["Not Found"] = "No encontrado";
App::$strings["Page not found."] = "Página no encontrada.";
+App::$strings["Permission denied"] = "Permiso denegado";
App::$strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "La autenticación desde su servidor está bloqueada. Ha iniciado sesión localmente. Por favor, salga de la sesión y vuelva a intentarlo.";
App::$strings["Welcome %s. Remote authentication successful."] = "Bienvenido %s. La identificación desde su servidor se ha llevado a cabo correctamente.";
App::$strings["Requested profile is not available."] = "El perfil solicitado no está disponible.";
App::$strings["Some blurb about what to do when you're new here"] = "Algunas propuestas para el nuevo usuario sobre qué se puede hacer aquí";
App::$strings["Away"] = "Ausente";
App::$strings["Online"] = "Conectado/a";
-App::$strings["Could not access contact record."] = "No se ha podido acceder al registro de contacto.";
-App::$strings["Could not locate selected profile."] = "No se ha podido localizar el perfil seleccionado.";
-App::$strings["Connection updated."] = "Conexión actualizada.";
-App::$strings["Failed to update connection record."] = "Error al actualizar el registro de la conexión.";
-App::$strings["is now connected to"] = "ahora está conectado/a";
-App::$strings["No"] = "No";
+App::$strings["Invalid message"] = "Mensaje no válido";
+App::$strings["no results"] = "sin resultados";
+App::$strings["channel sync processed"] = "se ha realizado la sincronización del canal";
+App::$strings["queued"] = "encolado";
+App::$strings["posted"] = "enviado";
+App::$strings["accepted for delivery"] = "aceptado para el envío";
+App::$strings["updated"] = "actualizado";
+App::$strings["update ignored"] = "actualización ignorada";
+App::$strings["permission denied"] = "permiso denegado";
+App::$strings["recipient not found"] = "destinatario no encontrado";
+App::$strings["mail recalled"] = "mensaje de correo revocado";
+App::$strings["duplicate mail received"] = "se ha recibido mensaje duplicado";
+App::$strings["mail delivered"] = "correo enviado";
+App::$strings["Delivery report for %1\$s"] = "Informe de entrega para %1\$s";
+App::$strings["Options"] = "Opciones";
+App::$strings["Redeliver"] = "Volver a enviar";
+App::$strings["Fetching URL returns error: %1\$s"] = "Al intentar obtener la dirección, retorna el error: %1\$s";
+App::$strings["Authorize application connection"] = "Autorizar una conexión de aplicación";
+App::$strings["Return to your app and insert this Security Code:"] = "Volver a su aplicación e introducir este código de seguridad:";
+App::$strings["Please login to continue."] = "Por favor inicie sesión para continuar.";
+App::$strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "¿Desea autorizar a esta aplicación a acceder a sus publicaciones y contactos, y/o crear nuevas publicaciones por usted?";
App::$strings["Yes"] = "Sí";
-App::$strings["Could not access address book record."] = "No se pudo acceder al registro en su libreta de direcciones.";
-App::$strings["Refresh failed - channel is currently unavailable."] = "Recarga fallida - no se puede encontrar el canal en este momento.";
-App::$strings["Unable to set address book parameters."] = "No ha sido posible establecer los parámetros de la libreta de direcciones.";
-App::$strings["Connection has been removed."] = "La conexión ha sido eliminada.";
-App::$strings["View Profile"] = "Ver el perfil";
-App::$strings["View %s's profile"] = "Ver el perfil de %s";
-App::$strings["Refresh Permissions"] = "Recargar los permisos";
-App::$strings["Fetch updated permissions"] = "Obtener los permisos actualizados";
-App::$strings["Recent Activity"] = "Actividad reciente";
-App::$strings["View recent posts and comments"] = "Ver publicaciones y comentarios recientes";
-App::$strings["Unblock"] = "Desbloquear";
-App::$strings["Block"] = "Bloquear";
-App::$strings["Block (or Unblock) all communications with this connection"] = "Bloquear (o desbloquear) todas las comunicaciones con esta conexión";
-App::$strings["This connection is blocked!"] = "¡Esta conexión está bloqueada!";
-App::$strings["Unignore"] = "Dejar de ignorar";
-App::$strings["Ignore"] = "Ignorar";
-App::$strings["Ignore (or Unignore) all inbound communications from this connection"] = "Ignorar (o dejar de ignorar) todas las comunicaciones entrantes de esta conexión";
-App::$strings["This connection is ignored!"] = "¡Esta conexión es ignorada!";
-App::$strings["Unarchive"] = "Desarchivar";
-App::$strings["Archive"] = "Archivar";
-App::$strings["Archive (or Unarchive) this connection - mark channel dead but keep content"] = "Archiva (o desarchiva) esta conexión - marca el canal como muerto aunque mantiene sus contenidos";
-App::$strings["This connection is archived!"] = "¡Esta conexión esta archivada!";
-App::$strings["Unhide"] = "Mostrar";
-App::$strings["Hide"] = "Ocultar";
-App::$strings["Hide or Unhide this connection from your other connections"] = "Ocultar o mostrar esta conexión a sus otras conexiones";
-App::$strings["This connection is hidden!"] = "¡Esta conexión está oculta!";
-App::$strings["Delete this connection"] = "Eliminar esta conexión";
-App::$strings["Me"] = "Yo";
-App::$strings["Family"] = "Familia";
-App::$strings["Friends"] = "Amigos/as";
-App::$strings["Acquaintances"] = "Conocidos/as";
-App::$strings["All"] = "Todos/as";
-App::$strings["Approve this connection"] = "Aprobar esta conexión";
-App::$strings["Accept connection to allow communication"] = "Aceptar la conexión para permitir la comunicación";
-App::$strings["Set Affinity"] = "Ajustar la afinidad";
-App::$strings["Set Profile"] = "Ajustar el perfil";
-App::$strings["Set Affinity & Profile"] = "Ajustar la afinidad y el perfil";
-App::$strings["none"] = "-";
-App::$strings["Connection Default Permissions"] = "Permisos predeterminados de conexión";
-App::$strings["Connection: %s"] = "Conexión: %s";
-App::$strings["Apply these permissions automatically"] = "Aplicar estos permisos automaticamente";
-App::$strings["Connection requests will be approved without your interaction"] = "Las solicitudes de conexión serán aprobadas sin su intervención";
-App::$strings["This connection's primary address is"] = "La dirección primaria de esta conexión es";
-App::$strings["Available locations:"] = "Ubicaciones disponibles:";
-App::$strings["The permissions indicated on this page will be applied to all new connections."] = "Los permisos indicados en esta página serán aplicados en todas las nuevas conexiones.";
-App::$strings["Connection Tools"] = "Gestión de las conexiones";
-App::$strings["Slide to adjust your degree of friendship"] = "Deslizar para ajustar el grado de amistad";
+App::$strings["No"] = "No";
App::$strings["Rating"] = "Valoración";
-App::$strings["Slide to adjust your rating"] = "Deslizar para ajustar su valoración";
-App::$strings["Optionally explain your rating"] = "Opcionalmente, puede explicar su valoración";
-App::$strings["Custom Filter"] = "Filtro personalizado";
-App::$strings["Only import posts with this text"] = "Importar solo entradas que contengan este texto";
-App::$strings["words one per line or #tags or /patterns/ or lang=xx, leave blank to import all posts"] = "Una sola opción por línea: palabras, #etiquetas, /patrones/ o lang=xx. Dejar en blanco para importarlo todo";
-App::$strings["Do not import posts with this text"] = "No importar entradas que contengan este texto";
-App::$strings["This information is public!"] = "¡Esta información es pública!";
-App::$strings["Connection Pending Approval"] = "Conexión pendiente de aprobación";
-App::$strings["inherited"] = "heredado";
+App::$strings["Website:"] = "Sitio web:";
+App::$strings["Remote Channel [%s] (not yet known on this site)"] = "Canal remoto [%s] (aún no es conocido en este sitio)";
+App::$strings["Rating (this information is public)"] = "Valoración (esta información es pública)";
+App::$strings["Optionally explain your rating (this information is public)"] = "Opcionalmente puede explicar su valoración (esta información es pública)";
App::$strings["Submit"] = "Enviar";
-App::$strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Por favor, escoja el perfil que quiere mostrar a %s cuando esté viendo su perfil de forma segura.";
-App::$strings["Their Settings"] = "Sus ajustes";
-App::$strings["My Settings"] = "Mis ajustes";
-App::$strings["Individual Permissions"] = "Permisos individuales";
-App::$strings["Some permissions may be inherited from your channel's <a href=\"settings\"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can <strong>not</strong> change those settings here."] = "Algunos permisos pueden ser heredados de los <a href=\"settings\"><strong>ajustes de privacidad</strong></a> de sus canales, los cuales tienen una prioridad más alta que los ajustes individuales. <strong>No</strong> puede cambiar estos ajustes aquí.";
-App::$strings["Some permissions may be inherited from your channel's <a href=\"settings\"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can change those settings here but they wont have any impact unless the inherited setting changes."] = "Algunos permisos pueden ser heredados de los <a href=\"settings\"><strong>ajustes de privacidad</strong></a> de sus canales, los cuales tienen una prioridad más alta que los ajustes individuales. Puede cambiar estos ajustes aquí, pero no tendrán ningún consecuencia hasta que cambie los ajustes heredados.";
-App::$strings["Last update:"] = "Última actualización:";
-App::$strings["Public access denied."] = "Acceso público denegado.";
-App::$strings["Item not found."] = "Elemento no encontrado.";
-App::$strings["First Name"] = "Nombre";
-App::$strings["Last Name"] = "Apellido";
-App::$strings["Nickname"] = "Sobrenombre o Alias";
-App::$strings["Full Name"] = "Nombre completo";
-App::$strings["Email"] = "Correo electrónico";
-App::$strings["Profile Photo"] = "Foto del perfil";
-App::$strings["Profile Photo 16px"] = "Foto del perfil 16px";
-App::$strings["Profile Photo 32px"] = "Foto del perfil 32px";
-App::$strings["Profile Photo 48px"] = "Foto del perfil 48px";
-App::$strings["Profile Photo 64px"] = "Foto del perfil 64px";
-App::$strings["Profile Photo 80px"] = "Foto del perfil 80px";
-App::$strings["Profile Photo 128px"] = "Foto del perfil 128px";
-App::$strings["Timezone"] = "Huso horario";
-App::$strings["Homepage URL"] = "Dirección de la página personal";
-App::$strings["Language"] = "Idioma";
-App::$strings["Birth Year"] = "Año de nacimiento";
-App::$strings["Birth Month"] = "Mes de nacimiento";
-App::$strings["Birth Day"] = "Día de nacimiento";
-App::$strings["Birthdate"] = "Fecha de nacimiento";
-App::$strings["Gender"] = "Género";
-App::$strings["Male"] = "Hombre";
-App::$strings["Female"] = "Mujer";
-App::$strings["Channel added."] = "Canal añadido.";
-App::$strings["%d rating"] = array(
- 0 => "%d valoración",
- 1 => "%d valoraciones",
-);
-App::$strings["Gender: "] = "Género:";
-App::$strings["Status: "] = "Estado:";
-App::$strings["Homepage: "] = "Página personal:";
-App::$strings["Age:"] = "Edad:";
-App::$strings["Location:"] = "Ubicación:";
-App::$strings["Description:"] = "Descripción:";
-App::$strings["Hometown:"] = "Lugar de nacimiento:";
-App::$strings["About:"] = "Sobre mí:";
-App::$strings["Connect"] = "Conectar";
-App::$strings["Public Forum:"] = "Foro público:";
-App::$strings["Keywords: "] = "Palabras clave:";
-App::$strings["Don't suggest"] = "No sugerir:";
-App::$strings["Common connections:"] = "Conexiones comunes:";
-App::$strings["Global Directory"] = "Directorio global:";
-App::$strings["Local Directory"] = "Directorio local:";
-App::$strings["Find"] = "Encontrar";
-App::$strings["Finding:"] = "Encontrar:";
-App::$strings["Channel Suggestions"] = "Sugerencias de canales";
-App::$strings["next page"] = "siguiente página";
-App::$strings["previous page"] = "página anterior";
-App::$strings["Sort options"] = "Ordenar opciones";
-App::$strings["Alphabetic"] = "Alfabético";
-App::$strings["Reverse Alphabetic"] = "Alfabético inverso";
-App::$strings["Newest to Oldest"] = "De más nuevo a más antiguo";
-App::$strings["Oldest to Newest"] = "De más antiguo a más nuevo";
-App::$strings["No entries (some entries may be hidden)."] = "Sin entradas (algunas entradas pueden estar ocultas).";
-App::$strings["Continue"] = "Continuar";
-App::$strings["Premium Channel Setup"] = "Configuración del canal premium";
-App::$strings["Enable premium channel connection restrictions"] = "Habilitar restricciones de conexión del canal premium";
-App::$strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Por favor introduzca sus restricciones o condiciones, como recibo de paypal, normas de uso, etc.";
-App::$strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Este canal puede requerir antes de conectar unos pasos adicionales o el conocimiento de las siguientes condiciones:";
-App::$strings["Potential connections will then see the following text before proceeding:"] = "Las posibles conexiones verán, por tanto, el siguiente texto antes de proceder:";
-App::$strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Al continuar, certifico que he cumplido con todas las instrucciones proporcionadas en esta página.";
-App::$strings["(No specific instructions have been provided by the channel owner.)"] = "(No ha sido proporcionada ninguna instrucción específica por el propietario del canal.)";
-App::$strings["Restricted or Premium Channel"] = "Canal premium o restringido";
-App::$strings["Calendar entries imported."] = "Entradas de calendario importadas.";
-App::$strings["No calendar entries found."] = "No se han encontrado entradas de calendario.";
-App::$strings["Event can not end before it has started."] = "Un evento no puede terminar antes de que haya comenzado.";
-App::$strings["Unable to generate preview."] = "No se puede crear la vista previa.";
-App::$strings["Event title and start time are required."] = "Se requieren el título del evento y su hora de inicio.";
-App::$strings["Event not found."] = "Evento no encontrado.";
-App::$strings["event"] = "evento";
-App::$strings["Edit event title"] = "Editar el título del evento";
-App::$strings["Event title"] = "Título del evento";
-App::$strings["Required"] = "Obligatorio";
-App::$strings["Categories (comma-separated list)"] = "Categorías (lista separada por comas)";
-App::$strings["Edit Category"] = "Editar la categoría";
-App::$strings["Category"] = "Categoría";
-App::$strings["Edit start date and time"] = "Modificar la fecha y hora de comienzo";
-App::$strings["Start date and time"] = "Fecha y hora de comienzo";
-App::$strings["Finish date and time are not known or not relevant"] = "La fecha y hora de terminación no se conocen o no son relevantes";
-App::$strings["Edit finish date and time"] = "Modificar la fecha y hora de terminación";
-App::$strings["Finish date and time"] = "Fecha y hora de terminación";
-App::$strings["Adjust for viewer timezone"] = "Ajustar para obtener el visor de los husos horarios";
-App::$strings["Important for events that happen in a particular place. Not practical for global holidays."] = "Importante para los eventos que suceden en un lugar determinado. No es práctico para los globales.";
-App::$strings["Edit Description"] = "Editar la descripción";
-App::$strings["Description"] = "Descripción";
-App::$strings["Edit Location"] = "Modificar la dirección";
+App::$strings["Public Hubs"] = "Servidores públicos";
+App::$strings["The listed hubs allow public registration for the \$Projectname network. All hubs in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some hubs may require subscription or provide tiered service plans. The hub itself <strong>may</strong> provide additional details."] = "Los sitios listados permiten el registro público en la red \$Projectname. Todos los sitios de la red están vinculados entre sí, por lo que sus miembros, en ninguno de ellos, indican la pertenencia a la red en su conjunto. Algunos sitios pueden requerir suscripción o proporcionar planes de servicio por niveles. Los mismos hubs <strong>pueden</strong> proporcionar detalles adicionales.";
+App::$strings["Hub URL"] = "Dirección del hub";
+App::$strings["Access Type"] = "Tipo de acceso";
+App::$strings["Registration Policy"] = "Normas de registro";
+App::$strings["Stats"] = "Estadísticas";
+App::$strings["Software"] = "Software";
+App::$strings["Ratings"] = "Valoraciones";
+App::$strings["Rate"] = "Valorar";
App::$strings["Location"] = "Ubicación";
-App::$strings["Share this event"] = "Compartir este evento";
-App::$strings["Preview"] = "Previsualizar";
-App::$strings["Permission settings"] = "Configuración de permisos";
-App::$strings["Advanced Options"] = "Opciones avanzadas";
-App::$strings["l, F j"] = "l j F";
-App::$strings["Edit event"] = "Editar evento";
-App::$strings["Delete event"] = "Borrar evento";
-App::$strings["Link to Source"] = "Enlazar con la entrada en su ubicación original";
-App::$strings["calendar"] = "calendario";
-App::$strings["Edit Event"] = "Editar el evento";
-App::$strings["Create Event"] = "Crear un evento";
-App::$strings["Previous"] = "Anterior";
-App::$strings["Next"] = "Siguiente";
-App::$strings["Export"] = "Exportar";
App::$strings["View"] = "Ver";
-App::$strings["Month"] = "Mes";
-App::$strings["Week"] = "Semana";
-App::$strings["Day"] = "Día";
-App::$strings["Today"] = "Hoy";
-App::$strings["Event removed"] = "Evento borrado";
-App::$strings["Failed to remove event"] = "Error al eliminar el evento";
+App::$strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Se ha superado el límite máximo de inscripciones diarias de este sitio. Por favor, pruebe de nuevo mañana.";
+App::$strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Por favor, confirme que acepta los Términos del servicio. El registro ha fallado.";
+App::$strings["Passwords do not match."] = "Las contraseñas no coinciden.";
+App::$strings["Registration successful. Please check your email for validation instructions."] = "Registro realizado con éxito. Por favor, compruebe su correo electrónico para ver las instrucciones para validarlo.";
+App::$strings["Your registration is pending approval by the site owner."] = "Su registro está pendiente de aprobación por el propietario del sitio.";
+App::$strings["Your registration can not be processed."] = "Su registro no puede ser procesado.";
+App::$strings["Registration on this hub is disabled."] = "El registro está deshabilitado en este sitio.";
+App::$strings["Registration on this hub is by approval only."] = "El registro en este hub está sometido a aprobación previa.";
+App::$strings["<a href=\"pubsites\">Register at another affiliated hub.</a>"] = "<a href=\"pubsites\">Registrarse en otro hub afiliado.</a>";
+App::$strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Este sitio ha excedido el límite de inscripción diaria de cuentas. Por favor, inténtelo de nuevo mañana.";
+App::$strings["Terms of Service"] = "Términos del servicio";
+App::$strings["I accept the %s for this website"] = "Acepto los %s de este sitio";
+App::$strings["I am over 13 years of age and accept the %s for this website"] = "Tengo más de 13 años de edad y acepto los %s de este sitio";
+App::$strings["Your email address"] = "Su dirección de correo electrónico";
+App::$strings["Choose a password"] = "Elija una contraseña";
+App::$strings["Please re-enter your password"] = "Por favor, vuelva a escribir su contraseña";
+App::$strings["Please enter your invitation code"] = "Por favor, introduzca el código de su invitación";
+App::$strings["Name or caption"] = "Nombre o descripción";
+App::$strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\""] = "Ejemplos: \"Juan García\", \"Luisa y sus caballos\", \"Fútbol\", \"Grupo de aviación\"";
+App::$strings["Choose a short nickname"] = "Elija un alias corto";
+App::$strings["Your nickname will be used to create an easy to remember channel address e.g. nickname%s"] = "Su alias se usará para crear una dirección de canal fácil de recordar, p. ej.: alias%s";
+App::$strings["Channel role and privacy"] = "Clase de canal y privacidad";
+App::$strings["Select a channel role with your privacy requirements."] = "Seleccione un tipo de canal con sus requisitos de privacidad";
+App::$strings["Read more about roles"] = "Leer más sobre los roles";
+App::$strings["no"] = "no";
+App::$strings["yes"] = "sí";
+App::$strings["Registration"] = "Registro";
+App::$strings["Membership on this site is by invitation only."] = "Para registrarse en este sitio es necesaria una invitación.";
+App::$strings["Register"] = "Registrarse";
+App::$strings["This site may require email verification after submitting this form. If you are returned to a login page, please check your email for instructions."] = "Este sitio puede requerir una verificación de correo electrónico después de enviar este formulario. Si es devuelto a una página de inicio de sesión, compruebe su email para recibir y leer las instrucciones.";
App::$strings["Bookmark added"] = "Marcador añadido";
App::$strings["My Bookmarks"] = "Mis marcadores";
App::$strings["My Connections Bookmarks"] = "Marcadores de mis conexiones";
-App::$strings["Item not found"] = "Elemento no encontrado";
-App::$strings["Item is not editable"] = "El elemento no es editable";
-App::$strings["Edit post"] = "Editar la entrada";
+App::$strings["Public access denied."] = "Acceso público denegado.";
+App::$strings["Item not found."] = "Elemento no encontrado.";
App::$strings["Photos"] = "Fotos";
App::$strings["Cancel"] = "Cancelar";
App::$strings["Invalid item."] = "Elemento no válido.";
@@ -266,11 +155,19 @@ App::$strings["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do e
App::$strings["Save to Folder:"] = "Guardar en carpeta:";
App::$strings["- select -"] = "- seleccionar -";
App::$strings["Save"] = "Guardar";
+App::$strings["No such group"] = "No se encuentra el grupo";
+App::$strings["No such channel"] = "No se encuentra el canal";
+App::$strings["forum"] = "foro";
+App::$strings["Search Results For:"] = "Buscar resultados para:";
+App::$strings["Privacy group is empty"] = "El grupo de canales está vacío";
+App::$strings["Privacy group: "] = "Grupo de canales: ";
+App::$strings["Invalid connection."] = "Conexión no válida.";
App::$strings["Blocked"] = "Bloqueadas";
App::$strings["Ignored"] = "Ignoradas";
App::$strings["Hidden"] = "Ocultas";
App::$strings["Archived"] = "Archivadas";
App::$strings["New"] = "Nuevas";
+App::$strings["All"] = "Todos/as";
App::$strings["New Connections"] = "Nuevas conexiones";
App::$strings["Show pending (new) connections"] = "Mostrar conexiones (nuevas) pendientes";
App::$strings["All Connections"] = "Todas las conexiones";
@@ -290,11 +187,13 @@ App::$strings["Connected"] = "Conectado/a";
App::$strings["Approve connection"] = "Aprobar esta conexión";
App::$strings["Approve"] = "Aprobar";
App::$strings["Ignore connection"] = "Ignorar esta conexión";
+App::$strings["Ignore"] = "Ignorar";
App::$strings["Recent activity"] = "Actividad reciente";
App::$strings["Connections"] = "Conexiones";
App::$strings["Search"] = "Buscar";
App::$strings["Search your connections"] = "Buscar sus conexiones";
App::$strings["Connections search"] = "Buscar conexiones";
+App::$strings["Find"] = "Encontrar";
App::$strings["Image uploaded but image cropping failed."] = "Imagen actualizada, pero el recorte de la imagen ha fallado. ";
App::$strings["Cover Photos"] = "Imágenes de portada del perfil";
App::$strings["Image resize failed."] = "El ajuste del tamaño de la imagen ha fallado.";
@@ -317,80 +216,176 @@ App::$strings["select a photo from your photo albums"] = "Seleccione una foto de
App::$strings["Crop Image"] = "Recortar imagen";
App::$strings["Please adjust the image cropping for optimum viewing."] = "Por favor ajuste el recorte de la imagen para una visión óptima.";
App::$strings["Done Editing"] = "Edición completada";
-App::$strings["webpage"] = "página web";
-App::$strings["block"] = "bloque";
-App::$strings["layout"] = "plantilla";
-App::$strings["menu"] = "menú";
-App::$strings["%s element installed"] = "%s elemento instalado";
-App::$strings["%s element installation failed"] = "Elemento con instalación fallida: %s";
-App::$strings["Permissions denied."] = "Permisos denegados.";
-App::$strings["Import"] = "Importar";
+App::$strings["\$Projectname Server - Setup"] = "Servidor \$Projectname - Instalación";
+App::$strings["Could not connect to database."] = "No se ha podido conectar a la base de datos.";
+App::$strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "No se puede conectar con la dirección del sitio indicada. Podría tratarse de un problema de SSL o DNS.";
+App::$strings["Could not create table."] = "No se puede crear la tabla.";
+App::$strings["Your site database has been installed."] = "La base de datos del sitio ha sido instalada.";
+App::$strings["You may need to import the file \"install/schema_xxx.sql\" manually using a database client."] = "Podría tener que importar manualmente el fichero \"install/schema_xxx.sql\" usando un cliente de base de datos.";
+App::$strings["Please see the file \"install/INSTALL.txt\"."] = "Por favor, lea el fichero \"install/INSTALL.txt\".";
+App::$strings["System check"] = "Verificación del sistema";
+App::$strings["Next"] = "Siguiente";
+App::$strings["Check again"] = "Verificar de nuevo";
+App::$strings["Database connection"] = "Conexión a la base de datos";
+App::$strings["In order to install \$Projectname we need to know how to connect to your database."] = "Para instalar \$Projectname es necesario saber cómo conectar con su base de datos.";
+App::$strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Por favor, contacte con el proveedor de servicios o el administrador del sitio si tiene dudas sobre estos ajustes.";
+App::$strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "La base de datos que especifique a continuación debe existir ya. Si no es así, por favor, créela antes de seguir.";
+App::$strings["Database Server Name"] = "Nombre del servidor de base de datos";
+App::$strings["Default is 127.0.0.1"] = "De forma predeterminada es 127.0.0.1";
+App::$strings["Database Port"] = "Puerto de la base de datos";
+App::$strings["Communication port number - use 0 for default"] = "Número del puerto de comunicaciones - use 0 como valor por defecto";
+App::$strings["Database Login Name"] = "Usuario de la base de datos";
+App::$strings["Database Login Password"] = "Contraseña de acceso a la base de datos";
+App::$strings["Database Name"] = "Nombre de la base de datos";
+App::$strings["Database Type"] = "Tipo de base de datos";
+App::$strings["Site administrator email address"] = "Dirección de correo electrónico del administrador del sitio";
+App::$strings["Your account email address must match this in order to use the web admin panel."] = "Su cuenta deberá usar la misma dirección de correo electrónico para poder utilizar el panel de administración web.";
+App::$strings["Website URL"] = "Dirección del sitio web";
+App::$strings["Please use SSL (https) URL if available."] = "Por favor, use SSL (https) si está disponible.";
+App::$strings["Please select a default timezone for your website"] = "Por favor, selecciones el huso horario por defecto de su sitio web";
+App::$strings["Basic/Minimal Social Networking"] = "Red social básica o mínima";
+App::$strings["Standard Configuration (default)"] = "Configuración estándar (por defecto)";
+App::$strings["Professional"] = "Profesional";
+App::$strings["Site settings"] = "Ajustes del sitio";
+App::$strings["Server Configuration/Role"] = "Configuración del servidor";
+App::$strings["PHP version 5.5 or greater is required."] = "Se requiere la versión 5.5, o superior, de PHP.";
+App::$strings["PHP version"] = "Versión de PHP";
+App::$strings["Could not find a command line version of PHP in the web server PATH."] = "No se puede encontrar una versión en línea de comandos de PHP en la ruta del servidor web.";
+App::$strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron."] = "Si no tiene instalada la versión de línea de comandos de PHP en su servidor, no podrá realizar envíos en segundo plano mediante cron.";
+App::$strings["PHP executable path"] = "Ruta del ejecutable PHP";
+App::$strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Introducir la ruta completa del ejecutable PHP. Puede dejar la línea en blanco para continuar la instalación.";
+App::$strings["Command line PHP"] = "PHP en línea de comandos";
+App::$strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "La línea de comandos PHP de su sistema no tiene activado \"register_argc_argv\".";
+App::$strings["This is required for message delivery to work."] = "Esto es necesario para que funcione la transmisión de mensajes.";
+App::$strings["PHP register_argc_argv"] = "PHP register_argc_argv";
+App::$strings["Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once."] = "La carga máxima que se le permite subir está establecida en %s. El tamaño máximo de un fichero está establecido en %s. Está permitido subir hasta un máximo de %d ficheros de una sola vez.";
+App::$strings["You can adjust these settings in the servers php.ini."] = "Puede ajustar estos valores en el fichero php.ini de su servidor.";
+App::$strings["PHP upload limits"] = "Límites PHP de subida";
+App::$strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Error: La función \"openssl_pkey_new\" en este sistema no es capaz de general claves de cifrado.";
+App::$strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Si está en un servidor Windows, por favor, lea \"http://www.php.net/manual/en/openssl.installation.php\".";
+App::$strings["Generate encryption keys"] = "Generar claves de cifrado";
+App::$strings["libCurl PHP module"] = "módulo libCurl PHP";
+App::$strings["GD graphics PHP module"] = "módulo PHP GD graphics";
+App::$strings["OpenSSL PHP module"] = "módulo PHP OpenSSL";
+App::$strings["mysqli or postgres PHP module"] = "módulo PHP mysqli o postgres";
+App::$strings["mb_string PHP module"] = "módulo PHP mb_string";
+App::$strings["xml PHP module"] = "módulo PHP xml";
+App::$strings["Apache mod_rewrite module"] = "módulo Apache mod_rewrite ";
+App::$strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Error: se necesita el módulo del servidor web Apache mod-rewrite pero no está instalado.";
+App::$strings["proc_open"] = "proc_open";
+App::$strings["Error: proc_open is required but is either not installed or has been disabled in php.ini"] = "Error: se necesita proc_open pero o no está instalado o ha sido desactivado en el fichero php.ini";
+App::$strings["Error: libCURL PHP module required but not installed."] = "Error: se necesita el módulo PHP libCURL pero no está instalado.";
+App::$strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Error: el módulo PHP GD graphics es necesario, pero no está instalado.";
+App::$strings["Error: openssl PHP module required but not installed."] = "Error: el módulo PHP openssl es necesario, pero no está instalado.";
+App::$strings["Error: mysqli or postgres PHP module required but neither are installed."] = "Error: el módulo PHP mysqli o postgres es necesario pero ninguno de los dos está instalado.";
+App::$strings["Error: mb_string PHP module required but not installed."] = "Error: el módulo PHP mb_string es necesario, pero no está instalado.";
+App::$strings["Error: xml PHP module required for DAV but not installed."] = "Error: el módulo PHP xml es necesario para DAV, pero no está instalado.";
+App::$strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "El instalador web no ha podido crear un fichero llamado “.htconfig.php†en la carpeta base de su servidor.";
+App::$strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Esto está generalmente ligado a un problema de permisos, a causa del cual el servidor web tiene prohibido modificar ficheros en su carpeta - incluso si usted mismo tiene esos permisos.";
+App::$strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."] = "Al término de este procedimiento, podemos crear un fichero de texto para guardar con el nombre .htconfig.php en el directorio raíz de su instalación de Hubzilla.";
+App::$strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Como alternativa, puede dejar este procedimiento e intentar realizar una instalación manual. Lea, por favor, el fichero\"install/INSTALL.txt\" para las instrucciones.";
+App::$strings[".htconfig.php is writable"] = ".htconfig.php tiene permisos de escritura";
+App::$strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Hubzilla hace uso del motor de plantillas Smarty3 para diseñar sus plantillas gráficas. Smarty3 es más rápido porque compila las plantillas de páginas directamente en PHP.";
+App::$strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder."] = "Para poder guardar las plantillas compiladas, el servidor web necesita permisos para acceder al directorio %s en la carpeta web principal.";
+App::$strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Por favor, asegúrese de que el servidor web está siendo ejecutado por un usuario que tenga permisos de escritura sobre esta carpeta (por ejemplo, www-data).";
+App::$strings["Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."] = "Nota: como medida de seguridad, debe dar al servidor web permisos de escritura solo sobre %s - no sobre el fichero de plantilla (.tpl) que contiene.";
+App::$strings["%s is writable"] = "%s tiene permisos de escritura";
+App::$strings["This software uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder"] = "Este software utiliza el directorio de almacenamiento para guardar los archivos subidos. El servidor web debe tener acceso de escritura al directorio de almacenamiento en la carpeta de nivel superior";
+App::$strings["store is writable"] = "\"store\" tiene permisos de escritura";
+App::$strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "El certificado SSL no ha podido ser validado. Corrija este problema o desactive el acceso https a este sitio.";
+App::$strings["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "Si su servidor soporta conexiones cifradas SSL o si permite conexiones al puerto TCP 443 (el puerto usado por el protocolo https), debe utilizar un certificado válido. No debe usar un certificado firmado por usted mismo.";
+App::$strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "Se ha incorporado esta restricción para evitar que sus publicaciones públicas hagan referencia a imágenes en su propio servidor.";
+App::$strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "Si su certificado no ha sido reconocido, los miembros de otros sitios (con certificados válidos) recibirán mensajes de aviso en sus propios sitios web.";
+App::$strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "Por razones de compatibilidad (sobre el conjunto de la red, no solo sobre su propio sitio), debemos insistir en estos requisitos.";
+App::$strings["Providers are available that issue free certificates which are browser-valid."] = "Existen varias Autoridades de Certificación que le pueden proporcionar certificados válidos.";
+App::$strings["If you are confident that the certificate is valid and signed by a trusted authority, check to see if you have failed to install an intermediate cert. These are not normally required by browsers, but are required for server-to-server communications."] = "Si se tiene la certeza de que el certificado es válido y está firmado por una autoridad de confianza, comprobar para ver si hubo un error al instalar un certificado intermedio. Estos no son normalmente requeridos por los navegadores, pero son necesarios para las comunicaciones de servidor a servidor.";
+App::$strings["SSL certificate validation"] = "validación del certificado SSL";
+App::$strings["Url rewrite in .htaccess is not working. Check your server configuration.Test: "] = "No se pueden reescribir las direcciones web en .htaccess. Compruebe la configuración de su servidor:";
+App::$strings["Url rewrite is working"] = "La reescritura de las direcciones funciona correctamente";
+App::$strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "El fichero de configuración de la base de datos .htconfig.php no se ha podido modificar. Por favor, copie el texto generado en un fichero con ese nombre en el directorio raíz de su servidor.";
+App::$strings["Errors encountered creating database tables."] = "Se han encontrado errores al crear las tablas de la base de datos.";
+App::$strings["<h1>What next</h1>"] = "<h1>Siguiente paso</h1>";
+App::$strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANTE: Debe crear [manualmente] una tarea programada para el \"poller\".";
+App::$strings["%d rating"] = array(
+ 0 => "%d valoración",
+ 1 => "%d valoraciones",
+);
+App::$strings["Gender: "] = "Género:";
+App::$strings["Status: "] = "Estado:";
+App::$strings["Homepage: "] = "Página personal:";
+App::$strings["Age:"] = "Edad:";
+App::$strings["Location:"] = "Ubicación:";
+App::$strings["Description:"] = "Descripción:";
+App::$strings["Hometown:"] = "Lugar de nacimiento:";
+App::$strings["About:"] = "Sobre mí:";
+App::$strings["Connect"] = "Conectar";
+App::$strings["Public Forum:"] = "Foro público:";
+App::$strings["Keywords: "] = "Palabras clave:";
+App::$strings["Don't suggest"] = "No sugerir:";
+App::$strings["Common connections:"] = "Conexiones comunes:";
+App::$strings["Global Directory"] = "Directorio global:";
+App::$strings["Local Directory"] = "Directorio local:";
+App::$strings["Finding:"] = "Encontrar:";
+App::$strings["Channel Suggestions"] = "Sugerencias de canales";
+App::$strings["next page"] = "siguiente página";
+App::$strings["previous page"] = "página anterior";
+App::$strings["Sort options"] = "Ordenar opciones";
+App::$strings["Alphabetic"] = "Alfabético";
+App::$strings["Reverse Alphabetic"] = "Alfabético inverso";
+App::$strings["Newest to Oldest"] = "De más nuevo a más antiguo";
+App::$strings["Oldest to Newest"] = "De más antiguo a más nuevo";
+App::$strings["No entries (some entries may be hidden)."] = "Sin entradas (algunas entradas pueden estar ocultas).";
App::$strings["This site is not a directory server"] = "Este sitio no es un servidor de directorio";
App::$strings["This directory server requires an access token"] = "El servidor de este directorio necesita un \"token\" de acceso";
-App::$strings["You must be logged in to see this page."] = "Debe haber iniciado sesión para poder ver esta página.";
-App::$strings["Room not found"] = "Sala no encontrada";
-App::$strings["Leave Room"] = "Abandonar la sala";
-App::$strings["Delete Room"] = "Eliminar esta sala";
-App::$strings["I am away right now"] = "Estoy ausente momentáneamente";
-App::$strings["I am online"] = "Estoy conectado/a";
-App::$strings["Bookmark this room"] = "Añadir esta sala a Marcadores";
-App::$strings["Please enter a link URL:"] = "Por favor, introduzca la dirección del enlace:";
-App::$strings["Encrypt text"] = "Cifrar texto";
+App::$strings["Item not found"] = "Elemento no encontrado";
+App::$strings["Block Name"] = "Nombre del bloque";
App::$strings["Insert web link"] = "Insertar enlace web";
-App::$strings["Feature disabled."] = "Funcionalidad deshabilitada.";
-App::$strings["New Chatroom"] = "Nueva sala de chat";
-App::$strings["Chatroom name"] = "Nombre de la sala de chat";
-App::$strings["Expiration of chats (minutes)"] = "Caducidad de los mensajes en los chats (en minutos)";
-App::$strings["Permissions"] = "Permisos";
-App::$strings["%1\$s's Chatrooms"] = "Salas de chat de %1\$s";
-App::$strings["No chatrooms available"] = "No hay salas de chat disponibles";
-App::$strings["Create New"] = "Crear";
-App::$strings["Expiration"] = "Caducidad";
-App::$strings["min"] = "min";
-App::$strings["Invalid message"] = "Mensaje no válido";
-App::$strings["no results"] = "sin resultados";
-App::$strings["channel sync processed"] = "se ha realizado la sincronización del canal";
-App::$strings["queued"] = "encolado";
-App::$strings["posted"] = "enviado";
-App::$strings["accepted for delivery"] = "aceptado para el envío";
-App::$strings["updated"] = "actualizado";
-App::$strings["update ignored"] = "actualización ignorada";
-App::$strings["permission denied"] = "permiso denegado";
-App::$strings["recipient not found"] = "destinatario no encontrado";
-App::$strings["mail recalled"] = "mensaje de correo revocado";
-App::$strings["duplicate mail received"] = "se ha recibido mensaje duplicado";
-App::$strings["mail delivered"] = "correo enviado";
-App::$strings["Delivery report for %1\$s"] = "Informe de entrega para %1\$s";
-App::$strings["Options"] = "Opciones";
-App::$strings["Redeliver"] = "Volver a enviar";
+App::$strings["Title (optional)"] = "Título (opcional)";
+App::$strings["Edit Block"] = "Modificar este bloque";
App::$strings["Layout Name"] = "Nombre de la plantilla";
App::$strings["Layout Description (Optional)"] = "Descripción de la plantilla (opcional)";
App::$strings["Edit Layout"] = "Modificar la plantilla";
App::$strings["Page link"] = "Enlace de la página";
App::$strings["Edit Webpage"] = "Editar la página web";
-App::$strings["Privacy group created."] = "El grupo de canales ha sido creado.";
-App::$strings["Could not create privacy group."] = "No se puede crear el grupo de canales";
-App::$strings["Privacy group not found."] = "Grupo de canales no encontrado.";
-App::$strings["Privacy group updated."] = "Grupo de canales actualizado.";
-App::$strings["Create a group of channels."] = "Crear un grupo de canales.";
-App::$strings["Privacy group name: "] = "Nombre del grupo de canales:";
-App::$strings["Members are visible to other channels"] = "Los miembros son visibles para otros canales";
-App::$strings["Privacy group removed."] = "Grupo de canales eliminado.";
-App::$strings["Unable to remove privacy group."] = "Imposible eliminar el grupo de canales.";
-App::$strings["Privacy group editor"] = "Editor de grupos de canales";
-App::$strings["Members"] = "Miembros";
-App::$strings["All Connected Channels"] = "Todos los canales conectados";
-App::$strings["Click on a channel to add or remove."] = "Haga clic en un canal para agregarlo o quitarlo.";
+App::$strings["Unable to update menu."] = "No se puede actualizar el menú.";
+App::$strings["Unable to create menu."] = "No se puede crear el menú.";
+App::$strings["Menu Name"] = "Nombre del menú";
+App::$strings["Unique name (not visible on webpage) - required"] = "Nombre único (no será visible en la página web) - requerido";
+App::$strings["Menu Title"] = "Título del menú";
+App::$strings["Visible on webpage - leave empty for no title"] = "Visible en la página web - no ponga nada si no desea un título";
+App::$strings["Allow Bookmarks"] = "Permitir marcadores";
+App::$strings["Menu may be used to store saved bookmarks"] = "El menú se puede usar para guardar marcadores";
+App::$strings["Submit and proceed"] = "Enviar y proceder";
+App::$strings["Menus"] = "Menús";
+App::$strings["Drop"] = "Eliminar";
+App::$strings["Created"] = "Creado";
+App::$strings["Edited"] = "Editado";
+App::$strings["Bookmarks allowed"] = "Marcadores permitidos";
+App::$strings["Delete this menu"] = "Borrar este menú";
+App::$strings["Edit menu contents"] = "Editar los contenidos del menú";
+App::$strings["Edit this menu"] = "Modificar este menú";
+App::$strings["Menu could not be deleted."] = "El menú no puede ser eliminado.";
+App::$strings["Menu not found."] = "Menú no encontrado";
+App::$strings["Edit Menu"] = "Modificar el menú";
+App::$strings["Add or remove entries to this menu"] = "Añadir o quitar entradas en este menú";
+App::$strings["Menu name"] = "Nombre del menú";
+App::$strings["Must be unique, only seen by you"] = "Debe ser único, solo será visible para usted";
+App::$strings["Menu title"] = "Título del menú";
+App::$strings["Menu title as seen by others"] = "El título del menú tal como será visto por los demás";
+App::$strings["Allow bookmarks"] = "Permitir marcadores";
+App::$strings["Not found."] = "No encontrado.";
App::$strings["App installed."] = "Aplicación instalada.";
App::$strings["Malformed app."] = "Aplicación con errores";
App::$strings["Embed code"] = "Código incorporado";
App::$strings["Edit App"] = "Modificar la aplicación";
App::$strings["Create App"] = "Crear una aplicación";
App::$strings["Name of app"] = "Nombre de la aplicación";
+App::$strings["Required"] = "Obligatorio";
App::$strings["Location (URL) of app"] = "Dirección (URL) de la aplicación";
+App::$strings["Description"] = "Descripción";
App::$strings["Photo icon URL"] = "Dirección del icono";
App::$strings["80 x 80 pixels - optional"] = "80 x 80 pixels - opcional";
-App::$strings["Categories (optional, comma separated list)"] = "Categorías (opcional, lista separada por comas)";
+App::$strings["Categories (optional, comma separated list)"] = "Temas (opcional, lista separada por comas)";
App::$strings["Version ID"] = "Versión";
App::$strings["Price of app"] = "Precio de la aplicación";
App::$strings["Location (URL) to purchase app"] = "Dirección (URL) donde adquirir la aplicación";
@@ -406,11 +401,14 @@ App::$strings["Module Name:"] = "Nombre del módulo:";
App::$strings["Layout Help"] = "Ayuda para el diseño de plantillas de página";
App::$strings["Share content from Firefox to \$Projectname"] = "Compartir contenido desde Firefox a \$Projectname";
App::$strings["Activate the Firefox \$Projectname provider"] = "Servicio de compartición de Firefox: activar el proveedor \$Projectname ";
-App::$strings["network"] = "red";
-App::$strings["RSS"] = "RSS";
+App::$strings["\$Projectname"] = "\$Projectname";
+App::$strings["Welcome to %s"] = "Bienvenido a %s";
+App::$strings["Remote privacy information not available."] = "La información privada remota no está disponible.";
+App::$strings["Visible to:"] = "Visible para:";
App::$strings["Permission Denied."] = "Permiso denegado";
App::$strings["File not found."] = "Fichero no encontrado.";
App::$strings["Edit file permissions"] = "Modificar los permisos del fichero";
+App::$strings["Permissions"] = "Permisos";
App::$strings["Set/edit permissions"] = "Establecer/editar los permisos";
App::$strings["Include all files and sub folders"] = "Incluir todos los ficheros y subcarpetas";
App::$strings["Return to file list"] = "Volver a la lista de ficheros";
@@ -419,130 +417,190 @@ App::$strings["Copy/paste this URL to link file from a web page"] = "Copiar/pega
App::$strings["Share this file"] = "Compartir este fichero";
App::$strings["Show URL to this file"] = "Mostrar la dirección de este fichero";
App::$strings["Notify your contacts about this file"] = "Avisar a sus contactos sobre este fichero";
-App::$strings["Layouts"] = "Plantillas";
-App::$strings["Comanche page description language help"] = "Página de ayuda del lenguaje de descripción de páginas (PDL) Comanche";
-App::$strings["Layout Description"] = "Descripción de la plantilla";
-App::$strings["Created"] = "Creado";
-App::$strings["Edited"] = "Editado";
-App::$strings["Share"] = "Compartir";
-App::$strings["Download PDL file"] = "Descargar el fichero PDL";
-App::$strings["Like/Dislike"] = "Me gusta/No me gusta";
-App::$strings["This action is restricted to members."] = "Esta acción está restringida solo para miembros.";
-App::$strings["Please <a href=\"rmagic\">login with your \$Projectname ID</a> or <a href=\"register\">register as a new \$Projectname member</a> to continue."] = "Por favor, <a href=\"rmagic\">identifíquese con su \$Projectname ID</a> o <a href=\"register\">rregístrese como un nuevo \$Projectname member</a> para continuar.";
-App::$strings["Invalid request."] = "Solicitud incorrecta.";
-App::$strings["channel"] = "el canal";
-App::$strings["thing"] = "elemento";
-App::$strings["Channel unavailable."] = "Canal no disponible.";
-App::$strings["Previous action reversed."] = "Acción anterior revocada.";
-App::$strings["photo"] = "foto";
-App::$strings["status"] = "el mensaje de estado";
-App::$strings["%1\$s likes %2\$s's %3\$s"] = "A %1\$s le gusta %3\$s de %2\$s";
-App::$strings["%1\$s doesn't like %2\$s's %3\$s"] = "A %1\$s no le gusta %3\$s de %2\$s";
-App::$strings["%1\$s agrees with %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s está de acuerdo";
-App::$strings["%1\$s doesn't agree with %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s no está de acuerdo";
-App::$strings["%1\$s abstains from a decision on %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s se abstiene";
-App::$strings["%1\$s is attending %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s participa";
-App::$strings["%1\$s is not attending %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s no participa";
-App::$strings["%1\$s may attend %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s quizá participe";
-App::$strings["Action completed."] = "Acción completada.";
-App::$strings["Thank you."] = "Gracias.";
-App::$strings["Profile not found."] = "Perfil no encontrado.";
-App::$strings["Profile deleted."] = "Perfil eliminado.";
-App::$strings["Profile-"] = "Perfil-";
-App::$strings["New profile created."] = "El nuevo perfil ha sido creado.";
-App::$strings["Profile unavailable to clone."] = "Perfil no disponible para clonar.";
-App::$strings["Profile unavailable to export."] = "Perfil no disponible para exportar.";
-App::$strings["Profile Name is required."] = "Se necesita el nombre del perfil.";
-App::$strings["Marital Status"] = "Estado civil";
-App::$strings["Romantic Partner"] = "Pareja sentimental";
-App::$strings["Likes"] = "Me gusta";
-App::$strings["Dislikes"] = "No me gusta";
-App::$strings["Work/Employment"] = "Trabajo:";
-App::$strings["Religion"] = "Religión";
-App::$strings["Political Views"] = "Ideas políticas";
-App::$strings["Sexual Preference"] = "Preferencia sexual";
-App::$strings["Homepage"] = "Página personal";
-App::$strings["Interests"] = "Intereses";
-App::$strings["Address"] = "Dirección";
-App::$strings["Profile updated."] = "Perfil actualizado.";
-App::$strings["Hide your connections list from viewers of this profile"] = "Ocultar la lista de conexiones a los visitantes del perfil";
-App::$strings["Edit Profile Details"] = "Modificar los detalles de este perfil";
-App::$strings["View this profile"] = "Ver este perfil";
-App::$strings["Edit visibility"] = "Editar visibilidad";
-App::$strings["Profile Tools"] = "Gestión del perfil";
-App::$strings["Change cover photo"] = "Cambiar la imagen de portada del perfil";
-App::$strings["Change profile photo"] = "Cambiar la foto del perfil";
-App::$strings["Create a new profile using these settings"] = "Crear un nuevo perfil usando estos ajustes";
-App::$strings["Clone this profile"] = "Clonar este perfil";
-App::$strings["Delete this profile"] = "Eliminar este perfil";
-App::$strings["Add profile things"] = "Añadir cosas al perfil";
-App::$strings["Personal"] = "Personales";
-App::$strings["Relation"] = "Relación";
-App::$strings["Miscellaneous"] = "Varios";
-App::$strings["Import profile from file"] = "Importar perfil desde un fichero";
-App::$strings["Export profile to file"] = "Exportar perfil a un fichero";
-App::$strings["Your gender"] = "Género";
-App::$strings["Marital status"] = "Estado civil";
-App::$strings["Sexual preference"] = "Preferencia sexual";
-App::$strings["Profile name"] = "Nombre del perfil";
-App::$strings["This is your default profile."] = "Este es su perfil principal.";
-App::$strings["Your full name"] = "Nombre completo";
-App::$strings["Title/Description"] = "Título o descripción";
-App::$strings["Street address"] = "Dirección";
-App::$strings["Locality/City"] = "Ciudad";
-App::$strings["Region/State"] = "Región o Estado";
-App::$strings["Postal/Zip code"] = "Código postal";
-App::$strings["Country"] = "País";
-App::$strings["Who (if applicable)"] = "Quién (si es pertinente)";
-App::$strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Por ejemplo: ana123, María González, sara@ejemplo.com";
-App::$strings["Since (date)"] = "Desde (fecha)";
-App::$strings["Tell us about yourself"] = "Háblenos de usted";
-App::$strings["Hometown"] = "Lugar de nacimiento";
-App::$strings["Political views"] = "Ideas políticas";
-App::$strings["Religious views"] = "Creencias religiosas";
-App::$strings["Keywords used in directory listings"] = "Palabras clave utilizadas en los listados de directorios";
-App::$strings["Example: fishing photography software"] = "Por ejemplo: software de fotografía submarina";
-App::$strings["Musical interests"] = "Preferencias musicales";
-App::$strings["Books, literature"] = "Libros, literatura";
-App::$strings["Television"] = "Televisión";
-App::$strings["Film/Dance/Culture/Entertainment"] = "Cine, danza, cultura, entretenimiento";
-App::$strings["Hobbies/Interests"] = "Aficiones o intereses";
-App::$strings["Love/Romance"] = "Vida sentimental o amorosa";
-App::$strings["School/Education"] = "Estudios";
-App::$strings["Contact information and social networks"] = "Información de contacto y redes sociales";
-App::$strings["My other channels"] = "Mis otros canales";
-App::$strings["Profile Image"] = "Imagen del perfil";
-App::$strings["Edit Profiles"] = "Editar perfiles";
-App::$strings["Your service plan only allows %d channels."] = "Su paquete de servicios solo permite %d canales.";
-App::$strings["Nothing to import."] = "No hay nada para importar.";
-App::$strings["Unable to download data from old server"] = "No se han podido descargar datos de su antiguo servidor";
-App::$strings["Imported file is empty."] = "El fichero importado está vacío.";
-App::$strings["Warning: Database versions differ by %1\$d updates."] = "Atención: Las versiones de la base de datos difieren en %1\$d actualizaciones.";
-App::$strings["Cloned channel not found. Import failed."] = "No se ha podido importar el canal porque el canal clonado no se ha encontrado.";
-App::$strings["No channel. Import failed."] = "No hay canal. La importación ha fallado";
-App::$strings["Import completed."] = "Importación completada.";
-App::$strings["You must be logged in to use this feature."] = "Debe estar registrado para poder usar esta funcionalidad.";
-App::$strings["Import Channel"] = "Importar canal";
-App::$strings["Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file."] = "Emplee este formulario para importar un canal desde un servidor/hub diferente. Puede recuperar el canal desde el antiguo servidor/hub a través de la red o proporcionando un fichero de exportación.";
-App::$strings["File to Upload"] = "Fichero para subir";
-App::$strings["Or provide the old server/hub details"] = "O proporcione los detalles de su antiguo servidor/hub";
-App::$strings["Your old identity address (xyz@example.com)"] = "Su identidad en el antiguo servidor (canal@ejemplo.com)";
-App::$strings["Your old login email address"] = "Su antigua dirección de correo electrónico";
-App::$strings["Your old login password"] = "Su antigua contraseña";
-App::$strings["For either option, please choose whether to make this hub your new primary address, or whether your old location should continue this role. You will be able to post from either location, but only one can be marked as the primary location for files, photos, and media."] = "Para cualquiera de las opciones, elija si hacer de este servidor su nueva dirección primaria, o si su antigua dirección debe continuar con este papel. Usted podrá publicar desde cualquier ubicación, pero sólo una puede estar marcada como la ubicación principal para los ficheros, fotos y otras imágenes o vídeos.";
-App::$strings["Make this hub my primary location"] = "Convertir este servidor en mi ubicación primaria";
-App::$strings["Import existing posts if possible (experimental - limited by available memory"] = "Importar el contenido publicado si es posible (experimental - limitado por la memoria disponible";
-App::$strings["This process may take several minutes to complete. Please submit the form only once and leave this page open until finished."] = "Este proceso puede tardar varios minutos en completarse. Por favor envíe el formulario una sola vez y mantenga esta página abierta hasta que termine.";
-App::$strings["\$Projectname"] = "\$Projectname";
-App::$strings["Welcome to %s"] = "Bienvenido a %s";
-App::$strings["Unable to locate original post."] = "No ha sido posible encontrar la entrada original.";
-App::$strings["Empty post discarded."] = "La entrada vacía ha sido desechada.";
-App::$strings["Executable content type not permitted to this channel."] = "Contenido de tipo ejecutable no permitido en este canal.";
-App::$strings["Duplicate post suppressed."] = "Se ha suprimido la entrada duplicada.";
-App::$strings["System error. Post not saved."] = "Error del sistema. La entrada no se ha podido salvar.";
-App::$strings["Unable to obtain post information from database."] = "No ha sido posible obtener información de la entrada en la base de datos.";
-App::$strings["You have reached your limit of %1$.0f top level posts."] = "Ha alcanzado su límite de %1$.0f entradas en la página principal.";
-App::$strings["You have reached your limit of %1$.0f webpages."] = "Ha alcanzado su límite de %1$.0f páginas web.";
+App::$strings["Name is required"] = "El nombre es obligatorio";
+App::$strings["Key and Secret are required"] = "\"Key\" y \"Secret\" son obligatorios";
+App::$strings["Update"] = "Actualizar";
+App::$strings["This channel is limited to %d tokens"] = "Este canal tiene un límite de %d tokens";
+App::$strings["Name and Password are required."] = "Se requiere el nombre y la contraseña.";
+App::$strings["Token saved."] = "Token salvado.";
+App::$strings["Not valid email."] = "Correo electrónico no válido.";
+App::$strings["Protected email address. Cannot change to that email."] = "Dirección de correo electrónico protegida. No se puede cambiar a ella.";
+App::$strings["System failure storing new email. Please try again."] = "Fallo de sistema al guardar el nuevo correo electrónico. Por favor, inténtelo de nuevo.";
+App::$strings["Password verification failed."] = "La comprobación de la contraseña ha fallado.";
+App::$strings["Passwords do not match. Password unchanged."] = "Las contraseñas no coinciden. La contraseña no se ha cambiado.";
+App::$strings["Empty passwords are not allowed. Password unchanged."] = "No se permiten contraseñas vacías. La contraseña no se ha cambiado.";
+App::$strings["Password changed."] = "Contraseña cambiada.";
+App::$strings["Password update failed. Please try again."] = "La actualización de la contraseña ha fallado. Por favor, inténtalo de nuevo.";
+App::$strings["Friends"] = "Amigos/as";
+App::$strings["Settings updated."] = "Ajustes actualizados.";
+App::$strings["Add application"] = "Añadir aplicación";
+App::$strings["Name of application"] = "Nombre de la aplicación";
+App::$strings["Consumer Key"] = "Consumer Key";
+App::$strings["Automatically generated - change if desired. Max length 20"] = "Generado automáticamente - si lo desea, cámbielo. Longitud máxima: 20";
+App::$strings["Consumer Secret"] = "Consumer Secret";
+App::$strings["Redirect"] = "Redirigir";
+App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI de redirección - dejar en blanco a menos que su aplicación específicamente lo requiera";
+App::$strings["Icon url"] = "Dirección del icono";
+App::$strings["Optional"] = "Opcional";
+App::$strings["Application not found."] = "Aplicación no encontrada.";
+App::$strings["Connected Apps"] = "Aplicaciones (apps) conectadas";
+App::$strings["Client key starts with"] = "La \"client key\" empieza por";
+App::$strings["No name"] = "Sin nombre";
+App::$strings["Remove authorization"] = "Eliminar autorización";
+App::$strings["No feature settings configured"] = "No se ha establecido la configuración de los complementos";
+App::$strings["Feature/Addon Settings"] = "Ajustes de los complementos";
+App::$strings["Account Settings"] = "Configuración de la cuenta";
+App::$strings["Current Password"] = "Contraseña actual";
+App::$strings["Enter New Password"] = "Escribir una nueva contraseña";
+App::$strings["Confirm New Password"] = "Confirmar la nueva contraseña";
+App::$strings["Leave password fields blank unless changing"] = "Dejar en blanco la contraseña a menos que desee cambiarla.";
+App::$strings["Email Address:"] = "Dirección de correo electrónico:";
+App::$strings["Remove Account"] = "Eliminar cuenta";
+App::$strings["Remove this account including all its channels"] = "Eliminar esta cuenta incluyendo todos sus canales";
+App::$strings["Use this form to create temporary access identifiers to share things with non-members. These identities may be used in Access Control Lists and visitors may login using these credentials to access private content."] = "Utilice este formulario para crear identificadores de acceso temporal para compartir cosas con los no miembros de Hubzilla. Estas identidades se pueden usar en las Listas de control de acceso (ACL) y así los visitantes pueden iniciar sesión, utilizando estas credenciales, para acceder a su contenido privado.";
+App::$strings["You may also provide <em>dropbox</em> style access links to friends and associates by adding the Login Password to any specific site URL as shown. Examples:"] = "También puede proporcionar, con el estilo <em>dropbox</em>, enlaces de acceso a sus amigos y asociados añadiendo la contraseña de inicio de sesión a cualquier dirección URL, como se muestra. Ejemplos: ";
+App::$strings["Guest Access Tokens"] = "Tokens de acceso para invitados";
+App::$strings["Login Name"] = "Nombre de inicio de sesión";
+App::$strings["Login Password"] = "Contraseña de inicio de sesión";
+App::$strings["Expires (yyyy-mm-dd)"] = "Expira (aaaa-mm-dd)";
+App::$strings["Their Settings"] = "Sus ajustes";
+App::$strings["My Settings"] = "Mis ajustes";
+App::$strings["inherited"] = "heredado";
+App::$strings["Individual Permissions"] = "Permisos individuales";
+App::$strings["Some permissions may be inherited from your channel's <a href=\"settings\"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can <strong>not</strong> change those settings here."] = "Algunos permisos pueden ser heredados de los <a href=\"settings\"><strong>ajustes de privacidad</strong></a> de sus canales, los cuales tienen una prioridad más alta que los ajustes individuales. <strong>No</strong> puede cambiar estos ajustes aquí.";
+App::$strings["Off"] = "Desactivado";
+App::$strings["On"] = "Activado";
+App::$strings["Additional Features"] = "Funcionalidades";
+App::$strings["Connector Settings"] = "Configuración del conector";
+App::$strings["No special theme for mobile devices"] = "Sin tema especial para dispositivos móviles";
+App::$strings["%s - (Experimental)"] = "%s - (Experimental)";
+App::$strings["mobile"] = "móvil";
+App::$strings["Display Settings"] = "Ajustes de visualización";
+App::$strings["Theme Settings"] = "Ajustes del tema";
+App::$strings["Custom Theme Settings"] = "Ajustes personalizados del tema";
+App::$strings["Content Settings"] = "Ajustes del contenido";
+App::$strings["Display Theme:"] = "Tema gráfico del perfil:";
+App::$strings["Select scheme"] = "Elegir un esquema";
+App::$strings["Mobile Theme:"] = "Tema para el móvil:";
+App::$strings["Preload images before rendering the page"] = "Carga previa de las imágenes antes de generar la página";
+App::$strings["The subjective page load time will be longer but the page will be ready when displayed"] = "El tiempo subjetivo de carga de la página será más largo, pero la página estará lista cuando se muestre.";
+App::$strings["Enable user zoom on mobile devices"] = "Habilitar zoom de usuario en dispositivos móviles";
+App::$strings["Update browser every xx seconds"] = "Actualizar navegador cada xx segundos";
+App::$strings["Minimum of 10 seconds, no maximum"] = "Mínimo de 10 segundos, sin máximo";
+App::$strings["Maximum number of conversations to load at any time:"] = "Máximo número de conversaciones a cargar en cualquier momento:";
+App::$strings["Maximum of 100 items"] = "Máximo de 100 elementos";
+App::$strings["Show emoticons (smilies) as images"] = "Mostrar emoticonos (smilies) como imágenes";
+App::$strings["Link post titles to source"] = "Enlazar título de la publicación a la fuente original";
+App::$strings["System Page Layout Editor - (advanced)"] = "Editor de plantilla de página del sistema - (avanzado)";
+App::$strings["Use blog/list mode on channel page"] = "Usar modo blog/lista en la página de inicio del canal";
+App::$strings["(comments displayed separately)"] = "(comentarios mostrados de forma separada)";
+App::$strings["Use blog/list mode on grid page"] = "Mostrar mi red en modo blog";
+App::$strings["Channel page max height of content (in pixels)"] = "Altura máxima del contenido de la página del canal (en píxeles)";
+App::$strings["click to expand content exceeding this height"] = "Pulsar para expandir el contenido que exceda de esta altura";
+App::$strings["Grid page max height of content (in pixels)"] = "Altura máxima del contenido de mi red (en píxeles)";
+App::$strings["Nobody except yourself"] = "Nadie excepto usted";
+App::$strings["Only those you specifically allow"] = "Solo aquellos a los que usted permita explícitamente";
+App::$strings["Approved connections"] = "Conexiones aprobadas";
+App::$strings["Any connections"] = "Cualquier conexión";
+App::$strings["Anybody on this website"] = "Cualquiera en este sitio web";
+App::$strings["Anybody in this network"] = "Cualquiera en esta red";
+App::$strings["Anybody authenticated"] = "Cualquiera que esté autenticado";
+App::$strings["Anybody on the internet"] = "Cualquiera en internet";
+App::$strings["Publish your default profile in the network directory"] = "Publicar su perfil principal en el directorio de la red";
+App::$strings["Allow us to suggest you as a potential friend to new members?"] = "¿Nos permite sugerirle como amigo potencial a los nuevos miembros?";
+App::$strings["Your channel address is"] = "Su dirección de canal es";
+App::$strings["Channel Settings"] = "Ajustes del canal";
+App::$strings["Basic Settings"] = "Configuración básica";
+App::$strings["Full Name:"] = "Nombre completo:";
+App::$strings["Your Timezone:"] = "Su huso horario:";
+App::$strings["Default Post Location:"] = "Localización geográfica predeterminada para sus publicaciones:";
+App::$strings["Geographical location to display on your posts"] = "Localización geográfica que debe mostrarse en sus publicaciones";
+App::$strings["Use Browser Location:"] = "Usar la localización geográfica del navegador:";
+App::$strings["Adult Content"] = "Contenido solo para adultos";
+App::$strings["This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)"] = "Este canal publica contenido solo para adultos con frecuencia o regularmente. (Por favor etiquete cualquier material para adultos con la etiqueta #NSFW)";
+App::$strings["Security and Privacy Settings"] = "Configuración de seguridad y privacidad";
+App::$strings["Your permissions are already configured. Click to view/adjust"] = "Sus permisos ya están configurados. Pulse para ver/ajustar";
+App::$strings["Hide my online presence"] = "Ocultar mi presencia en línea";
+App::$strings["Prevents displaying in your profile that you are online"] = "Evitar mostrar en su perfil que está en línea";
+App::$strings["Simple Privacy Settings:"] = "Configuración de privacidad sencilla:";
+App::$strings["Very Public - <em>extremely permissive (should be used with caution)</em>"] = "Muy Público - <em>extremadamente permisivo (debería ser usado con precaución)</em>";
+App::$strings["Typical - <em>default public, privacy when desired (similar to social network permissions but with improved privacy)</em>"] = "Típico - <em>por defecto público, privado cuando se desee (similar a los permisos de una red social pero con privacidad mejorada)</em>";
+App::$strings["Private - <em>default private, never open or public</em>"] = "Privado - <em>por defecto, privado, nunca abierto o público</em>";
+App::$strings["Blocked - <em>default blocked to/from everybody</em>"] = "Bloqueado - <em>por defecto, bloqueado/a para cualquiera</em>";
+App::$strings["Allow others to tag your posts"] = "Permitir a otros etiquetar sus publicaciones";
+App::$strings["Often used by the community to retro-actively flag inappropriate content"] = "A menudo usado por la comunidad para marcar contenido inapropiado de forma retroactiva.";
+App::$strings["Advanced Privacy Settings"] = "Configuración de privacidad avanzada";
+App::$strings["Expire other channel content after this many days"] = "Caducar contenido de otros canales después de este número de días";
+App::$strings["0 or blank to use the website limit."] = "0 o en blanco para usar el límite del sitio web.";
+App::$strings["This website expires after %d days."] = "Este sitio web caduca después de %d días.";
+App::$strings["This website does not expire imported content."] = "Este sitio web no caduca el contenido importado.";
+App::$strings["The website limit takes precedence if lower than your limit."] = "El límite del sitio web tiene prioridad si es inferior a su propio límite.";
+App::$strings["Maximum Friend Requests/Day:"] = "Máximo de solicitudes de amistad por día:";
+App::$strings["May reduce spam activity"] = "Podría reducir la actividad de spam";
+App::$strings["Default Post and Publish Permissions"] = "Permisos predeterminados de entradas y publicaciones";
+App::$strings["(click to open/close)"] = "(pulsar para abrir o cerrar)";
+App::$strings["Use my default audience setting for the type of object published"] = "Usar los ajustes de mi audiencia predeterminada para el tipo de publicación";
+App::$strings["Channel permissions category:"] = "Categoría de los permisos del canal:";
+App::$strings["Maximum private messages per day from unknown people:"] = "Máximo de mensajes privados por día de gente desconocida:";
+App::$strings["Useful to reduce spamming"] = "Útil para reducir el envío de correo no deseado";
+App::$strings["Notification Settings"] = "Configuración de las notificaciones";
+App::$strings["By default post a status message when:"] = "Por defecto, enviar un mensaje de estado cuando:";
+App::$strings["accepting a friend request"] = "Acepte una solicitud de amistad";
+App::$strings["joining a forum/community"] = "al unirse a un foro o comunidad";
+App::$strings["making an <em>interesting</em> profile change"] = "Realice un cambio <em>interesante</em> en su perfil";
+App::$strings["Send a notification email when:"] = "Enviar una notificación por correo electrónico cuando:";
+App::$strings["You receive a connection request"] = "Reciba una solicitud de conexión";
+App::$strings["Your connections are confirmed"] = "Sus conexiones hayan sido confirmadas";
+App::$strings["Someone writes on your profile wall"] = "Alguien escriba en la página de su perfil (\"muro\")";
+App::$strings["Someone writes a followup comment"] = "Alguien escriba un comentario sobre sus publicaciones";
+App::$strings["You receive a private message"] = "Reciba un mensaje privado";
+App::$strings["You receive a friend suggestion"] = "Reciba una sugerencia de amistad";
+App::$strings["You are tagged in a post"] = "Usted sea etiquetado en una publicación";
+App::$strings["You are poked/prodded/etc. in a post"] = "Reciba un toque o incitación en una publicación";
+App::$strings["Show visual notifications including:"] = "Mostrar notificaciones visuales que incluyan:";
+App::$strings["Unseen grid activity"] = "Nueva actividad en la red";
+App::$strings["Unseen channel activity"] = "Actividad no vista en el canal";
+App::$strings["Unseen private messages"] = "Mensajes privados no leídos";
+App::$strings["Recommended"] = "Recomendado";
+App::$strings["Upcoming events"] = "Próximos eventos";
+App::$strings["Events today"] = "Eventos de hoy";
+App::$strings["Upcoming birthdays"] = "Próximos cumpleaños";
+App::$strings["Not available in all themes"] = "No disponible en todos los temas";
+App::$strings["System (personal) notifications"] = "Notificaciones del sistema (personales)";
+App::$strings["System info messages"] = "Mensajes de información del sistema";
+App::$strings["System critical alerts"] = "Alertas críticas del sistema";
+App::$strings["New connections"] = "Nuevas conexiones";
+App::$strings["System Registrations"] = "Registros del sistema";
+App::$strings["Also show new wall posts, private messages and connections under Notices"] = "Mostrar también en Avisos las nuevas publicaciones, los mensajes privados y las conexiones";
+App::$strings["Notify me of events this many days in advance"] = "Avisarme de los eventos con algunos días de antelación";
+App::$strings["Must be greater than 0"] = "Debe ser mayor que 0";
+App::$strings["Advanced Account/Page Type Settings"] = "Ajustes avanzados de la cuenta y de los tipos de página";
+App::$strings["Change the behaviour of this account for special situations"] = "Cambiar el comportamiento de esta cuenta en situaciones especiales";
+App::$strings["Please enable expert mode (in <a href=\"settings/features\">Settings > Additional features</a>) to adjust!"] = "¡Activar el modo de experto (en <a href=\"settings/features\">Ajustes > Funcionalidades</a>) para realizar cambios!.";
+App::$strings["Miscellaneous Settings"] = "Ajustes diversos";
+App::$strings["Default photo upload folder"] = "Carpeta por defecto de las fotos subidas";
+App::$strings["%Y - current year, %m - current month"] = "%Y - año en curso, %m - mes actual";
+App::$strings["Default file upload folder"] = "Carpeta por defecto de los archivos subidos";
+App::$strings["Personal menu to display in your channel pages"] = "Menú personal que debe mostrarse en las páginas de su canal";
+App::$strings["Remove Channel"] = "Eliminar el canal";
+App::$strings["Remove this channel."] = "Eliminar este canal.";
+App::$strings["Firefox Share \$Projectname provider"] = "Servicio de compartición de Firefox: proveedor \$Projectname";
+App::$strings["Start calendar week on monday"] = "Comenzar el calendario semanal por el lunes";
+App::$strings["network"] = "red";
+App::$strings["RSS"] = "RSS";
+App::$strings["Privacy group created."] = "El grupo de canales ha sido creado.";
+App::$strings["Could not create privacy group."] = "No se puede crear el grupo de canales";
+App::$strings["Privacy group not found."] = "Grupo de canales no encontrado.";
+App::$strings["Privacy group updated."] = "Grupo de canales actualizado.";
+App::$strings["Create a group of channels."] = "Crear un grupo de canales.";
+App::$strings["Privacy group name: "] = "Nombre del grupo de canales:";
+App::$strings["Members are visible to other channels"] = "Los miembros son visibles para otros canales";
+App::$strings["Privacy group removed."] = "Grupo de canales eliminado.";
+App::$strings["Unable to remove privacy group."] = "No se puede eliminar el grupo de canales.";
+App::$strings["Privacy group editor"] = "Editor de grupos de canales";
+App::$strings["Members"] = "Miembros";
+App::$strings["All Connected Channels"] = "Todos los canales conectados";
+App::$strings["Click on a channel to add or remove."] = "Haga clic en un canal para agregarlo o quitarlo.";
App::$strings["Page owner information could not be retrieved."] = "La información del propietario de la página no pudo ser recuperada.";
App::$strings["Profile Photos"] = "Fotos del perfil";
App::$strings["Album not found."] = "Ãlbum no encontrado.";
@@ -570,6 +628,7 @@ App::$strings["Photo not available"] = "Foto no disponible";
App::$strings["Use as profile photo"] = "Usar como foto del perfil";
App::$strings["Use as cover photo"] = "Usar como imagen de portada del perfil";
App::$strings["Private Photo"] = "Foto privada";
+App::$strings["Previous"] = "Anterior";
App::$strings["View Full Size"] = "Ver tamaño completo";
App::$strings["Remove"] = "Eliminar";
App::$strings["Edit photo"] = "Editar foto";
@@ -583,9 +642,11 @@ App::$strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Ejemplos: @
App::$strings["Flag as adult in album view"] = "Marcar como \"solo para adultos\" en el álbum";
App::$strings["I like this (toggle)"] = "Me gusta (cambiar)";
App::$strings["I don't like this (toggle)"] = "No me gusta esto (cambiar)";
+App::$strings["Share"] = "Compartir";
App::$strings["Please wait"] = "Espere por favor";
App::$strings["This is you"] = "Este es usted";
App::$strings["Comment"] = "Comentar";
+App::$strings["Preview"] = "Previsualizar";
App::$strings["__ctx:title__ Likes"] = "Me gusta";
App::$strings["__ctx:title__ Dislikes"] = "No me gusta";
App::$strings["__ctx:title__ Agree"] = "De acuerdo";
@@ -611,11 +672,20 @@ App::$strings["__ctx:noun__ Dislikes"] = "No me gusta";
App::$strings["Close"] = "Cerrar";
App::$strings["View Album"] = "Ver álbum";
App::$strings["Recent Photos"] = "Fotos recientes";
-App::$strings["Remote privacy information not available."] = "La información privada remota no está disponible.";
-App::$strings["Visible to:"] = "Visible para:";
+App::$strings["webpage"] = "página web";
+App::$strings["block"] = "bloque";
+App::$strings["layout"] = "plantilla";
+App::$strings["menu"] = "menú";
+App::$strings["%s element installed"] = "%s elemento instalado";
+App::$strings["%s element installation failed"] = "Elemento con instalación fallida: %s";
+App::$strings["Nothing to import."] = "No hay nada para importar.";
+App::$strings["Unable to download data from old server"] = "No se han podido descargar datos de su antiguo servidor";
+App::$strings["Imported file is empty."] = "El fichero importado está vacío.";
+App::$strings["Warning: Database versions differ by %1\$d updates."] = "Atención: Las versiones de la base de datos difieren en %1\$d actualizaciones.";
App::$strings["Import completed"] = "Importación completada";
App::$strings["Import Items"] = "Importar elementos";
App::$strings["Use this form to import existing posts and content from an export file."] = "Utilice este formulario para importar entradas existentes y contenido desde un archivo de exportación.";
+App::$strings["File to Upload"] = "Fichero para subir";
App::$strings["Total invitation limit exceeded."] = "Se ha superado el límite máximo de invitaciones.";
App::$strings["%s : Not a valid email address."] = "%s : No es una dirección de correo electrónico válida. ";
App::$strings["Please join us on \$Projectname"] = "Únase a nosotros en \$Projectname";
@@ -638,41 +708,40 @@ App::$strings["3. Click [Connect]"] = "3. Pulse [conectar]";
App::$strings["Location not found."] = "Dirección no encontrada.";
App::$strings["Location lookup failed."] = "Ha fallado la búsqueda de la dirección.";
App::$strings["Please select another location to become primary before removing the primary location."] = "Por favor, seleccione una copia de su canal (un clon) para convertirlo en primario antes de eliminar su canal principal.";
-App::$strings["Syncing locations"] = "Sincronización de ubicaciones";
+App::$strings["Syncing locations"] = "Sincronizando ubicaciones";
App::$strings["No locations found."] = "No encontrada ninguna dirección.";
App::$strings["Manage Channel Locations"] = "Gestionar las direcciones del canal";
+App::$strings["Address"] = "Dirección";
App::$strings["Primary"] = "Primario";
-App::$strings["Drop"] = "Eliminar";
App::$strings["Sync Now"] = "Sincronizar ahora";
App::$strings["Please wait several minutes between consecutive operations."] = "Por favor, espere algunos minutos entre operaciones consecutivas.";
App::$strings["When possible, drop a location by logging into that website/hub and removing your channel."] = "Cuando sea posible, elimine una ubicación iniciando sesión en el sitio web o \"hub\" y borrando su canal.";
App::$strings["Use this form to drop the location if the hub is no longer operating."] = "Utilice este formulario para eliminar la dirección si el \"hub\" no está funcionando desde hace tiempo.";
App::$strings["Hub not found."] = "Servidor no encontrado";
-App::$strings["Unable to lookup recipient."] = "Imposible asociar a un destinatario.";
-App::$strings["Unable to communicate with requested channel."] = "Imposible comunicar con el canal solicitado.";
-App::$strings["Cannot verify requested channel."] = "No se puede verificar el canal solicitado.";
-App::$strings["Selected channel has private message restrictions. Send failed."] = "El canal seleccionado tiene restricciones sobre los mensajes privados. El envío falló.";
-App::$strings["Messages"] = "Mensajes";
-App::$strings["Message recalled."] = "Mensaje revocado.";
-App::$strings["Conversation removed."] = "Conversación eliminada.";
-App::$strings["Expires YYYY-MM-DD HH:MM"] = "Caduca YYYY-MM-DD HH:MM";
-App::$strings["Requested channel is not in this network"] = "El canal solicitado no existe en esta red";
-App::$strings["Send Private Message"] = "Enviar un mensaje privado";
-App::$strings["To:"] = "Para:";
-App::$strings["Subject:"] = "Asunto:";
-App::$strings["Attach file"] = "Adjuntar fichero";
-App::$strings["Send"] = "Enviar";
-App::$strings["Set expiration date"] = "Configurar fecha de caducidad";
-App::$strings["Delete message"] = "Borrar mensaje";
-App::$strings["Delivery report"] = "Informe de transmisión";
-App::$strings["Recall message"] = "Revocar el mensaje";
-App::$strings["Message has been recalled."] = "El mensaje ha sido revocado.";
-App::$strings["Delete Conversation"] = "Eliminar conversación";
-App::$strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Comunicación segura no disponible. Pero <strong>puede</strong> responder desde la página del perfil del remitente.";
-App::$strings["Send Reply"] = "Responder";
-App::$strings["Your message for %s (%s):"] = "Su mensaje para %s (%s):";
+App::$strings["Like/Dislike"] = "Me gusta/No me gusta";
+App::$strings["This action is restricted to members."] = "Esta acción está restringida solo para miembros.";
+App::$strings["Please <a href=\"rmagic\">login with your \$Projectname ID</a> or <a href=\"register\">register as a new \$Projectname member</a> to continue."] = "Por favor, <a href=\"rmagic\">identifíquese con su \$Projectname ID</a> o <a href=\"register\">rregístrese como un nuevo \$Projectname member</a> para continuar.";
+App::$strings["Invalid request."] = "Solicitud incorrecta.";
+App::$strings["channel"] = "el canal";
+App::$strings["thing"] = "elemento";
+App::$strings["Channel unavailable."] = "Canal no disponible.";
+App::$strings["Previous action reversed."] = "Acción anterior revocada.";
+App::$strings["photo"] = "foto";
+App::$strings["status"] = "el mensaje de estado";
+App::$strings["event"] = "evento";
+App::$strings["%1\$s likes %2\$s's %3\$s"] = "A %1\$s le gusta %3\$s de %2\$s";
+App::$strings["%1\$s doesn't like %2\$s's %3\$s"] = "A %1\$s no le gusta %3\$s de %2\$s";
+App::$strings["%1\$s agrees with %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s está de acuerdo";
+App::$strings["%1\$s doesn't agree with %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s no está de acuerdo";
+App::$strings["%1\$s abstains from a decision on %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s se abstiene";
+App::$strings["%1\$s is attending %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s participa";
+App::$strings["%1\$s is not attending %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s no participa";
+App::$strings["%1\$s may attend %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s quizá participe";
+App::$strings["Action completed."] = "Acción completada.";
+App::$strings["Thank you."] = "Gracias.";
App::$strings["You have created %1$.0f of %2$.0f allowed channels."] = "Ha creado %1$.0f de %2$.0f canales permitidos.";
App::$strings["Create a new channel"] = "Crear un nuevo canal";
+App::$strings["Create New"] = "Crear";
App::$strings["Channel Manager"] = "Administración de canales";
App::$strings["Current Channel"] = "Canal actual";
App::$strings["Switch to one of your channels by selecting it."] = "Cambiar a uno de sus canales seleccionándolo.";
@@ -681,70 +750,10 @@ App::$strings["Make Default"] = "Convertir en predeterminado";
App::$strings["%d new messages"] = "%d mensajes nuevos";
App::$strings["%d new introductions"] = "%d nuevas isolicitudes de conexión";
App::$strings["Delegated Channel"] = "Canal delegado";
-App::$strings["Unable to update menu."] = "No se puede actualizar el menú.";
-App::$strings["Unable to create menu."] = "No se puede crear el menú.";
-App::$strings["Menu Name"] = "Nombre del menú";
-App::$strings["Unique name (not visible on webpage) - required"] = "Nombre único (no será visible en la página web) - requerido";
-App::$strings["Menu Title"] = "Título del menú";
-App::$strings["Visible on webpage - leave empty for no title"] = "Visible en la página web - no ponga nada si no desea un título";
-App::$strings["Allow Bookmarks"] = "Permitir marcadores";
-App::$strings["Menu may be used to store saved bookmarks"] = "El menú se puede usar para guardar marcadores";
-App::$strings["Submit and proceed"] = "Enviar y proceder";
-App::$strings["Menus"] = "Menús";
-App::$strings["Bookmarks allowed"] = "Marcadores permitidos";
-App::$strings["Delete this menu"] = "Borrar este menú";
-App::$strings["Edit menu contents"] = "Editar los contenidos del menú";
-App::$strings["Edit this menu"] = "Modificar este menú";
-App::$strings["Menu could not be deleted."] = "El menú no puede ser eliminado.";
-App::$strings["Menu not found."] = "Menú no encontrado";
-App::$strings["Edit Menu"] = "Modificar el menú";
-App::$strings["Add or remove entries to this menu"] = "Añadir o quitar entradas en este menú";
-App::$strings["Menu name"] = "Nombre del menú";
-App::$strings["Must be unique, only seen by you"] = "Debe ser único, solo será visible para usted";
-App::$strings["Menu title"] = "Título del menú";
-App::$strings["Menu title as seen by others"] = "El título del menú tal como será visto por los demás";
-App::$strings["Allow bookmarks"] = "Permitir marcadores";
-App::$strings["Not found."] = "No encontrado.";
-App::$strings["No valid account found."] = "No se ha encontrado una cuenta válida.";
-App::$strings["Password reset request issued. Check your email."] = "Se ha recibido una solicitud de restablecimiento de contraseña. Consulte su correo electrónico.";
-App::$strings["Site Member (%s)"] = "Usuario del sitio (%s)";
-App::$strings["Password reset requested at %s"] = "Se ha solicitado restablecer la contraseña en %s";
-App::$strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "La solicitud no ha podido ser verificada. (Puede que la haya enviado con anterioridad) El restablecimiento de la contraseña ha fallado.";
-App::$strings["Password Reset"] = "Restablecer la contraseña";
-App::$strings["Your password has been reset as requested."] = "Su contraseña ha sido restablecida según lo solicitó.";
-App::$strings["Your new password is"] = "Su nueva contraseña es";
-App::$strings["Save or copy your new password - and then"] = "Guarde o copie su nueva contraseña - y después";
-App::$strings["click here to login"] = "pulse aquí para conectarse";
-App::$strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Puede cambiar la contraseña en la página <em>Ajustes</em> una vez iniciada la sesión.";
-App::$strings["Your password has changed at %s"] = "Su contraseña en %s ha sido cambiada";
-App::$strings["Forgot your Password?"] = "¿Ha olvidado su contraseña?";
-App::$strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Introduzca y envíe su dirección de correo electrónico para el restablecimiento de su contraseña. Luego revise su correo para obtener más instrucciones.";
-App::$strings["Email Address"] = "Dirección de correo electrónico";
-App::$strings["Reset"] = "Reiniciar";
-App::$strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s está %2\$s";
-App::$strings["Mood"] = "Estado de ánimo";
-App::$strings["Set your current mood and tell your friends"] = "Describir su estado de ánimo para comunicárselo a sus amigos";
-App::$strings["No such group"] = "No se encuentra el grupo";
-App::$strings["No such channel"] = "No se encuentra el canal";
-App::$strings["forum"] = "foro";
-App::$strings["Search Results For:"] = "Buscar resultados para:";
-App::$strings["Privacy group is empty"] = "El grupo de canales está vacío";
-App::$strings["Privacy group: "] = "Grupo de canales: ";
-App::$strings["Invalid connection."] = "Conexión no válida.";
-App::$strings["No more system notifications."] = "No hay más notificaciones del sistema";
-App::$strings["System Notifications"] = "Notificaciones del sistema";
-App::$strings["Profile Match"] = "Perfil compatible";
-App::$strings["No keywords to match. Please add keywords to your default profile."] = "No hay palabras clave en el perfil principal para poder encontrar perfiles compatibles. Por favor, añada palabras clave a su perfil principal.";
-App::$strings["is interested in:"] = "está interesado en:";
-App::$strings["No matches"] = "No se han encontrado perfiles compatibles";
-App::$strings["Posts and comments"] = "Publicaciones y comentarios";
-App::$strings["Only posts"] = "Solo publicaciones";
-App::$strings["Insufficient permissions. Request redirected to profile page."] = "Permisos insuficientes. Petición redirigida a la página del perfil.";
-App::$strings["Unable to create element."] = "Imposible crear el elemento.";
+App::$strings["Unable to create element."] = "No se puede crear el elemento.";
App::$strings["Unable to update menu element."] = "No es posible actualizar el elemento del menú.";
App::$strings["Unable to add menu element."] = "No es posible añadir el elemento al menú";
App::$strings["Menu Item Permissions"] = "Permisos del elemento del menú";
-App::$strings["(click to open/close)"] = "(pulsar para abrir o cerrar)";
App::$strings["Link Name"] = "Nombre del enlace";
App::$strings["Link or Submenu Target"] = "Destino del enlace o submenú";
App::$strings["Enter URL of the link or select a menu name to create a submenu"] = "Introducir la dirección del enlace o seleccionar el nombre de un submenú";
@@ -790,7 +799,6 @@ App::$strings["Repository version (master)"] = "Versión del repositorio (master
App::$strings["Repository version (dev)"] = "Versión del repositorio (dev)";
App::$strings["Site settings updated."] = "Ajustes del sitio actualizados.";
App::$strings["Default"] = "Predeterminado";
-App::$strings["mobile"] = "móvil";
App::$strings["experimental"] = "experimental";
App::$strings["unsupported"] = "no soportado";
App::$strings["Yes - with approval"] = "Sí - con aprobación";
@@ -799,7 +807,6 @@ App::$strings["My site has paid access only"] = "Mi sitio es un servicio de pago
App::$strings["My site has free access only"] = "Mi sitio es un servicio gratuito";
App::$strings["My site offers free accounts with optional paid upgrades"] = "Mi sitio ofrece cuentas gratuitas con opciones extra de pago";
App::$strings["Site"] = "Sitio";
-App::$strings["Registration"] = "Registro";
App::$strings["File upload"] = "Subir fichero";
App::$strings["Policies"] = "Políticas";
App::$strings["Advanced"] = "Avanzado";
@@ -860,8 +867,6 @@ App::$strings["Maximum Load Average"] = "Carga media máxima";
App::$strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Carga máxima del sistema antes de que los procesos de entrega y envío se hayan retardado - por defecto, 50.";
App::$strings["Expiration period in days for imported (grid/network) content"] = "Caducidad del contenido importado de otros sitios (en días)";
App::$strings["0 for no expiration of imported content"] = "0 para que no caduque el contenido importado";
-App::$strings["Off"] = "Desactivado";
-App::$strings["On"] = "Activado";
App::$strings["Lock feature %s"] = "Bloquear la funcionalidad %s";
App::$strings["Manage Additional Features"] = "Gestionar las funcionalidades";
App::$strings["No server found"] = "Servidor no encontrado";
@@ -920,8 +925,11 @@ App::$strings["Accounts"] = "Cuentas";
App::$strings["select all"] = "seleccionar todo";
App::$strings["Registrations waiting for confirm"] = "Inscripciones en espera de confirmación";
App::$strings["Request date"] = "Fecha de solicitud";
+App::$strings["Email"] = "Correo electrónico";
App::$strings["No registrations."] = "Sin registros.";
App::$strings["Deny"] = "Rechazar";
+App::$strings["Block"] = "Bloquear";
+App::$strings["Unblock"] = "Desbloquear";
App::$strings["All Channels"] = "Todos los canales";
App::$strings["Register date"] = "Fecha de registro";
App::$strings["Last login"] = "Último acceso";
@@ -968,6 +976,7 @@ App::$strings["Maintainer: "] = "Mantenedor:";
App::$strings["Minimum project version: "] = "Versión mínima del proyecto:";
App::$strings["Maximum project version: "] = "Versión máxima del proyecto:";
App::$strings["Minimum PHP version: "] = "Versión mínima de PHP:";
+App::$strings["Compatible Server Roles: "] = "Configuraciones compatibles con este servidor:";
App::$strings["Requires: "] = "Se requiere:";
App::$strings["Disabled - version incompatibility"] = "Deshabilitado - versiones incompatibles";
App::$strings["Enter the public git repository URL of the plugin repo."] = "Escriba la URL pública del repositorio git del plugin.";
@@ -980,7 +989,6 @@ App::$strings["Install"] = "Instalar";
App::$strings["Manage Repos"] = "Gestionar los repositorios";
App::$strings["Installed Plugin Repositories"] = "Repositorios de los plugins instalados";
App::$strings["Install a New Plugin Repository"] = "Instalar un nuevo repositorio de plugins";
-App::$strings["Update"] = "Actualizar";
App::$strings["Switch branch"] = "Cambiar la rama";
App::$strings["No themes found."] = "No se han encontrado temas.";
App::$strings["Screenshot"] = "Instantánea de pantalla";
@@ -1011,13 +1019,162 @@ App::$strings["(In addition to basic fields)"] = "(Además de los campos básico
App::$strings["All available fields"] = "Todos los campos disponibles";
App::$strings["Custom Fields"] = "Campos personalizados";
App::$strings["Create Custom Field"] = "Crear un campo personalizado";
-App::$strings["Name or caption"] = "Nombre o descripción";
-App::$strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\""] = "Ejemplos: \"Juan García\", \"Luisa y sus caballos\", \"Fútbol\", \"Grupo de aviación\"";
-App::$strings["Choose a short nickname"] = "Elija un alias corto";
-App::$strings["Your nickname will be used to create an easy to remember channel address e.g. nickname%s"] = "Su alias se usará para crear una dirección de canal fácil de recordar, p. ej.: alias%s";
-App::$strings["Channel role and privacy"] = "Clase de canal y privacidad";
-App::$strings["Select a channel role with your privacy requirements."] = "Seleccione un tipo de canal con sus requisitos de privacidad";
-App::$strings["Read more about roles"] = "Leer más sobre los roles";
+App::$strings["No valid account found."] = "No se ha encontrado una cuenta válida.";
+App::$strings["Password reset request issued. Check your email."] = "Se ha recibido una solicitud de restablecimiento de contraseña. Consulte su correo electrónico.";
+App::$strings["Site Member (%s)"] = "Usuario del sitio (%s)";
+App::$strings["Password reset requested at %s"] = "Se ha solicitado restablecer la contraseña en %s";
+App::$strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "La solicitud no ha podido ser verificada. (Puede que la haya enviado con anterioridad) El restablecimiento de la contraseña ha fallado.";
+App::$strings["Password Reset"] = "Restablecer la contraseña";
+App::$strings["Your password has been reset as requested."] = "Su contraseña ha sido restablecida según lo solicitó.";
+App::$strings["Your new password is"] = "Su nueva contraseña es";
+App::$strings["Save or copy your new password - and then"] = "Guarde o copie su nueva contraseña - y después";
+App::$strings["click here to login"] = "pulse aquí para conectarse";
+App::$strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Puede cambiar la contraseña en la página <em>Ajustes</em> una vez iniciada la sesión.";
+App::$strings["Your password has changed at %s"] = "Su contraseña en %s ha sido cambiada";
+App::$strings["Forgot your Password?"] = "¿Ha olvidado su contraseña?";
+App::$strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Introduzca y envíe su dirección de correo electrónico para el restablecimiento de su contraseña. Luego revise su correo para obtener más instrucciones.";
+App::$strings["Email Address"] = "Dirección de correo electrónico";
+App::$strings["Reset"] = "Reiniciar";
+App::$strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s está %2\$s";
+App::$strings["Mood"] = "Estado de ánimo";
+App::$strings["Set your current mood and tell your friends"] = "Describir su estado de ánimo para comunicárselo a sus amigos";
+App::$strings["Profile not found."] = "Perfil no encontrado.";
+App::$strings["Profile deleted."] = "Perfil eliminado.";
+App::$strings["Profile-"] = "Perfil-";
+App::$strings["New profile created."] = "El nuevo perfil ha sido creado.";
+App::$strings["Profile unavailable to clone."] = "Perfil no disponible para clonar.";
+App::$strings["Profile unavailable to export."] = "Perfil no disponible para exportar.";
+App::$strings["Profile Name is required."] = "Se necesita el nombre del perfil.";
+App::$strings["Marital Status"] = "Estado civil";
+App::$strings["Romantic Partner"] = "Pareja sentimental";
+App::$strings["Likes"] = "Me gusta";
+App::$strings["Dislikes"] = "No me gusta";
+App::$strings["Work/Employment"] = "Trabajo:";
+App::$strings["Religion"] = "Religión";
+App::$strings["Political Views"] = "Ideas políticas";
+App::$strings["Gender"] = "Género";
+App::$strings["Sexual Preference"] = "Preferencia sexual";
+App::$strings["Homepage"] = "Página personal";
+App::$strings["Interests"] = "Intereses";
+App::$strings["Profile updated."] = "Perfil actualizado.";
+App::$strings["Hide your connections list from viewers of this profile"] = "Ocultar la lista de conexiones a los visitantes del perfil";
+App::$strings["Edit Profile Details"] = "Modificar los detalles de este perfil";
+App::$strings["View this profile"] = "Ver este perfil";
+App::$strings["Edit visibility"] = "Editar visibilidad";
+App::$strings["Profile Tools"] = "Gestión del perfil";
+App::$strings["Change cover photo"] = "Cambiar la imagen de portada del perfil";
+App::$strings["Change profile photo"] = "Cambiar la foto del perfil";
+App::$strings["Create a new profile using these settings"] = "Crear un nuevo perfil usando estos ajustes";
+App::$strings["Clone this profile"] = "Clonar este perfil";
+App::$strings["Delete this profile"] = "Eliminar este perfil";
+App::$strings["Add profile things"] = "Añadir cosas al perfil";
+App::$strings["Personal"] = "Personales";
+App::$strings["Relation"] = "Relación";
+App::$strings["Miscellaneous"] = "Varios";
+App::$strings["Import profile from file"] = "Importar perfil desde un fichero";
+App::$strings["Export profile to file"] = "Exportar perfil a un fichero";
+App::$strings["Your gender"] = "Género";
+App::$strings["Marital status"] = "Estado civil";
+App::$strings["Sexual preference"] = "Preferencia sexual";
+App::$strings["Profile name"] = "Nombre del perfil";
+App::$strings["This is your default profile."] = "Este es su perfil principal.";
+App::$strings["Your full name"] = "Nombre completo";
+App::$strings["Title/Description"] = "Título o descripción";
+App::$strings["Street address"] = "Dirección";
+App::$strings["Locality/City"] = "Ciudad";
+App::$strings["Region/State"] = "Región o Estado";
+App::$strings["Postal/Zip code"] = "Código postal";
+App::$strings["Country"] = "País";
+App::$strings["Who (if applicable)"] = "Quién (si es pertinente)";
+App::$strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Por ejemplo: ana123, María González, sara@ejemplo.com";
+App::$strings["Since (date)"] = "Desde (fecha)";
+App::$strings["Tell us about yourself"] = "Háblenos de usted";
+App::$strings["Homepage URL"] = "Dirección de la página personal";
+App::$strings["Hometown"] = "Lugar de nacimiento";
+App::$strings["Political views"] = "Ideas políticas";
+App::$strings["Religious views"] = "Creencias religiosas";
+App::$strings["Keywords used in directory listings"] = "Palabras clave utilizadas en los listados de directorios";
+App::$strings["Example: fishing photography software"] = "Por ejemplo: software de fotografía submarina";
+App::$strings["Musical interests"] = "Preferencias musicales";
+App::$strings["Books, literature"] = "Libros, literatura";
+App::$strings["Television"] = "Televisión";
+App::$strings["Film/Dance/Culture/Entertainment"] = "Cine, danza, cultura, entretenimiento";
+App::$strings["Hobbies/Interests"] = "Aficiones o intereses";
+App::$strings["Love/Romance"] = "Vida sentimental o amorosa";
+App::$strings["School/Education"] = "Estudios";
+App::$strings["Contact information and social networks"] = "Información de contacto y redes sociales";
+App::$strings["My other channels"] = "Mis otros canales";
+App::$strings["Profile Image"] = "Imagen del perfil";
+App::$strings["Edit Profiles"] = "Editar perfiles";
+App::$strings["No more system notifications."] = "No hay más notificaciones del sistema";
+App::$strings["System Notifications"] = "Notificaciones del sistema";
+App::$strings["Profile Match"] = "Perfil compatible";
+App::$strings["No keywords to match. Please add keywords to your default profile."] = "No hay palabras clave en el perfil principal para poder encontrar perfiles compatibles. Por favor, añada palabras clave a su perfil principal.";
+App::$strings["is interested in:"] = "está interesado en:";
+App::$strings["No matches"] = "No se han encontrado perfiles compatibles";
+App::$strings["Import Webpage Elements"] = "Importar elementos de una página web";
+App::$strings["Import selected"] = "Importar elementos seleccionados";
+App::$strings["Webpages"] = "Páginas web";
+App::$strings["Actions"] = "Acciones";
+App::$strings["Page Link"] = "Vínculo de la página";
+App::$strings["Page Title"] = "Título de página";
+App::$strings["Invalid file type."] = "Tipo de fichero no válido.";
+App::$strings["Error opening zip file"] = "Error al abrir el fichero comprimido zip";
+App::$strings["Invalid folder path."] = "La ruta de la carpeta no es válida.";
+App::$strings["No webpage elements detected."] = "No se han detectado elementos de ninguna página web.";
+App::$strings["Import complete."] = "Importación completada.";
+App::$strings["Calendar entries imported."] = "Entradas de calendario importadas.";
+App::$strings["No calendar entries found."] = "No se han encontrado entradas de calendario.";
+App::$strings["Event can not end before it has started."] = "Un evento no puede terminar antes de que haya comenzado.";
+App::$strings["Unable to generate preview."] = "No se puede crear la vista previa.";
+App::$strings["Event title and start time are required."] = "Se requieren el título del evento y su hora de inicio.";
+App::$strings["Event not found."] = "Evento no encontrado.";
+App::$strings["Edit event title"] = "Editar el título del evento";
+App::$strings["Event title"] = "Título del evento";
+App::$strings["Categories (comma-separated list)"] = "Temas (lista separada por comas)";
+App::$strings["Edit Category"] = "Modificar el tema";
+App::$strings["Category"] = "Tema";
+App::$strings["Edit start date and time"] = "Modificar la fecha y hora de comienzo";
+App::$strings["Start date and time"] = "Fecha y hora de comienzo";
+App::$strings["Finish date and time are not known or not relevant"] = "La fecha y hora de terminación no se conocen o no son relevantes";
+App::$strings["Edit finish date and time"] = "Modificar la fecha y hora de terminación";
+App::$strings["Finish date and time"] = "Fecha y hora de terminación";
+App::$strings["Adjust for viewer timezone"] = "Ajustar para obtener el visor de los husos horarios";
+App::$strings["Important for events that happen in a particular place. Not practical for global holidays."] = "Importante para los eventos que suceden en un lugar determinado. No es práctico para los globales.";
+App::$strings["Edit Description"] = "Editar la descripción";
+App::$strings["Edit Location"] = "Modificar la dirección";
+App::$strings["Share this event"] = "Compartir este evento";
+App::$strings["Permission settings"] = "Configuración de permisos";
+App::$strings["Advanced Options"] = "Opciones avanzadas";
+App::$strings["l, F j"] = "l j F";
+App::$strings["Edit event"] = "Editar evento";
+App::$strings["Delete event"] = "Borrar evento";
+App::$strings["Link to Source"] = "Enlazar con la entrada en su ubicación original";
+App::$strings["calendar"] = "calendario";
+App::$strings["Edit Event"] = "Editar el evento";
+App::$strings["Create Event"] = "Crear un evento";
+App::$strings["Export"] = "Exportar";
+App::$strings["Month"] = "Mes";
+App::$strings["Week"] = "Semana";
+App::$strings["Day"] = "Día";
+App::$strings["Today"] = "Hoy";
+App::$strings["Event removed"] = "Evento borrado";
+App::$strings["Failed to remove event"] = "Error al eliminar el evento";
+App::$strings["Your service plan only allows %d channels."] = "Su paquete de servicios solo permite %d canales.";
+App::$strings["Cloned channel not found. Import failed."] = "No se ha podido importar el canal porque el canal clonado no se ha encontrado.";
+App::$strings["No channel. Import failed."] = "No hay canal. La importación ha fallado";
+App::$strings["Import completed."] = "Importación completada.";
+App::$strings["You must be logged in to use this feature."] = "Debe estar registrado para poder usar esta funcionalidad.";
+App::$strings["Import Channel"] = "Importar canal";
+App::$strings["Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file."] = "Emplee este formulario para importar un canal desde un servidor/hub diferente. Puede recuperar el canal desde el antiguo servidor/hub a través de la red o proporcionando un fichero de exportación.";
+App::$strings["Or provide the old server/hub details"] = "O proporcione los detalles de su antiguo servidor/hub";
+App::$strings["Your old identity address (xyz@example.com)"] = "Su identidad en el antiguo servidor (canal@ejemplo.com)";
+App::$strings["Your old login email address"] = "Su antigua dirección de correo electrónico";
+App::$strings["Your old login password"] = "Su antigua contraseña";
+App::$strings["For either option, please choose whether to make this hub your new primary address, or whether your old location should continue this role. You will be able to post from either location, but only one can be marked as the primary location for files, photos, and media."] = "Para cualquiera de las opciones, elija si hacer de este servidor su nueva dirección primaria, o si su antigua dirección debe continuar con este papel. Usted podrá publicar desde cualquier ubicación, pero sólo una puede estar marcada como la ubicación principal para los ficheros, fotos y otras imágenes o vídeos.";
+App::$strings["Make this hub my primary location"] = "Convertir este servidor en mi ubicación primaria";
+App::$strings["Import existing posts if possible (experimental - limited by available memory"] = "Importar el contenido publicado si es posible (experimental - limitado por la memoria disponible";
+App::$strings["This process may take several minutes to complete. Please submit the form only once and leave this page open until finished."] = "Este proceso puede tardar varios minutos en completarse. Por favor envíe el formulario una sola vez y mantenga esta página abierta hasta que termine.";
App::$strings["Create Channel"] = "Crear un canal";
App::$strings["A channel is your identity on this network. It can represent a person, a blog, or a forum to name a few. Channels can make connections with other channels to share information with highly detailed permissions."] = "Un canal es su identidad en esta red. Puede representar a una persona, un blog o un foro, por nombrar unos pocos ejemplos. Los canales se pueden conectar con otros canales para compartir información con una gama de permisos extremadamente detallada.";
App::$strings["or <a href=\"import\">import an existing channel</a> from another location."] = "O <a href=\"import\">importar un canal existente</a> desde otro lugar.";
@@ -1038,8 +1195,6 @@ App::$strings["Choose what you wish to do to recipient"] = "Elegir qué desea en
App::$strings["Make this post private"] = "Convertir en privado este envío";
App::$strings["Unable to find your hub."] = "No se puede encontrar su servidor.";
App::$strings["Post successful."] = "Enviado con éxito.";
-App::$strings["OpenID protocol error. No ID returned."] = "Error del protocolo OpenID. Ningún ID recibido como respuesta.";
-App::$strings["Login failed."] = "El acceso ha fallado.";
App::$strings["Invalid profile identifier."] = "Identificador del perfil no válido";
App::$strings["Profile Visibility Editor"] = "Editor de visibilidad del perfil";
App::$strings["Profile"] = "Perfil";
@@ -1048,7 +1203,10 @@ App::$strings["Visible To"] = "Visible para";
App::$strings["This setting requires special processing and editing has been blocked."] = "Este ajuste necesita de un proceso especial y la edición ha sido bloqueada.";
App::$strings["Configuration Editor"] = "Editor de configuración";
App::$strings["Warning: Changing some settings could render your channel inoperable. Please leave this page unless you are comfortable with and knowledgeable about how to correctly use this feature."] = "Atención: El cambio de algunos ajustes puede volver inutilizable su canal. Por favor, abandone la página excepto que esté seguro y sepa cómo usar correctamente esta característica.";
-App::$strings["Fetching URL returns error: %1\$s"] = "Al intentar obtener la dirección, retorna el error: %1\$s";
+App::$strings["You must be logged in to see this page."] = "Debe haber iniciado sesión para poder ver esta página.";
+App::$strings["Posts and comments"] = "Publicaciones y comentarios";
+App::$strings["Only posts"] = "Solo publicaciones";
+App::$strings["Insufficient permissions. Request redirected to profile page."] = "Permisos insuficientes. Petición redirigida a la página del perfil.";
App::$strings["Version %s"] = "Versión %s";
App::$strings["Installed plugins/addons/apps:"] = "Extensiones (plugins), complementos o aplicaciones (apps) instaladas:";
App::$strings["No installed plugins/addons/apps"] = "No hay instalada ninguna extensión (plugin), complemento o aplicación (app)";
@@ -1062,66 +1220,124 @@ App::$strings["Bug reports and issues: please visit"] = "Informes de errores e i
App::$strings["\$projectname issues"] = "Problemas en \$projectname";
App::$strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Sugerencias, elogios, etc - por favor, un correo electrónico a \"redmatrix\" en librelist - punto com";
App::$strings["Site Administrators"] = "Administradores del sitio";
-App::$strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Encontramos un problema durante el inicio de sesión con la OpenID que proporcionó. Por favor, compruebe que la ID está correctamente escrita.";
-App::$strings["The error message was:"] = "El mensaje de error fue:";
-App::$strings["Authentication failed."] = "Falló la autenticación.";
-App::$strings["Remote Authentication"] = "Acceso desde su servidor";
-App::$strings["Enter your channel address (e.g. channel@example.com)"] = "Introduzca la dirección del canal (p.ej. canal@ejemplo.com)";
-App::$strings["Authenticate"] = "Acceder";
-App::$strings["Public Hubs"] = "Servidores públicos";
-App::$strings["The listed hubs allow public registration for the \$Projectname network. All hubs in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some hubs may require subscription or provide tiered service plans. The hub itself <strong>may</strong> provide additional details."] = "Los sitios listados permiten el registro público en la red \$Projectname. Todos los sitios de la red están vinculados entre sí, por lo que sus miembros, en ninguno de ellos, indican la pertenencia a la red en su conjunto. Algunos sitios pueden requerir suscripción o proporcionar planes de servicio por niveles. Los mismos hubs <strong>pueden</strong> proporcionar detalles adicionales.";
-App::$strings["Hub URL"] = "Dirección del hub";
-App::$strings["Access Type"] = "Tipo de acceso";
-App::$strings["Registration Policy"] = "Normas de registro";
-App::$strings["Stats"] = "Estadísticas";
-App::$strings["Software"] = "Software";
-App::$strings["Ratings"] = "Valoraciones";
-App::$strings["Rate"] = "Valorar";
-App::$strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Recargue la página o limpie el caché del navegador si la nueva foto no se muestra inmediatamente.";
-App::$strings["Upload Profile Photo"] = "Subir foto de perfil";
-App::$strings["Block Name"] = "Nombre del bloque";
App::$strings["Blocks"] = "Bloques";
App::$strings["Block Title"] = "Título del bloque";
-App::$strings["Website:"] = "Sitio web:";
-App::$strings["Remote Channel [%s] (not yet known on this site)"] = "Canal remoto [%s] (aún no es conocido en este sitio)";
-App::$strings["Rating (this information is public)"] = "Valoración (esta información es pública)";
-App::$strings["Optionally explain your rating (this information is public)"] = "Opcionalmente puede explicar su valoración (esta información es pública)";
+App::$strings["Layouts"] = "Plantillas";
+App::$strings["Comanche page description language help"] = "Página de ayuda del lenguaje de descripción de páginas (PDL) Comanche";
+App::$strings["Layout Description"] = "Descripción de la plantilla";
+App::$strings["Download PDL file"] = "Descargar el fichero PDL";
App::$strings["No ratings"] = "Ninguna valoración";
App::$strings["Rating: "] = "Valoración:";
App::$strings["Website: "] = "Sitio web:";
App::$strings["Description: "] = "Descripción:";
-App::$strings["Apps"] = "Aplicaciones (apps)";
-App::$strings["Title (optional)"] = "Título (opcional)";
-App::$strings["Edit Block"] = "Modificar este bloque";
+App::$strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Recargue la página o limpie el caché del navegador si la nueva foto no se muestra inmediatamente.";
+App::$strings["Upload Profile Photo"] = "Subir foto de perfil";
+App::$strings["Permissions denied."] = "Permisos denegados.";
+App::$strings["Import"] = "Importar";
App::$strings["No channel."] = "Ningún canal.";
App::$strings["Common connections"] = "Conexiones comunes";
App::$strings["No connections in common."] = "Ninguna conexión en común.";
+App::$strings["Unable to lookup recipient."] = "No se puede asociar a un destinatario.";
+App::$strings["Unable to communicate with requested channel."] = "No se puede establecer la comunicación con el canal solicitado.";
+App::$strings["Cannot verify requested channel."] = "No se puede verificar el canal solicitado.";
+App::$strings["Selected channel has private message restrictions. Send failed."] = "El canal seleccionado tiene restricciones sobre los mensajes privados. El envío falló.";
+App::$strings["Messages"] = "Mensajes";
+App::$strings["Message recalled."] = "Mensaje revocado.";
+App::$strings["Conversation removed."] = "Conversación eliminada.";
+App::$strings["Please enter a link URL:"] = "Por favor, introduzca la dirección del enlace:";
+App::$strings["Expires YYYY-MM-DD HH:MM"] = "Caduca YYYY-MM-DD HH:MM";
+App::$strings["Requested channel is not in this network"] = "El canal solicitado no existe en esta red";
+App::$strings["Send Private Message"] = "Enviar un mensaje privado";
+App::$strings["To:"] = "Para:";
+App::$strings["Subject:"] = "Asunto:";
+App::$strings["Attach file"] = "Adjuntar fichero";
+App::$strings["Send"] = "Enviar";
+App::$strings["Set expiration date"] = "Configurar fecha de caducidad";
+App::$strings["Encrypt text"] = "Cifrar texto";
+App::$strings["Delete message"] = "Borrar mensaje";
+App::$strings["Delivery report"] = "Informe de transmisión";
+App::$strings["Recall message"] = "Revocar el mensaje";
+App::$strings["Message has been recalled."] = "El mensaje ha sido revocado.";
+App::$strings["Delete Conversation"] = "Eliminar conversación";
+App::$strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Comunicación segura no disponible. Pero <strong>puede</strong> responder desde la página del perfil del remitente.";
+App::$strings["Send Reply"] = "Responder";
+App::$strings["Your message for %s (%s):"] = "Su mensaje para %s (%s):";
+App::$strings["Could not access contact record."] = "No se ha podido acceder al registro de contacto.";
+App::$strings["Could not locate selected profile."] = "No se ha podido localizar el perfil seleccionado.";
+App::$strings["Connection updated."] = "Conexión actualizada.";
+App::$strings["Failed to update connection record."] = "Error al actualizar el registro de la conexión.";
+App::$strings["is now connected to"] = "ahora está conectado/a";
+App::$strings["Could not access address book record."] = "No se pudo acceder al registro en su libreta de direcciones.";
+App::$strings["Refresh failed - channel is currently unavailable."] = "Recarga fallida - no se puede encontrar el canal en este momento.";
+App::$strings["Unable to set address book parameters."] = "No ha sido posible establecer los parámetros de la libreta de direcciones.";
+App::$strings["Connection has been removed."] = "La conexión ha sido eliminada.";
+App::$strings["View Profile"] = "Ver el perfil";
+App::$strings["View %s's profile"] = "Ver el perfil de %s";
+App::$strings["Refresh Permissions"] = "Recargar los permisos";
+App::$strings["Fetch updated permissions"] = "Obtener los permisos actualizados";
+App::$strings["Recent Activity"] = "Actividad reciente";
+App::$strings["View recent posts and comments"] = "Ver publicaciones y comentarios recientes";
+App::$strings["Block (or Unblock) all communications with this connection"] = "Bloquear (o desbloquear) todas las comunicaciones con esta conexión";
+App::$strings["This connection is blocked!"] = "¡Esta conexión está bloqueada!";
+App::$strings["Unignore"] = "Dejar de ignorar";
+App::$strings["Ignore (or Unignore) all inbound communications from this connection"] = "Ignorar (o dejar de ignorar) todas las comunicaciones entrantes de esta conexión";
+App::$strings["This connection is ignored!"] = "¡Esta conexión es ignorada!";
+App::$strings["Unarchive"] = "Desarchivar";
+App::$strings["Archive"] = "Archivar";
+App::$strings["Archive (or Unarchive) this connection - mark channel dead but keep content"] = "Archiva (o desarchiva) esta conexión - marca el canal como muerto aunque mantiene sus contenidos";
+App::$strings["This connection is archived!"] = "¡Esta conexión esta archivada!";
+App::$strings["Unhide"] = "Mostrar";
+App::$strings["Hide"] = "Ocultar";
+App::$strings["Hide or Unhide this connection from your other connections"] = "Ocultar o mostrar esta conexión a sus otras conexiones";
+App::$strings["This connection is hidden!"] = "¡Esta conexión está oculta!";
+App::$strings["Delete this connection"] = "Eliminar esta conexión";
+App::$strings["Me"] = "Yo";
+App::$strings["Family"] = "Familia";
+App::$strings["Acquaintances"] = "Conocidos/as";
+App::$strings["Approve this connection"] = "Aprobar esta conexión";
+App::$strings["Accept connection to allow communication"] = "Aceptar la conexión para permitir la comunicación";
+App::$strings["Set Affinity"] = "Ajustar la afinidad";
+App::$strings["Set Profile"] = "Ajustar el perfil";
+App::$strings["Set Affinity & Profile"] = "Ajustar la afinidad y el perfil";
+App::$strings["none"] = "-";
+App::$strings["Connection Default Permissions"] = "Permisos predeterminados de conexión";
+App::$strings["Connection: %s"] = "Conexión: %s";
+App::$strings["Apply these permissions automatically"] = "Aplicar estos permisos automaticamente";
+App::$strings["Connection requests will be approved without your interaction"] = "Las solicitudes de conexión serán aprobadas sin su intervención";
+App::$strings["This connection's primary address is"] = "La dirección primaria de esta conexión es";
+App::$strings["Available locations:"] = "Ubicaciones disponibles:";
+App::$strings["The permissions indicated on this page will be applied to all new connections."] = "Los permisos indicados en esta página serán aplicados en todas las nuevas conexiones.";
+App::$strings["Connection Tools"] = "Gestión de las conexiones";
+App::$strings["Slide to adjust your degree of friendship"] = "Deslizar para ajustar el grado de amistad";
+App::$strings["Slide to adjust your rating"] = "Deslizar para ajustar su valoración";
+App::$strings["Optionally explain your rating"] = "Opcionalmente, puede explicar su valoración";
+App::$strings["Custom Filter"] = "Filtro personalizado";
+App::$strings["Only import posts with this text"] = "Importar solo entradas que contengan este texto";
+App::$strings["words one per line or #tags or /patterns/ or lang=xx, leave blank to import all posts"] = "Una sola opción por línea: palabras, #etiquetas, /patrones/ o lang=xx. Dejar en blanco para importarlo todo";
+App::$strings["Do not import posts with this text"] = "No importar entradas que contengan este texto";
+App::$strings["This information is public!"] = "¡Esta información es pública!";
+App::$strings["Connection Pending Approval"] = "Conexión pendiente de aprobación";
+App::$strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Por favor, escoja el perfil que quiere mostrar a %s cuando esté viendo su perfil de forma segura.";
+App::$strings["Some permissions may be inherited from your channel's <a href=\"settings\"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can change those settings here but they wont have any impact unless the inherited setting changes."] = "Algunos permisos pueden ser heredados de los <a href=\"settings\"><strong>ajustes de privacidad</strong></a> de sus canales, los cuales tienen una prioridad más alta que los ajustes individuales. Puede cambiar estos ajustes aquí, pero no tendrán ningún consecuencia hasta que cambie los ajustes heredados.";
+App::$strings["Last update:"] = "Última actualización:";
+App::$strings["Apps"] = "Aplicaciones (apps)";
+App::$strings["Continue"] = "Continuar";
+App::$strings["Premium Channel Setup"] = "Configuración del canal premium";
+App::$strings["Enable premium channel connection restrictions"] = "Habilitar restricciones de conexión del canal premium";
+App::$strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Por favor introduzca sus restricciones o condiciones, como recibo de paypal, normas de uso, etc.";
+App::$strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Este canal puede requerir antes de conectar unos pasos adicionales o el conocimiento de las siguientes condiciones:";
+App::$strings["Potential connections will then see the following text before proceeding:"] = "Las posibles conexiones verán, por tanto, el siguiente texto antes de proceder:";
+App::$strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Al continuar, certifico que he cumplido con todas las instrucciones proporcionadas en esta página.";
+App::$strings["(No specific instructions have been provided by the channel owner.)"] = "(No ha sido proporcionada ninguna instrucción específica por el propietario del canal.)";
+App::$strings["Restricted or Premium Channel"] = "Canal premium o restringido";
App::$strings["Select a bookmark folder"] = "Seleccionar una carpeta de marcadores";
App::$strings["Save Bookmark"] = "Guardar marcador";
App::$strings["URL of bookmark"] = "Dirección del marcador";
App::$strings["Or enter new bookmark folder name"] = "O introduzca un nuevo nombre para la carpeta de marcadores";
-App::$strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Se ha superado el límite máximo de inscripciones diarias de este sitio. Por favor, pruebe de nuevo mañana.";
-App::$strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Por favor, confirme que acepta los Términos del servicio. El registro ha fallado.";
-App::$strings["Passwords do not match."] = "Las contraseñas no coinciden.";
-App::$strings["Registration successful. Please check your email for validation instructions."] = "Registro realizado con éxito. Por favor, compruebe su correo electrónico para ver las instrucciones para validarlo.";
-App::$strings["Your registration is pending approval by the site owner."] = "Su registro está pendiente de aprobación por el propietario del sitio.";
-App::$strings["Your registration can not be processed."] = "Su registro no puede ser procesado.";
-App::$strings["Registration on this hub is disabled."] = "El registro está deshabilitado en este sitio.";
-App::$strings["Registration on this hub is by approval only."] = "El registro en este hub está sometido a aprobación previa.";
-App::$strings["<a href=\"pubsites\">Register at another affiliated hub.</a>"] = "<a href=\"pubsites\">Registrarse en otro hub afiliado.</a>";
-App::$strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Este sitio ha excedido el límite de inscripción diaria de cuentas. Por favor, inténtelo de nuevo mañana.";
-App::$strings["Terms of Service"] = "Términos del servicio";
-App::$strings["I accept the %s for this website"] = "Acepto los %s de este sitio";
-App::$strings["I am over 13 years of age and accept the %s for this website"] = "Tengo más de 13 años de edad y acepto los %s de este sitio";
-App::$strings["Your email address"] = "Su dirección de correo electrónico";
-App::$strings["Choose a password"] = "Elija una contraseña";
-App::$strings["Please re-enter your password"] = "Por favor, vuelva a escribir su contraseña";
-App::$strings["Please enter your invitation code"] = "Por favor, introduzca el código de su invitación";
-App::$strings["no"] = "no";
-App::$strings["yes"] = "sí";
-App::$strings["Membership on this site is by invitation only."] = "Para registrarse en este sitio es necesaria una invitación.";
-App::$strings["Register"] = "Registrarse";
-App::$strings["This site may require email verification after submitting this form. If you are returned to a login page, please check your email for instructions."] = "Este sitio puede requerir una verificación de correo electrónico después de enviar este formulario. Si es devuelto a una página de inicio de sesión, compruebe su email para recibir y leer las instrucciones.";
+App::$strings["Authentication failed."] = "Falló la autenticación.";
+App::$strings["Remote Authentication"] = "Acceso desde su servidor";
+App::$strings["Enter your channel address (e.g. channel@example.com)"] = "Introduzca la dirección del canal (p.ej. canal@ejemplo.com)";
+App::$strings["Authenticate"] = "Acceder";
App::$strings["Please login."] = "Por favor, inicie sesión.";
App::$strings["Account removals are not allowed within 48 hours of changing the account password."] = "La eliminación de cuentas no está permitida hasta después de que hayan transcurrido 48 horas desde el último cambio de contraseña.";
App::$strings["Remove This Account"] = "Eliminar esta cuenta";
@@ -1131,13 +1347,11 @@ App::$strings["This action is permanent and can not be undone!"] = "¡Esta acciÃ
App::$strings["Please enter your password for verification:"] = "Por favor, introduzca su contraseña para su verificación:";
App::$strings["Remove this account, all its channels and all its channel clones from the network"] = "Remover esta cuenta, todos sus canales y clones de la red";
App::$strings["By default only the instances of the channels located on this hub will be removed from the network"] = "Por defecto, solo las instancias de los canales ubicados en este servidor serán eliminados de la red";
-App::$strings["Remove Account"] = "Eliminar cuenta";
App::$strings["Channel removals are not allowed within 48 hours of changing the account password."] = "La eliminación de canales no está permitida hasta pasadas 48 horas desde el último cambio de contraseña.";
App::$strings["Remove This Channel"] = "Eliminar este canal";
App::$strings["This channel will be completely removed from the network. "] = "Este canal va a ser completamente eliminado de la red.";
App::$strings["Remove this channel and all its clones from the network"] = "Eliminar este canal y todos sus clones de la red";
App::$strings["By default only the instance of the channel located on this hub will be removed from the network"] = "Por defecto, solo la instancia del canal alojado en este servidor será eliminado de la red";
-App::$strings["Remove Channel"] = "Eliminar el canal";
App::$strings["Export Channel"] = "Exportar el canal";
App::$strings["Export your basic channel information to a file. This acts as a backup of your connections, permissions, profile and basic data, which can be used to import your data to a new server hub, but does not contain your content."] = "Exportar la información básica del canal a un fichero. Este equivale a una copia de seguridad de sus conexiones, el perfil y datos fundamentales, que puede usarse para importar sus datos a un nuevo servidor, pero no incluye su contenido.";
App::$strings["Export Content"] = "Exportar contenidos";
@@ -1147,255 +1361,11 @@ App::$strings["You may also export your posts and conversations for a particular
App::$strings["To select all posts for a given year, such as this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Para seleccionar todos los mensajes de un año determinado, como este año, visite <a href=\"%1\$s\">%2\$s</a>";
App::$strings["To select all posts for a given month, such as January of this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Para seleccionar todos los mensajes de un mes determinado, como el de enero de este año, visite <a href=\"%1\$s\">%2\$s</a>";
App::$strings["These content files may be imported or restored by visiting <a href=\"%1\$s\">%2\$s</a> on any site containing your channel. For best results please import or restore these in date order (oldest first)."] = "Estos ficheros pueden ser importados o restaurados visitando <a href=\"%1\$s\">%2\$s</a> o cualquier sitio que contenga su canal. Para obtener los mejores resultados, por favor, importar o restaurar estos ficheros en orden de fecha (la más antigua primero).";
+App::$strings["Item is not editable"] = "El elemento no es editable";
+App::$strings["Edit post"] = "Editar la entrada";
App::$strings["Items tagged with: %s"] = "elementos etiquetados con: %s";
App::$strings["Search results for: %s"] = "Resultados de la búsqueda para: %s";
App::$strings["No service class restrictions found."] = "No se han encontrado restricciones sobre esta clase de servicio.";
-App::$strings["Name is required"] = "El nombre es obligatorio";
-App::$strings["Key and Secret are required"] = "\"Key\" y \"Secret\" son obligatorios";
-App::$strings["This channel is limited to %d tokens"] = "Este canal tiene un límite de %d tokens";
-App::$strings["Name and Password are required."] = "Se requiere el nombre y la contraseña.";
-App::$strings["Token saved."] = "Token salvado.";
-App::$strings["Not valid email."] = "Correo electrónico no válido.";
-App::$strings["Protected email address. Cannot change to that email."] = "Dirección de correo electrónico protegida. No se puede cambiar a ella.";
-App::$strings["System failure storing new email. Please try again."] = "Fallo de sistema al guardar el nuevo correo electrónico. Por favor, inténtelo de nuevo.";
-App::$strings["Password verification failed."] = "La comprobación de la contraseña ha fallado.";
-App::$strings["Passwords do not match. Password unchanged."] = "Las contraseñas no coinciden. La contraseña no se ha cambiado.";
-App::$strings["Empty passwords are not allowed. Password unchanged."] = "No se permiten contraseñas vacías. La contraseña no se ha cambiado.";
-App::$strings["Password changed."] = "Contraseña cambiada.";
-App::$strings["Password update failed. Please try again."] = "La actualización de la contraseña ha fallado. Por favor, inténtalo de nuevo.";
-App::$strings["Settings updated."] = "Ajustes actualizados.";
-App::$strings["Add application"] = "Añadir aplicación";
-App::$strings["Name of application"] = "Nombre de la aplicación";
-App::$strings["Consumer Key"] = "Consumer Key";
-App::$strings["Automatically generated - change if desired. Max length 20"] = "Generado automáticamente - si lo desea, cámbielo. Longitud máxima: 20";
-App::$strings["Consumer Secret"] = "Consumer Secret";
-App::$strings["Redirect"] = "Redirigir";
-App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI de redirección - dejar en blanco a menos que su aplicación específicamente lo requiera";
-App::$strings["Icon url"] = "Dirección del icono";
-App::$strings["Optional"] = "Opcional";
-App::$strings["Application not found."] = "Aplicación no encontrada.";
-App::$strings["Connected Apps"] = "Aplicaciones (apps) conectadas";
-App::$strings["Client key starts with"] = "La \"client key\" empieza por";
-App::$strings["No name"] = "Sin nombre";
-App::$strings["Remove authorization"] = "Eliminar autorización";
-App::$strings["No feature settings configured"] = "No se ha establecido la configuración de los complementos";
-App::$strings["Feature/Addon Settings"] = "Ajustes de los complementos";
-App::$strings["Account Settings"] = "Configuración de la cuenta";
-App::$strings["Current Password"] = "Contraseña actual";
-App::$strings["Enter New Password"] = "Escribir una nueva contraseña";
-App::$strings["Confirm New Password"] = "Confirmar la nueva contraseña";
-App::$strings["Leave password fields blank unless changing"] = "Dejar en blanco la contraseña a menos que desee cambiarla.";
-App::$strings["Email Address:"] = "Dirección de correo electrónico:";
-App::$strings["Remove this account including all its channels"] = "Eliminar esta cuenta incluyendo todos sus canales";
-App::$strings["Use this form to create temporary access identifiers to share things with non-members. These identities may be used in Access Control Lists and visitors may login using these credentials to access the private content."] = "Utilice este formulario para crear identificadores de acceso temporal para compartir cosas con los no miembros. Estas identidades se pueden usar en las Listas de control de acceso y así los visitantes pueden iniciar sesión, utilizando estas credenciales, para acceder a su contenido privado.";
-App::$strings["You may also provide <em>dropbox</em> style access links to friends and associates by adding the Login Password to any specific site URL as shown. Examples:"] = "También puede proporcionar, con el estilo <em>dropbox</em>, enlaces de acceso a sus amigos y asociados añadiendo la contraseña de inicio de sesión a cualquier dirección URL, como se muestra. Ejemplos: ";
-App::$strings["Guest Access Tokens"] = "Tokens de acceso para invitados";
-App::$strings["Login Name"] = "Nombre de inicio de sesión";
-App::$strings["Login Password"] = "Contraseña de inicio de sesión";
-App::$strings["Expires (yyyy-mm-dd)"] = "Expira (aaaa-mm-dd)";
-App::$strings["Additional Features"] = "Funcionalidades";
-App::$strings["Connector Settings"] = "Configuración del conector";
-App::$strings["No special theme for mobile devices"] = "Sin tema especial para dispositivos móviles";
-App::$strings["%s - (Experimental)"] = "%s - (Experimental)";
-App::$strings["Display Settings"] = "Ajustes de visualización";
-App::$strings["Theme Settings"] = "Ajustes del tema";
-App::$strings["Custom Theme Settings"] = "Ajustes personalizados del tema";
-App::$strings["Content Settings"] = "Ajustes del contenido";
-App::$strings["Display Theme:"] = "Tema gráfico del perfil:";
-App::$strings["Mobile Theme:"] = "Tema para el móvil:";
-App::$strings["Preload images before rendering the page"] = "Carga previa de las imágenes antes de generar la página";
-App::$strings["The subjective page load time will be longer but the page will be ready when displayed"] = "El tiempo subjetivo de carga de la página será más largo, pero la página estará lista cuando se muestre.";
-App::$strings["Enable user zoom on mobile devices"] = "Habilitar zoom de usuario en dispositivos móviles";
-App::$strings["Update browser every xx seconds"] = "Actualizar navegador cada xx segundos";
-App::$strings["Minimum of 10 seconds, no maximum"] = "Mínimo de 10 segundos, sin máximo";
-App::$strings["Maximum number of conversations to load at any time:"] = "Máximo número de conversaciones a cargar en cualquier momento:";
-App::$strings["Maximum of 100 items"] = "Máximo de 100 elementos";
-App::$strings["Show emoticons (smilies) as images"] = "Mostrar emoticonos (smilies) como imágenes";
-App::$strings["Link post titles to source"] = "Enlazar título de la publicación a la fuente original";
-App::$strings["System Page Layout Editor - (advanced)"] = "Editor de plantilla de página del sistema - (avanzado)";
-App::$strings["Use blog/list mode on channel page"] = "Usar modo blog/lista en la página de inicio del canal";
-App::$strings["(comments displayed separately)"] = "(comentarios mostrados de forma separada)";
-App::$strings["Use blog/list mode on grid page"] = "Mostrar mi red en modo blog";
-App::$strings["Channel page max height of content (in pixels)"] = "Altura máxima del contenido de la página del canal (en píxeles)";
-App::$strings["click to expand content exceeding this height"] = "Pulsar para expandir el contenido que exceda de esta altura";
-App::$strings["Grid page max height of content (in pixels)"] = "Altura máxima del contenido de mi red (en píxeles)";
-App::$strings["Nobody except yourself"] = "Nadie excepto usted";
-App::$strings["Only those you specifically allow"] = "Solo aquellos a los que usted permita explícitamente";
-App::$strings["Approved connections"] = "Conexiones aprobadas";
-App::$strings["Any connections"] = "Cualquier conexión";
-App::$strings["Anybody on this website"] = "Cualquiera en este sitio web";
-App::$strings["Anybody in this network"] = "Cualquiera en esta red";
-App::$strings["Anybody authenticated"] = "Cualquiera que esté autenticado";
-App::$strings["Anybody on the internet"] = "Cualquiera en internet";
-App::$strings["Publish your default profile in the network directory"] = "Publicar su perfil principal en el directorio de la red";
-App::$strings["Allow us to suggest you as a potential friend to new members?"] = "¿Nos permite sugerirle como amigo potencial a los nuevos miembros?";
-App::$strings["Your channel address is"] = "Su dirección de canal es";
-App::$strings["Channel Settings"] = "Ajustes del canal";
-App::$strings["Basic Settings"] = "Configuración básica";
-App::$strings["Full Name:"] = "Nombre completo:";
-App::$strings["Your Timezone:"] = "Su huso horario:";
-App::$strings["Default Post Location:"] = "Localización geográfica predeterminada para sus publicaciones:";
-App::$strings["Geographical location to display on your posts"] = "Localización geográfica que debe mostrarse en sus publicaciones";
-App::$strings["Use Browser Location:"] = "Usar la localización geográfica del navegador:";
-App::$strings["Adult Content"] = "Contenido solo para adultos";
-App::$strings["This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)"] = "Este canal publica contenido solo para adultos con frecuencia o regularmente. (Por favor etiquete cualquier material para adultos con la etiqueta #NSFW)";
-App::$strings["Security and Privacy Settings"] = "Configuración de seguridad y privacidad";
-App::$strings["Your permissions are already configured. Click to view/adjust"] = "Sus permisos ya están configurados. Pulse para ver/ajustar";
-App::$strings["Hide my online presence"] = "Ocultar mi presencia en línea";
-App::$strings["Prevents displaying in your profile that you are online"] = "Evitar mostrar en su perfil que está en línea";
-App::$strings["Simple Privacy Settings:"] = "Configuración de privacidad sencilla:";
-App::$strings["Very Public - <em>extremely permissive (should be used with caution)</em>"] = "Muy Público - <em>extremadamente permisivo (debería ser usado con precaución)</em>";
-App::$strings["Typical - <em>default public, privacy when desired (similar to social network permissions but with improved privacy)</em>"] = "Típico - <em>por defecto público, privado cuando se desee (similar a los permisos de una red social pero con privacidad mejorada)</em>";
-App::$strings["Private - <em>default private, never open or public</em>"] = "Privado - <em>por defecto, privado, nunca abierto o público</em>";
-App::$strings["Blocked - <em>default blocked to/from everybody</em>"] = "Bloqueado - <em>por defecto, bloqueado/a para cualquiera</em>";
-App::$strings["Allow others to tag your posts"] = "Permitir a otros etiquetar sus publicaciones";
-App::$strings["Often used by the community to retro-actively flag inappropriate content"] = "A menudo usado por la comunidad para marcar contenido inapropiado de forma retroactiva.";
-App::$strings["Advanced Privacy Settings"] = "Configuración de privacidad avanzada";
-App::$strings["Expire other channel content after this many days"] = "Caducar contenido de otros canales después de este número de días";
-App::$strings["0 or blank to use the website limit."] = "0 o en blanco para usar el límite del sitio web.";
-App::$strings["This website expires after %d days."] = "Este sitio web caduca después de %d días.";
-App::$strings["This website does not expire imported content."] = "Este sitio web no caduca el contenido importado.";
-App::$strings["The website limit takes precedence if lower than your limit."] = "El límite del sitio web tiene prioridad si es inferior a su propio límite.";
-App::$strings["Maximum Friend Requests/Day:"] = "Máximo de solicitudes de amistad por día:";
-App::$strings["May reduce spam activity"] = "Podría reducir la actividad de spam";
-App::$strings["Default Post and Publish Permissions"] = "Permisos predeterminados de entradas y publicaciones";
-App::$strings["Use my default audience setting for the type of object published"] = "Usar los ajustes de mi audiencia predeterminada para el tipo de publicación";
-App::$strings["Channel permissions category:"] = "Categoría de permisos del canal:";
-App::$strings["Maximum private messages per day from unknown people:"] = "Máximo de mensajes privados por día de gente desconocida:";
-App::$strings["Useful to reduce spamming"] = "Útil para reducir el envío de correo no deseado";
-App::$strings["Notification Settings"] = "Configuración de las notificaciones";
-App::$strings["By default post a status message when:"] = "Por defecto, enviar un mensaje de estado cuando:";
-App::$strings["accepting a friend request"] = "Acepte una solicitud de amistad";
-App::$strings["joining a forum/community"] = "al unirse a un foro o comunidad";
-App::$strings["making an <em>interesting</em> profile change"] = "Realice un cambio <em>interesante</em> en su perfil";
-App::$strings["Send a notification email when:"] = "Enviar una notificación por correo electrónico cuando:";
-App::$strings["You receive a connection request"] = "Reciba una solicitud de conexión";
-App::$strings["Your connections are confirmed"] = "Sus conexiones hayan sido confirmadas";
-App::$strings["Someone writes on your profile wall"] = "Alguien escriba en la página de su perfil (\"muro\")";
-App::$strings["Someone writes a followup comment"] = "Alguien escriba un comentario sobre sus publicaciones";
-App::$strings["You receive a private message"] = "Reciba un mensaje privado";
-App::$strings["You receive a friend suggestion"] = "Reciba una sugerencia de amistad";
-App::$strings["You are tagged in a post"] = "Usted sea etiquetado en una publicación";
-App::$strings["You are poked/prodded/etc. in a post"] = "Reciba un toque o incitación en una publicación";
-App::$strings["Show visual notifications including:"] = "Mostrar notificaciones visuales que incluyan:";
-App::$strings["Unseen grid activity"] = "Nueva actividad en la red";
-App::$strings["Unseen channel activity"] = "Actividad no vista en el canal";
-App::$strings["Unseen private messages"] = "Mensajes privados no leídos";
-App::$strings["Recommended"] = "Recomendado";
-App::$strings["Upcoming events"] = "Próximos eventos";
-App::$strings["Events today"] = "Eventos de hoy";
-App::$strings["Upcoming birthdays"] = "Próximos cumpleaños";
-App::$strings["Not available in all themes"] = "No disponible en todos los temas";
-App::$strings["System (personal) notifications"] = "Notificaciones del sistema (personales)";
-App::$strings["System info messages"] = "Mensajes de información del sistema";
-App::$strings["System critical alerts"] = "Alertas críticas del sistema";
-App::$strings["New connections"] = "Nuevas conexiones";
-App::$strings["System Registrations"] = "Registros del sistema";
-App::$strings["Also show new wall posts, private messages and connections under Notices"] = "Mostrar también en Avisos las nuevas publicaciones, los mensajes privados y las conexiones";
-App::$strings["Notify me of events this many days in advance"] = "Avisarme de los eventos con algunos días de antelación";
-App::$strings["Must be greater than 0"] = "Debe ser mayor que 0";
-App::$strings["Advanced Account/Page Type Settings"] = "Ajustes avanzados de la cuenta y de los tipos de página";
-App::$strings["Change the behaviour of this account for special situations"] = "Cambiar el comportamiento de esta cuenta en situaciones especiales";
-App::$strings["Please enable expert mode (in <a href=\"settings/features\">Settings > Additional features</a>) to adjust!"] = "¡Activar el modo de experto (en <a href=\"settings/features\">Ajustes > Funcionalidades</a>) para realizar cambios!.";
-App::$strings["Miscellaneous Settings"] = "Ajustes diversos";
-App::$strings["Default photo upload folder"] = "Carpeta por defecto de las fotos subidas";
-App::$strings["%Y - current year, %m - current month"] = "%Y - año en curso, %m - mes actual";
-App::$strings["Default file upload folder"] = "Carpeta por defecto de los archivos subidos";
-App::$strings["Personal menu to display in your channel pages"] = "Menú personal que debe mostrarse en las páginas de su canal";
-App::$strings["Remove this channel."] = "Eliminar este canal.";
-App::$strings["Firefox Share \$Projectname provider"] = "Servicio de compartición de Firefox: proveedor \$Projectname";
-App::$strings["Start calendar week on monday"] = "Comenzar el calendario semanal por el lunes";
-App::$strings["\$Projectname Server - Setup"] = "Servidor \$Projectname - Instalación";
-App::$strings["Could not connect to database."] = "No se ha podido conectar a la base de datos.";
-App::$strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "No se puede conectar con la dirección del sitio indicada. Podría tratarse de un problema de SSL o DNS.";
-App::$strings["Could not create table."] = "No se puede crear la tabla.";
-App::$strings["Your site database has been installed."] = "La base de datos del sitio ha sido instalada.";
-App::$strings["You may need to import the file \"install/schema_xxx.sql\" manually using a database client."] = "Podría tener que importar manualmente el fichero \"install/schema_xxx.sql\" usando un cliente de base de datos.";
-App::$strings["Please see the file \"install/INSTALL.txt\"."] = "Por favor, lea el fichero \"install/INSTALL.txt\".";
-App::$strings["System check"] = "Verificación del sistema";
-App::$strings["Check again"] = "Verificar de nuevo";
-App::$strings["Database connection"] = "Conexión a la base de datos";
-App::$strings["In order to install \$Projectname we need to know how to connect to your database."] = "Para instalar \$Projectname es necesario saber cómo conectar con su base de datos.";
-App::$strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Por favor, contacte con el proveedor de servicios o el administrador del sitio si tiene dudas sobre estos ajustes.";
-App::$strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "La base de datos que especifique a continuación debe existir ya. Si no es así, por favor, créela antes de seguir.";
-App::$strings["Database Server Name"] = "Nombre del servidor de base de datos";
-App::$strings["Default is 127.0.0.1"] = "De forma predeterminada es 127.0.0.1";
-App::$strings["Database Port"] = "Puerto de la base de datos";
-App::$strings["Communication port number - use 0 for default"] = "Número del puerto de comunicaciones - use 0 como valor por defecto";
-App::$strings["Database Login Name"] = "Usuario de la base de datos";
-App::$strings["Database Login Password"] = "Contraseña de acceso a la base de datos";
-App::$strings["Database Name"] = "Nombre de la base de datos";
-App::$strings["Database Type"] = "Tipo de base de datos";
-App::$strings["Site administrator email address"] = "Dirección de correo electrónico del administrador del sitio";
-App::$strings["Your account email address must match this in order to use the web admin panel."] = "Su cuenta deberá usar la misma dirección de correo electrónico para poder utilizar el panel de administración web.";
-App::$strings["Website URL"] = "Dirección del sitio web";
-App::$strings["Please use SSL (https) URL if available."] = "Por favor, use SSL (https) si está disponible.";
-App::$strings["Please select a default timezone for your website"] = "Por favor, selecciones el huso horario por defecto de su sitio web";
-App::$strings["Site settings"] = "Ajustes del sitio";
-App::$strings["Enable \$Projectname <strong>advanced</strong> features?"] = "¿Habilitar las funcionalidades <strong>avanzadas</strong> de \$Projectname ?";
-App::$strings["Some advanced features, while useful - may be best suited for technically proficient audiences"] = "Algunas funcionalidades avanzadas, si bien son útiles, pueden ser más adecuadas para un público técnicamente competente";
-App::$strings["PHP version 5.5 or greater is required."] = "Se requiere la versión 5.5, o superior, de PHP.";
-App::$strings["PHP version"] = "Versión de PHP";
-App::$strings["Could not find a command line version of PHP in the web server PATH."] = "No se puede encontrar una versión en línea de comandos de PHP en la ruta del servidor web.";
-App::$strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron."] = "Si no tiene instalada la versión de línea de comandos de PHP en su servidor, no podrá realizar envíos en segundo plano mediante cron.";
-App::$strings["PHP executable path"] = "Ruta del ejecutable PHP";
-App::$strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Introducir la ruta completa del ejecutable PHP. Puede dejar la línea en blanco para continuar la instalación.";
-App::$strings["Command line PHP"] = "PHP en línea de comandos";
-App::$strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "La línea de comandos PHP de su sistema no tiene activado \"register_argc_argv\".";
-App::$strings["This is required for message delivery to work."] = "Esto es necesario para que funcione la transmisión de mensajes.";
-App::$strings["PHP register_argc_argv"] = "PHP register_argc_argv";
-App::$strings["Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once."] = "La carga máxima que se le permite subir está establecida en %s. El tamaño máximo de un fichero está establecido en %s. Está permitido subir hasta un máximo de %d ficheros de una sola vez.";
-App::$strings["You can adjust these settings in the servers php.ini."] = "Puede ajustar estos valores en el fichero php.ini de su servidor.";
-App::$strings["PHP upload limits"] = "Límites PHP de subida";
-App::$strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Error: La función \"openssl_pkey_new\" en este sistema no es capaz de general claves de cifrado.";
-App::$strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Si está en un servidor Windows, por favor, lea \"http://www.php.net/manual/en/openssl.installation.php\".";
-App::$strings["Generate encryption keys"] = "Generar claves de cifrado";
-App::$strings["libCurl PHP module"] = "módulo libCurl PHP";
-App::$strings["GD graphics PHP module"] = "módulo PHP GD graphics";
-App::$strings["OpenSSL PHP module"] = "módulo PHP OpenSSL";
-App::$strings["mysqli or postgres PHP module"] = "módulo PHP mysqli o postgres";
-App::$strings["mb_string PHP module"] = "módulo PHP mb_string";
-App::$strings["xml PHP module"] = "módulo PHP xml";
-App::$strings["Apache mod_rewrite module"] = "módulo Apache mod_rewrite ";
-App::$strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Error: se necesita el módulo del servidor web Apache mod-rewrite pero no está instalado.";
-App::$strings["proc_open"] = "proc_open";
-App::$strings["Error: proc_open is required but is either not installed or has been disabled in php.ini"] = "Error: se necesita proc_open pero o no está instalado o ha sido desactivado en el fichero php.ini";
-App::$strings["Error: libCURL PHP module required but not installed."] = "Error: se necesita el módulo PHP libCURL pero no está instalado.";
-App::$strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Error: el módulo PHP GD graphics es necesario, pero no está instalado.";
-App::$strings["Error: openssl PHP module required but not installed."] = "Error: el módulo PHP openssl es necesario, pero no está instalado.";
-App::$strings["Error: mysqli or postgres PHP module required but neither are installed."] = "Error: el módulo PHP mysqli o postgres es necesario pero ninguno de los dos está instalado.";
-App::$strings["Error: mb_string PHP module required but not installed."] = "Error: el módulo PHP mb_string es necesario, pero no está instalado.";
-App::$strings["Error: xml PHP module required for DAV but not installed."] = "Error: el módulo PHP xml es necesario para DAV, pero no está instalado.";
-App::$strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "El instalador web no ha podido crear un fichero llamado “.htconfig.php†en la carpeta base de su servidor.";
-App::$strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Esto está generalmente ligado a un problema de permisos, a causa del cual el servidor web tiene prohibido modificar ficheros en su carpeta - incluso si usted mismo tiene esos permisos.";
-App::$strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."] = "Al término de este procedimiento, podemos crear un fichero de texto para guardar con el nombre .htconfig.php en el directorio raíz de su instalación de Hubzilla.";
-App::$strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Como alternativa, puede dejar este procedimiento e intentar realizar una instalación manual. Lea, por favor, el fichero\"install/INSTALL.txt\" para las instrucciones.";
-App::$strings[".htconfig.php is writable"] = ".htconfig.php tiene permisos de escritura";
-App::$strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Hubzilla hace uso del motor de plantillas Smarty3 para diseñar sus plantillas gráficas. Smarty3 es más rápido porque compila las plantillas de páginas directamente en PHP.";
-App::$strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder."] = "Para poder guardar las plantillas compiladas, el servidor web necesita permisos para acceder al directorio %s en la carpeta web principal.";
-App::$strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Por favor, asegúrese de que el servidor web está siendo ejecutado por un usuario que tenga permisos de escritura sobre esta carpeta (por ejemplo, www-data).";
-App::$strings["Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."] = "Nota: como medida de seguridad, debe dar al servidor web permisos de escritura solo sobre %s - no sobre el fichero de plantilla (.tpl) que contiene.";
-App::$strings["%s is writable"] = "%s tiene permisos de escritura";
-App::$strings["This software uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder"] = "Este software utiliza el directorio de almacenamiento para guardar los archivos subidos. El servidor web debe tener acceso de escritura al directorio de almacenamiento en la carpeta de nivel superior";
-App::$strings["store is writable"] = "\"store\" tiene permisos de escritura";
-App::$strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "El certificado SSL no ha podido ser validado. Corrija este problema o desactive el acceso https a este sitio.";
-App::$strings["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "Si su servidor soporta conexiones cifradas SSL o si permite conexiones al puerto TCP 443 (el puerto usado por el protocolo https), debe utilizar un certificado válido. No debe usar un certificado firmado por usted mismo.";
-App::$strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "Se ha incorporado esta restricción para evitar que sus publicaciones públicas hagan referencia a imágenes en su propio servidor.";
-App::$strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "Si su certificado no ha sido reconocido, los miembros de otros sitios (con certificados válidos) recibirán mensajes de aviso en sus propios sitios web.";
-App::$strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "Por razones de compatibilidad (sobre el conjunto de la red, no solo sobre su propio sitio), debemos insistir en estos requisitos.";
-App::$strings["Providers are available that issue free certificates which are browser-valid."] = "Existen varias Autoridades de Certificación que le pueden proporcionar certificados válidos.";
-App::$strings["If you are confident that the certificate is valid and signed by a trusted authority, check to see if you have failed to install an intermediate cert. These are not normally required by browsers, but are required for server-to-server communications."] = "Si se tiene la certeza de que el certificado es válido y está firmado por una autoridad de confianza, comprobar para ver si hubo un error al instalar un certificado intermedio. Estos no son normalmente requeridos por los navegadores, pero son necesarios para las comunicaciones de servidor a servidor.";
-App::$strings["SSL certificate validation"] = "validación del certificado SSL";
-App::$strings["Url rewrite in .htaccess is not working. Check your server configuration.Test: "] = "No se pueden reescribir las direcciones web en .htaccess. Compruebe la configuración de su servidor:";
-App::$strings["Url rewrite is working"] = "La reescritura de las direcciones funciona correctamente";
-App::$strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "El fichero de configuración de la base de datos .htconfig.php no se ha podido modificar. Por favor, copie el texto generado en un fichero con ese nombre en el directorio raíz de su servidor.";
-App::$strings["Errors encountered creating database tables."] = "Se han encontrado errores al crear las tablas de la base de datos.";
-App::$strings["<h1>What next</h1>"] = "<h1>Siguiente paso</h1>";
-App::$strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANTE: Debe crear [manualmente] una tarea programada para el \"poller\".";
-App::$strings["Files: shared with me"] = "Ficheros: compartidos conmigo";
-App::$strings["NEW"] = "NUEVO";
-App::$strings["Remove all files"] = "Eliminar todos los ficheros";
-App::$strings["Remove this file"] = "Eliminar este fichero";
App::$strings["Thing updated"] = "Elemento actualizado.";
App::$strings["Object store: failed"] = "Guardar objeto: ha fallado";
App::$strings["Thing added"] = "Elemento añadido";
@@ -1410,7 +1380,37 @@ App::$strings["Name of thing e.g. something"] = "Nombre del elemento, p. ej.:. \
App::$strings["URL of thing (optional)"] = "Dirección del elemento (opcional)";
App::$strings["URL for photo of thing (optional)"] = "Dirección para la foto o elemento (opcional)";
App::$strings["Add Thing to your Profile"] = "Añadir alguna cosa a su perfil";
-App::$strings["Failed to create source. No channel selected."] = "Imposible crear el origen de los contenidos. Ningún canal ha sido seleccionado.";
+App::$strings["Unable to locate original post."] = "No ha sido posible encontrar la entrada original.";
+App::$strings["Empty post discarded."] = "La entrada vacía ha sido desechada.";
+App::$strings["Executable content type not permitted to this channel."] = "Contenido de tipo ejecutable no permitido en este canal.";
+App::$strings["Duplicate post suppressed."] = "Se ha suprimido la entrada duplicada.";
+App::$strings["System error. Post not saved."] = "Error del sistema. La entrada no se ha podido salvar.";
+App::$strings["Unable to obtain post information from database."] = "No ha sido posible obtener información de la entrada en la base de datos.";
+App::$strings["You have reached your limit of %1$.0f top level posts."] = "Ha alcanzado su límite de %1$.0f entradas en la página principal.";
+App::$strings["You have reached your limit of %1$.0f webpages."] = "Ha alcanzado su límite de %1$.0f páginas web.";
+App::$strings["Files: shared with me"] = "Ficheros: compartidos conmigo";
+App::$strings["NEW"] = "NUEVO";
+App::$strings["Remove all files"] = "Eliminar todos los ficheros";
+App::$strings["Remove this file"] = "Eliminar este fichero";
+App::$strings["Not found"] = "No encontrado";
+App::$strings["Wiki"] = "Wiki";
+App::$strings["Sandbox"] = "Entorno de edición";
+App::$strings["\"# Wiki Sandbox\\n\\nContent you **edit** and **preview** here *will not be saved*.\""] = "\"# Entorno de edición del Wiki\\n\\nEl contenido que se **edite** y **previsualizce** aquí *no se guardará*.\"";
+App::$strings["Revision Comparison"] = "Comparación de revisiones";
+App::$strings["Revert"] = "Revertir";
+App::$strings["Enter the name of your new wiki:"] = "Nombre de su nuevo wiki:";
+App::$strings["Enter the name of the new page:"] = "Nombre de la nueva página:";
+App::$strings["Enter the new name:"] = "Nuevo nombre:";
+App::$strings["Embed image from photo albums"] = "Incluir una imagen de los álbumes de fotos";
+App::$strings["Embed an image from your albums"] = "Incluir una imagen de sus álbumes";
+App::$strings["OK"] = "OK";
+App::$strings["Choose images to embed"] = "Elegir imágenes para incluir";
+App::$strings["Choose an album"] = "Elegir un álbum";
+App::$strings["Choose a different album..."] = "Elegir un álbum diferente...";
+App::$strings["Error getting album list"] = "Error al obtener la lista de álbumes";
+App::$strings["Error getting photo link"] = "Error al obtener el enlace de la foto";
+App::$strings["Error getting album"] = "Error al obtener el álbum";
+App::$strings["Failed to create source. No channel selected."] = "No se ha podido crear el origen de los contenidos. No ha sido seleccionado ningún canal.";
App::$strings["Source created."] = "Fuente creada.";
App::$strings["Source updated."] = "Fuente actualizada.";
App::$strings["*"] = "*";
@@ -1421,12 +1421,12 @@ App::$strings["Import all or selected content from the following channel into th
App::$strings["Only import content with these words (one per line)"] = "Importar solo contenido que contenga estas palabras (una por línea)";
App::$strings["Leave blank to import all public content"] = "Dejar en blanco para importar todo el contenido público";
App::$strings["Channel Name"] = "Nombre del canal";
-App::$strings["Add the following categories to posts imported from this source (comma separated)"] = "Añadir las categorías siguientes a las entradas importadas de esta fuente (separadas por comas)";
+App::$strings["Add the following categories to posts imported from this source (comma separated)"] = "Añadir los temas siguientes a las entradas importadas de esta fuente (separadas por comas)";
App::$strings["Source not found."] = "Fuente no encontrada";
App::$strings["Edit Source"] = "Editar fuente";
App::$strings["Delete Source"] = "Eliminar fuente";
App::$strings["Source removed"] = "Fuente eliminada";
-App::$strings["Unable to remove source."] = "Imposible eliminar la fuente.";
+App::$strings["Unable to remove source."] = "No se puede eliminar la fuente.";
App::$strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s está siguiendo %3\$s de %2\$s";
App::$strings["%1\$s stopped following %2\$s's %3\$s"] = "%1\$s ha dejado de seguir %3\$s de %2\$s";
App::$strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "No hay sugerencias disponibles. Si es un sitio nuevo, espere 24 horas y pruebe de nuevo.";
@@ -1437,36 +1437,25 @@ App::$strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s ha etiquetado %3
App::$strings["Tag removed"] = "Etiqueta eliminada.";
App::$strings["Remove Item Tag"] = "Eliminar etiqueta del elemento.";
App::$strings["Select a tag to remove: "] = "Seleccionar una etiqueta para eliminar:";
-App::$strings["Webpages"] = "Páginas web";
-App::$strings["Actions"] = "Acciones";
-App::$strings["Page Link"] = "Vínculo de la página";
-App::$strings["Page Title"] = "Título de página";
-App::$strings["Not found"] = "No encontrado";
-App::$strings["Wiki"] = "Wiki";
-App::$strings["Sandbox"] = "Entorno de edición";
-App::$strings["\"# Wiki Sandbox\\n\\nContent you **edit** and **preview** here *will not be saved*.\""] = "\"# Entorno de edición del Wiki\\n\\nEl contenido que se **edite** y **previsualizce** aquí *no se guardará*.\"";
-App::$strings["Revision Comparison"] = "Comparación de revisiones";
-App::$strings["Revert"] = "Revertir";
-App::$strings["Enter the name of your new wiki:"] = "Nombre de su nuevo wiki:";
-App::$strings["Enter the name of the new page:"] = "Nombre de la nueva página:";
-App::$strings["Enter the new name:"] = "Nuevo nombre:";
-App::$strings["Embed image from photo albums"] = "Incluir una imagen de los álbumes de fotos";
-App::$strings["Embed an image from your albums"] = "Incluir una imagen de sus álbumes";
-App::$strings["OK"] = "OK";
-App::$strings["Choose images to embed"] = "Elegir imágenes para incluir";
-App::$strings["Choose an album"] = "Elegir un álbum";
-App::$strings["Choose a different album..."] = "Elegir un álbum diferente...";
-App::$strings["Error getting album list"] = "Error al obtener la lista de álbumes";
-App::$strings["Error getting photo link"] = "Error al obtener el enlace de la foto";
-App::$strings["Error getting album"] = "Error al obtener el álbum";
+App::$strings["Channel added."] = "Canal añadido.";
App::$strings["No connections."] = "Sin conexiones.";
App::$strings["Visit %s's profile [%s]"] = "Visitar el perfil de %s [%s]";
App::$strings["View Connections"] = "Ver conexiones";
App::$strings["Source of Item"] = "Origen del elemento";
-App::$strings["Authorize application connection"] = "Autorizar una conexión de aplicación";
-App::$strings["Return to your app and insert this Securty Code:"] = "Volver a su aplicación e introducir este código de seguridad:";
-App::$strings["Please login to continue."] = "Por favor inicie sesión para continuar.";
-App::$strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "¿Desea autorizar a esta aplicación a acceder a sus publicaciones y contactos, y/o crear nuevas publicaciones por usted?";
+App::$strings["Room not found"] = "Sala no encontrada";
+App::$strings["Leave Room"] = "Abandonar la sala";
+App::$strings["Delete Room"] = "Eliminar esta sala";
+App::$strings["I am away right now"] = "Estoy ausente momentáneamente";
+App::$strings["I am online"] = "Estoy conectado/a";
+App::$strings["Bookmark this room"] = "Añadir esta sala a Marcadores";
+App::$strings["Feature disabled."] = "Funcionalidad deshabilitada.";
+App::$strings["New Chatroom"] = "Nueva sala de chat";
+App::$strings["Chatroom name"] = "Nombre de la sala de chat";
+App::$strings["Expiration of chats (minutes)"] = "Caducidad de los mensajes en los chats (en minutos)";
+App::$strings["%1\$s's Chatrooms"] = "Salas de chat de %1\$s";
+App::$strings["No chatrooms available"] = "No hay salas de chat disponibles";
+App::$strings["Expiration"] = "Caducidad";
+App::$strings["min"] = "min";
App::$strings["Xchan Lookup"] = "Búsqueda de canales";
App::$strings["Lookup xchan beginning with (or webbie): "] = "Buscar un canal (o un \"webbie\") que comience por:";
App::$strings["Missing room name"] = "Sala de chat sin nombre";
@@ -1535,8 +1524,24 @@ App::$strings["Suggest"] = "Sugerir";
App::$strings["Random Channel"] = "Canal aleatorio";
App::$strings["Invite"] = "Invitar";
App::$strings["Features"] = "Funcionalidades";
+App::$strings["Language"] = "Idioma";
App::$strings["Post"] = "Publicación";
+App::$strings["Profile Photo"] = "Foto del perfil";
App::$strings["Purchase"] = "Comprar";
+App::$strings["Visible to your default audience"] = "Visible para su público predeterminado.";
+App::$strings["Only me"] = "Sólo yo";
+App::$strings["Public"] = "Público";
+App::$strings["Anybody in the \$Projectname network"] = "Cualquiera en la red \$Projectname";
+App::$strings["Any account on %s"] = "Cualquier cuenta en %s";
+App::$strings["Any of my connections"] = "Cualquiera de mis conexiones";
+App::$strings["Only connections I specifically allow"] = "Sólo las conexiones que yo permita de forma explícita";
+App::$strings["Anybody authenticated (could include visitors from other networks)"] = "Cualquiera que esté autenticado (podría incluir a los visitantes de otras redes)";
+App::$strings["Any connections including those who haven't yet been approved"] = "Cualquier conexión incluyendo aquellas que aún no han sido aprobadas";
+App::$strings["This is your default setting for the audience of your normal stream, and posts."] = "Esta es la configuración predeterminada para su flujo (stream) habitual de publicaciones.";
+App::$strings["This is your default setting for who can view your default channel profile"] = "Esta es su configuración por defecto para establecer quién puede ver su perfil del canal predeterminado";
+App::$strings["This is your default setting for who can view your connections"] = "Este es su ajuste predeterminado para establecer quién puede ver sus conexiones";
+App::$strings["This is your default setting for who can view your file storage and photos"] = "Este es su ajuste predeterminado para establecer quién puede ver su repositorio de ficheros y sus fotos";
+App::$strings["This is your default setting for the audience of your webpages"] = "Este es el ajuste predeterminado para establecer la audiencia de sus páginas web";
App::$strings["Private Message"] = "Mensaje Privado";
App::$strings["Select"] = "Seleccionar";
App::$strings["Save to Folder"] = "Guardar en carpeta";
@@ -1582,78 +1587,9 @@ App::$strings["Code"] = "Código";
App::$strings["Image"] = "Imagen";
App::$strings["Insert Link"] = "Insertar enlace";
App::$strings["Video"] = "Vídeo";
-App::$strings["Visible to your default audience"] = "Visible para su público predeterminado.";
-App::$strings["Only me"] = "Sólo yo";
-App::$strings["Public"] = "Público";
-App::$strings["Anybody in the \$Projectname network"] = "Cualquiera en la red \$Projectname";
-App::$strings["Any account on %s"] = "Cualquier cuenta en %s";
-App::$strings["Any of my connections"] = "Cualquiera de mis conexiones";
-App::$strings["Only connections I specifically allow"] = "Sólo las conexiones que yo permita de forma explícita";
-App::$strings["Anybody authenticated (could include visitors from other networks)"] = "Cualquiera que esté autenticado (podría incluir a los visitantes de otras redes)";
-App::$strings["Any connections including those who haven't yet been approved"] = "Cualquier conexión incluyendo aquellas que aún no han sido aprobadas";
-App::$strings["This is your default setting for the audience of your normal stream, and posts."] = "Esta es la configuración predeterminada para su flujo (stream) habitual de publicaciones.";
-App::$strings["This is your default setting for who can view your default channel profile"] = "Esta es su configuración por defecto para establecer quién puede ver su perfil del canal predeterminado";
-App::$strings["This is your default setting for who can view your connections"] = "Este es su ajuste predeterminado para establecer quién puede ver sus conexiones";
-App::$strings["This is your default setting for who can view your file storage and photos"] = "Este es su ajuste predeterminado para establecer quién puede ver su repositorio de ficheros y sus fotos";
-App::$strings["This is your default setting for the audience of your webpages"] = "Este es el ajuste predeterminado para establecer la audiencia de sus páginas web";
App::$strings["No username found in import file."] = "No se ha encontrado el nombre de usuario en el fichero importado.";
App::$strings["Unable to create a unique channel address. Import failed."] = "No se ha podido crear una dirección de canal única. Ha fallado la importación.";
App::$strings["Cannot locate DNS info for database server '%s'"] = "No se ha podido localizar información de DNS para el servidor de base de datos “%sâ€";
-App::$strings["Image exceeds website size limit of %lu bytes"] = "La imagen excede el límite de %lu bytes del sitio";
-App::$strings["Image file is empty."] = "El fichero de imagen está vacío. ";
-App::$strings["Photo storage failed."] = "La foto no ha podido ser guardada.";
-App::$strings["a new photo"] = "una nueva foto";
-App::$strings["__ctx:photo_upload__ %1\$s posted %2\$s to %3\$s"] = "%1\$s ha publicado %2\$s en %3\$s";
-App::$strings["Photo Albums"] = "Ãlbumes de fotos";
-App::$strings["Upload New Photos"] = "Subir nuevas fotos";
-App::$strings["Logout"] = "Finalizar sesión";
-App::$strings["End this session"] = "Finalizar esta sesión";
-App::$strings["Home"] = "Inicio";
-App::$strings["Your posts and conversations"] = "Sus publicaciones y conversaciones";
-App::$strings["Your profile page"] = "Su página del perfil";
-App::$strings["Manage/Edit profiles"] = "Administrar/editar perfiles";
-App::$strings["Edit Profile"] = "Editar el perfil";
-App::$strings["Edit your profile"] = "Editar su perfil";
-App::$strings["Your photos"] = "Sus fotos";
-App::$strings["Your files"] = "Sus ficheros";
-App::$strings["Your chatrooms"] = "Sus salas de chat";
-App::$strings["Bookmarks"] = "Marcadores";
-App::$strings["Your bookmarks"] = "Sus marcadores";
-App::$strings["Your webpages"] = "Sus páginas web";
-App::$strings["Your wiki"] = "Su wiki";
-App::$strings["Sign in"] = "Acceder";
-App::$strings["%s - click to logout"] = "%s - pulsar para finalizar sesión";
-App::$strings["Remote authentication"] = "Acceder desde su servidor";
-App::$strings["Click to authenticate to your home hub"] = "Pulsar para identificarse en su servidor de inicio";
-App::$strings["Home Page"] = "Página de inicio";
-App::$strings["Create an account"] = "Crear una cuenta";
-App::$strings["Help and documentation"] = "Ayuda y documentación";
-App::$strings["Applications, utilities, links, games"] = "Aplicaciones, utilidades, enlaces, juegos";
-App::$strings["Search site @name, #tag, ?docs, content"] = "Buscar en el sitio por @nombre, #etiqueta, ?ayuda o contenido";
-App::$strings["Channel Directory"] = "Directorio de canales";
-App::$strings["Your grid"] = "Mi red";
-App::$strings["Mark all grid notifications seen"] = "Marcar todas las notificaciones de la red como vistas";
-App::$strings["Channel home"] = "Mi canal";
-App::$strings["Mark all channel notifications seen"] = "Marcar todas las notificaciones del canal como leídas";
-App::$strings["Notices"] = "Avisos";
-App::$strings["Notifications"] = "Notificaciones";
-App::$strings["See all notifications"] = "Ver todas las notificaciones";
-App::$strings["Private mail"] = "Correo privado";
-App::$strings["See all private messages"] = "Ver todas los mensajes privados";
-App::$strings["Mark all private messages seen"] = "Marcar todos los mensajes privados como leídos";
-App::$strings["Inbox"] = "Bandeja de entrada";
-App::$strings["Outbox"] = "Bandeja de salida";
-App::$strings["New Message"] = "Nuevo mensaje";
-App::$strings["Event Calendar"] = "Calendario de eventos";
-App::$strings["See all events"] = "Ver todos los eventos";
-App::$strings["Mark all events seen"] = "Marcar todos los eventos como leidos";
-App::$strings["Manage Your Channels"] = "Gestionar sus canales";
-App::$strings["Account/Channel Settings"] = "Ajustes de cuenta/canales";
-App::$strings["Admin"] = "Administrador";
-App::$strings["Site Setup and Configuration"] = "Ajustes y configuración del sitio";
-App::$strings["Loading..."] = "Cargando...";
-App::$strings["@name, #tag, ?doc, content"] = "@nombre, #etiqueta, ?ayuda, contenido";
-App::$strings["Please wait..."] = "Espere por favor…";
App::$strings["view full size"] = "Ver en el tamaño original";
App::$strings["Administrator"] = "Administrador";
App::$strings["No Subject"] = "Sin asunto";
@@ -1667,17 +1603,186 @@ App::$strings["Zot"] = "Zot";
App::$strings["LinkedIn"] = "LinkedIn";
App::$strings["XMPP/IM"] = "XMPP/IM";
App::$strings["MySpace"] = "MySpace";
-App::$strings["New Page"] = "Nueva página";
-App::$strings["Title"] = "Título";
-App::$strings["Categories"] = "Categorías";
-App::$strings["Tags"] = "Etiquetas";
-App::$strings["Keywords"] = "Palabras clave";
-App::$strings["have"] = "tener";
-App::$strings["has"] = "tiene";
-App::$strings["want"] = "quiero";
-App::$strings["wants"] = "quiere";
-App::$strings["likes"] = "gusta de";
-App::$strings["dislikes"] = "no gusta de";
+App::$strings["Embedded content"] = "Contenido incorporado";
+App::$strings["Embedding disabled"] = "Incrustación deshabilitada";
+App::$strings["Can view my normal stream and posts"] = "Pueden verse mi actividad y publicaciones normales";
+App::$strings["Can view my webpages"] = "Pueden verse mis páginas web";
+App::$strings["Can post on my channel page (\"wall\")"] = "Pueden crearse entradas en mi página de inicio del canal (“muroâ€)";
+App::$strings["Can like/dislike stuff"] = "Puede marcarse contenido como me gusta/no me gusta";
+App::$strings["Profiles and things other than posts/comments"] = "Perfiles y otras cosas aparte de publicaciones/comentarios";
+App::$strings["Can forward to all my channel contacts via post @mentions"] = "Puede enviarse una entrada a todos mis contactos del canal mediante una @mención";
+App::$strings["Advanced - useful for creating group forum channels"] = "Avanzado - útil para crear canales de foros de discusión o grupos";
+App::$strings["Can chat with me (when available)"] = "Se puede charlar conmigo (cuando esté disponible)";
+App::$strings["Can write to my file storage and photos"] = "Puede escribirse en mi repositorio de ficheros y fotos";
+App::$strings["Can edit my webpages"] = "Pueden editarse mis páginas web";
+App::$strings["Somewhat advanced - very useful in open communities"] = "Algo avanzado - muy útil en comunidades abiertas";
+App::$strings["Can administer my channel resources"] = "Pueden administrarse mis recursos del canal";
+App::$strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Muy avanzado. Déjelo a no ser que sepa bien lo que está haciendo.";
+App::$strings["(Unknown)"] = "(Desconocido)";
+App::$strings["Visible to anybody on the internet."] = "Visible para cualquiera en internet.";
+App::$strings["Visible to you only."] = "Visible sólo para usted.";
+App::$strings["Visible to anybody in this network."] = "Visible para cualquiera en esta red.";
+App::$strings["Visible to anybody authenticated."] = "Visible para cualquiera que esté autenticado.";
+App::$strings["Visible to anybody on %s."] = "Visible para cualquiera en %s.";
+App::$strings["Visible to all connections."] = "Visible para todas las conexiones.";
+App::$strings["Visible to approved connections."] = "Visible para las conexiones permitidas.";
+App::$strings["Visible to specific connections."] = "Visible para conexiones específicas.";
+App::$strings["Privacy group is empty."] = "El grupo de canales está vacío.";
+App::$strings["Privacy group: %s"] = "Grupo de canales: %s";
+App::$strings["Connection not found."] = "Conexión no encontrada";
+App::$strings["profile photo"] = "foto del perfil";
+App::$strings["prev"] = "anterior";
+App::$strings["first"] = "primera";
+App::$strings["last"] = "última";
+App::$strings["next"] = "próxima";
+App::$strings["older"] = "más antiguas";
+App::$strings["newer"] = "más recientes";
+App::$strings["No connections"] = "Sin conexiones";
+App::$strings["View all %s connections"] = "Ver todas las %s conexiones";
+App::$strings["poke"] = "un toque";
+App::$strings["poked"] = "ha dado un toque a";
+App::$strings["ping"] = "un \"ping\"";
+App::$strings["pinged"] = "ha enviado un \"ping\" a";
+App::$strings["prod"] = "una incitación ";
+App::$strings["prodded"] = "ha incitado a ";
+App::$strings["slap"] = "una bofetada ";
+App::$strings["slapped"] = "ha abofeteado a ";
+App::$strings["finger"] = "un \"finger\" ";
+App::$strings["fingered"] = "envió un \"finger\" a";
+App::$strings["rebuff"] = "un reproche";
+App::$strings["rebuffed"] = "ha hecho un reproche a ";
+App::$strings["happy"] = "feliz ";
+App::$strings["sad"] = "triste ";
+App::$strings["mellow"] = "tranquilo/a";
+App::$strings["tired"] = "cansado/a ";
+App::$strings["perky"] = "vivaz";
+App::$strings["angry"] = "enfadado/a";
+App::$strings["stupefied"] = "asombrado/a";
+App::$strings["puzzled"] = "perplejo/a";
+App::$strings["interested"] = "interesado/a";
+App::$strings["bitter"] = "amargado/a";
+App::$strings["cheerful"] = "alegre";
+App::$strings["alive"] = "animado/a";
+App::$strings["annoyed"] = "molesto/a";
+App::$strings["anxious"] = "ansioso/a";
+App::$strings["cranky"] = "de mal humor";
+App::$strings["disturbed"] = "perturbado/a";
+App::$strings["frustrated"] = "frustrado/a";
+App::$strings["depressed"] = "deprimido/a";
+App::$strings["motivated"] = "motivado/a";
+App::$strings["relaxed"] = "relajado/a";
+App::$strings["surprised"] = "sorprendido/a";
+App::$strings["Monday"] = "lunes";
+App::$strings["Tuesday"] = "martes";
+App::$strings["Wednesday"] = "miércoles";
+App::$strings["Thursday"] = "jueves";
+App::$strings["Friday"] = "viernes";
+App::$strings["Saturday"] = "sábado";
+App::$strings["Sunday"] = "domingo";
+App::$strings["January"] = "enero";
+App::$strings["February"] = "febrero";
+App::$strings["March"] = "marzo";
+App::$strings["April"] = "abril";
+App::$strings["May"] = "mayo";
+App::$strings["June"] = "junio";
+App::$strings["July"] = "julio";
+App::$strings["August"] = "agosto";
+App::$strings["September"] = "septiembre";
+App::$strings["October"] = "octubre";
+App::$strings["November"] = "noviembre";
+App::$strings["December"] = "diciembre";
+App::$strings["Unknown Attachment"] = "Adjunto no reconocido";
+App::$strings["unknown"] = "desconocido";
+App::$strings["remove category"] = "eliminar el tema";
+App::$strings["remove from file"] = "eliminar del fichero";
+App::$strings["default"] = "por defecto";
+App::$strings["Page layout"] = "Plantilla de la página";
+App::$strings["You can create your own with the layouts tool"] = "Puede crear su propia disposición gráfica con la herramienta de plantillas";
+App::$strings["Page content type"] = "Tipo de contenido de la página";
+App::$strings["Select an alternate language"] = "Seleccionar un idioma alternativo";
+App::$strings["activity"] = "la actividad";
+App::$strings["Design Tools"] = "Herramientas de diseño web";
+App::$strings["Pages"] = "Páginas";
+App::$strings["Import website..."] = "Importar un sitio web...";
+App::$strings["Select folder to import"] = "Seleccionar la carpeta que se va a importar";
+App::$strings["Import from a zipped folder:"] = "Importar desde una carpeta comprimida: ";
+App::$strings["Import from cloud files:"] = "Importar desde los ficheros en la nube: ";
+App::$strings["/cloud/channel/path/to/folder"] = "/cloud/canal/ruta/a la/carpeta";
+App::$strings["Enter path to website files"] = "Ruta a los ficheros del sitio web";
+App::$strings["Select folder"] = "Seleccionar la carpeta";
+App::$strings["Categories"] = "Temas";
+App::$strings["System"] = "Sistema";
+App::$strings["New App"] = "Nueva aplicación (app)";
+App::$strings["Suggestions"] = "Sugerencias";
+App::$strings["See more..."] = "Ver más...";
+App::$strings["You have %1$.0f of %2$.0f allowed connections."] = "Tiene %1$.0f de %2$.0f conexiones permitidas.";
+App::$strings["Add New Connection"] = "Añadir nueva conexión";
+App::$strings["Enter channel address"] = "Dirección del canal";
+App::$strings["Examples: bob@example.com, https://example.com/barbara"] = "Ejemplos: manuel@ejemplo.com, https://ejemplo.com/carmen";
+App::$strings["Notes"] = "Notas";
+App::$strings["Remove term"] = "Eliminar término";
+App::$strings["Saved Searches"] = "Búsquedas guardadas";
+App::$strings["add"] = "añadir";
+App::$strings["Saved Folders"] = "Carpetas guardadas";
+App::$strings["Everything"] = "Todo";
+App::$strings["Archives"] = "Hemeroteca";
+App::$strings["Refresh"] = "Recargar";
+App::$strings["Account settings"] = "Configuración de la cuenta";
+App::$strings["Channel settings"] = "Configuración del canal";
+App::$strings["Additional features"] = "Funcionalidades";
+App::$strings["Feature/Addon settings"] = "Complementos";
+App::$strings["Display settings"] = "Ajustes de visualización";
+App::$strings["Manage locations"] = "Gestión de ubicaciones (clones) del canal";
+App::$strings["Export channel"] = "Exportar canal";
+App::$strings["Connected apps"] = "Aplicaciones (apps) conectadas";
+App::$strings["Premium Channel Settings"] = "Configuración del canal premium";
+App::$strings["Private Mail Menu"] = "Menú de correo privado";
+App::$strings["Combined View"] = "Vista combinada";
+App::$strings["Inbox"] = "Bandeja de entrada";
+App::$strings["Outbox"] = "Bandeja de salida";
+App::$strings["New Message"] = "Nuevo mensaje";
+App::$strings["Conversations"] = "Conversaciones";
+App::$strings["Received Messages"] = "Mensajes recibidos";
+App::$strings["Sent Messages"] = "Enviar mensajes";
+App::$strings["No messages."] = "Sin mensajes.";
+App::$strings["Delete conversation"] = "Eliminar conversación";
+App::$strings["Events Tools"] = "Gestión de eventos";
+App::$strings["Export Calendar"] = "Exportar el calendario";
+App::$strings["Import Calendar"] = "Importar un calendario";
+App::$strings["Chatrooms"] = "Salas de chat";
+App::$strings["Overview"] = "Resumen";
+App::$strings["Chat Members"] = "Miembros del chat";
+App::$strings["Wiki List"] = "Lista de wikis";
+App::$strings["Wiki Pages"] = "Páginas del wiki";
+App::$strings["Bookmarked Chatrooms"] = "Salas de chat preferidas";
+App::$strings["Suggested Chatrooms"] = "Salas de chat sugeridas";
+App::$strings["photo/image"] = "foto/imagen";
+App::$strings["Click to show more"] = "Hacer clic para ver más";
+App::$strings["Rating Tools"] = "Valoraciones";
+App::$strings["Rate Me"] = "Valorar este canal";
+App::$strings["View Ratings"] = "Mostrar las valoraciones";
+App::$strings["Forums"] = "Foros";
+App::$strings["Tasks"] = "Tareas";
+App::$strings["Documentation"] = "Documentación";
+App::$strings["Project/Site Information"] = "Información sobre el proyecto o sitio";
+App::$strings["For Members"] = "Para los miembros";
+App::$strings["For Administrators"] = "Para los administradores";
+App::$strings["For Developers"] = "Para los desarrolladores";
+App::$strings["Member registrations waiting for confirmation"] = "Inscripciones de nuevos miembros pendientes de aprobación";
+App::$strings["Inspect queue"] = "Examinar la cola";
+App::$strings["DB updates"] = "Actualizaciones de la base de datos";
+App::$strings["Admin"] = "Administrador";
+App::$strings["Plugin Features"] = "Extensiones";
+App::$strings["New window"] = "Nueva ventana";
+App::$strings["Open the selected location in a different window or browser tab"] = "Abrir la dirección seleccionada en una ventana o pestaña aparte";
+App::$strings["User '%s' deleted"] = "El usuario '%s' ha sido eliminado";
+App::$strings["Who can see this?"] = "¿Quién puede ver esto?";
+App::$strings["Custom selection"] = "Selección personalizada";
+App::$strings["Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit the scope of \"Show\"."] = "Seleccione \"Mostrar\" para permitir la visualización. La opción \"No mostrar\" le permite anular y limitar el alcance de \"Mostrar\".";
+App::$strings["Show"] = "Mostrar";
+App::$strings["Don't show"] = "No mostrar";
+App::$strings["Post permissions %s cannot be changed %s after a post is shared.</br />These permissions set who is allowed to view the post."] = "Los permisos de la entrada %s no se pueden cambiar %s una vez que se ha compartido.</br /> Estos permisos establecen quién está autorizado para ver el mensaje.";
+App::$strings["Public Timeline"] = "Cronología pública";
App::$strings["Unable to obtain identity information from database"] = "No ha sido posible obtener información sobre la identidad desde la base de datos";
App::$strings["Empty name"] = "Nombre vacío";
App::$strings["Name too long"] = "Nombre demasiado largo";
@@ -1689,6 +1794,7 @@ App::$strings["Unable to retrieve created identity"] = "No ha sido posible recup
App::$strings["Default Profile"] = "Perfil principal";
App::$strings["Requested channel is not available."] = "El canal solicitado no está disponible.";
App::$strings["Create New Profile"] = "Crear un nuevo perfil";
+App::$strings["Edit Profile"] = "Editar el perfil";
App::$strings["Visible to everybody"] = "Visible para todos";
App::$strings["Gender:"] = "Género:";
App::$strings["Status:"] = "Estado:";
@@ -1716,17 +1822,121 @@ App::$strings["Love/Romance:"] = "Vida sentimental o amorosa:";
App::$strings["Work/employment:"] = "Trabajo:";
App::$strings["School/education:"] = "Estudios:";
App::$strings["Like this thing"] = "Me gusta esto";
-App::$strings["New window"] = "Nueva ventana";
-App::$strings["Open the selected location in a different window or browser tab"] = "Abrir la dirección seleccionada en una ventana o pestaña aparte";
-App::$strings["User '%s' deleted"] = "El usuario '%s' ha sido eliminado";
+App::$strings["Birthday"] = "Cumpleaños";
+App::$strings["Age: "] = "Edad:";
+App::$strings["YYYY-MM-DD or MM-DD"] = "AAAA-MM-DD o MM-DD";
+App::$strings["never"] = "nunca";
+App::$strings["less than a second ago"] = "hace un instante";
+App::$strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "hace %1\$d %2\$s";
+App::$strings["__ctx:relative_date__ year"] = array(
+ 0 => "año",
+ 1 => "años",
+);
+App::$strings["__ctx:relative_date__ month"] = array(
+ 0 => "mes",
+ 1 => "meses",
+);
+App::$strings["__ctx:relative_date__ week"] = array(
+ 0 => "semana",
+ 1 => "semanas",
+);
+App::$strings["__ctx:relative_date__ day"] = array(
+ 0 => "día",
+ 1 => "días",
+);
+App::$strings["__ctx:relative_date__ hour"] = array(
+ 0 => "hora",
+ 1 => "horas",
+);
+App::$strings["__ctx:relative_date__ minute"] = array(
+ 0 => "minuto",
+ 1 => "minutos",
+);
+App::$strings["__ctx:relative_date__ second"] = array(
+ 0 => "segundo",
+ 1 => "segundos",
+);
+App::$strings["%1\$s's birthday"] = "Cumpleaños de %1\$s";
+App::$strings["Happy Birthday %1\$s"] = "Feliz cumpleaños %1\$s";
+App::$strings["Frequently"] = "Frecuentemente";
+App::$strings["Hourly"] = "Cada hora";
+App::$strings["Twice daily"] = "Dos veces al día";
+App::$strings["Daily"] = "Diariamente";
+App::$strings["Weekly"] = "Semanalmente";
+App::$strings["Monthly"] = "Mensualmente";
+App::$strings["Male"] = "Hombre";
+App::$strings["Female"] = "Mujer";
+App::$strings["Currently Male"] = "Actualmente hombre";
+App::$strings["Currently Female"] = "Actualmente mujer";
+App::$strings["Mostly Male"] = "Generalmente hombre";
+App::$strings["Mostly Female"] = "Generalmente mujer";
+App::$strings["Transgender"] = "Transgénero";
+App::$strings["Intersex"] = "Intersexual";
+App::$strings["Transsexual"] = "Transexual";
+App::$strings["Hermaphrodite"] = "Hermafrodita";
+App::$strings["Neuter"] = "Neutral";
+App::$strings["Non-specific"] = "No especificado";
+App::$strings["Undecided"] = "Indeciso/a";
+App::$strings["Males"] = "Hombres";
+App::$strings["Females"] = "Mujeres";
+App::$strings["Gay"] = "Homosexual";
+App::$strings["Lesbian"] = "Lesbiana";
+App::$strings["No Preference"] = "Sin preferencias";
+App::$strings["Bisexual"] = "Bisexual";
+App::$strings["Autosexual"] = "Autosexual";
+App::$strings["Abstinent"] = "Casto/a";
+App::$strings["Virgin"] = "Virgen";
+App::$strings["Deviant"] = "Fuera de lo común";
+App::$strings["Fetish"] = "Fetichista";
+App::$strings["Oodles"] = "Orgías";
+App::$strings["Nonsexual"] = "Asexual";
+App::$strings["Single"] = "Soltero/a";
+App::$strings["Lonely"] = "Solo/a";
+App::$strings["Available"] = "Disponible";
+App::$strings["Unavailable"] = "No disponible";
+App::$strings["Has crush"] = "Enamorado/a";
+App::$strings["Infatuated"] = "Apasionado/a";
+App::$strings["Dating"] = "Saliendo con alguien";
+App::$strings["Unfaithful"] = "Infiel";
+App::$strings["Sex Addict"] = "Con adicción al sexo";
+App::$strings["Friends/Benefits"] = "Amigos con algo extra";
+App::$strings["Casual"] = "Casual";
+App::$strings["Engaged"] = "Prometido/a";
+App::$strings["Married"] = "Casado/a";
+App::$strings["Imaginarily married"] = "Casado/a en sueños";
+App::$strings["Partners"] = "Pareja";
+App::$strings["Cohabiting"] = "Cohabitando";
+App::$strings["Common law"] = "Matrimonio tradicional";
+App::$strings["Happy"] = "Felíz";
+App::$strings["Not looking"] = "No estoy buscando";
+App::$strings["Swinger"] = "Libertino";
+App::$strings["Betrayed"] = "Engañado/a";
+App::$strings["Separated"] = "Separado/a";
+App::$strings["Unstable"] = "Inestable";
+App::$strings["Divorced"] = "Divorciado/a";
+App::$strings["Imaginarily divorced"] = "Divorciado/a en sueños";
+App::$strings["Widowed"] = "Viudo/a";
+App::$strings["Uncertain"] = "Indeterminado";
+App::$strings["It's complicated"] = "Es complicado";
+App::$strings["Don't care"] = "No me importa";
+App::$strings["Ask me"] = "Pregúnteme";
+App::$strings["Image exceeds website size limit of %lu bytes"] = "La imagen excede el límite de %lu bytes del sitio";
+App::$strings["Image file is empty."] = "El fichero de imagen está vacío. ";
+App::$strings["Photo storage failed."] = "La foto no ha podido ser guardada.";
+App::$strings["a new photo"] = "una nueva foto";
+App::$strings["__ctx:photo_upload__ %1\$s posted %2\$s to %3\$s"] = "%1\$s ha publicado %2\$s en %3\$s";
+App::$strings["Photo Albums"] = "Ãlbumes de fotos";
+App::$strings["Upload New Photos"] = "Subir nuevas fotos";
+App::$strings["guest:"] = "invitado: ";
+App::$strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "El \"token\" de seguridad del formulario no es correcto. Esto ha ocurrido probablemente porque el formulario ha estado abierto demasiado tiempo (>3 horas) antes de ser enviado";
App::$strings["%1\$s is now connected with %2\$s"] = "%1\$s ahora está conectado/a con %2\$s";
App::$strings["%1\$s poked %2\$s"] = "%1\$s ha dado un toque a %2\$s";
-App::$strings["poked"] = "ha dado un toque a";
App::$strings["View %s's profile @ %s"] = "Ver el perfil @ %s de %s";
-App::$strings["Categories:"] = "Categorías:";
+App::$strings["Categories:"] = "Temas:";
App::$strings["Filed under:"] = "Archivado bajo:";
App::$strings["View in context"] = "Mostrar en su contexto";
App::$strings["remove"] = "eliminar";
+App::$strings["Loading..."] = "Cargando...";
App::$strings["Delete Selected Items"] = "Eliminar elementos seleccionados";
App::$strings["View Source"] = "Ver el código fuente de la entrada";
App::$strings["Follow Thread"] = "Seguir este hilo";
@@ -1755,10 +1965,15 @@ App::$strings["Set your location"] = "Establecer su ubicación";
App::$strings["Clear browser location"] = "Eliminar los datos de localización geográfica del navegador";
App::$strings["Tag term:"] = "Término de la etiqueta:";
App::$strings["Where are you right now?"] = "¿Donde está ahora?";
+App::$strings["Comments enabled"] = "Comentarios habilitados";
+App::$strings["Comments disabled"] = "Comentarios deshabilitados";
App::$strings["Page link name"] = "Nombre del enlace de la página";
App::$strings["Post as"] = "Publicar como";
App::$strings["Toggle voting"] = "Cambiar votación";
-App::$strings["Categories (optional, comma-separated list)"] = "Categorías (opcional, lista separada por comas)";
+App::$strings["Disable comments"] = "Dehabilitar los comentarios";
+App::$strings["Toggle comments"] = "Activar o desactivar los comentarios";
+App::$strings["Categories (optional, comma-separated list)"] = "Temas (opcional, lista separada por comas)";
+App::$strings["Other networks and post services"] = "Otras redes y servicios de publicación";
App::$strings["Set publish date"] = "Establecer la fecha de publicación";
App::$strings["Discover"] = "Descubrir";
App::$strings["Imported public streams"] = "Contenidos públicos importados";
@@ -1776,7 +1991,7 @@ App::$strings["Status Messages and Posts"] = "Mensajes de estado y publicaciones
App::$strings["About"] = "Mi perfil";
App::$strings["Profile Details"] = "Detalles del perfil";
App::$strings["Files and Storage"] = "Ficheros y repositorio";
-App::$strings["Chatrooms"] = "Salas de chat";
+App::$strings["Bookmarks"] = "Marcadores";
App::$strings["Saved Bookmarks"] = "Marcadores guardados";
App::$strings["Manage Webpages"] = "Administrar páginas web";
App::$strings["__ctx:noun__ Attending"] = array(
@@ -1803,157 +2018,120 @@ App::$strings["__ctx:noun__ Abstain"] = array(
0 => "se abstiene",
1 => "Se abstienen",
);
-App::$strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "No se ha podido crear un canal con un identificador que ya existe en este sistema. La importación ha fallado.";
-App::$strings["Channel clone failed. Import failed."] = "La clonación del canal no ha salido bien. La importación ha fallado.";
-App::$strings["Frequently"] = "Frecuentemente";
-App::$strings["Hourly"] = "Cada hora";
-App::$strings["Twice daily"] = "Dos veces al día";
-App::$strings["Daily"] = "Diariamente";
-App::$strings["Weekly"] = "Semanalmente";
-App::$strings["Monthly"] = "Mensualmente";
-App::$strings["Currently Male"] = "Actualmente hombre";
-App::$strings["Currently Female"] = "Actualmente mujer";
-App::$strings["Mostly Male"] = "Generalmente hombre";
-App::$strings["Mostly Female"] = "Generalmente mujer";
-App::$strings["Transgender"] = "Transgénero";
-App::$strings["Intersex"] = "Intersexual";
-App::$strings["Transsexual"] = "Transexual";
-App::$strings["Hermaphrodite"] = "Hermafrodita";
-App::$strings["Neuter"] = "Neutral";
-App::$strings["Non-specific"] = "No especificado";
-App::$strings["Undecided"] = "Indeciso/a";
-App::$strings["Males"] = "Hombres";
-App::$strings["Females"] = "Mujeres";
-App::$strings["Gay"] = "Homosexual";
-App::$strings["Lesbian"] = "Lesbiana";
-App::$strings["No Preference"] = "Sin preferencias";
-App::$strings["Bisexual"] = "Bisexual";
-App::$strings["Autosexual"] = "Autosexual";
-App::$strings["Abstinent"] = "Casto/a";
-App::$strings["Virgin"] = "Virgen";
-App::$strings["Deviant"] = "Fuera de lo común";
-App::$strings["Fetish"] = "Fetichista";
-App::$strings["Oodles"] = "Orgías";
-App::$strings["Nonsexual"] = "Asexual";
-App::$strings["Single"] = "Soltero/a";
-App::$strings["Lonely"] = "Solo/a";
-App::$strings["Available"] = "Disponible";
-App::$strings["Unavailable"] = "No disponible";
-App::$strings["Has crush"] = "Enamorado/a";
-App::$strings["Infatuated"] = "Apasionado/a";
-App::$strings["Dating"] = "Saliendo con alguien";
-App::$strings["Unfaithful"] = "Infiel";
-App::$strings["Sex Addict"] = "Con adicción al sexo";
-App::$strings["Friends/Benefits"] = "Amigos con algo extra";
-App::$strings["Casual"] = "Casual";
-App::$strings["Engaged"] = "Prometido/a";
-App::$strings["Married"] = "Casado/a";
-App::$strings["Imaginarily married"] = "Casado/a en sueños";
-App::$strings["Partners"] = "Pareja";
-App::$strings["Cohabiting"] = "Cohabitando";
-App::$strings["Common law"] = "Matrimonio tradicional";
-App::$strings["Happy"] = "Felíz";
-App::$strings["Not looking"] = "No estoy buscando";
-App::$strings["Swinger"] = "Libertino";
-App::$strings["Betrayed"] = "Engañado/a";
-App::$strings["Separated"] = "Separado/a";
-App::$strings["Unstable"] = "Inestable";
-App::$strings["Divorced"] = "Divorciado/a";
-App::$strings["Imaginarily divorced"] = "Divorciado/a en sueños";
-App::$strings["Widowed"] = "Viudo/a";
-App::$strings["Uncertain"] = "Indeterminado";
-App::$strings["It's complicated"] = "Es complicado";
-App::$strings["Don't care"] = "No me importa";
-App::$strings["Ask me"] = "Pregúnteme";
App::$strings["%1\$s's bookmarks"] = "Marcadores de %1\$s";
-App::$strings["guest:"] = "invitado: ";
-App::$strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "El \"token\" de seguridad del formulario no es correcto. Esto ha ocurrido probablemente porque el formulario ha estado abierto demasiado tiempo (>3 horas) antes de ser enviado";
-App::$strings["prev"] = "anterior";
-App::$strings["first"] = "primera";
-App::$strings["last"] = "última";
-App::$strings["next"] = "próxima";
-App::$strings["older"] = "más antiguas";
-App::$strings["newer"] = "más recientes";
-App::$strings["No connections"] = "Sin conexiones";
-App::$strings["View all %s connections"] = "Ver todas las %s conexiones";
-App::$strings["poke"] = "un toque";
-App::$strings["ping"] = "un \"ping\"";
-App::$strings["pinged"] = "ha enviado un \"ping\" a";
-App::$strings["prod"] = "una incitación ";
-App::$strings["prodded"] = "ha incitado a ";
-App::$strings["slap"] = "una bofetada ";
-App::$strings["slapped"] = "ha abofeteado a ";
-App::$strings["finger"] = "un \"finger\" ";
-App::$strings["fingered"] = "envió un \"finger\" a";
-App::$strings["rebuff"] = "un reproche";
-App::$strings["rebuffed"] = "ha hecho un reproche a ";
-App::$strings["happy"] = "feliz ";
-App::$strings["sad"] = "triste ";
-App::$strings["mellow"] = "tranquilo/a";
-App::$strings["tired"] = "cansado/a ";
-App::$strings["perky"] = "vivaz";
-App::$strings["angry"] = "enfadado/a";
-App::$strings["stupefied"] = "asombrado/a";
-App::$strings["puzzled"] = "perplejo/a";
-App::$strings["interested"] = "interesado/a";
-App::$strings["bitter"] = "amargado/a";
-App::$strings["cheerful"] = "alegre";
-App::$strings["alive"] = "animado/a";
-App::$strings["annoyed"] = "molesto/a";
-App::$strings["anxious"] = "ansioso/a";
-App::$strings["cranky"] = "de mal humor";
-App::$strings["disturbed"] = "perturbado/a";
-App::$strings["frustrated"] = "frustrado/a";
-App::$strings["depressed"] = "deprimido/a";
-App::$strings["motivated"] = "motivado/a";
-App::$strings["relaxed"] = "relajado/a";
-App::$strings["surprised"] = "sorprendido/a";
-App::$strings["Monday"] = "lunes";
-App::$strings["Tuesday"] = "martes";
-App::$strings["Wednesday"] = "miércoles";
-App::$strings["Thursday"] = "jueves";
-App::$strings["Friday"] = "viernes";
-App::$strings["Saturday"] = "sábado";
-App::$strings["Sunday"] = "domingo";
-App::$strings["January"] = "enero";
-App::$strings["February"] = "febrero";
-App::$strings["March"] = "marzo";
-App::$strings["April"] = "abril";
-App::$strings["May"] = "mayo";
-App::$strings["June"] = "junio";
-App::$strings["July"] = "julio";
-App::$strings["August"] = "agosto";
-App::$strings["September"] = "septiembre";
-App::$strings["October"] = "octubre";
-App::$strings["November"] = "noviembre";
-App::$strings["December"] = "diciembre";
-App::$strings["Unknown Attachment"] = "Adjunto no reconocido";
-App::$strings["unknown"] = "desconocido";
-App::$strings["remove category"] = "eliminar categoría";
-App::$strings["remove from file"] = "eliminar del fichero";
-App::$strings["default"] = "por defecto";
-App::$strings["Page layout"] = "Plantilla de la página";
-App::$strings["You can create your own with the layouts tool"] = "Puede crear su propia disposición gráfica con la herramienta de plantillas";
-App::$strings["Page content type"] = "Tipo de contenido de la página";
-App::$strings["Select an alternate language"] = "Seleccionar un idioma alternativo";
-App::$strings["activity"] = "la actividad";
-App::$strings["Design Tools"] = "Herramientas de diseño web";
-App::$strings["Pages"] = "Páginas";
+App::$strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Un grupo suprimido con este nombre ha sido restablecido. <strong>Es posible</strong> que los permisos existentes sean aplicados a este grupo y sus futuros miembros. Si no quiere esto, por favor cree otro grupo con un nombre diferente.";
+App::$strings["Add new connections to this privacy group"] = "Añadir conexiones nuevas a este grupo de canales";
+App::$strings["edit"] = "editar";
+App::$strings["Privacy Groups"] = "Grupos de canales";
+App::$strings["Edit group"] = "Editar grupo";
+App::$strings["Add privacy group"] = "Añadir un grupo de canales";
+App::$strings["Channels not in any privacy group"] = "Sin canales en ningún grupo";
+App::$strings["New Page"] = "Nueva página";
+App::$strings["Title"] = "Título";
+App::$strings["Different viewers will see this text differently"] = "Visitantes diferentes verán este texto de forma distinta";
+App::$strings["l F d, Y \\@ g:i A"] = "l d de F, Y \\@ G:i";
+App::$strings["Starts:"] = "Comienza:";
+App::$strings["Finishes:"] = "Finaliza:";
+App::$strings["This event has been added to your calendar."] = "Este evento ha sido añadido a su calendario.";
+App::$strings["Not specified"] = "Sin especificar";
+App::$strings["Needs Action"] = "Necesita de una intervención";
+App::$strings["Completed"] = "Completado/a";
+App::$strings["In Process"] = "En proceso";
+App::$strings["Cancelled"] = "Cancelado/a";
+App::$strings["Attachments:"] = "Ficheros adjuntos:";
+App::$strings["\$Projectname event notification:"] = "Notificación de eventos de \$Projectname:";
+App::$strings["Delete this item?"] = "¿Borrar este elemento?";
+App::$strings["%s show less"] = "%s mostrar menos";
+App::$strings["%s expand"] = "%s expandir";
+App::$strings["%s collapse"] = "%s contraer";
+App::$strings["Password too short"] = "Contraseña demasiado corta";
+App::$strings["Passwords do not match"] = "Las contraseñas no coinciden";
+App::$strings["everybody"] = "cualquiera";
+App::$strings["Secret Passphrase"] = "Contraseña secreta";
+App::$strings["Passphrase hint"] = "Pista de contraseña";
+App::$strings["Notice: Permissions have changed but have not yet been submitted."] = "Aviso: los permisos han cambiado pero aún no han sido enviados.";
+App::$strings["close all"] = "cerrar todo";
+App::$strings["Nothing new here"] = "Nada nuevo por aquí";
+App::$strings["Rate This Channel (this is public)"] = "Valorar este canal (esto es público)";
+App::$strings["Describe (optional)"] = "Describir (opcional)";
+App::$strings["Please enter a link URL"] = "Por favor, introduzca una dirección de enlace";
+App::$strings["Unsaved changes. Are you sure you wish to leave this page?"] = "Cambios no guardados. ¿Está seguro de que desea abandonar la página?";
+App::$strings["timeago.prefixAgo"] = "timeago.prefixAgo";
+App::$strings["timeago.prefixFromNow"] = "timeago.prefixFromNow";
+App::$strings["ago"] = "antes";
+App::$strings["from now"] = "desde ahora";
+App::$strings["less than a minute"] = "menos de un minuto";
+App::$strings["about a minute"] = "alrededor de un minuto";
+App::$strings["%d minutes"] = "%d minutos";
+App::$strings["about an hour"] = "alrededor de una hora";
+App::$strings["about %d hours"] = "alrededor de %d horas";
+App::$strings["a day"] = "un día";
+App::$strings["%d days"] = "%d días";
+App::$strings["about a month"] = "alrededor de un mes";
+App::$strings["%d months"] = "%d meses";
+App::$strings["about a year"] = "alrededor de un año";
+App::$strings["%d years"] = "%d años";
+App::$strings[" "] = " ";
+App::$strings["timeago.numbers"] = "timeago.numbers";
+App::$strings["__ctx:long__ May"] = "mayo";
+App::$strings["Jan"] = "ene";
+App::$strings["Feb"] = "feb";
+App::$strings["Mar"] = "mar";
+App::$strings["Apr"] = "abr";
+App::$strings["__ctx:short__ May"] = "may";
+App::$strings["Jun"] = "jun";
+App::$strings["Jul"] = "jul";
+App::$strings["Aug"] = "ago";
+App::$strings["Sep"] = "sep";
+App::$strings["Oct"] = "oct";
+App::$strings["Nov"] = "nov";
+App::$strings["Dec"] = "dic";
+App::$strings["Sun"] = "dom";
+App::$strings["Mon"] = "lun";
+App::$strings["Tue"] = "mar";
+App::$strings["Wed"] = "mié";
+App::$strings["Thu"] = "jue";
+App::$strings["Fri"] = "vie";
+App::$strings["Sat"] = "sáb";
+App::$strings["__ctx:calendar__ today"] = "hoy";
+App::$strings["__ctx:calendar__ month"] = "mes";
+App::$strings["__ctx:calendar__ week"] = "semana";
+App::$strings["__ctx:calendar__ day"] = "día";
+App::$strings["__ctx:calendar__ All day"] = "Todos los días";
+App::$strings["Channel is blocked on this site."] = "El canal está bloqueado en este sitio.";
+App::$strings["Channel location missing."] = "Falta la dirección del canal.";
+App::$strings["Response from remote channel was incomplete."] = "Respuesta incompleta del canal.";
+App::$strings["Channel was deleted and no longer exists."] = "El canal ha sido eliminado y ya no existe.";
+App::$strings["Protocol disabled."] = "Protocolo deshabilitado.";
+App::$strings["Channel discovery failed."] = "El intento de acceder al canal ha fallado.";
+App::$strings["Cannot connect to yourself."] = "No puede conectarse consigo mismo.";
+App::$strings["Item was not found."] = "Elemento no encontrado.";
+App::$strings["No source file."] = "Ningún fichero de origen";
+App::$strings["Cannot locate file to replace"] = "No se puede localizar el fichero que va a ser sustituido.";
+App::$strings["Cannot locate file to revise/update"] = "No se puede localizar el fichero para revisar/actualizar";
+App::$strings["File exceeds size limit of %d"] = "El fichero supera el limite de tamaño de %d";
+App::$strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Ha alcanzado su límite de %1$.0f Mbytes de almacenamiento de adjuntos.";
+App::$strings["File upload failed. Possible system limit or action terminated."] = "Error de carga, posiblemente por limite del sistema o porque la acción ha finalizado.";
+App::$strings["Stored file could not be verified. Upload failed."] = "El fichero almacenado no ha podido ser verificado. El envío ha fallado.";
+App::$strings["Path not available."] = "Ruta no disponible.";
+App::$strings["Empty pathname"] = "Ruta vacía";
+App::$strings["duplicate filename or path"] = "Nombre duplicado de ruta o fichero";
+App::$strings["Path not found."] = "Ruta no encontrada";
+App::$strings["mkdir failed."] = "mkdir ha fallado.";
+App::$strings["database storage failed."] = "el almacenamiento en la base de datos ha fallado.";
+App::$strings["Empty path"] = "Ruta vacía";
App::$strings["Logged out."] = "Desconectado/a.";
App::$strings["Failed authentication"] = "Autenticación fallida.";
-App::$strings["Can view my normal stream and posts"] = "Pueden verse mi actividad y publicaciones normales";
-App::$strings["Can view my webpages"] = "Pueden verse mis páginas web";
-App::$strings["Can post on my channel page (\"wall\")"] = "Pueden crearse entradas en mi página de inicio del canal (“muroâ€)";
-App::$strings["Can like/dislike stuff"] = "Puede marcarse contenido como me gusta/no me gusta";
-App::$strings["Profiles and things other than posts/comments"] = "Perfiles y otras cosas aparte de publicaciones/comentarios";
-App::$strings["Can forward to all my channel contacts via post @mentions"] = "Puede enviarse una entrada a todos mis contactos del canal mediante una @mención";
-App::$strings["Advanced - useful for creating group forum channels"] = "Avanzado - útil para crear canales de foros de discusión o grupos";
-App::$strings["Can chat with me (when available)"] = "Se puede charlar conmigo (cuando esté disponible)";
-App::$strings["Can write to my file storage and photos"] = "Puede escribirse en mi repositorio de ficheros y fotos";
-App::$strings["Can edit my webpages"] = "Pueden editarse mis páginas web";
-App::$strings["Somewhat advanced - very useful in open communities"] = "Algo avanzado - muy útil en comunidades abiertas";
-App::$strings["Can administer my channel resources"] = "Pueden administrarse mis recursos del canal";
-App::$strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Muy avanzado. Déjelo a no ser que sepa bien lo que está haciendo.";
+App::$strings["Login failed."] = "El acceso ha fallado.";
+App::$strings[" and "] = " y ";
+App::$strings["public profile"] = "el perfil público";
+App::$strings["%1\$s changed %2\$s to &ldquo;%3\$s&rdquo;"] = "%1\$s ha cambiado %2\$s a &ldquo;%3\$s&rdquo;";
+App::$strings["Visit %1\$s's %2\$s"] = "Visitar %2\$s de %1\$s";
+App::$strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s ha actualizado %2\$s, cambiando %3\$s.";
+App::$strings["Invalid data packet"] = "Paquete de datos no válido";
+App::$strings["Unable to verify channel signature"] = "No ha sido posible de verificar la firma del canal";
+App::$strings["Unable to verify site signature for %s"] = "No ha sido posible de verificar la firma del sitio para %s";
+App::$strings["invalid target signature"] = "La firma recibida no es válida";
App::$strings["General Features"] = "Funcionalidades básicas";
App::$strings["Content Expiration"] = "Caducidad del contenido";
App::$strings["Remove posts/comments and/or private messages at a future time"] = "Eliminar publicaciones/comentarios y/o mensajes privados más adelante";
@@ -1966,8 +2144,6 @@ App::$strings["Save and load profile details across sites/channels"] = "Guardar
App::$strings["Web Pages"] = "Páginas web";
App::$strings["Provide managed web pages on your channel"] = "Proveer páginas web gestionadas en su canal";
App::$strings["Provide a wiki for your channel"] = "Proporcionar un wiki para su canal";
-App::$strings["Hide Rating"] = "Ocultar las valoraciones";
-App::$strings["Hide the rating buttons on your channel and profile pages. Note: People can still rate you somewhere else."] = "Ocultar los botones de valoración en su canal y página de perfil. Tenga en cuenta, sin embargo, que la gente podrá expresar su valoración en otros lugares.";
App::$strings["Private Notes"] = "Notas privadas";
App::$strings["Enables a tool to store notes and reminders (note: not encrypted)"] = "Habilita una herramienta para guardar notas y recordatorios (advertencia: las notas no estarán cifradas)";
App::$strings["Navigation Channel Select"] = "Navegación por el selector de canales";
@@ -1980,8 +2156,6 @@ App::$strings["Smart Birthdays"] = "Cumpleaños inteligentes";
App::$strings["Make birthday events timezone aware in case your friends are scattered across the planet."] = "Enlazar los eventos de cumpleaños con el huso horario en el caso de que sus amigos estén dispersos por el mundo.";
App::$strings["Expert Mode"] = "Modo de experto";
App::$strings["Enable Expert Mode to provide advanced configuration options"] = "Habilitar el modo de experto para acceder a opciones avanzadas de configuración";
-App::$strings["Premium Channel"] = "Canal premium";
-App::$strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Le permite configurar restricciones y normas de uso a aquellos que conectan con su canal";
App::$strings["Post Composition Features"] = "Opciones para la redacción de entradas";
App::$strings["Large Photos"] = "Fotos de gran tamaño";
App::$strings["Include large (1024px) photo thumbnails in posts. If not enabled, use small (640px) photo thumbnails"] = "Incluir miniaturas de fotos grandes (1024px) en publicaciones. Si no está habilitado, usar miniaturas pequeñas (640px)";
@@ -1990,6 +2164,8 @@ App::$strings["Even More Encryption"] = "Más cifrado todavía";
App::$strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Permitir cifrado adicional de contenido \"punto-a-punto\" con una clave secreta compartida.";
App::$strings["Enable Voting Tools"] = "Permitir entradas con votación";
App::$strings["Provide a class of post which others can vote on"] = "Proveer una clase de publicación en la que otros puedan votar";
+App::$strings["Disable Comments"] = "Deshabilitar comentarios";
+App::$strings["Provide the option to disable comments for a post"] = "Proporcionar la opción de desactivar los comentarios de una publicación";
App::$strings["Delayed Posting"] = "Publicación aplazada";
App::$strings["Allow posts to be published at a later date"] = "Permitir mensajes que se publicarán en una fecha posterior";
App::$strings["Suppress Duplicate Posts/Comments"] = "Prevenir entradas o comentarios duplicados";
@@ -1997,9 +2173,7 @@ App::$strings["Prevent posts with identical content to be published with less th
App::$strings["Network and Stream Filtering"] = "Filtrado del contenido";
App::$strings["Search by Date"] = "Buscar por fecha";
App::$strings["Ability to select posts by date ranges"] = "Capacidad de seleccionar entradas por rango de fechas";
-App::$strings["Privacy Groups"] = "Grupos de canales";
App::$strings["Enable management and selection of privacy groups"] = "Activar la gestión y selección de grupos de canales";
-App::$strings["Saved Searches"] = "Búsquedas guardadas";
App::$strings["Save search terms for re-use"] = "Guardar términos de búsqueda para su reutilización";
App::$strings["Network Personal Tab"] = "Actividad personal";
App::$strings["Enable tab to display only Network posts that you've interacted on"] = "Habilitar una pestaña en la cual se muestren solo las entradas en las que ha participado.";
@@ -2013,11 +2187,10 @@ App::$strings["Show channel suggestions"] = "Mostrar sugerencias de canales";
App::$strings["Post/Comment Tools"] = "Gestión de entradas y comentarios";
App::$strings["Community Tagging"] = "Etiquetas de la comunidad";
App::$strings["Ability to tag existing posts"] = "Capacidad de etiquetar entradas existentes";
-App::$strings["Post Categories"] = "Categorías de entradas";
-App::$strings["Add categories to your posts"] = "Añadir categorías a sus publicaciones";
+App::$strings["Post Categories"] = "Temas de las entradas";
+App::$strings["Add categories to your posts"] = "Añadir temas a sus publicaciones";
App::$strings["Emoji Reactions"] = "Emoticonos \"emoji\"";
App::$strings["Add emoji reaction ability to posts"] = "Activar la capacidad de añadir un emoticono \"emoji\" a las entradas";
-App::$strings["Saved Folders"] = "Carpetas guardadas";
App::$strings["Ability to file posts under folders"] = "Capacidad de archivar entradas en carpetas";
App::$strings["Dislike Posts"] = "Desagrado de publicaciones";
App::$strings["Ability to dislike posts/comments"] = "Capacidad de mostrar desacuerdo con el contenido de entradas y comentarios";
@@ -2025,22 +2198,16 @@ App::$strings["Star Posts"] = "Entradas destacadas";
App::$strings["Ability to mark special posts with a star indicator"] = "Capacidad de marcar entradas destacadas con un indicador de estrella";
App::$strings["Tag Cloud"] = "Nube de etiquetas";
App::$strings["Provide a personal tag cloud on your channel page"] = "Proveer nube de etiquetas personal en su página de canal";
-App::$strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Un grupo suprimido con este nombre ha sido restablecido. <strong>Es posible</strong> que los permisos existentes sean aplicados a este grupo y sus futuros miembros. Si no quiere esto, por favor cree otro grupo con un nombre diferente.";
-App::$strings["Add new connections to this privacy group"] = "Añadir conexiones nuevas a este grupo de canales";
-App::$strings["edit"] = "editar";
-App::$strings["Edit group"] = "Editar grupo";
-App::$strings["Add privacy group"] = "Añadir un grupo de canales";
-App::$strings["Channels not in any privacy group"] = "Sin canales en ningún grupo";
-App::$strings["add"] = "añadir";
-App::$strings["l F d, Y \\@ g:i A"] = "l d de F, Y \\@ G:i";
-App::$strings["Starts:"] = "Comienza:";
-App::$strings["Finishes:"] = "Finaliza:";
-App::$strings["This event has been added to your calendar."] = "Este evento ha sido añadido a su calendario.";
-App::$strings["Not specified"] = "Sin especificar";
-App::$strings["Needs Action"] = "Necesita de una intervención";
-App::$strings["Completed"] = "Completado/a";
-App::$strings["In Process"] = "En proceso";
-App::$strings["Cancelled"] = "Cancelado/a";
+App::$strings["Premium Channel"] = "Canal premium";
+App::$strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Le permite configurar restricciones y normas de uso a aquellos que conectan con su canal";
+App::$strings["Tags"] = "Etiquetas";
+App::$strings["Keywords"] = "Palabras clave";
+App::$strings["have"] = "tener";
+App::$strings["has"] = "tiene";
+App::$strings["want"] = "quiero";
+App::$strings["wants"] = "quiere";
+App::$strings["likes"] = "gusta de";
+App::$strings["dislikes"] = "no gusta de";
App::$strings["Not a valid email address"] = "Dirección de correo no válida";
App::$strings["Your email domain is not among those allowed on this site"] = "Su dirección de correo no pertenece a ninguno de los dominios permitidos en este sitio.";
App::$strings["Your email address is already registered at this site."] = "Su dirección de correo está ya registrada en este sitio.";
@@ -2057,28 +2224,6 @@ App::$strings["Registration revoked for %s"] = "Registro revocado para %s";
App::$strings["Click here to upgrade."] = "Pulse aquí para actualizar";
App::$strings["This action exceeds the limits set by your subscription plan."] = "Esta acción supera los límites establecidos por su plan de suscripción ";
App::$strings["This action is not available under your subscription plan."] = "Esta acción no está disponible en su plan de suscripción.";
-App::$strings["Channel is blocked on this site."] = "El canal está bloqueado en este sitio.";
-App::$strings["Channel location missing."] = "Falta la dirección del canal.";
-App::$strings["Response from remote channel was incomplete."] = "Respuesta incompleta del canal.";
-App::$strings["Channel was deleted and no longer exists."] = "El canal ha sido eliminado y ya no existe.";
-App::$strings["Protocol disabled."] = "Protocolo deshabilitado.";
-App::$strings["Channel discovery failed."] = "El intento de acceder al canal ha fallado.";
-App::$strings["Cannot connect to yourself."] = "No puede conectarse consigo mismo.";
-App::$strings["Item was not found."] = "Elemento no encontrado.";
-App::$strings["No source file."] = "Ningún fichero de origen";
-App::$strings["Cannot locate file to replace"] = "No se puede localizar el fichero que va a ser sustituido.";
-App::$strings["Cannot locate file to revise/update"] = "No se puede localizar el fichero para revisar/actualizar";
-App::$strings["File exceeds size limit of %d"] = "El fichero supera el limite de tamaño de %d";
-App::$strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Ha alcanzado su límite de %1$.0f Mbytes de almacenamiento de adjuntos.";
-App::$strings["File upload failed. Possible system limit or action terminated."] = "Error de carga, posiblemente por limite del sistema o porque la acción ha finalizado.";
-App::$strings["Stored file could not be verified. Upload failed."] = "El fichero almacenado no ha podido ser verificado. El envío ha fallado.";
-App::$strings["Path not available."] = "Ruta no disponible.";
-App::$strings["Empty pathname"] = "Ruta vacía";
-App::$strings["duplicate filename or path"] = "Nombre duplicado de ruta o fichero";
-App::$strings["Path not found."] = "Ruta no encontrada";
-App::$strings["mkdir failed."] = "mkdir ha fallado.";
-App::$strings["database storage failed."] = "el almacenamiento en la base de datos ha fallado.";
-App::$strings["Empty path"] = "Ruta vacía";
App::$strings["Image/photo"] = "Imagen/foto";
App::$strings["Encrypted content"] = "Contenido cifrado";
App::$strings["Install %s element: "] = "Instalar el elemento %s:";
@@ -2086,142 +2231,7 @@ App::$strings["This post contains an installable %s element, however you lack pe
App::$strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s escribió %2\$s siguiente %3\$s";
App::$strings["Click to open/close"] = "Pulsar para abrir/cerrar";
App::$strings["spoiler"] = "spoiler";
-App::$strings["Different viewers will see this text differently"] = "Visitantes diferentes verán este texto de forma distinta";
App::$strings["$1 wrote:"] = "$1 escribió:";
-App::$strings["(Unknown)"] = "(Desconocido)";
-App::$strings["Visible to anybody on the internet."] = "Visible para cualquiera en internet.";
-App::$strings["Visible to you only."] = "Visible sólo para usted.";
-App::$strings["Visible to anybody in this network."] = "Visible para cualquiera en esta red.";
-App::$strings["Visible to anybody authenticated."] = "Visible para cualquiera que esté autenticado.";
-App::$strings["Visible to anybody on %s."] = "Visible para cualquiera en %s.";
-App::$strings["Visible to all connections."] = "Visible para todas las conexiones.";
-App::$strings["Visible to approved connections."] = "Visible para las conexiones permitidas.";
-App::$strings["Visible to specific connections."] = "Visible para conexiones específicas.";
-App::$strings["Privacy group is empty."] = "El grupo de canales está vacío.";
-App::$strings["Privacy group: %s"] = "Grupo de canales: %s";
-App::$strings["Connection not found."] = "Conexión no encontrada";
-App::$strings["profile photo"] = "foto del perfil";
-App::$strings["Embedded content"] = "Contenido incorporado";
-App::$strings["Embedding disabled"] = "Incrustación deshabilitada";
-App::$strings["System"] = "Sistema";
-App::$strings["New App"] = "Nueva aplicación (app)";
-App::$strings["Suggestions"] = "Sugerencias";
-App::$strings["See more..."] = "Ver más...";
-App::$strings["You have %1$.0f of %2$.0f allowed connections."] = "Tiene %1$.0f de %2$.0f conexiones permitidas.";
-App::$strings["Add New Connection"] = "Añadir nueva conexión";
-App::$strings["Enter channel address"] = "Dirección del canal";
-App::$strings["Examples: bob@example.com, https://example.com/barbara"] = "Ejemplos: manuel@ejemplo.com, https://ejemplo.com/carmen";
-App::$strings["Notes"] = "Notas";
-App::$strings["Remove term"] = "Eliminar término";
-App::$strings["Everything"] = "Todo";
-App::$strings["Archives"] = "Hemeroteca";
-App::$strings["Refresh"] = "Recargar";
-App::$strings["Account settings"] = "Configuración de la cuenta";
-App::$strings["Channel settings"] = "Configuración del canal";
-App::$strings["Additional features"] = "Funcionalidades";
-App::$strings["Feature/Addon settings"] = "Complementos";
-App::$strings["Display settings"] = "Ajustes de visualización";
-App::$strings["Manage locations"] = "Gestión de ubicaciones (clones) del canal";
-App::$strings["Export channel"] = "Exportar canal";
-App::$strings["Connected apps"] = "Aplicaciones (apps) conectadas";
-App::$strings["Premium Channel Settings"] = "Configuración del canal premium";
-App::$strings["Private Mail Menu"] = "Menú de correo privado";
-App::$strings["Combined View"] = "Vista combinada";
-App::$strings["Conversations"] = "Conversaciones";
-App::$strings["Received Messages"] = "Mensajes recibidos";
-App::$strings["Sent Messages"] = "Enviar mensajes";
-App::$strings["No messages."] = "Sin mensajes.";
-App::$strings["Delete conversation"] = "Eliminar conversación";
-App::$strings["Events Tools"] = "Gestión de eventos";
-App::$strings["Export Calendar"] = "Exportar el calendario";
-App::$strings["Import Calendar"] = "Importar un calendario";
-App::$strings["Overview"] = "Resumen";
-App::$strings["Chat Members"] = "Miembros del chat";
-App::$strings["Wiki List"] = "Lista de wikis";
-App::$strings["Wiki Pages"] = "Páginas del wiki";
-App::$strings["Bookmarked Chatrooms"] = "Salas de chat preferidas";
-App::$strings["Suggested Chatrooms"] = "Salas de chat sugeridas";
-App::$strings["photo/image"] = "foto/imagen";
-App::$strings["Click to show more"] = "Hacer clic para ver más";
-App::$strings["Rating Tools"] = "Valoraciones";
-App::$strings["Rate Me"] = "Valorar este canal";
-App::$strings["View Ratings"] = "Mostrar las valoraciones";
-App::$strings["Forums"] = "Foros";
-App::$strings["Tasks"] = "Tareas";
-App::$strings["Documentation"] = "Documentación";
-App::$strings["Project/Site Information"] = "Información sobre el proyecto o sitio";
-App::$strings["For Members"] = "Para los miembros";
-App::$strings["For Administrators"] = "Para los administradores";
-App::$strings["For Developers"] = "Para los desarrolladores";
-App::$strings["Member registrations waiting for confirmation"] = "Inscripciones de nuevos miembros pendientes de aprobación";
-App::$strings["Inspect queue"] = "Examinar la cola";
-App::$strings["DB updates"] = "Actualizaciones de la base de datos";
-App::$strings["Plugin Features"] = "Extensiones";
-App::$strings[" and "] = " y ";
-App::$strings["public profile"] = "el perfil público";
-App::$strings["%1\$s changed %2\$s to &ldquo;%3\$s&rdquo;"] = "%1\$s ha cambiado %2\$s a &ldquo;%3\$s&rdquo;";
-App::$strings["Visit %1\$s's %2\$s"] = "Visitar %2\$s de %1\$s";
-App::$strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s ha actualizado %2\$s, cambiando %3\$s.";
-App::$strings["Attachments:"] = "Ficheros adjuntos:";
-App::$strings["\$Projectname event notification:"] = "Notificación de eventos de \$Projectname:";
-App::$strings["Delete this item?"] = "¿Borrar este elemento?";
-App::$strings["%s show less"] = "%s mostrar menos";
-App::$strings["%s expand"] = "%s expandir";
-App::$strings["%s collapse"] = "%s contraer";
-App::$strings["Password too short"] = "Contraseña demasiado corta";
-App::$strings["Passwords do not match"] = "Las contraseñas no coinciden";
-App::$strings["everybody"] = "cualquiera";
-App::$strings["Secret Passphrase"] = "Contraseña secreta";
-App::$strings["Passphrase hint"] = "Pista de contraseña";
-App::$strings["Notice: Permissions have changed but have not yet been submitted."] = "Aviso: los permisos han cambiado pero aún no han sido enviados.";
-App::$strings["close all"] = "cerrar todo";
-App::$strings["Nothing new here"] = "Nada nuevo por aquí";
-App::$strings["Rate This Channel (this is public)"] = "Valorar este canal (esto es público)";
-App::$strings["Describe (optional)"] = "Describir (opcional)";
-App::$strings["Please enter a link URL"] = "Por favor, introduzca una dirección de enlace";
-App::$strings["Unsaved changes. Are you sure you wish to leave this page?"] = "Cambios no guardados. ¿Está seguro de que desea abandonar la página?";
-App::$strings["timeago.prefixAgo"] = "timeago.prefixAgo";
-App::$strings["timeago.prefixFromNow"] = "timeago.prefixFromNow";
-App::$strings["ago"] = "antes";
-App::$strings["from now"] = "desde ahora";
-App::$strings["less than a minute"] = "menos de un minuto";
-App::$strings["about a minute"] = "alrededor de un minuto";
-App::$strings["%d minutes"] = "%d minutos";
-App::$strings["about an hour"] = "alrededor de una hora";
-App::$strings["about %d hours"] = "alrededor de %d horas";
-App::$strings["a day"] = "un día";
-App::$strings["%d days"] = "%d días";
-App::$strings["about a month"] = "alrededor de un mes";
-App::$strings["%d months"] = "%d meses";
-App::$strings["about a year"] = "alrededor de un año";
-App::$strings["%d years"] = "%d años";
-App::$strings[" "] = " ";
-App::$strings["timeago.numbers"] = "timeago.numbers";
-App::$strings["__ctx:long__ May"] = "mayo";
-App::$strings["Jan"] = "ene";
-App::$strings["Feb"] = "feb";
-App::$strings["Mar"] = "mar";
-App::$strings["Apr"] = "abr";
-App::$strings["__ctx:short__ May"] = "may";
-App::$strings["Jun"] = "jun";
-App::$strings["Jul"] = "jul";
-App::$strings["Aug"] = "ago";
-App::$strings["Sep"] = "sep";
-App::$strings["Oct"] = "oct";
-App::$strings["Nov"] = "nov";
-App::$strings["Dec"] = "dic";
-App::$strings["Sun"] = "dom";
-App::$strings["Mon"] = "lun";
-App::$strings["Tue"] = "mar";
-App::$strings["Wed"] = "mié";
-App::$strings["Thu"] = "jue";
-App::$strings["Fri"] = "vie";
-App::$strings["Sat"] = "sáb";
-App::$strings["__ctx:calendar__ today"] = "hoy";
-App::$strings["__ctx:calendar__ month"] = "mes";
-App::$strings["__ctx:calendar__ week"] = "semana";
-App::$strings["__ctx:calendar__ day"] = "día";
-App::$strings["__ctx:calendar__ All day"] = "Todos los días";
App::$strings["%d invitation available"] = array(
0 => "%d invitación pendiente",
1 => "%d invitaciones disponibles",
@@ -2246,57 +2256,51 @@ App::$strings["No recipient provided."] = "No se ha especificado ningún destina
App::$strings["[no subject]"] = "[sin asunto]";
App::$strings["Unable to determine sender."] = "No ha sido posible determinar el remitente. ";
App::$strings["Stored post could not be verified."] = "No se han podido verificar las publicaciones guardadas.";
-App::$strings["Who can see this?"] = "¿Quién puede ver esto?";
-App::$strings["Custom selection"] = "Selección personalizada";
-App::$strings["Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit the scope of \"Show\"."] = "Seleccione \"Mostrar\" para permitir la visualización. La opción \"No mostrar\" le permite anular y limitar el alcance de \"Mostrar\".";
-App::$strings["Show"] = "Mostrar";
-App::$strings["Don't show"] = "No mostrar";
-App::$strings["Other networks and post services"] = "Otras redes y servicios de publicación";
-App::$strings["Post permissions %s cannot be changed %s after a post is shared.</br />These permissions set who is allowed to view the post."] = "Los permisos de la entrada %s no se pueden cambiar %s una vez que se ha compartido.</br /> Estos permisos establecen quién está autorizado para ver el mensaje.";
-App::$strings["Birthday"] = "Cumpleaños";
-App::$strings["Age: "] = "Edad:";
-App::$strings["YYYY-MM-DD or MM-DD"] = "AAAA-MM-DD o MM-DD";
-App::$strings["never"] = "nunca";
-App::$strings["less than a second ago"] = "hace un instante";
-App::$strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "hace %1\$d %2\$s";
-App::$strings["__ctx:relative_date__ year"] = array(
- 0 => "año",
- 1 => "años",
-);
-App::$strings["__ctx:relative_date__ month"] = array(
- 0 => "mes",
- 1 => "meses",
-);
-App::$strings["__ctx:relative_date__ week"] = array(
- 0 => "semana",
- 1 => "semanas",
-);
-App::$strings["__ctx:relative_date__ day"] = array(
- 0 => "día",
- 1 => "días",
-);
-App::$strings["__ctx:relative_date__ hour"] = array(
- 0 => "hora",
- 1 => "horas",
-);
-App::$strings["__ctx:relative_date__ minute"] = array(
- 0 => "minuto",
- 1 => "minutos",
-);
-App::$strings["__ctx:relative_date__ second"] = array(
- 0 => "segundo",
- 1 => "segundos",
-);
-App::$strings["%1\$s's birthday"] = "Cumpleaños de %1\$s";
-App::$strings["Happy Birthday %1\$s"] = "Feliz cumpleaños %1\$s";
-App::$strings["Public Timeline"] = "Cronología pública";
-App::$strings["Invalid data packet"] = "Paquete de datos no válido";
-App::$strings["Unable to verify channel signature"] = "No ha sido posible de verificar la firma del canal";
-App::$strings["Unable to verify site signature for %s"] = "No ha sido posible de verificar la firma del sitio para %s";
-App::$strings["invalid target signature"] = "La firma recibida no es válida";
+App::$strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "No se ha podido crear un canal con un identificador que ya existe en este sistema. La importación ha fallado.";
+App::$strings["Channel clone failed. Import failed."] = "La clonación del canal no ha salido bien. La importación ha fallado.";
+App::$strings["Logout"] = "Finalizar sesión";
+App::$strings["End this session"] = "Finalizar esta sesión";
+App::$strings["Home"] = "Inicio";
+App::$strings["Your posts and conversations"] = "Sus publicaciones y conversaciones";
+App::$strings["Your profile page"] = "Su página del perfil";
+App::$strings["Manage/Edit profiles"] = "Administrar/editar perfiles";
+App::$strings["Edit your profile"] = "Editar su perfil";
+App::$strings["Your photos"] = "Sus fotos";
+App::$strings["Your files"] = "Sus ficheros";
+App::$strings["Your chatrooms"] = "Sus salas de chat";
+App::$strings["Your bookmarks"] = "Sus marcadores";
+App::$strings["Your webpages"] = "Sus páginas web";
+App::$strings["Your wiki"] = "Su wiki";
+App::$strings["Sign in"] = "Acceder";
+App::$strings["%s - click to logout"] = "%s - pulsar para finalizar sesión";
+App::$strings["Remote authentication"] = "Acceder desde su servidor";
+App::$strings["Click to authenticate to your home hub"] = "Pulsar para identificarse en su servidor de inicio";
+App::$strings["Home Page"] = "Página de inicio";
+App::$strings["Create an account"] = "Crear una cuenta";
+App::$strings["Help and documentation"] = "Ayuda y documentación";
+App::$strings["Applications, utilities, links, games"] = "Aplicaciones, utilidades, enlaces, juegos";
+App::$strings["Search site @name, #tag, ?docs, content"] = "Buscar en el sitio por @nombre, #etiqueta, ?ayuda o contenido";
+App::$strings["Channel Directory"] = "Directorio de canales";
+App::$strings["Your grid"] = "Mi red";
+App::$strings["Mark all grid notifications seen"] = "Marcar todas las notificaciones de la red como vistas";
+App::$strings["Channel home"] = "Mi canal";
+App::$strings["Mark all channel notifications seen"] = "Marcar todas las notificaciones del canal como leídas";
+App::$strings["Notices"] = "Avisos";
+App::$strings["Notifications"] = "Notificaciones";
+App::$strings["See all notifications"] = "Ver todas las notificaciones";
+App::$strings["Private mail"] = "Correo privado";
+App::$strings["See all private messages"] = "Ver todas los mensajes privados";
+App::$strings["Mark all private messages seen"] = "Marcar todos los mensajes privados como leídos";
+App::$strings["Event Calendar"] = "Calendario de eventos";
+App::$strings["See all events"] = "Ver todos los eventos";
+App::$strings["Mark all events seen"] = "Marcar todos los eventos como leidos";
+App::$strings["Manage Your Channels"] = "Gestionar sus canales";
+App::$strings["Account/Channel Settings"] = "Ajustes de cuenta/canales";
+App::$strings["Site Setup and Configuration"] = "Ajustes y configuración del sitio";
+App::$strings["@name, #tag, ?doc, content"] = "@nombre, #etiqueta, ?ayuda, contenido";
+App::$strings["Please wait..."] = "Espere por favor…";
App::$strings["Focus (Hubzilla default)"] = "Focus (predefinido)";
App::$strings["Theme settings"] = "Ajustes del tema";
-App::$strings["Select scheme"] = "Elegir un esquema";
App::$strings["Narrow navbar"] = "Estrechar la barra de navegación";
App::$strings["Navigation bar background color"] = "Color de fondo de la barra de navegación";
App::$strings["Navigation bar gradient top color"] = "Color superior del gradiente de la barra de navegación";
diff --git a/view/js/acl.js b/view/js/acl.js
index eb7b7f523..c11997c43 100644
--- a/view/js/acl.js
+++ b/view/js/acl.js
@@ -68,7 +68,7 @@ function ACL(backend_url) {
}
-ACL.prototype.get_form_data = function(event) {
+ACL.prototype.get_form_data = function(event) {
form_id = $(this).data('form_id');
that.form_id = $('#' + form_id);
@@ -100,13 +100,6 @@ ACL.prototype.on_submit = function() {
$(that.deny_cid).each(function(i,v) {
that.form_id.append("<input class='acl-field' type='hidden' name='contact_deny[]' value='"+v+"'>");
});
-
- var formfields = $('.profile-jot-net input').serializeArray();
-
- $.each(formfields, function(i, field) {
- that.form_id.append("<input class='acl-field' type='hidden' name='"+field.name+"' value='"+field.value+"'>");
- });
-
};
ACL.prototype.search = function() {
@@ -282,7 +275,8 @@ ACL.prototype.update_view = function(value) {
that.update_select('public');
/* jot acl */
- $('#jot-perms-icon, #dialog-perms-icon').removeClass('fa-lock').addClass('fa-unlock');
+ $('#jot-perms-icon, #dialog-perms-icon, #' + that.form_id[0].id + ' .jot-perms-icon').removeClass('fa-lock').addClass('fa-unlock');
+ $('#dbtn-jotnets').show();
$('.profile-jot-net input').attr('disabled', false);
}
@@ -294,7 +288,8 @@ ACL.prototype.update_view = function(value) {
that.update_select(that.selected_id);
/* jot acl */
- $('#jot-perms-icon, #dialog-perms-icon').removeClass('fa-unlock').addClass('fa-lock');
+ $('#jot-perms-icon, #dialog-perms-icon, #' + that.form_id[0].id + ' .jot-perms-icon').removeClass('fa-unlock').addClass('fa-lock');
+ $('#dbtn-jotnets').hide();
$('.profile-jot-net input').attr('disabled', 'disabled');
}
@@ -305,7 +300,8 @@ ACL.prototype.update_view = function(value) {
that.update_select('onlyme');
/* jot acl */
- $('#jot-perms-icon, #dialog-perms-icon').removeClass('fa-unlock').addClass('fa-lock');
+ $('#jot-perms-icon, #dialog-perms-icon, #' + that.form_id[0].id + ' .jot-perms-icon').removeClass('fa-unlock').addClass('fa-lock');
+ $('#dbtn-jotnets').hide();
$('.profile-jot-net input').attr('disabled', 'disabled');
}
@@ -316,11 +312,13 @@ ACL.prototype.update_view = function(value) {
/* jot acl */
if(that.allow_gid.length === 0 && that.allow_cid.length === 0 && that.deny_gid.length === 0 && that.deny_cid.length === 0 && value === 'custom') {
- $('#jot-perms-icon, #dialog-perms-icon').removeClass('fa-lock').addClass('fa-unlock');
+ $('#jot-perms-icon, #dialog-perms-icon, #' + that.form_id[0].id + ' .jot-perms-icon').removeClass('fa-lock').addClass('fa-unlock');
+ $('#dbtn-jotnets').show();
$('.profile-jot-net input').attr('disabled', false);
}
else {
- $('#jot-perms-icon, #dialog-perms-icon').removeClass('fa-unlock').addClass('fa-lock');
+ $('#jot-perms-icon, #dialog-perms-icon, #' + that.form_id[0].id + ' .jot-perms-icon').removeClass('fa-unlock').addClass('fa-lock');
+ $('#dbtn-jotnets').hide();
$('.profile-jot-net input').attr('disabled', 'disabled');
}
}
diff --git a/view/js/autocomplete.js b/view/js/autocomplete.js
index 63f1e9a13..62a3b6f06 100644
--- a/view/js/autocomplete.js
+++ b/view/js/autocomplete.js
@@ -102,8 +102,8 @@ function submit_form(e) {
function getWord(text, caretPos) {
var index = text.indexOf(caretPos);
- var postText = text.substring(caretPos, caretPos+8);
- if ((postText.indexOf('[/list]') > 0) || postText.indexOf('[/ul]') > 0 || postText.indexOf('[/ol]') > 0 || postText.indexOf('[/dl]') > 0) {
+ var postText = text.substring(caretPos, caretPos+13);
+ if (postText.indexOf('[/list]') > 0 || postText.indexOf('[/checklist]') > 0 || postText.indexOf('[/ul]') > 0 || postText.indexOf('[/ol]') > 0 || postText.indexOf('[/dl]') > 0) {
return postText;
}
}
@@ -140,10 +140,11 @@ function listNewLineAutocomplete(id) {
var text = document.getElementById(id);
var caretPos = getCaretPosition(text)
var word = getWord(text.value, caretPos);
+
if (word != null) {
var textBefore = text.value.substring(0, caretPos);
var textAfter = text.value.substring(caretPos, text.length);
- var textInsert = (word.indexOf('[/dl]') > 0) ? '\r\n[*=] ' : '\r\n[*] ';
+ var textInsert = (word.indexOf('[/dl]') > 0) ? '\r\n[*=] ' : (word.indexOf('[/checklist]') > 0) ? '\r\n[] ' : '\r\n[*] ';
var caretPositionDiff = (word.indexOf('[/dl]') > 0) ? 3 : 1;
$('#' + id).val(textBefore + textInsert + textAfter);
@@ -268,7 +269,7 @@ function string2bb(element) {
$.fn.bbco_autocomplete = function(type) {
if(type=='bbcode') {
- var open_close_elements = ['bold', 'italic', 'underline', 'overline', 'strike', 'superscript', 'subscript', 'quote', 'code', 'open', 'spoiler', 'map', 'nobb', 'list', 'ul', 'ol', 'dl', 'li', 'table', 'tr', 'th', 'td', 'center', 'color', 'font', 'size', 'zrl', 'zmg', 'rpost', 'qr', 'observer'];
+ var open_close_elements = ['bold', 'italic', 'underline', 'overline', 'strike', 'superscript', 'subscript', 'quote', 'code', 'open', 'spoiler', 'map', 'nobb', 'list', 'checklist', 'ul', 'ol', 'dl', 'li', 'table', 'tr', 'th', 'td', 'center', 'color', 'font', 'size', 'zrl', 'zmg', 'rpost', 'qr', 'observer'];
var open_elements = ['observer.baseurl', 'observer.address', 'observer.photo', 'observer.name', 'observer.webname', 'observer.url', '*', 'hr', ];
var elements = open_close_elements.concat(open_elements);
@@ -300,7 +301,9 @@ function string2bb(element) {
element = string2bb(element);
if(open_elements.indexOf(element) < 0) {
if(element === 'list' || element === 'ol' || element === 'ul') {
- return ['\[' + element + '\]' + '\n\[*\] ', '\n\[/' + element + '\]'];
+ return ['\[' + element + '\]' + '\n\[*\] ', '\n\[/' + element + '\]'];
+ } else if(element === 'checklist') {
+ return ['\[' + element + '\]' + '\n\[\] ', '\n\[/' + element + '\]'];
} else if (element === 'dl') {
return ['\[' + element + '\]' + '\n\[*=Item name\] ', '\n\[/' + element + '\]'];
} else if(element === 'table') {
diff --git a/view/js/main.js b/view/js/main.js
index 21157bdfe..f415637bd 100644
--- a/view/js/main.js
+++ b/view/js/main.js
@@ -847,7 +847,7 @@ function pageUpdate() {
function justifyPhotos(id) {
justifiedGalleryActive = true;
$('#' + id).justifiedGallery({
- selector: '> a, > div:not(.spinner, #page-end)',
+ selector: 'a, div:not(.spinner, #page-end)',
margins: 3,
border: 0,
sizeRangeSuffixes: {
@@ -1247,12 +1247,6 @@ Array.prototype.remove = function(item) {
return this.push.apply(this, rest);
};
-function previewTheme(elm) {
- theme = $(elm).val();
- $.getJSON('pretheme?f=&theme=' + theme,function(data) {
- $('#theme-preview').html('<div id="theme-desc">' + data.desc + '</div><div id="theme-version">' + data.version + '</div><div id="theme-credits">' + data.credits + '</div><a href="' + data.img + '"><img src="' + data.img + '" style="max-width:100%; max-height:300px" alt="' + theme + '"></a>');
- });
-}
$(document).ready(function() {
diff --git a/view/js/mod_network.js b/view/js/mod_network.js
index cbdb82c75..cd36786df 100644
--- a/view/js/mod_network.js
+++ b/view/js/mod_network.js
@@ -1,5 +1,5 @@
$(document).ready(function() {
- $("#search-text").contact_autocomplete(baseurl + '/search_ac');
+ $("#search-text").contact_autocomplete(baseurl + '/search_ac','',true);
$('.jslider-scale ins').addClass('hidden-xs');
});
diff --git a/view/js/mod_settings.js b/view/js/mod_settings.js
index 4ff702b22..db321ae70 100644
--- a/view/js/mod_settings.js
+++ b/view/js/mod_settings.js
@@ -8,6 +8,8 @@ $(document).ready(function() {
$('.token-mirror').html($('#id_token').val());
$('#id_token').keyup( function() { $('.token-mirror').html($('#id_token').val()); });
+ previewTheme($('#id_theme')[0]);
+
$("#id_permissions_role").change(function() {
var role = $("#id_permissions_role").val();
if(role == 'custom')
@@ -17,6 +19,26 @@ $(document).ready(function() {
});
});
+
+function setTheme(elm) {
+ $('#settings-form').submit();
+}
+
+
+function previewTheme(elm) {
+ theme = $(elm).val();
+ $.getJSON('theme_info/' + theme,function(data) {
+ $('#theme-preview').html('<div id="theme-desc">' + data.desc + '</div><div id="theme-version">' + data.version + '</div><div id="theme-credits">' + data.credits + '</div><a href="' + data.img + '"><img src="' + data.img + '" style="max-width:100%; max-height:300px" alt="' + theme + '"></a>');
+ $('#id_schema').empty();
+ $(data.schemas).each(function(index,item) {
+ $('<option/>',{value:item['key'],text:item['val']}).appendTo('#id_schema');
+ });
+ $('#custom-settings-content .section-content-tools-wrapper').html(data.config);
+ });
+}
+
+
+
/**
* 0 nobody
* 1 perms_specific
diff --git a/view/nl/hmessages.po b/view/nl/hmessages.po
index 9219a1c06..b9b6dd2e5 100644
--- a/view/nl/hmessages.po
+++ b/view/nl/hmessages.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Redmatrix\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-06-10 00:02-0700\n"
-"PO-Revision-Date: 2016-06-10 13:57+0000\n"
+"POT-Creation-Date: 2016-08-26 00:02-0700\n"
+"PO-Revision-Date: 2016-08-31 11:08+0000\n"
"Last-Translator: jeroenpraat <jeroenpraat@xs4all.nl>\n"
"Language-Team: Dutch (http://www.transifex.com/Friendica/red-matrix/language/nl/)\n"
"MIME-Version: 1.0\n"
@@ -18,11 +18,157 @@ msgstr ""
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+#: ../../Zotlabs/Access/PermissionRoles.php:182
+#: ../../include/permissions.php:939
+msgid "Social Networking"
+msgstr "Sociaal netwerk"
+
+#: ../../Zotlabs/Access/PermissionRoles.php:183
+#: ../../include/permissions.php:939
+msgid "Social - Mostly Public"
+msgstr "Sociaal - Vrijwel alles openbaar"
+
+#: ../../Zotlabs/Access/PermissionRoles.php:184
+#: ../../include/permissions.php:939
+msgid "Social - Restricted"
+msgstr "Sociaal - Beperkt zichtbaar"
+
+#: ../../Zotlabs/Access/PermissionRoles.php:185
+#: ../../include/permissions.php:939
+msgid "Social - Private"
+msgstr "Sociaal - Verborgen kanaal"
+
+#: ../../Zotlabs/Access/PermissionRoles.php:188
+#: ../../include/permissions.php:940
+msgid "Community Forum"
+msgstr "Groepsforum"
+
+#: ../../Zotlabs/Access/PermissionRoles.php:189
+#: ../../include/permissions.php:940
+msgid "Forum - Mostly Public"
+msgstr "Forum - Vrijwel alles openbaar"
+
+#: ../../Zotlabs/Access/PermissionRoles.php:190
+#: ../../include/permissions.php:940
+msgid "Forum - Restricted"
+msgstr "Forum - Beperkt zichtbaar"
+
+#: ../../Zotlabs/Access/PermissionRoles.php:191
+#: ../../include/permissions.php:940
+msgid "Forum - Private"
+msgstr "Forum - Verborgen kanaal"
+
+#: ../../Zotlabs/Access/PermissionRoles.php:194
+#: ../../include/permissions.php:941
+msgid "Feed Republish"
+msgstr "Feed herpubliceren"
+
+#: ../../Zotlabs/Access/PermissionRoles.php:195
+#: ../../include/permissions.php:941
+msgid "Feed - Mostly Public"
+msgstr "Feed - Vrijwel alles openbaar"
+
+#: ../../Zotlabs/Access/PermissionRoles.php:196
+#: ../../include/permissions.php:941
+msgid "Feed - Restricted"
+msgstr "Feed - Beperkt zichtbaar"
+
+#: ../../Zotlabs/Access/PermissionRoles.php:199
+#: ../../include/permissions.php:942
+msgid "Special Purpose"
+msgstr "Speciaal doel"
+
+#: ../../Zotlabs/Access/PermissionRoles.php:200
+#: ../../include/permissions.php:942
+msgid "Special - Celebrity/Soapbox"
+msgstr "Speciaal - Beroemdheid/alleen volgen"
+
+#: ../../Zotlabs/Access/PermissionRoles.php:201
+#: ../../include/permissions.php:942
+msgid "Special - Group Repository"
+msgstr "Speciaal - Groepsopslag"
+
+#: ../../Zotlabs/Access/PermissionRoles.php:204
+#: ../../include/permissions.php:943 ../../include/selectors.php:49
+#: ../../include/selectors.php:66 ../../include/selectors.php:104
+#: ../../include/selectors.php:140
+msgid "Other"
+msgstr "Anders"
+
+#: ../../Zotlabs/Access/PermissionRoles.php:205
+#: ../../include/permissions.php:943
+msgid "Custom/Expert Mode"
+msgstr "Expertmodus/handmatig aanpassen"
+
+#: ../../Zotlabs/Access/Permissions.php:30
+msgid "Can view my channel stream and posts"
+msgstr "Kan mijn kanaal en berichten bekijken"
+
+#: ../../Zotlabs/Access/Permissions.php:31 ../../include/permissions.php:36
+msgid "Can send me their channel stream and posts"
+msgstr "Kan mij de inhoud van hun kanaal en berichten sturen"
+
+#: ../../Zotlabs/Access/Permissions.php:32 ../../include/permissions.php:30
+msgid "Can view my default channel profile"
+msgstr "Kan mijn standaard kanaalprofiel bekijken"
+
+#: ../../Zotlabs/Access/Permissions.php:33 ../../include/permissions.php:31
+msgid "Can view my connections"
+msgstr "Kan een lijst met mijn connecties bekijken"
+
+#: ../../Zotlabs/Access/Permissions.php:34 ../../include/permissions.php:32
+msgid "Can view my file storage and photos"
+msgstr "Kan mijn foto's en andere bestanden bekijken"
+
+#: ../../Zotlabs/Access/Permissions.php:35
+msgid "Can upload/modify my file storage and photos"
+msgstr "Kan foto's en andere bestanden aan mijn bestandsopslag toevoegen"
+
+#: ../../Zotlabs/Access/Permissions.php:36
+msgid "Can view my channel webpages"
+msgstr "Kan de webpagina's van mijn kanaal bekijken"
+
+#: ../../Zotlabs/Access/Permissions.php:37
+msgid "Can create/edit my channel webpages"
+msgstr "Kan wegpagina's van mijn kanaal aanmaken en bewerken"
+
+#: ../../Zotlabs/Access/Permissions.php:38
+msgid "Can post on my channel (wall) page"
+msgstr "Kan een bericht in mijn kanaal plaatsen"
+
+#: ../../Zotlabs/Access/Permissions.php:39 ../../include/permissions.php:38
+msgid "Can comment on or like my posts"
+msgstr "Kan op mijn berichten reageren of deze (niet) leuk vinden"
+
+#: ../../Zotlabs/Access/Permissions.php:40 ../../include/permissions.php:39
+msgid "Can send me private mail messages"
+msgstr "Kan mij privéberichten sturen"
+
+#: ../../Zotlabs/Access/Permissions.php:41
+msgid "Can like/dislike profiles and profile things"
+msgstr "Kan profielen en profieldingen leuk en niet leuk vinden "
+
+#: ../../Zotlabs/Access/Permissions.php:42
+msgid "Can forward to all my channel connections via @+ mentions in posts"
+msgstr "Kan naar al mijn kanaalconnecties berichten doorsturen met behulp van @vermeldingen+"
+
+#: ../../Zotlabs/Access/Permissions.php:43
+msgid "Can chat with me"
+msgstr "Kan met mij chatten"
+
+#: ../../Zotlabs/Access/Permissions.php:44 ../../include/permissions.php:47
+msgid "Can source my public posts in derived channels"
+msgstr "Kan mijn openbare berichten als bron voor andere kanalen gebruiken"
+
+#: ../../Zotlabs/Access/Permissions.php:45
+msgid "Can administer my channel"
+msgstr "Kan mijn kanaal beheren"
+
#: ../../Zotlabs/Storage/Browser.php:107 ../../Zotlabs/Storage/Browser.php:239
msgid "parent"
msgstr "omhoog"
-#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2620
+#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2657
msgid "Collection"
msgstr "map"
@@ -46,16 +192,17 @@ msgstr "Planning-postvak IN"
msgid "Schedule Outbox"
msgstr "Planning-postvak UIT"
-#: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Module/Photos.php:798
-#: ../../Zotlabs/Module/Photos.php:1243 ../../Zotlabs/Lib/Apps.php:486
-#: ../../Zotlabs/Lib/Apps.php:561 ../../include/widgets.php:1505
-#: ../../include/conversation.php:1032
+#: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Module/Photos.php:800
+#: ../../Zotlabs/Module/Photos.php:1249
+#: ../../Zotlabs/Module/Embedphotos.php:147 ../../Zotlabs/Lib/Apps.php:490
+#: ../../Zotlabs/Lib/Apps.php:565 ../../include/widgets.php:1613
+#: ../../include/conversation.php:1033
msgid "Unknown"
msgstr "Onbekend"
#: ../../Zotlabs/Storage/Browser.php:226 ../../Zotlabs/Module/Fbrowser.php:85
-#: ../../Zotlabs/Lib/Apps.php:216 ../../include/nav.php:93
-#: ../../include/conversation.php:1639
+#: ../../Zotlabs/Lib/Apps.php:217 ../../include/conversation.php:1672
+#: ../../include/nav.php:95
msgid "Files"
msgstr "Bestanden"
@@ -67,24 +214,24 @@ msgstr "Totaal"
msgid "Shared"
msgstr "Gedeeld"
-#: ../../Zotlabs/Storage/Browser.php:230 ../../Zotlabs/Storage/Browser.php:306
-#: ../../Zotlabs/Module/Blocks.php:156 ../../Zotlabs/Module/Layouts.php:182
-#: ../../Zotlabs/Module/Menu.php:118 ../../Zotlabs/Module/New_channel.php:142
-#: ../../Zotlabs/Module/Webpages.php:186
+#: ../../Zotlabs/Storage/Browser.php:230 ../../Zotlabs/Storage/Browser.php:323
+#: ../../Zotlabs/Module/Menu.php:118 ../../Zotlabs/Module/Webpages.php:216
+#: ../../Zotlabs/Module/New_channel.php:142
+#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Layouts.php:184
msgid "Create"
msgstr "Aanmaken"
-#: ../../Zotlabs/Storage/Browser.php:231 ../../Zotlabs/Storage/Browser.php:308
+#: ../../Zotlabs/Storage/Browser.php:231 ../../Zotlabs/Storage/Browser.php:325
#: ../../Zotlabs/Module/Cover_photo.php:357
-#: ../../Zotlabs/Module/Photos.php:825 ../../Zotlabs/Module/Photos.php:1364
-#: ../../Zotlabs/Module/Profile_photo.php:368 ../../include/widgets.php:1518
+#: ../../Zotlabs/Module/Photos.php:827 ../../Zotlabs/Module/Photos.php:1370
+#: ../../Zotlabs/Module/Profile_photo.php:390
+#: ../../Zotlabs/Module/Embedphotos.php:159 ../../include/widgets.php:1626
msgid "Upload"
msgstr "Uploaden"
-#: ../../Zotlabs/Storage/Browser.php:235 ../../Zotlabs/Module/Chat.php:247
-#: ../../Zotlabs/Module/Admin.php:1223 ../../Zotlabs/Module/Settings.php:592
-#: ../../Zotlabs/Module/Settings.php:618
-#: ../../Zotlabs/Module/Sharedwithme.php:99
+#: ../../Zotlabs/Storage/Browser.php:235 ../../Zotlabs/Module/Settings.php:684
+#: ../../Zotlabs/Module/Settings.php:710 ../../Zotlabs/Module/Admin.php:1236
+#: ../../Zotlabs/Module/Sharedwithme.php:99 ../../Zotlabs/Module/Chat.php:250
msgid "Name"
msgstr "Naam"
@@ -93,7 +240,7 @@ msgid "Type"
msgstr "Type"
#: ../../Zotlabs/Storage/Browser.php:237
-#: ../../Zotlabs/Module/Sharedwithme.php:101 ../../include/text.php:1344
+#: ../../Zotlabs/Module/Sharedwithme.php:101 ../../include/text.php:1326
msgid "Size"
msgstr "Grootte"
@@ -102,127 +249,121 @@ msgstr "Grootte"
msgid "Last Modified"
msgstr "Laatst gewijzigd"
-#: ../../Zotlabs/Storage/Browser.php:240 ../../Zotlabs/Module/Blocks.php:157
-#: ../../Zotlabs/Module/Editblock.php:109
+#: ../../Zotlabs/Storage/Browser.php:240
#: ../../Zotlabs/Module/Connections.php:290
#: ../../Zotlabs/Module/Connections.php:310
-#: ../../Zotlabs/Module/Editpost.php:84
-#: ../../Zotlabs/Module/Editlayout.php:113
-#: ../../Zotlabs/Module/Editwebpage.php:146
-#: ../../Zotlabs/Module/Layouts.php:190 ../../Zotlabs/Module/Menu.php:112
-#: ../../Zotlabs/Module/Admin.php:2113 ../../Zotlabs/Module/Settings.php:652
-#: ../../Zotlabs/Module/Thing.php:260 ../../Zotlabs/Module/Webpages.php:187
-#: ../../Zotlabs/Lib/Apps.php:337 ../../Zotlabs/Lib/ThreadItem.php:106
-#: ../../include/channel.php:937 ../../include/channel.php:941
-#: ../../include/menu.php:108 ../../include/page_widgets.php:8
-#: ../../include/page_widgets.php:36
+#: ../../Zotlabs/Module/Editblock.php:109
+#: ../../Zotlabs/Module/Editlayout.php:114
+#: ../../Zotlabs/Module/Editwebpage.php:145 ../../Zotlabs/Module/Menu.php:112
+#: ../../Zotlabs/Module/Settings.php:744 ../../Zotlabs/Module/Admin.php:2127
+#: ../../Zotlabs/Module/Webpages.php:217 ../../Zotlabs/Module/Blocks.php:160
+#: ../../Zotlabs/Module/Layouts.php:192 ../../Zotlabs/Module/Editpost.php:84
+#: ../../Zotlabs/Module/Thing.php:260 ../../Zotlabs/Lib/Apps.php:341
+#: ../../Zotlabs/Lib/ThreadItem.php:106 ../../include/channel.php:959
+#: ../../include/channel.php:963 ../../include/page_widgets.php:9
+#: ../../include/page_widgets.php:39 ../../include/menu.php:113
msgid "Edit"
msgstr "Bewerken"
-#: ../../Zotlabs/Storage/Browser.php:241 ../../Zotlabs/Module/Blocks.php:159
-#: ../../Zotlabs/Module/Connedit.php:572
-#: ../../Zotlabs/Module/Editblock.php:134
+#: ../../Zotlabs/Storage/Browser.php:241
#: ../../Zotlabs/Module/Connections.php:263
-#: ../../Zotlabs/Module/Editlayout.php:136
-#: ../../Zotlabs/Module/Editwebpage.php:170 ../../Zotlabs/Module/Group.php:177
-#: ../../Zotlabs/Module/Photos.php:1173 ../../Zotlabs/Module/Admin.php:1039
-#: ../../Zotlabs/Module/Admin.php:1213 ../../Zotlabs/Module/Admin.php:2114
-#: ../../Zotlabs/Module/Settings.php:653 ../../Zotlabs/Module/Thing.php:261
-#: ../../Zotlabs/Module/Webpages.php:189 ../../Zotlabs/Lib/Apps.php:338
-#: ../../Zotlabs/Lib/ThreadItem.php:126 ../../include/conversation.php:657
+#: ../../Zotlabs/Module/Editblock.php:134
+#: ../../Zotlabs/Module/Editlayout.php:137
+#: ../../Zotlabs/Module/Editwebpage.php:170
+#: ../../Zotlabs/Module/Settings.php:745 ../../Zotlabs/Module/Group.php:177
+#: ../../Zotlabs/Module/Photos.php:1179 ../../Zotlabs/Module/Admin.php:1052
+#: ../../Zotlabs/Module/Admin.php:1226 ../../Zotlabs/Module/Admin.php:2128
+#: ../../Zotlabs/Module/Webpages.php:219 ../../Zotlabs/Module/Blocks.php:162
+#: ../../Zotlabs/Module/Connedit.php:607 ../../Zotlabs/Module/Thing.php:261
+#: ../../Zotlabs/Lib/Apps.php:342 ../../Zotlabs/Lib/ThreadItem.php:126
+#: ../../include/conversation.php:660
msgid "Delete"
msgstr "Verwijderen"
-#: ../../Zotlabs/Storage/Browser.php:285
+#: ../../Zotlabs/Storage/Browser.php:301
#, php-format
msgid "You are using %1$s of your available file storage."
msgstr "Je gebruikt %1$s van de beschikbare bestandsopslag."
-#: ../../Zotlabs/Storage/Browser.php:290
+#: ../../Zotlabs/Storage/Browser.php:306
#, php-format
msgid "You are using %1$s of %2$s available file storage. (%3$s&#37;)"
msgstr "Je gebruikt %1$s van totaal %2$s beschikbare bestandsopslag. (%3$s&#37;)"
-#: ../../Zotlabs/Storage/Browser.php:302
+#: ../../Zotlabs/Storage/Browser.php:317
msgid "WARNING:"
msgstr "WAARSCHUWING:"
-#: ../../Zotlabs/Storage/Browser.php:305
+#: ../../Zotlabs/Storage/Browser.php:322
msgid "Create new folder"
msgstr "Nieuwe map aanmaken"
-#: ../../Zotlabs/Storage/Browser.php:307
+#: ../../Zotlabs/Storage/Browser.php:324
msgid "Upload file"
msgstr "Bestand uploaden"
-#: ../../Zotlabs/Web/WebServer.php:120 ../../Zotlabs/Module/Dreport.php:10
-#: ../../Zotlabs/Module/Dreport.php:49 ../../Zotlabs/Module/Group.php:72
-#: ../../Zotlabs/Module/Like.php:284 ../../Zotlabs/Module/Import_items.php:112
-#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Subthread.php:62
-#: ../../include/items.php:385
-msgid "Permission denied"
-msgstr "Toegang geweigerd"
+#: ../../Zotlabs/Storage/Browser.php:337
+msgid "Drop files here to immediately upload"
+msgstr "Sleep bestanden hierheen om ze onmiddelijk te uploaden"
-#: ../../Zotlabs/Web/WebServer.php:121 ../../Zotlabs/Web/Router.php:65
-#: ../../Zotlabs/Module/Achievements.php:34 ../../Zotlabs/Module/Blocks.php:73
-#: ../../Zotlabs/Module/Blocks.php:80 ../../Zotlabs/Module/Channel.php:105
-#: ../../Zotlabs/Module/Channel.php:226 ../../Zotlabs/Module/Channel.php:267
-#: ../../Zotlabs/Module/Chat.php:100 ../../Zotlabs/Module/Chat.php:105
-#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Block.php:26
-#: ../../Zotlabs/Module/Block.php:76 ../../Zotlabs/Module/Bookmarks.php:61
-#: ../../Zotlabs/Module/Connedit.php:366 ../../Zotlabs/Module/Editblock.php:67
-#: ../../Zotlabs/Module/Common.php:39 ../../Zotlabs/Module/Connections.php:33
+#: ../../Zotlabs/Web/Router.php:65 ../../Zotlabs/Web/WebServer.php:128
+#: ../../Zotlabs/Module/Achievements.php:34 ../../Zotlabs/Module/Api.php:12
+#: ../../Zotlabs/Module/Rate.php:113 ../../Zotlabs/Module/Authtest.php:16
+#: ../../Zotlabs/Module/Register.php:77 ../../Zotlabs/Module/Bookmarks.php:61
+#: ../../Zotlabs/Module/Page.php:35 ../../Zotlabs/Module/Page.php:91
+#: ../../Zotlabs/Module/Network.php:15 ../../Zotlabs/Module/Connections.php:33
#: ../../Zotlabs/Module/Cover_photo.php:277
-#: ../../Zotlabs/Module/Cover_photo.php:290
-#: ../../Zotlabs/Module/Editpost.php:17 ../../Zotlabs/Module/Events.php:265
+#: ../../Zotlabs/Module/Cover_photo.php:290 ../../Zotlabs/Module/Setup.php:219
+#: ../../Zotlabs/Module/Editblock.php:67
#: ../../Zotlabs/Module/Editlayout.php:67
#: ../../Zotlabs/Module/Editlayout.php:90
-#: ../../Zotlabs/Module/Editwebpage.php:69
-#: ../../Zotlabs/Module/Editwebpage.php:90
-#: ../../Zotlabs/Module/Editwebpage.php:105
-#: ../../Zotlabs/Module/Editwebpage.php:127 ../../Zotlabs/Module/Group.php:13
-#: ../../Zotlabs/Module/Api.php:13 ../../Zotlabs/Module/Api.php:18
-#: ../../Zotlabs/Module/Filestorage.php:24
-#: ../../Zotlabs/Module/Filestorage.php:79
-#: ../../Zotlabs/Module/Filestorage.php:94
-#: ../../Zotlabs/Module/Filestorage.php:121 ../../Zotlabs/Module/Item.php:210
-#: ../../Zotlabs/Module/Item.php:218 ../../Zotlabs/Module/Item.php:1070
-#: ../../Zotlabs/Module/Layouts.php:71 ../../Zotlabs/Module/Layouts.php:78
-#: ../../Zotlabs/Module/Layouts.php:89 ../../Zotlabs/Module/Id.php:76
-#: ../../Zotlabs/Module/Like.php:181 ../../Zotlabs/Module/Invite.php:17
+#: ../../Zotlabs/Module/Editwebpage.php:68
+#: ../../Zotlabs/Module/Editwebpage.php:89
+#: ../../Zotlabs/Module/Editwebpage.php:104
+#: ../../Zotlabs/Module/Editwebpage.php:126 ../../Zotlabs/Module/Menu.php:78
+#: ../../Zotlabs/Module/Appman.php:75 ../../Zotlabs/Module/Pdledit.php:26
+#: ../../Zotlabs/Module/Filestorage.php:23
+#: ../../Zotlabs/Module/Filestorage.php:78
+#: ../../Zotlabs/Module/Filestorage.php:93
+#: ../../Zotlabs/Module/Filestorage.php:120
+#: ../../Zotlabs/Module/Settings.php:664 ../../Zotlabs/Module/Group.php:13
+#: ../../Zotlabs/Module/Photos.php:73 ../../Zotlabs/Module/Block.php:26
+#: ../../Zotlabs/Module/Block.php:76 ../../Zotlabs/Module/Invite.php:17
#: ../../Zotlabs/Module/Invite.php:91 ../../Zotlabs/Module/Locs.php:87
-#: ../../Zotlabs/Module/Mail.php:129 ../../Zotlabs/Module/Manage.php:10
-#: ../../Zotlabs/Module/Menu.php:78 ../../Zotlabs/Module/Message.php:18
-#: ../../Zotlabs/Module/Mood.php:116 ../../Zotlabs/Module/Network.php:17
-#: ../../Zotlabs/Module/Mitem.php:115 ../../Zotlabs/Module/New_channel.php:77
+#: ../../Zotlabs/Module/Like.php:181 ../../Zotlabs/Module/Manage.php:10
+#: ../../Zotlabs/Module/Mitem.php:115 ../../Zotlabs/Module/Message.php:18
+#: ../../Zotlabs/Module/Mood.php:116 ../../Zotlabs/Module/Profiles.php:203
+#: ../../Zotlabs/Module/Profiles.php:601 ../../Zotlabs/Module/Webpages.php:95
+#: ../../Zotlabs/Module/Events.php:264 ../../Zotlabs/Module/New_channel.php:77
#: ../../Zotlabs/Module/New_channel.php:104
-#: ../../Zotlabs/Module/Notifications.php:70
-#: ../../Zotlabs/Module/Photos.php:75 ../../Zotlabs/Module/Page.php:35
-#: ../../Zotlabs/Module/Page.php:90 ../../Zotlabs/Module/Pdledit.php:26
-#: ../../Zotlabs/Module/Poke.php:137 ../../Zotlabs/Module/Profile.php:68
-#: ../../Zotlabs/Module/Profile.php:76 ../../Zotlabs/Module/Profiles.php:203
-#: ../../Zotlabs/Module/Profiles.php:601
-#: ../../Zotlabs/Module/Profile_photo.php:256
-#: ../../Zotlabs/Module/Profile_photo.php:269
-#: ../../Zotlabs/Module/Rate.php:113 ../../Zotlabs/Module/Appman.php:75
-#: ../../Zotlabs/Module/Register.php:77 ../../Zotlabs/Module/Regmod.php:21
+#: ../../Zotlabs/Module/Notifications.php:70 ../../Zotlabs/Module/Poke.php:137
+#: ../../Zotlabs/Module/Profile.php:68 ../../Zotlabs/Module/Profile.php:76
+#: ../../Zotlabs/Module/Channel.php:104 ../../Zotlabs/Module/Channel.php:227
+#: ../../Zotlabs/Module/Channel.php:268 ../../Zotlabs/Module/Blocks.php:73
+#: ../../Zotlabs/Module/Blocks.php:80 ../../Zotlabs/Module/Layouts.php:71
+#: ../../Zotlabs/Module/Layouts.php:78 ../../Zotlabs/Module/Layouts.php:89
+#: ../../Zotlabs/Module/Profile_photo.php:265
+#: ../../Zotlabs/Module/Profile_photo.php:278
+#: ../../Zotlabs/Module/Common.php:39 ../../Zotlabs/Module/Mail.php:121
+#: ../../Zotlabs/Module/Connedit.php:395 ../../Zotlabs/Module/Regmod.php:21
+#: ../../Zotlabs/Module/Editpost.php:17
#: ../../Zotlabs/Module/Service_limits.php:11
-#: ../../Zotlabs/Module/Settings.php:572 ../../Zotlabs/Module/Setup.php:215
+#: ../../Zotlabs/Module/Thing.php:274 ../../Zotlabs/Module/Thing.php:294
+#: ../../Zotlabs/Module/Thing.php:335 ../../Zotlabs/Module/Item.php:214
+#: ../../Zotlabs/Module/Item.php:222 ../../Zotlabs/Module/Item.php:1073
#: ../../Zotlabs/Module/Sharedwithme.php:11
#: ../../Zotlabs/Module/Sources.php:74 ../../Zotlabs/Module/Suggest.php:30
-#: ../../Zotlabs/Module/Thing.php:274 ../../Zotlabs/Module/Thing.php:294
-#: ../../Zotlabs/Module/Thing.php:331
-#: ../../Zotlabs/Module/Viewconnections.php:25
-#: ../../Zotlabs/Module/Viewconnections.php:30
-#: ../../Zotlabs/Module/Viewsrc.php:18 ../../Zotlabs/Module/Webpages.php:74
-#: ../../Zotlabs/Lib/Chatroom.php:137 ../../include/items.php:3438
-#: ../../include/attach.php:141 ../../include/attach.php:189
-#: ../../include/attach.php:252 ../../include/attach.php:266
-#: ../../include/attach.php:273 ../../include/attach.php:338
-#: ../../include/attach.php:352 ../../include/attach.php:359
-#: ../../include/attach.php:437 ../../include/attach.php:895
-#: ../../include/attach.php:966 ../../include/attach.php:1118
-#: ../../include/photos.php:27
+#: ../../Zotlabs/Module/Viewconnections.php:28
+#: ../../Zotlabs/Module/Viewconnections.php:33
+#: ../../Zotlabs/Module/Viewsrc.php:18 ../../Zotlabs/Module/Chat.php:100
+#: ../../Zotlabs/Module/Chat.php:105 ../../Zotlabs/Lib/Chatroom.php:137
+#: ../../include/items.php:3477 ../../include/photos.php:27
+#: ../../include/attach.php:142 ../../include/attach.php:190
+#: ../../include/attach.php:253 ../../include/attach.php:267
+#: ../../include/attach.php:274 ../../include/attach.php:339
+#: ../../include/attach.php:353 ../../include/attach.php:360
+#: ../../include/attach.php:440 ../../include/attach.php:902
+#: ../../include/attach.php:973 ../../include/attach.php:1125
msgid "Permission denied."
msgstr "Toegang geweigerd."
@@ -230,31 +371,40 @@ msgstr "Toegang geweigerd."
msgid "Not Found"
msgstr "Niet gevonden"
-#: ../../Zotlabs/Web/Router.php:149 ../../Zotlabs/Module/Block.php:79
-#: ../../Zotlabs/Module/Display.php:117 ../../Zotlabs/Module/Help.php:97
-#: ../../Zotlabs/Module/Page.php:93
+#: ../../Zotlabs/Web/Router.php:149 ../../Zotlabs/Module/Display.php:120
+#: ../../Zotlabs/Module/Page.php:94 ../../Zotlabs/Module/Help.php:97
+#: ../../Zotlabs/Module/Block.php:79
msgid "Page not found."
msgstr "Pagina niet gevonden."
+#: ../../Zotlabs/Web/WebServer.php:127 ../../Zotlabs/Module/Dreport.php:10
+#: ../../Zotlabs/Module/Dreport.php:66 ../../Zotlabs/Module/Group.php:72
+#: ../../Zotlabs/Module/Import_items.php:114 ../../Zotlabs/Module/Like.php:283
+#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Subthread.php:62
+#: ../../include/items.php:384
+msgid "Permission denied"
+msgstr "Toegang geweigerd"
+
#: ../../Zotlabs/Zot/Auth.php:138
msgid ""
"Remote authentication blocked. You are logged into this site locally. Please"
" logout and retry."
msgstr "Authenticatie op afstand geblokkeerd. Je bent lokaal op deze hub ingelogd. Uitloggen en opnieuw proberen."
-#: ../../Zotlabs/Zot/Auth.php:246 ../../Zotlabs/Module/Openid.php:76
-#: ../../Zotlabs/Module/Openid.php:183
+#: ../../Zotlabs/Zot/Auth.php:246
#, php-format
msgid "Welcome %s. Remote authentication successful."
msgstr "Welkom %s. Authenticatie op afstand geslaagd."
-#: ../../Zotlabs/Module/Achievements.php:15 ../../Zotlabs/Module/Blocks.php:33
-#: ../../Zotlabs/Module/Connect.php:17 ../../Zotlabs/Module/Editblock.php:31
+#: ../../Zotlabs/Module/Achievements.php:15
+#: ../../Zotlabs/Module/Editblock.php:31
#: ../../Zotlabs/Module/Editlayout.php:31
-#: ../../Zotlabs/Module/Editwebpage.php:33
-#: ../../Zotlabs/Module/Filestorage.php:60 ../../Zotlabs/Module/Hcard.php:12
-#: ../../Zotlabs/Module/Layouts.php:31 ../../Zotlabs/Module/Profile.php:20
-#: ../../Zotlabs/Module/Webpages.php:34 ../../include/channel.php:837
+#: ../../Zotlabs/Module/Editwebpage.php:32
+#: ../../Zotlabs/Module/Filestorage.php:59
+#: ../../Zotlabs/Module/Webpages.php:33 ../../Zotlabs/Module/Hcard.php:12
+#: ../../Zotlabs/Module/Profile.php:20 ../../Zotlabs/Module/Blocks.php:33
+#: ../../Zotlabs/Module/Layouts.php:31 ../../Zotlabs/Module/Connect.php:17
+#: ../../include/channel.php:859
msgid "Requested profile is not available."
msgstr "Opgevraagd profiel is niet beschikbaar"
@@ -262,229 +412,6 @@ msgstr "Opgevraagd profiel is niet beschikbaar"
msgid "Some blurb about what to do when you're new here"
msgstr "Welkom op $Projectname. Klik op de tab ontdekken of klik rechtsboven op de <a href=\"directory\">kanalengids</a>, om kanalen te vinden. Rechtsboven vind je ook <a href=\"directory\">apps</a>, waar je vrijwel alle functies van $Projectname kunt vinden. Voor <a href=\"directory\">hulp</a> met $Projectname klik je op het vraagteken."
-#: ../../Zotlabs/Module/Blocks.php:97 ../../Zotlabs/Module/Blocks.php:152
-#: ../../Zotlabs/Module/Editblock.php:108
-msgid "Block Name"
-msgstr "Bloknaam"
-
-#: ../../Zotlabs/Module/Blocks.php:151 ../../include/text.php:2265
-msgid "Blocks"
-msgstr "Blokken"
-
-#: ../../Zotlabs/Module/Blocks.php:153
-msgid "Block Title"
-msgstr "Bloktitel"
-
-#: ../../Zotlabs/Module/Blocks.php:154 ../../Zotlabs/Module/Layouts.php:188
-#: ../../Zotlabs/Module/Menu.php:114 ../../Zotlabs/Module/Webpages.php:198
-#: ../../include/page_widgets.php:44
-msgid "Created"
-msgstr "Aangemaakt"
-
-#: ../../Zotlabs/Module/Blocks.php:155 ../../Zotlabs/Module/Layouts.php:189
-#: ../../Zotlabs/Module/Menu.php:115 ../../Zotlabs/Module/Webpages.php:199
-#: ../../include/page_widgets.php:45
-msgid "Edited"
-msgstr "Bewerkt"
-
-#: ../../Zotlabs/Module/Blocks.php:158 ../../Zotlabs/Module/Layouts.php:191
-#: ../../Zotlabs/Module/Photos.php:1072 ../../Zotlabs/Module/Webpages.php:188
-#: ../../include/conversation.php:1208
-msgid "Share"
-msgstr "Delen"
-
-#: ../../Zotlabs/Module/Blocks.php:163 ../../Zotlabs/Module/Layouts.php:195
-#: ../../Zotlabs/Module/Pubsites.php:47 ../../Zotlabs/Module/Webpages.php:193
-#: ../../include/page_widgets.php:39
-msgid "View"
-msgstr "Weergeven"
-
-#: ../../Zotlabs/Module/Cal.php:62 ../../Zotlabs/Module/Block.php:43
-#: ../../Zotlabs/Module/Page.php:56 ../../Zotlabs/Module/Wall_upload.php:33
-msgid "Channel not found."
-msgstr "Kanaal niet gevonden."
-
-#: ../../Zotlabs/Module/Cal.php:69
-msgid "Permissions denied."
-msgstr "Permissies niet toegestaan"
-
-#: ../../Zotlabs/Module/Cal.php:259 ../../Zotlabs/Module/Events.php:588
-msgid "l, F j"
-msgstr "l j F"
-
-#: ../../Zotlabs/Module/Cal.php:308 ../../Zotlabs/Module/Events.php:637
-#: ../../include/text.php:1732
-msgid "Link to Source"
-msgstr "Originele locatie"
-
-#: ../../Zotlabs/Module/Cal.php:331 ../../Zotlabs/Module/Events.php:665
-msgid "Edit Event"
-msgstr "Gebeurtenis bewerken"
-
-#: ../../Zotlabs/Module/Cal.php:331 ../../Zotlabs/Module/Events.php:665
-msgid "Create Event"
-msgstr "Gebeurtenis aanmaken"
-
-#: ../../Zotlabs/Module/Cal.php:332 ../../Zotlabs/Module/Cal.php:339
-#: ../../Zotlabs/Module/Events.php:666 ../../Zotlabs/Module/Events.php:673
-#: ../../Zotlabs/Module/Photos.php:949
-msgid "Previous"
-msgstr "Vorige"
-
-#: ../../Zotlabs/Module/Cal.php:333 ../../Zotlabs/Module/Cal.php:340
-#: ../../Zotlabs/Module/Events.php:667 ../../Zotlabs/Module/Events.php:674
-#: ../../Zotlabs/Module/Photos.php:958 ../../Zotlabs/Module/Setup.php:267
-msgid "Next"
-msgstr "Volgende"
-
-#: ../../Zotlabs/Module/Cal.php:334 ../../Zotlabs/Module/Events.php:668
-#: ../../include/widgets.php:755
-msgid "Export"
-msgstr "Exporteren"
-
-#: ../../Zotlabs/Module/Cal.php:337 ../../Zotlabs/Module/Events.php:671
-#: ../../include/widgets.php:756
-msgid "Import"
-msgstr "Importeren"
-
-#: ../../Zotlabs/Module/Cal.php:338 ../../Zotlabs/Module/Chat.php:196
-#: ../../Zotlabs/Module/Chat.php:238 ../../Zotlabs/Module/Connect.php:98
-#: ../../Zotlabs/Module/Connedit.php:731 ../../Zotlabs/Module/Events.php:475
-#: ../../Zotlabs/Module/Events.php:672 ../../Zotlabs/Module/Group.php:85
-#: ../../Zotlabs/Module/Filestorage.php:162
-#: ../../Zotlabs/Module/Import.php:550
-#: ../../Zotlabs/Module/Import_items.php:120
-#: ../../Zotlabs/Module/Invite.php:146 ../../Zotlabs/Module/Locs.php:121
-#: ../../Zotlabs/Module/Mail.php:378 ../../Zotlabs/Module/Mood.php:139
-#: ../../Zotlabs/Module/Mitem.php:235 ../../Zotlabs/Module/Photos.php:677
-#: ../../Zotlabs/Module/Photos.php:1052 ../../Zotlabs/Module/Photos.php:1092
-#: ../../Zotlabs/Module/Photos.php:1210 ../../Zotlabs/Module/Pconfig.php:107
-#: ../../Zotlabs/Module/Pdledit.php:66 ../../Zotlabs/Module/Poke.php:186
-#: ../../Zotlabs/Module/Profiles.php:687 ../../Zotlabs/Module/Rate.php:170
-#: ../../Zotlabs/Module/Admin.php:492 ../../Zotlabs/Module/Admin.php:688
-#: ../../Zotlabs/Module/Admin.php:771 ../../Zotlabs/Module/Admin.php:1032
-#: ../../Zotlabs/Module/Admin.php:1211 ../../Zotlabs/Module/Admin.php:1421
-#: ../../Zotlabs/Module/Admin.php:1648 ../../Zotlabs/Module/Admin.php:1733
-#: ../../Zotlabs/Module/Admin.php:2116 ../../Zotlabs/Module/Appman.php:126
-#: ../../Zotlabs/Module/Settings.php:590 ../../Zotlabs/Module/Settings.php:703
-#: ../../Zotlabs/Module/Settings.php:731 ../../Zotlabs/Module/Settings.php:754
-#: ../../Zotlabs/Module/Settings.php:842
-#: ../../Zotlabs/Module/Settings.php:1034 ../../Zotlabs/Module/Setup.php:312
-#: ../../Zotlabs/Module/Setup.php:353 ../../Zotlabs/Module/Sources.php:114
-#: ../../Zotlabs/Module/Sources.php:149 ../../Zotlabs/Module/Thing.php:316
-#: ../../Zotlabs/Module/Thing.php:362 ../../Zotlabs/Module/Xchan.php:15
-#: ../../Zotlabs/Lib/ThreadItem.php:710 ../../include/widgets.php:757
-#: ../../include/widgets.php:769 ../../include/js_strings.php:22
-#: ../../view/theme/redbasic/php/config.php:99
-msgid "Submit"
-msgstr "Opslaan"
-
-#: ../../Zotlabs/Module/Cal.php:341 ../../Zotlabs/Module/Events.php:675
-msgid "Today"
-msgstr "Vandaag"
-
-#: ../../Zotlabs/Module/Channel.php:29 ../../Zotlabs/Module/Chat.php:25
-msgid "You must be logged in to see this page."
-msgstr "Je moet zijn ingelogd om deze pagina te kunnen bekijken."
-
-#: ../../Zotlabs/Module/Channel.php:41
-msgid "Posts and comments"
-msgstr "Berichten en reacties"
-
-#: ../../Zotlabs/Module/Channel.php:42
-msgid "Only posts"
-msgstr "Alleen berichten"
-
-#: ../../Zotlabs/Module/Channel.php:102
-msgid "Insufficient permissions. Request redirected to profile page."
-msgstr "Onvoldoende permissies. Doorgestuurd naar profielpagina."
-
-#: ../../Zotlabs/Module/Chat.php:181
-msgid "Room not found"
-msgstr "Chatkanaal niet gevonden"
-
-#: ../../Zotlabs/Module/Chat.php:197
-msgid "Leave Room"
-msgstr "Chatkanaal verlaten"
-
-#: ../../Zotlabs/Module/Chat.php:198
-msgid "Delete Room"
-msgstr "Chatkanaal verwijderen"
-
-#: ../../Zotlabs/Module/Chat.php:199
-msgid "I am away right now"
-msgstr "Ik ben momenteel afwezig"
-
-#: ../../Zotlabs/Module/Chat.php:200
-msgid "I am online"
-msgstr "Ik ben online"
-
-#: ../../Zotlabs/Module/Chat.php:202
-msgid "Bookmark this room"
-msgstr "Chatkanaal aan bladwijzers toevoegen"
-
-#: ../../Zotlabs/Module/Chat.php:205 ../../Zotlabs/Module/Mail.php:205
-#: ../../Zotlabs/Module/Mail.php:314 ../../include/conversation.php:1176
-msgid "Please enter a link URL:"
-msgstr "Vul een URL in:"
-
-#: ../../Zotlabs/Module/Chat.php:206 ../../Zotlabs/Module/Mail.php:258
-#: ../../Zotlabs/Module/Mail.php:383 ../../Zotlabs/Lib/ThreadItem.php:722
-#: ../../include/conversation.php:1256
-msgid "Encrypt text"
-msgstr "Tekst versleutelen"
-
-#: ../../Zotlabs/Module/Chat.php:207 ../../Zotlabs/Module/Editblock.php:111
-#: ../../Zotlabs/Module/Editwebpage.php:147 ../../Zotlabs/Module/Mail.php:252
-#: ../../Zotlabs/Module/Mail.php:377 ../../include/conversation.php:1143
-msgid "Insert web link"
-msgstr "Weblink invoegen"
-
-#: ../../Zotlabs/Module/Chat.php:218
-msgid "Feature disabled."
-msgstr "Functie uitgeschakeld."
-
-#: ../../Zotlabs/Module/Chat.php:232
-msgid "New Chatroom"
-msgstr "Nieuw chatkanaal"
-
-#: ../../Zotlabs/Module/Chat.php:233
-msgid "Chatroom name"
-msgstr "Naam chatkanaal"
-
-#: ../../Zotlabs/Module/Chat.php:234
-msgid "Expiration of chats (minutes)"
-msgstr "Aantal minuten voordat chatberichten worden verwijderd"
-
-#: ../../Zotlabs/Module/Chat.php:235 ../../Zotlabs/Module/Filestorage.php:153
-#: ../../Zotlabs/Module/Photos.php:671 ../../Zotlabs/Module/Photos.php:1045
-#: ../../Zotlabs/Module/Thing.php:313 ../../Zotlabs/Module/Thing.php:359
-#: ../../include/acl_selectors.php:283
-msgid "Permissions"
-msgstr "Permissies"
-
-#: ../../Zotlabs/Module/Chat.php:246
-#, php-format
-msgid "%1$s's Chatrooms"
-msgstr "Chatkanalen van %1$s"
-
-#: ../../Zotlabs/Module/Chat.php:251
-msgid "No chatrooms available"
-msgstr "Geen chatkanalen beschikbaar"
-
-#: ../../Zotlabs/Module/Chat.php:252 ../../Zotlabs/Module/Manage.php:143
-#: ../../Zotlabs/Module/Profiles.php:778
-msgid "Create New"
-msgstr "Nieuwe aanmaken"
-
-#: ../../Zotlabs/Module/Chat.php:255
-msgid "Expiration"
-msgstr "Verloopt na"
-
-#: ../../Zotlabs/Module/Chat.php:256
-msgid "min"
-msgstr "min"
-
#: ../../Zotlabs/Module/Chatsvc.php:117
msgid "Away"
msgstr "Afwezig"
@@ -493,562 +420,475 @@ msgstr "Afwezig"
msgid "Online"
msgstr "Online"
-#: ../../Zotlabs/Module/Block.php:31 ../../Zotlabs/Module/Page.php:40
-msgid "Invalid item."
-msgstr "Ongeldig item."
+#: ../../Zotlabs/Module/Dreport.php:44
+msgid "Invalid message"
+msgstr "Ongeldig bericht"
-#: ../../Zotlabs/Module/Bookmarks.php:53
-msgid "Bookmark added"
-msgstr "Bladwijzer toegevoegd"
+#: ../../Zotlabs/Module/Dreport.php:76
+msgid "no results"
+msgstr "geen resultaten"
-#: ../../Zotlabs/Module/Bookmarks.php:75
-msgid "My Bookmarks"
-msgstr "Mijn bladwijzers"
+#: ../../Zotlabs/Module/Dreport.php:91
+msgid "channel sync processed"
+msgstr "kanaalsync verwerkt"
-#: ../../Zotlabs/Module/Bookmarks.php:86
-msgid "My Connections Bookmarks"
-msgstr "Bladwijzers van mijn connecties"
+#: ../../Zotlabs/Module/Dreport.php:95
+msgid "queued"
+msgstr "in wachtrij"
-#: ../../Zotlabs/Module/Connect.php:61 ../../Zotlabs/Module/Connect.php:109
-msgid "Continue"
-msgstr "Ga verder"
+#: ../../Zotlabs/Module/Dreport.php:99
+msgid "posted"
+msgstr "verstuurd"
-#: ../../Zotlabs/Module/Connect.php:90
-msgid "Premium Channel Setup"
-msgstr "Instellen premiumkanaal "
+#: ../../Zotlabs/Module/Dreport.php:103
+msgid "accepted for delivery"
+msgstr "geaccepteerd om afgeleverd te worden"
-#: ../../Zotlabs/Module/Connect.php:92
-msgid "Enable premium channel connection restrictions"
-msgstr "Restricties voor connecties van premiumkanaal toestaan"
+#: ../../Zotlabs/Module/Dreport.php:107
+msgid "updated"
+msgstr "geüpdatet"
-#: ../../Zotlabs/Module/Connect.php:93
-msgid ""
-"Please enter your restrictions or conditions, such as paypal receipt, usage "
-"guidelines, etc."
-msgstr "Vul je restricties of voorwaarden in, zoals een paypal-afschrift, voorschriften voor leden, enz."
+#: ../../Zotlabs/Module/Dreport.php:110
+msgid "update ignored"
+msgstr "update genegeerd"
-#: ../../Zotlabs/Module/Connect.php:95 ../../Zotlabs/Module/Connect.php:115
-msgid ""
-"This channel may require additional steps or acknowledgement of the "
-"following conditions prior to connecting:"
-msgstr "Dit kanaal kan extra stappen of het accepteren van de volgende voorwaarden vereisen, voordat de connectie wordt geaccepteerd:"
+#: ../../Zotlabs/Module/Dreport.php:113
+msgid "permission denied"
+msgstr "toegang geweigerd"
-#: ../../Zotlabs/Module/Connect.php:96
-msgid ""
-"Potential connections will then see the following text before proceeding:"
-msgstr "Mogelijke connecties zullen dan de volgende tekst zien voordat ze verder kunnen:"
+#: ../../Zotlabs/Module/Dreport.php:117
+msgid "recipient not found"
+msgstr "ontvanger niet gevonden"
-#: ../../Zotlabs/Module/Connect.php:97 ../../Zotlabs/Module/Connect.php:118
-msgid ""
-"By continuing, I certify that I have complied with any instructions provided"
-" on this page."
-msgstr "Door verder te gaan ga ik automatisch akkoord met alle voorwaarden en aanwijzingen op deze pagina."
+#: ../../Zotlabs/Module/Dreport.php:120
+msgid "mail recalled"
+msgstr "Privébericht ingetrokken"
-#: ../../Zotlabs/Module/Connect.php:106
-msgid "(No specific instructions have been provided by the channel owner.)"
-msgstr "(Er zijn geen speciale voorwaarden en aanwijzingen door de kanaal-eigenaar verstrekt) "
+#: ../../Zotlabs/Module/Dreport.php:123
+msgid "duplicate mail received"
+msgstr "dubbel privébericht ontvangen"
-#: ../../Zotlabs/Module/Connect.php:114
-msgid "Restricted or Premium Channel"
-msgstr "Beperkt of premiumkanaal"
+#: ../../Zotlabs/Module/Dreport.php:126
+msgid "mail delivered"
+msgstr "privébericht afgeleverd"
-#: ../../Zotlabs/Module/Connedit.php:80
-msgid "Could not access contact record."
-msgstr "Kon geen toegang krijgen tot de connectie-gegevens."
+#: ../../Zotlabs/Module/Dreport.php:146
+#, php-format
+msgid "Delivery report for %1$s"
+msgstr "Afleveringsrapport voor %1$s"
-#: ../../Zotlabs/Module/Connedit.php:104
-msgid "Could not locate selected profile."
-msgstr "Kon het gekozen profiel niet vinden."
+#: ../../Zotlabs/Module/Dreport.php:149
+msgid "Options"
+msgstr "Opties"
-#: ../../Zotlabs/Module/Connedit.php:227
-msgid "Connection updated."
-msgstr "Connectie bijgewerkt."
+#: ../../Zotlabs/Module/Dreport.php:150
+msgid "Redeliver"
+msgstr "Opnieuw afleveren"
-#: ../../Zotlabs/Module/Connedit.php:229
-msgid "Failed to update connection record."
-msgstr "Bijwerken van connectie-gegevens mislukt."
+#: ../../Zotlabs/Module/Probe.php:28 ../../Zotlabs/Module/Probe.php:32
+#, php-format
+msgid "Fetching URL returns error: %1$s"
+msgstr "Ophalen URL gaf een foutmelding terug: %1$s"
-#: ../../Zotlabs/Module/Connedit.php:276
-msgid "is now connected to"
-msgstr "is nu verbonden met"
+#: ../../Zotlabs/Module/Api.php:60 ../../Zotlabs/Module/Api.php:81
+msgid "Authorize application connection"
+msgstr "Geef toestemming voor applicatiekoppeling"
-#: ../../Zotlabs/Module/Connedit.php:379 ../../Zotlabs/Module/Connedit.php:654
-#: ../../Zotlabs/Module/Events.php:459 ../../Zotlabs/Module/Events.php:460
-#: ../../Zotlabs/Module/Events.php:469 ../../Zotlabs/Module/Api.php:89
-#: ../../Zotlabs/Module/Filestorage.php:157
-#: ../../Zotlabs/Module/Filestorage.php:165 ../../Zotlabs/Module/Menu.php:100
-#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Mitem.php:158
-#: ../../Zotlabs/Module/Mitem.php:159 ../../Zotlabs/Module/Mitem.php:232
-#: ../../Zotlabs/Module/Mitem.php:233 ../../Zotlabs/Module/Photos.php:666
-#: ../../Zotlabs/Module/Profiles.php:647 ../../Zotlabs/Module/Admin.php:459
-#: ../../Zotlabs/Module/Removeme.php:61 ../../Zotlabs/Module/Settings.php:581
-#: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144
-#: ../../include/dir_fns.php:145 ../../view/theme/redbasic/php/config.php:105
-#: ../../view/theme/redbasic/php/config.php:130 ../../boot.php:1707
-msgid "No"
-msgstr "Nee"
+#: ../../Zotlabs/Module/Api.php:61
+msgid "Return to your app and insert this Security Code:"
+msgstr "Ga terug naar je app en voeg deze beveiligingscode in:"
-#: ../../Zotlabs/Module/Connedit.php:379 ../../Zotlabs/Module/Events.php:459
-#: ../../Zotlabs/Module/Events.php:460 ../../Zotlabs/Module/Events.php:469
-#: ../../Zotlabs/Module/Api.php:88 ../../Zotlabs/Module/Filestorage.php:157
-#: ../../Zotlabs/Module/Filestorage.php:165 ../../Zotlabs/Module/Menu.php:100
-#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Mitem.php:158
-#: ../../Zotlabs/Module/Mitem.php:159 ../../Zotlabs/Module/Mitem.php:232
-#: ../../Zotlabs/Module/Mitem.php:233 ../../Zotlabs/Module/Photos.php:666
-#: ../../Zotlabs/Module/Profiles.php:647 ../../Zotlabs/Module/Admin.php:461
-#: ../../Zotlabs/Module/Removeme.php:61 ../../Zotlabs/Module/Settings.php:581
-#: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144
-#: ../../include/dir_fns.php:145 ../../view/theme/redbasic/php/config.php:105
-#: ../../view/theme/redbasic/php/config.php:130 ../../boot.php:1707
-msgid "Yes"
-msgstr "Ja"
+#: ../../Zotlabs/Module/Api.php:71
+msgid "Please login to continue."
+msgstr "Inloggen om verder te kunnen gaan."
-#: ../../Zotlabs/Module/Connedit.php:411
-msgid "Could not access address book record."
-msgstr "Kon geen toegang krijgen tot de record van de connectie."
+#: ../../Zotlabs/Module/Api.php:83
+msgid ""
+"Do you want to authorize this application to access your posts and contacts,"
+" and/or create new posts for you?"
+msgstr "Wil je deze applicatie toestemming geven om jouw berichten en connecties te zien, en/of nieuwe berichten voor jou te plaatsen?"
-#: ../../Zotlabs/Module/Connedit.php:425
-msgid "Refresh failed - channel is currently unavailable."
-msgstr "Vernieuwen mislukt - kanaal is momenteel niet beschikbaar"
+#: ../../Zotlabs/Module/Api.php:84 ../../Zotlabs/Module/Menu.php:100
+#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Filestorage.php:160
+#: ../../Zotlabs/Module/Filestorage.php:168
+#: ../../Zotlabs/Module/Settings.php:673 ../../Zotlabs/Module/Photos.php:664
+#: ../../Zotlabs/Module/Mitem.php:162 ../../Zotlabs/Module/Mitem.php:163
+#: ../../Zotlabs/Module/Mitem.php:240 ../../Zotlabs/Module/Mitem.php:241
+#: ../../Zotlabs/Module/Admin.php:465 ../../Zotlabs/Module/Profiles.php:647
+#: ../../Zotlabs/Module/Events.php:462 ../../Zotlabs/Module/Events.php:463
+#: ../../Zotlabs/Module/Events.php:472 ../../Zotlabs/Module/Connedit.php:408
+#: ../../Zotlabs/Module/Removeme.php:63 ../../include/dir_fns.php:143
+#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
+#: ../../view/theme/redbasic/php/config.php:111
+#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1742
+msgid "Yes"
+msgstr "Ja"
-#: ../../Zotlabs/Module/Connedit.php:440 ../../Zotlabs/Module/Connedit.php:449
-#: ../../Zotlabs/Module/Connedit.php:458 ../../Zotlabs/Module/Connedit.php:467
-#: ../../Zotlabs/Module/Connedit.php:480
-msgid "Unable to set address book parameters."
-msgstr "Niet in staat om de parameters van connecties in te stellen."
+#: ../../Zotlabs/Module/Api.php:85 ../../Zotlabs/Module/Menu.php:100
+#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Filestorage.php:160
+#: ../../Zotlabs/Module/Filestorage.php:168
+#: ../../Zotlabs/Module/Settings.php:673 ../../Zotlabs/Module/Photos.php:664
+#: ../../Zotlabs/Module/Mitem.php:162 ../../Zotlabs/Module/Mitem.php:163
+#: ../../Zotlabs/Module/Mitem.php:240 ../../Zotlabs/Module/Mitem.php:241
+#: ../../Zotlabs/Module/Admin.php:463 ../../Zotlabs/Module/Profiles.php:647
+#: ../../Zotlabs/Module/Events.php:462 ../../Zotlabs/Module/Events.php:463
+#: ../../Zotlabs/Module/Events.php:472 ../../Zotlabs/Module/Connedit.php:408
+#: ../../Zotlabs/Module/Connedit.php:686 ../../Zotlabs/Module/Removeme.php:63
+#: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144
+#: ../../include/dir_fns.php:145 ../../view/theme/redbasic/php/config.php:111
+#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1742
+msgid "No"
+msgstr "Nee"
-#: ../../Zotlabs/Module/Connedit.php:503
-msgid "Connection has been removed."
-msgstr "Connectie is verwijderd"
+#: ../../Zotlabs/Module/Rate.php:155 ../../Zotlabs/Module/Connedit.php:762
+#: ../../include/js_strings.php:20
+msgid "Rating"
+msgstr "Beoordeling"
-#: ../../Zotlabs/Module/Connedit.php:519 ../../Zotlabs/Lib/Apps.php:219
-#: ../../include/nav.php:86 ../../include/conversation.php:954
-msgid "View Profile"
-msgstr "Profiel weergeven"
+#: ../../Zotlabs/Module/Rate.php:156
+msgid "Website:"
+msgstr "Website:"
-#: ../../Zotlabs/Module/Connedit.php:522
+#: ../../Zotlabs/Module/Rate.php:159
#, php-format
-msgid "View %s's profile"
-msgstr "Profiel van %s weergeven"
+msgid "Remote Channel [%s] (not yet known on this site)"
+msgstr "Kanaal op afstand [%s] (nog niet op deze hub bekend)"
-#: ../../Zotlabs/Module/Connedit.php:526
-msgid "Refresh Permissions"
-msgstr "Permissies vernieuwen"
+#: ../../Zotlabs/Module/Rate.php:160
+msgid "Rating (this information is public)"
+msgstr "Beoordeling (deze informatie is openbaar)"
-#: ../../Zotlabs/Module/Connedit.php:529
-msgid "Fetch updated permissions"
-msgstr "Aangepaste permissies ophalen"
+#: ../../Zotlabs/Module/Rate.php:161
+msgid "Optionally explain your rating (this information is public)"
+msgstr "Verklaar jouw beoordeling (niet verplicht, deze informatie is openbaar)"
-#: ../../Zotlabs/Module/Connedit.php:533
-msgid "Recent Activity"
-msgstr "Recente activiteit/berichten"
+#: ../../Zotlabs/Module/Rate.php:166 ../../Zotlabs/Module/Setup.php:316
+#: ../../Zotlabs/Module/Setup.php:364 ../../Zotlabs/Module/Appman.php:126
+#: ../../Zotlabs/Module/Pdledit.php:66
+#: ../../Zotlabs/Module/Filestorage.php:165
+#: ../../Zotlabs/Module/Settings.php:682 ../../Zotlabs/Module/Settings.php:795
+#: ../../Zotlabs/Module/Settings.php:886 ../../Zotlabs/Module/Settings.php:912
+#: ../../Zotlabs/Module/Settings.php:935
+#: ../../Zotlabs/Module/Settings.php:1040
+#: ../../Zotlabs/Module/Settings.php:1229 ../../Zotlabs/Module/Group.php:85
+#: ../../Zotlabs/Module/Photos.php:679 ../../Zotlabs/Module/Photos.php:1058
+#: ../../Zotlabs/Module/Photos.php:1098 ../../Zotlabs/Module/Photos.php:1216
+#: ../../Zotlabs/Module/Import_items.php:122
+#: ../../Zotlabs/Module/Invite.php:146 ../../Zotlabs/Module/Locs.php:121
+#: ../../Zotlabs/Module/Mitem.php:243 ../../Zotlabs/Module/Admin.php:502
+#: ../../Zotlabs/Module/Admin.php:701 ../../Zotlabs/Module/Admin.php:784
+#: ../../Zotlabs/Module/Admin.php:1045 ../../Zotlabs/Module/Admin.php:1224
+#: ../../Zotlabs/Module/Admin.php:1435 ../../Zotlabs/Module/Admin.php:1662
+#: ../../Zotlabs/Module/Admin.php:1747 ../../Zotlabs/Module/Admin.php:2130
+#: ../../Zotlabs/Module/Mood.php:139 ../../Zotlabs/Module/Profiles.php:687
+#: ../../Zotlabs/Module/Events.php:484 ../../Zotlabs/Module/Import.php:560
+#: ../../Zotlabs/Module/Poke.php:186 ../../Zotlabs/Module/Pconfig.php:107
+#: ../../Zotlabs/Module/Cal.php:338 ../../Zotlabs/Module/Mail.php:370
+#: ../../Zotlabs/Module/Connedit.php:779 ../../Zotlabs/Module/Connect.php:98
+#: ../../Zotlabs/Module/Thing.php:320 ../../Zotlabs/Module/Thing.php:370
+#: ../../Zotlabs/Module/Sources.php:114 ../../Zotlabs/Module/Sources.php:149
+#: ../../Zotlabs/Module/Chat.php:196 ../../Zotlabs/Module/Chat.php:241
+#: ../../Zotlabs/Module/Xchan.php:15 ../../Zotlabs/Lib/ThreadItem.php:711
+#: ../../include/widgets.php:763 ../../include/js_strings.php:22
+#: ../../view/theme/redbasic/php/config.php:106
+msgid "Submit"
+msgstr "Opslaan"
-#: ../../Zotlabs/Module/Connedit.php:536
-msgid "View recent posts and comments"
-msgstr "Recente berichten en reacties weergeven"
+#: ../../Zotlabs/Module/Pubsites.php:24 ../../include/widgets.php:1351
+msgid "Public Hubs"
+msgstr "Openbare hubs"
-#: ../../Zotlabs/Module/Connedit.php:540 ../../Zotlabs/Module/Admin.php:1041
-msgid "Unblock"
-msgstr "Deblokkeren"
+#: ../../Zotlabs/Module/Pubsites.php:27
+msgid ""
+"The listed hubs allow public registration for the $Projectname network. All "
+"hubs in the network are interlinked so membership on any of them conveys "
+"membership in the network as a whole. Some hubs may require subscription or "
+"provide tiered service plans. The hub itself <strong>may</strong> provide "
+"additional details."
+msgstr "Op de hier weergegeven hubs kan iedereen zich voor het $Projectname-netwerk aanmelden. Alle hubs in het netwerk zijn met elkaar verbonden, dus maakt het qua lidmaatschap niet uit waar je je aanmeldt. Op sommige hubs heb je eerst goedkeuring nodig en sommige hubs vereisen een financiële tegemoetkoming voor bepaalde uitbreidingen. <strong>Mogelijk</strong> wordt hierover op de hub zelf meer informatie gegeven."
-#: ../../Zotlabs/Module/Connedit.php:540 ../../Zotlabs/Module/Admin.php:1040
-msgid "Block"
-msgstr "Blokkeren"
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Hub URL"
+msgstr "Hub-URL"
-#: ../../Zotlabs/Module/Connedit.php:543
-msgid "Block (or Unblock) all communications with this connection"
-msgstr "Blokkeer (of deblokkeer) alle communicatie met deze connectie"
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Access Type"
+msgstr "Toegangs-<br/>&nbsp;type"
-#: ../../Zotlabs/Module/Connedit.php:544
-msgid "This connection is blocked!"
-msgstr "Deze connectie is geblokkeerd!"
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Registration Policy"
+msgstr "Registratie-<br/>&nbsp;beleid"
-#: ../../Zotlabs/Module/Connedit.php:548
-msgid "Unignore"
-msgstr "Niet meer negeren"
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Stats"
+msgstr "Stats"
-#: ../../Zotlabs/Module/Connedit.php:548
-#: ../../Zotlabs/Module/Connections.php:277
-#: ../../Zotlabs/Module/Notifications.php:55
-msgid "Ignore"
-msgstr "Negeren"
+#: ../../Zotlabs/Module/Pubsites.php:33
+msgid "Software"
+msgstr "Software"
-#: ../../Zotlabs/Module/Connedit.php:551
-msgid "Ignore (or Unignore) all inbound communications from this connection"
-msgstr "Negeer (of negeer niet meer) alle inkomende communicatie van deze connectie"
+#: ../../Zotlabs/Module/Pubsites.php:35 ../../Zotlabs/Module/Ratings.php:97
+#: ../../include/conversation.php:960
+msgid "Ratings"
+msgstr "Beoordelingen"
-#: ../../Zotlabs/Module/Connedit.php:552
-msgid "This connection is ignored!"
-msgstr "Deze connectie wordt genegeerd!"
+#: ../../Zotlabs/Module/Pubsites.php:43
+msgid "Rate"
+msgstr "Beoordeel"
-#: ../../Zotlabs/Module/Connedit.php:556
-msgid "Unarchive"
-msgstr "Niet meer archiveren"
+#: ../../Zotlabs/Module/Pubsites.php:46 ../../Zotlabs/Module/Locs.php:117
+#: ../../Zotlabs/Module/Profiles.php:477 ../../Zotlabs/Module/Profiles.php:698
+#: ../../Zotlabs/Module/Events.php:467 ../../include/js_strings.php:25
+msgid "Location"
+msgstr "Locatie"
-#: ../../Zotlabs/Module/Connedit.php:556
-msgid "Archive"
-msgstr "Archiveren"
+#: ../../Zotlabs/Module/Pubsites.php:54 ../../Zotlabs/Module/Webpages.php:223
+#: ../../Zotlabs/Module/Events.php:680 ../../Zotlabs/Module/Blocks.php:166
+#: ../../Zotlabs/Module/Layouts.php:197 ../../include/page_widgets.php:42
+msgid "View"
+msgstr "Weergeven"
-#: ../../Zotlabs/Module/Connedit.php:559
+#: ../../Zotlabs/Module/Register.php:49
+msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
+msgstr "Maximum toegestane dagelijkse registraties op deze $Projectname-hub bereikt. Probeer het morgen (UTC) nogmaals."
+
+#: ../../Zotlabs/Module/Register.php:55
msgid ""
-"Archive (or Unarchive) this connection - mark channel dead but keep content"
-msgstr "Archiveer (of dearchiveer) deze connectie - markeer het kanaal als dood, maar bewaar de inhoud"
+"Please indicate acceptance of the Terms of Service. Registration failed."
+msgstr "Registratie mislukt. De gebruiksvoorwaarden dienen wel geaccepteerd te worden."
-#: ../../Zotlabs/Module/Connedit.php:560
-msgid "This connection is archived!"
-msgstr "Deze connectie is gearchiveerd!"
+#: ../../Zotlabs/Module/Register.php:89
+msgid "Passwords do not match."
+msgstr "Wachtwoorden komen niet met elkaar overeen."
-#: ../../Zotlabs/Module/Connedit.php:564
-msgid "Unhide"
-msgstr "Niet meer verbergen"
+#: ../../Zotlabs/Module/Register.php:131
+msgid ""
+"Registration successful. Please check your email for validation "
+"instructions."
+msgstr "Registratie geslaagd. Controleer je e-mail voor instructies."
-#: ../../Zotlabs/Module/Connedit.php:564
-msgid "Hide"
-msgstr "Verbergen"
+#: ../../Zotlabs/Module/Register.php:137
+msgid "Your registration is pending approval by the site owner."
+msgstr "Jouw accountregistratie wacht op goedkeuring van de beheerder van deze $Projectname-hub."
-#: ../../Zotlabs/Module/Connedit.php:567
-msgid "Hide or Unhide this connection from your other connections"
-msgstr "Deze connectie verbergen (of niet meer verbergen) voor jouw andere connecties"
+#: ../../Zotlabs/Module/Register.php:140
+msgid "Your registration can not be processed."
+msgstr "Jouw registratie kan niet verwerkt worden."
-#: ../../Zotlabs/Module/Connedit.php:568
-msgid "This connection is hidden!"
-msgstr "Deze connectie is verborgen!"
+#: ../../Zotlabs/Module/Register.php:184
+msgid "Registration on this hub is disabled."
+msgstr "Registreren van nieuwe accounts is op deze hub uitgeschakeld."
-#: ../../Zotlabs/Module/Connedit.php:575
-msgid "Delete this connection"
-msgstr "Deze connectie verwijderen"
+#: ../../Zotlabs/Module/Register.php:193
+msgid "Registration on this hub is by approval only."
+msgstr "Registraties op deze hub moeten eerst worden goedgekeurd."
-#: ../../Zotlabs/Module/Connedit.php:590 ../../include/widgets.php:493
-msgid "Me"
-msgstr "Ik"
+#: ../../Zotlabs/Module/Register.php:194
+msgid "<a href=\"pubsites\">Register at another affiliated hub.</a>"
+msgstr "<a href=\"pubsites\">Registreer op een andere hub</a>."
-#: ../../Zotlabs/Module/Connedit.php:591 ../../include/widgets.php:494
-msgid "Family"
-msgstr "Familie"
+#: ../../Zotlabs/Module/Register.php:204
+msgid ""
+"This site has exceeded the number of allowed daily account registrations. "
+"Please try again tomorrow."
+msgstr "Deze $Projectname-hub heeft het maximum aantal dagelijks toegestane registraties bereikt. Probeer het morgen (UTC) nogmaals."
-#: ../../Zotlabs/Module/Connedit.php:592 ../../Zotlabs/Module/Settings.php:342
-#: ../../Zotlabs/Module/Settings.php:346 ../../Zotlabs/Module/Settings.php:347
-#: ../../Zotlabs/Module/Settings.php:350 ../../Zotlabs/Module/Settings.php:361
-#: ../../include/widgets.php:495 ../../include/selectors.php:123
-#: ../../include/channel.php:389 ../../include/channel.php:390
-#: ../../include/channel.php:397
-msgid "Friends"
-msgstr "Vrienden"
+#: ../../Zotlabs/Module/Register.php:215
+msgid "Terms of Service"
+msgstr "Gebruiksvoorwaarden"
-#: ../../Zotlabs/Module/Connedit.php:593 ../../include/widgets.php:496
-msgid "Acquaintances"
-msgstr "Kennissen"
+#: ../../Zotlabs/Module/Register.php:221
+#, php-format
+msgid "I accept the %s for this website"
+msgstr "Ik accepteer de %s van deze $Projectname-hub"
-#: ../../Zotlabs/Module/Connedit.php:594
-#: ../../Zotlabs/Module/Connections.php:92
-#: ../../Zotlabs/Module/Connections.php:107 ../../include/widgets.php:497
-msgid "All"
-msgstr "Alles"
+#: ../../Zotlabs/Module/Register.php:223
+#, php-format
+msgid "I am over 13 years of age and accept the %s for this website"
+msgstr "Ik ben 13 jaar of ouder en accepteer de %s van deze $Projectname-hub"
-#: ../../Zotlabs/Module/Connedit.php:654
-msgid "Approve this connection"
-msgstr "Deze connectie accepteren"
+#: ../../Zotlabs/Module/Register.php:227
+msgid "Your email address"
+msgstr "Jouw e-mailadres"
-#: ../../Zotlabs/Module/Connedit.php:654
-msgid "Accept connection to allow communication"
-msgstr "Keur deze connectie goed om communicatie toe te staan"
+#: ../../Zotlabs/Module/Register.php:228
+msgid "Choose a password"
+msgstr "Geef een wachtwoord op"
-#: ../../Zotlabs/Module/Connedit.php:659
-msgid "Set Affinity"
-msgstr "Verwantschapsfilter instellen"
+#: ../../Zotlabs/Module/Register.php:229
+msgid "Please re-enter your password"
+msgstr "Geef het wachtwoord opnieuw op"
-#: ../../Zotlabs/Module/Connedit.php:662
-msgid "Set Profile"
-msgstr "Profiel instellen"
+#: ../../Zotlabs/Module/Register.php:230
+msgid "Please enter your invitation code"
+msgstr "Vul jouw uitnodigingscode in"
-#: ../../Zotlabs/Module/Connedit.php:665
-msgid "Set Affinity & Profile"
-msgstr "Verwantschapsfilter en profiel instellen"
+#: ../../Zotlabs/Module/Register.php:231
+#: ../../Zotlabs/Module/New_channel.php:128
+msgid "Name or caption"
+msgstr "Naam"
-#: ../../Zotlabs/Module/Connedit.php:698
-msgid "none"
-msgstr "geen"
+#: ../../Zotlabs/Module/Register.php:231
+#: ../../Zotlabs/Module/New_channel.php:128
+msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\""
+msgstr "Voorbeelden: \"Jan Pietersen\", \"Willems weblog\", \"Computerforum\""
-#: ../../Zotlabs/Module/Connedit.php:702 ../../include/widgets.php:614
-msgid "Connection Default Permissions"
-msgstr "Standaard permissies voor connecties"
+#: ../../Zotlabs/Module/Register.php:233
+#: ../../Zotlabs/Module/New_channel.php:130
+msgid "Choose a short nickname"
+msgstr "Korte bijnaam"
-#: ../../Zotlabs/Module/Connedit.php:702 ../../include/items.php:3926
+#: ../../Zotlabs/Module/Register.php:233
+#: ../../Zotlabs/Module/New_channel.php:130
#, php-format
-msgid "Connection: %s"
-msgstr "Connectie: %s"
-
-#: ../../Zotlabs/Module/Connedit.php:703
-msgid "Apply these permissions automatically"
-msgstr "Deze permissies automatisch toepassen"
-
-#: ../../Zotlabs/Module/Connedit.php:703
-msgid "Connection requests will be approved without your interaction"
-msgstr "Connectieverzoeken zullen automatisch worden geaccepteerd"
-
-#: ../../Zotlabs/Module/Connedit.php:705
-msgid "This connection's primary address is"
-msgstr "Het primaire kanaaladres van deze connectie is"
-
-#: ../../Zotlabs/Module/Connedit.php:706
-msgid "Available locations:"
-msgstr "Beschikbare locaties:"
-
-#: ../../Zotlabs/Module/Connedit.php:710
msgid ""
-"The permissions indicated on this page will be applied to all new "
-"connections."
-msgstr "Permissies die op deze pagina staan vermeld worden op alle nieuwe connecties toegepast."
-
-#: ../../Zotlabs/Module/Connedit.php:711
-msgid "Connection Tools"
-msgstr "Hulpmiddelen"
-
-#: ../../Zotlabs/Module/Connedit.php:713
-msgid "Slide to adjust your degree of friendship"
-msgstr "Schuif om te bepalen hoe goed je iemand kent en/of mag"
-
-#: ../../Zotlabs/Module/Connedit.php:714 ../../Zotlabs/Module/Rate.php:159
-#: ../../include/js_strings.php:20
-msgid "Rating"
-msgstr "Beoordeling"
-
-#: ../../Zotlabs/Module/Connedit.php:715
-msgid "Slide to adjust your rating"
-msgstr "Gebruik de schuif om je beoordeling te geven"
+"Your nickname will be used to create an easy to remember channel address "
+"e.g. nickname%s"
+msgstr "Deze bijnaam wordt gebruikt om een makkelijk te onthouden kanaaladres van jouw kanaal aan te maken, die je dan met anderen kunt delen. Bijvoorbeeld: bijnaam%s"
-#: ../../Zotlabs/Module/Connedit.php:716 ../../Zotlabs/Module/Connedit.php:721
-msgid "Optionally explain your rating"
-msgstr "Verklaar jouw beoordeling (niet verplicht)"
+#: ../../Zotlabs/Module/Register.php:235
+#: ../../Zotlabs/Module/New_channel.php:132
+msgid "Channel role and privacy"
+msgstr "Kanaaltype en privacy"
-#: ../../Zotlabs/Module/Connedit.php:718
-msgid "Custom Filter"
-msgstr "Berichtenfilter"
+#: ../../Zotlabs/Module/Register.php:235
+#: ../../Zotlabs/Module/New_channel.php:132
+msgid "Select a channel role with your privacy requirements."
+msgstr "Kies een kanaaltype met het door jou gewenste privacyniveau."
-#: ../../Zotlabs/Module/Connedit.php:719
-msgid "Only import posts with this text"
-msgstr "Importeer alleen berichten met deze tekst"
+#: ../../Zotlabs/Module/Register.php:235
+#: ../../Zotlabs/Module/New_channel.php:132
+msgid "Read more about roles"
+msgstr "Lees meer over kanaaltypes"
-#: ../../Zotlabs/Module/Connedit.php:719 ../../Zotlabs/Module/Connedit.php:720
-msgid ""
-"words one per line or #tags or /patterns/ or lang=xx, leave blank to import "
-"all posts"
-msgstr "woorden (één per regel), #tags, /regex/ of talen (lang=iso639-1) - laat leeg om alle berichten te importeren"
+#: ../../Zotlabs/Module/Register.php:236
+msgid "no"
+msgstr "Nee"
-#: ../../Zotlabs/Module/Connedit.php:720
-msgid "Do not import posts with this text"
-msgstr "Importeer geen berichten met deze tekst"
+#: ../../Zotlabs/Module/Register.php:236
+msgid "yes"
+msgstr "Ja"
-#: ../../Zotlabs/Module/Connedit.php:722
-msgid "This information is public!"
-msgstr "Deze informatie is openbaar!"
+#: ../../Zotlabs/Module/Register.php:248 ../../Zotlabs/Module/Admin.php:503
+msgid "Registration"
+msgstr "Registratie"
-#: ../../Zotlabs/Module/Connedit.php:727
-msgid "Connection Pending Approval"
-msgstr "Connectie moet nog geaccepteerd worden"
+#: ../../Zotlabs/Module/Register.php:253
+msgid "Membership on this site is by invitation only."
+msgstr "Registreren op deze $Projectname-hub kan alleen op uitnodiging."
-#: ../../Zotlabs/Module/Connedit.php:730
-msgid "inherited"
-msgstr "geërfd"
+#: ../../Zotlabs/Module/Register.php:265 ../../include/nav.php:151
+#: ../../boot.php:1720
+msgid "Register"
+msgstr "Registreren"
-#: ../../Zotlabs/Module/Connedit.php:732
-#, php-format
+#: ../../Zotlabs/Module/Register.php:266
msgid ""
-"Please choose the profile you would like to display to %s when viewing your "
-"profile securely."
-msgstr "Kies het profiel dat je aan %s wil tonen wanneer hij/zij ingelogd jouw profiel wil bekijken."
-
-#: ../../Zotlabs/Module/Connedit.php:734
-msgid "Their Settings"
-msgstr "Hun instellingen"
-
-#: ../../Zotlabs/Module/Connedit.php:735
-msgid "My Settings"
-msgstr "Mijn instellingen"
+"This site may require email verification after submitting this form. If you "
+"are returned to a login page, please check your email for instructions."
+msgstr "Mogelijk moet op deze hub eerst jouw e-mail geverifieerd worden. Wanneer je na het indienen van dit formulier op de inlogpagina terecht komt, dan dien je jouw e-mail te controleren voor instructies. Controleer eventueel ook jouw spamfolder."
-#: ../../Zotlabs/Module/Connedit.php:737
-msgid "Individual Permissions"
-msgstr "Individuele permissies"
-
-#: ../../Zotlabs/Module/Connedit.php:738
-msgid ""
-"Some permissions may be inherited from your channel's <a "
-"href=\"settings\"><strong>privacy settings</strong></a>, which have higher "
-"priority than individual settings. You can <strong>not</strong> change those"
-" settings here."
-msgstr "Sommige permissies worden mogelijk overgeërfd van de <a href=\"settings\">privacy-instellingen</a> van jouw kanaal, die een hogere prioriteit hebben dan deze individuele instellingen. Je kan je deze overgeërfde permissies hier <strong>niet</strong> veranderen."
+#: ../../Zotlabs/Module/Bookmarks.php:53
+msgid "Bookmark added"
+msgstr "Bladwijzer toegevoegd"
-#: ../../Zotlabs/Module/Connedit.php:739
-msgid ""
-"Some permissions may be inherited from your channel's <a "
-"href=\"settings\"><strong>privacy settings</strong></a>, which have higher "
-"priority than individual settings. You can change those settings here but "
-"they wont have any impact unless the inherited setting changes."
-msgstr "Sommige permissies worden mogelijk overgeërfd van de <a href=\"settings\">privacy-instellingen</a> van jouw kanaal, die een hogere prioriteit hebben dan deze individuele permissies. Je kan de permissies hier veranderen, maar die hebben geen effect, tenzij de overgeërfde permissies worden veranderd. "
+#: ../../Zotlabs/Module/Bookmarks.php:75
+msgid "My Bookmarks"
+msgstr "Mijn bladwijzers"
-#: ../../Zotlabs/Module/Connedit.php:740
-msgid "Last update:"
-msgstr "Laatste wijziging:"
+#: ../../Zotlabs/Module/Bookmarks.php:86
+msgid "My Connections Bookmarks"
+msgstr "Bladwijzers van mijn connecties"
-#: ../../Zotlabs/Module/Directory.php:63 ../../Zotlabs/Module/Display.php:17
-#: ../../Zotlabs/Module/Photos.php:522 ../../Zotlabs/Module/Ratings.php:86
+#: ../../Zotlabs/Module/Display.php:17 ../../Zotlabs/Module/Directory.php:63
+#: ../../Zotlabs/Module/Photos.php:520 ../../Zotlabs/Module/Ratings.php:83
#: ../../Zotlabs/Module/Search.php:17
-#: ../../Zotlabs/Module/Viewconnections.php:20
+#: ../../Zotlabs/Module/Viewconnections.php:23
msgid "Public access denied."
msgstr "Openbare toegang geweigerd."
-#: ../../Zotlabs/Module/Directory.php:243
-#, php-format
-msgid "%d rating"
-msgid_plural "%d ratings"
-msgstr[0] "%d beoordeling"
-msgstr[1] "%d beoordelingen"
-
-#: ../../Zotlabs/Module/Directory.php:254
-msgid "Gender: "
-msgstr "Geslacht:"
-
-#: ../../Zotlabs/Module/Directory.php:256
-msgid "Status: "
-msgstr "Status: "
-
-#: ../../Zotlabs/Module/Directory.php:258
-msgid "Homepage: "
-msgstr "Homepage: "
-
-#: ../../Zotlabs/Module/Directory.php:306 ../../include/channel.php:1183
-msgid "Age:"
-msgstr "Leeftijd:"
-
-#: ../../Zotlabs/Module/Directory.php:311 ../../include/event.php:52
-#: ../../include/event.php:84 ../../include/channel.php:1027
-#: ../../include/bb2diaspora.php:507
-msgid "Location:"
-msgstr "Plaats:"
-
-#: ../../Zotlabs/Module/Directory.php:317
-msgid "Description:"
-msgstr "Omschrijving:"
-
-#: ../../Zotlabs/Module/Directory.php:322 ../../include/channel.php:1199
-msgid "Hometown:"
-msgstr "Oorspronkelijk uit:"
-
-#: ../../Zotlabs/Module/Directory.php:324 ../../include/channel.php:1207
-msgid "About:"
-msgstr "Over:"
-
-#: ../../Zotlabs/Module/Directory.php:325 ../../Zotlabs/Module/Match.php:68
-#: ../../Zotlabs/Module/Suggest.php:56 ../../include/widgets.php:147
-#: ../../include/widgets.php:184 ../../include/connections.php:78
-#: ../../include/conversation.php:956 ../../include/channel.php:1012
-msgid "Connect"
-msgstr "Verbinden"
-
-#: ../../Zotlabs/Module/Directory.php:326
-msgid "Public Forum:"
-msgstr "Openbaar forum:"
-
-#: ../../Zotlabs/Module/Directory.php:329
-msgid "Keywords: "
-msgstr "Trefwoorden: "
-
-#: ../../Zotlabs/Module/Directory.php:332
-msgid "Don't suggest"
-msgstr "Niet voorstellen"
-
-#: ../../Zotlabs/Module/Directory.php:334
-msgid "Common connections:"
-msgstr "Gemeenschappelijke connecties:"
-
-#: ../../Zotlabs/Module/Directory.php:383
-msgid "Global Directory"
-msgstr "Volledige kanalengids"
-
-#: ../../Zotlabs/Module/Directory.php:383
-msgid "Local Directory"
-msgstr "Lokale kanalengids"
-
-#: ../../Zotlabs/Module/Directory.php:388
-#: ../../Zotlabs/Module/Directory.php:393
-#: ../../Zotlabs/Module/Connections.php:309
-#: ../../include/contact_widgets.php:23
-msgid "Find"
-msgstr "Vinden"
-
-#: ../../Zotlabs/Module/Directory.php:389
-msgid "Finding:"
-msgstr "Gezocht naar:"
-
-#: ../../Zotlabs/Module/Directory.php:392 ../../Zotlabs/Module/Suggest.php:64
-#: ../../include/contact_widgets.php:24
-msgid "Channel Suggestions"
-msgstr "Voorgestelde kanalen"
+#: ../../Zotlabs/Module/Display.php:40 ../../Zotlabs/Module/Filestorage.php:32
+#: ../../Zotlabs/Module/Admin.php:164 ../../Zotlabs/Module/Admin.php:1268
+#: ../../Zotlabs/Module/Admin.php:1575 ../../Zotlabs/Module/Thing.php:89
+#: ../../Zotlabs/Module/Viewsrc.php:24 ../../include/items.php:3398
+msgid "Item not found."
+msgstr "Item niet gevonden."
-#: ../../Zotlabs/Module/Directory.php:394
-msgid "next page"
-msgstr "volgende pagina"
+#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:222
+#: ../../include/conversation.php:1665 ../../include/nav.php:94
+msgid "Photos"
+msgstr "Foto's"
-#: ../../Zotlabs/Module/Directory.php:394
-msgid "previous page"
-msgstr "vorige pagina"
+#: ../../Zotlabs/Module/Fbrowser.php:66 ../../Zotlabs/Module/Fbrowser.php:88
+#: ../../Zotlabs/Module/Settings.php:683 ../../Zotlabs/Module/Settings.php:709
+#: ../../Zotlabs/Module/Admin.php:1420 ../../Zotlabs/Module/Wiki.php:171
+#: ../../Zotlabs/Module/Wiki.php:211 ../../Zotlabs/Module/Tagrm.php:15
+#: ../../Zotlabs/Module/Tagrm.php:138 ../../include/conversation.php:1243
+#: ../../include/conversation.php:1292
+msgid "Cancel"
+msgstr "Annuleren"
-#: ../../Zotlabs/Module/Directory.php:395
-msgid "Sort options"
-msgstr "Sorteeropties"
+#: ../../Zotlabs/Module/Page.php:40 ../../Zotlabs/Module/Block.php:31
+msgid "Invalid item."
+msgstr "Ongeldig item."
-#: ../../Zotlabs/Module/Directory.php:396
-msgid "Alphabetic"
-msgstr "Alfabetisch"
+#: ../../Zotlabs/Module/Page.php:56 ../../Zotlabs/Module/Block.php:43
+#: ../../Zotlabs/Module/Cal.php:62 ../../Zotlabs/Module/Wall_upload.php:33
+msgid "Channel not found."
+msgstr "Kanaal niet gevonden."
-#: ../../Zotlabs/Module/Directory.php:397
-msgid "Reverse Alphabetic"
-msgstr "Omgekeerd alfabetisch"
+#: ../../Zotlabs/Module/Page.php:131
+msgid ""
+"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod "
+"tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,"
+" quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo "
+"consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse "
+"cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat "
+"non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+msgstr "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
-#: ../../Zotlabs/Module/Directory.php:398
-msgid "Newest to Oldest"
-msgstr "Nieuw naar oud"
+#: ../../Zotlabs/Module/Filer.php:52
+msgid "Save to Folder:"
+msgstr "Bewaar in map: "
-#: ../../Zotlabs/Module/Directory.php:399
-msgid "Oldest to Newest"
-msgstr "Oud naar nieuw"
+#: ../../Zotlabs/Module/Filer.php:52
+msgid "- select -"
+msgstr "- kies map -"
-#: ../../Zotlabs/Module/Directory.php:416
-msgid "No entries (some entries may be hidden)."
-msgstr "Niets gevonden (sommige kanalen kunnen verborgen zijn)."
+#: ../../Zotlabs/Module/Filer.php:53 ../../Zotlabs/Module/Admin.php:2047
+#: ../../Zotlabs/Module/Admin.php:2067 ../../Zotlabs/Module/Rbmark.php:32
+#: ../../Zotlabs/Module/Rbmark.php:104 ../../include/text.php:926
+#: ../../include/text.php:938 ../../include/widgets.php:201
+msgid "Save"
+msgstr "Opslaan"
-#: ../../Zotlabs/Module/Display.php:40 ../../Zotlabs/Module/Filestorage.php:33
-#: ../../Zotlabs/Module/Admin.php:164 ../../Zotlabs/Module/Admin.php:1255
-#: ../../Zotlabs/Module/Admin.php:1561 ../../Zotlabs/Module/Thing.php:89
-#: ../../Zotlabs/Module/Viewsrc.php:24 ../../include/items.php:3359
-msgid "Item not found."
-msgstr "Item niet gevonden."
+#: ../../Zotlabs/Module/Network.php:94
+msgid "No such group"
+msgstr "Collectie niet gevonden"
-#: ../../Zotlabs/Module/Editblock.php:79 ../../Zotlabs/Module/Editblock.php:95
-#: ../../Zotlabs/Module/Editpost.php:24 ../../Zotlabs/Module/Editlayout.php:79
-#: ../../Zotlabs/Module/Editwebpage.php:81
-msgid "Item not found"
-msgstr "Item niet gevonden"
+#: ../../Zotlabs/Module/Network.php:134
+msgid "No such channel"
+msgstr "Niet zo'n kanaal"
-#: ../../Zotlabs/Module/Editblock.php:124 ../../include/conversation.php:1228
-msgid "Title (optional)"
-msgstr "Titel (optioneel)"
+#: ../../Zotlabs/Module/Network.php:139
+msgid "forum"
+msgstr "forum"
-#: ../../Zotlabs/Module/Editblock.php:133
-msgid "Edit Block"
-msgstr "Blok bewerken"
+#: ../../Zotlabs/Module/Network.php:151
+msgid "Search Results For:"
+msgstr "Zoekresultaten voor:"
-#: ../../Zotlabs/Module/Common.php:14
-msgid "No channel."
-msgstr "Geen kanaal."
+#: ../../Zotlabs/Module/Network.php:217
+msgid "Privacy group is empty"
+msgstr "Privacygroep is leeg"
-#: ../../Zotlabs/Module/Common.php:43
-msgid "Common connections"
-msgstr "Veel voorkomende connecties"
+#: ../../Zotlabs/Module/Network.php:226
+msgid "Privacy group: "
+msgstr "Privacygroep: "
-#: ../../Zotlabs/Module/Common.php:48
-msgid "No connections in common."
-msgstr "Geen gemeenschappelijke connecties."
+#: ../../Zotlabs/Module/Network.php:252
+msgid "Invalid connection."
+msgstr "Ongeldige connectie."
#: ../../Zotlabs/Module/Connections.php:56
#: ../../Zotlabs/Module/Connections.php:161
@@ -1076,10 +916,16 @@ msgstr "Gearchiveerd"
#: ../../Zotlabs/Module/Connections.php:76
#: ../../Zotlabs/Module/Connections.php:86 ../../Zotlabs/Module/Menu.php:116
-#: ../../include/conversation.php:1535
+#: ../../include/conversation.php:1568
msgid "New"
msgstr "Nieuw"
+#: ../../Zotlabs/Module/Connections.php:92
+#: ../../Zotlabs/Module/Connections.php:107
+#: ../../Zotlabs/Module/Connedit.php:629 ../../include/widgets.php:497
+msgid "All"
+msgstr "Alles"
+
#: ../../Zotlabs/Module/Connections.php:138
msgid "New Connections"
msgstr "Nieuwe connecties"
@@ -1138,7 +984,7 @@ msgstr "Kanaaladres"
msgid "Network"
msgstr "Netwerk"
-#: ../../Zotlabs/Module/Connections.php:270 ../../Zotlabs/Module/Admin.php:710
+#: ../../Zotlabs/Module/Connections.php:270 ../../Zotlabs/Module/Admin.php:723
msgid "Status"
msgstr "Status"
@@ -1151,7 +997,7 @@ msgid "Approve connection"
msgstr "Connectie accepteren"
#: ../../Zotlabs/Module/Connections.php:275
-#: ../../Zotlabs/Module/Admin.php:1037
+#: ../../Zotlabs/Module/Admin.php:1050
msgid "Approve"
msgstr "Goedkeuren"
@@ -1159,19 +1005,25 @@ msgstr "Goedkeuren"
msgid "Ignore connection"
msgstr "Connectie negeren"
+#: ../../Zotlabs/Module/Connections.php:277
+#: ../../Zotlabs/Module/Notifications.php:55
+#: ../../Zotlabs/Module/Connedit.php:583
+msgid "Ignore"
+msgstr "Negeren"
+
#: ../../Zotlabs/Module/Connections.php:278
msgid "Recent activity"
msgstr "Recente activiteit"
-#: ../../Zotlabs/Module/Connections.php:302 ../../Zotlabs/Lib/Apps.php:208
-#: ../../include/text.php:875 ../../include/nav.php:186
+#: ../../Zotlabs/Module/Connections.php:302 ../../Zotlabs/Lib/Apps.php:209
+#: ../../include/text.php:855 ../../include/nav.php:190
msgid "Connections"
msgstr "Connecties"
#: ../../Zotlabs/Module/Connections.php:306 ../../Zotlabs/Module/Search.php:44
-#: ../../Zotlabs/Lib/Apps.php:228 ../../include/text.php:945
-#: ../../include/text.php:957 ../../include/nav.php:165
-#: ../../include/acl_selectors.php:276
+#: ../../Zotlabs/Lib/Apps.php:230 ../../include/text.php:925
+#: ../../include/text.php:937 ../../include/acl_selectors.php:174
+#: ../../include/nav.php:169
msgid "Search"
msgstr "Zoeken"
@@ -1183,8 +1035,14 @@ msgstr "Doorzoek jouw connecties"
msgid "Connections search"
msgstr "Connecties zoeken"
+#: ../../Zotlabs/Module/Connections.php:309
+#: ../../Zotlabs/Module/Directory.php:388
+#: ../../Zotlabs/Module/Directory.php:393 ../../include/contact_widgets.php:23
+msgid "Find"
+msgstr "Vinden"
+
#: ../../Zotlabs/Module/Cover_photo.php:58
-#: ../../Zotlabs/Module/Profile_photo.php:79
+#: ../../Zotlabs/Module/Profile_photo.php:61
msgid "Image uploaded but image cropping failed."
msgstr "Afbeelding geüpload, maar afbeelding kon niet worden bijgesneden. "
@@ -1194,66 +1052,66 @@ msgid "Cover Photos"
msgstr "Omslagfoto's"
#: ../../Zotlabs/Module/Cover_photo.php:154
-#: ../../Zotlabs/Module/Profile_photo.php:133
+#: ../../Zotlabs/Module/Profile_photo.php:135
msgid "Image resize failed."
msgstr "Afbeelding kon niet van grootte veranderd worden."
#: ../../Zotlabs/Module/Cover_photo.php:168
-#: ../../Zotlabs/Module/Profile_photo.php:192 ../../include/photos.php:144
+#: ../../Zotlabs/Module/Profile_photo.php:196 ../../include/photos.php:148
msgid "Unable to process image"
msgstr "Afbeelding kan niet verwerkt worden"
#: ../../Zotlabs/Module/Cover_photo.php:192
-#: ../../Zotlabs/Module/Profile_photo.php:217
+#: ../../Zotlabs/Module/Profile_photo.php:223
msgid "Image upload failed."
msgstr "Uploaden afbeelding mislukt"
#: ../../Zotlabs/Module/Cover_photo.php:210
-#: ../../Zotlabs/Module/Profile_photo.php:236
+#: ../../Zotlabs/Module/Profile_photo.php:242
msgid "Unable to process image."
msgstr "Niet in staat om afbeelding te verwerken."
-#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4270
+#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4312
msgid "female"
msgstr "vrouw"
-#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4271
+#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4313
#, php-format
msgid "%1$s updated her %2$s"
msgstr "%1$s heeft haar %2$s bijgewerkt"
-#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4272
+#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4314
msgid "male"
msgstr "man"
-#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4273
+#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4315
#, php-format
msgid "%1$s updated his %2$s"
msgstr "%1$s heeft zijn %2$s bijgewerkt"
-#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4275
+#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4317
#, php-format
msgid "%1$s updated their %2$s"
msgstr "De %2$s van %1$s is bijgewerkt"
-#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/channel.php:1661
+#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/channel.php:1720
msgid "cover photo"
msgstr "omslagfoto"
#: ../../Zotlabs/Module/Cover_photo.php:303
#: ../../Zotlabs/Module/Cover_photo.php:318
-#: ../../Zotlabs/Module/Profile_photo.php:283
-#: ../../Zotlabs/Module/Profile_photo.php:324
+#: ../../Zotlabs/Module/Profile_photo.php:300
+#: ../../Zotlabs/Module/Profile_photo.php:341
msgid "Photo not available."
msgstr "Foto niet beschikbaar."
#: ../../Zotlabs/Module/Cover_photo.php:354
-#: ../../Zotlabs/Module/Profile_photo.php:365
+#: ../../Zotlabs/Module/Profile_photo.php:387
msgid "Upload File:"
msgstr "Bestand uploaden:"
#: ../../Zotlabs/Module/Cover_photo.php:355
-#: ../../Zotlabs/Module/Profile_photo.php:366
+#: ../../Zotlabs/Module/Profile_photo.php:388
msgid "Select a profile:"
msgstr "Kies een profiel:"
@@ -1262,2323 +1120,2480 @@ msgid "Upload Cover Photo"
msgstr "Omslagfoto uploaden"
#: ../../Zotlabs/Module/Cover_photo.php:361
-#: ../../Zotlabs/Module/Profile_photo.php:374
-#: ../../Zotlabs/Module/Settings.php:985
+#: ../../Zotlabs/Module/Settings.php:1180
+#: ../../Zotlabs/Module/Profile_photo.php:396
msgid "or"
msgstr "of"
#: ../../Zotlabs/Module/Cover_photo.php:361
-#: ../../Zotlabs/Module/Profile_photo.php:374
+#: ../../Zotlabs/Module/Profile_photo.php:396
msgid "skip this step"
msgstr "sla deze stap over"
#: ../../Zotlabs/Module/Cover_photo.php:361
-#: ../../Zotlabs/Module/Profile_photo.php:374
+#: ../../Zotlabs/Module/Profile_photo.php:396
msgid "select a photo from your photo albums"
msgstr "Kies een foto uit jouw fotoalbums"
#: ../../Zotlabs/Module/Cover_photo.php:377
-#: ../../Zotlabs/Module/Profile_photo.php:390
+#: ../../Zotlabs/Module/Profile_photo.php:415
msgid "Crop Image"
msgstr "Afbeelding bijsnijden"
#: ../../Zotlabs/Module/Cover_photo.php:378
-#: ../../Zotlabs/Module/Profile_photo.php:391
+#: ../../Zotlabs/Module/Profile_photo.php:416
msgid "Please adjust the image cropping for optimum viewing."
msgstr "Snij de afbeelding zo uit dat deze optimaal wordt weergegeven."
#: ../../Zotlabs/Module/Cover_photo.php:380
-#: ../../Zotlabs/Module/Profile_photo.php:393
+#: ../../Zotlabs/Module/Profile_photo.php:418
msgid "Done Editing"
msgstr "Klaar met bewerken"
-#: ../../Zotlabs/Module/Editpost.php:35
-msgid "Item is not editable"
-msgstr "Item is niet te bewerken"
+#: ../../Zotlabs/Module/Setup.php:183
+msgid "$Projectname Server - Setup"
+msgstr "$Projectname Hub - Setup"
-#: ../../Zotlabs/Module/Editpost.php:106 ../../Zotlabs/Module/Rpost.php:135
-msgid "Edit post"
-msgstr "Bericht bewerken"
+#: ../../Zotlabs/Module/Setup.php:187
+msgid "Could not connect to database."
+msgstr "Could not connect to database."
-#: ../../Zotlabs/Module/Events.php:26
-msgid "Calendar entries imported."
-msgstr "Agenda-items geïmporteerd."
+#: ../../Zotlabs/Module/Setup.php:191
+msgid ""
+"Could not connect to specified site URL. Possible SSL certificate or DNS "
+"issue."
+msgstr "Could not connect to specified hub URL. Possible SSL certificate or DNS issue."
-#: ../../Zotlabs/Module/Events.php:28
-msgid "No calendar entries found."
-msgstr "Geen agenda-items gevonden."
+#: ../../Zotlabs/Module/Setup.php:198
+msgid "Could not create table."
+msgstr "Could not create table."
-#: ../../Zotlabs/Module/Events.php:105
-msgid "Event can not end before it has started."
-msgstr "Gebeurtenis kan niet eindigen voordat het is begonnen"
+#: ../../Zotlabs/Module/Setup.php:203
+msgid "Your site database has been installed."
+msgstr "Your hub database has been installed."
-#: ../../Zotlabs/Module/Events.php:107 ../../Zotlabs/Module/Events.php:116
-#: ../../Zotlabs/Module/Events.php:136
-msgid "Unable to generate preview."
-msgstr "Niet in staat om voorvertoning te genereren"
+#: ../../Zotlabs/Module/Setup.php:207
+msgid ""
+"You may need to import the file \"install/schema_xxx.sql\" manually using a "
+"database client."
+msgstr "You may need to import the file \"install/schema_xxx.sql\" manually using a database client."
-#: ../../Zotlabs/Module/Events.php:114
-msgid "Event title and start time are required."
-msgstr "Titel en begintijd van gebeurtenis zijn vereist."
+#: ../../Zotlabs/Module/Setup.php:208 ../../Zotlabs/Module/Setup.php:270
+#: ../../Zotlabs/Module/Setup.php:733
+msgid "Please see the file \"install/INSTALL.txt\"."
+msgstr "Please see the file \"install/INSTALL.txt\"."
-#: ../../Zotlabs/Module/Events.php:134 ../../Zotlabs/Module/Events.php:259
-msgid "Event not found."
-msgstr "Gebeurtenis niet gevonden"
+#: ../../Zotlabs/Module/Setup.php:267
+msgid "System check"
+msgstr "System check"
-#: ../../Zotlabs/Module/Events.php:254 ../../Zotlabs/Module/Like.php:373
-#: ../../Zotlabs/Module/Tagger.php:51 ../../include/event.php:949
-#: ../../include/text.php:1943 ../../include/conversation.php:123
-msgid "event"
-msgstr "gebeurtenis"
+#: ../../Zotlabs/Module/Setup.php:271 ../../Zotlabs/Module/Photos.php:960
+#: ../../Zotlabs/Module/Events.php:676 ../../Zotlabs/Module/Events.php:685
+#: ../../Zotlabs/Module/Cal.php:333 ../../Zotlabs/Module/Cal.php:340
+msgid "Next"
+msgstr "Volgende"
-#: ../../Zotlabs/Module/Events.php:449
-msgid "Edit event title"
-msgstr "Titel bewerken"
+#: ../../Zotlabs/Module/Setup.php:272
+msgid "Check again"
+msgstr "Check again"
-#: ../../Zotlabs/Module/Events.php:449
-msgid "Event title"
-msgstr "Titel"
+#: ../../Zotlabs/Module/Setup.php:294
+msgid "Database connection"
+msgstr "Database connection"
-#: ../../Zotlabs/Module/Events.php:449 ../../Zotlabs/Module/Events.php:454
-#: ../../Zotlabs/Module/Profiles.php:709 ../../Zotlabs/Module/Profiles.php:713
-#: ../../Zotlabs/Module/Appman.php:115 ../../Zotlabs/Module/Appman.php:116
-#: ../../include/datetime.php:245
-msgid "Required"
-msgstr "Vereist"
+#: ../../Zotlabs/Module/Setup.php:295
+msgid ""
+"In order to install $Projectname we need to know how to connect to your "
+"database."
+msgstr "In order to install $Projectname we need to know how to connect to your database."
-#: ../../Zotlabs/Module/Events.php:451
-msgid "Categories (comma-separated list)"
-msgstr "Categorieën (door komma's gescheiden lijst)"
+#: ../../Zotlabs/Module/Setup.php:296
+msgid ""
+"Please contact your hosting provider or site administrator if you have "
+"questions about these settings."
+msgstr "Please contact your hosting provider or server administrator if you have questions about these settings."
-#: ../../Zotlabs/Module/Events.php:452
-msgid "Edit Category"
-msgstr "Categorie"
+#: ../../Zotlabs/Module/Setup.php:297
+msgid ""
+"The database you specify below should already exist. If it does not, please "
+"create it before continuing."
+msgstr "The database you specify below should already exist. If it does not, please create it before continuing."
-#: ../../Zotlabs/Module/Events.php:452
-msgid "Category"
-msgstr "Categorie"
+#: ../../Zotlabs/Module/Setup.php:301
+msgid "Database Server Name"
+msgstr "Database Server Name"
-#: ../../Zotlabs/Module/Events.php:455
-msgid "Edit start date and time"
-msgstr "Begindatum en -tijd bewerken"
+#: ../../Zotlabs/Module/Setup.php:301
+msgid "Default is 127.0.0.1"
+msgstr "Default is 127.0.0.1"
-#: ../../Zotlabs/Module/Events.php:455
-msgid "Start date and time"
-msgstr "Begindatum en -tijd"
+#: ../../Zotlabs/Module/Setup.php:302
+msgid "Database Port"
+msgstr "Database Port"
-#: ../../Zotlabs/Module/Events.php:456 ../../Zotlabs/Module/Events.php:459
-msgid "Finish date and time are not known or not relevant"
-msgstr "Einddatum en -tijd zijn niet bekend of niet van toepassing"
+#: ../../Zotlabs/Module/Setup.php:302
+msgid "Communication port number - use 0 for default"
+msgstr "Communication port number - use 0 for default"
-#: ../../Zotlabs/Module/Events.php:458
-msgid "Edit finish date and time"
-msgstr "Einddatum en -tijd bewerken"
+#: ../../Zotlabs/Module/Setup.php:303
+msgid "Database Login Name"
+msgstr "Database Login Name"
-#: ../../Zotlabs/Module/Events.php:458
-msgid "Finish date and time"
-msgstr "Einddatum en -tijd"
+#: ../../Zotlabs/Module/Setup.php:304
+msgid "Database Login Password"
+msgstr "Database Login Password"
-#: ../../Zotlabs/Module/Events.php:460 ../../Zotlabs/Module/Events.php:461
-msgid "Adjust for viewer timezone"
-msgstr "Aanpassen aan de tijdzone van wie deze gebeurtenis bekijkt"
+#: ../../Zotlabs/Module/Setup.php:305
+msgid "Database Name"
+msgstr "Database Name"
-#: ../../Zotlabs/Module/Events.php:460
+#: ../../Zotlabs/Module/Setup.php:306
+msgid "Database Type"
+msgstr "Database Type"
+
+#: ../../Zotlabs/Module/Setup.php:308 ../../Zotlabs/Module/Setup.php:354
+msgid "Site administrator email address"
+msgstr "Hub administrator email address"
+
+#: ../../Zotlabs/Module/Setup.php:308 ../../Zotlabs/Module/Setup.php:354
msgid ""
-"Important for events that happen in a particular place. Not practical for "
-"global holidays."
-msgstr "Belangrijk voor gebeurtenissen die op een bepaalde locatie plaatsvinden. Niet praktisch voor wereldwijde feestdagen."
+"Your account email address must match this in order to use the web admin "
+"panel."
+msgstr "Your account email address must match this in order to use the web admin panel."
-#: ../../Zotlabs/Module/Events.php:462
-msgid "Edit Description"
-msgstr "Omschrijving bewerken"
+#: ../../Zotlabs/Module/Setup.php:309 ../../Zotlabs/Module/Setup.php:356
+msgid "Website URL"
+msgstr "Hub URL"
-#: ../../Zotlabs/Module/Events.php:462 ../../Zotlabs/Module/Appman.php:117
-#: ../../Zotlabs/Module/Rbmark.php:101
-msgid "Description"
-msgstr "Omschrijving"
+#: ../../Zotlabs/Module/Setup.php:309 ../../Zotlabs/Module/Setup.php:356
+msgid "Please use SSL (https) URL if available."
+msgstr "Please use SSL (https) URL if available."
-#: ../../Zotlabs/Module/Events.php:464
-msgid "Edit Location"
-msgstr "Locatie bewerken"
+#: ../../Zotlabs/Module/Setup.php:310 ../../Zotlabs/Module/Setup.php:360
+msgid "Please select a default timezone for your website"
+msgstr "Please select a default timezone for your hub"
-#: ../../Zotlabs/Module/Events.php:464 ../../Zotlabs/Module/Locs.php:117
-#: ../../Zotlabs/Module/Profiles.php:477 ../../Zotlabs/Module/Profiles.php:698
-#: ../../Zotlabs/Module/Pubsites.php:41 ../../include/js_strings.php:25
-msgid "Location"
-msgstr "Locatie"
+#: ../../Zotlabs/Module/Setup.php:335 ../../Zotlabs/Module/Admin.php:489
+msgid "Basic/Minimal Social Networking"
+msgstr "Basic/eenvoudig sociaal netwerk"
-#: ../../Zotlabs/Module/Events.php:467 ../../Zotlabs/Module/Events.php:469
-msgid "Share this event"
-msgstr "Deel deze gebeurtenis"
+#: ../../Zotlabs/Module/Setup.php:336 ../../Zotlabs/Module/Admin.php:490
+msgid "Standard Configuration (default)"
+msgstr "Standaard (standaard)"
-#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Photos.php:1093
-#: ../../Zotlabs/Module/Webpages.php:194 ../../Zotlabs/Lib/ThreadItem.php:719
-#: ../../include/conversation.php:1187 ../../include/page_widgets.php:40
-msgid "Preview"
-msgstr "Voorvertoning"
+#: ../../Zotlabs/Module/Setup.php:337 ../../Zotlabs/Module/Admin.php:491
+msgid "Professional"
+msgstr "Professioneel "
-#: ../../Zotlabs/Module/Events.php:471 ../../include/conversation.php:1232
-msgid "Permission settings"
-msgstr "Permissies"
+#: ../../Zotlabs/Module/Setup.php:343
+msgid "Site settings"
+msgstr "Hub settings"
-#: ../../Zotlabs/Module/Events.php:476
-msgid "Advanced Options"
-msgstr "Geavanceerde opties"
+#: ../../Zotlabs/Module/Setup.php:358 ../../Zotlabs/Module/Admin.php:512
+msgid "Server Configuration/Role"
+msgstr "Configuratietype hub"
-#: ../../Zotlabs/Module/Events.php:610
-msgid "Edit event"
-msgstr "Gebeurtenis bewerken"
+#: ../../Zotlabs/Module/Setup.php:399
+msgid "PHP version 5.5 or greater is required."
+msgstr "PHP version 5.5 or greater is required."
-#: ../../Zotlabs/Module/Events.php:612
-msgid "Delete event"
-msgstr "Gebeurtenis verwijderen"
+#: ../../Zotlabs/Module/Setup.php:400
+msgid "PHP version"
+msgstr "PHP version"
-#: ../../Zotlabs/Module/Events.php:646
-msgid "calendar"
-msgstr "agenda"
+#: ../../Zotlabs/Module/Setup.php:415
+msgid "Could not find a command line version of PHP in the web server PATH."
+msgstr "Could not find a command line version of PHP in the web server PATH."
-#: ../../Zotlabs/Module/Events.php:706
-msgid "Event removed"
-msgstr "Gebeurtenis verwijderd"
+#: ../../Zotlabs/Module/Setup.php:416
+msgid ""
+"If you don't have a command line version of PHP installed on server, you "
+"will not be able to run background polling via cron."
+msgstr "If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron."
-#: ../../Zotlabs/Module/Events.php:709
-msgid "Failed to remove event"
-msgstr "Verwijderen gebeurtenis mislukt"
+#: ../../Zotlabs/Module/Setup.php:420
+msgid "PHP executable path"
+msgstr "PHP executable path"
-#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:220
-#: ../../include/nav.php:92 ../../include/conversation.php:1632
-msgid "Photos"
-msgstr "Foto's"
+#: ../../Zotlabs/Module/Setup.php:420
+msgid ""
+"Enter full path to php executable. You can leave this blank to continue the "
+"installation."
+msgstr "Enter full path to php executable. You can leave this blank to continue the installation."
-#: ../../Zotlabs/Module/Fbrowser.php:66 ../../Zotlabs/Module/Fbrowser.php:88
-#: ../../Zotlabs/Module/Admin.php:1406 ../../Zotlabs/Module/Settings.php:591
-#: ../../Zotlabs/Module/Settings.php:617 ../../Zotlabs/Module/Tagrm.php:15
-#: ../../Zotlabs/Module/Tagrm.php:138 ../../include/conversation.php:1259
-msgid "Cancel"
-msgstr "Annuleren"
+#: ../../Zotlabs/Module/Setup.php:425
+msgid "Command line PHP"
+msgstr "Command line PHP"
-#: ../../Zotlabs/Module/Dirsearch.php:25 ../../Zotlabs/Module/Regdir.php:49
-msgid "This site is not a directory server"
-msgstr "Deze hub is geen kanalengidshub (directoryserver)"
+#: ../../Zotlabs/Module/Setup.php:434
+msgid ""
+"The command line version of PHP on your system does not have "
+"\"register_argc_argv\" enabled."
+msgstr "The command line version of PHP on your system does not have \"register_argc_argv\" enabled."
-#: ../../Zotlabs/Module/Dirsearch.php:33
-msgid "This directory server requires an access token"
-msgstr "Deze kanalengidshub (directoryserver) heeft een toegangs-token nodig"
+#: ../../Zotlabs/Module/Setup.php:435
+msgid "This is required for message delivery to work."
+msgstr "This is required for message delivery to work."
-#: ../../Zotlabs/Module/Filer.php:52
-msgid "Save to Folder:"
-msgstr "Bewaar in map: "
+#: ../../Zotlabs/Module/Setup.php:438
+msgid "PHP register_argc_argv"
+msgstr "PHP register_argc_argv"
-#: ../../Zotlabs/Module/Filer.php:52
-msgid "- select -"
-msgstr "- kies map -"
+#: ../../Zotlabs/Module/Setup.php:456
+#, php-format
+msgid ""
+"Your max allowed total upload size is set to %s. Maximum size of one file to"
+" upload is set to %s. You are allowed to upload up to %d files at once."
+msgstr "Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once."
-#: ../../Zotlabs/Module/Filer.php:53 ../../Zotlabs/Module/Admin.php:2033
-#: ../../Zotlabs/Module/Admin.php:2053 ../../Zotlabs/Module/Rbmark.php:32
-#: ../../Zotlabs/Module/Rbmark.php:104 ../../include/text.php:946
-#: ../../include/text.php:958 ../../include/widgets.php:201
-msgid "Save"
-msgstr "Opslaan"
+#: ../../Zotlabs/Module/Setup.php:461
+msgid "You can adjust these settings in the servers php.ini."
+msgstr "You can adjust these settings in the servers php.ini."
-#: ../../Zotlabs/Module/Dreport.php:27
-msgid "Invalid message"
-msgstr "Ongeldig bericht"
+#: ../../Zotlabs/Module/Setup.php:463
+msgid "PHP upload limits"
+msgstr "PHP upload limits"
-#: ../../Zotlabs/Module/Dreport.php:59
-msgid "no results"
-msgstr "geen resultaten"
+#: ../../Zotlabs/Module/Setup.php:486
+msgid ""
+"Error: the \"openssl_pkey_new\" function on this system is not able to "
+"generate encryption keys"
+msgstr "Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"
-#: ../../Zotlabs/Module/Dreport.php:64
-#, php-format
-msgid "Delivery report for %1$s"
-msgstr "Afleveringsrapport voor %1$s"
+#: ../../Zotlabs/Module/Setup.php:487
+msgid ""
+"If running under Windows, please see "
+"\"http://www.php.net/manual/en/openssl.installation.php\"."
+msgstr "If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."
-#: ../../Zotlabs/Module/Dreport.php:78
-msgid "channel sync processed"
-msgstr "kanaalsync verwerkt"
+#: ../../Zotlabs/Module/Setup.php:490
+msgid "Generate encryption keys"
+msgstr "Generate encryption keys"
-#: ../../Zotlabs/Module/Dreport.php:82
-msgid "queued"
-msgstr "in wachtrij"
+#: ../../Zotlabs/Module/Setup.php:502
+msgid "libCurl PHP module"
+msgstr "libCurl PHP module"
-#: ../../Zotlabs/Module/Dreport.php:86
-msgid "posted"
-msgstr "verstuurd"
+#: ../../Zotlabs/Module/Setup.php:503
+msgid "GD graphics PHP module"
+msgstr "GD graphics PHP module"
-#: ../../Zotlabs/Module/Dreport.php:90
-msgid "accepted for delivery"
-msgstr "geaccepteerd om afgeleverd te worden"
+#: ../../Zotlabs/Module/Setup.php:504
+msgid "OpenSSL PHP module"
+msgstr "OpenSSL PHP module"
-#: ../../Zotlabs/Module/Dreport.php:94
-msgid "updated"
-msgstr "geüpdatet"
+#: ../../Zotlabs/Module/Setup.php:505
+msgid "mysqli or postgres PHP module"
+msgstr "mysqli or postgres PHP module"
-#: ../../Zotlabs/Module/Dreport.php:97
-msgid "update ignored"
-msgstr "update genegeerd"
+#: ../../Zotlabs/Module/Setup.php:506
+msgid "mb_string PHP module"
+msgstr "mb_string PHP module"
-#: ../../Zotlabs/Module/Dreport.php:100
-msgid "permission denied"
-msgstr "toegang geweigerd"
+#: ../../Zotlabs/Module/Setup.php:507
+msgid "xml PHP module"
+msgstr "xml PHP module"
-#: ../../Zotlabs/Module/Dreport.php:104
-msgid "recipient not found"
-msgstr "ontvanger niet gevonden"
+#: ../../Zotlabs/Module/Setup.php:511 ../../Zotlabs/Module/Setup.php:513
+msgid "Apache mod_rewrite module"
+msgstr "Apache mod_rewrite module"
-#: ../../Zotlabs/Module/Dreport.php:107
-msgid "mail recalled"
-msgstr "Privébericht ingetrokken"
+#: ../../Zotlabs/Module/Setup.php:511
+msgid ""
+"Error: Apache webserver mod-rewrite module is required but not installed."
+msgstr "Error: Apache webserver mod-rewrite module is required but not installed."
-#: ../../Zotlabs/Module/Dreport.php:110
-msgid "duplicate mail received"
-msgstr "dubbel privébericht ontvangen"
+#: ../../Zotlabs/Module/Setup.php:517 ../../Zotlabs/Module/Setup.php:520
+msgid "proc_open"
+msgstr "proc_open"
-#: ../../Zotlabs/Module/Dreport.php:113
-msgid "mail delivered"
-msgstr "privébericht afgeleverd"
+#: ../../Zotlabs/Module/Setup.php:517
+msgid ""
+"Error: proc_open is required but is either not installed or has been "
+"disabled in php.ini"
+msgstr "Error: proc_open is required but is either not installed or has been disabled in php.ini"
-#: ../../Zotlabs/Module/Editlayout.php:126
-#: ../../Zotlabs/Module/Layouts.php:127 ../../Zotlabs/Module/Layouts.php:186
-msgid "Layout Name"
-msgstr "Naam lay-out"
+#: ../../Zotlabs/Module/Setup.php:525
+msgid "Error: libCURL PHP module required but not installed."
+msgstr "Error: libCURL PHP module required but not installed."
-#: ../../Zotlabs/Module/Editlayout.php:127
-#: ../../Zotlabs/Module/Layouts.php:130
-msgid "Layout Description (Optional)"
-msgstr "Lay-out-omschrijving (optioneel)"
+#: ../../Zotlabs/Module/Setup.php:529
+msgid ""
+"Error: GD graphics PHP module with JPEG support required but not installed."
+msgstr "Error: GD graphics PHP module with JPEG support required but not installed."
-#: ../../Zotlabs/Module/Editlayout.php:135
-msgid "Edit Layout"
-msgstr "Lay-out bewerken"
+#: ../../Zotlabs/Module/Setup.php:533
+msgid "Error: openssl PHP module required but not installed."
+msgstr "Error: openssl PHP module required but not installed."
-#: ../../Zotlabs/Module/Editwebpage.php:143
-msgid "Page link"
-msgstr "Paginalink"
+#: ../../Zotlabs/Module/Setup.php:537
+msgid ""
+"Error: mysqli or postgres PHP module required but neither are installed."
+msgstr "Error: mysqli or postgres PHP module required but neither are installed."
-#: ../../Zotlabs/Module/Editwebpage.php:169
-msgid "Edit Webpage"
-msgstr "Webpagina bewerken"
+#: ../../Zotlabs/Module/Setup.php:541
+msgid "Error: mb_string PHP module required but not installed."
+msgstr "Error: mb_string PHP module required but not installed."
-#: ../../Zotlabs/Module/Follow.php:34
-msgid "Channel added."
-msgstr "Kanaal toegevoegd."
+#: ../../Zotlabs/Module/Setup.php:545
+msgid "Error: xml PHP module required for DAV but not installed."
+msgstr "Error: xml PHP module required for DAV but not installed."
-#: ../../Zotlabs/Module/Acl.php:227
-msgid "network"
-msgstr "netwerk"
+#: ../../Zotlabs/Module/Setup.php:563
+msgid ""
+"The web installer needs to be able to create a file called \".htconfig.php\""
+" in the top folder of your web server and it is unable to do so."
+msgstr "The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."
-#: ../../Zotlabs/Module/Acl.php:237
-msgid "RSS"
-msgstr "RSS"
+#: ../../Zotlabs/Module/Setup.php:564
+msgid ""
+"This is most often a permission setting, as the web server may not be able "
+"to write files in your folder - even if you can."
+msgstr "This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."
-#: ../../Zotlabs/Module/Group.php:24
-msgid "Privacy group created."
-msgstr "Privacygroep aangemaakt"
+#: ../../Zotlabs/Module/Setup.php:565
+msgid ""
+"At the end of this procedure, we will give you a text to save in a file "
+"named .htconfig.php in your Red top folder."
+msgstr "At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."
-#: ../../Zotlabs/Module/Group.php:30
-msgid "Could not create privacy group."
-msgstr "Kon privacygroep niet aanmaken"
+#: ../../Zotlabs/Module/Setup.php:566
+msgid ""
+"You can alternatively skip this procedure and perform a manual installation."
+" Please see the file \"install/INSTALL.txt\" for instructions."
+msgstr "You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."
-#: ../../Zotlabs/Module/Group.php:42 ../../Zotlabs/Module/Group.php:141
-#: ../../include/items.php:3893
-msgid "Privacy group not found."
-msgstr "Privacygroep niet gevonden"
+#: ../../Zotlabs/Module/Setup.php:569
+msgid ".htconfig.php is writable"
+msgstr ".htconfig.php is writable"
-#: ../../Zotlabs/Module/Group.php:58
-msgid "Privacy group updated."
-msgstr "Privacygroep bijgewerkt"
+#: ../../Zotlabs/Module/Setup.php:583
+msgid ""
+"Red uses the Smarty3 template engine to render its web views. Smarty3 "
+"compiles templates to PHP to speed up rendering."
+msgstr "Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."
-#: ../../Zotlabs/Module/Group.php:90
-msgid "Create a group of channels."
-msgstr "Privacygroep met kanalen aanmaken"
+#: ../../Zotlabs/Module/Setup.php:584
+#, php-format
+msgid ""
+"In order to store these compiled templates, the web server needs to have "
+"write access to the directory %s under the top level web folder."
+msgstr "In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder."
-#: ../../Zotlabs/Module/Group.php:91 ../../Zotlabs/Module/Group.php:184
-msgid "Privacy group name: "
-msgstr "Naam privacygroep: "
+#: ../../Zotlabs/Module/Setup.php:585 ../../Zotlabs/Module/Setup.php:606
+msgid ""
+"Please ensure that the user that your web server runs as (e.g. www-data) has"
+" write access to this folder."
+msgstr "Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."
-#: ../../Zotlabs/Module/Group.php:93 ../../Zotlabs/Module/Group.php:187
-msgid "Members are visible to other channels"
-msgstr "Kanalen in deze privacygroep zijn zichtbaar voor andere kanalen"
+#: ../../Zotlabs/Module/Setup.php:586
+#, php-format
+msgid ""
+"Note: as a security measure, you should give the web server write access to "
+"%s only--not the template files (.tpl) that it contains."
+msgstr "Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."
-#: ../../Zotlabs/Module/Group.php:111
-msgid "Privacy group removed."
-msgstr "Privacygroep verwijderd."
+#: ../../Zotlabs/Module/Setup.php:589
+#, php-format
+msgid "%s is writable"
+msgstr "%s is writable"
-#: ../../Zotlabs/Module/Group.php:113
-msgid "Unable to remove privacy group."
-msgstr "Verwijderen privacygroep mislukt"
+#: ../../Zotlabs/Module/Setup.php:605
+msgid ""
+"This software uses the store directory to save uploaded files. The web "
+"server needs to have write access to the store directory under the Red top "
+"level folder"
+msgstr "This software uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder"
-#: ../../Zotlabs/Module/Group.php:183
-msgid "Privacy group editor"
-msgstr "Privacygroep bewerken"
+#: ../../Zotlabs/Module/Setup.php:609
+msgid "store is writable"
+msgstr "store is writable"
-#: ../../Zotlabs/Module/Group.php:197
-msgid "Members"
-msgstr "Kanalen"
+#: ../../Zotlabs/Module/Setup.php:642
+msgid ""
+"SSL certificate cannot be validated. Fix certificate or disable https access"
+" to this site."
+msgstr "SSL certificate cannot be validated. Fix certificate or disable https access to this hub."
-#: ../../Zotlabs/Module/Group.php:199
-msgid "All Connected Channels"
-msgstr "Alle kanaalconnecties"
+#: ../../Zotlabs/Module/Setup.php:643
+msgid ""
+"If you have https access to your website or allow connections to TCP port "
+"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
+"NOT use self-signed certificates!"
+msgstr "If you have https access to your hub or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"
-#: ../../Zotlabs/Module/Group.php:231
-msgid "Click on a channel to add or remove."
-msgstr "Klik op een kanaal om deze toe te voegen of te verwijderen."
+#: ../../Zotlabs/Module/Setup.php:644
+msgid ""
+"This restriction is incorporated because public posts from you may for "
+"example contain references to images on your own hub."
+msgstr "This restriction is incorporated because public posts from you may for example contain references to images on your own hub."
-#: ../../Zotlabs/Module/Ffsapi.php:12
-msgid "Share content from Firefox to $Projectname"
-msgstr "Deel webpagina's vanuit Firefox met "
+#: ../../Zotlabs/Module/Setup.php:645
+msgid ""
+"If your certificate is not recognized, members of other sites (who may "
+"themselves have valid certificates) will get a warning message on their own "
+"site complaining about security issues."
+msgstr "If your certificate is not recognized, members of other hubs (who may themselves have valid certificates) will get a warning message on their own hub complaining about security issues."
-#: ../../Zotlabs/Module/Ffsapi.php:15
-msgid "Activate the Firefox $Projectname provider"
-msgstr "Activeer de $Projectname-service in Firefox"
+#: ../../Zotlabs/Module/Setup.php:646
+msgid ""
+"This can cause usability issues elsewhere (not just on your own site) so we "
+"must insist on this requirement."
+msgstr "This can cause usability issues elsewhere (not just on your own hub) so we must insist on this requirement."
-#: ../../Zotlabs/Module/Api.php:61 ../../Zotlabs/Module/Api.php:85
-msgid "Authorize application connection"
-msgstr "Geef toestemming voor applicatiekoppeling"
+#: ../../Zotlabs/Module/Setup.php:647
+msgid ""
+"Providers are available that issue free certificates which are browser-"
+"valid."
+msgstr "Providers are available that issue free certificates which are browser-valid."
-#: ../../Zotlabs/Module/Api.php:62
-msgid "Return to your app and insert this Securty Code:"
-msgstr "Ga terug naar je app en voeg deze beveiligingscode in:"
+#: ../../Zotlabs/Module/Setup.php:649
+msgid ""
+"If you are confident that the certificate is valid and signed by a trusted "
+"authority, check to see if you have failed to install an intermediate cert. "
+"These are not normally required by browsers, but are required for server-to-"
+"server communications."
+msgstr "If you are confident that the certificate is valid and signed by a trusted authority, check to see if you have failed to install an intermediate cert. These are not normally required by browsers, but are required for server-to-server communications."
-#: ../../Zotlabs/Module/Api.php:72
-msgid "Please login to continue."
-msgstr "Inloggen om verder te kunnen gaan."
+#: ../../Zotlabs/Module/Setup.php:652
+msgid "SSL certificate validation"
+msgstr "SSL certificate validation"
-#: ../../Zotlabs/Module/Api.php:87
+#: ../../Zotlabs/Module/Setup.php:658
msgid ""
-"Do you want to authorize this application to access your posts and contacts,"
-" and/or create new posts for you?"
-msgstr "Wil je deze applicatie toestemming geven om jouw berichten en connecties te zien, en/of nieuwe berichten voor jou te plaatsen?"
+"Url rewrite in .htaccess is not working. Check your server "
+"configuration.Test: "
+msgstr "Url rewrite in .htaccess is not working. Check your server configuration.Test: "
-#: ../../Zotlabs/Module/Help.php:26
-msgid "Documentation Search"
-msgstr "Zoek documentatie"
+#: ../../Zotlabs/Module/Setup.php:661
+msgid "Url rewrite is working"
+msgstr "Url rewrite is working"
-#: ../../Zotlabs/Module/Help.php:67 ../../Zotlabs/Module/Help.php:73
-#: ../../Zotlabs/Module/Help.php:79
-msgid "Help:"
-msgstr "Hulp:"
+#: ../../Zotlabs/Module/Setup.php:670
+msgid ""
+"The database configuration file \".htconfig.php\" could not be written. "
+"Please use the enclosed text to create a configuration file in your web "
+"server root."
+msgstr "The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."
-#: ../../Zotlabs/Module/Help.php:85 ../../Zotlabs/Module/Help.php:90
-#: ../../Zotlabs/Module/Layouts.php:183 ../../Zotlabs/Lib/Apps.php:223
-#: ../../include/nav.php:159
-msgid "Help"
-msgstr "Hulp"
+#: ../../Zotlabs/Module/Setup.php:694
+msgid "Errors encountered creating database tables."
+msgstr "Errors encountered creating database tables."
-#: ../../Zotlabs/Module/Help.php:120
-msgid "$Projectname Documentation"
-msgstr "$Projectname-documentatie"
+#: ../../Zotlabs/Module/Setup.php:731
+msgid "<h1>What next</h1>"
+msgstr "<h1>What next</h1>"
-#: ../../Zotlabs/Module/Filestorage.php:88
-msgid "Permission Denied."
-msgstr "Toegang geweigerd"
+#: ../../Zotlabs/Module/Setup.php:732
+msgid ""
+"IMPORTANT: You will need to [manually] setup a scheduled task for the "
+"poller."
+msgstr "IMPORTANT: You will need to [manually] setup a scheduled task for the poller."
-#: ../../Zotlabs/Module/Filestorage.php:104
-msgid "File not found."
-msgstr "Bestand niet gevonden."
+#: ../../Zotlabs/Module/Directory.php:243
+#, php-format
+msgid "%d rating"
+msgid_plural "%d ratings"
+msgstr[0] "%d beoordeling"
+msgstr[1] "%d beoordelingen"
-#: ../../Zotlabs/Module/Filestorage.php:147
-msgid "Edit file permissions"
-msgstr "Bestandsrechten bewerken"
+#: ../../Zotlabs/Module/Directory.php:254
+msgid "Gender: "
+msgstr "Geslacht:"
-#: ../../Zotlabs/Module/Filestorage.php:156
-msgid "Set/edit permissions"
-msgstr "Rechten instellen/bewerken"
+#: ../../Zotlabs/Module/Directory.php:256
+msgid "Status: "
+msgstr "Status: "
-#: ../../Zotlabs/Module/Filestorage.php:157
-msgid "Include all files and sub folders"
-msgstr "Toepassen op alle bestanden en submappen"
+#: ../../Zotlabs/Module/Directory.php:258
+msgid "Homepage: "
+msgstr "Homepage: "
-#: ../../Zotlabs/Module/Filestorage.php:158
-msgid "Return to file list"
-msgstr "Terugkeren naar bestandlijst "
+#: ../../Zotlabs/Module/Directory.php:306 ../../include/channel.php:1207
+msgid "Age:"
+msgstr "Leeftijd:"
-#: ../../Zotlabs/Module/Filestorage.php:160
-msgid "Copy/paste this code to attach file to a post"
-msgstr "Kopieer/plak deze code om het bestand aan een bericht te koppelen"
+#: ../../Zotlabs/Module/Directory.php:311 ../../include/channel.php:1049
+#: ../../include/event.php:52 ../../include/event.php:84
+#: ../../include/bb2diaspora.php:507
+msgid "Location:"
+msgstr "Plaats:"
-#: ../../Zotlabs/Module/Filestorage.php:161
-msgid "Copy/paste this URL to link file from a web page"
-msgstr "Kopieer/plak deze URL om het bestand aan een externe webpagina te koppelen"
+#: ../../Zotlabs/Module/Directory.php:317
+msgid "Description:"
+msgstr "Omschrijving:"
-#: ../../Zotlabs/Module/Filestorage.php:163
-msgid "Share this file"
-msgstr "Dit bestand delen"
+#: ../../Zotlabs/Module/Directory.php:322 ../../include/channel.php:1223
+msgid "Hometown:"
+msgstr "Oorspronkelijk uit:"
-#: ../../Zotlabs/Module/Filestorage.php:164
-msgid "Show URL to this file"
-msgstr "Toon URL van dit bestand"
+#: ../../Zotlabs/Module/Directory.php:324 ../../include/channel.php:1231
+msgid "About:"
+msgstr "Over:"
-#: ../../Zotlabs/Module/Filestorage.php:165
-msgid "Notify your contacts about this file"
-msgstr "Jouw connecties over dit bestand berichten"
+#: ../../Zotlabs/Module/Directory.php:325 ../../Zotlabs/Module/Match.php:68
+#: ../../Zotlabs/Module/Suggest.php:56 ../../include/widgets.php:147
+#: ../../include/widgets.php:184 ../../include/connections.php:78
+#: ../../include/channel.php:1034 ../../include/conversation.php:957
+msgid "Connect"
+msgstr "Verbinden"
-#: ../../Zotlabs/Module/Apps.php:47 ../../include/widgets.php:102
-#: ../../include/nav.php:163
-msgid "Apps"
-msgstr "Apps"
+#: ../../Zotlabs/Module/Directory.php:326
+msgid "Public Forum:"
+msgstr "Openbaar forum:"
-#: ../../Zotlabs/Module/Attach.php:13
-msgid "Item not available."
-msgstr "Item is niet aanwezig."
+#: ../../Zotlabs/Module/Directory.php:329
+msgid "Keywords: "
+msgstr "Trefwoorden: "
-#: ../../Zotlabs/Module/Import.php:32
-#, php-format
-msgid "Your service plan only allows %d channels."
-msgstr "Jouw abonnement staat maar %d kanalen toe."
+#: ../../Zotlabs/Module/Directory.php:332
+msgid "Don't suggest"
+msgstr "Niet voorstellen"
-#: ../../Zotlabs/Module/Import.php:70 ../../Zotlabs/Module/Import_items.php:42
-msgid "Nothing to import."
-msgstr "Niets gevonden om te importeren"
+#: ../../Zotlabs/Module/Directory.php:334
+msgid "Common connections:"
+msgstr "Gemeenschappelijke connecties:"
-#: ../../Zotlabs/Module/Import.php:94 ../../Zotlabs/Module/Import_items.php:66
-msgid "Unable to download data from old server"
-msgstr "Niet in staat om gegevens van de oude hub te downloaden"
+#: ../../Zotlabs/Module/Directory.php:383
+msgid "Global Directory"
+msgstr "Volledige kanalengids"
-#: ../../Zotlabs/Module/Import.php:100
-#: ../../Zotlabs/Module/Import_items.php:72
-msgid "Imported file is empty."
-msgstr "Geïmporteerde bestand is leeg"
+#: ../../Zotlabs/Module/Directory.php:383
+msgid "Local Directory"
+msgstr "Lokale kanalengids"
-#: ../../Zotlabs/Module/Import.php:122
-#: ../../Zotlabs/Module/Import_items.php:86
-#, php-format
-msgid "Warning: Database versions differ by %1$d updates."
-msgstr "Waarschuwing: database-versies lopen %1$d updates achter."
+#: ../../Zotlabs/Module/Directory.php:389
+msgid "Finding:"
+msgstr "Gezocht naar:"
-#: ../../Zotlabs/Module/Import.php:150 ../../include/import.php:86
-msgid "Cloned channel not found. Import failed."
-msgstr "Gekloond kanaal niet gevonden. Importeren mislukt."
+#: ../../Zotlabs/Module/Directory.php:392 ../../Zotlabs/Module/Suggest.php:64
+#: ../../include/contact_widgets.php:24
+msgid "Channel Suggestions"
+msgstr "Voorgestelde kanalen"
-#: ../../Zotlabs/Module/Import.php:160
-msgid "No channel. Import failed."
-msgstr "Geen kanaal. Importeren mislukt."
+#: ../../Zotlabs/Module/Directory.php:394
+msgid "next page"
+msgstr "volgende pagina"
-#: ../../Zotlabs/Module/Import.php:510
-#: ../../include/Import/import_diaspora.php:142
-msgid "Import completed."
-msgstr "Import voltooid."
+#: ../../Zotlabs/Module/Directory.php:394
+msgid "previous page"
+msgstr "vorige pagina"
-#: ../../Zotlabs/Module/Import.php:532
-msgid "You must be logged in to use this feature."
-msgstr "Je moet ingelogd zijn om dit onderdeel te kunnen gebruiken."
+#: ../../Zotlabs/Module/Directory.php:395
+msgid "Sort options"
+msgstr "Sorteeropties"
-#: ../../Zotlabs/Module/Import.php:537
-msgid "Import Channel"
-msgstr "Kanaal importeren"
+#: ../../Zotlabs/Module/Directory.php:396
+msgid "Alphabetic"
+msgstr "Alfabetisch"
-#: ../../Zotlabs/Module/Import.php:538
-msgid ""
-"Use this form to import an existing channel from a different server/hub. You"
-" may retrieve the channel identity from the old server/hub via the network "
-"or provide an export file."
-msgstr "Gebruik dit formulier om een bestaand kanaal te importeren van een andere hub. Je kan de kanaal-identiteit van de oude hub via het netwerk ontvangen of een exportbestand verstrekken."
+#: ../../Zotlabs/Module/Directory.php:397
+msgid "Reverse Alphabetic"
+msgstr "Omgekeerd alfabetisch"
-#: ../../Zotlabs/Module/Import.php:539
-#: ../../Zotlabs/Module/Import_items.php:119
-msgid "File to Upload"
-msgstr "Bestand om te uploaden"
+#: ../../Zotlabs/Module/Directory.php:398
+msgid "Newest to Oldest"
+msgstr "Nieuw naar oud"
-#: ../../Zotlabs/Module/Import.php:540
-msgid "Or provide the old server/hub details"
-msgstr "Of vul de gegevens van de oude hub in"
+#: ../../Zotlabs/Module/Directory.php:399
+msgid "Oldest to Newest"
+msgstr "Oud naar nieuw"
-#: ../../Zotlabs/Module/Import.php:541
-msgid "Your old identity address (xyz@example.com)"
-msgstr "Jouw oude kanaaladres (xyz@example.com)"
+#: ../../Zotlabs/Module/Directory.php:416
+msgid "No entries (some entries may be hidden)."
+msgstr "Niets gevonden (sommige kanalen kunnen verborgen zijn)."
-#: ../../Zotlabs/Module/Import.php:542
-msgid "Your old login email address"
-msgstr "Het e-mailadres van je oude account"
+#: ../../Zotlabs/Module/Dirsearch.php:25 ../../Zotlabs/Module/Regdir.php:49
+msgid "This site is not a directory server"
+msgstr "Deze hub is geen kanalengidshub (directoryserver)"
-#: ../../Zotlabs/Module/Import.php:543
-msgid "Your old login password"
-msgstr "Wachtwoord van jouw oude account"
+#: ../../Zotlabs/Module/Dirsearch.php:33
+msgid "This directory server requires an access token"
+msgstr "Deze kanalengidshub (directoryserver) heeft een toegangs-token nodig"
-#: ../../Zotlabs/Module/Import.php:544
-msgid ""
-"For either option, please choose whether to make this hub your new primary "
-"address, or whether your old location should continue this role. You will be"
-" able to post from either location, but only one can be marked as the "
-"primary location for files, photos, and media."
-msgstr "Voor elke optie geldt dat je moet kiezen of je jouw primaire kanaaladres op deze hub wil instellen of dat jouw oude hub deze rol blijft vervullen."
+#: ../../Zotlabs/Module/Editblock.php:79 ../../Zotlabs/Module/Editblock.php:95
+#: ../../Zotlabs/Module/Editlayout.php:79
+#: ../../Zotlabs/Module/Editwebpage.php:80
+#: ../../Zotlabs/Module/Editpost.php:24
+msgid "Item not found"
+msgstr "Item niet gevonden"
-#: ../../Zotlabs/Module/Import.php:545
-msgid "Make this hub my primary location"
-msgstr "Stel deze hub als mijn primaire locatie in"
+#: ../../Zotlabs/Module/Editblock.php:108 ../../Zotlabs/Module/Blocks.php:97
+#: ../../Zotlabs/Module/Blocks.php:155
+msgid "Block Name"
+msgstr "Bloknaam"
-#: ../../Zotlabs/Module/Import.php:546
-msgid ""
-"Import existing posts if possible (experimental - limited by available "
-"memory"
-msgstr "Importeer bestaande berichten wanneer mogelijk (experimenteel - afhankelijk van beschikbaar servergeheugen)"
+#: ../../Zotlabs/Module/Editblock.php:111
+#: ../../Zotlabs/Module/Editwebpage.php:146 ../../Zotlabs/Module/Mail.php:244
+#: ../../Zotlabs/Module/Mail.php:369 ../../Zotlabs/Module/Chat.php:207
+#: ../../include/conversation.php:1148
+msgid "Insert web link"
+msgstr "Weblink invoegen"
-#: ../../Zotlabs/Module/Import.php:547
-msgid ""
-"This process may take several minutes to complete. Please submit the form "
-"only once and leave this page open until finished."
-msgstr "Dit proces kan enkele minuten in beslag nemen. Klik maar één keer op opslaan en verlaat deze pagina niet alvorens het proces is voltooid."
+#: ../../Zotlabs/Module/Editblock.php:124 ../../include/conversation.php:1255
+msgid "Title (optional)"
+msgstr "Titel (optioneel)"
-#: ../../Zotlabs/Module/Item.php:178
-msgid "Unable to locate original post."
-msgstr "Niet in staat om de originele locatie van het bericht te vinden. "
+#: ../../Zotlabs/Module/Editblock.php:133
+msgid "Edit Block"
+msgstr "Blok bewerken"
-#: ../../Zotlabs/Module/Item.php:427
-msgid "Empty post discarded."
-msgstr "Leeg bericht geannuleerd"
+#: ../../Zotlabs/Module/Editlayout.php:127
+#: ../../Zotlabs/Module/Layouts.php:128 ../../Zotlabs/Module/Layouts.php:188
+msgid "Layout Name"
+msgstr "Naam lay-out"
-#: ../../Zotlabs/Module/Item.php:467
-msgid "Executable content type not permitted to this channel."
-msgstr "Uitvoerbare bestanden zijn niet toegestaan op dit kanaal."
+#: ../../Zotlabs/Module/Editlayout.php:128
+#: ../../Zotlabs/Module/Layouts.php:131
+msgid "Layout Description (Optional)"
+msgstr "Lay-out-omschrijving (optioneel)"
-#: ../../Zotlabs/Module/Item.php:847
-msgid "Duplicate post suppressed."
-msgstr "Dubbel bericht tegengehouden."
+#: ../../Zotlabs/Module/Editlayout.php:136
+msgid "Edit Layout"
+msgstr "Lay-out bewerken"
-#: ../../Zotlabs/Module/Item.php:977
-msgid "System error. Post not saved."
-msgstr "Systeemfout. Bericht niet opgeslagen."
+#: ../../Zotlabs/Module/Editwebpage.php:142
+msgid "Page link"
+msgstr "Paginalink"
-#: ../../Zotlabs/Module/Item.php:1241
-msgid "Unable to obtain post information from database."
-msgstr "Niet in staat om informatie over dit bericht uit de database te verkrijgen."
+#: ../../Zotlabs/Module/Editwebpage.php:169
+msgid "Edit Webpage"
+msgstr "Webpagina bewerken"
-#: ../../Zotlabs/Module/Item.php:1248
-#, php-format
-msgid "You have reached your limit of %1$.0f top level posts."
-msgstr "Je hebt jouw limiet van %1$.0f berichten bereikt."
+#: ../../Zotlabs/Module/Menu.php:49
+msgid "Unable to update menu."
+msgstr "Niet in staat om menu aan te passen"
-#: ../../Zotlabs/Module/Item.php:1255
-#, php-format
-msgid "You have reached your limit of %1$.0f webpages."
-msgstr "Je hebt jouw limiet van %1$.0f webpagina's bereikt."
+#: ../../Zotlabs/Module/Menu.php:60
+msgid "Unable to create menu."
+msgstr "Niet in staat om menu aan te maken."
-#: ../../Zotlabs/Module/Layouts.php:181 ../../include/text.php:2267
-msgid "Layouts"
-msgstr "Lay-outs"
+#: ../../Zotlabs/Module/Menu.php:98 ../../Zotlabs/Module/Menu.php:110
+msgid "Menu Name"
+msgstr "Menunaam"
-#: ../../Zotlabs/Module/Layouts.php:183
-msgid "Comanche page description language help"
-msgstr "Hulp met de paginabeschrijvingstaal Comanche"
+#: ../../Zotlabs/Module/Menu.php:98
+msgid "Unique name (not visible on webpage) - required"
+msgstr "Unieke naam vereist (niet zichtbaar op webpagina)"
-#: ../../Zotlabs/Module/Layouts.php:187
-msgid "Layout Description"
-msgstr "Lay-out-omschrijving"
+#: ../../Zotlabs/Module/Menu.php:99 ../../Zotlabs/Module/Menu.php:111
+msgid "Menu Title"
+msgstr "Menutitel"
-#: ../../Zotlabs/Module/Layouts.php:192
-msgid "Download PDL file"
-msgstr "Download PDL-bestand"
+#: ../../Zotlabs/Module/Menu.php:99
+msgid "Visible on webpage - leave empty for no title"
+msgstr "Zichtbaar op webpagina (leeg laten voor geen titel)"
-#: ../../Zotlabs/Module/Home.php:61 ../../Zotlabs/Module/Home.php:69
-#: ../../Zotlabs/Module/Siteinfo.php:65
-msgid "$Projectname"
-msgstr "$Projectname"
+#: ../../Zotlabs/Module/Menu.php:100
+msgid "Allow Bookmarks"
+msgstr "Bladwijzers toestaan"
-#: ../../Zotlabs/Module/Home.php:79
-#, php-format
-msgid "Welcome to %s"
-msgstr "Welkom op %s"
+#: ../../Zotlabs/Module/Menu.php:100 ../../Zotlabs/Module/Menu.php:157
+msgid "Menu may be used to store saved bookmarks"
+msgstr "Menu kan gebruikt worden om bladwijzers in op te slaan"
-#: ../../Zotlabs/Module/Id.php:13
-msgid "First Name"
-msgstr "Voornaam"
+#: ../../Zotlabs/Module/Menu.php:101 ../../Zotlabs/Module/Menu.php:159
+msgid "Submit and proceed"
+msgstr "Opslaan en doorgaan"
-#: ../../Zotlabs/Module/Id.php:14
-msgid "Last Name"
-msgstr "Achternaam"
+#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2263
+msgid "Menus"
+msgstr "Menu's"
-#: ../../Zotlabs/Module/Id.php:15
-msgid "Nickname"
-msgstr "Bijnaam"
+#: ../../Zotlabs/Module/Menu.php:113 ../../Zotlabs/Module/Locs.php:120
+msgid "Drop"
+msgstr "Verwijderen"
-#: ../../Zotlabs/Module/Id.php:16
-msgid "Full Name"
-msgstr "Volledige naam"
+#: ../../Zotlabs/Module/Menu.php:114 ../../Zotlabs/Module/Webpages.php:228
+#: ../../Zotlabs/Module/Blocks.php:157 ../../Zotlabs/Module/Layouts.php:190
+#: ../../include/page_widgets.php:47
+msgid "Created"
+msgstr "Aangemaakt"
-#: ../../Zotlabs/Module/Id.php:17 ../../Zotlabs/Module/Id.php:18
-#: ../../Zotlabs/Module/Admin.php:1035 ../../Zotlabs/Module/Admin.php:1047
-#: ../../include/network.php:2151 ../../boot.php:1705
-msgid "Email"
-msgstr "E-mail"
+#: ../../Zotlabs/Module/Menu.php:115 ../../Zotlabs/Module/Webpages.php:229
+#: ../../Zotlabs/Module/Blocks.php:158 ../../Zotlabs/Module/Layouts.php:191
+#: ../../include/page_widgets.php:48
+msgid "Edited"
+msgstr "Bewerkt"
-#: ../../Zotlabs/Module/Id.php:19 ../../Zotlabs/Module/Id.php:20
-#: ../../Zotlabs/Module/Id.php:21 ../../Zotlabs/Lib/Apps.php:236
-msgid "Profile Photo"
-msgstr "Profielfoto"
+#: ../../Zotlabs/Module/Menu.php:117
+msgid "Bookmarks allowed"
+msgstr "Bladwijzers toegestaan"
-#: ../../Zotlabs/Module/Id.php:22
-msgid "Profile Photo 16px"
-msgstr "Profielfoto 16px"
+#: ../../Zotlabs/Module/Menu.php:119
+msgid "Delete this menu"
+msgstr "Menu verwijderen"
-#: ../../Zotlabs/Module/Id.php:23
-msgid "Profile Photo 32px"
-msgstr "Profielfoto 32px"
+#: ../../Zotlabs/Module/Menu.php:120 ../../Zotlabs/Module/Menu.php:154
+msgid "Edit menu contents"
+msgstr "Bewerk de inhoud van het menu"
-#: ../../Zotlabs/Module/Id.php:24
-msgid "Profile Photo 48px"
-msgstr "Profielfoto 48px"
+#: ../../Zotlabs/Module/Menu.php:121
+msgid "Edit this menu"
+msgstr "Dit menu bewerken"
-#: ../../Zotlabs/Module/Id.php:25
-msgid "Profile Photo 64px"
-msgstr "Profielfoto 64px"
+#: ../../Zotlabs/Module/Menu.php:136
+msgid "Menu could not be deleted."
+msgstr "Menu kon niet verwijderd worden."
-#: ../../Zotlabs/Module/Id.php:26
-msgid "Profile Photo 80px"
-msgstr "Profielfoto 80px"
+#: ../../Zotlabs/Module/Menu.php:144 ../../Zotlabs/Module/Mitem.php:28
+msgid "Menu not found."
+msgstr "Menu niet gevonden."
-#: ../../Zotlabs/Module/Id.php:27
-msgid "Profile Photo 128px"
-msgstr "Profielfoto 128px"
+#: ../../Zotlabs/Module/Menu.php:149
+msgid "Edit Menu"
+msgstr "Menu bewerken"
-#: ../../Zotlabs/Module/Id.php:28
-msgid "Timezone"
-msgstr "Tijdzone"
+#: ../../Zotlabs/Module/Menu.php:153
+msgid "Add or remove entries to this menu"
+msgstr "Items aan dit menu toevoegen of verwijder"
-#: ../../Zotlabs/Module/Id.php:29 ../../Zotlabs/Module/Profiles.php:731
-msgid "Homepage URL"
-msgstr "URL homepagina"
+#: ../../Zotlabs/Module/Menu.php:155
+msgid "Menu name"
+msgstr "Naam van menu"
-#: ../../Zotlabs/Module/Id.php:30 ../../Zotlabs/Lib/Apps.php:234
-msgid "Language"
-msgstr "Taal"
+#: ../../Zotlabs/Module/Menu.php:155
+msgid "Must be unique, only seen by you"
+msgstr "Moet uniek zijn en is alleen zichtbaar voor jou."
-#: ../../Zotlabs/Module/Id.php:31
-msgid "Birth Year"
-msgstr "Geboortejaar"
+#: ../../Zotlabs/Module/Menu.php:156
+msgid "Menu title"
+msgstr "Titel van menu"
-#: ../../Zotlabs/Module/Id.php:32
-msgid "Birth Month"
-msgstr "Geboortemaand"
+#: ../../Zotlabs/Module/Menu.php:156
+msgid "Menu title as seen by others"
+msgstr "Titel van menu zoals anderen dat zien."
-#: ../../Zotlabs/Module/Id.php:33
-msgid "Birth Day"
-msgstr "Geboortedag"
+#: ../../Zotlabs/Module/Menu.php:157
+msgid "Allow bookmarks"
+msgstr "Bladwijzers toestaan"
-#: ../../Zotlabs/Module/Id.php:34
-msgid "Birthdate"
-msgstr "Geboortedatum"
+#: ../../Zotlabs/Module/Menu.php:166 ../../Zotlabs/Module/Mitem.php:120
+#: ../../Zotlabs/Module/Xchan.php:41
+msgid "Not found."
+msgstr "Niet gevonden."
-#: ../../Zotlabs/Module/Id.php:35 ../../Zotlabs/Module/Profiles.php:454
-msgid "Gender"
-msgstr "Geslacht"
+#: ../../Zotlabs/Module/Appman.php:37 ../../Zotlabs/Module/Appman.php:53
+msgid "App installed."
+msgstr "App geïnstalleerd"
-#: ../../Zotlabs/Module/Id.php:108 ../../include/selectors.php:49
-#: ../../include/selectors.php:66
-msgid "Male"
-msgstr "Man"
+#: ../../Zotlabs/Module/Appman.php:46
+msgid "Malformed app."
+msgstr "Misvormde app."
-#: ../../Zotlabs/Module/Id.php:110 ../../include/selectors.php:49
-#: ../../include/selectors.php:66
-msgid "Female"
-msgstr "Vrouw"
+#: ../../Zotlabs/Module/Appman.php:104
+msgid "Embed code"
+msgstr "Insluitcode"
-#: ../../Zotlabs/Module/Impel.php:41 ../../include/bbcode.php:192
-msgid "webpage"
-msgstr "Webpagina"
+#: ../../Zotlabs/Module/Appman.php:110 ../../include/widgets.php:107
+msgid "Edit App"
+msgstr "App bewerken"
-#: ../../Zotlabs/Module/Impel.php:46 ../../include/bbcode.php:198
-msgid "block"
-msgstr "blok"
+#: ../../Zotlabs/Module/Appman.php:110
+msgid "Create App"
+msgstr "App maken"
-#: ../../Zotlabs/Module/Impel.php:51 ../../include/bbcode.php:195
-msgid "layout"
-msgstr "lay-out"
+#: ../../Zotlabs/Module/Appman.php:115
+msgid "Name of app"
+msgstr "Naam van app"
-#: ../../Zotlabs/Module/Impel.php:58 ../../include/bbcode.php:201
-msgid "menu"
-msgstr "menu"
+#: ../../Zotlabs/Module/Appman.php:115 ../../Zotlabs/Module/Appman.php:116
+#: ../../Zotlabs/Module/Profiles.php:709 ../../Zotlabs/Module/Profiles.php:713
+#: ../../Zotlabs/Module/Events.php:452 ../../Zotlabs/Module/Events.php:457
+#: ../../include/datetime.php:245
+msgid "Required"
+msgstr "Vereist"
-#: ../../Zotlabs/Module/Impel.php:196
-#, php-format
-msgid "%s element installed"
-msgstr "%s onderdeel geïnstalleerd"
+#: ../../Zotlabs/Module/Appman.php:116
+msgid "Location (URL) of app"
+msgstr "Locatie (URL) van app"
-#: ../../Zotlabs/Module/Impel.php:199
-#, php-format
-msgid "%s element installation failed"
-msgstr "Installatie %s-element mislukt"
+#: ../../Zotlabs/Module/Appman.php:117 ../../Zotlabs/Module/Events.php:465
+#: ../../Zotlabs/Module/Rbmark.php:101
+msgid "Description"
+msgstr "Omschrijving"
-#: ../../Zotlabs/Module/Like.php:19
-msgid "Like/Dislike"
-msgstr "Leuk/niet leuk"
+#: ../../Zotlabs/Module/Appman.php:118
+msgid "Photo icon URL"
+msgstr "URL van pictogram"
-#: ../../Zotlabs/Module/Like.php:24
-msgid "This action is restricted to members."
-msgstr "Deze actie kan alleen door $Projectname-leden worden uitgevoerd."
+#: ../../Zotlabs/Module/Appman.php:118
+msgid "80 x 80 pixels - optional"
+msgstr "80 x 80 pixels (optioneel)"
-#: ../../Zotlabs/Module/Like.php:25
-msgid ""
-"Please <a href=\"rmagic\">login with your $Projectname ID</a> or <a "
-"href=\"register\">register as a new $Projectname member</a> to continue."
-msgstr "Je dient <a href=\"rmagic\">in te loggen met je $Projectname-account</a> of <a href=\"register\">een nieuw $Projectname-account aan te maken</a> om verder te kunnen gaan."
+#: ../../Zotlabs/Module/Appman.php:119
+msgid "Categories (optional, comma separated list)"
+msgstr "Categorieën (optioneel, door komma's gescheiden lijst)"
-#: ../../Zotlabs/Module/Like.php:105 ../../Zotlabs/Module/Like.php:131
-#: ../../Zotlabs/Module/Like.php:169
-msgid "Invalid request."
-msgstr "Ongeldig verzoek"
+#: ../../Zotlabs/Module/Appman.php:120
+msgid "Version ID"
+msgstr "Versie-ID"
-#: ../../Zotlabs/Module/Like.php:117 ../../include/conversation.php:126
-msgid "channel"
-msgstr "kanaal"
+#: ../../Zotlabs/Module/Appman.php:121
+msgid "Price of app"
+msgstr "Prijs van de app"
-#: ../../Zotlabs/Module/Like.php:146
-msgid "thing"
-msgstr "ding"
+#: ../../Zotlabs/Module/Appman.php:122
+msgid "Location (URL) to purchase app"
+msgstr "Locatie (URL) om de app aan te schaffen"
-#: ../../Zotlabs/Module/Like.php:192
-msgid "Channel unavailable."
-msgstr "Kanaal niet beschikbaar."
+#: ../../Zotlabs/Module/Help.php:26
+msgid "Documentation Search"
+msgstr "Zoek documentatie"
-#: ../../Zotlabs/Module/Like.php:240
-msgid "Previous action reversed."
-msgstr "Vorige actie omgedraaid"
+#: ../../Zotlabs/Module/Help.php:67 ../../Zotlabs/Module/Help.php:73
+#: ../../Zotlabs/Module/Help.php:79
+msgid "Help:"
+msgstr "Hulp:"
-#: ../../Zotlabs/Module/Like.php:371 ../../Zotlabs/Module/Subthread.php:87
-#: ../../Zotlabs/Module/Tagger.php:47 ../../include/text.php:1940
-#: ../../include/conversation.php:120
-msgid "photo"
-msgstr "foto"
+#: ../../Zotlabs/Module/Help.php:85 ../../Zotlabs/Module/Help.php:90
+#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Lib/Apps.php:225
+#: ../../include/nav.php:163
+msgid "Help"
+msgstr "Hulp"
-#: ../../Zotlabs/Module/Like.php:371 ../../Zotlabs/Module/Subthread.php:87
-#: ../../include/text.php:1946 ../../include/conversation.php:148
-msgid "status"
-msgstr "bericht"
+#: ../../Zotlabs/Module/Help.php:120
+msgid "$Projectname Documentation"
+msgstr "$Projectname-documentatie"
-#: ../../Zotlabs/Module/Like.php:420 ../../include/conversation.php:164
-#, php-format
-msgid "%1$s likes %2$s's %3$s"
-msgstr "%1$s vindt %3$s van %2$s leuk"
+#: ../../Zotlabs/Module/Attach.php:13
+msgid "Item not available."
+msgstr "Item is niet aanwezig."
-#: ../../Zotlabs/Module/Like.php:422 ../../include/conversation.php:167
-#, php-format
-msgid "%1$s doesn't like %2$s's %3$s"
-msgstr "%1$s vindt %3$s van %2$s niet leuk"
+#: ../../Zotlabs/Module/Pdledit.php:18
+msgid "Layout updated."
+msgstr "Lay-out bijgewerkt."
-#: ../../Zotlabs/Module/Like.php:424
-#, php-format
-msgid "%1$s agrees with %2$s's %3$s"
-msgstr "%1$s is het eens met %2$s's %3$s"
+#: ../../Zotlabs/Module/Pdledit.php:34 ../../Zotlabs/Module/Pdledit.php:61
+msgid "Edit System Page Description"
+msgstr "Systeempagina's bewerken"
-#: ../../Zotlabs/Module/Like.php:426
-#, php-format
-msgid "%1$s doesn't agree with %2$s's %3$s"
-msgstr "%1$s is het niet eens met %2$s's %3$s"
+#: ../../Zotlabs/Module/Pdledit.php:56
+msgid "Layout not found."
+msgstr "Lay-out niet gevonden."
-#: ../../Zotlabs/Module/Like.php:428
-#, php-format
-msgid "%1$s abstains from a decision on %2$s's %3$s"
-msgstr "%1$s onthoudt zich van een besluit over %2$s's %3$s"
+#: ../../Zotlabs/Module/Pdledit.php:62
+msgid "Module Name:"
+msgstr "Modulenaam:"
-#: ../../Zotlabs/Module/Like.php:430
-#, php-format
-msgid "%1$s is attending %2$s's %3$s"
-msgstr "%1$s is aanwezig op %2$s's %3$s"
+#: ../../Zotlabs/Module/Pdledit.php:63
+msgid "Layout Help"
+msgstr "Lay-out-hulp"
-#: ../../Zotlabs/Module/Like.php:432
-#, php-format
-msgid "%1$s is not attending %2$s's %3$s"
-msgstr "%1$s is niet aanwezig op %2$s's %3$s"
+#: ../../Zotlabs/Module/Ffsapi.php:12
+msgid "Share content from Firefox to $Projectname"
+msgstr "Deel webpagina's vanuit Firefox met "
-#: ../../Zotlabs/Module/Like.php:434
-#, php-format
-msgid "%1$s may attend %2$s's %3$s"
-msgstr "%1$s is mogelijk aanwezig op %2$s's %3$s"
+#: ../../Zotlabs/Module/Ffsapi.php:15
+msgid "Activate the Firefox $Projectname provider"
+msgstr "Activeer de $Projectname-service in Firefox"
-#: ../../Zotlabs/Module/Like.php:537
-msgid "Action completed."
-msgstr "Actie voltooid"
+#: ../../Zotlabs/Module/Home.php:74 ../../Zotlabs/Module/Home.php:82
+#: ../../Zotlabs/Module/Siteinfo.php:48
+msgid "$Projectname"
+msgstr "$Projectname"
-#: ../../Zotlabs/Module/Like.php:538
-msgid "Thank you."
-msgstr "Bedankt"
+#: ../../Zotlabs/Module/Home.php:92
+#, php-format
+msgid "Welcome to %s"
+msgstr "Welkom op %s"
-#: ../../Zotlabs/Module/Import_items.php:102
-msgid "Import completed"
-msgstr "Importeren voltooid"
+#: ../../Zotlabs/Module/Lockview.php:75
+msgid "Remote privacy information not available."
+msgstr "Privacy-informatie op afstand niet beschikbaar."
-#: ../../Zotlabs/Module/Import_items.php:117
-msgid "Import Items"
-msgstr "Importeer items"
+#: ../../Zotlabs/Module/Lockview.php:96
+msgid "Visible to:"
+msgstr "Zichtbaar voor:"
-#: ../../Zotlabs/Module/Import_items.php:118
-msgid ""
-"Use this form to import existing posts and content from an export file."
-msgstr "Gebruik dit formulier om bestaande berichten en andere inhoud vanuit een exportbestand te importeren."
+#: ../../Zotlabs/Module/Filestorage.php:87
+msgid "Permission Denied."
+msgstr "Toegang geweigerd"
-#: ../../Zotlabs/Module/Invite.php:29
-msgid "Total invitation limit exceeded."
-msgstr "Limiet voor aantal uitnodigingen overschreden."
+#: ../../Zotlabs/Module/Filestorage.php:103
+msgid "File not found."
+msgstr "Bestand niet gevonden."
-#: ../../Zotlabs/Module/Invite.php:53
-#, php-format
-msgid "%s : Not a valid email address."
-msgstr "%s : Geen geldig e-mailadres."
+#: ../../Zotlabs/Module/Filestorage.php:146
+msgid "Edit file permissions"
+msgstr "Bestandsrechten bewerken"
-#: ../../Zotlabs/Module/Invite.php:63
-msgid "Please join us on $Projectname"
-msgstr "Uitnodiging voor $Projectname"
+#: ../../Zotlabs/Module/Filestorage.php:152
+#: ../../Zotlabs/Module/Photos.php:669 ../../Zotlabs/Module/Photos.php:1047
+#: ../../Zotlabs/Module/Thing.php:313 ../../Zotlabs/Module/Thing.php:363
+#: ../../Zotlabs/Module/Chat.php:234 ../../include/acl_selectors.php:179
+msgid "Permissions"
+msgstr "Permissies"
-#: ../../Zotlabs/Module/Invite.php:74
-msgid "Invitation limit exceeded. Please contact your site administrator."
-msgstr "Limiet voor aantal uitnodigingen overschreden. Neem contact op met je hub-beheerder."
+#: ../../Zotlabs/Module/Filestorage.php:159
+msgid "Set/edit permissions"
+msgstr "Rechten instellen/bewerken"
-#: ../../Zotlabs/Module/Invite.php:79
-#, php-format
-msgid "%s : Message delivery failed."
-msgstr "%s: Aflevering bericht mislukt."
+#: ../../Zotlabs/Module/Filestorage.php:160
+msgid "Include all files and sub folders"
+msgstr "Toepassen op alle bestanden en submappen"
-#: ../../Zotlabs/Module/Invite.php:83
-#, php-format
-msgid "%d message sent."
-msgid_plural "%d messages sent."
-msgstr[0] "%d bericht verzonden."
-msgstr[1] "%d berichten verzonden."
+#: ../../Zotlabs/Module/Filestorage.php:161
+msgid "Return to file list"
+msgstr "Terugkeren naar bestandlijst "
-#: ../../Zotlabs/Module/Invite.php:102
-msgid "You have no more invitations available"
-msgstr "Je hebt geen uitnodigingen meer beschikbaar"
+#: ../../Zotlabs/Module/Filestorage.php:163
+msgid "Copy/paste this code to attach file to a post"
+msgstr "Kopieer/plak deze code om het bestand aan een bericht te koppelen"
-#: ../../Zotlabs/Module/Invite.php:133
-msgid "Send invitations"
-msgstr "Uitnodigingen verzenden"
+#: ../../Zotlabs/Module/Filestorage.php:164
+msgid "Copy/paste this URL to link file from a web page"
+msgstr "Kopieer/plak deze URL om het bestand aan een externe webpagina te koppelen"
-#: ../../Zotlabs/Module/Invite.php:134
-msgid "Enter email addresses, one per line:"
-msgstr "Voer e-mailadressen in, één per regel:"
+#: ../../Zotlabs/Module/Filestorage.php:166
+msgid "Share this file"
+msgstr "Dit bestand delen"
-#: ../../Zotlabs/Module/Invite.php:135 ../../Zotlabs/Module/Mail.php:249
-msgid "Your message:"
-msgstr "Jouw bericht:"
+#: ../../Zotlabs/Module/Filestorage.php:167
+msgid "Show URL to this file"
+msgstr "Toon URL van dit bestand"
-#: ../../Zotlabs/Module/Invite.php:136
-msgid "Please join my community on $Projectname."
-msgstr "Hierbij nodig ik je uit om mij, en andere vrienden en kennissen, op $Projectname te vergezellen. Lees meer over $Projectname op http://hubzilla.org"
+#: ../../Zotlabs/Module/Filestorage.php:168
+msgid "Notify your contacts about this file"
+msgstr "Jouw connecties over dit bestand berichten"
-#: ../../Zotlabs/Module/Invite.php:138
-msgid "You will need to supply this invitation code:"
-msgstr "Je moet deze uitnodigingscode opgeven:"
+#: ../../Zotlabs/Module/Settings.php:64
+msgid "Name is required"
+msgstr "Naam is vereist"
-#: ../../Zotlabs/Module/Invite.php:139
-msgid ""
-"1. Register at any $Projectname location (they are all inter-connected)"
-msgstr "1. Registreer je op een willekeurige $Projectname-hub (ze zijn allemaal onderling met elkaar verbonden):"
+#: ../../Zotlabs/Module/Settings.php:68
+msgid "Key and Secret are required"
+msgstr "Key en secret zijn vereist"
-#: ../../Zotlabs/Module/Invite.php:141
-msgid "2. Enter my $Projectname network address into the site searchbar."
-msgstr "2. Nadat je bent ingelogd en een kanaal hebt aangemaakt kan je mijn $Projectname-kanaaladres in het zoekveld invullen:"
+#: ../../Zotlabs/Module/Settings.php:72 ../../Zotlabs/Module/Settings.php:708
+#: ../../Zotlabs/Module/Admin.php:1449 ../../Zotlabs/Lib/Apps.php:334
+msgid "Update"
+msgstr "Bijwerken"
-#: ../../Zotlabs/Module/Invite.php:142
-msgid "or visit"
-msgstr "of bezoek"
+#: ../../Zotlabs/Module/Settings.php:138
+#, php-format
+msgid "This channel is limited to %d tokens"
+msgstr "Dit kanaal heeft een limiet van %d tokens"
-#: ../../Zotlabs/Module/Invite.php:144
-msgid "3. Click [Connect]"
-msgstr "3. Klik op [+ Verbinden]"
+#: ../../Zotlabs/Module/Settings.php:144
+msgid "Name and Password are required."
+msgstr "Naam en wachtwoord zijn vereist"
-#: ../../Zotlabs/Module/Lockview.php:61
-msgid "Remote privacy information not available."
-msgstr "Privacy-informatie op afstand niet beschikbaar."
+#: ../../Zotlabs/Module/Settings.php:184
+msgid "Token saved."
+msgstr "Token opgeslagen."
-#: ../../Zotlabs/Module/Lockview.php:82
-msgid "Visible to:"
-msgstr "Zichtbaar voor:"
+#: ../../Zotlabs/Module/Settings.php:312
+msgid "Not valid email."
+msgstr "Geen geldig e-mailadres."
-#: ../../Zotlabs/Module/Locs.php:25 ../../Zotlabs/Module/Locs.php:54
-msgid "Location not found."
-msgstr "Locatie niet gevonden."
+#: ../../Zotlabs/Module/Settings.php:315
+msgid "Protected email address. Cannot change to that email."
+msgstr "Beschermd e-mailadres. Kan dat e-mailadres niet gebruiken."
-#: ../../Zotlabs/Module/Locs.php:62
-msgid "Location lookup failed."
-msgstr "Opzoeken locatie mislukt"
+#: ../../Zotlabs/Module/Settings.php:324
+msgid "System failure storing new email. Please try again."
+msgstr "Systeemfout opslaan van nieuwe e-mail. Probeer het nog een keer."
-#: ../../Zotlabs/Module/Locs.php:66
-msgid ""
-"Please select another location to become primary before removing the primary"
-" location."
-msgstr "Kies eerst een andere primaire locatie alvorens de huidige primaire locatie te verwijderen."
+#: ../../Zotlabs/Module/Settings.php:341
+msgid "Password verification failed."
+msgstr "Wachtwoordverificatie mislukt"
-#: ../../Zotlabs/Module/Locs.php:95
-msgid "Syncing locations"
-msgstr "Locaties synchronizeren"
+#: ../../Zotlabs/Module/Settings.php:348
+msgid "Passwords do not match. Password unchanged."
+msgstr "Wachtwoorden komen niet overeen. Wachtwoord onveranderd."
-#: ../../Zotlabs/Module/Locs.php:105
-msgid "No locations found."
-msgstr "Geen locaties gevonden."
+#: ../../Zotlabs/Module/Settings.php:352
+msgid "Empty passwords are not allowed. Password unchanged."
+msgstr "Lege wachtwoorden zijn niet toegestaan. Wachtwoord onveranderd."
-#: ../../Zotlabs/Module/Locs.php:116
-msgid "Manage Channel Locations"
-msgstr "Kanaallocaties beheren"
+#: ../../Zotlabs/Module/Settings.php:366
+msgid "Password changed."
+msgstr "Wachtwoord veranderd."
-#: ../../Zotlabs/Module/Locs.php:118 ../../Zotlabs/Module/Profiles.php:470
-#: ../../Zotlabs/Module/Admin.php:1224
-msgid "Address"
-msgstr "Kanaaladres"
+#: ../../Zotlabs/Module/Settings.php:368
+msgid "Password update failed. Please try again."
+msgstr "Bijwerken wachtwoord mislukt. Probeer opnieuw."
-#: ../../Zotlabs/Module/Locs.php:119
-msgid "Primary"
-msgstr "Primair"
+#: ../../Zotlabs/Module/Settings.php:429 ../../Zotlabs/Module/Settings.php:433
+#: ../../Zotlabs/Module/Settings.php:434 ../../Zotlabs/Module/Settings.php:437
+#: ../../Zotlabs/Module/Settings.php:448 ../../Zotlabs/Module/Connedit.php:627
+#: ../../include/widgets.php:495 ../../include/channel.php:402
+#: ../../include/channel.php:403 ../../include/channel.php:410
+#: ../../include/selectors.php:123
+msgid "Friends"
+msgstr "Vrienden"
-#: ../../Zotlabs/Module/Locs.php:120 ../../Zotlabs/Module/Menu.php:113
-msgid "Drop"
-msgstr "Verwijderen"
+#: ../../Zotlabs/Module/Settings.php:617
+msgid "Settings updated."
+msgstr "Instellingen bijgewerkt."
-#: ../../Zotlabs/Module/Locs.php:122
-msgid "Sync Now"
-msgstr "Nu synchroniseren"
+#: ../../Zotlabs/Module/Settings.php:681 ../../Zotlabs/Module/Settings.php:707
+#: ../../Zotlabs/Module/Settings.php:743
+msgid "Add application"
+msgstr "Applicatie toevoegen"
-#: ../../Zotlabs/Module/Locs.php:123
-msgid "Please wait several minutes between consecutive operations."
-msgstr "Wacht enkele minuten tussen opeenvolgende handelingen."
+#: ../../Zotlabs/Module/Settings.php:684
+msgid "Name of application"
+msgstr "Naam van applicatie"
-#: ../../Zotlabs/Module/Locs.php:124
-msgid ""
-"When possible, drop a location by logging into that website/hub and removing"
-" your channel."
-msgstr "Wij adviseren, wanneer dit (nog) mogelijk is, de locatie te verwijderen door op de hub van de kloon in te loggen en het kanaal daar te verwijderen."
+#: ../../Zotlabs/Module/Settings.php:685 ../../Zotlabs/Module/Settings.php:711
+msgid "Consumer Key"
+msgstr "Consumer key"
-#: ../../Zotlabs/Module/Locs.php:125
-msgid "Use this form to drop the location if the hub is no longer operating."
-msgstr "Gebruik dit formulier om de locatie te verwijderen wanneer de hub van de kloon niet meer operationeel is."
+#: ../../Zotlabs/Module/Settings.php:685 ../../Zotlabs/Module/Settings.php:686
+msgid "Automatically generated - change if desired. Max length 20"
+msgstr "Automatische gegenereerd - verander wanneer gewenst. Maximale lengte is 20"
-#: ../../Zotlabs/Module/Magic.php:71
-msgid "Hub not found."
-msgstr "Hub niet gevonden."
+#: ../../Zotlabs/Module/Settings.php:686 ../../Zotlabs/Module/Settings.php:712
+msgid "Consumer Secret"
+msgstr "Consumer secret"
-#: ../../Zotlabs/Module/Mail.php:38
-msgid "Unable to lookup recipient."
-msgstr "Niet in staat om ontvanger op te zoeken."
+#: ../../Zotlabs/Module/Settings.php:687 ../../Zotlabs/Module/Settings.php:713
+msgid "Redirect"
+msgstr "Redirect/doorverwijzing"
-#: ../../Zotlabs/Module/Mail.php:45
-msgid "Unable to communicate with requested channel."
-msgstr "Niet in staat om met het aangevraagde kanaal te communiceren."
+#: ../../Zotlabs/Module/Settings.php:687
+msgid ""
+"Redirect URI - leave blank unless your application specifically requires "
+"this"
+msgstr "URI voor redirect - laat leeg, behalve wanneer de applicatie dit vereist"
-#: ../../Zotlabs/Module/Mail.php:52
-msgid "Cannot verify requested channel."
-msgstr "Kan opgevraagd kanaal niet verifieren"
+#: ../../Zotlabs/Module/Settings.php:688 ../../Zotlabs/Module/Settings.php:714
+msgid "Icon url"
+msgstr "Pictogram-URL"
-#: ../../Zotlabs/Module/Mail.php:78
-msgid "Selected channel has private message restrictions. Send failed."
-msgstr "Gekozen kanaal heeft restricties voor privéberichten. Verzenden mislukt."
+#: ../../Zotlabs/Module/Settings.php:688 ../../Zotlabs/Module/Sources.php:112
+#: ../../Zotlabs/Module/Sources.php:147
+msgid "Optional"
+msgstr "Optioneel"
-#: ../../Zotlabs/Module/Mail.php:143
-msgid "Messages"
-msgstr "Berichten"
+#: ../../Zotlabs/Module/Settings.php:699
+msgid "Application not found."
+msgstr "Applicatie niet gevonden."
-#: ../../Zotlabs/Module/Mail.php:178
-msgid "Message recalled."
-msgstr "Bericht ingetrokken."
+#: ../../Zotlabs/Module/Settings.php:742
+msgid "Connected Apps"
+msgstr "Verbonden applicaties"
-#: ../../Zotlabs/Module/Mail.php:191
-msgid "Conversation removed."
-msgstr "Conversatie verwijderd"
+#: ../../Zotlabs/Module/Settings.php:746
+msgid "Client key starts with"
+msgstr "Client key begint met"
-#: ../../Zotlabs/Module/Mail.php:206 ../../Zotlabs/Module/Mail.php:315
-msgid "Expires YYYY-MM-DD HH:MM"
-msgstr "Verloopt op DD-MM-YYYY om HH:MM"
+#: ../../Zotlabs/Module/Settings.php:747
+msgid "No name"
+msgstr "Geen naam"
-#: ../../Zotlabs/Module/Mail.php:234
-msgid "Requested channel is not in this network"
-msgstr "Opgevraagd kanaal is niet in dit netwerk beschikbaar"
+#: ../../Zotlabs/Module/Settings.php:748
+msgid "Remove authorization"
+msgstr "Autorisatie verwijderen"
-#: ../../Zotlabs/Module/Mail.php:242
-msgid "Send Private Message"
-msgstr "Privébericht versturen"
+#: ../../Zotlabs/Module/Settings.php:761
+msgid "No feature settings configured"
+msgstr "Geen plugin-instellingen aanwezig"
-#: ../../Zotlabs/Module/Mail.php:243 ../../Zotlabs/Module/Mail.php:368
-msgid "To:"
-msgstr "Aan:"
+#: ../../Zotlabs/Module/Settings.php:768
+msgid "Feature/Addon Settings"
+msgstr "Plugin-instellingen"
-#: ../../Zotlabs/Module/Mail.php:246 ../../Zotlabs/Module/Mail.php:370
-msgid "Subject:"
-msgstr "Onderwerp:"
+#: ../../Zotlabs/Module/Settings.php:791
+msgid "Account Settings"
+msgstr "Account-instellingen"
-#: ../../Zotlabs/Module/Mail.php:251 ../../Zotlabs/Module/Mail.php:376
-#: ../../include/conversation.php:1220
-msgid "Attach file"
-msgstr "Bestand toevoegen"
+#: ../../Zotlabs/Module/Settings.php:792
+msgid "Current Password"
+msgstr "Huidig wachtwoord"
-#: ../../Zotlabs/Module/Mail.php:253
-msgid "Send"
-msgstr "Verzenden"
+#: ../../Zotlabs/Module/Settings.php:793
+msgid "Enter New Password"
+msgstr "Nieuw wachtwoord invoeren"
-#: ../../Zotlabs/Module/Mail.php:256 ../../Zotlabs/Module/Mail.php:381
-#: ../../include/conversation.php:1251
-msgid "Set expiration date"
-msgstr "Verloopdatum instellen"
+#: ../../Zotlabs/Module/Settings.php:794
+msgid "Confirm New Password"
+msgstr "Nieuw wachtwoord bevestigen"
-#: ../../Zotlabs/Module/Mail.php:340
-msgid "Delete message"
-msgstr "Bericht verwijderen"
+#: ../../Zotlabs/Module/Settings.php:794
+msgid "Leave password fields blank unless changing"
+msgstr "Laat de wachtwoordvelden leeg, behalve wanneer je deze wil veranderen"
-#: ../../Zotlabs/Module/Mail.php:341
-msgid "Delivery report"
-msgstr "Afleveringsrapport"
+#: ../../Zotlabs/Module/Settings.php:796
+#: ../../Zotlabs/Module/Settings.php:1236
+msgid "Email Address:"
+msgstr "E-mailadres:"
-#: ../../Zotlabs/Module/Mail.php:342
-msgid "Recall message"
-msgstr "Bericht intrekken"
+#: ../../Zotlabs/Module/Settings.php:797
+#: ../../Zotlabs/Module/Removeaccount.php:61
+msgid "Remove Account"
+msgstr "Account verwijderen"
-#: ../../Zotlabs/Module/Mail.php:344
-msgid "Message has been recalled."
-msgstr "Bericht is ingetrokken."
+#: ../../Zotlabs/Module/Settings.php:798
+msgid "Remove this account including all its channels"
+msgstr "Dit account en al zijn kanalen verwijderen"
-#: ../../Zotlabs/Module/Mail.php:361
-msgid "Delete Conversation"
-msgstr "Verwijder conversatie"
+#: ../../Zotlabs/Module/Settings.php:832
+msgid ""
+"Use this form to create temporary access identifiers to share things with "
+"non-members. These identities may be used in Access Control Lists and "
+"visitors may login using these credentials to access private content."
+msgstr "Gebruik dit formulier om tijdelijke identiteiten aan te maken, waarmee je bepaalde informatie met niet-leden kan delen. Deze identiteiten kunnen onder Permissies (handmatige selectie) worden gebruikt. Gasten kunnen inloggen met onderstaande gegevens om zo toegang te krijgen tot privéinhoud."
-#: ../../Zotlabs/Module/Mail.php:363
+#: ../../Zotlabs/Module/Settings.php:834
msgid ""
-"No secure communications available. You <strong>may</strong> be able to "
-"respond from the sender's profile page."
-msgstr "Geen veilige communicatie beschikbaar. <strong>Mogelijk</strong> kan je reageren op de kanaalpagina van de afzender."
+"You may also provide <em>dropbox</em> style access links to friends and "
+"associates by adding the Login Password to any specific site URL as shown. "
+"Examples:"
+msgstr "Je kan ook <em>dropbox</em>-achtige links aan mensen geven door bovenstaand wachtwoord op onderstaande manier aan een hub-URL toe te voegen. Voorbeelden:"
-#: ../../Zotlabs/Module/Mail.php:367
-msgid "Send Reply"
-msgstr "Antwoord versturen"
+#: ../../Zotlabs/Module/Settings.php:869 ../../include/widgets.php:614
+msgid "Guest Access Tokens"
+msgstr "Gasttoegang"
-#: ../../Zotlabs/Module/Mail.php:372
-#, php-format
-msgid "Your message for %s (%s):"
-msgstr "Jouw privébericht aan %s (%s):"
+#: ../../Zotlabs/Module/Settings.php:876
+msgid "Login Name"
+msgstr "Inlognaam"
-#: ../../Zotlabs/Module/Manage.php:136
-#: ../../Zotlabs/Module/New_channel.php:121
-#, php-format
-msgid "You have created %1$.0f of %2$.0f allowed channels."
-msgstr "Je hebt %1$.0f van totaal %2$.0f toegestane kanalen aangemaakt."
+#: ../../Zotlabs/Module/Settings.php:877
+msgid "Login Password"
+msgstr "Wachtwoord:"
-#: ../../Zotlabs/Module/Manage.php:143
-msgid "Create a new channel"
-msgstr "Nieuw kanaal aanmaken"
+#: ../../Zotlabs/Module/Settings.php:878
+msgid "Expires (yyyy-mm-dd)"
+msgstr "Geldig t/m (yyyy-mm-dd)"
-#: ../../Zotlabs/Module/Manage.php:164 ../../Zotlabs/Lib/Apps.php:213
-#: ../../include/nav.php:206
-msgid "Channel Manager"
-msgstr "Kanaalbeheer"
+#: ../../Zotlabs/Module/Settings.php:879 ../../Zotlabs/Module/Connedit.php:782
+msgid "Their Settings"
+msgstr "Hun instellingen"
-#: ../../Zotlabs/Module/Manage.php:165
-msgid "Current Channel"
-msgstr "Huidig kanaal"
+#: ../../Zotlabs/Module/Settings.php:880 ../../Zotlabs/Module/Connedit.php:783
+msgid "My Settings"
+msgstr "Mijn instellingen"
-#: ../../Zotlabs/Module/Manage.php:167
-msgid "Switch to one of your channels by selecting it."
-msgstr "Activeer een van jouw andere kanalen door er op te klikken."
+#: ../../Zotlabs/Module/Settings.php:882 ../../Zotlabs/Module/Connedit.php:778
+msgid "inherited"
+msgstr "geërfd"
-#: ../../Zotlabs/Module/Manage.php:168
-msgid "Default Channel"
-msgstr "Standaardkanaal"
+#: ../../Zotlabs/Module/Settings.php:884 ../../Zotlabs/Module/Connedit.php:785
+msgid "Individual Permissions"
+msgstr "Individuele permissies"
-#: ../../Zotlabs/Module/Manage.php:169
-msgid "Make Default"
-msgstr "Als standaard instellen"
+#: ../../Zotlabs/Module/Settings.php:885 ../../Zotlabs/Module/Connedit.php:786
+msgid ""
+"Some permissions may be inherited from your channel's <a "
+"href=\"settings\"><strong>privacy settings</strong></a>, which have higher "
+"priority than individual settings. You can <strong>not</strong> change those"
+" settings here."
+msgstr "Sommige permissies worden mogelijk overgeërfd van de <a href=\"settings\">privacy-instellingen</a> van jouw kanaal, die een hogere prioriteit hebben dan deze individuele instellingen. Je kan je deze overgeërfde permissies hier <strong>niet</strong> veranderen."
-#: ../../Zotlabs/Module/Manage.php:172
-#, php-format
-msgid "%d new messages"
-msgstr "%d nieuwe berichten"
+#: ../../Zotlabs/Module/Settings.php:903 ../../Zotlabs/Module/Admin.php:690
+#: ../../Zotlabs/Module/Admin.php:691
+msgid "Off"
+msgstr "Uit"
-#: ../../Zotlabs/Module/Manage.php:173
-#, php-format
-msgid "%d new introductions"
-msgstr "%d nieuwe connectieverzoeken"
+#: ../../Zotlabs/Module/Settings.php:903 ../../Zotlabs/Module/Admin.php:690
+#: ../../Zotlabs/Module/Admin.php:691
+msgid "On"
+msgstr "Aan"
-#: ../../Zotlabs/Module/Manage.php:175
-msgid "Delegated Channel"
-msgstr "Uitbesteed kanaal"
+#: ../../Zotlabs/Module/Settings.php:910
+msgid "Additional Features"
+msgstr "Extra functies"
-#: ../../Zotlabs/Module/Lostpass.php:19
-msgid "No valid account found."
-msgstr "Geen geldige account gevonden."
+#: ../../Zotlabs/Module/Settings.php:934
+msgid "Connector Settings"
+msgstr "Instellingen externe koppelingen"
-#: ../../Zotlabs/Module/Lostpass.php:33
-msgid "Password reset request issued. Check your email."
-msgstr "Het verzoek om je wachtwoord opnieuw in te stellen is behandeld. Controleer je e-mail."
+#: ../../Zotlabs/Module/Settings.php:981
+msgid "No special theme for mobile devices"
+msgstr "Geen speciaal thema voor mobiele apparaten"
-#: ../../Zotlabs/Module/Lostpass.php:39 ../../Zotlabs/Module/Lostpass.php:107
+#: ../../Zotlabs/Module/Settings.php:984
#, php-format
-msgid "Site Member (%s)"
-msgstr "Lid van hub (%s)"
+msgid "%s - (Experimental)"
+msgstr "%s - (experimenteel)"
-#: ../../Zotlabs/Module/Lostpass.php:44
-#, php-format
-msgid "Password reset requested at %s"
-msgstr "Verzoek tot het opnieuw instellen van een wachtwoord op %s is ingediend"
+#: ../../Zotlabs/Module/Settings.php:987 ../../Zotlabs/Module/Admin.php:414
+msgid "mobile"
+msgstr "mobiel"
-#: ../../Zotlabs/Module/Lostpass.php:67
-msgid ""
-"Request could not be verified. (You may have previously submitted it.) "
-"Password reset failed."
-msgstr "Het verzoek kon niet worden geverifieerd. (Mogelijk heb je al eerder een verzoek ingediend.) Opnieuw instellen van wachtwoord is mislukt."
+#: ../../Zotlabs/Module/Settings.php:1035
+msgid "Display Settings"
+msgstr "Weergave-instellingen"
-#: ../../Zotlabs/Module/Lostpass.php:90 ../../boot.php:1711
-msgid "Password Reset"
-msgstr "Wachtwoord vergeten?"
+#: ../../Zotlabs/Module/Settings.php:1036
+msgid "Theme Settings"
+msgstr "Thema-instellingen"
-#: ../../Zotlabs/Module/Lostpass.php:91
-msgid "Your password has been reset as requested."
-msgstr "Jouw wachtwoord is opnieuw ingesteld zoals je had verzocht."
+#: ../../Zotlabs/Module/Settings.php:1037
+msgid "Custom Theme Settings"
+msgstr "Handmatige thema-instellingen"
-#: ../../Zotlabs/Module/Lostpass.php:92
-msgid "Your new password is"
-msgstr "Jouw nieuwe wachtwoord is"
+#: ../../Zotlabs/Module/Settings.php:1038
+msgid "Content Settings"
+msgstr "Inhoudsinstellingen"
-#: ../../Zotlabs/Module/Lostpass.php:93
-msgid "Save or copy your new password - and then"
-msgstr "Kopieer of sla je nieuwe wachtwoord op - en"
+#: ../../Zotlabs/Module/Settings.php:1044
+msgid "Display Theme:"
+msgstr "Gebruik thema:"
-#: ../../Zotlabs/Module/Lostpass.php:94
-msgid "click here to login"
-msgstr "klik dan hier om in te loggen"
+#: ../../Zotlabs/Module/Settings.php:1045
+msgid "Select scheme"
+msgstr "Kies schema van thema"
-#: ../../Zotlabs/Module/Lostpass.php:95
+#: ../../Zotlabs/Module/Settings.php:1047
+msgid "Mobile Theme:"
+msgstr "Mobiel thema:"
+
+#: ../../Zotlabs/Module/Settings.php:1048
+msgid "Preload images before rendering the page"
+msgstr "Afbeeldingen laden voordat de pagina wordt weergegeven"
+
+#: ../../Zotlabs/Module/Settings.php:1048
msgid ""
-"Your password may be changed from the <em>Settings</em> page after "
-"successful login."
-msgstr "Jouw wachtwoord kan worden veranderd onder <em>instellingen</em>, nadat je succesvol bent ingelogd."
+"The subjective page load time will be longer but the page will be ready when"
+" displayed"
+msgstr "De laadtijd van een pagina lijkt langer, maar de pagina is wel meteen helemaal geladen wanneer deze wordt weergeven"
-#: ../../Zotlabs/Module/Lostpass.php:112
-#, php-format
-msgid "Your password has changed at %s"
-msgstr "Jouw wachtwoord op %s is veranderd"
+#: ../../Zotlabs/Module/Settings.php:1049
+msgid "Enable user zoom on mobile devices"
+msgstr "Inzoomen op smartphones en tablets toestaan"
-#: ../../Zotlabs/Module/Lostpass.php:127
-msgid "Forgot your Password?"
-msgstr "Wachtwoord vergeten?"
+#: ../../Zotlabs/Module/Settings.php:1050
+msgid "Update browser every xx seconds"
+msgstr "Ververs de webbrowser om de zoveel seconde"
-#: ../../Zotlabs/Module/Lostpass.php:128
-msgid ""
-"Enter your email address and submit to have your password reset. Then check "
-"your email for further instructions."
-msgstr "Voer je e-mailadres in en verstuur deze om je wachtwoord opnieuw in te stellen. Controleer hierna hier je e-mail voor verdere instructies."
+#: ../../Zotlabs/Module/Settings.php:1050
+msgid "Minimum of 10 seconds, no maximum"
+msgstr "Minimaal 10 seconde, geen maximum"
-#: ../../Zotlabs/Module/Lostpass.php:129
-msgid "Email Address"
-msgstr "E-mailadres"
+#: ../../Zotlabs/Module/Settings.php:1051
+msgid "Maximum number of conversations to load at any time:"
+msgstr "Maximaal aantal conversaties die per keer geladen worden:"
-#: ../../Zotlabs/Module/Lostpass.php:130
-msgid "Reset"
-msgstr "Opnieuw instellen"
+#: ../../Zotlabs/Module/Settings.php:1051
+msgid "Maximum of 100 items"
+msgstr "Maximaal 100 conversaties"
-#: ../../Zotlabs/Module/Menu.php:49
-msgid "Unable to update menu."
-msgstr "Niet in staat om menu aan te passen"
+#: ../../Zotlabs/Module/Settings.php:1052
+msgid "Show emoticons (smilies) as images"
+msgstr "Toon emoticons (smilies) als afbeeldingen"
-#: ../../Zotlabs/Module/Menu.php:60
-msgid "Unable to create menu."
-msgstr "Niet in staat om menu aan te maken."
+#: ../../Zotlabs/Module/Settings.php:1053
+msgid "Link post titles to source"
+msgstr "Berichtkoppen naar originele locatie linken"
-#: ../../Zotlabs/Module/Menu.php:98 ../../Zotlabs/Module/Menu.php:110
-msgid "Menu Name"
-msgstr "Menunaam"
+#: ../../Zotlabs/Module/Settings.php:1054
+msgid "System Page Layout Editor - (advanced)"
+msgstr "Lay-out bewerken van systeempagina's (geavanceerd)"
-#: ../../Zotlabs/Module/Menu.php:98
-msgid "Unique name (not visible on webpage) - required"
-msgstr "Unieke naam vereist (niet zichtbaar op webpagina)"
+#: ../../Zotlabs/Module/Settings.php:1057
+msgid "Use blog/list mode on channel page"
+msgstr "Gebruik blog/lijst-modus op kanaalpagina"
-#: ../../Zotlabs/Module/Menu.php:99 ../../Zotlabs/Module/Menu.php:111
-msgid "Menu Title"
-msgstr "Menutitel"
+#: ../../Zotlabs/Module/Settings.php:1057
+#: ../../Zotlabs/Module/Settings.php:1058
+msgid "(comments displayed separately)"
+msgstr "(reacties worden afzonderlijk weergeven)"
-#: ../../Zotlabs/Module/Menu.php:99
-msgid "Visible on webpage - leave empty for no title"
-msgstr "Zichtbaar op webpagina (leeg laten voor geen titel)"
+#: ../../Zotlabs/Module/Settings.php:1058
+msgid "Use blog/list mode on grid page"
+msgstr "Gebruik blog/lijst-modus op gridpagina"
-#: ../../Zotlabs/Module/Menu.php:100
-msgid "Allow Bookmarks"
-msgstr "Bladwijzers toestaan"
+#: ../../Zotlabs/Module/Settings.php:1059
+msgid "Channel page max height of content (in pixels)"
+msgstr "Maximale hoogte berichtinhoud op kanaalpagina (in pixels)"
-#: ../../Zotlabs/Module/Menu.php:100 ../../Zotlabs/Module/Menu.php:157
-msgid "Menu may be used to store saved bookmarks"
-msgstr "Menu kan gebruikt worden om bladwijzers in op te slaan"
+#: ../../Zotlabs/Module/Settings.php:1059
+#: ../../Zotlabs/Module/Settings.php:1060
+msgid "click to expand content exceeding this height"
+msgstr "klik om inhoud uit te klappen die deze hoogte overschrijdt"
-#: ../../Zotlabs/Module/Menu.php:101 ../../Zotlabs/Module/Menu.php:159
-msgid "Submit and proceed"
-msgstr "Opslaan en doorgaan"
+#: ../../Zotlabs/Module/Settings.php:1060
+msgid "Grid page max height of content (in pixels)"
+msgstr "Maximale hoogte berichtinhoud op gridpagina (in pixels)"
-#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2266
-msgid "Menus"
-msgstr "Menu's"
+#: ../../Zotlabs/Module/Settings.php:1090
+msgid "Nobody except yourself"
+msgstr "Niemand, behalve jezelf"
-#: ../../Zotlabs/Module/Menu.php:117
-msgid "Bookmarks allowed"
-msgstr "Bladwijzers toegestaan"
+#: ../../Zotlabs/Module/Settings.php:1091
+msgid "Only those you specifically allow"
+msgstr "Alleen connecties met uitdrukkelijke toestemming"
-#: ../../Zotlabs/Module/Menu.php:119
-msgid "Delete this menu"
-msgstr "Menu verwijderen"
+#: ../../Zotlabs/Module/Settings.php:1092
+msgid "Approved connections"
+msgstr "Geaccepteerde connecties"
-#: ../../Zotlabs/Module/Menu.php:120 ../../Zotlabs/Module/Menu.php:154
-msgid "Edit menu contents"
-msgstr "Bewerk de inhoud van het menu"
+#: ../../Zotlabs/Module/Settings.php:1093
+msgid "Any connections"
+msgstr "Alle connecties"
-#: ../../Zotlabs/Module/Menu.php:121
-msgid "Edit this menu"
-msgstr "Dit menu bewerken"
+#: ../../Zotlabs/Module/Settings.php:1094
+msgid "Anybody on this website"
+msgstr "Iedereen op deze hub"
-#: ../../Zotlabs/Module/Menu.php:136
-msgid "Menu could not be deleted."
-msgstr "Menu kon niet verwijderd worden."
+#: ../../Zotlabs/Module/Settings.php:1095
+msgid "Anybody in this network"
+msgstr "Iedereen in dit netwerk"
-#: ../../Zotlabs/Module/Menu.php:144 ../../Zotlabs/Module/Mitem.php:28
-msgid "Menu not found."
-msgstr "Menu niet gevonden."
+#: ../../Zotlabs/Module/Settings.php:1096
+msgid "Anybody authenticated"
+msgstr "Geauthenticeerd"
-#: ../../Zotlabs/Module/Menu.php:149
-msgid "Edit Menu"
-msgstr "Menu bewerken"
+#: ../../Zotlabs/Module/Settings.php:1097
+msgid "Anybody on the internet"
+msgstr "Iedereen op het internet"
-#: ../../Zotlabs/Module/Menu.php:153
-msgid "Add or remove entries to this menu"
-msgstr "Items aan dit menu toevoegen of verwijder"
+#: ../../Zotlabs/Module/Settings.php:1171
+msgid "Publish your default profile in the network directory"
+msgstr "Publiceer je standaardprofiel in de kanalengids"
-#: ../../Zotlabs/Module/Menu.php:155
-msgid "Menu name"
-msgstr "Naam van menu"
+#: ../../Zotlabs/Module/Settings.php:1176
+msgid "Allow us to suggest you as a potential friend to new members?"
+msgstr "Sta ons toe om jouw kanaal als mogelijke connectie voor te stellen aan nieuwe kanalen"
-#: ../../Zotlabs/Module/Menu.php:155
-msgid "Must be unique, only seen by you"
-msgstr "Moet uniek zijn en is alleen zichtbaar voor jou."
+#: ../../Zotlabs/Module/Settings.php:1185
+msgid "Your channel address is"
+msgstr "Jouw kanaaladres is"
-#: ../../Zotlabs/Module/Menu.php:156
-msgid "Menu title"
-msgstr "Titel van menu"
+#: ../../Zotlabs/Module/Settings.php:1227
+msgid "Channel Settings"
+msgstr "Kanaal-instellingen"
-#: ../../Zotlabs/Module/Menu.php:156
-msgid "Menu title as seen by others"
-msgstr "Titel van menu zoals anderen dat zien."
+#: ../../Zotlabs/Module/Settings.php:1234
+msgid "Basic Settings"
+msgstr "Basis-instellingen"
-#: ../../Zotlabs/Module/Menu.php:157
-msgid "Allow bookmarks"
-msgstr "Bladwijzers toestaan"
+#: ../../Zotlabs/Module/Settings.php:1235 ../../include/channel.php:1164
+msgid "Full Name:"
+msgstr "Volledige naam:"
-#: ../../Zotlabs/Module/Menu.php:166 ../../Zotlabs/Module/Mitem.php:120
-#: ../../Zotlabs/Module/Xchan.php:41
-msgid "Not found."
-msgstr "Niet gevonden."
+#: ../../Zotlabs/Module/Settings.php:1237
+msgid "Your Timezone:"
+msgstr "Jouw tijdzone:"
-#: ../../Zotlabs/Module/Mood.php:67 ../../include/conversation.php:260
-#, php-format
-msgctxt "mood"
-msgid "%1$s is %2$s"
-msgstr "%1$s is %2$s"
+#: ../../Zotlabs/Module/Settings.php:1238
+msgid "Default Post Location:"
+msgstr "Standaardlocatie bericht:"
-#: ../../Zotlabs/Module/Mood.php:135 ../../Zotlabs/Lib/Apps.php:225
-msgid "Mood"
-msgstr "Stemming"
+#: ../../Zotlabs/Module/Settings.php:1238
+msgid "Geographical location to display on your posts"
+msgstr "Geografische locatie die bij het bericht moet worden vermeld"
-#: ../../Zotlabs/Module/Mood.php:136
-msgid "Set your current mood and tell your friends"
-msgstr "Noteer je huidige stemming en toon het aan je connecties"
+#: ../../Zotlabs/Module/Settings.php:1239
+msgid "Use Browser Location:"
+msgstr "Locatie van webbrowser gebruiken:"
-#: ../../Zotlabs/Module/Match.php:26
-msgid "Profile Match"
-msgstr "Profielovereenkomst"
+#: ../../Zotlabs/Module/Settings.php:1241
+msgid "Adult Content"
+msgstr "Inhoud voor volwassenen"
-#: ../../Zotlabs/Module/Match.php:35
-msgid "No keywords to match. Please add keywords to your default profile."
-msgstr "Je hebt geen trefwoorden waarmee overeenkomsten gevonden kunnen worden. Voeg enkele trefwoorden aan je standaardprofiel toe."
+#: ../../Zotlabs/Module/Settings.php:1241
+msgid ""
+"This channel frequently or regularly publishes adult content. (Please tag "
+"any adult material and/or nudity with #NSFW)"
+msgstr "Dit kanaal publiceert regelmatig of vaak materiaal dat alleen geschikt is voor volwassenen. (Gebruik de tag #NSFW in berichten met een seksueel getinte inhoud of ander voor minderjarigen ongeschikt materiaal)"
-#: ../../Zotlabs/Module/Match.php:67
-msgid "is interested in:"
-msgstr "is geïnteresseerd in:"
+#: ../../Zotlabs/Module/Settings.php:1243
+msgid "Security and Privacy Settings"
+msgstr "Veiligheids- en privacy-instellingen"
-#: ../../Zotlabs/Module/Match.php:74
-msgid "No matches"
-msgstr "Geen overeenkomsten"
+#: ../../Zotlabs/Module/Settings.php:1246
+msgid "Your permissions are already configured. Click to view/adjust"
+msgstr "Jouw permissies zijn al ingesteld. Klik om ze te bekijken of aan te passen."
-#: ../../Zotlabs/Module/Network.php:96
-msgid "No such group"
-msgstr "Collectie niet gevonden"
+#: ../../Zotlabs/Module/Settings.php:1248
+msgid "Hide my online presence"
+msgstr "Verberg mijn aanwezigheid"
-#: ../../Zotlabs/Module/Network.php:136
-msgid "No such channel"
-msgstr "Niet zo'n kanaal"
+#: ../../Zotlabs/Module/Settings.php:1248
+msgid "Prevents displaying in your profile that you are online"
+msgstr "Voorkomt dat op je kanaalpagina te zien valt dat je momenteel op $Projectname aanwezig bent"
-#: ../../Zotlabs/Module/Network.php:141
-msgid "forum"
-msgstr "forum"
+#: ../../Zotlabs/Module/Settings.php:1250
+msgid "Simple Privacy Settings:"
+msgstr "Eenvoudige privacy-instellingen:"
-#: ../../Zotlabs/Module/Network.php:153
-msgid "Search Results For:"
-msgstr "Zoekresultaten voor:"
+#: ../../Zotlabs/Module/Settings.php:1251
+msgid ""
+"Very Public - <em>extremely permissive (should be used with caution)</em>"
+msgstr "Zeer openbaar <em>(kanaal staat volledig open - moet met grote zorgvuldigheid gebruikt worden)</em>"
-#: ../../Zotlabs/Module/Network.php:217
-msgid "Privacy group is empty"
-msgstr "Privacygroep is leeg"
+#: ../../Zotlabs/Module/Settings.php:1252
+msgid ""
+"Typical - <em>default public, privacy when desired (similar to social "
+"network permissions but with improved privacy)</em>"
+msgstr "Normaal <em>(standaard openbaar, maar privacy wanneer noodzakelijk - vergelijkbaar met die van sociale netwerken, maar met verbeterde privacy)</em>"
-#: ../../Zotlabs/Module/Network.php:226
-msgid "Privacy group: "
-msgstr "Privacygroep: "
+#: ../../Zotlabs/Module/Settings.php:1253
+msgid "Private - <em>default private, never open or public</em>"
+msgstr "Privé <em>(standaard privé en nooit openbaar)</em>"
-#: ../../Zotlabs/Module/Network.php:252
-msgid "Invalid connection."
-msgstr "Ongeldige connectie."
+#: ../../Zotlabs/Module/Settings.php:1254
+msgid "Blocked - <em>default blocked to/from everybody</em>"
+msgstr "Geblokkeerd <em>(standaard geblokkeerd naar/van iedereen)</em>"
-#: ../../Zotlabs/Module/Notify.php:57
-#: ../../Zotlabs/Module/Notifications.php:98
-msgid "No more system notifications."
-msgstr "Geen systeemnotificaties meer."
+#: ../../Zotlabs/Module/Settings.php:1256
+msgid "Allow others to tag your posts"
+msgstr "Anderen toestaan om je berichten te taggen"
-#: ../../Zotlabs/Module/Notify.php:61
-#: ../../Zotlabs/Module/Notifications.php:102
-msgid "System Notifications"
-msgstr "Systeemnotificaties"
+#: ../../Zotlabs/Module/Settings.php:1256
+msgid ""
+"Often used by the community to retro-actively flag inappropriate content"
+msgstr "Vaak in groepen/forums gebruikt om met terugwerkende kracht ongepast materiaal te markeren"
-#: ../../Zotlabs/Module/Mitem.php:52
-msgid "Unable to create element."
-msgstr "Niet in staat om onderdeel aan te maken."
+#: ../../Zotlabs/Module/Settings.php:1258
+msgid "Advanced Privacy Settings"
+msgstr "Geavanceerde privacy-instellingen"
-#: ../../Zotlabs/Module/Mitem.php:76
-msgid "Unable to update menu element."
-msgstr "Menu-onderdeel kan niet worden geüpdatet."
+#: ../../Zotlabs/Module/Settings.php:1260
+msgid "Expire other channel content after this many days"
+msgstr "Inhoud van andere kanalen na zoveel aantal dagen laten verlopen:"
-#: ../../Zotlabs/Module/Mitem.php:92
-msgid "Unable to add menu element."
-msgstr "Menu-onderdeel kan niet worden toegevoegd."
+#: ../../Zotlabs/Module/Settings.php:1260
+msgid "0 or blank to use the website limit."
+msgstr "0 of leeg om het standaard aantal dagen van deze hub te gebruiken."
-#: ../../Zotlabs/Module/Mitem.php:153 ../../Zotlabs/Module/Mitem.php:226
-msgid "Menu Item Permissions"
-msgstr "Permissies menu-item"
+#: ../../Zotlabs/Module/Settings.php:1260
+#, php-format
+msgid "This website expires after %d days."
+msgstr "Deze hub laat de inhoud van andere kanalen na %d dagen verlopen."
+
+#: ../../Zotlabs/Module/Settings.php:1260
+msgid "This website does not expire imported content."
+msgstr "Deze hub laat de inhoud van andere kanalen niet verlopen."
+
+#: ../../Zotlabs/Module/Settings.php:1260
+msgid "The website limit takes precedence if lower than your limit."
+msgstr "Wanneer de standaard aantal dagen van deze hub lager ligt dan jouw aantal, dan heeft de limiet van deze hub voorrang."
+
+#: ../../Zotlabs/Module/Settings.php:1261
+msgid "Maximum Friend Requests/Day:"
+msgstr "Maximum aantal connectieverzoeken per dag:"
+
+#: ../../Zotlabs/Module/Settings.php:1261
+msgid "May reduce spam activity"
+msgstr "Kan eventuele spam verminderen"
+
+#: ../../Zotlabs/Module/Settings.php:1262
+msgid "Default Post and Publish Permissions"
+msgstr "Standaard permissies voor nieuwe berichten en publicaties"
-#: ../../Zotlabs/Module/Mitem.php:154 ../../Zotlabs/Module/Mitem.php:227
-#: ../../Zotlabs/Module/Settings.php:1068
+#: ../../Zotlabs/Module/Settings.php:1263 ../../Zotlabs/Module/Mitem.php:154
+#: ../../Zotlabs/Module/Mitem.php:231
msgid "(click to open/close)"
msgstr "(klik om te openen/sluiten)"
-#: ../../Zotlabs/Module/Mitem.php:156 ../../Zotlabs/Module/Mitem.php:172
-msgid "Link Name"
-msgstr "Linknaam"
+#: ../../Zotlabs/Module/Settings.php:1264
+msgid "Use my default audience setting for the type of object published"
+msgstr "Gebruik mijn standaard privacy-instelling voor dit type publicatie"
-#: ../../Zotlabs/Module/Mitem.php:157 ../../Zotlabs/Module/Mitem.php:231
-msgid "Link or Submenu Target"
-msgstr "Linkdoel of submenu-doel"
+#: ../../Zotlabs/Module/Settings.php:1271
+msgid "Channel permissions category:"
+msgstr "Kanaaltype en -permissies:"
-#: ../../Zotlabs/Module/Mitem.php:157
-msgid "Enter URL of the link or select a menu name to create a submenu"
-msgstr "Geef de URL van de link of kies een menunaam om een submenu aan te maken"
+#: ../../Zotlabs/Module/Settings.php:1277
+msgid "Maximum private messages per day from unknown people:"
+msgstr "Maximum aantal privé-berichten per dag van onbekende personen:"
-#: ../../Zotlabs/Module/Mitem.php:158 ../../Zotlabs/Module/Mitem.php:232
-msgid "Use magic-auth if available"
-msgstr "Gebruik magic-auth wanneer beschikbaar"
+#: ../../Zotlabs/Module/Settings.php:1277
+msgid "Useful to reduce spamming"
+msgstr "Kan eventuele spam verminderen"
-#: ../../Zotlabs/Module/Mitem.php:159 ../../Zotlabs/Module/Mitem.php:233
-msgid "Open link in new window"
-msgstr "Open link in nieuw venster"
+#: ../../Zotlabs/Module/Settings.php:1280
+msgid "Notification Settings"
+msgstr "Notificatie-instellingen"
-#: ../../Zotlabs/Module/Mitem.php:160 ../../Zotlabs/Module/Mitem.php:234
-msgid "Order in list"
-msgstr "Volgorde in lijst"
+#: ../../Zotlabs/Module/Settings.php:1281
+msgid "By default post a status message when:"
+msgstr "Plaats automatisch een bericht wanneer:"
-#: ../../Zotlabs/Module/Mitem.php:160 ../../Zotlabs/Module/Mitem.php:234
-msgid "Higher numbers will sink to bottom of listing"
-msgstr "Hogere nummers komen onderaan de lijst terecht"
+#: ../../Zotlabs/Module/Settings.php:1282
+msgid "accepting a friend request"
+msgstr "Een connectieverzoek wordt geaccepteerd"
-#: ../../Zotlabs/Module/Mitem.php:161
-msgid "Submit and finish"
-msgstr "Opslaan en afsluiten"
+#: ../../Zotlabs/Module/Settings.php:1283
+msgid "joining a forum/community"
+msgstr "Je lid wordt van een forum/groep"
-#: ../../Zotlabs/Module/Mitem.php:162
-msgid "Submit and continue"
-msgstr "Opslaan en doorgaan"
+#: ../../Zotlabs/Module/Settings.php:1284
+msgid "making an <em>interesting</em> profile change"
+msgstr "Er sprake is van een <em>interessante</em> profielwijziging"
-#: ../../Zotlabs/Module/Mitem.php:170
-msgid "Menu:"
-msgstr "Menu:"
+#: ../../Zotlabs/Module/Settings.php:1285
+msgid "Send a notification email when:"
+msgstr "Verzend een notificatie per e-mail wanneer:"
-#: ../../Zotlabs/Module/Mitem.php:173
-msgid "Link Target"
-msgstr "Linkdoel"
+#: ../../Zotlabs/Module/Settings.php:1286
+msgid "You receive a connection request"
+msgstr "Je een connectieverzoek ontvangt"
-#: ../../Zotlabs/Module/Mitem.php:176
-msgid "Edit menu"
-msgstr "Menu bewerken"
+#: ../../Zotlabs/Module/Settings.php:1287
+msgid "Your connections are confirmed"
+msgstr "Jouw connecties zijn bevestigd"
-#: ../../Zotlabs/Module/Mitem.php:179
-msgid "Edit element"
-msgstr "Onderdeel bewerken"
+#: ../../Zotlabs/Module/Settings.php:1288
+msgid "Someone writes on your profile wall"
+msgstr "Iemand iets op jouw kanaal heeft geschreven"
-#: ../../Zotlabs/Module/Mitem.php:180
-msgid "Drop element"
-msgstr "Onderdeel verwijderen"
+#: ../../Zotlabs/Module/Settings.php:1289
+msgid "Someone writes a followup comment"
+msgstr "Iemand een reactie schrijft"
-#: ../../Zotlabs/Module/Mitem.php:181
-msgid "New element"
-msgstr "Nieuw element"
+#: ../../Zotlabs/Module/Settings.php:1290
+msgid "You receive a private message"
+msgstr "Je een privé-bericht ontvangt"
-#: ../../Zotlabs/Module/Mitem.php:182
-msgid "Edit this menu container"
-msgstr "Deze menu-container bewerken"
+#: ../../Zotlabs/Module/Settings.php:1291
+msgid "You receive a friend suggestion"
+msgstr "Je een kanaalvoorstel ontvangt"
-#: ../../Zotlabs/Module/Mitem.php:183
-msgid "Add menu element"
-msgstr "Menu-element toevoegen"
+#: ../../Zotlabs/Module/Settings.php:1292
+msgid "You are tagged in a post"
+msgstr "Je expliciet in een bericht bent genoemd"
-#: ../../Zotlabs/Module/Mitem.php:184
-msgid "Delete this menu item"
-msgstr "Dit menu-item verwijderen"
+#: ../../Zotlabs/Module/Settings.php:1293
+msgid "You are poked/prodded/etc. in a post"
+msgstr "Je bent in een bericht aangestoten/gepord/etc."
-#: ../../Zotlabs/Module/Mitem.php:185
-msgid "Edit this menu item"
-msgstr "Dit menu-item bewerken"
+#: ../../Zotlabs/Module/Settings.php:1296
+msgid "Show visual notifications including:"
+msgstr "Toon de volgende zichtbare notificaties:"
-#: ../../Zotlabs/Module/Mitem.php:202
-msgid "Menu item not found."
-msgstr "Menu-item niet gevonden."
+#: ../../Zotlabs/Module/Settings.php:1298
+msgid "Unseen grid activity"
+msgstr "Niet bekeken grid-activiteit"
-#: ../../Zotlabs/Module/Mitem.php:215
-msgid "Menu item deleted."
-msgstr "Menu-item verwijderd."
+#: ../../Zotlabs/Module/Settings.php:1299
+msgid "Unseen channel activity"
+msgstr "Niet bekeken kanaal-activiteit"
-#: ../../Zotlabs/Module/Mitem.php:217
-msgid "Menu item could not be deleted."
-msgstr "Menu-item kon niet worden verwijderd."
+#: ../../Zotlabs/Module/Settings.php:1300
+msgid "Unseen private messages"
+msgstr "Niet bekeken privéberichten"
-#: ../../Zotlabs/Module/Mitem.php:224
-msgid "Edit Menu Element"
-msgstr "Menu-element bewerken"
+#: ../../Zotlabs/Module/Settings.php:1300
+#: ../../Zotlabs/Module/Settings.php:1305
+#: ../../Zotlabs/Module/Settings.php:1306
+#: ../../Zotlabs/Module/Settings.php:1307
+msgid "Recommended"
+msgstr "Aanbevolen"
-#: ../../Zotlabs/Module/Mitem.php:230
-msgid "Link text"
-msgstr "Linktekst"
+#: ../../Zotlabs/Module/Settings.php:1301
+msgid "Upcoming events"
+msgstr "Aankomende gebeurtenissen"
-#: ../../Zotlabs/Module/New_channel.php:128
-#: ../../Zotlabs/Module/Register.php:231
-msgid "Name or caption"
-msgstr "Naam"
+#: ../../Zotlabs/Module/Settings.php:1302
+msgid "Events today"
+msgstr "Gebeurtenissen van vandaag"
-#: ../../Zotlabs/Module/New_channel.php:128
-#: ../../Zotlabs/Module/Register.php:231
-msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\""
-msgstr "Voorbeelden: \"Jan Pietersen\", \"Willems weblog\", \"Computerforum\""
+#: ../../Zotlabs/Module/Settings.php:1303
+msgid "Upcoming birthdays"
+msgstr "Aankomende verjaardagen"
-#: ../../Zotlabs/Module/New_channel.php:130
-#: ../../Zotlabs/Module/Register.php:233
-msgid "Choose a short nickname"
-msgstr "Korte bijnaam"
+#: ../../Zotlabs/Module/Settings.php:1303
+msgid "Not available in all themes"
+msgstr "Niet in alle thema's beschikbaar"
-#: ../../Zotlabs/Module/New_channel.php:130
-#: ../../Zotlabs/Module/Register.php:233
-#, php-format
-msgid ""
-"Your nickname will be used to create an easy to remember channel address "
-"e.g. nickname%s"
-msgstr "Deze bijnaam wordt gebruikt om een makkelijk te onthouden kanaaladres van jouw kanaal aan te maken, die je dan met anderen kunt delen. Bijvoorbeeld: bijnaam%s"
+#: ../../Zotlabs/Module/Settings.php:1304
+msgid "System (personal) notifications"
+msgstr "(Persoonlijke) systeemnotificaties"
-#: ../../Zotlabs/Module/New_channel.php:132
-#: ../../Zotlabs/Module/Register.php:235
-msgid "Channel role and privacy"
-msgstr "Kanaaltype en privacy"
+#: ../../Zotlabs/Module/Settings.php:1305
+msgid "System info messages"
+msgstr "Systeemmededelingen"
-#: ../../Zotlabs/Module/New_channel.php:132
-#: ../../Zotlabs/Module/Register.php:235
-msgid "Select a channel role with your privacy requirements."
-msgstr "Kies een kanaaltype met het door jou gewenste privacyniveau."
+#: ../../Zotlabs/Module/Settings.php:1306
+msgid "System critical alerts"
+msgstr "Kritische systeemwaarschuwingen"
-#: ../../Zotlabs/Module/New_channel.php:132
-#: ../../Zotlabs/Module/Register.php:235
-msgid "Read more about roles"
-msgstr "Lees meer over kanaaltypes"
+#: ../../Zotlabs/Module/Settings.php:1307
+msgid "New connections"
+msgstr "Nieuwe connecties"
-#: ../../Zotlabs/Module/New_channel.php:135
-msgid "Create Channel"
-msgstr "Kanaal aanmaken"
+#: ../../Zotlabs/Module/Settings.php:1308
+msgid "System Registrations"
+msgstr "Nieuwe accountregistraties op deze hub"
-#: ../../Zotlabs/Module/New_channel.php:136
+#: ../../Zotlabs/Module/Settings.php:1309
msgid ""
-"A channel is your identity on this network. It can represent a person, a "
-"blog, or a forum to name a few. Channels can make connections with other "
-"channels to share information with highly detailed permissions."
-msgstr "Een kanaal is jouw identiteit in dit netwerk. Het kan bijvoorbeeld een persoon, een blog of een forum vertegenwoordigen. Door met elkaar te verbinden kunnen kanalen, met behulp van uitgebreide permissies, informatie uitwisselen."
+"Also show new wall posts, private messages and connections under Notices"
+msgstr "Toon tevens nieuwe kanaalberichten, privéberichten en connecties onder Notificaties"
-#: ../../Zotlabs/Module/New_channel.php:137
+#: ../../Zotlabs/Module/Settings.php:1311
+msgid "Notify me of events this many days in advance"
+msgstr "Herinner mij zoveel dagen van te voren aan gebeurtenissen"
+
+#: ../../Zotlabs/Module/Settings.php:1311
+msgid "Must be greater than 0"
+msgstr "Moet hoger dan 0 zijn"
+
+#: ../../Zotlabs/Module/Settings.php:1313
+msgid "Advanced Account/Page Type Settings"
+msgstr "Instellingen geavanceerd account/paginatype"
+
+#: ../../Zotlabs/Module/Settings.php:1314
+msgid "Change the behaviour of this account for special situations"
+msgstr "Verander het gedrag van dit account voor speciale situaties"
+
+#: ../../Zotlabs/Module/Settings.php:1317
msgid ""
-"or <a href=\"import\">import an existing channel</a> from another location."
-msgstr "Of <a href=\"import\">importeer een bestaand kanaal</a> vanaf een andere locatie"
+"Please enable expert mode (in <a href=\"settings/features\">Settings > "
+"Additional features</a>) to adjust!"
+msgstr "Schakel de expertmodus in (in <a href=\"settings/features\">Instellingen > Extra functies</a>) om aan te kunnen passen!"
-#: ../../Zotlabs/Module/Notifications.php:30
-msgid "Invalid request identifier."
-msgstr "Ongeldige verzoek identificator (request identifier)"
+#: ../../Zotlabs/Module/Settings.php:1318
+msgid "Miscellaneous Settings"
+msgstr "Diverse instellingen"
-#: ../../Zotlabs/Module/Notifications.php:39
-msgid "Discard"
-msgstr "Annuleren"
+#: ../../Zotlabs/Module/Settings.php:1319
+msgid "Default photo upload folder"
+msgstr "Standaard fotoalbum voor uploads"
-#: ../../Zotlabs/Module/Notifications.php:103 ../../include/nav.php:191
-msgid "Mark all system notifications seen"
-msgstr "Markeer alle systeemnotificaties als bekeken"
+#: ../../Zotlabs/Module/Settings.php:1319
+#: ../../Zotlabs/Module/Settings.php:1320
+msgid "%Y - current year, %m - current month"
+msgstr "%Y - dit jaar, %m - deze maand"
+
+#: ../../Zotlabs/Module/Settings.php:1320
+msgid "Default file upload folder"
+msgstr "Standaard bestandsmap voor uploads"
+
+#: ../../Zotlabs/Module/Settings.php:1322
+msgid "Personal menu to display in your channel pages"
+msgstr "Persoonlijk menu om op je kanaalpagina's weer te geven"
-#: ../../Zotlabs/Module/Photos.php:84
+#: ../../Zotlabs/Module/Settings.php:1323 ../../Zotlabs/Module/Removeme.php:64
+msgid "Remove Channel"
+msgstr "Kanaal verwijderen"
+
+#: ../../Zotlabs/Module/Settings.php:1324
+msgid "Remove this channel."
+msgstr "Verwijder dit kanaal."
+
+#: ../../Zotlabs/Module/Settings.php:1325
+msgid "Firefox Share $Projectname provider"
+msgstr "$Projectname-service voor Firefox Share"
+
+#: ../../Zotlabs/Module/Settings.php:1326
+msgid "Start calendar week on monday"
+msgstr "Begin in de agenda de week op maandag"
+
+#: ../../Zotlabs/Module/Acl.php:313
+msgid "network"
+msgstr "netwerk"
+
+#: ../../Zotlabs/Module/Acl.php:323
+msgid "RSS"
+msgstr "RSS"
+
+#: ../../Zotlabs/Module/Group.php:24
+msgid "Privacy group created."
+msgstr "Privacygroep aangemaakt"
+
+#: ../../Zotlabs/Module/Group.php:30
+msgid "Could not create privacy group."
+msgstr "Kon privacygroep niet aanmaken"
+
+#: ../../Zotlabs/Module/Group.php:42 ../../Zotlabs/Module/Group.php:141
+#: ../../include/items.php:3931
+msgid "Privacy group not found."
+msgstr "Privacygroep niet gevonden"
+
+#: ../../Zotlabs/Module/Group.php:58
+msgid "Privacy group updated."
+msgstr "Privacygroep bijgewerkt"
+
+#: ../../Zotlabs/Module/Group.php:90
+msgid "Create a group of channels."
+msgstr "Privacygroep met kanalen aanmaken"
+
+#: ../../Zotlabs/Module/Group.php:91 ../../Zotlabs/Module/Group.php:184
+msgid "Privacy group name: "
+msgstr "Naam privacygroep: "
+
+#: ../../Zotlabs/Module/Group.php:93 ../../Zotlabs/Module/Group.php:187
+msgid "Members are visible to other channels"
+msgstr "Kanalen in deze privacygroep zijn zichtbaar voor andere kanalen"
+
+#: ../../Zotlabs/Module/Group.php:111
+msgid "Privacy group removed."
+msgstr "Privacygroep verwijderd."
+
+#: ../../Zotlabs/Module/Group.php:113
+msgid "Unable to remove privacy group."
+msgstr "Verwijderen privacygroep mislukt"
+
+#: ../../Zotlabs/Module/Group.php:183
+msgid "Privacy group editor"
+msgstr "Privacygroep bewerken"
+
+#: ../../Zotlabs/Module/Group.php:197
+msgid "Members"
+msgstr "Kanalen"
+
+#: ../../Zotlabs/Module/Group.php:199
+msgid "All Connected Channels"
+msgstr "Alle kanaalconnecties"
+
+#: ../../Zotlabs/Module/Group.php:231
+msgid "Click on a channel to add or remove."
+msgstr "Klik op een kanaal om deze toe te voegen of te verwijderen."
+
+#: ../../Zotlabs/Module/Photos.php:82
msgid "Page owner information could not be retrieved."
msgstr "Informatie over de pagina-eigenaar werd niet ontvangen."
-#: ../../Zotlabs/Module/Photos.php:99 ../../Zotlabs/Module/Photos.php:743
-#: ../../Zotlabs/Module/Profile_photo.php:114
-#: ../../Zotlabs/Module/Profile_photo.php:206
-#: ../../Zotlabs/Module/Profile_photo.php:294
+#: ../../Zotlabs/Module/Photos.php:97 ../../Zotlabs/Module/Photos.php:745
+#: ../../Zotlabs/Module/Profile_photo.php:115
+#: ../../Zotlabs/Module/Profile_photo.php:212
+#: ../../Zotlabs/Module/Profile_photo.php:311
#: ../../include/photo/photo_driver.php:718
msgid "Profile Photos"
msgstr "Profielfoto's"
-#: ../../Zotlabs/Module/Photos.php:105 ../../Zotlabs/Module/Photos.php:149
+#: ../../Zotlabs/Module/Photos.php:103 ../../Zotlabs/Module/Photos.php:147
msgid "Album not found."
msgstr "Album niet gevonden."
-#: ../../Zotlabs/Module/Photos.php:132
+#: ../../Zotlabs/Module/Photos.php:130
msgid "Delete Album"
msgstr "Verwijder album"
-#: ../../Zotlabs/Module/Photos.php:153
+#: ../../Zotlabs/Module/Photos.php:151
msgid ""
"Multiple storage folders exist with this album name, but within different "
"directories. Please remove the desired folder or folders using the Files "
"manager"
msgstr "Er bestaan meerdere submappen met deze albumnaam, maar verspreidt over verschillende mappen. Verwijder de gewenste map(pen) met de bestandsbeheerder."
-#: ../../Zotlabs/Module/Photos.php:210 ../../Zotlabs/Module/Photos.php:1053
+#: ../../Zotlabs/Module/Photos.php:208 ../../Zotlabs/Module/Photos.php:1059
msgid "Delete Photo"
msgstr "Verwijder foto"
-#: ../../Zotlabs/Module/Photos.php:533
+#: ../../Zotlabs/Module/Photos.php:531
msgid "No photos selected"
msgstr "Geen foto's geselecteerd"
-#: ../../Zotlabs/Module/Photos.php:582
+#: ../../Zotlabs/Module/Photos.php:580
msgid "Access to this item is restricted."
msgstr "Toegang tot dit item is beperkt."
-#: ../../Zotlabs/Module/Photos.php:621
+#: ../../Zotlabs/Module/Photos.php:619
#, php-format
msgid "%1$.2f MB of %2$.2f MB photo storage used."
msgstr "%1$.2f MB van %2$.2f MB aan foto-opslag gebruikt."
-#: ../../Zotlabs/Module/Photos.php:624
+#: ../../Zotlabs/Module/Photos.php:622
#, php-format
msgid "%1$.2f MB photo storage used."
msgstr "%1$.2f MB aan foto-opslag gebruikt."
-#: ../../Zotlabs/Module/Photos.php:660
+#: ../../Zotlabs/Module/Photos.php:658
msgid "Upload Photos"
msgstr "Foto's uploaden"
-#: ../../Zotlabs/Module/Photos.php:664
+#: ../../Zotlabs/Module/Photos.php:662
msgid "Enter an album name"
msgstr "Vul een albumnaam in"
-#: ../../Zotlabs/Module/Photos.php:665
+#: ../../Zotlabs/Module/Photos.php:663
msgid "or select an existing album (doubleclick)"
msgstr "of kies een bestaand album (dubbelklikken)"
-#: ../../Zotlabs/Module/Photos.php:666
+#: ../../Zotlabs/Module/Photos.php:664
msgid "Create a status post for this upload"
msgstr "Plaats een bericht voor deze upload."
-#: ../../Zotlabs/Module/Photos.php:667
+#: ../../Zotlabs/Module/Photos.php:665
msgid "Caption (optional):"
msgstr "Bijschrift (optioneel):"
-#: ../../Zotlabs/Module/Photos.php:668
+#: ../../Zotlabs/Module/Photos.php:666
msgid "Description (optional):"
msgstr "Omschrijving (optioneel):"
-#: ../../Zotlabs/Module/Photos.php:695
+#: ../../Zotlabs/Module/Photos.php:697
msgid "Album name could not be decoded"
msgstr "Albumnaam kon niet gedecodeerd worden"
-#: ../../Zotlabs/Module/Photos.php:743
+#: ../../Zotlabs/Module/Photos.php:745
msgid "Contact Photos"
msgstr "Connectiefoto's"
-#: ../../Zotlabs/Module/Photos.php:766
+#: ../../Zotlabs/Module/Photos.php:768
msgid "Show Newest First"
msgstr "Nieuwste eerst weergeven"
-#: ../../Zotlabs/Module/Photos.php:768
+#: ../../Zotlabs/Module/Photos.php:770
msgid "Show Oldest First"
msgstr "Oudste eerst weergeven"
-#: ../../Zotlabs/Module/Photos.php:792 ../../Zotlabs/Module/Photos.php:1331
-#: ../../include/widgets.php:1499
+#: ../../Zotlabs/Module/Photos.php:794 ../../Zotlabs/Module/Photos.php:1337
+#: ../../Zotlabs/Module/Embedphotos.php:141 ../../include/widgets.php:1607
msgid "View Photo"
msgstr "Foto weergeven"
-#: ../../Zotlabs/Module/Photos.php:823 ../../include/widgets.php:1516
+#: ../../Zotlabs/Module/Photos.php:825
+#: ../../Zotlabs/Module/Embedphotos.php:157 ../../include/widgets.php:1624
msgid "Edit Album"
msgstr "Album bewerken"
-#: ../../Zotlabs/Module/Photos.php:870
+#: ../../Zotlabs/Module/Photos.php:872
msgid "Permission denied. Access to this item may be restricted."
msgstr "Toegang geweigerd. Toegang tot dit item kan zijn beperkt."
-#: ../../Zotlabs/Module/Photos.php:872
+#: ../../Zotlabs/Module/Photos.php:874
msgid "Photo not available"
msgstr "Foto niet aanwezig"
-#: ../../Zotlabs/Module/Photos.php:930
+#: ../../Zotlabs/Module/Photos.php:932
msgid "Use as profile photo"
msgstr "Als profielfoto gebruiken"
-#: ../../Zotlabs/Module/Photos.php:931
+#: ../../Zotlabs/Module/Photos.php:933
msgid "Use as cover photo"
msgstr "Als omslagfoto gebruiken"
-#: ../../Zotlabs/Module/Photos.php:938
+#: ../../Zotlabs/Module/Photos.php:940
msgid "Private Photo"
msgstr "Privéfoto"
-#: ../../Zotlabs/Module/Photos.php:953
+#: ../../Zotlabs/Module/Photos.php:951 ../../Zotlabs/Module/Events.php:675
+#: ../../Zotlabs/Module/Events.php:684 ../../Zotlabs/Module/Cal.php:332
+#: ../../Zotlabs/Module/Cal.php:339
+msgid "Previous"
+msgstr "Vorige"
+
+#: ../../Zotlabs/Module/Photos.php:955
msgid "View Full Size"
msgstr "Volledige grootte weergeven"
-#: ../../Zotlabs/Module/Photos.php:998 ../../Zotlabs/Module/Admin.php:1437
+#: ../../Zotlabs/Module/Photos.php:1000 ../../Zotlabs/Module/Admin.php:1451
#: ../../Zotlabs/Module/Tagrm.php:137
msgid "Remove"
msgstr "Verwijderen"
-#: ../../Zotlabs/Module/Photos.php:1032
+#: ../../Zotlabs/Module/Photos.php:1034
msgid "Edit photo"
msgstr "Foto bewerken"
-#: ../../Zotlabs/Module/Photos.php:1034
+#: ../../Zotlabs/Module/Photos.php:1036
msgid "Rotate CW (right)"
msgstr "Draai met de klok mee (naar rechts)"
-#: ../../Zotlabs/Module/Photos.php:1035
+#: ../../Zotlabs/Module/Photos.php:1037
msgid "Rotate CCW (left)"
msgstr "Draai tegen de klok in (naar links)"
-#: ../../Zotlabs/Module/Photos.php:1038
+#: ../../Zotlabs/Module/Photos.php:1040
msgid "Enter a new album name"
msgstr "Vul een nieuwe albumnaam in"
-#: ../../Zotlabs/Module/Photos.php:1039
+#: ../../Zotlabs/Module/Photos.php:1041
msgid "or select an existing one (doubleclick)"
msgstr "of kies een bestaand album (dubbelklikken)"
-#: ../../Zotlabs/Module/Photos.php:1042
+#: ../../Zotlabs/Module/Photos.php:1044
msgid "Caption"
msgstr "Bijschrift"
-#: ../../Zotlabs/Module/Photos.php:1044
+#: ../../Zotlabs/Module/Photos.php:1046
msgid "Add a Tag"
msgstr "Tag toevoegen"
-#: ../../Zotlabs/Module/Photos.php:1048
+#: ../../Zotlabs/Module/Photos.php:1054
msgid "Example: @bob, @Barbara_Jensen, @jim@example.com"
msgstr "Voorbeeld: @bob, @Barbara_Jansen, @jan@voorbeeld.nl"
-#: ../../Zotlabs/Module/Photos.php:1051
+#: ../../Zotlabs/Module/Photos.php:1057
msgid "Flag as adult in album view"
msgstr "Markeer als voor volwassenen in albumweergave"
-#: ../../Zotlabs/Module/Photos.php:1070 ../../Zotlabs/Lib/ThreadItem.php:261
+#: ../../Zotlabs/Module/Photos.php:1076 ../../Zotlabs/Lib/ThreadItem.php:262
msgid "I like this (toggle)"
msgstr "Vind ik leuk"
-#: ../../Zotlabs/Module/Photos.php:1071 ../../Zotlabs/Lib/ThreadItem.php:262
+#: ../../Zotlabs/Module/Photos.php:1077 ../../Zotlabs/Lib/ThreadItem.php:263
msgid "I don't like this (toggle)"
msgstr "Vind ik niet leuk"
-#: ../../Zotlabs/Module/Photos.php:1073 ../../Zotlabs/Lib/ThreadItem.php:397
-#: ../../include/conversation.php:740
+#: ../../Zotlabs/Module/Photos.php:1078 ../../Zotlabs/Module/Webpages.php:218
+#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Layouts.php:193
+#: ../../include/conversation.php:1227
+msgid "Share"
+msgstr "Delen"
+
+#: ../../Zotlabs/Module/Photos.php:1079 ../../Zotlabs/Lib/ThreadItem.php:398
+#: ../../include/conversation.php:743
msgid "Please wait"
msgstr "Even wachten"
-#: ../../Zotlabs/Module/Photos.php:1089 ../../Zotlabs/Module/Photos.php:1207
-#: ../../Zotlabs/Lib/ThreadItem.php:707
+#: ../../Zotlabs/Module/Photos.php:1095 ../../Zotlabs/Module/Photos.php:1213
+#: ../../Zotlabs/Lib/ThreadItem.php:708
msgid "This is you"
msgstr "Dit ben jij"
-#: ../../Zotlabs/Module/Photos.php:1091 ../../Zotlabs/Module/Photos.php:1209
-#: ../../Zotlabs/Lib/ThreadItem.php:709 ../../include/js_strings.php:6
+#: ../../Zotlabs/Module/Photos.php:1097 ../../Zotlabs/Module/Photos.php:1215
+#: ../../Zotlabs/Lib/ThreadItem.php:710 ../../include/js_strings.php:6
msgid "Comment"
msgstr "Reactie"
-#: ../../Zotlabs/Module/Photos.php:1107 ../../include/conversation.php:574
+#: ../../Zotlabs/Module/Photos.php:1099 ../../Zotlabs/Module/Webpages.php:224
+#: ../../Zotlabs/Module/Events.php:473 ../../Zotlabs/Lib/ThreadItem.php:720
+#: ../../include/conversation.php:1200 ../../include/page_widgets.php:43
+msgid "Preview"
+msgstr "Voorvertoning"
+
+#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:577
msgctxt "title"
msgid "Likes"
msgstr "vinden dit leuk"
-#: ../../Zotlabs/Module/Photos.php:1107 ../../include/conversation.php:574
+#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:577
msgctxt "title"
msgid "Dislikes"
msgstr "vinden dit niet leuk"
-#: ../../Zotlabs/Module/Photos.php:1108 ../../include/conversation.php:575
+#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578
msgctxt "title"
msgid "Agree"
msgstr "eens"
-#: ../../Zotlabs/Module/Photos.php:1108 ../../include/conversation.php:575
+#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578
msgctxt "title"
msgid "Disagree"
msgstr "oneens"
-#: ../../Zotlabs/Module/Photos.php:1108 ../../include/conversation.php:575
+#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578
msgctxt "title"
msgid "Abstain"
msgstr "onthoudingen"
-#: ../../Zotlabs/Module/Photos.php:1109 ../../include/conversation.php:576
+#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579
msgctxt "title"
msgid "Attending"
msgstr "aanwezig"
-#: ../../Zotlabs/Module/Photos.php:1109 ../../include/conversation.php:576
+#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579
msgctxt "title"
msgid "Not attending"
msgstr "niet aanwezig"
-#: ../../Zotlabs/Module/Photos.php:1109 ../../include/conversation.php:576
+#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579
msgctxt "title"
msgid "Might attend"
msgstr "mogelijk aanwezig"
-#: ../../Zotlabs/Module/Photos.php:1126 ../../Zotlabs/Module/Photos.php:1138
+#: ../../Zotlabs/Module/Photos.php:1132 ../../Zotlabs/Module/Photos.php:1144
#: ../../Zotlabs/Lib/ThreadItem.php:181 ../../Zotlabs/Lib/ThreadItem.php:193
-#: ../../include/conversation.php:1717
+#: ../../include/conversation.php:1756
msgid "View all"
msgstr "Toon alles"
-#: ../../Zotlabs/Module/Photos.php:1130 ../../Zotlabs/Lib/ThreadItem.php:185
-#: ../../include/taxonomy.php:403 ../../include/conversation.php:1741
-#: ../../include/channel.php:1158
+#: ../../Zotlabs/Module/Photos.php:1136 ../../Zotlabs/Lib/ThreadItem.php:185
+#: ../../include/channel.php:1182 ../../include/conversation.php:1780
+#: ../../include/taxonomy.php:403
msgctxt "noun"
msgid "Like"
msgid_plural "Likes"
msgstr[0] "vindt dit leuk"
msgstr[1] "vinden dit leuk"
-#: ../../Zotlabs/Module/Photos.php:1135 ../../Zotlabs/Lib/ThreadItem.php:190
-#: ../../include/conversation.php:1744
+#: ../../Zotlabs/Module/Photos.php:1141 ../../Zotlabs/Lib/ThreadItem.php:190
+#: ../../include/conversation.php:1783
msgctxt "noun"
msgid "Dislike"
msgid_plural "Dislikes"
msgstr[0] "vindt dit niet leuk"
msgstr[1] "vinden dit niet leuk"
-#: ../../Zotlabs/Module/Photos.php:1235
+#: ../../Zotlabs/Module/Photos.php:1241
msgid "Photo Tools"
msgstr "Hulpmiddelen"
-#: ../../Zotlabs/Module/Photos.php:1244
+#: ../../Zotlabs/Module/Photos.php:1250
msgid "In This Photo:"
msgstr "Op deze foto:"
-#: ../../Zotlabs/Module/Photos.php:1249
+#: ../../Zotlabs/Module/Photos.php:1255
msgid "Map"
msgstr "Kaart"
-#: ../../Zotlabs/Module/Photos.php:1257 ../../Zotlabs/Lib/ThreadItem.php:386
+#: ../../Zotlabs/Module/Photos.php:1263 ../../Zotlabs/Lib/ThreadItem.php:387
msgctxt "noun"
msgid "Likes"
msgstr "vinden dit leuk"
-#: ../../Zotlabs/Module/Photos.php:1258 ../../Zotlabs/Lib/ThreadItem.php:387
+#: ../../Zotlabs/Module/Photos.php:1264 ../../Zotlabs/Lib/ThreadItem.php:388
msgctxt "noun"
msgid "Dislikes"
msgstr "vinden dit niet leuk"
-#: ../../Zotlabs/Module/Photos.php:1263 ../../Zotlabs/Lib/ThreadItem.php:392
-#: ../../include/acl_selectors.php:285
+#: ../../Zotlabs/Module/Photos.php:1269 ../../Zotlabs/Lib/ThreadItem.php:393
+#: ../../include/acl_selectors.php:181
msgid "Close"
msgstr "Sluiten"
-#: ../../Zotlabs/Module/Photos.php:1337
+#: ../../Zotlabs/Module/Photos.php:1343
msgid "View Album"
msgstr "Album weergeven"
-#: ../../Zotlabs/Module/Photos.php:1348 ../../Zotlabs/Module/Photos.php:1361
-#: ../../Zotlabs/Module/Photos.php:1362
+#: ../../Zotlabs/Module/Photos.php:1354 ../../Zotlabs/Module/Photos.php:1367
+#: ../../Zotlabs/Module/Photos.php:1368
msgid "Recent Photos"
msgstr "Recente foto's"
-#: ../../Zotlabs/Module/Ping.php:265
-msgid "sent you a private message"
-msgstr "stuurde jou een privébericht"
+#: ../../Zotlabs/Module/Impel.php:41 ../../include/bbcode.php:192
+msgid "webpage"
+msgstr "Webpagina"
-#: ../../Zotlabs/Module/Ping.php:313
-msgid "added your channel"
-msgstr "voegde jouw kanaal toe"
+#: ../../Zotlabs/Module/Impel.php:46 ../../include/bbcode.php:198
+msgid "block"
+msgstr "blok"
-#: ../../Zotlabs/Module/Ping.php:323
-msgid "g A l F d"
-msgstr "G:i, l d F"
+#: ../../Zotlabs/Module/Impel.php:51 ../../include/bbcode.php:195
+msgid "layout"
+msgstr "lay-out"
-#: ../../Zotlabs/Module/Ping.php:346
-msgid "[today]"
-msgstr "[vandaag]"
+#: ../../Zotlabs/Module/Impel.php:58 ../../include/bbcode.php:201
+msgid "menu"
+msgstr "menu"
-#: ../../Zotlabs/Module/Ping.php:355
-msgid "posted an event"
-msgstr "plaatste een gebeurtenis"
+#: ../../Zotlabs/Module/Impel.php:191
+#, php-format
+msgid "%s element installed"
+msgstr "%s onderdeel geïnstalleerd"
-#: ../../Zotlabs/Module/Oexchange.php:27
-msgid "Unable to find your hub."
-msgstr "Niet in staat om je hub te vinden"
+#: ../../Zotlabs/Module/Impel.php:194
+#, php-format
+msgid "%s element installation failed"
+msgstr "Installatie %s-element mislukt"
-#: ../../Zotlabs/Module/Oexchange.php:41
-msgid "Post successful."
-msgstr "Verzenden bericht geslaagd."
+#: ../../Zotlabs/Module/Import_items.php:42 ../../Zotlabs/Module/Import.php:71
+msgid "Nothing to import."
+msgstr "Niets gevonden om te importeren"
-#: ../../Zotlabs/Module/Openid.php:30
-msgid "OpenID protocol error. No ID returned."
-msgstr "OpenID-protocolfout. Geen ID terugontvangen."
+#: ../../Zotlabs/Module/Import_items.php:66 ../../Zotlabs/Module/Import.php:95
+msgid "Unable to download data from old server"
+msgstr "Niet in staat om gegevens van de oude hub te downloaden"
-#: ../../Zotlabs/Module/Openid.php:193 ../../include/auth.php:226
-msgid "Login failed."
-msgstr "Inloggen mislukt."
+#: ../../Zotlabs/Module/Import_items.php:72
+#: ../../Zotlabs/Module/Import.php:101
+msgid "Imported file is empty."
+msgstr "Geïmporteerde bestand is leeg"
-#: ../../Zotlabs/Module/Page.php:133
-msgid ""
-"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod "
-"tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,"
-" quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo "
-"consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse "
-"cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat "
-"non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
-msgstr "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+#: ../../Zotlabs/Module/Import_items.php:88
+#: ../../Zotlabs/Module/Import.php:123
+#, php-format
+msgid "Warning: Database versions differ by %1$d updates."
+msgstr "Waarschuwing: database-versies lopen %1$d updates achter."
-#: ../../Zotlabs/Module/Pconfig.php:26 ../../Zotlabs/Module/Pconfig.php:59
-msgid "This setting requires special processing and editing has been blocked."
-msgstr "Deze instelling vereist een speciaal proces en bewerken is geblokkeerd."
+#: ../../Zotlabs/Module/Import_items.php:104
+msgid "Import completed"
+msgstr "Importeren voltooid"
-#: ../../Zotlabs/Module/Pconfig.php:48
-msgid "Configuration Editor"
-msgstr "Configuratiebewerker"
+#: ../../Zotlabs/Module/Import_items.php:119
+msgid "Import Items"
+msgstr "Importeer items"
-#: ../../Zotlabs/Module/Pconfig.php:49
+#: ../../Zotlabs/Module/Import_items.php:120
msgid ""
-"Warning: Changing some settings could render your channel inoperable. Please"
-" leave this page unless you are comfortable with and knowledgeable about how"
-" to correctly use this feature."
-msgstr "Waarschuwing: het veranderen van sommige instellingen kunnen jouw kanaal onklaar maken. Verlaat deze pagina, tenzij je weet waar je mee bezig bent en voldoende kennis bezit over hoe je deze functies moet gebruiken. "
-
-#: ../../Zotlabs/Module/Pdledit.php:18
-msgid "Layout updated."
-msgstr "Lay-out bijgewerkt."
-
-#: ../../Zotlabs/Module/Pdledit.php:34 ../../Zotlabs/Module/Pdledit.php:61
-msgid "Edit System Page Description"
-msgstr "Systeempagina's bewerken"
-
-#: ../../Zotlabs/Module/Pdledit.php:56
-msgid "Layout not found."
-msgstr "Lay-out niet gevonden."
-
-#: ../../Zotlabs/Module/Pdledit.php:62
-msgid "Module Name:"
-msgstr "Modulenaam:"
-
-#: ../../Zotlabs/Module/Pdledit.php:63
-msgid "Layout Help"
-msgstr "Lay-out-hulp"
-
-#: ../../Zotlabs/Module/Poke.php:168 ../../Zotlabs/Lib/Apps.php:226
-#: ../../include/conversation.php:960
-msgid "Poke"
-msgstr "Aanstoten"
-
-#: ../../Zotlabs/Module/Poke.php:169
-msgid "Poke somebody"
-msgstr "Iemand aanstoten"
-
-#: ../../Zotlabs/Module/Poke.php:172
-msgid "Poke/Prod"
-msgstr "Aanstoten/porren"
-
-#: ../../Zotlabs/Module/Poke.php:173
-msgid "Poke, prod or do other things to somebody"
-msgstr "Iemand bijvoorbeeld aanstoten of poren"
-
-#: ../../Zotlabs/Module/Poke.php:180
-msgid "Recipient"
-msgstr "Ontvanger"
+"Use this form to import existing posts and content from an export file."
+msgstr "Gebruik dit formulier om bestaande berichten en andere inhoud vanuit een exportbestand te importeren."
-#: ../../Zotlabs/Module/Poke.php:181
-msgid "Choose what you wish to do to recipient"
-msgstr "Kies wat je met de ontvanger wil doen"
+#: ../../Zotlabs/Module/Import_items.php:121
+#: ../../Zotlabs/Module/Import.php:549
+msgid "File to Upload"
+msgstr "Bestand om te uploaden"
-#: ../../Zotlabs/Module/Poke.php:184 ../../Zotlabs/Module/Poke.php:185
-msgid "Make this post private"
-msgstr "Maak dit bericht privé"
+#: ../../Zotlabs/Module/Invite.php:29
+msgid "Total invitation limit exceeded."
+msgstr "Limiet voor aantal uitnodigingen overschreden."
-#: ../../Zotlabs/Module/Probe.php:30 ../../Zotlabs/Module/Probe.php:34
+#: ../../Zotlabs/Module/Invite.php:53
#, php-format
-msgid "Fetching URL returns error: %1$s"
-msgstr "Ophalen URL gaf een foutmelding terug: %1$s"
-
-#: ../../Zotlabs/Module/Profiles.php:24 ../../Zotlabs/Module/Profiles.php:189
-#: ../../Zotlabs/Module/Profiles.php:246 ../../Zotlabs/Module/Profiles.php:625
-msgid "Profile not found."
-msgstr "Profiel niet gevonden."
-
-#: ../../Zotlabs/Module/Profiles.php:44
-msgid "Profile deleted."
-msgstr "Profiel verwijderd."
-
-#: ../../Zotlabs/Module/Profiles.php:68 ../../Zotlabs/Module/Profiles.php:104
-msgid "Profile-"
-msgstr "Profiel-"
+msgid "%s : Not a valid email address."
+msgstr "%s : Geen geldig e-mailadres."
-#: ../../Zotlabs/Module/Profiles.php:89 ../../Zotlabs/Module/Profiles.php:132
-msgid "New profile created."
-msgstr "Nieuw profiel aangemaakt."
+#: ../../Zotlabs/Module/Invite.php:63
+msgid "Please join us on $Projectname"
+msgstr "Uitnodiging voor $Projectname"
-#: ../../Zotlabs/Module/Profiles.php:110
-msgid "Profile unavailable to clone."
-msgstr "Profiel niet beschikbaar om te klonen"
+#: ../../Zotlabs/Module/Invite.php:74
+msgid "Invitation limit exceeded. Please contact your site administrator."
+msgstr "Limiet voor aantal uitnodigingen overschreden. Neem contact op met je hub-beheerder."
-#: ../../Zotlabs/Module/Profiles.php:151
-msgid "Profile unavailable to export."
-msgstr "Geen profiel beschikbaar om te exporteren"
+#: ../../Zotlabs/Module/Invite.php:79
+#, php-format
+msgid "%s : Message delivery failed."
+msgstr "%s: Aflevering bericht mislukt."
-#: ../../Zotlabs/Module/Profiles.php:256
-msgid "Profile Name is required."
-msgstr "Profielnaam is vereist"
+#: ../../Zotlabs/Module/Invite.php:83
+#, php-format
+msgid "%d message sent."
+msgid_plural "%d messages sent."
+msgstr[0] "%d bericht verzonden."
+msgstr[1] "%d berichten verzonden."
-#: ../../Zotlabs/Module/Profiles.php:427
-msgid "Marital Status"
-msgstr "Huwelijke status"
+#: ../../Zotlabs/Module/Invite.php:102
+msgid "You have no more invitations available"
+msgstr "Je hebt geen uitnodigingen meer beschikbaar"
-#: ../../Zotlabs/Module/Profiles.php:431
-msgid "Romantic Partner"
-msgstr "Romantische partner"
+#: ../../Zotlabs/Module/Invite.php:133
+msgid "Send invitations"
+msgstr "Uitnodigingen verzenden"
-#: ../../Zotlabs/Module/Profiles.php:435 ../../Zotlabs/Module/Profiles.php:736
-msgid "Likes"
-msgstr "Houdt van"
+#: ../../Zotlabs/Module/Invite.php:134
+msgid "Enter email addresses, one per line:"
+msgstr "Voer e-mailadressen in, één per regel:"
-#: ../../Zotlabs/Module/Profiles.php:439 ../../Zotlabs/Module/Profiles.php:737
-msgid "Dislikes"
-msgstr "Houdt niet van"
+#: ../../Zotlabs/Module/Invite.php:135 ../../Zotlabs/Module/Mail.php:241
+msgid "Your message:"
+msgstr "Jouw bericht:"
-#: ../../Zotlabs/Module/Profiles.php:443 ../../Zotlabs/Module/Profiles.php:744
-msgid "Work/Employment"
-msgstr "Werk/arbeid"
+#: ../../Zotlabs/Module/Invite.php:136
+msgid "Please join my community on $Projectname."
+msgstr "Hierbij nodig ik je uit om mij, en andere vrienden en kennissen, op $Projectname te vergezellen. Lees meer over $Projectname op http://hubzilla.org"
-#: ../../Zotlabs/Module/Profiles.php:446
-msgid "Religion"
-msgstr "Religie"
+#: ../../Zotlabs/Module/Invite.php:138
+msgid "You will need to supply this invitation code:"
+msgstr "Je moet deze uitnodigingscode opgeven:"
-#: ../../Zotlabs/Module/Profiles.php:450
-msgid "Political Views"
-msgstr "Politieke overtuigingen"
+#: ../../Zotlabs/Module/Invite.php:139
+msgid ""
+"1. Register at any $Projectname location (they are all inter-connected)"
+msgstr "1. Registreer je op een willekeurige $Projectname-hub (ze zijn allemaal onderling met elkaar verbonden):"
-#: ../../Zotlabs/Module/Profiles.php:458
-msgid "Sexual Preference"
-msgstr "Seksuele voorkeur"
+#: ../../Zotlabs/Module/Invite.php:141
+msgid "2. Enter my $Projectname network address into the site searchbar."
+msgstr "2. Nadat je bent ingelogd en een kanaal hebt aangemaakt kan je mijn $Projectname-kanaaladres in het zoekveld invullen:"
-#: ../../Zotlabs/Module/Profiles.php:462
-msgid "Homepage"
-msgstr "Homepage"
+#: ../../Zotlabs/Module/Invite.php:142
+msgid "or visit"
+msgstr "of bezoek"
-#: ../../Zotlabs/Module/Profiles.php:466
-msgid "Interests"
-msgstr "Interesses"
+#: ../../Zotlabs/Module/Invite.php:144
+msgid "3. Click [Connect]"
+msgstr "3. Klik op [+ Verbinden]"
-#: ../../Zotlabs/Module/Profiles.php:560
-msgid "Profile updated."
-msgstr "Profiel bijgewerkt"
+#: ../../Zotlabs/Module/Locs.php:25 ../../Zotlabs/Module/Locs.php:54
+msgid "Location not found."
+msgstr "Locatie niet gevonden."
-#: ../../Zotlabs/Module/Profiles.php:644
-msgid "Hide your connections list from viewers of this profile"
-msgstr "Laat de lijst met connecties niet aan bezoekers van dit profiel zien."
+#: ../../Zotlabs/Module/Locs.php:62
+msgid "Location lookup failed."
+msgstr "Opzoeken locatie mislukt"
-#: ../../Zotlabs/Module/Profiles.php:686
-msgid "Edit Profile Details"
-msgstr "Profiel bewerken"
+#: ../../Zotlabs/Module/Locs.php:66
+msgid ""
+"Please select another location to become primary before removing the primary"
+" location."
+msgstr "Kies eerst een andere primaire locatie alvorens de huidige primaire locatie te verwijderen."
-#: ../../Zotlabs/Module/Profiles.php:688
-msgid "View this profile"
-msgstr "Profiel weergeven"
+#: ../../Zotlabs/Module/Locs.php:95
+msgid "Syncing locations"
+msgstr "Locaties synchronizeren"
-#: ../../Zotlabs/Module/Profiles.php:689 ../../Zotlabs/Module/Profiles.php:771
-#: ../../include/channel.php:959
-msgid "Edit visibility"
-msgstr "Zichtbaarheid bewerken"
+#: ../../Zotlabs/Module/Locs.php:105
+msgid "No locations found."
+msgstr "Geen locaties gevonden."
-#: ../../Zotlabs/Module/Profiles.php:690
-msgid "Profile Tools"
-msgstr "Hulpmiddelen"
+#: ../../Zotlabs/Module/Locs.php:116
+msgid "Manage Channel Locations"
+msgstr "Kanaallocaties beheren"
-#: ../../Zotlabs/Module/Profiles.php:691
-msgid "Change cover photo"
-msgstr "Omslagfoto wijzigen"
+#: ../../Zotlabs/Module/Locs.php:118 ../../Zotlabs/Module/Admin.php:1237
+#: ../../Zotlabs/Module/Profiles.php:470
+msgid "Address"
+msgstr "Kanaaladres"
-#: ../../Zotlabs/Module/Profiles.php:692 ../../include/channel.php:930
-msgid "Change profile photo"
-msgstr "Profielfoto veranderen"
+#: ../../Zotlabs/Module/Locs.php:119
+msgid "Primary"
+msgstr "Primair"
-#: ../../Zotlabs/Module/Profiles.php:693
-msgid "Create a new profile using these settings"
-msgstr "Een nieuw profiel aanmaken met dit profiel als basis"
+#: ../../Zotlabs/Module/Locs.php:122
+msgid "Sync Now"
+msgstr "Nu synchroniseren"
-#: ../../Zotlabs/Module/Profiles.php:694
-msgid "Clone this profile"
-msgstr "Dit profiel klonen"
+#: ../../Zotlabs/Module/Locs.php:123
+msgid "Please wait several minutes between consecutive operations."
+msgstr "Wacht enkele minuten tussen opeenvolgende handelingen."
-#: ../../Zotlabs/Module/Profiles.php:695
-msgid "Delete this profile"
-msgstr "Dit profiel verwijderen"
+#: ../../Zotlabs/Module/Locs.php:124
+msgid ""
+"When possible, drop a location by logging into that website/hub and removing"
+" your channel."
+msgstr "Wij adviseren, wanneer dit (nog) mogelijk is, de locatie te verwijderen door op de hub van de kloon in te loggen en het kanaal daar te verwijderen."
-#: ../../Zotlabs/Module/Profiles.php:696
-msgid "Add profile things"
-msgstr "Dingen aan je profiel toevoegen"
+#: ../../Zotlabs/Module/Locs.php:125
+msgid "Use this form to drop the location if the hub is no longer operating."
+msgstr "Gebruik dit formulier om de locatie te verwijderen wanneer de hub van de kloon niet meer operationeel is."
-#: ../../Zotlabs/Module/Profiles.php:697 ../../include/widgets.php:105
-#: ../../include/conversation.php:1526
-msgid "Personal"
-msgstr "Persoonlijk"
+#: ../../Zotlabs/Module/Magic.php:71
+msgid "Hub not found."
+msgstr "Hub niet gevonden."
-#: ../../Zotlabs/Module/Profiles.php:699
-msgid "Relation"
-msgstr "Relatie"
+#: ../../Zotlabs/Module/Like.php:19
+msgid "Like/Dislike"
+msgstr "Leuk/niet leuk"
-#: ../../Zotlabs/Module/Profiles.php:700 ../../include/datetime.php:48
-msgid "Miscellaneous"
-msgstr "Diversen"
+#: ../../Zotlabs/Module/Like.php:24
+msgid "This action is restricted to members."
+msgstr "Deze actie kan alleen door $Projectname-leden worden uitgevoerd."
-#: ../../Zotlabs/Module/Profiles.php:702
-msgid "Import profile from file"
-msgstr "Profiel vanuit bestand importeren"
+#: ../../Zotlabs/Module/Like.php:25
+msgid ""
+"Please <a href=\"rmagic\">login with your $Projectname ID</a> or <a "
+"href=\"register\">register as a new $Projectname member</a> to continue."
+msgstr "Je dient <a href=\"rmagic\">in te loggen met je $Projectname-account</a> of <a href=\"register\">een nieuw $Projectname-account aan te maken</a> om verder te kunnen gaan."
-#: ../../Zotlabs/Module/Profiles.php:703
-msgid "Export profile to file"
-msgstr "Profiel naar bestand exporteren"
+#: ../../Zotlabs/Module/Like.php:105 ../../Zotlabs/Module/Like.php:131
+#: ../../Zotlabs/Module/Like.php:169
+msgid "Invalid request."
+msgstr "Ongeldig verzoek"
-#: ../../Zotlabs/Module/Profiles.php:704
-msgid "Your gender"
-msgstr "Jouw geslacht"
+#: ../../Zotlabs/Module/Like.php:117 ../../include/conversation.php:126
+msgid "channel"
+msgstr "kanaal"
-#: ../../Zotlabs/Module/Profiles.php:705
-msgid "Marital status"
-msgstr "Burgerlijke staat"
+#: ../../Zotlabs/Module/Like.php:146
+msgid "thing"
+msgstr "ding"
-#: ../../Zotlabs/Module/Profiles.php:706
-msgid "Sexual preference"
-msgstr "Seksuele voorkeur"
+#: ../../Zotlabs/Module/Like.php:192
+msgid "Channel unavailable."
+msgstr "Kanaal niet beschikbaar."
-#: ../../Zotlabs/Module/Profiles.php:709
-msgid "Profile name"
-msgstr "Profielnaam"
+#: ../../Zotlabs/Module/Like.php:240
+msgid "Previous action reversed."
+msgstr "Vorige actie omgedraaid"
-#: ../../Zotlabs/Module/Profiles.php:711
-msgid "This is your default profile."
-msgstr "Dit is jouw standaardprofiel"
+#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87
+#: ../../Zotlabs/Module/Tagger.php:47 ../../include/text.php:1945
+#: ../../include/conversation.php:120
+msgid "photo"
+msgstr "foto"
-#: ../../Zotlabs/Module/Profiles.php:713
-msgid "Your full name"
-msgstr "Jouw volledige naam"
+#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87
+#: ../../include/text.php:1951 ../../include/conversation.php:148
+msgid "status"
+msgstr "bericht"
-#: ../../Zotlabs/Module/Profiles.php:714
-msgid "Title/Description"
-msgstr "Titel/omschrijving"
+#: ../../Zotlabs/Module/Like.php:372 ../../Zotlabs/Module/Events.php:253
+#: ../../Zotlabs/Module/Tagger.php:51 ../../include/text.php:1948
+#: ../../include/conversation.php:123 ../../include/event.php:958
+msgid "event"
+msgstr "gebeurtenis"
-#: ../../Zotlabs/Module/Profiles.php:717
-msgid "Street address"
-msgstr "Straat en huisnummer"
+#: ../../Zotlabs/Module/Like.php:419 ../../include/conversation.php:164
+#, php-format
+msgid "%1$s likes %2$s's %3$s"
+msgstr "%1$s vindt %3$s van %2$s leuk"
-#: ../../Zotlabs/Module/Profiles.php:718
-msgid "Locality/City"
-msgstr "Woonplaats"
+#: ../../Zotlabs/Module/Like.php:421 ../../include/conversation.php:167
+#, php-format
+msgid "%1$s doesn't like %2$s's %3$s"
+msgstr "%1$s vindt %3$s van %2$s niet leuk"
-#: ../../Zotlabs/Module/Profiles.php:719
-msgid "Region/State"
-msgstr "Provincie/gewest/deelstaat"
+#: ../../Zotlabs/Module/Like.php:423
+#, php-format
+msgid "%1$s agrees with %2$s's %3$s"
+msgstr "%1$s is het eens met %2$s's %3$s"
-#: ../../Zotlabs/Module/Profiles.php:720
-msgid "Postal/Zip code"
-msgstr "Postcode"
+#: ../../Zotlabs/Module/Like.php:425
+#, php-format
+msgid "%1$s doesn't agree with %2$s's %3$s"
+msgstr "%1$s is het niet eens met %2$s's %3$s"
-#: ../../Zotlabs/Module/Profiles.php:721
-msgid "Country"
-msgstr "Land"
+#: ../../Zotlabs/Module/Like.php:427
+#, php-format
+msgid "%1$s abstains from a decision on %2$s's %3$s"
+msgstr "%1$s onthoudt zich van een besluit over %2$s's %3$s"
-#: ../../Zotlabs/Module/Profiles.php:726
-msgid "Who (if applicable)"
-msgstr "Wie (wanneer van toepassing)"
+#: ../../Zotlabs/Module/Like.php:429
+#, php-format
+msgid "%1$s is attending %2$s's %3$s"
+msgstr "%1$s is aanwezig op %2$s's %3$s"
-#: ../../Zotlabs/Module/Profiles.php:726
-msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
-msgstr "Voorbeelden: petra123, Petra Jansen, petra@voorbeeld.nl"
+#: ../../Zotlabs/Module/Like.php:431
+#, php-format
+msgid "%1$s is not attending %2$s's %3$s"
+msgstr "%1$s is niet aanwezig op %2$s's %3$s"
-#: ../../Zotlabs/Module/Profiles.php:727
-msgid "Since (date)"
-msgstr "Sinds (datum)"
+#: ../../Zotlabs/Module/Like.php:433
+#, php-format
+msgid "%1$s may attend %2$s's %3$s"
+msgstr "%1$s is mogelijk aanwezig op %2$s's %3$s"
-#: ../../Zotlabs/Module/Profiles.php:730
-msgid "Tell us about yourself"
-msgstr "Vertel ons iets over jezelf"
+#: ../../Zotlabs/Module/Like.php:538
+msgid "Action completed."
+msgstr "Actie voltooid"
-#: ../../Zotlabs/Module/Profiles.php:732
-msgid "Hometown"
-msgstr "Oorspronkelijk uit"
+#: ../../Zotlabs/Module/Like.php:539
+msgid "Thank you."
+msgstr "Bedankt"
-#: ../../Zotlabs/Module/Profiles.php:733
-msgid "Political views"
-msgstr "Politieke overtuigingen"
+#: ../../Zotlabs/Module/Manage.php:136
+#: ../../Zotlabs/Module/New_channel.php:121
+#, php-format
+msgid "You have created %1$.0f of %2$.0f allowed channels."
+msgstr "Je hebt %1$.0f van totaal %2$.0f toegestane kanalen aangemaakt."
-#: ../../Zotlabs/Module/Profiles.php:734
-msgid "Religious views"
-msgstr "Religieuze overtuigingen"
+#: ../../Zotlabs/Module/Manage.php:143
+msgid "Create a new channel"
+msgstr "Nieuw kanaal aanmaken"
-#: ../../Zotlabs/Module/Profiles.php:735
-msgid "Keywords used in directory listings"
-msgstr "Trefwoorden voor in de kanalengids"
+#: ../../Zotlabs/Module/Manage.php:143 ../../Zotlabs/Module/Profiles.php:778
+#: ../../Zotlabs/Module/Chat.php:255
+msgid "Create New"
+msgstr "Nieuwe aanmaken"
-#: ../../Zotlabs/Module/Profiles.php:735
-msgid "Example: fishing photography software"
-msgstr "Voorbeeld: muziek, fotografie, software"
+#: ../../Zotlabs/Module/Manage.php:164 ../../Zotlabs/Lib/Apps.php:214
+#: ../../include/nav.php:210
+msgid "Channel Manager"
+msgstr "Kanaalbeheer"
-#: ../../Zotlabs/Module/Profiles.php:738
-msgid "Musical interests"
-msgstr "Muzikale interesses"
+#: ../../Zotlabs/Module/Manage.php:165
+msgid "Current Channel"
+msgstr "Huidig kanaal"
-#: ../../Zotlabs/Module/Profiles.php:739
-msgid "Books, literature"
-msgstr "Boeken/literatuur"
+#: ../../Zotlabs/Module/Manage.php:167
+msgid "Switch to one of your channels by selecting it."
+msgstr "Activeer een van jouw andere kanalen door er op te klikken."
-#: ../../Zotlabs/Module/Profiles.php:740
-msgid "Television"
-msgstr "Televisie"
+#: ../../Zotlabs/Module/Manage.php:168
+msgid "Default Channel"
+msgstr "Standaardkanaal"
-#: ../../Zotlabs/Module/Profiles.php:741
-msgid "Film/Dance/Culture/Entertainment"
-msgstr "Film/dans/cultuur/entertainment"
+#: ../../Zotlabs/Module/Manage.php:169
+msgid "Make Default"
+msgstr "Als standaard instellen"
-#: ../../Zotlabs/Module/Profiles.php:742
-msgid "Hobbies/Interests"
-msgstr "Hobby's/interesses"
+#: ../../Zotlabs/Module/Manage.php:172
+#, php-format
+msgid "%d new messages"
+msgstr "%d nieuwe berichten"
-#: ../../Zotlabs/Module/Profiles.php:743
-msgid "Love/Romance"
-msgstr "Liefde/romantiek"
+#: ../../Zotlabs/Module/Manage.php:173
+#, php-format
+msgid "%d new introductions"
+msgstr "%d nieuwe connectieverzoeken"
-#: ../../Zotlabs/Module/Profiles.php:745
-msgid "School/Education"
-msgstr "School/opleiding"
+#: ../../Zotlabs/Module/Manage.php:175
+msgid "Delegated Channel"
+msgstr "Uitbesteed kanaal"
-#: ../../Zotlabs/Module/Profiles.php:746
-msgid "Contact information and social networks"
-msgstr "Contactinformatie en sociale netwerken"
+#: ../../Zotlabs/Module/Mitem.php:52
+msgid "Unable to create element."
+msgstr "Niet in staat om onderdeel aan te maken."
-#: ../../Zotlabs/Module/Profiles.php:747
-msgid "My other channels"
-msgstr "Mijn andere kanalen"
+#: ../../Zotlabs/Module/Mitem.php:76
+msgid "Unable to update menu element."
+msgstr "Menu-onderdeel kan niet worden geüpdatet."
-#: ../../Zotlabs/Module/Profiles.php:767 ../../include/channel.php:955
-msgid "Profile Image"
-msgstr "Profielfoto"
+#: ../../Zotlabs/Module/Mitem.php:92
+msgid "Unable to add menu element."
+msgstr "Menu-onderdeel kan niet worden toegevoegd."
-#: ../../Zotlabs/Module/Profiles.php:777 ../../include/nav.php:88
-#: ../../include/channel.php:937
-msgid "Edit Profiles"
-msgstr "Bewerk profielen"
+#: ../../Zotlabs/Module/Mitem.php:153 ../../Zotlabs/Module/Mitem.php:230
+msgid "Menu Item Permissions"
+msgstr "Permissies menu-item"
-#: ../../Zotlabs/Module/Profile_photo.php:179
-msgid ""
-"Shift-reload the page or clear browser cache if the new photo does not "
-"display immediately."
-msgstr "Vernieuw de pagina met shift+R of shift+F5, of leeg je browserbuffer, wanneer de nieuwe foto niet meteen wordt weergegeven."
+#: ../../Zotlabs/Module/Mitem.php:160 ../../Zotlabs/Module/Mitem.php:176
+msgid "Link Name"
+msgstr "Linknaam"
-#: ../../Zotlabs/Module/Profile_photo.php:367
-msgid "Upload Profile Photo"
-msgstr "Profielfoto uploaden"
+#: ../../Zotlabs/Module/Mitem.php:161 ../../Zotlabs/Module/Mitem.php:239
+msgid "Link or Submenu Target"
+msgstr "Linkdoel of submenu-doel"
-#: ../../Zotlabs/Module/Profperm.php:34 ../../Zotlabs/Module/Profperm.php:63
-msgid "Invalid profile identifier."
-msgstr "Ongeldige profiel-identificator"
+#: ../../Zotlabs/Module/Mitem.php:161
+msgid "Enter URL of the link or select a menu name to create a submenu"
+msgstr "Geef de URL van de link of kies een menunaam om een submenu aan te maken"
-#: ../../Zotlabs/Module/Profperm.php:115
-msgid "Profile Visibility Editor"
-msgstr "Zichtbaarheid profiel "
+#: ../../Zotlabs/Module/Mitem.php:162 ../../Zotlabs/Module/Mitem.php:240
+msgid "Use magic-auth if available"
+msgstr "Gebruik magic-auth wanneer beschikbaar"
-#: ../../Zotlabs/Module/Profperm.php:117 ../../include/channel.php:1249
-msgid "Profile"
-msgstr "Profiel"
+#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:241
+msgid "Open link in new window"
+msgstr "Open link in nieuw venster"
-#: ../../Zotlabs/Module/Profperm.php:119
-msgid "Click on a contact to add or remove."
-msgstr "Klik op een connectie om deze toe te voegen of te verwijderen"
+#: ../../Zotlabs/Module/Mitem.php:164 ../../Zotlabs/Module/Mitem.php:242
+msgid "Order in list"
+msgstr "Volgorde in lijst"
-#: ../../Zotlabs/Module/Profperm.php:128
-msgid "Visible To"
-msgstr "Zichtbaar voor"
+#: ../../Zotlabs/Module/Mitem.php:164 ../../Zotlabs/Module/Mitem.php:242
+msgid "Higher numbers will sink to bottom of listing"
+msgstr "Hogere nummers komen onderaan de lijst terecht"
-#: ../../Zotlabs/Module/Pubsites.php:22 ../../include/widgets.php:1270
-msgid "Public Hubs"
-msgstr "Openbare hubs"
+#: ../../Zotlabs/Module/Mitem.php:165
+msgid "Submit and finish"
+msgstr "Opslaan en afsluiten"
-#: ../../Zotlabs/Module/Pubsites.php:25
-msgid ""
-"The listed hubs allow public registration for the $Projectname network. All "
-"hubs in the network are interlinked so membership on any of them conveys "
-"membership in the network as a whole. Some hubs may require subscription or "
-"provide tiered service plans. The hub itself <strong>may</strong> provide "
-"additional details."
-msgstr "Op de hier weergegeven hubs kan iedereen zich voor het $Projectname-netwerk aanmelden. Alle hubs in het netwerk zijn met elkaar verbonden, dus maakt het qua lidmaatschap niet uit waar je je aanmeldt. Op sommige hubs heb je eerst goedkeuring nodig en sommige hubs vereisen een financiële tegemoetkoming voor bepaalde uitbreidingen. <strong>Mogelijk</strong> wordt hierover op de hub zelf meer informatie gegeven."
+#: ../../Zotlabs/Module/Mitem.php:166
+msgid "Submit and continue"
+msgstr "Opslaan en doorgaan"
-#: ../../Zotlabs/Module/Pubsites.php:31
-msgid "Hub URL"
-msgstr "Hub-URL"
+#: ../../Zotlabs/Module/Mitem.php:174
+msgid "Menu:"
+msgstr "Menu:"
-#: ../../Zotlabs/Module/Pubsites.php:31
-msgid "Access Type"
-msgstr "Toegangs-<br/>&nbsp;type"
+#: ../../Zotlabs/Module/Mitem.php:177
+msgid "Link Target"
+msgstr "Linkdoel"
-#: ../../Zotlabs/Module/Pubsites.php:31
-msgid "Registration Policy"
-msgstr "Registratie-<br/>&nbsp;beleid"
+#: ../../Zotlabs/Module/Mitem.php:180
+msgid "Edit menu"
+msgstr "Menu bewerken"
-#: ../../Zotlabs/Module/Pubsites.php:31
-msgid "Stats"
-msgstr "Stats"
+#: ../../Zotlabs/Module/Mitem.php:183
+msgid "Edit element"
+msgstr "Onderdeel bewerken"
-#: ../../Zotlabs/Module/Pubsites.php:31
-msgid "Software"
-msgstr "Software"
+#: ../../Zotlabs/Module/Mitem.php:184
+msgid "Drop element"
+msgstr "Onderdeel verwijderen"
-#: ../../Zotlabs/Module/Pubsites.php:31 ../../Zotlabs/Module/Ratings.php:103
-#: ../../include/conversation.php:959
-msgid "Ratings"
-msgstr "Beoordelingen"
+#: ../../Zotlabs/Module/Mitem.php:185
+msgid "New element"
+msgstr "Nieuw element"
-#: ../../Zotlabs/Module/Pubsites.php:38
-msgid "Rate"
-msgstr "Beoordeel"
+#: ../../Zotlabs/Module/Mitem.php:186
+msgid "Edit this menu container"
+msgstr "Deze menu-container bewerken"
-#: ../../Zotlabs/Module/Rate.php:160
-msgid "Website:"
-msgstr "Website:"
+#: ../../Zotlabs/Module/Mitem.php:187
+msgid "Add menu element"
+msgstr "Menu-element toevoegen"
-#: ../../Zotlabs/Module/Rate.php:163
-#, php-format
-msgid "Remote Channel [%s] (not yet known on this site)"
-msgstr "Kanaal op afstand [%s] (nog niet op deze hub bekend)"
+#: ../../Zotlabs/Module/Mitem.php:188
+msgid "Delete this menu item"
+msgstr "Dit menu-item verwijderen"
-#: ../../Zotlabs/Module/Rate.php:164
-msgid "Rating (this information is public)"
-msgstr "Beoordeling (deze informatie is openbaar)"
+#: ../../Zotlabs/Module/Mitem.php:189
+msgid "Edit this menu item"
+msgstr "Dit menu-item bewerken"
-#: ../../Zotlabs/Module/Rate.php:165
-msgid "Optionally explain your rating (this information is public)"
-msgstr "Verklaar jouw beoordeling (niet verplicht, deze informatie is openbaar)"
+#: ../../Zotlabs/Module/Mitem.php:206
+msgid "Menu item not found."
+msgstr "Menu-item niet gevonden."
-#: ../../Zotlabs/Module/Ratings.php:73
-msgid "No ratings"
-msgstr "Geen beoordelingen"
+#: ../../Zotlabs/Module/Mitem.php:219
+msgid "Menu item deleted."
+msgstr "Menu-item verwijderd."
-#: ../../Zotlabs/Module/Ratings.php:104
-msgid "Rating: "
-msgstr "Beoordeling: "
+#: ../../Zotlabs/Module/Mitem.php:221
+msgid "Menu item could not be deleted."
+msgstr "Menu-item kon niet worden verwijderd."
-#: ../../Zotlabs/Module/Ratings.php:105
-msgid "Website: "
-msgstr "Website: "
+#: ../../Zotlabs/Module/Mitem.php:228
+msgid "Edit Menu Element"
+msgstr "Menu-element bewerken"
-#: ../../Zotlabs/Module/Ratings.php:107
-msgid "Description: "
-msgstr "Omschrijving: "
+#: ../../Zotlabs/Module/Mitem.php:238
+msgid "Link text"
+msgstr "Linktekst"
#: ../../Zotlabs/Module/Admin.php:77
msgid "Theme settings updated."
@@ -3620,12 +3635,12 @@ msgstr "Berichtenwachtrij"
msgid "Your software should be updated"
msgstr "Jouw software moet worden bijgewerkt "
-#: ../../Zotlabs/Module/Admin.php:241 ../../Zotlabs/Module/Admin.php:490
-#: ../../Zotlabs/Module/Admin.php:711 ../../Zotlabs/Module/Admin.php:755
-#: ../../Zotlabs/Module/Admin.php:1030 ../../Zotlabs/Module/Admin.php:1209
-#: ../../Zotlabs/Module/Admin.php:1329 ../../Zotlabs/Module/Admin.php:1419
-#: ../../Zotlabs/Module/Admin.php:1612 ../../Zotlabs/Module/Admin.php:1646
-#: ../../Zotlabs/Module/Admin.php:1731
+#: ../../Zotlabs/Module/Admin.php:241 ../../Zotlabs/Module/Admin.php:500
+#: ../../Zotlabs/Module/Admin.php:724 ../../Zotlabs/Module/Admin.php:768
+#: ../../Zotlabs/Module/Admin.php:1043 ../../Zotlabs/Module/Admin.php:1222
+#: ../../Zotlabs/Module/Admin.php:1342 ../../Zotlabs/Module/Admin.php:1433
+#: ../../Zotlabs/Module/Admin.php:1626 ../../Zotlabs/Module/Admin.php:1660
+#: ../../Zotlabs/Module/Admin.php:1745
msgid "Administration"
msgstr "Beheer"
@@ -3637,7 +3652,7 @@ msgstr "Samenvatting"
msgid "Registered accounts"
msgstr "Geregistreerde accounts"
-#: ../../Zotlabs/Module/Admin.php:246 ../../Zotlabs/Module/Admin.php:715
+#: ../../Zotlabs/Module/Admin.php:246 ../../Zotlabs/Module/Admin.php:728
msgid "Pending registrations"
msgstr "Accounts die op goedkeuring wachten"
@@ -3645,7 +3660,7 @@ msgstr "Accounts die op goedkeuring wachten"
msgid "Registered channels"
msgstr "Geregistreerde kanalen"
-#: ../../Zotlabs/Module/Admin.php:248 ../../Zotlabs/Module/Admin.php:716
+#: ../../Zotlabs/Module/Admin.php:248 ../../Zotlabs/Module/Admin.php:729
msgid "Active plugins"
msgstr "Ingeschakelde plugins"
@@ -3661,2256 +3676,2537 @@ msgstr "Versie repository (master)"
msgid "Repository version (dev)"
msgstr "Versie repository (dev)"
-#: ../../Zotlabs/Module/Admin.php:373
+#: ../../Zotlabs/Module/Admin.php:377
msgid "Site settings updated."
msgstr "Hub-instellingen bijgewerkt."
-#: ../../Zotlabs/Module/Admin.php:400 ../../include/text.php:2841
+#: ../../Zotlabs/Module/Admin.php:404 ../../include/text.php:2888
msgid "Default"
msgstr "Standaard"
-#: ../../Zotlabs/Module/Admin.php:410 ../../Zotlabs/Module/Settings.php:798
-msgid "mobile"
-msgstr "mobiel"
-
-#: ../../Zotlabs/Module/Admin.php:412
+#: ../../Zotlabs/Module/Admin.php:416
msgid "experimental"
msgstr "experimenteel"
-#: ../../Zotlabs/Module/Admin.php:414
+#: ../../Zotlabs/Module/Admin.php:418
msgid "unsupported"
msgstr "Niet ondersteund"
-#: ../../Zotlabs/Module/Admin.php:460
+#: ../../Zotlabs/Module/Admin.php:464
msgid "Yes - with approval"
msgstr "Ja - met goedkeuring"
-#: ../../Zotlabs/Module/Admin.php:466
+#: ../../Zotlabs/Module/Admin.php:470
msgid "My site is not a public server"
msgstr "Mijn $Projectname-hub is niet openbaar"
-#: ../../Zotlabs/Module/Admin.php:467
+#: ../../Zotlabs/Module/Admin.php:471
msgid "My site has paid access only"
msgstr "Mijn $Projectname-hub kent alleen betaalde toegang"
-#: ../../Zotlabs/Module/Admin.php:468
+#: ../../Zotlabs/Module/Admin.php:472
msgid "My site has free access only"
msgstr "Mijn $Projectname-hub kent alleen gratis toegang"
-#: ../../Zotlabs/Module/Admin.php:469
+#: ../../Zotlabs/Module/Admin.php:473
msgid "My site offers free accounts with optional paid upgrades"
msgstr "Mijn $Projectname-hub biedt gratis accounts aan met betaalde uitbreidingen als optie"
-#: ../../Zotlabs/Module/Admin.php:491 ../../include/widgets.php:1382
+#: ../../Zotlabs/Module/Admin.php:501 ../../include/widgets.php:1490
msgid "Site"
msgstr "Hub-instellingen"
-#: ../../Zotlabs/Module/Admin.php:493 ../../Zotlabs/Module/Register.php:245
-msgid "Registration"
-msgstr "Registratie"
-
-#: ../../Zotlabs/Module/Admin.php:494
+#: ../../Zotlabs/Module/Admin.php:504
msgid "File upload"
msgstr "Bestand uploaden"
-#: ../../Zotlabs/Module/Admin.php:495
+#: ../../Zotlabs/Module/Admin.php:505
msgid "Policies"
msgstr "Beleid"
-#: ../../Zotlabs/Module/Admin.php:496 ../../include/contact_widgets.php:16
+#: ../../Zotlabs/Module/Admin.php:506 ../../include/contact_widgets.php:16
msgid "Advanced"
msgstr "Geavanceerd"
-#: ../../Zotlabs/Module/Admin.php:500
+#: ../../Zotlabs/Module/Admin.php:510
msgid "Site name"
msgstr "Naam van deze $Projectname-hub"
-#: ../../Zotlabs/Module/Admin.php:501
+#: ../../Zotlabs/Module/Admin.php:514
msgid "Banner/Logo"
msgstr "Banner/logo"
-#: ../../Zotlabs/Module/Admin.php:502
+#: ../../Zotlabs/Module/Admin.php:515
msgid "Administrator Information"
-msgstr "Informatie over de beheerder van deze hub"
+msgstr "Informatie over de beheerder"
-#: ../../Zotlabs/Module/Admin.php:502
+#: ../../Zotlabs/Module/Admin.php:515
msgid ""
"Contact information for site administrators. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr "Contactinformatie voor hub-beheerders. Getoond op pagina met hub-informatie. Er kan hier bbcode gebruikt worden."
-#: ../../Zotlabs/Module/Admin.php:503
+#: ../../Zotlabs/Module/Admin.php:516
msgid "System language"
msgstr "Standaardtaal"
-#: ../../Zotlabs/Module/Admin.php:504
+#: ../../Zotlabs/Module/Admin.php:517
msgid "System theme"
msgstr "Standaardthema"
-#: ../../Zotlabs/Module/Admin.php:504
+#: ../../Zotlabs/Module/Admin.php:517
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href='#' "
"id='cnftheme'>change theme settings</a>"
msgstr "Standaardthema voor $Projectname-hub (kan door lid veranderd worden) - <a href='#' id='cnftheme'>verander thema-instellingen</a>"
-#: ../../Zotlabs/Module/Admin.php:505
+#: ../../Zotlabs/Module/Admin.php:518
msgid "Mobile system theme"
msgstr "Standaardthema voor mobiel"
-#: ../../Zotlabs/Module/Admin.php:505
+#: ../../Zotlabs/Module/Admin.php:518
msgid "Theme for mobile devices"
msgstr "Thema voor mobiele apparaten"
-#: ../../Zotlabs/Module/Admin.php:507
+#: ../../Zotlabs/Module/Admin.php:520
msgid "Allow Feeds as Connections"
msgstr "Sta feeds toe als connecties"
-#: ../../Zotlabs/Module/Admin.php:507
+#: ../../Zotlabs/Module/Admin.php:520
msgid "(Heavy system resource usage)"
msgstr "(sterk negatieve invloed op systeembronnen hub)"
-#: ../../Zotlabs/Module/Admin.php:508
+#: ../../Zotlabs/Module/Admin.php:521
msgid "Maximum image size"
msgstr "Maximale grootte van afbeeldingen"
-#: ../../Zotlabs/Module/Admin.php:508
+#: ../../Zotlabs/Module/Admin.php:521
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr "Maximale grootte in bytes voor afbeeldingen die worden geüpload. Standaard is 0, wat geen limiet betekend."
-#: ../../Zotlabs/Module/Admin.php:509
+#: ../../Zotlabs/Module/Admin.php:522
msgid "Does this site allow new member registration?"
msgstr "Staat deze hub nieuwe accounts toe?"
-#: ../../Zotlabs/Module/Admin.php:510
+#: ../../Zotlabs/Module/Admin.php:523
msgid "Invitation only"
msgstr "Alleen op uitnodiging"
-#: ../../Zotlabs/Module/Admin.php:510
+#: ../../Zotlabs/Module/Admin.php:523
msgid ""
"Only allow new member registrations with an invitation code. Above register "
"policy must be set to Yes."
msgstr "Sta alleen nieuwe registraties toe van mensen die een uitnodigingscode hebben. Bovenstaand accountbeleid moet op Ja staan."
-#: ../../Zotlabs/Module/Admin.php:511
+#: ../../Zotlabs/Module/Admin.php:524
msgid "Which best describes the types of account offered by this hub?"
msgstr "Wat voor soort accounts biedt deze $Projectname-hub aan? Kies wat het meest in de buurt komt."
-#: ../../Zotlabs/Module/Admin.php:512
+#: ../../Zotlabs/Module/Admin.php:525
msgid "Register text"
msgstr "Tekst tijdens registratie"
-#: ../../Zotlabs/Module/Admin.php:512
+#: ../../Zotlabs/Module/Admin.php:525
msgid "Will be displayed prominently on the registration page."
msgstr "Tekst dat op de pagina voor het registreren van nieuwe accounts wordt getoond."
-#: ../../Zotlabs/Module/Admin.php:513
+#: ../../Zotlabs/Module/Admin.php:526
msgid "Site homepage to show visitors (default: login box)"
msgstr "Homepagina van deze hub die aan bezoekers wordt getoond (standaard: inlogformulier)"
-#: ../../Zotlabs/Module/Admin.php:513
+#: ../../Zotlabs/Module/Admin.php:526
msgid ""
"example: 'public' to show public stream, 'page/sys/home' to show a system "
"webpage called 'home' or 'include:home.html' to include a file."
msgstr "voorbeeld: 'public' om de openbare stream te tonen, 'page/sys/home' om de webpagina 'home' van het systeemkanaal te tonen of 'include:home.html' om een gewoon bestand te gebruiken."
-#: ../../Zotlabs/Module/Admin.php:514
+#: ../../Zotlabs/Module/Admin.php:527
msgid "Preserve site homepage URL"
msgstr "Behoudt de URL van de hub (/)"
-#: ../../Zotlabs/Module/Admin.php:514
+#: ../../Zotlabs/Module/Admin.php:527
msgid ""
"Present the site homepage in a frame at the original location instead of "
"redirecting"
msgstr "Toon de homepagina van de hub in een frame op de oorspronkelijke locatie (/), i.p.v. een doorverwijzing naar een andere locatie (bv. .../home.html)"
-#: ../../Zotlabs/Module/Admin.php:515
+#: ../../Zotlabs/Module/Admin.php:528
msgid "Accounts abandoned after x days"
msgstr "Accounts als verlaten beschouwen na zoveel aantal dagen:"
-#: ../../Zotlabs/Module/Admin.php:515
+#: ../../Zotlabs/Module/Admin.php:528
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr "Zal geen systeembronnen verspillen door polling van externe hubs voor verlaten accounts. Vul 0 in voor geen tijdslimiet."
-#: ../../Zotlabs/Module/Admin.php:516
+#: ../../Zotlabs/Module/Admin.php:529
msgid "Allowed friend domains"
msgstr "Toegestane domeinen"
-#: ../../Zotlabs/Module/Admin.php:516
+#: ../../Zotlabs/Module/Admin.php:529
msgid ""
"Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr "Komma-gescheiden lijst van domeinen waarvan kanalen connecties kunnen aangaan met kanalen op deze $Projectname-hub. Wildcards zijn toegestaan.\nLaat leeg om alle domeinen toe te laten."
-#: ../../Zotlabs/Module/Admin.php:517
+#: ../../Zotlabs/Module/Admin.php:530
msgid "Allowed email domains"
msgstr "Toegestane e-maildomeinen"
-#: ../../Zotlabs/Module/Admin.php:517
+#: ../../Zotlabs/Module/Admin.php:530
msgid ""
"Comma separated list of domains which are allowed in email addresses for "
"registrations to this site. Wildcards are accepted. Empty to allow any "
"domains"
msgstr "Door komma's gescheiden lijst met e-maildomeinen waarvan e-mailadressen op deze hub mogen registeren. Wildcards zijn toegestaan. Laat leeg om alle domeinen toe te laten."
-#: ../../Zotlabs/Module/Admin.php:518
+#: ../../Zotlabs/Module/Admin.php:531
msgid "Not allowed email domains"
msgstr "Niet toegestane e-maildomeinen"
-#: ../../Zotlabs/Module/Admin.php:518
+#: ../../Zotlabs/Module/Admin.php:531
msgid ""
"Comma separated list of domains which are not allowed in email addresses for"
" registrations to this site. Wildcards are accepted. Empty to allow any "
"domains, unless allowed domains have been defined."
msgstr "Door komma's gescheiden lijst met e-maildomeinen waarvan e-mailadressen niet op deze hub mogen registeren. Wildcards zijn toegestaan. Laat leeg om alle domeinen toe te staan, tenzij er toegestane domeinen zijn ingesteld. "
-#: ../../Zotlabs/Module/Admin.php:519
+#: ../../Zotlabs/Module/Admin.php:532
msgid "Verify Email Addresses"
msgstr "E-mailadres verifieren"
-#: ../../Zotlabs/Module/Admin.php:519
+#: ../../Zotlabs/Module/Admin.php:532
msgid ""
"Check to verify email addresses used in account registration (recommended)."
msgstr "Inschakelen om e-mailadressen te verifiëren die tijdens de accountregistratie worden gebruikt (aanbevolen)."
-#: ../../Zotlabs/Module/Admin.php:520
+#: ../../Zotlabs/Module/Admin.php:533
msgid "Force publish"
msgstr "Dwing kanaalvermelding af"
-#: ../../Zotlabs/Module/Admin.php:520
+#: ../../Zotlabs/Module/Admin.php:533
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr "Vink dit aan om af te dwingen dat alle kanalen op deze hub in de kanalengids worden vermeld."
-#: ../../Zotlabs/Module/Admin.php:521
+#: ../../Zotlabs/Module/Admin.php:534
msgid "Import Public Streams"
msgstr "Openbare streams importeren"
-#: ../../Zotlabs/Module/Admin.php:521
+#: ../../Zotlabs/Module/Admin.php:534
msgid ""
"Import and allow access to public content pulled from other sites. Warning: "
"this content is unmoderated."
msgstr "Toegang verlenen tot openbare berichten die vanuit andere hubs worden geïmporteerd. Waarschuwing: de inhoud van deze berichten wordt niet gemodereerd."
-#: ../../Zotlabs/Module/Admin.php:522
+#: ../../Zotlabs/Module/Admin.php:535
msgid "Login on Homepage"
msgstr "Inlogformulier op de homepagina"
-#: ../../Zotlabs/Module/Admin.php:522
+#: ../../Zotlabs/Module/Admin.php:535
msgid ""
"Present a login box to visitors on the home page if no other content has "
"been configured."
msgstr "Toon een inlogformulier voor bezoekers op de homepagina wanneer geen andere inhoud is geconfigureerd. "
-#: ../../Zotlabs/Module/Admin.php:523
+#: ../../Zotlabs/Module/Admin.php:536
msgid "Enable context help"
msgstr "Schakel contextuele hulp in"
-#: ../../Zotlabs/Module/Admin.php:523
+#: ../../Zotlabs/Module/Admin.php:536
msgid ""
"Display contextual help for the current page when the help button is "
"pressed."
msgstr "Toon hulp en documentatie voor de op dat moment getoonde pagina, wanneer op de hulp-knop wordt geklikt."
-#: ../../Zotlabs/Module/Admin.php:525
+#: ../../Zotlabs/Module/Admin.php:538
msgid "Directory Server URL"
msgstr "Server-URL voor de kanalengids"
-#: ../../Zotlabs/Module/Admin.php:525
+#: ../../Zotlabs/Module/Admin.php:538
msgid "Default directory server"
msgstr "Standaardserver voor de kanalengids"
-#: ../../Zotlabs/Module/Admin.php:527
+#: ../../Zotlabs/Module/Admin.php:540
msgid "Proxy user"
msgstr "Gebruikersnaam proxy"
-#: ../../Zotlabs/Module/Admin.php:528
+#: ../../Zotlabs/Module/Admin.php:541
msgid "Proxy URL"
msgstr "Proxy-URL"
-#: ../../Zotlabs/Module/Admin.php:529
+#: ../../Zotlabs/Module/Admin.php:542
msgid "Network timeout"
msgstr "Netwerktimeout"
-#: ../../Zotlabs/Module/Admin.php:529
+#: ../../Zotlabs/Module/Admin.php:542
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr "Waarde is in seconden. Zet op 0 voor onbeperkt (niet aanbevolen)"
-#: ../../Zotlabs/Module/Admin.php:530
+#: ../../Zotlabs/Module/Admin.php:543
msgid "Delivery interval"
msgstr "Afleveringsinterval"
-#: ../../Zotlabs/Module/Admin.php:530
+#: ../../Zotlabs/Module/Admin.php:543
msgid ""
"Delay background delivery processes by this many seconds to reduce system "
"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
"for large dedicated servers."
msgstr "Vertraag de achtergrondprocessen voor het afleveren met een aantal seconden om de systeembelasting te verminderen. Aanbevolen: 4-5 voor shared hosts, 2-3 voor virtual private servers (VPS) en 0-1 voor grote dedicated servers."
-#: ../../Zotlabs/Module/Admin.php:531
+#: ../../Zotlabs/Module/Admin.php:544
msgid "Deliveries per process"
msgstr "Leveringen per serverproces"
-#: ../../Zotlabs/Module/Admin.php:531
+#: ../../Zotlabs/Module/Admin.php:544
msgid ""
"Number of deliveries to attempt in a single operating system process. Adjust"
" if necessary to tune system performance. Recommend: 1-5."
msgstr "Aantal leveringen die aan één serverproces worden meegegeven. Pas dit aan wanneer het nodig is om systeemprestaties te verbeteren. Aangeraden: 1-5"
-#: ../../Zotlabs/Module/Admin.php:532
+#: ../../Zotlabs/Module/Admin.php:545
msgid "Poll interval"
msgstr "Poll-interval"
-#: ../../Zotlabs/Module/Admin.php:532
+#: ../../Zotlabs/Module/Admin.php:545
msgid ""
"Delay background polling processes by this many seconds to reduce system "
"load. If 0, use delivery interval."
msgstr "De achtergrondprocessen voor het afleveren met zoveel seconden vertragen om de systeembelasting te verminderen. 0 om de afleveringsinterval te gebruiken."
-#: ../../Zotlabs/Module/Admin.php:533
+#: ../../Zotlabs/Module/Admin.php:546
msgid "Maximum Load Average"
msgstr "Maximaal gemiddelde systeembelasting"
-#: ../../Zotlabs/Module/Admin.php:533
+#: ../../Zotlabs/Module/Admin.php:546
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default 50."
msgstr "Maximale systeembelasting voordat de afleverings- en polllingsprocessen worden uitgesteld. Standaard is 50."
-#: ../../Zotlabs/Module/Admin.php:534
+#: ../../Zotlabs/Module/Admin.php:547
msgid "Expiration period in days for imported (grid/network) content"
msgstr "Aantal dagen waarna geïmporteerde inhoud uit iemands grid/netwerk-pagina wordt verwijderd."
-#: ../../Zotlabs/Module/Admin.php:534
+#: ../../Zotlabs/Module/Admin.php:547
msgid "0 for no expiration of imported content"
msgstr "Dit geldt alleen voor inhoud van andere kanalen, dus niet voor iemands eigen kanaal. 0 voor het niet verwijderen van geïmporteerde inhoud."
-#: ../../Zotlabs/Module/Admin.php:677 ../../Zotlabs/Module/Admin.php:678
-#: ../../Zotlabs/Module/Settings.php:722
-msgid "Off"
-msgstr "Uit"
-
-#: ../../Zotlabs/Module/Admin.php:677 ../../Zotlabs/Module/Admin.php:678
-#: ../../Zotlabs/Module/Settings.php:722
-msgid "On"
-msgstr "Aan"
-
-#: ../../Zotlabs/Module/Admin.php:678
+#: ../../Zotlabs/Module/Admin.php:691
#, php-format
msgid "Lock feature %s"
msgstr " Vergrendel de functie '%s'"
-#: ../../Zotlabs/Module/Admin.php:686
+#: ../../Zotlabs/Module/Admin.php:699
msgid "Manage Additional Features"
msgstr "Beheer - Extra functies"
-#: ../../Zotlabs/Module/Admin.php:703
+#: ../../Zotlabs/Module/Admin.php:716
msgid "No server found"
msgstr "Geen hub gevonden"
-#: ../../Zotlabs/Module/Admin.php:710 ../../Zotlabs/Module/Admin.php:1046
+#: ../../Zotlabs/Module/Admin.php:723 ../../Zotlabs/Module/Admin.php:1059
msgid "ID"
msgstr "ID"
-#: ../../Zotlabs/Module/Admin.php:710
+#: ../../Zotlabs/Module/Admin.php:723
msgid "for channel"
msgstr "voor kanaal"
-#: ../../Zotlabs/Module/Admin.php:710
+#: ../../Zotlabs/Module/Admin.php:723
msgid "on server"
msgstr "op hub"
-#: ../../Zotlabs/Module/Admin.php:712
+#: ../../Zotlabs/Module/Admin.php:725
msgid "Server"
msgstr "Hubbeheer"
-#: ../../Zotlabs/Module/Admin.php:746
+#: ../../Zotlabs/Module/Admin.php:759
msgid ""
"By default, unfiltered HTML is allowed in embedded media. This is inherently"
" insecure."
msgstr "Standaard is ongefilterde HTML in ingesloten (embedded) media toegestaan. Dit is inherent onveilig."
-#: ../../Zotlabs/Module/Admin.php:749
+#: ../../Zotlabs/Module/Admin.php:762
msgid ""
"The recommended setting is to only allow unfiltered HTML from the following "
"sites:"
msgstr "Het wordt aanbevolen om alleen ongefilterde HTML van de volgende websites toe te staan:"
-#: ../../Zotlabs/Module/Admin.php:750
+#: ../../Zotlabs/Module/Admin.php:763
msgid ""
"https://youtube.com/<br />https://www.youtube.com/<br />https://youtu.be/<br"
" />https://vimeo.com/<br />https://soundcloud.com/<br />"
msgstr "https://youtube.com/<br />https://www.youtube.com/<br />https://youtu.be/<br />https://vimeo.com/<br />https://soundcloud.com/<br />"
-#: ../../Zotlabs/Module/Admin.php:751
+#: ../../Zotlabs/Module/Admin.php:764
msgid ""
"All other embedded content will be filtered, <strong>unless</strong> "
"embedded content from that site is explicitly blocked."
msgstr "Alle andere ingesloten (embedded) inhoud wordt gefilterd, <strong>tenzij</strong> ingesloten (embedded) inhoud van een website expliciet wordt geblokkeerd."
-#: ../../Zotlabs/Module/Admin.php:756 ../../include/widgets.php:1385
+#: ../../Zotlabs/Module/Admin.php:769 ../../include/widgets.php:1493
msgid "Security"
msgstr "Beveiliging"
-#: ../../Zotlabs/Module/Admin.php:758
+#: ../../Zotlabs/Module/Admin.php:771
msgid "Block public"
msgstr "Openbare toegang blokkeren"
-#: ../../Zotlabs/Module/Admin.php:758
+#: ../../Zotlabs/Module/Admin.php:771
msgid ""
"Check to block public access to all otherwise public personal pages on this "
"site unless you are currently authenticated."
msgstr "Vink dit aan om alle normaliter openbare persoonlijke pagina's op deze hub alleen toegankelijk te maken voor leden die zich hebben geauthenticeerd."
-#: ../../Zotlabs/Module/Admin.php:759
+#: ../../Zotlabs/Module/Admin.php:772
msgid "Set \"Transport Security\" HTTP header"
msgstr "\"Transport Security\" HTTP-header inschakelen"
-#: ../../Zotlabs/Module/Admin.php:760
+#: ../../Zotlabs/Module/Admin.php:773
msgid "Set \"Content Security Policy\" HTTP header"
msgstr " \"Content Security Policy\" HTTP-header inschakelen"
-#: ../../Zotlabs/Module/Admin.php:761
+#: ../../Zotlabs/Module/Admin.php:774
msgid "Allow communications only from these sites"
msgstr "Alleen communicatie met deze hubs toestaan"
-#: ../../Zotlabs/Module/Admin.php:761
+#: ../../Zotlabs/Module/Admin.php:774
msgid ""
"One site per line. Leave empty to allow communication from anywhere by "
"default"
msgstr "Eén hub per regel. Laat leeg om communicatie standaard met alle hubs toe te staan"
-#: ../../Zotlabs/Module/Admin.php:762
+#: ../../Zotlabs/Module/Admin.php:775
msgid "Block communications from these sites"
msgstr "Communicatie met deze hubs blokkeren"
-#: ../../Zotlabs/Module/Admin.php:763
+#: ../../Zotlabs/Module/Admin.php:776
msgid "Allow communications only from these channels"
msgstr "Sta alleen communicatie toe met deze kanalen"
-#: ../../Zotlabs/Module/Admin.php:763
+#: ../../Zotlabs/Module/Admin.php:776
msgid ""
"One channel (hash) per line. Leave empty to allow from any channel by "
"default"
msgstr "Eén kanaal (hash) per regel. Laat leeg om communicatie standaard met alle kanalen toe te staan"
-#: ../../Zotlabs/Module/Admin.php:764
+#: ../../Zotlabs/Module/Admin.php:777
msgid "Block communications from these channels"
msgstr "Communicatie met deze kanalen blokkeren"
-#: ../../Zotlabs/Module/Admin.php:765
+#: ../../Zotlabs/Module/Admin.php:778
msgid "Only allow embeds from secure (SSL) websites and links."
msgstr "Alleen ingesloten (embedded) inhoud van veilige (SSL) websites en links toestaan."
-#: ../../Zotlabs/Module/Admin.php:766
+#: ../../Zotlabs/Module/Admin.php:779
msgid "Allow unfiltered embedded HTML content only from these domains"
msgstr "Alleen ongefilterde ingesloten (embedded) HTML van deze websites toestaan"
-#: ../../Zotlabs/Module/Admin.php:766
+#: ../../Zotlabs/Module/Admin.php:779
msgid "One site per line. By default embedded content is filtered."
msgstr "Eén website per regel. Standaard wordt ingesloten (embedded) inhoud gefilterd."
-#: ../../Zotlabs/Module/Admin.php:767
+#: ../../Zotlabs/Module/Admin.php:780
msgid "Block embedded HTML from these domains"
msgstr "Ingesloten (embedded) HTML vanaf deze domeinen blokkeren"
-#: ../../Zotlabs/Module/Admin.php:785
+#: ../../Zotlabs/Module/Admin.php:798
msgid "Update has been marked successful"
msgstr "Update is als succesvol gemarkeerd"
-#: ../../Zotlabs/Module/Admin.php:795
+#: ../../Zotlabs/Module/Admin.php:808
#, php-format
msgid "Executing %s failed. Check system logs."
msgstr "Uitvoeren van %s is mislukt. Controleer systeemlogboek."
-#: ../../Zotlabs/Module/Admin.php:798
+#: ../../Zotlabs/Module/Admin.php:811
#, php-format
msgid "Update %s was successfully applied."
msgstr "Update %s was geslaagd."
-#: ../../Zotlabs/Module/Admin.php:802
+#: ../../Zotlabs/Module/Admin.php:815
#, php-format
msgid "Update %s did not return a status. Unknown if it succeeded."
msgstr "Update %s gaf geen melding. Het is daarom niet bekend of deze geslaagd is."
-#: ../../Zotlabs/Module/Admin.php:805
+#: ../../Zotlabs/Module/Admin.php:818
#, php-format
msgid "Update function %s could not be found."
msgstr "Update-functie %s kon niet gevonden worden."
-#: ../../Zotlabs/Module/Admin.php:821
+#: ../../Zotlabs/Module/Admin.php:834
msgid "No failed updates."
msgstr "Geen mislukte updates."
-#: ../../Zotlabs/Module/Admin.php:825
+#: ../../Zotlabs/Module/Admin.php:838
msgid "Failed Updates"
msgstr "Mislukte updates"
-#: ../../Zotlabs/Module/Admin.php:827
+#: ../../Zotlabs/Module/Admin.php:840
msgid "Mark success (if update was manually applied)"
msgstr "Markeer als geslaagd (wanneer de update handmatig was uitgevoerd)"
-#: ../../Zotlabs/Module/Admin.php:828
+#: ../../Zotlabs/Module/Admin.php:841
msgid "Attempt to execute this update step automatically"
msgstr "Poging om deze stap van de update automatisch uit te voeren."
-#: ../../Zotlabs/Module/Admin.php:859
+#: ../../Zotlabs/Module/Admin.php:872
msgid "Queue Statistics"
msgstr "Wachtrij-statistieken"
-#: ../../Zotlabs/Module/Admin.php:860
+#: ../../Zotlabs/Module/Admin.php:873
msgid "Total Entries"
msgstr "Aantal vermeldingen"
-#: ../../Zotlabs/Module/Admin.php:861
+#: ../../Zotlabs/Module/Admin.php:874
msgid "Priority"
msgstr "Prioriteit"
-#: ../../Zotlabs/Module/Admin.php:862
+#: ../../Zotlabs/Module/Admin.php:875
msgid "Destination URL"
msgstr "Doel-URL"
-#: ../../Zotlabs/Module/Admin.php:863
+#: ../../Zotlabs/Module/Admin.php:876
msgid "Mark hub permanently offline"
msgstr "Hub als permanent offline markeren"
-#: ../../Zotlabs/Module/Admin.php:864
+#: ../../Zotlabs/Module/Admin.php:877
msgid "Empty queue for this hub"
msgstr "Berichtenwachtrij voor deze hub legen"
-#: ../../Zotlabs/Module/Admin.php:865
+#: ../../Zotlabs/Module/Admin.php:878
msgid "Last known contact"
msgstr "Voor het laatst contact"
-#: ../../Zotlabs/Module/Admin.php:901
+#: ../../Zotlabs/Module/Admin.php:914
#, php-format
msgid "%s account blocked/unblocked"
msgid_plural "%s account blocked/unblocked"
msgstr[0] "%s account geblokkeerd/gedeblokkeerd"
msgstr[1] "%s accounts geblokkeerd/gedeblokkeerd"
-#: ../../Zotlabs/Module/Admin.php:908
+#: ../../Zotlabs/Module/Admin.php:921
#, php-format
msgid "%s account deleted"
msgid_plural "%s accounts deleted"
msgstr[0] "%s account verwijderd"
msgstr[1] "%s accounts verwijderd"
-#: ../../Zotlabs/Module/Admin.php:944
+#: ../../Zotlabs/Module/Admin.php:957
msgid "Account not found"
msgstr "Account niet gevonden"
-#: ../../Zotlabs/Module/Admin.php:955
+#: ../../Zotlabs/Module/Admin.php:968
#, php-format
msgid "Account '%s' deleted"
msgstr "Account '%s' verwijderd"
-#: ../../Zotlabs/Module/Admin.php:963
+#: ../../Zotlabs/Module/Admin.php:976
#, php-format
msgid "Account '%s' blocked"
msgstr "Account '%s' geblokkeerd"
-#: ../../Zotlabs/Module/Admin.php:971
+#: ../../Zotlabs/Module/Admin.php:984
#, php-format
msgid "Account '%s' unblocked"
msgstr "Account '%s' gedeblokkeerd"
-#: ../../Zotlabs/Module/Admin.php:1031 ../../Zotlabs/Module/Admin.php:1044
-#: ../../include/widgets.php:1383
+#: ../../Zotlabs/Module/Admin.php:1044 ../../Zotlabs/Module/Admin.php:1057
+#: ../../include/widgets.php:1491
msgid "Accounts"
msgstr "Accounts"
-#: ../../Zotlabs/Module/Admin.php:1033 ../../Zotlabs/Module/Admin.php:1212
+#: ../../Zotlabs/Module/Admin.php:1046 ../../Zotlabs/Module/Admin.php:1225
msgid "select all"
msgstr "alles selecteren"
-#: ../../Zotlabs/Module/Admin.php:1034
+#: ../../Zotlabs/Module/Admin.php:1047
msgid "Registrations waiting for confirm"
msgstr "Accounts die op goedkeuring wachten"
-#: ../../Zotlabs/Module/Admin.php:1035
+#: ../../Zotlabs/Module/Admin.php:1048
msgid "Request date"
msgstr "Tijd/datum verzoek"
-#: ../../Zotlabs/Module/Admin.php:1036
+#: ../../Zotlabs/Module/Admin.php:1048 ../../Zotlabs/Module/Admin.php:1060
+#: ../../include/network.php:2208
+msgid "Email"
+msgstr "E-mail"
+
+#: ../../Zotlabs/Module/Admin.php:1049
msgid "No registrations."
msgstr "Geen verzoeken."
-#: ../../Zotlabs/Module/Admin.php:1038
+#: ../../Zotlabs/Module/Admin.php:1051
msgid "Deny"
msgstr "Afkeuren"
-#: ../../Zotlabs/Module/Admin.php:1048 ../../include/group.php:267
+#: ../../Zotlabs/Module/Admin.php:1053 ../../Zotlabs/Module/Connedit.php:575
+msgid "Block"
+msgstr "Blokkeren"
+
+#: ../../Zotlabs/Module/Admin.php:1054 ../../Zotlabs/Module/Connedit.php:575
+msgid "Unblock"
+msgstr "Deblokkeren"
+
+#: ../../Zotlabs/Module/Admin.php:1061 ../../include/group.php:267
msgid "All Channels"
msgstr "Alle kanalen"
-#: ../../Zotlabs/Module/Admin.php:1049
+#: ../../Zotlabs/Module/Admin.php:1062
msgid "Register date"
msgstr "Geregistreerd"
-#: ../../Zotlabs/Module/Admin.php:1050
+#: ../../Zotlabs/Module/Admin.php:1063
msgid "Last login"
msgstr "Laatste keer ingelogd"
-#: ../../Zotlabs/Module/Admin.php:1051
+#: ../../Zotlabs/Module/Admin.php:1064
msgid "Expires"
msgstr "Verloopt"
-#: ../../Zotlabs/Module/Admin.php:1052
+#: ../../Zotlabs/Module/Admin.php:1065
msgid "Service Class"
msgstr "Abonnementen"
-#: ../../Zotlabs/Module/Admin.php:1054
+#: ../../Zotlabs/Module/Admin.php:1067
msgid ""
"Selected accounts will be deleted!\\n\\nEverything these accounts had posted"
" on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Geselecteerde accounts (met bijbehorende kanalen) worden verwijderd!\\n\\nAlles wat deze accounts op deze hub hebben gepubliceerd wordt definitief verwijderd!\\n\\Weet je het zeker?"
-#: ../../Zotlabs/Module/Admin.php:1055
+#: ../../Zotlabs/Module/Admin.php:1068
msgid ""
"The account {0} will be deleted!\\n\\nEverything this account has posted on "
"this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Account {0} (met bijbehorende kanalen) wordt verwijderd !\\n\\nAlles wat dit account op deze hub heeft gepubliceerd wordt definitief verwijderd!\\n\\nWeet je het zeker?"
-#: ../../Zotlabs/Module/Admin.php:1091
+#: ../../Zotlabs/Module/Admin.php:1104
#, php-format
msgid "%s channel censored/uncensored"
msgid_plural "%s channels censored/uncensored"
msgstr[0] "%s kanaal gecensureerd/ongecensureerd"
msgstr[1] "%s kanalen gecensureerd/ongecensureerd"
-#: ../../Zotlabs/Module/Admin.php:1100
+#: ../../Zotlabs/Module/Admin.php:1113
#, php-format
msgid "%s channel code allowed/disallowed"
msgid_plural "%s channels code allowed/disallowed"
msgstr[0] "Scripts toegestaan/niet toegestaan voor %s kanaal"
msgstr[1] "Scripts toegestaan/niet toegestaan voor %s kanalen"
-#: ../../Zotlabs/Module/Admin.php:1106
+#: ../../Zotlabs/Module/Admin.php:1119
#, php-format
msgid "%s channel deleted"
msgid_plural "%s channels deleted"
msgstr[0] "%s kanaal verwijderd"
msgstr[1] "%s kanalen verwijderd"
-#: ../../Zotlabs/Module/Admin.php:1126
+#: ../../Zotlabs/Module/Admin.php:1139
msgid "Channel not found"
msgstr "Kanaal niet gevonden"
-#: ../../Zotlabs/Module/Admin.php:1136
+#: ../../Zotlabs/Module/Admin.php:1149
#, php-format
msgid "Channel '%s' deleted"
msgstr "Kanaal '%s' verwijderd"
-#: ../../Zotlabs/Module/Admin.php:1148
+#: ../../Zotlabs/Module/Admin.php:1161
#, php-format
msgid "Channel '%s' censored"
msgstr "Kanaal '%s' gecensureerd"
-#: ../../Zotlabs/Module/Admin.php:1148
+#: ../../Zotlabs/Module/Admin.php:1161
#, php-format
msgid "Channel '%s' uncensored"
msgstr "Kanaal '%s' ongecensureerd"
-#: ../../Zotlabs/Module/Admin.php:1159
+#: ../../Zotlabs/Module/Admin.php:1172
#, php-format
msgid "Channel '%s' code allowed"
msgstr "Scripts toegestaan voor kanaal '%s'"
-#: ../../Zotlabs/Module/Admin.php:1159
+#: ../../Zotlabs/Module/Admin.php:1172
#, php-format
msgid "Channel '%s' code disallowed"
msgstr "Scripts niet toegestaan voor kanaal '%s'"
-#: ../../Zotlabs/Module/Admin.php:1210 ../../include/widgets.php:1384
+#: ../../Zotlabs/Module/Admin.php:1223 ../../include/widgets.php:1492
msgid "Channels"
msgstr "Kanalen"
-#: ../../Zotlabs/Module/Admin.php:1214
+#: ../../Zotlabs/Module/Admin.php:1227
msgid "Censor"
msgstr "Censureren"
-#: ../../Zotlabs/Module/Admin.php:1215
+#: ../../Zotlabs/Module/Admin.php:1228
msgid "Uncensor"
msgstr "Niet censureren"
-#: ../../Zotlabs/Module/Admin.php:1216
+#: ../../Zotlabs/Module/Admin.php:1229
msgid "Allow Code"
msgstr "Scripts toestaan"
-#: ../../Zotlabs/Module/Admin.php:1217
+#: ../../Zotlabs/Module/Admin.php:1230
msgid "Disallow Code"
msgstr "Scripts niet toestaan"
-#: ../../Zotlabs/Module/Admin.php:1218 ../../include/conversation.php:1611
+#: ../../Zotlabs/Module/Admin.php:1231 ../../include/conversation.php:1644
msgid "Channel"
msgstr "Kanaal"
-#: ../../Zotlabs/Module/Admin.php:1222
+#: ../../Zotlabs/Module/Admin.php:1235
msgid "UID"
msgstr "UID"
-#: ../../Zotlabs/Module/Admin.php:1226
+#: ../../Zotlabs/Module/Admin.php:1239
msgid ""
"Selected channels will be deleted!\\n\\nEverything that was posted in these "
"channels on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Geselecteerde kanalen worden verwijderd!\\n\\nAlles wat in deze kanalen op deze hub werd gepubliceerd wordt definitief verwijderd!\\n\\nWeet je het zeker?"
-#: ../../Zotlabs/Module/Admin.php:1227
+#: ../../Zotlabs/Module/Admin.php:1240
msgid ""
"The channel {0} will be deleted!\\n\\nEverything that was posted in this "
"channel on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Kanaal {0} wordt verwijderd!\\n\\nAlles wat in dit kanaal op deze hub werd gepubliceerd wordt definitief verwijderd!\\n\\nWeet je het zeker?"
-#: ../../Zotlabs/Module/Admin.php:1284
+#: ../../Zotlabs/Module/Admin.php:1297
#, php-format
msgid "Plugin %s disabled."
msgstr "Plugin %s uitgeschakeld."
-#: ../../Zotlabs/Module/Admin.php:1288
+#: ../../Zotlabs/Module/Admin.php:1301
#, php-format
msgid "Plugin %s enabled."
msgstr "Plugin %s ingeschakeld"
-#: ../../Zotlabs/Module/Admin.php:1298 ../../Zotlabs/Module/Admin.php:1585
+#: ../../Zotlabs/Module/Admin.php:1311 ../../Zotlabs/Module/Admin.php:1599
msgid "Disable"
msgstr "Uitschakelen"
-#: ../../Zotlabs/Module/Admin.php:1301 ../../Zotlabs/Module/Admin.php:1587
+#: ../../Zotlabs/Module/Admin.php:1314 ../../Zotlabs/Module/Admin.php:1601
msgid "Enable"
msgstr "Inschakelen"
-#: ../../Zotlabs/Module/Admin.php:1330 ../../Zotlabs/Module/Admin.php:1420
-#: ../../include/widgets.php:1387
+#: ../../Zotlabs/Module/Admin.php:1343 ../../Zotlabs/Module/Admin.php:1434
+#: ../../include/widgets.php:1495
msgid "Plugins"
msgstr "Plugins"
-#: ../../Zotlabs/Module/Admin.php:1331 ../../Zotlabs/Module/Admin.php:1614
+#: ../../Zotlabs/Module/Admin.php:1344 ../../Zotlabs/Module/Admin.php:1628
msgid "Toggle"
msgstr "Omschakelen"
-#: ../../Zotlabs/Module/Admin.php:1332 ../../Zotlabs/Module/Admin.php:1615
-#: ../../Zotlabs/Lib/Apps.php:215 ../../include/widgets.php:638
-#: ../../include/nav.php:208
+#: ../../Zotlabs/Module/Admin.php:1345 ../../Zotlabs/Module/Admin.php:1629
+#: ../../Zotlabs/Lib/Apps.php:216 ../../include/widgets.php:647
+#: ../../include/nav.php:212
msgid "Settings"
msgstr "Instellingen"
-#: ../../Zotlabs/Module/Admin.php:1339 ../../Zotlabs/Module/Admin.php:1624
+#: ../../Zotlabs/Module/Admin.php:1352 ../../Zotlabs/Module/Admin.php:1638
msgid "Author: "
msgstr "Auteur: "
-#: ../../Zotlabs/Module/Admin.php:1340 ../../Zotlabs/Module/Admin.php:1625
+#: ../../Zotlabs/Module/Admin.php:1353 ../../Zotlabs/Module/Admin.php:1639
msgid "Maintainer: "
msgstr "Beheerder: "
-#: ../../Zotlabs/Module/Admin.php:1341
+#: ../../Zotlabs/Module/Admin.php:1354
msgid "Minimum project version: "
msgstr "Minimum versie Hubzilla: "
-#: ../../Zotlabs/Module/Admin.php:1342
+#: ../../Zotlabs/Module/Admin.php:1355
msgid "Maximum project version: "
msgstr "Maximum versie Hubzilla:"
-#: ../../Zotlabs/Module/Admin.php:1343
+#: ../../Zotlabs/Module/Admin.php:1356
msgid "Minimum PHP version: "
msgstr "Minimum versie PHP: "
-#: ../../Zotlabs/Module/Admin.php:1344
+#: ../../Zotlabs/Module/Admin.php:1357
+msgid "Compatible Server Roles: "
+msgstr "Werkt met configuratietypes: "
+
+#: ../../Zotlabs/Module/Admin.php:1358
msgid "Requires: "
msgstr "Vereist: "
-#: ../../Zotlabs/Module/Admin.php:1345 ../../Zotlabs/Module/Admin.php:1425
+#: ../../Zotlabs/Module/Admin.php:1359 ../../Zotlabs/Module/Admin.php:1439
msgid "Disabled - version incompatibility"
msgstr "Uitgeschakeld - versie is incompatibel"
-#: ../../Zotlabs/Module/Admin.php:1394
+#: ../../Zotlabs/Module/Admin.php:1408
msgid "Enter the public git repository URL of the plugin repo."
msgstr "Vul de openbare Git-URL in van de plugin-repository."
-#: ../../Zotlabs/Module/Admin.php:1395
+#: ../../Zotlabs/Module/Admin.php:1409
msgid "Plugin repo git URL"
msgstr "Git-URL plugin-repository"
-#: ../../Zotlabs/Module/Admin.php:1396
+#: ../../Zotlabs/Module/Admin.php:1410
msgid "Custom repo name"
msgstr "Handmatige repository-naam"
-#: ../../Zotlabs/Module/Admin.php:1396
+#: ../../Zotlabs/Module/Admin.php:1410
msgid "(optional)"
msgstr "(optioneel)"
-#: ../../Zotlabs/Module/Admin.php:1397
+#: ../../Zotlabs/Module/Admin.php:1411
msgid "Download Plugin Repo"
msgstr "Plugin-repository downloaden"
-#: ../../Zotlabs/Module/Admin.php:1404
+#: ../../Zotlabs/Module/Admin.php:1418
msgid "Install new repo"
msgstr "Nieuwe repository installeren"
-#: ../../Zotlabs/Module/Admin.php:1405 ../../Zotlabs/Lib/Apps.php:330
+#: ../../Zotlabs/Module/Admin.php:1419 ../../Zotlabs/Lib/Apps.php:334
msgid "Install"
msgstr "Installeren"
-#: ../../Zotlabs/Module/Admin.php:1427
+#: ../../Zotlabs/Module/Admin.php:1441
msgid "Manage Repos"
msgstr "Repositories beheren"
-#: ../../Zotlabs/Module/Admin.php:1428
+#: ../../Zotlabs/Module/Admin.php:1442
msgid "Installed Plugin Repositories"
msgstr "Toegevoegde plugin-repositories"
-#: ../../Zotlabs/Module/Admin.php:1429
+#: ../../Zotlabs/Module/Admin.php:1443
msgid "Install a New Plugin Repository"
msgstr "Nieuwe plugin-repository toevoegen"
-#: ../../Zotlabs/Module/Admin.php:1435 ../../Zotlabs/Module/Settings.php:77
-#: ../../Zotlabs/Module/Settings.php:616 ../../Zotlabs/Lib/Apps.php:330
-msgid "Update"
-msgstr "Bijwerken"
-
-#: ../../Zotlabs/Module/Admin.php:1436
+#: ../../Zotlabs/Module/Admin.php:1450
msgid "Switch branch"
msgstr "Branch veranderen"
-#: ../../Zotlabs/Module/Admin.php:1550
+#: ../../Zotlabs/Module/Admin.php:1564
msgid "No themes found."
msgstr "Geen thema's gevonden"
-#: ../../Zotlabs/Module/Admin.php:1606
+#: ../../Zotlabs/Module/Admin.php:1620
msgid "Screenshot"
msgstr "Schermafdruk"
-#: ../../Zotlabs/Module/Admin.php:1613 ../../Zotlabs/Module/Admin.php:1647
-#: ../../include/widgets.php:1388
+#: ../../Zotlabs/Module/Admin.php:1627 ../../Zotlabs/Module/Admin.php:1661
+#: ../../include/widgets.php:1496
msgid "Themes"
msgstr "Thema's"
-#: ../../Zotlabs/Module/Admin.php:1652
+#: ../../Zotlabs/Module/Admin.php:1666
msgid "[Experimental]"
msgstr "[Experimenteel]"
-#: ../../Zotlabs/Module/Admin.php:1653
+#: ../../Zotlabs/Module/Admin.php:1667
msgid "[Unsupported]"
msgstr "[Niet ondersteund]"
-#: ../../Zotlabs/Module/Admin.php:1677
+#: ../../Zotlabs/Module/Admin.php:1691
msgid "Log settings updated."
msgstr "Logboek-instellingen bijgewerkt."
-#: ../../Zotlabs/Module/Admin.php:1732 ../../include/widgets.php:1409
-#: ../../include/widgets.php:1419
+#: ../../Zotlabs/Module/Admin.php:1746 ../../include/widgets.php:1517
+#: ../../include/widgets.php:1527
msgid "Logs"
msgstr "Logboeken"
-#: ../../Zotlabs/Module/Admin.php:1734
+#: ../../Zotlabs/Module/Admin.php:1748
msgid "Clear"
msgstr "Leegmaken"
-#: ../../Zotlabs/Module/Admin.php:1740
+#: ../../Zotlabs/Module/Admin.php:1754
msgid "Debugging"
msgstr "Debuggen"
-#: ../../Zotlabs/Module/Admin.php:1741
+#: ../../Zotlabs/Module/Admin.php:1755
msgid "Log file"
msgstr "Logbestand"
-#: ../../Zotlabs/Module/Admin.php:1741
+#: ../../Zotlabs/Module/Admin.php:1755
msgid ""
"Must be writable by web server. Relative to your top-level webserver "
"directory."
msgstr "Moet door de webserver beschrijfbaar zijn. Relatief ten opzichte van de bovenste map van je $Projectname-installatie."
-#: ../../Zotlabs/Module/Admin.php:1742
+#: ../../Zotlabs/Module/Admin.php:1756
msgid "Log level"
msgstr "Logniveau"
-#: ../../Zotlabs/Module/Admin.php:2028
+#: ../../Zotlabs/Module/Admin.php:2042
msgid "New Profile Field"
msgstr "Nieuw profielveld"
-#: ../../Zotlabs/Module/Admin.php:2029 ../../Zotlabs/Module/Admin.php:2049
+#: ../../Zotlabs/Module/Admin.php:2043 ../../Zotlabs/Module/Admin.php:2063
msgid "Field nickname"
msgstr "Bijnaam voor veld"
-#: ../../Zotlabs/Module/Admin.php:2029 ../../Zotlabs/Module/Admin.php:2049
+#: ../../Zotlabs/Module/Admin.php:2043 ../../Zotlabs/Module/Admin.php:2063
msgid "System name of field"
msgstr "Systeemnaam voor veld"
-#: ../../Zotlabs/Module/Admin.php:2030 ../../Zotlabs/Module/Admin.php:2050
+#: ../../Zotlabs/Module/Admin.php:2044 ../../Zotlabs/Module/Admin.php:2064
msgid "Input type"
msgstr "Invoertype"
-#: ../../Zotlabs/Module/Admin.php:2031 ../../Zotlabs/Module/Admin.php:2051
+#: ../../Zotlabs/Module/Admin.php:2045 ../../Zotlabs/Module/Admin.php:2065
msgid "Field Name"
msgstr "Veldnaam"
-#: ../../Zotlabs/Module/Admin.php:2031 ../../Zotlabs/Module/Admin.php:2051
+#: ../../Zotlabs/Module/Admin.php:2045 ../../Zotlabs/Module/Admin.php:2065
msgid "Label on profile pages"
msgstr "Tekstlabel voor op profielpagina's"
-#: ../../Zotlabs/Module/Admin.php:2032 ../../Zotlabs/Module/Admin.php:2052
+#: ../../Zotlabs/Module/Admin.php:2046 ../../Zotlabs/Module/Admin.php:2066
msgid "Help text"
msgstr "Helptekst"
-#: ../../Zotlabs/Module/Admin.php:2032 ../../Zotlabs/Module/Admin.php:2052
+#: ../../Zotlabs/Module/Admin.php:2046 ../../Zotlabs/Module/Admin.php:2066
msgid "Additional info (optional)"
msgstr "Extra informatie (optioneel)"
-#: ../../Zotlabs/Module/Admin.php:2042
+#: ../../Zotlabs/Module/Admin.php:2056
msgid "Field definition not found"
msgstr "Velddefinitie niet gevonden"
-#: ../../Zotlabs/Module/Admin.php:2048
+#: ../../Zotlabs/Module/Admin.php:2062
msgid "Edit Profile Field"
msgstr "Profielveld bewerken"
-#: ../../Zotlabs/Module/Admin.php:2106 ../../include/widgets.php:1390
+#: ../../Zotlabs/Module/Admin.php:2120 ../../include/widgets.php:1498
msgid "Profile Fields"
msgstr "Profielvelden"
-#: ../../Zotlabs/Module/Admin.php:2107
+#: ../../Zotlabs/Module/Admin.php:2121
msgid "Basic Profile Fields"
msgstr "Standaard profielvelden"
-#: ../../Zotlabs/Module/Admin.php:2108
+#: ../../Zotlabs/Module/Admin.php:2122
msgid "Advanced Profile Fields"
msgstr "Geavanceerde profielvelden"
-#: ../../Zotlabs/Module/Admin.php:2108
+#: ../../Zotlabs/Module/Admin.php:2122
msgid "(In addition to basic fields)"
msgstr "(als toevoeging op de standaard velden)"
-#: ../../Zotlabs/Module/Admin.php:2110
+#: ../../Zotlabs/Module/Admin.php:2124
msgid "All available fields"
msgstr "Alle beschikbare velden"
-#: ../../Zotlabs/Module/Admin.php:2111
+#: ../../Zotlabs/Module/Admin.php:2125
msgid "Custom Fields"
msgstr "Extra (handmatig toegevoegde) velden"
-#: ../../Zotlabs/Module/Admin.php:2115
+#: ../../Zotlabs/Module/Admin.php:2129
msgid "Create Custom Field"
msgstr "Extra velden aanmaken"
-#: ../../Zotlabs/Module/Appman.php:37 ../../Zotlabs/Module/Appman.php:53
-msgid "App installed."
-msgstr "App geïnstalleerd"
+#: ../../Zotlabs/Module/Lostpass.php:19
+msgid "No valid account found."
+msgstr "Geen geldige account gevonden."
-#: ../../Zotlabs/Module/Appman.php:46
-msgid "Malformed app."
-msgstr "Misvormde app."
+#: ../../Zotlabs/Module/Lostpass.php:33
+msgid "Password reset request issued. Check your email."
+msgstr "Het verzoek om je wachtwoord opnieuw in te stellen is behandeld. Controleer je e-mail."
-#: ../../Zotlabs/Module/Appman.php:104
-msgid "Embed code"
-msgstr "Insluitcode"
+#: ../../Zotlabs/Module/Lostpass.php:39 ../../Zotlabs/Module/Lostpass.php:107
+#, php-format
+msgid "Site Member (%s)"
+msgstr "Lid van hub (%s)"
-#: ../../Zotlabs/Module/Appman.php:110 ../../include/widgets.php:107
-msgid "Edit App"
-msgstr "App bewerken"
+#: ../../Zotlabs/Module/Lostpass.php:44
+#, php-format
+msgid "Password reset requested at %s"
+msgstr "Verzoek tot het opnieuw instellen van een wachtwoord op %s is ingediend"
-#: ../../Zotlabs/Module/Appman.php:110
-msgid "Create App"
-msgstr "App maken"
+#: ../../Zotlabs/Module/Lostpass.php:67
+msgid ""
+"Request could not be verified. (You may have previously submitted it.) "
+"Password reset failed."
+msgstr "Het verzoek kon niet worden geverifieerd. (Mogelijk heb je al eerder een verzoek ingediend.) Opnieuw instellen van wachtwoord is mislukt."
-#: ../../Zotlabs/Module/Appman.php:115
-msgid "Name of app"
-msgstr "Naam van app"
+#: ../../Zotlabs/Module/Lostpass.php:90 ../../boot.php:1746
+msgid "Password Reset"
+msgstr "Wachtwoord vergeten?"
-#: ../../Zotlabs/Module/Appman.php:116
-msgid "Location (URL) of app"
-msgstr "Locatie (URL) van app"
+#: ../../Zotlabs/Module/Lostpass.php:91
+msgid "Your password has been reset as requested."
+msgstr "Jouw wachtwoord is opnieuw ingesteld zoals je had verzocht."
-#: ../../Zotlabs/Module/Appman.php:118
-msgid "Photo icon URL"
-msgstr "URL van pictogram"
+#: ../../Zotlabs/Module/Lostpass.php:92
+msgid "Your new password is"
+msgstr "Jouw nieuwe wachtwoord is"
-#: ../../Zotlabs/Module/Appman.php:118
-msgid "80 x 80 pixels - optional"
-msgstr "80 x 80 pixels (optioneel)"
+#: ../../Zotlabs/Module/Lostpass.php:93
+msgid "Save or copy your new password - and then"
+msgstr "Kopieer of sla je nieuwe wachtwoord op - en"
-#: ../../Zotlabs/Module/Appman.php:119
-msgid "Categories (optional, comma separated list)"
-msgstr "Categorieën (optioneel, door komma's gescheiden lijst)"
+#: ../../Zotlabs/Module/Lostpass.php:94
+msgid "click here to login"
+msgstr "klik dan hier om in te loggen"
-#: ../../Zotlabs/Module/Appman.php:120
-msgid "Version ID"
-msgstr "Versie-ID"
+#: ../../Zotlabs/Module/Lostpass.php:95
+msgid ""
+"Your password may be changed from the <em>Settings</em> page after "
+"successful login."
+msgstr "Jouw wachtwoord kan worden veranderd onder <em>instellingen</em>, nadat je succesvol bent ingelogd."
-#: ../../Zotlabs/Module/Appman.php:121
-msgid "Price of app"
-msgstr "Prijs van de app"
+#: ../../Zotlabs/Module/Lostpass.php:112
+#, php-format
+msgid "Your password has changed at %s"
+msgstr "Jouw wachtwoord op %s is veranderd"
-#: ../../Zotlabs/Module/Appman.php:122
-msgid "Location (URL) to purchase app"
-msgstr "Locatie (URL) om de app aan te schaffen"
+#: ../../Zotlabs/Module/Lostpass.php:127
+msgid "Forgot your Password?"
+msgstr "Wachtwoord vergeten?"
-#: ../../Zotlabs/Module/Rbmark.php:94
-msgid "Select a bookmark folder"
-msgstr "Kies een bladwijzermap"
+#: ../../Zotlabs/Module/Lostpass.php:128
+msgid ""
+"Enter your email address and submit to have your password reset. Then check "
+"your email for further instructions."
+msgstr "Voer je e-mailadres in en verstuur deze om je wachtwoord opnieuw in te stellen. Controleer hierna hier je e-mail voor verdere instructies."
-#: ../../Zotlabs/Module/Rbmark.php:99
-msgid "Save Bookmark"
-msgstr "Bladwijzer opslaan"
+#: ../../Zotlabs/Module/Lostpass.php:129
+msgid "Email Address"
+msgstr "E-mailadres"
-#: ../../Zotlabs/Module/Rbmark.php:100
-msgid "URL of bookmark"
-msgstr "URL van bladwijzer"
+#: ../../Zotlabs/Module/Lostpass.php:130
+msgid "Reset"
+msgstr "Opnieuw instellen"
-#: ../../Zotlabs/Module/Rbmark.php:105
-msgid "Or enter new bookmark folder name"
-msgstr "Of geef de naam op van een nieuwe bladwijzermap"
+#: ../../Zotlabs/Module/Mood.php:67 ../../include/conversation.php:260
+#, php-format
+msgctxt "mood"
+msgid "%1$s is %2$s"
+msgstr "%1$s is %2$s"
-#: ../../Zotlabs/Module/Register.php:49
-msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
-msgstr "Maximum toegestane dagelijkse registraties op deze $Projectname-hub bereikt. Probeer het morgen (UTC) nogmaals."
+#: ../../Zotlabs/Module/Mood.php:135 ../../Zotlabs/Lib/Apps.php:227
+msgid "Mood"
+msgstr "Stemming"
-#: ../../Zotlabs/Module/Register.php:55
-msgid ""
-"Please indicate acceptance of the Terms of Service. Registration failed."
-msgstr "Registratie mislukt. De gebruiksvoorwaarden dienen wel geaccepteerd te worden."
+#: ../../Zotlabs/Module/Mood.php:136
+msgid "Set your current mood and tell your friends"
+msgstr "Noteer je huidige stemming en toon het aan je connecties"
-#: ../../Zotlabs/Module/Register.php:89
-msgid "Passwords do not match."
-msgstr "Wachtwoorden komen niet met elkaar overeen."
+#: ../../Zotlabs/Module/Profiles.php:24 ../../Zotlabs/Module/Profiles.php:189
+#: ../../Zotlabs/Module/Profiles.php:246 ../../Zotlabs/Module/Profiles.php:625
+msgid "Profile not found."
+msgstr "Profiel niet gevonden."
-#: ../../Zotlabs/Module/Register.php:131
-msgid ""
-"Registration successful. Please check your email for validation "
-"instructions."
-msgstr "Registratie geslaagd. Controleer je e-mail voor instructies."
+#: ../../Zotlabs/Module/Profiles.php:44
+msgid "Profile deleted."
+msgstr "Profiel verwijderd."
-#: ../../Zotlabs/Module/Register.php:137
-msgid "Your registration is pending approval by the site owner."
-msgstr "Jouw accountregistratie wacht op goedkeuring van de beheerder van deze $Projectname-hub."
+#: ../../Zotlabs/Module/Profiles.php:68 ../../Zotlabs/Module/Profiles.php:104
+msgid "Profile-"
+msgstr "Profiel-"
-#: ../../Zotlabs/Module/Register.php:140
-msgid "Your registration can not be processed."
-msgstr "Jouw registratie kan niet verwerkt worden."
+#: ../../Zotlabs/Module/Profiles.php:89 ../../Zotlabs/Module/Profiles.php:132
+msgid "New profile created."
+msgstr "Nieuw profiel aangemaakt."
-#: ../../Zotlabs/Module/Register.php:184
-msgid "Registration on this hub is disabled."
-msgstr "Registreren van nieuwe accounts is op deze hub uitgeschakeld."
+#: ../../Zotlabs/Module/Profiles.php:110
+msgid "Profile unavailable to clone."
+msgstr "Profiel niet beschikbaar om te klonen"
-#: ../../Zotlabs/Module/Register.php:193
-msgid "Registration on this hub is by approval only."
-msgstr "Registraties op deze hub moeten eerst worden goedgekeurd."
+#: ../../Zotlabs/Module/Profiles.php:151
+msgid "Profile unavailable to export."
+msgstr "Geen profiel beschikbaar om te exporteren"
-#: ../../Zotlabs/Module/Register.php:194
-msgid "<a href=\"pubsites\">Register at another affiliated hub.</a>"
-msgstr "<a href=\"pubsites\">Registreer op een andere hub</a>."
+#: ../../Zotlabs/Module/Profiles.php:256
+msgid "Profile Name is required."
+msgstr "Profielnaam is vereist"
-#: ../../Zotlabs/Module/Register.php:204
-msgid ""
-"This site has exceeded the number of allowed daily account registrations. "
-"Please try again tomorrow."
-msgstr "Deze $Projectname-hub heeft het maximum aantal dagelijks toegestane registraties bereikt. Probeer het morgen (UTC) nogmaals."
+#: ../../Zotlabs/Module/Profiles.php:427
+msgid "Marital Status"
+msgstr "Huwelijke status"
-#: ../../Zotlabs/Module/Register.php:215
-msgid "Terms of Service"
-msgstr "Gebruiksvoorwaarden"
+#: ../../Zotlabs/Module/Profiles.php:431
+msgid "Romantic Partner"
+msgstr "Romantische partner"
-#: ../../Zotlabs/Module/Register.php:221
-#, php-format
-msgid "I accept the %s for this website"
-msgstr "Ik accepteer de %s van deze $Projectname-hub"
+#: ../../Zotlabs/Module/Profiles.php:435 ../../Zotlabs/Module/Profiles.php:736
+msgid "Likes"
+msgstr "Houdt van"
-#: ../../Zotlabs/Module/Register.php:223
-#, php-format
-msgid "I am over 13 years of age and accept the %s for this website"
-msgstr "Ik ben 13 jaar of ouder en accepteer de %s van deze $Projectname-hub"
+#: ../../Zotlabs/Module/Profiles.php:439 ../../Zotlabs/Module/Profiles.php:737
+msgid "Dislikes"
+msgstr "Houdt niet van"
-#: ../../Zotlabs/Module/Register.php:227
-msgid "Your email address"
-msgstr "Jouw e-mailadres"
+#: ../../Zotlabs/Module/Profiles.php:443 ../../Zotlabs/Module/Profiles.php:744
+msgid "Work/Employment"
+msgstr "Werk/arbeid"
-#: ../../Zotlabs/Module/Register.php:228
-msgid "Choose a password"
-msgstr "Geef een wachtwoord op"
+#: ../../Zotlabs/Module/Profiles.php:446
+msgid "Religion"
+msgstr "Religie"
-#: ../../Zotlabs/Module/Register.php:229
-msgid "Please re-enter your password"
-msgstr "Geef het wachtwoord opnieuw op"
+#: ../../Zotlabs/Module/Profiles.php:450
+msgid "Political Views"
+msgstr "Politieke overtuigingen"
-#: ../../Zotlabs/Module/Register.php:230
-msgid "Please enter your invitation code"
-msgstr "Vul jouw uitnodigingscode in"
+#: ../../Zotlabs/Module/Profiles.php:454
+msgid "Gender"
+msgstr "Geslacht"
-#: ../../Zotlabs/Module/Register.php:236
-msgid "no"
-msgstr "Nee"
+#: ../../Zotlabs/Module/Profiles.php:458
+msgid "Sexual Preference"
+msgstr "Seksuele voorkeur"
-#: ../../Zotlabs/Module/Register.php:236
-msgid "yes"
-msgstr "Ja"
+#: ../../Zotlabs/Module/Profiles.php:462
+msgid "Homepage"
+msgstr "Homepage"
-#: ../../Zotlabs/Module/Register.php:250
-msgid "Membership on this site is by invitation only."
-msgstr "Registreren op deze $Projectname-hub kan alleen op uitnodiging."
+#: ../../Zotlabs/Module/Profiles.php:466
+msgid "Interests"
+msgstr "Interesses"
-#: ../../Zotlabs/Module/Register.php:262 ../../include/nav.php:147
-#: ../../boot.php:1685
-msgid "Register"
-msgstr "Registreren"
+#: ../../Zotlabs/Module/Profiles.php:560
+msgid "Profile updated."
+msgstr "Profiel bijgewerkt"
-#: ../../Zotlabs/Module/Register.php:262
-msgid "Proceed to create your first channel"
-msgstr "Volgende stap: aanmaken van jouw eerste kanaal"
+#: ../../Zotlabs/Module/Profiles.php:644
+msgid "Hide your connections list from viewers of this profile"
+msgstr "Laat de lijst met connecties niet aan bezoekers van dit profiel zien."
-#: ../../Zotlabs/Module/Regmod.php:15
-msgid "Please login."
-msgstr "Inloggen."
+#: ../../Zotlabs/Module/Profiles.php:686
+msgid "Edit Profile Details"
+msgstr "Profiel bewerken"
-#: ../../Zotlabs/Module/Removeaccount.php:34
-msgid ""
-"Account removals are not allowed within 48 hours of changing the account "
-"password."
-msgstr "Het verwijderen van een account is niet toegestaan binnen 48 uur nadat het wachtwoord is veranderd."
+#: ../../Zotlabs/Module/Profiles.php:688
+msgid "View this profile"
+msgstr "Profiel weergeven"
-#: ../../Zotlabs/Module/Removeaccount.php:56
-msgid "Remove This Account"
-msgstr "Verwijder dit account"
+#: ../../Zotlabs/Module/Profiles.php:689 ../../Zotlabs/Module/Profiles.php:771
+#: ../../include/channel.php:981
+msgid "Edit visibility"
+msgstr "Zichtbaarheid bewerken"
-#: ../../Zotlabs/Module/Removeaccount.php:57
-#: ../../Zotlabs/Module/Removeme.php:59
-msgid "WARNING: "
-msgstr "WAARSCHUWING: "
+#: ../../Zotlabs/Module/Profiles.php:690
+msgid "Profile Tools"
+msgstr "Hulpmiddelen"
-#: ../../Zotlabs/Module/Removeaccount.php:57
-msgid ""
-"This account and all its channels will be completely removed from the "
-"network. "
-msgstr "Dit account en al zijn kanalen worden volledig uit het $Projectname-netwerk verwijderd."
+#: ../../Zotlabs/Module/Profiles.php:691
+msgid "Change cover photo"
+msgstr "Omslagfoto wijzigen"
-#: ../../Zotlabs/Module/Removeaccount.php:57
-#: ../../Zotlabs/Module/Removeme.php:59
-msgid "This action is permanent and can not be undone!"
-msgstr "Deze handeling is van permanente aard en kan niet meer worden teruggedraaid!"
+#: ../../Zotlabs/Module/Profiles.php:692 ../../include/channel.php:952
+msgid "Change profile photo"
+msgstr "Profielfoto veranderen"
-#: ../../Zotlabs/Module/Removeaccount.php:58
-#: ../../Zotlabs/Module/Removeme.php:60
-msgid "Please enter your password for verification:"
-msgstr "Vul je wachtwoord in ter verificatie:"
+#: ../../Zotlabs/Module/Profiles.php:693
+msgid "Create a new profile using these settings"
+msgstr "Een nieuw profiel aanmaken met dit profiel als basis"
-#: ../../Zotlabs/Module/Removeaccount.php:59
-msgid ""
-"Remove this account, all its channels and all its channel clones from the "
-"network"
-msgstr "Dit account, al zijn kanalen en alle klonen van zijn kanalen uit het $Projectname-netwerk verwijderen"
+#: ../../Zotlabs/Module/Profiles.php:694
+msgid "Clone this profile"
+msgstr "Dit profiel klonen"
-#: ../../Zotlabs/Module/Removeaccount.php:59
-msgid ""
-"By default only the instances of the channels located on this hub will be "
-"removed from the network"
-msgstr "Standaard worden alleen de kanalen die zich op deze hub bevinden uit het $Projectname-netwerk verwijderd"
+#: ../../Zotlabs/Module/Profiles.php:695
+msgid "Delete this profile"
+msgstr "Dit profiel verwijderen"
-#: ../../Zotlabs/Module/Removeaccount.php:60
-#: ../../Zotlabs/Module/Settings.php:705
-msgid "Remove Account"
-msgstr "Account verwijderen"
+#: ../../Zotlabs/Module/Profiles.php:696
+msgid "Add profile things"
+msgstr "Dingen aan je profiel toevoegen"
-#: ../../Zotlabs/Module/Removeme.php:33
-msgid ""
-"Channel removals are not allowed within 48 hours of changing the account "
-"password."
-msgstr "Het verwijderen van een kanaal is niet toegestaan binnen 48 uur nadat het wachtwoord van het account is veranderd."
+#: ../../Zotlabs/Module/Profiles.php:697 ../../include/widgets.php:105
+#: ../../include/conversation.php:1559
+msgid "Personal"
+msgstr "Persoonlijk"
-#: ../../Zotlabs/Module/Removeme.php:58
-msgid "Remove This Channel"
-msgstr "Verwijder dit kanaal"
+#: ../../Zotlabs/Module/Profiles.php:699
+msgid "Relation"
+msgstr "Relatie"
-#: ../../Zotlabs/Module/Removeme.php:59
-msgid "This channel will be completely removed from the network. "
-msgstr "Dit kanaal wordt volledig uit het $Projectname-netwerk verwijderd."
+#: ../../Zotlabs/Module/Profiles.php:700 ../../include/datetime.php:48
+msgid "Miscellaneous"
+msgstr "Diversen"
-#: ../../Zotlabs/Module/Removeme.php:61
-msgid "Remove this channel and all its clones from the network"
-msgstr "Dit kanaal en alle klonen hiervan uit het $Projectname-netwerk verwijderen"
+#: ../../Zotlabs/Module/Profiles.php:702
+msgid "Import profile from file"
+msgstr "Profiel vanuit bestand importeren"
-#: ../../Zotlabs/Module/Removeme.php:61
-msgid ""
-"By default only the instance of the channel located on this hub will be "
-"removed from the network"
-msgstr "Standaard wordt alleen het kanaal dat zich op deze hub bevindt uit het $Projectname-netwerk verwijderd"
+#: ../../Zotlabs/Module/Profiles.php:703
+msgid "Export profile to file"
+msgstr "Profiel naar bestand exporteren"
-#: ../../Zotlabs/Module/Removeme.php:62 ../../Zotlabs/Module/Settings.php:1124
-msgid "Remove Channel"
-msgstr "Kanaal verwijderen"
+#: ../../Zotlabs/Module/Profiles.php:704
+msgid "Your gender"
+msgstr "Jouw geslacht"
-#: ../../Zotlabs/Module/Rmagic.php:44
-msgid ""
-"We encountered a problem while logging in with the OpenID you provided. "
-"Please check the correct spelling of the ID."
-msgstr "We hebben een probleem ontdekt tijdens het inloggen met de OpenID die je hebt verstrekt. Controleer de ID op typefouten."
+#: ../../Zotlabs/Module/Profiles.php:705
+msgid "Marital status"
+msgstr "Burgerlijke staat"
-#: ../../Zotlabs/Module/Rmagic.php:44
-msgid "The error message was:"
-msgstr "Het foutbericht was:"
+#: ../../Zotlabs/Module/Profiles.php:706
+msgid "Sexual preference"
+msgstr "Seksuele voorkeur"
-#: ../../Zotlabs/Module/Rmagic.php:48
-msgid "Authentication failed."
-msgstr "Authenticatie mislukt."
+#: ../../Zotlabs/Module/Profiles.php:709
+msgid "Profile name"
+msgstr "Profielnaam"
-#: ../../Zotlabs/Module/Rmagic.php:88
-msgid "Remote Authentication"
-msgstr "Authenticatie op afstand"
+#: ../../Zotlabs/Module/Profiles.php:711
+msgid "This is your default profile."
+msgstr "Dit is jouw standaardprofiel"
-#: ../../Zotlabs/Module/Rmagic.php:89
-msgid "Enter your channel address (e.g. channel@example.com)"
-msgstr "Vul jouw kanaaladres in (bijv. channel@example.com)"
+#: ../../Zotlabs/Module/Profiles.php:713
+msgid "Your full name"
+msgstr "Jouw volledige naam"
-#: ../../Zotlabs/Module/Rmagic.php:90
-msgid "Authenticate"
-msgstr "Authenticeren"
+#: ../../Zotlabs/Module/Profiles.php:714
+msgid "Title/Description"
+msgstr "Titel/omschrijving"
-#: ../../Zotlabs/Module/Search.php:216
-#, php-format
-msgid "Items tagged with: %s"
-msgstr "Items getagd met %s"
+#: ../../Zotlabs/Module/Profiles.php:717
+msgid "Street address"
+msgstr "Straat en huisnummer"
-#: ../../Zotlabs/Module/Search.php:218
-#, php-format
-msgid "Search results for: %s"
-msgstr "Zoekresultaten voor %s"
+#: ../../Zotlabs/Module/Profiles.php:718
+msgid "Locality/City"
+msgstr "Woonplaats"
-#: ../../Zotlabs/Module/Service_limits.php:23
-msgid "No service class restrictions found."
-msgstr "Geen abonnementsbeperkingen gevonden."
+#: ../../Zotlabs/Module/Profiles.php:719
+msgid "Region/State"
+msgstr "Provincie/gewest/deelstaat"
-#: ../../Zotlabs/Module/Settings.php:69
-msgid "Name is required"
-msgstr "Naam is vereist"
+#: ../../Zotlabs/Module/Profiles.php:720
+msgid "Postal/Zip code"
+msgstr "Postcode"
-#: ../../Zotlabs/Module/Settings.php:73
-msgid "Key and Secret are required"
-msgstr "Key en secret zijn vereist"
+#: ../../Zotlabs/Module/Profiles.php:721
+msgid "Country"
+msgstr "Land"
-#: ../../Zotlabs/Module/Settings.php:225
-msgid "Not valid email."
-msgstr "Geen geldig e-mailadres."
+#: ../../Zotlabs/Module/Profiles.php:726
+msgid "Who (if applicable)"
+msgstr "Wie (wanneer van toepassing)"
-#: ../../Zotlabs/Module/Settings.php:228
-msgid "Protected email address. Cannot change to that email."
-msgstr "Beschermd e-mailadres. Kan dat e-mailadres niet gebruiken."
+#: ../../Zotlabs/Module/Profiles.php:726
+msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
+msgstr "Voorbeelden: petra123, Petra Jansen, petra@voorbeeld.nl"
-#: ../../Zotlabs/Module/Settings.php:237
-msgid "System failure storing new email. Please try again."
-msgstr "Systeemfout opslaan van nieuwe e-mail. Probeer het nog een keer."
+#: ../../Zotlabs/Module/Profiles.php:727
+msgid "Since (date)"
+msgstr "Sinds (datum)"
-#: ../../Zotlabs/Module/Settings.php:254
-msgid "Password verification failed."
-msgstr "Wachtwoordverificatie mislukt"
+#: ../../Zotlabs/Module/Profiles.php:730
+msgid "Tell us about yourself"
+msgstr "Vertel ons iets over jezelf"
-#: ../../Zotlabs/Module/Settings.php:261
-msgid "Passwords do not match. Password unchanged."
-msgstr "Wachtwoorden komen niet overeen. Wachtwoord onveranderd."
+#: ../../Zotlabs/Module/Profiles.php:731
+msgid "Homepage URL"
+msgstr "URL homepagina"
-#: ../../Zotlabs/Module/Settings.php:265
-msgid "Empty passwords are not allowed. Password unchanged."
-msgstr "Lege wachtwoorden zijn niet toegestaan. Wachtwoord onveranderd."
+#: ../../Zotlabs/Module/Profiles.php:732
+msgid "Hometown"
+msgstr "Oorspronkelijk uit"
-#: ../../Zotlabs/Module/Settings.php:279
-msgid "Password changed."
-msgstr "Wachtwoord veranderd."
+#: ../../Zotlabs/Module/Profiles.php:733
+msgid "Political views"
+msgstr "Politieke overtuigingen"
-#: ../../Zotlabs/Module/Settings.php:281
-msgid "Password update failed. Please try again."
-msgstr "Bijwerken wachtwoord mislukt. Probeer opnieuw."
+#: ../../Zotlabs/Module/Profiles.php:734
+msgid "Religious views"
+msgstr "Religieuze overtuigingen"
-#: ../../Zotlabs/Module/Settings.php:525
-msgid "Settings updated."
-msgstr "Instellingen bijgewerkt."
+#: ../../Zotlabs/Module/Profiles.php:735
+msgid "Keywords used in directory listings"
+msgstr "Trefwoorden voor in de kanalengids"
-#: ../../Zotlabs/Module/Settings.php:589 ../../Zotlabs/Module/Settings.php:615
-#: ../../Zotlabs/Module/Settings.php:651
-msgid "Add application"
-msgstr "Applicatie toevoegen"
+#: ../../Zotlabs/Module/Profiles.php:735
+msgid "Example: fishing photography software"
+msgstr "Voorbeeld: muziek, fotografie, software"
-#: ../../Zotlabs/Module/Settings.php:592
-msgid "Name of application"
-msgstr "Naam van applicatie"
+#: ../../Zotlabs/Module/Profiles.php:738
+msgid "Musical interests"
+msgstr "Muzikale interesses"
-#: ../../Zotlabs/Module/Settings.php:593 ../../Zotlabs/Module/Settings.php:619
-msgid "Consumer Key"
-msgstr "Consumer key"
+#: ../../Zotlabs/Module/Profiles.php:739
+msgid "Books, literature"
+msgstr "Boeken/literatuur"
-#: ../../Zotlabs/Module/Settings.php:593 ../../Zotlabs/Module/Settings.php:594
-msgid "Automatically generated - change if desired. Max length 20"
-msgstr "Automatische gegenereerd - verander wanneer gewenst. Maximale lengte is 20"
+#: ../../Zotlabs/Module/Profiles.php:740
+msgid "Television"
+msgstr "Televisie"
-#: ../../Zotlabs/Module/Settings.php:594 ../../Zotlabs/Module/Settings.php:620
-msgid "Consumer Secret"
-msgstr "Consumer secret"
+#: ../../Zotlabs/Module/Profiles.php:741
+msgid "Film/Dance/Culture/Entertainment"
+msgstr "Film/dans/cultuur/entertainment"
-#: ../../Zotlabs/Module/Settings.php:595 ../../Zotlabs/Module/Settings.php:621
-msgid "Redirect"
-msgstr "Redirect/doorverwijzing"
+#: ../../Zotlabs/Module/Profiles.php:742
+msgid "Hobbies/Interests"
+msgstr "Hobby's/interesses"
-#: ../../Zotlabs/Module/Settings.php:595
-msgid ""
-"Redirect URI - leave blank unless your application specifically requires "
-"this"
-msgstr "URI voor redirect - laat leeg, behalve wanneer de applicatie dit vereist"
+#: ../../Zotlabs/Module/Profiles.php:743
+msgid "Love/Romance"
+msgstr "Liefde/romantiek"
-#: ../../Zotlabs/Module/Settings.php:596 ../../Zotlabs/Module/Settings.php:622
-msgid "Icon url"
-msgstr "Pictogram-URL"
+#: ../../Zotlabs/Module/Profiles.php:745
+msgid "School/Education"
+msgstr "School/opleiding"
-#: ../../Zotlabs/Module/Settings.php:596 ../../Zotlabs/Module/Sources.php:112
-#: ../../Zotlabs/Module/Sources.php:147
-msgid "Optional"
-msgstr "Optioneel"
+#: ../../Zotlabs/Module/Profiles.php:746
+msgid "Contact information and social networks"
+msgstr "Contactinformatie en sociale netwerken"
-#: ../../Zotlabs/Module/Settings.php:607
-msgid "Application not found."
-msgstr "Applicatie niet gevonden."
+#: ../../Zotlabs/Module/Profiles.php:747
+msgid "My other channels"
+msgstr "Mijn andere kanalen"
-#: ../../Zotlabs/Module/Settings.php:650
-msgid "Connected Apps"
-msgstr "Verbonden applicaties"
+#: ../../Zotlabs/Module/Profiles.php:767 ../../include/channel.php:977
+msgid "Profile Image"
+msgstr "Profielfoto"
-#: ../../Zotlabs/Module/Settings.php:654
-msgid "Client key starts with"
-msgstr "Client key begint met"
+#: ../../Zotlabs/Module/Profiles.php:777 ../../include/channel.php:959
+#: ../../include/nav.php:90
+msgid "Edit Profiles"
+msgstr "Bewerk profielen"
-#: ../../Zotlabs/Module/Settings.php:655
-msgid "No name"
-msgstr "Geen naam"
+#: ../../Zotlabs/Module/Notify.php:57
+#: ../../Zotlabs/Module/Notifications.php:98
+msgid "No more system notifications."
+msgstr "Geen systeemnotificaties meer."
-#: ../../Zotlabs/Module/Settings.php:656
-msgid "Remove authorization"
-msgstr "Autorisatie verwijderen"
+#: ../../Zotlabs/Module/Notify.php:61
+#: ../../Zotlabs/Module/Notifications.php:102
+msgid "System Notifications"
+msgstr "Systeemnotificaties"
-#: ../../Zotlabs/Module/Settings.php:669
-msgid "No feature settings configured"
-msgstr "Geen plugin-instellingen aanwezig"
+#: ../../Zotlabs/Module/Match.php:26
+msgid "Profile Match"
+msgstr "Profielovereenkomst"
-#: ../../Zotlabs/Module/Settings.php:676
-msgid "Feature/Addon Settings"
-msgstr "Plugin-instellingen"
+#: ../../Zotlabs/Module/Match.php:35
+msgid "No keywords to match. Please add keywords to your default profile."
+msgstr "Je hebt geen trefwoorden waarmee overeenkomsten gevonden kunnen worden. Voeg enkele trefwoorden aan je standaardprofiel toe."
-#: ../../Zotlabs/Module/Settings.php:699
-msgid "Account Settings"
-msgstr "Account-instellingen"
+#: ../../Zotlabs/Module/Match.php:67
+msgid "is interested in:"
+msgstr "is geïnteresseerd in:"
-#: ../../Zotlabs/Module/Settings.php:700
-msgid "Current Password"
-msgstr "Huidig wachtwoord"
+#: ../../Zotlabs/Module/Match.php:74
+msgid "No matches"
+msgstr "Geen overeenkomsten"
-#: ../../Zotlabs/Module/Settings.php:701
-msgid "Enter New Password"
-msgstr "Nieuw wachtwoord invoeren"
+#: ../../Zotlabs/Module/Webpages.php:53
+msgid "Import Webpage Elements"
+msgstr "Webpagina-elementen importeren"
-#: ../../Zotlabs/Module/Settings.php:702
-msgid "Confirm New Password"
-msgstr "Nieuw wachtwoord bevestigen"
+#: ../../Zotlabs/Module/Webpages.php:54
+msgid "Import selected"
+msgstr "Importbestand geselecteerd"
-#: ../../Zotlabs/Module/Settings.php:702
-msgid "Leave password fields blank unless changing"
-msgstr "Laat de wachtwoordvelden leeg, behalve wanneer je deze wil veranderen"
+#: ../../Zotlabs/Module/Webpages.php:214 ../../Zotlabs/Lib/Apps.php:218
+#: ../../include/conversation.php:1718 ../../include/nav.php:108
+msgid "Webpages"
+msgstr "Webpagina's"
-#: ../../Zotlabs/Module/Settings.php:704
-#: ../../Zotlabs/Module/Settings.php:1041
-msgid "Email Address:"
-msgstr "E-mailadres:"
+#: ../../Zotlabs/Module/Webpages.php:225 ../../include/page_widgets.php:44
+msgid "Actions"
+msgstr "Acties"
-#: ../../Zotlabs/Module/Settings.php:706
-msgid "Remove this account including all its channels"
-msgstr "Dit account en al zijn kanalen verwijderen"
+#: ../../Zotlabs/Module/Webpages.php:226 ../../include/page_widgets.php:45
+msgid "Page Link"
+msgstr "Paginalink"
-#: ../../Zotlabs/Module/Settings.php:729
-msgid "Additional Features"
-msgstr "Extra functies"
+#: ../../Zotlabs/Module/Webpages.php:227
+msgid "Page Title"
+msgstr "Paginatitel"
-#: ../../Zotlabs/Module/Settings.php:753
-msgid "Connector Settings"
-msgstr "Instellingen externe koppelingen"
+#: ../../Zotlabs/Module/Webpages.php:258
+msgid "Invalid file type."
+msgstr "Ongeldig bestandsformaat"
-#: ../../Zotlabs/Module/Settings.php:792
-msgid "No special theme for mobile devices"
-msgstr "Geen speciaal thema voor mobiele apparaten"
+#: ../../Zotlabs/Module/Webpages.php:270
+msgid "Error opening zip file"
+msgstr "Fout met openen zipbestand"
-#: ../../Zotlabs/Module/Settings.php:795
-#, php-format
-msgid "%s - (Experimental)"
-msgstr "%s - (experimenteel)"
+#: ../../Zotlabs/Module/Webpages.php:281
+msgid "Invalid folder path."
+msgstr "Ongeldige maplocatie"
-#: ../../Zotlabs/Module/Settings.php:837
-msgid "Display Settings"
-msgstr "Weergave-instellingen"
+#: ../../Zotlabs/Module/Webpages.php:308
+msgid "No webpage elements detected."
+msgstr "Geen webpagina-elementen gedecteerd"
-#: ../../Zotlabs/Module/Settings.php:838
-msgid "Theme Settings"
-msgstr "Thema-instellingen"
+#: ../../Zotlabs/Module/Webpages.php:382
+msgid "Import complete."
+msgstr "Importeren voltooid."
-#: ../../Zotlabs/Module/Settings.php:839
-msgid "Custom Theme Settings"
-msgstr "Handmatige thema-instellingen"
+#: ../../Zotlabs/Module/Events.php:25
+msgid "Calendar entries imported."
+msgstr "Agenda-items geïmporteerd."
-#: ../../Zotlabs/Module/Settings.php:840
-msgid "Content Settings"
-msgstr "Inhoudsinstellingen"
+#: ../../Zotlabs/Module/Events.php:27
+msgid "No calendar entries found."
+msgstr "Geen agenda-items gevonden."
-#: ../../Zotlabs/Module/Settings.php:846
-msgid "Display Theme:"
-msgstr "Gebruik thema:"
+#: ../../Zotlabs/Module/Events.php:104
+msgid "Event can not end before it has started."
+msgstr "Gebeurtenis kan niet eindigen voordat het is begonnen"
-#: ../../Zotlabs/Module/Settings.php:847
-msgid "Mobile Theme:"
-msgstr "Mobiel thema:"
+#: ../../Zotlabs/Module/Events.php:106 ../../Zotlabs/Module/Events.php:115
+#: ../../Zotlabs/Module/Events.php:135
+msgid "Unable to generate preview."
+msgstr "Niet in staat om voorvertoning te genereren"
-#: ../../Zotlabs/Module/Settings.php:848
-msgid "Preload images before rendering the page"
-msgstr "Afbeeldingen laden voordat de pagina wordt weergegeven"
+#: ../../Zotlabs/Module/Events.php:113
+msgid "Event title and start time are required."
+msgstr "Titel en begintijd van gebeurtenis zijn vereist."
-#: ../../Zotlabs/Module/Settings.php:848
-msgid ""
-"The subjective page load time will be longer but the page will be ready when"
-" displayed"
-msgstr "De laadtijd van een pagina lijkt langer, maar de pagina is wel meteen helemaal geladen wanneer deze wordt weergeven"
+#: ../../Zotlabs/Module/Events.php:133 ../../Zotlabs/Module/Events.php:258
+msgid "Event not found."
+msgstr "Gebeurtenis niet gevonden"
-#: ../../Zotlabs/Module/Settings.php:849
-msgid "Enable user zoom on mobile devices"
-msgstr "Inzoomen op smartphones en tablets toestaan"
+#: ../../Zotlabs/Module/Events.php:452
+msgid "Edit event title"
+msgstr "Titel bewerken"
-#: ../../Zotlabs/Module/Settings.php:850
-msgid "Update browser every xx seconds"
-msgstr "Ververs de webbrowser om de zoveel seconde"
+#: ../../Zotlabs/Module/Events.php:452
+msgid "Event title"
+msgstr "Titel"
-#: ../../Zotlabs/Module/Settings.php:850
-msgid "Minimum of 10 seconds, no maximum"
-msgstr "Minimaal 10 seconde, geen maximum"
+#: ../../Zotlabs/Module/Events.php:454
+msgid "Categories (comma-separated list)"
+msgstr "Categorieën (door komma's gescheiden lijst)"
-#: ../../Zotlabs/Module/Settings.php:851
-msgid "Maximum number of conversations to load at any time:"
-msgstr "Maximaal aantal conversaties die per keer geladen worden:"
+#: ../../Zotlabs/Module/Events.php:455
+msgid "Edit Category"
+msgstr "Categorie"
-#: ../../Zotlabs/Module/Settings.php:851
-msgid "Maximum of 100 items"
-msgstr "Maximaal 100 conversaties"
+#: ../../Zotlabs/Module/Events.php:455
+msgid "Category"
+msgstr "Categorie"
-#: ../../Zotlabs/Module/Settings.php:852
-msgid "Show emoticons (smilies) as images"
-msgstr "Toon emoticons (smilies) als afbeeldingen"
+#: ../../Zotlabs/Module/Events.php:458
+msgid "Edit start date and time"
+msgstr "Begindatum en -tijd bewerken"
-#: ../../Zotlabs/Module/Settings.php:853
-msgid "Link post titles to source"
-msgstr "Berichtkoppen naar originele locatie linken"
+#: ../../Zotlabs/Module/Events.php:458
+msgid "Start date and time"
+msgstr "Begindatum en -tijd"
-#: ../../Zotlabs/Module/Settings.php:854
-msgid "System Page Layout Editor - (advanced)"
-msgstr "Lay-out bewerken van systeempagina's (geavanceerd)"
+#: ../../Zotlabs/Module/Events.php:459 ../../Zotlabs/Module/Events.php:462
+msgid "Finish date and time are not known or not relevant"
+msgstr "Einddatum en -tijd zijn niet bekend of niet van toepassing"
-#: ../../Zotlabs/Module/Settings.php:857
-msgid "Use blog/list mode on channel page"
-msgstr "Gebruik blog/lijst-modus op kanaalpagina"
+#: ../../Zotlabs/Module/Events.php:461
+msgid "Edit finish date and time"
+msgstr "Einddatum en -tijd bewerken"
-#: ../../Zotlabs/Module/Settings.php:857 ../../Zotlabs/Module/Settings.php:858
-msgid "(comments displayed separately)"
-msgstr "(reacties worden afzonderlijk weergeven)"
+#: ../../Zotlabs/Module/Events.php:461
+msgid "Finish date and time"
+msgstr "Einddatum en -tijd"
-#: ../../Zotlabs/Module/Settings.php:858
-msgid "Use blog/list mode on grid page"
-msgstr "Gebruik blog/lijst-modus op gridpagina"
+#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:464
+msgid "Adjust for viewer timezone"
+msgstr "Aanpassen aan de tijdzone van wie deze gebeurtenis bekijkt"
-#: ../../Zotlabs/Module/Settings.php:859
-msgid "Channel page max height of content (in pixels)"
-msgstr "Maximale hoogte berichtinhoud op kanaalpagina (in pixels)"
+#: ../../Zotlabs/Module/Events.php:463
+msgid ""
+"Important for events that happen in a particular place. Not practical for "
+"global holidays."
+msgstr "Belangrijk voor gebeurtenissen die op een bepaalde locatie plaatsvinden. Niet praktisch voor wereldwijde feestdagen."
-#: ../../Zotlabs/Module/Settings.php:859 ../../Zotlabs/Module/Settings.php:860
-msgid "click to expand content exceeding this height"
-msgstr "klik om inhoud uit te klappen die deze hoogte overschrijdt"
+#: ../../Zotlabs/Module/Events.php:465
+msgid "Edit Description"
+msgstr "Omschrijving bewerken"
-#: ../../Zotlabs/Module/Settings.php:860
-msgid "Grid page max height of content (in pixels)"
-msgstr "Maximale hoogte berichtinhoud op gridpagina (in pixels)"
+#: ../../Zotlabs/Module/Events.php:467
+msgid "Edit Location"
+msgstr "Locatie bewerken"
-#: ../../Zotlabs/Module/Settings.php:894
-msgid "Nobody except yourself"
-msgstr "Niemand, behalve jezelf"
+#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Events.php:472
+msgid "Share this event"
+msgstr "Deel deze gebeurtenis"
-#: ../../Zotlabs/Module/Settings.php:895
-msgid "Only those you specifically allow"
-msgstr "Alleen connecties met uitdrukkelijke toestemming"
+#: ../../Zotlabs/Module/Events.php:474 ../../include/conversation.php:1259
+msgid "Permission settings"
+msgstr "Permissies"
-#: ../../Zotlabs/Module/Settings.php:896
-msgid "Approved connections"
-msgstr "Geaccepteerde connecties"
+#: ../../Zotlabs/Module/Events.php:485
+msgid "Advanced Options"
+msgstr "Geavanceerde opties"
-#: ../../Zotlabs/Module/Settings.php:897
-msgid "Any connections"
-msgstr "Alle connecties"
+#: ../../Zotlabs/Module/Events.php:597 ../../Zotlabs/Module/Cal.php:259
+msgid "l, F j"
+msgstr "l j F"
-#: ../../Zotlabs/Module/Settings.php:898
-msgid "Anybody on this website"
-msgstr "Iedereen op deze hub"
+#: ../../Zotlabs/Module/Events.php:619
+msgid "Edit event"
+msgstr "Gebeurtenis bewerken"
-#: ../../Zotlabs/Module/Settings.php:899
-msgid "Anybody in this network"
-msgstr "Iedereen in dit netwerk"
+#: ../../Zotlabs/Module/Events.php:621
+msgid "Delete event"
+msgstr "Gebeurtenis verwijderen"
-#: ../../Zotlabs/Module/Settings.php:900
-msgid "Anybody authenticated"
-msgstr "Geauthenticeerd"
+#: ../../Zotlabs/Module/Events.php:646 ../../Zotlabs/Module/Cal.php:308
+#: ../../include/text.php:1716
+msgid "Link to Source"
+msgstr "Originele locatie"
-#: ../../Zotlabs/Module/Settings.php:901
-msgid "Anybody on the internet"
-msgstr "Iedereen op het internet"
+#: ../../Zotlabs/Module/Events.php:655
+msgid "calendar"
+msgstr "agenda"
-#: ../../Zotlabs/Module/Settings.php:976
-msgid "Publish your default profile in the network directory"
-msgstr "Publiceer je standaardprofiel in de kanalengids"
+#: ../../Zotlabs/Module/Events.php:674 ../../Zotlabs/Module/Cal.php:331
+msgid "Edit Event"
+msgstr "Gebeurtenis bewerken"
-#: ../../Zotlabs/Module/Settings.php:981
-msgid "Allow us to suggest you as a potential friend to new members?"
-msgstr "Sta ons toe om jouw kanaal als mogelijke connectie voor te stellen aan nieuwe kanalen"
+#: ../../Zotlabs/Module/Events.php:674 ../../Zotlabs/Module/Cal.php:331
+msgid "Create Event"
+msgstr "Gebeurtenis aanmaken"
-#: ../../Zotlabs/Module/Settings.php:990
-msgid "Your channel address is"
-msgstr "Jouw kanaaladres is"
+#: ../../Zotlabs/Module/Events.php:677 ../../Zotlabs/Module/Cal.php:334
+msgid "Export"
+msgstr "Exporteren"
-#: ../../Zotlabs/Module/Settings.php:1032
-msgid "Channel Settings"
-msgstr "Kanaal-instellingen"
+#: ../../Zotlabs/Module/Events.php:681
+msgid "Month"
+msgstr "Maand"
-#: ../../Zotlabs/Module/Settings.php:1039
-msgid "Basic Settings"
-msgstr "Basis-instellingen"
+#: ../../Zotlabs/Module/Events.php:682
+msgid "Week"
+msgstr "Week"
-#: ../../Zotlabs/Module/Settings.php:1040 ../../include/channel.php:1140
-msgid "Full Name:"
-msgstr "Volledige naam:"
+#: ../../Zotlabs/Module/Events.php:683
+msgid "Day"
+msgstr "Dag"
-#: ../../Zotlabs/Module/Settings.php:1042
-msgid "Your Timezone:"
-msgstr "Jouw tijdzone:"
+#: ../../Zotlabs/Module/Events.php:686 ../../Zotlabs/Module/Cal.php:341
+msgid "Today"
+msgstr "Vandaag"
-#: ../../Zotlabs/Module/Settings.php:1043
-msgid "Default Post Location:"
-msgstr "Standaardlocatie bericht:"
+#: ../../Zotlabs/Module/Events.php:717
+msgid "Event removed"
+msgstr "Gebeurtenis verwijderd"
-#: ../../Zotlabs/Module/Settings.php:1043
-msgid "Geographical location to display on your posts"
-msgstr "Geografische locatie die bij het bericht moet worden vermeld"
+#: ../../Zotlabs/Module/Events.php:720
+msgid "Failed to remove event"
+msgstr "Verwijderen gebeurtenis mislukt"
-#: ../../Zotlabs/Module/Settings.php:1044
-msgid "Use Browser Location:"
-msgstr "Locatie van webbrowser gebruiken:"
+#: ../../Zotlabs/Module/Import.php:33
+#, php-format
+msgid "Your service plan only allows %d channels."
+msgstr "Jouw abonnement staat maar %d kanalen toe."
-#: ../../Zotlabs/Module/Settings.php:1046
-msgid "Adult Content"
-msgstr "Inhoud voor volwassenen"
+#: ../../Zotlabs/Module/Import.php:153 ../../include/import.php:107
+msgid "Cloned channel not found. Import failed."
+msgstr "Gekloond kanaal niet gevonden. Importeren mislukt."
+
+#: ../../Zotlabs/Module/Import.php:163
+msgid "No channel. Import failed."
+msgstr "Geen kanaal. Importeren mislukt."
+
+#: ../../Zotlabs/Module/Import.php:520
+#: ../../include/Import/import_diaspora.php:142
+msgid "Import completed."
+msgstr "Import voltooid."
-#: ../../Zotlabs/Module/Settings.php:1046
+#: ../../Zotlabs/Module/Import.php:542
+msgid "You must be logged in to use this feature."
+msgstr "Je moet ingelogd zijn om dit onderdeel te kunnen gebruiken."
+
+#: ../../Zotlabs/Module/Import.php:547
+msgid "Import Channel"
+msgstr "Kanaal importeren"
+
+#: ../../Zotlabs/Module/Import.php:548
msgid ""
-"This channel frequently or regularly publishes adult content. (Please tag "
-"any adult material and/or nudity with #NSFW)"
-msgstr "Dit kanaal publiceert regelmatig of vaak materiaal dat alleen geschikt is voor volwassenen. (Gebruik de tag #NSFW in berichten met een seksueel getinte inhoud of ander voor minderjarigen ongeschikt materiaal)"
+"Use this form to import an existing channel from a different server/hub. You"
+" may retrieve the channel identity from the old server/hub via the network "
+"or provide an export file."
+msgstr "Gebruik dit formulier om een bestaand kanaal te importeren van een andere hub. Je kan de kanaal-identiteit van de oude hub via het netwerk ontvangen of een exportbestand verstrekken."
-#: ../../Zotlabs/Module/Settings.php:1048
-msgid "Security and Privacy Settings"
-msgstr "Veiligheids- en privacy-instellingen"
+#: ../../Zotlabs/Module/Import.php:550
+msgid "Or provide the old server/hub details"
+msgstr "Of vul de gegevens van de oude hub in"
-#: ../../Zotlabs/Module/Settings.php:1051
-msgid "Your permissions are already configured. Click to view/adjust"
-msgstr "Jouw permissies zijn al ingesteld. Klik om ze te bekijken of aan te passen."
+#: ../../Zotlabs/Module/Import.php:551
+msgid "Your old identity address (xyz@example.com)"
+msgstr "Jouw oude kanaaladres (xyz@example.com)"
-#: ../../Zotlabs/Module/Settings.php:1053
-msgid "Hide my online presence"
-msgstr "Verberg mijn aanwezigheid"
+#: ../../Zotlabs/Module/Import.php:552
+msgid "Your old login email address"
+msgstr "Het e-mailadres van je oude account"
-#: ../../Zotlabs/Module/Settings.php:1053
-msgid "Prevents displaying in your profile that you are online"
-msgstr "Voorkomt dat op je kanaalpagina te zien valt dat je momenteel op $Projectname aanwezig bent"
+#: ../../Zotlabs/Module/Import.php:553
+msgid "Your old login password"
+msgstr "Wachtwoord van jouw oude account"
-#: ../../Zotlabs/Module/Settings.php:1055
-msgid "Simple Privacy Settings:"
-msgstr "Eenvoudige privacy-instellingen:"
+#: ../../Zotlabs/Module/Import.php:554
+msgid ""
+"For either option, please choose whether to make this hub your new primary "
+"address, or whether your old location should continue this role. You will be"
+" able to post from either location, but only one can be marked as the "
+"primary location for files, photos, and media."
+msgstr "Voor elke optie geldt dat je moet kiezen of je jouw primaire kanaaladres op deze hub wil instellen of dat jouw oude hub deze rol blijft vervullen."
-#: ../../Zotlabs/Module/Settings.php:1056
+#: ../../Zotlabs/Module/Import.php:555
+msgid "Make this hub my primary location"
+msgstr "Stel deze hub als mijn primaire locatie in"
+
+#: ../../Zotlabs/Module/Import.php:556
msgid ""
-"Very Public - <em>extremely permissive (should be used with caution)</em>"
-msgstr "Zeer openbaar <em>(kanaal staat volledig open - moet met grote zorgvuldigheid gebruikt worden)</em>"
+"Import existing posts if possible (experimental - limited by available "
+"memory"
+msgstr "Importeer bestaande berichten wanneer mogelijk (experimenteel - afhankelijk van beschikbaar servergeheugen)"
-#: ../../Zotlabs/Module/Settings.php:1057
+#: ../../Zotlabs/Module/Import.php:557
msgid ""
-"Typical - <em>default public, privacy when desired (similar to social "
-"network permissions but with improved privacy)</em>"
-msgstr "Normaal <em>(standaard openbaar, maar privacy wanneer noodzakelijk - vergelijkbaar met die van sociale netwerken, maar met verbeterde privacy)</em>"
+"This process may take several minutes to complete. Please submit the form "
+"only once and leave this page open until finished."
+msgstr "Dit proces kan enkele minuten in beslag nemen. Klik maar één keer op opslaan en verlaat deze pagina niet alvorens het proces is voltooid."
-#: ../../Zotlabs/Module/Settings.php:1058
-msgid "Private - <em>default private, never open or public</em>"
-msgstr "Privé <em>(standaard privé en nooit openbaar)</em>"
+#: ../../Zotlabs/Module/New_channel.php:135
+msgid "Create Channel"
+msgstr "Kanaal aanmaken"
-#: ../../Zotlabs/Module/Settings.php:1059
-msgid "Blocked - <em>default blocked to/from everybody</em>"
-msgstr "Geblokkeerd <em>(standaard geblokkeerd naar/van iedereen)</em>"
+#: ../../Zotlabs/Module/New_channel.php:136
+msgid ""
+"A channel is your identity on this network. It can represent a person, a "
+"blog, or a forum to name a few. Channels can make connections with other "
+"channels to share information with highly detailed permissions."
+msgstr "Een kanaal is jouw identiteit in dit netwerk. Het kan bijvoorbeeld een persoon, een blog of een forum vertegenwoordigen. Door met elkaar te verbinden kunnen kanalen, met behulp van uitgebreide permissies, informatie uitwisselen."
-#: ../../Zotlabs/Module/Settings.php:1061
-msgid "Allow others to tag your posts"
-msgstr "Anderen toestaan om je berichten te taggen"
+#: ../../Zotlabs/Module/New_channel.php:137
+msgid ""
+"or <a href=\"import\">import an existing channel</a> from another location."
+msgstr "Of <a href=\"import\">importeer een bestaand kanaal</a> vanaf een andere locatie"
-#: ../../Zotlabs/Module/Settings.php:1061
+#: ../../Zotlabs/Module/Ping.php:265
+msgid "sent you a private message"
+msgstr "stuurde jou een privébericht"
+
+#: ../../Zotlabs/Module/Ping.php:313
+msgid "added your channel"
+msgstr "voegde jouw kanaal toe"
+
+#: ../../Zotlabs/Module/Ping.php:323
+msgid "g A l F d"
+msgstr "G:i, l d F"
+
+#: ../../Zotlabs/Module/Ping.php:346
+msgid "[today]"
+msgstr "[vandaag]"
+
+#: ../../Zotlabs/Module/Ping.php:355
+msgid "posted an event"
+msgstr "plaatste een gebeurtenis"
+
+#: ../../Zotlabs/Module/Notifications.php:30
+msgid "Invalid request identifier."
+msgstr "Ongeldige verzoek identificator (request identifier)"
+
+#: ../../Zotlabs/Module/Notifications.php:39
+msgid "Discard"
+msgstr "Annuleren"
+
+#: ../../Zotlabs/Module/Notifications.php:103 ../../include/nav.php:195
+msgid "Mark all system notifications seen"
+msgstr "Markeer alle systeemnotificaties als bekeken"
+
+#: ../../Zotlabs/Module/Poke.php:168 ../../Zotlabs/Lib/Apps.php:228
+#: ../../include/conversation.php:961
+msgid "Poke"
+msgstr "Aanstoten"
+
+#: ../../Zotlabs/Module/Poke.php:169
+msgid "Poke somebody"
+msgstr "Iemand aanstoten"
+
+#: ../../Zotlabs/Module/Poke.php:172
+msgid "Poke/Prod"
+msgstr "Aanstoten/porren"
+
+#: ../../Zotlabs/Module/Poke.php:173
+msgid "Poke, prod or do other things to somebody"
+msgstr "Iemand bijvoorbeeld aanstoten of poren"
+
+#: ../../Zotlabs/Module/Poke.php:180
+msgid "Recipient"
+msgstr "Ontvanger"
+
+#: ../../Zotlabs/Module/Poke.php:181
+msgid "Choose what you wish to do to recipient"
+msgstr "Kies wat je met de ontvanger wil doen"
+
+#: ../../Zotlabs/Module/Poke.php:184 ../../Zotlabs/Module/Poke.php:185
+msgid "Make this post private"
+msgstr "Maak dit bericht privé"
+
+#: ../../Zotlabs/Module/Oexchange.php:27
+msgid "Unable to find your hub."
+msgstr "Niet in staat om je hub te vinden"
+
+#: ../../Zotlabs/Module/Oexchange.php:41
+msgid "Post successful."
+msgstr "Verzenden bericht geslaagd."
+
+#: ../../Zotlabs/Module/Profperm.php:34 ../../Zotlabs/Module/Profperm.php:63
+msgid "Invalid profile identifier."
+msgstr "Ongeldige profiel-identificator"
+
+#: ../../Zotlabs/Module/Profperm.php:115
+msgid "Profile Visibility Editor"
+msgstr "Zichtbaarheid profiel "
+
+#: ../../Zotlabs/Module/Profperm.php:117 ../../include/channel.php:1274
+msgid "Profile"
+msgstr "Profiel"
+
+#: ../../Zotlabs/Module/Profperm.php:119
+msgid "Click on a contact to add or remove."
+msgstr "Klik op een connectie om deze toe te voegen of te verwijderen"
+
+#: ../../Zotlabs/Module/Profperm.php:128
+msgid "Visible To"
+msgstr "Zichtbaar voor"
+
+#: ../../Zotlabs/Module/Pconfig.php:26 ../../Zotlabs/Module/Pconfig.php:59
+msgid "This setting requires special processing and editing has been blocked."
+msgstr "Deze instelling vereist een speciaal proces en bewerken is geblokkeerd."
+
+#: ../../Zotlabs/Module/Pconfig.php:48
+msgid "Configuration Editor"
+msgstr "Configuratiebewerker"
+
+#: ../../Zotlabs/Module/Pconfig.php:49
msgid ""
-"Often used by the community to retro-actively flag inappropriate content"
-msgstr "Vaak in groepen/forums gebruikt om met terugwerkende kracht ongepast materiaal te markeren"
+"Warning: Changing some settings could render your channel inoperable. Please"
+" leave this page unless you are comfortable with and knowledgeable about how"
+" to correctly use this feature."
+msgstr "Waarschuwing: het veranderen van sommige instellingen kunnen jouw kanaal onklaar maken. Verlaat deze pagina, tenzij je weet waar je mee bezig bent en voldoende kennis bezit over hoe je deze functies moet gebruiken. "
-#: ../../Zotlabs/Module/Settings.php:1063
-msgid "Advanced Privacy Settings"
-msgstr "Geavanceerde privacy-instellingen"
+#: ../../Zotlabs/Module/Channel.php:28 ../../Zotlabs/Module/Wiki.php:20
+#: ../../Zotlabs/Module/Chat.php:25
+msgid "You must be logged in to see this page."
+msgstr "Je moet zijn ingelogd om deze pagina te kunnen bekijken."
-#: ../../Zotlabs/Module/Settings.php:1065
-msgid "Expire other channel content after this many days"
-msgstr "Inhoud van andere kanalen na zoveel aantal dagen laten verlopen:"
+#: ../../Zotlabs/Module/Channel.php:40
+msgid "Posts and comments"
+msgstr "Berichten en reacties"
-#: ../../Zotlabs/Module/Settings.php:1065
-msgid "0 or blank to use the website limit."
-msgstr "0 of leeg om het standaard aantal dagen van deze hub te gebruiken."
+#: ../../Zotlabs/Module/Channel.php:41
+msgid "Only posts"
+msgstr "Alleen berichten"
-#: ../../Zotlabs/Module/Settings.php:1065
+#: ../../Zotlabs/Module/Channel.php:101
+msgid "Insufficient permissions. Request redirected to profile page."
+msgstr "Onvoldoende permissies. Doorgestuurd naar profielpagina."
+
+#: ../../Zotlabs/Module/Siteinfo.php:19
#, php-format
-msgid "This website expires after %d days."
-msgstr "Deze hub laat de inhoud van andere kanalen na %d dagen verlopen."
+msgid "Version %s"
+msgstr "Versie %s"
-#: ../../Zotlabs/Module/Settings.php:1065
-msgid "This website does not expire imported content."
-msgstr "Deze hub laat de inhoud van andere kanalen niet verlopen."
+#: ../../Zotlabs/Module/Siteinfo.php:34
+msgid "Installed plugins/addons/apps:"
+msgstr "Ingeschakelde plugins en apps:"
-#: ../../Zotlabs/Module/Settings.php:1065
-msgid "The website limit takes precedence if lower than your limit."
-msgstr "Wanneer de standaard aantal dagen van deze hub lager ligt dan jouw aantal, dan heeft de limiet van deze hub voorrang."
+#: ../../Zotlabs/Module/Siteinfo.php:36
+msgid "No installed plugins/addons/apps"
+msgstr "Geen ingeschakelde plugins en apps"
-#: ../../Zotlabs/Module/Settings.php:1066
-msgid "Maximum Friend Requests/Day:"
-msgstr "Maximum aantal connectieverzoeken per dag:"
+#: ../../Zotlabs/Module/Siteinfo.php:49
+msgid ""
+"This is a hub of $Projectname - a global cooperative network of "
+"decentralized privacy enhanced websites."
+msgstr "Dit is een $Projectname-hub - $Projectname is een wereldwijd coöperatief netwerk van gedecentraliseerde websites (hubs) met verbeterde privacy."
-#: ../../Zotlabs/Module/Settings.php:1066
-msgid "May reduce spam activity"
-msgstr "Kan eventuele spam verminderen"
+#: ../../Zotlabs/Module/Siteinfo.php:51
+msgid "Tag: "
+msgstr "Tag: "
-#: ../../Zotlabs/Module/Settings.php:1067
-msgid "Default Post and Publish Permissions"
-msgstr "Standaard permissies voor nieuwe berichten en publicaties"
+#: ../../Zotlabs/Module/Siteinfo.php:53
+msgid "Last background fetch: "
+msgstr "Meest recente achtergrond-fetch:"
-#: ../../Zotlabs/Module/Settings.php:1069
-msgid "Use my default audience setting for the type of object published"
-msgstr "Gebruik mijn standaard privacy-instelling voor dit type publicatie"
+#: ../../Zotlabs/Module/Siteinfo.php:55
+msgid "Current load average: "
+msgstr "Gemiddelde systeembelasting is nu:"
-#: ../../Zotlabs/Module/Settings.php:1072
-msgid "Channel permissions category:"
-msgstr "Kanaaltype en -permissies:"
+#: ../../Zotlabs/Module/Siteinfo.php:58
+msgid "Running at web location"
+msgstr "Draaiend op weblocatie"
-#: ../../Zotlabs/Module/Settings.php:1078
-msgid "Maximum private messages per day from unknown people:"
-msgstr "Maximum aantal privé-berichten per dag van onbekende personen:"
+#: ../../Zotlabs/Module/Siteinfo.php:59
+msgid ""
+"Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more "
+"about $Projectname."
+msgstr "Bezoek <a href=\"http://hubzilla.org\">hubzilla.org</a> "
-#: ../../Zotlabs/Module/Settings.php:1078
-msgid "Useful to reduce spamming"
-msgstr "Kan eventuele spam verminderen"
+#: ../../Zotlabs/Module/Siteinfo.php:60
+msgid "Bug reports and issues: please visit"
+msgstr "Bugrapporten en andere kwesties: bezoek"
-#: ../../Zotlabs/Module/Settings.php:1081
-msgid "Notification Settings"
-msgstr "Notificatie-instellingen"
+#: ../../Zotlabs/Module/Siteinfo.php:62
+msgid "$projectname issues"
+msgstr "$projectname-issues"
-#: ../../Zotlabs/Module/Settings.php:1082
-msgid "By default post a status message when:"
-msgstr "Plaats automatisch een bericht wanneer:"
+#: ../../Zotlabs/Module/Siteinfo.php:63
+msgid ""
+"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot "
+"com"
+msgstr "Voorstellen, lofbetuigingen, enz. - e-mail \"redmatrix\" at librelist - dot com"
-#: ../../Zotlabs/Module/Settings.php:1083
-msgid "accepting a friend request"
-msgstr "Een connectieverzoek wordt geaccepteerd"
+#: ../../Zotlabs/Module/Siteinfo.php:65
+msgid "Site Administrators"
+msgstr "Hubbeheerders: "
-#: ../../Zotlabs/Module/Settings.php:1084
-msgid "joining a forum/community"
-msgstr "Je lid wordt van een forum/groep"
+#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2262
+msgid "Blocks"
+msgstr "Blokken"
-#: ../../Zotlabs/Module/Settings.php:1085
-msgid "making an <em>interesting</em> profile change"
-msgstr "Er sprake is van een <em>interessante</em> profielwijziging"
+#: ../../Zotlabs/Module/Blocks.php:156
+msgid "Block Title"
+msgstr "Bloktitel"
-#: ../../Zotlabs/Module/Settings.php:1086
-msgid "Send a notification email when:"
-msgstr "Verzend een notificatie per e-mail wanneer:"
+#: ../../Zotlabs/Module/Layouts.php:183 ../../include/text.php:2264
+msgid "Layouts"
+msgstr "Lay-outs"
-#: ../../Zotlabs/Module/Settings.php:1087
-msgid "You receive a connection request"
-msgstr "Je een connectieverzoek ontvangt"
+#: ../../Zotlabs/Module/Layouts.php:185
+msgid "Comanche page description language help"
+msgstr "Hulp met de paginabeschrijvingstaal Comanche"
-#: ../../Zotlabs/Module/Settings.php:1088
-msgid "Your connections are confirmed"
-msgstr "Jouw connecties zijn bevestigd"
+#: ../../Zotlabs/Module/Layouts.php:189
+msgid "Layout Description"
+msgstr "Lay-out-omschrijving"
-#: ../../Zotlabs/Module/Settings.php:1089
-msgid "Someone writes on your profile wall"
-msgstr "Iemand iets op jouw kanaal heeft geschreven"
+#: ../../Zotlabs/Module/Layouts.php:194
+msgid "Download PDL file"
+msgstr "Download PDL-bestand"
-#: ../../Zotlabs/Module/Settings.php:1090
-msgid "Someone writes a followup comment"
-msgstr "Iemand een reactie schrijft"
+#: ../../Zotlabs/Module/Ratings.php:70
+msgid "No ratings"
+msgstr "Geen beoordelingen"
-#: ../../Zotlabs/Module/Settings.php:1091
-msgid "You receive a private message"
-msgstr "Je een privé-bericht ontvangt"
+#: ../../Zotlabs/Module/Ratings.php:98
+msgid "Rating: "
+msgstr "Beoordeling: "
-#: ../../Zotlabs/Module/Settings.php:1092
-msgid "You receive a friend suggestion"
-msgstr "Je een kanaalvoorstel ontvangt"
+#: ../../Zotlabs/Module/Ratings.php:99
+msgid "Website: "
+msgstr "Website: "
-#: ../../Zotlabs/Module/Settings.php:1093
-msgid "You are tagged in a post"
-msgstr "Je expliciet in een bericht bent genoemd"
+#: ../../Zotlabs/Module/Ratings.php:101
+msgid "Description: "
+msgstr "Omschrijving: "
-#: ../../Zotlabs/Module/Settings.php:1094
-msgid "You are poked/prodded/etc. in a post"
-msgstr "Je bent in een bericht aangestoten/gepord/etc."
+#: ../../Zotlabs/Module/Profile_photo.php:186
+msgid ""
+"Shift-reload the page or clear browser cache if the new photo does not "
+"display immediately."
+msgstr "Vernieuw de pagina met shift+R of shift+F5, of leeg je browserbuffer, wanneer de nieuwe foto niet meteen wordt weergegeven."
-#: ../../Zotlabs/Module/Settings.php:1097
-msgid "Show visual notifications including:"
-msgstr "Toon de volgende zichtbare notificaties:"
+#: ../../Zotlabs/Module/Profile_photo.php:389
+msgid "Upload Profile Photo"
+msgstr "Profielfoto uploaden"
-#: ../../Zotlabs/Module/Settings.php:1099
-msgid "Unseen grid activity"
-msgstr "Niet bekeken grid-activiteit"
+#: ../../Zotlabs/Module/Cal.php:69
+msgid "Permissions denied."
+msgstr "Permissies niet toegestaan"
-#: ../../Zotlabs/Module/Settings.php:1100
-msgid "Unseen channel activity"
-msgstr "Niet bekeken kanaal-activiteit"
+#: ../../Zotlabs/Module/Cal.php:337 ../../include/text.php:2286
+msgid "Import"
+msgstr "Importeren"
-#: ../../Zotlabs/Module/Settings.php:1101
-msgid "Unseen private messages"
-msgstr "Niet bekeken privéberichten"
+#: ../../Zotlabs/Module/Common.php:14
+msgid "No channel."
+msgstr "Geen kanaal."
-#: ../../Zotlabs/Module/Settings.php:1101
-#: ../../Zotlabs/Module/Settings.php:1106
-#: ../../Zotlabs/Module/Settings.php:1107
-#: ../../Zotlabs/Module/Settings.php:1108
-msgid "Recommended"
-msgstr "Aanbevolen"
+#: ../../Zotlabs/Module/Common.php:43
+msgid "Common connections"
+msgstr "Veel voorkomende connecties"
-#: ../../Zotlabs/Module/Settings.php:1102
-msgid "Upcoming events"
-msgstr "Aankomende gebeurtenissen"
+#: ../../Zotlabs/Module/Common.php:48
+msgid "No connections in common."
+msgstr "Geen gemeenschappelijke connecties."
-#: ../../Zotlabs/Module/Settings.php:1103
-msgid "Events today"
-msgstr "Gebeurtenissen van vandaag"
+#: ../../Zotlabs/Module/Mail.php:38
+msgid "Unable to lookup recipient."
+msgstr "Niet in staat om ontvanger op te zoeken."
-#: ../../Zotlabs/Module/Settings.php:1104
-msgid "Upcoming birthdays"
-msgstr "Aankomende verjaardagen"
+#: ../../Zotlabs/Module/Mail.php:45
+msgid "Unable to communicate with requested channel."
+msgstr "Niet in staat om met het aangevraagde kanaal te communiceren."
-#: ../../Zotlabs/Module/Settings.php:1104
-msgid "Not available in all themes"
-msgstr "Niet in alle thema's beschikbaar"
+#: ../../Zotlabs/Module/Mail.php:52
+msgid "Cannot verify requested channel."
+msgstr "Kan opgevraagd kanaal niet verifieren"
-#: ../../Zotlabs/Module/Settings.php:1105
-msgid "System (personal) notifications"
-msgstr "(Persoonlijke) systeemnotificaties"
+#: ../../Zotlabs/Module/Mail.php:70
+msgid "Selected channel has private message restrictions. Send failed."
+msgstr "Gekozen kanaal heeft restricties voor privéberichten. Verzenden mislukt."
-#: ../../Zotlabs/Module/Settings.php:1106
-msgid "System info messages"
-msgstr "Systeemmededelingen"
+#: ../../Zotlabs/Module/Mail.php:135
+msgid "Messages"
+msgstr "Berichten"
-#: ../../Zotlabs/Module/Settings.php:1107
-msgid "System critical alerts"
-msgstr "Kritische systeemwaarschuwingen"
+#: ../../Zotlabs/Module/Mail.php:170
+msgid "Message recalled."
+msgstr "Bericht ingetrokken."
-#: ../../Zotlabs/Module/Settings.php:1108
-msgid "New connections"
-msgstr "Nieuwe connecties"
+#: ../../Zotlabs/Module/Mail.php:183
+msgid "Conversation removed."
+msgstr "Conversatie verwijderd"
-#: ../../Zotlabs/Module/Settings.php:1109
-msgid "System Registrations"
-msgstr "Nieuwe accountregistraties op deze hub"
+#: ../../Zotlabs/Module/Mail.php:197 ../../Zotlabs/Module/Mail.php:306
+#: ../../Zotlabs/Module/Chat.php:205 ../../include/conversation.php:1183
+msgid "Please enter a link URL:"
+msgstr "Vul een URL in:"
-#: ../../Zotlabs/Module/Settings.php:1110
-msgid ""
-"Also show new wall posts, private messages and connections under Notices"
-msgstr "Toon tevens nieuwe kanaalberichten, privéberichten en connecties onder Notificaties"
+#: ../../Zotlabs/Module/Mail.php:198 ../../Zotlabs/Module/Mail.php:307
+msgid "Expires YYYY-MM-DD HH:MM"
+msgstr "Verloopt op DD-MM-YYYY om HH:MM"
-#: ../../Zotlabs/Module/Settings.php:1112
-msgid "Notify me of events this many days in advance"
-msgstr "Herinner mij zoveel dagen van te voren aan gebeurtenissen"
+#: ../../Zotlabs/Module/Mail.php:226
+msgid "Requested channel is not in this network"
+msgstr "Opgevraagd kanaal is niet in dit netwerk beschikbaar"
-#: ../../Zotlabs/Module/Settings.php:1112
-msgid "Must be greater than 0"
-msgstr "Moet hoger dan 0 zijn"
+#: ../../Zotlabs/Module/Mail.php:234
+msgid "Send Private Message"
+msgstr "Privébericht versturen"
-#: ../../Zotlabs/Module/Settings.php:1114
-msgid "Advanced Account/Page Type Settings"
-msgstr "Instellingen geavanceerd account/paginatype"
+#: ../../Zotlabs/Module/Mail.php:235 ../../Zotlabs/Module/Mail.php:360
+msgid "To:"
+msgstr "Aan:"
-#: ../../Zotlabs/Module/Settings.php:1115
-msgid "Change the behaviour of this account for special situations"
-msgstr "Verander het gedrag van dit account voor speciale situaties"
+#: ../../Zotlabs/Module/Mail.php:238 ../../Zotlabs/Module/Mail.php:362
+msgid "Subject:"
+msgstr "Onderwerp:"
+
+#: ../../Zotlabs/Module/Mail.php:243 ../../Zotlabs/Module/Mail.php:368
+#: ../../include/conversation.php:1239
+msgid "Attach file"
+msgstr "Bestand toevoegen"
+
+#: ../../Zotlabs/Module/Mail.php:245
+msgid "Send"
+msgstr "Verzenden"
+
+#: ../../Zotlabs/Module/Mail.php:248 ../../Zotlabs/Module/Mail.php:373
+#: ../../include/conversation.php:1284
+msgid "Set expiration date"
+msgstr "Verloopdatum instellen"
+
+#: ../../Zotlabs/Module/Mail.php:250 ../../Zotlabs/Module/Mail.php:375
+#: ../../Zotlabs/Module/Chat.php:206 ../../Zotlabs/Lib/ThreadItem.php:723
+#: ../../include/conversation.php:1289
+msgid "Encrypt text"
+msgstr "Tekst versleutelen"
+
+#: ../../Zotlabs/Module/Mail.php:332
+msgid "Delete message"
+msgstr "Bericht verwijderen"
+
+#: ../../Zotlabs/Module/Mail.php:333
+msgid "Delivery report"
+msgstr "Afleveringsrapport"
+
+#: ../../Zotlabs/Module/Mail.php:334
+msgid "Recall message"
+msgstr "Bericht intrekken"
+
+#: ../../Zotlabs/Module/Mail.php:336
+msgid "Message has been recalled."
+msgstr "Bericht is ingetrokken."
+
+#: ../../Zotlabs/Module/Mail.php:353
+msgid "Delete Conversation"
+msgstr "Verwijder conversatie"
-#: ../../Zotlabs/Module/Settings.php:1118
+#: ../../Zotlabs/Module/Mail.php:355
msgid ""
-"Please enable expert mode (in <a href=\"settings/features\">Settings > "
-"Additional features</a>) to adjust!"
-msgstr "Schakel de expertmodus in (in <a href=\"settings/features\">Instellingen > Extra functies</a>) om aan te kunnen passen!"
+"No secure communications available. You <strong>may</strong> be able to "
+"respond from the sender's profile page."
+msgstr "Geen veilige communicatie beschikbaar. <strong>Mogelijk</strong> kan je reageren op de kanaalpagina van de afzender."
-#: ../../Zotlabs/Module/Settings.php:1119
-msgid "Miscellaneous Settings"
-msgstr "Diverse instellingen"
+#: ../../Zotlabs/Module/Mail.php:359
+msgid "Send Reply"
+msgstr "Antwoord versturen"
-#: ../../Zotlabs/Module/Settings.php:1120
-msgid "Default photo upload folder"
-msgstr "Standaard fotoalbum voor uploads"
+#: ../../Zotlabs/Module/Mail.php:364
+#, php-format
+msgid "Your message for %s (%s):"
+msgstr "Jouw privébericht aan %s (%s):"
-#: ../../Zotlabs/Module/Settings.php:1120
-#: ../../Zotlabs/Module/Settings.php:1121
-msgid "%Y - current year, %m - current month"
-msgstr "%Y - dit jaar, %m - deze maand"
+#: ../../Zotlabs/Module/Connedit.php:80
+msgid "Could not access contact record."
+msgstr "Kon geen toegang krijgen tot de connectie-gegevens."
-#: ../../Zotlabs/Module/Settings.php:1121
-msgid "Default file upload folder"
-msgstr "Standaard bestandsmap voor uploads"
+#: ../../Zotlabs/Module/Connedit.php:104
+msgid "Could not locate selected profile."
+msgstr "Kon het gekozen profiel niet vinden."
-#: ../../Zotlabs/Module/Settings.php:1123
-msgid "Personal menu to display in your channel pages"
-msgstr "Persoonlijk menu om op je kanaalpagina's weer te geven"
+#: ../../Zotlabs/Module/Connedit.php:256
+msgid "Connection updated."
+msgstr "Connectie bijgewerkt."
-#: ../../Zotlabs/Module/Settings.php:1125
-msgid "Remove this channel."
-msgstr "Verwijder dit kanaal."
+#: ../../Zotlabs/Module/Connedit.php:258
+msgid "Failed to update connection record."
+msgstr "Bijwerken van connectie-gegevens mislukt."
-#: ../../Zotlabs/Module/Settings.php:1126
-msgid "Firefox Share $Projectname provider"
-msgstr "$Projectname-service voor Firefox Share"
+#: ../../Zotlabs/Module/Connedit.php:308
+msgid "is now connected to"
+msgstr "is nu verbonden met"
-#: ../../Zotlabs/Module/Settings.php:1127
-msgid "Start calendar week on monday"
-msgstr "Begin in de agenda de week op maandag"
+#: ../../Zotlabs/Module/Connedit.php:440
+msgid "Could not access address book record."
+msgstr "Kon geen toegang krijgen tot de record van de connectie."
-#: ../../Zotlabs/Module/Setup.php:179
-msgid "$Projectname Server - Setup"
-msgstr "$Projectname Hub - Setup"
+#: ../../Zotlabs/Module/Connedit.php:460
+msgid "Refresh failed - channel is currently unavailable."
+msgstr "Vernieuwen mislukt - kanaal is momenteel niet beschikbaar"
-#: ../../Zotlabs/Module/Setup.php:183
-msgid "Could not connect to database."
-msgstr "Could not connect to database."
+#: ../../Zotlabs/Module/Connedit.php:475 ../../Zotlabs/Module/Connedit.php:484
+#: ../../Zotlabs/Module/Connedit.php:493 ../../Zotlabs/Module/Connedit.php:502
+#: ../../Zotlabs/Module/Connedit.php:515
+msgid "Unable to set address book parameters."
+msgstr "Niet in staat om de parameters van connecties in te stellen."
-#: ../../Zotlabs/Module/Setup.php:187
-msgid ""
-"Could not connect to specified site URL. Possible SSL certificate or DNS "
-"issue."
-msgstr "Could not connect to specified hub URL. Possible SSL certificate or DNS issue."
+#: ../../Zotlabs/Module/Connedit.php:538
+msgid "Connection has been removed."
+msgstr "Connectie is verwijderd"
-#: ../../Zotlabs/Module/Setup.php:194
-msgid "Could not create table."
-msgstr "Could not create table."
+#: ../../Zotlabs/Module/Connedit.php:554 ../../Zotlabs/Lib/Apps.php:221
+#: ../../include/conversation.php:955 ../../include/nav.php:88
+msgid "View Profile"
+msgstr "Profiel weergeven"
-#: ../../Zotlabs/Module/Setup.php:199
-msgid "Your site database has been installed."
-msgstr "Your hub database has been installed."
+#: ../../Zotlabs/Module/Connedit.php:557
+#, php-format
+msgid "View %s's profile"
+msgstr "Profiel van %s weergeven"
-#: ../../Zotlabs/Module/Setup.php:203
-msgid ""
-"You may need to import the file \"install/schema_xxx.sql\" manually using a "
-"database client."
-msgstr "You may need to import the file \"install/schema_xxx.sql\" manually using a database client."
+#: ../../Zotlabs/Module/Connedit.php:561
+msgid "Refresh Permissions"
+msgstr "Permissies vernieuwen"
-#: ../../Zotlabs/Module/Setup.php:204 ../../Zotlabs/Module/Setup.php:266
-#: ../../Zotlabs/Module/Setup.php:721
-msgid "Please see the file \"install/INSTALL.txt\"."
-msgstr "Please see the file \"install/INSTALL.txt\"."
+#: ../../Zotlabs/Module/Connedit.php:564
+msgid "Fetch updated permissions"
+msgstr "Aangepaste permissies ophalen"
-#: ../../Zotlabs/Module/Setup.php:263
-msgid "System check"
-msgstr "System check"
+#: ../../Zotlabs/Module/Connedit.php:568
+msgid "Recent Activity"
+msgstr "Recente activiteit/berichten"
-#: ../../Zotlabs/Module/Setup.php:268
-msgid "Check again"
-msgstr "Check again"
+#: ../../Zotlabs/Module/Connedit.php:571
+msgid "View recent posts and comments"
+msgstr "Recente berichten en reacties weergeven"
-#: ../../Zotlabs/Module/Setup.php:290
-msgid "Database connection"
-msgstr "Database connection"
+#: ../../Zotlabs/Module/Connedit.php:578
+msgid "Block (or Unblock) all communications with this connection"
+msgstr "Blokkeer (of deblokkeer) alle communicatie met deze connectie"
-#: ../../Zotlabs/Module/Setup.php:291
-msgid ""
-"In order to install $Projectname we need to know how to connect to your "
-"database."
-msgstr "In order to install $Projectname we need to know how to connect to your database."
+#: ../../Zotlabs/Module/Connedit.php:579
+msgid "This connection is blocked!"
+msgstr "Deze connectie is geblokkeerd!"
-#: ../../Zotlabs/Module/Setup.php:292
-msgid ""
-"Please contact your hosting provider or site administrator if you have "
-"questions about these settings."
-msgstr "Please contact your hosting provider or server administrator if you have questions about these settings."
+#: ../../Zotlabs/Module/Connedit.php:583
+msgid "Unignore"
+msgstr "Niet meer negeren"
+
+#: ../../Zotlabs/Module/Connedit.php:586
+msgid "Ignore (or Unignore) all inbound communications from this connection"
+msgstr "Negeer (of negeer niet meer) alle inkomende communicatie van deze connectie"
+
+#: ../../Zotlabs/Module/Connedit.php:587
+msgid "This connection is ignored!"
+msgstr "Deze connectie wordt genegeerd!"
+
+#: ../../Zotlabs/Module/Connedit.php:591
+msgid "Unarchive"
+msgstr "Niet meer archiveren"
-#: ../../Zotlabs/Module/Setup.php:293
+#: ../../Zotlabs/Module/Connedit.php:591
+msgid "Archive"
+msgstr "Archiveren"
+
+#: ../../Zotlabs/Module/Connedit.php:594
msgid ""
-"The database you specify below should already exist. If it does not, please "
-"create it before continuing."
-msgstr "The database you specify below should already exist. If it does not, please create it before continuing."
+"Archive (or Unarchive) this connection - mark channel dead but keep content"
+msgstr "Archiveer (of dearchiveer) deze connectie - markeer het kanaal als dood, maar bewaar de inhoud"
-#: ../../Zotlabs/Module/Setup.php:297
-msgid "Database Server Name"
-msgstr "Database Server Name"
+#: ../../Zotlabs/Module/Connedit.php:595
+msgid "This connection is archived!"
+msgstr "Deze connectie is gearchiveerd!"
-#: ../../Zotlabs/Module/Setup.php:297
-msgid "Default is 127.0.0.1"
-msgstr "Default is 127.0.0.1"
+#: ../../Zotlabs/Module/Connedit.php:599
+msgid "Unhide"
+msgstr "Niet meer verbergen"
-#: ../../Zotlabs/Module/Setup.php:298
-msgid "Database Port"
-msgstr "Database Port"
+#: ../../Zotlabs/Module/Connedit.php:599
+msgid "Hide"
+msgstr "Verbergen"
-#: ../../Zotlabs/Module/Setup.php:298
-msgid "Communication port number - use 0 for default"
-msgstr "Communication port number - use 0 for default"
+#: ../../Zotlabs/Module/Connedit.php:602
+msgid "Hide or Unhide this connection from your other connections"
+msgstr "Deze connectie verbergen (of niet meer verbergen) voor jouw andere connecties"
-#: ../../Zotlabs/Module/Setup.php:299
-msgid "Database Login Name"
-msgstr "Database Login Name"
+#: ../../Zotlabs/Module/Connedit.php:603
+msgid "This connection is hidden!"
+msgstr "Deze connectie is verborgen!"
-#: ../../Zotlabs/Module/Setup.php:300
-msgid "Database Login Password"
-msgstr "Database Login Password"
+#: ../../Zotlabs/Module/Connedit.php:610
+msgid "Delete this connection"
+msgstr "Deze connectie verwijderen"
-#: ../../Zotlabs/Module/Setup.php:301
-msgid "Database Name"
-msgstr "Database Name"
+#: ../../Zotlabs/Module/Connedit.php:625 ../../include/widgets.php:493
+msgid "Me"
+msgstr "Ik"
-#: ../../Zotlabs/Module/Setup.php:302
-msgid "Database Type"
-msgstr "Database Type"
+#: ../../Zotlabs/Module/Connedit.php:626 ../../include/widgets.php:494
+msgid "Family"
+msgstr "Familie"
-#: ../../Zotlabs/Module/Setup.php:304 ../../Zotlabs/Module/Setup.php:344
-msgid "Site administrator email address"
-msgstr "Hub administrator email address"
+#: ../../Zotlabs/Module/Connedit.php:628 ../../include/widgets.php:496
+msgid "Acquaintances"
+msgstr "Kennissen"
-#: ../../Zotlabs/Module/Setup.php:304 ../../Zotlabs/Module/Setup.php:344
-msgid ""
-"Your account email address must match this in order to use the web admin "
-"panel."
-msgstr "Your account email address must match this in order to use the web admin panel."
+#: ../../Zotlabs/Module/Connedit.php:686
+msgid "Approve this connection"
+msgstr "Deze connectie accepteren"
-#: ../../Zotlabs/Module/Setup.php:305 ../../Zotlabs/Module/Setup.php:346
-msgid "Website URL"
-msgstr "Hub URL"
+#: ../../Zotlabs/Module/Connedit.php:686
+msgid "Accept connection to allow communication"
+msgstr "Keur deze connectie goed om communicatie toe te staan"
-#: ../../Zotlabs/Module/Setup.php:305 ../../Zotlabs/Module/Setup.php:346
-msgid "Please use SSL (https) URL if available."
-msgstr "Please use SSL (https) URL if available."
+#: ../../Zotlabs/Module/Connedit.php:691
+msgid "Set Affinity"
+msgstr "Verwantschapsfilter instellen"
-#: ../../Zotlabs/Module/Setup.php:306 ../../Zotlabs/Module/Setup.php:349
-msgid "Please select a default timezone for your website"
-msgstr "Please select a default timezone for your hub"
+#: ../../Zotlabs/Module/Connedit.php:694
+msgid "Set Profile"
+msgstr "Profiel instellen"
-#: ../../Zotlabs/Module/Setup.php:333
-msgid "Site settings"
-msgstr "Hub settings"
+#: ../../Zotlabs/Module/Connedit.php:697
+msgid "Set Affinity & Profile"
+msgstr "Verwantschapsfilter en profiel instellen"
-#: ../../Zotlabs/Module/Setup.php:347
-msgid "Enable $Projectname <strong>advanced</strong> features?"
-msgstr "Enable $Projectname <strong>advanced</strong> features?"
+#: ../../Zotlabs/Module/Connedit.php:746
+msgid "none"
+msgstr "geen"
-#: ../../Zotlabs/Module/Setup.php:347
-msgid ""
-"Some advanced features, while useful - may be best suited for technically "
-"proficient audiences"
-msgstr "Some advanced features, while useful - may be best suited for technically proficient audiences"
+#: ../../Zotlabs/Module/Connedit.php:750 ../../include/widgets.php:623
+msgid "Connection Default Permissions"
+msgstr "Standaard permissies voor connecties"
-#: ../../Zotlabs/Module/Setup.php:388
-msgid "PHP version 5.5 or greater is required."
-msgstr "PHP version 5.5 or greater is required."
+#: ../../Zotlabs/Module/Connedit.php:750 ../../include/items.php:3964
+#, php-format
+msgid "Connection: %s"
+msgstr "Connectie: %s"
-#: ../../Zotlabs/Module/Setup.php:389
-msgid "PHP version"
-msgstr "PHP version"
+#: ../../Zotlabs/Module/Connedit.php:751
+msgid "Apply these permissions automatically"
+msgstr "Deze permissies automatisch toepassen"
-#: ../../Zotlabs/Module/Setup.php:404
-msgid "Could not find a command line version of PHP in the web server PATH."
-msgstr "Could not find a command line version of PHP in the web server PATH."
+#: ../../Zotlabs/Module/Connedit.php:751
+msgid "Connection requests will be approved without your interaction"
+msgstr "Connectieverzoeken zullen automatisch worden geaccepteerd"
-#: ../../Zotlabs/Module/Setup.php:405
-msgid ""
-"If you don't have a command line version of PHP installed on server, you "
-"will not be able to run background polling via cron."
-msgstr "If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron."
+#: ../../Zotlabs/Module/Connedit.php:753
+msgid "This connection's primary address is"
+msgstr "Het primaire kanaaladres van deze connectie is"
-#: ../../Zotlabs/Module/Setup.php:409
-msgid "PHP executable path"
-msgstr "PHP executable path"
+#: ../../Zotlabs/Module/Connedit.php:754
+msgid "Available locations:"
+msgstr "Beschikbare locaties:"
-#: ../../Zotlabs/Module/Setup.php:409
+#: ../../Zotlabs/Module/Connedit.php:758
msgid ""
-"Enter full path to php executable. You can leave this blank to continue the "
-"installation."
-msgstr "Enter full path to php executable. You can leave this blank to continue the installation."
+"The permissions indicated on this page will be applied to all new "
+"connections."
+msgstr "Permissies die op deze pagina staan vermeld worden op alle nieuwe connecties toegepast."
-#: ../../Zotlabs/Module/Setup.php:414
-msgid "Command line PHP"
-msgstr "Command line PHP"
+#: ../../Zotlabs/Module/Connedit.php:759
+msgid "Connection Tools"
+msgstr "Hulpmiddelen"
-#: ../../Zotlabs/Module/Setup.php:423
+#: ../../Zotlabs/Module/Connedit.php:761
+msgid "Slide to adjust your degree of friendship"
+msgstr "Schuif om te bepalen hoe goed je iemand kent en/of mag"
+
+#: ../../Zotlabs/Module/Connedit.php:763
+msgid "Slide to adjust your rating"
+msgstr "Gebruik de schuif om je beoordeling te geven"
+
+#: ../../Zotlabs/Module/Connedit.php:764 ../../Zotlabs/Module/Connedit.php:769
+msgid "Optionally explain your rating"
+msgstr "Verklaar jouw beoordeling (niet verplicht)"
+
+#: ../../Zotlabs/Module/Connedit.php:766
+msgid "Custom Filter"
+msgstr "Berichtenfilter"
+
+#: ../../Zotlabs/Module/Connedit.php:767
+msgid "Only import posts with this text"
+msgstr "Importeer alleen berichten met deze tekst"
+
+#: ../../Zotlabs/Module/Connedit.php:767 ../../Zotlabs/Module/Connedit.php:768
msgid ""
-"The command line version of PHP on your system does not have "
-"\"register_argc_argv\" enabled."
-msgstr "The command line version of PHP on your system does not have \"register_argc_argv\" enabled."
+"words one per line or #tags or /patterns/ or lang=xx, leave blank to import "
+"all posts"
+msgstr "woorden (één per regel), #tags, /regex/ of talen (lang=iso639-1) - laat leeg om alle berichten te importeren"
-#: ../../Zotlabs/Module/Setup.php:424
-msgid "This is required for message delivery to work."
-msgstr "This is required for message delivery to work."
+#: ../../Zotlabs/Module/Connedit.php:768
+msgid "Do not import posts with this text"
+msgstr "Importeer geen berichten met deze tekst"
-#: ../../Zotlabs/Module/Setup.php:427
-msgid "PHP register_argc_argv"
-msgstr "PHP register_argc_argv"
+#: ../../Zotlabs/Module/Connedit.php:770
+msgid "This information is public!"
+msgstr "Deze informatie is openbaar!"
+
+#: ../../Zotlabs/Module/Connedit.php:775
+msgid "Connection Pending Approval"
+msgstr "Connectie moet nog geaccepteerd worden"
-#: ../../Zotlabs/Module/Setup.php:445
+#: ../../Zotlabs/Module/Connedit.php:780
#, php-format
msgid ""
-"Your max allowed total upload size is set to %s. Maximum size of one file to"
-" upload is set to %s. You are allowed to upload up to %d files at once."
-msgstr "Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once."
+"Please choose the profile you would like to display to %s when viewing your "
+"profile securely."
+msgstr "Kies het profiel dat je aan %s wil tonen wanneer hij/zij ingelogd jouw profiel wil bekijken."
-#: ../../Zotlabs/Module/Setup.php:450
-msgid "You can adjust these settings in the servers php.ini."
-msgstr "You can adjust these settings in the servers php.ini."
+#: ../../Zotlabs/Module/Connedit.php:787
+msgid ""
+"Some permissions may be inherited from your channel's <a "
+"href=\"settings\"><strong>privacy settings</strong></a>, which have higher "
+"priority than individual settings. You can change those settings here but "
+"they wont have any impact unless the inherited setting changes."
+msgstr "Sommige permissies worden mogelijk overgeërfd van de <a href=\"settings\">privacy-instellingen</a> van jouw kanaal, die een hogere prioriteit hebben dan deze individuele permissies. Je kan de permissies hier veranderen, maar die hebben geen effect, tenzij de overgeërfde permissies worden veranderd. "
-#: ../../Zotlabs/Module/Setup.php:452
-msgid "PHP upload limits"
-msgstr "PHP upload limits"
+#: ../../Zotlabs/Module/Connedit.php:788
+msgid "Last update:"
+msgstr "Laatste wijziging:"
+
+#: ../../Zotlabs/Module/Apps.php:47 ../../include/widgets.php:102
+#: ../../include/nav.php:167
+msgid "Apps"
+msgstr "Apps"
+
+#: ../../Zotlabs/Module/Connect.php:61 ../../Zotlabs/Module/Connect.php:109
+msgid "Continue"
+msgstr "Ga verder"
+
+#: ../../Zotlabs/Module/Connect.php:90
+msgid "Premium Channel Setup"
+msgstr "Instellen premiumkanaal "
-#: ../../Zotlabs/Module/Setup.php:475
+#: ../../Zotlabs/Module/Connect.php:92
+msgid "Enable premium channel connection restrictions"
+msgstr "Restricties voor connecties van premiumkanaal toestaan"
+
+#: ../../Zotlabs/Module/Connect.php:93
msgid ""
-"Error: the \"openssl_pkey_new\" function on this system is not able to "
-"generate encryption keys"
-msgstr "Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"
+"Please enter your restrictions or conditions, such as paypal receipt, usage "
+"guidelines, etc."
+msgstr "Vul je restricties of voorwaarden in, zoals een paypal-afschrift, voorschriften voor leden, enz."
-#: ../../Zotlabs/Module/Setup.php:476
+#: ../../Zotlabs/Module/Connect.php:95 ../../Zotlabs/Module/Connect.php:115
msgid ""
-"If running under Windows, please see "
-"\"http://www.php.net/manual/en/openssl.installation.php\"."
-msgstr "If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."
+"This channel may require additional steps or acknowledgement of the "
+"following conditions prior to connecting:"
+msgstr "Dit kanaal kan extra stappen of het accepteren van de volgende voorwaarden vereisen, voordat de connectie wordt geaccepteerd:"
-#: ../../Zotlabs/Module/Setup.php:479
-msgid "Generate encryption keys"
-msgstr "Generate encryption keys"
+#: ../../Zotlabs/Module/Connect.php:96
+msgid ""
+"Potential connections will then see the following text before proceeding:"
+msgstr "Mogelijke connecties zullen dan de volgende tekst zien voordat ze verder kunnen:"
-#: ../../Zotlabs/Module/Setup.php:491
-msgid "libCurl PHP module"
-msgstr "libCurl PHP module"
+#: ../../Zotlabs/Module/Connect.php:97 ../../Zotlabs/Module/Connect.php:118
+msgid ""
+"By continuing, I certify that I have complied with any instructions provided"
+" on this page."
+msgstr "Door verder te gaan ga ik automatisch akkoord met alle voorwaarden en aanwijzingen op deze pagina."
-#: ../../Zotlabs/Module/Setup.php:492
-msgid "GD graphics PHP module"
-msgstr "GD graphics PHP module"
+#: ../../Zotlabs/Module/Connect.php:106
+msgid "(No specific instructions have been provided by the channel owner.)"
+msgstr "(Er zijn geen speciale voorwaarden en aanwijzingen door de kanaal-eigenaar verstrekt) "
-#: ../../Zotlabs/Module/Setup.php:493
-msgid "OpenSSL PHP module"
-msgstr "OpenSSL PHP module"
+#: ../../Zotlabs/Module/Connect.php:114
+msgid "Restricted or Premium Channel"
+msgstr "Beperkt of premiumkanaal"
-#: ../../Zotlabs/Module/Setup.php:494
-msgid "mysqli or postgres PHP module"
-msgstr "mysqli or postgres PHP module"
+#: ../../Zotlabs/Module/Rbmark.php:94
+msgid "Select a bookmark folder"
+msgstr "Kies een bladwijzermap"
-#: ../../Zotlabs/Module/Setup.php:495
-msgid "mb_string PHP module"
-msgstr "mb_string PHP module"
+#: ../../Zotlabs/Module/Rbmark.php:99
+msgid "Save Bookmark"
+msgstr "Bladwijzer opslaan"
-#: ../../Zotlabs/Module/Setup.php:496
-msgid "mcrypt PHP module"
-msgstr "mcrypt PHP module"
+#: ../../Zotlabs/Module/Rbmark.php:100
+msgid "URL of bookmark"
+msgstr "URL van bladwijzer"
-#: ../../Zotlabs/Module/Setup.php:497
-msgid "xml PHP module"
-msgstr "xml PHP module"
+#: ../../Zotlabs/Module/Rbmark.php:105
+msgid "Or enter new bookmark folder name"
+msgstr "Of geef de naam op van een nieuwe bladwijzermap"
-#: ../../Zotlabs/Module/Setup.php:501 ../../Zotlabs/Module/Setup.php:503
-msgid "Apache mod_rewrite module"
-msgstr "Apache mod_rewrite module"
+#: ../../Zotlabs/Module/Rmagic.php:35
+msgid "Authentication failed."
+msgstr "Authenticatie mislukt."
+
+#: ../../Zotlabs/Module/Rmagic.php:75
+msgid "Remote Authentication"
+msgstr "Authenticatie op afstand"
+
+#: ../../Zotlabs/Module/Rmagic.php:76
+msgid "Enter your channel address (e.g. channel@example.com)"
+msgstr "Vul jouw kanaaladres in (bijv. channel@example.com)"
+
+#: ../../Zotlabs/Module/Rmagic.php:77
+msgid "Authenticate"
+msgstr "Authenticeren"
+
+#: ../../Zotlabs/Module/Regmod.php:15
+msgid "Please login."
+msgstr "Inloggen."
-#: ../../Zotlabs/Module/Setup.php:501
+#: ../../Zotlabs/Module/Removeaccount.php:35
msgid ""
-"Error: Apache webserver mod-rewrite module is required but not installed."
-msgstr "Error: Apache webserver mod-rewrite module is required but not installed."
+"Account removals are not allowed within 48 hours of changing the account "
+"password."
+msgstr "Het verwijderen van een account is niet toegestaan binnen 48 uur nadat het wachtwoord is veranderd."
-#: ../../Zotlabs/Module/Setup.php:507 ../../Zotlabs/Module/Setup.php:510
-msgid "proc_open"
-msgstr "proc_open"
+#: ../../Zotlabs/Module/Removeaccount.php:57
+msgid "Remove This Account"
+msgstr "Verwijder dit account"
-#: ../../Zotlabs/Module/Setup.php:507
+#: ../../Zotlabs/Module/Removeaccount.php:58
+#: ../../Zotlabs/Module/Removeme.php:61
+msgid "WARNING: "
+msgstr "WAARSCHUWING: "
+
+#: ../../Zotlabs/Module/Removeaccount.php:58
msgid ""
-"Error: proc_open is required but is either not installed or has been "
-"disabled in php.ini"
-msgstr "Error: proc_open is required but is either not installed or has been disabled in php.ini"
+"This account and all its channels will be completely removed from the "
+"network. "
+msgstr "Dit account en al zijn kanalen worden volledig uit het $Projectname-netwerk verwijderd."
-#: ../../Zotlabs/Module/Setup.php:515
-msgid "Error: libCURL PHP module required but not installed."
-msgstr "Error: libCURL PHP module required but not installed."
+#: ../../Zotlabs/Module/Removeaccount.php:58
+#: ../../Zotlabs/Module/Removeme.php:61
+msgid "This action is permanent and can not be undone!"
+msgstr "Deze handeling is van permanente aard en kan niet meer worden teruggedraaid!"
-#: ../../Zotlabs/Module/Setup.php:519
+#: ../../Zotlabs/Module/Removeaccount.php:59
+#: ../../Zotlabs/Module/Removeme.php:62
+msgid "Please enter your password for verification:"
+msgstr "Vul je wachtwoord in ter verificatie:"
+
+#: ../../Zotlabs/Module/Removeaccount.php:60
msgid ""
-"Error: GD graphics PHP module with JPEG support required but not installed."
-msgstr "Error: GD graphics PHP module with JPEG support required but not installed."
+"Remove this account, all its channels and all its channel clones from the "
+"network"
+msgstr "Dit account, al zijn kanalen en alle klonen van zijn kanalen uit het $Projectname-netwerk verwijderen"
-#: ../../Zotlabs/Module/Setup.php:523
-msgid "Error: openssl PHP module required but not installed."
-msgstr "Error: openssl PHP module required but not installed."
+#: ../../Zotlabs/Module/Removeaccount.php:60
+msgid ""
+"By default only the instances of the channels located on this hub will be "
+"removed from the network"
+msgstr "Standaard worden alleen de kanalen die zich op deze hub bevinden uit het $Projectname-netwerk verwijderd"
-#: ../../Zotlabs/Module/Setup.php:527
+#: ../../Zotlabs/Module/Removeme.php:35
msgid ""
-"Error: mysqli or postgres PHP module required but neither are installed."
-msgstr "Error: mysqli or postgres PHP module required but neither are installed."
+"Channel removals are not allowed within 48 hours of changing the account "
+"password."
+msgstr "Het verwijderen van een kanaal is niet toegestaan binnen 48 uur nadat het wachtwoord van het account is veranderd."
-#: ../../Zotlabs/Module/Setup.php:531
-msgid "Error: mb_string PHP module required but not installed."
-msgstr "Error: mb_string PHP module required but not installed."
+#: ../../Zotlabs/Module/Removeme.php:60
+msgid "Remove This Channel"
+msgstr "Verwijder dit kanaal"
-#: ../../Zotlabs/Module/Setup.php:535
-msgid "Error: mcrypt PHP module required but not installed."
-msgstr "Error: mcrypt PHP module required but not installed."
+#: ../../Zotlabs/Module/Removeme.php:61
+msgid "This channel will be completely removed from the network. "
+msgstr "Dit kanaal wordt volledig uit het $Projectname-netwerk verwijderd."
-#: ../../Zotlabs/Module/Setup.php:539
-msgid "Error: xml PHP module required for DAV but not installed."
-msgstr "Error: xml PHP module required for DAV but not installed."
+#: ../../Zotlabs/Module/Removeme.php:63
+msgid "Remove this channel and all its clones from the network"
+msgstr "Dit kanaal en alle klonen hiervan uit het $Projectname-netwerk verwijderen"
-#: ../../Zotlabs/Module/Setup.php:557
+#: ../../Zotlabs/Module/Removeme.php:63
msgid ""
-"The web installer needs to be able to create a file called \".htconfig.php\""
-" in the top folder of your web server and it is unable to do so."
-msgstr "The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."
+"By default only the instance of the channel located on this hub will be "
+"removed from the network"
+msgstr "Standaard wordt alleen het kanaal dat zich op deze hub bevindt uit het $Projectname-netwerk verwijderd"
-#: ../../Zotlabs/Module/Setup.php:558
-msgid ""
-"This is most often a permission setting, as the web server may not be able "
-"to write files in your folder - even if you can."
-msgstr "This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."
+#: ../../Zotlabs/Module/Uexport.php:55 ../../Zotlabs/Module/Uexport.php:56
+msgid "Export Channel"
+msgstr "Kanaal exporteren"
-#: ../../Zotlabs/Module/Setup.php:559
+#: ../../Zotlabs/Module/Uexport.php:57
msgid ""
-"At the end of this procedure, we will give you a text to save in a file "
-"named .htconfig.php in your Red top folder."
-msgstr "At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."
+"Export your basic channel information to a file. This acts as a backup of "
+"your connections, permissions, profile and basic data, which can be used to "
+"import your data to a new server hub, but does not contain your content."
+msgstr "Exporteer de basisinformatie van jouw kanaal naar een bestand. Dit fungeert als een back-up van jouw connecties, permissies, profiel en basisgegevens, die gebruikt kan worden om op een nieuwe hub jouw gegevens te importeren. Deze back-up bevat echter niet de inhoud van jouw kanaal."
-#: ../../Zotlabs/Module/Setup.php:560
+#: ../../Zotlabs/Module/Uexport.php:58
+msgid "Export Content"
+msgstr "Inhoud exporteren"
+
+#: ../../Zotlabs/Module/Uexport.php:59
msgid ""
-"You can alternatively skip this procedure and perform a manual installation."
-" Please see the file \"install/INSTALL.txt\" for instructions."
-msgstr "You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."
+"Export your channel information and recent content to a JSON backup that can"
+" be restored or imported to another server hub. This backs up all of your "
+"connections, permissions, profile data and several months of posts. This "
+"file may be VERY large. Please be patient - it may take several minutes for"
+" this download to begin."
+msgstr "Exporteer informatie en recente inhoud van jouw kanaal naar een JSON-back-up, wat kan worden gebruikt om jouw kanaal te herstellen of te importeren op een andere hub. Dit slaat al jouw connecties, permissies, profielgegevens en enkele maanden aan inhoud van jouw kanaal op. Dit bestand kan ZEER groot worden. Wees geduldig - het kan enkele minuten duren voordat de download begint."
-#: ../../Zotlabs/Module/Setup.php:563
-msgid ".htconfig.php is writable"
-msgstr ".htconfig.php is writable"
+#: ../../Zotlabs/Module/Uexport.php:60
+msgid "Export your posts from a given year."
+msgstr "Exporteer jouw berichten uit een bepaald jaar."
-#: ../../Zotlabs/Module/Setup.php:577
+#: ../../Zotlabs/Module/Uexport.php:62
msgid ""
-"Red uses the Smarty3 template engine to render its web views. Smarty3 "
-"compiles templates to PHP to speed up rendering."
-msgstr "Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."
+"You may also export your posts and conversations for a particular year or "
+"month. Adjust the date in your browser location bar to select other dates. "
+"If the export fails (possibly due to memory exhaustion on your server hub), "
+"please try again selecting a more limited date range."
+msgstr "Je kan ook berichten en conversaties uit een bepaald jaar of van een bepaalde maand exporteren. Verander de datum in de adresbalk van jouw webbrowser om andere jaren en maanden te selecteren. Wanneer het exporteren mislukt (waarschijnlijk door een gebrek aan beschikbaar servergeheugen), probeer het dan nogmaals met een beperkter tijdvak."
-#: ../../Zotlabs/Module/Setup.php:578
+#: ../../Zotlabs/Module/Uexport.php:63
#, php-format
msgid ""
-"In order to store these compiled templates, the web server needs to have "
-"write access to the directory %s under the top level web folder."
-msgstr "In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder."
+"To select all posts for a given year, such as this year, visit <a "
+"href=\"%1$s\">%2$s</a>"
+msgstr "Bezoek <a href=\"%1$s\">%2$s</a> om alle berichten van bijvoorbeeld dit jaar te selecteren. "
-#: ../../Zotlabs/Module/Setup.php:579 ../../Zotlabs/Module/Setup.php:600
+#: ../../Zotlabs/Module/Uexport.php:64
+#, php-format
msgid ""
-"Please ensure that the user that your web server runs as (e.g. www-data) has"
-" write access to this folder."
-msgstr "Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."
+"To select all posts for a given month, such as January of this year, visit "
+"<a href=\"%1$s\">%2$s</a>"
+msgstr "Bezoek <a href=\"%1$s\">%2$s</a> om alle berichten van bijvoorbeeld januari dit jaar te selecteren."
-#: ../../Zotlabs/Module/Setup.php:580
+#: ../../Zotlabs/Module/Uexport.php:65
#, php-format
msgid ""
-"Note: as a security measure, you should give the web server write access to "
-"%s only--not the template files (.tpl) that it contains."
-msgstr "Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."
+"These content files may be imported or restored by visiting <a "
+"href=\"%1$s\">%2$s</a> on any site containing your channel. For best results"
+" please import or restore these in date order (oldest first)."
+msgstr "Deze back-up-bestanden kunnen geïmporteerd of hersteld worden door op jouw hub en met jouw kanaal <a href=\"%1$s\">%2$s</a> te bezoeken. Voor het beste resultaat kan je de bestanden in chronologische volgorde importeren of herstellen."
-#: ../../Zotlabs/Module/Setup.php:583
+#: ../../Zotlabs/Module/Editpost.php:35
+msgid "Item is not editable"
+msgstr "Item is niet te bewerken"
+
+#: ../../Zotlabs/Module/Editpost.php:106 ../../Zotlabs/Module/Rpost.php:138
+msgid "Edit post"
+msgstr "Bericht bewerken"
+
+#: ../../Zotlabs/Module/Search.php:216
#, php-format
-msgid "%s is writable"
-msgstr "%s is writable"
+msgid "Items tagged with: %s"
+msgstr "Items getagd met %s"
-#: ../../Zotlabs/Module/Setup.php:599
-msgid ""
-"Red uses the store directory to save uploaded files. The web server needs to"
-" have write access to the store directory under the Red top level folder"
-msgstr "Red uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder"
+#: ../../Zotlabs/Module/Search.php:218
+#, php-format
+msgid "Search results for: %s"
+msgstr "Zoekresultaten voor %s"
-#: ../../Zotlabs/Module/Setup.php:603
-msgid "store is writable"
-msgstr "store is writable"
+#: ../../Zotlabs/Module/Service_limits.php:23
+msgid "No service class restrictions found."
+msgstr "Geen abonnementsbeperkingen gevonden."
-#: ../../Zotlabs/Module/Setup.php:636
-msgid ""
-"SSL certificate cannot be validated. Fix certificate or disable https access"
-" to this site."
-msgstr "SSL certificate cannot be validated. Fix certificate or disable https access to this hub."
+#: ../../Zotlabs/Module/Thing.php:114
+msgid "Thing updated"
+msgstr "Ding bijgewerkt"
-#: ../../Zotlabs/Module/Setup.php:637
-msgid ""
-"If you have https access to your website or allow connections to TCP port "
-"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
-"NOT use self-signed certificates!"
-msgstr "If you have https access to your hub or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"
+#: ../../Zotlabs/Module/Thing.php:166
+msgid "Object store: failed"
+msgstr "Opslaan van ding mislukt"
-#: ../../Zotlabs/Module/Setup.php:638
-msgid ""
-"This restriction is incorporated because public posts from you may for "
-"example contain references to images on your own hub."
-msgstr "This restriction is incorporated because public posts from you may for example contain references to images on your own hub."
+#: ../../Zotlabs/Module/Thing.php:170
+msgid "Thing added"
+msgstr "Ding toegevoegd"
-#: ../../Zotlabs/Module/Setup.php:639
-msgid ""
-"If your certificate is not recognized, members of other sites (who may "
-"themselves have valid certificates) will get a warning message on their own "
-"site complaining about security issues."
-msgstr "If your certificate is not recognized, members of other hubs (who may themselves have valid certificates) will get a warning message on their own hub complaining about security issues."
+#: ../../Zotlabs/Module/Thing.php:196
+#, php-format
+msgid "OBJ: %1$s %2$s %3$s"
+msgstr "OBJ: %1$s %2$s %3$s"
-#: ../../Zotlabs/Module/Setup.php:640
-msgid ""
-"This can cause usability issues elsewhere (not just on your own site) so we "
-"must insist on this requirement."
-msgstr "This can cause usability issues elsewhere (not just on your own hub) so we must insist on this requirement."
+#: ../../Zotlabs/Module/Thing.php:259
+msgid "Show Thing"
+msgstr "Ding weergeven"
-#: ../../Zotlabs/Module/Setup.php:641
-msgid ""
-"Providers are available that issue free certificates which are browser-"
-"valid."
-msgstr "Providers are available that issue free certificates which are browser-valid."
+#: ../../Zotlabs/Module/Thing.php:266
+msgid "item not found."
+msgstr "Item niet gevonden"
-#: ../../Zotlabs/Module/Setup.php:643
-msgid "SSL certificate validation"
-msgstr "SSL certificate validation"
+#: ../../Zotlabs/Module/Thing.php:299
+msgid "Edit Thing"
+msgstr "Ding bewerken"
-#: ../../Zotlabs/Module/Setup.php:649
-msgid ""
-"Url rewrite in .htaccess is not working. Check your server "
-"configuration.Test: "
-msgstr "Url rewrite in .htaccess is not working. Check your server configuration.Test: "
+#: ../../Zotlabs/Module/Thing.php:301 ../../Zotlabs/Module/Thing.php:355
+msgid "Select a profile"
+msgstr "Kies een profiel"
-#: ../../Zotlabs/Module/Setup.php:652
-msgid "Url rewrite is working"
-msgstr "Url rewrite is working"
+#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358
+msgid "Post an activity"
+msgstr "Plaats een bericht"
-#: ../../Zotlabs/Module/Setup.php:661
-msgid ""
-"The database configuration file \".htconfig.php\" could not be written. "
-"Please use the enclosed text to create a configuration file in your web "
-"server root."
-msgstr "The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."
+#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358
+msgid "Only sends to viewers of the applicable profile"
+msgstr "Toont dit alleen aan diegene die het gekozen profiel mogen zien."
-#: ../../Zotlabs/Module/Setup.php:685
-msgid "Errors encountered creating database tables."
-msgstr "Errors encountered creating database tables."
+#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:360
+msgid "Name of thing e.g. something"
+msgstr "Naam van ding"
-#: ../../Zotlabs/Module/Setup.php:719
-msgid "<h1>What next</h1>"
-msgstr "<h1>What next</h1>"
+#: ../../Zotlabs/Module/Thing.php:309 ../../Zotlabs/Module/Thing.php:361
+msgid "URL of thing (optional)"
+msgstr "URL van ding (optioneel)"
-#: ../../Zotlabs/Module/Setup.php:720
-msgid ""
-"IMPORTANT: You will need to [manually] setup a scheduled task for the "
-"poller."
-msgstr "IMPORTANT: You will need to [manually] setup a scheduled task for the poller."
+#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:362
+msgid "URL for photo of thing (optional)"
+msgstr "URL voor foto van ding (optioneel)"
+
+#: ../../Zotlabs/Module/Thing.php:353
+msgid "Add Thing to your Profile"
+msgstr "Ding aan je profiel toevoegen"
+
+#: ../../Zotlabs/Module/Item.php:180
+msgid "Unable to locate original post."
+msgstr "Niet in staat om de originele locatie van het bericht te vinden. "
+
+#: ../../Zotlabs/Module/Item.php:433
+msgid "Empty post discarded."
+msgstr "Leeg bericht geannuleerd"
+
+#: ../../Zotlabs/Module/Item.php:473
+msgid "Executable content type not permitted to this channel."
+msgstr "Uitvoerbare bestanden zijn niet toegestaan op dit kanaal."
+
+#: ../../Zotlabs/Module/Item.php:858
+msgid "Duplicate post suppressed."
+msgstr "Dubbel bericht tegengehouden."
+
+#: ../../Zotlabs/Module/Item.php:991
+msgid "System error. Post not saved."
+msgstr "Systeemfout. Bericht niet opgeslagen."
+
+#: ../../Zotlabs/Module/Item.php:1112
+msgid "Unable to obtain post information from database."
+msgstr "Niet in staat om informatie over dit bericht uit de database te verkrijgen."
+
+#: ../../Zotlabs/Module/Item.php:1119
+#, php-format
+msgid "You have reached your limit of %1$.0f top level posts."
+msgstr "Je hebt jouw limiet van %1$.0f berichten bereikt."
+
+#: ../../Zotlabs/Module/Item.php:1126
+#, php-format
+msgid "You have reached your limit of %1$.0f webpages."
+msgstr "Je hebt jouw limiet van %1$.0f webpagina's bereikt."
#: ../../Zotlabs/Module/Sharedwithme.php:98
msgid "Files: shared with me"
@@ -5928,64 +6224,82 @@ msgstr "Verwijder alle bestanden"
msgid "Remove this file"
msgstr "Verwijder dit bestand"
-#: ../../Zotlabs/Module/Siteinfo.php:19
-#, php-format
-msgid "Version %s"
-msgstr "Versie %s"
+#: ../../Zotlabs/Module/Wiki.php:34
+msgid "Not found"
+msgstr "Niet gevonden"
-#: ../../Zotlabs/Module/Siteinfo.php:40
-msgid "Installed plugins/addons/apps:"
-msgstr "Ingeschakelde plugins en apps:"
+#: ../../Zotlabs/Module/Wiki.php:97 ../../Zotlabs/Lib/Apps.php:219
+#: ../../include/conversation.php:1728 ../../include/conversation.php:1731
+#: ../../include/features.php:57 ../../include/nav.php:110
+msgid "Wiki"
+msgstr "Wiki"
-#: ../../Zotlabs/Module/Siteinfo.php:53
-msgid "No installed plugins/addons/apps"
-msgstr "Geen ingeschakelde plugins en apps"
+#: ../../Zotlabs/Module/Wiki.php:98
+msgid "Sandbox"
+msgstr "Zandbak"
-#: ../../Zotlabs/Module/Siteinfo.php:66
+#: ../../Zotlabs/Module/Wiki.php:100
msgid ""
-"This is a hub of $Projectname - a global cooperative network of "
-"decentralized privacy enhanced websites."
-msgstr "Dit is een $Projectname-hub - $Projectname is een wereldwijd coöperatief netwerk van gedecentraliseerde websites (hubs) met verbeterde privacy."
+"\"# Wiki Sandbox\\n\\nContent you **edit** and **preview** here *will not be"
+" saved*.\""
+msgstr "\"# Wiki Sandbox\\n\\nWat er hier onder **edit** en **preview** staat *wordt niet opgeslagen*.\""
-#: ../../Zotlabs/Module/Siteinfo.php:68
-msgid "Tag: "
-msgstr "Tag: "
+#: ../../Zotlabs/Module/Wiki.php:169
+msgid "Revision Comparison"
+msgstr "Revisies vergelijken"
-#: ../../Zotlabs/Module/Siteinfo.php:70
-msgid "Last background fetch: "
-msgstr "Meest recente achtergrond-fetch:"
+#: ../../Zotlabs/Module/Wiki.php:170
+msgid "Revert"
+msgstr "Ongedaan maken"
-#: ../../Zotlabs/Module/Siteinfo.php:72
-msgid "Current load average: "
-msgstr "Gemiddelde systeembelasting is nu:"
+#: ../../Zotlabs/Module/Wiki.php:201
+msgid "Enter the name of your new wiki:"
+msgstr "Vul de naam in van jouw nieuwe wiki:"
-#: ../../Zotlabs/Module/Siteinfo.php:75
-msgid "Running at web location"
-msgstr "Draaiend op weblocatie"
+#: ../../Zotlabs/Module/Wiki.php:202
+msgid "Enter the name of the new page:"
+msgstr "Vul de naam in van de nieuwe pagina:"
-#: ../../Zotlabs/Module/Siteinfo.php:76
-msgid ""
-"Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more "
-"about $Projectname."
-msgstr "Bezoek <a href=\"http://hubzilla.org\">hubzilla.org</a> "
+#: ../../Zotlabs/Module/Wiki.php:203
+msgid "Enter the new name:"
+msgstr "Vul de nieuwe naam in:"
-#: ../../Zotlabs/Module/Siteinfo.php:77
-msgid "Bug reports and issues: please visit"
-msgstr "Bugrapporten en andere kwesties: bezoek"
+#: ../../Zotlabs/Module/Wiki.php:209 ../../include/conversation.php:1152
+msgid "Embed image from photo albums"
+msgstr "Afbeelding uit een fotoalbum invoegen"
-#: ../../Zotlabs/Module/Siteinfo.php:79
-msgid "$projectname issues"
-msgstr "$projectname-issues"
+#: ../../Zotlabs/Module/Wiki.php:210 ../../include/conversation.php:1242
+msgid "Embed an image from your albums"
+msgstr "Afbeelding uit jouw albums invoegen"
-#: ../../Zotlabs/Module/Siteinfo.php:80
-msgid ""
-"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot "
-"com"
-msgstr "Voorstellen, lofbetuigingen, enz. - e-mail \"redmatrix\" at librelist - dot com"
+#: ../../Zotlabs/Module/Wiki.php:212 ../../include/conversation.php:1244
+#: ../../include/conversation.php:1291
+msgid "OK"
+msgstr "OK"
-#: ../../Zotlabs/Module/Siteinfo.php:82
-msgid "Site Administrators"
-msgstr "Hubbeheerders: "
+#: ../../Zotlabs/Module/Wiki.php:213 ../../include/conversation.php:1188
+msgid "Choose images to embed"
+msgstr "Kies afbeeldingen om in te voegen"
+
+#: ../../Zotlabs/Module/Wiki.php:214 ../../include/conversation.php:1189
+msgid "Choose an album"
+msgstr "Kies een album"
+
+#: ../../Zotlabs/Module/Wiki.php:215 ../../include/conversation.php:1190
+msgid "Choose a different album..."
+msgstr "Kies een ander album..."
+
+#: ../../Zotlabs/Module/Wiki.php:216 ../../include/conversation.php:1191
+msgid "Error getting album list"
+msgstr "Fout met ophalen albumlijst"
+
+#: ../../Zotlabs/Module/Wiki.php:217 ../../include/conversation.php:1192
+msgid "Error getting photo link"
+msgstr "Fout met ophalen fotolink"
+
+#: ../../Zotlabs/Module/Wiki.php:218 ../../include/conversation.php:1193
+msgid "Error getting album"
+msgstr "Fout met ophalen album"
#: ../../Zotlabs/Module/Sources.php:37
msgid "Failed to create source. No channel selected."
@@ -6003,7 +6317,7 @@ msgstr "Bron aangemaakt."
msgid "*"
msgstr "*"
-#: ../../Zotlabs/Module/Sources.php:96 ../../include/widgets.php:630
+#: ../../Zotlabs/Module/Sources.php:96 ../../include/widgets.php:639
#: ../../include/features.php:71
msgid "Channel Sources"
msgstr "Kanaalbronnen"
@@ -6080,11 +6394,11 @@ msgstr "Geen voorgestelde kanalen gevonden. Wanneer dit een nieuwe hub is, probe
msgid "Ignore/Hide"
msgstr "Negeren/Verbergen"
-#: ../../Zotlabs/Module/Tagger.php:55 ../../include/bbcode.php:256
+#: ../../Zotlabs/Module/Tagger.php:55 ../../include/bbcode.php:263
msgid "post"
msgstr "bericht"
-#: ../../Zotlabs/Module/Tagger.php:57 ../../include/text.php:1948
+#: ../../Zotlabs/Module/Tagger.php:57 ../../include/text.php:1953
#: ../../include/conversation.php:150
msgid "comment"
msgstr "reactie"
@@ -6106,131 +6420,20 @@ msgstr "Verwijder item-tag"
msgid "Select a tag to remove: "
msgstr "Kies een tag om te verwijderen"
-#: ../../Zotlabs/Module/Thing.php:114
-msgid "Thing updated"
-msgstr "Ding bijgewerkt"
-
-#: ../../Zotlabs/Module/Thing.php:166
-msgid "Object store: failed"
-msgstr "Opslaan van ding mislukt"
-
-#: ../../Zotlabs/Module/Thing.php:170
-msgid "Thing added"
-msgstr "Ding toegevoegd"
-
-#: ../../Zotlabs/Module/Thing.php:196
-#, php-format
-msgid "OBJ: %1$s %2$s %3$s"
-msgstr "OBJ: %1$s %2$s %3$s"
-
-#: ../../Zotlabs/Module/Thing.php:259
-msgid "Show Thing"
-msgstr "Ding weergeven"
-
-#: ../../Zotlabs/Module/Thing.php:266
-msgid "item not found."
-msgstr "Item niet gevonden"
-
-#: ../../Zotlabs/Module/Thing.php:299
-msgid "Edit Thing"
-msgstr "Ding bewerken"
-
-#: ../../Zotlabs/Module/Thing.php:301 ../../Zotlabs/Module/Thing.php:351
-msgid "Select a profile"
-msgstr "Kies een profiel"
-
-#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:354
-msgid "Post an activity"
-msgstr "Plaats een bericht"
-
-#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:354
-msgid "Only sends to viewers of the applicable profile"
-msgstr "Toont dit alleen aan diegene die het gekozen profiel mogen zien."
-
-#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:356
-msgid "Name of thing e.g. something"
-msgstr "Naam van ding"
-
-#: ../../Zotlabs/Module/Thing.php:309 ../../Zotlabs/Module/Thing.php:357
-msgid "URL of thing (optional)"
-msgstr "URL van ding (optioneel)"
-
-#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:358
-msgid "URL for photo of thing (optional)"
-msgstr "URL voor foto van ding (optioneel)"
-
-#: ../../Zotlabs/Module/Thing.php:349
-msgid "Add Thing to your Profile"
-msgstr "Ding aan je profiel toevoegen"
-
-#: ../../Zotlabs/Module/Uexport.php:55 ../../Zotlabs/Module/Uexport.php:56
-msgid "Export Channel"
-msgstr "Kanaal exporteren"
-
-#: ../../Zotlabs/Module/Uexport.php:57
-msgid ""
-"Export your basic channel information to a file. This acts as a backup of "
-"your connections, permissions, profile and basic data, which can be used to "
-"import your data to a new server hub, but does not contain your content."
-msgstr "Exporteer de basisinformatie van jouw kanaal naar een bestand. Dit fungeert als een back-up van jouw connecties, permissies, profiel en basisgegevens, die gebruikt kan worden om op een nieuwe hub jouw gegevens te importeren. Deze back-up bevat echter niet de inhoud van jouw kanaal."
-
-#: ../../Zotlabs/Module/Uexport.php:58
-msgid "Export Content"
-msgstr "Inhoud exporteren"
-
-#: ../../Zotlabs/Module/Uexport.php:59
-msgid ""
-"Export your channel information and recent content to a JSON backup that can"
-" be restored or imported to another server hub. This backs up all of your "
-"connections, permissions, profile data and several months of posts. This "
-"file may be VERY large. Please be patient - it may take several minutes for"
-" this download to begin."
-msgstr "Exporteer informatie en recente inhoud van jouw kanaal naar een JSON-back-up, wat kan worden gebruikt om jouw kanaal te herstellen of te importeren op een andere hub. Dit slaat al jouw connecties, permissies, profielgegevens en enkele maanden aan inhoud van jouw kanaal op. Dit bestand kan ZEER groot worden. Wees geduldig - het kan enkele minuten duren voordat de download begint."
-
-#: ../../Zotlabs/Module/Uexport.php:60
-msgid "Export your posts from a given year."
-msgstr "Exporteer jouw berichten uit een bepaald jaar."
-
-#: ../../Zotlabs/Module/Uexport.php:62
-msgid ""
-"You may also export your posts and conversations for a particular year or "
-"month. Adjust the date in your browser location bar to select other dates. "
-"If the export fails (possibly due to memory exhaustion on your server hub), "
-"please try again selecting a more limited date range."
-msgstr "Je kan ook berichten en conversaties uit een bepaald jaar of van een bepaalde maand exporteren. Verander de datum in de adresbalk van jouw webbrowser om andere jaren en maanden te selecteren. Wanneer het exporteren mislukt (waarschijnlijk door een gebrek aan beschikbaar servergeheugen), probeer het dan nogmaals met een beperkter tijdvak."
-
-#: ../../Zotlabs/Module/Uexport.php:63
-#, php-format
-msgid ""
-"To select all posts for a given year, such as this year, visit <a "
-"href=\"%1$s\">%2$s</a>"
-msgstr "Bezoek <a href=\"%1$s\">%2$s</a> om alle berichten van bijvoorbeeld dit jaar te selecteren. "
-
-#: ../../Zotlabs/Module/Uexport.php:64
-#, php-format
-msgid ""
-"To select all posts for a given month, such as January of this year, visit "
-"<a href=\"%1$s\">%2$s</a>"
-msgstr "Bezoek <a href=\"%1$s\">%2$s</a> om alle berichten van bijvoorbeeld januari dit jaar te selecteren."
-
-#: ../../Zotlabs/Module/Uexport.php:65
-#, php-format
-msgid ""
-"These content files may be imported or restored by visiting <a "
-"href=\"%1$s\">%2$s</a> on any site containing your channel. For best results"
-" please import or restore these in date order (oldest first)."
-msgstr "Deze back-up-bestanden kunnen geïmporteerd of hersteld worden door op jouw hub en met jouw kanaal <a href=\"%1$s\">%2$s</a> te bezoeken. Voor het beste resultaat kan je de bestanden in chronologische volgorde importeren of herstellen."
+#: ../../Zotlabs/Module/Follow.php:34
+msgid "Channel added."
+msgstr "Kanaal toegevoegd."
-#: ../../Zotlabs/Module/Viewconnections.php:62
+#: ../../Zotlabs/Module/Viewconnections.php:65
msgid "No connections."
msgstr "Geen connecties."
-#: ../../Zotlabs/Module/Viewconnections.php:75
+#: ../../Zotlabs/Module/Viewconnections.php:78
#, php-format
msgid "Visit %s's profile [%s]"
msgstr "Bezoek het profiel van %s [%s]"
-#: ../../Zotlabs/Module/Viewconnections.php:104
+#: ../../Zotlabs/Module/Viewconnections.php:107
msgid "View Connections"
msgstr "Connecties weergeven"
@@ -6238,116 +6441,70 @@ msgstr "Connecties weergeven"
msgid "Source of Item"
msgstr "Bron van item"
-#: ../../Zotlabs/Module/Webpages.php:184 ../../Zotlabs/Lib/Apps.php:217
-#: ../../include/nav.php:106 ../../include/conversation.php:1685
-msgid "Webpages"
-msgstr "Webpagina's"
-
-#: ../../Zotlabs/Module/Webpages.php:195 ../../include/page_widgets.php:41
-msgid "Actions"
-msgstr "Acties"
-
-#: ../../Zotlabs/Module/Webpages.php:196 ../../include/page_widgets.php:42
-msgid "Page Link"
-msgstr "Paginalink"
-
-#: ../../Zotlabs/Module/Webpages.php:197
-msgid "Page Title"
-msgstr "Paginatitel"
-
-#: ../../Zotlabs/Module/Xchan.php:10
-msgid "Xchan Lookup"
-msgstr "Xchan opzoeken"
-
-#: ../../Zotlabs/Module/Xchan.php:13
-msgid "Lookup xchan beginning with (or webbie): "
-msgstr "Zoek een xchan (of webbie) die begint met:"
-
-#: ../../Zotlabs/Lib/Apps.php:204
-msgid "Site Admin"
-msgstr "Hubbeheerder"
-
-#: ../../Zotlabs/Lib/Apps.php:205
-msgid "Bug Report"
-msgstr "Bugrapport"
-
-#: ../../Zotlabs/Lib/Apps.php:206
-msgid "View Bookmarks"
-msgstr "Bladwijzers bekijken"
-
-#: ../../Zotlabs/Lib/Apps.php:207
-msgid "My Chatrooms"
-msgstr "Mijn chatkanalen"
-
-#: ../../Zotlabs/Lib/Apps.php:209
-msgid "Firefox Share"
-msgstr "Firefox Share"
-
-#: ../../Zotlabs/Lib/Apps.php:210
-msgid "Remote Diagnostics"
-msgstr "Diagnose op afstand"
+#: ../../Zotlabs/Module/Chat.php:181
+msgid "Room not found"
+msgstr "Chatkanaal niet gevonden"
-#: ../../Zotlabs/Lib/Apps.php:211 ../../include/features.php:89
-msgid "Suggest Channels"
-msgstr "Kanalen voorstellen"
+#: ../../Zotlabs/Module/Chat.php:197
+msgid "Leave Room"
+msgstr "Chatkanaal verlaten"
-#: ../../Zotlabs/Lib/Apps.php:212 ../../include/nav.php:110
-#: ../../boot.php:1703
-msgid "Login"
-msgstr "Inloggen"
+#: ../../Zotlabs/Module/Chat.php:198
+msgid "Delete Room"
+msgstr "Chatkanaal verwijderen"
-#: ../../Zotlabs/Lib/Apps.php:214 ../../include/nav.php:179
-msgid "Grid"
-msgstr "Grid"
+#: ../../Zotlabs/Module/Chat.php:199
+msgid "I am away right now"
+msgstr "Ik ben momenteel afwezig"
-#: ../../Zotlabs/Lib/Apps.php:218 ../../include/nav.php:182
-msgid "Channel Home"
-msgstr "Jouw kanaal"
+#: ../../Zotlabs/Module/Chat.php:200
+msgid "I am online"
+msgstr "Ik ben online"
-#: ../../Zotlabs/Lib/Apps.php:221 ../../include/nav.php:201
-#: ../../include/conversation.php:1649 ../../include/conversation.php:1652
-msgid "Events"
-msgstr "Agenda"
+#: ../../Zotlabs/Module/Chat.php:202
+msgid "Bookmark this room"
+msgstr "Chatkanaal aan bladwijzers toevoegen"
-#: ../../Zotlabs/Lib/Apps.php:222 ../../include/nav.php:167
-msgid "Directory"
-msgstr "Kanalengids"
+#: ../../Zotlabs/Module/Chat.php:218
+msgid "Feature disabled."
+msgstr "Functie uitgeschakeld."
-#: ../../Zotlabs/Lib/Apps.php:224 ../../include/nav.php:193
-msgid "Mail"
-msgstr "Privéberichten"
+#: ../../Zotlabs/Module/Chat.php:231
+msgid "New Chatroom"
+msgstr "Nieuw chatkanaal"
-#: ../../Zotlabs/Lib/Apps.php:227 ../../include/nav.php:96
-msgid "Chat"
-msgstr "Chatten"
+#: ../../Zotlabs/Module/Chat.php:232
+msgid "Chatroom name"
+msgstr "Naam chatkanaal"
-#: ../../Zotlabs/Lib/Apps.php:229
-msgid "Probe"
-msgstr "Onderzoeken"
+#: ../../Zotlabs/Module/Chat.php:233
+msgid "Expiration of chats (minutes)"
+msgstr "Aantal minuten voordat chatberichten worden verwijderd"
-#: ../../Zotlabs/Lib/Apps.php:230
-msgid "Suggest"
-msgstr "Voorstellen"
+#: ../../Zotlabs/Module/Chat.php:249
+#, php-format
+msgid "%1$s's Chatrooms"
+msgstr "Chatkanalen van %1$s"
-#: ../../Zotlabs/Lib/Apps.php:231
-msgid "Random Channel"
-msgstr "Willekeurig kanaal"
+#: ../../Zotlabs/Module/Chat.php:254
+msgid "No chatrooms available"
+msgstr "Geen chatkanalen beschikbaar"
-#: ../../Zotlabs/Lib/Apps.php:232
-msgid "Invite"
-msgstr "Uitnodigen "
+#: ../../Zotlabs/Module/Chat.php:258
+msgid "Expiration"
+msgstr "Verloopt na"
-#: ../../Zotlabs/Lib/Apps.php:233 ../../include/widgets.php:1386
-msgid "Features"
-msgstr "Extra functies"
+#: ../../Zotlabs/Module/Chat.php:259
+msgid "min"
+msgstr "min"
-#: ../../Zotlabs/Lib/Apps.php:235
-msgid "Post"
-msgstr "Bericht"
+#: ../../Zotlabs/Module/Xchan.php:10
+msgid "Xchan Lookup"
+msgstr "Xchan opzoeken"
-#: ../../Zotlabs/Lib/Apps.php:335
-msgid "Purchase"
-msgstr "Aanschaffen"
+#: ../../Zotlabs/Module/Xchan.php:13
+msgid "Lookup xchan beginning with (or webbie): "
+msgstr "Zoek een xchan (of webbie) die begint met:"
#: ../../Zotlabs/Lib/Chatroom.php:27
msgid "Missing room name"
@@ -6369,19 +6526,19 @@ msgstr "Chatkanaal niet gevonden"
msgid "Room is full"
msgstr "Chatkanaal is vol"
-#: ../../Zotlabs/Lib/Enotify.php:60 ../../include/network.php:1823
+#: ../../Zotlabs/Lib/Enotify.php:60 ../../include/network.php:1887
msgid "$Projectname Notification"
msgstr "$Projectname-notificatie"
-#: ../../Zotlabs/Lib/Enotify.php:61 ../../include/network.php:1824
+#: ../../Zotlabs/Lib/Enotify.php:61 ../../include/network.php:1888
msgid "$projectname"
msgstr "$projectname"
-#: ../../Zotlabs/Lib/Enotify.php:63 ../../include/network.php:1826
+#: ../../Zotlabs/Lib/Enotify.php:63 ../../include/network.php:1890
msgid "Thank You,"
msgstr "Bedankt,"
-#: ../../Zotlabs/Lib/Enotify.php:65 ../../include/network.php:1828
+#: ../../Zotlabs/Lib/Enotify.php:65 ../../include/network.php:1892
#, php-format
msgid "%s Administrator"
msgstr "Beheerder %s"
@@ -6574,11 +6731,168 @@ msgstr "maakte een nieuw bericht aan"
msgid "commented on %s's post"
msgstr "gaf een reactie op een bericht van %s"
-#: ../../Zotlabs/Lib/ThreadItem.php:95 ../../include/conversation.php:664
+#: ../../Zotlabs/Lib/Apps.php:205
+msgid "Site Admin"
+msgstr "Hubbeheerder"
+
+#: ../../Zotlabs/Lib/Apps.php:206
+msgid "Bug Report"
+msgstr "Bugrapport"
+
+#: ../../Zotlabs/Lib/Apps.php:207
+msgid "View Bookmarks"
+msgstr "Bladwijzers bekijken"
+
+#: ../../Zotlabs/Lib/Apps.php:208
+msgid "My Chatrooms"
+msgstr "Mijn chatkanalen"
+
+#: ../../Zotlabs/Lib/Apps.php:210
+msgid "Firefox Share"
+msgstr "Firefox Share"
+
+#: ../../Zotlabs/Lib/Apps.php:211
+msgid "Remote Diagnostics"
+msgstr "Diagnose op afstand"
+
+#: ../../Zotlabs/Lib/Apps.php:212 ../../include/features.php:90
+msgid "Suggest Channels"
+msgstr "Kanalen voorstellen"
+
+#: ../../Zotlabs/Lib/Apps.php:213 ../../include/nav.php:114
+#: ../../boot.php:1738
+msgid "Login"
+msgstr "Inloggen"
+
+#: ../../Zotlabs/Lib/Apps.php:215 ../../include/nav.php:183
+msgid "Grid"
+msgstr "Grid"
+
+#: ../../Zotlabs/Lib/Apps.php:220 ../../include/nav.php:186
+msgid "Channel Home"
+msgstr "Jouw kanaal"
+
+#: ../../Zotlabs/Lib/Apps.php:223 ../../include/conversation.php:1682
+#: ../../include/conversation.php:1685 ../../include/nav.php:205
+msgid "Events"
+msgstr "Agenda"
+
+#: ../../Zotlabs/Lib/Apps.php:224 ../../include/nav.php:171
+msgid "Directory"
+msgstr "Kanalengids"
+
+#: ../../Zotlabs/Lib/Apps.php:226 ../../include/nav.php:197
+msgid "Mail"
+msgstr "Privéberichten"
+
+#: ../../Zotlabs/Lib/Apps.php:229 ../../include/nav.php:98
+msgid "Chat"
+msgstr "Chatten"
+
+#: ../../Zotlabs/Lib/Apps.php:231
+msgid "Probe"
+msgstr "Onderzoeken"
+
+#: ../../Zotlabs/Lib/Apps.php:232
+msgid "Suggest"
+msgstr "Voorstellen"
+
+#: ../../Zotlabs/Lib/Apps.php:233
+msgid "Random Channel"
+msgstr "Willekeurig kanaal"
+
+#: ../../Zotlabs/Lib/Apps.php:234
+msgid "Invite"
+msgstr "Uitnodigen "
+
+#: ../../Zotlabs/Lib/Apps.php:235 ../../include/widgets.php:1494
+msgid "Features"
+msgstr "Extra functies"
+
+#: ../../Zotlabs/Lib/Apps.php:236
+msgid "Language"
+msgstr "Taal"
+
+#: ../../Zotlabs/Lib/Apps.php:237
+msgid "Post"
+msgstr "Bericht"
+
+#: ../../Zotlabs/Lib/Apps.php:238
+msgid "Profile Photo"
+msgstr "Profielfoto"
+
+#: ../../Zotlabs/Lib/Apps.php:339
+msgid "Purchase"
+msgstr "Aanschaffen"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:31
+#: ../../include/acl_selectors.php:124
+msgid "Visible to your default audience"
+msgstr "Voor iedereen zichtbaar, mits niet anders ingesteld"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:106
+#: ../../include/acl_selectors.php:165
+msgid "Only me"
+msgstr "Alleen ik"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:107
+msgid "Public"
+msgstr "Openbaar"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:108
+msgid "Anybody in the $Projectname network"
+msgstr "Iedereen in het $Projectname-netwerk"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:109
+#, php-format
+msgid "Any account on %s"
+msgstr "Iedereen op %s"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:110
+msgid "Any of my connections"
+msgstr "Al mijn geaccepteerde connecties"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:111
+msgid "Only connections I specifically allow"
+msgstr "Alleen connecties die uitdrukkelijk door jou zijn toegestaan"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:112
+msgid "Anybody authenticated (could include visitors from other networks)"
+msgstr "Geauthenticeerde leden (kan bezoekers van andere netwerken bevatten)"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:113
+msgid "Any connections including those who haven't yet been approved"
+msgstr "Al mijn geaccepteerde en nog niet geaccepteerde connecties"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:152
+msgid ""
+"This is your default setting for the audience of your normal stream, and "
+"posts."
+msgstr "Dit is de standaard privacy-instelling voor wie jouw berichten kan bekijken"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:153
+msgid ""
+"This is your default setting for who can view your default channel profile"
+msgstr "Dit is de standaard privacy-instelling voor wie jouw standaardprofiel kan bekijken"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:154
+msgid "This is your default setting for who can view your connections"
+msgstr "Dit is de standaard privacy-instelling voor wie een lijst met jouw connecties kan bekijken"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:155
+msgid ""
+"This is your default setting for who can view your file storage and photos"
+msgstr "Dit is de standaard privacy-instelling voor wie jouw bestanden en foto's kan bekijken"
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:156
+msgid "This is your default setting for the audience of your webpages"
+msgstr "Dit is de standaard privacy-instelling voor wie jouw webpagina's kan bekijken"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:95 ../../include/conversation.php:667
msgid "Private Message"
msgstr "Niet voor iedereen zichtbaar"
-#: ../../Zotlabs/Lib/ThreadItem.php:132 ../../include/conversation.php:656
+#: ../../Zotlabs/Lib/ThreadItem.php:132 ../../include/conversation.php:659
msgid "Select"
msgstr "Kies"
@@ -6626,11 +6940,11 @@ msgstr "Ster toevoegen of verwijderen"
msgid "starred"
msgstr "met ster"
-#: ../../Zotlabs/Lib/ThreadItem.php:234 ../../include/conversation.php:671
+#: ../../Zotlabs/Lib/ThreadItem.php:234 ../../include/conversation.php:674
msgid "Message signature validated"
msgstr "Berichtkenmerk gevalideerd"
-#: ../../Zotlabs/Lib/ThreadItem.php:235 ../../include/conversation.php:672
+#: ../../Zotlabs/Lib/ThreadItem.php:235 ../../include/conversation.php:675
msgid "Message signature incorrect"
msgstr "Berichtkenmerk onjuist"
@@ -6638,114 +6952,115 @@ msgstr "Berichtkenmerk onjuist"
msgid "Add Tag"
msgstr "Tag toevoegen"
-#: ../../Zotlabs/Lib/ThreadItem.php:261 ../../include/taxonomy.php:316
+#: ../../Zotlabs/Lib/ThreadItem.php:262 ../../include/taxonomy.php:316
msgid "like"
msgstr "vind dit leuk"
-#: ../../Zotlabs/Lib/ThreadItem.php:262 ../../include/taxonomy.php:317
+#: ../../Zotlabs/Lib/ThreadItem.php:263 ../../include/taxonomy.php:317
msgid "dislike"
msgstr "vind dit niet leuk"
-#: ../../Zotlabs/Lib/ThreadItem.php:266
+#: ../../Zotlabs/Lib/ThreadItem.php:267
msgid "Share This"
msgstr "Delen"
-#: ../../Zotlabs/Lib/ThreadItem.php:266
+#: ../../Zotlabs/Lib/ThreadItem.php:267
msgid "share"
msgstr "delen"
-#: ../../Zotlabs/Lib/ThreadItem.php:275
+#: ../../Zotlabs/Lib/ThreadItem.php:276
msgid "Delivery Report"
msgstr "Afleveringsrapport"
-#: ../../Zotlabs/Lib/ThreadItem.php:293
+#: ../../Zotlabs/Lib/ThreadItem.php:294
#, php-format
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "%d reactie"
msgstr[1] "%d reacties weergeven"
-#: ../../Zotlabs/Lib/ThreadItem.php:322 ../../Zotlabs/Lib/ThreadItem.php:323
+#: ../../Zotlabs/Lib/ThreadItem.php:323 ../../Zotlabs/Lib/ThreadItem.php:324
#, php-format
msgid "View %s's profile - %s"
msgstr "Profiel van %s bekijken - %s"
-#: ../../Zotlabs/Lib/ThreadItem.php:326
+#: ../../Zotlabs/Lib/ThreadItem.php:327
msgid "to"
msgstr "aan"
-#: ../../Zotlabs/Lib/ThreadItem.php:327
+#: ../../Zotlabs/Lib/ThreadItem.php:328
msgid "via"
msgstr "via"
-#: ../../Zotlabs/Lib/ThreadItem.php:328
+#: ../../Zotlabs/Lib/ThreadItem.php:329
msgid "Wall-to-Wall"
msgstr "Kanaal-naar-kanaal"
-#: ../../Zotlabs/Lib/ThreadItem.php:329
+#: ../../Zotlabs/Lib/ThreadItem.php:330
msgid "via Wall-To-Wall:"
msgstr "via kanaal-naar-kanaal"
-#: ../../Zotlabs/Lib/ThreadItem.php:341 ../../include/conversation.php:719
+#: ../../Zotlabs/Lib/ThreadItem.php:342 ../../include/conversation.php:722
#, php-format
msgid "from %s"
msgstr "van %s"
-#: ../../Zotlabs/Lib/ThreadItem.php:344 ../../include/conversation.php:722
+#: ../../Zotlabs/Lib/ThreadItem.php:345 ../../include/conversation.php:725
#, php-format
msgid "last edited: %s"
msgstr "laatst bewerkt: %s"
-#: ../../Zotlabs/Lib/ThreadItem.php:345 ../../include/conversation.php:723
+#: ../../Zotlabs/Lib/ThreadItem.php:346 ../../include/conversation.php:726
#, php-format
msgid "Expires: %s"
msgstr "Verloopt: %s"
-#: ../../Zotlabs/Lib/ThreadItem.php:370
+#: ../../Zotlabs/Lib/ThreadItem.php:371
msgid "Save Bookmarks"
msgstr "Bladwijzers opslaan"
-#: ../../Zotlabs/Lib/ThreadItem.php:371
+#: ../../Zotlabs/Lib/ThreadItem.php:372
msgid "Add to Calendar"
msgstr "Aan agenda toevoegen"
-#: ../../Zotlabs/Lib/ThreadItem.php:380
+#: ../../Zotlabs/Lib/ThreadItem.php:381
msgid "Mark all seen"
msgstr "Markeer alles als bekeken"
-#: ../../Zotlabs/Lib/ThreadItem.php:421 ../../include/js_strings.php:7
-msgid "[+] show all"
-msgstr "[+] alle"
+#: ../../Zotlabs/Lib/ThreadItem.php:422 ../../include/js_strings.php:7
+#, php-format
+msgid "%s show all"
+msgstr "%s alle"
-#: ../../Zotlabs/Lib/ThreadItem.php:711 ../../include/conversation.php:1215
+#: ../../Zotlabs/Lib/ThreadItem.php:712 ../../include/conversation.php:1234
msgid "Bold"
msgstr "Vet"
-#: ../../Zotlabs/Lib/ThreadItem.php:712 ../../include/conversation.php:1216
+#: ../../Zotlabs/Lib/ThreadItem.php:713 ../../include/conversation.php:1235
msgid "Italic"
msgstr "Cursief"
-#: ../../Zotlabs/Lib/ThreadItem.php:713 ../../include/conversation.php:1217
+#: ../../Zotlabs/Lib/ThreadItem.php:714 ../../include/conversation.php:1236
msgid "Underline"
msgstr "Onderstrepen"
-#: ../../Zotlabs/Lib/ThreadItem.php:714 ../../include/conversation.php:1218
+#: ../../Zotlabs/Lib/ThreadItem.php:715 ../../include/conversation.php:1237
msgid "Quote"
msgstr "Citeren"
-#: ../../Zotlabs/Lib/ThreadItem.php:715 ../../include/conversation.php:1219
+#: ../../Zotlabs/Lib/ThreadItem.php:716 ../../include/conversation.php:1238
msgid "Code"
msgstr "Broncode"
-#: ../../Zotlabs/Lib/ThreadItem.php:716
+#: ../../Zotlabs/Lib/ThreadItem.php:717
msgid "Image"
msgstr "Afbeelding"
-#: ../../Zotlabs/Lib/ThreadItem.php:717
+#: ../../Zotlabs/Lib/ThreadItem.php:718
msgid "Insert Link"
msgstr "Link invoegen"
-#: ../../Zotlabs/Lib/ThreadItem.php:718
+#: ../../Zotlabs/Lib/ThreadItem.php:719
msgid "Video"
msgstr "Video"
@@ -6753,461 +7068,507 @@ msgstr "Video"
msgid "No username found in import file."
msgstr "Geen gebruikersnaam in het importbestand gevonden."
-#: ../../include/Import/import_diaspora.php:41 ../../include/import.php:50
+#: ../../include/Import/import_diaspora.php:41 ../../include/import.php:51
msgid "Unable to create a unique channel address. Import failed."
msgstr "Niet in staat om een uniek kanaaladres aan te maken. Importeren is mislukt."
-#: ../../include/dba/dba_driver.php:171
+#: ../../include/dba/dba_driver.php:173
#, php-format
msgid "Cannot locate DNS info for database server '%s'"
msgstr "Kan DNS-informatie voor databaseserver '%s' niet vinden"
-#: ../../include/taxonomy.php:188 ../../include/taxonomy.php:270
-#: ../../include/widgets.php:46 ../../include/widgets.php:429
-#: ../../include/contact_widgets.php:91
-msgid "Categories"
-msgstr "Categorieën"
+#: ../../include/network.php:704
+msgid "view full size"
+msgstr "volledige grootte tonen"
-#: ../../include/taxonomy.php:228 ../../include/taxonomy.php:249
-msgid "Tags"
-msgstr "Tags"
+#: ../../include/network.php:1935 ../../include/account.php:317
+#: ../../include/account.php:344 ../../include/account.php:404
+msgid "Administrator"
+msgstr "Beheerder"
-#: ../../include/taxonomy.php:293
-msgid "Keywords"
-msgstr "Trefwoorden"
+#: ../../include/network.php:1949
+msgid "No Subject"
+msgstr "Geen onderwerp"
-#: ../../include/taxonomy.php:314
-msgid "have"
-msgstr "heb"
+#: ../../include/network.php:2203 ../../include/network.php:2204
+msgid "Friendica"
+msgstr "Friendica"
-#: ../../include/taxonomy.php:314
-msgid "has"
-msgstr "heeft"
+#: ../../include/network.php:2205
+msgid "OStatus"
+msgstr "OStatus"
-#: ../../include/taxonomy.php:315
-msgid "want"
-msgstr "wil"
+#: ../../include/network.php:2206
+msgid "GNU-Social"
+msgstr "GNU social"
-#: ../../include/taxonomy.php:315
-msgid "wants"
-msgstr "wil"
+#: ../../include/network.php:2207
+msgid "RSS/Atom"
+msgstr "RSS/Atom"
-#: ../../include/taxonomy.php:316
-msgid "likes"
-msgstr "vindt dit leuk"
+#: ../../include/network.php:2209
+msgid "Diaspora"
+msgstr "Diaspora"
-#: ../../include/taxonomy.php:317
-msgid "dislikes"
-msgstr "vindt dit niet leuk"
+#: ../../include/network.php:2210
+msgid "Facebook"
+msgstr "Facebook"
-#: ../../include/event.php:22 ../../include/event.php:69
-#: ../../include/bb2diaspora.php:485
-msgid "l F d, Y \\@ g:i A"
-msgstr "l d F Y \\@ G:i"
+#: ../../include/network.php:2211
+msgid "Zot"
+msgstr "Zot"
-#: ../../include/event.php:30 ../../include/event.php:73
-#: ../../include/bb2diaspora.php:491
-msgid "Starts:"
-msgstr "Start:"
+#: ../../include/network.php:2212
+msgid "LinkedIn"
+msgstr "LinkedIn"
-#: ../../include/event.php:40 ../../include/event.php:77
-#: ../../include/bb2diaspora.php:499
-msgid "Finishes:"
-msgstr "Einde:"
+#: ../../include/network.php:2213
+msgid "XMPP/IM"
+msgstr "XMPP/IM"
-#: ../../include/event.php:812
-msgid "This event has been added to your calendar."
-msgstr "Dit evenement is aan jouw agenda toegevoegd."
+#: ../../include/network.php:2214
+msgid "MySpace"
+msgstr "MySpace"
-#: ../../include/event.php:1012
-msgid "Not specified"
-msgstr "Niet aangegeven"
+#: ../../include/oembed.php:340
+msgid "Embedded content"
+msgstr "Ingesloten (embedded) inhoud"
-#: ../../include/event.php:1013
-msgid "Needs Action"
-msgstr "Actie vereist"
+#: ../../include/oembed.php:349
+msgid "Embedding disabled"
+msgstr "Insluiten (embedding) uitgeschakeld"
-#: ../../include/event.php:1014
-msgid "Completed"
-msgstr "Voltooid"
+#: ../../include/permissions.php:29
+msgid "Can view my normal stream and posts"
+msgstr "Kan mijn normale kanaalstream en berichten bekijken"
-#: ../../include/event.php:1015
-msgid "In Process"
-msgstr "In behandeling"
+#: ../../include/permissions.php:33
+msgid "Can view my webpages"
+msgstr "Kan mijn pagina's bekijken"
-#: ../../include/event.php:1016
-msgid "Cancelled"
-msgstr "Geannuleerd"
+#: ../../include/permissions.php:37
+msgid "Can post on my channel page (\"wall\")"
+msgstr "Kan een bericht in mijn kanaal plaatsen"
-#: ../../include/import.php:29
-msgid ""
-"Cannot create a duplicate channel identifier on this system. Import failed."
-msgstr "Kan geen dubbele kanaal-identificator op deze hub aanmaken. Importeren mislukt."
+#: ../../include/permissions.php:40
+msgid "Can like/dislike stuff"
+msgstr "Kan dingen leuk of niet leuk vinden"
-#: ../../include/import.php:76
-msgid "Channel clone failed. Import failed."
-msgstr "Het klonen van het kanaal is mislukt. Importeren mislukt."
+#: ../../include/permissions.php:40
+msgid "Profiles and things other than posts/comments"
+msgstr "Profielen en dingen, buiten berichten en reacties"
+
+#: ../../include/permissions.php:42
+msgid "Can forward to all my channel contacts via post @mentions"
+msgstr "Kan naar al mijn kanaalconnecties berichten doorsturen met behulp van @vermeldingen+"
+
+#: ../../include/permissions.php:42
+msgid "Advanced - useful for creating group forum channels"
+msgstr "Geavanceerd - nuttig voor groepforums"
+
+#: ../../include/permissions.php:43
+msgid "Can chat with me (when available)"
+msgstr "Kan met mij chatten (wanneer beschikbaar)"
+
+#: ../../include/permissions.php:44
+msgid "Can write to my file storage and photos"
+msgstr "Kan foto's en andere bestanden aan mijn bestandsopslag toevoegen"
+
+#: ../../include/permissions.php:45
+msgid "Can edit my webpages"
+msgstr "Kan mijn pagina's bewerken"
+
+#: ../../include/permissions.php:47
+msgid "Somewhat advanced - very useful in open communities"
+msgstr "Enigszins geavanceerd (erg nuttig voor kanalen van forums/groepen)"
-#: ../../include/items.php:892 ../../include/items.php:937
+#: ../../include/permissions.php:49
+msgid "Can administer my channel resources"
+msgstr "Kan mijn kanaal beheren"
+
+#: ../../include/permissions.php:49
+msgid ""
+"Extremely advanced. Leave this alone unless you know what you are doing"
+msgstr "Zeer geavanceerd. Laat dit met rust, behalve als je weet wat je doet."
+
+#: ../../include/items.php:899 ../../include/items.php:944
msgid "(Unknown)"
msgstr "(Onbekend)"
-#: ../../include/items.php:1136
+#: ../../include/items.php:1143
msgid "Visible to anybody on the internet."
msgstr "Voor iedereen op het internet zichtbaar."
-#: ../../include/items.php:1138
+#: ../../include/items.php:1145
msgid "Visible to you only."
msgstr "Alleen voor jou zichtbaar."
-#: ../../include/items.php:1140
+#: ../../include/items.php:1147
msgid "Visible to anybody in this network."
msgstr "Voor iedereen in dit netwerk zichtbaar."
-#: ../../include/items.php:1142
+#: ../../include/items.php:1149
msgid "Visible to anybody authenticated."
msgstr "Voor iedereen die geauthenticeerd is zichtbaar."
-#: ../../include/items.php:1144
+#: ../../include/items.php:1151
#, php-format
msgid "Visible to anybody on %s."
msgstr "Voor iedereen op %s zichtbaar."
-#: ../../include/items.php:1146
+#: ../../include/items.php:1153
msgid "Visible to all connections."
msgstr "Voor alle connecties zichtbaar."
-#: ../../include/items.php:1148
+#: ../../include/items.php:1155
msgid "Visible to approved connections."
msgstr "Voor alle geaccepteerde connecties zichtbaar."
-#: ../../include/items.php:1150
+#: ../../include/items.php:1157
msgid "Visible to specific connections."
msgstr "Voor specifieke connecties zichtbaar."
-#: ../../include/items.php:3909
+#: ../../include/items.php:3947
msgid "Privacy group is empty."
msgstr "Privacygroep is leeg"
-#: ../../include/items.php:3916
+#: ../../include/items.php:3954
#, php-format
msgid "Privacy group: %s"
msgstr "Privacygroep: %s"
-#: ../../include/items.php:3928
+#: ../../include/items.php:3966
msgid "Connection not found."
msgstr "Connectie niet gevonden."
-#: ../../include/items.php:4277
+#: ../../include/items.php:4319
msgid "profile photo"
msgstr "profielfoto"
-#: ../../include/message.php:20
-msgid "No recipient provided."
-msgstr "Geen ontvanger opgegeven."
-
-#: ../../include/message.php:25
-msgid "[no subject]"
-msgstr "[geen onderwerp]"
-
-#: ../../include/message.php:45
-msgid "Unable to determine sender."
-msgstr "Afzender kan niet bepaald worden."
-
-#: ../../include/message.php:222
-msgid "Stored post could not be verified."
-msgstr "Opgeslagen bericht kon niet worden geverifieerd."
-
-#: ../../include/text.php:428
+#: ../../include/text.php:404
msgid "prev"
msgstr "vorige"
-#: ../../include/text.php:430
+#: ../../include/text.php:406
msgid "first"
msgstr "eerste"
-#: ../../include/text.php:459
+#: ../../include/text.php:435
msgid "last"
msgstr "laatste"
-#: ../../include/text.php:462
+#: ../../include/text.php:438
msgid "next"
msgstr "volgende"
-#: ../../include/text.php:472
+#: ../../include/text.php:448
msgid "older"
msgstr "ouder"
-#: ../../include/text.php:474
+#: ../../include/text.php:450
msgid "newer"
msgstr "nieuwer"
-#: ../../include/text.php:863
+#: ../../include/text.php:843
msgid "No connections"
msgstr "Geen connecties"
-#: ../../include/text.php:888
+#: ../../include/text.php:868
#, php-format
msgid "View all %s connections"
msgstr "Toon alle %s connecties"
-#: ../../include/text.php:1033 ../../include/text.php:1038
+#: ../../include/text.php:1013 ../../include/text.php:1018
msgid "poke"
msgstr "aanstoten"
-#: ../../include/text.php:1033 ../../include/text.php:1038
+#: ../../include/text.php:1013 ../../include/text.php:1018
#: ../../include/conversation.php:243
msgid "poked"
msgstr "aangestoten"
-#: ../../include/text.php:1039
+#: ../../include/text.php:1019
msgid "ping"
msgstr "ping"
-#: ../../include/text.php:1039
+#: ../../include/text.php:1019
msgid "pinged"
msgstr "gepingd"
-#: ../../include/text.php:1040
+#: ../../include/text.php:1020
msgid "prod"
msgstr "por"
-#: ../../include/text.php:1040
+#: ../../include/text.php:1020
msgid "prodded"
msgstr "gepord"
-#: ../../include/text.php:1041
+#: ../../include/text.php:1021
msgid "slap"
msgstr "slaan"
-#: ../../include/text.php:1041
+#: ../../include/text.php:1021
msgid "slapped"
msgstr "sloeg"
-#: ../../include/text.php:1042
+#: ../../include/text.php:1022
msgid "finger"
msgstr "finger"
-#: ../../include/text.php:1042
+#: ../../include/text.php:1022
msgid "fingered"
msgstr "gefingerd"
-#: ../../include/text.php:1043
+#: ../../include/text.php:1023
msgid "rebuff"
msgstr "afpoeieren"
-#: ../../include/text.php:1043
+#: ../../include/text.php:1023
msgid "rebuffed"
msgstr "afgepoeierd"
-#: ../../include/text.php:1055
+#: ../../include/text.php:1035
msgid "happy"
msgstr "gelukkig"
-#: ../../include/text.php:1056
+#: ../../include/text.php:1036
msgid "sad"
msgstr "bedroefd"
-#: ../../include/text.php:1057
+#: ../../include/text.php:1037
msgid "mellow"
msgstr "mellow"
-#: ../../include/text.php:1058
+#: ../../include/text.php:1038
msgid "tired"
msgstr "moe"
-#: ../../include/text.php:1059
+#: ../../include/text.php:1039
msgid "perky"
msgstr "parmantig"
-#: ../../include/text.php:1060
+#: ../../include/text.php:1040
msgid "angry"
msgstr "boos"
-#: ../../include/text.php:1061
+#: ../../include/text.php:1041
msgid "stupefied"
msgstr "verbijsterd"
-#: ../../include/text.php:1062
+#: ../../include/text.php:1042
msgid "puzzled"
msgstr "verward"
-#: ../../include/text.php:1063
+#: ../../include/text.php:1043
msgid "interested"
msgstr "geïnteresseerd"
-#: ../../include/text.php:1064
+#: ../../include/text.php:1044
msgid "bitter"
msgstr "verbitterd"
-#: ../../include/text.php:1065
+#: ../../include/text.php:1045
msgid "cheerful"
msgstr "vrolijk"
-#: ../../include/text.php:1066
+#: ../../include/text.php:1046
msgid "alive"
msgstr "levendig"
-#: ../../include/text.php:1067
+#: ../../include/text.php:1047
msgid "annoyed"
msgstr "geërgerd"
-#: ../../include/text.php:1068
+#: ../../include/text.php:1048
msgid "anxious"
msgstr "bezorgd"
-#: ../../include/text.php:1069
+#: ../../include/text.php:1049
msgid "cranky"
msgstr "humeurig"
-#: ../../include/text.php:1070
+#: ../../include/text.php:1050
msgid "disturbed"
msgstr "verontrust"
-#: ../../include/text.php:1071
+#: ../../include/text.php:1051
msgid "frustrated"
msgstr "gefrustreerd "
-#: ../../include/text.php:1072
+#: ../../include/text.php:1052
msgid "depressed"
msgstr "gedeprimeerd"
-#: ../../include/text.php:1073
+#: ../../include/text.php:1053
msgid "motivated"
msgstr "gemotiveerd"
-#: ../../include/text.php:1074
+#: ../../include/text.php:1054
msgid "relaxed"
msgstr "ontspannen"
-#: ../../include/text.php:1075
+#: ../../include/text.php:1055
msgid "surprised"
msgstr "verrast"
-#: ../../include/text.php:1257 ../../include/js_strings.php:70
+#: ../../include/text.php:1239 ../../include/js_strings.php:70
msgid "Monday"
msgstr "maandag"
-#: ../../include/text.php:1257 ../../include/js_strings.php:71
+#: ../../include/text.php:1239 ../../include/js_strings.php:71
msgid "Tuesday"
msgstr "dinsdag"
-#: ../../include/text.php:1257 ../../include/js_strings.php:72
+#: ../../include/text.php:1239 ../../include/js_strings.php:72
msgid "Wednesday"
msgstr "woensdag"
-#: ../../include/text.php:1257 ../../include/js_strings.php:73
+#: ../../include/text.php:1239 ../../include/js_strings.php:73
msgid "Thursday"
msgstr "donderdag"
-#: ../../include/text.php:1257 ../../include/js_strings.php:74
+#: ../../include/text.php:1239 ../../include/js_strings.php:74
msgid "Friday"
msgstr "vrijdag"
-#: ../../include/text.php:1257 ../../include/js_strings.php:75
+#: ../../include/text.php:1239 ../../include/js_strings.php:75
msgid "Saturday"
msgstr "zaterdag"
-#: ../../include/text.php:1257 ../../include/js_strings.php:69
+#: ../../include/text.php:1239 ../../include/js_strings.php:69
msgid "Sunday"
msgstr "zondag"
-#: ../../include/text.php:1261 ../../include/js_strings.php:45
+#: ../../include/text.php:1243 ../../include/js_strings.php:45
msgid "January"
msgstr "januari"
-#: ../../include/text.php:1261 ../../include/js_strings.php:46
+#: ../../include/text.php:1243 ../../include/js_strings.php:46
msgid "February"
msgstr "februari"
-#: ../../include/text.php:1261 ../../include/js_strings.php:47
+#: ../../include/text.php:1243 ../../include/js_strings.php:47
msgid "March"
msgstr "maart"
-#: ../../include/text.php:1261 ../../include/js_strings.php:48
+#: ../../include/text.php:1243 ../../include/js_strings.php:48
msgid "April"
msgstr "april"
-#: ../../include/text.php:1261
+#: ../../include/text.php:1243
msgid "May"
msgstr "mei"
-#: ../../include/text.php:1261 ../../include/js_strings.php:50
+#: ../../include/text.php:1243 ../../include/js_strings.php:50
msgid "June"
msgstr "juni"
-#: ../../include/text.php:1261 ../../include/js_strings.php:51
+#: ../../include/text.php:1243 ../../include/js_strings.php:51
msgid "July"
msgstr "juli"
-#: ../../include/text.php:1261 ../../include/js_strings.php:52
+#: ../../include/text.php:1243 ../../include/js_strings.php:52
msgid "August"
msgstr "augustus"
-#: ../../include/text.php:1261 ../../include/js_strings.php:53
+#: ../../include/text.php:1243 ../../include/js_strings.php:53
msgid "September"
msgstr "september"
-#: ../../include/text.php:1261 ../../include/js_strings.php:54
+#: ../../include/text.php:1243 ../../include/js_strings.php:54
msgid "October"
msgstr "oktober"
-#: ../../include/text.php:1261 ../../include/js_strings.php:55
+#: ../../include/text.php:1243 ../../include/js_strings.php:55
msgid "November"
msgstr "november"
-#: ../../include/text.php:1261 ../../include/js_strings.php:56
+#: ../../include/text.php:1243 ../../include/js_strings.php:56
msgid "December"
msgstr "december"
-#: ../../include/text.php:1338 ../../include/text.php:1342
+#: ../../include/text.php:1320 ../../include/text.php:1324
msgid "Unknown Attachment"
msgstr "Onbekende bijlage"
-#: ../../include/text.php:1344
+#: ../../include/text.php:1326
msgid "unknown"
msgstr "onbekend"
-#: ../../include/text.php:1380
+#: ../../include/text.php:1362
msgid "remove category"
msgstr "categorie verwijderen"
-#: ../../include/text.php:1457
+#: ../../include/text.php:1439
msgid "remove from file"
msgstr "uit map verwijderen"
-#: ../../include/text.php:1753 ../../include/text.php:1824
+#: ../../include/text.php:1738 ../../include/text.php:1809
msgid "default"
msgstr "standaard"
-#: ../../include/text.php:1761
+#: ../../include/text.php:1746
msgid "Page layout"
msgstr "Pagina-lay-out"
-#: ../../include/text.php:1761
+#: ../../include/text.php:1746
msgid "You can create your own with the layouts tool"
msgstr "Je kan jouw eigen lay-out ontwerpen onder lay-outs"
-#: ../../include/text.php:1803
+#: ../../include/text.php:1788
msgid "Page content type"
msgstr "Opmaaktype pagina"
-#: ../../include/text.php:1836
+#: ../../include/text.php:1821
msgid "Select an alternate language"
msgstr "Kies een andere taal"
-#: ../../include/text.php:1953
+#: ../../include/text.php:1958
msgid "activity"
msgstr "activiteit"
-#: ../../include/text.php:2262
+#: ../../include/text.php:2259
msgid "Design Tools"
msgstr "Ontwerp-hulpmiddelen"
-#: ../../include/text.php:2268
+#: ../../include/text.php:2265
msgid "Pages"
msgstr "Pagina's"
+#: ../../include/text.php:2287
+msgid "Import website..."
+msgstr "Website importeren..."
+
+#: ../../include/text.php:2288
+msgid "Select folder to import"
+msgstr "Kies een map om te importeren"
+
+#: ../../include/text.php:2289
+msgid "Import from a zipped folder:"
+msgstr "Vanuit een zipbestand importeren:"
+
+#: ../../include/text.php:2290
+msgid "Import from cloud files:"
+msgstr "Vanuit de cloud importeren:"
+
+#: ../../include/text.php:2291
+msgid "/cloud/channel/path/to/folder"
+msgstr "/cloud/channel/maplocatie"
+
+#: ../../include/text.php:2292
+msgid "Enter path to website files"
+msgstr "Voer de locatie in van de websitebestanden"
+
+#: ../../include/text.php:2293
+msgid "Select folder"
+msgstr "Kies een map"
+
+#: ../../include/widgets.php:46 ../../include/widgets.php:429
+#: ../../include/taxonomy.php:188 ../../include/taxonomy.php:270
+#: ../../include/contact_widgets.php:91
+msgid "Categories"
+msgstr "Categorieën"
+
#: ../../include/widgets.php:103
msgid "System"
msgstr "Systeem"
@@ -7249,7 +7610,7 @@ msgstr "Aantekeningen"
msgid "Remove term"
msgstr "Verwijder zoekterm"
-#: ../../include/widgets.php:281 ../../include/features.php:84
+#: ../../include/widgets.php:281 ../../include/features.php:85
msgid "Saved Searches"
msgstr "Opgeslagen zoekopdrachten"
@@ -7257,8 +7618,8 @@ msgstr "Opgeslagen zoekopdrachten"
msgid "add"
msgstr "toevoegen"
-#: ../../include/widgets.php:310 ../../include/contact_widgets.php:53
-#: ../../include/features.php:98
+#: ../../include/widgets.php:310 ../../include/features.php:99
+#: ../../include/contact_widgets.php:53
msgid "Saved Folders"
msgstr "Bewaarde mappen"
@@ -7307,446 +7668,159 @@ msgstr "Kanaal exporteren"
msgid "Connected apps"
msgstr "Verbonden applicaties"
-#: ../../include/widgets.php:622
+#: ../../include/widgets.php:631
msgid "Premium Channel Settings"
msgstr "Instellingen premiumkanaal"
-#: ../../include/widgets.php:651
+#: ../../include/widgets.php:660
msgid "Private Mail Menu"
msgstr "Privéberichten"
-#: ../../include/widgets.php:653
+#: ../../include/widgets.php:662
msgid "Combined View"
msgstr "Gecombineerd postvak"
-#: ../../include/widgets.php:658 ../../include/nav.php:196
+#: ../../include/widgets.php:667 ../../include/nav.php:200
msgid "Inbox"
msgstr "Postvak IN"
-#: ../../include/widgets.php:663 ../../include/nav.php:197
+#: ../../include/widgets.php:672 ../../include/nav.php:201
msgid "Outbox"
msgstr "Postvak UIT"
-#: ../../include/widgets.php:668 ../../include/nav.php:198
+#: ../../include/widgets.php:677 ../../include/nav.php:202
msgid "New Message"
msgstr "Nieuw bericht"
-#: ../../include/widgets.php:685 ../../include/widgets.php:697
+#: ../../include/widgets.php:694 ../../include/widgets.php:706
msgid "Conversations"
msgstr "Conversaties"
-#: ../../include/widgets.php:689
+#: ../../include/widgets.php:698
msgid "Received Messages"
msgstr "Ontvangen berichten"
-#: ../../include/widgets.php:693
+#: ../../include/widgets.php:702
msgid "Sent Messages"
msgstr "Verzonden berichten"
-#: ../../include/widgets.php:707
+#: ../../include/widgets.php:716
msgid "No messages."
msgstr "Geen berichten"
-#: ../../include/widgets.php:725
+#: ../../include/widgets.php:734
msgid "Delete conversation"
msgstr "Verwijder conversatie"
-#: ../../include/widgets.php:751
-msgid "Events Menu"
-msgstr "Agenda-menu"
-
-#: ../../include/widgets.php:752
-msgid "Day View"
-msgstr "Dag tonen"
-
-#: ../../include/widgets.php:753
-msgid "Week View"
-msgstr "Week tonen"
-
-#: ../../include/widgets.php:754
-msgid "Month View"
-msgstr "Maand tonen"
-
-#: ../../include/widgets.php:766
+#: ../../include/widgets.php:760
msgid "Events Tools"
msgstr "Agenda-hulpmiddelen"
-#: ../../include/widgets.php:767
+#: ../../include/widgets.php:761
msgid "Export Calendar"
msgstr "Exporteren"
-#: ../../include/widgets.php:768
+#: ../../include/widgets.php:762
msgid "Import Calendar"
msgstr "Importeren"
-#: ../../include/widgets.php:842 ../../include/conversation.php:1662
-#: ../../include/conversation.php:1665
+#: ../../include/widgets.php:850 ../../include/conversation.php:1695
+#: ../../include/conversation.php:1698
msgid "Chatrooms"
msgstr "Chatkanalen"
-#: ../../include/widgets.php:846
+#: ../../include/widgets.php:854
msgid "Overview"
msgstr "Overzicht"
-#: ../../include/widgets.php:853
+#: ../../include/widgets.php:861
msgid "Chat Members"
msgstr "Chatleden"
-#: ../../include/widgets.php:876
+#: ../../include/widgets.php:883
+msgid "Wiki List"
+msgstr "Wiki's"
+
+#: ../../include/widgets.php:921
+msgid "Wiki Pages"
+msgstr "Wikipagina's"
+
+#: ../../include/widgets.php:956
msgid "Bookmarked Chatrooms"
msgstr "Bladwijzers van chatkanalen"
-#: ../../include/widgets.php:899
+#: ../../include/widgets.php:979
msgid "Suggested Chatrooms"
msgstr "Voorgestelde chatkanalen"
-#: ../../include/widgets.php:1044 ../../include/widgets.php:1156
+#: ../../include/widgets.php:1125 ../../include/widgets.php:1237
msgid "photo/image"
msgstr "foto/afbeelding"
-#: ../../include/widgets.php:1099
+#: ../../include/widgets.php:1180
msgid "Click to show more"
msgstr "Klik voor meer"
-#: ../../include/widgets.php:1250
+#: ../../include/widgets.php:1331
msgid "Rating Tools"
msgstr "Beoordelingen"
-#: ../../include/widgets.php:1254 ../../include/widgets.php:1256
+#: ../../include/widgets.php:1335 ../../include/widgets.php:1337
msgid "Rate Me"
msgstr "Beoordeel mij"
-#: ../../include/widgets.php:1259
+#: ../../include/widgets.php:1340
msgid "View Ratings"
msgstr "Bekijk beoordelingen"
-#: ../../include/widgets.php:1316
+#: ../../include/widgets.php:1424
msgid "Forums"
msgstr "Forums"
-#: ../../include/widgets.php:1345
+#: ../../include/widgets.php:1453
msgid "Tasks"
msgstr "Taken"
-#: ../../include/widgets.php:1354
+#: ../../include/widgets.php:1462
msgid "Documentation"
msgstr "Documentatie"
-#: ../../include/widgets.php:1356
+#: ../../include/widgets.php:1464
msgid "Project/Site Information"
msgstr "Project- en hub-informatie"
-#: ../../include/widgets.php:1357
+#: ../../include/widgets.php:1465
msgid "For Members"
msgstr "Voor leden"
-#: ../../include/widgets.php:1358
+#: ../../include/widgets.php:1466
msgid "For Administrators"
msgstr "Voor beheerders"
-#: ../../include/widgets.php:1359
+#: ../../include/widgets.php:1467
msgid "For Developers"
msgstr "Voor ontwikkelaars"
-#: ../../include/widgets.php:1383 ../../include/widgets.php:1421
+#: ../../include/widgets.php:1491 ../../include/widgets.php:1529
msgid "Member registrations waiting for confirmation"
msgstr "Accounts die op goedkeuring wachten"
-#: ../../include/widgets.php:1389
+#: ../../include/widgets.php:1497
msgid "Inspect queue"
msgstr "Inspecteer berichtenwachtrij"
-#: ../../include/widgets.php:1391
+#: ../../include/widgets.php:1499
msgid "DB updates"
msgstr "Database-updates"
-#: ../../include/widgets.php:1416 ../../include/nav.php:216
+#: ../../include/widgets.php:1524 ../../include/nav.php:220
msgid "Admin"
msgstr "Beheer"
-#: ../../include/widgets.php:1417
+#: ../../include/widgets.php:1525
msgid "Plugin Features"
msgstr "Plugin-opties"
-#: ../../include/follow.php:27
-msgid "Channel is blocked on this site."
-msgstr "Kanaal is op deze hub geblokkeerd."
-
-#: ../../include/follow.php:32
-msgid "Channel location missing."
-msgstr "Ontbrekende kanaallocatie."
-
-#: ../../include/follow.php:81
-msgid "Response from remote channel was incomplete."
-msgstr "Antwoord van het kanaal op afstand was niet volledig."
-
-#: ../../include/follow.php:98
-msgid "Channel was deleted and no longer exists."
-msgstr "Kanaal is verwijderd en bestaat niet meer."
-
-#: ../../include/follow.php:154 ../../include/follow.php:190
-msgid "Protocol disabled."
-msgstr "Protocol uitgeschakeld."
-
-#: ../../include/follow.php:178
-msgid "Channel discovery failed."
-msgstr "Kanaal ontdekken mislukt."
-
-#: ../../include/follow.php:216
-msgid "Cannot connect to yourself."
-msgstr "Kan niet met jezelf verbinden"
-
-#: ../../include/bookmarks.php:35
-#, php-format
-msgid "%1$s's bookmarks"
-msgstr "Bladwijzers van %1$s"
-
-#: ../../include/api.php:1336
-msgid "Public Timeline"
-msgstr "Openbare tijdlijn"
-
-#: ../../include/bbcode.php:123 ../../include/bbcode.php:844
-#: ../../include/bbcode.php:847 ../../include/bbcode.php:852
-#: ../../include/bbcode.php:855 ../../include/bbcode.php:858
-#: ../../include/bbcode.php:861 ../../include/bbcode.php:866
-#: ../../include/bbcode.php:869 ../../include/bbcode.php:874
-#: ../../include/bbcode.php:877 ../../include/bbcode.php:880
-#: ../../include/bbcode.php:883
-msgid "Image/photo"
-msgstr "Afbeelding/foto"
-
-#: ../../include/bbcode.php:162 ../../include/bbcode.php:894
-msgid "Encrypted content"
-msgstr "Versleutelde inhoud"
-
-#: ../../include/bbcode.php:178
-#, php-format
-msgid "Install %s element: "
-msgstr "Installeer %s-element: "
-
-#: ../../include/bbcode.php:182
-#, php-format
-msgid ""
-"This post contains an installable %s element, however you lack permissions "
-"to install it on this site."
-msgstr "Dit bericht heeft een te installeren %s-element, maar je hebt geen permissies om het op deze hub te installeren."
-
-#: ../../include/bbcode.php:254
-#, php-format
-msgid "%1$s wrote the following %2$s %3$s"
-msgstr "%1$s schreef het volgende %2$s %3$s"
-
-#: ../../include/bbcode.php:331 ../../include/bbcode.php:339
-msgid "Click to open/close"
-msgstr "Klik om te openen of te sluiten"
-
-#: ../../include/bbcode.php:339
-msgid "spoiler"
-msgstr "spoiler"
-
-#: ../../include/bbcode.php:585
-msgid "Different viewers will see this text differently"
-msgstr "Deze tekst wordt per persoon anders weergeven."
-
-#: ../../include/bbcode.php:832
-msgid "$1 wrote:"
-msgstr "$1 schreef:"
-
-#: ../../include/dir_fns.php:141
-msgid "Directory Options"
-msgstr "Opties kanalengids"
-
-#: ../../include/dir_fns.php:143
-msgid "Safe Mode"
-msgstr "Veilig zoeken"
-
-#: ../../include/dir_fns.php:144
-msgid "Public Forums Only"
-msgstr "Alleen openbare forums"
-
-#: ../../include/dir_fns.php:145
-msgid "This Website Only"
-msgstr "Alleen deze hub"
-
-#: ../../include/security.php:383
-msgid ""
-"The form security token was not correct. This probably happened because the "
-"form has been opened for too long (>3 hours) before submitting it."
-msgstr "De beveiligings-token van het tekstvak was ongeldig. Dit is mogelijk het gevolg van dat er te lang (meer dan 3 uur) gewacht is om de tekst op te slaan. "
-
-#: ../../include/nav.php:82 ../../include/nav.php:113 ../../boot.php:1702
-msgid "Logout"
-msgstr "Uitloggen"
-
-#: ../../include/nav.php:82 ../../include/nav.php:113
-msgid "End this session"
-msgstr "Beëindig deze sessie"
-
-#: ../../include/nav.php:85 ../../include/nav.php:144
-msgid "Home"
-msgstr "Home"
-
-#: ../../include/nav.php:85
-msgid "Your posts and conversations"
-msgstr "Jouw kanaal"
-
-#: ../../include/nav.php:86
-msgid "Your profile page"
-msgstr "Jouw profielpagina"
-
-#: ../../include/nav.php:88
-msgid "Manage/Edit profiles"
-msgstr "Beheer/wijzig profielen"
-
-#: ../../include/nav.php:90 ../../include/channel.php:941
-msgid "Edit Profile"
-msgstr "Profiel bewerken"
-
-#: ../../include/nav.php:90
-msgid "Edit your profile"
-msgstr "Jouw profiel bewerken"
-
-#: ../../include/nav.php:92
-msgid "Your photos"
-msgstr "Jouw foto's"
-
-#: ../../include/nav.php:93
-msgid "Your files"
-msgstr "Jouw bestanden"
-
-#: ../../include/nav.php:96
-msgid "Your chatrooms"
-msgstr "Jouw chatkanalen"
-
-#: ../../include/nav.php:102 ../../include/conversation.php:1675
-msgid "Bookmarks"
-msgstr "Bladwijzers"
-
-#: ../../include/nav.php:102
-msgid "Your bookmarks"
-msgstr "Jouw bladwijzers"
-
-#: ../../include/nav.php:106
-msgid "Your webpages"
-msgstr "Jouw webpagina's"
-
-#: ../../include/nav.php:110
-msgid "Sign in"
-msgstr "Inloggen"
-
-#: ../../include/nav.php:127
-#, php-format
-msgid "%s - click to logout"
-msgstr "%s - klik om uit te loggen"
-
-#: ../../include/nav.php:130
-msgid "Remote authentication"
-msgstr "Authenticatie op afstand"
-
-#: ../../include/nav.php:130
-msgid "Click to authenticate to your home hub"
-msgstr "Authenticeer jezelf via (bijvoorbeeld) jouw hub"
-
-#: ../../include/nav.php:144
-msgid "Home Page"
-msgstr "Homepage"
-
-#: ../../include/nav.php:147
-msgid "Create an account"
-msgstr "Maak een account aan"
-
-#: ../../include/nav.php:159
-msgid "Help and documentation"
-msgstr "Hulp en documentatie"
-
-#: ../../include/nav.php:163
-msgid "Applications, utilities, links, games"
-msgstr "Apps"
-
-#: ../../include/nav.php:165
-msgid "Search site @name, #tag, ?docs, content"
-msgstr "Zoek een @kanaal, doorzoek inhoud hub met tekst en #tags, of doorzoek ?documentatie "
-
-#: ../../include/nav.php:167
-msgid "Channel Directory"
-msgstr "Kanalengids"
-
-#: ../../include/nav.php:179
-msgid "Your grid"
-msgstr "Jouw grid"
-
-#: ../../include/nav.php:180
-msgid "Mark all grid notifications seen"
-msgstr "Markeer alle gridnotificaties als bekeken"
-
-#: ../../include/nav.php:182
-msgid "Channel home"
-msgstr "Jouw kanaal"
-
-#: ../../include/nav.php:183
-msgid "Mark all channel notifications seen"
-msgstr "Alle kanaalnotificaties als gelezen markeren"
-
-#: ../../include/nav.php:189
-msgid "Notices"
-msgstr "Notificaties"
-
-#: ../../include/nav.php:189
-msgid "Notifications"
-msgstr "Notificaties"
-
-#: ../../include/nav.php:190
-msgid "See all notifications"
-msgstr "Alle notificaties weergeven"
-
-#: ../../include/nav.php:193
-msgid "Private mail"
-msgstr "Privéberichten"
-
-#: ../../include/nav.php:194
-msgid "See all private messages"
-msgstr "Alle privéberichten weergeven"
-
-#: ../../include/nav.php:195
-msgid "Mark all private messages seen"
-msgstr "Markeer alle privéberichten als bekeken"
-
-#: ../../include/nav.php:201
-msgid "Event Calendar"
-msgstr "Agenda"
-
-#: ../../include/nav.php:202
-msgid "See all events"
-msgstr "Alle gebeurtenissen weergeven"
-
-#: ../../include/nav.php:203
-msgid "Mark all events seen"
-msgstr "Markeer alle gebeurtenissen als bekeken"
-
-#: ../../include/nav.php:206
-msgid "Manage Your Channels"
-msgstr "Beheer je kanalen"
-
-#: ../../include/nav.php:208
-msgid "Account/Channel Settings"
-msgstr "Account-/kanaal-instellingen"
-
-#: ../../include/nav.php:216
-msgid "Site Setup and Configuration"
-msgstr "Hub instellen en beheren"
-
-#: ../../include/nav.php:247 ../../include/conversation.php:851
-msgid "Loading..."
-msgstr "Aan het laden..."
-
-#: ../../include/nav.php:252
-msgid "@name, #tag, ?doc, content"
-msgstr "@kanaal, #tag, inhoud, ?hulp"
-
-#: ../../include/nav.php:253
-msgid "Please wait..."
-msgstr "Wachten aub..."
-
#: ../../include/connections.php:95
msgid "New window"
msgstr "Nieuw venster"
@@ -7760,313 +7834,281 @@ msgstr "Open de geselecteerde locatie in een ander venster of tab"
msgid "User '%s' deleted"
msgstr "Account '%s' verwijderd"
-#: ../../include/contact_widgets.php:11
-#, php-format
-msgid "%d invitation available"
-msgid_plural "%d invitations available"
-msgstr[0] "%d uitnodiging beschikbaar"
-msgstr[1] "%d uitnodigingen beschikbaar"
-
-#: ../../include/contact_widgets.php:19
-msgid "Find Channels"
-msgstr "Kanalen vinden"
-
-#: ../../include/contact_widgets.php:20
-msgid "Enter name or interest"
-msgstr "Vul naam of interesse in"
-
-#: ../../include/contact_widgets.php:21
-msgid "Connect/Follow"
-msgstr "Verbinden/volgen"
+#: ../../include/acl_selectors.php:169
+msgid "Who can see this?"
+msgstr "Wie kan dit zien?"
-#: ../../include/contact_widgets.php:22
-msgid "Examples: Robert Morgenstein, Fishing"
-msgstr "Voorbeeld: Robert Morgenstein, vissen"
+#: ../../include/acl_selectors.php:170
+msgid "Custom selection"
+msgstr "Handmatige selectie"
-#: ../../include/contact_widgets.php:26
-msgid "Random Profile"
-msgstr "Willekeurig profiel"
+#: ../../include/acl_selectors.php:171
+msgid ""
+"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit"
+" the scope of \"Show\"."
+msgstr "Kies \"Tonen\" om weergave toe te staan. Met \"Niet tonen\" kan je uitzonderingen maken op \"Tonen\"."
-#: ../../include/contact_widgets.php:27
-msgid "Invite Friends"
-msgstr "Vrienden uitnodigen"
+#: ../../include/acl_selectors.php:172
+msgid "Show"
+msgstr "Tonen"
-#: ../../include/contact_widgets.php:29
-msgid "Advanced example: name=fred and country=iceland"
-msgstr "Geavanceerd voorbeeld (Engels): name=jan en country=nederland"
+#: ../../include/acl_selectors.php:173
+msgid "Don't show"
+msgstr "Niet tonen"
-#: ../../include/contact_widgets.php:122
+#: ../../include/acl_selectors.php:207
#, php-format
-msgid "%d connection in common"
-msgid_plural "%d connections in common"
-msgstr[0] "%d gemeenschappelijke connectie"
-msgstr[1] "%d gemeenschappelijke connecties"
+msgid ""
+"Post permissions %s cannot be changed %s after a post is shared.</br />These"
+" permissions set who is allowed to view the post."
+msgstr "Permissies van berichten %s zijn niet meer te veranderen %s nadat een bericht is gedeeld.</br />Met deze permissies bepaal je wie het bericht kan zien."
-#: ../../include/contact_widgets.php:127
-msgid "show more"
-msgstr "meer connecties weergeven"
+#: ../../include/api.php:1330
+msgid "Public Timeline"
+msgstr "Openbare tijdlijn"
-#: ../../include/conversation.php:204
-#, php-format
-msgid "%1$s is now connected with %2$s"
-msgstr "%1$s is nu met %2$s verbonden"
+#: ../../include/channel.php:33
+msgid "Unable to obtain identity information from database"
+msgstr "Niet in staat om identiteitsinformatie uit de database te verkrijgen"
-#: ../../include/conversation.php:239
-#, php-format
-msgid "%1$s poked %2$s"
-msgstr "%1$s heeft %2$s aangestoten"
+#: ../../include/channel.php:67
+msgid "Empty name"
+msgstr "Ontbrekende naam"
-#: ../../include/conversation.php:691
-#, php-format
-msgid "View %s's profile @ %s"
-msgstr "Bekijk het profiel van %s @ %s"
+#: ../../include/channel.php:70
+msgid "Name too long"
+msgstr "Naam te lang"
-#: ../../include/conversation.php:710
-msgid "Categories:"
-msgstr "Categorieën:"
+#: ../../include/channel.php:181
+msgid "No account identifier"
+msgstr "Geen account-identificator"
-#: ../../include/conversation.php:711
-msgid "Filed under:"
-msgstr "Bewaard onder:"
+#: ../../include/channel.php:193
+msgid "Nickname is required."
+msgstr "Bijnaam is verplicht"
-#: ../../include/conversation.php:738
-msgid "View in context"
-msgstr "In context bekijken"
+#: ../../include/channel.php:207
+msgid "Reserved nickname. Please choose another."
+msgstr "Deze naam is gereserveerd. Kies een andere."
-#: ../../include/conversation.php:847
-msgid "remove"
-msgstr "verwijderen"
+#: ../../include/channel.php:212
+msgid ""
+"Nickname has unsupported characters or is already being used on this site."
+msgstr "Deze naam heeft niet ondersteunde karakters of is al op deze hub in gebruik."
-#: ../../include/conversation.php:852
-msgid "Delete Selected Items"
-msgstr "Verwijder de geselecteerde items"
+#: ../../include/channel.php:272
+msgid "Unable to retrieve created identity"
+msgstr "Niet in staat om aangemaakte identiteit te vinden"
-#: ../../include/conversation.php:948
-msgid "View Source"
-msgstr "Bron weergeven"
+#: ../../include/channel.php:341
+msgid "Default Profile"
+msgstr "Standaardprofiel"
-#: ../../include/conversation.php:949
-msgid "Follow Thread"
-msgstr "Conversatie volgen"
+#: ../../include/channel.php:813
+msgid "Requested channel is not available."
+msgstr "Opgevraagd kanaal is niet beschikbaar."
-#: ../../include/conversation.php:950
-msgid "Unfollow Thread"
-msgstr "Conversatie niet meer volgen"
+#: ../../include/channel.php:960
+msgid "Create New Profile"
+msgstr "Nieuw profiel aanmaken"
-#: ../../include/conversation.php:955
-msgid "Activity/Posts"
-msgstr "Activiteit/berichten connectie"
+#: ../../include/channel.php:963 ../../include/nav.php:92
+msgid "Edit Profile"
+msgstr "Profiel bewerken"
-#: ../../include/conversation.php:957
-msgid "Edit Connection"
-msgstr "Connectie bewerken"
+#: ../../include/channel.php:980
+msgid "Visible to everybody"
+msgstr "Voor iedereen zichtbaar"
-#: ../../include/conversation.php:958
-msgid "Message"
-msgstr "Bericht"
+#: ../../include/channel.php:1053 ../../include/channel.php:1166
+msgid "Gender:"
+msgstr "Geslacht:"
-#: ../../include/conversation.php:1075
-#, php-format
-msgid "%s likes this."
-msgstr "%s vindt dit leuk."
+#: ../../include/channel.php:1054 ../../include/channel.php:1210
+msgid "Status:"
+msgstr "Status:"
-#: ../../include/conversation.php:1075
-#, php-format
-msgid "%s doesn't like this."
-msgstr "%s vindt dit niet leuk."
+#: ../../include/channel.php:1055 ../../include/channel.php:1221
+msgid "Homepage:"
+msgstr "Homepagina:"
-#: ../../include/conversation.php:1079
-#, php-format
-msgid "<span %1$s>%2$d people</span> like this."
-msgid_plural "<span %1$s>%2$d people</span> like this."
-msgstr[0] "<span %1$s>%2$d persoon</span> vindt dit leuk."
-msgstr[1] "<span %1$s>%2$d personen</span> vinden dit leuk."
+#: ../../include/channel.php:1056
+msgid "Online Now"
+msgstr "Nu online"
-#: ../../include/conversation.php:1081
-#, php-format
-msgid "<span %1$s>%2$d people</span> don't like this."
-msgid_plural "<span %1$s>%2$d people</span> don't like this."
-msgstr[0] "<span %1$s>%2$d persoon</span> vindt dit niet leuk."
-msgstr[1] "<span %1$s>%2$d personen</span> vinden dit niet leuk."
+#: ../../include/channel.php:1171
+msgid "Like this channel"
+msgstr "Vind dit kanaal leuk"
-#: ../../include/conversation.php:1087
-msgid "and"
-msgstr "en"
+#: ../../include/channel.php:1195
+msgid "j F, Y"
+msgstr "F j Y"
-#: ../../include/conversation.php:1090
-#, php-format
-msgid ", and %d other people"
-msgid_plural ", and %d other people"
-msgstr[0] ", en %d ander persoon"
-msgstr[1] ", en %d andere personen"
+#: ../../include/channel.php:1196
+msgid "j F"
+msgstr "F j"
-#: ../../include/conversation.php:1091
-#, php-format
-msgid "%s like this."
-msgstr "%s vinden dit leuk."
+#: ../../include/channel.php:1203
+msgid "Birthday:"
+msgstr "Geboortedatum:"
-#: ../../include/conversation.php:1091
+#: ../../include/channel.php:1216
#, php-format
-msgid "%s don't like this."
-msgstr "%s vinden dit niet leuk."
-
-#: ../../include/conversation.php:1130
-msgid "Set your location"
-msgstr "Locatie instellen"
-
-#: ../../include/conversation.php:1131
-msgid "Clear browser location"
-msgstr "Locatie van webbrowser wissen"
-
-#: ../../include/conversation.php:1177
-msgid "Tag term:"
-msgstr "Tag:"
+msgid "for %1$d %2$s"
+msgstr "voor %1$d %2$s"
-#: ../../include/conversation.php:1178
-msgid "Where are you right now?"
-msgstr "Waar bevind je je op dit moment?"
+#: ../../include/channel.php:1219
+msgid "Sexual Preference:"
+msgstr "Seksuele voorkeur:"
-#: ../../include/conversation.php:1210
-msgid "Page link name"
-msgstr "Linknaam pagina"
+#: ../../include/channel.php:1225
+msgid "Tags:"
+msgstr "Tags:"
-#: ../../include/conversation.php:1213
-msgid "Post as"
-msgstr "Bericht plaatsen als"
+#: ../../include/channel.php:1227
+msgid "Political Views:"
+msgstr "Politieke overtuigingen:"
-#: ../../include/conversation.php:1223
-msgid "Toggle voting"
-msgstr "Peiling in- of uitschakelen"
+#: ../../include/channel.php:1229
+msgid "Religion:"
+msgstr "Religie:"
-#: ../../include/conversation.php:1231
-msgid "Categories (optional, comma-separated list)"
-msgstr "Categorieën (optioneel, door komma's gescheiden lijst)"
+#: ../../include/channel.php:1233
+msgid "Hobbies/Interests:"
+msgstr "Hobby's/interesses:"
-#: ../../include/conversation.php:1254
-msgid "Set publish date"
-msgstr "Publicatiedatum instellen"
+#: ../../include/channel.php:1235
+msgid "Likes:"
+msgstr "Houdt van:"
-#: ../../include/conversation.php:1258
-msgid "OK"
-msgstr "OK"
+#: ../../include/channel.php:1237
+msgid "Dislikes:"
+msgstr "Houdt niet van:"
-#: ../../include/conversation.php:1503
-msgid "Discover"
-msgstr "Ontdekken"
+#: ../../include/channel.php:1239
+msgid "Contact information and Social Networks:"
+msgstr "Contactinformatie en sociale netwerken:"
-#: ../../include/conversation.php:1506
-msgid "Imported public streams"
-msgstr "Openbare streams importeren"
+#: ../../include/channel.php:1241
+msgid "My other channels:"
+msgstr "Mijn andere kanalen"
-#: ../../include/conversation.php:1511
-msgid "Commented Order"
-msgstr "Nieuwe reacties bovenaan"
+#: ../../include/channel.php:1243
+msgid "Musical interests:"
+msgstr "Muzikale interesses:"
-#: ../../include/conversation.php:1514
-msgid "Sort by Comment Date"
-msgstr "Berichten met nieuwe reacties bovenaan"
+#: ../../include/channel.php:1245
+msgid "Books, literature:"
+msgstr "Boeken, literatuur:"
-#: ../../include/conversation.php:1518
-msgid "Posted Order"
-msgstr "Nieuwe berichten bovenaan"
+#: ../../include/channel.php:1247
+msgid "Television:"
+msgstr "Televisie:"
-#: ../../include/conversation.php:1521
-msgid "Sort by Post Date"
-msgstr "Nieuwe berichten bovenaan"
+#: ../../include/channel.php:1249
+msgid "Film/dance/culture/entertainment:"
+msgstr "Films/dansen/cultuur/vermaak:"
-#: ../../include/conversation.php:1529
-msgid "Posts that mention or involve you"
-msgstr "Alleen berichten die jou vermelden of waar je op een andere manier bij betrokken bent"
+#: ../../include/channel.php:1251
+msgid "Love/Romance:"
+msgstr "Liefde/romantiek:"
-#: ../../include/conversation.php:1538
-msgid "Activity Stream - by date"
-msgstr "Activiteitenstroom - volgens datum"
+#: ../../include/channel.php:1253
+msgid "Work/employment:"
+msgstr "Werk/beroep:"
-#: ../../include/conversation.php:1544
-msgid "Starred"
-msgstr "Met ster"
+#: ../../include/channel.php:1255
+msgid "School/education:"
+msgstr "School/opleiding:"
-#: ../../include/conversation.php:1547
-msgid "Favourite Posts"
-msgstr "Favoriete berichten"
+#: ../../include/channel.php:1276
+msgid "Like this thing"
+msgstr "Vind dit ding leuk"
-#: ../../include/conversation.php:1554
-msgid "Spam"
-msgstr "Spam"
+#: ../../include/datetime.php:135
+msgid "Birthday"
+msgstr "Verjaardag of geboortedatum"
-#: ../../include/conversation.php:1557
-msgid "Posts flagged as SPAM"
-msgstr "Berichten gemarkeerd als SPAM"
+#: ../../include/datetime.php:137
+msgid "Age: "
+msgstr "Leeftijd:"
-#: ../../include/conversation.php:1614
-msgid "Status Messages and Posts"
-msgstr "Berichten in dit kanaal"
+#: ../../include/datetime.php:139
+msgid "YYYY-MM-DD or MM-DD"
+msgstr "JJJJ-MM-DD of MM-DD"
-#: ../../include/conversation.php:1623
-msgid "About"
-msgstr "Over"
+#: ../../include/datetime.php:272 ../../boot.php:2577
+msgid "never"
+msgstr "nooit"
-#: ../../include/conversation.php:1626
-msgid "Profile Details"
-msgstr "Profiel"
+#: ../../include/datetime.php:278
+msgid "less than a second ago"
+msgstr "minder dan een seconde geleden"
-#: ../../include/conversation.php:1635 ../../include/photos.php:502
-msgid "Photo Albums"
-msgstr "Fotoalbums"
+#: ../../include/datetime.php:296
+#, php-format
+msgctxt "e.g. 22 hours ago, 1 minute ago"
+msgid "%1$d %2$s ago"
+msgstr "%1$d %2$s geleden"
-#: ../../include/conversation.php:1642
-msgid "Files and Storage"
-msgstr "Bestanden en opslagruimte"
+#: ../../include/datetime.php:307
+msgctxt "relative_date"
+msgid "year"
+msgid_plural "years"
+msgstr[0] "jaar"
+msgstr[1] "jaren"
-#: ../../include/conversation.php:1678
-msgid "Saved Bookmarks"
-msgstr "Opgeslagen bladwijzers"
+#: ../../include/datetime.php:310
+msgctxt "relative_date"
+msgid "month"
+msgid_plural "months"
+msgstr[0] "maand"
+msgstr[1] "maanden"
-#: ../../include/conversation.php:1688
-msgid "Manage Webpages"
-msgstr "Webpagina's beheren"
+#: ../../include/datetime.php:313
+msgctxt "relative_date"
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "week"
+msgstr[1] "weken"
-#: ../../include/conversation.php:1747
-msgctxt "noun"
-msgid "Attending"
-msgid_plural "Attending"
-msgstr[0] "aanwezig"
-msgstr[1] "aanwezig"
+#: ../../include/datetime.php:316
+msgctxt "relative_date"
+msgid "day"
+msgid_plural "days"
+msgstr[0] "dag"
+msgstr[1] "dagen"
-#: ../../include/conversation.php:1750
-msgctxt "noun"
-msgid "Not Attending"
-msgid_plural "Not Attending"
-msgstr[0] "niet aanwezig"
-msgstr[1] "niet aanwezig"
+#: ../../include/datetime.php:319
+msgctxt "relative_date"
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "uur"
+msgstr[1] "uren"
-#: ../../include/conversation.php:1753
-msgctxt "noun"
-msgid "Undecided"
-msgid_plural "Undecided"
-msgstr[0] "nog niet beslist"
-msgstr[1] "nog niet beslist"
+#: ../../include/datetime.php:322
+msgctxt "relative_date"
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minuut"
+msgstr[1] "minuten"
-#: ../../include/conversation.php:1756
-msgctxt "noun"
-msgid "Agree"
-msgid_plural "Agrees"
-msgstr[0] "eens"
-msgstr[1] "eens"
+#: ../../include/datetime.php:325
+msgctxt "relative_date"
+msgid "second"
+msgid_plural "seconds"
+msgstr[0] "seconde"
+msgstr[1] "seconden"
-#: ../../include/conversation.php:1759
-msgctxt "noun"
-msgid "Disagree"
-msgid_plural "Disagrees"
-msgstr[0] "oneens"
-msgstr[1] "oneens"
+#: ../../include/datetime.php:562
+#, php-format
+msgid "%1$s's birthday"
+msgstr "Verjaardag van %1$s"
-#: ../../include/conversation.php:1762
-msgctxt "noun"
-msgid "Abstain"
-msgid_plural "Abstains"
-msgstr[0] "onthouding"
-msgstr[1] "onthoudingen"
+#: ../../include/datetime.php:563
+#, php-format
+msgid "Happy Birthday %1$s"
+msgstr "Gefeliciteerd met je verjaardag %1$s"
#: ../../include/selectors.php:30
msgid "Frequently"
@@ -8092,6 +8134,14 @@ msgstr "Wekelijks"
msgid "Monthly"
msgstr "Maandelijks"
+#: ../../include/selectors.php:49 ../../include/selectors.php:66
+msgid "Male"
+msgstr "Man"
+
+#: ../../include/selectors.php:49 ../../include/selectors.php:66
+msgid "Female"
+msgstr "Vrouw"
+
#: ../../include/selectors.php:49
msgid "Currently Male"
msgstr "Momenteel man"
@@ -8132,12 +8182,6 @@ msgstr "Genderneutraal"
msgid "Non-specific"
msgstr "Niet gespecificeerd"
-#: ../../include/selectors.php:49 ../../include/selectors.php:66
-#: ../../include/selectors.php:104 ../../include/selectors.php:140
-#: ../../include/permissions.php:881
-msgid "Other"
-msgstr "Anders"
-
#: ../../include/selectors.php:49
msgid "Undecided"
msgstr "Nog niet beslist"
@@ -8314,778 +8358,333 @@ msgstr "Maakt mij niks uit"
msgid "Ask me"
msgstr "Vraag het me"
-#: ../../include/PermissionDescription.php:31
-#: ../../include/acl_selectors.php:232
-msgid "Visible to your default audience"
-msgstr "Voor iedereen zichtbaar, mits niet anders ingesteld"
-
-#: ../../include/PermissionDescription.php:115
-#: ../../include/acl_selectors.php:268
-msgid "Only me"
-msgstr "Alleen ik"
-
-#: ../../include/PermissionDescription.php:116
-msgid "Public"
-msgstr "Openbaar"
-
-#: ../../include/PermissionDescription.php:117
-msgid "Anybody in the $Projectname network"
-msgstr "Iedereen in het $Projectname-netwerk"
-
-#: ../../include/PermissionDescription.php:118
+#: ../../include/photos.php:114
#, php-format
-msgid "Any account on %s"
-msgstr "Iedereen op %s"
+msgid "Image exceeds website size limit of %lu bytes"
+msgstr "Afbeelding is groter dan op deze hub toegestane limiet van %lu bytes"
-#: ../../include/PermissionDescription.php:119
-msgid "Any of my connections"
-msgstr "Al mijn geaccepteerde connecties"
+#: ../../include/photos.php:121
+msgid "Image file is empty."
+msgstr "Afbeeldingsbestand is leeg"
-#: ../../include/PermissionDescription.php:120
-msgid "Only connections I specifically allow"
-msgstr "Alleen connecties die uitdrukkelijk door jou zijn toegestaan"
+#: ../../include/photos.php:259
+msgid "Photo storage failed."
+msgstr "Foto kan niet worden opgeslagen"
-#: ../../include/PermissionDescription.php:121
-msgid "Anybody authenticated (could include visitors from other networks)"
-msgstr "Geauthenticeerde leden (kan bezoekers van andere netwerken bevatten)"
+#: ../../include/photos.php:299
+msgid "a new photo"
+msgstr "een nieuwe foto"
-#: ../../include/PermissionDescription.php:122
-msgid "Any connections including those who haven't yet been approved"
-msgstr "Al mijn geaccepteerde en nog niet geaccepteerde connecties"
+#: ../../include/photos.php:303
+#, php-format
+msgctxt "photo_upload"
+msgid "%1$s posted %2$s to %3$s"
+msgstr "%1$s plaatste %2$s op %3$s"
-#: ../../include/PermissionDescription.php:161
-msgid ""
-"This is your default setting for the audience of your normal stream, and "
-"posts."
-msgstr "Dit is de standaard privacy-instelling voor wie jouw berichten kan bekijken"
+#: ../../include/photos.php:506 ../../include/conversation.php:1668
+msgid "Photo Albums"
+msgstr "Fotoalbums"
-#: ../../include/PermissionDescription.php:162
-msgid ""
-"This is your default setting for who can view your default channel profile"
-msgstr "Dit is de standaard privacy-instelling voor wie jouw standaardprofiel kan bekijken"
+#: ../../include/photos.php:510
+msgid "Upload New Photos"
+msgstr "Nieuwe foto's uploaden"
-#: ../../include/PermissionDescription.php:163
-msgid "This is your default setting for who can view your connections"
-msgstr "Dit is de standaard privacy-instelling voor wie een lijst met jouw connecties kan bekijken"
+#: ../../include/security.php:109
+msgid "guest:"
+msgstr "gast:"
-#: ../../include/PermissionDescription.php:164
+#: ../../include/security.php:527
msgid ""
-"This is your default setting for who can view your file storage and photos"
-msgstr "Dit is de standaard privacy-instelling voor wie jouw bestanden en foto's kan bekijken"
-
-#: ../../include/PermissionDescription.php:165
-msgid "This is your default setting for the audience of your webpages"
-msgstr "Dit is de standaard privacy-instelling voor wie jouw webpagina's kan bekijken"
-
-#: ../../include/account.php:28
-msgid "Not a valid email address"
-msgstr "Geen geldig e-mailadres"
-
-#: ../../include/account.php:30
-msgid "Your email domain is not among those allowed on this site"
-msgstr "Jouw e-maildomein is op deze hub niet toegestaan"
-
-#: ../../include/account.php:36
-msgid "Your email address is already registered at this site."
-msgstr "Jouw e-mailadres is al op deze hub geregistreerd."
-
-#: ../../include/account.php:68
-msgid "An invitation is required."
-msgstr "Een uitnodiging is vereist"
-
-#: ../../include/account.php:72
-msgid "Invitation could not be verified."
-msgstr "Uitnodiging kon niet geverifieerd worden"
-
-#: ../../include/account.php:122
-msgid "Please enter the required information."
-msgstr "Vul de vereiste informatie in."
-
-#: ../../include/account.php:189
-msgid "Failed to store account information."
-msgstr "Account-informatie kon niet opgeslagen worden."
+"The form security token was not correct. This probably happened because the "
+"form has been opened for too long (>3 hours) before submitting it."
+msgstr "De beveiligings-token van het tekstvak was ongeldig. Dit is mogelijk het gevolg van dat er te lang (meer dan 3 uur) gewacht is om de tekst op te slaan. "
-#: ../../include/account.php:249
+#: ../../include/conversation.php:204
#, php-format
-msgid "Registration confirmation for %s"
-msgstr "Registratiebevestiging voor %s"
+msgid "%1$s is now connected with %2$s"
+msgstr "%1$s is nu met %2$s verbonden"
-#: ../../include/account.php:315
+#: ../../include/conversation.php:239
#, php-format
-msgid "Registration request at %s"
-msgstr "Registratiebevestiging voor %s"
+msgid "%1$s poked %2$s"
+msgstr "%1$s heeft %2$s aangestoten"
-#: ../../include/account.php:317 ../../include/account.php:344
-#: ../../include/account.php:404 ../../include/network.php:1871
-msgid "Administrator"
-msgstr "Beheerder"
+#: ../../include/conversation.php:694
+#, php-format
+msgid "View %s's profile @ %s"
+msgstr "Bekijk het profiel van %s @ %s"
-#: ../../include/account.php:339
-msgid "your registration password"
-msgstr "jouw registratiewachtwoord"
+#: ../../include/conversation.php:713
+msgid "Categories:"
+msgstr "Categorieën:"
-#: ../../include/account.php:342 ../../include/account.php:402
-#, php-format
-msgid "Registration details for %s"
-msgstr "Registratiegegevens voor %s"
+#: ../../include/conversation.php:714
+msgid "Filed under:"
+msgstr "Bewaard onder:"
-#: ../../include/account.php:414
-msgid "Account approved."
-msgstr "Account goedgekeurd"
+#: ../../include/conversation.php:741
+msgid "View in context"
+msgstr "In context bekijken"
-#: ../../include/account.php:454
-#, php-format
-msgid "Registration revoked for %s"
-msgstr "Registratie ingetrokken voor %s"
+#: ../../include/conversation.php:851
+msgid "remove"
+msgstr "verwijderen"
-#: ../../include/account.php:506
-msgid "Account verified. Please login."
-msgstr "Account is geverifieerd. Je kan inloggen."
+#: ../../include/conversation.php:855 ../../include/nav.php:251
+msgid "Loading..."
+msgstr "Aan het laden..."
-#: ../../include/account.php:723 ../../include/account.php:725
-msgid "Click here to upgrade."
-msgstr "Klik hier om te upgraden."
+#: ../../include/conversation.php:856
+msgid "Delete Selected Items"
+msgstr "Verwijder de geselecteerde items"
-#: ../../include/account.php:731
-msgid "This action exceeds the limits set by your subscription plan."
-msgstr "Deze handeling overschrijdt de beperkingen die voor jouw abonnement gelden."
+#: ../../include/conversation.php:949
+msgid "View Source"
+msgstr "Bron weergeven"
-#: ../../include/account.php:736
-msgid "This action is not available under your subscription plan."
-msgstr "Deze handeling is niet mogelijk met jouw abonnement."
+#: ../../include/conversation.php:950
+msgid "Follow Thread"
+msgstr "Conversatie volgen"
-#: ../../include/attach.php:247 ../../include/attach.php:333
-msgid "Item was not found."
-msgstr "Item niet gevonden"
+#: ../../include/conversation.php:951
+msgid "Unfollow Thread"
+msgstr "Conversatie niet meer volgen"
-#: ../../include/attach.php:497
-msgid "No source file."
-msgstr "Geen bronbestand."
+#: ../../include/conversation.php:956
+msgid "Activity/Posts"
+msgstr "Activiteit/berichten connectie"
-#: ../../include/attach.php:519
-msgid "Cannot locate file to replace"
-msgstr "Kan het te vervangen bestand niet vinden"
+#: ../../include/conversation.php:958
+msgid "Edit Connection"
+msgstr "Connectie bewerken"
-#: ../../include/attach.php:537
-msgid "Cannot locate file to revise/update"
-msgstr "Kan het bestand wat aangepast moet worden niet vinden"
+#: ../../include/conversation.php:959
+msgid "Message"
+msgstr "Bericht"
-#: ../../include/attach.php:672
+#: ../../include/conversation.php:1076
#, php-format
-msgid "File exceeds size limit of %d"
-msgstr "Bestand is groter dan de toegelaten %d"
+msgid "%s likes this."
+msgstr "%s vindt dit leuk."
-#: ../../include/attach.php:686
+#: ../../include/conversation.php:1076
#, php-format
-msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
-msgstr "Je hebt jouw limiet van %1$.0f MB opslagruimte voor bijlagen bereikt."
-
-#: ../../include/attach.php:842
-msgid "File upload failed. Possible system limit or action terminated."
-msgstr "Uploaden van bestand mislukt. Mogelijk systeemlimiet bereikt of actie afgebroken."
-
-#: ../../include/attach.php:855
-msgid "Stored file could not be verified. Upload failed."
-msgstr "Opgeslagen bestand kon niet worden geverifieerd. Uploaden mislukt."
-
-#: ../../include/attach.php:909 ../../include/attach.php:925
-msgid "Path not available."
-msgstr "Pad niet beschikbaar."
-
-#: ../../include/attach.php:971 ../../include/attach.php:1123
-msgid "Empty pathname"
-msgstr "Padnaam leeg"
-
-#: ../../include/attach.php:997
-msgid "duplicate filename or path"
-msgstr "dubbele bestandsnaam of pad"
-
-#: ../../include/attach.php:1019
-msgid "Path not found."
-msgstr "Pad niet gevonden"
-
-#: ../../include/attach.php:1077
-msgid "mkdir failed."
-msgstr "directory aanmaken (mkdir) mislukt."
-
-#: ../../include/attach.php:1081
-msgid "database storage failed."
-msgstr "opslag in database mislukt."
-
-#: ../../include/attach.php:1129
-msgid "Empty path"
-msgstr "Ontbrekend bestandspad"
-
-#: ../../include/channel.php:32
-msgid "Unable to obtain identity information from database"
-msgstr "Niet in staat om identiteitsinformatie uit de database te verkrijgen"
-
-#: ../../include/channel.php:66
-msgid "Empty name"
-msgstr "Ontbrekende naam"
-
-#: ../../include/channel.php:69
-msgid "Name too long"
-msgstr "Naam te lang"
-
-#: ../../include/channel.php:180
-msgid "No account identifier"
-msgstr "Geen account-identificator"
-
-#: ../../include/channel.php:192
-msgid "Nickname is required."
-msgstr "Bijnaam is verplicht"
-
-#: ../../include/channel.php:206
-msgid "Reserved nickname. Please choose another."
-msgstr "Deze naam is gereserveerd. Kies een andere."
-
-#: ../../include/channel.php:211
-msgid ""
-"Nickname has unsupported characters or is already being used on this site."
-msgstr "Deze naam heeft niet ondersteunde karakters of is al op deze hub in gebruik."
-
-#: ../../include/channel.php:287
-msgid "Unable to retrieve created identity"
-msgstr "Niet in staat om aangemaakte identiteit te vinden"
-
-#: ../../include/channel.php:345
-msgid "Default Profile"
-msgstr "Standaardprofiel"
-
-#: ../../include/channel.php:791
-msgid "Requested channel is not available."
-msgstr "Opgevraagd kanaal is niet beschikbaar."
-
-#: ../../include/channel.php:938
-msgid "Create New Profile"
-msgstr "Nieuw profiel aanmaken"
-
-#: ../../include/channel.php:958
-msgid "Visible to everybody"
-msgstr "Voor iedereen zichtbaar"
-
-#: ../../include/channel.php:1031 ../../include/channel.php:1142
-msgid "Gender:"
-msgstr "Geslacht:"
-
-#: ../../include/channel.php:1032 ../../include/channel.php:1186
-msgid "Status:"
-msgstr "Status:"
-
-#: ../../include/channel.php:1033 ../../include/channel.php:1197
-msgid "Homepage:"
-msgstr "Homepagina:"
-
-#: ../../include/channel.php:1034
-msgid "Online Now"
-msgstr "Nu online"
-
-#: ../../include/channel.php:1147
-msgid "Like this channel"
-msgstr "Vind dit kanaal leuk"
-
-#: ../../include/channel.php:1171
-msgid "j F, Y"
-msgstr "F j Y"
-
-#: ../../include/channel.php:1172
-msgid "j F"
-msgstr "F j"
-
-#: ../../include/channel.php:1179
-msgid "Birthday:"
-msgstr "Geboortedatum:"
+msgid "%s doesn't like this."
+msgstr "%s vindt dit niet leuk."
-#: ../../include/channel.php:1192
+#: ../../include/conversation.php:1080
#, php-format
-msgid "for %1$d %2$s"
-msgstr "voor %1$d %2$s"
-
-#: ../../include/channel.php:1195
-msgid "Sexual Preference:"
-msgstr "Seksuele voorkeur:"
-
-#: ../../include/channel.php:1201
-msgid "Tags:"
-msgstr "Tags:"
-
-#: ../../include/channel.php:1203
-msgid "Political Views:"
-msgstr "Politieke overtuigingen:"
-
-#: ../../include/channel.php:1205
-msgid "Religion:"
-msgstr "Religie:"
-
-#: ../../include/channel.php:1209
-msgid "Hobbies/Interests:"
-msgstr "Hobby's/interesses:"
-
-#: ../../include/channel.php:1211
-msgid "Likes:"
-msgstr "Houdt van:"
-
-#: ../../include/channel.php:1213
-msgid "Dislikes:"
-msgstr "Houdt niet van:"
-
-#: ../../include/channel.php:1215
-msgid "Contact information and Social Networks:"
-msgstr "Contactinformatie en sociale netwerken:"
-
-#: ../../include/channel.php:1217
-msgid "My other channels:"
-msgstr "Mijn andere kanalen"
-
-#: ../../include/channel.php:1219
-msgid "Musical interests:"
-msgstr "Muzikale interesses:"
-
-#: ../../include/channel.php:1221
-msgid "Books, literature:"
-msgstr "Boeken, literatuur:"
-
-#: ../../include/channel.php:1223
-msgid "Television:"
-msgstr "Televisie:"
-
-#: ../../include/channel.php:1225
-msgid "Film/dance/culture/entertainment:"
-msgstr "Films/dansen/cultuur/vermaak:"
-
-#: ../../include/channel.php:1227
-msgid "Love/Romance:"
-msgstr "Liefde/romantiek:"
-
-#: ../../include/channel.php:1229
-msgid "Work/employment:"
-msgstr "Werk/beroep:"
-
-#: ../../include/channel.php:1231
-msgid "School/education:"
-msgstr "School/opleiding:"
-
-#: ../../include/channel.php:1251
-msgid "Like this thing"
-msgstr "Vind dit ding leuk"
-
-#: ../../include/features.php:48
-msgid "General Features"
-msgstr "Algemene functies"
-
-#: ../../include/features.php:50
-msgid "Content Expiration"
-msgstr "Inhoud laten verlopen"
-
-#: ../../include/features.php:50
-msgid "Remove posts/comments and/or private messages at a future time"
-msgstr "Berichten, reacties en/of privéberichten na een bepaalde tijd verwijderen"
-
-#: ../../include/features.php:51
-msgid "Multiple Profiles"
-msgstr "Meerdere profielen"
-
-#: ../../include/features.php:51
-msgid "Ability to create multiple profiles"
-msgstr "Mogelijkheid om meerdere profielen aan te maken"
-
-#: ../../include/features.php:52
-msgid "Advanced Profiles"
-msgstr "Geavanceerde profielen"
-
-#: ../../include/features.php:52
-msgid "Additional profile sections and selections"
-msgstr "Extra onderdelen en keuzes voor je profiel"
-
-#: ../../include/features.php:53
-msgid "Profile Import/Export"
-msgstr "Profiel importen/exporteren"
-
-#: ../../include/features.php:53
-msgid "Save and load profile details across sites/channels"
-msgstr "Profielgegevens opslaan en in andere hubs/kanalen gebruiken."
-
-#: ../../include/features.php:54
-msgid "Web Pages"
-msgstr "Webpagina's"
-
-#: ../../include/features.php:54
-msgid "Provide managed web pages on your channel"
-msgstr "Sta beheerde webpagina's op jouw kanaal toe"
-
-#: ../../include/features.php:55
-msgid "Hide Rating"
-msgstr "Beoordelingen verbergen"
-
-#: ../../include/features.php:55
-msgid ""
-"Hide the rating buttons on your channel and profile pages. Note: People can "
-"still rate you somewhere else."
-msgstr "Verbergt de beoordelingsknoppen op jouw kanaal- en profielpagina's. Let op: Mensen kunnen jou nog steeds ergens anders beoordelen. "
-
-#: ../../include/features.php:56
-msgid "Private Notes"
-msgstr "Privé-aantekeningen"
-
-#: ../../include/features.php:56
-msgid "Enables a tool to store notes and reminders (note: not encrypted)"
-msgstr "Een eenvoudige toepassing om aantekeningen en herinneringen in te bewaren (let op: niet versleuteld)"
-
-#: ../../include/features.php:57
-msgid "Navigation Channel Select"
-msgstr "Kanaal kiezen in navigatiemenu"
-
-#: ../../include/features.php:57
-msgid "Change channels directly from within the navigation dropdown menu"
-msgstr "Kies een ander kanaal direct vanuit het dropdown-menu op de navigatiebalk"
-
-#: ../../include/features.php:58
-msgid "Photo Location"
-msgstr "Fotolocatie"
-
-#: ../../include/features.php:58
-msgid "If location data is available on uploaded photos, link this to a map."
-msgstr "Wanneer in de geüploade foto's locatiegegevens aanwezig zijn, link dit dan aan een kaart."
-
-#: ../../include/features.php:59
-msgid "Access Controlled Chatrooms"
-msgstr "Chatkanalen met toegangscontrole "
-
-#: ../../include/features.php:59
-msgid "Provide chatrooms and chat services with access control."
-msgstr "Chatkanalen en chatdiensten met toegangscontrole aanbieden."
-
-#: ../../include/features.php:60
-msgid "Smart Birthdays"
-msgstr "Slimme verjaardagen"
-
-#: ../../include/features.php:60
-msgid ""
-"Make birthday events timezone aware in case your friends are scattered "
-"across the planet."
-msgstr "Maak verjaardagen bewust van tijdzones. Voor het geval dat jouw vrienden over de hele wereld verspreid zijn."
-
-#: ../../include/features.php:61
-msgid "Expert Mode"
-msgstr "Expertmodus"
-
-#: ../../include/features.php:61
-msgid "Enable Expert Mode to provide advanced configuration options"
-msgstr "Schakel de expertmodus in voor geavanceerde instellingen"
-
-#: ../../include/features.php:62
-msgid "Premium Channel"
-msgstr "Premiumkanaal"
-
-#: ../../include/features.php:62
-msgid ""
-"Allows you to set restrictions and terms on those that connect with your "
-"channel"
-msgstr "Stelt je in staat om beperkingen en voorwaarden in te stellen voor jouw kanaal"
-
-#: ../../include/features.php:67
-msgid "Post Composition Features"
-msgstr "Functies voor het opstellen van berichten"
-
-#: ../../include/features.php:70
-msgid "Large Photos"
-msgstr "Grote foto's"
-
-#: ../../include/features.php:70
-msgid ""
-"Include large (1024px) photo thumbnails in posts. If not enabled, use small "
-"(640px) photo thumbnails"
-msgstr "Gebruik grotere foto's (1024px) in berichten. Wanneer dit is uitgeschakeld worden er kleinere foto's (640px) gebruikt."
-
-#: ../../include/features.php:71
-msgid "Automatically import channel content from other channels or feeds"
-msgstr "Automatisch inhoud uit andere kanalen of feeds importeren."
-
-#: ../../include/features.php:72
-msgid "Even More Encryption"
-msgstr "Extra encryptie"
-
-#: ../../include/features.php:72
-msgid ""
-"Allow optional encryption of content end-to-end with a shared secret key"
-msgstr "Sta toe dat inhoud extra end-to-end wordt versleuteld met een gedeelde geheime sleutel."
-
-#: ../../include/features.php:73
-msgid "Enable Voting Tools"
-msgstr "Peilingen inschakelen"
-
-#: ../../include/features.php:73
-msgid "Provide a class of post which others can vote on"
-msgstr "Maakt het mogelijk om een bericht op te stellen, waar mensen op kunnen stemmen."
-
-#: ../../include/features.php:74
-msgid "Delayed Posting"
-msgstr "Berichten uitstellen"
-
-#: ../../include/features.php:74
-msgid "Allow posts to be published at a later date"
-msgstr "Maakt het mogelijk dat berichten op een toekomstig moment gepubliceerd kunnen worden."
-
-#: ../../include/features.php:75
-msgid "Suppress Duplicate Posts/Comments"
-msgstr "Dubbele berichten/reacties tegenhouden"
-
-#: ../../include/features.php:75
-msgid ""
-"Prevent posts with identical content to be published with less than two "
-"minutes in between submissions."
-msgstr "Voorkomt dat berichten en reacties met identieke inhoud en die binnen twee minuten zijn verstuurd, worden gepubliceerd. "
-
-#: ../../include/features.php:81
-msgid "Network and Stream Filtering"
-msgstr "Netwerk- en streamfilter"
-
-#: ../../include/features.php:82
-msgid "Search by Date"
-msgstr "Zoek op datum"
-
-#: ../../include/features.php:82
-msgid "Ability to select posts by date ranges"
-msgstr "Mogelijkheid om berichten op datum te filteren "
-
-#: ../../include/features.php:83 ../../include/group.php:311
-msgid "Privacy Groups"
-msgstr "Privacygroepen"
-
-#: ../../include/features.php:83
-msgid "Enable management and selection of privacy groups"
-msgstr "Beheer en selectie van privacygroepen inschakelen"
-
-#: ../../include/features.php:84
-msgid "Save search terms for re-use"
-msgstr "Sla zoekopdrachten op voor hergebruik"
-
-#: ../../include/features.php:85
-msgid "Network Personal Tab"
-msgstr "Persoonlijke netwerktab"
-
-#: ../../include/features.php:85
-msgid "Enable tab to display only Network posts that you've interacted on"
-msgstr "Sta het toe dat de tab netwerkberichten toont waarmee je interactie had"
-
-#: ../../include/features.php:86
-msgid "Network New Tab"
-msgstr "Nieuwe netwerktab"
-
-#: ../../include/features.php:86
-msgid "Enable tab to display all new Network activity"
-msgstr "Laat de tab alle nieuwe netwerkactiviteit tonen"
+msgid "<span %1$s>%2$d people</span> like this."
+msgid_plural "<span %1$s>%2$d people</span> like this."
+msgstr[0] "<span %1$s>%2$d persoon</span> vindt dit leuk."
+msgstr[1] "<span %1$s>%2$d personen</span> vinden dit leuk."
-#: ../../include/features.php:87
-msgid "Affinity Tool"
-msgstr "Verwantschapsfilter"
+#: ../../include/conversation.php:1082
+#, php-format
+msgid "<span %1$s>%2$d people</span> don't like this."
+msgid_plural "<span %1$s>%2$d people</span> don't like this."
+msgstr[0] "<span %1$s>%2$d persoon</span> vindt dit niet leuk."
+msgstr[1] "<span %1$s>%2$d personen</span> vinden dit niet leuk."
-#: ../../include/features.php:87
-msgid "Filter stream activity by depth of relationships"
-msgstr "Filter wat je in jouw grid ziet op hoe goed je iemand kent of mag"
+#: ../../include/conversation.php:1088
+msgid "and"
+msgstr "en"
-#: ../../include/features.php:88
-msgid "Connection Filtering"
-msgstr "Berichtenfilters"
+#: ../../include/conversation.php:1091
+#, php-format
+msgid ", and %d other people"
+msgid_plural ", and %d other people"
+msgstr[0] ", en %d ander persoon"
+msgstr[1] ", en %d andere personen"
-#: ../../include/features.php:88
-msgid "Filter incoming posts from connections based on keywords/content"
-msgstr "Filter binnenkomende berichten van connecties aan de hand van trefwoorden en taal"
+#: ../../include/conversation.php:1092
+#, php-format
+msgid "%s like this."
+msgstr "%s vinden dit leuk."
-#: ../../include/features.php:89
-msgid "Show channel suggestions"
-msgstr "Voor jou mogelijk interessante kanalen voorstellen"
+#: ../../include/conversation.php:1092
+#, php-format
+msgid "%s don't like this."
+msgstr "%s vinden dit niet leuk."
-#: ../../include/features.php:94
-msgid "Post/Comment Tools"
-msgstr "Bericht- en reactiehulpmiddelen"
+#: ../../include/conversation.php:1135
+msgid "Set your location"
+msgstr "Locatie instellen"
-#: ../../include/features.php:95
-msgid "Community Tagging"
-msgstr "Taggen door anderen"
+#: ../../include/conversation.php:1136
+msgid "Clear browser location"
+msgstr "Locatie van webbrowser wissen"
-#: ../../include/features.php:95
-msgid "Ability to tag existing posts"
-msgstr "Geeft andere mensen de mogelijkheid om jouw (bestaande) berichten te taggen"
+#: ../../include/conversation.php:1184
+msgid "Tag term:"
+msgstr "Tag:"
-#: ../../include/features.php:96
-msgid "Post Categories"
-msgstr "Categorieën berichten"
+#: ../../include/conversation.php:1185
+msgid "Where are you right now?"
+msgstr "Waar bevind je je op dit moment?"
-#: ../../include/features.php:96
-msgid "Add categories to your posts"
-msgstr "Voeg categorieën toe aan je berichten"
+#: ../../include/conversation.php:1194
+msgid "Comments enabled"
+msgstr "Reacties ingeschakeld"
-#: ../../include/features.php:97
-msgid "Emoji Reactions"
-msgstr "Emoji-reacties"
+#: ../../include/conversation.php:1195
+msgid "Comments disabled"
+msgstr "Reacties uitgeschakeld"
-#: ../../include/features.php:97
-msgid "Add emoji reaction ability to posts"
-msgstr "Emoji-reacties in berichten toestaan"
+#: ../../include/conversation.php:1229
+msgid "Page link name"
+msgstr "Linknaam pagina"
-#: ../../include/features.php:98
-msgid "Ability to file posts under folders"
-msgstr "Mogelijkheid om berichten in mappen op te slaan"
+#: ../../include/conversation.php:1232
+msgid "Post as"
+msgstr "Bericht plaatsen als"
-#: ../../include/features.php:99
-msgid "Dislike Posts"
-msgstr "Vind berichten niet leuk"
+#: ../../include/conversation.php:1246
+msgid "Toggle voting"
+msgstr "Peiling in- of uitschakelen"
-#: ../../include/features.php:99
-msgid "Ability to dislike posts/comments"
-msgstr "Mogelijkheid om berichten en reacties niet leuk te vinden"
+#: ../../include/conversation.php:1249
+msgid "Disable comments"
+msgstr "Reacties uitschakelen"
-#: ../../include/features.php:100
-msgid "Star Posts"
-msgstr "Geef berichten een ster"
+#: ../../include/conversation.php:1250
+msgid "Toggle comments"
+msgstr "Reacties in- of uitschakelen"
-#: ../../include/features.php:100
-msgid "Ability to mark special posts with a star indicator"
-msgstr "Mogelijkheid om speciale berichten met een ster te markeren"
+#: ../../include/conversation.php:1258
+msgid "Categories (optional, comma-separated list)"
+msgstr "Categorieën (optioneel, door komma's gescheiden lijst)"
-#: ../../include/features.php:101
-msgid "Tag Cloud"
-msgstr "Tagwolk"
+#: ../../include/conversation.php:1281
+msgid "Other networks and post services"
+msgstr "Andere netwerken en diensten"
-#: ../../include/features.php:101
-msgid "Provide a personal tag cloud on your channel page"
-msgstr "Zorgt voor een persoonlijke wolk met tags op jouw kanaalpagina"
+#: ../../include/conversation.php:1287
+msgid "Set publish date"
+msgstr "Publicatiedatum instellen"
-#: ../../include/oembed.php:324
-msgid "Embedded content"
-msgstr "Ingesloten (embedded) inhoud"
+#: ../../include/conversation.php:1536
+msgid "Discover"
+msgstr "Ontdekken"
-#: ../../include/oembed.php:333
-msgid "Embedding disabled"
-msgstr "Insluiten (embedding) uitgeschakeld"
+#: ../../include/conversation.php:1539
+msgid "Imported public streams"
+msgstr "Openbare streams importeren"
-#: ../../include/acl_selectors.php:271
-msgid "Who can see this?"
-msgstr "Wie kan dit zien?"
+#: ../../include/conversation.php:1544
+msgid "Commented Order"
+msgstr "Nieuwe reacties bovenaan"
-#: ../../include/acl_selectors.php:272
-msgid "Custom selection"
-msgstr "Handmatige selectie"
+#: ../../include/conversation.php:1547
+msgid "Sort by Comment Date"
+msgstr "Berichten met nieuwe reacties bovenaan"
-#: ../../include/acl_selectors.php:273
-msgid ""
-"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit"
-" the scope of \"Show\"."
-msgstr "Kies \"Tonen\" om weergave toe te staan. Met \"Niet tonen\" kan je uitzonderingen maken op \"Tonen\"."
+#: ../../include/conversation.php:1551
+msgid "Posted Order"
+msgstr "Nieuwe berichten bovenaan"
-#: ../../include/acl_selectors.php:274
-msgid "Show"
-msgstr "Tonen"
+#: ../../include/conversation.php:1554
+msgid "Sort by Post Date"
+msgstr "Nieuwe berichten bovenaan"
-#: ../../include/acl_selectors.php:275
-msgid "Don't show"
-msgstr "Niet tonen"
+#: ../../include/conversation.php:1562
+msgid "Posts that mention or involve you"
+msgstr "Alleen berichten die jou vermelden of waar je op een andere manier bij betrokken bent"
-#: ../../include/acl_selectors.php:281
-msgid "Other networks and post services"
-msgstr "Andere netwerken en diensten"
+#: ../../include/conversation.php:1571
+msgid "Activity Stream - by date"
+msgstr "Activiteitenstroom - volgens datum"
-#: ../../include/acl_selectors.php:311
-#, php-format
-msgid ""
-"Post permissions %s cannot be changed %s after a post is shared.</br />These"
-" permissions set who is allowed to view the post."
-msgstr "Permissies van berichten %s zijn niet meer te veranderen %s nadat een bericht is gedeeld.</br />Met deze permissies bepaal je wie het bericht kan zien."
+#: ../../include/conversation.php:1577
+msgid "Starred"
+msgstr "Met ster"
-#: ../../include/auth.php:105
-msgid "Logged out."
-msgstr "Uitgelogd."
+#: ../../include/conversation.php:1580
+msgid "Favourite Posts"
+msgstr "Favoriete berichten"
-#: ../../include/auth.php:212
-msgid "Failed authentication"
-msgstr "Mislukte authenticatie"
+#: ../../include/conversation.php:1587
+msgid "Spam"
+msgstr "Spam"
-#: ../../include/datetime.php:135
-msgid "Birthday"
-msgstr "Verjaardag of geboortedatum"
+#: ../../include/conversation.php:1590
+msgid "Posts flagged as SPAM"
+msgstr "Berichten gemarkeerd als SPAM"
-#: ../../include/datetime.php:137
-msgid "Age: "
-msgstr "Leeftijd:"
+#: ../../include/conversation.php:1647
+msgid "Status Messages and Posts"
+msgstr "Berichten in dit kanaal"
-#: ../../include/datetime.php:139
-msgid "YYYY-MM-DD or MM-DD"
-msgstr "JJJJ-MM-DD of MM-DD"
+#: ../../include/conversation.php:1656
+msgid "About"
+msgstr "Over"
-#: ../../include/datetime.php:272 ../../boot.php:2470
-msgid "never"
-msgstr "nooit"
+#: ../../include/conversation.php:1659
+msgid "Profile Details"
+msgstr "Profiel"
-#: ../../include/datetime.php:278
-msgid "less than a second ago"
-msgstr "minder dan een seconde geleden"
+#: ../../include/conversation.php:1675
+msgid "Files and Storage"
+msgstr "Bestanden en opslagruimte"
-#: ../../include/datetime.php:296
-#, php-format
-msgctxt "e.g. 22 hours ago, 1 minute ago"
-msgid "%1$d %2$s ago"
-msgstr "%1$d %2$s geleden"
+#: ../../include/conversation.php:1708 ../../include/nav.php:104
+msgid "Bookmarks"
+msgstr "Bladwijzers"
-#: ../../include/datetime.php:307
-msgctxt "relative_date"
-msgid "year"
-msgid_plural "years"
-msgstr[0] "jaar"
-msgstr[1] "jaren"
+#: ../../include/conversation.php:1711
+msgid "Saved Bookmarks"
+msgstr "Opgeslagen bladwijzers"
-#: ../../include/datetime.php:310
-msgctxt "relative_date"
-msgid "month"
-msgid_plural "months"
-msgstr[0] "maand"
-msgstr[1] "maanden"
+#: ../../include/conversation.php:1721
+msgid "Manage Webpages"
+msgstr "Webpagina's beheren"
-#: ../../include/datetime.php:313
-msgctxt "relative_date"
-msgid "week"
-msgid_plural "weeks"
-msgstr[0] "week"
-msgstr[1] "weken"
+#: ../../include/conversation.php:1786
+msgctxt "noun"
+msgid "Attending"
+msgid_plural "Attending"
+msgstr[0] "aanwezig"
+msgstr[1] "aanwezig"
-#: ../../include/datetime.php:316
-msgctxt "relative_date"
-msgid "day"
-msgid_plural "days"
-msgstr[0] "dag"
-msgstr[1] "dagen"
+#: ../../include/conversation.php:1789
+msgctxt "noun"
+msgid "Not Attending"
+msgid_plural "Not Attending"
+msgstr[0] "niet aanwezig"
+msgstr[1] "niet aanwezig"
-#: ../../include/datetime.php:319
-msgctxt "relative_date"
-msgid "hour"
-msgid_plural "hours"
-msgstr[0] "uur"
-msgstr[1] "uren"
+#: ../../include/conversation.php:1792
+msgctxt "noun"
+msgid "Undecided"
+msgid_plural "Undecided"
+msgstr[0] "nog niet beslist"
+msgstr[1] "nog niet beslist"
-#: ../../include/datetime.php:322
-msgctxt "relative_date"
-msgid "minute"
-msgid_plural "minutes"
-msgstr[0] "minuut"
-msgstr[1] "minuten"
+#: ../../include/conversation.php:1795
+msgctxt "noun"
+msgid "Agree"
+msgid_plural "Agrees"
+msgstr[0] "eens"
+msgstr[1] "eens"
-#: ../../include/datetime.php:325
-msgctxt "relative_date"
-msgid "second"
-msgid_plural "seconds"
-msgstr[0] "seconde"
-msgstr[1] "seconden"
+#: ../../include/conversation.php:1798
+msgctxt "noun"
+msgid "Disagree"
+msgid_plural "Disagrees"
+msgstr[0] "oneens"
+msgstr[1] "oneens"
-#: ../../include/datetime.php:562
-#, php-format
-msgid "%1$s's birthday"
-msgstr "Verjaardag van %1$s"
+#: ../../include/conversation.php:1801
+msgctxt "noun"
+msgid "Abstain"
+msgid_plural "Abstains"
+msgstr[0] "onthouding"
+msgstr[1] "onthoudingen"
-#: ../../include/datetime.php:563
+#: ../../include/bookmarks.php:35
#, php-format
-msgid "Happy Birthday %1$s"
-msgstr "Gefeliciteerd met je verjaardag %1$s"
+msgid "%1$s's bookmarks"
+msgstr "Bladwijzers van %1$s"
#: ../../include/group.php:26
msgid ""
@@ -9102,6 +8701,10 @@ msgstr "Voeg nieuwe connecties aan deze privacygroep toe"
msgid "edit"
msgstr "bewerken"
+#: ../../include/group.php:311 ../../include/features.php:84
+msgid "Privacy Groups"
+msgstr "Privacygroepen"
+
#: ../../include/group.php:312
msgid "Edit group"
msgstr "Privacygroep bewerken"
@@ -9114,21 +8717,83 @@ msgstr "Privacygroep toevoegen"
msgid "Channels not in any privacy group"
msgstr "Kanalen die zich in geen enkele privacygroep bevinden"
+#: ../../include/page_widgets.php:7
+msgid "New Page"
+msgstr "Nieuwe pagina"
+
+#: ../../include/page_widgets.php:46
+msgid "Title"
+msgstr "Titel"
+
+#: ../../include/wiki.php:525 ../../include/bbcode.php:619
+msgid "Different viewers will see this text differently"
+msgstr "Deze tekst wordt per persoon anders weergeven."
+
+#: ../../include/event.php:22 ../../include/event.php:69
+#: ../../include/bb2diaspora.php:485
+msgid "l F d, Y \\@ g:i A"
+msgstr "l d F Y \\@ G:i"
+
+#: ../../include/event.php:30 ../../include/event.php:73
+#: ../../include/bb2diaspora.php:491
+msgid "Starts:"
+msgstr "Start:"
+
+#: ../../include/event.php:40 ../../include/event.php:77
+#: ../../include/bb2diaspora.php:499
+msgid "Finishes:"
+msgstr "Einde:"
+
+#: ../../include/event.php:821
+msgid "This event has been added to your calendar."
+msgstr "Dit evenement is aan jouw agenda toegevoegd."
+
+#: ../../include/event.php:1021
+msgid "Not specified"
+msgstr "Niet aangegeven"
+
+#: ../../include/event.php:1022
+msgid "Needs Action"
+msgstr "Actie vereist"
+
+#: ../../include/event.php:1023
+msgid "Completed"
+msgstr "Voltooid"
+
+#: ../../include/event.php:1024
+msgid "In Process"
+msgstr "In behandeling"
+
+#: ../../include/event.php:1025
+msgid "Cancelled"
+msgstr "Geannuleerd"
+
+#: ../../include/bb2diaspora.php:398
+msgid "Attachments:"
+msgstr "Bijlagen:"
+
+#: ../../include/bb2diaspora.php:487
+msgid "$Projectname event notification:"
+msgstr "Notificatie $Projectname-gebeurtenis:"
+
#: ../../include/js_strings.php:5
msgid "Delete this item?"
msgstr "Dit item verwijderen?"
#: ../../include/js_strings.php:8
-msgid "[-] show less"
-msgstr "[-] minder reacties weergeven"
+#, php-format
+msgid "%s show less"
+msgstr "%s minder reacties weergeven"
#: ../../include/js_strings.php:9
-msgid "[+] expand"
-msgstr "[+] uitklappen"
+#, php-format
+msgid "%s expand"
+msgstr "%s uitklappen"
#: ../../include/js_strings.php:10
-msgid "[-] collapse"
-msgstr "[-] inklappen"
+#, php-format
+msgid "%s collapse"
+msgstr "%s inklappen"
#: ../../include/js_strings.php:11
msgid "Password too short"
@@ -9358,470 +9023,1016 @@ msgctxt "calendar"
msgid "All day"
msgstr "hele dag"
-#: ../../include/network.php:657
-msgid "view full size"
-msgstr "volledige grootte tonen"
+#: ../../include/follow.php:27
+msgid "Channel is blocked on this site."
+msgstr "Kanaal is op deze hub geblokkeerd."
-#: ../../include/network.php:1885
-msgid "No Subject"
-msgstr "Geen onderwerp"
+#: ../../include/follow.php:32
+msgid "Channel location missing."
+msgstr "Ontbrekende kanaallocatie."
-#: ../../include/network.php:2146 ../../include/network.php:2147
-msgid "Friendica"
-msgstr "Friendica"
+#: ../../include/follow.php:80
+msgid "Response from remote channel was incomplete."
+msgstr "Antwoord van het kanaal op afstand was niet volledig."
-#: ../../include/network.php:2148
-msgid "OStatus"
-msgstr "OStatus"
+#: ../../include/follow.php:97
+msgid "Channel was deleted and no longer exists."
+msgstr "Kanaal is verwijderd en bestaat niet meer."
-#: ../../include/network.php:2149
-msgid "GNU-Social"
-msgstr "GNU social"
+#: ../../include/follow.php:147 ../../include/follow.php:183
+msgid "Protocol disabled."
+msgstr "Protocol uitgeschakeld."
-#: ../../include/network.php:2150
-msgid "RSS/Atom"
-msgstr "RSS/Atom"
+#: ../../include/follow.php:171
+msgid "Channel discovery failed."
+msgstr "Kanaal ontdekken mislukt."
-#: ../../include/network.php:2152
-msgid "Diaspora"
-msgstr "Diaspora"
+#: ../../include/follow.php:210
+msgid "Cannot connect to yourself."
+msgstr "Kan niet met jezelf verbinden"
-#: ../../include/network.php:2153
-msgid "Facebook"
-msgstr "Facebook"
+#: ../../include/attach.php:248 ../../include/attach.php:334
+msgid "Item was not found."
+msgstr "Item niet gevonden"
-#: ../../include/network.php:2154
-msgid "Zot"
-msgstr "Zot"
+#: ../../include/attach.php:500
+msgid "No source file."
+msgstr "Geen bronbestand."
-#: ../../include/network.php:2155
-msgid "LinkedIn"
-msgstr "LinkedIn"
+#: ../../include/attach.php:522
+msgid "Cannot locate file to replace"
+msgstr "Kan het te vervangen bestand niet vinden"
-#: ../../include/network.php:2156
-msgid "XMPP/IM"
-msgstr "XMPP/IM"
+#: ../../include/attach.php:540
+msgid "Cannot locate file to revise/update"
+msgstr "Kan het bestand wat aangepast moet worden niet vinden"
-#: ../../include/network.php:2157
-msgid "MySpace"
-msgstr "MySpace"
+#: ../../include/attach.php:675
+#, php-format
+msgid "File exceeds size limit of %d"
+msgstr "Bestand is groter dan de toegelaten %d"
-#: ../../include/photos.php:110
+#: ../../include/attach.php:689
#, php-format
-msgid "Image exceeds website size limit of %lu bytes"
-msgstr "Afbeelding is groter dan op deze hub toegestane limiet van %lu bytes"
+msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
+msgstr "Je hebt jouw limiet van %1$.0f MB opslagruimte voor bijlagen bereikt."
-#: ../../include/photos.php:117
-msgid "Image file is empty."
-msgstr "Afbeeldingsbestand is leeg"
+#: ../../include/attach.php:847
+msgid "File upload failed. Possible system limit or action terminated."
+msgstr "Uploaden van bestand mislukt. Mogelijk systeemlimiet bereikt of actie afgebroken."
-#: ../../include/photos.php:255
-msgid "Photo storage failed."
-msgstr "Foto kan niet worden opgeslagen"
+#: ../../include/attach.php:860
+msgid "Stored file could not be verified. Upload failed."
+msgstr "Opgeslagen bestand kon niet worden geverifieerd. Uploaden mislukt."
-#: ../../include/photos.php:295
-msgid "a new photo"
-msgstr "een nieuwe foto"
+#: ../../include/attach.php:916 ../../include/attach.php:932
+msgid "Path not available."
+msgstr "Locatie niet beschikbaar."
-#: ../../include/photos.php:299
+#: ../../include/attach.php:978 ../../include/attach.php:1130
+msgid "Empty pathname"
+msgstr "Ontbrekende locatienaam"
+
+#: ../../include/attach.php:1004
+msgid "duplicate filename or path"
+msgstr "dubbele bestandsnaam of locatie"
+
+#: ../../include/attach.php:1026
+msgid "Path not found."
+msgstr "Locatie niet gevonden"
+
+#: ../../include/attach.php:1084
+msgid "mkdir failed."
+msgstr "directory aanmaken (mkdir) mislukt."
+
+#: ../../include/attach.php:1088
+msgid "database storage failed."
+msgstr "opslag in database mislukt."
+
+#: ../../include/attach.php:1136
+msgid "Empty path"
+msgstr "Ontbrekende locatie"
+
+#: ../../include/auth.php:148
+msgid "Logged out."
+msgstr "Uitgelogd."
+
+#: ../../include/auth.php:275
+msgid "Failed authentication"
+msgstr "Mislukte authenticatie"
+
+#: ../../include/auth.php:286
+msgid "Login failed."
+msgstr "Inloggen mislukt."
+
+#: ../../include/activities.php:41
+msgid " and "
+msgstr " en "
+
+#: ../../include/activities.php:49
+msgid "public profile"
+msgstr "openbaar profiel"
+
+#: ../../include/activities.php:58
#, php-format
-msgctxt "photo_upload"
-msgid "%1$s posted %2$s to %3$s"
-msgstr "%1$s plaatste %2$s op %3$s"
+msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
+msgstr "%1$s veranderde %2$s naar &ldquo;%3$s&rdquo;"
-#: ../../include/photos.php:506
-msgid "Upload New Photos"
-msgstr "Nieuwe foto's uploaden"
+#: ../../include/activities.php:59
+#, php-format
+msgid "Visit %1$s's %2$s"
+msgstr "Bezoek het %2$s van %1$s"
+
+#: ../../include/activities.php:62
+#, php-format
+msgid "%1$s has an updated %2$s, changing %3$s."
+msgstr "%1$s heeft een aangepaste %2$s, %3$s veranderd."
-#: ../../include/zot.php:699
+#: ../../include/zot.php:700
msgid "Invalid data packet"
msgstr "Datapakket ongeldig"
-#: ../../include/zot.php:715
+#: ../../include/zot.php:716
msgid "Unable to verify channel signature"
msgstr "Kanaalkenmerk kon niet worden geverifieerd. "
-#: ../../include/zot.php:2363
+#: ../../include/zot.php:2329
#, php-format
msgid "Unable to verify site signature for %s"
msgstr "Hubkenmerk voor %s kon niet worden geverifieerd"
-#: ../../include/zot.php:3712
+#: ../../include/zot.php:3706
msgid "invalid target signature"
msgstr "ongeldig doelkenmerk"
-#: ../../include/page_widgets.php:6
-msgid "New Page"
-msgstr "Nieuwe pagina"
+#: ../../include/features.php:50
+msgid "General Features"
+msgstr "Algemene functies"
-#: ../../include/page_widgets.php:43
-msgid "Title"
-msgstr "Titel"
+#: ../../include/features.php:52
+msgid "Content Expiration"
+msgstr "Inhoud laten verlopen"
-#: ../../include/permissions.php:26
-msgid "Can view my normal stream and posts"
-msgstr "Kan mijn normale kanaalstream en berichten bekijken"
+#: ../../include/features.php:52
+msgid "Remove posts/comments and/or private messages at a future time"
+msgstr "Berichten, reacties en/of privéberichten na een bepaalde tijd verwijderen"
-#: ../../include/permissions.php:27
-msgid "Can view my default channel profile"
-msgstr "Kan mijn standaard kanaalprofiel bekijken"
+#: ../../include/features.php:53
+msgid "Multiple Profiles"
+msgstr "Meerdere profielen"
-#: ../../include/permissions.php:28
-msgid "Can view my connections"
-msgstr "Kan een lijst met mijn connecties bekijken"
+#: ../../include/features.php:53
+msgid "Ability to create multiple profiles"
+msgstr "Mogelijkheid om meerdere profielen aan te maken"
-#: ../../include/permissions.php:29
-msgid "Can view my file storage and photos"
-msgstr "Kan mijn foto's en andere bestanden bekijken"
+#: ../../include/features.php:54
+msgid "Advanced Profiles"
+msgstr "Geavanceerde profielen"
-#: ../../include/permissions.php:30
-msgid "Can view my webpages"
-msgstr "Kan mijn pagina's bekijken"
+#: ../../include/features.php:54
+msgid "Additional profile sections and selections"
+msgstr "Extra onderdelen en keuzes voor je profiel"
-#: ../../include/permissions.php:33
-msgid "Can send me their channel stream and posts"
-msgstr "Kan mij de inhoud van hun kanaal en berichten sturen"
+#: ../../include/features.php:55
+msgid "Profile Import/Export"
+msgstr "Profiel importen/exporteren"
-#: ../../include/permissions.php:34
-msgid "Can post on my channel page (\"wall\")"
-msgstr "Kan een bericht in mijn kanaal plaatsen"
+#: ../../include/features.php:55
+msgid "Save and load profile details across sites/channels"
+msgstr "Profielgegevens opslaan en in andere hubs/kanalen gebruiken."
-#: ../../include/permissions.php:35
-msgid "Can comment on or like my posts"
-msgstr "Kan op mijn berichten reageren of deze (niet) leuk vinden"
+#: ../../include/features.php:56
+msgid "Web Pages"
+msgstr "Webpagina's"
-#: ../../include/permissions.php:36
-msgid "Can send me private mail messages"
-msgstr "Kan mij privéberichten sturen"
+#: ../../include/features.php:56
+msgid "Provide managed web pages on your channel"
+msgstr "Sta beheerde webpagina's op jouw kanaal toe"
-#: ../../include/permissions.php:37
-msgid "Can like/dislike stuff"
-msgstr "Kan dingen leuk of niet leuk vinden"
+#: ../../include/features.php:57
+msgid "Provide a wiki for your channel"
+msgstr "Voeg een wiki aan jouw kanaal toe"
-#: ../../include/permissions.php:37
-msgid "Profiles and things other than posts/comments"
-msgstr "Profielen en dingen, buiten berichten en reacties"
+#: ../../include/features.php:59
+msgid "Private Notes"
+msgstr "Privé-aantekeningen"
-#: ../../include/permissions.php:39
-msgid "Can forward to all my channel contacts via post @mentions"
-msgstr "Kan naar al mijn kanaalconnecties berichten doorsturen met behulp van @vermeldingen+"
+#: ../../include/features.php:59
+msgid "Enables a tool to store notes and reminders (note: not encrypted)"
+msgstr "Een eenvoudige toepassing om aantekeningen en herinneringen in te bewaren (let op: niet versleuteld)"
-#: ../../include/permissions.php:39
-msgid "Advanced - useful for creating group forum channels"
-msgstr "Geavanceerd - nuttig voor groepforums"
+#: ../../include/features.php:60
+msgid "Navigation Channel Select"
+msgstr "Kanaal kiezen in navigatiemenu"
-#: ../../include/permissions.php:40
-msgid "Can chat with me (when available)"
-msgstr "Kan met mij chatten (wanneer beschikbaar)"
+#: ../../include/features.php:60
+msgid "Change channels directly from within the navigation dropdown menu"
+msgstr "Kies een ander kanaal direct vanuit het dropdown-menu op de navigatiebalk"
-#: ../../include/permissions.php:41
-msgid "Can write to my file storage and photos"
-msgstr "Kan foto's en andere bestanden aan mijn bestandsopslag toevoegen"
+#: ../../include/features.php:61
+msgid "Photo Location"
+msgstr "Fotolocatie"
-#: ../../include/permissions.php:42
-msgid "Can edit my webpages"
-msgstr "Kan mijn pagina's bewerken"
+#: ../../include/features.php:61
+msgid "If location data is available on uploaded photos, link this to a map."
+msgstr "Wanneer in de geüploade foto's locatiegegevens aanwezig zijn, link dit dan aan een kaart."
-#: ../../include/permissions.php:44
-msgid "Can source my public posts in derived channels"
-msgstr "Kan mijn openbare berichten als bron voor andere kanalen gebruiken"
+#: ../../include/features.php:62
+msgid "Access Controlled Chatrooms"
+msgstr "Chatkanalen met toegangscontrole "
-#: ../../include/permissions.php:44
-msgid "Somewhat advanced - very useful in open communities"
-msgstr "Enigszins geavanceerd (erg nuttig voor kanalen van forums/groepen)"
+#: ../../include/features.php:62
+msgid "Provide chatrooms and chat services with access control."
+msgstr "Chatkanalen en chatdiensten met toegangscontrole aanbieden."
-#: ../../include/permissions.php:46
-msgid "Can administer my channel resources"
-msgstr "Kan mijn kanaal beheren"
+#: ../../include/features.php:63
+msgid "Smart Birthdays"
+msgstr "Slimme verjaardagen"
-#: ../../include/permissions.php:46
+#: ../../include/features.php:63
msgid ""
-"Extremely advanced. Leave this alone unless you know what you are doing"
-msgstr "Zeer geavanceerd. Laat dit met rust, behalve als je weet wat je doet."
+"Make birthday events timezone aware in case your friends are scattered "
+"across the planet."
+msgstr "Maak verjaardagen bewust van tijdzones. Voor het geval dat jouw vrienden over de hele wereld verspreid zijn."
-#: ../../include/permissions.php:877
-msgid "Social Networking"
-msgstr "Sociaal netwerk"
+#: ../../include/features.php:64
+msgid "Expert Mode"
+msgstr "Expertmodus"
-#: ../../include/permissions.php:877
-msgid "Social - Mostly Public"
-msgstr "Sociaal - Vrijwel alles openbaar"
+#: ../../include/features.php:64
+msgid "Enable Expert Mode to provide advanced configuration options"
+msgstr "Schakel de expertmodus in voor geavanceerde instellingen"
-#: ../../include/permissions.php:877
-msgid "Social - Restricted"
-msgstr "Sociaal - Beperkt zichtbaar"
+#: ../../include/features.php:69
+msgid "Post Composition Features"
+msgstr "Functies voor het opstellen van berichten"
-#: ../../include/permissions.php:877
-msgid "Social - Private"
-msgstr "Sociaal - Verborgen kanaal"
+#: ../../include/features.php:70
+msgid "Large Photos"
+msgstr "Grote foto's"
-#: ../../include/permissions.php:878
-msgid "Community Forum"
-msgstr "Groepsforum"
+#: ../../include/features.php:70
+msgid ""
+"Include large (1024px) photo thumbnails in posts. If not enabled, use small "
+"(640px) photo thumbnails"
+msgstr "Gebruik grotere foto's (1024px) in berichten. Wanneer dit is uitgeschakeld worden er kleinere foto's (640px) gebruikt."
-#: ../../include/permissions.php:878
-msgid "Forum - Mostly Public"
-msgstr "Forum - Vrijwel alles openbaar"
+#: ../../include/features.php:71
+msgid "Automatically import channel content from other channels or feeds"
+msgstr "Automatisch inhoud uit andere kanalen of feeds importeren."
-#: ../../include/permissions.php:878
-msgid "Forum - Restricted"
-msgstr "Forum - Beperkt zichtbaar"
+#: ../../include/features.php:72
+msgid "Even More Encryption"
+msgstr "Extra encryptie"
-#: ../../include/permissions.php:878
-msgid "Forum - Private"
-msgstr "Forum - Verborgen kanaal"
+#: ../../include/features.php:72
+msgid ""
+"Allow optional encryption of content end-to-end with a shared secret key"
+msgstr "Sta toe dat inhoud extra end-to-end wordt versleuteld met een gedeelde geheime sleutel."
-#: ../../include/permissions.php:879
-msgid "Feed Republish"
-msgstr "Feed herpubliceren"
+#: ../../include/features.php:73
+msgid "Enable Voting Tools"
+msgstr "Peilingen inschakelen"
-#: ../../include/permissions.php:879
-msgid "Feed - Mostly Public"
-msgstr "Feed - Vrijwel alles openbaar"
+#: ../../include/features.php:73
+msgid "Provide a class of post which others can vote on"
+msgstr "Maakt het mogelijk om een bericht op te stellen, waar mensen op kunnen stemmen."
-#: ../../include/permissions.php:879
-msgid "Feed - Restricted"
-msgstr "Feed - Beperkt zichtbaar"
+#: ../../include/features.php:74
+msgid "Disable Comments"
+msgstr "Reacties uitschakelen"
-#: ../../include/permissions.php:880
-msgid "Special Purpose"
-msgstr "Speciaal doel"
+#: ../../include/features.php:74
+msgid "Provide the option to disable comments for a post"
+msgstr "Maak het mogelijk dat reacties op een bericht kunnen worden uitgeschakeld"
-#: ../../include/permissions.php:880
-msgid "Special - Celebrity/Soapbox"
-msgstr "Speciaal - Beroemdheid/alleen volgen"
+#: ../../include/features.php:75
+msgid "Delayed Posting"
+msgstr "Berichten uitstellen"
-#: ../../include/permissions.php:880
-msgid "Special - Group Repository"
-msgstr "Speciaal - Groepsopslag"
+#: ../../include/features.php:75
+msgid "Allow posts to be published at a later date"
+msgstr "Maakt het mogelijk dat berichten op een toekomstig moment gepubliceerd kunnen worden."
-#: ../../include/permissions.php:881
-msgid "Custom/Expert Mode"
-msgstr "Expertmodus/handmatig aanpassen"
+#: ../../include/features.php:76
+msgid "Suppress Duplicate Posts/Comments"
+msgstr "Dubbele berichten/reacties tegenhouden"
-#: ../../include/activities.php:41
-msgid " and "
-msgstr " en "
+#: ../../include/features.php:76
+msgid ""
+"Prevent posts with identical content to be published with less than two "
+"minutes in between submissions."
+msgstr "Voorkomt dat berichten en reacties met identieke inhoud en die binnen twee minuten zijn verstuurd, worden gepubliceerd. "
-#: ../../include/activities.php:49
-msgid "public profile"
-msgstr "openbaar profiel"
+#: ../../include/features.php:82
+msgid "Network and Stream Filtering"
+msgstr "Netwerk- en streamfilter"
-#: ../../include/activities.php:58
+#: ../../include/features.php:83
+msgid "Search by Date"
+msgstr "Zoek op datum"
+
+#: ../../include/features.php:83
+msgid "Ability to select posts by date ranges"
+msgstr "Mogelijkheid om berichten op datum te filteren "
+
+#: ../../include/features.php:84
+msgid "Enable management and selection of privacy groups"
+msgstr "Beheer en selectie van privacygroepen inschakelen"
+
+#: ../../include/features.php:85
+msgid "Save search terms for re-use"
+msgstr "Sla zoekopdrachten op voor hergebruik"
+
+#: ../../include/features.php:86
+msgid "Network Personal Tab"
+msgstr "Persoonlijke netwerktab"
+
+#: ../../include/features.php:86
+msgid "Enable tab to display only Network posts that you've interacted on"
+msgstr "Sta het toe dat de tab netwerkberichten toont waarmee je interactie had"
+
+#: ../../include/features.php:87
+msgid "Network New Tab"
+msgstr "Nieuwe netwerktab"
+
+#: ../../include/features.php:87
+msgid "Enable tab to display all new Network activity"
+msgstr "Laat de tab alle nieuwe netwerkactiviteit tonen"
+
+#: ../../include/features.php:88
+msgid "Affinity Tool"
+msgstr "Verwantschapsfilter"
+
+#: ../../include/features.php:88
+msgid "Filter stream activity by depth of relationships"
+msgstr "Filter wat je in jouw grid ziet op hoe goed je iemand kent of mag"
+
+#: ../../include/features.php:89
+msgid "Connection Filtering"
+msgstr "Berichtenfilters"
+
+#: ../../include/features.php:89
+msgid "Filter incoming posts from connections based on keywords/content"
+msgstr "Filter binnenkomende berichten van connecties aan de hand van trefwoorden en taal"
+
+#: ../../include/features.php:90
+msgid "Show channel suggestions"
+msgstr "Voor jou mogelijk interessante kanalen voorstellen"
+
+#: ../../include/features.php:95
+msgid "Post/Comment Tools"
+msgstr "Bericht- en reactiehulpmiddelen"
+
+#: ../../include/features.php:96
+msgid "Community Tagging"
+msgstr "Taggen door anderen"
+
+#: ../../include/features.php:96
+msgid "Ability to tag existing posts"
+msgstr "Geeft andere mensen de mogelijkheid om jouw (bestaande) berichten te taggen"
+
+#: ../../include/features.php:97
+msgid "Post Categories"
+msgstr "Categorieën berichten"
+
+#: ../../include/features.php:97
+msgid "Add categories to your posts"
+msgstr "Voeg categorieën toe aan je berichten"
+
+#: ../../include/features.php:98
+msgid "Emoji Reactions"
+msgstr "Emoji-reacties"
+
+#: ../../include/features.php:98
+msgid "Add emoji reaction ability to posts"
+msgstr "Emoji-reacties in berichten toestaan"
+
+#: ../../include/features.php:99
+msgid "Ability to file posts under folders"
+msgstr "Mogelijkheid om berichten in mappen op te slaan"
+
+#: ../../include/features.php:100
+msgid "Dislike Posts"
+msgstr "Vind berichten niet leuk"
+
+#: ../../include/features.php:100
+msgid "Ability to dislike posts/comments"
+msgstr "Mogelijkheid om berichten en reacties niet leuk te vinden"
+
+#: ../../include/features.php:101
+msgid "Star Posts"
+msgstr "Geef berichten een ster"
+
+#: ../../include/features.php:101
+msgid "Ability to mark special posts with a star indicator"
+msgstr "Mogelijkheid om speciale berichten met een ster te markeren"
+
+#: ../../include/features.php:102
+msgid "Tag Cloud"
+msgstr "Tagwolk"
+
+#: ../../include/features.php:102
+msgid "Provide a personal tag cloud on your channel page"
+msgstr "Zorgt voor een persoonlijke wolk met tags op jouw kanaalpagina"
+
+#: ../../include/features.php:111
+msgid "Premium Channel"
+msgstr "Premiumkanaal"
+
+#: ../../include/features.php:112
+msgid ""
+"Allows you to set restrictions and terms on those that connect with your "
+"channel"
+msgstr "Stelt je in staat om beperkingen en voorwaarden in te stellen voor jouw kanaal"
+
+#: ../../include/taxonomy.php:228 ../../include/taxonomy.php:249
+msgid "Tags"
+msgstr "Tags"
+
+#: ../../include/taxonomy.php:293
+msgid "Keywords"
+msgstr "Trefwoorden"
+
+#: ../../include/taxonomy.php:314
+msgid "have"
+msgstr "heb"
+
+#: ../../include/taxonomy.php:314
+msgid "has"
+msgstr "heeft"
+
+#: ../../include/taxonomy.php:315
+msgid "want"
+msgstr "wil"
+
+#: ../../include/taxonomy.php:315
+msgid "wants"
+msgstr "wil"
+
+#: ../../include/taxonomy.php:316
+msgid "likes"
+msgstr "vindt dit leuk"
+
+#: ../../include/taxonomy.php:317
+msgid "dislikes"
+msgstr "vindt dit niet leuk"
+
+#: ../../include/account.php:28
+msgid "Not a valid email address"
+msgstr "Geen geldig e-mailadres"
+
+#: ../../include/account.php:30
+msgid "Your email domain is not among those allowed on this site"
+msgstr "Jouw e-maildomein is op deze hub niet toegestaan"
+
+#: ../../include/account.php:36
+msgid "Your email address is already registered at this site."
+msgstr "Jouw e-mailadres is al op deze hub geregistreerd."
+
+#: ../../include/account.php:68
+msgid "An invitation is required."
+msgstr "Een uitnodiging is vereist"
+
+#: ../../include/account.php:72
+msgid "Invitation could not be verified."
+msgstr "Uitnodiging kon niet geverifieerd worden"
+
+#: ../../include/account.php:122
+msgid "Please enter the required information."
+msgstr "Vul de vereiste informatie in."
+
+#: ../../include/account.php:189
+msgid "Failed to store account information."
+msgstr "Account-informatie kon niet opgeslagen worden."
+
+#: ../../include/account.php:249
#, php-format
-msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
-msgstr "%1$s veranderde %2$s naar &ldquo;%3$s&rdquo;"
+msgid "Registration confirmation for %s"
+msgstr "Registratiebevestiging voor %s"
-#: ../../include/activities.php:59
+#: ../../include/account.php:315
#, php-format
-msgid "Visit %1$s's %2$s"
-msgstr "Bezoek het %2$s van %1$s"
+msgid "Registration request at %s"
+msgstr "Registratiebevestiging voor %s"
-#: ../../include/activities.php:62
+#: ../../include/account.php:339
+msgid "your registration password"
+msgstr "jouw registratiewachtwoord"
+
+#: ../../include/account.php:342 ../../include/account.php:402
#, php-format
-msgid "%1$s has an updated %2$s, changing %3$s."
-msgstr "%1$s heeft een aangepaste %2$s, %3$s veranderd."
+msgid "Registration details for %s"
+msgstr "Registratiegegevens voor %s"
-#: ../../include/bb2diaspora.php:398
-msgid "Attachments:"
-msgstr "Bijlagen:"
+#: ../../include/account.php:414
+msgid "Account approved."
+msgstr "Account goedgekeurd"
-#: ../../include/bb2diaspora.php:487
-msgid "$Projectname event notification:"
-msgstr "Notificatie $Projectname-gebeurtenis:"
+#: ../../include/account.php:454
+#, php-format
+msgid "Registration revoked for %s"
+msgstr "Registratie ingetrokken voor %s"
+
+#: ../../include/account.php:739 ../../include/account.php:741
+msgid "Click here to upgrade."
+msgstr "Klik hier om te upgraden."
+
+#: ../../include/account.php:747
+msgid "This action exceeds the limits set by your subscription plan."
+msgstr "Deze handeling overschrijdt de beperkingen die voor jouw abonnement gelden."
+
+#: ../../include/account.php:752
+msgid "This action is not available under your subscription plan."
+msgstr "Deze handeling is niet mogelijk met jouw abonnement."
+
+#: ../../include/bbcode.php:123 ../../include/bbcode.php:878
+#: ../../include/bbcode.php:881 ../../include/bbcode.php:886
+#: ../../include/bbcode.php:889 ../../include/bbcode.php:892
+#: ../../include/bbcode.php:895 ../../include/bbcode.php:900
+#: ../../include/bbcode.php:903 ../../include/bbcode.php:908
+#: ../../include/bbcode.php:911 ../../include/bbcode.php:914
+#: ../../include/bbcode.php:917
+msgid "Image/photo"
+msgstr "Afbeelding/foto"
+
+#: ../../include/bbcode.php:162 ../../include/bbcode.php:928
+msgid "Encrypted content"
+msgstr "Versleutelde inhoud"
+
+#: ../../include/bbcode.php:178
+#, php-format
+msgid "Install %s element: "
+msgstr "Installeer %s-element: "
+
+#: ../../include/bbcode.php:182
+#, php-format
+msgid ""
+"This post contains an installable %s element, however you lack permissions "
+"to install it on this site."
+msgstr "Dit bericht heeft een te installeren %s-element, maar je hebt geen permissies om het op deze hub te installeren."
+
+#: ../../include/bbcode.php:261
+#, php-format
+msgid "%1$s wrote the following %2$s %3$s"
+msgstr "%1$s schreef het volgende %2$s %3$s"
+
+#: ../../include/bbcode.php:338 ../../include/bbcode.php:346
+msgid "Click to open/close"
+msgstr "Klik om te openen of te sluiten"
+
+#: ../../include/bbcode.php:346
+msgid "spoiler"
+msgstr "spoiler"
+
+#: ../../include/bbcode.php:866
+msgid "$1 wrote:"
+msgstr "$1 schreef:"
+
+#: ../../include/contact_widgets.php:11
+#, php-format
+msgid "%d invitation available"
+msgid_plural "%d invitations available"
+msgstr[0] "%d uitnodiging beschikbaar"
+msgstr[1] "%d uitnodigingen beschikbaar"
+
+#: ../../include/contact_widgets.php:19
+msgid "Find Channels"
+msgstr "Kanalen vinden"
+
+#: ../../include/contact_widgets.php:20
+msgid "Enter name or interest"
+msgstr "Vul naam of interesse in"
+
+#: ../../include/contact_widgets.php:21
+msgid "Connect/Follow"
+msgstr "Verbinden/volgen"
-#: ../../view/theme/redbasic/php/config.php:82
+#: ../../include/contact_widgets.php:22
+msgid "Examples: Robert Morgenstein, Fishing"
+msgstr "Voorbeeld: Robert Morgenstein, vissen"
+
+#: ../../include/contact_widgets.php:26
+msgid "Random Profile"
+msgstr "Willekeurig profiel"
+
+#: ../../include/contact_widgets.php:27
+msgid "Invite Friends"
+msgstr "Vrienden uitnodigen"
+
+#: ../../include/contact_widgets.php:29
+msgid "Advanced example: name=fred and country=iceland"
+msgstr "Geavanceerd voorbeeld (Engels): name=jan en country=nederland"
+
+#: ../../include/contact_widgets.php:122
+#, php-format
+msgid "%d connection in common"
+msgid_plural "%d connections in common"
+msgstr[0] "%d gemeenschappelijke connectie"
+msgstr[1] "%d gemeenschappelijke connecties"
+
+#: ../../include/contact_widgets.php:127
+msgid "show more"
+msgstr "meer connecties weergeven"
+
+#: ../../include/dir_fns.php:141
+msgid "Directory Options"
+msgstr "Opties kanalengids"
+
+#: ../../include/dir_fns.php:143
+msgid "Safe Mode"
+msgstr "Veilig zoeken"
+
+#: ../../include/dir_fns.php:144
+msgid "Public Forums Only"
+msgstr "Alleen openbare forums"
+
+#: ../../include/dir_fns.php:145
+msgid "This Website Only"
+msgstr "Alleen deze hub"
+
+#: ../../include/message.php:20
+msgid "No recipient provided."
+msgstr "Geen ontvanger opgegeven."
+
+#: ../../include/message.php:25
+msgid "[no subject]"
+msgstr "[geen onderwerp]"
+
+#: ../../include/message.php:45
+msgid "Unable to determine sender."
+msgstr "Afzender kan niet bepaald worden."
+
+#: ../../include/message.php:222
+msgid "Stored post could not be verified."
+msgstr "Opgeslagen bericht kon niet worden geverifieerd."
+
+#: ../../include/import.php:30
+msgid ""
+"Cannot create a duplicate channel identifier on this system. Import failed."
+msgstr "Kan geen dubbele kanaal-identificator op deze hub aanmaken. Importeren mislukt."
+
+#: ../../include/import.php:97
+msgid "Channel clone failed. Import failed."
+msgstr "Het klonen van het kanaal is mislukt. Importeren mislukt."
+
+#: ../../include/nav.php:84 ../../include/nav.php:117 ../../boot.php:1737
+msgid "Logout"
+msgstr "Uitloggen"
+
+#: ../../include/nav.php:84 ../../include/nav.php:117
+msgid "End this session"
+msgstr "Beëindig deze sessie"
+
+#: ../../include/nav.php:87 ../../include/nav.php:148
+msgid "Home"
+msgstr "Home"
+
+#: ../../include/nav.php:87
+msgid "Your posts and conversations"
+msgstr "Jouw kanaal"
+
+#: ../../include/nav.php:88
+msgid "Your profile page"
+msgstr "Jouw profielpagina"
+
+#: ../../include/nav.php:90
+msgid "Manage/Edit profiles"
+msgstr "Beheer/wijzig profielen"
+
+#: ../../include/nav.php:92
+msgid "Edit your profile"
+msgstr "Jouw profiel bewerken"
+
+#: ../../include/nav.php:94
+msgid "Your photos"
+msgstr "Jouw foto's"
+
+#: ../../include/nav.php:95
+msgid "Your files"
+msgstr "Jouw bestanden"
+
+#: ../../include/nav.php:98
+msgid "Your chatrooms"
+msgstr "Jouw chatkanalen"
+
+#: ../../include/nav.php:104
+msgid "Your bookmarks"
+msgstr "Jouw bladwijzers"
+
+#: ../../include/nav.php:108
+msgid "Your webpages"
+msgstr "Jouw webpagina's"
+
+#: ../../include/nav.php:110
+msgid "Your wiki"
+msgstr "Jouw wiki"
+
+#: ../../include/nav.php:114
+msgid "Sign in"
+msgstr "Inloggen"
+
+#: ../../include/nav.php:131
+#, php-format
+msgid "%s - click to logout"
+msgstr "%s - klik om uit te loggen"
+
+#: ../../include/nav.php:134
+msgid "Remote authentication"
+msgstr "Authenticatie op afstand"
+
+#: ../../include/nav.php:134
+msgid "Click to authenticate to your home hub"
+msgstr "Authenticeer jezelf via (bijvoorbeeld) jouw hub"
+
+#: ../../include/nav.php:148
+msgid "Home Page"
+msgstr "Homepage"
+
+#: ../../include/nav.php:151
+msgid "Create an account"
+msgstr "Maak een account aan"
+
+#: ../../include/nav.php:163
+msgid "Help and documentation"
+msgstr "Hulp en documentatie"
+
+#: ../../include/nav.php:167
+msgid "Applications, utilities, links, games"
+msgstr "Apps"
+
+#: ../../include/nav.php:169
+msgid "Search site @name, #tag, ?docs, content"
+msgstr "Zoek een @kanaal, doorzoek inhoud hub met tekst en #tags, of doorzoek ?documentatie "
+
+#: ../../include/nav.php:171
+msgid "Channel Directory"
+msgstr "Kanalengids"
+
+#: ../../include/nav.php:183
+msgid "Your grid"
+msgstr "Jouw grid"
+
+#: ../../include/nav.php:184
+msgid "Mark all grid notifications seen"
+msgstr "Markeer alle gridnotificaties als bekeken"
+
+#: ../../include/nav.php:186
+msgid "Channel home"
+msgstr "Jouw kanaal"
+
+#: ../../include/nav.php:187
+msgid "Mark all channel notifications seen"
+msgstr "Alle kanaalnotificaties als gelezen markeren"
+
+#: ../../include/nav.php:193
+msgid "Notices"
+msgstr "Notificaties"
+
+#: ../../include/nav.php:193
+msgid "Notifications"
+msgstr "Notificaties"
+
+#: ../../include/nav.php:194
+msgid "See all notifications"
+msgstr "Alle notificaties weergeven"
+
+#: ../../include/nav.php:197
+msgid "Private mail"
+msgstr "Privéberichten"
+
+#: ../../include/nav.php:198
+msgid "See all private messages"
+msgstr "Alle privéberichten weergeven"
+
+#: ../../include/nav.php:199
+msgid "Mark all private messages seen"
+msgstr "Markeer alle privéberichten als bekeken"
+
+#: ../../include/nav.php:205
+msgid "Event Calendar"
+msgstr "Agenda"
+
+#: ../../include/nav.php:206
+msgid "See all events"
+msgstr "Alle gebeurtenissen weergeven"
+
+#: ../../include/nav.php:207
+msgid "Mark all events seen"
+msgstr "Markeer alle gebeurtenissen als bekeken"
+
+#: ../../include/nav.php:210
+msgid "Manage Your Channels"
+msgstr "Beheer je kanalen"
+
+#: ../../include/nav.php:212
+msgid "Account/Channel Settings"
+msgstr "Account-/kanaal-instellingen"
+
+#: ../../include/nav.php:220
+msgid "Site Setup and Configuration"
+msgstr "Hub instellen en beheren"
+
+#: ../../include/nav.php:256
+msgid "@name, #tag, ?doc, content"
+msgstr "@kanaal, #tag, inhoud, ?hulp"
+
+#: ../../include/nav.php:257
+msgid "Please wait..."
+msgstr "Wachten aub..."
+
+#: ../../view/theme/redbasic/php/config.php:6
msgid "Focus (Hubzilla default)"
msgstr "Focus (Hubzilla-standaard)"
-#: ../../view/theme/redbasic/php/config.php:103
+#: ../../view/theme/redbasic/php/config.php:110
msgid "Theme settings"
msgstr "Thema-instellingen"
-#: ../../view/theme/redbasic/php/config.php:104
-msgid "Select scheme"
-msgstr "Kies schema van thema"
-
-#: ../../view/theme/redbasic/php/config.php:105
+#: ../../view/theme/redbasic/php/config.php:111
msgid "Narrow navbar"
msgstr "Smalle navigatiebalk"
-#: ../../view/theme/redbasic/php/config.php:106
+#: ../../view/theme/redbasic/php/config.php:112
msgid "Navigation bar background color"
msgstr "Achtergrondkleur navigatiebalk"
-#: ../../view/theme/redbasic/php/config.php:107
+#: ../../view/theme/redbasic/php/config.php:113
msgid "Navigation bar gradient top color"
msgstr "Bovenste gradiëntkleur navigatiebalk"
-#: ../../view/theme/redbasic/php/config.php:108
+#: ../../view/theme/redbasic/php/config.php:114
msgid "Navigation bar gradient bottom color"
msgstr "Onderste gradiëntkleur navigatiebalk"
-#: ../../view/theme/redbasic/php/config.php:109
+#: ../../view/theme/redbasic/php/config.php:115
msgid "Navigation active button gradient top color"
msgstr "Bovenste gradiëntkleur actieve knop navigatiebalk"
-#: ../../view/theme/redbasic/php/config.php:110
+#: ../../view/theme/redbasic/php/config.php:116
msgid "Navigation active button gradient bottom color"
msgstr "Onderste gradiëntkleur actieve knop op navigatiebalk"
-#: ../../view/theme/redbasic/php/config.php:111
+#: ../../view/theme/redbasic/php/config.php:117
msgid "Navigation bar border color "
msgstr "Randkleur navigatiebalk "
-#: ../../view/theme/redbasic/php/config.php:112
+#: ../../view/theme/redbasic/php/config.php:118
msgid "Navigation bar icon color "
msgstr "Pictogramkleur navigatiebalk"
-#: ../../view/theme/redbasic/php/config.php:113
+#: ../../view/theme/redbasic/php/config.php:119
msgid "Navigation bar active icon color "
msgstr "Actieve pictogramkleur navigatiebalk"
-#: ../../view/theme/redbasic/php/config.php:114
+#: ../../view/theme/redbasic/php/config.php:120
msgid "link color"
msgstr "Linkkleur instellen"
-#: ../../view/theme/redbasic/php/config.php:115
+#: ../../view/theme/redbasic/php/config.php:121
msgid "Set font-color for banner"
msgstr "Tekstkleur van banner instellen"
-#: ../../view/theme/redbasic/php/config.php:116
+#: ../../view/theme/redbasic/php/config.php:122
msgid "Set the background color"
msgstr "Achtergrondkleur instellen"
-#: ../../view/theme/redbasic/php/config.php:117
+#: ../../view/theme/redbasic/php/config.php:123
msgid "Set the background image"
msgstr "Achtergrondafbeelding instellen"
-#: ../../view/theme/redbasic/php/config.php:118
+#: ../../view/theme/redbasic/php/config.php:124
msgid "Set the background color of items"
msgstr "Achtergrondkleur items instellen"
-#: ../../view/theme/redbasic/php/config.php:119
+#: ../../view/theme/redbasic/php/config.php:125
msgid "Set the background color of comments"
msgstr "Achtergrondkleur reacties instellen"
-#: ../../view/theme/redbasic/php/config.php:120
+#: ../../view/theme/redbasic/php/config.php:126
msgid "Set the border color of comments"
msgstr "Randkleur reacties instellen"
-#: ../../view/theme/redbasic/php/config.php:121
+#: ../../view/theme/redbasic/php/config.php:127
msgid "Set the indent for comments"
msgstr "Inspringen reacties instellen"
-#: ../../view/theme/redbasic/php/config.php:122
+#: ../../view/theme/redbasic/php/config.php:128
msgid "Set the basic color for item icons"
msgstr "Basiskleur itempictogrammen instellen"
-#: ../../view/theme/redbasic/php/config.php:123
+#: ../../view/theme/redbasic/php/config.php:129
msgid "Set the hover color for item icons"
msgstr "Hoverkleur itempictogrammen instellen"
-#: ../../view/theme/redbasic/php/config.php:124
+#: ../../view/theme/redbasic/php/config.php:130
msgid "Set font-size for the entire application"
msgstr "Tekstgrootte van de volledige applicatie instellen"
-#: ../../view/theme/redbasic/php/config.php:124
+#: ../../view/theme/redbasic/php/config.php:130
msgid "Example: 14px"
msgstr "Voorbeeld: 14px"
-#: ../../view/theme/redbasic/php/config.php:125
+#: ../../view/theme/redbasic/php/config.php:131
msgid "Set font-size for posts and comments"
msgstr "Lettergrootte voor berichten en reacties instellen"
-#: ../../view/theme/redbasic/php/config.php:126
+#: ../../view/theme/redbasic/php/config.php:132
msgid "Set font-color for posts and comments"
msgstr "Tekstkleur van berichten en reacties"
-#: ../../view/theme/redbasic/php/config.php:127
+#: ../../view/theme/redbasic/php/config.php:133
msgid "Set radius of corners"
msgstr "Radius van hoeken instellen"
-#: ../../view/theme/redbasic/php/config.php:128
+#: ../../view/theme/redbasic/php/config.php:134
msgid "Set shadow depth of photos"
msgstr "Schaduwdiepte van foto's instellen"
-#: ../../view/theme/redbasic/php/config.php:129
+#: ../../view/theme/redbasic/php/config.php:135
msgid "Set maximum width of content region in pixel"
msgstr "Maximumbreedte conversatieruimte instellen (in pixels)"
-#: ../../view/theme/redbasic/php/config.php:129
+#: ../../view/theme/redbasic/php/config.php:135
msgid "Leave empty for default width"
msgstr "Laat leeg voor standaardbreedte"
-#: ../../view/theme/redbasic/php/config.php:130
+#: ../../view/theme/redbasic/php/config.php:136
msgid "Left align page content"
msgstr "Inhoud links uitlijnen"
-#: ../../view/theme/redbasic/php/config.php:131
+#: ../../view/theme/redbasic/php/config.php:137
msgid "Set minimum opacity of nav bar - to hide it"
msgstr "Minimale ondoorzichtigheid navigatiebalk (- om te verbergen)"
-#: ../../view/theme/redbasic/php/config.php:132
+#: ../../view/theme/redbasic/php/config.php:138
msgid "Set size of conversation author photo"
msgstr "Grootte profielfoto's van berichten instellen"
-#: ../../view/theme/redbasic/php/config.php:133
+#: ../../view/theme/redbasic/php/config.php:139
msgid "Set size of followup author photos"
msgstr "Grootte profielfoto's van reacties instellen"
-#: ../../boot.php:1162
+#: ../../boot.php:1194
#, php-format
msgctxt "opensearch"
msgid "Search %1$s (%2$s)"
msgstr "Zoek %1$s (%2$s)"
-#: ../../boot.php:1162
+#: ../../boot.php:1194
msgctxt "opensearch"
msgid "$Projectname"
msgstr "$Projectname"
-#: ../../boot.php:1480
+#: ../../boot.php:1512
#, php-format
msgid "Update %s failed. See error logs."
msgstr "Update %s mislukt. Zie foutenlogboek."
-#: ../../boot.php:1483
+#: ../../boot.php:1515
#, php-format
msgid "Update Error at %s"
msgstr "Update-fout op %s"
-#: ../../boot.php:1684
+#: ../../boot.php:1719
msgid ""
"Create an account to access services and applications within the Hubzilla"
msgstr "Maak een account aan om toegang te krijgen tot diensten en toepassingen van Hubzilla"
-#: ../../boot.php:1706
+#: ../../boot.php:1740
+msgid "Login/Email"
+msgstr "E-mailadres of inlognaam"
+
+#: ../../boot.php:1741
msgid "Password"
msgstr "Wachtwoord"
-#: ../../boot.php:1707
+#: ../../boot.php:1742
msgid "Remember me"
msgstr "Aangemeld blijven"
-#: ../../boot.php:1710
+#: ../../boot.php:1745
msgid "Forgot your password?"
msgstr "Wachtwoord vergeten?"
-#: ../../boot.php:2276
+#: ../../boot.php:2314
msgid "toggle mobile"
msgstr "mobiele weergave omschakelen"
-#: ../../boot.php:2425
+#: ../../boot.php:2469
msgid "Website SSL certificate is not valid. Please correct."
msgstr "Het SSL-certificaat van deze website is ongeldig. Corrigeer dit a.u.b."
-#: ../../boot.php:2428
+#: ../../boot.php:2472
#, php-format
msgid "[hubzilla] Website SSL error for %s"
msgstr "[hubzilla] Probleem met SSL-certificaat voor %s"
-#: ../../boot.php:2469
+#: ../../boot.php:2576
msgid "Cron/Scheduled tasks not running."
msgstr "Cron is niet actief"
-#: ../../boot.php:2473
+#: ../../boot.php:2580
#, php-format
msgid "[hubzilla] Cron tasks not running on %s"
msgstr "[hubzilla] Cron-taken zijn niet actief op %s"
diff --git a/view/nl/hstrings.php b/view/nl/hstrings.php
index 4ff83f788..5313cefbe 100644
--- a/view/nl/hstrings.php
+++ b/view/nl/hstrings.php
@@ -4,7 +4,39 @@ if(! function_exists("string_plural_select_nl")) {
function string_plural_select_nl($n){
return ($n != 1);;
}}
-;
+App::$rtl = 0;
+App::$strings["Social Networking"] = "Sociaal netwerk";
+App::$strings["Social - Mostly Public"] = "Sociaal - Vrijwel alles openbaar";
+App::$strings["Social - Restricted"] = "Sociaal - Beperkt zichtbaar";
+App::$strings["Social - Private"] = "Sociaal - Verborgen kanaal";
+App::$strings["Community Forum"] = "Groepsforum";
+App::$strings["Forum - Mostly Public"] = "Forum - Vrijwel alles openbaar";
+App::$strings["Forum - Restricted"] = "Forum - Beperkt zichtbaar";
+App::$strings["Forum - Private"] = "Forum - Verborgen kanaal";
+App::$strings["Feed Republish"] = "Feed herpubliceren";
+App::$strings["Feed - Mostly Public"] = "Feed - Vrijwel alles openbaar";
+App::$strings["Feed - Restricted"] = "Feed - Beperkt zichtbaar";
+App::$strings["Special Purpose"] = "Speciaal doel";
+App::$strings["Special - Celebrity/Soapbox"] = "Speciaal - Beroemdheid/alleen volgen";
+App::$strings["Special - Group Repository"] = "Speciaal - Groepsopslag";
+App::$strings["Other"] = "Anders";
+App::$strings["Custom/Expert Mode"] = "Expertmodus/handmatig aanpassen";
+App::$strings["Can view my channel stream and posts"] = "Kan mijn kanaal en berichten bekijken";
+App::$strings["Can send me their channel stream and posts"] = "Kan mij de inhoud van hun kanaal en berichten sturen";
+App::$strings["Can view my default channel profile"] = "Kan mijn standaard kanaalprofiel bekijken";
+App::$strings["Can view my connections"] = "Kan een lijst met mijn connecties bekijken";
+App::$strings["Can view my file storage and photos"] = "Kan mijn foto's en andere bestanden bekijken";
+App::$strings["Can upload/modify my file storage and photos"] = "Kan foto's en andere bestanden aan mijn bestandsopslag toevoegen";
+App::$strings["Can view my channel webpages"] = "Kan de webpagina's van mijn kanaal bekijken";
+App::$strings["Can create/edit my channel webpages"] = "Kan wegpagina's van mijn kanaal aanmaken en bewerken";
+App::$strings["Can post on my channel (wall) page"] = "Kan een bericht in mijn kanaal plaatsen";
+App::$strings["Can comment on or like my posts"] = "Kan op mijn berichten reageren of deze (niet) leuk vinden";
+App::$strings["Can send me private mail messages"] = "Kan mij privéberichten sturen";
+App::$strings["Can like/dislike profiles and profile things"] = "Kan profielen en profieldingen leuk en niet leuk vinden ";
+App::$strings["Can forward to all my channel connections via @+ mentions in posts"] = "Kan naar al mijn kanaalconnecties berichten doorsturen met behulp van @vermeldingen+";
+App::$strings["Can chat with me"] = "Kan met mij chatten";
+App::$strings["Can source my public posts in derived channels"] = "Kan mijn openbare berichten als bron voor andere kanalen gebruiken";
+App::$strings["Can administer my channel"] = "Kan mijn kanaal beheren";
App::$strings["parent"] = "omhoog";
App::$strings["Collection"] = "map";
App::$strings["Principal"] = "principal";
@@ -29,185 +61,113 @@ App::$strings["You are using %1\$s of %2\$s available file storage. (%3\$s&#37;)
App::$strings["WARNING:"] = "WAARSCHUWING:";
App::$strings["Create new folder"] = "Nieuwe map aanmaken";
App::$strings["Upload file"] = "Bestand uploaden";
-App::$strings["Permission denied"] = "Toegang geweigerd";
+App::$strings["Drop files here to immediately upload"] = "Sleep bestanden hierheen om ze onmiddelijk te uploaden";
App::$strings["Permission denied."] = "Toegang geweigerd.";
App::$strings["Not Found"] = "Niet gevonden";
App::$strings["Page not found."] = "Pagina niet gevonden.";
+App::$strings["Permission denied"] = "Toegang geweigerd";
App::$strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "Authenticatie op afstand geblokkeerd. Je bent lokaal op deze hub ingelogd. Uitloggen en opnieuw proberen.";
App::$strings["Welcome %s. Remote authentication successful."] = "Welkom %s. Authenticatie op afstand geslaagd.";
App::$strings["Requested profile is not available."] = "Opgevraagd profiel is niet beschikbaar";
App::$strings["Some blurb about what to do when you're new here"] = "Welkom op \$Projectname. Klik op de tab ontdekken of klik rechtsboven op de <a href=\"directory\">kanalengids</a>, om kanalen te vinden. Rechtsboven vind je ook <a href=\"directory\">apps</a>, waar je vrijwel alle functies van \$Projectname kunt vinden. Voor <a href=\"directory\">hulp</a> met \$Projectname klik je op het vraagteken.";
-App::$strings["Block Name"] = "Bloknaam";
-App::$strings["Blocks"] = "Blokken";
-App::$strings["Block Title"] = "Bloktitel";
-App::$strings["Created"] = "Aangemaakt";
-App::$strings["Edited"] = "Bewerkt";
-App::$strings["Share"] = "Delen";
-App::$strings["View"] = "Weergeven";
-App::$strings["Channel not found."] = "Kanaal niet gevonden.";
-App::$strings["Permissions denied."] = "Permissies niet toegestaan";
-App::$strings["l, F j"] = "l j F";
-App::$strings["Link to Source"] = "Originele locatie";
-App::$strings["Edit Event"] = "Gebeurtenis bewerken";
-App::$strings["Create Event"] = "Gebeurtenis aanmaken";
-App::$strings["Previous"] = "Vorige";
-App::$strings["Next"] = "Volgende";
-App::$strings["Export"] = "Exporteren";
-App::$strings["Import"] = "Importeren";
-App::$strings["Submit"] = "Opslaan";
-App::$strings["Today"] = "Vandaag";
-App::$strings["You must be logged in to see this page."] = "Je moet zijn ingelogd om deze pagina te kunnen bekijken.";
-App::$strings["Posts and comments"] = "Berichten en reacties";
-App::$strings["Only posts"] = "Alleen berichten";
-App::$strings["Insufficient permissions. Request redirected to profile page."] = "Onvoldoende permissies. Doorgestuurd naar profielpagina.";
-App::$strings["Room not found"] = "Chatkanaal niet gevonden";
-App::$strings["Leave Room"] = "Chatkanaal verlaten";
-App::$strings["Delete Room"] = "Chatkanaal verwijderen";
-App::$strings["I am away right now"] = "Ik ben momenteel afwezig";
-App::$strings["I am online"] = "Ik ben online";
-App::$strings["Bookmark this room"] = "Chatkanaal aan bladwijzers toevoegen";
-App::$strings["Please enter a link URL:"] = "Vul een URL in:";
-App::$strings["Encrypt text"] = "Tekst versleutelen";
-App::$strings["Insert web link"] = "Weblink invoegen";
-App::$strings["Feature disabled."] = "Functie uitgeschakeld.";
-App::$strings["New Chatroom"] = "Nieuw chatkanaal";
-App::$strings["Chatroom name"] = "Naam chatkanaal";
-App::$strings["Expiration of chats (minutes)"] = "Aantal minuten voordat chatberichten worden verwijderd";
-App::$strings["Permissions"] = "Permissies";
-App::$strings["%1\$s's Chatrooms"] = "Chatkanalen van %1\$s";
-App::$strings["No chatrooms available"] = "Geen chatkanalen beschikbaar";
-App::$strings["Create New"] = "Nieuwe aanmaken";
-App::$strings["Expiration"] = "Verloopt na";
-App::$strings["min"] = "min";
App::$strings["Away"] = "Afwezig";
App::$strings["Online"] = "Online";
-App::$strings["Invalid item."] = "Ongeldig item.";
+App::$strings["Invalid message"] = "Ongeldig bericht";
+App::$strings["no results"] = "geen resultaten";
+App::$strings["channel sync processed"] = "kanaalsync verwerkt";
+App::$strings["queued"] = "in wachtrij";
+App::$strings["posted"] = "verstuurd";
+App::$strings["accepted for delivery"] = "geaccepteerd om afgeleverd te worden";
+App::$strings["updated"] = "geüpdatet";
+App::$strings["update ignored"] = "update genegeerd";
+App::$strings["permission denied"] = "toegang geweigerd";
+App::$strings["recipient not found"] = "ontvanger niet gevonden";
+App::$strings["mail recalled"] = "Privébericht ingetrokken";
+App::$strings["duplicate mail received"] = "dubbel privébericht ontvangen";
+App::$strings["mail delivered"] = "privébericht afgeleverd";
+App::$strings["Delivery report for %1\$s"] = "Afleveringsrapport voor %1\$s";
+App::$strings["Options"] = "Opties";
+App::$strings["Redeliver"] = "Opnieuw afleveren";
+App::$strings["Fetching URL returns error: %1\$s"] = "Ophalen URL gaf een foutmelding terug: %1\$s";
+App::$strings["Authorize application connection"] = "Geef toestemming voor applicatiekoppeling";
+App::$strings["Return to your app and insert this Security Code:"] = "Ga terug naar je app en voeg deze beveiligingscode in:";
+App::$strings["Please login to continue."] = "Inloggen om verder te kunnen gaan.";
+App::$strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Wil je deze applicatie toestemming geven om jouw berichten en connecties te zien, en/of nieuwe berichten voor jou te plaatsen?";
+App::$strings["Yes"] = "Ja";
+App::$strings["No"] = "Nee";
+App::$strings["Rating"] = "Beoordeling";
+App::$strings["Website:"] = "Website:";
+App::$strings["Remote Channel [%s] (not yet known on this site)"] = "Kanaal op afstand [%s] (nog niet op deze hub bekend)";
+App::$strings["Rating (this information is public)"] = "Beoordeling (deze informatie is openbaar)";
+App::$strings["Optionally explain your rating (this information is public)"] = "Verklaar jouw beoordeling (niet verplicht, deze informatie is openbaar)";
+App::$strings["Submit"] = "Opslaan";
+App::$strings["Public Hubs"] = "Openbare hubs";
+App::$strings["The listed hubs allow public registration for the \$Projectname network. All hubs in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some hubs may require subscription or provide tiered service plans. The hub itself <strong>may</strong> provide additional details."] = "Op de hier weergegeven hubs kan iedereen zich voor het \$Projectname-netwerk aanmelden. Alle hubs in het netwerk zijn met elkaar verbonden, dus maakt het qua lidmaatschap niet uit waar je je aanmeldt. Op sommige hubs heb je eerst goedkeuring nodig en sommige hubs vereisen een financiële tegemoetkoming voor bepaalde uitbreidingen. <strong>Mogelijk</strong> wordt hierover op de hub zelf meer informatie gegeven.";
+App::$strings["Hub URL"] = "Hub-URL";
+App::$strings["Access Type"] = "Toegangs-<br/>&nbsp;type";
+App::$strings["Registration Policy"] = "Registratie-<br/>&nbsp;beleid";
+App::$strings["Stats"] = "Stats";
+App::$strings["Software"] = "Software";
+App::$strings["Ratings"] = "Beoordelingen";
+App::$strings["Rate"] = "Beoordeel";
+App::$strings["Location"] = "Locatie";
+App::$strings["View"] = "Weergeven";
+App::$strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Maximum toegestane dagelijkse registraties op deze \$Projectname-hub bereikt. Probeer het morgen (UTC) nogmaals.";
+App::$strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Registratie mislukt. De gebruiksvoorwaarden dienen wel geaccepteerd te worden.";
+App::$strings["Passwords do not match."] = "Wachtwoorden komen niet met elkaar overeen.";
+App::$strings["Registration successful. Please check your email for validation instructions."] = "Registratie geslaagd. Controleer je e-mail voor instructies.";
+App::$strings["Your registration is pending approval by the site owner."] = "Jouw accountregistratie wacht op goedkeuring van de beheerder van deze \$Projectname-hub.";
+App::$strings["Your registration can not be processed."] = "Jouw registratie kan niet verwerkt worden.";
+App::$strings["Registration on this hub is disabled."] = "Registreren van nieuwe accounts is op deze hub uitgeschakeld.";
+App::$strings["Registration on this hub is by approval only."] = "Registraties op deze hub moeten eerst worden goedgekeurd.";
+App::$strings["<a href=\"pubsites\">Register at another affiliated hub.</a>"] = "<a href=\"pubsites\">Registreer op een andere hub</a>.";
+App::$strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Deze \$Projectname-hub heeft het maximum aantal dagelijks toegestane registraties bereikt. Probeer het morgen (UTC) nogmaals.";
+App::$strings["Terms of Service"] = "Gebruiksvoorwaarden";
+App::$strings["I accept the %s for this website"] = "Ik accepteer de %s van deze \$Projectname-hub";
+App::$strings["I am over 13 years of age and accept the %s for this website"] = "Ik ben 13 jaar of ouder en accepteer de %s van deze \$Projectname-hub";
+App::$strings["Your email address"] = "Jouw e-mailadres";
+App::$strings["Choose a password"] = "Geef een wachtwoord op";
+App::$strings["Please re-enter your password"] = "Geef het wachtwoord opnieuw op";
+App::$strings["Please enter your invitation code"] = "Vul jouw uitnodigingscode in";
+App::$strings["Name or caption"] = "Naam";
+App::$strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\""] = "Voorbeelden: \"Jan Pietersen\", \"Willems weblog\", \"Computerforum\"";
+App::$strings["Choose a short nickname"] = "Korte bijnaam";
+App::$strings["Your nickname will be used to create an easy to remember channel address e.g. nickname%s"] = "Deze bijnaam wordt gebruikt om een makkelijk te onthouden kanaaladres van jouw kanaal aan te maken, die je dan met anderen kunt delen. Bijvoorbeeld: bijnaam%s";
+App::$strings["Channel role and privacy"] = "Kanaaltype en privacy";
+App::$strings["Select a channel role with your privacy requirements."] = "Kies een kanaaltype met het door jou gewenste privacyniveau.";
+App::$strings["Read more about roles"] = "Lees meer over kanaaltypes";
+App::$strings["no"] = "Nee";
+App::$strings["yes"] = "Ja";
+App::$strings["Registration"] = "Registratie";
+App::$strings["Membership on this site is by invitation only."] = "Registreren op deze \$Projectname-hub kan alleen op uitnodiging.";
+App::$strings["Register"] = "Registreren";
+App::$strings["This site may require email verification after submitting this form. If you are returned to a login page, please check your email for instructions."] = "Mogelijk moet op deze hub eerst jouw e-mail geverifieerd worden. Wanneer je na het indienen van dit formulier op de inlogpagina terecht komt, dan dien je jouw e-mail te controleren voor instructies. Controleer eventueel ook jouw spamfolder.";
App::$strings["Bookmark added"] = "Bladwijzer toegevoegd";
App::$strings["My Bookmarks"] = "Mijn bladwijzers";
App::$strings["My Connections Bookmarks"] = "Bladwijzers van mijn connecties";
-App::$strings["Continue"] = "Ga verder";
-App::$strings["Premium Channel Setup"] = "Instellen premiumkanaal ";
-App::$strings["Enable premium channel connection restrictions"] = "Restricties voor connecties van premiumkanaal toestaan";
-App::$strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Vul je restricties of voorwaarden in, zoals een paypal-afschrift, voorschriften voor leden, enz.";
-App::$strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Dit kanaal kan extra stappen of het accepteren van de volgende voorwaarden vereisen, voordat de connectie wordt geaccepteerd:";
-App::$strings["Potential connections will then see the following text before proceeding:"] = "Mogelijke connecties zullen dan de volgende tekst zien voordat ze verder kunnen:";
-App::$strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Door verder te gaan ga ik automatisch akkoord met alle voorwaarden en aanwijzingen op deze pagina.";
-App::$strings["(No specific instructions have been provided by the channel owner.)"] = "(Er zijn geen speciale voorwaarden en aanwijzingen door de kanaal-eigenaar verstrekt) ";
-App::$strings["Restricted or Premium Channel"] = "Beperkt of premiumkanaal";
-App::$strings["Could not access contact record."] = "Kon geen toegang krijgen tot de connectie-gegevens.";
-App::$strings["Could not locate selected profile."] = "Kon het gekozen profiel niet vinden.";
-App::$strings["Connection updated."] = "Connectie bijgewerkt.";
-App::$strings["Failed to update connection record."] = "Bijwerken van connectie-gegevens mislukt.";
-App::$strings["is now connected to"] = "is nu verbonden met";
-App::$strings["No"] = "Nee";
-App::$strings["Yes"] = "Ja";
-App::$strings["Could not access address book record."] = "Kon geen toegang krijgen tot de record van de connectie.";
-App::$strings["Refresh failed - channel is currently unavailable."] = "Vernieuwen mislukt - kanaal is momenteel niet beschikbaar";
-App::$strings["Unable to set address book parameters."] = "Niet in staat om de parameters van connecties in te stellen.";
-App::$strings["Connection has been removed."] = "Connectie is verwijderd";
-App::$strings["View Profile"] = "Profiel weergeven";
-App::$strings["View %s's profile"] = "Profiel van %s weergeven";
-App::$strings["Refresh Permissions"] = "Permissies vernieuwen";
-App::$strings["Fetch updated permissions"] = "Aangepaste permissies ophalen";
-App::$strings["Recent Activity"] = "Recente activiteit/berichten";
-App::$strings["View recent posts and comments"] = "Recente berichten en reacties weergeven";
-App::$strings["Unblock"] = "Deblokkeren";
-App::$strings["Block"] = "Blokkeren";
-App::$strings["Block (or Unblock) all communications with this connection"] = "Blokkeer (of deblokkeer) alle communicatie met deze connectie";
-App::$strings["This connection is blocked!"] = "Deze connectie is geblokkeerd!";
-App::$strings["Unignore"] = "Niet meer negeren";
-App::$strings["Ignore"] = "Negeren";
-App::$strings["Ignore (or Unignore) all inbound communications from this connection"] = "Negeer (of negeer niet meer) alle inkomende communicatie van deze connectie";
-App::$strings["This connection is ignored!"] = "Deze connectie wordt genegeerd!";
-App::$strings["Unarchive"] = "Niet meer archiveren";
-App::$strings["Archive"] = "Archiveren";
-App::$strings["Archive (or Unarchive) this connection - mark channel dead but keep content"] = "Archiveer (of dearchiveer) deze connectie - markeer het kanaal als dood, maar bewaar de inhoud";
-App::$strings["This connection is archived!"] = "Deze connectie is gearchiveerd!";
-App::$strings["Unhide"] = "Niet meer verbergen";
-App::$strings["Hide"] = "Verbergen";
-App::$strings["Hide or Unhide this connection from your other connections"] = "Deze connectie verbergen (of niet meer verbergen) voor jouw andere connecties";
-App::$strings["This connection is hidden!"] = "Deze connectie is verborgen!";
-App::$strings["Delete this connection"] = "Deze connectie verwijderen";
-App::$strings["Me"] = "Ik";
-App::$strings["Family"] = "Familie";
-App::$strings["Friends"] = "Vrienden";
-App::$strings["Acquaintances"] = "Kennissen";
-App::$strings["All"] = "Alles";
-App::$strings["Approve this connection"] = "Deze connectie accepteren";
-App::$strings["Accept connection to allow communication"] = "Keur deze connectie goed om communicatie toe te staan";
-App::$strings["Set Affinity"] = "Verwantschapsfilter instellen";
-App::$strings["Set Profile"] = "Profiel instellen";
-App::$strings["Set Affinity & Profile"] = "Verwantschapsfilter en profiel instellen";
-App::$strings["none"] = "geen";
-App::$strings["Connection Default Permissions"] = "Standaard permissies voor connecties";
-App::$strings["Connection: %s"] = "Connectie: %s";
-App::$strings["Apply these permissions automatically"] = "Deze permissies automatisch toepassen";
-App::$strings["Connection requests will be approved without your interaction"] = "Connectieverzoeken zullen automatisch worden geaccepteerd";
-App::$strings["This connection's primary address is"] = "Het primaire kanaaladres van deze connectie is";
-App::$strings["Available locations:"] = "Beschikbare locaties:";
-App::$strings["The permissions indicated on this page will be applied to all new connections."] = "Permissies die op deze pagina staan vermeld worden op alle nieuwe connecties toegepast.";
-App::$strings["Connection Tools"] = "Hulpmiddelen";
-App::$strings["Slide to adjust your degree of friendship"] = "Schuif om te bepalen hoe goed je iemand kent en/of mag";
-App::$strings["Rating"] = "Beoordeling";
-App::$strings["Slide to adjust your rating"] = "Gebruik de schuif om je beoordeling te geven";
-App::$strings["Optionally explain your rating"] = "Verklaar jouw beoordeling (niet verplicht)";
-App::$strings["Custom Filter"] = "Berichtenfilter";
-App::$strings["Only import posts with this text"] = "Importeer alleen berichten met deze tekst";
-App::$strings["words one per line or #tags or /patterns/ or lang=xx, leave blank to import all posts"] = "woorden (één per regel), #tags, /regex/ of talen (lang=iso639-1) - laat leeg om alle berichten te importeren";
-App::$strings["Do not import posts with this text"] = "Importeer geen berichten met deze tekst";
-App::$strings["This information is public!"] = "Deze informatie is openbaar!";
-App::$strings["Connection Pending Approval"] = "Connectie moet nog geaccepteerd worden";
-App::$strings["inherited"] = "geërfd";
-App::$strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Kies het profiel dat je aan %s wil tonen wanneer hij/zij ingelogd jouw profiel wil bekijken.";
-App::$strings["Their Settings"] = "Hun instellingen";
-App::$strings["My Settings"] = "Mijn instellingen";
-App::$strings["Individual Permissions"] = "Individuele permissies";
-App::$strings["Some permissions may be inherited from your channel's <a href=\"settings\"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can <strong>not</strong> change those settings here."] = "Sommige permissies worden mogelijk overgeërfd van de <a href=\"settings\">privacy-instellingen</a> van jouw kanaal, die een hogere prioriteit hebben dan deze individuele instellingen. Je kan je deze overgeërfde permissies hier <strong>niet</strong> veranderen.";
-App::$strings["Some permissions may be inherited from your channel's <a href=\"settings\"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can change those settings here but they wont have any impact unless the inherited setting changes."] = "Sommige permissies worden mogelijk overgeërfd van de <a href=\"settings\">privacy-instellingen</a> van jouw kanaal, die een hogere prioriteit hebben dan deze individuele permissies. Je kan de permissies hier veranderen, maar die hebben geen effect, tenzij de overgeërfde permissies worden veranderd. ";
-App::$strings["Last update:"] = "Laatste wijziging:";
App::$strings["Public access denied."] = "Openbare toegang geweigerd.";
-App::$strings["%d rating"] = array(
- 0 => "%d beoordeling",
- 1 => "%d beoordelingen",
-);
-App::$strings["Gender: "] = "Geslacht:";
-App::$strings["Status: "] = "Status: ";
-App::$strings["Homepage: "] = "Homepage: ";
-App::$strings["Age:"] = "Leeftijd:";
-App::$strings["Location:"] = "Plaats:";
-App::$strings["Description:"] = "Omschrijving:";
-App::$strings["Hometown:"] = "Oorspronkelijk uit:";
-App::$strings["About:"] = "Over:";
-App::$strings["Connect"] = "Verbinden";
-App::$strings["Public Forum:"] = "Openbaar forum:";
-App::$strings["Keywords: "] = "Trefwoorden: ";
-App::$strings["Don't suggest"] = "Niet voorstellen";
-App::$strings["Common connections:"] = "Gemeenschappelijke connecties:";
-App::$strings["Global Directory"] = "Volledige kanalengids";
-App::$strings["Local Directory"] = "Lokale kanalengids";
-App::$strings["Find"] = "Vinden";
-App::$strings["Finding:"] = "Gezocht naar:";
-App::$strings["Channel Suggestions"] = "Voorgestelde kanalen";
-App::$strings["next page"] = "volgende pagina";
-App::$strings["previous page"] = "vorige pagina";
-App::$strings["Sort options"] = "Sorteeropties";
-App::$strings["Alphabetic"] = "Alfabetisch";
-App::$strings["Reverse Alphabetic"] = "Omgekeerd alfabetisch";
-App::$strings["Newest to Oldest"] = "Nieuw naar oud";
-App::$strings["Oldest to Newest"] = "Oud naar nieuw";
-App::$strings["No entries (some entries may be hidden)."] = "Niets gevonden (sommige kanalen kunnen verborgen zijn).";
App::$strings["Item not found."] = "Item niet gevonden.";
-App::$strings["Item not found"] = "Item niet gevonden";
-App::$strings["Title (optional)"] = "Titel (optioneel)";
-App::$strings["Edit Block"] = "Blok bewerken";
-App::$strings["No channel."] = "Geen kanaal.";
-App::$strings["Common connections"] = "Veel voorkomende connecties";
-App::$strings["No connections in common."] = "Geen gemeenschappelijke connecties.";
+App::$strings["Photos"] = "Foto's";
+App::$strings["Cancel"] = "Annuleren";
+App::$strings["Invalid item."] = "Ongeldig item.";
+App::$strings["Channel not found."] = "Kanaal niet gevonden.";
+App::$strings["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
+App::$strings["Save to Folder:"] = "Bewaar in map: ";
+App::$strings["- select -"] = "- kies map -";
+App::$strings["Save"] = "Opslaan";
+App::$strings["No such group"] = "Collectie niet gevonden";
+App::$strings["No such channel"] = "Niet zo'n kanaal";
+App::$strings["forum"] = "forum";
+App::$strings["Search Results For:"] = "Zoekresultaten voor:";
+App::$strings["Privacy group is empty"] = "Privacygroep is leeg";
+App::$strings["Privacy group: "] = "Privacygroep: ";
+App::$strings["Invalid connection."] = "Ongeldige connectie.";
App::$strings["Blocked"] = "Geblokkeerd";
App::$strings["Ignored"] = "Genegeerd";
App::$strings["Hidden"] = "Verborgen";
App::$strings["Archived"] = "Gearchiveerd";
App::$strings["New"] = "Nieuw";
+App::$strings["All"] = "Alles";
App::$strings["New Connections"] = "Nieuwe connecties";
App::$strings["Show pending (new) connections"] = "Nog te accepteren (nieuwe) connecties weergeven";
App::$strings["All Connections"] = "Alle connecties";
@@ -227,11 +187,13 @@ App::$strings["Connected"] = "Verbonden";
App::$strings["Approve connection"] = "Connectie accepteren";
App::$strings["Approve"] = "Goedkeuren";
App::$strings["Ignore connection"] = "Connectie negeren";
+App::$strings["Ignore"] = "Negeren";
App::$strings["Recent activity"] = "Recente activiteit";
App::$strings["Connections"] = "Connecties";
App::$strings["Search"] = "Zoeken";
App::$strings["Search your connections"] = "Doorzoek jouw connecties";
App::$strings["Connections search"] = "Connecties zoeken";
+App::$strings["Find"] = "Vinden";
App::$strings["Image uploaded but image cropping failed."] = "Afbeelding geüpload, maar afbeelding kon niet worden bijgesneden. ";
App::$strings["Cover Photos"] = "Omslagfoto's";
App::$strings["Image resize failed."] = "Afbeelding kon niet van grootte veranderd worden.";
@@ -254,96 +216,199 @@ App::$strings["select a photo from your photo albums"] = "Kies een foto uit jouw
App::$strings["Crop Image"] = "Afbeelding bijsnijden";
App::$strings["Please adjust the image cropping for optimum viewing."] = "Snij de afbeelding zo uit dat deze optimaal wordt weergegeven.";
App::$strings["Done Editing"] = "Klaar met bewerken";
-App::$strings["Item is not editable"] = "Item is niet te bewerken";
-App::$strings["Edit post"] = "Bericht bewerken";
-App::$strings["Calendar entries imported."] = "Agenda-items geïmporteerd.";
-App::$strings["No calendar entries found."] = "Geen agenda-items gevonden.";
-App::$strings["Event can not end before it has started."] = "Gebeurtenis kan niet eindigen voordat het is begonnen";
-App::$strings["Unable to generate preview."] = "Niet in staat om voorvertoning te genereren";
-App::$strings["Event title and start time are required."] = "Titel en begintijd van gebeurtenis zijn vereist.";
-App::$strings["Event not found."] = "Gebeurtenis niet gevonden";
-App::$strings["event"] = "gebeurtenis";
-App::$strings["Edit event title"] = "Titel bewerken";
-App::$strings["Event title"] = "Titel";
-App::$strings["Required"] = "Vereist";
-App::$strings["Categories (comma-separated list)"] = "Categorieën (door komma's gescheiden lijst)";
-App::$strings["Edit Category"] = "Categorie";
-App::$strings["Category"] = "Categorie";
-App::$strings["Edit start date and time"] = "Begindatum en -tijd bewerken";
-App::$strings["Start date and time"] = "Begindatum en -tijd";
-App::$strings["Finish date and time are not known or not relevant"] = "Einddatum en -tijd zijn niet bekend of niet van toepassing";
-App::$strings["Edit finish date and time"] = "Einddatum en -tijd bewerken";
-App::$strings["Finish date and time"] = "Einddatum en -tijd";
-App::$strings["Adjust for viewer timezone"] = "Aanpassen aan de tijdzone van wie deze gebeurtenis bekijkt";
-App::$strings["Important for events that happen in a particular place. Not practical for global holidays."] = "Belangrijk voor gebeurtenissen die op een bepaalde locatie plaatsvinden. Niet praktisch voor wereldwijde feestdagen.";
-App::$strings["Edit Description"] = "Omschrijving bewerken";
-App::$strings["Description"] = "Omschrijving";
-App::$strings["Edit Location"] = "Locatie bewerken";
-App::$strings["Location"] = "Locatie";
-App::$strings["Share this event"] = "Deel deze gebeurtenis";
-App::$strings["Preview"] = "Voorvertoning";
-App::$strings["Permission settings"] = "Permissies";
-App::$strings["Advanced Options"] = "Geavanceerde opties";
-App::$strings["Edit event"] = "Gebeurtenis bewerken";
-App::$strings["Delete event"] = "Gebeurtenis verwijderen";
-App::$strings["calendar"] = "agenda";
-App::$strings["Event removed"] = "Gebeurtenis verwijderd";
-App::$strings["Failed to remove event"] = "Verwijderen gebeurtenis mislukt";
-App::$strings["Photos"] = "Foto's";
-App::$strings["Cancel"] = "Annuleren";
+App::$strings["\$Projectname Server - Setup"] = "\$Projectname Hub - Setup";
+App::$strings["Could not connect to database."] = "Could not connect to database.";
+App::$strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Could not connect to specified hub URL. Possible SSL certificate or DNS issue.";
+App::$strings["Could not create table."] = "Could not create table.";
+App::$strings["Your site database has been installed."] = "Your hub database has been installed.";
+App::$strings["You may need to import the file \"install/schema_xxx.sql\" manually using a database client."] = "You may need to import the file \"install/schema_xxx.sql\" manually using a database client.";
+App::$strings["Please see the file \"install/INSTALL.txt\"."] = "Please see the file \"install/INSTALL.txt\".";
+App::$strings["System check"] = "System check";
+App::$strings["Next"] = "Volgende";
+App::$strings["Check again"] = "Check again";
+App::$strings["Database connection"] = "Database connection";
+App::$strings["In order to install \$Projectname we need to know how to connect to your database."] = "In order to install \$Projectname we need to know how to connect to your database.";
+App::$strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Please contact your hosting provider or server administrator if you have questions about these settings.";
+App::$strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "The database you specify below should already exist. If it does not, please create it before continuing.";
+App::$strings["Database Server Name"] = "Database Server Name";
+App::$strings["Default is 127.0.0.1"] = "Default is 127.0.0.1";
+App::$strings["Database Port"] = "Database Port";
+App::$strings["Communication port number - use 0 for default"] = "Communication port number - use 0 for default";
+App::$strings["Database Login Name"] = "Database Login Name";
+App::$strings["Database Login Password"] = "Database Login Password";
+App::$strings["Database Name"] = "Database Name";
+App::$strings["Database Type"] = "Database Type";
+App::$strings["Site administrator email address"] = "Hub administrator email address";
+App::$strings["Your account email address must match this in order to use the web admin panel."] = "Your account email address must match this in order to use the web admin panel.";
+App::$strings["Website URL"] = "Hub URL";
+App::$strings["Please use SSL (https) URL if available."] = "Please use SSL (https) URL if available.";
+App::$strings["Please select a default timezone for your website"] = "Please select a default timezone for your hub";
+App::$strings["Basic/Minimal Social Networking"] = "Basic/eenvoudig sociaal netwerk";
+App::$strings["Standard Configuration (default)"] = "Standaard (standaard)";
+App::$strings["Professional"] = "Professioneel ";
+App::$strings["Site settings"] = "Hub settings";
+App::$strings["Server Configuration/Role"] = "Configuratietype hub";
+App::$strings["PHP version 5.5 or greater is required."] = "PHP version 5.5 or greater is required.";
+App::$strings["PHP version"] = "PHP version";
+App::$strings["Could not find a command line version of PHP in the web server PATH."] = "Could not find a command line version of PHP in the web server PATH.";
+App::$strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron."] = "If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron.";
+App::$strings["PHP executable path"] = "PHP executable path";
+App::$strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Enter full path to php executable. You can leave this blank to continue the installation.";
+App::$strings["Command line PHP"] = "Command line PHP";
+App::$strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "The command line version of PHP on your system does not have \"register_argc_argv\" enabled.";
+App::$strings["This is required for message delivery to work."] = "This is required for message delivery to work.";
+App::$strings["PHP register_argc_argv"] = "PHP register_argc_argv";
+App::$strings["Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once."] = "Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once.";
+App::$strings["You can adjust these settings in the servers php.ini."] = "You can adjust these settings in the servers php.ini.";
+App::$strings["PHP upload limits"] = "PHP upload limits";
+App::$strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys";
+App::$strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\".";
+App::$strings["Generate encryption keys"] = "Generate encryption keys";
+App::$strings["libCurl PHP module"] = "libCurl PHP module";
+App::$strings["GD graphics PHP module"] = "GD graphics PHP module";
+App::$strings["OpenSSL PHP module"] = "OpenSSL PHP module";
+App::$strings["mysqli or postgres PHP module"] = "mysqli or postgres PHP module";
+App::$strings["mb_string PHP module"] = "mb_string PHP module";
+App::$strings["xml PHP module"] = "xml PHP module";
+App::$strings["Apache mod_rewrite module"] = "Apache mod_rewrite module";
+App::$strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Error: Apache webserver mod-rewrite module is required but not installed.";
+App::$strings["proc_open"] = "proc_open";
+App::$strings["Error: proc_open is required but is either not installed or has been disabled in php.ini"] = "Error: proc_open is required but is either not installed or has been disabled in php.ini";
+App::$strings["Error: libCURL PHP module required but not installed."] = "Error: libCURL PHP module required but not installed.";
+App::$strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Error: GD graphics PHP module with JPEG support required but not installed.";
+App::$strings["Error: openssl PHP module required but not installed."] = "Error: openssl PHP module required but not installed.";
+App::$strings["Error: mysqli or postgres PHP module required but neither are installed."] = "Error: mysqli or postgres PHP module required but neither are installed.";
+App::$strings["Error: mb_string PHP module required but not installed."] = "Error: mb_string PHP module required but not installed.";
+App::$strings["Error: xml PHP module required for DAV but not installed."] = "Error: xml PHP module required for DAV but not installed.";
+App::$strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so.";
+App::$strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can.";
+App::$strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."] = "At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder.";
+App::$strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions.";
+App::$strings[".htconfig.php is writable"] = ".htconfig.php is writable";
+App::$strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering.";
+App::$strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder."] = "In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder.";
+App::$strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder.";
+App::$strings["Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."] = "Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains.";
+App::$strings["%s is writable"] = "%s is writable";
+App::$strings["This software uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder"] = "This software uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder";
+App::$strings["store is writable"] = "store is writable";
+App::$strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "SSL certificate cannot be validated. Fix certificate or disable https access to this hub.";
+App::$strings["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "If you have https access to your hub or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!";
+App::$strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "This restriction is incorporated because public posts from you may for example contain references to images on your own hub.";
+App::$strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "If your certificate is not recognized, members of other hubs (who may themselves have valid certificates) will get a warning message on their own hub complaining about security issues.";
+App::$strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "This can cause usability issues elsewhere (not just on your own hub) so we must insist on this requirement.";
+App::$strings["Providers are available that issue free certificates which are browser-valid."] = "Providers are available that issue free certificates which are browser-valid.";
+App::$strings["If you are confident that the certificate is valid and signed by a trusted authority, check to see if you have failed to install an intermediate cert. These are not normally required by browsers, but are required for server-to-server communications."] = "If you are confident that the certificate is valid and signed by a trusted authority, check to see if you have failed to install an intermediate cert. These are not normally required by browsers, but are required for server-to-server communications.";
+App::$strings["SSL certificate validation"] = "SSL certificate validation";
+App::$strings["Url rewrite in .htaccess is not working. Check your server configuration.Test: "] = "Url rewrite in .htaccess is not working. Check your server configuration.Test: ";
+App::$strings["Url rewrite is working"] = "Url rewrite is working";
+App::$strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root.";
+App::$strings["Errors encountered creating database tables."] = "Errors encountered creating database tables.";
+App::$strings["<h1>What next</h1>"] = "<h1>What next</h1>";
+App::$strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANT: You will need to [manually] setup a scheduled task for the poller.";
+App::$strings["%d rating"] = array(
+ 0 => "%d beoordeling",
+ 1 => "%d beoordelingen",
+);
+App::$strings["Gender: "] = "Geslacht:";
+App::$strings["Status: "] = "Status: ";
+App::$strings["Homepage: "] = "Homepage: ";
+App::$strings["Age:"] = "Leeftijd:";
+App::$strings["Location:"] = "Plaats:";
+App::$strings["Description:"] = "Omschrijving:";
+App::$strings["Hometown:"] = "Oorspronkelijk uit:";
+App::$strings["About:"] = "Over:";
+App::$strings["Connect"] = "Verbinden";
+App::$strings["Public Forum:"] = "Openbaar forum:";
+App::$strings["Keywords: "] = "Trefwoorden: ";
+App::$strings["Don't suggest"] = "Niet voorstellen";
+App::$strings["Common connections:"] = "Gemeenschappelijke connecties:";
+App::$strings["Global Directory"] = "Volledige kanalengids";
+App::$strings["Local Directory"] = "Lokale kanalengids";
+App::$strings["Finding:"] = "Gezocht naar:";
+App::$strings["Channel Suggestions"] = "Voorgestelde kanalen";
+App::$strings["next page"] = "volgende pagina";
+App::$strings["previous page"] = "vorige pagina";
+App::$strings["Sort options"] = "Sorteeropties";
+App::$strings["Alphabetic"] = "Alfabetisch";
+App::$strings["Reverse Alphabetic"] = "Omgekeerd alfabetisch";
+App::$strings["Newest to Oldest"] = "Nieuw naar oud";
+App::$strings["Oldest to Newest"] = "Oud naar nieuw";
+App::$strings["No entries (some entries may be hidden)."] = "Niets gevonden (sommige kanalen kunnen verborgen zijn).";
App::$strings["This site is not a directory server"] = "Deze hub is geen kanalengidshub (directoryserver)";
App::$strings["This directory server requires an access token"] = "Deze kanalengidshub (directoryserver) heeft een toegangs-token nodig";
-App::$strings["Save to Folder:"] = "Bewaar in map: ";
-App::$strings["- select -"] = "- kies map -";
-App::$strings["Save"] = "Opslaan";
-App::$strings["Invalid message"] = "Ongeldig bericht";
-App::$strings["no results"] = "geen resultaten";
-App::$strings["Delivery report for %1\$s"] = "Afleveringsrapport voor %1\$s";
-App::$strings["channel sync processed"] = "kanaalsync verwerkt";
-App::$strings["queued"] = "in wachtrij";
-App::$strings["posted"] = "verstuurd";
-App::$strings["accepted for delivery"] = "geaccepteerd om afgeleverd te worden";
-App::$strings["updated"] = "geüpdatet";
-App::$strings["update ignored"] = "update genegeerd";
-App::$strings["permission denied"] = "toegang geweigerd";
-App::$strings["recipient not found"] = "ontvanger niet gevonden";
-App::$strings["mail recalled"] = "Privébericht ingetrokken";
-App::$strings["duplicate mail received"] = "dubbel privébericht ontvangen";
-App::$strings["mail delivered"] = "privébericht afgeleverd";
+App::$strings["Item not found"] = "Item niet gevonden";
+App::$strings["Block Name"] = "Bloknaam";
+App::$strings["Insert web link"] = "Weblink invoegen";
+App::$strings["Title (optional)"] = "Titel (optioneel)";
+App::$strings["Edit Block"] = "Blok bewerken";
App::$strings["Layout Name"] = "Naam lay-out";
App::$strings["Layout Description (Optional)"] = "Lay-out-omschrijving (optioneel)";
App::$strings["Edit Layout"] = "Lay-out bewerken";
App::$strings["Page link"] = "Paginalink";
App::$strings["Edit Webpage"] = "Webpagina bewerken";
-App::$strings["Channel added."] = "Kanaal toegevoegd.";
-App::$strings["network"] = "netwerk";
-App::$strings["RSS"] = "RSS";
-App::$strings["Privacy group created."] = "Privacygroep aangemaakt";
-App::$strings["Could not create privacy group."] = "Kon privacygroep niet aanmaken";
-App::$strings["Privacy group not found."] = "Privacygroep niet gevonden";
-App::$strings["Privacy group updated."] = "Privacygroep bijgewerkt";
-App::$strings["Create a group of channels."] = "Privacygroep met kanalen aanmaken";
-App::$strings["Privacy group name: "] = "Naam privacygroep: ";
-App::$strings["Members are visible to other channels"] = "Kanalen in deze privacygroep zijn zichtbaar voor andere kanalen";
-App::$strings["Privacy group removed."] = "Privacygroep verwijderd.";
-App::$strings["Unable to remove privacy group."] = "Verwijderen privacygroep mislukt";
-App::$strings["Privacy group editor"] = "Privacygroep bewerken";
-App::$strings["Members"] = "Kanalen";
-App::$strings["All Connected Channels"] = "Alle kanaalconnecties";
-App::$strings["Click on a channel to add or remove."] = "Klik op een kanaal om deze toe te voegen of te verwijderen.";
-App::$strings["Share content from Firefox to \$Projectname"] = "Deel webpagina's vanuit Firefox met ";
-App::$strings["Activate the Firefox \$Projectname provider"] = "Activeer de \$Projectname-service in Firefox";
-App::$strings["Authorize application connection"] = "Geef toestemming voor applicatiekoppeling";
-App::$strings["Return to your app and insert this Securty Code:"] = "Ga terug naar je app en voeg deze beveiligingscode in:";
-App::$strings["Please login to continue."] = "Inloggen om verder te kunnen gaan.";
-App::$strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Wil je deze applicatie toestemming geven om jouw berichten en connecties te zien, en/of nieuwe berichten voor jou te plaatsen?";
+App::$strings["Unable to update menu."] = "Niet in staat om menu aan te passen";
+App::$strings["Unable to create menu."] = "Niet in staat om menu aan te maken.";
+App::$strings["Menu Name"] = "Menunaam";
+App::$strings["Unique name (not visible on webpage) - required"] = "Unieke naam vereist (niet zichtbaar op webpagina)";
+App::$strings["Menu Title"] = "Menutitel";
+App::$strings["Visible on webpage - leave empty for no title"] = "Zichtbaar op webpagina (leeg laten voor geen titel)";
+App::$strings["Allow Bookmarks"] = "Bladwijzers toestaan";
+App::$strings["Menu may be used to store saved bookmarks"] = "Menu kan gebruikt worden om bladwijzers in op te slaan";
+App::$strings["Submit and proceed"] = "Opslaan en doorgaan";
+App::$strings["Menus"] = "Menu's";
+App::$strings["Drop"] = "Verwijderen";
+App::$strings["Created"] = "Aangemaakt";
+App::$strings["Edited"] = "Bewerkt";
+App::$strings["Bookmarks allowed"] = "Bladwijzers toegestaan";
+App::$strings["Delete this menu"] = "Menu verwijderen";
+App::$strings["Edit menu contents"] = "Bewerk de inhoud van het menu";
+App::$strings["Edit this menu"] = "Dit menu bewerken";
+App::$strings["Menu could not be deleted."] = "Menu kon niet verwijderd worden.";
+App::$strings["Menu not found."] = "Menu niet gevonden.";
+App::$strings["Edit Menu"] = "Menu bewerken";
+App::$strings["Add or remove entries to this menu"] = "Items aan dit menu toevoegen of verwijder";
+App::$strings["Menu name"] = "Naam van menu";
+App::$strings["Must be unique, only seen by you"] = "Moet uniek zijn en is alleen zichtbaar voor jou.";
+App::$strings["Menu title"] = "Titel van menu";
+App::$strings["Menu title as seen by others"] = "Titel van menu zoals anderen dat zien.";
+App::$strings["Allow bookmarks"] = "Bladwijzers toestaan";
+App::$strings["Not found."] = "Niet gevonden.";
+App::$strings["App installed."] = "App geïnstalleerd";
+App::$strings["Malformed app."] = "Misvormde app.";
+App::$strings["Embed code"] = "Insluitcode";
+App::$strings["Edit App"] = "App bewerken";
+App::$strings["Create App"] = "App maken";
+App::$strings["Name of app"] = "Naam van app";
+App::$strings["Required"] = "Vereist";
+App::$strings["Location (URL) of app"] = "Locatie (URL) van app";
+App::$strings["Description"] = "Omschrijving";
+App::$strings["Photo icon URL"] = "URL van pictogram";
+App::$strings["80 x 80 pixels - optional"] = "80 x 80 pixels (optioneel)";
+App::$strings["Categories (optional, comma separated list)"] = "Categorieën (optioneel, door komma's gescheiden lijst)";
+App::$strings["Version ID"] = "Versie-ID";
+App::$strings["Price of app"] = "Prijs van de app";
+App::$strings["Location (URL) to purchase app"] = "Locatie (URL) om de app aan te schaffen";
App::$strings["Documentation Search"] = "Zoek documentatie";
App::$strings["Help:"] = "Hulp:";
App::$strings["Help"] = "Hulp";
App::$strings["\$Projectname Documentation"] = "\$Projectname-documentatie";
+App::$strings["Item not available."] = "Item is niet aanwezig.";
+App::$strings["Layout updated."] = "Lay-out bijgewerkt.";
+App::$strings["Edit System Page Description"] = "Systeempagina's bewerken";
+App::$strings["Layout not found."] = "Lay-out niet gevonden.";
+App::$strings["Module Name:"] = "Modulenaam:";
+App::$strings["Layout Help"] = "Lay-out-hulp";
+App::$strings["Share content from Firefox to \$Projectname"] = "Deel webpagina's vanuit Firefox met ";
+App::$strings["Activate the Firefox \$Projectname provider"] = "Activeer de \$Projectname-service in Firefox";
+App::$strings["\$Projectname"] = "\$Projectname";
+App::$strings["Welcome to %s"] = "Welkom op %s";
+App::$strings["Remote privacy information not available."] = "Privacy-informatie op afstand niet beschikbaar.";
+App::$strings["Visible to:"] = "Zichtbaar voor:";
App::$strings["Permission Denied."] = "Toegang geweigerd";
App::$strings["File not found."] = "Bestand niet gevonden.";
App::$strings["Edit file permissions"] = "Bestandsrechten bewerken";
+App::$strings["Permissions"] = "Permissies";
App::$strings["Set/edit permissions"] = "Rechten instellen/bewerken";
App::$strings["Include all files and sub folders"] = "Toepassen op alle bestanden en submappen";
App::$strings["Return to file list"] = "Terugkeren naar bestandlijst ";
@@ -352,93 +417,275 @@ App::$strings["Copy/paste this URL to link file from a web page"] = "Kopieer/pla
App::$strings["Share this file"] = "Dit bestand delen";
App::$strings["Show URL to this file"] = "Toon URL van dit bestand";
App::$strings["Notify your contacts about this file"] = "Jouw connecties over dit bestand berichten";
-App::$strings["Apps"] = "Apps";
-App::$strings["Item not available."] = "Item is niet aanwezig.";
-App::$strings["Your service plan only allows %d channels."] = "Jouw abonnement staat maar %d kanalen toe.";
-App::$strings["Nothing to import."] = "Niets gevonden om te importeren";
-App::$strings["Unable to download data from old server"] = "Niet in staat om gegevens van de oude hub te downloaden";
-App::$strings["Imported file is empty."] = "Geïmporteerde bestand is leeg";
-App::$strings["Warning: Database versions differ by %1\$d updates."] = "Waarschuwing: database-versies lopen %1\$d updates achter.";
-App::$strings["Cloned channel not found. Import failed."] = "Gekloond kanaal niet gevonden. Importeren mislukt.";
-App::$strings["No channel. Import failed."] = "Geen kanaal. Importeren mislukt.";
-App::$strings["Import completed."] = "Import voltooid.";
-App::$strings["You must be logged in to use this feature."] = "Je moet ingelogd zijn om dit onderdeel te kunnen gebruiken.";
-App::$strings["Import Channel"] = "Kanaal importeren";
-App::$strings["Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file."] = "Gebruik dit formulier om een bestaand kanaal te importeren van een andere hub. Je kan de kanaal-identiteit van de oude hub via het netwerk ontvangen of een exportbestand verstrekken.";
-App::$strings["File to Upload"] = "Bestand om te uploaden";
-App::$strings["Or provide the old server/hub details"] = "Of vul de gegevens van de oude hub in";
-App::$strings["Your old identity address (xyz@example.com)"] = "Jouw oude kanaaladres (xyz@example.com)";
-App::$strings["Your old login email address"] = "Het e-mailadres van je oude account";
-App::$strings["Your old login password"] = "Wachtwoord van jouw oude account";
-App::$strings["For either option, please choose whether to make this hub your new primary address, or whether your old location should continue this role. You will be able to post from either location, but only one can be marked as the primary location for files, photos, and media."] = "Voor elke optie geldt dat je moet kiezen of je jouw primaire kanaaladres op deze hub wil instellen of dat jouw oude hub deze rol blijft vervullen.";
-App::$strings["Make this hub my primary location"] = "Stel deze hub als mijn primaire locatie in";
-App::$strings["Import existing posts if possible (experimental - limited by available memory"] = "Importeer bestaande berichten wanneer mogelijk (experimenteel - afhankelijk van beschikbaar servergeheugen)";
-App::$strings["This process may take several minutes to complete. Please submit the form only once and leave this page open until finished."] = "Dit proces kan enkele minuten in beslag nemen. Klik maar één keer op opslaan en verlaat deze pagina niet alvorens het proces is voltooid.";
-App::$strings["Unable to locate original post."] = "Niet in staat om de originele locatie van het bericht te vinden. ";
-App::$strings["Empty post discarded."] = "Leeg bericht geannuleerd";
-App::$strings["Executable content type not permitted to this channel."] = "Uitvoerbare bestanden zijn niet toegestaan op dit kanaal.";
-App::$strings["Duplicate post suppressed."] = "Dubbel bericht tegengehouden.";
-App::$strings["System error. Post not saved."] = "Systeemfout. Bericht niet opgeslagen.";
-App::$strings["Unable to obtain post information from database."] = "Niet in staat om informatie over dit bericht uit de database te verkrijgen.";
-App::$strings["You have reached your limit of %1$.0f top level posts."] = "Je hebt jouw limiet van %1$.0f berichten bereikt.";
-App::$strings["You have reached your limit of %1$.0f webpages."] = "Je hebt jouw limiet van %1$.0f webpagina's bereikt.";
-App::$strings["Layouts"] = "Lay-outs";
-App::$strings["Comanche page description language help"] = "Hulp met de paginabeschrijvingstaal Comanche";
-App::$strings["Layout Description"] = "Lay-out-omschrijving";
-App::$strings["Download PDL file"] = "Download PDL-bestand";
-App::$strings["\$Projectname"] = "\$Projectname";
-App::$strings["Welcome to %s"] = "Welkom op %s";
-App::$strings["First Name"] = "Voornaam";
-App::$strings["Last Name"] = "Achternaam";
-App::$strings["Nickname"] = "Bijnaam";
-App::$strings["Full Name"] = "Volledige naam";
-App::$strings["Email"] = "E-mail";
-App::$strings["Profile Photo"] = "Profielfoto";
-App::$strings["Profile Photo 16px"] = "Profielfoto 16px";
-App::$strings["Profile Photo 32px"] = "Profielfoto 32px";
-App::$strings["Profile Photo 48px"] = "Profielfoto 48px";
-App::$strings["Profile Photo 64px"] = "Profielfoto 64px";
-App::$strings["Profile Photo 80px"] = "Profielfoto 80px";
-App::$strings["Profile Photo 128px"] = "Profielfoto 128px";
-App::$strings["Timezone"] = "Tijdzone";
-App::$strings["Homepage URL"] = "URL homepagina";
-App::$strings["Language"] = "Taal";
-App::$strings["Birth Year"] = "Geboortejaar";
-App::$strings["Birth Month"] = "Geboortemaand";
-App::$strings["Birth Day"] = "Geboortedag";
-App::$strings["Birthdate"] = "Geboortedatum";
-App::$strings["Gender"] = "Geslacht";
-App::$strings["Male"] = "Man";
-App::$strings["Female"] = "Vrouw";
+App::$strings["Name is required"] = "Naam is vereist";
+App::$strings["Key and Secret are required"] = "Key en secret zijn vereist";
+App::$strings["Update"] = "Bijwerken";
+App::$strings["This channel is limited to %d tokens"] = "Dit kanaal heeft een limiet van %d tokens";
+App::$strings["Name and Password are required."] = "Naam en wachtwoord zijn vereist";
+App::$strings["Token saved."] = "Token opgeslagen.";
+App::$strings["Not valid email."] = "Geen geldig e-mailadres.";
+App::$strings["Protected email address. Cannot change to that email."] = "Beschermd e-mailadres. Kan dat e-mailadres niet gebruiken.";
+App::$strings["System failure storing new email. Please try again."] = "Systeemfout opslaan van nieuwe e-mail. Probeer het nog een keer.";
+App::$strings["Password verification failed."] = "Wachtwoordverificatie mislukt";
+App::$strings["Passwords do not match. Password unchanged."] = "Wachtwoorden komen niet overeen. Wachtwoord onveranderd.";
+App::$strings["Empty passwords are not allowed. Password unchanged."] = "Lege wachtwoorden zijn niet toegestaan. Wachtwoord onveranderd.";
+App::$strings["Password changed."] = "Wachtwoord veranderd.";
+App::$strings["Password update failed. Please try again."] = "Bijwerken wachtwoord mislukt. Probeer opnieuw.";
+App::$strings["Friends"] = "Vrienden";
+App::$strings["Settings updated."] = "Instellingen bijgewerkt.";
+App::$strings["Add application"] = "Applicatie toevoegen";
+App::$strings["Name of application"] = "Naam van applicatie";
+App::$strings["Consumer Key"] = "Consumer key";
+App::$strings["Automatically generated - change if desired. Max length 20"] = "Automatische gegenereerd - verander wanneer gewenst. Maximale lengte is 20";
+App::$strings["Consumer Secret"] = "Consumer secret";
+App::$strings["Redirect"] = "Redirect/doorverwijzing";
+App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI voor redirect - laat leeg, behalve wanneer de applicatie dit vereist";
+App::$strings["Icon url"] = "Pictogram-URL";
+App::$strings["Optional"] = "Optioneel";
+App::$strings["Application not found."] = "Applicatie niet gevonden.";
+App::$strings["Connected Apps"] = "Verbonden applicaties";
+App::$strings["Client key starts with"] = "Client key begint met";
+App::$strings["No name"] = "Geen naam";
+App::$strings["Remove authorization"] = "Autorisatie verwijderen";
+App::$strings["No feature settings configured"] = "Geen plugin-instellingen aanwezig";
+App::$strings["Feature/Addon Settings"] = "Plugin-instellingen";
+App::$strings["Account Settings"] = "Account-instellingen";
+App::$strings["Current Password"] = "Huidig wachtwoord";
+App::$strings["Enter New Password"] = "Nieuw wachtwoord invoeren";
+App::$strings["Confirm New Password"] = "Nieuw wachtwoord bevestigen";
+App::$strings["Leave password fields blank unless changing"] = "Laat de wachtwoordvelden leeg, behalve wanneer je deze wil veranderen";
+App::$strings["Email Address:"] = "E-mailadres:";
+App::$strings["Remove Account"] = "Account verwijderen";
+App::$strings["Remove this account including all its channels"] = "Dit account en al zijn kanalen verwijderen";
+App::$strings["Use this form to create temporary access identifiers to share things with non-members. These identities may be used in Access Control Lists and visitors may login using these credentials to access private content."] = "Gebruik dit formulier om tijdelijke identiteiten aan te maken, waarmee je bepaalde informatie met niet-leden kan delen. Deze identiteiten kunnen onder Permissies (handmatige selectie) worden gebruikt. Gasten kunnen inloggen met onderstaande gegevens om zo toegang te krijgen tot privéinhoud.";
+App::$strings["You may also provide <em>dropbox</em> style access links to friends and associates by adding the Login Password to any specific site URL as shown. Examples:"] = "Je kan ook <em>dropbox</em>-achtige links aan mensen geven door bovenstaand wachtwoord op onderstaande manier aan een hub-URL toe te voegen. Voorbeelden:";
+App::$strings["Guest Access Tokens"] = "Gasttoegang";
+App::$strings["Login Name"] = "Inlognaam";
+App::$strings["Login Password"] = "Wachtwoord:";
+App::$strings["Expires (yyyy-mm-dd)"] = "Geldig t/m (yyyy-mm-dd)";
+App::$strings["Their Settings"] = "Hun instellingen";
+App::$strings["My Settings"] = "Mijn instellingen";
+App::$strings["inherited"] = "geërfd";
+App::$strings["Individual Permissions"] = "Individuele permissies";
+App::$strings["Some permissions may be inherited from your channel's <a href=\"settings\"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can <strong>not</strong> change those settings here."] = "Sommige permissies worden mogelijk overgeërfd van de <a href=\"settings\">privacy-instellingen</a> van jouw kanaal, die een hogere prioriteit hebben dan deze individuele instellingen. Je kan je deze overgeërfde permissies hier <strong>niet</strong> veranderen.";
+App::$strings["Off"] = "Uit";
+App::$strings["On"] = "Aan";
+App::$strings["Additional Features"] = "Extra functies";
+App::$strings["Connector Settings"] = "Instellingen externe koppelingen";
+App::$strings["No special theme for mobile devices"] = "Geen speciaal thema voor mobiele apparaten";
+App::$strings["%s - (Experimental)"] = "%s - (experimenteel)";
+App::$strings["mobile"] = "mobiel";
+App::$strings["Display Settings"] = "Weergave-instellingen";
+App::$strings["Theme Settings"] = "Thema-instellingen";
+App::$strings["Custom Theme Settings"] = "Handmatige thema-instellingen";
+App::$strings["Content Settings"] = "Inhoudsinstellingen";
+App::$strings["Display Theme:"] = "Gebruik thema:";
+App::$strings["Select scheme"] = "Kies schema van thema";
+App::$strings["Mobile Theme:"] = "Mobiel thema:";
+App::$strings["Preload images before rendering the page"] = "Afbeeldingen laden voordat de pagina wordt weergegeven";
+App::$strings["The subjective page load time will be longer but the page will be ready when displayed"] = "De laadtijd van een pagina lijkt langer, maar de pagina is wel meteen helemaal geladen wanneer deze wordt weergeven";
+App::$strings["Enable user zoom on mobile devices"] = "Inzoomen op smartphones en tablets toestaan";
+App::$strings["Update browser every xx seconds"] = "Ververs de webbrowser om de zoveel seconde";
+App::$strings["Minimum of 10 seconds, no maximum"] = "Minimaal 10 seconde, geen maximum";
+App::$strings["Maximum number of conversations to load at any time:"] = "Maximaal aantal conversaties die per keer geladen worden:";
+App::$strings["Maximum of 100 items"] = "Maximaal 100 conversaties";
+App::$strings["Show emoticons (smilies) as images"] = "Toon emoticons (smilies) als afbeeldingen";
+App::$strings["Link post titles to source"] = "Berichtkoppen naar originele locatie linken";
+App::$strings["System Page Layout Editor - (advanced)"] = "Lay-out bewerken van systeempagina's (geavanceerd)";
+App::$strings["Use blog/list mode on channel page"] = "Gebruik blog/lijst-modus op kanaalpagina";
+App::$strings["(comments displayed separately)"] = "(reacties worden afzonderlijk weergeven)";
+App::$strings["Use blog/list mode on grid page"] = "Gebruik blog/lijst-modus op gridpagina";
+App::$strings["Channel page max height of content (in pixels)"] = "Maximale hoogte berichtinhoud op kanaalpagina (in pixels)";
+App::$strings["click to expand content exceeding this height"] = "klik om inhoud uit te klappen die deze hoogte overschrijdt";
+App::$strings["Grid page max height of content (in pixels)"] = "Maximale hoogte berichtinhoud op gridpagina (in pixels)";
+App::$strings["Nobody except yourself"] = "Niemand, behalve jezelf";
+App::$strings["Only those you specifically allow"] = "Alleen connecties met uitdrukkelijke toestemming";
+App::$strings["Approved connections"] = "Geaccepteerde connecties";
+App::$strings["Any connections"] = "Alle connecties";
+App::$strings["Anybody on this website"] = "Iedereen op deze hub";
+App::$strings["Anybody in this network"] = "Iedereen in dit netwerk";
+App::$strings["Anybody authenticated"] = "Geauthenticeerd";
+App::$strings["Anybody on the internet"] = "Iedereen op het internet";
+App::$strings["Publish your default profile in the network directory"] = "Publiceer je standaardprofiel in de kanalengids";
+App::$strings["Allow us to suggest you as a potential friend to new members?"] = "Sta ons toe om jouw kanaal als mogelijke connectie voor te stellen aan nieuwe kanalen";
+App::$strings["Your channel address is"] = "Jouw kanaaladres is";
+App::$strings["Channel Settings"] = "Kanaal-instellingen";
+App::$strings["Basic Settings"] = "Basis-instellingen";
+App::$strings["Full Name:"] = "Volledige naam:";
+App::$strings["Your Timezone:"] = "Jouw tijdzone:";
+App::$strings["Default Post Location:"] = "Standaardlocatie bericht:";
+App::$strings["Geographical location to display on your posts"] = "Geografische locatie die bij het bericht moet worden vermeld";
+App::$strings["Use Browser Location:"] = "Locatie van webbrowser gebruiken:";
+App::$strings["Adult Content"] = "Inhoud voor volwassenen";
+App::$strings["This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)"] = "Dit kanaal publiceert regelmatig of vaak materiaal dat alleen geschikt is voor volwassenen. (Gebruik de tag #NSFW in berichten met een seksueel getinte inhoud of ander voor minderjarigen ongeschikt materiaal)";
+App::$strings["Security and Privacy Settings"] = "Veiligheids- en privacy-instellingen";
+App::$strings["Your permissions are already configured. Click to view/adjust"] = "Jouw permissies zijn al ingesteld. Klik om ze te bekijken of aan te passen.";
+App::$strings["Hide my online presence"] = "Verberg mijn aanwezigheid";
+App::$strings["Prevents displaying in your profile that you are online"] = "Voorkomt dat op je kanaalpagina te zien valt dat je momenteel op \$Projectname aanwezig bent";
+App::$strings["Simple Privacy Settings:"] = "Eenvoudige privacy-instellingen:";
+App::$strings["Very Public - <em>extremely permissive (should be used with caution)</em>"] = "Zeer openbaar <em>(kanaal staat volledig open - moet met grote zorgvuldigheid gebruikt worden)</em>";
+App::$strings["Typical - <em>default public, privacy when desired (similar to social network permissions but with improved privacy)</em>"] = "Normaal <em>(standaard openbaar, maar privacy wanneer noodzakelijk - vergelijkbaar met die van sociale netwerken, maar met verbeterde privacy)</em>";
+App::$strings["Private - <em>default private, never open or public</em>"] = "Privé <em>(standaard privé en nooit openbaar)</em>";
+App::$strings["Blocked - <em>default blocked to/from everybody</em>"] = "Geblokkeerd <em>(standaard geblokkeerd naar/van iedereen)</em>";
+App::$strings["Allow others to tag your posts"] = "Anderen toestaan om je berichten te taggen";
+App::$strings["Often used by the community to retro-actively flag inappropriate content"] = "Vaak in groepen/forums gebruikt om met terugwerkende kracht ongepast materiaal te markeren";
+App::$strings["Advanced Privacy Settings"] = "Geavanceerde privacy-instellingen";
+App::$strings["Expire other channel content after this many days"] = "Inhoud van andere kanalen na zoveel aantal dagen laten verlopen:";
+App::$strings["0 or blank to use the website limit."] = "0 of leeg om het standaard aantal dagen van deze hub te gebruiken.";
+App::$strings["This website expires after %d days."] = "Deze hub laat de inhoud van andere kanalen na %d dagen verlopen.";
+App::$strings["This website does not expire imported content."] = "Deze hub laat de inhoud van andere kanalen niet verlopen.";
+App::$strings["The website limit takes precedence if lower than your limit."] = "Wanneer de standaard aantal dagen van deze hub lager ligt dan jouw aantal, dan heeft de limiet van deze hub voorrang.";
+App::$strings["Maximum Friend Requests/Day:"] = "Maximum aantal connectieverzoeken per dag:";
+App::$strings["May reduce spam activity"] = "Kan eventuele spam verminderen";
+App::$strings["Default Post and Publish Permissions"] = "Standaard permissies voor nieuwe berichten en publicaties";
+App::$strings["(click to open/close)"] = "(klik om te openen/sluiten)";
+App::$strings["Use my default audience setting for the type of object published"] = "Gebruik mijn standaard privacy-instelling voor dit type publicatie";
+App::$strings["Channel permissions category:"] = "Kanaaltype en -permissies:";
+App::$strings["Maximum private messages per day from unknown people:"] = "Maximum aantal privé-berichten per dag van onbekende personen:";
+App::$strings["Useful to reduce spamming"] = "Kan eventuele spam verminderen";
+App::$strings["Notification Settings"] = "Notificatie-instellingen";
+App::$strings["By default post a status message when:"] = "Plaats automatisch een bericht wanneer:";
+App::$strings["accepting a friend request"] = "Een connectieverzoek wordt geaccepteerd";
+App::$strings["joining a forum/community"] = "Je lid wordt van een forum/groep";
+App::$strings["making an <em>interesting</em> profile change"] = "Er sprake is van een <em>interessante</em> profielwijziging";
+App::$strings["Send a notification email when:"] = "Verzend een notificatie per e-mail wanneer:";
+App::$strings["You receive a connection request"] = "Je een connectieverzoek ontvangt";
+App::$strings["Your connections are confirmed"] = "Jouw connecties zijn bevestigd";
+App::$strings["Someone writes on your profile wall"] = "Iemand iets op jouw kanaal heeft geschreven";
+App::$strings["Someone writes a followup comment"] = "Iemand een reactie schrijft";
+App::$strings["You receive a private message"] = "Je een privé-bericht ontvangt";
+App::$strings["You receive a friend suggestion"] = "Je een kanaalvoorstel ontvangt";
+App::$strings["You are tagged in a post"] = "Je expliciet in een bericht bent genoemd";
+App::$strings["You are poked/prodded/etc. in a post"] = "Je bent in een bericht aangestoten/gepord/etc.";
+App::$strings["Show visual notifications including:"] = "Toon de volgende zichtbare notificaties:";
+App::$strings["Unseen grid activity"] = "Niet bekeken grid-activiteit";
+App::$strings["Unseen channel activity"] = "Niet bekeken kanaal-activiteit";
+App::$strings["Unseen private messages"] = "Niet bekeken privéberichten";
+App::$strings["Recommended"] = "Aanbevolen";
+App::$strings["Upcoming events"] = "Aankomende gebeurtenissen";
+App::$strings["Events today"] = "Gebeurtenissen van vandaag";
+App::$strings["Upcoming birthdays"] = "Aankomende verjaardagen";
+App::$strings["Not available in all themes"] = "Niet in alle thema's beschikbaar";
+App::$strings["System (personal) notifications"] = "(Persoonlijke) systeemnotificaties";
+App::$strings["System info messages"] = "Systeemmededelingen";
+App::$strings["System critical alerts"] = "Kritische systeemwaarschuwingen";
+App::$strings["New connections"] = "Nieuwe connecties";
+App::$strings["System Registrations"] = "Nieuwe accountregistraties op deze hub";
+App::$strings["Also show new wall posts, private messages and connections under Notices"] = "Toon tevens nieuwe kanaalberichten, privéberichten en connecties onder Notificaties";
+App::$strings["Notify me of events this many days in advance"] = "Herinner mij zoveel dagen van te voren aan gebeurtenissen";
+App::$strings["Must be greater than 0"] = "Moet hoger dan 0 zijn";
+App::$strings["Advanced Account/Page Type Settings"] = "Instellingen geavanceerd account/paginatype";
+App::$strings["Change the behaviour of this account for special situations"] = "Verander het gedrag van dit account voor speciale situaties";
+App::$strings["Please enable expert mode (in <a href=\"settings/features\">Settings > Additional features</a>) to adjust!"] = "Schakel de expertmodus in (in <a href=\"settings/features\">Instellingen > Extra functies</a>) om aan te kunnen passen!";
+App::$strings["Miscellaneous Settings"] = "Diverse instellingen";
+App::$strings["Default photo upload folder"] = "Standaard fotoalbum voor uploads";
+App::$strings["%Y - current year, %m - current month"] = "%Y - dit jaar, %m - deze maand";
+App::$strings["Default file upload folder"] = "Standaard bestandsmap voor uploads";
+App::$strings["Personal menu to display in your channel pages"] = "Persoonlijk menu om op je kanaalpagina's weer te geven";
+App::$strings["Remove Channel"] = "Kanaal verwijderen";
+App::$strings["Remove this channel."] = "Verwijder dit kanaal.";
+App::$strings["Firefox Share \$Projectname provider"] = "\$Projectname-service voor Firefox Share";
+App::$strings["Start calendar week on monday"] = "Begin in de agenda de week op maandag";
+App::$strings["network"] = "netwerk";
+App::$strings["RSS"] = "RSS";
+App::$strings["Privacy group created."] = "Privacygroep aangemaakt";
+App::$strings["Could not create privacy group."] = "Kon privacygroep niet aanmaken";
+App::$strings["Privacy group not found."] = "Privacygroep niet gevonden";
+App::$strings["Privacy group updated."] = "Privacygroep bijgewerkt";
+App::$strings["Create a group of channels."] = "Privacygroep met kanalen aanmaken";
+App::$strings["Privacy group name: "] = "Naam privacygroep: ";
+App::$strings["Members are visible to other channels"] = "Kanalen in deze privacygroep zijn zichtbaar voor andere kanalen";
+App::$strings["Privacy group removed."] = "Privacygroep verwijderd.";
+App::$strings["Unable to remove privacy group."] = "Verwijderen privacygroep mislukt";
+App::$strings["Privacy group editor"] = "Privacygroep bewerken";
+App::$strings["Members"] = "Kanalen";
+App::$strings["All Connected Channels"] = "Alle kanaalconnecties";
+App::$strings["Click on a channel to add or remove."] = "Klik op een kanaal om deze toe te voegen of te verwijderen.";
+App::$strings["Page owner information could not be retrieved."] = "Informatie over de pagina-eigenaar werd niet ontvangen.";
+App::$strings["Profile Photos"] = "Profielfoto's";
+App::$strings["Album not found."] = "Album niet gevonden.";
+App::$strings["Delete Album"] = "Verwijder album";
+App::$strings["Multiple storage folders exist with this album name, but within different directories. Please remove the desired folder or folders using the Files manager"] = "Er bestaan meerdere submappen met deze albumnaam, maar verspreidt over verschillende mappen. Verwijder de gewenste map(pen) met de bestandsbeheerder.";
+App::$strings["Delete Photo"] = "Verwijder foto";
+App::$strings["No photos selected"] = "Geen foto's geselecteerd";
+App::$strings["Access to this item is restricted."] = "Toegang tot dit item is beperkt.";
+App::$strings["%1$.2f MB of %2$.2f MB photo storage used."] = "%1$.2f MB van %2$.2f MB aan foto-opslag gebruikt.";
+App::$strings["%1$.2f MB photo storage used."] = "%1$.2f MB aan foto-opslag gebruikt.";
+App::$strings["Upload Photos"] = "Foto's uploaden";
+App::$strings["Enter an album name"] = "Vul een albumnaam in";
+App::$strings["or select an existing album (doubleclick)"] = "of kies een bestaand album (dubbelklikken)";
+App::$strings["Create a status post for this upload"] = "Plaats een bericht voor deze upload.";
+App::$strings["Caption (optional):"] = "Bijschrift (optioneel):";
+App::$strings["Description (optional):"] = "Omschrijving (optioneel):";
+App::$strings["Album name could not be decoded"] = "Albumnaam kon niet gedecodeerd worden";
+App::$strings["Contact Photos"] = "Connectiefoto's";
+App::$strings["Show Newest First"] = "Nieuwste eerst weergeven";
+App::$strings["Show Oldest First"] = "Oudste eerst weergeven";
+App::$strings["View Photo"] = "Foto weergeven";
+App::$strings["Edit Album"] = "Album bewerken";
+App::$strings["Permission denied. Access to this item may be restricted."] = "Toegang geweigerd. Toegang tot dit item kan zijn beperkt.";
+App::$strings["Photo not available"] = "Foto niet aanwezig";
+App::$strings["Use as profile photo"] = "Als profielfoto gebruiken";
+App::$strings["Use as cover photo"] = "Als omslagfoto gebruiken";
+App::$strings["Private Photo"] = "Privéfoto";
+App::$strings["Previous"] = "Vorige";
+App::$strings["View Full Size"] = "Volledige grootte weergeven";
+App::$strings["Remove"] = "Verwijderen";
+App::$strings["Edit photo"] = "Foto bewerken";
+App::$strings["Rotate CW (right)"] = "Draai met de klok mee (naar rechts)";
+App::$strings["Rotate CCW (left)"] = "Draai tegen de klok in (naar links)";
+App::$strings["Enter a new album name"] = "Vul een nieuwe albumnaam in";
+App::$strings["or select an existing one (doubleclick)"] = "of kies een bestaand album (dubbelklikken)";
+App::$strings["Caption"] = "Bijschrift";
+App::$strings["Add a Tag"] = "Tag toevoegen";
+App::$strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Voorbeeld: @bob, @Barbara_Jansen, @jan@voorbeeld.nl";
+App::$strings["Flag as adult in album view"] = "Markeer als voor volwassenen in albumweergave";
+App::$strings["I like this (toggle)"] = "Vind ik leuk";
+App::$strings["I don't like this (toggle)"] = "Vind ik niet leuk";
+App::$strings["Share"] = "Delen";
+App::$strings["Please wait"] = "Even wachten";
+App::$strings["This is you"] = "Dit ben jij";
+App::$strings["Comment"] = "Reactie";
+App::$strings["Preview"] = "Voorvertoning";
+App::$strings["__ctx:title__ Likes"] = "vinden dit leuk";
+App::$strings["__ctx:title__ Dislikes"] = "vinden dit niet leuk";
+App::$strings["__ctx:title__ Agree"] = "eens";
+App::$strings["__ctx:title__ Disagree"] = "oneens";
+App::$strings["__ctx:title__ Abstain"] = "onthoudingen";
+App::$strings["__ctx:title__ Attending"] = "aanwezig";
+App::$strings["__ctx:title__ Not attending"] = "niet aanwezig";
+App::$strings["__ctx:title__ Might attend"] = "mogelijk aanwezig";
+App::$strings["View all"] = "Toon alles";
+App::$strings["__ctx:noun__ Like"] = array(
+ 0 => "vindt dit leuk",
+ 1 => "vinden dit leuk",
+);
+App::$strings["__ctx:noun__ Dislike"] = array(
+ 0 => "vindt dit niet leuk",
+ 1 => "vinden dit niet leuk",
+);
+App::$strings["Photo Tools"] = "Hulpmiddelen";
+App::$strings["In This Photo:"] = "Op deze foto:";
+App::$strings["Map"] = "Kaart";
+App::$strings["__ctx:noun__ Likes"] = "vinden dit leuk";
+App::$strings["__ctx:noun__ Dislikes"] = "vinden dit niet leuk";
+App::$strings["Close"] = "Sluiten";
+App::$strings["View Album"] = "Album weergeven";
+App::$strings["Recent Photos"] = "Recente foto's";
App::$strings["webpage"] = "Webpagina";
App::$strings["block"] = "blok";
App::$strings["layout"] = "lay-out";
App::$strings["menu"] = "menu";
App::$strings["%s element installed"] = "%s onderdeel geïnstalleerd";
App::$strings["%s element installation failed"] = "Installatie %s-element mislukt";
-App::$strings["Like/Dislike"] = "Leuk/niet leuk";
-App::$strings["This action is restricted to members."] = "Deze actie kan alleen door \$Projectname-leden worden uitgevoerd.";
-App::$strings["Please <a href=\"rmagic\">login with your \$Projectname ID</a> or <a href=\"register\">register as a new \$Projectname member</a> to continue."] = "Je dient <a href=\"rmagic\">in te loggen met je \$Projectname-account</a> of <a href=\"register\">een nieuw \$Projectname-account aan te maken</a> om verder te kunnen gaan.";
-App::$strings["Invalid request."] = "Ongeldig verzoek";
-App::$strings["channel"] = "kanaal";
-App::$strings["thing"] = "ding";
-App::$strings["Channel unavailable."] = "Kanaal niet beschikbaar.";
-App::$strings["Previous action reversed."] = "Vorige actie omgedraaid";
-App::$strings["photo"] = "foto";
-App::$strings["status"] = "bericht";
-App::$strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s vindt %3\$s van %2\$s leuk";
-App::$strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s vindt %3\$s van %2\$s niet leuk";
-App::$strings["%1\$s agrees with %2\$s's %3\$s"] = "%1\$s is het eens met %2\$s's %3\$s";
-App::$strings["%1\$s doesn't agree with %2\$s's %3\$s"] = "%1\$s is het niet eens met %2\$s's %3\$s";
-App::$strings["%1\$s abstains from a decision on %2\$s's %3\$s"] = "%1\$s onthoudt zich van een besluit over %2\$s's %3\$s";
-App::$strings["%1\$s is attending %2\$s's %3\$s"] = "%1\$s is aanwezig op %2\$s's %3\$s";
-App::$strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s is niet aanwezig op %2\$s's %3\$s";
-App::$strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s is mogelijk aanwezig op %2\$s's %3\$s";
-App::$strings["Action completed."] = "Actie voltooid";
-App::$strings["Thank you."] = "Bedankt";
+App::$strings["Nothing to import."] = "Niets gevonden om te importeren";
+App::$strings["Unable to download data from old server"] = "Niet in staat om gegevens van de oude hub te downloaden";
+App::$strings["Imported file is empty."] = "Geïmporteerde bestand is leeg";
+App::$strings["Warning: Database versions differ by %1\$d updates."] = "Waarschuwing: database-versies lopen %1\$d updates achter.";
App::$strings["Import completed"] = "Importeren voltooid";
App::$strings["Import Items"] = "Importeer items";
App::$strings["Use this form to import existing posts and content from an export file."] = "Gebruik dit formulier om bestaande berichten en andere inhoud vanuit een exportbestand te importeren.";
+App::$strings["File to Upload"] = "Bestand om te uploaden";
App::$strings["Total invitation limit exceeded."] = "Limiet voor aantal uitnodigingen overschreden.";
App::$strings["%s : Not a valid email address."] = "%s : Geen geldig e-mailadres.";
App::$strings["Please join us on \$Projectname"] = "Uitnodiging voor \$Projectname";
@@ -458,8 +705,6 @@ App::$strings["1. Register at any \$Projectname location (they are all inter-con
App::$strings["2. Enter my \$Projectname network address into the site searchbar."] = "2. Nadat je bent ingelogd en een kanaal hebt aangemaakt kan je mijn \$Projectname-kanaaladres in het zoekveld invullen:";
App::$strings["or visit"] = "of bezoek";
App::$strings["3. Click [Connect]"] = "3. Klik op [+ Verbinden]";
-App::$strings["Remote privacy information not available."] = "Privacy-informatie op afstand niet beschikbaar.";
-App::$strings["Visible to:"] = "Zichtbaar voor:";
App::$strings["Location not found."] = "Locatie niet gevonden.";
App::$strings["Location lookup failed."] = "Opzoeken locatie mislukt";
App::$strings["Please select another location to become primary before removing the primary location."] = "Kies eerst een andere primaire locatie alvorens de huidige primaire locatie te verwijderen.";
@@ -468,37 +713,35 @@ App::$strings["No locations found."] = "Geen locaties gevonden.";
App::$strings["Manage Channel Locations"] = "Kanaallocaties beheren";
App::$strings["Address"] = "Kanaaladres";
App::$strings["Primary"] = "Primair";
-App::$strings["Drop"] = "Verwijderen";
App::$strings["Sync Now"] = "Nu synchroniseren";
App::$strings["Please wait several minutes between consecutive operations."] = "Wacht enkele minuten tussen opeenvolgende handelingen.";
App::$strings["When possible, drop a location by logging into that website/hub and removing your channel."] = "Wij adviseren, wanneer dit (nog) mogelijk is, de locatie te verwijderen door op de hub van de kloon in te loggen en het kanaal daar te verwijderen.";
App::$strings["Use this form to drop the location if the hub is no longer operating."] = "Gebruik dit formulier om de locatie te verwijderen wanneer de hub van de kloon niet meer operationeel is.";
App::$strings["Hub not found."] = "Hub niet gevonden.";
-App::$strings["Unable to lookup recipient."] = "Niet in staat om ontvanger op te zoeken.";
-App::$strings["Unable to communicate with requested channel."] = "Niet in staat om met het aangevraagde kanaal te communiceren.";
-App::$strings["Cannot verify requested channel."] = "Kan opgevraagd kanaal niet verifieren";
-App::$strings["Selected channel has private message restrictions. Send failed."] = "Gekozen kanaal heeft restricties voor privéberichten. Verzenden mislukt.";
-App::$strings["Messages"] = "Berichten";
-App::$strings["Message recalled."] = "Bericht ingetrokken.";
-App::$strings["Conversation removed."] = "Conversatie verwijderd";
-App::$strings["Expires YYYY-MM-DD HH:MM"] = "Verloopt op DD-MM-YYYY om HH:MM";
-App::$strings["Requested channel is not in this network"] = "Opgevraagd kanaal is niet in dit netwerk beschikbaar";
-App::$strings["Send Private Message"] = "Privébericht versturen";
-App::$strings["To:"] = "Aan:";
-App::$strings["Subject:"] = "Onderwerp:";
-App::$strings["Attach file"] = "Bestand toevoegen";
-App::$strings["Send"] = "Verzenden";
-App::$strings["Set expiration date"] = "Verloopdatum instellen";
-App::$strings["Delete message"] = "Bericht verwijderen";
-App::$strings["Delivery report"] = "Afleveringsrapport";
-App::$strings["Recall message"] = "Bericht intrekken";
-App::$strings["Message has been recalled."] = "Bericht is ingetrokken.";
-App::$strings["Delete Conversation"] = "Verwijder conversatie";
-App::$strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Geen veilige communicatie beschikbaar. <strong>Mogelijk</strong> kan je reageren op de kanaalpagina van de afzender.";
-App::$strings["Send Reply"] = "Antwoord versturen";
-App::$strings["Your message for %s (%s):"] = "Jouw privébericht aan %s (%s):";
+App::$strings["Like/Dislike"] = "Leuk/niet leuk";
+App::$strings["This action is restricted to members."] = "Deze actie kan alleen door \$Projectname-leden worden uitgevoerd.";
+App::$strings["Please <a href=\"rmagic\">login with your \$Projectname ID</a> or <a href=\"register\">register as a new \$Projectname member</a> to continue."] = "Je dient <a href=\"rmagic\">in te loggen met je \$Projectname-account</a> of <a href=\"register\">een nieuw \$Projectname-account aan te maken</a> om verder te kunnen gaan.";
+App::$strings["Invalid request."] = "Ongeldig verzoek";
+App::$strings["channel"] = "kanaal";
+App::$strings["thing"] = "ding";
+App::$strings["Channel unavailable."] = "Kanaal niet beschikbaar.";
+App::$strings["Previous action reversed."] = "Vorige actie omgedraaid";
+App::$strings["photo"] = "foto";
+App::$strings["status"] = "bericht";
+App::$strings["event"] = "gebeurtenis";
+App::$strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s vindt %3\$s van %2\$s leuk";
+App::$strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s vindt %3\$s van %2\$s niet leuk";
+App::$strings["%1\$s agrees with %2\$s's %3\$s"] = "%1\$s is het eens met %2\$s's %3\$s";
+App::$strings["%1\$s doesn't agree with %2\$s's %3\$s"] = "%1\$s is het niet eens met %2\$s's %3\$s";
+App::$strings["%1\$s abstains from a decision on %2\$s's %3\$s"] = "%1\$s onthoudt zich van een besluit over %2\$s's %3\$s";
+App::$strings["%1\$s is attending %2\$s's %3\$s"] = "%1\$s is aanwezig op %2\$s's %3\$s";
+App::$strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s is niet aanwezig op %2\$s's %3\$s";
+App::$strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s is mogelijk aanwezig op %2\$s's %3\$s";
+App::$strings["Action completed."] = "Actie voltooid";
+App::$strings["Thank you."] = "Bedankt";
App::$strings["You have created %1$.0f of %2$.0f allowed channels."] = "Je hebt %1$.0f van totaal %2$.0f toegestane kanalen aangemaakt.";
App::$strings["Create a new channel"] = "Nieuw kanaal aanmaken";
+App::$strings["Create New"] = "Nieuwe aanmaken";
App::$strings["Channel Manager"] = "Kanaalbeheer";
App::$strings["Current Channel"] = "Huidig kanaal";
App::$strings["Switch to one of your channels by selecting it."] = "Activeer een van jouw andere kanalen door er op te klikken.";
@@ -507,67 +750,10 @@ App::$strings["Make Default"] = "Als standaard instellen";
App::$strings["%d new messages"] = "%d nieuwe berichten";
App::$strings["%d new introductions"] = "%d nieuwe connectieverzoeken";
App::$strings["Delegated Channel"] = "Uitbesteed kanaal";
-App::$strings["No valid account found."] = "Geen geldige account gevonden.";
-App::$strings["Password reset request issued. Check your email."] = "Het verzoek om je wachtwoord opnieuw in te stellen is behandeld. Controleer je e-mail.";
-App::$strings["Site Member (%s)"] = "Lid van hub (%s)";
-App::$strings["Password reset requested at %s"] = "Verzoek tot het opnieuw instellen van een wachtwoord op %s is ingediend";
-App::$strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Het verzoek kon niet worden geverifieerd. (Mogelijk heb je al eerder een verzoek ingediend.) Opnieuw instellen van wachtwoord is mislukt.";
-App::$strings["Password Reset"] = "Wachtwoord vergeten?";
-App::$strings["Your password has been reset as requested."] = "Jouw wachtwoord is opnieuw ingesteld zoals je had verzocht.";
-App::$strings["Your new password is"] = "Jouw nieuwe wachtwoord is";
-App::$strings["Save or copy your new password - and then"] = "Kopieer of sla je nieuwe wachtwoord op - en";
-App::$strings["click here to login"] = "klik dan hier om in te loggen";
-App::$strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Jouw wachtwoord kan worden veranderd onder <em>instellingen</em>, nadat je succesvol bent ingelogd.";
-App::$strings["Your password has changed at %s"] = "Jouw wachtwoord op %s is veranderd";
-App::$strings["Forgot your Password?"] = "Wachtwoord vergeten?";
-App::$strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Voer je e-mailadres in en verstuur deze om je wachtwoord opnieuw in te stellen. Controleer hierna hier je e-mail voor verdere instructies.";
-App::$strings["Email Address"] = "E-mailadres";
-App::$strings["Reset"] = "Opnieuw instellen";
-App::$strings["Unable to update menu."] = "Niet in staat om menu aan te passen";
-App::$strings["Unable to create menu."] = "Niet in staat om menu aan te maken.";
-App::$strings["Menu Name"] = "Menunaam";
-App::$strings["Unique name (not visible on webpage) - required"] = "Unieke naam vereist (niet zichtbaar op webpagina)";
-App::$strings["Menu Title"] = "Menutitel";
-App::$strings["Visible on webpage - leave empty for no title"] = "Zichtbaar op webpagina (leeg laten voor geen titel)";
-App::$strings["Allow Bookmarks"] = "Bladwijzers toestaan";
-App::$strings["Menu may be used to store saved bookmarks"] = "Menu kan gebruikt worden om bladwijzers in op te slaan";
-App::$strings["Submit and proceed"] = "Opslaan en doorgaan";
-App::$strings["Menus"] = "Menu's";
-App::$strings["Bookmarks allowed"] = "Bladwijzers toegestaan";
-App::$strings["Delete this menu"] = "Menu verwijderen";
-App::$strings["Edit menu contents"] = "Bewerk de inhoud van het menu";
-App::$strings["Edit this menu"] = "Dit menu bewerken";
-App::$strings["Menu could not be deleted."] = "Menu kon niet verwijderd worden.";
-App::$strings["Menu not found."] = "Menu niet gevonden.";
-App::$strings["Edit Menu"] = "Menu bewerken";
-App::$strings["Add or remove entries to this menu"] = "Items aan dit menu toevoegen of verwijder";
-App::$strings["Menu name"] = "Naam van menu";
-App::$strings["Must be unique, only seen by you"] = "Moet uniek zijn en is alleen zichtbaar voor jou.";
-App::$strings["Menu title"] = "Titel van menu";
-App::$strings["Menu title as seen by others"] = "Titel van menu zoals anderen dat zien.";
-App::$strings["Allow bookmarks"] = "Bladwijzers toestaan";
-App::$strings["Not found."] = "Niet gevonden.";
-App::$strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s is %2\$s";
-App::$strings["Mood"] = "Stemming";
-App::$strings["Set your current mood and tell your friends"] = "Noteer je huidige stemming en toon het aan je connecties";
-App::$strings["Profile Match"] = "Profielovereenkomst";
-App::$strings["No keywords to match. Please add keywords to your default profile."] = "Je hebt geen trefwoorden waarmee overeenkomsten gevonden kunnen worden. Voeg enkele trefwoorden aan je standaardprofiel toe.";
-App::$strings["is interested in:"] = "is geïnteresseerd in:";
-App::$strings["No matches"] = "Geen overeenkomsten";
-App::$strings["No such group"] = "Collectie niet gevonden";
-App::$strings["No such channel"] = "Niet zo'n kanaal";
-App::$strings["forum"] = "forum";
-App::$strings["Search Results For:"] = "Zoekresultaten voor:";
-App::$strings["Privacy group is empty"] = "Privacygroep is leeg";
-App::$strings["Privacy group: "] = "Privacygroep: ";
-App::$strings["Invalid connection."] = "Ongeldige connectie.";
-App::$strings["No more system notifications."] = "Geen systeemnotificaties meer.";
-App::$strings["System Notifications"] = "Systeemnotificaties";
App::$strings["Unable to create element."] = "Niet in staat om onderdeel aan te maken.";
App::$strings["Unable to update menu element."] = "Menu-onderdeel kan niet worden geüpdatet.";
App::$strings["Unable to add menu element."] = "Menu-onderdeel kan niet worden toegevoegd.";
App::$strings["Menu Item Permissions"] = "Permissies menu-item";
-App::$strings["(click to open/close)"] = "(klik om te openen/sluiten)";
App::$strings["Link Name"] = "Linknaam";
App::$strings["Link or Submenu Target"] = "Linkdoel of submenu-doel";
App::$strings["Enter URL of the link or select a menu name to create a submenu"] = "Geef de URL van de link of kies een menunaam om een submenu aan te maken";
@@ -592,203 +778,6 @@ App::$strings["Menu item deleted."] = "Menu-item verwijderd.";
App::$strings["Menu item could not be deleted."] = "Menu-item kon niet worden verwijderd.";
App::$strings["Edit Menu Element"] = "Menu-element bewerken";
App::$strings["Link text"] = "Linktekst";
-App::$strings["Name or caption"] = "Naam";
-App::$strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\""] = "Voorbeelden: \"Jan Pietersen\", \"Willems weblog\", \"Computerforum\"";
-App::$strings["Choose a short nickname"] = "Korte bijnaam";
-App::$strings["Your nickname will be used to create an easy to remember channel address e.g. nickname%s"] = "Deze bijnaam wordt gebruikt om een makkelijk te onthouden kanaaladres van jouw kanaal aan te maken, die je dan met anderen kunt delen. Bijvoorbeeld: bijnaam%s";
-App::$strings["Channel role and privacy"] = "Kanaaltype en privacy";
-App::$strings["Select a channel role with your privacy requirements."] = "Kies een kanaaltype met het door jou gewenste privacyniveau.";
-App::$strings["Read more about roles"] = "Lees meer over kanaaltypes";
-App::$strings["Create Channel"] = "Kanaal aanmaken";
-App::$strings["A channel is your identity on this network. It can represent a person, a blog, or a forum to name a few. Channels can make connections with other channels to share information with highly detailed permissions."] = "Een kanaal is jouw identiteit in dit netwerk. Het kan bijvoorbeeld een persoon, een blog of een forum vertegenwoordigen. Door met elkaar te verbinden kunnen kanalen, met behulp van uitgebreide permissies, informatie uitwisselen.";
-App::$strings["or <a href=\"import\">import an existing channel</a> from another location."] = "Of <a href=\"import\">importeer een bestaand kanaal</a> vanaf een andere locatie";
-App::$strings["Invalid request identifier."] = "Ongeldige verzoek identificator (request identifier)";
-App::$strings["Discard"] = "Annuleren";
-App::$strings["Mark all system notifications seen"] = "Markeer alle systeemnotificaties als bekeken";
-App::$strings["Page owner information could not be retrieved."] = "Informatie over de pagina-eigenaar werd niet ontvangen.";
-App::$strings["Profile Photos"] = "Profielfoto's";
-App::$strings["Album not found."] = "Album niet gevonden.";
-App::$strings["Delete Album"] = "Verwijder album";
-App::$strings["Multiple storage folders exist with this album name, but within different directories. Please remove the desired folder or folders using the Files manager"] = "Er bestaan meerdere submappen met deze albumnaam, maar verspreidt over verschillende mappen. Verwijder de gewenste map(pen) met de bestandsbeheerder.";
-App::$strings["Delete Photo"] = "Verwijder foto";
-App::$strings["No photos selected"] = "Geen foto's geselecteerd";
-App::$strings["Access to this item is restricted."] = "Toegang tot dit item is beperkt.";
-App::$strings["%1$.2f MB of %2$.2f MB photo storage used."] = "%1$.2f MB van %2$.2f MB aan foto-opslag gebruikt.";
-App::$strings["%1$.2f MB photo storage used."] = "%1$.2f MB aan foto-opslag gebruikt.";
-App::$strings["Upload Photos"] = "Foto's uploaden";
-App::$strings["Enter an album name"] = "Vul een albumnaam in";
-App::$strings["or select an existing album (doubleclick)"] = "of kies een bestaand album (dubbelklikken)";
-App::$strings["Create a status post for this upload"] = "Plaats een bericht voor deze upload.";
-App::$strings["Caption (optional):"] = "Bijschrift (optioneel):";
-App::$strings["Description (optional):"] = "Omschrijving (optioneel):";
-App::$strings["Album name could not be decoded"] = "Albumnaam kon niet gedecodeerd worden";
-App::$strings["Contact Photos"] = "Connectiefoto's";
-App::$strings["Show Newest First"] = "Nieuwste eerst weergeven";
-App::$strings["Show Oldest First"] = "Oudste eerst weergeven";
-App::$strings["View Photo"] = "Foto weergeven";
-App::$strings["Edit Album"] = "Album bewerken";
-App::$strings["Permission denied. Access to this item may be restricted."] = "Toegang geweigerd. Toegang tot dit item kan zijn beperkt.";
-App::$strings["Photo not available"] = "Foto niet aanwezig";
-App::$strings["Use as profile photo"] = "Als profielfoto gebruiken";
-App::$strings["Use as cover photo"] = "Als omslagfoto gebruiken";
-App::$strings["Private Photo"] = "Privéfoto";
-App::$strings["View Full Size"] = "Volledige grootte weergeven";
-App::$strings["Remove"] = "Verwijderen";
-App::$strings["Edit photo"] = "Foto bewerken";
-App::$strings["Rotate CW (right)"] = "Draai met de klok mee (naar rechts)";
-App::$strings["Rotate CCW (left)"] = "Draai tegen de klok in (naar links)";
-App::$strings["Enter a new album name"] = "Vul een nieuwe albumnaam in";
-App::$strings["or select an existing one (doubleclick)"] = "of kies een bestaand album (dubbelklikken)";
-App::$strings["Caption"] = "Bijschrift";
-App::$strings["Add a Tag"] = "Tag toevoegen";
-App::$strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Voorbeeld: @bob, @Barbara_Jansen, @jan@voorbeeld.nl";
-App::$strings["Flag as adult in album view"] = "Markeer als voor volwassenen in albumweergave";
-App::$strings["I like this (toggle)"] = "Vind ik leuk";
-App::$strings["I don't like this (toggle)"] = "Vind ik niet leuk";
-App::$strings["Please wait"] = "Even wachten";
-App::$strings["This is you"] = "Dit ben jij";
-App::$strings["Comment"] = "Reactie";
-App::$strings["__ctx:title__ Likes"] = "vinden dit leuk";
-App::$strings["__ctx:title__ Dislikes"] = "vinden dit niet leuk";
-App::$strings["__ctx:title__ Agree"] = "eens";
-App::$strings["__ctx:title__ Disagree"] = "oneens";
-App::$strings["__ctx:title__ Abstain"] = "onthoudingen";
-App::$strings["__ctx:title__ Attending"] = "aanwezig";
-App::$strings["__ctx:title__ Not attending"] = "niet aanwezig";
-App::$strings["__ctx:title__ Might attend"] = "mogelijk aanwezig";
-App::$strings["View all"] = "Toon alles";
-App::$strings["__ctx:noun__ Like"] = array(
- 0 => "vindt dit leuk",
- 1 => "vinden dit leuk",
-);
-App::$strings["__ctx:noun__ Dislike"] = array(
- 0 => "vindt dit niet leuk",
- 1 => "vinden dit niet leuk",
-);
-App::$strings["Photo Tools"] = "Hulpmiddelen";
-App::$strings["In This Photo:"] = "Op deze foto:";
-App::$strings["Map"] = "Kaart";
-App::$strings["__ctx:noun__ Likes"] = "vinden dit leuk";
-App::$strings["__ctx:noun__ Dislikes"] = "vinden dit niet leuk";
-App::$strings["Close"] = "Sluiten";
-App::$strings["View Album"] = "Album weergeven";
-App::$strings["Recent Photos"] = "Recente foto's";
-App::$strings["sent you a private message"] = "stuurde jou een privébericht";
-App::$strings["added your channel"] = "voegde jouw kanaal toe";
-App::$strings["g A l F d"] = "G:i, l d F";
-App::$strings["[today]"] = "[vandaag]";
-App::$strings["posted an event"] = "plaatste een gebeurtenis";
-App::$strings["Unable to find your hub."] = "Niet in staat om je hub te vinden";
-App::$strings["Post successful."] = "Verzenden bericht geslaagd.";
-App::$strings["OpenID protocol error. No ID returned."] = "OpenID-protocolfout. Geen ID terugontvangen.";
-App::$strings["Login failed."] = "Inloggen mislukt.";
-App::$strings["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
-App::$strings["This setting requires special processing and editing has been blocked."] = "Deze instelling vereist een speciaal proces en bewerken is geblokkeerd.";
-App::$strings["Configuration Editor"] = "Configuratiebewerker";
-App::$strings["Warning: Changing some settings could render your channel inoperable. Please leave this page unless you are comfortable with and knowledgeable about how to correctly use this feature."] = "Waarschuwing: het veranderen van sommige instellingen kunnen jouw kanaal onklaar maken. Verlaat deze pagina, tenzij je weet waar je mee bezig bent en voldoende kennis bezit over hoe je deze functies moet gebruiken. ";
-App::$strings["Layout updated."] = "Lay-out bijgewerkt.";
-App::$strings["Edit System Page Description"] = "Systeempagina's bewerken";
-App::$strings["Layout not found."] = "Lay-out niet gevonden.";
-App::$strings["Module Name:"] = "Modulenaam:";
-App::$strings["Layout Help"] = "Lay-out-hulp";
-App::$strings["Poke"] = "Aanstoten";
-App::$strings["Poke somebody"] = "Iemand aanstoten";
-App::$strings["Poke/Prod"] = "Aanstoten/porren";
-App::$strings["Poke, prod or do other things to somebody"] = "Iemand bijvoorbeeld aanstoten of poren";
-App::$strings["Recipient"] = "Ontvanger";
-App::$strings["Choose what you wish to do to recipient"] = "Kies wat je met de ontvanger wil doen";
-App::$strings["Make this post private"] = "Maak dit bericht privé";
-App::$strings["Fetching URL returns error: %1\$s"] = "Ophalen URL gaf een foutmelding terug: %1\$s";
-App::$strings["Profile not found."] = "Profiel niet gevonden.";
-App::$strings["Profile deleted."] = "Profiel verwijderd.";
-App::$strings["Profile-"] = "Profiel-";
-App::$strings["New profile created."] = "Nieuw profiel aangemaakt.";
-App::$strings["Profile unavailable to clone."] = "Profiel niet beschikbaar om te klonen";
-App::$strings["Profile unavailable to export."] = "Geen profiel beschikbaar om te exporteren";
-App::$strings["Profile Name is required."] = "Profielnaam is vereist";
-App::$strings["Marital Status"] = "Huwelijke status";
-App::$strings["Romantic Partner"] = "Romantische partner";
-App::$strings["Likes"] = "Houdt van";
-App::$strings["Dislikes"] = "Houdt niet van";
-App::$strings["Work/Employment"] = "Werk/arbeid";
-App::$strings["Religion"] = "Religie";
-App::$strings["Political Views"] = "Politieke overtuigingen";
-App::$strings["Sexual Preference"] = "Seksuele voorkeur";
-App::$strings["Homepage"] = "Homepage";
-App::$strings["Interests"] = "Interesses";
-App::$strings["Profile updated."] = "Profiel bijgewerkt";
-App::$strings["Hide your connections list from viewers of this profile"] = "Laat de lijst met connecties niet aan bezoekers van dit profiel zien.";
-App::$strings["Edit Profile Details"] = "Profiel bewerken";
-App::$strings["View this profile"] = "Profiel weergeven";
-App::$strings["Edit visibility"] = "Zichtbaarheid bewerken";
-App::$strings["Profile Tools"] = "Hulpmiddelen";
-App::$strings["Change cover photo"] = "Omslagfoto wijzigen";
-App::$strings["Change profile photo"] = "Profielfoto veranderen";
-App::$strings["Create a new profile using these settings"] = "Een nieuw profiel aanmaken met dit profiel als basis";
-App::$strings["Clone this profile"] = "Dit profiel klonen";
-App::$strings["Delete this profile"] = "Dit profiel verwijderen";
-App::$strings["Add profile things"] = "Dingen aan je profiel toevoegen";
-App::$strings["Personal"] = "Persoonlijk";
-App::$strings["Relation"] = "Relatie";
-App::$strings["Miscellaneous"] = "Diversen";
-App::$strings["Import profile from file"] = "Profiel vanuit bestand importeren";
-App::$strings["Export profile to file"] = "Profiel naar bestand exporteren";
-App::$strings["Your gender"] = "Jouw geslacht";
-App::$strings["Marital status"] = "Burgerlijke staat";
-App::$strings["Sexual preference"] = "Seksuele voorkeur";
-App::$strings["Profile name"] = "Profielnaam";
-App::$strings["This is your default profile."] = "Dit is jouw standaardprofiel";
-App::$strings["Your full name"] = "Jouw volledige naam";
-App::$strings["Title/Description"] = "Titel/omschrijving";
-App::$strings["Street address"] = "Straat en huisnummer";
-App::$strings["Locality/City"] = "Woonplaats";
-App::$strings["Region/State"] = "Provincie/gewest/deelstaat";
-App::$strings["Postal/Zip code"] = "Postcode";
-App::$strings["Country"] = "Land";
-App::$strings["Who (if applicable)"] = "Wie (wanneer van toepassing)";
-App::$strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Voorbeelden: petra123, Petra Jansen, petra@voorbeeld.nl";
-App::$strings["Since (date)"] = "Sinds (datum)";
-App::$strings["Tell us about yourself"] = "Vertel ons iets over jezelf";
-App::$strings["Hometown"] = "Oorspronkelijk uit";
-App::$strings["Political views"] = "Politieke overtuigingen";
-App::$strings["Religious views"] = "Religieuze overtuigingen";
-App::$strings["Keywords used in directory listings"] = "Trefwoorden voor in de kanalengids";
-App::$strings["Example: fishing photography software"] = "Voorbeeld: muziek, fotografie, software";
-App::$strings["Musical interests"] = "Muzikale interesses";
-App::$strings["Books, literature"] = "Boeken/literatuur";
-App::$strings["Television"] = "Televisie";
-App::$strings["Film/Dance/Culture/Entertainment"] = "Film/dans/cultuur/entertainment";
-App::$strings["Hobbies/Interests"] = "Hobby's/interesses";
-App::$strings["Love/Romance"] = "Liefde/romantiek";
-App::$strings["School/Education"] = "School/opleiding";
-App::$strings["Contact information and social networks"] = "Contactinformatie en sociale netwerken";
-App::$strings["My other channels"] = "Mijn andere kanalen";
-App::$strings["Profile Image"] = "Profielfoto";
-App::$strings["Edit Profiles"] = "Bewerk profielen";
-App::$strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Vernieuw de pagina met shift+R of shift+F5, of leeg je browserbuffer, wanneer de nieuwe foto niet meteen wordt weergegeven.";
-App::$strings["Upload Profile Photo"] = "Profielfoto uploaden";
-App::$strings["Invalid profile identifier."] = "Ongeldige profiel-identificator";
-App::$strings["Profile Visibility Editor"] = "Zichtbaarheid profiel ";
-App::$strings["Profile"] = "Profiel";
-App::$strings["Click on a contact to add or remove."] = "Klik op een connectie om deze toe te voegen of te verwijderen";
-App::$strings["Visible To"] = "Zichtbaar voor";
-App::$strings["Public Hubs"] = "Openbare hubs";
-App::$strings["The listed hubs allow public registration for the \$Projectname network. All hubs in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some hubs may require subscription or provide tiered service plans. The hub itself <strong>may</strong> provide additional details."] = "Op de hier weergegeven hubs kan iedereen zich voor het \$Projectname-netwerk aanmelden. Alle hubs in het netwerk zijn met elkaar verbonden, dus maakt het qua lidmaatschap niet uit waar je je aanmeldt. Op sommige hubs heb je eerst goedkeuring nodig en sommige hubs vereisen een financiële tegemoetkoming voor bepaalde uitbreidingen. <strong>Mogelijk</strong> wordt hierover op de hub zelf meer informatie gegeven.";
-App::$strings["Hub URL"] = "Hub-URL";
-App::$strings["Access Type"] = "Toegangs-<br/>&nbsp;type";
-App::$strings["Registration Policy"] = "Registratie-<br/>&nbsp;beleid";
-App::$strings["Stats"] = "Stats";
-App::$strings["Software"] = "Software";
-App::$strings["Ratings"] = "Beoordelingen";
-App::$strings["Rate"] = "Beoordeel";
-App::$strings["Website:"] = "Website:";
-App::$strings["Remote Channel [%s] (not yet known on this site)"] = "Kanaal op afstand [%s] (nog niet op deze hub bekend)";
-App::$strings["Rating (this information is public)"] = "Beoordeling (deze informatie is openbaar)";
-App::$strings["Optionally explain your rating (this information is public)"] = "Verklaar jouw beoordeling (niet verplicht, deze informatie is openbaar)";
-App::$strings["No ratings"] = "Geen beoordelingen";
-App::$strings["Rating: "] = "Beoordeling: ";
-App::$strings["Website: "] = "Website: ";
-App::$strings["Description: "] = "Omschrijving: ";
App::$strings["Theme settings updated."] = "Thema-instellingen bijgewerkt.";
App::$strings["# Accounts"] = "# accounts";
App::$strings["# blocked accounts"] = "# geblokkeerde accounts";
@@ -810,7 +799,6 @@ App::$strings["Repository version (master)"] = "Versie repository (master)";
App::$strings["Repository version (dev)"] = "Versie repository (dev)";
App::$strings["Site settings updated."] = "Hub-instellingen bijgewerkt.";
App::$strings["Default"] = "Standaard";
-App::$strings["mobile"] = "mobiel";
App::$strings["experimental"] = "experimenteel";
App::$strings["unsupported"] = "Niet ondersteund";
App::$strings["Yes - with approval"] = "Ja - met goedkeuring";
@@ -819,13 +807,12 @@ App::$strings["My site has paid access only"] = "Mijn \$Projectname-hub kent all
App::$strings["My site has free access only"] = "Mijn \$Projectname-hub kent alleen gratis toegang";
App::$strings["My site offers free accounts with optional paid upgrades"] = "Mijn \$Projectname-hub biedt gratis accounts aan met betaalde uitbreidingen als optie";
App::$strings["Site"] = "Hub-instellingen";
-App::$strings["Registration"] = "Registratie";
App::$strings["File upload"] = "Bestand uploaden";
App::$strings["Policies"] = "Beleid";
App::$strings["Advanced"] = "Geavanceerd";
App::$strings["Site name"] = "Naam van deze \$Projectname-hub";
App::$strings["Banner/Logo"] = "Banner/logo";
-App::$strings["Administrator Information"] = "Informatie over de beheerder van deze hub";
+App::$strings["Administrator Information"] = "Informatie over de beheerder";
App::$strings["Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here"] = "Contactinformatie voor hub-beheerders. Getoond op pagina met hub-informatie. Er kan hier bbcode gebruikt worden.";
App::$strings["System language"] = "Standaardtaal";
App::$strings["System theme"] = "Standaardthema";
@@ -880,8 +867,6 @@ App::$strings["Maximum Load Average"] = "Maximaal gemiddelde systeembelasting";
App::$strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Maximale systeembelasting voordat de afleverings- en polllingsprocessen worden uitgesteld. Standaard is 50.";
App::$strings["Expiration period in days for imported (grid/network) content"] = "Aantal dagen waarna geïmporteerde inhoud uit iemands grid/netwerk-pagina wordt verwijderd.";
App::$strings["0 for no expiration of imported content"] = "Dit geldt alleen voor inhoud van andere kanalen, dus niet voor iemands eigen kanaal. 0 voor het niet verwijderen van geïmporteerde inhoud.";
-App::$strings["Off"] = "Uit";
-App::$strings["On"] = "Aan";
App::$strings["Lock feature %s"] = " Vergrendel de functie '%s'";
App::$strings["Manage Additional Features"] = "Beheer - Extra functies";
App::$strings["No server found"] = "Geen hub gevonden";
@@ -940,8 +925,11 @@ App::$strings["Accounts"] = "Accounts";
App::$strings["select all"] = "alles selecteren";
App::$strings["Registrations waiting for confirm"] = "Accounts die op goedkeuring wachten";
App::$strings["Request date"] = "Tijd/datum verzoek";
+App::$strings["Email"] = "E-mail";
App::$strings["No registrations."] = "Geen verzoeken.";
App::$strings["Deny"] = "Afkeuren";
+App::$strings["Block"] = "Blokkeren";
+App::$strings["Unblock"] = "Deblokkeren";
App::$strings["All Channels"] = "Alle kanalen";
App::$strings["Register date"] = "Geregistreerd";
App::$strings["Last login"] = "Laatste keer ingelogd";
@@ -988,6 +976,7 @@ App::$strings["Maintainer: "] = "Beheerder: ";
App::$strings["Minimum project version: "] = "Minimum versie Hubzilla: ";
App::$strings["Maximum project version: "] = "Maximum versie Hubzilla:";
App::$strings["Minimum PHP version: "] = "Minimum versie PHP: ";
+App::$strings["Compatible Server Roles: "] = "Werkt met configuratietypes: ";
App::$strings["Requires: "] = "Vereist: ";
App::$strings["Disabled - version incompatibility"] = "Uitgeschakeld - versie is incompatibel";
App::$strings["Enter the public git repository URL of the plugin repo."] = "Vul de openbare Git-URL in van de plugin-repository.";
@@ -1000,7 +989,6 @@ App::$strings["Install"] = "Installeren";
App::$strings["Manage Repos"] = "Repositories beheren";
App::$strings["Installed Plugin Repositories"] = "Toegevoegde plugin-repositories";
App::$strings["Install a New Plugin Repository"] = "Nieuwe plugin-repository toevoegen";
-App::$strings["Update"] = "Bijwerken";
App::$strings["Switch branch"] = "Branch veranderen";
App::$strings["No themes found."] = "Geen thema's gevonden";
App::$strings["Screenshot"] = "Schermafdruk";
@@ -1031,45 +1019,325 @@ App::$strings["(In addition to basic fields)"] = "(als toevoeging op de standaar
App::$strings["All available fields"] = "Alle beschikbare velden";
App::$strings["Custom Fields"] = "Extra (handmatig toegevoegde) velden";
App::$strings["Create Custom Field"] = "Extra velden aanmaken";
-App::$strings["App installed."] = "App geïnstalleerd";
-App::$strings["Malformed app."] = "Misvormde app.";
-App::$strings["Embed code"] = "Insluitcode";
-App::$strings["Edit App"] = "App bewerken";
-App::$strings["Create App"] = "App maken";
-App::$strings["Name of app"] = "Naam van app";
-App::$strings["Location (URL) of app"] = "Locatie (URL) van app";
-App::$strings["Photo icon URL"] = "URL van pictogram";
-App::$strings["80 x 80 pixels - optional"] = "80 x 80 pixels (optioneel)";
-App::$strings["Categories (optional, comma separated list)"] = "Categorieën (optioneel, door komma's gescheiden lijst)";
-App::$strings["Version ID"] = "Versie-ID";
-App::$strings["Price of app"] = "Prijs van de app";
-App::$strings["Location (URL) to purchase app"] = "Locatie (URL) om de app aan te schaffen";
+App::$strings["No valid account found."] = "Geen geldige account gevonden.";
+App::$strings["Password reset request issued. Check your email."] = "Het verzoek om je wachtwoord opnieuw in te stellen is behandeld. Controleer je e-mail.";
+App::$strings["Site Member (%s)"] = "Lid van hub (%s)";
+App::$strings["Password reset requested at %s"] = "Verzoek tot het opnieuw instellen van een wachtwoord op %s is ingediend";
+App::$strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Het verzoek kon niet worden geverifieerd. (Mogelijk heb je al eerder een verzoek ingediend.) Opnieuw instellen van wachtwoord is mislukt.";
+App::$strings["Password Reset"] = "Wachtwoord vergeten?";
+App::$strings["Your password has been reset as requested."] = "Jouw wachtwoord is opnieuw ingesteld zoals je had verzocht.";
+App::$strings["Your new password is"] = "Jouw nieuwe wachtwoord is";
+App::$strings["Save or copy your new password - and then"] = "Kopieer of sla je nieuwe wachtwoord op - en";
+App::$strings["click here to login"] = "klik dan hier om in te loggen";
+App::$strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Jouw wachtwoord kan worden veranderd onder <em>instellingen</em>, nadat je succesvol bent ingelogd.";
+App::$strings["Your password has changed at %s"] = "Jouw wachtwoord op %s is veranderd";
+App::$strings["Forgot your Password?"] = "Wachtwoord vergeten?";
+App::$strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Voer je e-mailadres in en verstuur deze om je wachtwoord opnieuw in te stellen. Controleer hierna hier je e-mail voor verdere instructies.";
+App::$strings["Email Address"] = "E-mailadres";
+App::$strings["Reset"] = "Opnieuw instellen";
+App::$strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s is %2\$s";
+App::$strings["Mood"] = "Stemming";
+App::$strings["Set your current mood and tell your friends"] = "Noteer je huidige stemming en toon het aan je connecties";
+App::$strings["Profile not found."] = "Profiel niet gevonden.";
+App::$strings["Profile deleted."] = "Profiel verwijderd.";
+App::$strings["Profile-"] = "Profiel-";
+App::$strings["New profile created."] = "Nieuw profiel aangemaakt.";
+App::$strings["Profile unavailable to clone."] = "Profiel niet beschikbaar om te klonen";
+App::$strings["Profile unavailable to export."] = "Geen profiel beschikbaar om te exporteren";
+App::$strings["Profile Name is required."] = "Profielnaam is vereist";
+App::$strings["Marital Status"] = "Huwelijke status";
+App::$strings["Romantic Partner"] = "Romantische partner";
+App::$strings["Likes"] = "Houdt van";
+App::$strings["Dislikes"] = "Houdt niet van";
+App::$strings["Work/Employment"] = "Werk/arbeid";
+App::$strings["Religion"] = "Religie";
+App::$strings["Political Views"] = "Politieke overtuigingen";
+App::$strings["Gender"] = "Geslacht";
+App::$strings["Sexual Preference"] = "Seksuele voorkeur";
+App::$strings["Homepage"] = "Homepage";
+App::$strings["Interests"] = "Interesses";
+App::$strings["Profile updated."] = "Profiel bijgewerkt";
+App::$strings["Hide your connections list from viewers of this profile"] = "Laat de lijst met connecties niet aan bezoekers van dit profiel zien.";
+App::$strings["Edit Profile Details"] = "Profiel bewerken";
+App::$strings["View this profile"] = "Profiel weergeven";
+App::$strings["Edit visibility"] = "Zichtbaarheid bewerken";
+App::$strings["Profile Tools"] = "Hulpmiddelen";
+App::$strings["Change cover photo"] = "Omslagfoto wijzigen";
+App::$strings["Change profile photo"] = "Profielfoto veranderen";
+App::$strings["Create a new profile using these settings"] = "Een nieuw profiel aanmaken met dit profiel als basis";
+App::$strings["Clone this profile"] = "Dit profiel klonen";
+App::$strings["Delete this profile"] = "Dit profiel verwijderen";
+App::$strings["Add profile things"] = "Dingen aan je profiel toevoegen";
+App::$strings["Personal"] = "Persoonlijk";
+App::$strings["Relation"] = "Relatie";
+App::$strings["Miscellaneous"] = "Diversen";
+App::$strings["Import profile from file"] = "Profiel vanuit bestand importeren";
+App::$strings["Export profile to file"] = "Profiel naar bestand exporteren";
+App::$strings["Your gender"] = "Jouw geslacht";
+App::$strings["Marital status"] = "Burgerlijke staat";
+App::$strings["Sexual preference"] = "Seksuele voorkeur";
+App::$strings["Profile name"] = "Profielnaam";
+App::$strings["This is your default profile."] = "Dit is jouw standaardprofiel";
+App::$strings["Your full name"] = "Jouw volledige naam";
+App::$strings["Title/Description"] = "Titel/omschrijving";
+App::$strings["Street address"] = "Straat en huisnummer";
+App::$strings["Locality/City"] = "Woonplaats";
+App::$strings["Region/State"] = "Provincie/gewest/deelstaat";
+App::$strings["Postal/Zip code"] = "Postcode";
+App::$strings["Country"] = "Land";
+App::$strings["Who (if applicable)"] = "Wie (wanneer van toepassing)";
+App::$strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Voorbeelden: petra123, Petra Jansen, petra@voorbeeld.nl";
+App::$strings["Since (date)"] = "Sinds (datum)";
+App::$strings["Tell us about yourself"] = "Vertel ons iets over jezelf";
+App::$strings["Homepage URL"] = "URL homepagina";
+App::$strings["Hometown"] = "Oorspronkelijk uit";
+App::$strings["Political views"] = "Politieke overtuigingen";
+App::$strings["Religious views"] = "Religieuze overtuigingen";
+App::$strings["Keywords used in directory listings"] = "Trefwoorden voor in de kanalengids";
+App::$strings["Example: fishing photography software"] = "Voorbeeld: muziek, fotografie, software";
+App::$strings["Musical interests"] = "Muzikale interesses";
+App::$strings["Books, literature"] = "Boeken/literatuur";
+App::$strings["Television"] = "Televisie";
+App::$strings["Film/Dance/Culture/Entertainment"] = "Film/dans/cultuur/entertainment";
+App::$strings["Hobbies/Interests"] = "Hobby's/interesses";
+App::$strings["Love/Romance"] = "Liefde/romantiek";
+App::$strings["School/Education"] = "School/opleiding";
+App::$strings["Contact information and social networks"] = "Contactinformatie en sociale netwerken";
+App::$strings["My other channels"] = "Mijn andere kanalen";
+App::$strings["Profile Image"] = "Profielfoto";
+App::$strings["Edit Profiles"] = "Bewerk profielen";
+App::$strings["No more system notifications."] = "Geen systeemnotificaties meer.";
+App::$strings["System Notifications"] = "Systeemnotificaties";
+App::$strings["Profile Match"] = "Profielovereenkomst";
+App::$strings["No keywords to match. Please add keywords to your default profile."] = "Je hebt geen trefwoorden waarmee overeenkomsten gevonden kunnen worden. Voeg enkele trefwoorden aan je standaardprofiel toe.";
+App::$strings["is interested in:"] = "is geïnteresseerd in:";
+App::$strings["No matches"] = "Geen overeenkomsten";
+App::$strings["Import Webpage Elements"] = "Webpagina-elementen importeren";
+App::$strings["Import selected"] = "Importbestand geselecteerd";
+App::$strings["Webpages"] = "Webpagina's";
+App::$strings["Actions"] = "Acties";
+App::$strings["Page Link"] = "Paginalink";
+App::$strings["Page Title"] = "Paginatitel";
+App::$strings["Invalid file type."] = "Ongeldig bestandsformaat";
+App::$strings["Error opening zip file"] = "Fout met openen zipbestand";
+App::$strings["Invalid folder path."] = "Ongeldige maplocatie";
+App::$strings["No webpage elements detected."] = "Geen webpagina-elementen gedecteerd";
+App::$strings["Import complete."] = "Importeren voltooid.";
+App::$strings["Calendar entries imported."] = "Agenda-items geïmporteerd.";
+App::$strings["No calendar entries found."] = "Geen agenda-items gevonden.";
+App::$strings["Event can not end before it has started."] = "Gebeurtenis kan niet eindigen voordat het is begonnen";
+App::$strings["Unable to generate preview."] = "Niet in staat om voorvertoning te genereren";
+App::$strings["Event title and start time are required."] = "Titel en begintijd van gebeurtenis zijn vereist.";
+App::$strings["Event not found."] = "Gebeurtenis niet gevonden";
+App::$strings["Edit event title"] = "Titel bewerken";
+App::$strings["Event title"] = "Titel";
+App::$strings["Categories (comma-separated list)"] = "Categorieën (door komma's gescheiden lijst)";
+App::$strings["Edit Category"] = "Categorie";
+App::$strings["Category"] = "Categorie";
+App::$strings["Edit start date and time"] = "Begindatum en -tijd bewerken";
+App::$strings["Start date and time"] = "Begindatum en -tijd";
+App::$strings["Finish date and time are not known or not relevant"] = "Einddatum en -tijd zijn niet bekend of niet van toepassing";
+App::$strings["Edit finish date and time"] = "Einddatum en -tijd bewerken";
+App::$strings["Finish date and time"] = "Einddatum en -tijd";
+App::$strings["Adjust for viewer timezone"] = "Aanpassen aan de tijdzone van wie deze gebeurtenis bekijkt";
+App::$strings["Important for events that happen in a particular place. Not practical for global holidays."] = "Belangrijk voor gebeurtenissen die op een bepaalde locatie plaatsvinden. Niet praktisch voor wereldwijde feestdagen.";
+App::$strings["Edit Description"] = "Omschrijving bewerken";
+App::$strings["Edit Location"] = "Locatie bewerken";
+App::$strings["Share this event"] = "Deel deze gebeurtenis";
+App::$strings["Permission settings"] = "Permissies";
+App::$strings["Advanced Options"] = "Geavanceerde opties";
+App::$strings["l, F j"] = "l j F";
+App::$strings["Edit event"] = "Gebeurtenis bewerken";
+App::$strings["Delete event"] = "Gebeurtenis verwijderen";
+App::$strings["Link to Source"] = "Originele locatie";
+App::$strings["calendar"] = "agenda";
+App::$strings["Edit Event"] = "Gebeurtenis bewerken";
+App::$strings["Create Event"] = "Gebeurtenis aanmaken";
+App::$strings["Export"] = "Exporteren";
+App::$strings["Month"] = "Maand";
+App::$strings["Week"] = "Week";
+App::$strings["Day"] = "Dag";
+App::$strings["Today"] = "Vandaag";
+App::$strings["Event removed"] = "Gebeurtenis verwijderd";
+App::$strings["Failed to remove event"] = "Verwijderen gebeurtenis mislukt";
+App::$strings["Your service plan only allows %d channels."] = "Jouw abonnement staat maar %d kanalen toe.";
+App::$strings["Cloned channel not found. Import failed."] = "Gekloond kanaal niet gevonden. Importeren mislukt.";
+App::$strings["No channel. Import failed."] = "Geen kanaal. Importeren mislukt.";
+App::$strings["Import completed."] = "Import voltooid.";
+App::$strings["You must be logged in to use this feature."] = "Je moet ingelogd zijn om dit onderdeel te kunnen gebruiken.";
+App::$strings["Import Channel"] = "Kanaal importeren";
+App::$strings["Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file."] = "Gebruik dit formulier om een bestaand kanaal te importeren van een andere hub. Je kan de kanaal-identiteit van de oude hub via het netwerk ontvangen of een exportbestand verstrekken.";
+App::$strings["Or provide the old server/hub details"] = "Of vul de gegevens van de oude hub in";
+App::$strings["Your old identity address (xyz@example.com)"] = "Jouw oude kanaaladres (xyz@example.com)";
+App::$strings["Your old login email address"] = "Het e-mailadres van je oude account";
+App::$strings["Your old login password"] = "Wachtwoord van jouw oude account";
+App::$strings["For either option, please choose whether to make this hub your new primary address, or whether your old location should continue this role. You will be able to post from either location, but only one can be marked as the primary location for files, photos, and media."] = "Voor elke optie geldt dat je moet kiezen of je jouw primaire kanaaladres op deze hub wil instellen of dat jouw oude hub deze rol blijft vervullen.";
+App::$strings["Make this hub my primary location"] = "Stel deze hub als mijn primaire locatie in";
+App::$strings["Import existing posts if possible (experimental - limited by available memory"] = "Importeer bestaande berichten wanneer mogelijk (experimenteel - afhankelijk van beschikbaar servergeheugen)";
+App::$strings["This process may take several minutes to complete. Please submit the form only once and leave this page open until finished."] = "Dit proces kan enkele minuten in beslag nemen. Klik maar één keer op opslaan en verlaat deze pagina niet alvorens het proces is voltooid.";
+App::$strings["Create Channel"] = "Kanaal aanmaken";
+App::$strings["A channel is your identity on this network. It can represent a person, a blog, or a forum to name a few. Channels can make connections with other channels to share information with highly detailed permissions."] = "Een kanaal is jouw identiteit in dit netwerk. Het kan bijvoorbeeld een persoon, een blog of een forum vertegenwoordigen. Door met elkaar te verbinden kunnen kanalen, met behulp van uitgebreide permissies, informatie uitwisselen.";
+App::$strings["or <a href=\"import\">import an existing channel</a> from another location."] = "Of <a href=\"import\">importeer een bestaand kanaal</a> vanaf een andere locatie";
+App::$strings["sent you a private message"] = "stuurde jou een privébericht";
+App::$strings["added your channel"] = "voegde jouw kanaal toe";
+App::$strings["g A l F d"] = "G:i, l d F";
+App::$strings["[today]"] = "[vandaag]";
+App::$strings["posted an event"] = "plaatste een gebeurtenis";
+App::$strings["Invalid request identifier."] = "Ongeldige verzoek identificator (request identifier)";
+App::$strings["Discard"] = "Annuleren";
+App::$strings["Mark all system notifications seen"] = "Markeer alle systeemnotificaties als bekeken";
+App::$strings["Poke"] = "Aanstoten";
+App::$strings["Poke somebody"] = "Iemand aanstoten";
+App::$strings["Poke/Prod"] = "Aanstoten/porren";
+App::$strings["Poke, prod or do other things to somebody"] = "Iemand bijvoorbeeld aanstoten of poren";
+App::$strings["Recipient"] = "Ontvanger";
+App::$strings["Choose what you wish to do to recipient"] = "Kies wat je met de ontvanger wil doen";
+App::$strings["Make this post private"] = "Maak dit bericht privé";
+App::$strings["Unable to find your hub."] = "Niet in staat om je hub te vinden";
+App::$strings["Post successful."] = "Verzenden bericht geslaagd.";
+App::$strings["Invalid profile identifier."] = "Ongeldige profiel-identificator";
+App::$strings["Profile Visibility Editor"] = "Zichtbaarheid profiel ";
+App::$strings["Profile"] = "Profiel";
+App::$strings["Click on a contact to add or remove."] = "Klik op een connectie om deze toe te voegen of te verwijderen";
+App::$strings["Visible To"] = "Zichtbaar voor";
+App::$strings["This setting requires special processing and editing has been blocked."] = "Deze instelling vereist een speciaal proces en bewerken is geblokkeerd.";
+App::$strings["Configuration Editor"] = "Configuratiebewerker";
+App::$strings["Warning: Changing some settings could render your channel inoperable. Please leave this page unless you are comfortable with and knowledgeable about how to correctly use this feature."] = "Waarschuwing: het veranderen van sommige instellingen kunnen jouw kanaal onklaar maken. Verlaat deze pagina, tenzij je weet waar je mee bezig bent en voldoende kennis bezit over hoe je deze functies moet gebruiken. ";
+App::$strings["You must be logged in to see this page."] = "Je moet zijn ingelogd om deze pagina te kunnen bekijken.";
+App::$strings["Posts and comments"] = "Berichten en reacties";
+App::$strings["Only posts"] = "Alleen berichten";
+App::$strings["Insufficient permissions. Request redirected to profile page."] = "Onvoldoende permissies. Doorgestuurd naar profielpagina.";
+App::$strings["Version %s"] = "Versie %s";
+App::$strings["Installed plugins/addons/apps:"] = "Ingeschakelde plugins en apps:";
+App::$strings["No installed plugins/addons/apps"] = "Geen ingeschakelde plugins en apps";
+App::$strings["This is a hub of \$Projectname - a global cooperative network of decentralized privacy enhanced websites."] = "Dit is een \$Projectname-hub - \$Projectname is een wereldwijd coöperatief netwerk van gedecentraliseerde websites (hubs) met verbeterde privacy.";
+App::$strings["Tag: "] = "Tag: ";
+App::$strings["Last background fetch: "] = "Meest recente achtergrond-fetch:";
+App::$strings["Current load average: "] = "Gemiddelde systeembelasting is nu:";
+App::$strings["Running at web location"] = "Draaiend op weblocatie";
+App::$strings["Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more about \$Projectname."] = "Bezoek <a href=\"http://hubzilla.org\">hubzilla.org</a> ";
+App::$strings["Bug reports and issues: please visit"] = "Bugrapporten en andere kwesties: bezoek";
+App::$strings["\$projectname issues"] = "\$projectname-issues";
+App::$strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Voorstellen, lofbetuigingen, enz. - e-mail \"redmatrix\" at librelist - dot com";
+App::$strings["Site Administrators"] = "Hubbeheerders: ";
+App::$strings["Blocks"] = "Blokken";
+App::$strings["Block Title"] = "Bloktitel";
+App::$strings["Layouts"] = "Lay-outs";
+App::$strings["Comanche page description language help"] = "Hulp met de paginabeschrijvingstaal Comanche";
+App::$strings["Layout Description"] = "Lay-out-omschrijving";
+App::$strings["Download PDL file"] = "Download PDL-bestand";
+App::$strings["No ratings"] = "Geen beoordelingen";
+App::$strings["Rating: "] = "Beoordeling: ";
+App::$strings["Website: "] = "Website: ";
+App::$strings["Description: "] = "Omschrijving: ";
+App::$strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Vernieuw de pagina met shift+R of shift+F5, of leeg je browserbuffer, wanneer de nieuwe foto niet meteen wordt weergegeven.";
+App::$strings["Upload Profile Photo"] = "Profielfoto uploaden";
+App::$strings["Permissions denied."] = "Permissies niet toegestaan";
+App::$strings["Import"] = "Importeren";
+App::$strings["No channel."] = "Geen kanaal.";
+App::$strings["Common connections"] = "Veel voorkomende connecties";
+App::$strings["No connections in common."] = "Geen gemeenschappelijke connecties.";
+App::$strings["Unable to lookup recipient."] = "Niet in staat om ontvanger op te zoeken.";
+App::$strings["Unable to communicate with requested channel."] = "Niet in staat om met het aangevraagde kanaal te communiceren.";
+App::$strings["Cannot verify requested channel."] = "Kan opgevraagd kanaal niet verifieren";
+App::$strings["Selected channel has private message restrictions. Send failed."] = "Gekozen kanaal heeft restricties voor privéberichten. Verzenden mislukt.";
+App::$strings["Messages"] = "Berichten";
+App::$strings["Message recalled."] = "Bericht ingetrokken.";
+App::$strings["Conversation removed."] = "Conversatie verwijderd";
+App::$strings["Please enter a link URL:"] = "Vul een URL in:";
+App::$strings["Expires YYYY-MM-DD HH:MM"] = "Verloopt op DD-MM-YYYY om HH:MM";
+App::$strings["Requested channel is not in this network"] = "Opgevraagd kanaal is niet in dit netwerk beschikbaar";
+App::$strings["Send Private Message"] = "Privébericht versturen";
+App::$strings["To:"] = "Aan:";
+App::$strings["Subject:"] = "Onderwerp:";
+App::$strings["Attach file"] = "Bestand toevoegen";
+App::$strings["Send"] = "Verzenden";
+App::$strings["Set expiration date"] = "Verloopdatum instellen";
+App::$strings["Encrypt text"] = "Tekst versleutelen";
+App::$strings["Delete message"] = "Bericht verwijderen";
+App::$strings["Delivery report"] = "Afleveringsrapport";
+App::$strings["Recall message"] = "Bericht intrekken";
+App::$strings["Message has been recalled."] = "Bericht is ingetrokken.";
+App::$strings["Delete Conversation"] = "Verwijder conversatie";
+App::$strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Geen veilige communicatie beschikbaar. <strong>Mogelijk</strong> kan je reageren op de kanaalpagina van de afzender.";
+App::$strings["Send Reply"] = "Antwoord versturen";
+App::$strings["Your message for %s (%s):"] = "Jouw privébericht aan %s (%s):";
+App::$strings["Could not access contact record."] = "Kon geen toegang krijgen tot de connectie-gegevens.";
+App::$strings["Could not locate selected profile."] = "Kon het gekozen profiel niet vinden.";
+App::$strings["Connection updated."] = "Connectie bijgewerkt.";
+App::$strings["Failed to update connection record."] = "Bijwerken van connectie-gegevens mislukt.";
+App::$strings["is now connected to"] = "is nu verbonden met";
+App::$strings["Could not access address book record."] = "Kon geen toegang krijgen tot de record van de connectie.";
+App::$strings["Refresh failed - channel is currently unavailable."] = "Vernieuwen mislukt - kanaal is momenteel niet beschikbaar";
+App::$strings["Unable to set address book parameters."] = "Niet in staat om de parameters van connecties in te stellen.";
+App::$strings["Connection has been removed."] = "Connectie is verwijderd";
+App::$strings["View Profile"] = "Profiel weergeven";
+App::$strings["View %s's profile"] = "Profiel van %s weergeven";
+App::$strings["Refresh Permissions"] = "Permissies vernieuwen";
+App::$strings["Fetch updated permissions"] = "Aangepaste permissies ophalen";
+App::$strings["Recent Activity"] = "Recente activiteit/berichten";
+App::$strings["View recent posts and comments"] = "Recente berichten en reacties weergeven";
+App::$strings["Block (or Unblock) all communications with this connection"] = "Blokkeer (of deblokkeer) alle communicatie met deze connectie";
+App::$strings["This connection is blocked!"] = "Deze connectie is geblokkeerd!";
+App::$strings["Unignore"] = "Niet meer negeren";
+App::$strings["Ignore (or Unignore) all inbound communications from this connection"] = "Negeer (of negeer niet meer) alle inkomende communicatie van deze connectie";
+App::$strings["This connection is ignored!"] = "Deze connectie wordt genegeerd!";
+App::$strings["Unarchive"] = "Niet meer archiveren";
+App::$strings["Archive"] = "Archiveren";
+App::$strings["Archive (or Unarchive) this connection - mark channel dead but keep content"] = "Archiveer (of dearchiveer) deze connectie - markeer het kanaal als dood, maar bewaar de inhoud";
+App::$strings["This connection is archived!"] = "Deze connectie is gearchiveerd!";
+App::$strings["Unhide"] = "Niet meer verbergen";
+App::$strings["Hide"] = "Verbergen";
+App::$strings["Hide or Unhide this connection from your other connections"] = "Deze connectie verbergen (of niet meer verbergen) voor jouw andere connecties";
+App::$strings["This connection is hidden!"] = "Deze connectie is verborgen!";
+App::$strings["Delete this connection"] = "Deze connectie verwijderen";
+App::$strings["Me"] = "Ik";
+App::$strings["Family"] = "Familie";
+App::$strings["Acquaintances"] = "Kennissen";
+App::$strings["Approve this connection"] = "Deze connectie accepteren";
+App::$strings["Accept connection to allow communication"] = "Keur deze connectie goed om communicatie toe te staan";
+App::$strings["Set Affinity"] = "Verwantschapsfilter instellen";
+App::$strings["Set Profile"] = "Profiel instellen";
+App::$strings["Set Affinity & Profile"] = "Verwantschapsfilter en profiel instellen";
+App::$strings["none"] = "geen";
+App::$strings["Connection Default Permissions"] = "Standaard permissies voor connecties";
+App::$strings["Connection: %s"] = "Connectie: %s";
+App::$strings["Apply these permissions automatically"] = "Deze permissies automatisch toepassen";
+App::$strings["Connection requests will be approved without your interaction"] = "Connectieverzoeken zullen automatisch worden geaccepteerd";
+App::$strings["This connection's primary address is"] = "Het primaire kanaaladres van deze connectie is";
+App::$strings["Available locations:"] = "Beschikbare locaties:";
+App::$strings["The permissions indicated on this page will be applied to all new connections."] = "Permissies die op deze pagina staan vermeld worden op alle nieuwe connecties toegepast.";
+App::$strings["Connection Tools"] = "Hulpmiddelen";
+App::$strings["Slide to adjust your degree of friendship"] = "Schuif om te bepalen hoe goed je iemand kent en/of mag";
+App::$strings["Slide to adjust your rating"] = "Gebruik de schuif om je beoordeling te geven";
+App::$strings["Optionally explain your rating"] = "Verklaar jouw beoordeling (niet verplicht)";
+App::$strings["Custom Filter"] = "Berichtenfilter";
+App::$strings["Only import posts with this text"] = "Importeer alleen berichten met deze tekst";
+App::$strings["words one per line or #tags or /patterns/ or lang=xx, leave blank to import all posts"] = "woorden (één per regel), #tags, /regex/ of talen (lang=iso639-1) - laat leeg om alle berichten te importeren";
+App::$strings["Do not import posts with this text"] = "Importeer geen berichten met deze tekst";
+App::$strings["This information is public!"] = "Deze informatie is openbaar!";
+App::$strings["Connection Pending Approval"] = "Connectie moet nog geaccepteerd worden";
+App::$strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Kies het profiel dat je aan %s wil tonen wanneer hij/zij ingelogd jouw profiel wil bekijken.";
+App::$strings["Some permissions may be inherited from your channel's <a href=\"settings\"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can change those settings here but they wont have any impact unless the inherited setting changes."] = "Sommige permissies worden mogelijk overgeërfd van de <a href=\"settings\">privacy-instellingen</a> van jouw kanaal, die een hogere prioriteit hebben dan deze individuele permissies. Je kan de permissies hier veranderen, maar die hebben geen effect, tenzij de overgeërfde permissies worden veranderd. ";
+App::$strings["Last update:"] = "Laatste wijziging:";
+App::$strings["Apps"] = "Apps";
+App::$strings["Continue"] = "Ga verder";
+App::$strings["Premium Channel Setup"] = "Instellen premiumkanaal ";
+App::$strings["Enable premium channel connection restrictions"] = "Restricties voor connecties van premiumkanaal toestaan";
+App::$strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Vul je restricties of voorwaarden in, zoals een paypal-afschrift, voorschriften voor leden, enz.";
+App::$strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Dit kanaal kan extra stappen of het accepteren van de volgende voorwaarden vereisen, voordat de connectie wordt geaccepteerd:";
+App::$strings["Potential connections will then see the following text before proceeding:"] = "Mogelijke connecties zullen dan de volgende tekst zien voordat ze verder kunnen:";
+App::$strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Door verder te gaan ga ik automatisch akkoord met alle voorwaarden en aanwijzingen op deze pagina.";
+App::$strings["(No specific instructions have been provided by the channel owner.)"] = "(Er zijn geen speciale voorwaarden en aanwijzingen door de kanaal-eigenaar verstrekt) ";
+App::$strings["Restricted or Premium Channel"] = "Beperkt of premiumkanaal";
App::$strings["Select a bookmark folder"] = "Kies een bladwijzermap";
App::$strings["Save Bookmark"] = "Bladwijzer opslaan";
App::$strings["URL of bookmark"] = "URL van bladwijzer";
App::$strings["Or enter new bookmark folder name"] = "Of geef de naam op van een nieuwe bladwijzermap";
-App::$strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Maximum toegestane dagelijkse registraties op deze \$Projectname-hub bereikt. Probeer het morgen (UTC) nogmaals.";
-App::$strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Registratie mislukt. De gebruiksvoorwaarden dienen wel geaccepteerd te worden.";
-App::$strings["Passwords do not match."] = "Wachtwoorden komen niet met elkaar overeen.";
-App::$strings["Registration successful. Please check your email for validation instructions."] = "Registratie geslaagd. Controleer je e-mail voor instructies.";
-App::$strings["Your registration is pending approval by the site owner."] = "Jouw accountregistratie wacht op goedkeuring van de beheerder van deze \$Projectname-hub.";
-App::$strings["Your registration can not be processed."] = "Jouw registratie kan niet verwerkt worden.";
-App::$strings["Registration on this hub is disabled."] = "Registreren van nieuwe accounts is op deze hub uitgeschakeld.";
-App::$strings["Registration on this hub is by approval only."] = "Registraties op deze hub moeten eerst worden goedgekeurd.";
-App::$strings["<a href=\"pubsites\">Register at another affiliated hub.</a>"] = "<a href=\"pubsites\">Registreer op een andere hub</a>.";
-App::$strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Deze \$Projectname-hub heeft het maximum aantal dagelijks toegestane registraties bereikt. Probeer het morgen (UTC) nogmaals.";
-App::$strings["Terms of Service"] = "Gebruiksvoorwaarden";
-App::$strings["I accept the %s for this website"] = "Ik accepteer de %s van deze \$Projectname-hub";
-App::$strings["I am over 13 years of age and accept the %s for this website"] = "Ik ben 13 jaar of ouder en accepteer de %s van deze \$Projectname-hub";
-App::$strings["Your email address"] = "Jouw e-mailadres";
-App::$strings["Choose a password"] = "Geef een wachtwoord op";
-App::$strings["Please re-enter your password"] = "Geef het wachtwoord opnieuw op";
-App::$strings["Please enter your invitation code"] = "Vul jouw uitnodigingscode in";
-App::$strings["no"] = "Nee";
-App::$strings["yes"] = "Ja";
-App::$strings["Membership on this site is by invitation only."] = "Registreren op deze \$Projectname-hub kan alleen op uitnodiging.";
-App::$strings["Register"] = "Registreren";
-App::$strings["Proceed to create your first channel"] = "Volgende stap: aanmaken van jouw eerste kanaal";
+App::$strings["Authentication failed."] = "Authenticatie mislukt.";
+App::$strings["Remote Authentication"] = "Authenticatie op afstand";
+App::$strings["Enter your channel address (e.g. channel@example.com)"] = "Vul jouw kanaaladres in (bijv. channel@example.com)";
+App::$strings["Authenticate"] = "Authenticeren";
App::$strings["Please login."] = "Inloggen.";
App::$strings["Account removals are not allowed within 48 hours of changing the account password."] = "Het verwijderen van een account is niet toegestaan binnen 48 uur nadat het wachtwoord is veranderd.";
App::$strings["Remove This Account"] = "Verwijder dit account";
@@ -1079,273 +1347,69 @@ App::$strings["This action is permanent and can not be undone!"] = "Deze handeli
App::$strings["Please enter your password for verification:"] = "Vul je wachtwoord in ter verificatie:";
App::$strings["Remove this account, all its channels and all its channel clones from the network"] = "Dit account, al zijn kanalen en alle klonen van zijn kanalen uit het \$Projectname-netwerk verwijderen";
App::$strings["By default only the instances of the channels located on this hub will be removed from the network"] = "Standaard worden alleen de kanalen die zich op deze hub bevinden uit het \$Projectname-netwerk verwijderd";
-App::$strings["Remove Account"] = "Account verwijderen";
App::$strings["Channel removals are not allowed within 48 hours of changing the account password."] = "Het verwijderen van een kanaal is niet toegestaan binnen 48 uur nadat het wachtwoord van het account is veranderd.";
App::$strings["Remove This Channel"] = "Verwijder dit kanaal";
App::$strings["This channel will be completely removed from the network. "] = "Dit kanaal wordt volledig uit het \$Projectname-netwerk verwijderd.";
App::$strings["Remove this channel and all its clones from the network"] = "Dit kanaal en alle klonen hiervan uit het \$Projectname-netwerk verwijderen";
App::$strings["By default only the instance of the channel located on this hub will be removed from the network"] = "Standaard wordt alleen het kanaal dat zich op deze hub bevindt uit het \$Projectname-netwerk verwijderd";
-App::$strings["Remove Channel"] = "Kanaal verwijderen";
-App::$strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "We hebben een probleem ontdekt tijdens het inloggen met de OpenID die je hebt verstrekt. Controleer de ID op typefouten.";
-App::$strings["The error message was:"] = "Het foutbericht was:";
-App::$strings["Authentication failed."] = "Authenticatie mislukt.";
-App::$strings["Remote Authentication"] = "Authenticatie op afstand";
-App::$strings["Enter your channel address (e.g. channel@example.com)"] = "Vul jouw kanaaladres in (bijv. channel@example.com)";
-App::$strings["Authenticate"] = "Authenticeren";
+App::$strings["Export Channel"] = "Kanaal exporteren";
+App::$strings["Export your basic channel information to a file. This acts as a backup of your connections, permissions, profile and basic data, which can be used to import your data to a new server hub, but does not contain your content."] = "Exporteer de basisinformatie van jouw kanaal naar een bestand. Dit fungeert als een back-up van jouw connecties, permissies, profiel en basisgegevens, die gebruikt kan worden om op een nieuwe hub jouw gegevens te importeren. Deze back-up bevat echter niet de inhoud van jouw kanaal.";
+App::$strings["Export Content"] = "Inhoud exporteren";
+App::$strings["Export your channel information and recent content to a JSON backup that can be restored or imported to another server hub. This backs up all of your connections, permissions, profile data and several months of posts. This file may be VERY large. Please be patient - it may take several minutes for this download to begin."] = "Exporteer informatie en recente inhoud van jouw kanaal naar een JSON-back-up, wat kan worden gebruikt om jouw kanaal te herstellen of te importeren op een andere hub. Dit slaat al jouw connecties, permissies, profielgegevens en enkele maanden aan inhoud van jouw kanaal op. Dit bestand kan ZEER groot worden. Wees geduldig - het kan enkele minuten duren voordat de download begint.";
+App::$strings["Export your posts from a given year."] = "Exporteer jouw berichten uit een bepaald jaar.";
+App::$strings["You may also export your posts and conversations for a particular year or month. Adjust the date in your browser location bar to select other dates. If the export fails (possibly due to memory exhaustion on your server hub), please try again selecting a more limited date range."] = "Je kan ook berichten en conversaties uit een bepaald jaar of van een bepaalde maand exporteren. Verander de datum in de adresbalk van jouw webbrowser om andere jaren en maanden te selecteren. Wanneer het exporteren mislukt (waarschijnlijk door een gebrek aan beschikbaar servergeheugen), probeer het dan nogmaals met een beperkter tijdvak.";
+App::$strings["To select all posts for a given year, such as this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Bezoek <a href=\"%1\$s\">%2\$s</a> om alle berichten van bijvoorbeeld dit jaar te selecteren. ";
+App::$strings["To select all posts for a given month, such as January of this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Bezoek <a href=\"%1\$s\">%2\$s</a> om alle berichten van bijvoorbeeld januari dit jaar te selecteren.";
+App::$strings["These content files may be imported or restored by visiting <a href=\"%1\$s\">%2\$s</a> on any site containing your channel. For best results please import or restore these in date order (oldest first)."] = "Deze back-up-bestanden kunnen geïmporteerd of hersteld worden door op jouw hub en met jouw kanaal <a href=\"%1\$s\">%2\$s</a> te bezoeken. Voor het beste resultaat kan je de bestanden in chronologische volgorde importeren of herstellen.";
+App::$strings["Item is not editable"] = "Item is niet te bewerken";
+App::$strings["Edit post"] = "Bericht bewerken";
App::$strings["Items tagged with: %s"] = "Items getagd met %s";
App::$strings["Search results for: %s"] = "Zoekresultaten voor %s";
App::$strings["No service class restrictions found."] = "Geen abonnementsbeperkingen gevonden.";
-App::$strings["Name is required"] = "Naam is vereist";
-App::$strings["Key and Secret are required"] = "Key en secret zijn vereist";
-App::$strings["Not valid email."] = "Geen geldig e-mailadres.";
-App::$strings["Protected email address. Cannot change to that email."] = "Beschermd e-mailadres. Kan dat e-mailadres niet gebruiken.";
-App::$strings["System failure storing new email. Please try again."] = "Systeemfout opslaan van nieuwe e-mail. Probeer het nog een keer.";
-App::$strings["Password verification failed."] = "Wachtwoordverificatie mislukt";
-App::$strings["Passwords do not match. Password unchanged."] = "Wachtwoorden komen niet overeen. Wachtwoord onveranderd.";
-App::$strings["Empty passwords are not allowed. Password unchanged."] = "Lege wachtwoorden zijn niet toegestaan. Wachtwoord onveranderd.";
-App::$strings["Password changed."] = "Wachtwoord veranderd.";
-App::$strings["Password update failed. Please try again."] = "Bijwerken wachtwoord mislukt. Probeer opnieuw.";
-App::$strings["Settings updated."] = "Instellingen bijgewerkt.";
-App::$strings["Add application"] = "Applicatie toevoegen";
-App::$strings["Name of application"] = "Naam van applicatie";
-App::$strings["Consumer Key"] = "Consumer key";
-App::$strings["Automatically generated - change if desired. Max length 20"] = "Automatische gegenereerd - verander wanneer gewenst. Maximale lengte is 20";
-App::$strings["Consumer Secret"] = "Consumer secret";
-App::$strings["Redirect"] = "Redirect/doorverwijzing";
-App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI voor redirect - laat leeg, behalve wanneer de applicatie dit vereist";
-App::$strings["Icon url"] = "Pictogram-URL";
-App::$strings["Optional"] = "Optioneel";
-App::$strings["Application not found."] = "Applicatie niet gevonden.";
-App::$strings["Connected Apps"] = "Verbonden applicaties";
-App::$strings["Client key starts with"] = "Client key begint met";
-App::$strings["No name"] = "Geen naam";
-App::$strings["Remove authorization"] = "Autorisatie verwijderen";
-App::$strings["No feature settings configured"] = "Geen plugin-instellingen aanwezig";
-App::$strings["Feature/Addon Settings"] = "Plugin-instellingen";
-App::$strings["Account Settings"] = "Account-instellingen";
-App::$strings["Current Password"] = "Huidig wachtwoord";
-App::$strings["Enter New Password"] = "Nieuw wachtwoord invoeren";
-App::$strings["Confirm New Password"] = "Nieuw wachtwoord bevestigen";
-App::$strings["Leave password fields blank unless changing"] = "Laat de wachtwoordvelden leeg, behalve wanneer je deze wil veranderen";
-App::$strings["Email Address:"] = "E-mailadres:";
-App::$strings["Remove this account including all its channels"] = "Dit account en al zijn kanalen verwijderen";
-App::$strings["Additional Features"] = "Extra functies";
-App::$strings["Connector Settings"] = "Instellingen externe koppelingen";
-App::$strings["No special theme for mobile devices"] = "Geen speciaal thema voor mobiele apparaten";
-App::$strings["%s - (Experimental)"] = "%s - (experimenteel)";
-App::$strings["Display Settings"] = "Weergave-instellingen";
-App::$strings["Theme Settings"] = "Thema-instellingen";
-App::$strings["Custom Theme Settings"] = "Handmatige thema-instellingen";
-App::$strings["Content Settings"] = "Inhoudsinstellingen";
-App::$strings["Display Theme:"] = "Gebruik thema:";
-App::$strings["Mobile Theme:"] = "Mobiel thema:";
-App::$strings["Preload images before rendering the page"] = "Afbeeldingen laden voordat de pagina wordt weergegeven";
-App::$strings["The subjective page load time will be longer but the page will be ready when displayed"] = "De laadtijd van een pagina lijkt langer, maar de pagina is wel meteen helemaal geladen wanneer deze wordt weergeven";
-App::$strings["Enable user zoom on mobile devices"] = "Inzoomen op smartphones en tablets toestaan";
-App::$strings["Update browser every xx seconds"] = "Ververs de webbrowser om de zoveel seconde";
-App::$strings["Minimum of 10 seconds, no maximum"] = "Minimaal 10 seconde, geen maximum";
-App::$strings["Maximum number of conversations to load at any time:"] = "Maximaal aantal conversaties die per keer geladen worden:";
-App::$strings["Maximum of 100 items"] = "Maximaal 100 conversaties";
-App::$strings["Show emoticons (smilies) as images"] = "Toon emoticons (smilies) als afbeeldingen";
-App::$strings["Link post titles to source"] = "Berichtkoppen naar originele locatie linken";
-App::$strings["System Page Layout Editor - (advanced)"] = "Lay-out bewerken van systeempagina's (geavanceerd)";
-App::$strings["Use blog/list mode on channel page"] = "Gebruik blog/lijst-modus op kanaalpagina";
-App::$strings["(comments displayed separately)"] = "(reacties worden afzonderlijk weergeven)";
-App::$strings["Use blog/list mode on grid page"] = "Gebruik blog/lijst-modus op gridpagina";
-App::$strings["Channel page max height of content (in pixels)"] = "Maximale hoogte berichtinhoud op kanaalpagina (in pixels)";
-App::$strings["click to expand content exceeding this height"] = "klik om inhoud uit te klappen die deze hoogte overschrijdt";
-App::$strings["Grid page max height of content (in pixels)"] = "Maximale hoogte berichtinhoud op gridpagina (in pixels)";
-App::$strings["Nobody except yourself"] = "Niemand, behalve jezelf";
-App::$strings["Only those you specifically allow"] = "Alleen connecties met uitdrukkelijke toestemming";
-App::$strings["Approved connections"] = "Geaccepteerde connecties";
-App::$strings["Any connections"] = "Alle connecties";
-App::$strings["Anybody on this website"] = "Iedereen op deze hub";
-App::$strings["Anybody in this network"] = "Iedereen in dit netwerk";
-App::$strings["Anybody authenticated"] = "Geauthenticeerd";
-App::$strings["Anybody on the internet"] = "Iedereen op het internet";
-App::$strings["Publish your default profile in the network directory"] = "Publiceer je standaardprofiel in de kanalengids";
-App::$strings["Allow us to suggest you as a potential friend to new members?"] = "Sta ons toe om jouw kanaal als mogelijke connectie voor te stellen aan nieuwe kanalen";
-App::$strings["Your channel address is"] = "Jouw kanaaladres is";
-App::$strings["Channel Settings"] = "Kanaal-instellingen";
-App::$strings["Basic Settings"] = "Basis-instellingen";
-App::$strings["Full Name:"] = "Volledige naam:";
-App::$strings["Your Timezone:"] = "Jouw tijdzone:";
-App::$strings["Default Post Location:"] = "Standaardlocatie bericht:";
-App::$strings["Geographical location to display on your posts"] = "Geografische locatie die bij het bericht moet worden vermeld";
-App::$strings["Use Browser Location:"] = "Locatie van webbrowser gebruiken:";
-App::$strings["Adult Content"] = "Inhoud voor volwassenen";
-App::$strings["This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)"] = "Dit kanaal publiceert regelmatig of vaak materiaal dat alleen geschikt is voor volwassenen. (Gebruik de tag #NSFW in berichten met een seksueel getinte inhoud of ander voor minderjarigen ongeschikt materiaal)";
-App::$strings["Security and Privacy Settings"] = "Veiligheids- en privacy-instellingen";
-App::$strings["Your permissions are already configured. Click to view/adjust"] = "Jouw permissies zijn al ingesteld. Klik om ze te bekijken of aan te passen.";
-App::$strings["Hide my online presence"] = "Verberg mijn aanwezigheid";
-App::$strings["Prevents displaying in your profile that you are online"] = "Voorkomt dat op je kanaalpagina te zien valt dat je momenteel op \$Projectname aanwezig bent";
-App::$strings["Simple Privacy Settings:"] = "Eenvoudige privacy-instellingen:";
-App::$strings["Very Public - <em>extremely permissive (should be used with caution)</em>"] = "Zeer openbaar <em>(kanaal staat volledig open - moet met grote zorgvuldigheid gebruikt worden)</em>";
-App::$strings["Typical - <em>default public, privacy when desired (similar to social network permissions but with improved privacy)</em>"] = "Normaal <em>(standaard openbaar, maar privacy wanneer noodzakelijk - vergelijkbaar met die van sociale netwerken, maar met verbeterde privacy)</em>";
-App::$strings["Private - <em>default private, never open or public</em>"] = "Privé <em>(standaard privé en nooit openbaar)</em>";
-App::$strings["Blocked - <em>default blocked to/from everybody</em>"] = "Geblokkeerd <em>(standaard geblokkeerd naar/van iedereen)</em>";
-App::$strings["Allow others to tag your posts"] = "Anderen toestaan om je berichten te taggen";
-App::$strings["Often used by the community to retro-actively flag inappropriate content"] = "Vaak in groepen/forums gebruikt om met terugwerkende kracht ongepast materiaal te markeren";
-App::$strings["Advanced Privacy Settings"] = "Geavanceerde privacy-instellingen";
-App::$strings["Expire other channel content after this many days"] = "Inhoud van andere kanalen na zoveel aantal dagen laten verlopen:";
-App::$strings["0 or blank to use the website limit."] = "0 of leeg om het standaard aantal dagen van deze hub te gebruiken.";
-App::$strings["This website expires after %d days."] = "Deze hub laat de inhoud van andere kanalen na %d dagen verlopen.";
-App::$strings["This website does not expire imported content."] = "Deze hub laat de inhoud van andere kanalen niet verlopen.";
-App::$strings["The website limit takes precedence if lower than your limit."] = "Wanneer de standaard aantal dagen van deze hub lager ligt dan jouw aantal, dan heeft de limiet van deze hub voorrang.";
-App::$strings["Maximum Friend Requests/Day:"] = "Maximum aantal connectieverzoeken per dag:";
-App::$strings["May reduce spam activity"] = "Kan eventuele spam verminderen";
-App::$strings["Default Post and Publish Permissions"] = "Standaard permissies voor nieuwe berichten en publicaties";
-App::$strings["Use my default audience setting for the type of object published"] = "Gebruik mijn standaard privacy-instelling voor dit type publicatie";
-App::$strings["Channel permissions category:"] = "Kanaaltype en -permissies:";
-App::$strings["Maximum private messages per day from unknown people:"] = "Maximum aantal privé-berichten per dag van onbekende personen:";
-App::$strings["Useful to reduce spamming"] = "Kan eventuele spam verminderen";
-App::$strings["Notification Settings"] = "Notificatie-instellingen";
-App::$strings["By default post a status message when:"] = "Plaats automatisch een bericht wanneer:";
-App::$strings["accepting a friend request"] = "Een connectieverzoek wordt geaccepteerd";
-App::$strings["joining a forum/community"] = "Je lid wordt van een forum/groep";
-App::$strings["making an <em>interesting</em> profile change"] = "Er sprake is van een <em>interessante</em> profielwijziging";
-App::$strings["Send a notification email when:"] = "Verzend een notificatie per e-mail wanneer:";
-App::$strings["You receive a connection request"] = "Je een connectieverzoek ontvangt";
-App::$strings["Your connections are confirmed"] = "Jouw connecties zijn bevestigd";
-App::$strings["Someone writes on your profile wall"] = "Iemand iets op jouw kanaal heeft geschreven";
-App::$strings["Someone writes a followup comment"] = "Iemand een reactie schrijft";
-App::$strings["You receive a private message"] = "Je een privé-bericht ontvangt";
-App::$strings["You receive a friend suggestion"] = "Je een kanaalvoorstel ontvangt";
-App::$strings["You are tagged in a post"] = "Je expliciet in een bericht bent genoemd";
-App::$strings["You are poked/prodded/etc. in a post"] = "Je bent in een bericht aangestoten/gepord/etc.";
-App::$strings["Show visual notifications including:"] = "Toon de volgende zichtbare notificaties:";
-App::$strings["Unseen grid activity"] = "Niet bekeken grid-activiteit";
-App::$strings["Unseen channel activity"] = "Niet bekeken kanaal-activiteit";
-App::$strings["Unseen private messages"] = "Niet bekeken privéberichten";
-App::$strings["Recommended"] = "Aanbevolen";
-App::$strings["Upcoming events"] = "Aankomende gebeurtenissen";
-App::$strings["Events today"] = "Gebeurtenissen van vandaag";
-App::$strings["Upcoming birthdays"] = "Aankomende verjaardagen";
-App::$strings["Not available in all themes"] = "Niet in alle thema's beschikbaar";
-App::$strings["System (personal) notifications"] = "(Persoonlijke) systeemnotificaties";
-App::$strings["System info messages"] = "Systeemmededelingen";
-App::$strings["System critical alerts"] = "Kritische systeemwaarschuwingen";
-App::$strings["New connections"] = "Nieuwe connecties";
-App::$strings["System Registrations"] = "Nieuwe accountregistraties op deze hub";
-App::$strings["Also show new wall posts, private messages and connections under Notices"] = "Toon tevens nieuwe kanaalberichten, privéberichten en connecties onder Notificaties";
-App::$strings["Notify me of events this many days in advance"] = "Herinner mij zoveel dagen van te voren aan gebeurtenissen";
-App::$strings["Must be greater than 0"] = "Moet hoger dan 0 zijn";
-App::$strings["Advanced Account/Page Type Settings"] = "Instellingen geavanceerd account/paginatype";
-App::$strings["Change the behaviour of this account for special situations"] = "Verander het gedrag van dit account voor speciale situaties";
-App::$strings["Please enable expert mode (in <a href=\"settings/features\">Settings > Additional features</a>) to adjust!"] = "Schakel de expertmodus in (in <a href=\"settings/features\">Instellingen > Extra functies</a>) om aan te kunnen passen!";
-App::$strings["Miscellaneous Settings"] = "Diverse instellingen";
-App::$strings["Default photo upload folder"] = "Standaard fotoalbum voor uploads";
-App::$strings["%Y - current year, %m - current month"] = "%Y - dit jaar, %m - deze maand";
-App::$strings["Default file upload folder"] = "Standaard bestandsmap voor uploads";
-App::$strings["Personal menu to display in your channel pages"] = "Persoonlijk menu om op je kanaalpagina's weer te geven";
-App::$strings["Remove this channel."] = "Verwijder dit kanaal.";
-App::$strings["Firefox Share \$Projectname provider"] = "\$Projectname-service voor Firefox Share";
-App::$strings["Start calendar week on monday"] = "Begin in de agenda de week op maandag";
-App::$strings["\$Projectname Server - Setup"] = "\$Projectname Hub - Setup";
-App::$strings["Could not connect to database."] = "Could not connect to database.";
-App::$strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Could not connect to specified hub URL. Possible SSL certificate or DNS issue.";
-App::$strings["Could not create table."] = "Could not create table.";
-App::$strings["Your site database has been installed."] = "Your hub database has been installed.";
-App::$strings["You may need to import the file \"install/schema_xxx.sql\" manually using a database client."] = "You may need to import the file \"install/schema_xxx.sql\" manually using a database client.";
-App::$strings["Please see the file \"install/INSTALL.txt\"."] = "Please see the file \"install/INSTALL.txt\".";
-App::$strings["System check"] = "System check";
-App::$strings["Check again"] = "Check again";
-App::$strings["Database connection"] = "Database connection";
-App::$strings["In order to install \$Projectname we need to know how to connect to your database."] = "In order to install \$Projectname we need to know how to connect to your database.";
-App::$strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Please contact your hosting provider or server administrator if you have questions about these settings.";
-App::$strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "The database you specify below should already exist. If it does not, please create it before continuing.";
-App::$strings["Database Server Name"] = "Database Server Name";
-App::$strings["Default is 127.0.0.1"] = "Default is 127.0.0.1";
-App::$strings["Database Port"] = "Database Port";
-App::$strings["Communication port number - use 0 for default"] = "Communication port number - use 0 for default";
-App::$strings["Database Login Name"] = "Database Login Name";
-App::$strings["Database Login Password"] = "Database Login Password";
-App::$strings["Database Name"] = "Database Name";
-App::$strings["Database Type"] = "Database Type";
-App::$strings["Site administrator email address"] = "Hub administrator email address";
-App::$strings["Your account email address must match this in order to use the web admin panel."] = "Your account email address must match this in order to use the web admin panel.";
-App::$strings["Website URL"] = "Hub URL";
-App::$strings["Please use SSL (https) URL if available."] = "Please use SSL (https) URL if available.";
-App::$strings["Please select a default timezone for your website"] = "Please select a default timezone for your hub";
-App::$strings["Site settings"] = "Hub settings";
-App::$strings["Enable \$Projectname <strong>advanced</strong> features?"] = "Enable \$Projectname <strong>advanced</strong> features?";
-App::$strings["Some advanced features, while useful - may be best suited for technically proficient audiences"] = "Some advanced features, while useful - may be best suited for technically proficient audiences";
-App::$strings["PHP version 5.5 or greater is required."] = "PHP version 5.5 or greater is required.";
-App::$strings["PHP version"] = "PHP version";
-App::$strings["Could not find a command line version of PHP in the web server PATH."] = "Could not find a command line version of PHP in the web server PATH.";
-App::$strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron."] = "If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron.";
-App::$strings["PHP executable path"] = "PHP executable path";
-App::$strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Enter full path to php executable. You can leave this blank to continue the installation.";
-App::$strings["Command line PHP"] = "Command line PHP";
-App::$strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "The command line version of PHP on your system does not have \"register_argc_argv\" enabled.";
-App::$strings["This is required for message delivery to work."] = "This is required for message delivery to work.";
-App::$strings["PHP register_argc_argv"] = "PHP register_argc_argv";
-App::$strings["Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once."] = "Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once.";
-App::$strings["You can adjust these settings in the servers php.ini."] = "You can adjust these settings in the servers php.ini.";
-App::$strings["PHP upload limits"] = "PHP upload limits";
-App::$strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys";
-App::$strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\".";
-App::$strings["Generate encryption keys"] = "Generate encryption keys";
-App::$strings["libCurl PHP module"] = "libCurl PHP module";
-App::$strings["GD graphics PHP module"] = "GD graphics PHP module";
-App::$strings["OpenSSL PHP module"] = "OpenSSL PHP module";
-App::$strings["mysqli or postgres PHP module"] = "mysqli or postgres PHP module";
-App::$strings["mb_string PHP module"] = "mb_string PHP module";
-App::$strings["mcrypt PHP module"] = "mcrypt PHP module";
-App::$strings["xml PHP module"] = "xml PHP module";
-App::$strings["Apache mod_rewrite module"] = "Apache mod_rewrite module";
-App::$strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Error: Apache webserver mod-rewrite module is required but not installed.";
-App::$strings["proc_open"] = "proc_open";
-App::$strings["Error: proc_open is required but is either not installed or has been disabled in php.ini"] = "Error: proc_open is required but is either not installed or has been disabled in php.ini";
-App::$strings["Error: libCURL PHP module required but not installed."] = "Error: libCURL PHP module required but not installed.";
-App::$strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Error: GD graphics PHP module with JPEG support required but not installed.";
-App::$strings["Error: openssl PHP module required but not installed."] = "Error: openssl PHP module required but not installed.";
-App::$strings["Error: mysqli or postgres PHP module required but neither are installed."] = "Error: mysqli or postgres PHP module required but neither are installed.";
-App::$strings["Error: mb_string PHP module required but not installed."] = "Error: mb_string PHP module required but not installed.";
-App::$strings["Error: mcrypt PHP module required but not installed."] = "Error: mcrypt PHP module required but not installed.";
-App::$strings["Error: xml PHP module required for DAV but not installed."] = "Error: xml PHP module required for DAV but not installed.";
-App::$strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so.";
-App::$strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can.";
-App::$strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."] = "At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder.";
-App::$strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions.";
-App::$strings[".htconfig.php is writable"] = ".htconfig.php is writable";
-App::$strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering.";
-App::$strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder."] = "In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder.";
-App::$strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder.";
-App::$strings["Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."] = "Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains.";
-App::$strings["%s is writable"] = "%s is writable";
-App::$strings["Red uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder"] = "Red uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder";
-App::$strings["store is writable"] = "store is writable";
-App::$strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "SSL certificate cannot be validated. Fix certificate or disable https access to this hub.";
-App::$strings["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "If you have https access to your hub or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!";
-App::$strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "This restriction is incorporated because public posts from you may for example contain references to images on your own hub.";
-App::$strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "If your certificate is not recognized, members of other hubs (who may themselves have valid certificates) will get a warning message on their own hub complaining about security issues.";
-App::$strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "This can cause usability issues elsewhere (not just on your own hub) so we must insist on this requirement.";
-App::$strings["Providers are available that issue free certificates which are browser-valid."] = "Providers are available that issue free certificates which are browser-valid.";
-App::$strings["SSL certificate validation"] = "SSL certificate validation";
-App::$strings["Url rewrite in .htaccess is not working. Check your server configuration.Test: "] = "Url rewrite in .htaccess is not working. Check your server configuration.Test: ";
-App::$strings["Url rewrite is working"] = "Url rewrite is working";
-App::$strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root.";
-App::$strings["Errors encountered creating database tables."] = "Errors encountered creating database tables.";
-App::$strings["<h1>What next</h1>"] = "<h1>What next</h1>";
-App::$strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANT: You will need to [manually] setup a scheduled task for the poller.";
+App::$strings["Thing updated"] = "Ding bijgewerkt";
+App::$strings["Object store: failed"] = "Opslaan van ding mislukt";
+App::$strings["Thing added"] = "Ding toegevoegd";
+App::$strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s";
+App::$strings["Show Thing"] = "Ding weergeven";
+App::$strings["item not found."] = "Item niet gevonden";
+App::$strings["Edit Thing"] = "Ding bewerken";
+App::$strings["Select a profile"] = "Kies een profiel";
+App::$strings["Post an activity"] = "Plaats een bericht";
+App::$strings["Only sends to viewers of the applicable profile"] = "Toont dit alleen aan diegene die het gekozen profiel mogen zien.";
+App::$strings["Name of thing e.g. something"] = "Naam van ding";
+App::$strings["URL of thing (optional)"] = "URL van ding (optioneel)";
+App::$strings["URL for photo of thing (optional)"] = "URL voor foto van ding (optioneel)";
+App::$strings["Add Thing to your Profile"] = "Ding aan je profiel toevoegen";
+App::$strings["Unable to locate original post."] = "Niet in staat om de originele locatie van het bericht te vinden. ";
+App::$strings["Empty post discarded."] = "Leeg bericht geannuleerd";
+App::$strings["Executable content type not permitted to this channel."] = "Uitvoerbare bestanden zijn niet toegestaan op dit kanaal.";
+App::$strings["Duplicate post suppressed."] = "Dubbel bericht tegengehouden.";
+App::$strings["System error. Post not saved."] = "Systeemfout. Bericht niet opgeslagen.";
+App::$strings["Unable to obtain post information from database."] = "Niet in staat om informatie over dit bericht uit de database te verkrijgen.";
+App::$strings["You have reached your limit of %1$.0f top level posts."] = "Je hebt jouw limiet van %1$.0f berichten bereikt.";
+App::$strings["You have reached your limit of %1$.0f webpages."] = "Je hebt jouw limiet van %1$.0f webpagina's bereikt.";
App::$strings["Files: shared with me"] = "Bestanden: met mij gedeeld";
App::$strings["NEW"] = "NIEUW";
App::$strings["Remove all files"] = "Verwijder alle bestanden";
App::$strings["Remove this file"] = "Verwijder dit bestand";
-App::$strings["Version %s"] = "Versie %s";
-App::$strings["Installed plugins/addons/apps:"] = "Ingeschakelde plugins en apps:";
-App::$strings["No installed plugins/addons/apps"] = "Geen ingeschakelde plugins en apps";
-App::$strings["This is a hub of \$Projectname - a global cooperative network of decentralized privacy enhanced websites."] = "Dit is een \$Projectname-hub - \$Projectname is een wereldwijd coöperatief netwerk van gedecentraliseerde websites (hubs) met verbeterde privacy.";
-App::$strings["Tag: "] = "Tag: ";
-App::$strings["Last background fetch: "] = "Meest recente achtergrond-fetch:";
-App::$strings["Current load average: "] = "Gemiddelde systeembelasting is nu:";
-App::$strings["Running at web location"] = "Draaiend op weblocatie";
-App::$strings["Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more about \$Projectname."] = "Bezoek <a href=\"http://hubzilla.org\">hubzilla.org</a> ";
-App::$strings["Bug reports and issues: please visit"] = "Bugrapporten en andere kwesties: bezoek";
-App::$strings["\$projectname issues"] = "\$projectname-issues";
-App::$strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Voorstellen, lofbetuigingen, enz. - e-mail \"redmatrix\" at librelist - dot com";
-App::$strings["Site Administrators"] = "Hubbeheerders: ";
+App::$strings["Not found"] = "Niet gevonden";
+App::$strings["Wiki"] = "Wiki";
+App::$strings["Sandbox"] = "Zandbak";
+App::$strings["\"# Wiki Sandbox\\n\\nContent you **edit** and **preview** here *will not be saved*.\""] = "\"# Wiki Sandbox\\n\\nWat er hier onder **edit** en **preview** staat *wordt niet opgeslagen*.\"";
+App::$strings["Revision Comparison"] = "Revisies vergelijken";
+App::$strings["Revert"] = "Ongedaan maken";
+App::$strings["Enter the name of your new wiki:"] = "Vul de naam in van jouw nieuwe wiki:";
+App::$strings["Enter the name of the new page:"] = "Vul de naam in van de nieuwe pagina:";
+App::$strings["Enter the new name:"] = "Vul de nieuwe naam in:";
+App::$strings["Embed image from photo albums"] = "Afbeelding uit een fotoalbum invoegen";
+App::$strings["Embed an image from your albums"] = "Afbeelding uit jouw albums invoegen";
+App::$strings["OK"] = "OK";
+App::$strings["Choose images to embed"] = "Kies afbeeldingen om in te voegen";
+App::$strings["Choose an album"] = "Kies een album";
+App::$strings["Choose a different album..."] = "Kies een ander album...";
+App::$strings["Error getting album list"] = "Fout met ophalen albumlijst";
+App::$strings["Error getting photo link"] = "Fout met ophalen fotolink";
+App::$strings["Error getting album"] = "Fout met ophalen album";
App::$strings["Failed to create source. No channel selected."] = "Aanmaken bron mislukt. Geen kanaal geselecteerd.";
App::$strings["Source created."] = "Bron aangemaakt.";
App::$strings["Source updated."] = "Bron aangemaakt.";
@@ -1373,60 +1437,27 @@ App::$strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s heeft het %3\$s
App::$strings["Tag removed"] = "Tag verwijderd";
App::$strings["Remove Item Tag"] = "Verwijder item-tag";
App::$strings["Select a tag to remove: "] = "Kies een tag om te verwijderen";
-App::$strings["Thing updated"] = "Ding bijgewerkt";
-App::$strings["Object store: failed"] = "Opslaan van ding mislukt";
-App::$strings["Thing added"] = "Ding toegevoegd";
-App::$strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s";
-App::$strings["Show Thing"] = "Ding weergeven";
-App::$strings["item not found."] = "Item niet gevonden";
-App::$strings["Edit Thing"] = "Ding bewerken";
-App::$strings["Select a profile"] = "Kies een profiel";
-App::$strings["Post an activity"] = "Plaats een bericht";
-App::$strings["Only sends to viewers of the applicable profile"] = "Toont dit alleen aan diegene die het gekozen profiel mogen zien.";
-App::$strings["Name of thing e.g. something"] = "Naam van ding";
-App::$strings["URL of thing (optional)"] = "URL van ding (optioneel)";
-App::$strings["URL for photo of thing (optional)"] = "URL voor foto van ding (optioneel)";
-App::$strings["Add Thing to your Profile"] = "Ding aan je profiel toevoegen";
-App::$strings["Export Channel"] = "Kanaal exporteren";
-App::$strings["Export your basic channel information to a file. This acts as a backup of your connections, permissions, profile and basic data, which can be used to import your data to a new server hub, but does not contain your content."] = "Exporteer de basisinformatie van jouw kanaal naar een bestand. Dit fungeert als een back-up van jouw connecties, permissies, profiel en basisgegevens, die gebruikt kan worden om op een nieuwe hub jouw gegevens te importeren. Deze back-up bevat echter niet de inhoud van jouw kanaal.";
-App::$strings["Export Content"] = "Inhoud exporteren";
-App::$strings["Export your channel information and recent content to a JSON backup that can be restored or imported to another server hub. This backs up all of your connections, permissions, profile data and several months of posts. This file may be VERY large. Please be patient - it may take several minutes for this download to begin."] = "Exporteer informatie en recente inhoud van jouw kanaal naar een JSON-back-up, wat kan worden gebruikt om jouw kanaal te herstellen of te importeren op een andere hub. Dit slaat al jouw connecties, permissies, profielgegevens en enkele maanden aan inhoud van jouw kanaal op. Dit bestand kan ZEER groot worden. Wees geduldig - het kan enkele minuten duren voordat de download begint.";
-App::$strings["Export your posts from a given year."] = "Exporteer jouw berichten uit een bepaald jaar.";
-App::$strings["You may also export your posts and conversations for a particular year or month. Adjust the date in your browser location bar to select other dates. If the export fails (possibly due to memory exhaustion on your server hub), please try again selecting a more limited date range."] = "Je kan ook berichten en conversaties uit een bepaald jaar of van een bepaalde maand exporteren. Verander de datum in de adresbalk van jouw webbrowser om andere jaren en maanden te selecteren. Wanneer het exporteren mislukt (waarschijnlijk door een gebrek aan beschikbaar servergeheugen), probeer het dan nogmaals met een beperkter tijdvak.";
-App::$strings["To select all posts for a given year, such as this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Bezoek <a href=\"%1\$s\">%2\$s</a> om alle berichten van bijvoorbeeld dit jaar te selecteren. ";
-App::$strings["To select all posts for a given month, such as January of this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Bezoek <a href=\"%1\$s\">%2\$s</a> om alle berichten van bijvoorbeeld januari dit jaar te selecteren.";
-App::$strings["These content files may be imported or restored by visiting <a href=\"%1\$s\">%2\$s</a> on any site containing your channel. For best results please import or restore these in date order (oldest first)."] = "Deze back-up-bestanden kunnen geïmporteerd of hersteld worden door op jouw hub en met jouw kanaal <a href=\"%1\$s\">%2\$s</a> te bezoeken. Voor het beste resultaat kan je de bestanden in chronologische volgorde importeren of herstellen.";
+App::$strings["Channel added."] = "Kanaal toegevoegd.";
App::$strings["No connections."] = "Geen connecties.";
App::$strings["Visit %s's profile [%s]"] = "Bezoek het profiel van %s [%s]";
App::$strings["View Connections"] = "Connecties weergeven";
App::$strings["Source of Item"] = "Bron van item";
-App::$strings["Webpages"] = "Webpagina's";
-App::$strings["Actions"] = "Acties";
-App::$strings["Page Link"] = "Paginalink";
-App::$strings["Page Title"] = "Paginatitel";
+App::$strings["Room not found"] = "Chatkanaal niet gevonden";
+App::$strings["Leave Room"] = "Chatkanaal verlaten";
+App::$strings["Delete Room"] = "Chatkanaal verwijderen";
+App::$strings["I am away right now"] = "Ik ben momenteel afwezig";
+App::$strings["I am online"] = "Ik ben online";
+App::$strings["Bookmark this room"] = "Chatkanaal aan bladwijzers toevoegen";
+App::$strings["Feature disabled."] = "Functie uitgeschakeld.";
+App::$strings["New Chatroom"] = "Nieuw chatkanaal";
+App::$strings["Chatroom name"] = "Naam chatkanaal";
+App::$strings["Expiration of chats (minutes)"] = "Aantal minuten voordat chatberichten worden verwijderd";
+App::$strings["%1\$s's Chatrooms"] = "Chatkanalen van %1\$s";
+App::$strings["No chatrooms available"] = "Geen chatkanalen beschikbaar";
+App::$strings["Expiration"] = "Verloopt na";
+App::$strings["min"] = "min";
App::$strings["Xchan Lookup"] = "Xchan opzoeken";
App::$strings["Lookup xchan beginning with (or webbie): "] = "Zoek een xchan (of webbie) die begint met:";
-App::$strings["Site Admin"] = "Hubbeheerder";
-App::$strings["Bug Report"] = "Bugrapport";
-App::$strings["View Bookmarks"] = "Bladwijzers bekijken";
-App::$strings["My Chatrooms"] = "Mijn chatkanalen";
-App::$strings["Firefox Share"] = "Firefox Share";
-App::$strings["Remote Diagnostics"] = "Diagnose op afstand";
-App::$strings["Suggest Channels"] = "Kanalen voorstellen";
-App::$strings["Login"] = "Inloggen";
-App::$strings["Grid"] = "Grid";
-App::$strings["Channel Home"] = "Jouw kanaal";
-App::$strings["Events"] = "Agenda";
-App::$strings["Directory"] = "Kanalengids";
-App::$strings["Mail"] = "Privéberichten";
-App::$strings["Chat"] = "Chatten";
-App::$strings["Probe"] = "Onderzoeken";
-App::$strings["Suggest"] = "Voorstellen";
-App::$strings["Random Channel"] = "Willekeurig kanaal";
-App::$strings["Invite"] = "Uitnodigen ";
-App::$strings["Features"] = "Extra functies";
-App::$strings["Post"] = "Bericht";
-App::$strings["Purchase"] = "Aanschaffen";
App::$strings["Missing room name"] = "Naam chatkanaal ontbreekt";
App::$strings["Duplicate room name"] = "Naam chatkanaal bestaat al";
App::$strings["Invalid room specifier."] = "Ongeldige omschrijving chatkanaal";
@@ -1474,6 +1505,43 @@ App::$strings["Please visit %s to approve or reject the suggestion."] = "Bezoek
App::$strings["[Hubzilla:Notify]"] = "[Hubzilla:Notificatie]";
App::$strings["created a new post"] = "maakte een nieuw bericht aan";
App::$strings["commented on %s's post"] = "gaf een reactie op een bericht van %s";
+App::$strings["Site Admin"] = "Hubbeheerder";
+App::$strings["Bug Report"] = "Bugrapport";
+App::$strings["View Bookmarks"] = "Bladwijzers bekijken";
+App::$strings["My Chatrooms"] = "Mijn chatkanalen";
+App::$strings["Firefox Share"] = "Firefox Share";
+App::$strings["Remote Diagnostics"] = "Diagnose op afstand";
+App::$strings["Suggest Channels"] = "Kanalen voorstellen";
+App::$strings["Login"] = "Inloggen";
+App::$strings["Grid"] = "Grid";
+App::$strings["Channel Home"] = "Jouw kanaal";
+App::$strings["Events"] = "Agenda";
+App::$strings["Directory"] = "Kanalengids";
+App::$strings["Mail"] = "Privéberichten";
+App::$strings["Chat"] = "Chatten";
+App::$strings["Probe"] = "Onderzoeken";
+App::$strings["Suggest"] = "Voorstellen";
+App::$strings["Random Channel"] = "Willekeurig kanaal";
+App::$strings["Invite"] = "Uitnodigen ";
+App::$strings["Features"] = "Extra functies";
+App::$strings["Language"] = "Taal";
+App::$strings["Post"] = "Bericht";
+App::$strings["Profile Photo"] = "Profielfoto";
+App::$strings["Purchase"] = "Aanschaffen";
+App::$strings["Visible to your default audience"] = "Voor iedereen zichtbaar, mits niet anders ingesteld";
+App::$strings["Only me"] = "Alleen ik";
+App::$strings["Public"] = "Openbaar";
+App::$strings["Anybody in the \$Projectname network"] = "Iedereen in het \$Projectname-netwerk";
+App::$strings["Any account on %s"] = "Iedereen op %s";
+App::$strings["Any of my connections"] = "Al mijn geaccepteerde connecties";
+App::$strings["Only connections I specifically allow"] = "Alleen connecties die uitdrukkelijk door jou zijn toegestaan";
+App::$strings["Anybody authenticated (could include visitors from other networks)"] = "Geauthenticeerde leden (kan bezoekers van andere netwerken bevatten)";
+App::$strings["Any connections including those who haven't yet been approved"] = "Al mijn geaccepteerde en nog niet geaccepteerde connecties";
+App::$strings["This is your default setting for the audience of your normal stream, and posts."] = "Dit is de standaard privacy-instelling voor wie jouw berichten kan bekijken";
+App::$strings["This is your default setting for who can view your default channel profile"] = "Dit is de standaard privacy-instelling voor wie jouw standaardprofiel kan bekijken";
+App::$strings["This is your default setting for who can view your connections"] = "Dit is de standaard privacy-instelling voor wie een lijst met jouw connecties kan bekijken";
+App::$strings["This is your default setting for who can view your file storage and photos"] = "Dit is de standaard privacy-instelling voor wie jouw bestanden en foto's kan bekijken";
+App::$strings["This is your default setting for the audience of your webpages"] = "Dit is de standaard privacy-instelling voor wie jouw webpagina's kan bekijken";
App::$strings["Private Message"] = "Niet voor iedereen zichtbaar";
App::$strings["Select"] = "Kies";
App::$strings["Save to Folder"] = "In map opslaan";
@@ -1510,7 +1578,7 @@ App::$strings["Expires: %s"] = "Verloopt: %s";
App::$strings["Save Bookmarks"] = "Bladwijzers opslaan";
App::$strings["Add to Calendar"] = "Aan agenda toevoegen";
App::$strings["Mark all seen"] = "Markeer alles als bekeken";
-App::$strings["[+] show all"] = "[+] alle";
+App::$strings["%s show all"] = "%s alle";
App::$strings["Bold"] = "Vet";
App::$strings["Italic"] = "Cursief";
App::$strings["Underline"] = "Onderstrepen";
@@ -1522,26 +1590,34 @@ App::$strings["Video"] = "Video";
App::$strings["No username found in import file."] = "Geen gebruikersnaam in het importbestand gevonden.";
App::$strings["Unable to create a unique channel address. Import failed."] = "Niet in staat om een uniek kanaaladres aan te maken. Importeren is mislukt.";
App::$strings["Cannot locate DNS info for database server '%s'"] = "Kan DNS-informatie voor databaseserver '%s' niet vinden";
-App::$strings["Categories"] = "Categorieën";
-App::$strings["Tags"] = "Tags";
-App::$strings["Keywords"] = "Trefwoorden";
-App::$strings["have"] = "heb";
-App::$strings["has"] = "heeft";
-App::$strings["want"] = "wil";
-App::$strings["wants"] = "wil";
-App::$strings["likes"] = "vindt dit leuk";
-App::$strings["dislikes"] = "vindt dit niet leuk";
-App::$strings["l F d, Y \\@ g:i A"] = "l d F Y \\@ G:i";
-App::$strings["Starts:"] = "Start:";
-App::$strings["Finishes:"] = "Einde:";
-App::$strings["This event has been added to your calendar."] = "Dit evenement is aan jouw agenda toegevoegd.";
-App::$strings["Not specified"] = "Niet aangegeven";
-App::$strings["Needs Action"] = "Actie vereist";
-App::$strings["Completed"] = "Voltooid";
-App::$strings["In Process"] = "In behandeling";
-App::$strings["Cancelled"] = "Geannuleerd";
-App::$strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Kan geen dubbele kanaal-identificator op deze hub aanmaken. Importeren mislukt.";
-App::$strings["Channel clone failed. Import failed."] = "Het klonen van het kanaal is mislukt. Importeren mislukt.";
+App::$strings["view full size"] = "volledige grootte tonen";
+App::$strings["Administrator"] = "Beheerder";
+App::$strings["No Subject"] = "Geen onderwerp";
+App::$strings["Friendica"] = "Friendica";
+App::$strings["OStatus"] = "OStatus";
+App::$strings["GNU-Social"] = "GNU social";
+App::$strings["RSS/Atom"] = "RSS/Atom";
+App::$strings["Diaspora"] = "Diaspora";
+App::$strings["Facebook"] = "Facebook";
+App::$strings["Zot"] = "Zot";
+App::$strings["LinkedIn"] = "LinkedIn";
+App::$strings["XMPP/IM"] = "XMPP/IM";
+App::$strings["MySpace"] = "MySpace";
+App::$strings["Embedded content"] = "Ingesloten (embedded) inhoud";
+App::$strings["Embedding disabled"] = "Insluiten (embedding) uitgeschakeld";
+App::$strings["Can view my normal stream and posts"] = "Kan mijn normale kanaalstream en berichten bekijken";
+App::$strings["Can view my webpages"] = "Kan mijn pagina's bekijken";
+App::$strings["Can post on my channel page (\"wall\")"] = "Kan een bericht in mijn kanaal plaatsen";
+App::$strings["Can like/dislike stuff"] = "Kan dingen leuk of niet leuk vinden";
+App::$strings["Profiles and things other than posts/comments"] = "Profielen en dingen, buiten berichten en reacties";
+App::$strings["Can forward to all my channel contacts via post @mentions"] = "Kan naar al mijn kanaalconnecties berichten doorsturen met behulp van @vermeldingen+";
+App::$strings["Advanced - useful for creating group forum channels"] = "Geavanceerd - nuttig voor groepforums";
+App::$strings["Can chat with me (when available)"] = "Kan met mij chatten (wanneer beschikbaar)";
+App::$strings["Can write to my file storage and photos"] = "Kan foto's en andere bestanden aan mijn bestandsopslag toevoegen";
+App::$strings["Can edit my webpages"] = "Kan mijn pagina's bewerken";
+App::$strings["Somewhat advanced - very useful in open communities"] = "Enigszins geavanceerd (erg nuttig voor kanalen van forums/groepen)";
+App::$strings["Can administer my channel resources"] = "Kan mijn kanaal beheren";
+App::$strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Zeer geavanceerd. Laat dit met rust, behalve als je weet wat je doet.";
App::$strings["(Unknown)"] = "(Onbekend)";
App::$strings["Visible to anybody on the internet."] = "Voor iedereen op het internet zichtbaar.";
App::$strings["Visible to you only."] = "Alleen voor jou zichtbaar.";
@@ -1555,10 +1631,6 @@ App::$strings["Privacy group is empty."] = "Privacygroep is leeg";
App::$strings["Privacy group: %s"] = "Privacygroep: %s";
App::$strings["Connection not found."] = "Connectie niet gevonden.";
App::$strings["profile photo"] = "profielfoto";
-App::$strings["No recipient provided."] = "Geen ontvanger opgegeven.";
-App::$strings["[no subject]"] = "[geen onderwerp]";
-App::$strings["Unable to determine sender."] = "Afzender kan niet bepaald worden.";
-App::$strings["Stored post could not be verified."] = "Opgeslagen bericht kon niet worden geverifieerd.";
App::$strings["prev"] = "vorige";
App::$strings["first"] = "eerste";
App::$strings["last"] = "laatste";
@@ -1631,6 +1703,14 @@ App::$strings["Select an alternate language"] = "Kies een andere taal";
App::$strings["activity"] = "activiteit";
App::$strings["Design Tools"] = "Ontwerp-hulpmiddelen";
App::$strings["Pages"] = "Pagina's";
+App::$strings["Import website..."] = "Website importeren...";
+App::$strings["Select folder to import"] = "Kies een map om te importeren";
+App::$strings["Import from a zipped folder:"] = "Vanuit een zipbestand importeren:";
+App::$strings["Import from cloud files:"] = "Vanuit de cloud importeren:";
+App::$strings["/cloud/channel/path/to/folder"] = "/cloud/channel/maplocatie";
+App::$strings["Enter path to website files"] = "Voer de locatie in van de websitebestanden";
+App::$strings["Select folder"] = "Kies een map";
+App::$strings["Categories"] = "Categorieën";
App::$strings["System"] = "Systeem";
App::$strings["New App"] = "Nieuwe app";
App::$strings["Suggestions"] = "Voorgestelde kanalen";
@@ -1666,16 +1746,14 @@ App::$strings["Received Messages"] = "Ontvangen berichten";
App::$strings["Sent Messages"] = "Verzonden berichten";
App::$strings["No messages."] = "Geen berichten";
App::$strings["Delete conversation"] = "Verwijder conversatie";
-App::$strings["Events Menu"] = "Agenda-menu";
-App::$strings["Day View"] = "Dag tonen";
-App::$strings["Week View"] = "Week tonen";
-App::$strings["Month View"] = "Maand tonen";
App::$strings["Events Tools"] = "Agenda-hulpmiddelen";
App::$strings["Export Calendar"] = "Exporteren";
App::$strings["Import Calendar"] = "Importeren";
App::$strings["Chatrooms"] = "Chatkanalen";
App::$strings["Overview"] = "Overzicht";
App::$strings["Chat Members"] = "Chatleden";
+App::$strings["Wiki List"] = "Wiki's";
+App::$strings["Wiki Pages"] = "Wikipagina's";
App::$strings["Bookmarked Chatrooms"] = "Bladwijzers van chatkanalen";
App::$strings["Suggested Chatrooms"] = "Voorgestelde chatkanalen";
App::$strings["photo/image"] = "foto/afbeelding";
@@ -1695,91 +1773,162 @@ App::$strings["Inspect queue"] = "Inspecteer berichtenwachtrij";
App::$strings["DB updates"] = "Database-updates";
App::$strings["Admin"] = "Beheer";
App::$strings["Plugin Features"] = "Plugin-opties";
-App::$strings["Channel is blocked on this site."] = "Kanaal is op deze hub geblokkeerd.";
-App::$strings["Channel location missing."] = "Ontbrekende kanaallocatie.";
-App::$strings["Response from remote channel was incomplete."] = "Antwoord van het kanaal op afstand was niet volledig.";
-App::$strings["Channel was deleted and no longer exists."] = "Kanaal is verwijderd en bestaat niet meer.";
-App::$strings["Protocol disabled."] = "Protocol uitgeschakeld.";
-App::$strings["Channel discovery failed."] = "Kanaal ontdekken mislukt.";
-App::$strings["Cannot connect to yourself."] = "Kan niet met jezelf verbinden";
-App::$strings["%1\$s's bookmarks"] = "Bladwijzers van %1\$s";
-App::$strings["Public Timeline"] = "Openbare tijdlijn";
-App::$strings["Image/photo"] = "Afbeelding/foto";
-App::$strings["Encrypted content"] = "Versleutelde inhoud";
-App::$strings["Install %s element: "] = "Installeer %s-element: ";
-App::$strings["This post contains an installable %s element, however you lack permissions to install it on this site."] = "Dit bericht heeft een te installeren %s-element, maar je hebt geen permissies om het op deze hub te installeren.";
-App::$strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s schreef het volgende %2\$s %3\$s";
-App::$strings["Click to open/close"] = "Klik om te openen of te sluiten";
-App::$strings["spoiler"] = "spoiler";
-App::$strings["Different viewers will see this text differently"] = "Deze tekst wordt per persoon anders weergeven.";
-App::$strings["$1 wrote:"] = "$1 schreef:";
-App::$strings["Directory Options"] = "Opties kanalengids";
-App::$strings["Safe Mode"] = "Veilig zoeken";
-App::$strings["Public Forums Only"] = "Alleen openbare forums";
-App::$strings["This Website Only"] = "Alleen deze hub";
-App::$strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "De beveiligings-token van het tekstvak was ongeldig. Dit is mogelijk het gevolg van dat er te lang (meer dan 3 uur) gewacht is om de tekst op te slaan. ";
-App::$strings["Logout"] = "Uitloggen";
-App::$strings["End this session"] = "Beëindig deze sessie";
-App::$strings["Home"] = "Home";
-App::$strings["Your posts and conversations"] = "Jouw kanaal";
-App::$strings["Your profile page"] = "Jouw profielpagina";
-App::$strings["Manage/Edit profiles"] = "Beheer/wijzig profielen";
-App::$strings["Edit Profile"] = "Profiel bewerken";
-App::$strings["Edit your profile"] = "Jouw profiel bewerken";
-App::$strings["Your photos"] = "Jouw foto's";
-App::$strings["Your files"] = "Jouw bestanden";
-App::$strings["Your chatrooms"] = "Jouw chatkanalen";
-App::$strings["Bookmarks"] = "Bladwijzers";
-App::$strings["Your bookmarks"] = "Jouw bladwijzers";
-App::$strings["Your webpages"] = "Jouw webpagina's";
-App::$strings["Sign in"] = "Inloggen";
-App::$strings["%s - click to logout"] = "%s - klik om uit te loggen";
-App::$strings["Remote authentication"] = "Authenticatie op afstand";
-App::$strings["Click to authenticate to your home hub"] = "Authenticeer jezelf via (bijvoorbeeld) jouw hub";
-App::$strings["Home Page"] = "Homepage";
-App::$strings["Create an account"] = "Maak een account aan";
-App::$strings["Help and documentation"] = "Hulp en documentatie";
-App::$strings["Applications, utilities, links, games"] = "Apps";
-App::$strings["Search site @name, #tag, ?docs, content"] = "Zoek een @kanaal, doorzoek inhoud hub met tekst en #tags, of doorzoek ?documentatie ";
-App::$strings["Channel Directory"] = "Kanalengids";
-App::$strings["Your grid"] = "Jouw grid";
-App::$strings["Mark all grid notifications seen"] = "Markeer alle gridnotificaties als bekeken";
-App::$strings["Channel home"] = "Jouw kanaal";
-App::$strings["Mark all channel notifications seen"] = "Alle kanaalnotificaties als gelezen markeren";
-App::$strings["Notices"] = "Notificaties";
-App::$strings["Notifications"] = "Notificaties";
-App::$strings["See all notifications"] = "Alle notificaties weergeven";
-App::$strings["Private mail"] = "Privéberichten";
-App::$strings["See all private messages"] = "Alle privéberichten weergeven";
-App::$strings["Mark all private messages seen"] = "Markeer alle privéberichten als bekeken";
-App::$strings["Event Calendar"] = "Agenda";
-App::$strings["See all events"] = "Alle gebeurtenissen weergeven";
-App::$strings["Mark all events seen"] = "Markeer alle gebeurtenissen als bekeken";
-App::$strings["Manage Your Channels"] = "Beheer je kanalen";
-App::$strings["Account/Channel Settings"] = "Account-/kanaal-instellingen";
-App::$strings["Site Setup and Configuration"] = "Hub instellen en beheren";
-App::$strings["Loading..."] = "Aan het laden...";
-App::$strings["@name, #tag, ?doc, content"] = "@kanaal, #tag, inhoud, ?hulp";
-App::$strings["Please wait..."] = "Wachten aub...";
App::$strings["New window"] = "Nieuw venster";
App::$strings["Open the selected location in a different window or browser tab"] = "Open de geselecteerde locatie in een ander venster of tab";
App::$strings["User '%s' deleted"] = "Account '%s' verwijderd";
-App::$strings["%d invitation available"] = array(
- 0 => "%d uitnodiging beschikbaar",
- 1 => "%d uitnodigingen beschikbaar",
+App::$strings["Who can see this?"] = "Wie kan dit zien?";
+App::$strings["Custom selection"] = "Handmatige selectie";
+App::$strings["Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit the scope of \"Show\"."] = "Kies \"Tonen\" om weergave toe te staan. Met \"Niet tonen\" kan je uitzonderingen maken op \"Tonen\".";
+App::$strings["Show"] = "Tonen";
+App::$strings["Don't show"] = "Niet tonen";
+App::$strings["Post permissions %s cannot be changed %s after a post is shared.</br />These permissions set who is allowed to view the post."] = "Permissies van berichten %s zijn niet meer te veranderen %s nadat een bericht is gedeeld.</br />Met deze permissies bepaal je wie het bericht kan zien.";
+App::$strings["Public Timeline"] = "Openbare tijdlijn";
+App::$strings["Unable to obtain identity information from database"] = "Niet in staat om identiteitsinformatie uit de database te verkrijgen";
+App::$strings["Empty name"] = "Ontbrekende naam";
+App::$strings["Name too long"] = "Naam te lang";
+App::$strings["No account identifier"] = "Geen account-identificator";
+App::$strings["Nickname is required."] = "Bijnaam is verplicht";
+App::$strings["Reserved nickname. Please choose another."] = "Deze naam is gereserveerd. Kies een andere.";
+App::$strings["Nickname has unsupported characters or is already being used on this site."] = "Deze naam heeft niet ondersteunde karakters of is al op deze hub in gebruik.";
+App::$strings["Unable to retrieve created identity"] = "Niet in staat om aangemaakte identiteit te vinden";
+App::$strings["Default Profile"] = "Standaardprofiel";
+App::$strings["Requested channel is not available."] = "Opgevraagd kanaal is niet beschikbaar.";
+App::$strings["Create New Profile"] = "Nieuw profiel aanmaken";
+App::$strings["Edit Profile"] = "Profiel bewerken";
+App::$strings["Visible to everybody"] = "Voor iedereen zichtbaar";
+App::$strings["Gender:"] = "Geslacht:";
+App::$strings["Status:"] = "Status:";
+App::$strings["Homepage:"] = "Homepagina:";
+App::$strings["Online Now"] = "Nu online";
+App::$strings["Like this channel"] = "Vind dit kanaal leuk";
+App::$strings["j F, Y"] = "F j Y";
+App::$strings["j F"] = "F j";
+App::$strings["Birthday:"] = "Geboortedatum:";
+App::$strings["for %1\$d %2\$s"] = "voor %1\$d %2\$s";
+App::$strings["Sexual Preference:"] = "Seksuele voorkeur:";
+App::$strings["Tags:"] = "Tags:";
+App::$strings["Political Views:"] = "Politieke overtuigingen:";
+App::$strings["Religion:"] = "Religie:";
+App::$strings["Hobbies/Interests:"] = "Hobby's/interesses:";
+App::$strings["Likes:"] = "Houdt van:";
+App::$strings["Dislikes:"] = "Houdt niet van:";
+App::$strings["Contact information and Social Networks:"] = "Contactinformatie en sociale netwerken:";
+App::$strings["My other channels:"] = "Mijn andere kanalen";
+App::$strings["Musical interests:"] = "Muzikale interesses:";
+App::$strings["Books, literature:"] = "Boeken, literatuur:";
+App::$strings["Television:"] = "Televisie:";
+App::$strings["Film/dance/culture/entertainment:"] = "Films/dansen/cultuur/vermaak:";
+App::$strings["Love/Romance:"] = "Liefde/romantiek:";
+App::$strings["Work/employment:"] = "Werk/beroep:";
+App::$strings["School/education:"] = "School/opleiding:";
+App::$strings["Like this thing"] = "Vind dit ding leuk";
+App::$strings["Birthday"] = "Verjaardag of geboortedatum";
+App::$strings["Age: "] = "Leeftijd:";
+App::$strings["YYYY-MM-DD or MM-DD"] = "JJJJ-MM-DD of MM-DD";
+App::$strings["never"] = "nooit";
+App::$strings["less than a second ago"] = "minder dan een seconde geleden";
+App::$strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "%1\$d %2\$s geleden";
+App::$strings["__ctx:relative_date__ year"] = array(
+ 0 => "jaar",
+ 1 => "jaren",
);
-App::$strings["Find Channels"] = "Kanalen vinden";
-App::$strings["Enter name or interest"] = "Vul naam of interesse in";
-App::$strings["Connect/Follow"] = "Verbinden/volgen";
-App::$strings["Examples: Robert Morgenstein, Fishing"] = "Voorbeeld: Robert Morgenstein, vissen";
-App::$strings["Random Profile"] = "Willekeurig profiel";
-App::$strings["Invite Friends"] = "Vrienden uitnodigen";
-App::$strings["Advanced example: name=fred and country=iceland"] = "Geavanceerd voorbeeld (Engels): name=jan en country=nederland";
-App::$strings["%d connection in common"] = array(
- 0 => "%d gemeenschappelijke connectie",
- 1 => "%d gemeenschappelijke connecties",
+App::$strings["__ctx:relative_date__ month"] = array(
+ 0 => "maand",
+ 1 => "maanden",
);
-App::$strings["show more"] = "meer connecties weergeven";
+App::$strings["__ctx:relative_date__ week"] = array(
+ 0 => "week",
+ 1 => "weken",
+);
+App::$strings["__ctx:relative_date__ day"] = array(
+ 0 => "dag",
+ 1 => "dagen",
+);
+App::$strings["__ctx:relative_date__ hour"] = array(
+ 0 => "uur",
+ 1 => "uren",
+);
+App::$strings["__ctx:relative_date__ minute"] = array(
+ 0 => "minuut",
+ 1 => "minuten",
+);
+App::$strings["__ctx:relative_date__ second"] = array(
+ 0 => "seconde",
+ 1 => "seconden",
+);
+App::$strings["%1\$s's birthday"] = "Verjaardag van %1\$s";
+App::$strings["Happy Birthday %1\$s"] = "Gefeliciteerd met je verjaardag %1\$s";
+App::$strings["Frequently"] = "Regelmatig";
+App::$strings["Hourly"] = "Elk uur";
+App::$strings["Twice daily"] = "Twee keer per dag";
+App::$strings["Daily"] = "Dagelijks";
+App::$strings["Weekly"] = "Wekelijks";
+App::$strings["Monthly"] = "Maandelijks";
+App::$strings["Male"] = "Man";
+App::$strings["Female"] = "Vrouw";
+App::$strings["Currently Male"] = "Momenteel man";
+App::$strings["Currently Female"] = "Momenteel vrouw";
+App::$strings["Mostly Male"] = "Voornamelijk man";
+App::$strings["Mostly Female"] = "Voornamelijk vrouw";
+App::$strings["Transgender"] = "Transgender";
+App::$strings["Intersex"] = "Interseksueel";
+App::$strings["Transsexual"] = "Transseksueel";
+App::$strings["Hermaphrodite"] = "Hermafrodiet";
+App::$strings["Neuter"] = "Genderneutraal";
+App::$strings["Non-specific"] = "Niet gespecificeerd";
+App::$strings["Undecided"] = "Nog niet beslist";
+App::$strings["Males"] = "Mannen";
+App::$strings["Females"] = "Vrouwen";
+App::$strings["Gay"] = "Homoseksueel";
+App::$strings["Lesbian"] = "Lesbisch";
+App::$strings["No Preference"] = "Geen voorkeur";
+App::$strings["Bisexual"] = "Biseksueel";
+App::$strings["Autosexual"] = "Autoseksueel";
+App::$strings["Abstinent"] = "Seksuele onthouding";
+App::$strings["Virgin"] = "Maagd";
+App::$strings["Deviant"] = "Afwijkend";
+App::$strings["Fetish"] = "Fetisj";
+App::$strings["Oodles"] = "Veel";
+App::$strings["Nonsexual"] = "Aseksueel";
+App::$strings["Single"] = "Alleen";
+App::$strings["Lonely"] = "Eenzaam";
+App::$strings["Available"] = "Beschikbaar";
+App::$strings["Unavailable"] = "Niet beschikbaar";
+App::$strings["Has crush"] = "Heeft een oogje op iemand";
+App::$strings["Infatuated"] = "Smoorverliefd";
+App::$strings["Dating"] = "Aan het daten";
+App::$strings["Unfaithful"] = "Ontrouw";
+App::$strings["Sex Addict"] = "Seksverslaafd";
+App::$strings["Friends/Benefits"] = "Vriendschap plus";
+App::$strings["Casual"] = "Ongebonden/vluchtig";
+App::$strings["Engaged"] = "Verloofd";
+App::$strings["Married"] = "Getrouwd";
+App::$strings["Imaginarily married"] = "Denkbeeldig getrouwd";
+App::$strings["Partners"] = "Partners";
+App::$strings["Cohabiting"] = "Samenwonend";
+App::$strings["Common law"] = "Common-law-huwelijk";
+App::$strings["Happy"] = "Gelukkig";
+App::$strings["Not looking"] = "Niet op zoek";
+App::$strings["Swinger"] = "Swinger";
+App::$strings["Betrayed"] = "Verraden";
+App::$strings["Separated"] = "Uit elkaar";
+App::$strings["Unstable"] = "Onstabiel";
+App::$strings["Divorced"] = "Gescheiden";
+App::$strings["Imaginarily divorced"] = "Denkbeeldig gescheiden";
+App::$strings["Widowed"] = "Weduwnaar/weduwe";
+App::$strings["Uncertain"] = "Onzeker";
+App::$strings["It's complicated"] = "Het is ingewikkeld";
+App::$strings["Don't care"] = "Maakt mij niks uit";
+App::$strings["Ask me"] = "Vraag het me";
+App::$strings["Image exceeds website size limit of %lu bytes"] = "Afbeelding is groter dan op deze hub toegestane limiet van %lu bytes";
+App::$strings["Image file is empty."] = "Afbeeldingsbestand is leeg";
+App::$strings["Photo storage failed."] = "Foto kan niet worden opgeslagen";
+App::$strings["a new photo"] = "een nieuwe foto";
+App::$strings["__ctx:photo_upload__ %1\$s posted %2\$s to %3\$s"] = "%1\$s plaatste %2\$s op %3\$s";
+App::$strings["Photo Albums"] = "Fotoalbums";
+App::$strings["Upload New Photos"] = "Nieuwe foto's uploaden";
+App::$strings["guest:"] = "gast:";
+App::$strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "De beveiligings-token van het tekstvak was ongeldig. Dit is mogelijk het gevolg van dat er te lang (meer dan 3 uur) gewacht is om de tekst op te slaan. ";
App::$strings["%1\$s is now connected with %2\$s"] = "%1\$s is nu met %2\$s verbonden";
App::$strings["%1\$s poked %2\$s"] = "%1\$s heeft %2\$s aangestoten";
App::$strings["View %s's profile @ %s"] = "Bekijk het profiel van %s @ %s";
@@ -1787,6 +1936,7 @@ App::$strings["Categories:"] = "Categorieën:";
App::$strings["Filed under:"] = "Bewaard onder:";
App::$strings["View in context"] = "In context bekijken";
App::$strings["remove"] = "verwijderen";
+App::$strings["Loading..."] = "Aan het laden...";
App::$strings["Delete Selected Items"] = "Verwijder de geselecteerde items";
App::$strings["View Source"] = "Bron weergeven";
App::$strings["Follow Thread"] = "Conversatie volgen";
@@ -1815,12 +1965,16 @@ App::$strings["Set your location"] = "Locatie instellen";
App::$strings["Clear browser location"] = "Locatie van webbrowser wissen";
App::$strings["Tag term:"] = "Tag:";
App::$strings["Where are you right now?"] = "Waar bevind je je op dit moment?";
+App::$strings["Comments enabled"] = "Reacties ingeschakeld";
+App::$strings["Comments disabled"] = "Reacties uitgeschakeld";
App::$strings["Page link name"] = "Linknaam pagina";
App::$strings["Post as"] = "Bericht plaatsen als";
App::$strings["Toggle voting"] = "Peiling in- of uitschakelen";
+App::$strings["Disable comments"] = "Reacties uitschakelen";
+App::$strings["Toggle comments"] = "Reacties in- of uitschakelen";
App::$strings["Categories (optional, comma-separated list)"] = "Categorieën (optioneel, door komma's gescheiden lijst)";
+App::$strings["Other networks and post services"] = "Andere netwerken en diensten";
App::$strings["Set publish date"] = "Publicatiedatum instellen";
-App::$strings["OK"] = "OK";
App::$strings["Discover"] = "Ontdekken";
App::$strings["Imported public streams"] = "Openbare streams importeren";
App::$strings["Commented Order"] = "Nieuwe reacties bovenaan";
@@ -1836,8 +1990,8 @@ App::$strings["Posts flagged as SPAM"] = "Berichten gemarkeerd als SPAM";
App::$strings["Status Messages and Posts"] = "Berichten in dit kanaal";
App::$strings["About"] = "Over";
App::$strings["Profile Details"] = "Profiel";
-App::$strings["Photo Albums"] = "Fotoalbums";
App::$strings["Files and Storage"] = "Bestanden en opslagruimte";
+App::$strings["Bookmarks"] = "Bladwijzers";
App::$strings["Saved Bookmarks"] = "Opgeslagen bladwijzers";
App::$strings["Manage Webpages"] = "Webpagina's beheren";
App::$strings["__ctx:noun__ Attending"] = array(
@@ -1864,99 +2018,93 @@ App::$strings["__ctx:noun__ Abstain"] = array(
0 => "onthouding",
1 => "onthoudingen",
);
-App::$strings["Frequently"] = "Regelmatig";
-App::$strings["Hourly"] = "Elk uur";
-App::$strings["Twice daily"] = "Twee keer per dag";
-App::$strings["Daily"] = "Dagelijks";
-App::$strings["Weekly"] = "Wekelijks";
-App::$strings["Monthly"] = "Maandelijks";
-App::$strings["Currently Male"] = "Momenteel man";
-App::$strings["Currently Female"] = "Momenteel vrouw";
-App::$strings["Mostly Male"] = "Voornamelijk man";
-App::$strings["Mostly Female"] = "Voornamelijk vrouw";
-App::$strings["Transgender"] = "Transgender";
-App::$strings["Intersex"] = "Interseksueel";
-App::$strings["Transsexual"] = "Transseksueel";
-App::$strings["Hermaphrodite"] = "Hermafrodiet";
-App::$strings["Neuter"] = "Genderneutraal";
-App::$strings["Non-specific"] = "Niet gespecificeerd";
-App::$strings["Other"] = "Anders";
-App::$strings["Undecided"] = "Nog niet beslist";
-App::$strings["Males"] = "Mannen";
-App::$strings["Females"] = "Vrouwen";
-App::$strings["Gay"] = "Homoseksueel";
-App::$strings["Lesbian"] = "Lesbisch";
-App::$strings["No Preference"] = "Geen voorkeur";
-App::$strings["Bisexual"] = "Biseksueel";
-App::$strings["Autosexual"] = "Autoseksueel";
-App::$strings["Abstinent"] = "Seksuele onthouding";
-App::$strings["Virgin"] = "Maagd";
-App::$strings["Deviant"] = "Afwijkend";
-App::$strings["Fetish"] = "Fetisj";
-App::$strings["Oodles"] = "Veel";
-App::$strings["Nonsexual"] = "Aseksueel";
-App::$strings["Single"] = "Alleen";
-App::$strings["Lonely"] = "Eenzaam";
-App::$strings["Available"] = "Beschikbaar";
-App::$strings["Unavailable"] = "Niet beschikbaar";
-App::$strings["Has crush"] = "Heeft een oogje op iemand";
-App::$strings["Infatuated"] = "Smoorverliefd";
-App::$strings["Dating"] = "Aan het daten";
-App::$strings["Unfaithful"] = "Ontrouw";
-App::$strings["Sex Addict"] = "Seksverslaafd";
-App::$strings["Friends/Benefits"] = "Vriendschap plus";
-App::$strings["Casual"] = "Ongebonden/vluchtig";
-App::$strings["Engaged"] = "Verloofd";
-App::$strings["Married"] = "Getrouwd";
-App::$strings["Imaginarily married"] = "Denkbeeldig getrouwd";
-App::$strings["Partners"] = "Partners";
-App::$strings["Cohabiting"] = "Samenwonend";
-App::$strings["Common law"] = "Common-law-huwelijk";
-App::$strings["Happy"] = "Gelukkig";
-App::$strings["Not looking"] = "Niet op zoek";
-App::$strings["Swinger"] = "Swinger";
-App::$strings["Betrayed"] = "Verraden";
-App::$strings["Separated"] = "Uit elkaar";
-App::$strings["Unstable"] = "Onstabiel";
-App::$strings["Divorced"] = "Gescheiden";
-App::$strings["Imaginarily divorced"] = "Denkbeeldig gescheiden";
-App::$strings["Widowed"] = "Weduwnaar/weduwe";
-App::$strings["Uncertain"] = "Onzeker";
-App::$strings["It's complicated"] = "Het is ingewikkeld";
-App::$strings["Don't care"] = "Maakt mij niks uit";
-App::$strings["Ask me"] = "Vraag het me";
-App::$strings["Visible to your default audience"] = "Voor iedereen zichtbaar, mits niet anders ingesteld";
-App::$strings["Only me"] = "Alleen ik";
-App::$strings["Public"] = "Openbaar";
-App::$strings["Anybody in the \$Projectname network"] = "Iedereen in het \$Projectname-netwerk";
-App::$strings["Any account on %s"] = "Iedereen op %s";
-App::$strings["Any of my connections"] = "Al mijn geaccepteerde connecties";
-App::$strings["Only connections I specifically allow"] = "Alleen connecties die uitdrukkelijk door jou zijn toegestaan";
-App::$strings["Anybody authenticated (could include visitors from other networks)"] = "Geauthenticeerde leden (kan bezoekers van andere netwerken bevatten)";
-App::$strings["Any connections including those who haven't yet been approved"] = "Al mijn geaccepteerde en nog niet geaccepteerde connecties";
-App::$strings["This is your default setting for the audience of your normal stream, and posts."] = "Dit is de standaard privacy-instelling voor wie jouw berichten kan bekijken";
-App::$strings["This is your default setting for who can view your default channel profile"] = "Dit is de standaard privacy-instelling voor wie jouw standaardprofiel kan bekijken";
-App::$strings["This is your default setting for who can view your connections"] = "Dit is de standaard privacy-instelling voor wie een lijst met jouw connecties kan bekijken";
-App::$strings["This is your default setting for who can view your file storage and photos"] = "Dit is de standaard privacy-instelling voor wie jouw bestanden en foto's kan bekijken";
-App::$strings["This is your default setting for the audience of your webpages"] = "Dit is de standaard privacy-instelling voor wie jouw webpagina's kan bekijken";
-App::$strings["Not a valid email address"] = "Geen geldig e-mailadres";
-App::$strings["Your email domain is not among those allowed on this site"] = "Jouw e-maildomein is op deze hub niet toegestaan";
-App::$strings["Your email address is already registered at this site."] = "Jouw e-mailadres is al op deze hub geregistreerd.";
-App::$strings["An invitation is required."] = "Een uitnodiging is vereist";
-App::$strings["Invitation could not be verified."] = "Uitnodiging kon niet geverifieerd worden";
-App::$strings["Please enter the required information."] = "Vul de vereiste informatie in.";
-App::$strings["Failed to store account information."] = "Account-informatie kon niet opgeslagen worden.";
-App::$strings["Registration confirmation for %s"] = "Registratiebevestiging voor %s";
-App::$strings["Registration request at %s"] = "Registratiebevestiging voor %s";
-App::$strings["Administrator"] = "Beheerder";
-App::$strings["your registration password"] = "jouw registratiewachtwoord";
-App::$strings["Registration details for %s"] = "Registratiegegevens voor %s";
-App::$strings["Account approved."] = "Account goedgekeurd";
-App::$strings["Registration revoked for %s"] = "Registratie ingetrokken voor %s";
-App::$strings["Account verified. Please login."] = "Account is geverifieerd. Je kan inloggen.";
-App::$strings["Click here to upgrade."] = "Klik hier om te upgraden.";
-App::$strings["This action exceeds the limits set by your subscription plan."] = "Deze handeling overschrijdt de beperkingen die voor jouw abonnement gelden.";
-App::$strings["This action is not available under your subscription plan."] = "Deze handeling is niet mogelijk met jouw abonnement.";
+App::$strings["%1\$s's bookmarks"] = "Bladwijzers van %1\$s";
+App::$strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Een verwijderde collectie met deze naam is gereactiveerd. Bestaande itemrechten <strong>kunnen</strong> van toepassing zijn op deze collectie en toekomstige leden. Wanneer je dit niet zo bedoeld hebt, moet je een nieuwe collectie met een andere naam aanmaken.";
+App::$strings["Add new connections to this privacy group"] = "Voeg nieuwe connecties aan deze privacygroep toe";
+App::$strings["edit"] = "bewerken";
+App::$strings["Privacy Groups"] = "Privacygroepen";
+App::$strings["Edit group"] = "Privacygroep bewerken";
+App::$strings["Add privacy group"] = "Privacygroep toevoegen";
+App::$strings["Channels not in any privacy group"] = "Kanalen die zich in geen enkele privacygroep bevinden";
+App::$strings["New Page"] = "Nieuwe pagina";
+App::$strings["Title"] = "Titel";
+App::$strings["Different viewers will see this text differently"] = "Deze tekst wordt per persoon anders weergeven.";
+App::$strings["l F d, Y \\@ g:i A"] = "l d F Y \\@ G:i";
+App::$strings["Starts:"] = "Start:";
+App::$strings["Finishes:"] = "Einde:";
+App::$strings["This event has been added to your calendar."] = "Dit evenement is aan jouw agenda toegevoegd.";
+App::$strings["Not specified"] = "Niet aangegeven";
+App::$strings["Needs Action"] = "Actie vereist";
+App::$strings["Completed"] = "Voltooid";
+App::$strings["In Process"] = "In behandeling";
+App::$strings["Cancelled"] = "Geannuleerd";
+App::$strings["Attachments:"] = "Bijlagen:";
+App::$strings["\$Projectname event notification:"] = "Notificatie \$Projectname-gebeurtenis:";
+App::$strings["Delete this item?"] = "Dit item verwijderen?";
+App::$strings["%s show less"] = "%s minder reacties weergeven";
+App::$strings["%s expand"] = "%s uitklappen";
+App::$strings["%s collapse"] = "%s inklappen";
+App::$strings["Password too short"] = "Wachtwoord te kort";
+App::$strings["Passwords do not match"] = "Wachtwoorden komen niet overeen";
+App::$strings["everybody"] = "iedereen";
+App::$strings["Secret Passphrase"] = "Geheim wachtwoord";
+App::$strings["Passphrase hint"] = "Wachtwoordhint";
+App::$strings["Notice: Permissions have changed but have not yet been submitted."] = "Mededeling: de permissies zijn veranderd, maar zijn nog niet opgeslagen.";
+App::$strings["close all"] = "Alles sluiten";
+App::$strings["Nothing new here"] = "Niets nieuw hier";
+App::$strings["Rate This Channel (this is public)"] = "Beoordeel dit kanaal (dit is openbaar)";
+App::$strings["Describe (optional)"] = "Omschrijving (optioneel)";
+App::$strings["Please enter a link URL"] = "Vul een URL in:";
+App::$strings["Unsaved changes. Are you sure you wish to leave this page?"] = "Niet opgeslagen wijzigingen. Ben je er zeker van dat je deze pagina wil verlaten?";
+App::$strings["timeago.prefixAgo"] = "timeago.prefixAgo";
+App::$strings["timeago.prefixFromNow"] = "timeago.prefixFromNow";
+App::$strings["ago"] = "geleden";
+App::$strings["from now"] = "vanaf nu";
+App::$strings["less than a minute"] = "minder dan een minuut";
+App::$strings["about a minute"] = "ongeveer een minuut";
+App::$strings["%d minutes"] = "%d minuten";
+App::$strings["about an hour"] = "ongeveer een uur";
+App::$strings["about %d hours"] = "ongeveer %d uren";
+App::$strings["a day"] = "een dag";
+App::$strings["%d days"] = "%d dagen";
+App::$strings["about a month"] = "ongeveer een maand";
+App::$strings["%d months"] = "%d maanden";
+App::$strings["about a year"] = "ongeveer een jaar";
+App::$strings["%d years"] = "%d jaren";
+App::$strings[" "] = " ";
+App::$strings["timeago.numbers"] = "timeago.numbers";
+App::$strings["__ctx:long__ May"] = "mei";
+App::$strings["Jan"] = "jan";
+App::$strings["Feb"] = "feb";
+App::$strings["Mar"] = "mrt";
+App::$strings["Apr"] = "apr";
+App::$strings["__ctx:short__ May"] = "mei";
+App::$strings["Jun"] = "jun";
+App::$strings["Jul"] = "jul";
+App::$strings["Aug"] = "aug";
+App::$strings["Sep"] = "sep";
+App::$strings["Oct"] = "okt";
+App::$strings["Nov"] = "nov";
+App::$strings["Dec"] = "dec";
+App::$strings["Sun"] = "zo";
+App::$strings["Mon"] = "ma";
+App::$strings["Tue"] = "di";
+App::$strings["Wed"] = "wo";
+App::$strings["Thu"] = "do";
+App::$strings["Fri"] = "vr";
+App::$strings["Sat"] = "za";
+App::$strings["__ctx:calendar__ today"] = "vandaag";
+App::$strings["__ctx:calendar__ month"] = "maand";
+App::$strings["__ctx:calendar__ week"] = "week";
+App::$strings["__ctx:calendar__ day"] = "dag";
+App::$strings["__ctx:calendar__ All day"] = "hele dag";
+App::$strings["Channel is blocked on this site."] = "Kanaal is op deze hub geblokkeerd.";
+App::$strings["Channel location missing."] = "Ontbrekende kanaallocatie.";
+App::$strings["Response from remote channel was incomplete."] = "Antwoord van het kanaal op afstand was niet volledig.";
+App::$strings["Channel was deleted and no longer exists."] = "Kanaal is verwijderd en bestaat niet meer.";
+App::$strings["Protocol disabled."] = "Protocol uitgeschakeld.";
+App::$strings["Channel discovery failed."] = "Kanaal ontdekken mislukt.";
+App::$strings["Cannot connect to yourself."] = "Kan niet met jezelf verbinden";
App::$strings["Item was not found."] = "Item niet gevonden";
App::$strings["No source file."] = "Geen bronbestand.";
App::$strings["Cannot locate file to replace"] = "Kan het te vervangen bestand niet vinden";
@@ -1965,51 +2113,25 @@ App::$strings["File exceeds size limit of %d"] = "Bestand is groter dan de toege
App::$strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Je hebt jouw limiet van %1$.0f MB opslagruimte voor bijlagen bereikt.";
App::$strings["File upload failed. Possible system limit or action terminated."] = "Uploaden van bestand mislukt. Mogelijk systeemlimiet bereikt of actie afgebroken.";
App::$strings["Stored file could not be verified. Upload failed."] = "Opgeslagen bestand kon niet worden geverifieerd. Uploaden mislukt.";
-App::$strings["Path not available."] = "Pad niet beschikbaar.";
-App::$strings["Empty pathname"] = "Padnaam leeg";
-App::$strings["duplicate filename or path"] = "dubbele bestandsnaam of pad";
-App::$strings["Path not found."] = "Pad niet gevonden";
+App::$strings["Path not available."] = "Locatie niet beschikbaar.";
+App::$strings["Empty pathname"] = "Ontbrekende locatienaam";
+App::$strings["duplicate filename or path"] = "dubbele bestandsnaam of locatie";
+App::$strings["Path not found."] = "Locatie niet gevonden";
App::$strings["mkdir failed."] = "directory aanmaken (mkdir) mislukt.";
App::$strings["database storage failed."] = "opslag in database mislukt.";
-App::$strings["Empty path"] = "Ontbrekend bestandspad";
-App::$strings["Unable to obtain identity information from database"] = "Niet in staat om identiteitsinformatie uit de database te verkrijgen";
-App::$strings["Empty name"] = "Ontbrekende naam";
-App::$strings["Name too long"] = "Naam te lang";
-App::$strings["No account identifier"] = "Geen account-identificator";
-App::$strings["Nickname is required."] = "Bijnaam is verplicht";
-App::$strings["Reserved nickname. Please choose another."] = "Deze naam is gereserveerd. Kies een andere.";
-App::$strings["Nickname has unsupported characters or is already being used on this site."] = "Deze naam heeft niet ondersteunde karakters of is al op deze hub in gebruik.";
-App::$strings["Unable to retrieve created identity"] = "Niet in staat om aangemaakte identiteit te vinden";
-App::$strings["Default Profile"] = "Standaardprofiel";
-App::$strings["Requested channel is not available."] = "Opgevraagd kanaal is niet beschikbaar.";
-App::$strings["Create New Profile"] = "Nieuw profiel aanmaken";
-App::$strings["Visible to everybody"] = "Voor iedereen zichtbaar";
-App::$strings["Gender:"] = "Geslacht:";
-App::$strings["Status:"] = "Status:";
-App::$strings["Homepage:"] = "Homepagina:";
-App::$strings["Online Now"] = "Nu online";
-App::$strings["Like this channel"] = "Vind dit kanaal leuk";
-App::$strings["j F, Y"] = "F j Y";
-App::$strings["j F"] = "F j";
-App::$strings["Birthday:"] = "Geboortedatum:";
-App::$strings["for %1\$d %2\$s"] = "voor %1\$d %2\$s";
-App::$strings["Sexual Preference:"] = "Seksuele voorkeur:";
-App::$strings["Tags:"] = "Tags:";
-App::$strings["Political Views:"] = "Politieke overtuigingen:";
-App::$strings["Religion:"] = "Religie:";
-App::$strings["Hobbies/Interests:"] = "Hobby's/interesses:";
-App::$strings["Likes:"] = "Houdt van:";
-App::$strings["Dislikes:"] = "Houdt niet van:";
-App::$strings["Contact information and Social Networks:"] = "Contactinformatie en sociale netwerken:";
-App::$strings["My other channels:"] = "Mijn andere kanalen";
-App::$strings["Musical interests:"] = "Muzikale interesses:";
-App::$strings["Books, literature:"] = "Boeken, literatuur:";
-App::$strings["Television:"] = "Televisie:";
-App::$strings["Film/dance/culture/entertainment:"] = "Films/dansen/cultuur/vermaak:";
-App::$strings["Love/Romance:"] = "Liefde/romantiek:";
-App::$strings["Work/employment:"] = "Werk/beroep:";
-App::$strings["School/education:"] = "School/opleiding:";
-App::$strings["Like this thing"] = "Vind dit ding leuk";
+App::$strings["Empty path"] = "Ontbrekende locatie";
+App::$strings["Logged out."] = "Uitgelogd.";
+App::$strings["Failed authentication"] = "Mislukte authenticatie";
+App::$strings["Login failed."] = "Inloggen mislukt.";
+App::$strings[" and "] = " en ";
+App::$strings["public profile"] = "openbaar profiel";
+App::$strings["%1\$s changed %2\$s to &ldquo;%3\$s&rdquo;"] = "%1\$s veranderde %2\$s naar &ldquo;%3\$s&rdquo;";
+App::$strings["Visit %1\$s's %2\$s"] = "Bezoek het %2\$s van %1\$s";
+App::$strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s heeft een aangepaste %2\$s, %3\$s veranderd.";
+App::$strings["Invalid data packet"] = "Datapakket ongeldig";
+App::$strings["Unable to verify channel signature"] = "Kanaalkenmerk kon niet worden geverifieerd. ";
+App::$strings["Unable to verify site signature for %s"] = "Hubkenmerk voor %s kon niet worden geverifieerd";
+App::$strings["invalid target signature"] = "ongeldig doelkenmerk";
App::$strings["General Features"] = "Algemene functies";
App::$strings["Content Expiration"] = "Inhoud laten verlopen";
App::$strings["Remove posts/comments and/or private messages at a future time"] = "Berichten, reacties en/of privéberichten na een bepaalde tijd verwijderen";
@@ -2021,8 +2143,7 @@ App::$strings["Profile Import/Export"] = "Profiel importen/exporteren";
App::$strings["Save and load profile details across sites/channels"] = "Profielgegevens opslaan en in andere hubs/kanalen gebruiken.";
App::$strings["Web Pages"] = "Webpagina's";
App::$strings["Provide managed web pages on your channel"] = "Sta beheerde webpagina's op jouw kanaal toe";
-App::$strings["Hide Rating"] = "Beoordelingen verbergen";
-App::$strings["Hide the rating buttons on your channel and profile pages. Note: People can still rate you somewhere else."] = "Verbergt de beoordelingsknoppen op jouw kanaal- en profielpagina's. Let op: Mensen kunnen jou nog steeds ergens anders beoordelen. ";
+App::$strings["Provide a wiki for your channel"] = "Voeg een wiki aan jouw kanaal toe";
App::$strings["Private Notes"] = "Privé-aantekeningen";
App::$strings["Enables a tool to store notes and reminders (note: not encrypted)"] = "Een eenvoudige toepassing om aantekeningen en herinneringen in te bewaren (let op: niet versleuteld)";
App::$strings["Navigation Channel Select"] = "Kanaal kiezen in navigatiemenu";
@@ -2035,8 +2156,6 @@ App::$strings["Smart Birthdays"] = "Slimme verjaardagen";
App::$strings["Make birthday events timezone aware in case your friends are scattered across the planet."] = "Maak verjaardagen bewust van tijdzones. Voor het geval dat jouw vrienden over de hele wereld verspreid zijn.";
App::$strings["Expert Mode"] = "Expertmodus";
App::$strings["Enable Expert Mode to provide advanced configuration options"] = "Schakel de expertmodus in voor geavanceerde instellingen";
-App::$strings["Premium Channel"] = "Premiumkanaal";
-App::$strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Stelt je in staat om beperkingen en voorwaarden in te stellen voor jouw kanaal";
App::$strings["Post Composition Features"] = "Functies voor het opstellen van berichten";
App::$strings["Large Photos"] = "Grote foto's";
App::$strings["Include large (1024px) photo thumbnails in posts. If not enabled, use small (640px) photo thumbnails"] = "Gebruik grotere foto's (1024px) in berichten. Wanneer dit is uitgeschakeld worden er kleinere foto's (640px) gebruikt.";
@@ -2045,6 +2164,8 @@ App::$strings["Even More Encryption"] = "Extra encryptie";
App::$strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Sta toe dat inhoud extra end-to-end wordt versleuteld met een gedeelde geheime sleutel.";
App::$strings["Enable Voting Tools"] = "Peilingen inschakelen";
App::$strings["Provide a class of post which others can vote on"] = "Maakt het mogelijk om een bericht op te stellen, waar mensen op kunnen stemmen.";
+App::$strings["Disable Comments"] = "Reacties uitschakelen";
+App::$strings["Provide the option to disable comments for a post"] = "Maak het mogelijk dat reacties op een bericht kunnen worden uitgeschakeld";
App::$strings["Delayed Posting"] = "Berichten uitstellen";
App::$strings["Allow posts to be published at a later date"] = "Maakt het mogelijk dat berichten op een toekomstig moment gepubliceerd kunnen worden.";
App::$strings["Suppress Duplicate Posts/Comments"] = "Dubbele berichten/reacties tegenhouden";
@@ -2052,7 +2173,6 @@ App::$strings["Prevent posts with identical content to be published with less th
App::$strings["Network and Stream Filtering"] = "Netwerk- en streamfilter";
App::$strings["Search by Date"] = "Zoek op datum";
App::$strings["Ability to select posts by date ranges"] = "Mogelijkheid om berichten op datum te filteren ";
-App::$strings["Privacy Groups"] = "Privacygroepen";
App::$strings["Enable management and selection of privacy groups"] = "Beheer en selectie van privacygroepen inschakelen";
App::$strings["Save search terms for re-use"] = "Sla zoekopdrachten op voor hergebruik";
App::$strings["Network Personal Tab"] = "Persoonlijke netwerktab";
@@ -2078,186 +2198,109 @@ App::$strings["Star Posts"] = "Geef berichten een ster";
App::$strings["Ability to mark special posts with a star indicator"] = "Mogelijkheid om speciale berichten met een ster te markeren";
App::$strings["Tag Cloud"] = "Tagwolk";
App::$strings["Provide a personal tag cloud on your channel page"] = "Zorgt voor een persoonlijke wolk met tags op jouw kanaalpagina";
-App::$strings["Embedded content"] = "Ingesloten (embedded) inhoud";
-App::$strings["Embedding disabled"] = "Insluiten (embedding) uitgeschakeld";
-App::$strings["Who can see this?"] = "Wie kan dit zien?";
-App::$strings["Custom selection"] = "Handmatige selectie";
-App::$strings["Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit the scope of \"Show\"."] = "Kies \"Tonen\" om weergave toe te staan. Met \"Niet tonen\" kan je uitzonderingen maken op \"Tonen\".";
-App::$strings["Show"] = "Tonen";
-App::$strings["Don't show"] = "Niet tonen";
-App::$strings["Other networks and post services"] = "Andere netwerken en diensten";
-App::$strings["Post permissions %s cannot be changed %s after a post is shared.</br />These permissions set who is allowed to view the post."] = "Permissies van berichten %s zijn niet meer te veranderen %s nadat een bericht is gedeeld.</br />Met deze permissies bepaal je wie het bericht kan zien.";
-App::$strings["Logged out."] = "Uitgelogd.";
-App::$strings["Failed authentication"] = "Mislukte authenticatie";
-App::$strings["Birthday"] = "Verjaardag of geboortedatum";
-App::$strings["Age: "] = "Leeftijd:";
-App::$strings["YYYY-MM-DD or MM-DD"] = "JJJJ-MM-DD of MM-DD";
-App::$strings["never"] = "nooit";
-App::$strings["less than a second ago"] = "minder dan een seconde geleden";
-App::$strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "%1\$d %2\$s geleden";
-App::$strings["__ctx:relative_date__ year"] = array(
- 0 => "jaar",
- 1 => "jaren",
-);
-App::$strings["__ctx:relative_date__ month"] = array(
- 0 => "maand",
- 1 => "maanden",
-);
-App::$strings["__ctx:relative_date__ week"] = array(
- 0 => "week",
- 1 => "weken",
-);
-App::$strings["__ctx:relative_date__ day"] = array(
- 0 => "dag",
- 1 => "dagen",
-);
-App::$strings["__ctx:relative_date__ hour"] = array(
- 0 => "uur",
- 1 => "uren",
-);
-App::$strings["__ctx:relative_date__ minute"] = array(
- 0 => "minuut",
- 1 => "minuten",
+App::$strings["Premium Channel"] = "Premiumkanaal";
+App::$strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Stelt je in staat om beperkingen en voorwaarden in te stellen voor jouw kanaal";
+App::$strings["Tags"] = "Tags";
+App::$strings["Keywords"] = "Trefwoorden";
+App::$strings["have"] = "heb";
+App::$strings["has"] = "heeft";
+App::$strings["want"] = "wil";
+App::$strings["wants"] = "wil";
+App::$strings["likes"] = "vindt dit leuk";
+App::$strings["dislikes"] = "vindt dit niet leuk";
+App::$strings["Not a valid email address"] = "Geen geldig e-mailadres";
+App::$strings["Your email domain is not among those allowed on this site"] = "Jouw e-maildomein is op deze hub niet toegestaan";
+App::$strings["Your email address is already registered at this site."] = "Jouw e-mailadres is al op deze hub geregistreerd.";
+App::$strings["An invitation is required."] = "Een uitnodiging is vereist";
+App::$strings["Invitation could not be verified."] = "Uitnodiging kon niet geverifieerd worden";
+App::$strings["Please enter the required information."] = "Vul de vereiste informatie in.";
+App::$strings["Failed to store account information."] = "Account-informatie kon niet opgeslagen worden.";
+App::$strings["Registration confirmation for %s"] = "Registratiebevestiging voor %s";
+App::$strings["Registration request at %s"] = "Registratiebevestiging voor %s";
+App::$strings["your registration password"] = "jouw registratiewachtwoord";
+App::$strings["Registration details for %s"] = "Registratiegegevens voor %s";
+App::$strings["Account approved."] = "Account goedgekeurd";
+App::$strings["Registration revoked for %s"] = "Registratie ingetrokken voor %s";
+App::$strings["Click here to upgrade."] = "Klik hier om te upgraden.";
+App::$strings["This action exceeds the limits set by your subscription plan."] = "Deze handeling overschrijdt de beperkingen die voor jouw abonnement gelden.";
+App::$strings["This action is not available under your subscription plan."] = "Deze handeling is niet mogelijk met jouw abonnement.";
+App::$strings["Image/photo"] = "Afbeelding/foto";
+App::$strings["Encrypted content"] = "Versleutelde inhoud";
+App::$strings["Install %s element: "] = "Installeer %s-element: ";
+App::$strings["This post contains an installable %s element, however you lack permissions to install it on this site."] = "Dit bericht heeft een te installeren %s-element, maar je hebt geen permissies om het op deze hub te installeren.";
+App::$strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s schreef het volgende %2\$s %3\$s";
+App::$strings["Click to open/close"] = "Klik om te openen of te sluiten";
+App::$strings["spoiler"] = "spoiler";
+App::$strings["$1 wrote:"] = "$1 schreef:";
+App::$strings["%d invitation available"] = array(
+ 0 => "%d uitnodiging beschikbaar",
+ 1 => "%d uitnodigingen beschikbaar",
);
-App::$strings["__ctx:relative_date__ second"] = array(
- 0 => "seconde",
- 1 => "seconden",
+App::$strings["Find Channels"] = "Kanalen vinden";
+App::$strings["Enter name or interest"] = "Vul naam of interesse in";
+App::$strings["Connect/Follow"] = "Verbinden/volgen";
+App::$strings["Examples: Robert Morgenstein, Fishing"] = "Voorbeeld: Robert Morgenstein, vissen";
+App::$strings["Random Profile"] = "Willekeurig profiel";
+App::$strings["Invite Friends"] = "Vrienden uitnodigen";
+App::$strings["Advanced example: name=fred and country=iceland"] = "Geavanceerd voorbeeld (Engels): name=jan en country=nederland";
+App::$strings["%d connection in common"] = array(
+ 0 => "%d gemeenschappelijke connectie",
+ 1 => "%d gemeenschappelijke connecties",
);
-App::$strings["%1\$s's birthday"] = "Verjaardag van %1\$s";
-App::$strings["Happy Birthday %1\$s"] = "Gefeliciteerd met je verjaardag %1\$s";
-App::$strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Een verwijderde collectie met deze naam is gereactiveerd. Bestaande itemrechten <strong>kunnen</strong> van toepassing zijn op deze collectie en toekomstige leden. Wanneer je dit niet zo bedoeld hebt, moet je een nieuwe collectie met een andere naam aanmaken.";
-App::$strings["Add new connections to this privacy group"] = "Voeg nieuwe connecties aan deze privacygroep toe";
-App::$strings["edit"] = "bewerken";
-App::$strings["Edit group"] = "Privacygroep bewerken";
-App::$strings["Add privacy group"] = "Privacygroep toevoegen";
-App::$strings["Channels not in any privacy group"] = "Kanalen die zich in geen enkele privacygroep bevinden";
-App::$strings["Delete this item?"] = "Dit item verwijderen?";
-App::$strings["[-] show less"] = "[-] minder reacties weergeven";
-App::$strings["[+] expand"] = "[+] uitklappen";
-App::$strings["[-] collapse"] = "[-] inklappen";
-App::$strings["Password too short"] = "Wachtwoord te kort";
-App::$strings["Passwords do not match"] = "Wachtwoorden komen niet overeen";
-App::$strings["everybody"] = "iedereen";
-App::$strings["Secret Passphrase"] = "Geheim wachtwoord";
-App::$strings["Passphrase hint"] = "Wachtwoordhint";
-App::$strings["Notice: Permissions have changed but have not yet been submitted."] = "Mededeling: de permissies zijn veranderd, maar zijn nog niet opgeslagen.";
-App::$strings["close all"] = "Alles sluiten";
-App::$strings["Nothing new here"] = "Niets nieuw hier";
-App::$strings["Rate This Channel (this is public)"] = "Beoordeel dit kanaal (dit is openbaar)";
-App::$strings["Describe (optional)"] = "Omschrijving (optioneel)";
-App::$strings["Please enter a link URL"] = "Vul een URL in:";
-App::$strings["Unsaved changes. Are you sure you wish to leave this page?"] = "Niet opgeslagen wijzigingen. Ben je er zeker van dat je deze pagina wil verlaten?";
-App::$strings["timeago.prefixAgo"] = "timeago.prefixAgo";
-App::$strings["timeago.prefixFromNow"] = "timeago.prefixFromNow";
-App::$strings["ago"] = "geleden";
-App::$strings["from now"] = "vanaf nu";
-App::$strings["less than a minute"] = "minder dan een minuut";
-App::$strings["about a minute"] = "ongeveer een minuut";
-App::$strings["%d minutes"] = "%d minuten";
-App::$strings["about an hour"] = "ongeveer een uur";
-App::$strings["about %d hours"] = "ongeveer %d uren";
-App::$strings["a day"] = "een dag";
-App::$strings["%d days"] = "%d dagen";
-App::$strings["about a month"] = "ongeveer een maand";
-App::$strings["%d months"] = "%d maanden";
-App::$strings["about a year"] = "ongeveer een jaar";
-App::$strings["%d years"] = "%d jaren";
-App::$strings[" "] = " ";
-App::$strings["timeago.numbers"] = "timeago.numbers";
-App::$strings["__ctx:long__ May"] = "mei";
-App::$strings["Jan"] = "jan";
-App::$strings["Feb"] = "feb";
-App::$strings["Mar"] = "mrt";
-App::$strings["Apr"] = "apr";
-App::$strings["__ctx:short__ May"] = "mei";
-App::$strings["Jun"] = "jun";
-App::$strings["Jul"] = "jul";
-App::$strings["Aug"] = "aug";
-App::$strings["Sep"] = "sep";
-App::$strings["Oct"] = "okt";
-App::$strings["Nov"] = "nov";
-App::$strings["Dec"] = "dec";
-App::$strings["Sun"] = "zo";
-App::$strings["Mon"] = "ma";
-App::$strings["Tue"] = "di";
-App::$strings["Wed"] = "wo";
-App::$strings["Thu"] = "do";
-App::$strings["Fri"] = "vr";
-App::$strings["Sat"] = "za";
-App::$strings["__ctx:calendar__ today"] = "vandaag";
-App::$strings["__ctx:calendar__ month"] = "maand";
-App::$strings["__ctx:calendar__ week"] = "week";
-App::$strings["__ctx:calendar__ day"] = "dag";
-App::$strings["__ctx:calendar__ All day"] = "hele dag";
-App::$strings["view full size"] = "volledige grootte tonen";
-App::$strings["No Subject"] = "Geen onderwerp";
-App::$strings["Friendica"] = "Friendica";
-App::$strings["OStatus"] = "OStatus";
-App::$strings["GNU-Social"] = "GNU social";
-App::$strings["RSS/Atom"] = "RSS/Atom";
-App::$strings["Diaspora"] = "Diaspora";
-App::$strings["Facebook"] = "Facebook";
-App::$strings["Zot"] = "Zot";
-App::$strings["LinkedIn"] = "LinkedIn";
-App::$strings["XMPP/IM"] = "XMPP/IM";
-App::$strings["MySpace"] = "MySpace";
-App::$strings["Image exceeds website size limit of %lu bytes"] = "Afbeelding is groter dan op deze hub toegestane limiet van %lu bytes";
-App::$strings["Image file is empty."] = "Afbeeldingsbestand is leeg";
-App::$strings["Photo storage failed."] = "Foto kan niet worden opgeslagen";
-App::$strings["a new photo"] = "een nieuwe foto";
-App::$strings["__ctx:photo_upload__ %1\$s posted %2\$s to %3\$s"] = "%1\$s plaatste %2\$s op %3\$s";
-App::$strings["Upload New Photos"] = "Nieuwe foto's uploaden";
-App::$strings["Invalid data packet"] = "Datapakket ongeldig";
-App::$strings["Unable to verify channel signature"] = "Kanaalkenmerk kon niet worden geverifieerd. ";
-App::$strings["Unable to verify site signature for %s"] = "Hubkenmerk voor %s kon niet worden geverifieerd";
-App::$strings["invalid target signature"] = "ongeldig doelkenmerk";
-App::$strings["New Page"] = "Nieuwe pagina";
-App::$strings["Title"] = "Titel";
-App::$strings["Can view my normal stream and posts"] = "Kan mijn normale kanaalstream en berichten bekijken";
-App::$strings["Can view my default channel profile"] = "Kan mijn standaard kanaalprofiel bekijken";
-App::$strings["Can view my connections"] = "Kan een lijst met mijn connecties bekijken";
-App::$strings["Can view my file storage and photos"] = "Kan mijn foto's en andere bestanden bekijken";
-App::$strings["Can view my webpages"] = "Kan mijn pagina's bekijken";
-App::$strings["Can send me their channel stream and posts"] = "Kan mij de inhoud van hun kanaal en berichten sturen";
-App::$strings["Can post on my channel page (\"wall\")"] = "Kan een bericht in mijn kanaal plaatsen";
-App::$strings["Can comment on or like my posts"] = "Kan op mijn berichten reageren of deze (niet) leuk vinden";
-App::$strings["Can send me private mail messages"] = "Kan mij privéberichten sturen";
-App::$strings["Can like/dislike stuff"] = "Kan dingen leuk of niet leuk vinden";
-App::$strings["Profiles and things other than posts/comments"] = "Profielen en dingen, buiten berichten en reacties";
-App::$strings["Can forward to all my channel contacts via post @mentions"] = "Kan naar al mijn kanaalconnecties berichten doorsturen met behulp van @vermeldingen+";
-App::$strings["Advanced - useful for creating group forum channels"] = "Geavanceerd - nuttig voor groepforums";
-App::$strings["Can chat with me (when available)"] = "Kan met mij chatten (wanneer beschikbaar)";
-App::$strings["Can write to my file storage and photos"] = "Kan foto's en andere bestanden aan mijn bestandsopslag toevoegen";
-App::$strings["Can edit my webpages"] = "Kan mijn pagina's bewerken";
-App::$strings["Can source my public posts in derived channels"] = "Kan mijn openbare berichten als bron voor andere kanalen gebruiken";
-App::$strings["Somewhat advanced - very useful in open communities"] = "Enigszins geavanceerd (erg nuttig voor kanalen van forums/groepen)";
-App::$strings["Can administer my channel resources"] = "Kan mijn kanaal beheren";
-App::$strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Zeer geavanceerd. Laat dit met rust, behalve als je weet wat je doet.";
-App::$strings["Social Networking"] = "Sociaal netwerk";
-App::$strings["Social - Mostly Public"] = "Sociaal - Vrijwel alles openbaar";
-App::$strings["Social - Restricted"] = "Sociaal - Beperkt zichtbaar";
-App::$strings["Social - Private"] = "Sociaal - Verborgen kanaal";
-App::$strings["Community Forum"] = "Groepsforum";
-App::$strings["Forum - Mostly Public"] = "Forum - Vrijwel alles openbaar";
-App::$strings["Forum - Restricted"] = "Forum - Beperkt zichtbaar";
-App::$strings["Forum - Private"] = "Forum - Verborgen kanaal";
-App::$strings["Feed Republish"] = "Feed herpubliceren";
-App::$strings["Feed - Mostly Public"] = "Feed - Vrijwel alles openbaar";
-App::$strings["Feed - Restricted"] = "Feed - Beperkt zichtbaar";
-App::$strings["Special Purpose"] = "Speciaal doel";
-App::$strings["Special - Celebrity/Soapbox"] = "Speciaal - Beroemdheid/alleen volgen";
-App::$strings["Special - Group Repository"] = "Speciaal - Groepsopslag";
-App::$strings["Custom/Expert Mode"] = "Expertmodus/handmatig aanpassen";
-App::$strings[" and "] = " en ";
-App::$strings["public profile"] = "openbaar profiel";
-App::$strings["%1\$s changed %2\$s to &ldquo;%3\$s&rdquo;"] = "%1\$s veranderde %2\$s naar &ldquo;%3\$s&rdquo;";
-App::$strings["Visit %1\$s's %2\$s"] = "Bezoek het %2\$s van %1\$s";
-App::$strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s heeft een aangepaste %2\$s, %3\$s veranderd.";
-App::$strings["Attachments:"] = "Bijlagen:";
-App::$strings["\$Projectname event notification:"] = "Notificatie \$Projectname-gebeurtenis:";
+App::$strings["show more"] = "meer connecties weergeven";
+App::$strings["Directory Options"] = "Opties kanalengids";
+App::$strings["Safe Mode"] = "Veilig zoeken";
+App::$strings["Public Forums Only"] = "Alleen openbare forums";
+App::$strings["This Website Only"] = "Alleen deze hub";
+App::$strings["No recipient provided."] = "Geen ontvanger opgegeven.";
+App::$strings["[no subject]"] = "[geen onderwerp]";
+App::$strings["Unable to determine sender."] = "Afzender kan niet bepaald worden.";
+App::$strings["Stored post could not be verified."] = "Opgeslagen bericht kon niet worden geverifieerd.";
+App::$strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Kan geen dubbele kanaal-identificator op deze hub aanmaken. Importeren mislukt.";
+App::$strings["Channel clone failed. Import failed."] = "Het klonen van het kanaal is mislukt. Importeren mislukt.";
+App::$strings["Logout"] = "Uitloggen";
+App::$strings["End this session"] = "Beëindig deze sessie";
+App::$strings["Home"] = "Home";
+App::$strings["Your posts and conversations"] = "Jouw kanaal";
+App::$strings["Your profile page"] = "Jouw profielpagina";
+App::$strings["Manage/Edit profiles"] = "Beheer/wijzig profielen";
+App::$strings["Edit your profile"] = "Jouw profiel bewerken";
+App::$strings["Your photos"] = "Jouw foto's";
+App::$strings["Your files"] = "Jouw bestanden";
+App::$strings["Your chatrooms"] = "Jouw chatkanalen";
+App::$strings["Your bookmarks"] = "Jouw bladwijzers";
+App::$strings["Your webpages"] = "Jouw webpagina's";
+App::$strings["Your wiki"] = "Jouw wiki";
+App::$strings["Sign in"] = "Inloggen";
+App::$strings["%s - click to logout"] = "%s - klik om uit te loggen";
+App::$strings["Remote authentication"] = "Authenticatie op afstand";
+App::$strings["Click to authenticate to your home hub"] = "Authenticeer jezelf via (bijvoorbeeld) jouw hub";
+App::$strings["Home Page"] = "Homepage";
+App::$strings["Create an account"] = "Maak een account aan";
+App::$strings["Help and documentation"] = "Hulp en documentatie";
+App::$strings["Applications, utilities, links, games"] = "Apps";
+App::$strings["Search site @name, #tag, ?docs, content"] = "Zoek een @kanaal, doorzoek inhoud hub met tekst en #tags, of doorzoek ?documentatie ";
+App::$strings["Channel Directory"] = "Kanalengids";
+App::$strings["Your grid"] = "Jouw grid";
+App::$strings["Mark all grid notifications seen"] = "Markeer alle gridnotificaties als bekeken";
+App::$strings["Channel home"] = "Jouw kanaal";
+App::$strings["Mark all channel notifications seen"] = "Alle kanaalnotificaties als gelezen markeren";
+App::$strings["Notices"] = "Notificaties";
+App::$strings["Notifications"] = "Notificaties";
+App::$strings["See all notifications"] = "Alle notificaties weergeven";
+App::$strings["Private mail"] = "Privéberichten";
+App::$strings["See all private messages"] = "Alle privéberichten weergeven";
+App::$strings["Mark all private messages seen"] = "Markeer alle privéberichten als bekeken";
+App::$strings["Event Calendar"] = "Agenda";
+App::$strings["See all events"] = "Alle gebeurtenissen weergeven";
+App::$strings["Mark all events seen"] = "Markeer alle gebeurtenissen als bekeken";
+App::$strings["Manage Your Channels"] = "Beheer je kanalen";
+App::$strings["Account/Channel Settings"] = "Account-/kanaal-instellingen";
+App::$strings["Site Setup and Configuration"] = "Hub instellen en beheren";
+App::$strings["@name, #tag, ?doc, content"] = "@kanaal, #tag, inhoud, ?hulp";
+App::$strings["Please wait..."] = "Wachten aub...";
App::$strings["Focus (Hubzilla default)"] = "Focus (Hubzilla-standaard)";
App::$strings["Theme settings"] = "Thema-instellingen";
-App::$strings["Select scheme"] = "Kies schema van thema";
App::$strings["Narrow navbar"] = "Smalle navigatiebalk";
App::$strings["Navigation bar background color"] = "Achtergrondkleur navigatiebalk";
App::$strings["Navigation bar gradient top color"] = "Bovenste gradiëntkleur navigatiebalk";
@@ -2294,6 +2337,7 @@ App::$strings["__ctx:opensearch__ \$Projectname"] = "\$Projectname";
App::$strings["Update %s failed. See error logs."] = "Update %s mislukt. Zie foutenlogboek.";
App::$strings["Update Error at %s"] = "Update-fout op %s";
App::$strings["Create an account to access services and applications within the Hubzilla"] = "Maak een account aan om toegang te krijgen tot diensten en toepassingen van Hubzilla";
+App::$strings["Login/Email"] = "E-mailadres of inlognaam";
App::$strings["Password"] = "Wachtwoord";
App::$strings["Remember me"] = "Aangemeld blijven";
App::$strings["Forgot your password?"] = "Wachtwoord vergeten?";
diff --git a/view/pdl/mod_search.pdl b/view/pdl/mod_search.pdl
index 7de4a270f..5096508fa 100644
--- a/view/pdl/mod_search.pdl
+++ b/view/pdl/mod_search.pdl
@@ -1,3 +1,3 @@
[region=aside]
-[widget=savedsearch][/widget]
+[comment][widget=sitesearch][/widget][/comment]
[/region]
diff --git a/view/pdl/mod_webpages.pdl b/view/pdl/mod_webpages.pdl
index b62ec6e7c..9e4d604ba 100644
--- a/view/pdl/mod_webpages.pdl
+++ b/view/pdl/mod_webpages.pdl
@@ -1,4 +1,4 @@
[region=aside]
[widget=design_tools][/widget]
-[widget=website_import_tools][/widget]
+[widget=website_portation_tools][/widget]
[/region] \ No newline at end of file
diff --git a/view/theme/redbasic/css/narrow_navbar.css b/view/theme/redbasic/css/narrow_navbar.css
index faa18dfe5..6b09b031a 100644
--- a/view/theme/redbasic/css/narrow_navbar.css
+++ b/view/theme/redbasic/css/narrow_navbar.css
@@ -18,22 +18,22 @@
}
nav .navbar-header img {
- height: 30px;
- width: 30px;
+ height: 29px;
+ width: 29px;
margin-top: 1px;
border-radius: 4px;
}
.navbar-left {
- height: 30px;
+ height: 29px;
}
.container-fluid {
- min-height:30px;
+ min-height:29px;
}
.collapse .navbar-collapse {
- min-height:30px;
+ min-height:29px;
}
#nav-search-text {
@@ -50,15 +50,11 @@
nav .dropdown-menu,
nav .acpopup {
- top: 31px !important;
+ top: 30px !important;
}
nav .badge {
- position: relative;
- top: -31px;
- float: right;
- font-size: 10px;
- cursor: pointer;
+ top: -29px;
}
#jGrowl.top-right {
@@ -67,6 +63,6 @@
}
.contextual-help-content-open {
- top: 32px;
+ top: 31px;
}
}
diff --git a/view/theme/redbasic/php/config.php b/view/theme/redbasic/php/config.php
index 8f256bde4..b03e94e46 100644
--- a/view/theme/redbasic/php/config.php
+++ b/view/theme/redbasic/php/config.php
@@ -1,6 +1,9 @@
<?php
+namespace Zotlabs\Theme;
+
class RedbasicConfig {
+
function get_schemas() {
$scheme_choices = array();
$scheme_choices["---"] = t("Focus (Hubzilla default)");
@@ -16,128 +19,133 @@ class RedbasicConfig {
}
return $scheme_choices;
}
-}
+ function get() {
+ if(! local_channel()) {
+ return;
+ }
-function theme_content(&$a) {
- if(!local_channel()) { return;}
-
- $arr = array();
-
-// $arr['schema'] = get_pconfig(local_channel(),'redbasic', 'schema' );
- $arr['narrow_navbar'] = get_pconfig(local_channel(),'redbasic', 'narrow_navbar' );
- $arr['nav_bg'] = get_pconfig(local_channel(),'redbasic', 'nav_bg' );
- $arr['nav_gradient_top'] = get_pconfig(local_channel(),'redbasic', 'nav_gradient_top' );
- $arr['nav_gradient_bottom'] = get_pconfig(local_channel(),'redbasic', 'nav_gradient_bottom' );
- $arr['nav_active_gradient_top'] = get_pconfig(local_channel(),'redbasic', 'nav_active_gradient_top' );
- $arr['nav_active_gradient_bottom'] = get_pconfig(local_channel(),'redbasic', 'nav_active_gradient_bottom' );
- $arr['nav_bd'] = get_pconfig(local_channel(),'redbasic', 'nav_bd' );
- $arr['nav_icon_colour'] = get_pconfig(local_channel(),'redbasic', 'nav_icon_colour' );
- $arr['nav_active_icon_colour'] = get_pconfig(local_channel(),'redbasic', 'nav_active_icon_colour' );
- $arr['link_colour'] = get_pconfig(local_channel(),'redbasic', 'link_colour' );
- $arr['banner_colour'] = get_pconfig(local_channel(),'redbasic', 'banner_colour' );
- $arr['bgcolour'] = get_pconfig(local_channel(),'redbasic', 'background_colour' );
- $arr['background_image'] = get_pconfig(local_channel(),'redbasic', 'background_image' );
- $arr['item_colour'] = get_pconfig(local_channel(),'redbasic', 'item_colour' );
- $arr['comment_item_colour'] = get_pconfig(local_channel(),'redbasic', 'comment_item_colour' );
- $arr['comment_border_colour'] = get_pconfig(local_channel(),'redbasic', 'comment_border_colour' );
- $arr['comment_indent'] = get_pconfig(local_channel(),'redbasic', 'comment_indent' );
- $arr['toolicon_colour'] = get_pconfig(local_channel(),'redbasic','toolicon_colour');
- $arr['toolicon_activecolour'] = get_pconfig(local_channel(),'redbasic','toolicon_activecolour');
- $arr['font_size'] = get_pconfig(local_channel(),'redbasic', 'font_size' );
- $arr['body_font_size'] = get_pconfig(local_channel(),'redbasic', 'body_font_size' );
- $arr['font_colour'] = get_pconfig(local_channel(),'redbasic', 'font_colour' );
- $arr['radius'] = get_pconfig(local_channel(),'redbasic', 'radius' );
- $arr['shadow'] = get_pconfig(local_channel(),'redbasic', 'photo_shadow' );
- $arr['converse_width']=get_pconfig(local_channel(),"redbasic","converse_width");
- $arr['align_left']=get_pconfig(local_channel(),"redbasic","align_left");
- $arr['nav_min_opacity']=get_pconfig(local_channel(),"redbasic","nav_min_opacity");
- $arr['top_photo']=get_pconfig(local_channel(),"redbasic","top_photo");
- $arr['reply_photo']=get_pconfig(local_channel(),"redbasic","reply_photo");
- return redbasic_form($a, $arr);
-}
-
-function theme_post(&$a) {
- if(!local_channel()) { return;}
-
- if (isset($_POST['redbasic-settings-submit'])) {
-// set_pconfig(local_channel(), 'redbasic', 'schema', $_POST['redbasic_schema']);
- set_pconfig(local_channel(), 'redbasic', 'narrow_navbar', $_POST['redbasic_narrow_navbar']);
- set_pconfig(local_channel(), 'redbasic', 'nav_bg', $_POST['redbasic_nav_bg']);
- set_pconfig(local_channel(), 'redbasic', 'nav_gradient_top', $_POST['redbasic_nav_gradient_top']);
- set_pconfig(local_channel(), 'redbasic', 'nav_gradient_bottom', $_POST['redbasic_nav_gradient_bottom']);
- set_pconfig(local_channel(), 'redbasic', 'nav_active_gradient_top', $_POST['redbasic_nav_active_gradient_top']);
- set_pconfig(local_channel(), 'redbasic', 'nav_active_gradient_bottom', $_POST['redbasic_nav_active_gradient_bottom']);
- set_pconfig(local_channel(), 'redbasic', 'nav_bd', $_POST['redbasic_nav_bd']);
- set_pconfig(local_channel(), 'redbasic', 'nav_icon_colour', $_POST['redbasic_nav_icon_colour']);
- set_pconfig(local_channel(), 'redbasic', 'nav_active_icon_colour', $_POST['redbasic_nav_active_icon_colour']);
- set_pconfig(local_channel(), 'redbasic', 'link_colour', $_POST['redbasic_link_colour']);
- set_pconfig(local_channel(), 'redbasic', 'background_colour', $_POST['redbasic_background_colour']);
- set_pconfig(local_channel(), 'redbasic', 'banner_colour', $_POST['redbasic_banner_colour']);
- set_pconfig(local_channel(), 'redbasic', 'background_image', $_POST['redbasic_background_image']);
- set_pconfig(local_channel(), 'redbasic', 'item_colour', $_POST['redbasic_item_colour']);
- set_pconfig(local_channel(), 'redbasic', 'comment_item_colour', $_POST['redbasic_comment_item_colour']);
- set_pconfig(local_channel(), 'redbasic', 'comment_border_colour', $_POST['redbasic_comment_border_colour']);
- set_pconfig(local_channel(), 'redbasic', 'comment_indent', $_POST['redbasic_comment_indent']);
- set_pconfig(local_channel(), 'redbasic', 'toolicon_colour', $_POST['redbasic_toolicon_colour']);
- set_pconfig(local_channel(), 'redbasic', 'toolicon_activecolour', $_POST['redbasic_toolicon_activecolour']);
- set_pconfig(local_channel(), 'redbasic', 'font_size', $_POST['redbasic_font_size']);
- set_pconfig(local_channel(), 'redbasic', 'body_font_size', $_POST['redbasic_body_font_size']);
- set_pconfig(local_channel(), 'redbasic', 'font_colour', $_POST['redbasic_font_colour']);
- set_pconfig(local_channel(), 'redbasic', 'radius', $_POST['redbasic_radius']);
- set_pconfig(local_channel(), 'redbasic', 'photo_shadow', $_POST['redbasic_shadow']);
- set_pconfig(local_channel(), 'redbasic', 'converse_width', $_POST['redbasic_converse_width']);
- set_pconfig(local_channel(), 'redbasic', 'align_left', $_POST['redbasic_align_left']);
- set_pconfig(local_channel(), 'redbasic', 'nav_min_opacity', $_POST['redbasic_nav_min_opacity']);
- set_pconfig(local_channel(), 'redbasic', 'top_photo', $_POST['redbasic_top_photo']);
- set_pconfig(local_channel(), 'redbasic', 'reply_photo', $_POST['redbasic_reply_photo']);
+ $arr = array();
+ $arr['narrow_navbar'] = get_pconfig(local_channel(),'redbasic', 'narrow_navbar' );
+ $arr['nav_bg'] = get_pconfig(local_channel(),'redbasic', 'nav_bg' );
+ $arr['nav_gradient_top'] = get_pconfig(local_channel(),'redbasic', 'nav_gradient_top' );
+ $arr['nav_gradient_bottom'] = get_pconfig(local_channel(),'redbasic', 'nav_gradient_bottom' );
+ $arr['nav_active_gradient_top'] = get_pconfig(local_channel(),'redbasic', 'nav_active_gradient_top' );
+ $arr['nav_active_gradient_bottom'] = get_pconfig(local_channel(),'redbasic', 'nav_active_gradient_bottom' );
+ $arr['nav_bd'] = get_pconfig(local_channel(),'redbasic', 'nav_bd' );
+ $arr['nav_icon_colour'] = get_pconfig(local_channel(),'redbasic', 'nav_icon_colour' );
+ $arr['nav_active_icon_colour'] = get_pconfig(local_channel(),'redbasic', 'nav_active_icon_colour' );
+ $arr['link_colour'] = get_pconfig(local_channel(),'redbasic', 'link_colour' );
+ $arr['banner_colour'] = get_pconfig(local_channel(),'redbasic', 'banner_colour' );
+ $arr['bgcolour'] = get_pconfig(local_channel(),'redbasic', 'background_colour' );
+ $arr['background_image'] = get_pconfig(local_channel(),'redbasic', 'background_image' );
+ $arr['item_colour'] = get_pconfig(local_channel(),'redbasic', 'item_colour' );
+ $arr['comment_item_colour'] = get_pconfig(local_channel(),'redbasic', 'comment_item_colour' );
+ $arr['comment_border_colour'] = get_pconfig(local_channel(),'redbasic', 'comment_border_colour' );
+ $arr['comment_indent'] = get_pconfig(local_channel(),'redbasic', 'comment_indent' );
+ $arr['toolicon_colour'] = get_pconfig(local_channel(),'redbasic','toolicon_colour');
+ $arr['toolicon_activecolour'] = get_pconfig(local_channel(),'redbasic','toolicon_activecolour');
+ $arr['font_size'] = get_pconfig(local_channel(),'redbasic', 'font_size' );
+ $arr['body_font_size'] = get_pconfig(local_channel(),'redbasic', 'body_font_size' );
+ $arr['font_colour'] = get_pconfig(local_channel(),'redbasic', 'font_colour' );
+ $arr['radius'] = get_pconfig(local_channel(),'redbasic', 'radius' );
+ $arr['shadow'] = get_pconfig(local_channel(),'redbasic', 'photo_shadow' );
+ $arr['converse_width']=get_pconfig(local_channel(),"redbasic","converse_width");
+ $arr['align_left']=get_pconfig(local_channel(),"redbasic","align_left");
+ $arr['nav_min_opacity']=get_pconfig(local_channel(),"redbasic","nav_min_opacity");
+ $arr['top_photo']=get_pconfig(local_channel(),"redbasic","top_photo");
+ $arr['reply_photo']=get_pconfig(local_channel(),"redbasic","reply_photo");
+ return $this->form($arr);
}
-}
+ function post() {
+ if(!local_channel()) {
+ return;
+ }
+ if (isset($_POST['redbasic-settings-submit'])) {
+ set_pconfig(local_channel(), 'redbasic', 'narrow_navbar', $_POST['redbasic_narrow_navbar']);
+ set_pconfig(local_channel(), 'redbasic', 'nav_bg', $_POST['redbasic_nav_bg']);
+ set_pconfig(local_channel(), 'redbasic', 'nav_gradient_top', $_POST['redbasic_nav_gradient_top']);
+ set_pconfig(local_channel(), 'redbasic', 'nav_gradient_bottom', $_POST['redbasic_nav_gradient_bottom']);
+ set_pconfig(local_channel(), 'redbasic', 'nav_active_gradient_top', $_POST['redbasic_nav_active_gradient_top']);
+ set_pconfig(local_channel(), 'redbasic', 'nav_active_gradient_bottom', $_POST['redbasic_nav_active_gradient_bottom']);
+ set_pconfig(local_channel(), 'redbasic', 'nav_bd', $_POST['redbasic_nav_bd']);
+ set_pconfig(local_channel(), 'redbasic', 'nav_icon_colour', $_POST['redbasic_nav_icon_colour']);
+ set_pconfig(local_channel(), 'redbasic', 'nav_active_icon_colour', $_POST['redbasic_nav_active_icon_colour']);
+ set_pconfig(local_channel(), 'redbasic', 'link_colour', $_POST['redbasic_link_colour']);
+ set_pconfig(local_channel(), 'redbasic', 'background_colour', $_POST['redbasic_background_colour']);
+ set_pconfig(local_channel(), 'redbasic', 'banner_colour', $_POST['redbasic_banner_colour']);
+ set_pconfig(local_channel(), 'redbasic', 'background_image', $_POST['redbasic_background_image']);
+ set_pconfig(local_channel(), 'redbasic', 'item_colour', $_POST['redbasic_item_colour']);
+ set_pconfig(local_channel(), 'redbasic', 'comment_item_colour', $_POST['redbasic_comment_item_colour']);
+ set_pconfig(local_channel(), 'redbasic', 'comment_border_colour', $_POST['redbasic_comment_border_colour']);
+ set_pconfig(local_channel(), 'redbasic', 'comment_indent', $_POST['redbasic_comment_indent']);
+ set_pconfig(local_channel(), 'redbasic', 'toolicon_colour', $_POST['redbasic_toolicon_colour']);
+ set_pconfig(local_channel(), 'redbasic', 'toolicon_activecolour', $_POST['redbasic_toolicon_activecolour']);
+ set_pconfig(local_channel(), 'redbasic', 'font_size', $_POST['redbasic_font_size']);
+ set_pconfig(local_channel(), 'redbasic', 'body_font_size', $_POST['redbasic_body_font_size']);
+ set_pconfig(local_channel(), 'redbasic', 'font_colour', $_POST['redbasic_font_colour']);
+ set_pconfig(local_channel(), 'redbasic', 'radius', $_POST['redbasic_radius']);
+ set_pconfig(local_channel(), 'redbasic', 'photo_shadow', $_POST['redbasic_shadow']);
+ set_pconfig(local_channel(), 'redbasic', 'converse_width', $_POST['redbasic_converse_width']);
+ set_pconfig(local_channel(), 'redbasic', 'align_left', $_POST['redbasic_align_left']);
+ set_pconfig(local_channel(), 'redbasic', 'nav_min_opacity', $_POST['redbasic_nav_min_opacity']);
+ set_pconfig(local_channel(), 'redbasic', 'top_photo', $_POST['redbasic_top_photo']);
+ set_pconfig(local_channel(), 'redbasic', 'reply_photo', $_POST['redbasic_reply_photo']);
+ }
+ }
-function redbasic_form(&$a, $arr) {
+ function form($arr) {
-if(feature_enabled(local_channel(),'expert'))
- $expert = 1;
+ if(feature_enabled(local_channel(),'advanced_theming'))
+ $expert = 1;
- $t = get_markup_template('theme_settings.tpl');
- $o .= replace_macros($t, array(
- '$submit' => t('Submit'),
- '$baseurl' => z_root(),
- '$theme' => App::$channel['channel_theme'],
- '$expert' => $expert,
- '$title' => t("Theme settings"),
- '$narrow_navbar' => array('redbasic_narrow_navbar',t('Narrow navbar'),$arr['narrow_navbar'], '', array(t('No'),t('Yes'))),
- '$nav_bg' => array('redbasic_nav_bg', t('Navigation bar background color'), $arr['nav_bg']),
- '$nav_gradient_top' => array('redbasic_nav_gradient_top', t('Navigation bar gradient top color'), $arr['nav_gradient_top']),
- '$nav_gradient_bottom' => array('redbasic_nav_gradient_bottom', t('Navigation bar gradient bottom color'), $arr['nav_gradient_bottom']),
- '$nav_active_gradient_top' => array('redbasic_nav_active_gradient_top', t('Navigation active button gradient top color'), $arr['nav_active_gradient_top']),
- '$nav_active_gradient_bottom' => array('redbasic_nav_active_gradient_bottom', t('Navigation active button gradient bottom color'), $arr['nav_active_gradient_bottom']),
- '$nav_bd' => array('redbasic_nav_bd', t('Navigation bar border color '), $arr['nav_bd']),
- '$nav_icon_colour' => array('redbasic_nav_icon_colour', t('Navigation bar icon color '), $arr['nav_icon_colour']),
- '$nav_active_icon_colour' => array('redbasic_nav_active_icon_colour', t('Navigation bar active icon color '), $arr['nav_active_icon_colour']),
- '$link_colour' => array('redbasic_link_colour', t('link color'), $arr['link_colour'], '', $link_colours),
- '$banner_colour' => array('redbasic_banner_colour', t('Set font-color for banner'), $arr['banner_colour']),
- '$bgcolour' => array('redbasic_background_colour', t('Set the background color'), $arr['bgcolour']),
- '$background_image' => array('redbasic_background_image', t('Set the background image'), $arr['background_image']),
- '$item_colour' => array('redbasic_item_colour', t('Set the background color of items'), $arr['item_colour']),
- '$comment_item_colour' => array('redbasic_comment_item_colour', t('Set the background color of comments'), $arr['comment_item_colour']),
- '$comment_border_colour' => array('redbasic_comment_border_colour', t('Set the border color of comments'), $arr['comment_border_colour']),
- '$comment_indent' => array('redbasic_comment_indent', t('Set the indent for comments'), $arr['comment_indent']),
- '$toolicon_colour' => array('redbasic_toolicon_colour',t('Set the basic color for item icons'),$arr['toolicon_colour']),
- '$toolicon_activecolour' => array('redbasic_toolicon_activecolour',t('Set the hover color for item icons'),$arr['toolicon_activecolour']),
- '$body_font_size' => array('redbasic_body_font_size', t('Set font-size for the entire application'), $arr['body_font_size'], t('Example: 14px')),
- '$font_size' => array('redbasic_font_size', t('Set font-size for posts and comments'), $arr['font_size']),
- '$font_colour' => array('redbasic_font_colour', t('Set font-color for posts and comments'), $arr['font_colour']),
- '$radius' => array('redbasic_radius', t('Set radius of corners'), $arr['radius']),
- '$shadow' => array('redbasic_shadow', t('Set shadow depth of photos'), $arr['shadow']),
- '$converse_width' => array('redbasic_converse_width',t('Set maximum width of content region in pixel'),$arr['converse_width'], t('Leave empty for default width')),
- '$align_left' => array('redbasic_align_left',t('Left align page content'),$arr['align_left'], '', array(t('No'),t('Yes'))),
- '$nav_min_opacity' => array('redbasic_nav_min_opacity',t('Set minimum opacity of nav bar - to hide it'),$arr['nav_min_opacity']),
- '$top_photo' => array('redbasic_top_photo', t('Set size of conversation author photo'), $arr['top_photo']),
- '$reply_photo' => array('redbasic_reply_photo', t('Set size of followup author photos'), $arr['reply_photo']),
- ));
-
- return $o;
+
+ $o .= replace_macros(get_markup_template('theme_settings.tpl'), array(
+ '$submit' => t('Submit'),
+ '$baseurl' => z_root(),
+ '$theme' => \App::$channel['channel_theme'],
+ '$expert' => $expert,
+ '$title' => t("Theme settings"),
+ '$narrow_navbar' => array('redbasic_narrow_navbar',t('Narrow navbar'),$arr['narrow_navbar'], '', array(t('No'),t('Yes'))),
+ '$nav_bg' => array('redbasic_nav_bg', t('Navigation bar background color'), $arr['nav_bg']),
+ '$nav_gradient_top' => array('redbasic_nav_gradient_top', t('Navigation bar gradient top color'), $arr['nav_gradient_top']),
+ '$nav_gradient_bottom' => array('redbasic_nav_gradient_bottom', t('Navigation bar gradient bottom color'), $arr['nav_gradient_bottom']),
+ '$nav_active_gradient_top' => array('redbasic_nav_active_gradient_top', t('Navigation active button gradient top color'), $arr['nav_active_gradient_top']),
+ '$nav_active_gradient_bottom' => array('redbasic_nav_active_gradient_bottom', t('Navigation active button gradient bottom color'), $arr['nav_active_gradient_bottom']),
+ '$nav_bd' => array('redbasic_nav_bd', t('Navigation bar border color '), $arr['nav_bd']),
+ '$nav_icon_colour' => array('redbasic_nav_icon_colour', t('Navigation bar icon color '), $arr['nav_icon_colour']),
+ '$nav_active_icon_colour' => array('redbasic_nav_active_icon_colour', t('Navigation bar active icon color '), $arr['nav_active_icon_colour']),
+ '$link_colour' => array('redbasic_link_colour', t('link color'), $arr['link_colour'], '', $link_colours),
+ '$banner_colour' => array('redbasic_banner_colour', t('Set font-color for banner'), $arr['banner_colour']),
+ '$bgcolour' => array('redbasic_background_colour', t('Set the background color'), $arr['bgcolour']),
+ '$background_image' => array('redbasic_background_image', t('Set the background image'), $arr['background_image']),
+ '$item_colour' => array('redbasic_item_colour', t('Set the background color of items'), $arr['item_colour']),
+ '$comment_item_colour' => array('redbasic_comment_item_colour', t('Set the background color of comments'), $arr['comment_item_colour']),
+ '$comment_border_colour' => array('redbasic_comment_border_colour', t('Set the border color of comments'), $arr['comment_border_colour']),
+ '$comment_indent' => array('redbasic_comment_indent', t('Set the indent for comments'), $arr['comment_indent']),
+ '$toolicon_colour' => array('redbasic_toolicon_colour',t('Set the basic color for item icons'),$arr['toolicon_colour']),
+ '$toolicon_activecolour' => array('redbasic_toolicon_activecolour',t('Set the hover color for item icons'),$arr['toolicon_activecolour']),
+ '$body_font_size' => array('redbasic_body_font_size', t('Set font-size for the entire application'), $arr['body_font_size'], t('Example: 14px')),
+ '$font_size' => array('redbasic_font_size', t('Set font-size for posts and comments'), $arr['font_size']),
+ '$font_colour' => array('redbasic_font_colour', t('Set font-color for posts and comments'), $arr['font_colour']),
+ '$radius' => array('redbasic_radius', t('Set radius of corners'), $arr['radius']),
+ '$shadow' => array('redbasic_shadow', t('Set shadow depth of photos'), $arr['shadow']),
+ '$converse_width' => array('redbasic_converse_width',t('Set maximum width of content region in pixel'),$arr['converse_width'], t('Leave empty for default width')),
+ '$align_left' => array('redbasic_align_left',t('Left align page content'),$arr['align_left'], '', array(t('No'),t('Yes'))),
+ '$nav_min_opacity' => array('redbasic_nav_min_opacity',t('Set minimum opacity of nav bar - to hide it'),$arr['nav_min_opacity']),
+ '$top_photo' => array('redbasic_top_photo', t('Set size of conversation author photo'), $arr['top_photo']),
+ '$reply_photo' => array('redbasic_reply_photo', t('Set size of followup author photos'), $arr['reply_photo']),
+ ));
+
+ return $o;
+ }
+
}
+
+
+
+
+
+
diff --git a/view/theme/redbasic/php/theme.php b/view/theme/redbasic/php/theme.php
index f0679a532..997b59750 100644
--- a/view/theme/redbasic/php/theme.php
+++ b/view/theme/redbasic/php/theme.php
@@ -6,8 +6,7 @@
* * Version: 1.0
* * Author: Fabrixxm
* * Maintainer: Mike Macgirvin
- * * Compat: Red [*]
- *
+ * * Maintainer: Mario Vavti
*/
function redbasic_init(&$a) {
diff --git a/view/tpl/acl_selector.tpl b/view/tpl/acl_selector.tpl
index 70ef4469a..dbdbd6a56 100755
--- a/view/tpl/acl_selector.tpl
+++ b/view/tpl/acl_selector.tpl
@@ -27,16 +27,6 @@
</div>
{{/if}}
- {{if $jotnets}}
- <div class="jotnets-wrapper" role="tab" id="jotnets-wrapper">
- <a data-toggle="collapse" class="btn btn-block btn-default" href="#jotnets-collapse" aria-expanded="false" aria-controls="jotnets-collapse">{{$jnetModalTitle}} <span class="caret"></span></a>
- </div>
- <div id="jotnets-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="acl-select">
- {{$jotnets}}
- <div class="clear"></div>
- </div>
- {{/if}}
-
<div id="acl-wrapper">
<div id="acl-list">
<div id="acl-search-wrapper">
@@ -47,13 +37,14 @@
<div id="acl-list-content"></div>
</div>
</div>
- <span id="acl-fields"></span>
</div>
+
<div class="acl-list-item" rel="acl-template" style="display:none">
<img data-src="{0}"><p>{1}</p>
<button class="acl-button-hide btn btn-xs btn-default"><i class="fa fa-times"></i> {{$hide}}</button>
<button class="acl-button-show btn btn-xs btn-default"><i class="fa fa-check"></i> {{$show}}</button>
</div>
+
</div>
<div class="modal-footer clear">
<button type="button" class="btn btn-default" data-dismiss="modal">{{$aclModalDismiss}}</button>
diff --git a/view/tpl/admin_plugins_details.tpl b/view/tpl/admin_plugins_details.tpl
index b8cc72a04..309fc9569 100755
--- a/view/tpl/admin_plugins_details.tpl
+++ b/view/tpl/admin_plugins_details.tpl
@@ -24,6 +24,9 @@
{{if $info.minphpversion}}
<p class="versionlimit">{{$str_minphpversion}}{{$info.minphpversion}}</p>
{{/if}}
+ {{if $info.serverroles}}
+ <p class="versionlimit">{{$str_serverroles}}{{$info.serverroles}}</p>
+ {{/if}}
{{if $info.requires}}
<p class="versionlimit">{{$str_requires}}{{$info.requires}}</p>
{{/if}}
diff --git a/view/tpl/admin_security.tpl b/view/tpl/admin_security.tpl
index 721b5f38f..409e9fc7d 100755
--- a/view/tpl/admin_security.tpl
+++ b/view/tpl/admin_security.tpl
@@ -11,6 +11,9 @@
{{include file="field_checkbox.tpl" field=$content_security}}
{{include file="field_checkbox.tpl" field=$embed_sslonly}}
+ {{include file="field_textarea.tpl" field=$allowed_email}}
+ {{include file="field_textarea.tpl" field=$not_allowed_email}}
+
{{include file="field_textarea.tpl" field=$whitelisted_sites}}
{{include file="field_textarea.tpl" field=$blacklisted_sites}}
diff --git a/view/tpl/admin_site.tpl b/view/tpl/admin_site.tpl
index 6b8729ee6..a5b32f08f 100755
--- a/view/tpl/admin_site.tpl
+++ b/view/tpl/admin_site.tpl
@@ -41,6 +41,13 @@
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
{{include file="field_input.tpl" field=$sitename}}
+ {{include file="field_select.tpl" field=$server_role}}
+
+ {{if $z_server_role == 'pro'}}
+ {{include file="field_select.tpl" field=$techlevel}}
+ {{include file="field_checkbox.tpl" field=$techlock}}
+ {{/if}}
+
{{include file="field_textarea.tpl" field=$banner}}
{{include file="field_textarea.tpl" field=$admininfo}}
{{include file="field_select.tpl" field=$language}}
@@ -61,8 +68,6 @@
{{include file="field_select.tpl" field=$register_policy}}
{{include file="field_checkbox.tpl" field=$invite_only}}
{{include file="field_select.tpl" field=$access_policy}}
- {{include file="field_textarea.tpl" field=$allowed_email}}
- {{include file="field_textarea.tpl" field=$not_allowed_email}}
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
<h3>{{$upload}}</h3>
diff --git a/view/tpl/cloud_actionspanel.tpl b/view/tpl/cloud_actionspanel.tpl
index b851e391e..36edc3b44 100644
--- a/view/tpl/cloud_actionspanel.tpl
+++ b/view/tpl/cloud_actionspanel.tpl
@@ -1,7 +1,6 @@
<div id="files-mkdir-tools" class="section-content-tools-wrapper">
<label for="files-mkdir">{{$folder_header}}</label>
<form id="mkdir-form" method="post" action="file_upload" class="acl-form" data-form_id="mkdir-form" data-allow_cid='{{$allow_cid}}' data-allow_gid='{{$allow_gid}}' data-deny_cid='{{$deny_cid}}' data-deny_gid='{{$deny_gid}}'>
- <!--input type="hidden" name="sabreAction" value="mkcol"-->
<input type="hidden" name="folder" value="{{$folder}}" />
<input type="hidden" name="channick" value="{{$channick}}" />
<input type="hidden" name="return_url" value="{{$return_url}}" />
diff --git a/view/tpl/comment_item.tpl b/view/tpl/comment_item.tpl
index 5920efafa..a98b9e5eb 100755
--- a/view/tpl/comment_item.tpl
+++ b/view/tpl/comment_item.tpl
@@ -10,7 +10,7 @@
<input type="hidden" name="return" value="{{$return_path}}" />
<input type="hidden" name="jsreload" value="{{$jsreload}}" />
<input type="hidden" name="preview" id="comment-preview-inp-{{$id}}" value="0" />
- <textarea id="comment-edit-text-{{$id}}" class="comment-edit-text-empty" name="body" onFocus="commentOpenUI(this,{{$id}});" onBlur="commentCloseUI(this,{{$id}});" ondragenter="linkdropper(event);" ondragover="linkdropper(event);" ondrop="linkdrop(event);" >{{$comment}}</textarea>
+ <textarea id="comment-edit-text-{{$id}}" class="comment-edit-text-empty" name="body" onFocus="commentOpenUI(this,{{$id}});" onBlur="commentCloseUI(this,{{$id}});" ondragenter="linkdropper(event);" ondragleave="linkdropexit(event);" ondragover="linkdropper(event);" ondrop="linkdrop(event);" >{{$comment}}</textarea>
{{if $qcomment}}
<select id="qcomment-select-{{$id}}" name="qcomment-{{$id}}" class="qcomment" onchange="qCommentInsert(this,{{$id}});" >
<option value=""></option>
diff --git a/view/tpl/contact_block.tpl b/view/tpl/contact_block.tpl
index 6a29abaef..580a8a41c 100755
--- a/view/tpl/contact_block.tpl
+++ b/view/tpl/contact_block.tpl
@@ -1,13 +1,14 @@
<div id="contact-block" class="widget">
-<h3>{{$contacts}}</h3>
-{{if $micropro}}
- {{if $viewconnections}}
- <a class="allcontact-link" href="viewconnections/{{$nickname}}">{{$viewconnections}}</a>
- {{/if}}
- <div class='contact-block-content'>
- {{foreach $micropro as $m}}
- {{$m}}
- {{/foreach}}
- </div>
-{{/if}}
+ <h3>{{$contacts}}</h3>
+ {{if $micropro}}
+ {{if $viewconnections}}
+ <a class="allcontact-link" href="viewconnections/{{$nickname}}">{{$viewconnections}}</a>
+ {{/if}}
+ <div class='contact-block-content'>
+ {{foreach $micropro as $m}}
+ {{$m}}
+ {{/foreach}}
+ </div>
+ {{/if}}
</div>
+<div class="clear"></div>
diff --git a/view/tpl/cover_photo_widget.tpl b/view/tpl/cover_photo_widget.tpl
index 4e210a300..2b47270c9 100755
--- a/view/tpl/cover_photo_widget.tpl
+++ b/view/tpl/cover_photo_widget.tpl
@@ -1,22 +1,28 @@
<script>
var aside_padding_top;
var section_padding_top;
+ var coverSlid = false;
$(document).ready(function() {
aside_padding_top = parseInt($('aside').css('padding-top'));
section_padding_top = parseInt($('section').css('padding-top'));
+ $(document).on('click', slideUpCover);
+
if($('#cover-photo').length && $(window).width() > 755) {
- $('.navbar-fixed-top').css('position', 'relative');
- $('main').css('margin-top', - $('nav').outerHeight(true) + 'px');
- $('aside').css('padding-top', aside_padding_top - $('nav').outerHeight() + 'px');
- $('section').css('padding-top', section_padding_top - $('nav').outerHeight() + 'px');
- $('main').css('opacity', 0);
- $('header').hide();
+ if($(window).scrollTop() < $('#cover-photo').height()) {
+ $('main').css('margin-top', - $('nav').outerHeight(true) + 'px');
+ $('aside').css('padding-top', aside_padding_top - $('nav').outerHeight() + 'px');
+ $('section').css('padding-top', section_padding_top - $('nav').outerHeight() + 'px');
+ $('.navbar-fixed-top').css('position', 'relative');
+ $('main').css('opacity', 0);
+ $('header').hide();
+ }
}
else {
$('#cover-photo').remove();
+ coverSlid = true;
}
});
@@ -26,10 +32,26 @@
$('main').css('opacity', 1);
$('aside').css('padding-top', aside_padding_top + 'px');
$('section').css('padding-top', section_padding_top + 'px');
- $(window).scrollTop($(window).scrollTop() - $('#cover-photo').height())
- $('.navbar-fixed-top').css('position', 'fixed');
+ $('.navbar-fixed-top').css('position', '');
$('main').css('margin-top', '');
- $('#cover-photo').remove();
+ coverSlid = true;
+ }
+ else if ($('#cover-photo').length && $(window).width() > 755 && $(window).scrollTop() < $('#cover-photo').height()){
+ if(coverSlid) {
+ $(window).scrollTop(Math.ceil($('#cover-photo').height()));
+ setTimeout(function(){ coverSlid = false; }, 1000);
+ }
+ else {
+ if($(window).scrollTop() < $('#cover-photo').height()) {
+ $('main').css('margin-top', - $('nav').outerHeight(true) + 'px');
+ $('aside').css('padding-top', aside_padding_top - $('nav').outerHeight() + 'px');
+ $('section').css('padding-top', section_padding_top - $('nav').outerHeight() + 'px');
+
+ $('.navbar-fixed-top').css('position', 'relative');
+ $('main').css('opacity', 0);
+ $('header').hide();
+ }
+ }
}
if($('#cover-photo').length) {
$('main').css('opacity', ($(window).scrollTop()/$('#cover-photo').height()).toFixed(1));
@@ -38,21 +60,26 @@
$(window).resize(function () {
if($('#cover-photo').length && $(window).width() < 755) {
+ $('#cover-photo').remove();
$('main').css('opacity', 1);
$('aside').css('padding-top', aside_padding_top + 'px');
$('section').css('padding-top', section_padding_top + 'px');
- $('.navbar-fixed-top').css('position', 'fixed');
- $('#cover-photo').remove();
+ $('.navbar-fixed-top').css('position', '');
+ coverSlid = true;
}
});
function slideUpCover() {
+ if(coverSlid) {
+ return;
+ }
$('html, body').animate({scrollTop: Math.ceil($('#cover-photo').height()) + 'px' });
+ return;
}
</script>
-<div id="cover-photo" onclick="slideUpCover();" title="{{$hovertitle}}">
+<div id="cover-photo" title="{{$hovertitle}}">
{{$photo_html}}
<div id="cover-photo-caption">
<div class="cover-photo-title">
diff --git a/view/tpl/event_head.tpl b/view/tpl/event_head.tpl
index fee4f17a3..646c68564 100755
--- a/view/tpl/event_head.tpl
+++ b/view/tpl/event_head.tpl
@@ -1,7 +1,7 @@
<link rel='stylesheet' type='text/css' href='{{$baseurl}}/library/fullcalendar/fullcalendar.css' />
<script language="javascript" type="text/javascript" src="{{$baseurl}}/library/moment/moment.min.js"></script>
<script language="javascript" type="text/javascript" src="{{$baseurl}}/library/fullcalendar/fullcalendar.min.js"></script>
-<script language="javascript" type="text/javascript" src="{{$baseurl}}/library/fullcalendar/lang-all.js"></script>
+<script language="javascript" type="text/javascript" src="{{$baseurl}}/library/fullcalendar/locale-all.js"></script>
<script>
function showEvent(eventid) {
@@ -154,9 +154,9 @@
});
// ACL
- $('#id_share').change(function() {
+ $('#id_distr').change(function() {
- if ($('#id_share').is(':checked')) {
+ if ($('#id_distr').is(':checked')) {
$('#dbtn-acl').show();
}
else {
@@ -164,18 +164,6 @@
}
}).trigger('change');
- $('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
- var selstr;
- $('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() {
- selstr = $(this).text();
- $('#jot-public').hide();
- });
- if(selstr == null) {
- $('#jot-public').show();
- }
-
- }).trigger('change');
-
});
</script>
diff --git a/view/tpl/field_combobox.tpl b/view/tpl/field_combobox.tpl
index 337c60673..523595c0b 100755
--- a/view/tpl/field_combobox.tpl
+++ b/view/tpl/field_combobox.tpl
@@ -1,13 +1,13 @@
- <div class='field combobox'>
+ <div class='field combobox input form-group'>
<label class="mainlabel" for='id_{{$field.0}}' id='id_{{$field.0}}_label'>{{$field.1}}</label>
- {{* html5 don't work on Chrome, Safari and IE9 see https://github.com/thgreasi/datalist-polyfill
+ {{*
<input id="id_{{$field.0}}" type="text" list="data_{{$field.0}}" >
<datalist id="data_{{$field.0}}" >
{{foreach $field.4 as $opt=>$val}}<option value="{{$val}}">{{/foreach}}
- </datalist> *}}
+ </datalist>*}}
- <input id="id_{{$field.0}}" type="text" value="{{$field.2}}">
- <select id="select_{{$field.0}}" onChange="$('#id_{{$field.0}}').val($(this).val())">
+ <input id="id_{{$field.0}}" class="form-control" type="text" value="{{$field.2}}">
+ <select id="select_{{$field.0}}" class="form-control" onChange="$('#id_{{$field.0}}').val($(this).val())">
<option value="">{{$field.5}}</option>
{{foreach $field.4 as $opt=>$val}}<option value="{{$val}}">{{$val}}</option>{{/foreach}}
</select>
diff --git a/view/tpl/field_themeselect.tpl b/view/tpl/field_themeselect.tpl
index 250f9fcf1..7a529774c 100755
--- a/view/tpl/field_themeselect.tpl
+++ b/view/tpl/field_themeselect.tpl
@@ -1,9 +1,13 @@
- {{if $field.5=='preview'}}<script>$(document).ready(function(){ previewTheme($("#id_{{$field.0}}")[0]); });</script>{{/if}}
+ {{if $field.5 == 'preview'}}
+ <script>$(document).ready(function(){ previewTheme($("#id_{{$field.0}}")[0]); });</script>
+ {{/if}}
<div class='form-group field select'>
<label for='id_{{$field.0}}'>{{$field.1}}</label>
- <select class="form-control" name='{{$field.0}}' id='id_{{$field.0}}' {{if $field.5=='preview'}}onchange="previewTheme(this);"{{/if}} >
+ <select class="form-control" name='{{$field.0}}' id='id_{{$field.0}}' {{if $field.5 == 'preview'}}onchange="previewTheme(this);"{{/if}} >
{{foreach $field.4 as $opt=>$val}}<option value="{{$opt}}" {{if $opt==$field.2}}selected="selected"{{/if}}>{{$val}}</option>{{/foreach}}
</select>
<span class='field_help'>{{$field.3}}</span>
- {{if $field.5=='preview'}}<div id="theme-preview"></div>{{/if}}
+ {{if $field.5=='preview'}}
+ <div id="theme-preview"></div>
+ {{/if}}
</div>
diff --git a/view/tpl/filer_dialog.tpl b/view/tpl/filer_dialog.tpl
index ae59ab713..71e075958 100755
--- a/view/tpl/filer_dialog.tpl
+++ b/view/tpl/filer_dialog.tpl
@@ -1,4 +1,6 @@
+<div class="item-filer-dialog">
{{include file="field_combobox.tpl"}}
<div class="settings-submit-wrapper" >
<input id="filer_save" type="button" class="settings-submit" value="{{$submit}}" />
</div>
+</div>
diff --git a/view/tpl/install_settings.tpl b/view/tpl/install_settings.tpl
index 5ecd3243b..f7a0108a8 100755
--- a/view/tpl/install_settings.tpl
+++ b/view/tpl/install_settings.tpl
@@ -19,7 +19,7 @@
{{include file="field_input.tpl" field=$adminmail}}
{{include file="field_input.tpl" field=$siteurl}}
-{{include file="field_checkbox.tpl" field=$advanced}}
+{{include file="field_select.tpl" field=$server_role}}
{{include file="field_select_grouped.tpl" field=$timezone}}
diff --git a/view/tpl/jot-header.tpl b/view/tpl/jot-header.tpl
index c63aa053e..ac657e63f 100755
--- a/view/tpl/jot-header.tpl
+++ b/view/tpl/jot-header.tpl
@@ -262,8 +262,30 @@ function enableOnUser(){
function linkdropper(event) {
var linkFound = event.dataTransfer.types.contains("text/uri-list");
- if(linkFound)
+ if(linkFound) {
event.preventDefault();
+ var editwin = '#' + event.target.id;
+ var commentwin = false;
+ if(editwin) {
+ commentwin = ((editwin.indexOf('comment') >= 0) ? true : false);
+ if(commentwin) {
+ var commentid = editwin.substring(editwin.lastIndexOf('-') + 1);
+ $('#comment-edit-text-' + commentid).addClass('hover');
+ }
+ }
+ }
+ }
+
+ function linkdropexit(event) {
+ var editwin = '#' + event.target.id;
+ var commentwin = false;
+ if(editwin) {
+ commentwin = ((editwin.indexOf('comment') >= 0) ? true : false);
+ if(commentwin) {
+ var commentid = editwin.substring(editwin.lastIndexOf('-') + 1);
+ $('#comment-edit-text-' + commentid).removeClass('hover');
+ }
+ }
}
function linkdrop(event) {
@@ -276,6 +298,7 @@ function enableOnUser(){
if(commentwin) {
var commentid = editwin.substring(editwin.lastIndexOf('-') + 1);
commentOpen(document.getElementById(event.target.id),commentid);
+
}
}
diff --git a/view/tpl/jot.tpl b/view/tpl/jot.tpl
index 20357b66f..a3bfad842 100755
--- a/view/tpl/jot.tpl
+++ b/view/tpl/jot.tpl
@@ -80,10 +80,10 @@
</button>
{{/if}}
{{if $embedPhotos}}
- <button id="embed-photo-wrapper" class="btn btn-default btn-sm" title="{{$embedPhotos}}" onclick="initializeEmbedPhotoDialog();return false;">
- <i id="embed-photo" class="fa fa-file-image-o jot-icons"></i>
- </button>
- {{/if}}
+ <button id="embed-photo-wrapper" class="btn btn-default btn-sm" title="{{$embedPhotos}}" onclick="initializeEmbedPhotoDialog();return false;">
+ <i id="embed-photo" class="fa fa-file-image-o jot-icons"></i>
+ </button>
+ {{/if}}
</div>
<div class="btn-group hidden-xs hidden-sm">
{{if $setloc}}
@@ -130,7 +130,7 @@
<button type="button" id="more-tools" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
<i id="more-tools-icon" class="fa fa-caret-down jot-icons"></i>
</button>
- <ul class="dropdown-menu dropdown-menu" role="menu">
+ <ul class="dropdown-menu" role="menu">
{{if $visitor}}
{{if $writefiles}}
<li><a id="wall-file-upload-sub" href="#" ><i class="fa fa-paperclip"></i>&nbsp;{{$attach}}</a></li>
@@ -173,17 +173,42 @@
<i class="fa fa-eye jot-icons" ></i>
</button>
{{/if}}
+ {{if $jotnets}}
+ <button id="dbtn-jotnets" class="btn btn-default btn-sm" data-toggle="modal" data-target="#jotnetsModal" type="button" title="{{$jotnets_label}}" style="{{if $lockstate == 'lock'}}display: none;{{/if}}">
+ <i class="fa fa-share-alt jot-icons"></i>
+ </button>
+ {{/if}}
{{if $showacl}}
- <button id="dbtn-acl" class="acl-select btn btn-default btn-sm" data-toggle="modal" data-target="#aclModal" title="{{$permset}}" type="button" data-form_id="profile-jot-form">
+ <button id="dbtn-acl" class="btn btn-default btn-sm" data-toggle="modal" data-target="#aclModal" title="{{$permset}}" type="button" data-form_id="profile-jot-form">
<i id="jot-perms-icon" class="fa fa-{{$lockstate}} jot-icons"></i>{{if $bang}}&nbsp;<i class="fa fa-exclamation jot-icons"></i>{{/if}}
</button>
{{/if}}
- <button id="dbtn-submit" class="acl-submit btn btn-primary btn-sm" type="submit" tabindex=3 name="button-submit">{{$share}}</button>
+ <button id="dbtn-submit" class="btn btn-primary btn-sm" type="submit" tabindex="3" name="button-submit">{{$share}}</button>
</div>
- <div id="profile-jot-perms-end"></div>
+ <div class="clear"></div>
+ {{if $jotplugins}}
<div id="profile-jot-plugin-wrapper">
{{$jotplugins}}
</div>
+ {{/if}}
+ {{if $jotnets}}
+ <div class="modal" id="jotnetsModal" tabindex="-1" role="dialog" aria-labelledby="jotnetsModalLabel" aria-hidden="true">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+ <h4 class="modal-title" id="expiryModalLabel">{{$jotnets_label}}</h4>
+ </div>
+ <div class="modal-body">
+ {{$jotnets}}
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
+ </div>
+ </div><!-- /.modal-content -->
+ </div><!-- /.modal-dialog -->
+ </div><!-- /.modal -->
+ {{/if}}
</div>
<div id="profile-jot-text-loading"></div>
<div id="profile-jot-end" class="clear"></div>
@@ -197,70 +222,78 @@
{{if $feature_expire}}
<!-- Modal for item expiry-->
<div class="modal" id="expiryModal" tabindex="-1" role="dialog" aria-labelledby="expiryModalLabel" aria-hidden="true">
- <div class="modal-dialog">
- <div class="modal-content">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
- <h4 class="modal-title" id="expiryModalLabel">{{$expires}}</h4>
- </div>
- <!-- <div class="modal-body"> -->
- <div class="modal-body form-group" style="width:90%">
- <div class='date'><input type='text' placeholder='yyyy-mm-dd HH:MM' name='start_text' id='expiration-date' class="form-control" /></div><script type='text/javascript'>$(function () {var picker = $('#expiration-date').datetimepicker({format:'Y-m-d H:i', minDate: 0 }); })</script>
- </div>
- <!-- </div> -->
- <div class="modal-footer">
- <button type="button" class="btn btn-default" data-dismiss="modal">{{$expiryModalCANCEL}}</button>
- <button id="expiry-modal-OKButton" type="button" class="btn btn-primary">{{$expiryModalOK}}</button>
- </div>
- </div><!-- /.modal-content -->
- </div><!-- /.modal-dialog -->
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+ <h4 class="modal-title" id="expiryModalLabel">{{$expires}}</h4>
+ </div>
+ <div class="modal-body form-group" style="width:90%">
+ <div class="date">
+ <input type="text" placeholder="yyyy-mm-dd HH:MM" name="start_text" id="expiration-date" class="form-control" />
+ </div>
+ <script>
+ $(function () {
+ var picker = $('#expiration-date').datetimepicker({format:'Y-m-d H:i', minDate: 0 });
+ });
+ </script>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal">{{$expiryModalCANCEL}}</button>
+ <button id="expiry-modal-OKButton" type="button" class="btn btn-primary">{{$expiryModalOK}}</button>
+ </div>
+ </div><!-- /.modal-content -->
+ </div><!-- /.modal-dialog -->
</div><!-- /.modal -->
{{/if}}
{{if $feature_future}}
-<!-- Modal for item created-->
<div class="modal" id="createdModal" tabindex="-1" role="dialog" aria-labelledby="createdModalLabel" aria-hidden="true">
- <div class="modal-dialog">
- <div class="modal-content">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
- <h4 class="modal-title" id="createdModalLabel">{{$future_txt}}</h4>
- </div>
- <!-- <div class="modal-body"> -->
- <div class="modal-body form-group" style="width:90%">
- <div class='date'><input type='text' placeholder='yyyy-mm-dd HH:MM' name='created_text' id='created-date' class="form-control" /></div><script type='text/javascript'>$(function () {var picker = $('#created-date').datetimepicker({format:'Y-m-d H:i', minDate: 0 }); })</script>
- </div>
- <!-- </div> -->
- <div class="modal-footer">
- <button type="button" class="btn btn-default" data-dismiss="modal">{{$expiryModalCANCEL}}</button>
- <button id="created-modal-OKButton" type="button" class="btn btn-primary">{{$expiryModalOK}}</button>
- </div>
- </div><!-- /.modal-content -->
- </div><!-- /.modal-dialog -->
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+ <h4 class="modal-title" id="createdModalLabel">{{$future_txt}}</h4>
+ </div>
+ <div class="modal-body form-group" style="width:90%">
+ <div class="date">
+ <input type="text" placeholder="yyyy-mm-dd HH:MM" name="created_text" id="created-date" class="form-control" />
+ </div>
+ <script>
+ $(function () {
+ var picker = $('#created-date').datetimepicker({format:'Y-m-d H:i', minDate: 0 });
+ });
+ </script>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal">{{$expiryModalCANCEL}}</button>
+ <button id="created-modal-OKButton" type="button" class="btn btn-primary">{{$expiryModalOK}}</button>
+ </div>
+ </div><!-- /.modal-content -->
+ </div><!-- /.modal-dialog -->
</div><!-- /.modal -->
{{/if}}
{{if $embedPhotos}}
<div class="modal" id="embedPhotoModal" tabindex="-1" role="dialog" aria-labelledby="embedPhotoLabel" aria-hidden="true">
- <div class="modal-dialog">
- <div class="modal-content">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
- <h4 class="modal-title" id="embedPhotoModalLabel">{{$embedPhotosModalTitle}}</h4>
- </div>
- <div class="modal-body" id="embedPhotoModalBody" >
- <div id="embedPhotoModalBodyAlbumListDialog" class="hide">
- <div id="embedPhotoModalBodyAlbumList"></div>
- </div>
- <div id="embedPhotoModalBodyAlbumDialog" class="hide">
- </div>
- </div>
- <div class="modal-footer">
- <button type="button" class="btn btn-default" data-dismiss="modal">{{$embedPhotosModalCancel}}</button>
- <button id="embed-photo-OKButton" type="button" class="btn btn-primary">{{$embedPhotosModalOK}}</button>
- </div>
- </div><!-- /.modal-content -->
- </div><!-- /.modal-dialog -->
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+ <h4 class="modal-title" id="embedPhotoModalLabel">{{$embedPhotosModalTitle}}</h4>
+ </div>
+ <div class="modal-body" id="embedPhotoModalBody" >
+ <div id="embedPhotoModalBodyAlbumListDialog" class="hide">
+ <div id="embedPhotoModalBodyAlbumList"></div>
+ </div>
+ <div id="embedPhotoModalBodyAlbumDialog" class="hide"></div>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal">{{$embedPhotosModalCancel}}</button>
+ <button id="embed-photo-OKButton" type="button" class="btn btn-primary">{{$embedPhotosModalOK}}</button>
+ </div>
+ </div><!-- /.modal-content -->
+ </div><!-- /.modal-dialog -->
</div><!-- /.modal -->
{{/if}}
diff --git a/view/tpl/msg-header.tpl b/view/tpl/msg-header.tpl
index 3407e152c..013e1cfdc 100755
--- a/view/tpl/msg-header.tpl
+++ b/view/tpl/msg-header.tpl
@@ -1,52 +1,9 @@
-<script language="javascript" type="text/javascript" src="{{$baseurl}}/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
+<script type="text/javascript" src="view/js/ajaxupload.js" ></script>
<script language="javascript" type="text/javascript">
-var plaintext = '{{$editselect}}';
-
-if(plaintext != 'none') {
- tinyMCE.init({
- theme : "advanced",
- mode : "specific_textareas",
- editor_selector: /(profile-jot-text|prvmail-text)/,
- plugins : "bbcode,paste",
- theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor",
- theme_advanced_buttons2 : "",
- theme_advanced_buttons3 : "",
- theme_advanced_toolbar_location : "top",
- theme_advanced_toolbar_align : "center",
- theme_advanced_blockformats : "blockquote,code",
- gecko_spellcheck : true,
- paste_text_sticky : true,
- entity_encoding : "raw",
- add_unload_trigger : false,
- remove_linebreaks : false,
- force_p_newlines : false,
- force_br_newlines : true,
- forced_root_block : '',
- convert_urls: false,
- content_css: "{{$baseurl}}/view/custom_tinymce.css",
- //Character count
- theme_advanced_path : false,
- setup : function(ed) {
- ed.onInit.add(function(ed) {
- ed.pasteAsPlainText = true;
- var editorId = ed.editorId;
- var textarea = $('#'+editorId);
- if (typeof(textarea.attr('tabindex')) != "undefined") {
- $('#'+editorId+'_ifr').attr('tabindex', textarea.attr('tabindex'));
- textarea.attr('tabindex', null);
- }
- });
- }
- });
-}
-else
$("#prvmail-text").editor_autocomplete(baseurl+"/acl");
-</script>
-<script type="text/javascript" src="view/js/ajaxupload.js" ></script>
-<script>
$(document).ready(function() {
var file_uploader = new window.AjaxUpload(
@@ -114,12 +71,8 @@ else
}
function addmailtext(data) {
- if(plaintext == 'none') {
- var currentText = $("#prvmail-text").val();
- $("#prvmail-text").val(currentText + data);
- }
- else
- tinyMCE.execCommand('mceInsertRawHTML',false,data);
+ var currentText = $("#prvmail-text").val();
+ $("#prvmail-text").val(currentText + data);
}
diff --git a/view/tpl/nav.tpl b/view/tpl/nav.tpl
index 5be6d21bd..d08cb29ea 100755
--- a/view/tpl/nav.tpl
+++ b/view/tpl/nav.tpl
@@ -52,24 +52,6 @@
</div>
<div class="collapse navbar-collapse" id="navbar-collapse-1">
<ul class="nav navbar-nav navbar-left">
- {{if $nav.register}}<li class="{{$nav.register.2}}"><a href="{{$nav.register.0}}" title="{{$nav.register.3}}" id="{{$nav.register.4}}">{{$nav.register.1}}</a></li>{{/if}}
- {{if !$userinfo}}
- {{if $nav.loginmenu}}
- <li class="{{$nav.loginmenu.0.2}} hidden-xs">
- <a data-toggle="dropdown" href="{{$nav.loginmenu.0.0}}" title="{{$nav.loginmenu.0.3}}" id="{{$nav.loginmenu.0.4}}">{{$nav.loginmenu.0.1}} <span class="caret" id="loginmenu-caret"></span></a>
- <ul class="dropdown-menu" role="menu">
- {{foreach $nav.loginmenu as $loginmenu}}
- <li role="presentation"><a class="{{$loginmenu.2}}" href="{{$loginmenu.0}}" title="{{$loginmenu.3}}" role="menuitem" id="{{$loginmenu.4}}">{{$loginmenu.1}}</a></li>
- {{/foreach}}
- </ul>
- </li>
- {{foreach $nav.loginmenu as $loginmenu}}
- <li role="presentation"><a class="{{$loginmenu.2}} visible-xs" href="{{$loginmenu.0}}" title="{{$loginmenu.3}}" role="menuitem">{{$loginmenu.1}}</a></li>
- {{/foreach}}
- {{/if}}
- {{/if}}
-
- {{if $nav.alogout}}<li class="{{$nav}}-alogout.2"><a href="{{$nav.alogout.0}}" title="{{$nav.alogout.3}}" id="{{$nav.alogout.4}}">{{$nav.alogout.1}}</a></li>{{/if}}
{{if $nav.network}}
<li class="{{$sel.network}} hidden-xs">
@@ -103,7 +85,6 @@
</li>
{{/if}}
-
{{if $nav.messages}}
<li class="{{$sel.messages}} hidden-xs">
<a class="{{$nav.messages.2}}" href="{{$nav.messages.0}}" title="{{$nav.messages.3}}" id="{{$nav.messages.4}}"><i class="fa fa-envelope"></i></a>
@@ -166,7 +147,30 @@
<span class="notify-update badge" rel="#nav-notify-menu"></span>
</li>
{{/if}}
+
+ {{if $nav.loginmenu && !$userinfo}}
+ <li class="{{$nav.loginmenu.0.2}} hidden-xs">
+ <a data-toggle="dropdown" href="{{$nav.loginmenu.0.0}}" title="{{$nav.loginmenu.0.3}}" id="{{$nav.loginmenu.0.4}}">{{$nav.loginmenu.0.1}} <span class="caret" id="loginmenu-caret"></span></a>
+ <ul class="dropdown-menu" role="menu">
+ {{foreach $nav.loginmenu as $loginmenu}}
+ <li role="presentation"><a class="{{$loginmenu.2}}" href="{{$loginmenu.0}}" title="{{$loginmenu.3}}" role="menuitem" id="{{$loginmenu.4}}">{{$loginmenu.1}}</a></li>
+ {{/foreach}}
+ </ul>
+ </li>
+ {{foreach $nav.loginmenu as $loginmenu}}
+ <li role="presentation"><a class="{{$loginmenu.2}} visible-xs" href="{{$loginmenu.0}}" title="{{$loginmenu.3}}" role="menuitem">{{$loginmenu.1}}</a></li>
+ {{/foreach}}
+ {{/if}}
+
+ {{if $nav.register}}
+ <li class="{{$nav.register.2}}"><a href="{{$nav.register.0}}" title="{{$nav.register.3}}" id="{{$nav.register.4}}">{{$nav.register.1}}</a></li>
+ {{/if}}
+
+ {{if $nav.alogout}}
+ <li class="{{$nav}}-alogout.2"><a href="{{$nav.alogout.0}}" title="{{$nav.alogout.3}}" id="{{$nav.alogout.4}}">{{$nav.alogout.1}}</a></li>
+ {{/if}}
</ul>
+
<ul class="nav navbar-nav navbar-right">
<li class="hidden-xs">
<form method="get" action="search" role="search">
@@ -180,6 +184,7 @@
{{if $powered_by}}
<div id="powered-by">{{$powered_by}}</div>
{{/if}}
+
{{if $nav.directory}}
<li class="{{$sel.directory}}">
<a class="{{$nav.directory.2}}" href="{{$nav.directory.0}}" title="{{$nav.directory.3}}" id="{{$nav.directory.4}}"><i class="fa fa-sitemap"></i></a>
diff --git a/view/tpl/photo_view.tpl b/view/tpl/photo_view.tpl
index ec827d990..db5ffe3f5 100755
--- a/view/tpl/photo_view.tpl
+++ b/view/tpl/photo_view.tpl
@@ -79,6 +79,9 @@
<input name="newtag" id="photo-edit-newtag" class="form-control" title="{{$edit.help_tags}}" type="text" />
</div>
<div class="form-group">
+ {{include file="field_select.tpl" field=$edit.album_select}}
+ </div>
+ <div class="form-group">
<label class="radio-inline" id="photo-edit-rotate-cw-label" for="photo-edit-rotate-cw"><input id="photo-edit-rotate-cw" type="radio" name="rotate" value="1" />{{$edit.rotatecw}}</label>
<label class="radio-inline" id="photo-edit-rotate-ccw-label" for="photo-edit-rotate-ccw"><input id="photo-edit-rotate-ccw" type="radio" name="rotate" value="2" />{{$edit.rotateccw}}</label>
</div>
diff --git a/view/tpl/profed_head.tpl b/view/tpl/profed_head.tpl
index 103960a76..ce774052a 100755
--- a/view/tpl/profed_head.tpl
+++ b/view/tpl/profed_head.tpl
@@ -1,36 +1,2 @@
-<script language="javascript" type="text/javascript"
- src="{{$baseurl}}/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
- <script language="javascript" type="text/javascript">
-
-
-tinyMCE.init({
- theme : "advanced",
- mode : "{{$editselect}}",
- plugins : "bbcode,paste",
- theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",
- theme_advanced_buttons2 : "",
- theme_advanced_buttons3 : "",
- theme_advanced_toolbar_location : "top",
- theme_advanced_toolbar_align : "center",
- theme_advanced_blockformats : "blockquote,code",
- gecko_spellcheck : true,
- paste_text_sticky : true,
- entity_encoding : "raw",
- add_unload_trigger : false,
- remove_linebreaks : false,
- force_p_newlines : false,
- force_br_newlines : true,
- forced_root_block : '',
- content_css: "{{$baseurl}}/view/custom_tinymce.css",
- theme_advanced_path : false,
- setup : function(ed) {
- ed.onInit.add(function(ed) {
- ed.pasteAsPlainText = true;
- });
- }
-
-});
-
-
-</script>
+<script language="javascript" type="text/javascript"></script>
diff --git a/view/tpl/settings_account.tpl b/view/tpl/settings_account.tpl
index 06f47bbe1..8ff846518 100755
--- a/view/tpl/settings_account.tpl
+++ b/view/tpl/settings_account.tpl
@@ -11,6 +11,13 @@
{{include file="field_password.tpl" field=$origpass}}
{{include file="field_password.tpl" field=$password1}}
{{include file="field_password.tpl" field=$password2}}
+
+ {{if $z_server_role == 'pro' && ! $techlock}}
+ {{include file="field_select.tpl" field=$techlevel}}
+ {{else}}
+ <input type="hidden" name="techlevel" value="{{$techlevel.2}}" />
+ {{/if}}
+
<div class="settings-submit-wrapper" >
<button type="submit" name="submit" class="btn btn-primary">{{$submit}}</button>
</div>
diff --git a/view/tpl/sitesearch.tpl b/view/tpl/sitesearch.tpl
new file mode 100644
index 000000000..8dbf8cef5
--- /dev/null
+++ b/view/tpl/sitesearch.tpl
@@ -0,0 +1,5 @@
+<div class="widget saved-search-widget">
+ <h3 id="search">{{$title}}</h3>
+ {{$searchbox}}
+ <div class="clear"></div>
+</div>
diff --git a/view/tpl/webpage_export_list.tpl b/view/tpl/webpage_export_list.tpl
new file mode 100644
index 000000000..1d28f62df
--- /dev/null
+++ b/view/tpl/webpage_export_list.tpl
@@ -0,0 +1,124 @@
+<div class="generic-content-wrapper">
+ <form action="" method="post" autocomplete="on" >
+ <input type="hidden" name="action" value="{{$action}}">
+ <div class="section-title-wrapper">
+ <div class="pull-right">
+ <button class="btn btn-md btn-success" type="submit" name="submit" value="{{$exportbtn}}">{{$exportbtn}}</button>
+ </div>
+ <h2>{{$title}}</h2>
+ <div class="clear"></div>
+ </div>
+ <div id="import-website-content-wrapper" class="section-content-wrapper">
+ <div class="pull-left">
+ <button id="toggle-select-all" class="btn btn-xs btn-primary" onclick="checkedAll(window.isChecked); return false;"><i class="fa fa-check"></i>&nbsp;Toggle Select All</button>
+ </div>
+ <div class="clear"></div>
+ <hr>
+ <!--<h4>Pages</h4>-->
+ <div>
+ <table class="table-striped table-responsive table-hover" style="width: 100%;">
+ <thead>
+ <tr><th></th><th>Page Link</th><th>Page Title</th><th>Type</th></tr>
+ </thead>
+ {{foreach $pages as $page}}
+ <tr>
+ <td width="30px" style="padding-right: 20px;">
+ <div class='squaredThree'>
+ <input type="checkbox" id="page_{{$page.mid}}" name="page[]" value="{{$page.mid}}">
+ <label for="page_{{$page.mid}}"></label>
+ </div>
+ </td>
+ <td width="30%">
+ <div class="desc">
+ {{$page.pagetitle}}<br>
+ </div>
+ </td>
+ <td width="55%">
+ <div class='desc'>
+ {{$page.title}}<br>
+ </div>
+ </td>
+ <td width="15%">
+ <div class='desc'>
+ {{$page.mimetype}}<br>
+ </div>
+ </td>
+ </tr>
+ {{/foreach}}
+ </table>
+ </div>
+ <hr>
+ <div class="clear"></div>
+ <!--<h4>Layouts</h4>-->
+ <div>
+ <table class="table-striped table-responsive table-hover" style="width: 100%;">
+ <thead>
+ <tr><th width="20px"></th><th>Layout Name</th><th>Layout Description</th><th>Type</th></tr>
+ </thead>
+ {{foreach $layouts as $layout}}
+ <tr>
+ <td width="30px" style="padding-right: 20px;">
+ <div class='squaredThree'>
+ <input type="checkbox" id="layout_{{$layout.mid}}" name="layout[]" value="{{$layout.mid}}">
+ <label for="layout_{{$layout.mid}}"></label>
+ </div>
+ </td>
+ <td width="30%">
+ <div class="desc">
+ {{$layout.name}}<br>
+ </div>
+ </td>
+ <td width="55%">
+ <div class='desc'>
+ {{$layout.description}}<br>
+ </div>
+ </td>
+ <td width="15%">
+ <div class='desc'>
+ {{$layout.mimetype}}<br>
+ </div>
+ </td>
+ </tr>
+ {{/foreach}}
+ </table>
+ </div>
+ <hr>
+ <div class="clear"></div>
+ <!--<h4>Blocks</h4>-->
+ <div>
+ <table class="table-striped table-responsive table-hover" style="width: 100%;">
+ <thead>
+ <tr><th width="30px"></th><th>Block Name</th><th>Block Title</th><th>Type</th></tr>
+ </thead>
+ {{foreach $blocks as $block}}
+ <tr>
+ <td width="30px" style="padding-right: 20px;">
+ <div class='squaredThree'>
+ <input type="checkbox" id="block_{{$block.mid}}" name="block[]" value="{{$block.mid}}">
+ <label for="block_{{$block.mid}}"></label>
+ </div>
+ </td>
+ <td width="30%">
+ <div class="desc">
+ {{$block.name}}<br>
+ </div>
+ </td>
+ <td width="55%">
+ <div class='desc'>
+ {{$block.title}}<br>
+ </div>
+ </td>
+ <td width=15%">
+ <div class='desc'>
+ {{$block.mimetype}}<br>
+ </div>
+ </td>
+ </tr>
+ {{/foreach}}
+ </table>
+ </div>
+
+ </div>
+ </form>
+</div>
+
diff --git a/view/tpl/website_import_tools.tpl b/view/tpl/website_import_tools.tpl
deleted file mode 100644
index cb3e6b524..000000000
--- a/view/tpl/website_import_tools.tpl
+++ /dev/null
@@ -1,37 +0,0 @@
-<div id="website-import-tools" class="widget">
- <h3>{{$title}}</h3>
- <ul class="nav nav-pills nav-stacked">
- <li>
- <a href="#" onclick="openClose('import-form');
- return false;"><i class="fa fa-cloud-upload generic-icons"></i> {{$import_label}}</a>
- </li>
- <li>
- <form id="import-form" enctype="multipart/form-data" method="post" action="" style="display: none;" class="sub-menu">
-
- <input type="hidden" name="action" value="scan">
-
- <p style="margin-top: 20px;" class="descriptive-text">{{$file_import_text}}</p>
- <div class="form-group">
- <div class="input-group">
- <input class="widget-input" type="text" name="path" title="{{$hint}}" placeholder="{{$desc}}" />
- <div class="input-group-btn">
- <button class="btn btn-default btn-sm" type="submit" name="cloudsubmit" value="{{$select}}"><i class="fa fa-folder-open generic-icons"></i></button>
- </div>
- </div>
- </div>
-
- <!-- Or upload a zipped file containing the website -->
- <p class="descriptive-text">{{$file_upload_text}}</p>
- <div class="form-group">
-
- <div class="input-group">
- <input class="widget-input" type="file" name="zip_file" />
- <div class="input-group-btn">
- <button class="btn btn-default btn-sm" type="submit" name="w_upload" value="w_upload"><i class="fa fa-file-archive-o generic-icons"></i></button>
- </div>
- </div>
- </div>
- </form>
- </li>
- </ul>
-</div>
diff --git a/view/tpl/website_portation_tools.tpl b/view/tpl/website_portation_tools.tpl
new file mode 100644
index 000000000..10468b64e
--- /dev/null
+++ b/view/tpl/website_portation_tools.tpl
@@ -0,0 +1,72 @@
+<div id="website-portation-tools" class="widget">
+ <ul class="nav nav-pills nav-stacked">
+ <li>
+ <a href="#" onclick="openClose('import-form');
+ return false;"><i class="fa fa-cloud-upload generic-icons"></i> {{$import_label}}</a>
+ </li>
+ <li style="margin-left: 12px;" >
+ <form id="import-form" enctype="multipart/form-data" method="post" action="" style="display: none;" class="sub-menu">
+
+ <input type="hidden" name="action" value="scan">
+
+ <p style="margin-top: 10px;" class="descriptive-text">{{$file_import_text}}</p>
+ <div class="form-group">
+ <div class="input-group">
+ <input class="widget-input" type="text" name="path" title="{{$hint}}" placeholder="{{$desc}}" />
+ <div class="input-group-btn">
+ <button class="btn btn-default btn-sm" type="submit" name="cloudsubmit" value="{{$select}}"><i class="fa fa-folder-open generic-icons"></i></button>
+ </div>
+ </div>
+ </div>
+
+ <!-- Or upload a zipped file containing the website -->
+ <p class="descriptive-text">{{$file_upload_text}}</p>
+ <div class="form-group">
+
+ <div class="input-group">
+ <input class="widget-input" type="file" name="zip_file" />
+ <div class="input-group-btn">
+ <button class="btn btn-default btn-sm" type="submit" name="w_upload" value="w_upload"><i class="fa fa-file-archive-o generic-icons"></i></button>
+ </div>
+ </div>
+ </div>
+ </form>
+ </li>
+ </ul>
+ <ul class="nav nav-pills nav-stacked">
+ <li>
+ <a href="#" onclick="openClose('export-form'); openClose('export-cloud-form');
+ return false;"><i class="fa fa-share-square-o generic-icons"></i> {{$export_label}}</a>
+ </li>
+ <li style="margin-left: 12px;" >
+ <form id="export-form" enctype="multipart/form-data" method="post" action="" style="display: none;" class="sub-menu">
+ <input type="hidden" name="action" value="exportzipfile">
+ <!-- Or download a zipped file containing the website -->
+ <p style="margin-top: 10px;" class="descriptive-text">{{$file_download_text}}</p>
+ <div class="form-group">
+
+ <div class="input-group">
+ <input class="widget-input" type="text" name="zipfilename" title="{{$filename_hint}}" placeholder="{{$filename_desc}}" value="" />
+ <div class="input-group-btn">
+ <button class="btn btn-default btn-sm" type="submit" name="w_download" value="w_download"><i class="fa fa-download generic-icons"></i></button>
+ </div>
+ </div>
+ </div>
+ </form>
+ <form id="export-cloud-form" enctype="multipart/form-data" method="post" action="" style="display: none;" class="sub-menu">
+ <input type="hidden" name="action" value="exportcloud">
+ <!-- Or export the website elements to a cloud files folder -->
+ <p style="margin-top: 10px;" class="descriptive-text">{{$cloud_export_text}}</p>
+ <div class="form-group">
+
+ <div class="input-group">
+ <input class="widget-input" type="text" name="exportcloudpath" title="{{$cloud_export_hint}}" placeholder="{{$cloud_export_desc}}" />
+ <div class="input-group-btn">
+ <button class="btn btn-default btn-sm" type="submit" name="exportcloudsubmit" value="{{$cloud_export_select}}"><i class="fa fa-folder-open generic-icons"></i></button>
+ </div>
+ </div>
+ </div>
+ </form>
+ </li>
+ </ul>
+</div>
diff --git a/view/tpl/zcard_embed.tpl b/view/tpl/zcard_embed.tpl
index 7981e3b0b..5c7a925e3 100644
--- a/view/tpl/zcard_embed.tpl
+++ b/view/tpl/zcard_embed.tpl
@@ -1,8 +1,8 @@
<div class="hz_card {{$size}}">
- <div class="hz_cover_photo" style="max-width: 100;"><img src="{{$cover.href}}" alt="{{$zcard.chan.xchan_name}}" />
+ <div class="hz_cover_photo" style="max-width: 100;"><a href="{{$zcard.chan.xchan_url}}"><img src="{{$cover.href}}" alt="{{$zcard.chan.xchan_name}}" /></a>
<div style="position: relative;top: -40px;left: 120px;color: #fff;font-size: 18px;text-rendering: optimizelegibility;text-shadow: 0 0 3px rgba(0, 0, 0, 0.8);" >{{$zcard.chan.xchan_name}}</div>
<div style="position: relative;top: -40px;left: 120px;color: #fff;font-size: 10px;text-rendering: optimizelegibility;text-shadow: 0 0 3px rgba(0, 0, 0, 0.8);" >{{$zcard.chan.channel_addr}}</div>
</div>
- <div style="position:relative;top: -75px;left: 20px;background-color: white;border: 1px solid #ddd;padding: 3px;width: 80px;height: 80px;"><img src="{{$pphoto.href}}" alt="{{$zcard.chan.xchan_name}}" /></div>
+ <div style="position:relative;top: -75px;left: 20px;background-color: white;border: 1px solid #ddd;padding: 3px;width: 80px;height: 80px;"><a href="{{$zcard.chan.xchan_url}}"><img src="{{$pphoto.href}}" alt="{{$zcard.chan.xchan_name}}" /></a></div>
</div>