aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Manning <tamanning@zoho.com>2016-07-20 05:39:08 -0400
committerAndrew Manning <tamanning@zoho.com>2016-07-20 05:39:08 -0400
commite0d9d30bcf3b3b8f08bebc3ea6a8bbd20416f272 (patch)
tree27bd2e18dddc900edc39f34b47bfea749b3dcf61
parent50e581d88ad4901b13bbf99b2e58a5787b6bccec (diff)
parent9421e42dad0bee6e0aa292d390cf249e1d7f7df4 (diff)
downloadvolse-hubzilla-e0d9d30bcf3b3b8f08bebc3ea6a8bbd20416f272.tar.gz
volse-hubzilla-e0d9d30bcf3b3b8f08bebc3ea6a8bbd20416f272.tar.bz2
volse-hubzilla-e0d9d30bcf3b3b8f08bebc3ea6a8bbd20416f272.zip
Merge remote-tracking branch 'upstream/dev' into wiki
-rw-r--r--CHANGELOG41
-rw-r--r--README.md12
-rw-r--r--Zotlabs/Daemon/Cron.php9
-rw-r--r--Zotlabs/Lib/AbConfig.php6
-rw-r--r--Zotlabs/Lib/PermissionDescription.php (renamed from include/PermissionDescription.php)2
-rw-r--r--Zotlabs/Module/Acl.php113
-rw-r--r--Zotlabs/Module/Channel.php3
-rw-r--r--Zotlabs/Module/Cloud.php3
-rw-r--r--Zotlabs/Module/Dav.php1
-rw-r--r--Zotlabs/Module/Editwebpage.php3
-rw-r--r--Zotlabs/Module/Embedphotos.php2
-rw-r--r--Zotlabs/Module/Events.php3
-rw-r--r--Zotlabs/Module/Filestorage.php3
-rw-r--r--Zotlabs/Module/Home.php13
-rw-r--r--Zotlabs/Module/Item.php9
-rw-r--r--Zotlabs/Module/Lockview.php35
-rw-r--r--Zotlabs/Module/Network.php4
-rw-r--r--Zotlabs/Module/Photos.php6
-rw-r--r--Zotlabs/Module/Rpost.php3
-rw-r--r--Zotlabs/Module/Settings.php107
-rw-r--r--Zotlabs/Module/Setup.php5
-rw-r--r--Zotlabs/Module/Webpages.php3
-rw-r--r--Zotlabs/Storage/BasicAuth.php2
-rw-r--r--Zotlabs/Storage/Directory.php1
-rw-r--r--Zotlabs/Storage/File.php4
-rw-r--r--Zotlabs/Web/SessionHandler.php3
-rw-r--r--Zotlabs/Web/WebServer.php9
-rwxr-xr-xboot.php18
-rw-r--r--doc/hook/change_channel.bb11
-rw-r--r--doc/hooklist.bb3
-rw-r--r--doc/service_classes.bb1
-rw-r--r--include/acl_selectors.php4
-rw-r--r--include/auth.php76
-rw-r--r--include/channel.php25
-rw-r--r--include/config.php4
-rwxr-xr-xinclude/items.php23
-rwxr-xr-xinclude/plugin.php1
-rw-r--r--include/security.php44
-rw-r--r--include/text.php6
-rw-r--r--include/widgets.php11
-rw-r--r--include/zot.php7
-rw-r--r--install/schema_mysql.sql19
-rw-r--r--install/schema_postgres.sql17
-rw-r--r--install/update.php45
-rw-r--r--util/hmessages.po3623
-rwxr-xr-xutil/service_class2
-rw-r--r--view/css/bootstrap-red.css4
-rw-r--r--view/css/conversation.css4
-rw-r--r--view/css/mod_directory.css2
-rw-r--r--view/css/mod_settings.css19
-rw-r--r--view/js/autocomplete.js2
-rw-r--r--view/js/jquery-migrate-1.1.1.js511
-rw-r--r--view/js/jquery.js8
-rw-r--r--view/js/jquery.migrate-3.0.0.js2
-rw-r--r--view/js/main.js22
-rw-r--r--view/js/mod_mail.js2
-rw-r--r--view/js/mod_photos.js2
-rw-r--r--view/js/mod_settings.js3
-rw-r--r--view/php/theme_init.php2
-rw-r--r--view/theme/redbasic/css/style.css4
-rw-r--r--view/theme/redbasic/js/redbasic.js7
-rw-r--r--view/theme/redbasic/php/style.php24
-rw-r--r--view/tpl/chat.tpl4
-rwxr-xr-xview/tpl/contact_block.tpl1
-rwxr-xr-xview/tpl/cover_photo_widget.tpl20
-rwxr-xr-xview/tpl/events-js.tpl4
-rwxr-xr-xview/tpl/events_cal-js.tpl4
-rwxr-xr-xview/tpl/photo_album.tpl6
-rwxr-xr-xview/tpl/photos_recent.tpl4
-rw-r--r--view/tpl/settings_tokens.tpl40
70 files changed, 2531 insertions, 2515 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 7fc5835a7..bfb5ad2b2 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,44 @@
+Hubzilla 1.10
+ Wiki:
+ Lots of enhanced functionality, usability improvements, and bugfixes from v1.8
+ Turned into an optional feature (default on) but disabled in UNO
+ Sync:
+ Items are now relocated (links patched) when syncing to clones
+ Access Tokens:
+ New feature - allows members to create access controlled guest logins and create/share 'dropbox' style links to protected resources.
+ UI:
+ Use icons instead of iconic text constructs
+ Only request geolocation permission when creating a post, not on page load
+ provide 'redeliver' option on Delivery Report page for when things really stuff up
+ CalDAV/CardDAV management pages with heaps of functionality
+ Lib:
+ z_fetch_url() updated to accept different request methods and request bodies
+ item_store(), item_store_update() now return the stored items
+ vcard microformat changes to remain spec compliant
+ microformat meta tags added to post/comments
+ AbConfig API changed to use channel_id rather than channel_hash, which was overly complicated to use
+ SuperCurl class added to provide a framework for re-use of obscure CURL options
+ Allow absolute links to CSS/JS files on CDN
+ Add Let'sEncrypt intermediate cert to lib in case you forget to install it on the server
+ Update fullcalendar and jquery (3.1) libs
+ Update sabre/dav to 3.2.0
+ Change content export from a month/year system to begin/end
+ Use streaming I/O for delivering large photos
+ Allow multiple App description files in a single plugin directory
+ optimise a couple of troublesome/inefficient SQL queries
+ avoid sending clone sync packets to dead sites
+ Resolved Issues:
+ channel home page not providing content to clients with javascript disabled
+ Replace '@' obfuscation with html entity rather than the unicode look-alike
+ xchan_query() failing to detect duplicates, resulting in inefficient queries
+ issues with 'use existing photo' for profile photo
+ layout editor "list all layouts" returned empty
+ oembed - better detect video file URLs so they aren't loaded into memory.
+ handcrafted bbcode tables could end up with way too much whitespace due to CRLF translation
+ refresh permissions whitescreen in 1.8
+ force immediate profile photo update on local site
+ regression: 'save bookmarks' post action missing
+
Hubzilla 1.8
Administration:
Cleanup and resolve some edge cases with addon repository manager
diff --git a/README.md b/README.md
index 8a6c003fc..9929f6a16 100644
--- a/README.md
+++ b/README.md
@@ -47,4 +47,16 @@ Possible website applications include
<em><a href="https://github.com/redmatrix/hubzilla/blob/master/install/INSTALL.txt">Installing Hubzilla</a></em>
</p>
+**Who Are We and What Are Our Principles?**
+
+The Hubzilla community is powered by passionate volunteers creating an open source **commons** of decentralised services which are highly integrated and can rival the feature set of centralised providers. We are open to sponsorship and donations to cover expenses and compensate for our time and energy, however the project core is basically non-profit and is not designed for the purpose of commercial gain or exploitation.
+
+Some sites may include monetisation strategies such as subscriptions and *freemium* models where members pay for resources they consume beyond a basic level. The project community supports such monetisation initiatives (nobody should be forced to pay "out of pocket" to provide a service to others), but we maintain the **commons** to provide open and free access of the software to all.
+
+The software is not designed for data collection of its members or providing advertising. We don't have a need or desire for these things and feel that software built around these goals is poorly designed and represents compromised principles and ethics.
+
+As a project, we are inclusive of all beliefs and cultures and do what we are able to provide an environment that is free from hostility and harrassment. Whether or not we succeed in this endaevour requires constant vigilance and help from all members of the community, working together to build an inter-networking tool with amazing potential.
+
+
+
[![Build Status](https://travis-ci.org/redmatrix/hubzilla.svg)](https://travis-ci.org/redmatrix/hubzilla)
diff --git a/Zotlabs/Daemon/Cron.php b/Zotlabs/Daemon/Cron.php
index d5b41274b..5af8174bf 100644
--- a/Zotlabs/Daemon/Cron.php
+++ b/Zotlabs/Daemon/Cron.php
@@ -62,6 +62,15 @@ class Cron {
}
+ // delete expired access tokens
+
+ q("delete from atoken where atoken_expires != '%s' && atoken_expires < %s",
+ dbesc(NULL_DATE),
+ dbutcnow()
+ );
+
+
+
// Ensure that every channel pings a directory server once a month. This way we can discover
// channels and sites that quietly vanished and prevent the directory from accumulating stale
// or dead entries.
diff --git a/Zotlabs/Lib/AbConfig.php b/Zotlabs/Lib/AbConfig.php
index 138d0dfea..cab59abbd 100644
--- a/Zotlabs/Lib/AbConfig.php
+++ b/Zotlabs/Lib/AbConfig.php
@@ -5,8 +5,10 @@ namespace Zotlabs\Lib;
class AbConfig {
- static public function Load($chan,$xhash) {
- $r = q("select * from abconfig where chan = %d and xchan = '%s'",
+ static public function Load($chan,$xhash,$family = '') {
+ if($family)
+ $where = sprintf(" and family = '%s' ",dbesc($family));
+ $r = q("select * from abconfig where chan = %d and xchan = '%s' $where",
intval($chan),
dbesc($xhash)
);
diff --git a/include/PermissionDescription.php b/Zotlabs/Lib/PermissionDescription.php
index 1f7799406..55aac2dea 100644
--- a/include/PermissionDescription.php
+++ b/Zotlabs/Lib/PermissionDescription.php
@@ -1,6 +1,6 @@
<?php
-if(class_exists('PermissionDescription')) return;
+namespace Zotlabs\Lib;
require_once("include/permissions.php");
require_once("include/language.php");
diff --git a/Zotlabs/Module/Acl.php b/Zotlabs/Module/Acl.php
index 2bc4ba62d..15609c3c8 100644
--- a/Zotlabs/Module/Acl.php
+++ b/Zotlabs/Module/Acl.php
@@ -1,7 +1,18 @@
<?php
namespace Zotlabs\Module;
-/* ACL selector json backend */
+/*
+ * ACL selector json backend
+ * This module provides JSON lists of connections and local/remote channels
+ * (xchans) to populate various tools such as the ACL (AccessControlList) popup
+ * and various auto-complete functions (such as email recipients, search, and
+ * mention targets.
+ * There are two primary output structural formats. One for the ACL widget and
+ * the other for auto-completion.
+ * Many of the behaviour variations are triggered on the use of single character keys
+ * however this functionality has grown in an ad-hoc manner and has gotten quite messy over time.
+ */
+
require_once("include/acl_selectors.php");
require_once("include/group.php");
@@ -10,40 +21,63 @@ class Acl extends \Zotlabs\Web\Controller {
function init(){
- // logger('mod_acl: ' . print_r($_REQUEST,true));
-
- $start = (x($_REQUEST,'start')?$_REQUEST['start']:0);
- $count = (x($_REQUEST,'count')?$_REQUEST['count']:100);
- $search = (x($_REQUEST,'search')?$_REQUEST['search']:"");
- $type = (x($_REQUEST,'type')?$_REQUEST['type']:"");
- $noforums = (x($_REQUEST,'n') ? $_REQUEST['n'] : false);
+ // logger('mod_acl: ' . print_r($_REQUEST,true));
- // List of channels whose connections to also suggest, e.g. currently viewed channel or channels mentioned in a post
+ $start = (x($_REQUEST,'start') ? $_REQUEST['start'] : 0);
+ $count = (x($_REQUEST,'count') ? $_REQUEST['count'] : 500);
+ $search = (x($_REQUEST,'search') ? $_REQUEST['search'] : '');
+ $type = (x($_REQUEST,'type') ? $_REQUEST['type'] : '');
+ $noforums = (x($_REQUEST,'n') ? $_REQUEST['n'] : false);
+
+
+ // $type =
+ // '' => standard ACL request
+ // 'g' => Groups only ACL request
+ // 'c' => Connections only ACL request or editor (textarea) mention request
+ // $_REQUEST['search'] contains ACL search text.
+
+
+ // $type =
+ // 'm' => autocomplete private mail recipient (checks post_mail permission)
+ // 'a' => autocomplete connections (mod_connections, mod_poke, mod_sources, mod_photos)
+ // 'x' => nav search bar autocomplete (match any xchan)
+ // $_REQUEST['query'] contains autocomplete search text.
+
+ // List of channels whose connections to also suggest,
+ // e.g. currently viewed channel or channels mentioned in a post
+
$extra_channels = (x($_REQUEST,'extra_channels') ? $_REQUEST['extra_channels'] : array());
- // For use with jquery.autocomplete for private mail completion
+ // The different autocomplete libraries use different names for the search text
+ // parameter. Internaly we'll use $search to represent the search text no matter
+ // what request variable it was attached to.
- if(x($_REQUEST,'query') && strlen($_REQUEST['query'])) {
- if(! $type)
- $type = 'm';
+ if(array_key_exists('query',$_REQUEST)) {
$search = $_REQUEST['query'];
}
- if(!(local_channel()))
- if(!($type == 'x' || $type == 'c'))
- killme();
+ if( (! local_channel()) && (! ($type == 'x' || $type == 'c')))
+ killme();
- if ($search != "") {
+ if($search) {
$sql_extra = " AND `name` LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " ";
$sql_extra2 = "AND ( xchan_name LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " OR xchan_addr LIKE " . protect_sprintf( "'%" . dbesc($search) . ((strpos($search,'@') === false) ? "%@%'" : "%'")) . ") ";
- // This horrible mess is needed because position also returns 0 if nothing is found. W/ould be MUCH easier if it instead returned a very large value
- // Otherwise we could just order by LEAST(POSITION($search IN xchan_name),POSITION($search IN xchan_addr)).
- $order_extra2 = "CASE WHEN xchan_name LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) ." then POSITION('".dbesc($search)."' IN xchan_name) else position('".dbesc($search)."' IN xchan_addr) end, ";
+ // This horrible mess is needed because position also returns 0 if nothing is found.
+ // Would be MUCH easier if it instead returned a very large value
+ // Otherwise we could just
+ // order by LEAST(POSITION($search IN xchan_name),POSITION($search IN xchan_addr)).
+
+ $order_extra2 = "CASE WHEN xchan_name LIKE "
+ . protect_sprintf( "'%" . dbesc($search) . "%'" )
+ . " then POSITION('" . dbesc($search)
+ . "' IN xchan_name) else position('" . dbesc($search) . "' IN xchan_addr) end, ";
+
$col = ((strpos($search,'@') !== false) ? 'xchan_addr' : 'xchan_name' );
$sql_extra3 = "AND $col like " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " ";
- } else {
+ }
+ else {
$sql_extra = $sql_extra2 = $sql_extra3 = "";
}
@@ -51,7 +85,7 @@ class Acl extends \Zotlabs\Web\Controller {
$groups = array();
$contacts = array();
- if ($type=='' || $type=='g'){
+ if($type == '' || $type == 'g') {
$r = q("SELECT `groups`.`id`, `groups`.`hash`, `groups`.`gname`
FROM `groups`,`group_member`
@@ -82,7 +116,7 @@ class Acl extends \Zotlabs\Web\Controller {
}
}
- if ($type=='' || $type=='c') {
+ if($type == '' || $type == 'c') {
$extra_channels_sql = '';
// Only include channels who allow the observer to view their permissions
foreach($extra_channels as $channel) {
@@ -96,13 +130,40 @@ class Acl extends \Zotlabs\Web\Controller {
if(local_channel()) {
if($extra_channels_sql != '')
$extra_channels_sql = " OR (abook_channel IN ($extra_channels_sql)) and abook_hidden = 0 ";
+
+ $r2 = null;
+
+ $r1 = q("select * from atoken where atoken_uid = %d",
+ intval(local_channel())
+ );
+ if($r1) {
+ require_once('include/security.php');
+ $r2 = array();
+ foreach($r1 as $rr) {
+ $x = atoken_xchan($rr);
+ $r2[] = [
+ 'id' => 'a' . $rr['atoken_id'] ,
+ 'hash' => $x['xchan_hash'],
+ 'name' => $x['xchan_name'],
+ 'micro' => $x['xchan_photo_m'],
+ 'url' => z_root(),
+ 'nick' => $x['xchan_addr'],
+ 'abook_their_perms' => 0,
+ 'abook_flags' => 0,
+ 'abook_self' => 0
+ ];
+ }
+ }
+
$r = q("SELECT abook_id as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, abook_their_perms, abook_flags, abook_self
FROM abook left join xchan on abook_xchan = xchan_hash
WHERE (abook_channel = %d $extra_channels_sql) AND abook_blocked = 0 and abook_pending = 0 and xchan_deleted = 0 $sql_extra2 order by $order_extra2 xchan_name asc" ,
intval(local_channel())
);
-
+ if($r2)
+ $r = array_merge($r2,$r);
+
}
else { // Visitors
$r = q("SELECT xchan_hash as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, 0 as abook_their_perms, 0 as abook_flags, 0 as abook_self
@@ -171,7 +232,7 @@ class Acl extends \Zotlabs\Web\Controller {
intval(PERMS_W_MAIL)
);
}
- elseif(($type == 'a') || ($type == 'p')) {
+ elseif($type == 'a') {
$r = q("SELECT abook_id as id, xchan_name as name, xchan_hash as hash, xchan_addr as nick, xchan_photo_s as micro, xchan_network as network, xchan_url as url, xchan_addr as attag , abook_their_perms FROM abook left join xchan on abook_xchan = xchan_hash
WHERE abook_channel = %d
@@ -296,7 +357,7 @@ class Acl extends \Zotlabs\Web\Controller {
$url = $directory['url'] . '/dirsearch';
}
- $count = (x($_REQUEST,'count')?$_REQUEST['count']:100);
+ $count = (x($_REQUEST,'count') ? $_REQUEST['count'] : 100);
if($url) {
$query = $url . '?f=' ;
$query .= '&name=' . urlencode($search) . "&limit=$count" . (($address) ? '&address=' . urlencode($search) : '');
diff --git a/Zotlabs/Module/Channel.php b/Zotlabs/Module/Channel.php
index d09388901..c74802ec5 100644
--- a/Zotlabs/Module/Channel.php
+++ b/Zotlabs/Module/Channel.php
@@ -9,7 +9,6 @@ require_once('include/security.php');
require_once('include/conversation.php');
require_once('include/acl_selectors.php');
require_once('include/permissions.php');
-require_once('include/PermissionDescription.php');
class Channel extends \Zotlabs\Web\Controller {
@@ -133,7 +132,7 @@ class Channel extends \Zotlabs\Web\Controller {
'default_location' => (($is_owner) ? \App::$profile['channel_location'] : ''),
'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, \PermissionDescription::fromGlobalPermission('view_stream'), get_post_aclDialogDescription(), 'acl_dialog_post') : ''),
+ 'acl' => (($is_owner) ? populate_acl($channel_acl,true, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_stream'), get_post_aclDialogDescription(), 'acl_dialog_post') : ''),
'showacl' => (($is_owner) ? 'yes' : ''),
'bang' => '',
'visitor' => (($is_owner || $observer) ? true : false),
diff --git a/Zotlabs/Module/Cloud.php b/Zotlabs/Module/Cloud.php
index 9845c5658..68d84e070 100644
--- a/Zotlabs/Module/Cloud.php
+++ b/Zotlabs/Module/Cloud.php
@@ -13,6 +13,9 @@ use \Zotlabs\Storage;
// composer autoloader for SabreDAV
require_once('vendor/autoload.php');
+require_once('include/attach.php');
+
+
/**
* @brief Fires up the SabreDAV server.
*
diff --git a/Zotlabs/Module/Dav.php b/Zotlabs/Module/Dav.php
index 9b4b576c8..ba2394388 100644
--- a/Zotlabs/Module/Dav.php
+++ b/Zotlabs/Module/Dav.php
@@ -14,6 +14,7 @@ use \Zotlabs\Storage;
// composer autoloader for SabreDAV
require_once('vendor/autoload.php');
+require_once('include/attach.php');
/**
* @brief Fires up the SabreDAV server.
diff --git a/Zotlabs/Module/Editwebpage.php b/Zotlabs/Module/Editwebpage.php
index 5cd409e1e..be4803a07 100644
--- a/Zotlabs/Module/Editwebpage.php
+++ b/Zotlabs/Module/Editwebpage.php
@@ -4,7 +4,6 @@ namespace Zotlabs\Module;
require_once('include/channel.php');
require_once('include/acl_selectors.php');
require_once('include/conversation.php');
-require_once('include/PermissionDescription.php');
class Editwebpage extends \Zotlabs\Web\Controller {
@@ -151,7 +150,7 @@ class Editwebpage extends \Zotlabs\Web\Controller {
'body' => undo_post_tagging($itm[0]['body']),
'post_id' => $post_id,
'visitor' => ($is_owner) ? true : false,
- 'acl' => populate_acl($itm[0],false,\PermissionDescription::fromGlobalPermission('view_pages')),
+ 'acl' => populate_acl($itm[0],false,\Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_pages')),
'showacl' => ($is_owner) ? true : false,
'mimetype' => $mimetype,
'mimeselect' => true,
diff --git a/Zotlabs/Module/Embedphotos.php b/Zotlabs/Module/Embedphotos.php
index 2cd420664..0dac873c5 100644
--- a/Zotlabs/Module/Embedphotos.php
+++ b/Zotlabs/Module/Embedphotos.php
@@ -159,7 +159,7 @@ function embedphotos_widget_album($args) {
'$upload' => array(t('Upload'), z_root() . '/photos/' . \App::$profile['channel_address'] . '/upload/' . bin2hex($album)),
'$order' => false,
'$upload_form' => $upload_form,
- '$usage' => $usage_message
+ '$no_fullscreen_btn' => true
));
return $o;
diff --git a/Zotlabs/Module/Events.php b/Zotlabs/Module/Events.php
index 3187cddb4..def5c437b 100644
--- a/Zotlabs/Module/Events.php
+++ b/Zotlabs/Module/Events.php
@@ -6,7 +6,6 @@ require_once('include/bbcode.php');
require_once('include/datetime.php');
require_once('include/event.php');
require_once('include/items.php');
-require_once('include/PermissionDescription.php');
class Events extends \Zotlabs\Web\Controller {
@@ -471,7 +470,7 @@ class Events extends \Zotlabs\Web\Controller {
'$permissions' => t('Permission settings'),
// populating the acl dialog was a permission description from view_stream because Cal.php, which
// displays events, says "since we don't currently have an event permission - use the stream permission"
- '$acl' => (($orig_event['event_xchan']) ? '' : populate_acl(((x($orig_event)) ? $orig_event : $perm_defaults), false, \PermissionDescription::fromGlobalPermission('view_stream'))),
+ '$acl' => (($orig_event['event_xchan']) ? '' : populate_acl(((x($orig_event)) ? $orig_event : $perm_defaults), false, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_stream'))),
'$submit' => t('Submit'),
'$advanced' => t('Advanced Options')
diff --git a/Zotlabs/Module/Filestorage.php b/Zotlabs/Module/Filestorage.php
index 2861f31be..c3ef22e32 100644
--- a/Zotlabs/Module/Filestorage.php
+++ b/Zotlabs/Module/Filestorage.php
@@ -6,7 +6,6 @@ namespace Zotlabs\Module;
*/
require_once('include/attach.php');
-require_once('include/PermissionDescription.php');
/**
@@ -134,7 +133,7 @@ class Filestorage extends \Zotlabs\Web\Controller {
$cloudpath = get_cloudpath($f) . (intval($f['is_dir']) ? '?f=&davguest=1' : '');
$parentpath = get_parent_cloudpath($channel['channel_id'], $channel['channel_address'], $f['hash']);
- $aclselect_e = populate_acl($f, false, \PermissionDescription::fromGlobalPermission('view_storage'));
+ $aclselect_e = populate_acl($f, false, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_storage'));
$is_a_dir = (intval($f['is_dir']) ? true : false);
$lockstate = (($f['allow_cid'] || $f['allow_gid'] || $f['deny_cid'] || $f['deny_gid']) ? 'lock' : 'unlock');
diff --git a/Zotlabs/Module/Home.php b/Zotlabs/Module/Home.php
index f3ba96fdd..79449c3b2 100644
--- a/Zotlabs/Module/Home.php
+++ b/Zotlabs/Module/Home.php
@@ -28,6 +28,19 @@ class Home extends \Zotlabs\Web\Controller {
goaway($dest);
}
+
+ if(remote_channel() && (! $splash) && $_SESSION['atoken']) {
+ $r = q("select * from atoken where atoken_id = %d",
+ intval($_SESSION['atoken'])
+ );
+ if($r) {
+ $x = channelx_by_n($r[0]['atoken_uid']);
+ if($x) {
+ goaway(z_root() . '/channel/' . $x['channel_address']);
+ }
+ }
+ }
+
if(get_account_id() && ! $splash) {
goaway(z_root() . '/new_channel');
diff --git a/Zotlabs/Module/Item.php b/Zotlabs/Module/Item.php
index 58d39da83..235c5528e 100644
--- a/Zotlabs/Module/Item.php
+++ b/Zotlabs/Module/Item.php
@@ -905,7 +905,7 @@ class Item extends \Zotlabs\Web\Controller {
if($r) {
xchan_query($r);
$sync_item = fetch_post_tags($r);
- build_sync_packet($uid,array('item' => array(encode_item($sync_item[0],true))));
+ build_sync_packet($profile_uid,array('item' => array(encode_item($sync_item[0],true))));
}
}
if(! $nopush)
@@ -1000,7 +1000,7 @@ class Item extends \Zotlabs\Web\Controller {
if($r) {
xchan_query($r);
$sync_item = fetch_post_tags($r);
- build_sync_packet($uid,array('item' => array(encode_item($sync_item[0],true))));
+ build_sync_packet($profile_uid,array('item' => array(encode_item($sync_item[0],true))));
}
}
@@ -1014,11 +1014,6 @@ class Item extends \Zotlabs\Web\Controller {
logger('post_complete');
-
-
-
-
-
// figure out how to return, depending on from whence we came
if($api_source)
diff --git a/Zotlabs/Module/Lockview.php b/Zotlabs/Module/Lockview.php
index 4776e1c56..d86a3c1d8 100644
--- a/Zotlabs/Module/Lockview.php
+++ b/Zotlabs/Module/Lockview.php
@@ -1,17 +1,31 @@
<?php
namespace Zotlabs\Module;
-
+require_once('include/security.php');
class Lockview extends \Zotlabs\Web\Controller {
function get() {
+
+ $atokens = array();
+
+ if(local_channel()) {
+ $at = q("select * from atoken where atoken_uid = %d",
+ intval(local_channel())
+ );
+ if($at) {
+ foreach($at as $t) {
+ $atokens[] = atoken_xchan($t);
+ }
+ }
+ }
$type = ((argc() > 1) ? argv(1) : 0);
if (is_numeric($type)) {
$item_id = intval($type);
$type='item';
- } else {
+ }
+ else {
$item_id = ((argc() > 2) ? intval(argv(2)) : 0);
}
@@ -98,6 +112,13 @@ class Lockview extends \Zotlabs\Web\Controller {
if($r)
foreach($r as $rr)
$l[] = '<li>' . $rr['xchan_name'] . '</li>';
+ if($atokens) {
+ foreach($atokens as $at) {
+ if(in_array("'" . $at['xchan_hash'] . "'",$allowed_users)) {
+ $l[] = '<li>' . $at['xchan_name'] . '</li>';
+ }
+ }
+ }
}
if(count($deny_groups)) {
$r = q("SELECT gname FROM `groups` WHERE hash IN ( " . implode(', ', $deny_groups) . " )");
@@ -110,6 +131,16 @@ class Lockview extends \Zotlabs\Web\Controller {
if($r)
foreach($r as $rr)
$l[] = '<li><strike>' . $rr['xchan_name'] . '</strike></li>';
+
+ if($atokens) {
+ foreach($atokens as $at) {
+ if(in_array("'" . $at['xchan_hash'] . "'",$deny_users)) {
+ $l[] = '<li><strike>' . $at['xchan_name'] . '</strike></li>';
+ }
+ }
+ }
+
+
}
echo $o . implode($l);
diff --git a/Zotlabs/Module/Network.php b/Zotlabs/Module/Network.php
index 87ed326e2..3b88cd8d6 100644
--- a/Zotlabs/Module/Network.php
+++ b/Zotlabs/Module/Network.php
@@ -6,8 +6,6 @@ require_once('include/group.php');
require_once('include/contact_widgets.php');
require_once('include/conversation.php');
require_once('include/acl_selectors.php');
-require_once('include/PermissionDescription.php');
-
class Network extends \Zotlabs\Web\Controller {
@@ -171,7 +169,7 @@ class Network extends \Zotlabs\Web\Controller {
'default_location' => $channel['channel_location'],
'nickname' => $channel['channel_address'],
'lockstate' => (($private_editing || $channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
- 'acl' => populate_acl((($private_editing) ? $def_acl : $channel_acl), true, \PermissionDescription::fromGlobalPermission('view_stream'), get_post_aclDialogDescription(), 'acl_dialog_post'),
+ 'acl' => populate_acl((($private_editing) ? $def_acl : $channel_acl), true, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_stream'), get_post_aclDialogDescription(), 'acl_dialog_post'),
'bang' => (($private_editing) ? '!' : ''),
'visitor' => true,
'profile_uid' => local_channel(),
diff --git a/Zotlabs/Module/Photos.php b/Zotlabs/Module/Photos.php
index 1633e08ef..1eeab1461 100644
--- a/Zotlabs/Module/Photos.php
+++ b/Zotlabs/Module/Photos.php
@@ -9,8 +9,6 @@ require_once('include/bbcode.php');
require_once('include/security.php');
require_once('include/attach.php');
require_once('include/text.php');
-require_once('include/PermissionDescription.php');
-
class Photos extends \Zotlabs\Web\Controller {
@@ -633,7 +631,7 @@ class Photos extends \Zotlabs\Web\Controller {
$lockstate = (($acl->is_private()) ? 'lock' : 'unlock');
}
- $aclselect = (($_is_owner) ? populate_acl($channel_acl,false, \PermissionDescription::fromGlobalPermission('view_storage')) : '');
+ $aclselect = (($_is_owner) ? populate_acl($channel_acl,false, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_storage')) : '');
// this is wrong but is to work around an issue with js_upload wherein it chokes if these variables
// don't exist. They really should be set to a parseable representation of the channel's default permissions
@@ -1023,7 +1021,7 @@ class Photos extends \Zotlabs\Web\Controller {
if($can_post) {
$album_e = $ph[0]['album'];
$caption_e = $ph[0]['description'];
- $aclselect_e = (($_is_owner) ? populate_acl($ph[0], true, \PermissionDescription::fromGlobalPermission('view_storage')) : '');
+ $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']);
diff --git a/Zotlabs/Module/Rpost.php b/Zotlabs/Module/Rpost.php
index 1396f2a55..9e3043d10 100644
--- a/Zotlabs/Module/Rpost.php
+++ b/Zotlabs/Module/Rpost.php
@@ -7,7 +7,6 @@ require_once('include/items.php');
require_once('include/taxonomy.php');
require_once('include/conversation.php');
require_once('include/zot.php');
-require_once('include/PermissionDescription.php');
/**
* remote post
@@ -116,7 +115,7 @@ class Rpost extends \Zotlabs\Web\Controller {
'default_location' => $channel['channel_location'],
'nickname' => $channel['channel_address'],
'lockstate' => (($acl->is_private()) ? 'lock' : 'unlock'),
- 'acl' => populate_acl($channel_acl, true, \PermissionDescription::fromGlobalPermission('view_stream'), get_post_aclDialogDescription(), 'acl_dialog_post'),
+ 'acl' => populate_acl($channel_acl, true, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_stream'), get_post_aclDialogDescription(), 'acl_dialog_post'),
'bang' => '',
'visitor' => true,
'profile_uid' => local_channel(),
diff --git a/Zotlabs/Module/Settings.php b/Zotlabs/Module/Settings.php
index 875004fae..b1258e049 100644
--- a/Zotlabs/Module/Settings.php
+++ b/Zotlabs/Module/Settings.php
@@ -2,8 +2,6 @@
namespace Zotlabs\Module; /** @file */
require_once('include/zot.php');
-require_once('include/PermissionDescription.php');
-
class Settings extends \Zotlabs\Web\Controller {
@@ -30,7 +28,7 @@ class Settings extends \Zotlabs\Web\Controller {
}
- function post() {
+ function post() {
if(! local_channel())
return;
@@ -119,6 +117,60 @@ class Settings extends \Zotlabs\Web\Controller {
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);
+ 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)
+ );
+ }
+
+ info( t('Token saved.') . EOL);
+ return;
+ }
@@ -708,6 +760,53 @@ class Settings extends \Zotlabs\Web\Controller {
));
return $o;
}
+
+ if((argc() > 1) && (argv(1) === 'tokens')) {
+ $atoken = null;
+ 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];
+
+ if($atoken && argc() > 3 && argv(3) === 'drop') {
+ $r = q("delete from atoken where atoken_id = %d",
+ intval($id)
+ );
+ }
+ }
+ $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 the 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:');
+
+ $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']) : ''), ''),
+ '$submit' => t('Submit')
+ ));
+ return $o;
+ }
+
+
@@ -1066,7 +1165,7 @@ class Settings extends \Zotlabs\Web\Controller {
'$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, \PermissionDescription::fromDescription(t('Use my default audience setting for the type of object published'))),
+ '$aclselect' => populate_acl($perm_defaults, false, \Zotlabs\Lib\PermissionDescription::fromDescription(t('Use my default audience setting for the type of object published'))),
'$suggestme' => $suggestme,
'$group_select' => $group_select,
'$role' => array('permissions_role' , t('Channel permissions category:'), $permissions_role, '', get_roles()),
diff --git a/Zotlabs/Module/Setup.php b/Zotlabs/Module/Setup.php
index c5d0ccc21..802f0c216 100644
--- a/Zotlabs/Module/Setup.php
+++ b/Zotlabs/Module/Setup.php
@@ -493,7 +493,6 @@ class Setup extends \Zotlabs\Web\Controller {
$this->check_add($ck_funcs, t('OpenSSL PHP module'), true, true);
$this->check_add($ck_funcs, t('mysqli or postgres PHP module'), true, true);
$this->check_add($ck_funcs, t('mb_string PHP module'), true, true);
- $this->check_add($ck_funcs, t('mcrypt PHP module'), true, true);
$this->check_add($ck_funcs, t('xml PHP module'), true, true);
if(function_exists('apache_get_modules')){
@@ -530,10 +529,6 @@ class Setup extends \Zotlabs\Web\Controller {
$ck_funcs[4]['status'] = false;
$ck_funcs[4]['help'] = t('Error: mb_string PHP module required but not installed.');
}
- if(! function_exists('mcrypt_encrypt')) {
- $ck_funcs[5]['status'] = false;
- $ck_funcs[5]['help'] = t('Error: mcrypt PHP module required but not installed.');
- }
if(! extension_loaded('xml')) {
$ck_funcs[6]['status'] = false;
$ck_funcs[6]['help'] = t('Error: xml PHP module required for DAV but not installed.');
diff --git a/Zotlabs/Module/Webpages.php b/Zotlabs/Module/Webpages.php
index bb8d9c6ed..cc0a01cce 100644
--- a/Zotlabs/Module/Webpages.php
+++ b/Zotlabs/Module/Webpages.php
@@ -4,7 +4,6 @@ namespace Zotlabs\Module;
require_once('include/channel.php');
require_once('include/conversation.php');
require_once('include/acl_selectors.php');
-require_once('include/PermissionDescription.php');
class Webpages extends \Zotlabs\Web\Controller {
@@ -105,7 +104,7 @@ class Webpages extends \Zotlabs\Web\Controller {
'is_owner' => true,
'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, \PermissionDescription::fromGlobalPermission('view_pages')) : ''),
+ 'acl' => (($is_owner) ? populate_acl($channel_acl,false, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_pages')) : ''),
'showacl' => (($is_owner) ? true : false),
'visitor' => true,
'hide_location' => true,
diff --git a/Zotlabs/Storage/BasicAuth.php b/Zotlabs/Storage/BasicAuth.php
index 60fc2c988..9c73b47b9 100644
--- a/Zotlabs/Storage/BasicAuth.php
+++ b/Zotlabs/Storage/BasicAuth.php
@@ -231,7 +231,7 @@ class BasicAuth extends DAV\Auth\Backend\AbstractBasic {
}
/**
- * @brief Sets the timezone from the channel in RedBasicAuth.
+ * @brief Sets the timezone from the channel in BasicAuth.
*
* Set in mod/cloud.php if the channel has a timezone set.
*
diff --git a/Zotlabs/Storage/Directory.php b/Zotlabs/Storage/Directory.php
index b524b3cab..6242d5274 100644
--- a/Zotlabs/Storage/Directory.php
+++ b/Zotlabs/Storage/Directory.php
@@ -206,7 +206,6 @@ class Directory extends DAV\Node implements DAV\ICollection, DAV\IQuota {
throw new DAV\Exception\Forbidden('Permission denied.');
}
- require_once('include/attach.php');
$mimetype = z_mime_content_type($name);
diff --git a/Zotlabs/Storage/File.php b/Zotlabs/Storage/File.php
index ecd15cc55..5a70a99f1 100644
--- a/Zotlabs/Storage/File.php
+++ b/Zotlabs/Storage/File.php
@@ -337,6 +337,10 @@ class File extends DAV\Node implements DAV\IFile {
}
}
+ if(get_pconfig($this->auth->owner_id,'system','os_delete_prohibit') && \App::$module == 'dav') {
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ }
+
attach_delete($this->auth->owner_id, $this->data['hash']);
$ch = channelx_by_n($this->auth->owner_id);
diff --git a/Zotlabs/Web/SessionHandler.php b/Zotlabs/Web/SessionHandler.php
index 6e7333b4b..93b27a7e8 100644
--- a/Zotlabs/Web/SessionHandler.php
+++ b/Zotlabs/Web/SessionHandler.php
@@ -24,7 +24,8 @@ class SessionHandler implements \SessionHandlerInterface {
return $r[0]['sess_data'];
}
else {
- q("INSERT INTO `session` (sid, expire) values ('%s', '%s')",
+ q("INSERT INTO `session` (sess_data, sid, expire) values ('%s', '%s', '%s')",
+ dbesc(''),
dbesc($id),
dbesc(time() + 300)
);
diff --git a/Zotlabs/Web/WebServer.php b/Zotlabs/Web/WebServer.php
index 88ab4995b..d4f3cb9ea 100644
--- a/Zotlabs/Web/WebServer.php
+++ b/Zotlabs/Web/WebServer.php
@@ -59,7 +59,14 @@ class WebServer {
\App::$query_string = strip_zids(\App::$query_string);
if(! local_channel()) {
$_SESSION['my_address'] = $_GET['zid'];
- zid_init($a);
+ zid_init();
+ }
+ }
+
+ if((x($_GET,'zat')) && (! \App::$install)) {
+ \App::$query_string = strip_zats(\App::$query_string);
+ if(! local_channel()) {
+ zat_init();
}
}
diff --git a/boot.php b/boot.php
index bad3b2e5d..08da2a9d6 100755
--- a/boot.php
+++ b/boot.php
@@ -44,10 +44,10 @@ require_once('include/account.php');
define ( 'PLATFORM_NAME', 'hubzilla' );
-define ( 'STD_VERSION', '1.9' );
+define ( 'STD_VERSION', '1.11' );
define ( 'ZOT_REVISION', '1.1' );
-define ( 'DB_UPDATE_VERSION', 1179 );
+define ( 'DB_UPDATE_VERSION', 1180 );
/**
@@ -1703,7 +1703,7 @@ function login($register = false, $form_id = 'main-login', $hiddens=false) {
'$logout' => t('Logout'),
'$login' => t('Login'),
'$form_id' => $form_id,
- '$lname' => array('username', t('Email') , '', ''),
+ '$lname' => array('username', t('Login/Email') , '', ''),
'$lpassword' => array('password', t('Password'), '', ''),
'$remember_me' => array('remember_me', t('Remember me'), '', '',array(t('No'),t('Yes'))),
'$hiddens' => $hiddens,
@@ -2457,24 +2457,16 @@ function check_cron_broken() {
set_config('system','lastcroncheck',datetime_convert());
return;
}
- $t = get_config('system','lastcroncheck');
- if($t === false) {
- // This is serious. Config storage isn't working.
- // We just set lastcroncheck. The system is horked.
- // However don't add insult to injury by sending an email
- // to the admin every time a page is accessed.
- // just quietly
- return;
- }
if($t > datetime_convert('UTC','UTC','now - 3 days')) {
// Wait for 3 days before we do anything so as not to swamp the admin with messages
return;
}
+ set_config('system','lastcroncheck',datetime_convert());
+
if(($d) && ($d > datetime_convert('UTC','UTC','now - 3 days'))) {
// Scheduled tasks have run successfully in the last 3 days.
- set_config('system','lastcroncheck',datetime_convert());
return;
}
diff --git a/doc/hook/change_channel.bb b/doc/hook/change_channel.bb
new file mode 100644
index 000000000..4514b9265
--- /dev/null
+++ b/doc/hook/change_channel.bb
@@ -0,0 +1,11 @@
+[h2]change_channel[/h2]
+
+Called when entering a logged in state in a channel context (as opposed to an account context).
+The hook array provides two arguments, 'channel_id' and 'chanx'. 'chanx' is a union of the channel
+and xchan records for the now active channel.
+
+Use this to capture what would traditionally be known as 'login events'. In this platform, login is
+a separate authentication activity and doesn't necessarily require "connecting to an identity", which
+is what the change_channel activity represents.
+
+
diff --git a/doc/hooklist.bb b/doc/hooklist.bb
index bb1bffcf0..66ff1cf71 100644
--- a/doc/hooklist.bb
+++ b/doc/hooklist.bb
@@ -73,6 +73,9 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/bb_translate_video]bb_translate_video[/zrl]
Called when extracting embedded services from bbcode video elements (rarely used)
+[zrl=[baseurl]/help/hook/change_channel]change_channel[/zrl]
+ Called when logging in to a channel (either during login or afterward through the channel manager)
+
[zrl=[baseurl]/help/hook/channel_remove]channel_remove[/zrl]
Called when removing a channel
diff --git a/doc/service_classes.bb b/doc/service_classes.bb
index e5d4ecfad..4dead5d29 100644
--- a/doc/service_classes.bb
+++ b/doc/service_classes.bb
@@ -35,3 +35,4 @@ attach_upload_limit - maximum file upload storage (bytes)
minimum_feedcheck_minutes - lowest setting allowed for polling rss feeds
chatrooms - maximum chatrooms
chatters_inroom - maximum chatters per room
+access_tokens - maximum number of Guest Access Tokens per channel \ No newline at end of file
diff --git a/include/acl_selectors.php b/include/acl_selectors.php
index 89d054e3b..148c67a6c 100644
--- a/include/acl_selectors.php
+++ b/include/acl_selectors.php
@@ -7,8 +7,6 @@
* @package acl_selectors
*/
-require_once("include/PermissionDescription.php");
-
function group_select($selname,$selclass,$preselected = false,$size = 4) {
$o = '';
@@ -231,7 +229,7 @@ function populate_acl($defaults = null,$show_jotnets = true, $emptyACL_descripti
if(! $emptyACL_description) {
$showall_caption = t('Visible to your default audience');
- } else if (is_a($emptyACL_description, 'PermissionDescription')) {
+ } else if (is_a($emptyACL_description, '\\Zotlabs\\Lib\\PermissionDescription')) {
$showall_caption = $emptyACL_description->get_permission_description();
$showall_origin = (($role === 'custom') ? $emptyACL_description->get_permission_origin_description() : '');
$showall_icon = $emptyACL_description->get_permission_icon();
diff --git a/include/auth.php b/include/auth.php
index 01fcf0094..79d04c728 100644
--- a/include/auth.php
+++ b/include/auth.php
@@ -36,22 +36,33 @@ function account_verify_password($email, $pass) {
// you have to verify the email and then go through the account approval workflow before
// letting them login.
- if(($email_verify) && ($register_policy == REGISTER_OPEN) && ($record['account_flags'] & ACCOUNT_UNVERIFIED))
- return null;
+ // @bug there is no record here
+ //if(($email_verify) && ($register_policy == REGISTER_OPEN) && ($record['account_flags'] & ACCOUNT_UNVERIFIED))
+ // return null;
$r = q("select * from account where account_email = '%s'",
dbesc($email)
);
- if(! ($r && count($r)))
- return null;
-
- foreach($r as $record) {
- if(($record['account_flags'] == ACCOUNT_OK)
- && (hash('whirlpool', $record['account_salt'] . $pass) === $record['account_password'])) {
- logger('password verified for ' . $email);
- return $record;
+ if($r) {
+
+ foreach($r as $record) {
+ if(($record['account_flags'] == ACCOUNT_OK)
+ && (hash('whirlpool', $record['account_salt'] . $pass) === $record['account_password'])) {
+ logger('password verified for ' . $email);
+ return $record;
+ }
}
}
+
+ $x = q("select * from atoken where atoken_name = '%s' and atoken_token = '%s' limit 1",
+ dbesc($email),
+ dbesc($pass)
+ );
+ if($x) {
+ atoken_login($x[0]);
+ return $x[0];
+ }
+
$error = 'password failed for ' . $email;
logger($error);
@@ -123,10 +134,18 @@ if((isset($_SESSION)) && (x($_SESSION, 'authenticated')) &&
authenticate_success($x[0], true, true);
}
}
-
- $r = q("select * from xchan left join hubloc on xchan_hash = hubloc_hash where xchan_hash = '%s' limit 1",
- dbesc($_SESSION['visitor_id'])
- );
+ if(array_key_exists('atoken',$_SESSION)) {
+ $y = q("select * from atoken where atoken_id = %d limit 1",
+ intval($_SESSION['atoken'])
+ );
+ if($y)
+ $r = array(atoken_xchan($y[0]));
+ }
+ else {
+ $r = q("select * from xchan left join hubloc on xchan_hash = hubloc_hash where xchan_hash = '%s' limit 1",
+ dbesc($_SESSION['visitor_id'])
+ );
+ }
if($r) {
App::set_observer($r[0]);
}
@@ -199,20 +218,27 @@ else {
call_hooks('authenticate', $addon_auth);
+ $atoken = false;
+
if(($addon_auth['authenticated']) && (count($addon_auth['user_record']))) {
$record = $addon_auth['user_record'];
}
else {
- $record = App::$account = account_verify_password($_POST['username'], $_POST['password']);
-
- if(App::$account) {
- $_SESSION['account_id'] = App::$account['account_id'];
- }
- else {
- notice( t('Failed authentication') . EOL);
+ $x = account_verify_password($_POST['username'], $_POST['password']);
+ if(array_key_exists('atoken',$x))
+ $atoken = true;
+ if(! $atoken) {
+ $record = App::$account = $x;
+
+ if(App::$account) {
+ $_SESSION['account_id'] = App::$account['account_id'];
+ }
+ else {
+ notice( t('Failed authentication') . EOL);
+ }
+
+ logger('authenticate: ' . print_r(App::$account, true), LOGGER_ALL);
}
-
- logger('authenticate: ' . print_r(App::$account, true), LOGGER_ALL);
}
if((! $record) || (! count($record))) {
@@ -252,7 +278,8 @@ else {
// if we haven't failed up this point, log them in.
$_SESSION['last_login_date'] = datetime_convert();
- authenticate_success($record, true, true);
+ if(! $atoken)
+ authenticate_success($record, true, true);
}
}
@@ -270,6 +297,7 @@ else {
* @return int|bool
* Return channel_id from pconfig or false.
*/
+
function match_openid($authid) {
// Query the uid/channel_id from pconfig for a given value.
$r = q("SELECT uid FROM pconfig WHERE cat = 'system' AND k = 'openid' AND v = '%s' LIMIT 1",
diff --git a/include/channel.php b/include/channel.php
index 95506ed78..1a6508803 100644
--- a/include/channel.php
+++ b/include/channel.php
@@ -1310,13 +1310,12 @@ function get_my_address() {
* If somebody arrives at our site using a zid, add their xchan to our DB if we don't have it already.
* And if they aren't already authenticated here, attempt reverse magic auth.
*
- * @param App &$a
*
* @hooks 'zid_init'
* string 'zid' - their zid
* string 'url' - the destination url
*/
-function zid_init(&$a) {
+function zid_init() {
$tmp_str = get_my_address();
if(validate_email($tmp_str)) {
Zotlabs\Daemon\Master::Summon(array('Gprobe',bin2hex($tmp_str)));
@@ -1343,6 +1342,28 @@ function zid_init(&$a) {
}
/**
+ * @brief
+ *
+ * If somebody arrives at our site using a zat, authenticate them
+ *
+ */
+
+function zat_init() {
+ if(local_channel() || remote_channel())
+ return;
+
+ $r = q("select * from atoken where atoken_token = '%s' limit 1",
+ dbesc($_REQUEST['zat'])
+ );
+ if($r) {
+ atoken_login($r[0]);
+ }
+
+}
+
+
+
+/**
* @brief Adds a zid parameter to a url.
*
* @param string $s
diff --git a/include/config.php b/include/config.php
index ece22793f..08810e298 100644
--- a/include/config.php
+++ b/include/config.php
@@ -98,8 +98,8 @@ function del_aconfig($account_id, $family, $key) {
}
-function load_abconfig($chan,$xhash) {
- Zlib\AbConfig::Load($chan,$xhash);
+function load_abconfig($chan, $xhash, $family = '') {
+ return Zlib\AbConfig::Load($chan,$xhash,$family);
}
function get_abconfig($chan,$xhash,$family,$key) {
diff --git a/include/items.php b/include/items.php
index 72f0896ad..373090d41 100755
--- a/include/items.php
+++ b/include/items.php
@@ -4154,32 +4154,19 @@ function update_remote_id($channel,$post_id,$webpage,$pagetitle,$namespace,$remo
}
if($page_type) {
-
// store page info as an alternate message_id so we can access it via
// https://sitename/page/$channelname/$pagetitle
// if no pagetitle was given or it couldn't be transliterated into a url, use the first
// sixteen bytes of the mid - which makes the link portable and not quite as daunting
// as the entire mid. If it were the post_id the link would be less portable.
- $r = q("select * from item_id where iid = %d and uid = %d and service = '%s' limit 1",
+ \Zotlabs\Lib\IConfig::Set(
intval($post_id),
- intval($channel['channel_id']),
- dbesc($page_type)
+ 'system',
+ $page_type,
+ ($pagetitle) ? $pagetitle : substr($mid,0,16),
+ false
);
- if($r) {
- q("update item_id set sid = '%s' where id = %d",
- dbesc(($pagetitle) ? $pagetitle : substr($mid,0,16)),
- intval($r[0]['id'])
- );
- }
- else {
- q("insert into item_id ( iid, uid, sid, service ) values ( %d, %d, '%s','%s' )",
- intval($post_id),
- intval($channel['channel_id']),
- dbesc(($pagetitle) ? $pagetitle : substr($mid,0,16)),
- dbesc($page_type)
- );
- }
}
}
diff --git a/include/plugin.php b/include/plugin.php
index 6dfda1cc9..cb206d944 100755
--- a/include/plugin.php
+++ b/include/plugin.php
@@ -626,6 +626,7 @@ function head_get_js() {
$str = '';
if(App::$js_sources) {
+ ksort(App::$js_sources,SORT_NUMERIC);
foreach(App::$js_sources as $sources) {
if(count($sources)) {
foreach($sources as $source) {
diff --git a/include/security.php b/include/security.php
index 38045c8a9..e345636e7 100644
--- a/include/security.php
+++ b/include/security.php
@@ -82,6 +82,44 @@ function authenticate_success($user_record, $login_initial = false, $interactive
/* else just return */
}
+function atoken_login($atoken) {
+ if(! $atoken)
+ return false;
+
+ $xchan = atoken_xchan($atoken);
+
+ $_SESSION['authenticated'] = 1;
+ $_SESSION['visitor_id'] = $xchan['xchan_hash'];
+ $_SESSION['atoken'] = $atoken['atoken_id'];
+
+ \App::set_observer($xchan);
+
+ return [ 'atoken' => true ];
+}
+
+
+function atoken_xchan($atoken) {
+
+ $c = channelx_by_n($atoken['atoken_uid']);
+ if($c) {
+ return [
+ 'xchan_hash' => substr($c['channel_hash'],0,16) . '.' . $atoken['atoken_name'],
+ 'xchan_name' => $atoken['atoken_name'],
+ 'xchan_addr' => t('guest:') . $atoken['atoken_name'] . '@' . \App::get_hostname(),
+ 'xchan_network' => 'unknown',
+ 'xchan_hidden' => 1,
+ 'xchan_photo_mimetype' => 'image/jpeg',
+ 'xchan_photo_l' => get_default_profile_photo(300),
+ 'xchan_photo_m' => get_default_profile_photo(80),
+ 'xchan_photo_s' => get_default_profile_photo(48)
+
+ ];
+ }
+
+}
+
+
+
/**
* @brief Change to another channel with current logged-in account.
*
@@ -125,13 +163,17 @@ function change_channel($change_channel) {
);
if($x) {
$_SESSION['my_url'] = $x[0]['xchan_url'];
- $_SESSION['my_address'] = $r[0]['channel_address'] . '@' . substr(z_root(), strpos(z_root(), '://') + 3);
+ $_SESSION['my_address'] = $r[0]['channel_address'] . '@' . App::get_hostname();
App::set_observer($x[0]);
App::set_perms(get_all_perms(local_channel(), $hash));
}
if(! is_dir('store/' . $r[0]['channel_address']))
@os_mkdir('store/' . $r[0]['channel_address'], STORAGE_DEFAULT_PERMISSIONS,true);
+
+ $arr = [ 'channel_id' => $change_channel, 'chanx' => $ret ];
+ call_hooks('change_channel', $arr);
+
}
return $ret;
diff --git a/include/text.php b/include/text.php
index 986e3b56c..d4d151f2e 100644
--- a/include/text.php
+++ b/include/text.php
@@ -687,7 +687,7 @@ function get_tags($s) {
// ignore anything in a code block
- $s = preg_replace('/\[code\](.*?)\[\/code\]/sm','',$s);
+ $s = preg_replace('/\[code(.*?)\](.*?)\[\/code\]/sm','',$s);
// ignore anything in [style= ]
$s = preg_replace('/\[style=(.*?)\]/sm','',$s);
@@ -774,6 +774,10 @@ function strip_zids($s) {
return preg_replace('/[\?&]zid=(.*?)(&|$)/ism','$2',$s);
}
+function strip_zats($s) {
+ return preg_replace('/[\?&]zat=(.*?)(&|$)/ism','$2',$s);
+}
+
// quick and dirty quoted_printable encoding
diff --git a/include/widgets.php b/include/widgets.php
index a4a6fb55a..da73657f5 100644
--- a/include/widgets.php
+++ b/include/widgets.php
@@ -296,7 +296,7 @@ function widget_filer($arr) {
$selected = ((x($_REQUEST,'file')) ? $_REQUEST['file'] : '');
$terms = array();
- $r = q("select distinct(term) from term where uid = %d and ttype = %d order by term asc",
+ $r = q("select distinct term from term where uid = %d and ttype = %d order by term asc",
intval(local_channel()),
intval(TERM_FILE)
);
@@ -609,6 +609,15 @@ function widget_settings_menu($arr) {
'selected' => ((argv(1) === 'oauth') ? 'active' : ''),
);
+ if(! UNO) {
+ $tabs[] = array(
+ 'label' => t('Guest Access Tokens'),
+ 'url' => z_root() . '/settings/tokens',
+ 'selected' => ((argv(1) === 'tokens') ? 'active' : ''),
+ );
+ }
+
+
if($role === false || $role === 'custom') {
$tabs[] = array(
'label' => t('Connection Default Permissions'),
diff --git a/include/zot.php b/include/zot.php
index 6dd789181..45347ef22 100644
--- a/include/zot.php
+++ b/include/zot.php
@@ -3014,7 +3014,12 @@ function build_sync_packet($uid = 0, $packet = null, $groups_changed = false) {
if($x['hubloc_host'] == App::get_hostname())
continue;
- $synchubs[] = $x;
+ $y = q("select site_dead from site where site_url = '%s' limit 1",
+ dbesc($x['hubloc_url'])
+ );
+
+ if((! $y) || ($y[0]['site_dead'] == 0))
+ $synchubs[] = $x;
}
if(! $synchubs)
diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql
index d2a5ac85e..5335c231e 100644
--- a/install/schema_mysql.sql
+++ b/install/schema_mysql.sql
@@ -1,7 +1,7 @@
CREATE TABLE IF NOT EXISTS `abconfig` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `chan` int(10) unsigned NOT NULL DEFAULT '',
+ `chan` int(10) unsigned NOT NULL DEFAULT '0',
`xchan` char(255) NOT NULL DEFAULT '',
`cat` char(255) NOT NULL DEFAULT '',
`k` char(255) NOT NULL DEFAULT '',
@@ -141,6 +141,23 @@ CREATE TABLE IF NOT EXISTS `app` (
KEY `app_edited` (`app_edited`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+CREATE TABLE IF NOT EXISTS `atoken` (
+ `atoken_id` int(11) NOT NULL AUTO_INCREMENT,
+ `atoken_aid` int(11) NOT NULL DEFAULT 0,
+ `atoken_uid` int(11) NOT NULL DEFAULT 0,
+ `atoken_name` char(255) NOT NULL DEFAULT '',
+ `atoken_token` char(255) NOT NULL DEFAULT '',
+ `atoken_expires` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ PRIMARY KEY (`atoken_id`),
+ KEY `atoken_aid` (`atoken_aid`),
+ KEY `atoken_uid` (`atoken_uid`),
+ KEY `atoken_uid_2` (`atoken_uid`),
+ KEY `atoken_name` (`atoken_name`),
+ KEY `atoken_token` (`atoken_token`),
+ KEY `atoken_expires` (`atoken_expires`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
CREATE TABLE IF NOT EXISTS `attach` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`aid` int(10) unsigned NOT NULL DEFAULT '0',
diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql
index 378308233..1a770d4ff 100644
--- a/install/schema_postgres.sql
+++ b/install/schema_postgres.sql
@@ -1,6 +1,6 @@
CREATE TABLE "abconfig" (
"id" serial NOT NULL,
- "chan" bigint NOT NULL,
+ "chan" bigint NOT NULL DEFAULT '0',
"xchan" text NOT NULL,
"cat" text NOT NULL,
"k" text NOT NULL,
@@ -137,6 +137,21 @@ create index "app_created" on app ("app_created");
create index "app_edited" on app ("app_edited");
create index "app_deleted" on app ("app_deleted");
create index "app_system" on app ("app_system");
+
+CREATE TABLE "atoken" (
+ "atoken_id" serial NOT NULL,
+ "atoken_aid" bigint NOT NULL DEFAULT 0,
+ "atoken_uid" bigint NOT NULL DEFAULT 0,
+ "atoken_name" varchar(255) NOT NULL DEFAULT '',
+ "atoken_token" varchar(255) NOT NULL DEFAULT '',
+ "atoken_expires" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ PRIMARY KEY ("atoken_id"));
+create index atoken_aid on atoken (atoken_aid);
+create index atoken_uid on atoken (atoken_uid);
+create index atoken_name on atoken (atoken_name);
+create index atoken_token on atoken (atoken_token);
+create index atoken_expires on atoken (atoken_expires);
+
CREATE TABLE "attach" (
"id" serial NOT NULL,
"aid" bigint NOT NULL DEFAULT '0',
diff --git a/install/update.php b/install/update.php
index 3cb5010eb..f2d97430b 100644
--- a/install/update.php
+++ b/install/update.php
@@ -1,6 +1,6 @@
<?php
-define( 'UPDATE_VERSION' , 1179 );
+define( 'UPDATE_VERSION' , 1180 );
/**
*
@@ -2360,4 +2360,47 @@ function update_r1178() {
if($r1)
return UPDATE_SUCCESS;
return UPDATE_FAILED;
+}
+
+function update_r1179() {
+
+ if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
+ $r1 = q("CREATE TABLE atoken (
+ atoken_id serial NOT NULL,
+ atoken_aid bigint NOT NULL DEFAULT 0,
+ atoken_uid bigint NOT NULL DEFAULT 0,
+ atoken_name varchar(255) NOT NULL DEFAULT '',
+ atoken_token varchar(255) NOT NULL DEFAULT '',
+ atoken_expires timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ PRIMARY KEY (atoken_id)) ");
+ $r2 = q("create index atoken_aid on atoken (atoken_aid)");
+ $r3 = q("create index atoken_uid on atoken (atoken_uid)");
+ $r4 = q("create index atoken_name on atoken (atoken_name)");
+ $r5 = q("create index atoken_token on atoken (atoken_token)");
+ $r6 = q("create index atoken_expires on atoken (atoken_expires)");
+
+ $r = $r1 && $r2 && $r3 && $r4 && $r5 && $r6;
+
+ }
+ else {
+ $r = q("CREATE TABLE IF NOT EXISTS `atoken` (
+ `atoken_id` int(11) NOT NULL AUTO_INCREMENT,
+ `atoken_aid` int(11) NOT NULL DEFAULT 0,
+ `atoken_uid` int(11) NOT NULL DEFAULT 0,
+ `atoken_name` char(255) NOT NULL DEFAULT '',
+ `atoken_token` char(255) NOT NULL DEFAULT '',
+ `atoken_expires` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ PRIMARY KEY (`atoken_id`),
+ KEY `atoken_aid` (`atoken_aid`),
+ KEY `atoken_uid` (`atoken_uid`),
+ KEY `atoken_name` (`atoken_name`),
+ KEY `atoken_token` (`atoken_token`),
+ KEY `atoken_expires` (`atoken_expires`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 ");
+ }
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+
+
} \ No newline at end of file
diff --git a/util/hmessages.po b/util/hmessages.po
index 8ab5226e5..b076aadf8 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-07-08 00:02-0700\n"
+"POT-Creation-Date: 2016-07-15 00:02-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"
@@ -21,7 +21,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2609
+#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2613
msgid "Collection"
msgstr ""
@@ -45,17 +45,17 @@ msgstr ""
msgid "Schedule Outbox"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Module/Photos.php:798
-#: ../../Zotlabs/Module/Photos.php:1243
+#: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Module/Photos.php:796
+#: ../../Zotlabs/Module/Photos.php:1241
#: ../../Zotlabs/Module/Embedphotos.php:147 ../../Zotlabs/Lib/Apps.php:490
-#: ../../Zotlabs/Lib/Apps.php:565 ../../include/conversation.php:1035
-#: ../../include/widgets.php:1563
+#: ../../Zotlabs/Lib/Apps.php:565 ../../include/widgets.php:1594
+#: ../../include/conversation.php:1035
msgid "Unknown"
msgstr ""
#: ../../Zotlabs/Storage/Browser.php:226 ../../Zotlabs/Module/Fbrowser.php:85
-#: ../../Zotlabs/Lib/Apps.php:217 ../../include/conversation.php:1654
-#: ../../include/nav.php:93
+#: ../../Zotlabs/Lib/Apps.php:217 ../../include/nav.php:93
+#: ../../include/conversation.php:1654
msgid "Files"
msgstr ""
@@ -70,21 +70,21 @@ msgstr ""
#: ../../Zotlabs/Storage/Browser.php:230 ../../Zotlabs/Storage/Browser.php:306
#: ../../Zotlabs/Module/Layouts.php:184 ../../Zotlabs/Module/Menu.php:118
#: ../../Zotlabs/Module/New_channel.php:142
-#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Webpages.php:194
+#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Webpages.php:193
msgid "Create"
msgstr ""
#: ../../Zotlabs/Storage/Browser.php:231 ../../Zotlabs/Storage/Browser.php:308
#: ../../Zotlabs/Module/Cover_photo.php:357
-#: ../../Zotlabs/Module/Photos.php:825 ../../Zotlabs/Module/Photos.php:1364
+#: ../../Zotlabs/Module/Photos.php:823 ../../Zotlabs/Module/Photos.php:1362
#: ../../Zotlabs/Module/Profile_photo.php:390
-#: ../../Zotlabs/Module/Embedphotos.php:159 ../../include/widgets.php:1576
+#: ../../Zotlabs/Module/Embedphotos.php:159 ../../include/widgets.php:1607
msgid "Upload"
msgstr ""
#: ../../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/Admin.php:1223 ../../Zotlabs/Module/Settings.php:627
+#: ../../Zotlabs/Module/Settings.php:653
#: ../../Zotlabs/Module/Sharedwithme.php:99
msgid "Name"
msgstr ""
@@ -94,7 +94,7 @@ msgid "Type"
msgstr ""
#: ../../Zotlabs/Storage/Browser.php:237
-#: ../../Zotlabs/Module/Sharedwithme.php:101 ../../include/text.php:1320
+#: ../../Zotlabs/Module/Sharedwithme.php:101 ../../include/text.php:1324
msgid "Size"
msgstr ""
@@ -107,27 +107,27 @@ msgstr ""
#: ../../Zotlabs/Module/Connections.php:290
#: ../../Zotlabs/Module/Connections.php:310
#: ../../Zotlabs/Module/Editlayout.php:114
-#: ../../Zotlabs/Module/Editwebpage.php:146
+#: ../../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:652 ../../Zotlabs/Module/Thing.php:260
-#: ../../Zotlabs/Module/Webpages.php:195 ../../Zotlabs/Lib/Apps.php:341
+#: ../../Zotlabs/Module/Settings.php:687 ../../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/menu.php:108
-#: ../../include/channel.php:961 ../../include/channel.php:965
+#: ../../include/page_widgets.php:39 ../../include/channel.php:961
+#: ../../include/channel.php:965 ../../include/menu.php:108
msgid "Edit"
msgstr ""
#: ../../Zotlabs/Storage/Browser.php:241 ../../Zotlabs/Module/Connedit.php:578
#: ../../Zotlabs/Module/Connections.php:263
#: ../../Zotlabs/Module/Editlayout.php:137
-#: ../../Zotlabs/Module/Editwebpage.php:170 ../../Zotlabs/Module/Group.php:177
-#: ../../Zotlabs/Module/Photos.php:1173 ../../Zotlabs/Module/Admin.php:1039
+#: ../../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:653 ../../Zotlabs/Module/Thing.php:261
-#: ../../Zotlabs/Module/Webpages.php:197 ../../Zotlabs/Lib/Apps.php:342
+#: ../../Zotlabs/Module/Settings.php:688 ../../Zotlabs/Module/Thing.php:261
+#: ../../Zotlabs/Module/Webpages.php:196 ../../Zotlabs/Lib/Apps.php:342
#: ../../Zotlabs/Lib/ThreadItem.php:126 ../../include/conversation.php:660
msgid "Delete"
msgstr ""
@@ -154,7 +154,7 @@ msgstr ""
msgid "Upload file"
msgstr ""
-#: ../../Zotlabs/Web/WebServer.php:120 ../../Zotlabs/Module/Dreport.php:10
+#: ../../Zotlabs/Web/WebServer.php:127 ../../Zotlabs/Module/Dreport.php:10
#: ../../Zotlabs/Module/Dreport.php:66 ../../Zotlabs/Module/Group.php:72
#: ../../Zotlabs/Module/Like.php:284 ../../Zotlabs/Module/Import_items.php:114
#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Subthread.php:62
@@ -162,10 +162,10 @@ msgstr ""
msgid "Permission denied"
msgstr ""
-#: ../../Zotlabs/Web/WebServer.php:121 ../../Zotlabs/Web/Router.php:65
+#: ../../Zotlabs/Web/WebServer.php:128 ../../Zotlabs/Web/Router.php:65
#: ../../Zotlabs/Module/Achievements.php:34
#: ../../Zotlabs/Module/Connedit.php:366 ../../Zotlabs/Module/Id.php:76
-#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Events.php:265
+#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Events.php:264
#: ../../Zotlabs/Module/Bookmarks.php:61 ../../Zotlabs/Module/Editpost.php:17
#: ../../Zotlabs/Module/Page.php:35 ../../Zotlabs/Module/Page.php:91
#: ../../Zotlabs/Module/Connections.php:33
@@ -173,26 +173,26 @@ msgstr ""
#: ../../Zotlabs/Module/Cover_photo.php:290 ../../Zotlabs/Module/Chat.php:100
#: ../../Zotlabs/Module/Chat.php:105 ../../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/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/Appman.php:75 ../../Zotlabs/Module/Pdledit.php:26
-#: ../../Zotlabs/Module/Filestorage.php:24
-#: ../../Zotlabs/Module/Filestorage.php:79
-#: ../../Zotlabs/Module/Filestorage.php:94
-#: ../../Zotlabs/Module/Filestorage.php:121
+#: ../../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:211 ../../Zotlabs/Module/Item.php:219
-#: ../../Zotlabs/Module/Item.php:1072 ../../Zotlabs/Module/Photos.php:75
+#: ../../Zotlabs/Module/Item.php:1067 ../../Zotlabs/Module/Photos.php:73
#: ../../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/Channel.php:105
-#: ../../Zotlabs/Module/Channel.php:226 ../../Zotlabs/Module/Channel.php:267
+#: ../../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/New_channel.php:104
#: ../../Zotlabs/Module/Notifications.php:70 ../../Zotlabs/Module/Poke.php:137
@@ -205,22 +205,22 @@ msgstr ""
#: ../../Zotlabs/Module/Common.php:39 ../../Zotlabs/Module/Register.php:77
#: ../../Zotlabs/Module/Regmod.php:21
#: ../../Zotlabs/Module/Service_limits.php:11
-#: ../../Zotlabs/Module/Settings.php:572 ../../Zotlabs/Module/Setup.php:215
+#: ../../Zotlabs/Module/Settings.php:607 ../../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/Sources.php:74 ../../Zotlabs/Module/Suggest.php:30
-#: ../../Zotlabs/Module/Webpages.php:74
+#: ../../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:3449
+#: ../../include/photos.php:27 ../../include/items.php:3449
+#: ../../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
msgid "Permission denied."
msgstr ""
@@ -248,10 +248,10 @@ msgstr ""
#: ../../Zotlabs/Module/Achievements.php:15
#: ../../Zotlabs/Module/Connect.php:17 ../../Zotlabs/Module/Editlayout.php:31
-#: ../../Zotlabs/Module/Editwebpage.php:33 ../../Zotlabs/Module/Hcard.php:12
-#: ../../Zotlabs/Module/Filestorage.php:60 ../../Zotlabs/Module/Layouts.php:31
+#: ../../Zotlabs/Module/Editwebpage.php:32 ../../Zotlabs/Module/Hcard.php:12
+#: ../../Zotlabs/Module/Filestorage.php:59 ../../Zotlabs/Module/Layouts.php:31
#: ../../Zotlabs/Module/Profile.php:20 ../../Zotlabs/Module/Blocks.php:33
-#: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Webpages.php:34
+#: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Webpages.php:33
#: ../../include/channel.php:861
msgid "Requested profile is not available."
msgstr ""
@@ -289,32 +289,32 @@ msgid "is now connected to"
msgstr ""
#: ../../Zotlabs/Module/Connedit.php:379 ../../Zotlabs/Module/Connedit.php:660
-#: ../../Zotlabs/Module/Events.php:459 ../../Zotlabs/Module/Events.php:460
-#: ../../Zotlabs/Module/Events.php:469
-#: ../../Zotlabs/Module/Filestorage.php:157
-#: ../../Zotlabs/Module/Filestorage.php:165
-#: ../../Zotlabs/Module/Profiles.php:647 ../../Zotlabs/Module/Photos.php:666
+#: ../../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:61
-#: ../../Zotlabs/Module/Settings.php:581 ../../Zotlabs/Module/Api.php:89
+#: ../../Zotlabs/Module/Settings.php:616 ../../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 ""
-#: ../../Zotlabs/Module/Connedit.php:379 ../../Zotlabs/Module/Events.php:459
-#: ../../Zotlabs/Module/Events.php:460 ../../Zotlabs/Module/Events.php:469
-#: ../../Zotlabs/Module/Filestorage.php:157
-#: ../../Zotlabs/Module/Filestorage.php:165
-#: ../../Zotlabs/Module/Profiles.php:647 ../../Zotlabs/Module/Photos.php:666
+#: ../../Zotlabs/Module/Connedit.php:379 ../../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:61
-#: ../../Zotlabs/Module/Settings.php:581 ../../Zotlabs/Module/Api.php:88
+#: ../../Zotlabs/Module/Settings.php:616 ../../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
@@ -340,7 +340,7 @@ msgid "Connection has been removed."
msgstr ""
#: ../../Zotlabs/Module/Connedit.php:525 ../../Zotlabs/Lib/Apps.php:221
-#: ../../include/conversation.php:957 ../../include/nav.php:86
+#: ../../include/nav.php:86 ../../include/conversation.php:957
msgid "View Profile"
msgstr ""
@@ -444,12 +444,12 @@ msgstr ""
msgid "Family"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:598 ../../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/selectors.php:123 ../../include/widgets.php:495
-#: ../../include/channel.php:389 ../../include/channel.php:390
-#: ../../include/channel.php:397
+#: ../../Zotlabs/Module/Connedit.php:598 ../../Zotlabs/Module/Settings.php:377
+#: ../../Zotlabs/Module/Settings.php:381 ../../Zotlabs/Module/Settings.php:382
+#: ../../Zotlabs/Module/Settings.php:385 ../../Zotlabs/Module/Settings.php:396
+#: ../../include/widgets.php:495 ../../include/channel.php:389
+#: ../../include/channel.php:390 ../../include/channel.php:397
+#: ../../include/selectors.php:123
msgid "Friends"
msgstr ""
@@ -487,7 +487,7 @@ msgstr ""
msgid "none"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:708 ../../include/widgets.php:614
+#: ../../Zotlabs/Module/Connedit.php:708 ../../include/widgets.php:623
msgid "Connection Default Permissions"
msgstr ""
@@ -570,14 +570,14 @@ msgid "inherited"
msgstr ""
#: ../../Zotlabs/Module/Connedit.php:737 ../../Zotlabs/Module/Connect.php:98
-#: ../../Zotlabs/Module/Events.php:475 ../../Zotlabs/Module/Cal.php:338
+#: ../../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/Pdledit.php:66
-#: ../../Zotlabs/Module/Filestorage.php:162
+#: ../../Zotlabs/Module/Filestorage.php:161
#: ../../Zotlabs/Module/Profiles.php:687 ../../Zotlabs/Module/Import.php:551
-#: ../../Zotlabs/Module/Photos.php:677 ../../Zotlabs/Module/Photos.php:1052
-#: ../../Zotlabs/Module/Photos.php:1092 ../../Zotlabs/Module/Photos.php:1210
+#: ../../Zotlabs/Module/Photos.php:675 ../../Zotlabs/Module/Photos.php:1050
+#: ../../Zotlabs/Module/Photos.php:1090 ../../Zotlabs/Module/Photos.php:1208
#: ../../Zotlabs/Module/Import_items.php:122
#: ../../Zotlabs/Module/Invite.php:146 ../../Zotlabs/Module/Locs.php:121
#: ../../Zotlabs/Module/Mail.php:378 ../../Zotlabs/Module/Mood.php:139
@@ -587,15 +587,16 @@ msgstr ""
#: ../../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/Rate.php:170 ../../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/Rate.php:170 ../../Zotlabs/Module/Settings.php:625
+#: ../../Zotlabs/Module/Settings.php:738 ../../Zotlabs/Module/Settings.php:779
+#: ../../Zotlabs/Module/Settings.php:805 ../../Zotlabs/Module/Settings.php:828
+#: ../../Zotlabs/Module/Settings.php:916
+#: ../../Zotlabs/Module/Settings.php:1108 ../../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/js_strings.php:22
-#: ../../include/widgets.php:754 ../../view/theme/redbasic/php/config.php:99
+#: ../../Zotlabs/Lib/ThreadItem.php:710 ../../include/widgets.php:763
+#: ../../include/js_strings.php:22 ../../view/theme/redbasic/php/config.php:99
msgid "Submit"
msgstr ""
@@ -638,13 +639,13 @@ msgid "Last update:"
msgstr ""
#: ../../Zotlabs/Module/Display.php:17 ../../Zotlabs/Module/Directory.php:63
-#: ../../Zotlabs/Module/Photos.php:522 ../../Zotlabs/Module/Ratings.php:86
+#: ../../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 ""
-#: ../../Zotlabs/Module/Display.php:40 ../../Zotlabs/Module/Filestorage.php:33
+#: ../../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:3370
@@ -771,9 +772,9 @@ msgstr ""
msgid "Age:"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:311 ../../include/event.php:52
-#: ../../include/event.php:84 ../../include/bb2diaspora.php:507
-#: ../../include/channel.php:1051
+#: ../../Zotlabs/Module/Directory.php:311 ../../include/channel.php:1051
+#: ../../include/event.php:52 ../../include/event.php:84
+#: ../../include/bb2diaspora.php:507
msgid "Location:"
msgstr ""
@@ -790,9 +791,9 @@ msgid "About:"
msgstr ""
#: ../../Zotlabs/Module/Directory.php:325 ../../Zotlabs/Module/Match.php:68
-#: ../../Zotlabs/Module/Suggest.php:56 ../../include/conversation.php:959
-#: ../../include/connections.php:78 ../../include/widgets.php:147
+#: ../../Zotlabs/Module/Suggest.php:56 ../../include/widgets.php:147
#: ../../include/widgets.php:184 ../../include/channel.php:1036
+#: ../../include/conversation.php:959 ../../include/connections.php:78
msgid "Connect"
msgstr ""
@@ -911,203 +912,203 @@ msgstr ""
msgid "Restricted or Premium Channel"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:26
+#: ../../Zotlabs/Module/Events.php:25
msgid "Calendar entries imported."
msgstr ""
-#: ../../Zotlabs/Module/Events.php:28
+#: ../../Zotlabs/Module/Events.php:27
msgid "No calendar entries found."
msgstr ""
-#: ../../Zotlabs/Module/Events.php:105
+#: ../../Zotlabs/Module/Events.php:104
msgid "Event can not end before it has started."
msgstr ""
-#: ../../Zotlabs/Module/Events.php:107 ../../Zotlabs/Module/Events.php:116
-#: ../../Zotlabs/Module/Events.php:136
+#: ../../Zotlabs/Module/Events.php:106 ../../Zotlabs/Module/Events.php:115
+#: ../../Zotlabs/Module/Events.php:135
msgid "Unable to generate preview."
msgstr ""
-#: ../../Zotlabs/Module/Events.php:114
+#: ../../Zotlabs/Module/Events.php:113
msgid "Event title and start time are required."
msgstr ""
-#: ../../Zotlabs/Module/Events.php:134 ../../Zotlabs/Module/Events.php:259
+#: ../../Zotlabs/Module/Events.php:133 ../../Zotlabs/Module/Events.php:258
msgid "Event not found."
msgstr ""
-#: ../../Zotlabs/Module/Events.php:254 ../../Zotlabs/Module/Like.php:373
-#: ../../Zotlabs/Module/Tagger.php:51 ../../include/conversation.php:123
-#: ../../include/event.php:949 ../../include/text.php:1920
+#: ../../Zotlabs/Module/Events.php:253 ../../Zotlabs/Module/Like.php:373
+#: ../../Zotlabs/Module/Tagger.php:51 ../../include/event.php:949
+#: ../../include/conversation.php:123 ../../include/text.php:1924
msgid "event"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:449
+#: ../../Zotlabs/Module/Events.php:448
msgid "Edit event title"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:449
+#: ../../Zotlabs/Module/Events.php:448
msgid "Event title"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:449 ../../Zotlabs/Module/Events.php:454
+#: ../../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 ""
-#: ../../Zotlabs/Module/Events.php:451
+#: ../../Zotlabs/Module/Events.php:450
msgid "Categories (comma-separated list)"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:452
+#: ../../Zotlabs/Module/Events.php:451
msgid "Edit Category"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:452
+#: ../../Zotlabs/Module/Events.php:451
msgid "Category"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:455
+#: ../../Zotlabs/Module/Events.php:454
msgid "Edit start date and time"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:455
+#: ../../Zotlabs/Module/Events.php:454
msgid "Start date and time"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:456 ../../Zotlabs/Module/Events.php:459
+#: ../../Zotlabs/Module/Events.php:455 ../../Zotlabs/Module/Events.php:458
msgid "Finish date and time are not known or not relevant"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:458
+#: ../../Zotlabs/Module/Events.php:457
msgid "Edit finish date and time"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:458
+#: ../../Zotlabs/Module/Events.php:457
msgid "Finish date and time"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:460 ../../Zotlabs/Module/Events.php:461
+#: ../../Zotlabs/Module/Events.php:459 ../../Zotlabs/Module/Events.php:460
msgid "Adjust for viewer timezone"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:460
+#: ../../Zotlabs/Module/Events.php:459
msgid ""
"Important for events that happen in a particular place. Not practical for "
"global holidays."
msgstr ""
-#: ../../Zotlabs/Module/Events.php:462
+#: ../../Zotlabs/Module/Events.php:461
msgid "Edit Description"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:462 ../../Zotlabs/Module/Appman.php:117
+#: ../../Zotlabs/Module/Events.php:461 ../../Zotlabs/Module/Appman.php:117
#: ../../Zotlabs/Module/Rbmark.php:101
msgid "Description"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:464
+#: ../../Zotlabs/Module/Events.php:463
msgid "Edit Location"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:464 ../../Zotlabs/Module/Profiles.php:477
+#: ../../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 ""
-#: ../../Zotlabs/Module/Events.php:467 ../../Zotlabs/Module/Events.php:469
+#: ../../Zotlabs/Module/Events.php:466 ../../Zotlabs/Module/Events.php:468
msgid "Share this event"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Photos.php:1093
-#: ../../Zotlabs/Module/Webpages.php:202 ../../Zotlabs/Lib/ThreadItem.php:719
-#: ../../include/conversation.php:1198 ../../include/page_widgets.php:43
+#: ../../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 ""
-#: ../../Zotlabs/Module/Events.php:471 ../../include/conversation.php:1247
+#: ../../Zotlabs/Module/Events.php:470 ../../include/conversation.php:1247
msgid "Permission settings"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:476
+#: ../../Zotlabs/Module/Events.php:475
msgid "Advanced Options"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:588 ../../Zotlabs/Module/Cal.php:259
+#: ../../Zotlabs/Module/Events.php:587 ../../Zotlabs/Module/Cal.php:259
msgid "l, F j"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:610
+#: ../../Zotlabs/Module/Events.php:609
msgid "Edit event"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:612
+#: ../../Zotlabs/Module/Events.php:611
msgid "Delete event"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:637 ../../Zotlabs/Module/Cal.php:308
-#: ../../include/text.php:1708
+#: ../../Zotlabs/Module/Events.php:636 ../../Zotlabs/Module/Cal.php:308
+#: ../../include/text.php:1712
msgid "Link to Source"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:646
+#: ../../Zotlabs/Module/Events.php:645
msgid "calendar"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:665 ../../Zotlabs/Module/Cal.php:331
+#: ../../Zotlabs/Module/Events.php:664 ../../Zotlabs/Module/Cal.php:331
msgid "Edit Event"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:665 ../../Zotlabs/Module/Cal.php:331
+#: ../../Zotlabs/Module/Events.php:664 ../../Zotlabs/Module/Cal.php:331
msgid "Create Event"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:666 ../../Zotlabs/Module/Events.php:675
+#: ../../Zotlabs/Module/Events.php:665 ../../Zotlabs/Module/Events.php:674
#: ../../Zotlabs/Module/Cal.php:332 ../../Zotlabs/Module/Cal.php:339
-#: ../../Zotlabs/Module/Photos.php:949
+#: ../../Zotlabs/Module/Photos.php:947
msgid "Previous"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:667 ../../Zotlabs/Module/Events.php:676
+#: ../../Zotlabs/Module/Events.php:666 ../../Zotlabs/Module/Events.php:675
#: ../../Zotlabs/Module/Cal.php:333 ../../Zotlabs/Module/Cal.php:340
-#: ../../Zotlabs/Module/Photos.php:958 ../../Zotlabs/Module/Setup.php:267
+#: ../../Zotlabs/Module/Photos.php:956 ../../Zotlabs/Module/Setup.php:267
msgid "Next"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:668 ../../Zotlabs/Module/Cal.php:334
+#: ../../Zotlabs/Module/Events.php:667 ../../Zotlabs/Module/Cal.php:334
msgid "Export"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:671 ../../Zotlabs/Module/Layouts.php:197
+#: ../../Zotlabs/Module/Events.php:670 ../../Zotlabs/Module/Layouts.php:197
#: ../../Zotlabs/Module/Pubsites.php:47 ../../Zotlabs/Module/Blocks.php:166
-#: ../../Zotlabs/Module/Webpages.php:201 ../../include/page_widgets.php:42
+#: ../../Zotlabs/Module/Webpages.php:200 ../../include/page_widgets.php:42
msgid "View"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:672
+#: ../../Zotlabs/Module/Events.php:671
msgid "Month"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:673
+#: ../../Zotlabs/Module/Events.php:672
msgid "Week"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:674
+#: ../../Zotlabs/Module/Events.php:673
msgid "Day"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:677 ../../Zotlabs/Module/Cal.php:341
+#: ../../Zotlabs/Module/Events.php:676 ../../Zotlabs/Module/Cal.php:341
msgid "Today"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:708
+#: ../../Zotlabs/Module/Events.php:707
msgid "Event removed"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:711
+#: ../../Zotlabs/Module/Events.php:710
msgid "Failed to remove event"
msgstr ""
@@ -1124,7 +1125,7 @@ msgid "My Connections Bookmarks"
msgstr ""
#: ../../Zotlabs/Module/Editpost.php:24 ../../Zotlabs/Module/Editlayout.php:79
-#: ../../Zotlabs/Module/Editwebpage.php:81
+#: ../../Zotlabs/Module/Editwebpage.php:80
#: ../../Zotlabs/Module/Editblock.php:79 ../../Zotlabs/Module/Editblock.php:95
msgid "Item not found"
msgstr ""
@@ -1133,18 +1134,18 @@ msgstr ""
msgid "Item is not editable"
msgstr ""
-#: ../../Zotlabs/Module/Editpost.php:106 ../../Zotlabs/Module/Rpost.php:135
+#: ../../Zotlabs/Module/Editpost.php:106 ../../Zotlabs/Module/Rpost.php:134
msgid "Edit post"
msgstr ""
#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:222
-#: ../../include/conversation.php:1647 ../../include/nav.php:92
+#: ../../include/nav.php:92 ../../include/conversation.php:1647
msgid "Photos"
msgstr ""
#: ../../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/Admin.php:1406 ../../Zotlabs/Module/Settings.php:626
+#: ../../Zotlabs/Module/Settings.php:652 ../../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
@@ -1181,7 +1182,7 @@ 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/widgets.php:201
-#: ../../include/text.php:922 ../../include/text.php:934
+#: ../../include/text.php:926 ../../include/text.php:938
msgid "Save"
msgstr ""
@@ -1299,14 +1300,14 @@ msgid "Recent activity"
msgstr ""
#: ../../Zotlabs/Module/Connections.php:302 ../../Zotlabs/Lib/Apps.php:209
-#: ../../include/nav.php:188 ../../include/text.php:851
+#: ../../include/nav.php:188 ../../include/text.php:855
msgid "Connections"
msgstr ""
#: ../../Zotlabs/Module/Connections.php:306 ../../Zotlabs/Module/Search.php:44
-#: ../../Zotlabs/Lib/Apps.php:230 ../../include/acl_selectors.php:276
-#: ../../include/nav.php:167 ../../include/text.php:921
-#: ../../include/text.php:933
+#: ../../Zotlabs/Lib/Apps.php:230 ../../include/nav.php:167
+#: ../../include/acl_selectors.php:274 ../../include/text.php:925
+#: ../../include/text.php:937
msgid "Search"
msgstr ""
@@ -1348,30 +1349,30 @@ msgstr ""
msgid "Unable to process image."
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4297
+#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4284
msgid "female"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4298
+#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4285
#, php-format
msgid "%1$s updated her %2$s"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4299
+#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4286
msgid "male"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4300
+#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4287
#, php-format
msgid "%1$s updated his %2$s"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4302
+#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4289
#, php-format
msgid "%1$s updated their %2$s"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/channel.php:1687
+#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/channel.php:1708
msgid "cover photo"
msgstr ""
@@ -1398,7 +1399,7 @@ msgstr ""
#: ../../Zotlabs/Module/Cover_photo.php:361
#: ../../Zotlabs/Module/Profile_photo.php:396
-#: ../../Zotlabs/Module/Settings.php:985
+#: ../../Zotlabs/Module/Settings.php:1059
msgid "or"
msgstr ""
@@ -1469,7 +1470,7 @@ msgstr ""
msgid "This directory server requires an access token"
msgstr ""
-#: ../../Zotlabs/Module/Chat.php:25 ../../Zotlabs/Module/Channel.php:29
+#: ../../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 ""
@@ -1509,7 +1510,7 @@ msgstr ""
msgid "Encrypt text"
msgstr ""
-#: ../../Zotlabs/Module/Chat.php:207 ../../Zotlabs/Module/Editwebpage.php:147
+#: ../../Zotlabs/Module/Chat.php:207 ../../Zotlabs/Module/Editwebpage.php:146
#: ../../Zotlabs/Module/Mail.php:252 ../../Zotlabs/Module/Mail.php:377
#: ../../Zotlabs/Module/Editblock.php:111 ../../include/conversation.php:1146
msgid "Insert web link"
@@ -1531,10 +1532,10 @@ msgstr ""
msgid "Expiration of chats (minutes)"
msgstr ""
-#: ../../Zotlabs/Module/Chat.php:235 ../../Zotlabs/Module/Filestorage.php:153
-#: ../../Zotlabs/Module/Photos.php:671 ../../Zotlabs/Module/Photos.php:1045
+#: ../../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:283
+#: ../../include/acl_selectors.php:281
msgid "Permissions"
msgstr ""
@@ -1639,11 +1640,11 @@ msgstr ""
msgid "Edit Layout"
msgstr ""
-#: ../../Zotlabs/Module/Editwebpage.php:143
+#: ../../Zotlabs/Module/Editwebpage.php:142
msgid "Page link"
msgstr ""
-#: ../../Zotlabs/Module/Editwebpage.php:169
+#: ../../Zotlabs/Module/Editwebpage.php:168
msgid "Edit Webpage"
msgstr ""
@@ -1803,59 +1804,59 @@ msgstr ""
msgid "Activate the Firefox $Projectname provider"
msgstr ""
-#: ../../Zotlabs/Module/Acl.php:227
+#: ../../Zotlabs/Module/Acl.php:288
msgid "network"
msgstr ""
-#: ../../Zotlabs/Module/Acl.php:237
+#: ../../Zotlabs/Module/Acl.php:298
msgid "RSS"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:88
+#: ../../Zotlabs/Module/Filestorage.php:87
msgid "Permission Denied."
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:104
+#: ../../Zotlabs/Module/Filestorage.php:103
msgid "File not found."
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:147
+#: ../../Zotlabs/Module/Filestorage.php:146
msgid "Edit file permissions"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:156
+#: ../../Zotlabs/Module/Filestorage.php:155
msgid "Set/edit permissions"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:157
+#: ../../Zotlabs/Module/Filestorage.php:156
msgid "Include all files and sub folders"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:158
+#: ../../Zotlabs/Module/Filestorage.php:157
msgid "Return to file list"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:160
+#: ../../Zotlabs/Module/Filestorage.php:159
msgid "Copy/paste this code to attach file to a post"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:161
+#: ../../Zotlabs/Module/Filestorage.php:160
msgid "Copy/paste this URL to link file from a web page"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:163
+#: ../../Zotlabs/Module/Filestorage.php:162
msgid "Share this file"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:164
+#: ../../Zotlabs/Module/Filestorage.php:163
msgid "Show URL to this file"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:165
+#: ../../Zotlabs/Module/Filestorage.php:164
msgid "Notify your contacts about this file"
msgstr ""
-#: ../../Zotlabs/Module/Layouts.php:183 ../../include/text.php:2244
+#: ../../Zotlabs/Module/Layouts.php:183 ../../include/text.php:2248
msgid "Layouts"
msgstr ""
@@ -1868,19 +1869,19 @@ msgid "Layout Description"
msgstr ""
#: ../../Zotlabs/Module/Layouts.php:190 ../../Zotlabs/Module/Menu.php:114
-#: ../../Zotlabs/Module/Blocks.php:157 ../../Zotlabs/Module/Webpages.php:206
+#: ../../Zotlabs/Module/Blocks.php:157 ../../Zotlabs/Module/Webpages.php:205
#: ../../include/page_widgets.php:47
msgid "Created"
msgstr ""
#: ../../Zotlabs/Module/Layouts.php:191 ../../Zotlabs/Module/Menu.php:115
-#: ../../Zotlabs/Module/Blocks.php:158 ../../Zotlabs/Module/Webpages.php:207
+#: ../../Zotlabs/Module/Blocks.php:158 ../../Zotlabs/Module/Webpages.php:206
#: ../../include/page_widgets.php:48
msgid "Edited"
msgstr ""
-#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Module/Photos.php:1072
-#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Webpages.php:196
+#: ../../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 ""
@@ -1926,12 +1927,12 @@ msgstr ""
#: ../../Zotlabs/Module/Like.php:371 ../../Zotlabs/Module/Subthread.php:87
#: ../../Zotlabs/Module/Tagger.php:47 ../../include/conversation.php:120
-#: ../../include/text.php:1917
+#: ../../include/text.php:1921
msgid "photo"
msgstr ""
#: ../../Zotlabs/Module/Like.php:371 ../../Zotlabs/Module/Subthread.php:87
-#: ../../include/conversation.php:148 ../../include/text.php:1923
+#: ../../include/conversation.php:148 ../../include/text.php:1927
msgid "status"
msgstr ""
@@ -2106,8 +2107,8 @@ msgstr ""
msgid "Add profile things"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:697 ../../include/conversation.php:1541
-#: ../../include/widgets.php:105
+#: ../../Zotlabs/Module/Profiles.php:697 ../../include/widgets.php:105
+#: ../../include/conversation.php:1541
msgid "Personal"
msgstr ""
@@ -2382,25 +2383,25 @@ msgstr ""
msgid "System error. Post not saved."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1243
+#: ../../Zotlabs/Module/Item.php:1238
msgid "Unable to obtain post information from database."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1250
+#: ../../Zotlabs/Module/Item.php:1245
#, php-format
msgid "You have reached your limit of %1$.0f top level posts."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1257
+#: ../../Zotlabs/Module/Item.php:1252
#, php-format
msgid "You have reached your limit of %1$.0f webpages."
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:84
+#: ../../Zotlabs/Module/Photos.php:82
msgid "Page owner information could not be retrieved."
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:99 ../../Zotlabs/Module/Photos.php:743
+#: ../../Zotlabs/Module/Photos.php:97 ../../Zotlabs/Module/Photos.php:741
#: ../../Zotlabs/Module/Profile_photo.php:115
#: ../../Zotlabs/Module/Profile_photo.php:212
#: ../../Zotlabs/Module/Profile_photo.php:311
@@ -2408,237 +2409,237 @@ msgstr ""
msgid "Profile Photos"
msgstr ""
-#: ../../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 ""
-#: ../../Zotlabs/Module/Photos.php:132
+#: ../../Zotlabs/Module/Photos.php:130
msgid "Delete Album"
msgstr ""
-#: ../../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 ""
-#: ../../Zotlabs/Module/Photos.php:210 ../../Zotlabs/Module/Photos.php:1053
+#: ../../Zotlabs/Module/Photos.php:208 ../../Zotlabs/Module/Photos.php:1051
msgid "Delete Photo"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:533
+#: ../../Zotlabs/Module/Photos.php:531
msgid "No photos selected"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:582
+#: ../../Zotlabs/Module/Photos.php:580
msgid "Access to this item is restricted."
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:621
+#: ../../Zotlabs/Module/Photos.php:619
#, php-format
msgid "%1$.2f MB of %2$.2f MB photo storage used."
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:624
+#: ../../Zotlabs/Module/Photos.php:622
#, php-format
msgid "%1$.2f MB photo storage used."
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:660
+#: ../../Zotlabs/Module/Photos.php:658
msgid "Upload Photos"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:664
+#: ../../Zotlabs/Module/Photos.php:662
msgid "Enter an album name"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:665
+#: ../../Zotlabs/Module/Photos.php:663
msgid "or select an existing album (doubleclick)"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:666
+#: ../../Zotlabs/Module/Photos.php:664
msgid "Create a status post for this upload"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:667
+#: ../../Zotlabs/Module/Photos.php:665
msgid "Caption (optional):"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:668
+#: ../../Zotlabs/Module/Photos.php:666
msgid "Description (optional):"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:695
+#: ../../Zotlabs/Module/Photos.php:693
msgid "Album name could not be decoded"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:743
+#: ../../Zotlabs/Module/Photos.php:741
msgid "Contact Photos"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:766
+#: ../../Zotlabs/Module/Photos.php:764
msgid "Show Newest First"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:768
+#: ../../Zotlabs/Module/Photos.php:766
msgid "Show Oldest First"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:792 ../../Zotlabs/Module/Photos.php:1331
-#: ../../Zotlabs/Module/Embedphotos.php:141 ../../include/widgets.php:1557
+#: ../../Zotlabs/Module/Photos.php:790 ../../Zotlabs/Module/Photos.php:1329
+#: ../../Zotlabs/Module/Embedphotos.php:141 ../../include/widgets.php:1588
msgid "View Photo"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:823
-#: ../../Zotlabs/Module/Embedphotos.php:157 ../../include/widgets.php:1574
+#: ../../Zotlabs/Module/Photos.php:821
+#: ../../Zotlabs/Module/Embedphotos.php:157 ../../include/widgets.php:1605
msgid "Edit Album"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:870
+#: ../../Zotlabs/Module/Photos.php:868
msgid "Permission denied. Access to this item may be restricted."
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:872
+#: ../../Zotlabs/Module/Photos.php:870
msgid "Photo not available"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:930
+#: ../../Zotlabs/Module/Photos.php:928
msgid "Use as profile photo"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:931
+#: ../../Zotlabs/Module/Photos.php:929
msgid "Use as cover photo"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:938
+#: ../../Zotlabs/Module/Photos.php:936
msgid "Private Photo"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:953
+#: ../../Zotlabs/Module/Photos.php:951
msgid "View Full Size"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:998 ../../Zotlabs/Module/Admin.php:1437
+#: ../../Zotlabs/Module/Photos.php:996 ../../Zotlabs/Module/Admin.php:1437
#: ../../Zotlabs/Module/Tagrm.php:137
msgid "Remove"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1032
+#: ../../Zotlabs/Module/Photos.php:1030
msgid "Edit photo"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1034
+#: ../../Zotlabs/Module/Photos.php:1032
msgid "Rotate CW (right)"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1035
+#: ../../Zotlabs/Module/Photos.php:1033
msgid "Rotate CCW (left)"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1038
+#: ../../Zotlabs/Module/Photos.php:1036
msgid "Enter a new album name"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1039
+#: ../../Zotlabs/Module/Photos.php:1037
msgid "or select an existing one (doubleclick)"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1042
+#: ../../Zotlabs/Module/Photos.php:1040
msgid "Caption"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1044
+#: ../../Zotlabs/Module/Photos.php:1042
msgid "Add a Tag"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1048
+#: ../../Zotlabs/Module/Photos.php:1046
msgid "Example: @bob, @Barbara_Jensen, @jim@example.com"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1051
+#: ../../Zotlabs/Module/Photos.php:1049
msgid "Flag as adult in album view"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1070 ../../Zotlabs/Lib/ThreadItem.php:261
+#: ../../Zotlabs/Module/Photos.php:1068 ../../Zotlabs/Lib/ThreadItem.php:261
msgid "I like this (toggle)"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1071 ../../Zotlabs/Lib/ThreadItem.php:262
+#: ../../Zotlabs/Module/Photos.php:1069 ../../Zotlabs/Lib/ThreadItem.php:262
msgid "I don't like this (toggle)"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1073 ../../Zotlabs/Lib/ThreadItem.php:397
+#: ../../Zotlabs/Module/Photos.php:1071 ../../Zotlabs/Lib/ThreadItem.php:397
#: ../../include/conversation.php:743
msgid "Please wait"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1089 ../../Zotlabs/Module/Photos.php:1207
+#: ../../Zotlabs/Module/Photos.php:1087 ../../Zotlabs/Module/Photos.php:1205
#: ../../Zotlabs/Lib/ThreadItem.php:707
msgid "This is you"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1091 ../../Zotlabs/Module/Photos.php:1209
+#: ../../Zotlabs/Module/Photos.php:1089 ../../Zotlabs/Module/Photos.php:1207
#: ../../Zotlabs/Lib/ThreadItem.php:709 ../../include/js_strings.php:6
msgid "Comment"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1107 ../../include/conversation.php:577
+#: ../../Zotlabs/Module/Photos.php:1105 ../../include/conversation.php:577
msgctxt "title"
msgid "Likes"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1107 ../../include/conversation.php:577
+#: ../../Zotlabs/Module/Photos.php:1105 ../../include/conversation.php:577
msgctxt "title"
msgid "Dislikes"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1108 ../../include/conversation.php:578
+#: ../../Zotlabs/Module/Photos.php:1106 ../../include/conversation.php:578
msgctxt "title"
msgid "Agree"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1108 ../../include/conversation.php:578
+#: ../../Zotlabs/Module/Photos.php:1106 ../../include/conversation.php:578
msgctxt "title"
msgid "Disagree"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1108 ../../include/conversation.php:578
+#: ../../Zotlabs/Module/Photos.php:1106 ../../include/conversation.php:578
msgctxt "title"
msgid "Abstain"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1109 ../../include/conversation.php:579
+#: ../../Zotlabs/Module/Photos.php:1107 ../../include/conversation.php:579
msgctxt "title"
msgid "Attending"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1109 ../../include/conversation.php:579
+#: ../../Zotlabs/Module/Photos.php:1107 ../../include/conversation.php:579
msgctxt "title"
msgid "Not attending"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1109 ../../include/conversation.php:579
+#: ../../Zotlabs/Module/Photos.php:1107 ../../include/conversation.php:579
msgctxt "title"
msgid "Might attend"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1126 ../../Zotlabs/Module/Photos.php:1138
+#: ../../Zotlabs/Module/Photos.php:1124 ../../Zotlabs/Module/Photos.php:1136
#: ../../Zotlabs/Lib/ThreadItem.php:181 ../../Zotlabs/Lib/ThreadItem.php:193
#: ../../include/conversation.php:1738
msgid "View all"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1130 ../../Zotlabs/Lib/ThreadItem.php:185
-#: ../../include/conversation.php:1762 ../../include/taxonomy.php:403
-#: ../../include/channel.php:1183
+#: ../../Zotlabs/Module/Photos.php:1128 ../../Zotlabs/Lib/ThreadItem.php:185
+#: ../../include/taxonomy.php:403 ../../include/channel.php:1183
+#: ../../include/conversation.php:1762
msgctxt "noun"
msgid "Like"
msgid_plural "Likes"
msgstr[0] ""
msgstr[1] ""
-#: ../../Zotlabs/Module/Photos.php:1135 ../../Zotlabs/Lib/ThreadItem.php:190
+#: ../../Zotlabs/Module/Photos.php:1133 ../../Zotlabs/Lib/ThreadItem.php:190
#: ../../include/conversation.php:1765
msgctxt "noun"
msgid "Dislike"
@@ -2646,39 +2647,39 @@ msgid_plural "Dislikes"
msgstr[0] ""
msgstr[1] ""
-#: ../../Zotlabs/Module/Photos.php:1235
+#: ../../Zotlabs/Module/Photos.php:1233
msgid "Photo Tools"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1244
+#: ../../Zotlabs/Module/Photos.php:1242
msgid "In This Photo:"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1249
+#: ../../Zotlabs/Module/Photos.php:1247
msgid "Map"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1257 ../../Zotlabs/Lib/ThreadItem.php:386
+#: ../../Zotlabs/Module/Photos.php:1255 ../../Zotlabs/Lib/ThreadItem.php:386
msgctxt "noun"
msgid "Likes"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1258 ../../Zotlabs/Lib/ThreadItem.php:387
+#: ../../Zotlabs/Module/Photos.php:1256 ../../Zotlabs/Lib/ThreadItem.php:387
msgctxt "noun"
msgid "Dislikes"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1263 ../../Zotlabs/Lib/ThreadItem.php:392
-#: ../../include/acl_selectors.php:285
+#: ../../Zotlabs/Module/Photos.php:1261 ../../Zotlabs/Lib/ThreadItem.php:392
+#: ../../include/acl_selectors.php:283
msgid "Close"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1337
+#: ../../Zotlabs/Module/Photos.php:1335
msgid "View Album"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1348 ../../Zotlabs/Module/Photos.php:1361
-#: ../../Zotlabs/Module/Photos.php:1362
+#: ../../Zotlabs/Module/Photos.php:1346 ../../Zotlabs/Module/Photos.php:1359
+#: ../../Zotlabs/Module/Photos.php:1360
msgid "Recent Photos"
msgstr ""
@@ -3005,7 +3006,7 @@ msgstr ""
msgid "Submit and proceed"
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2243
+#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2247
msgid "Menus"
msgstr ""
@@ -3153,31 +3154,31 @@ msgstr ""
msgid "Set your current mood and tell your friends"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:96
+#: ../../Zotlabs/Module/Network.php:94
msgid "No such group"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:136
+#: ../../Zotlabs/Module/Network.php:134
msgid "No such channel"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:141
+#: ../../Zotlabs/Module/Network.php:139
msgid "forum"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:153
+#: ../../Zotlabs/Module/Network.php:151
msgid "Search Results For:"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:217
+#: ../../Zotlabs/Module/Network.php:215
msgid "Privacy group is empty"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:226
+#: ../../Zotlabs/Module/Network.php:224
msgid "Privacy group: "
msgstr ""
-#: ../../Zotlabs/Module/Network.php:252
+#: ../../Zotlabs/Module/Network.php:250
msgid "Invalid connection."
msgstr ""
@@ -3207,15 +3208,15 @@ msgstr ""
msgid "No matches"
msgstr ""
-#: ../../Zotlabs/Module/Channel.php:41
+#: ../../Zotlabs/Module/Channel.php:40
msgid "Posts and comments"
msgstr ""
-#: ../../Zotlabs/Module/Channel.php:42
+#: ../../Zotlabs/Module/Channel.php:41
msgid "Only posts"
msgstr ""
-#: ../../Zotlabs/Module/Channel.php:102
+#: ../../Zotlabs/Module/Channel.php:101
msgid "Insufficient permissions. Request redirected to profile page."
msgstr ""
@@ -3236,7 +3237,7 @@ msgid "Menu Item Permissions"
msgstr ""
#: ../../Zotlabs/Module/Mitem.php:154 ../../Zotlabs/Module/Mitem.php:227
-#: ../../Zotlabs/Module/Settings.php:1068
+#: ../../Zotlabs/Module/Settings.php:1142
msgid "(click to open/close)"
msgstr ""
@@ -3421,11 +3422,11 @@ msgstr ""
msgid "Site settings updated."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:400 ../../include/text.php:2833
+#: ../../Zotlabs/Module/Admin.php:400 ../../include/text.php:2837
msgid "Default"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:410 ../../Zotlabs/Module/Settings.php:798
+#: ../../Zotlabs/Module/Admin.php:410 ../../Zotlabs/Module/Settings.php:872
msgid "mobile"
msgstr ""
@@ -3457,7 +3458,7 @@ msgstr ""
msgid "My site offers free accounts with optional paid upgrades"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:491 ../../include/widgets.php:1440
+#: ../../Zotlabs/Module/Admin.php:491 ../../include/widgets.php:1471
msgid "Site"
msgstr ""
@@ -3744,12 +3745,12 @@ msgid "0 for no expiration of imported content"
msgstr ""
#: ../../Zotlabs/Module/Admin.php:677 ../../Zotlabs/Module/Admin.php:678
-#: ../../Zotlabs/Module/Settings.php:722
+#: ../../Zotlabs/Module/Settings.php:796
msgid "Off"
msgstr ""
#: ../../Zotlabs/Module/Admin.php:677 ../../Zotlabs/Module/Admin.php:678
-#: ../../Zotlabs/Module/Settings.php:722
+#: ../../Zotlabs/Module/Settings.php:796
msgid "On"
msgstr ""
@@ -3806,7 +3807,7 @@ msgid ""
"embedded content from that site is explicitly blocked."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:756 ../../include/widgets.php:1443
+#: ../../Zotlabs/Module/Admin.php:756 ../../include/widgets.php:1474
msgid "Security"
msgstr ""
@@ -3973,7 +3974,7 @@ msgid "Account '%s' unblocked"
msgstr ""
#: ../../Zotlabs/Module/Admin.php:1031 ../../Zotlabs/Module/Admin.php:1044
-#: ../../include/widgets.php:1441
+#: ../../include/widgets.php:1472
msgid "Accounts"
msgstr ""
@@ -4079,7 +4080,7 @@ msgstr ""
msgid "Channel '%s' code disallowed"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1210 ../../include/widgets.php:1442
+#: ../../Zotlabs/Module/Admin.php:1210 ../../include/widgets.php:1473
msgid "Channels"
msgstr ""
@@ -4138,7 +4139,7 @@ msgid "Enable"
msgstr ""
#: ../../Zotlabs/Module/Admin.php:1330 ../../Zotlabs/Module/Admin.php:1420
-#: ../../include/widgets.php:1445
+#: ../../include/widgets.php:1476
msgid "Plugins"
msgstr ""
@@ -4147,8 +4148,8 @@ msgid "Toggle"
msgstr ""
#: ../../Zotlabs/Module/Admin.php:1332 ../../Zotlabs/Module/Admin.php:1615
-#: ../../Zotlabs/Lib/Apps.php:216 ../../include/nav.php:210
-#: ../../include/widgets.php:638
+#: ../../Zotlabs/Lib/Apps.php:216 ../../include/widgets.php:647
+#: ../../include/nav.php:210
msgid "Settings"
msgstr ""
@@ -4220,8 +4221,8 @@ msgstr ""
msgid "Install a New Plugin Repository"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1435 ../../Zotlabs/Module/Settings.php:77
-#: ../../Zotlabs/Module/Settings.php:616 ../../Zotlabs/Lib/Apps.php:334
+#: ../../Zotlabs/Module/Admin.php:1435 ../../Zotlabs/Module/Settings.php:75
+#: ../../Zotlabs/Module/Settings.php:651 ../../Zotlabs/Lib/Apps.php:334
msgid "Update"
msgstr ""
@@ -4238,7 +4239,7 @@ msgid "Screenshot"
msgstr ""
#: ../../Zotlabs/Module/Admin.php:1613 ../../Zotlabs/Module/Admin.php:1647
-#: ../../include/widgets.php:1446
+#: ../../include/widgets.php:1477
msgid "Themes"
msgstr ""
@@ -4254,8 +4255,8 @@ msgstr ""
msgid "Log settings updated."
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:1732 ../../include/widgets.php:1467
-#: ../../include/widgets.php:1477
+#: ../../Zotlabs/Module/Admin.php:1732 ../../include/widgets.php:1498
+#: ../../include/widgets.php:1508
msgid "Logs"
msgstr ""
@@ -4321,7 +4322,7 @@ msgstr ""
msgid "Edit Profile Field"
msgstr ""
-#: ../../Zotlabs/Module/Admin.php:2106 ../../include/widgets.php:1448
+#: ../../Zotlabs/Module/Admin.php:2106 ../../include/widgets.php:1479
msgid "Profile Fields"
msgstr ""
@@ -4478,7 +4479,7 @@ msgstr ""
msgid "OpenID protocol error. No ID returned."
msgstr ""
-#: ../../Zotlabs/Module/Openid.php:193 ../../include/auth.php:226
+#: ../../Zotlabs/Module/Openid.php:193 ../../include/auth.php:252
msgid "Login failed."
msgstr ""
@@ -4606,7 +4607,7 @@ msgstr ""
msgid "Authenticate"
msgstr ""
-#: ../../Zotlabs/Module/Pubsites.php:22 ../../include/widgets.php:1328
+#: ../../Zotlabs/Module/Pubsites.php:22 ../../include/widgets.php:1337
msgid "Public Hubs"
msgstr ""
@@ -4663,7 +4664,7 @@ msgstr ""
msgid "Block Name"
msgstr ""
-#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2242
+#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2246
msgid "Blocks"
msgstr ""
@@ -4704,8 +4705,8 @@ msgstr ""
msgid "Description: "
msgstr ""
-#: ../../Zotlabs/Module/Apps.php:47 ../../include/nav.php:165
-#: ../../include/widgets.php:102
+#: ../../Zotlabs/Module/Apps.php:47 ../../include/widgets.php:102
+#: ../../include/nav.php:165
msgid "Apps"
msgstr ""
@@ -4890,7 +4891,7 @@ msgid ""
msgstr ""
#: ../../Zotlabs/Module/Removeaccount.php:60
-#: ../../Zotlabs/Module/Settings.php:705
+#: ../../Zotlabs/Module/Settings.php:740
msgid "Remove Account"
msgstr ""
@@ -4918,7 +4919,7 @@ msgid ""
"removed from the network"
msgstr ""
-#: ../../Zotlabs/Module/Removeme.php:62 ../../Zotlabs/Module/Settings.php:1124
+#: ../../Zotlabs/Module/Removeme.php:62 ../../Zotlabs/Module/Settings.php:1198
msgid "Remove Channel"
msgstr ""
@@ -4994,608 +4995,628 @@ msgstr ""
msgid "No service class restrictions found."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:69
+#: ../../Zotlabs/Module/Settings.php:67
msgid "Name is required"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:73
+#: ../../Zotlabs/Module/Settings.php:71
msgid "Key and Secret are required"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:225
+#: ../../Zotlabs/Module/Settings.php:154
+msgid "Token saved."
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings.php:260
msgid "Not valid email."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:228
+#: ../../Zotlabs/Module/Settings.php:263
msgid "Protected email address. Cannot change to that email."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:237
+#: ../../Zotlabs/Module/Settings.php:272
msgid "System failure storing new email. Please try again."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:254
+#: ../../Zotlabs/Module/Settings.php:289
msgid "Password verification failed."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:261
+#: ../../Zotlabs/Module/Settings.php:296
msgid "Passwords do not match. Password unchanged."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:265
+#: ../../Zotlabs/Module/Settings.php:300
msgid "Empty passwords are not allowed. Password unchanged."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:279
+#: ../../Zotlabs/Module/Settings.php:314
msgid "Password changed."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:281
+#: ../../Zotlabs/Module/Settings.php:316
msgid "Password update failed. Please try again."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:525
+#: ../../Zotlabs/Module/Settings.php:560
msgid "Settings updated."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:589 ../../Zotlabs/Module/Settings.php:615
-#: ../../Zotlabs/Module/Settings.php:651
+#: ../../Zotlabs/Module/Settings.php:624 ../../Zotlabs/Module/Settings.php:650
+#: ../../Zotlabs/Module/Settings.php:686
msgid "Add application"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:592
+#: ../../Zotlabs/Module/Settings.php:627
msgid "Name of application"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:593 ../../Zotlabs/Module/Settings.php:619
+#: ../../Zotlabs/Module/Settings.php:628 ../../Zotlabs/Module/Settings.php:654
msgid "Consumer Key"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:593 ../../Zotlabs/Module/Settings.php:594
+#: ../../Zotlabs/Module/Settings.php:628 ../../Zotlabs/Module/Settings.php:629
msgid "Automatically generated - change if desired. Max length 20"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:594 ../../Zotlabs/Module/Settings.php:620
+#: ../../Zotlabs/Module/Settings.php:629 ../../Zotlabs/Module/Settings.php:655
msgid "Consumer Secret"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:595 ../../Zotlabs/Module/Settings.php:621
+#: ../../Zotlabs/Module/Settings.php:630 ../../Zotlabs/Module/Settings.php:656
msgid "Redirect"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:595
+#: ../../Zotlabs/Module/Settings.php:630
msgid ""
"Redirect URI - leave blank unless your application specifically requires this"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:596 ../../Zotlabs/Module/Settings.php:622
+#: ../../Zotlabs/Module/Settings.php:631 ../../Zotlabs/Module/Settings.php:657
msgid "Icon url"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:596 ../../Zotlabs/Module/Sources.php:112
+#: ../../Zotlabs/Module/Settings.php:631 ../../Zotlabs/Module/Sources.php:112
#: ../../Zotlabs/Module/Sources.php:147
msgid "Optional"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:607
+#: ../../Zotlabs/Module/Settings.php:642
msgid "Application not found."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:650
+#: ../../Zotlabs/Module/Settings.php:685
msgid "Connected Apps"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:654
+#: ../../Zotlabs/Module/Settings.php:689
msgid "Client key starts with"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:655
+#: ../../Zotlabs/Module/Settings.php:690
msgid "No name"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:656
+#: ../../Zotlabs/Module/Settings.php:691
msgid "Remove authorization"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:669
+#: ../../Zotlabs/Module/Settings.php:704
msgid "No feature settings configured"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:676
+#: ../../Zotlabs/Module/Settings.php:711
msgid "Feature/Addon Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:699
+#: ../../Zotlabs/Module/Settings.php:734
msgid "Account Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:700
+#: ../../Zotlabs/Module/Settings.php:735
msgid "Current Password"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:701
+#: ../../Zotlabs/Module/Settings.php:736
msgid "Enter New Password"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:702
+#: ../../Zotlabs/Module/Settings.php:737
msgid "Confirm New Password"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:702
+#: ../../Zotlabs/Module/Settings.php:737
msgid "Leave password fields blank unless changing"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:704
-#: ../../Zotlabs/Module/Settings.php:1041
+#: ../../Zotlabs/Module/Settings.php:739
+#: ../../Zotlabs/Module/Settings.php:1115
msgid "Email Address:"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:706
+#: ../../Zotlabs/Module/Settings.php:741
msgid "Remove this account including all its channels"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:729
+#: ../../Zotlabs/Module/Settings.php:773 ../../include/widgets.php:614
+msgid "Guest Access Tokens"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings.php:776
+msgid "Login Name"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings.php:777
+msgid "Login Password"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings.php:778
+msgid "Expires (yyyy-mm-dd)"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings.php:803
msgid "Additional Features"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:753
+#: ../../Zotlabs/Module/Settings.php:827
msgid "Connector Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:792
+#: ../../Zotlabs/Module/Settings.php:866
msgid "No special theme for mobile devices"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:795
+#: ../../Zotlabs/Module/Settings.php:869
#, php-format
msgid "%s - (Experimental)"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:837
+#: ../../Zotlabs/Module/Settings.php:911
msgid "Display Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:838
+#: ../../Zotlabs/Module/Settings.php:912
msgid "Theme Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:839
+#: ../../Zotlabs/Module/Settings.php:913
msgid "Custom Theme Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:840
+#: ../../Zotlabs/Module/Settings.php:914
msgid "Content Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:846
+#: ../../Zotlabs/Module/Settings.php:920
msgid "Display Theme:"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:847
+#: ../../Zotlabs/Module/Settings.php:921
msgid "Mobile Theme:"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:848
+#: ../../Zotlabs/Module/Settings.php:922
msgid "Preload images before rendering the page"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:848
+#: ../../Zotlabs/Module/Settings.php:922
msgid ""
"The subjective page load time will be longer but the page will be ready when "
"displayed"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:849
+#: ../../Zotlabs/Module/Settings.php:923
msgid "Enable user zoom on mobile devices"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:850
+#: ../../Zotlabs/Module/Settings.php:924
msgid "Update browser every xx seconds"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:850
+#: ../../Zotlabs/Module/Settings.php:924
msgid "Minimum of 10 seconds, no maximum"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:851
+#: ../../Zotlabs/Module/Settings.php:925
msgid "Maximum number of conversations to load at any time:"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:851
+#: ../../Zotlabs/Module/Settings.php:925
msgid "Maximum of 100 items"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:852
+#: ../../Zotlabs/Module/Settings.php:926
msgid "Show emoticons (smilies) as images"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:853
+#: ../../Zotlabs/Module/Settings.php:927
msgid "Link post titles to source"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:854
+#: ../../Zotlabs/Module/Settings.php:928
msgid "System Page Layout Editor - (advanced)"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:857
+#: ../../Zotlabs/Module/Settings.php:931
msgid "Use blog/list mode on channel page"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:857 ../../Zotlabs/Module/Settings.php:858
+#: ../../Zotlabs/Module/Settings.php:931 ../../Zotlabs/Module/Settings.php:932
msgid "(comments displayed separately)"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:858
+#: ../../Zotlabs/Module/Settings.php:932
msgid "Use blog/list mode on grid page"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:859
+#: ../../Zotlabs/Module/Settings.php:933
msgid "Channel page max height of content (in pixels)"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:859 ../../Zotlabs/Module/Settings.php:860
+#: ../../Zotlabs/Module/Settings.php:933 ../../Zotlabs/Module/Settings.php:934
msgid "click to expand content exceeding this height"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:860
+#: ../../Zotlabs/Module/Settings.php:934
msgid "Grid page max height of content (in pixels)"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:894
+#: ../../Zotlabs/Module/Settings.php:968
msgid "Nobody except yourself"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:895
+#: ../../Zotlabs/Module/Settings.php:969
msgid "Only those you specifically allow"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:896
+#: ../../Zotlabs/Module/Settings.php:970
msgid "Approved connections"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:897
+#: ../../Zotlabs/Module/Settings.php:971
msgid "Any connections"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:898
+#: ../../Zotlabs/Module/Settings.php:972
msgid "Anybody on this website"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:899
+#: ../../Zotlabs/Module/Settings.php:973
msgid "Anybody in this network"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:900
+#: ../../Zotlabs/Module/Settings.php:974
msgid "Anybody authenticated"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:901
+#: ../../Zotlabs/Module/Settings.php:975
msgid "Anybody on the internet"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:976
+#: ../../Zotlabs/Module/Settings.php:1050
msgid "Publish your default profile in the network directory"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:981
+#: ../../Zotlabs/Module/Settings.php:1055
msgid "Allow us to suggest you as a potential friend to new members?"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:990
+#: ../../Zotlabs/Module/Settings.php:1064
msgid "Your channel address is"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1032
+#: ../../Zotlabs/Module/Settings.php:1106
msgid "Channel Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1039
+#: ../../Zotlabs/Module/Settings.php:1113
msgid "Basic Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1040 ../../include/channel.php:1165
+#: ../../Zotlabs/Module/Settings.php:1114 ../../include/channel.php:1165
msgid "Full Name:"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1042
+#: ../../Zotlabs/Module/Settings.php:1116
msgid "Your Timezone:"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1043
+#: ../../Zotlabs/Module/Settings.php:1117
msgid "Default Post Location:"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1043
+#: ../../Zotlabs/Module/Settings.php:1117
msgid "Geographical location to display on your posts"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1044
+#: ../../Zotlabs/Module/Settings.php:1118
msgid "Use Browser Location:"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1046
+#: ../../Zotlabs/Module/Settings.php:1120
msgid "Adult Content"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1046
+#: ../../Zotlabs/Module/Settings.php:1120
msgid ""
"This channel frequently or regularly publishes adult content. (Please tag "
"any adult material and/or nudity with #NSFW)"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1048
+#: ../../Zotlabs/Module/Settings.php:1122
msgid "Security and Privacy Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1051
+#: ../../Zotlabs/Module/Settings.php:1125
msgid "Your permissions are already configured. Click to view/adjust"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1053
+#: ../../Zotlabs/Module/Settings.php:1127
msgid "Hide my online presence"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1053
+#: ../../Zotlabs/Module/Settings.php:1127
msgid "Prevents displaying in your profile that you are online"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1055
+#: ../../Zotlabs/Module/Settings.php:1129
msgid "Simple Privacy Settings:"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1056
+#: ../../Zotlabs/Module/Settings.php:1130
msgid ""
"Very Public - <em>extremely permissive (should be used with caution)</em>"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1057
+#: ../../Zotlabs/Module/Settings.php:1131
msgid ""
"Typical - <em>default public, privacy when desired (similar to social "
"network permissions but with improved privacy)</em>"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1058
+#: ../../Zotlabs/Module/Settings.php:1132
msgid "Private - <em>default private, never open or public</em>"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1059
+#: ../../Zotlabs/Module/Settings.php:1133
msgid "Blocked - <em>default blocked to/from everybody</em>"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1061
+#: ../../Zotlabs/Module/Settings.php:1135
msgid "Allow others to tag your posts"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1061
+#: ../../Zotlabs/Module/Settings.php:1135
msgid ""
"Often used by the community to retro-actively flag inappropriate content"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1063
+#: ../../Zotlabs/Module/Settings.php:1137
msgid "Advanced Privacy Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1065
+#: ../../Zotlabs/Module/Settings.php:1139
msgid "Expire other channel content after this many days"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1065
+#: ../../Zotlabs/Module/Settings.php:1139
msgid "0 or blank to use the website limit."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1065
+#: ../../Zotlabs/Module/Settings.php:1139
#, php-format
msgid "This website expires after %d days."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1065
+#: ../../Zotlabs/Module/Settings.php:1139
msgid "This website does not expire imported content."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1065
+#: ../../Zotlabs/Module/Settings.php:1139
msgid "The website limit takes precedence if lower than your limit."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1066
+#: ../../Zotlabs/Module/Settings.php:1140
msgid "Maximum Friend Requests/Day:"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1066
+#: ../../Zotlabs/Module/Settings.php:1140
msgid "May reduce spam activity"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1067
+#: ../../Zotlabs/Module/Settings.php:1141
msgid "Default Post and Publish Permissions"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1069
+#: ../../Zotlabs/Module/Settings.php:1143
msgid "Use my default audience setting for the type of object published"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1072
+#: ../../Zotlabs/Module/Settings.php:1146
msgid "Channel permissions category:"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1078
+#: ../../Zotlabs/Module/Settings.php:1152
msgid "Maximum private messages per day from unknown people:"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1078
+#: ../../Zotlabs/Module/Settings.php:1152
msgid "Useful to reduce spamming"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1081
+#: ../../Zotlabs/Module/Settings.php:1155
msgid "Notification Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1082
+#: ../../Zotlabs/Module/Settings.php:1156
msgid "By default post a status message when:"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1083
+#: ../../Zotlabs/Module/Settings.php:1157
msgid "accepting a friend request"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1084
+#: ../../Zotlabs/Module/Settings.php:1158
msgid "joining a forum/community"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1085
+#: ../../Zotlabs/Module/Settings.php:1159
msgid "making an <em>interesting</em> profile change"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1086
+#: ../../Zotlabs/Module/Settings.php:1160
msgid "Send a notification email when:"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1087
+#: ../../Zotlabs/Module/Settings.php:1161
msgid "You receive a connection request"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1088
+#: ../../Zotlabs/Module/Settings.php:1162
msgid "Your connections are confirmed"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1089
+#: ../../Zotlabs/Module/Settings.php:1163
msgid "Someone writes on your profile wall"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1090
+#: ../../Zotlabs/Module/Settings.php:1164
msgid "Someone writes a followup comment"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1091
+#: ../../Zotlabs/Module/Settings.php:1165
msgid "You receive a private message"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1092
+#: ../../Zotlabs/Module/Settings.php:1166
msgid "You receive a friend suggestion"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1093
+#: ../../Zotlabs/Module/Settings.php:1167
msgid "You are tagged in a post"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1094
+#: ../../Zotlabs/Module/Settings.php:1168
msgid "You are poked/prodded/etc. in a post"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1097
+#: ../../Zotlabs/Module/Settings.php:1171
msgid "Show visual notifications including:"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1099
+#: ../../Zotlabs/Module/Settings.php:1173
msgid "Unseen grid activity"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1100
+#: ../../Zotlabs/Module/Settings.php:1174
msgid "Unseen channel activity"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1101
+#: ../../Zotlabs/Module/Settings.php:1175
msgid "Unseen private messages"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1101
-#: ../../Zotlabs/Module/Settings.php:1106
-#: ../../Zotlabs/Module/Settings.php:1107
-#: ../../Zotlabs/Module/Settings.php:1108
+#: ../../Zotlabs/Module/Settings.php:1175
+#: ../../Zotlabs/Module/Settings.php:1180
+#: ../../Zotlabs/Module/Settings.php:1181
+#: ../../Zotlabs/Module/Settings.php:1182
msgid "Recommended"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1102
+#: ../../Zotlabs/Module/Settings.php:1176
msgid "Upcoming events"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1103
+#: ../../Zotlabs/Module/Settings.php:1177
msgid "Events today"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1104
+#: ../../Zotlabs/Module/Settings.php:1178
msgid "Upcoming birthdays"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1104
+#: ../../Zotlabs/Module/Settings.php:1178
msgid "Not available in all themes"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1105
+#: ../../Zotlabs/Module/Settings.php:1179
msgid "System (personal) notifications"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1106
+#: ../../Zotlabs/Module/Settings.php:1180
msgid "System info messages"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1107
+#: ../../Zotlabs/Module/Settings.php:1181
msgid "System critical alerts"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1108
+#: ../../Zotlabs/Module/Settings.php:1182
msgid "New connections"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1109
+#: ../../Zotlabs/Module/Settings.php:1183
msgid "System Registrations"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1110
+#: ../../Zotlabs/Module/Settings.php:1184
msgid ""
"Also show new wall posts, private messages and connections under Notices"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1112
+#: ../../Zotlabs/Module/Settings.php:1186
msgid "Notify me of events this many days in advance"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1112
+#: ../../Zotlabs/Module/Settings.php:1186
msgid "Must be greater than 0"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1114
+#: ../../Zotlabs/Module/Settings.php:1188
msgid "Advanced Account/Page Type Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1115
+#: ../../Zotlabs/Module/Settings.php:1189
msgid "Change the behaviour of this account for special situations"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1118
+#: ../../Zotlabs/Module/Settings.php:1192
msgid ""
"Please enable expert mode (in <a href=\"settings/features\">Settings > "
"Additional features</a>) to adjust!"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1119
+#: ../../Zotlabs/Module/Settings.php:1193
msgid "Miscellaneous Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1120
+#: ../../Zotlabs/Module/Settings.php:1194
msgid "Default photo upload folder"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1120
-#: ../../Zotlabs/Module/Settings.php:1121
+#: ../../Zotlabs/Module/Settings.php:1194
+#: ../../Zotlabs/Module/Settings.php:1195
msgid "%Y - current year, %m - current month"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1121
+#: ../../Zotlabs/Module/Settings.php:1195
msgid "Default file upload folder"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1123
+#: ../../Zotlabs/Module/Settings.php:1197
msgid "Personal menu to display in your channel pages"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1125
+#: ../../Zotlabs/Module/Settings.php:1199
msgid "Remove this channel."
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1126
+#: ../../Zotlabs/Module/Settings.php:1200
msgid "Firefox Share $Projectname provider"
msgstr ""
-#: ../../Zotlabs/Module/Settings.php:1127
+#: ../../Zotlabs/Module/Settings.php:1201
msgid "Start calendar week on monday"
msgstr ""
@@ -5628,7 +5649,7 @@ msgid ""
msgstr ""
#: ../../Zotlabs/Module/Setup.php:204 ../../Zotlabs/Module/Setup.php:266
-#: ../../Zotlabs/Module/Setup.php:727
+#: ../../Zotlabs/Module/Setup.php:722
msgid "Please see the file \"install/INSTALL.txt\"."
msgstr ""
@@ -5828,170 +5849,162 @@ msgid "mb_string PHP module"
msgstr ""
#: ../../Zotlabs/Module/Setup.php:496
-msgid "mcrypt PHP module"
-msgstr ""
-
-#: ../../Zotlabs/Module/Setup.php:497
msgid "xml PHP module"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:501 ../../Zotlabs/Module/Setup.php:503
+#: ../../Zotlabs/Module/Setup.php:500 ../../Zotlabs/Module/Setup.php:502
msgid "Apache mod_rewrite module"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:501
+#: ../../Zotlabs/Module/Setup.php:500
msgid ""
"Error: Apache webserver mod-rewrite module is required but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:507 ../../Zotlabs/Module/Setup.php:510
+#: ../../Zotlabs/Module/Setup.php:506 ../../Zotlabs/Module/Setup.php:509
msgid "proc_open"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:507
+#: ../../Zotlabs/Module/Setup.php:506
msgid ""
"Error: proc_open is required but is either not installed or has been "
"disabled in php.ini"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:515
+#: ../../Zotlabs/Module/Setup.php:514
msgid "Error: libCURL PHP module required but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:519
+#: ../../Zotlabs/Module/Setup.php:518
msgid ""
"Error: GD graphics PHP module with JPEG support required but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:523
+#: ../../Zotlabs/Module/Setup.php:522
msgid "Error: openssl PHP module required but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:527
+#: ../../Zotlabs/Module/Setup.php:526
msgid ""
"Error: mysqli or postgres PHP module required but neither are installed."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:531
+#: ../../Zotlabs/Module/Setup.php:530
msgid "Error: mb_string PHP module required but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:535
-msgid "Error: mcrypt PHP module required but not installed."
-msgstr ""
-
-#: ../../Zotlabs/Module/Setup.php:539
+#: ../../Zotlabs/Module/Setup.php:534
msgid "Error: xml PHP module required for DAV but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:557
+#: ../../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 ""
-#: ../../Zotlabs/Module/Setup.php:558
+#: ../../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 ""
-#: ../../Zotlabs/Module/Setup.php:559
+#: ../../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 ""
-#: ../../Zotlabs/Module/Setup.php:560
+#: ../../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 ""
-#: ../../Zotlabs/Module/Setup.php:563
+#: ../../Zotlabs/Module/Setup.php:558
msgid ".htconfig.php is writable"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:577
+#: ../../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 ""
-#: ../../Zotlabs/Module/Setup.php:578
+#: ../../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 ""
-#: ../../Zotlabs/Module/Setup.php:579 ../../Zotlabs/Module/Setup.php:600
+#: ../../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 ""
-#: ../../Zotlabs/Module/Setup.php:580
+#: ../../Zotlabs/Module/Setup.php:575
#, 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/Setup.php:583
+#: ../../Zotlabs/Module/Setup.php:578
#, php-format
msgid "%s is writable"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:599
+#: ../../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 ""
-#: ../../Zotlabs/Module/Setup.php:603
+#: ../../Zotlabs/Module/Setup.php:598
msgid "store is writable"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:636
+#: ../../Zotlabs/Module/Setup.php:631
msgid ""
"SSL certificate cannot be validated. Fix certificate or disable https access "
"to this site."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:637
+#: ../../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 ""
-#: ../../Zotlabs/Module/Setup.php:638
+#: ../../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 ""
-#: ../../Zotlabs/Module/Setup.php:639
+#: ../../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 ""
-#: ../../Zotlabs/Module/Setup.php:640
+#: ../../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 ""
-#: ../../Zotlabs/Module/Setup.php:641
+#: ../../Zotlabs/Module/Setup.php:636
msgid ""
"Providers are available that issue free certificates which are browser-valid."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:643
+#: ../../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. "
@@ -5999,36 +6012,36 @@ msgid ""
"server communications."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:646
+#: ../../Zotlabs/Module/Setup.php:641
msgid "SSL certificate validation"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:652
+#: ../../Zotlabs/Module/Setup.php:647
msgid ""
"Url rewrite in .htaccess is not working. Check your server configuration."
"Test: "
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:655
+#: ../../Zotlabs/Module/Setup.php:650
msgid "Url rewrite is working"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:664
+#: ../../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 ""
-#: ../../Zotlabs/Module/Setup.php:688
+#: ../../Zotlabs/Module/Setup.php:683
msgid "Errors encountered creating database tables."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:725
+#: ../../Zotlabs/Module/Setup.php:720
msgid "<h1>What next</h1>"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:726
+#: ../../Zotlabs/Module/Setup.php:721
msgid ""
"IMPORTANT: You will need to [manually] setup a scheduled task for the poller."
msgstr ""
@@ -6122,7 +6135,7 @@ msgstr ""
msgid "*"
msgstr ""
-#: ../../Zotlabs/Module/Sources.php:96 ../../include/widgets.php:630
+#: ../../Zotlabs/Module/Sources.php:96 ../../include/widgets.php:639
#: ../../include/features.php:72
msgid "Channel Sources"
msgstr ""
@@ -6204,7 +6217,7 @@ msgid "post"
msgstr ""
#: ../../Zotlabs/Module/Tagger.php:57 ../../include/conversation.php:150
-#: ../../include/text.php:1925
+#: ../../include/text.php:1929
msgid "comment"
msgstr ""
@@ -6225,20 +6238,20 @@ msgstr ""
msgid "Select a tag to remove: "
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:192 ../../Zotlabs/Lib/Apps.php:218
-#: ../../include/conversation.php:1700 ../../include/nav.php:106
+#: ../../Zotlabs/Module/Webpages.php:191 ../../Zotlabs/Lib/Apps.php:218
+#: ../../include/nav.php:106 ../../include/conversation.php:1700
msgid "Webpages"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:203 ../../include/page_widgets.php:44
+#: ../../Zotlabs/Module/Webpages.php:202 ../../include/page_widgets.php:44
msgid "Actions"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:204 ../../include/page_widgets.php:45
+#: ../../Zotlabs/Module/Webpages.php:203 ../../include/page_widgets.php:45
msgid "Page Link"
msgstr ""
-#: ../../Zotlabs/Module/Webpages.php:205
+#: ../../Zotlabs/Module/Webpages.php:204
msgid "Page Title"
msgstr ""
@@ -6247,8 +6260,8 @@ msgid "Not found"
msgstr ""
#: ../../Zotlabs/Module/Wiki.php:92 ../../Zotlabs/Lib/Apps.php:219
-#: ../../include/conversation.php:1710 ../../include/conversation.php:1713
-#: ../../include/nav.php:108 ../../include/features.php:55
+#: ../../include/nav.php:108 ../../include/conversation.php:1710
+#: ../../include/conversation.php:1713 ../../include/features.php:55
msgid "Wiki"
msgstr ""
@@ -6627,8 +6640,8 @@ msgstr ""
msgid "Channel Home"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:223 ../../include/conversation.php:1664
-#: ../../include/conversation.php:1667 ../../include/nav.php:203
+#: ../../Zotlabs/Lib/Apps.php:223 ../../include/nav.php:203
+#: ../../include/conversation.php:1664 ../../include/conversation.php:1667
msgid "Events"
msgstr ""
@@ -6660,7 +6673,7 @@ msgstr ""
msgid "Invite"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:235 ../../include/widgets.php:1444
+#: ../../Zotlabs/Lib/Apps.php:235 ../../include/widgets.php:1475
msgid "Features"
msgstr ""
@@ -6848,888 +6861,829 @@ msgstr ""
msgid "Video"
msgstr ""
-#: ../../include/Import/import_diaspora.php:16
-msgid "No username found in import file."
+#: ../../Zotlabs/Lib/PermissionDescription.php:31
+#: ../../include/acl_selectors.php:230
+msgid "Visible to your default audience"
msgstr ""
-#: ../../include/Import/import_diaspora.php:41 ../../include/import.php:50
-msgid "Unable to create a unique channel address. Import failed."
+#: ../../Zotlabs/Lib/PermissionDescription.php:115
+#: ../../include/acl_selectors.php:266
+msgid "Only me"
msgstr ""
-#: ../../include/dba/dba_driver.php:171
-#, php-format
-msgid "Cannot locate DNS info for database server '%s'"
+#: ../../Zotlabs/Lib/PermissionDescription.php:116
+msgid "Public"
msgstr ""
-#: ../../include/acl_selectors.php:232
-#: ../../include/PermissionDescription.php:31
-msgid "Visible to your default audience"
+#: ../../Zotlabs/Lib/PermissionDescription.php:117
+msgid "Anybody in the $Projectname network"
msgstr ""
-#: ../../include/acl_selectors.php:268
-#: ../../include/PermissionDescription.php:115
-msgid "Only me"
+#: ../../Zotlabs/Lib/PermissionDescription.php:118
+#, php-format
+msgid "Any account on %s"
msgstr ""
-#: ../../include/acl_selectors.php:271
-msgid "Who can see this?"
+#: ../../Zotlabs/Lib/PermissionDescription.php:119
+msgid "Any of my connections"
msgstr ""
-#: ../../include/acl_selectors.php:272
-msgid "Custom selection"
+#: ../../Zotlabs/Lib/PermissionDescription.php:120
+msgid "Only connections I specifically allow"
msgstr ""
-#: ../../include/acl_selectors.php:273
-msgid ""
-"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit "
-"the scope of \"Show\"."
+#: ../../Zotlabs/Lib/PermissionDescription.php:121
+msgid "Anybody authenticated (could include visitors from other networks)"
msgstr ""
-#: ../../include/acl_selectors.php:274
-msgid "Show"
+#: ../../Zotlabs/Lib/PermissionDescription.php:122
+msgid "Any connections including those who haven't yet been approved"
msgstr ""
-#: ../../include/acl_selectors.php:275
-msgid "Don't show"
+#: ../../Zotlabs/Lib/PermissionDescription.php:161
+msgid ""
+"This is your default setting for the audience of your normal stream, and "
+"posts."
msgstr ""
-#: ../../include/acl_selectors.php:281
-msgid "Other networks and post services"
+#: ../../Zotlabs/Lib/PermissionDescription.php:162
+msgid ""
+"This is your default setting for who can view your default channel profile"
msgstr ""
-#: ../../include/acl_selectors.php:311
-#, php-format
+#: ../../Zotlabs/Lib/PermissionDescription.php:163
+msgid "This is your default setting for who can view your connections"
+msgstr ""
+
+#: ../../Zotlabs/Lib/PermissionDescription.php:164
msgid ""
-"Post permissions %s cannot be changed %s after a post is shared.</br />These "
-"permissions set who is allowed to view the post."
+"This is your default setting for who can view your file storage and photos"
msgstr ""
-#: ../../include/conversation.php:204
-#, php-format
-msgid "%1$s is now connected with %2$s"
+#: ../../Zotlabs/Lib/PermissionDescription.php:165
+msgid "This is your default setting for the audience of your webpages"
msgstr ""
-#: ../../include/conversation.php:239
-#, php-format
-msgid "%1$s poked %2$s"
+#: ../../include/Import/import_diaspora.php:16
+msgid "No username found in import file."
msgstr ""
-#: ../../include/conversation.php:243 ../../include/text.php:1009
-#: ../../include/text.php:1014
-msgid "poked"
+#: ../../include/Import/import_diaspora.php:41 ../../include/import.php:50
+msgid "Unable to create a unique channel address. Import failed."
msgstr ""
-#: ../../include/conversation.php:694
+#: ../../include/dba/dba_driver.php:171
#, php-format
-msgid "View %s's profile @ %s"
+msgid "Cannot locate DNS info for database server '%s'"
msgstr ""
-#: ../../include/conversation.php:713
-msgid "Categories:"
+#: ../../include/widgets.php:46 ../../include/widgets.php:429
+#: ../../include/taxonomy.php:188 ../../include/taxonomy.php:270
+#: ../../include/contact_widgets.php:91
+msgid "Categories"
msgstr ""
-#: ../../include/conversation.php:714
-msgid "Filed under:"
+#: ../../include/widgets.php:103
+msgid "System"
msgstr ""
-#: ../../include/conversation.php:741
-msgid "View in context"
+#: ../../include/widgets.php:106
+msgid "New App"
msgstr ""
-#: ../../include/conversation.php:850
-msgid "remove"
+#: ../../include/widgets.php:154
+msgid "Suggestions"
msgstr ""
-#: ../../include/conversation.php:854 ../../include/nav.php:249
-msgid "Loading..."
+#: ../../include/widgets.php:155
+msgid "See more..."
msgstr ""
-#: ../../include/conversation.php:855
-msgid "Delete Selected Items"
+#: ../../include/widgets.php:175
+#, php-format
+msgid "You have %1$.0f of %2$.0f allowed connections."
msgstr ""
-#: ../../include/conversation.php:951
-msgid "View Source"
+#: ../../include/widgets.php:181
+msgid "Add New Connection"
msgstr ""
-#: ../../include/conversation.php:952
-msgid "Follow Thread"
+#: ../../include/widgets.php:182
+msgid "Enter channel address"
msgstr ""
-#: ../../include/conversation.php:953
-msgid "Unfollow Thread"
+#: ../../include/widgets.php:183
+msgid "Examples: bob@example.com, https://example.com/barbara"
msgstr ""
-#: ../../include/conversation.php:958
-msgid "Activity/Posts"
+#: ../../include/widgets.php:199
+msgid "Notes"
msgstr ""
-#: ../../include/conversation.php:960
-msgid "Edit Connection"
+#: ../../include/widgets.php:273
+msgid "Remove term"
msgstr ""
-#: ../../include/conversation.php:961
-msgid "Message"
+#: ../../include/widgets.php:281 ../../include/features.php:85
+msgid "Saved Searches"
msgstr ""
-#: ../../include/conversation.php:1078
-#, php-format
-msgid "%s likes this."
+#: ../../include/widgets.php:282 ../../include/group.php:316
+msgid "add"
msgstr ""
-#: ../../include/conversation.php:1078
-#, php-format
-msgid "%s doesn't like this."
+#: ../../include/widgets.php:310 ../../include/features.php:99
+#: ../../include/contact_widgets.php:53
+msgid "Saved Folders"
msgstr ""
-#: ../../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] ""
-msgstr[1] ""
-
-#: ../../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] ""
-msgstr[1] ""
-
-#: ../../include/conversation.php:1090
-msgid "and"
+#: ../../include/widgets.php:313 ../../include/widgets.php:432
+#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:94
+msgid "Everything"
msgstr ""
-#: ../../include/conversation.php:1093
-#, php-format
-msgid ", and %d other people"
-msgid_plural ", and %d other people"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/conversation.php:1094
-#, php-format
-msgid "%s like this."
+#: ../../include/widgets.php:354
+msgid "Archives"
msgstr ""
-#: ../../include/conversation.php:1094
-#, php-format
-msgid "%s don't like this."
+#: ../../include/widgets.php:516
+msgid "Refresh"
msgstr ""
-#: ../../include/conversation.php:1133
-msgid "Set your location"
+#: ../../include/widgets.php:556
+msgid "Account settings"
msgstr ""
-#: ../../include/conversation.php:1134
-msgid "Clear browser location"
+#: ../../include/widgets.php:562
+msgid "Channel settings"
msgstr ""
-#: ../../include/conversation.php:1182
-msgid "Tag term:"
+#: ../../include/widgets.php:571
+msgid "Additional features"
msgstr ""
-#: ../../include/conversation.php:1183
-msgid "Where are you right now?"
+#: ../../include/widgets.php:578
+msgid "Feature/Addon settings"
msgstr ""
-#: ../../include/conversation.php:1221
-msgid "Page link name"
+#: ../../include/widgets.php:584
+msgid "Display settings"
msgstr ""
-#: ../../include/conversation.php:1224
-msgid "Post as"
+#: ../../include/widgets.php:591
+msgid "Manage locations"
msgstr ""
-#: ../../include/conversation.php:1238
-msgid "Toggle voting"
+#: ../../include/widgets.php:600
+msgid "Export channel"
msgstr ""
-#: ../../include/conversation.php:1246
-msgid "Categories (optional, comma-separated list)"
+#: ../../include/widgets.php:607
+msgid "Connected apps"
msgstr ""
-#: ../../include/conversation.php:1269
-msgid "Set publish date"
+#: ../../include/widgets.php:631
+msgid "Premium Channel Settings"
msgstr ""
-#: ../../include/conversation.php:1518
-msgid "Discover"
+#: ../../include/widgets.php:660
+msgid "Private Mail Menu"
msgstr ""
-#: ../../include/conversation.php:1521
-msgid "Imported public streams"
+#: ../../include/widgets.php:662
+msgid "Combined View"
msgstr ""
-#: ../../include/conversation.php:1526
-msgid "Commented Order"
+#: ../../include/widgets.php:667 ../../include/nav.php:198
+msgid "Inbox"
msgstr ""
-#: ../../include/conversation.php:1529
-msgid "Sort by Comment Date"
+#: ../../include/widgets.php:672 ../../include/nav.php:199
+msgid "Outbox"
msgstr ""
-#: ../../include/conversation.php:1533
-msgid "Posted Order"
+#: ../../include/widgets.php:677 ../../include/nav.php:200
+msgid "New Message"
msgstr ""
-#: ../../include/conversation.php:1536
-msgid "Sort by Post Date"
+#: ../../include/widgets.php:694 ../../include/widgets.php:706
+msgid "Conversations"
msgstr ""
-#: ../../include/conversation.php:1544
-msgid "Posts that mention or involve you"
+#: ../../include/widgets.php:698
+msgid "Received Messages"
msgstr ""
-#: ../../include/conversation.php:1553
-msgid "Activity Stream - by date"
+#: ../../include/widgets.php:702
+msgid "Sent Messages"
msgstr ""
-#: ../../include/conversation.php:1559
-msgid "Starred"
+#: ../../include/widgets.php:716
+msgid "No messages."
msgstr ""
-#: ../../include/conversation.php:1562
-msgid "Favourite Posts"
+#: ../../include/widgets.php:734
+msgid "Delete conversation"
msgstr ""
-#: ../../include/conversation.php:1569
-msgid "Spam"
+#: ../../include/widgets.php:760
+msgid "Events Tools"
msgstr ""
-#: ../../include/conversation.php:1572
-msgid "Posts flagged as SPAM"
+#: ../../include/widgets.php:761
+msgid "Export Calendar"
msgstr ""
-#: ../../include/conversation.php:1629
-msgid "Status Messages and Posts"
+#: ../../include/widgets.php:762
+msgid "Import Calendar"
msgstr ""
-#: ../../include/conversation.php:1638
-msgid "About"
+#: ../../include/widgets.php:836 ../../include/conversation.php:1677
+#: ../../include/conversation.php:1680
+msgid "Chatrooms"
msgstr ""
-#: ../../include/conversation.php:1641
-msgid "Profile Details"
+#: ../../include/widgets.php:840
+msgid "Overview"
msgstr ""
-#: ../../include/conversation.php:1650 ../../include/photos.php:506
-msgid "Photo Albums"
+#: ../../include/widgets.php:847
+msgid "Chat Members"
msgstr ""
-#: ../../include/conversation.php:1657
-msgid "Files and Storage"
+#: ../../include/widgets.php:869
+msgid "Wiki List"
msgstr ""
-#: ../../include/conversation.php:1677 ../../include/conversation.php:1680
-#: ../../include/widgets.php:827
-msgid "Chatrooms"
+#: ../../include/widgets.php:907
+msgid "Wiki Pages"
msgstr ""
-#: ../../include/conversation.php:1690 ../../include/nav.php:102
-msgid "Bookmarks"
+#: ../../include/widgets.php:942
+msgid "Bookmarked Chatrooms"
msgstr ""
-#: ../../include/conversation.php:1693
-msgid "Saved Bookmarks"
+#: ../../include/widgets.php:965
+msgid "Suggested Chatrooms"
msgstr ""
-#: ../../include/conversation.php:1703
-msgid "Manage Webpages"
+#: ../../include/widgets.php:1111 ../../include/widgets.php:1223
+msgid "photo/image"
msgstr ""
-#: ../../include/conversation.php:1768
-msgctxt "noun"
-msgid "Attending"
-msgid_plural "Attending"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/conversation.php:1771
-msgctxt "noun"
-msgid "Not Attending"
-msgid_plural "Not Attending"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/conversation.php:1774
-msgctxt "noun"
-msgid "Undecided"
-msgid_plural "Undecided"
-msgstr[0] ""
-msgstr[1] ""
+#: ../../include/widgets.php:1166
+msgid "Click to show more"
+msgstr ""
-#: ../../include/conversation.php:1777
-msgctxt "noun"
-msgid "Agree"
-msgid_plural "Agrees"
-msgstr[0] ""
-msgstr[1] ""
+#: ../../include/widgets.php:1317
+msgid "Rating Tools"
+msgstr ""
-#: ../../include/conversation.php:1780
-msgctxt "noun"
-msgid "Disagree"
-msgid_plural "Disagrees"
-msgstr[0] ""
-msgstr[1] ""
+#: ../../include/widgets.php:1321 ../../include/widgets.php:1323
+msgid "Rate Me"
+msgstr ""
-#: ../../include/conversation.php:1783
-msgctxt "noun"
-msgid "Abstain"
-msgid_plural "Abstains"
-msgstr[0] ""
-msgstr[1] ""
+#: ../../include/widgets.php:1326
+msgid "View Ratings"
+msgstr ""
-#: ../../include/connections.php:95
-msgid "New window"
+#: ../../include/widgets.php:1405
+msgid "Forums"
msgstr ""
-#: ../../include/connections.php:96
-msgid "Open the selected location in a different window or browser tab"
+#: ../../include/widgets.php:1434
+msgid "Tasks"
msgstr ""
-#: ../../include/connections.php:214
-#, php-format
-msgid "User '%s' deleted"
+#: ../../include/widgets.php:1443
+msgid "Documentation"
msgstr ""
-#: ../../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."
+#: ../../include/widgets.php:1445
+msgid "Project/Site Information"
msgstr ""
-#: ../../include/group.php:248
-msgid "Add new connections to this privacy group"
+#: ../../include/widgets.php:1446
+msgid "For Members"
msgstr ""
-#: ../../include/group.php:289
-msgid "edit"
+#: ../../include/widgets.php:1447
+msgid "For Administrators"
msgstr ""
-#: ../../include/group.php:311 ../../include/features.php:84
-msgid "Privacy Groups"
+#: ../../include/widgets.php:1448
+msgid "For Developers"
msgstr ""
-#: ../../include/group.php:312
-msgid "Edit group"
+#: ../../include/widgets.php:1472 ../../include/widgets.php:1510
+msgid "Member registrations waiting for confirmation"
msgstr ""
-#: ../../include/group.php:313
-msgid "Add privacy group"
+#: ../../include/widgets.php:1478
+msgid "Inspect queue"
msgstr ""
-#: ../../include/group.php:314
-msgid "Channels not in any privacy group"
+#: ../../include/widgets.php:1480
+msgid "DB updates"
msgstr ""
-#: ../../include/group.php:316 ../../include/widgets.php:282
-msgid "add"
+#: ../../include/widgets.php:1505 ../../include/nav.php:218
+msgid "Admin"
msgstr ""
-#: ../../include/js_strings.php:5
-msgid "Delete this item?"
+#: ../../include/widgets.php:1506
+msgid "Plugin Features"
msgstr ""
-#: ../../include/js_strings.php:8
-#, php-format
-msgid "%s show less"
+#: ../../include/nav.php:82 ../../include/nav.php:115 ../../boot.php:1703
+msgid "Logout"
msgstr ""
-#: ../../include/js_strings.php:9
-#, php-format
-msgid "%s expand"
+#: ../../include/nav.php:82 ../../include/nav.php:115
+msgid "End this session"
msgstr ""
-#: ../../include/js_strings.php:10
-#, php-format
-msgid "%s collapse"
+#: ../../include/nav.php:85 ../../include/nav.php:146
+msgid "Home"
msgstr ""
-#: ../../include/js_strings.php:11
-msgid "Password too short"
+#: ../../include/nav.php:85
+msgid "Your posts and conversations"
msgstr ""
-#: ../../include/js_strings.php:12
-msgid "Passwords do not match"
+#: ../../include/nav.php:86
+msgid "Your profile page"
msgstr ""
-#: ../../include/js_strings.php:13
-msgid "everybody"
+#: ../../include/nav.php:88
+msgid "Manage/Edit profiles"
msgstr ""
-#: ../../include/js_strings.php:14
-msgid "Secret Passphrase"
+#: ../../include/nav.php:90 ../../include/channel.php:965
+msgid "Edit Profile"
msgstr ""
-#: ../../include/js_strings.php:15
-msgid "Passphrase hint"
+#: ../../include/nav.php:90
+msgid "Edit your profile"
msgstr ""
-#: ../../include/js_strings.php:16
-msgid "Notice: Permissions have changed but have not yet been submitted."
+#: ../../include/nav.php:92
+msgid "Your photos"
msgstr ""
-#: ../../include/js_strings.php:17
-msgid "close all"
+#: ../../include/nav.php:93
+msgid "Your files"
msgstr ""
-#: ../../include/js_strings.php:18
-msgid "Nothing new here"
+#: ../../include/nav.php:96
+msgid "Your chatrooms"
msgstr ""
-#: ../../include/js_strings.php:19
-msgid "Rate This Channel (this is public)"
+#: ../../include/nav.php:102 ../../include/conversation.php:1690
+msgid "Bookmarks"
msgstr ""
-#: ../../include/js_strings.php:21
-msgid "Describe (optional)"
+#: ../../include/nav.php:102
+msgid "Your bookmarks"
msgstr ""
-#: ../../include/js_strings.php:23
-msgid "Please enter a link URL"
+#: ../../include/nav.php:106
+msgid "Your webpages"
msgstr ""
-#: ../../include/js_strings.php:24
-msgid "Unsaved changes. Are you sure you wish to leave this page?"
+#: ../../include/nav.php:108
+msgid "Your wiki"
msgstr ""
-#: ../../include/js_strings.php:27
-msgid "timeago.prefixAgo"
+#: ../../include/nav.php:112
+msgid "Sign in"
msgstr ""
-#: ../../include/js_strings.php:28
-msgid "timeago.prefixFromNow"
+#: ../../include/nav.php:129
+#, php-format
+msgid "%s - click to logout"
msgstr ""
-#: ../../include/js_strings.php:29
-msgid "ago"
+#: ../../include/nav.php:132
+msgid "Remote authentication"
msgstr ""
-#: ../../include/js_strings.php:30
-msgid "from now"
+#: ../../include/nav.php:132
+msgid "Click to authenticate to your home hub"
msgstr ""
-#: ../../include/js_strings.php:31
-msgid "less than a minute"
+#: ../../include/nav.php:146
+msgid "Home Page"
msgstr ""
-#: ../../include/js_strings.php:32
-msgid "about a minute"
+#: ../../include/nav.php:149
+msgid "Create an account"
msgstr ""
-#: ../../include/js_strings.php:33
-#, php-format
-msgid "%d minutes"
+#: ../../include/nav.php:161
+msgid "Help and documentation"
msgstr ""
-#: ../../include/js_strings.php:34
-msgid "about an hour"
+#: ../../include/nav.php:165
+msgid "Applications, utilities, links, games"
msgstr ""
-#: ../../include/js_strings.php:35
-#, php-format
-msgid "about %d hours"
+#: ../../include/nav.php:167
+msgid "Search site @name, #tag, ?docs, content"
msgstr ""
-#: ../../include/js_strings.php:36
-msgid "a day"
+#: ../../include/nav.php:169
+msgid "Channel Directory"
msgstr ""
-#: ../../include/js_strings.php:37
-#, php-format
-msgid "%d days"
+#: ../../include/nav.php:181
+msgid "Your grid"
msgstr ""
-#: ../../include/js_strings.php:38
-msgid "about a month"
+#: ../../include/nav.php:182
+msgid "Mark all grid notifications seen"
msgstr ""
-#: ../../include/js_strings.php:39
-#, php-format
-msgid "%d months"
+#: ../../include/nav.php:184
+msgid "Channel home"
msgstr ""
-#: ../../include/js_strings.php:40
-msgid "about a year"
+#: ../../include/nav.php:185
+msgid "Mark all channel notifications seen"
msgstr ""
-#: ../../include/js_strings.php:41
-#, php-format
-msgid "%d years"
+#: ../../include/nav.php:191
+msgid "Notices"
msgstr ""
-#: ../../include/js_strings.php:42
-msgid " "
+#: ../../include/nav.php:191
+msgid "Notifications"
msgstr ""
-#: ../../include/js_strings.php:43
-msgid "timeago.numbers"
+#: ../../include/nav.php:192
+msgid "See all notifications"
msgstr ""
-#: ../../include/js_strings.php:45 ../../include/text.php:1237
-msgid "January"
+#: ../../include/nav.php:195
+msgid "Private mail"
msgstr ""
-#: ../../include/js_strings.php:46 ../../include/text.php:1237
-msgid "February"
+#: ../../include/nav.php:196
+msgid "See all private messages"
msgstr ""
-#: ../../include/js_strings.php:47 ../../include/text.php:1237
-msgid "March"
+#: ../../include/nav.php:197
+msgid "Mark all private messages seen"
msgstr ""
-#: ../../include/js_strings.php:48 ../../include/text.php:1237
-msgid "April"
+#: ../../include/nav.php:203
+msgid "Event Calendar"
msgstr ""
-#: ../../include/js_strings.php:49
-msgctxt "long"
-msgid "May"
+#: ../../include/nav.php:204
+msgid "See all events"
msgstr ""
-#: ../../include/js_strings.php:50 ../../include/text.php:1237
-msgid "June"
+#: ../../include/nav.php:205
+msgid "Mark all events seen"
msgstr ""
-#: ../../include/js_strings.php:51 ../../include/text.php:1237
-msgid "July"
+#: ../../include/nav.php:208
+msgid "Manage Your Channels"
msgstr ""
-#: ../../include/js_strings.php:52 ../../include/text.php:1237
-msgid "August"
+#: ../../include/nav.php:210
+msgid "Account/Channel Settings"
msgstr ""
-#: ../../include/js_strings.php:53 ../../include/text.php:1237
-msgid "September"
+#: ../../include/nav.php:218
+msgid "Site Setup and Configuration"
msgstr ""
-#: ../../include/js_strings.php:54 ../../include/text.php:1237
-msgid "October"
+#: ../../include/nav.php:249 ../../include/conversation.php:854
+msgid "Loading..."
msgstr ""
-#: ../../include/js_strings.php:55 ../../include/text.php:1237
-msgid "November"
+#: ../../include/nav.php:254
+msgid "@name, #tag, ?doc, content"
msgstr ""
-#: ../../include/js_strings.php:56 ../../include/text.php:1237
-msgid "December"
+#: ../../include/nav.php:255
+msgid "Please wait..."
msgstr ""
-#: ../../include/js_strings.php:57
-msgid "Jan"
+#: ../../include/network.php:704
+msgid "view full size"
msgstr ""
-#: ../../include/js_strings.php:58
-msgid "Feb"
+#: ../../include/network.php:1930 ../../include/account.php:317
+#: ../../include/account.php:344 ../../include/account.php:404
+msgid "Administrator"
msgstr ""
-#: ../../include/js_strings.php:59
-msgid "Mar"
+#: ../../include/network.php:1944
+msgid "No Subject"
msgstr ""
-#: ../../include/js_strings.php:60
-msgid "Apr"
+#: ../../include/network.php:2198 ../../include/network.php:2199
+msgid "Friendica"
msgstr ""
-#: ../../include/js_strings.php:61
-msgctxt "short"
-msgid "May"
+#: ../../include/network.php:2200
+msgid "OStatus"
msgstr ""
-#: ../../include/js_strings.php:62
-msgid "Jun"
+#: ../../include/network.php:2201
+msgid "GNU-Social"
msgstr ""
-#: ../../include/js_strings.php:63
-msgid "Jul"
+#: ../../include/network.php:2202
+msgid "RSS/Atom"
msgstr ""
-#: ../../include/js_strings.php:64
-msgid "Aug"
+#: ../../include/network.php:2204
+msgid "Diaspora"
msgstr ""
-#: ../../include/js_strings.php:65
-msgid "Sep"
+#: ../../include/network.php:2205
+msgid "Facebook"
msgstr ""
-#: ../../include/js_strings.php:66
-msgid "Oct"
+#: ../../include/network.php:2206
+msgid "Zot"
msgstr ""
-#: ../../include/js_strings.php:67
-msgid "Nov"
+#: ../../include/network.php:2207
+msgid "LinkedIn"
msgstr ""
-#: ../../include/js_strings.php:68
-msgid "Dec"
+#: ../../include/network.php:2208
+msgid "XMPP/IM"
msgstr ""
-#: ../../include/js_strings.php:69 ../../include/text.php:1233
-msgid "Sunday"
+#: ../../include/network.php:2209
+msgid "MySpace"
msgstr ""
-#: ../../include/js_strings.php:70 ../../include/text.php:1233
-msgid "Monday"
+#: ../../include/oembed.php:325
+msgid "Embedded content"
msgstr ""
-#: ../../include/js_strings.php:71 ../../include/text.php:1233
-msgid "Tuesday"
+#: ../../include/oembed.php:334
+msgid "Embedding disabled"
msgstr ""
-#: ../../include/js_strings.php:72 ../../include/text.php:1233
-msgid "Wednesday"
+#: ../../include/page_widgets.php:7
+msgid "New Page"
msgstr ""
-#: ../../include/js_strings.php:73 ../../include/text.php:1233
-msgid "Thursday"
+#: ../../include/page_widgets.php:46
+msgid "Title"
msgstr ""
-#: ../../include/js_strings.php:74 ../../include/text.php:1233
-msgid "Friday"
+#: ../../include/photos.php:114
+#, php-format
+msgid "Image exceeds website size limit of %lu bytes"
msgstr ""
-#: ../../include/js_strings.php:75 ../../include/text.php:1233
-msgid "Saturday"
+#: ../../include/photos.php:121
+msgid "Image file is empty."
msgstr ""
-#: ../../include/js_strings.php:76
-msgid "Sun"
+#: ../../include/photos.php:259
+msgid "Photo storage failed."
msgstr ""
-#: ../../include/js_strings.php:77
-msgid "Mon"
+#: ../../include/photos.php:299
+msgid "a new photo"
msgstr ""
-#: ../../include/js_strings.php:78
-msgid "Tue"
+#: ../../include/photos.php:303
+#, php-format
+msgctxt "photo_upload"
+msgid "%1$s posted %2$s to %3$s"
msgstr ""
-#: ../../include/js_strings.php:79
-msgid "Wed"
+#: ../../include/photos.php:506 ../../include/conversation.php:1650
+msgid "Photo Albums"
msgstr ""
-#: ../../include/js_strings.php:80
-msgid "Thu"
+#: ../../include/photos.php:510
+msgid "Upload New Photos"
msgstr ""
-#: ../../include/js_strings.php:81
-msgid "Fri"
+#: ../../include/taxonomy.php:228 ../../include/taxonomy.php:249
+msgid "Tags"
msgstr ""
-#: ../../include/js_strings.php:82
-msgid "Sat"
+#: ../../include/taxonomy.php:293
+msgid "Keywords"
msgstr ""
-#: ../../include/js_strings.php:83
-msgctxt "calendar"
-msgid "today"
+#: ../../include/taxonomy.php:314
+msgid "have"
msgstr ""
-#: ../../include/js_strings.php:84
-msgctxt "calendar"
-msgid "month"
+#: ../../include/taxonomy.php:314
+msgid "has"
msgstr ""
-#: ../../include/js_strings.php:85
-msgctxt "calendar"
-msgid "week"
+#: ../../include/taxonomy.php:315
+msgid "want"
msgstr ""
-#: ../../include/js_strings.php:86
-msgctxt "calendar"
-msgid "day"
+#: ../../include/taxonomy.php:315
+msgid "wants"
msgstr ""
-#: ../../include/js_strings.php:87
-msgctxt "calendar"
-msgid "All day"
+#: ../../include/taxonomy.php:316
+msgid "likes"
msgstr ""
-#: ../../include/nav.php:82 ../../include/nav.php:115 ../../boot.php:1703
-msgid "Logout"
+#: ../../include/taxonomy.php:317
+msgid "dislikes"
msgstr ""
-#: ../../include/nav.php:82 ../../include/nav.php:115
-msgid "End this session"
+#: ../../include/follow.php:27
+msgid "Channel is blocked on this site."
msgstr ""
-#: ../../include/nav.php:85 ../../include/nav.php:146
-msgid "Home"
+#: ../../include/follow.php:32
+msgid "Channel location missing."
msgstr ""
-#: ../../include/nav.php:85
-msgid "Your posts and conversations"
+#: ../../include/follow.php:81
+msgid "Response from remote channel was incomplete."
msgstr ""
-#: ../../include/nav.php:86
-msgid "Your profile page"
+#: ../../include/follow.php:98
+msgid "Channel was deleted and no longer exists."
msgstr ""
-#: ../../include/nav.php:88
-msgid "Manage/Edit profiles"
+#: ../../include/follow.php:154 ../../include/follow.php:190
+msgid "Protocol disabled."
msgstr ""
-#: ../../include/nav.php:90 ../../include/channel.php:965
-msgid "Edit Profile"
+#: ../../include/follow.php:178
+msgid "Channel discovery failed."
msgstr ""
-#: ../../include/nav.php:90
-msgid "Edit your profile"
+#: ../../include/follow.php:216
+msgid "Cannot connect to yourself."
msgstr ""
-#: ../../include/nav.php:92
-msgid "Your photos"
+#: ../../include/channel.php:32
+msgid "Unable to obtain identity information from database"
msgstr ""
-#: ../../include/nav.php:93
-msgid "Your files"
+#: ../../include/channel.php:66
+msgid "Empty name"
msgstr ""
-#: ../../include/nav.php:96
-msgid "Your chatrooms"
+#: ../../include/channel.php:69
+msgid "Name too long"
msgstr ""
-#: ../../include/nav.php:102
-msgid "Your bookmarks"
+#: ../../include/channel.php:180
+msgid "No account identifier"
msgstr ""
-#: ../../include/nav.php:106
-msgid "Your webpages"
+#: ../../include/channel.php:192
+msgid "Nickname is required."
msgstr ""
-#: ../../include/nav.php:108
-msgid "Your wiki"
+#: ../../include/channel.php:206
+msgid "Reserved nickname. Please choose another."
msgstr ""
-#: ../../include/nav.php:112
-msgid "Sign in"
+#: ../../include/channel.php:211
+msgid ""
+"Nickname has unsupported characters or is already being used on this site."
msgstr ""
-#: ../../include/nav.php:129
-#, php-format
-msgid "%s - click to logout"
+#: ../../include/channel.php:287
+msgid "Unable to retrieve created identity"
msgstr ""
-#: ../../include/nav.php:132
-msgid "Remote authentication"
+#: ../../include/channel.php:345
+msgid "Default Profile"
msgstr ""
-#: ../../include/nav.php:132
-msgid "Click to authenticate to your home hub"
+#: ../../include/channel.php:815
+msgid "Requested channel is not available."
msgstr ""
-#: ../../include/nav.php:146
-msgid "Home Page"
+#: ../../include/channel.php:962
+msgid "Create New Profile"
msgstr ""
-#: ../../include/nav.php:149
-msgid "Create an account"
+#: ../../include/channel.php:982
+msgid "Visible to everybody"
msgstr ""
-#: ../../include/nav.php:161
-msgid "Help and documentation"
+#: ../../include/channel.php:1055 ../../include/channel.php:1167
+msgid "Gender:"
msgstr ""
-#: ../../include/nav.php:165
-msgid "Applications, utilities, links, games"
+#: ../../include/channel.php:1056 ../../include/channel.php:1211
+msgid "Status:"
msgstr ""
-#: ../../include/nav.php:167
-msgid "Search site @name, #tag, ?docs, content"
+#: ../../include/channel.php:1057 ../../include/channel.php:1222
+msgid "Homepage:"
msgstr ""
-#: ../../include/nav.php:169
-msgid "Channel Directory"
+#: ../../include/channel.php:1058
+msgid "Online Now"
msgstr ""
-#: ../../include/nav.php:181
-msgid "Your grid"
+#: ../../include/channel.php:1172
+msgid "Like this channel"
msgstr ""
-#: ../../include/nav.php:182
-msgid "Mark all grid notifications seen"
+#: ../../include/channel.php:1196
+msgid "j F, Y"
msgstr ""
-#: ../../include/nav.php:184
-msgid "Channel home"
+#: ../../include/channel.php:1197
+msgid "j F"
msgstr ""
-#: ../../include/nav.php:185
-msgid "Mark all channel notifications seen"
+#: ../../include/channel.php:1204
+msgid "Birthday:"
msgstr ""
-#: ../../include/nav.php:191
-msgid "Notices"
+#: ../../include/channel.php:1217
+#, php-format
+msgid "for %1$d %2$s"
msgstr ""
-#: ../../include/nav.php:191
-msgid "Notifications"
+#: ../../include/channel.php:1220
+msgid "Sexual Preference:"
msgstr ""
-#: ../../include/nav.php:192
-msgid "See all notifications"
+#: ../../include/channel.php:1226
+msgid "Tags:"
msgstr ""
-#: ../../include/nav.php:195
-msgid "Private mail"
+#: ../../include/channel.php:1228
+msgid "Political Views:"
msgstr ""
-#: ../../include/nav.php:196
-msgid "See all private messages"
+#: ../../include/channel.php:1230
+msgid "Religion:"
msgstr ""
-#: ../../include/nav.php:197
-msgid "Mark all private messages seen"
+#: ../../include/channel.php:1234
+msgid "Hobbies/Interests:"
msgstr ""
-#: ../../include/nav.php:198 ../../include/widgets.php:658
-msgid "Inbox"
+#: ../../include/channel.php:1236
+msgid "Likes:"
msgstr ""
-#: ../../include/nav.php:199 ../../include/widgets.php:663
-msgid "Outbox"
+#: ../../include/channel.php:1238
+msgid "Dislikes:"
msgstr ""
-#: ../../include/nav.php:200 ../../include/widgets.php:668
-msgid "New Message"
+#: ../../include/channel.php:1240
+msgid "Contact information and Social Networks:"
msgstr ""
-#: ../../include/nav.php:203
-msgid "Event Calendar"
+#: ../../include/channel.php:1242
+msgid "My other channels:"
msgstr ""
-#: ../../include/nav.php:204
-msgid "See all events"
+#: ../../include/channel.php:1244
+msgid "Musical interests:"
msgstr ""
-#: ../../include/nav.php:205
-msgid "Mark all events seen"
+#: ../../include/channel.php:1246
+msgid "Books, literature:"
msgstr ""
-#: ../../include/nav.php:208
-msgid "Manage Your Channels"
+#: ../../include/channel.php:1248
+msgid "Television:"
msgstr ""
-#: ../../include/nav.php:210
-msgid "Account/Channel Settings"
+#: ../../include/channel.php:1250
+msgid "Film/dance/culture/entertainment:"
msgstr ""
-#: ../../include/nav.php:218 ../../include/widgets.php:1474
-msgid "Admin"
+#: ../../include/channel.php:1252
+msgid "Love/Romance:"
msgstr ""
-#: ../../include/nav.php:218
-msgid "Site Setup and Configuration"
+#: ../../include/channel.php:1254
+msgid "Work/employment:"
msgstr ""
-#: ../../include/nav.php:254
-msgid "@name, #tag, ?doc, content"
+#: ../../include/channel.php:1256
+msgid "School/education:"
msgstr ""
-#: ../../include/nav.php:255
-msgid "Please wait..."
+#: ../../include/channel.php:1277
+msgid "Like this thing"
msgstr ""
#: ../../include/selectors.php:30
@@ -8107,1240 +8061,1349 @@ msgstr ""
msgid "Happy Birthday %1$s"
msgstr ""
-#: ../../include/follow.php:27
-msgid "Channel is blocked on this site."
+#: ../../include/conversation.php:204
+#, php-format
+msgid "%1$s is now connected with %2$s"
msgstr ""
-#: ../../include/follow.php:32
-msgid "Channel location missing."
+#: ../../include/conversation.php:239
+#, php-format
+msgid "%1$s poked %2$s"
msgstr ""
-#: ../../include/follow.php:81
-msgid "Response from remote channel was incomplete."
+#: ../../include/conversation.php:243 ../../include/text.php:1013
+#: ../../include/text.php:1018
+msgid "poked"
msgstr ""
-#: ../../include/follow.php:98
-msgid "Channel was deleted and no longer exists."
+#: ../../include/conversation.php:694
+#, php-format
+msgid "View %s's profile @ %s"
msgstr ""
-#: ../../include/follow.php:154 ../../include/follow.php:190
-msgid "Protocol disabled."
+#: ../../include/conversation.php:713
+msgid "Categories:"
msgstr ""
-#: ../../include/follow.php:178
-msgid "Channel discovery failed."
+#: ../../include/conversation.php:714
+msgid "Filed under:"
msgstr ""
-#: ../../include/follow.php:216
-msgid "Cannot connect to yourself."
+#: ../../include/conversation.php:741
+msgid "View in context"
msgstr ""
-#: ../../include/import.php:29
-msgid ""
-"Cannot create a duplicate channel identifier on this system. Import failed."
+#: ../../include/conversation.php:850
+msgid "remove"
msgstr ""
-#: ../../include/import.php:76
-msgid "Channel clone failed. Import failed."
+#: ../../include/conversation.php:855
+msgid "Delete Selected Items"
msgstr ""
-#: ../../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."
+#: ../../include/conversation.php:951
+msgid "View Source"
msgstr ""
-#: ../../include/api.php:1326
-msgid "Public Timeline"
+#: ../../include/conversation.php:952
+msgid "Follow Thread"
msgstr ""
-#: ../../include/page_widgets.php:7
-msgid "New Page"
+#: ../../include/conversation.php:953
+msgid "Unfollow Thread"
msgstr ""
-#: ../../include/page_widgets.php:46
-msgid "Title"
+#: ../../include/conversation.php:958
+msgid "Activity/Posts"
msgstr ""
-#: ../../include/photos.php:114
-#, php-format
-msgid "Image exceeds website size limit of %lu bytes"
+#: ../../include/conversation.php:960
+msgid "Edit Connection"
msgstr ""
-#: ../../include/photos.php:121
-msgid "Image file is empty."
+#: ../../include/conversation.php:961
+msgid "Message"
msgstr ""
-#: ../../include/photos.php:259
-msgid "Photo storage failed."
+#: ../../include/conversation.php:1078
+#, php-format
+msgid "%s likes this."
msgstr ""
-#: ../../include/photos.php:299
-msgid "a new photo"
+#: ../../include/conversation.php:1078
+#, php-format
+msgid "%s doesn't like this."
msgstr ""
-#: ../../include/photos.php:303
+#: ../../include/conversation.php:1082
#, php-format
-msgctxt "photo_upload"
-msgid "%1$s posted %2$s to %3$s"
+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: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] ""
+msgstr[1] ""
+
+#: ../../include/conversation.php:1090
+msgid "and"
msgstr ""
-#: ../../include/photos.php:510
-msgid "Upload New Photos"
+#: ../../include/conversation.php:1093
+#, php-format
+msgid ", and %d other people"
+msgid_plural ", and %d other people"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../include/conversation.php:1094
+#, php-format
+msgid "%s like this."
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/conversation.php:1094
+#, php-format
+msgid "%s don't like this."
msgstr ""
-#: ../../include/taxonomy.php:228 ../../include/taxonomy.php:249
-msgid "Tags"
+#: ../../include/conversation.php:1133
+msgid "Set your location"
msgstr ""
-#: ../../include/taxonomy.php:293
-msgid "Keywords"
+#: ../../include/conversation.php:1134
+msgid "Clear browser location"
msgstr ""
-#: ../../include/taxonomy.php:314
-msgid "have"
+#: ../../include/conversation.php:1182
+msgid "Tag term:"
msgstr ""
-#: ../../include/taxonomy.php:314
-msgid "has"
+#: ../../include/conversation.php:1183
+msgid "Where are you right now?"
msgstr ""
-#: ../../include/taxonomy.php:315
-msgid "want"
+#: ../../include/conversation.php:1221
+msgid "Page link name"
msgstr ""
-#: ../../include/taxonomy.php:315
-msgid "wants"
+#: ../../include/conversation.php:1224
+msgid "Post as"
msgstr ""
-#: ../../include/taxonomy.php:316
-msgid "likes"
+#: ../../include/conversation.php:1238
+msgid "Toggle voting"
msgstr ""
-#: ../../include/taxonomy.php:317
-msgid "dislikes"
+#: ../../include/conversation.php:1246
+msgid "Categories (optional, comma-separated list)"
msgstr ""
-#: ../../include/zot.php:709
-msgid "Invalid data packet"
+#: ../../include/conversation.php:1269
+msgid "Set publish date"
msgstr ""
-#: ../../include/zot.php:725
-msgid "Unable to verify channel signature"
+#: ../../include/conversation.php:1518
+msgid "Discover"
msgstr ""
-#: ../../include/zot.php:2373
-#, php-format
-msgid "Unable to verify site signature for %s"
+#: ../../include/conversation.php:1521
+msgid "Imported public streams"
msgstr ""
-#: ../../include/zot.php:3718
-msgid "invalid target signature"
+#: ../../include/conversation.php:1526
+msgid "Commented Order"
msgstr ""
-#: ../../include/attach.php:247 ../../include/attach.php:333
-msgid "Item was not found."
+#: ../../include/conversation.php:1529
+msgid "Sort by Comment Date"
msgstr ""
-#: ../../include/attach.php:499
-msgid "No source file."
+#: ../../include/conversation.php:1533
+msgid "Posted Order"
msgstr ""
-#: ../../include/attach.php:521
-msgid "Cannot locate file to replace"
+#: ../../include/conversation.php:1536
+msgid "Sort by Post Date"
msgstr ""
-#: ../../include/attach.php:539
-msgid "Cannot locate file to revise/update"
+#: ../../include/conversation.php:1544
+msgid "Posts that mention or involve you"
msgstr ""
-#: ../../include/attach.php:674
-#, php-format
-msgid "File exceeds size limit of %d"
+#: ../../include/conversation.php:1553
+msgid "Activity Stream - by date"
msgstr ""
-#: ../../include/attach.php:688
-#, php-format
-msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
+#: ../../include/conversation.php:1559
+msgid "Starred"
msgstr ""
-#: ../../include/attach.php:846
-msgid "File upload failed. Possible system limit or action terminated."
+#: ../../include/conversation.php:1562
+msgid "Favourite Posts"
msgstr ""
-#: ../../include/attach.php:859
-msgid "Stored file could not be verified. Upload failed."
+#: ../../include/conversation.php:1569
+msgid "Spam"
msgstr ""
-#: ../../include/attach.php:915 ../../include/attach.php:931
-msgid "Path not available."
+#: ../../include/conversation.php:1572
+msgid "Posts flagged as SPAM"
msgstr ""
-#: ../../include/attach.php:977 ../../include/attach.php:1129
-msgid "Empty pathname"
+#: ../../include/conversation.php:1629
+msgid "Status Messages and Posts"
msgstr ""
-#: ../../include/attach.php:1003
-msgid "duplicate filename or path"
+#: ../../include/conversation.php:1638
+msgid "About"
msgstr ""
-#: ../../include/attach.php:1025
-msgid "Path not found."
+#: ../../include/conversation.php:1641
+msgid "Profile Details"
msgstr ""
-#: ../../include/attach.php:1083
-msgid "mkdir failed."
+#: ../../include/conversation.php:1657
+msgid "Files and Storage"
msgstr ""
-#: ../../include/attach.php:1087
-msgid "database storage failed."
+#: ../../include/conversation.php:1693
+msgid "Saved Bookmarks"
msgstr ""
-#: ../../include/attach.php:1135
-msgid "Empty path"
+#: ../../include/conversation.php:1703
+msgid "Manage Webpages"
msgstr ""
-#: ../../include/widgets.php:103
-msgid "System"
+#: ../../include/conversation.php:1768
+msgctxt "noun"
+msgid "Attending"
+msgid_plural "Attending"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../include/conversation.php:1771
+msgctxt "noun"
+msgid "Not Attending"
+msgid_plural "Not Attending"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../include/conversation.php:1774
+msgctxt "noun"
+msgid "Undecided"
+msgid_plural "Undecided"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../include/conversation.php:1777
+msgctxt "noun"
+msgid "Agree"
+msgid_plural "Agrees"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../include/conversation.php:1780
+msgctxt "noun"
+msgid "Disagree"
+msgid_plural "Disagrees"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../include/conversation.php:1783
+msgctxt "noun"
+msgid "Abstain"
+msgid_plural "Abstains"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../include/items.php:898 ../../include/items.php:943
+msgid "(Unknown)"
msgstr ""
-#: ../../include/widgets.php:106
-msgid "New App"
+#: ../../include/items.php:1142
+msgid "Visible to anybody on the internet."
msgstr ""
-#: ../../include/widgets.php:154
-msgid "Suggestions"
+#: ../../include/items.php:1144
+msgid "Visible to you only."
msgstr ""
-#: ../../include/widgets.php:155
-msgid "See more..."
+#: ../../include/items.php:1146
+msgid "Visible to anybody in this network."
msgstr ""
-#: ../../include/widgets.php:175
+#: ../../include/items.php:1148
+msgid "Visible to anybody authenticated."
+msgstr ""
+
+#: ../../include/items.php:1150
#, php-format
-msgid "You have %1$.0f of %2$.0f allowed connections."
+msgid "Visible to anybody on %s."
msgstr ""
-#: ../../include/widgets.php:181
-msgid "Add New Connection"
+#: ../../include/items.php:1152
+msgid "Visible to all connections."
msgstr ""
-#: ../../include/widgets.php:182
-msgid "Enter channel address"
+#: ../../include/items.php:1154
+msgid "Visible to approved connections."
msgstr ""
-#: ../../include/widgets.php:183
-msgid "Examples: bob@example.com, https://example.com/barbara"
+#: ../../include/items.php:1156
+msgid "Visible to specific connections."
msgstr ""
-#: ../../include/widgets.php:199
-msgid "Notes"
+#: ../../include/items.php:3919
+msgid "Privacy group is empty."
msgstr ""
-#: ../../include/widgets.php:273
-msgid "Remove term"
+#: ../../include/items.php:3926
+#, php-format
+msgid "Privacy group: %s"
msgstr ""
-#: ../../include/widgets.php:281 ../../include/features.php:85
-msgid "Saved Searches"
+#: ../../include/items.php:3938
+msgid "Connection not found."
msgstr ""
-#: ../../include/widgets.php:310 ../../include/features.php:99
-#: ../../include/contact_widgets.php:53
-msgid "Saved Folders"
+#: ../../include/items.php:4291
+msgid "profile photo"
msgstr ""
-#: ../../include/widgets.php:313 ../../include/widgets.php:432
-#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:94
-msgid "Everything"
+#: ../../include/connections.php:95
+msgid "New window"
msgstr ""
-#: ../../include/widgets.php:354
-msgid "Archives"
+#: ../../include/connections.php:96
+msgid "Open the selected location in a different window or browser tab"
msgstr ""
-#: ../../include/widgets.php:516
-msgid "Refresh"
+#: ../../include/connections.php:214
+#, php-format
+msgid "User '%s' deleted"
msgstr ""
-#: ../../include/widgets.php:556
-msgid "Account settings"
+#: ../../include/features.php:48
+msgid "General Features"
msgstr ""
-#: ../../include/widgets.php:562
-msgid "Channel settings"
+#: ../../include/features.php:50
+msgid "Content Expiration"
msgstr ""
-#: ../../include/widgets.php:571
-msgid "Additional features"
+#: ../../include/features.php:50
+msgid "Remove posts/comments and/or private messages at a future time"
msgstr ""
-#: ../../include/widgets.php:578
-msgid "Feature/Addon settings"
+#: ../../include/features.php:51
+msgid "Multiple Profiles"
msgstr ""
-#: ../../include/widgets.php:584
-msgid "Display settings"
+#: ../../include/features.php:51
+msgid "Ability to create multiple profiles"
msgstr ""
-#: ../../include/widgets.php:591
-msgid "Manage locations"
+#: ../../include/features.php:52
+msgid "Advanced Profiles"
msgstr ""
-#: ../../include/widgets.php:600
-msgid "Export channel"
+#: ../../include/features.php:52
+msgid "Additional profile sections and selections"
msgstr ""
-#: ../../include/widgets.php:607
-msgid "Connected apps"
+#: ../../include/features.php:53
+msgid "Profile Import/Export"
msgstr ""
-#: ../../include/widgets.php:622
-msgid "Premium Channel Settings"
+#: ../../include/features.php:53
+msgid "Save and load profile details across sites/channels"
msgstr ""
-#: ../../include/widgets.php:651
-msgid "Private Mail Menu"
+#: ../../include/features.php:54
+msgid "Web Pages"
msgstr ""
-#: ../../include/widgets.php:653
-msgid "Combined View"
+#: ../../include/features.php:54
+msgid "Provide managed web pages on your channel"
msgstr ""
-#: ../../include/widgets.php:685 ../../include/widgets.php:697
-msgid "Conversations"
+#: ../../include/features.php:55
+msgid "Provide a wiki for your channel"
msgstr ""
-#: ../../include/widgets.php:689
-msgid "Received Messages"
+#: ../../include/features.php:56
+msgid "Hide Rating"
msgstr ""
-#: ../../include/widgets.php:693
-msgid "Sent Messages"
+#: ../../include/features.php:56
+msgid ""
+"Hide the rating buttons on your channel and profile pages. Note: People can "
+"still rate you somewhere else."
msgstr ""
-#: ../../include/widgets.php:707
-msgid "No messages."
+#: ../../include/features.php:57
+msgid "Private Notes"
msgstr ""
-#: ../../include/widgets.php:725
-msgid "Delete conversation"
+#: ../../include/features.php:57
+msgid "Enables a tool to store notes and reminders (note: not encrypted)"
msgstr ""
-#: ../../include/widgets.php:751
-msgid "Events Tools"
+#: ../../include/features.php:58
+msgid "Navigation Channel Select"
msgstr ""
-#: ../../include/widgets.php:752
-msgid "Export Calendar"
+#: ../../include/features.php:58
+msgid "Change channels directly from within the navigation dropdown menu"
msgstr ""
-#: ../../include/widgets.php:753
-msgid "Import Calendar"
+#: ../../include/features.php:59
+msgid "Photo Location"
msgstr ""
-#: ../../include/widgets.php:831
-msgid "Overview"
+#: ../../include/features.php:59
+msgid "If location data is available on uploaded photos, link this to a map."
msgstr ""
-#: ../../include/widgets.php:838
-msgid "Chat Members"
+#: ../../include/features.php:60
+msgid "Access Controlled Chatrooms"
msgstr ""
-#: ../../include/widgets.php:860
-msgid "Wiki List"
+#: ../../include/features.php:60
+msgid "Provide chatrooms and chat services with access control."
msgstr ""
-#: ../../include/widgets.php:898
-msgid "Wiki Pages"
+#: ../../include/features.php:61
+msgid "Smart Birthdays"
msgstr ""
-#: ../../include/widgets.php:933
-msgid "Bookmarked Chatrooms"
+#: ../../include/features.php:61
+msgid ""
+"Make birthday events timezone aware in case your friends are scattered "
+"across the planet."
msgstr ""
-#: ../../include/widgets.php:956
-msgid "Suggested Chatrooms"
+#: ../../include/features.php:62
+msgid "Expert Mode"
msgstr ""
-#: ../../include/widgets.php:1102 ../../include/widgets.php:1214
-msgid "photo/image"
+#: ../../include/features.php:62
+msgid "Enable Expert Mode to provide advanced configuration options"
msgstr ""
-#: ../../include/widgets.php:1157
-msgid "Click to show more"
+#: ../../include/features.php:63
+msgid "Premium Channel"
msgstr ""
-#: ../../include/widgets.php:1308
-msgid "Rating Tools"
+#: ../../include/features.php:63
+msgid ""
+"Allows you to set restrictions and terms on those that connect with your "
+"channel"
msgstr ""
-#: ../../include/widgets.php:1312 ../../include/widgets.php:1314
-msgid "Rate Me"
+#: ../../include/features.php:68
+msgid "Post Composition Features"
msgstr ""
-#: ../../include/widgets.php:1317
-msgid "View Ratings"
+#: ../../include/features.php:71
+msgid "Large Photos"
msgstr ""
-#: ../../include/widgets.php:1374
-msgid "Forums"
+#: ../../include/features.php:71
+msgid ""
+"Include large (1024px) photo thumbnails in posts. If not enabled, use small "
+"(640px) photo thumbnails"
msgstr ""
-#: ../../include/widgets.php:1403
-msgid "Tasks"
+#: ../../include/features.php:72
+msgid "Automatically import channel content from other channels or feeds"
msgstr ""
-#: ../../include/widgets.php:1412
-msgid "Documentation"
+#: ../../include/features.php:73
+msgid "Even More Encryption"
msgstr ""
-#: ../../include/widgets.php:1414
-msgid "Project/Site Information"
+#: ../../include/features.php:73
+msgid ""
+"Allow optional encryption of content end-to-end with a shared secret key"
msgstr ""
-#: ../../include/widgets.php:1415
-msgid "For Members"
+#: ../../include/features.php:74
+msgid "Enable Voting Tools"
msgstr ""
-#: ../../include/widgets.php:1416
-msgid "For Administrators"
+#: ../../include/features.php:74
+msgid "Provide a class of post which others can vote on"
msgstr ""
-#: ../../include/widgets.php:1417
-msgid "For Developers"
+#: ../../include/features.php:75
+msgid "Delayed Posting"
msgstr ""
-#: ../../include/widgets.php:1441 ../../include/widgets.php:1479
-msgid "Member registrations waiting for confirmation"
+#: ../../include/features.php:75
+msgid "Allow posts to be published at a later date"
msgstr ""
-#: ../../include/widgets.php:1447
-msgid "Inspect queue"
+#: ../../include/features.php:76
+msgid "Suppress Duplicate Posts/Comments"
msgstr ""
-#: ../../include/widgets.php:1449
-msgid "DB updates"
+#: ../../include/features.php:76
+msgid ""
+"Prevent posts with identical content to be published with less than two "
+"minutes in between submissions."
msgstr ""
-#: ../../include/widgets.php:1475
-msgid "Plugin Features"
+#: ../../include/features.php:82
+msgid "Network and Stream Filtering"
msgstr ""
-#: ../../include/text.php:404
-msgid "prev"
+#: ../../include/features.php:83
+msgid "Search by Date"
msgstr ""
-#: ../../include/text.php:406
-msgid "first"
+#: ../../include/features.php:83
+msgid "Ability to select posts by date ranges"
msgstr ""
-#: ../../include/text.php:435
-msgid "last"
+#: ../../include/features.php:84 ../../include/group.php:311
+msgid "Privacy Groups"
msgstr ""
-#: ../../include/text.php:438
-msgid "next"
+#: ../../include/features.php:84
+msgid "Enable management and selection of privacy groups"
msgstr ""
-#: ../../include/text.php:448
-msgid "older"
+#: ../../include/features.php:85
+msgid "Save search terms for re-use"
msgstr ""
-#: ../../include/text.php:450
-msgid "newer"
+#: ../../include/features.php:86
+msgid "Network Personal Tab"
msgstr ""
-#: ../../include/text.php:839
-msgid "No connections"
+#: ../../include/features.php:86
+msgid "Enable tab to display only Network posts that you've interacted on"
msgstr ""
-#: ../../include/text.php:864
-#, php-format
-msgid "View all %s connections"
+#: ../../include/features.php:87
+msgid "Network New Tab"
msgstr ""
-#: ../../include/text.php:1009 ../../include/text.php:1014
-msgid "poke"
+#: ../../include/features.php:87
+msgid "Enable tab to display all new Network activity"
msgstr ""
-#: ../../include/text.php:1015
-msgid "ping"
+#: ../../include/features.php:88
+msgid "Affinity Tool"
msgstr ""
-#: ../../include/text.php:1015
-msgid "pinged"
+#: ../../include/features.php:88
+msgid "Filter stream activity by depth of relationships"
msgstr ""
-#: ../../include/text.php:1016
-msgid "prod"
+#: ../../include/features.php:89
+msgid "Connection Filtering"
msgstr ""
-#: ../../include/text.php:1016
-msgid "prodded"
+#: ../../include/features.php:89
+msgid "Filter incoming posts from connections based on keywords/content"
msgstr ""
-#: ../../include/text.php:1017
-msgid "slap"
+#: ../../include/features.php:90
+msgid "Show channel suggestions"
msgstr ""
-#: ../../include/text.php:1017
-msgid "slapped"
+#: ../../include/features.php:95
+msgid "Post/Comment Tools"
msgstr ""
-#: ../../include/text.php:1018
-msgid "finger"
+#: ../../include/features.php:96
+msgid "Community Tagging"
msgstr ""
-#: ../../include/text.php:1018
-msgid "fingered"
+#: ../../include/features.php:96
+msgid "Ability to tag existing posts"
msgstr ""
-#: ../../include/text.php:1019
-msgid "rebuff"
+#: ../../include/features.php:97
+msgid "Post Categories"
msgstr ""
-#: ../../include/text.php:1019
-msgid "rebuffed"
+#: ../../include/features.php:97
+msgid "Add categories to your posts"
msgstr ""
-#: ../../include/text.php:1031
-msgid "happy"
+#: ../../include/features.php:98
+msgid "Emoji Reactions"
msgstr ""
-#: ../../include/text.php:1032
-msgid "sad"
+#: ../../include/features.php:98
+msgid "Add emoji reaction ability to posts"
msgstr ""
-#: ../../include/text.php:1033
-msgid "mellow"
+#: ../../include/features.php:99
+msgid "Ability to file posts under folders"
msgstr ""
-#: ../../include/text.php:1034
-msgid "tired"
+#: ../../include/features.php:100
+msgid "Dislike Posts"
msgstr ""
-#: ../../include/text.php:1035
-msgid "perky"
+#: ../../include/features.php:100
+msgid "Ability to dislike posts/comments"
msgstr ""
-#: ../../include/text.php:1036
-msgid "angry"
+#: ../../include/features.php:101
+msgid "Star Posts"
msgstr ""
-#: ../../include/text.php:1037
-msgid "stupefied"
+#: ../../include/features.php:101
+msgid "Ability to mark special posts with a star indicator"
msgstr ""
-#: ../../include/text.php:1038
-msgid "puzzled"
+#: ../../include/features.php:102
+msgid "Tag Cloud"
msgstr ""
-#: ../../include/text.php:1039
-msgid "interested"
+#: ../../include/features.php:102
+msgid "Provide a personal tag cloud on your channel page"
msgstr ""
-#: ../../include/text.php:1040
-msgid "bitter"
+#: ../../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 "cheerful"
+#: ../../include/group.php:248
+msgid "Add new connections to this privacy group"
msgstr ""
-#: ../../include/text.php:1042
-msgid "alive"
+#: ../../include/group.php:289
+msgid "edit"
msgstr ""
-#: ../../include/text.php:1043
-msgid "annoyed"
+#: ../../include/group.php:312
+msgid "Edit group"
msgstr ""
-#: ../../include/text.php:1044
-msgid "anxious"
+#: ../../include/group.php:313
+msgid "Add privacy group"
msgstr ""
-#: ../../include/text.php:1045
-msgid "cranky"
+#: ../../include/group.php:314
+msgid "Channels not in any privacy group"
msgstr ""
-#: ../../include/text.php:1046
-msgid "disturbed"
+#: ../../include/permissions.php:26
+msgid "Can view my normal stream and posts"
msgstr ""
-#: ../../include/text.php:1047
-msgid "frustrated"
+#: ../../include/permissions.php:27
+msgid "Can view my default channel profile"
msgstr ""
-#: ../../include/text.php:1048
-msgid "depressed"
+#: ../../include/permissions.php:28
+msgid "Can view my connections"
msgstr ""
-#: ../../include/text.php:1049
-msgid "motivated"
+#: ../../include/permissions.php:29
+msgid "Can view my file storage and photos"
msgstr ""
-#: ../../include/text.php:1050
-msgid "relaxed"
+#: ../../include/permissions.php:30
+msgid "Can view my webpages"
msgstr ""
-#: ../../include/text.php:1051
-msgid "surprised"
+#: ../../include/permissions.php:33
+msgid "Can send me their channel stream and posts"
msgstr ""
-#: ../../include/text.php:1237
-msgid "May"
+#: ../../include/permissions.php:34
+msgid "Can post on my channel page (\"wall\")"
msgstr ""
-#: ../../include/text.php:1314 ../../include/text.php:1318
-msgid "Unknown Attachment"
+#: ../../include/permissions.php:35
+msgid "Can comment on or like my posts"
msgstr ""
-#: ../../include/text.php:1320
-msgid "unknown"
+#: ../../include/permissions.php:36
+msgid "Can send me private mail messages"
msgstr ""
-#: ../../include/text.php:1356
-msgid "remove category"
+#: ../../include/permissions.php:37
+msgid "Can like/dislike stuff"
msgstr ""
-#: ../../include/text.php:1433
-msgid "remove from file"
+#: ../../include/permissions.php:37
+msgid "Profiles and things other than posts/comments"
msgstr ""
-#: ../../include/text.php:1730 ../../include/text.php:1801
-msgid "default"
+#: ../../include/permissions.php:39
+msgid "Can forward to all my channel contacts via post @mentions"
msgstr ""
-#: ../../include/text.php:1738
-msgid "Page layout"
+#: ../../include/permissions.php:39
+msgid "Advanced - useful for creating group forum channels"
msgstr ""
-#: ../../include/text.php:1738
-msgid "You can create your own with the layouts tool"
+#: ../../include/permissions.php:40
+msgid "Can chat with me (when available)"
msgstr ""
-#: ../../include/text.php:1780
-msgid "Page content type"
+#: ../../include/permissions.php:41
+msgid "Can write to my file storage and photos"
msgstr ""
-#: ../../include/text.php:1813
-msgid "Select an alternate language"
+#: ../../include/permissions.php:42
+msgid "Can edit my webpages"
msgstr ""
-#: ../../include/text.php:1930
-msgid "activity"
+#: ../../include/permissions.php:44
+msgid "Can source my public posts in derived channels"
msgstr ""
-#: ../../include/text.php:2239
-msgid "Design Tools"
+#: ../../include/permissions.php:44
+msgid "Somewhat advanced - very useful in open communities"
msgstr ""
-#: ../../include/text.php:2245
-msgid "Pages"
+#: ../../include/permissions.php:46
+msgid "Can administer my channel resources"
msgstr ""
-#: ../../include/items.php:898 ../../include/items.php:943
-msgid "(Unknown)"
+#: ../../include/permissions.php:46
+msgid "Extremely advanced. Leave this alone unless you know what you are doing"
msgstr ""
-#: ../../include/items.php:1142
-msgid "Visible to anybody on the internet."
+#: ../../include/permissions.php:877
+msgid "Social Networking"
msgstr ""
-#: ../../include/items.php:1144
-msgid "Visible to you only."
+#: ../../include/permissions.php:877
+msgid "Social - Mostly Public"
msgstr ""
-#: ../../include/items.php:1146
-msgid "Visible to anybody in this network."
+#: ../../include/permissions.php:877
+msgid "Social - Restricted"
msgstr ""
-#: ../../include/items.php:1148
-msgid "Visible to anybody authenticated."
+#: ../../include/permissions.php:877
+msgid "Social - Private"
msgstr ""
-#: ../../include/items.php:1150
-#, php-format
-msgid "Visible to anybody on %s."
+#: ../../include/permissions.php:878
+msgid "Community Forum"
msgstr ""
-#: ../../include/items.php:1152
-msgid "Visible to all connections."
+#: ../../include/permissions.php:878
+msgid "Forum - Mostly Public"
msgstr ""
-#: ../../include/items.php:1154
-msgid "Visible to approved connections."
+#: ../../include/permissions.php:878
+msgid "Forum - Restricted"
msgstr ""
-#: ../../include/items.php:1156
-msgid "Visible to specific connections."
+#: ../../include/permissions.php:878
+msgid "Forum - Private"
msgstr ""
-#: ../../include/items.php:3919
-msgid "Privacy group is empty."
+#: ../../include/permissions.php:879
+msgid "Feed Republish"
msgstr ""
-#: ../../include/items.php:3926
-#, php-format
-msgid "Privacy group: %s"
+#: ../../include/permissions.php:879
+msgid "Feed - Mostly Public"
msgstr ""
-#: ../../include/items.php:3938
-msgid "Connection not found."
+#: ../../include/permissions.php:879
+msgid "Feed - Restricted"
msgstr ""
-#: ../../include/items.php:4304
-msgid "profile photo"
+#: ../../include/permissions.php:880
+msgid "Special Purpose"
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/permissions.php:880
+msgid "Special - Celebrity/Soapbox"
msgstr ""
-#: ../../include/bbcode.php:162 ../../include/bbcode.php:928
-msgid "Encrypted content"
+#: ../../include/permissions.php:880
+msgid "Special - Group Repository"
msgstr ""
-#: ../../include/bbcode.php:178
-#, php-format
-msgid "Install %s element: "
+#: ../../include/permissions.php:881
+msgid "Custom/Expert Mode"
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/account.php:28
+msgid "Not a valid email address"
msgstr ""
-#: ../../include/bbcode.php:261
-#, php-format
-msgid "%1$s wrote the following %2$s %3$s"
+#: ../../include/account.php:30
+msgid "Your email domain is not among those allowed on this site"
msgstr ""
-#: ../../include/bbcode.php:338 ../../include/bbcode.php:346
-msgid "Click to open/close"
+#: ../../include/account.php:36
+msgid "Your email address is already registered at this site."
msgstr ""
-#: ../../include/bbcode.php:346
-msgid "spoiler"
+#: ../../include/account.php:68
+msgid "An invitation is required."
msgstr ""
-#: ../../include/bbcode.php:619
-msgid "Different viewers will see this text differently"
+#: ../../include/account.php:72
+msgid "Invitation could not be verified."
msgstr ""
-#: ../../include/bbcode.php:866
-msgid "$1 wrote:"
+#: ../../include/account.php:122
+msgid "Please enter the required information."
msgstr ""
-#: ../../include/network.php:704
-msgid "view full size"
+#: ../../include/account.php:189
+msgid "Failed to store account information."
msgstr ""
-#: ../../include/network.php:1930 ../../include/account.php:317
-#: ../../include/account.php:344 ../../include/account.php:404
-msgid "Administrator"
+#: ../../include/account.php:249
+#, php-format
+msgid "Registration confirmation for %s"
msgstr ""
-#: ../../include/network.php:1944
-msgid "No Subject"
+#: ../../include/account.php:315
+#, php-format
+msgid "Registration request at %s"
msgstr ""
-#: ../../include/network.php:2198 ../../include/network.php:2199
-msgid "Friendica"
+#: ../../include/account.php:339
+msgid "your registration password"
msgstr ""
-#: ../../include/network.php:2200
-msgid "OStatus"
+#: ../../include/account.php:342 ../../include/account.php:402
+#, php-format
+msgid "Registration details for %s"
msgstr ""
-#: ../../include/network.php:2201
-msgid "GNU-Social"
+#: ../../include/account.php:414
+msgid "Account approved."
msgstr ""
-#: ../../include/network.php:2202
-msgid "RSS/Atom"
+#: ../../include/account.php:454
+#, php-format
+msgid "Registration revoked for %s"
msgstr ""
-#: ../../include/network.php:2204
-msgid "Diaspora"
+#: ../../include/account.php:739 ../../include/account.php:741
+msgid "Click here to upgrade."
msgstr ""
-#: ../../include/network.php:2205
-msgid "Facebook"
+#: ../../include/account.php:747
+msgid "This action exceeds the limits set by your subscription plan."
msgstr ""
-#: ../../include/network.php:2206
-msgid "Zot"
+#: ../../include/account.php:752
+msgid "This action is not available under your subscription plan."
msgstr ""
-#: ../../include/network.php:2207
-msgid "LinkedIn"
+#: ../../include/api.php:1326
+msgid "Public Timeline"
msgstr ""
-#: ../../include/network.php:2208
-msgid "XMPP/IM"
+#: ../../include/attach.php:247 ../../include/attach.php:333
+msgid "Item was not found."
msgstr ""
-#: ../../include/network.php:2209
-msgid "MySpace"
+#: ../../include/attach.php:499
+msgid "No source file."
msgstr ""
-#: ../../include/activities.php:41
-msgid " and "
+#: ../../include/attach.php:521
+msgid "Cannot locate file to replace"
msgstr ""
-#: ../../include/activities.php:49
-msgid "public profile"
+#: ../../include/attach.php:539
+msgid "Cannot locate file to revise/update"
msgstr ""
-#: ../../include/activities.php:58
+#: ../../include/attach.php:674
#, php-format
-msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
+msgid "File exceeds size limit of %d"
msgstr ""
-#: ../../include/activities.php:59
+#: ../../include/attach.php:688
#, php-format
-msgid "Visit %1$s's %2$s"
+msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
msgstr ""
-#: ../../include/activities.php:62
-#, php-format
-msgid "%1$s has an updated %2$s, changing %3$s."
+#: ../../include/attach.php:846
+msgid "File upload failed. Possible system limit or action terminated."
msgstr ""
-#: ../../include/bb2diaspora.php:398
-msgid "Attachments:"
+#: ../../include/attach.php:859
+msgid "Stored file could not be verified. Upload failed."
msgstr ""
-#: ../../include/bb2diaspora.php:487
-msgid "$Projectname event notification:"
+#: ../../include/attach.php:915 ../../include/attach.php:931
+msgid "Path not available."
msgstr ""
-#: ../../include/features.php:48
-msgid "General Features"
+#: ../../include/attach.php:977 ../../include/attach.php:1129
+msgid "Empty pathname"
msgstr ""
-#: ../../include/features.php:50
-msgid "Content Expiration"
+#: ../../include/attach.php:1003
+msgid "duplicate filename or path"
msgstr ""
-#: ../../include/features.php:50
-msgid "Remove posts/comments and/or private messages at a future time"
+#: ../../include/attach.php:1025
+msgid "Path not found."
msgstr ""
-#: ../../include/features.php:51
-msgid "Multiple Profiles"
+#: ../../include/attach.php:1083
+msgid "mkdir failed."
msgstr ""
-#: ../../include/features.php:51
-msgid "Ability to create multiple profiles"
+#: ../../include/attach.php:1087
+msgid "database storage failed."
msgstr ""
-#: ../../include/features.php:52
-msgid "Advanced Profiles"
+#: ../../include/attach.php:1135
+msgid "Empty path"
msgstr ""
-#: ../../include/features.php:52
-msgid "Additional profile sections and selections"
+#: ../../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 ""
-#: ../../include/features.php:53
-msgid "Profile Import/Export"
+#: ../../include/bbcode.php:162 ../../include/bbcode.php:928
+msgid "Encrypted content"
msgstr ""
-#: ../../include/features.php:53
-msgid "Save and load profile details across sites/channels"
+#: ../../include/bbcode.php:178
+#, php-format
+msgid "Install %s element: "
msgstr ""
-#: ../../include/features.php:54
-msgid "Web Pages"
+#: ../../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/features.php:54
-msgid "Provide managed web pages on your channel"
+#: ../../include/bbcode.php:261
+#, php-format
+msgid "%1$s wrote the following %2$s %3$s"
msgstr ""
-#: ../../include/features.php:55
-msgid "Provide a wiki for your channel"
+#: ../../include/bbcode.php:338 ../../include/bbcode.php:346
+msgid "Click to open/close"
msgstr ""
-#: ../../include/features.php:56
-msgid "Hide Rating"
+#: ../../include/bbcode.php:346
+msgid "spoiler"
msgstr ""
-#: ../../include/features.php:56
+#: ../../include/bbcode.php:619
+msgid "Different viewers will see this text differently"
+msgstr ""
+
+#: ../../include/bbcode.php:866
+msgid "$1 wrote:"
+msgstr ""
+
+#: ../../include/import.php:29
msgid ""
-"Hide the rating buttons on your channel and profile pages. Note: People can "
-"still rate you somewhere else."
+"Cannot create a duplicate channel identifier on this system. Import failed."
msgstr ""
-#: ../../include/features.php:57
-msgid "Private Notes"
+#: ../../include/import.php:76
+msgid "Channel clone failed. Import failed."
msgstr ""
-#: ../../include/features.php:57
-msgid "Enables a tool to store notes and reminders (note: not encrypted)"
+#: ../../include/auth.php:116
+msgid "Logged out."
msgstr ""
-#: ../../include/features.php:58
-msgid "Navigation Channel Select"
+#: ../../include/auth.php:237
+msgid "Failed authentication"
msgstr ""
-#: ../../include/features.php:58
-msgid "Change channels directly from within the navigation dropdown menu"
+#: ../../include/activities.php:41
+msgid " and "
msgstr ""
-#: ../../include/features.php:59
-msgid "Photo Location"
+#: ../../include/activities.php:49
+msgid "public profile"
msgstr ""
-#: ../../include/features.php:59
-msgid "If location data is available on uploaded photos, link this to a map."
+#: ../../include/activities.php:58
+#, php-format
+msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
msgstr ""
-#: ../../include/features.php:60
-msgid "Access Controlled Chatrooms"
+#: ../../include/activities.php:59
+#, php-format
+msgid "Visit %1$s's %2$s"
msgstr ""
-#: ../../include/features.php:60
-msgid "Provide chatrooms and chat services with access control."
+#: ../../include/activities.php:62
+#, php-format
+msgid "%1$s has an updated %2$s, changing %3$s."
msgstr ""
-#: ../../include/features.php:61
-msgid "Smart Birthdays"
+#: ../../include/zot.php:709
+msgid "Invalid data packet"
msgstr ""
-#: ../../include/features.php:61
-msgid ""
-"Make birthday events timezone aware in case your friends are scattered "
-"across the planet."
+#: ../../include/zot.php:725
+msgid "Unable to verify channel signature"
msgstr ""
-#: ../../include/features.php:62
-msgid "Expert Mode"
+#: ../../include/zot.php:2373
+#, php-format
+msgid "Unable to verify site signature for %s"
msgstr ""
-#: ../../include/features.php:62
-msgid "Enable Expert Mode to provide advanced configuration options"
+#: ../../include/zot.php:3723
+msgid "invalid target signature"
msgstr ""
-#: ../../include/features.php:63
-msgid "Premium Channel"
+#: ../../include/bb2diaspora.php:398
+msgid "Attachments:"
msgstr ""
-#: ../../include/features.php:63
-msgid ""
-"Allows you to set restrictions and terms on those that connect with your "
-"channel"
+#: ../../include/bb2diaspora.php:487
+msgid "$Projectname event notification:"
msgstr ""
-#: ../../include/features.php:68
-msgid "Post Composition Features"
+#: ../../include/js_strings.php:5
+msgid "Delete this item?"
msgstr ""
-#: ../../include/features.php:71
-msgid "Large Photos"
+#: ../../include/js_strings.php:8
+#, php-format
+msgid "%s show less"
msgstr ""
-#: ../../include/features.php:71
-msgid ""
-"Include large (1024px) photo thumbnails in posts. If not enabled, use small "
-"(640px) photo thumbnails"
+#: ../../include/js_strings.php:9
+#, php-format
+msgid "%s expand"
msgstr ""
-#: ../../include/features.php:72
-msgid "Automatically import channel content from other channels or feeds"
+#: ../../include/js_strings.php:10
+#, php-format
+msgid "%s collapse"
msgstr ""
-#: ../../include/features.php:73
-msgid "Even More Encryption"
+#: ../../include/js_strings.php:11
+msgid "Password too short"
msgstr ""
-#: ../../include/features.php:73
-msgid ""
-"Allow optional encryption of content end-to-end with a shared secret key"
+#: ../../include/js_strings.php:12
+msgid "Passwords do not match"
msgstr ""
-#: ../../include/features.php:74
-msgid "Enable Voting Tools"
+#: ../../include/js_strings.php:13
+msgid "everybody"
msgstr ""
-#: ../../include/features.php:74
-msgid "Provide a class of post which others can vote on"
+#: ../../include/js_strings.php:14
+msgid "Secret Passphrase"
msgstr ""
-#: ../../include/features.php:75
-msgid "Delayed Posting"
+#: ../../include/js_strings.php:15
+msgid "Passphrase hint"
msgstr ""
-#: ../../include/features.php:75
-msgid "Allow posts to be published at a later date"
+#: ../../include/js_strings.php:16
+msgid "Notice: Permissions have changed but have not yet been submitted."
msgstr ""
-#: ../../include/features.php:76
-msgid "Suppress Duplicate Posts/Comments"
+#: ../../include/js_strings.php:17
+msgid "close all"
msgstr ""
-#: ../../include/features.php:76
-msgid ""
-"Prevent posts with identical content to be published with less than two "
-"minutes in between submissions."
+#: ../../include/js_strings.php:18
+msgid "Nothing new here"
msgstr ""
-#: ../../include/features.php:82
-msgid "Network and Stream Filtering"
+#: ../../include/js_strings.php:19
+msgid "Rate This Channel (this is public)"
msgstr ""
-#: ../../include/features.php:83
-msgid "Search by Date"
+#: ../../include/js_strings.php:21
+msgid "Describe (optional)"
msgstr ""
-#: ../../include/features.php:83
-msgid "Ability to select posts by date ranges"
+#: ../../include/js_strings.php:23
+msgid "Please enter a link URL"
msgstr ""
-#: ../../include/features.php:84
-msgid "Enable management and selection of privacy groups"
+#: ../../include/js_strings.php:24
+msgid "Unsaved changes. Are you sure you wish to leave this page?"
msgstr ""
-#: ../../include/features.php:85
-msgid "Save search terms for re-use"
+#: ../../include/js_strings.php:27
+msgid "timeago.prefixAgo"
msgstr ""
-#: ../../include/features.php:86
-msgid "Network Personal Tab"
+#: ../../include/js_strings.php:28
+msgid "timeago.prefixFromNow"
msgstr ""
-#: ../../include/features.php:86
-msgid "Enable tab to display only Network posts that you've interacted on"
+#: ../../include/js_strings.php:29
+msgid "ago"
msgstr ""
-#: ../../include/features.php:87
-msgid "Network New Tab"
+#: ../../include/js_strings.php:30
+msgid "from now"
msgstr ""
-#: ../../include/features.php:87
-msgid "Enable tab to display all new Network activity"
+#: ../../include/js_strings.php:31
+msgid "less than a minute"
msgstr ""
-#: ../../include/features.php:88
-msgid "Affinity Tool"
+#: ../../include/js_strings.php:32
+msgid "about a minute"
msgstr ""
-#: ../../include/features.php:88
-msgid "Filter stream activity by depth of relationships"
+#: ../../include/js_strings.php:33
+#, php-format
+msgid "%d minutes"
msgstr ""
-#: ../../include/features.php:89
-msgid "Connection Filtering"
+#: ../../include/js_strings.php:34
+msgid "about an hour"
msgstr ""
-#: ../../include/features.php:89
-msgid "Filter incoming posts from connections based on keywords/content"
+#: ../../include/js_strings.php:35
+#, php-format
+msgid "about %d hours"
msgstr ""
-#: ../../include/features.php:90
-msgid "Show channel suggestions"
+#: ../../include/js_strings.php:36
+msgid "a day"
msgstr ""
-#: ../../include/features.php:95
-msgid "Post/Comment Tools"
+#: ../../include/js_strings.php:37
+#, php-format
+msgid "%d days"
msgstr ""
-#: ../../include/features.php:96
-msgid "Community Tagging"
+#: ../../include/js_strings.php:38
+msgid "about a month"
msgstr ""
-#: ../../include/features.php:96
-msgid "Ability to tag existing posts"
+#: ../../include/js_strings.php:39
+#, php-format
+msgid "%d months"
msgstr ""
-#: ../../include/features.php:97
-msgid "Post Categories"
+#: ../../include/js_strings.php:40
+msgid "about a year"
msgstr ""
-#: ../../include/features.php:97
-msgid "Add categories to your posts"
+#: ../../include/js_strings.php:41
+#, php-format
+msgid "%d years"
msgstr ""
-#: ../../include/features.php:98
-msgid "Emoji Reactions"
+#: ../../include/js_strings.php:42
+msgid " "
msgstr ""
-#: ../../include/features.php:98
-msgid "Add emoji reaction ability to posts"
+#: ../../include/js_strings.php:43
+msgid "timeago.numbers"
msgstr ""
-#: ../../include/features.php:99
-msgid "Ability to file posts under folders"
+#: ../../include/js_strings.php:45 ../../include/text.php:1241
+msgid "January"
msgstr ""
-#: ../../include/features.php:100
-msgid "Dislike Posts"
+#: ../../include/js_strings.php:46 ../../include/text.php:1241
+msgid "February"
msgstr ""
-#: ../../include/features.php:100
-msgid "Ability to dislike posts/comments"
+#: ../../include/js_strings.php:47 ../../include/text.php:1241
+msgid "March"
msgstr ""
-#: ../../include/features.php:101
-msgid "Star Posts"
+#: ../../include/js_strings.php:48 ../../include/text.php:1241
+msgid "April"
msgstr ""
-#: ../../include/features.php:101
-msgid "Ability to mark special posts with a star indicator"
+#: ../../include/js_strings.php:49
+msgctxt "long"
+msgid "May"
msgstr ""
-#: ../../include/features.php:102
-msgid "Tag Cloud"
+#: ../../include/js_strings.php:50 ../../include/text.php:1241
+msgid "June"
msgstr ""
-#: ../../include/features.php:102
-msgid "Provide a personal tag cloud on your channel page"
+#: ../../include/js_strings.php:51 ../../include/text.php:1241
+msgid "July"
msgstr ""
-#: ../../include/oembed.php:325
-msgid "Embedded content"
+#: ../../include/js_strings.php:52 ../../include/text.php:1241
+msgid "August"
msgstr ""
-#: ../../include/oembed.php:334
-msgid "Embedding disabled"
+#: ../../include/js_strings.php:53 ../../include/text.php:1241
+msgid "September"
msgstr ""
-#: ../../include/account.php:28
-msgid "Not a valid email address"
+#: ../../include/js_strings.php:54 ../../include/text.php:1241
+msgid "October"
msgstr ""
-#: ../../include/account.php:30
-msgid "Your email domain is not among those allowed on this site"
+#: ../../include/js_strings.php:55 ../../include/text.php:1241
+msgid "November"
msgstr ""
-#: ../../include/account.php:36
-msgid "Your email address is already registered at this site."
+#: ../../include/js_strings.php:56 ../../include/text.php:1241
+msgid "December"
msgstr ""
-#: ../../include/account.php:68
-msgid "An invitation is required."
+#: ../../include/js_strings.php:57
+msgid "Jan"
msgstr ""
-#: ../../include/account.php:72
-msgid "Invitation could not be verified."
+#: ../../include/js_strings.php:58
+msgid "Feb"
msgstr ""
-#: ../../include/account.php:122
-msgid "Please enter the required information."
+#: ../../include/js_strings.php:59
+msgid "Mar"
msgstr ""
-#: ../../include/account.php:189
-msgid "Failed to store account information."
+#: ../../include/js_strings.php:60
+msgid "Apr"
msgstr ""
-#: ../../include/account.php:249
-#, php-format
-msgid "Registration confirmation for %s"
+#: ../../include/js_strings.php:61
+msgctxt "short"
+msgid "May"
msgstr ""
-#: ../../include/account.php:315
-#, php-format
-msgid "Registration request at %s"
+#: ../../include/js_strings.php:62
+msgid "Jun"
msgstr ""
-#: ../../include/account.php:339
-msgid "your registration password"
+#: ../../include/js_strings.php:63
+msgid "Jul"
msgstr ""
-#: ../../include/account.php:342 ../../include/account.php:402
-#, php-format
-msgid "Registration details for %s"
+#: ../../include/js_strings.php:64
+msgid "Aug"
msgstr ""
-#: ../../include/account.php:414
-msgid "Account approved."
+#: ../../include/js_strings.php:65
+msgid "Sep"
msgstr ""
-#: ../../include/account.php:454
-#, php-format
-msgid "Registration revoked for %s"
+#: ../../include/js_strings.php:66
+msgid "Oct"
msgstr ""
-#: ../../include/account.php:739 ../../include/account.php:741
-msgid "Click here to upgrade."
+#: ../../include/js_strings.php:67
+msgid "Nov"
msgstr ""
-#: ../../include/account.php:747
-msgid "This action exceeds the limits set by your subscription plan."
+#: ../../include/js_strings.php:68
+msgid "Dec"
msgstr ""
-#: ../../include/account.php:752
-msgid "This action is not available under your subscription plan."
+#: ../../include/js_strings.php:69 ../../include/text.php:1237
+msgid "Sunday"
msgstr ""
-#: ../../include/PermissionDescription.php:116
-msgid "Public"
+#: ../../include/js_strings.php:70 ../../include/text.php:1237
+msgid "Monday"
msgstr ""
-#: ../../include/PermissionDescription.php:117
-msgid "Anybody in the $Projectname network"
+#: ../../include/js_strings.php:71 ../../include/text.php:1237
+msgid "Tuesday"
msgstr ""
-#: ../../include/PermissionDescription.php:118
-#, php-format
-msgid "Any account on %s"
+#: ../../include/js_strings.php:72 ../../include/text.php:1237
+msgid "Wednesday"
msgstr ""
-#: ../../include/PermissionDescription.php:119
-msgid "Any of my connections"
+#: ../../include/js_strings.php:73 ../../include/text.php:1237
+msgid "Thursday"
msgstr ""
-#: ../../include/PermissionDescription.php:120
-msgid "Only connections I specifically allow"
+#: ../../include/js_strings.php:74 ../../include/text.php:1237
+msgid "Friday"
msgstr ""
-#: ../../include/PermissionDescription.php:121
-msgid "Anybody authenticated (could include visitors from other networks)"
+#: ../../include/js_strings.php:75 ../../include/text.php:1237
+msgid "Saturday"
msgstr ""
-#: ../../include/PermissionDescription.php:122
-msgid "Any connections including those who haven't yet been approved"
+#: ../../include/js_strings.php:76
+msgid "Sun"
msgstr ""
-#: ../../include/PermissionDescription.php:161
-msgid ""
-"This is your default setting for the audience of your normal stream, and "
-"posts."
+#: ../../include/js_strings.php:77
+msgid "Mon"
msgstr ""
-#: ../../include/PermissionDescription.php:162
-msgid ""
-"This is your default setting for who can view your default channel profile"
+#: ../../include/js_strings.php:78
+msgid "Tue"
msgstr ""
-#: ../../include/PermissionDescription.php:163
-msgid "This is your default setting for who can view your connections"
+#: ../../include/js_strings.php:79
+msgid "Wed"
msgstr ""
-#: ../../include/PermissionDescription.php:164
-msgid ""
-"This is your default setting for who can view your file storage and photos"
+#: ../../include/js_strings.php:80
+msgid "Thu"
msgstr ""
-#: ../../include/PermissionDescription.php:165
-msgid "This is your default setting for the audience of your webpages"
+#: ../../include/js_strings.php:81
+msgid "Fri"
+msgstr ""
+
+#: ../../include/js_strings.php:82
+msgid "Sat"
+msgstr ""
+
+#: ../../include/js_strings.php:83
+msgctxt "calendar"
+msgid "today"
+msgstr ""
+
+#: ../../include/js_strings.php:84
+msgctxt "calendar"
+msgid "month"
+msgstr ""
+
+#: ../../include/js_strings.php:85
+msgctxt "calendar"
+msgid "week"
+msgstr ""
+
+#: ../../include/js_strings.php:86
+msgctxt "calendar"
+msgid "day"
+msgstr ""
+
+#: ../../include/js_strings.php:87
+msgctxt "calendar"
+msgid "All day"
msgstr ""
#: ../../include/contact_widgets.php:11
@@ -9421,306 +9484,260 @@ msgstr ""
msgid "Stored post could not be verified."
msgstr ""
-#: ../../include/channel.php:32
-msgid "Unable to obtain identity information from database"
-msgstr ""
-
-#: ../../include/channel.php:66
-msgid "Empty name"
-msgstr ""
-
-#: ../../include/channel.php:69
-msgid "Name too long"
-msgstr ""
-
-#: ../../include/channel.php:180
-msgid "No account identifier"
-msgstr ""
-
-#: ../../include/channel.php:192
-msgid "Nickname is required."
+#: ../../include/acl_selectors.php:269
+msgid "Who can see this?"
msgstr ""
-#: ../../include/channel.php:206
-msgid "Reserved nickname. Please choose another."
+#: ../../include/acl_selectors.php:270
+msgid "Custom selection"
msgstr ""
-#: ../../include/channel.php:211
+#: ../../include/acl_selectors.php:271
msgid ""
-"Nickname has unsupported characters or is already being used on this site."
+"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit "
+"the scope of \"Show\"."
msgstr ""
-#: ../../include/channel.php:287
-msgid "Unable to retrieve created identity"
+#: ../../include/acl_selectors.php:272
+msgid "Show"
msgstr ""
-#: ../../include/channel.php:345
-msgid "Default Profile"
+#: ../../include/acl_selectors.php:273
+msgid "Don't show"
msgstr ""
-#: ../../include/channel.php:815
-msgid "Requested channel is not available."
+#: ../../include/acl_selectors.php:279
+msgid "Other networks and post services"
msgstr ""
-#: ../../include/channel.php:962
-msgid "Create New Profile"
+#: ../../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 ""
-#: ../../include/channel.php:982
-msgid "Visible to everybody"
+#: ../../include/security.php:108
+msgid "guest:"
msgstr ""
-#: ../../include/channel.php:1055 ../../include/channel.php:1167
-msgid "Gender:"
+#: ../../include/security.php:425
+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/channel.php:1056 ../../include/channel.php:1211
-msgid "Status:"
+#: ../../include/text.php:404
+msgid "prev"
msgstr ""
-#: ../../include/channel.php:1057 ../../include/channel.php:1222
-msgid "Homepage:"
+#: ../../include/text.php:406
+msgid "first"
msgstr ""
-#: ../../include/channel.php:1058
-msgid "Online Now"
+#: ../../include/text.php:435
+msgid "last"
msgstr ""
-#: ../../include/channel.php:1172
-msgid "Like this channel"
+#: ../../include/text.php:438
+msgid "next"
msgstr ""
-#: ../../include/channel.php:1196
-msgid "j F, Y"
+#: ../../include/text.php:448
+msgid "older"
msgstr ""
-#: ../../include/channel.php:1197
-msgid "j F"
+#: ../../include/text.php:450
+msgid "newer"
msgstr ""
-#: ../../include/channel.php:1204
-msgid "Birthday:"
+#: ../../include/text.php:843
+msgid "No connections"
msgstr ""
-#: ../../include/channel.php:1217
+#: ../../include/text.php:868
#, php-format
-msgid "for %1$d %2$s"
-msgstr ""
-
-#: ../../include/channel.php:1220
-msgid "Sexual Preference:"
-msgstr ""
-
-#: ../../include/channel.php:1226
-msgid "Tags:"
-msgstr ""
-
-#: ../../include/channel.php:1228
-msgid "Political Views:"
-msgstr ""
-
-#: ../../include/channel.php:1230
-msgid "Religion:"
-msgstr ""
-
-#: ../../include/channel.php:1234
-msgid "Hobbies/Interests:"
-msgstr ""
-
-#: ../../include/channel.php:1236
-msgid "Likes:"
-msgstr ""
-
-#: ../../include/channel.php:1238
-msgid "Dislikes:"
-msgstr ""
-
-#: ../../include/channel.php:1240
-msgid "Contact information and Social Networks:"
-msgstr ""
-
-#: ../../include/channel.php:1242
-msgid "My other channels:"
+msgid "View all %s connections"
msgstr ""
-#: ../../include/channel.php:1244
-msgid "Musical interests:"
+#: ../../include/text.php:1013 ../../include/text.php:1018
+msgid "poke"
msgstr ""
-#: ../../include/channel.php:1246
-msgid "Books, literature:"
+#: ../../include/text.php:1019
+msgid "ping"
msgstr ""
-#: ../../include/channel.php:1248
-msgid "Television:"
+#: ../../include/text.php:1019
+msgid "pinged"
msgstr ""
-#: ../../include/channel.php:1250
-msgid "Film/dance/culture/entertainment:"
+#: ../../include/text.php:1020
+msgid "prod"
msgstr ""
-#: ../../include/channel.php:1252
-msgid "Love/Romance:"
+#: ../../include/text.php:1020
+msgid "prodded"
msgstr ""
-#: ../../include/channel.php:1254
-msgid "Work/employment:"
+#: ../../include/text.php:1021
+msgid "slap"
msgstr ""
-#: ../../include/channel.php:1256
-msgid "School/education:"
+#: ../../include/text.php:1021
+msgid "slapped"
msgstr ""
-#: ../../include/channel.php:1277
-msgid "Like this thing"
+#: ../../include/text.php:1022
+msgid "finger"
msgstr ""
-#: ../../include/permissions.php:26
-msgid "Can view my normal stream and posts"
+#: ../../include/text.php:1022
+msgid "fingered"
msgstr ""
-#: ../../include/permissions.php:27
-msgid "Can view my default channel profile"
+#: ../../include/text.php:1023
+msgid "rebuff"
msgstr ""
-#: ../../include/permissions.php:28
-msgid "Can view my connections"
+#: ../../include/text.php:1023
+msgid "rebuffed"
msgstr ""
-#: ../../include/permissions.php:29
-msgid "Can view my file storage and photos"
+#: ../../include/text.php:1035
+msgid "happy"
msgstr ""
-#: ../../include/permissions.php:30
-msgid "Can view my webpages"
+#: ../../include/text.php:1036
+msgid "sad"
msgstr ""
-#: ../../include/permissions.php:33
-msgid "Can send me their channel stream and posts"
+#: ../../include/text.php:1037
+msgid "mellow"
msgstr ""
-#: ../../include/permissions.php:34
-msgid "Can post on my channel page (\"wall\")"
+#: ../../include/text.php:1038
+msgid "tired"
msgstr ""
-#: ../../include/permissions.php:35
-msgid "Can comment on or like my posts"
+#: ../../include/text.php:1039
+msgid "perky"
msgstr ""
-#: ../../include/permissions.php:36
-msgid "Can send me private mail messages"
+#: ../../include/text.php:1040
+msgid "angry"
msgstr ""
-#: ../../include/permissions.php:37
-msgid "Can like/dislike stuff"
+#: ../../include/text.php:1041
+msgid "stupefied"
msgstr ""
-#: ../../include/permissions.php:37
-msgid "Profiles and things other than posts/comments"
+#: ../../include/text.php:1042
+msgid "puzzled"
msgstr ""
-#: ../../include/permissions.php:39
-msgid "Can forward to all my channel contacts via post @mentions"
+#: ../../include/text.php:1043
+msgid "interested"
msgstr ""
-#: ../../include/permissions.php:39
-msgid "Advanced - useful for creating group forum channels"
+#: ../../include/text.php:1044
+msgid "bitter"
msgstr ""
-#: ../../include/permissions.php:40
-msgid "Can chat with me (when available)"
+#: ../../include/text.php:1045
+msgid "cheerful"
msgstr ""
-#: ../../include/permissions.php:41
-msgid "Can write to my file storage and photos"
+#: ../../include/text.php:1046
+msgid "alive"
msgstr ""
-#: ../../include/permissions.php:42
-msgid "Can edit my webpages"
+#: ../../include/text.php:1047
+msgid "annoyed"
msgstr ""
-#: ../../include/permissions.php:44
-msgid "Can source my public posts in derived channels"
+#: ../../include/text.php:1048
+msgid "anxious"
msgstr ""
-#: ../../include/permissions.php:44
-msgid "Somewhat advanced - very useful in open communities"
+#: ../../include/text.php:1049
+msgid "cranky"
msgstr ""
-#: ../../include/permissions.php:46
-msgid "Can administer my channel resources"
+#: ../../include/text.php:1050
+msgid "disturbed"
msgstr ""
-#: ../../include/permissions.php:46
-msgid "Extremely advanced. Leave this alone unless you know what you are doing"
+#: ../../include/text.php:1051
+msgid "frustrated"
msgstr ""
-#: ../../include/permissions.php:877
-msgid "Social Networking"
+#: ../../include/text.php:1052
+msgid "depressed"
msgstr ""
-#: ../../include/permissions.php:877
-msgid "Social - Mostly Public"
+#: ../../include/text.php:1053
+msgid "motivated"
msgstr ""
-#: ../../include/permissions.php:877
-msgid "Social - Restricted"
+#: ../../include/text.php:1054
+msgid "relaxed"
msgstr ""
-#: ../../include/permissions.php:877
-msgid "Social - Private"
+#: ../../include/text.php:1055
+msgid "surprised"
msgstr ""
-#: ../../include/permissions.php:878
-msgid "Community Forum"
+#: ../../include/text.php:1241
+msgid "May"
msgstr ""
-#: ../../include/permissions.php:878
-msgid "Forum - Mostly Public"
+#: ../../include/text.php:1318 ../../include/text.php:1322
+msgid "Unknown Attachment"
msgstr ""
-#: ../../include/permissions.php:878
-msgid "Forum - Restricted"
+#: ../../include/text.php:1324
+msgid "unknown"
msgstr ""
-#: ../../include/permissions.php:878
-msgid "Forum - Private"
+#: ../../include/text.php:1360
+msgid "remove category"
msgstr ""
-#: ../../include/permissions.php:879
-msgid "Feed Republish"
+#: ../../include/text.php:1437
+msgid "remove from file"
msgstr ""
-#: ../../include/permissions.php:879
-msgid "Feed - Mostly Public"
+#: ../../include/text.php:1734 ../../include/text.php:1805
+msgid "default"
msgstr ""
-#: ../../include/permissions.php:879
-msgid "Feed - Restricted"
+#: ../../include/text.php:1742
+msgid "Page layout"
msgstr ""
-#: ../../include/permissions.php:880
-msgid "Special Purpose"
+#: ../../include/text.php:1742
+msgid "You can create your own with the layouts tool"
msgstr ""
-#: ../../include/permissions.php:880
-msgid "Special - Celebrity/Soapbox"
+#: ../../include/text.php:1784
+msgid "Page content type"
msgstr ""
-#: ../../include/permissions.php:880
-msgid "Special - Group Repository"
+#: ../../include/text.php:1817
+msgid "Select an alternate language"
msgstr ""
-#: ../../include/permissions.php:881
-msgid "Custom/Expert Mode"
+#: ../../include/text.php:1934
+msgid "activity"
msgstr ""
-#: ../../include/auth.php:105
-msgid "Logged out."
+#: ../../include/text.php:2243
+msgid "Design Tools"
msgstr ""
-#: ../../include/auth.php:212
-msgid "Failed authentication"
+#: ../../include/text.php:2249
+msgid "Pages"
msgstr ""
#: ../../view/theme/redbasic/php/config.php:82
diff --git a/util/service_class b/util/service_class
index 2b5998615..50f01afff 100755
--- a/util/service_class
+++ b/util/service_class
@@ -56,7 +56,7 @@ if($argc == 3) {
echo "service_class $oclass\t\t\033[1m" . $argv[2] . "\033[0m\n";
$new = get_config('service_class', $argv[2]);
- foreach(array('photo_upload_limit','total_items','total_pages','total_identities','total_channels','total_feeds','attach_upload_limit','minimum_feedcheck_minutes','chatrooms','chatters_inroom') as $prop) {
+ foreach(array('photo_upload_limit','total_items','total_pages','total_identities','total_channels','total_feeds','attach_upload_limit','minimum_feedcheck_minutes','chatrooms','chatters_inroom','access_tokens') as $prop) {
echo $prop . str_repeat(' ',26 - strlen($prop)) . (($old && $old[$prop]) ? $old[$prop] : 'unlimited') . "\t\t\033[1m" . (($new && $new[$prop]) ? $new[$prop] : 'unlimited') . "\033[0m\n";
}
$r = '';
diff --git a/view/css/bootstrap-red.css b/view/css/bootstrap-red.css
index 26321ab3c..b68517e25 100644
--- a/view/css/bootstrap-red.css
+++ b/view/css/bootstrap-red.css
@@ -5,6 +5,7 @@
nav .badge {
position: relative;
top: -49px;
+ left: 2px;
float: left;
font-size: 10px;
line-height: 20px;
@@ -59,7 +60,8 @@ aside .nav-pills > li > a,
padding: 6px 10px;
}
-.wall-item-tools .dropdown-menu {
+.wall-item-tools .dropdown-menu,
+.section-title-wrapper .dropdown-menu {
min-width: auto;
}
diff --git a/view/css/conversation.css b/view/css/conversation.css
index b6e316121..68aa8bfbe 100644
--- a/view/css/conversation.css
+++ b/view/css/conversation.css
@@ -121,7 +121,7 @@ a.wall-item-name-link {
}
.wall-item-content {
- overflow: auto;
+ overflow: hidden;
}
.wall-item-content h1,
@@ -316,4 +316,4 @@ code.inline-code {
img.smiley.emoji:hover {
width: 32px;
height: 32px;
-} \ No newline at end of file
+}
diff --git a/view/css/mod_directory.css b/view/css/mod_directory.css
index 9bfea856d..af89e597d 100644
--- a/view/css/mod_directory.css
+++ b/view/css/mod_directory.css
@@ -30,5 +30,5 @@
}
.directory-collapse {
- overflow: auto;
+ overflow: hidden;
}
diff --git a/view/css/mod_settings.css b/view/css/mod_settings.css
index e81d115d4..4236b3dff 100644
--- a/view/css/mod_settings.css
+++ b/view/css/mod_settings.css
@@ -7,5 +7,22 @@
}
.channel-menu {
- margin-top: 24px;
+ margin-top: 24px;
+}
+
+.zat-example {
+ color: red;
+}
+
+#atoken-index {
+ width: 100%;
+}
+
+#atoken-index td:nth-child(1){
+ padding: 7px 3px 7px 10px;
+ white-space: nowrap;
+}
+
+.atoken-index-tool {
+ padding: 7px 10px;
}
diff --git a/view/js/autocomplete.js b/view/js/autocomplete.js
index 59a9ed355..63f1e9a13 100644
--- a/view/js/autocomplete.js
+++ b/view/js/autocomplete.js
@@ -1,5 +1,5 @@
/**
- * Red people autocomplete
+ * general autocomplete support
*
* require jQuery, jquery.textcomplete
*/
diff --git a/view/js/jquery-migrate-1.1.1.js b/view/js/jquery-migrate-1.1.1.js
deleted file mode 100644
index e99f954e6..000000000
--- a/view/js/jquery-migrate-1.1.1.js
+++ /dev/null
@@ -1,511 +0,0 @@
-/*!
- * jQuery Migrate - v1.1.1 - 2013-02-16
- * https://github.com/jquery/jquery-migrate
- * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors; Licensed MIT
- */
-(function( jQuery, window, undefined ) {
-// See http://bugs.jquery.com/ticket/13335
-// "use strict";
-
-
-var warnedAbout = {};
-
-// List of warnings already given; public read only
-jQuery.migrateWarnings = [];
-
-// Set to true to prevent console output; migrateWarnings still maintained
-// jQuery.migrateMute = false;
-
-// Show a message on the console so devs know we're active
-if ( !jQuery.migrateMute && window.console && console.log ) {
- console.log("JQMIGRATE: Logging is active");
-}
-
-// Set to false to disable traces that appear with warnings
-if ( jQuery.migrateTrace === undefined ) {
- jQuery.migrateTrace = true;
-}
-
-// Forget any warnings we've already given; public
-jQuery.migrateReset = function() {
- warnedAbout = {};
- jQuery.migrateWarnings.length = 0;
-};
-
-function migrateWarn( msg) {
- if ( !warnedAbout[ msg ] ) {
- warnedAbout[ msg ] = true;
- jQuery.migrateWarnings.push( msg );
- if ( window.console && console.warn && !jQuery.migrateMute ) {
- console.warn( "JQMIGRATE: " + msg );
- if ( jQuery.migrateTrace && console.trace ) {
- console.trace();
- }
- }
- }
-}
-
-function migrateWarnProp( obj, prop, value, msg ) {
- if ( Object.defineProperty ) {
- // On ES5 browsers (non-oldIE), warn if the code tries to get prop;
- // allow property to be overwritten in case some other plugin wants it
- try {
- Object.defineProperty( obj, prop, {
- configurable: true,
- enumerable: true,
- get: function() {
- migrateWarn( msg );
- return value;
- },
- set: function( newValue ) {
- migrateWarn( msg );
- value = newValue;
- }
- });
- return;
- } catch( err ) {
- // IE8 is a dope about Object.defineProperty, can't warn there
- }
- }
-
- // Non-ES5 (or broken) browser; just set the property
- jQuery._definePropertyBroken = true;
- obj[ prop ] = value;
-}
-
-if ( document.compatMode === "BackCompat" ) {
- // jQuery has never supported or tested Quirks Mode
- migrateWarn( "jQuery is not compatible with Quirks Mode" );
-}
-
-
-var attrFn = jQuery( "<input/>", { size: 1 } ).attr("size") && jQuery.attrFn,
- oldAttr = jQuery.attr,
- valueAttrGet = jQuery.attrHooks.value && jQuery.attrHooks.value.get ||
- function() { return null; },
- valueAttrSet = jQuery.attrHooks.value && jQuery.attrHooks.value.set ||
- function() { return undefined; },
- rnoType = /^(?:input|button)$/i,
- rnoAttrNodeType = /^[238]$/,
- rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
- ruseDefault = /^(?:checked|selected)$/i;
-
-// jQuery.attrFn
-migrateWarnProp( jQuery, "attrFn", attrFn || {}, "jQuery.attrFn is deprecated" );
-
-jQuery.attr = function( elem, name, value, pass ) {
- var lowerName = name.toLowerCase(),
- nType = elem && elem.nodeType;
-
- if ( pass ) {
- // Since pass is used internally, we only warn for new jQuery
- // versions where there isn't a pass arg in the formal params
- if ( oldAttr.length < 4 ) {
- migrateWarn("jQuery.fn.attr( props, pass ) is deprecated");
- }
- if ( elem && !rnoAttrNodeType.test( nType ) &&
- (attrFn ? name in attrFn : jQuery.isFunction(jQuery.fn[name])) ) {
- return jQuery( elem )[ name ]( value );
- }
- }
-
- // Warn if user tries to set `type`, since it breaks on IE 6/7/8; by checking
- // for disconnected elements we don't warn on $( "<button>", { type: "button" } ).
- if ( name === "type" && value !== undefined && rnoType.test( elem.nodeName ) && elem.parentNode ) {
- migrateWarn("Can't change the 'type' of an input or button in IE 6/7/8");
- }
-
- // Restore boolHook for boolean property/attribute synchronization
- if ( !jQuery.attrHooks[ lowerName ] && rboolean.test( lowerName ) ) {
- jQuery.attrHooks[ lowerName ] = {
- get: function( elem, name ) {
- // Align boolean attributes with corresponding properties
- // Fall back to attribute presence where some booleans are not supported
- var attrNode,
- property = jQuery.prop( elem, name );
- return property === true || typeof property !== "boolean" &&
- ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?
-
- name.toLowerCase() :
- undefined;
- },
- set: function( elem, value, name ) {
- var propName;
- if ( value === false ) {
- // Remove boolean attributes when set to false
- jQuery.removeAttr( elem, name );
- } else {
- // value is true since we know at this point it's type boolean and not false
- // Set boolean attributes to the same name and set the DOM property
- propName = jQuery.propFix[ name ] || name;
- if ( propName in elem ) {
- // Only set the IDL specifically if it already exists on the element
- elem[ propName ] = true;
- }
-
- elem.setAttribute( name, name.toLowerCase() );
- }
- return name;
- }
- };
-
- // Warn only for attributes that can remain distinct from their properties post-1.9
- if ( ruseDefault.test( lowerName ) ) {
- migrateWarn( "jQuery.fn.attr('" + lowerName + "') may use property instead of attribute" );
- }
- }
-
- return oldAttr.call( jQuery, elem, name, value );
-};
-
-// attrHooks: value
-jQuery.attrHooks.value = {
- get: function( elem, name ) {
- var nodeName = ( elem.nodeName || "" ).toLowerCase();
- if ( nodeName === "button" ) {
- return valueAttrGet.apply( this, arguments );
- }
- if ( nodeName !== "input" && nodeName !== "option" ) {
- migrateWarn("jQuery.fn.attr('value') no longer gets properties");
- }
- return name in elem ?
- elem.value :
- null;
- },
- set: function( elem, value ) {
- var nodeName = ( elem.nodeName || "" ).toLowerCase();
- if ( nodeName === "button" ) {
- return valueAttrSet.apply( this, arguments );
- }
- if ( nodeName !== "input" && nodeName !== "option" ) {
- migrateWarn("jQuery.fn.attr('value', val) no longer sets properties");
- }
- // Does not return so that setAttribute is also used
- elem.value = value;
- }
-};
-
-
-var matched, browser,
- oldInit = jQuery.fn.init,
- oldParseJSON = jQuery.parseJSON,
- // Note this does NOT include the #9521 XSS fix from 1.7!
- rquickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*|#([\w\-]*))$/;
-
-// $(html) "looks like html" rule change
-jQuery.fn.init = function( selector, context, rootjQuery ) {
- var match;
-
- if ( selector && typeof selector === "string" && !jQuery.isPlainObject( context ) &&
- (match = rquickExpr.exec( selector )) && match[1] ) {
- // This is an HTML string according to the "old" rules; is it still?
- if ( selector.charAt( 0 ) !== "<" ) {
- migrateWarn("$(html) HTML strings must start with '<' character");
- }
- // Now process using loose rules; let pre-1.8 play too
- if ( context && context.context ) {
- // jQuery object as context; parseHTML expects a DOM object
- context = context.context;
- }
- if ( jQuery.parseHTML ) {
- return oldInit.call( this, jQuery.parseHTML( jQuery.trim(selector), context, true ),
- context, rootjQuery );
- }
- }
- return oldInit.apply( this, arguments );
-};
-jQuery.fn.init.prototype = jQuery.fn;
-
-// Let $.parseJSON(falsy_value) return null
-jQuery.parseJSON = function( json ) {
- if ( !json && json !== null ) {
- migrateWarn("jQuery.parseJSON requires a valid JSON string");
- return null;
- }
- return oldParseJSON.apply( this, arguments );
-};
-
-jQuery.uaMatch = function( ua ) {
- ua = ua.toLowerCase();
-
- var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
- /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
- /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
- /(msie) ([\w.]+)/.exec( ua ) ||
- ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
- [];
-
- return {
- browser: match[ 1 ] || "",
- version: match[ 2 ] || "0"
- };
-};
-
-// Don't clobber any existing jQuery.browser in case it's different
-if ( !jQuery.browser ) {
- matched = jQuery.uaMatch( navigator.userAgent );
- browser = {};
-
- if ( matched.browser ) {
- browser[ matched.browser ] = true;
- browser.version = matched.version;
- }
-
- // Chrome is Webkit, but Webkit is also Safari.
- if ( browser.chrome ) {
- browser.webkit = true;
- } else if ( browser.webkit ) {
- browser.safari = true;
- }
-
- jQuery.browser = browser;
-}
-
-// Warn if the code tries to get jQuery.browser
-migrateWarnProp( jQuery, "browser", jQuery.browser, "jQuery.browser is deprecated" );
-
-jQuery.sub = function() {
- function jQuerySub( selector, context ) {
- return new jQuerySub.fn.init( selector, context );
- }
- jQuery.extend( true, jQuerySub, this );
- jQuerySub.superclass = this;
- jQuerySub.fn = jQuerySub.prototype = this();
- jQuerySub.fn.constructor = jQuerySub;
- jQuerySub.sub = this.sub;
- jQuerySub.fn.init = function init( selector, context ) {
- if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
- context = jQuerySub( context );
- }
-
- return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
- };
- jQuerySub.fn.init.prototype = jQuerySub.fn;
- var rootjQuerySub = jQuerySub(document);
- migrateWarn( "jQuery.sub() is deprecated" );
- return jQuerySub;
-};
-
-
-// Ensure that $.ajax gets the new parseJSON defined in core.js
-jQuery.ajaxSetup({
- converters: {
- "text json": jQuery.parseJSON
- }
-});
-
-
-var oldFnData = jQuery.fn.data;
-
-jQuery.fn.data = function( name ) {
- var ret, evt,
- elem = this[0];
-
- // Handles 1.7 which has this behavior and 1.8 which doesn't
- if ( elem && name === "events" && arguments.length === 1 ) {
- ret = jQuery.data( elem, name );
- evt = jQuery._data( elem, name );
- if ( ( ret === undefined || ret === evt ) && evt !== undefined ) {
- migrateWarn("Use of jQuery.fn.data('events') is deprecated");
- return evt;
- }
- }
- return oldFnData.apply( this, arguments );
-};
-
-
-var rscriptType = /\/(java|ecma)script/i,
- oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack;
-
-jQuery.fn.andSelf = function() {
- migrateWarn("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()");
- return oldSelf.apply( this, arguments );
-};
-
-// Since jQuery.clean is used internally on older versions, we only shim if it's missing
-if ( !jQuery.clean ) {
- jQuery.clean = function( elems, context, fragment, scripts ) {
- // Set context per 1.8 logic
- context = context || document;
- context = !context.nodeType && context[0] || context;
- context = context.ownerDocument || context;
-
- migrateWarn("jQuery.clean() is deprecated");
-
- var i, elem, handleScript, jsTags,
- ret = [];
-
- jQuery.merge( ret, jQuery.buildFragment( elems, context ).childNodes );
-
- // Complex logic lifted directly from jQuery 1.8
- if ( fragment ) {
- // Special handling of each script element
- handleScript = function( elem ) {
- // Check if we consider it executable
- if ( !elem.type || rscriptType.test( elem.type ) ) {
- // Detach the script and store it in the scripts array (if provided) or the fragment
- // Return truthy to indicate that it has been handled
- return scripts ?
- scripts.push( elem.parentNode ? elem.parentNode.removeChild( elem ) : elem ) :
- fragment.appendChild( elem );
- }
- };
-
- for ( i = 0; (elem = ret[i]) != null; i++ ) {
- // Check if we're done after handling an executable script
- if ( !( jQuery.nodeName( elem, "script" ) && handleScript( elem ) ) ) {
- // Append to fragment and handle embedded scripts
- fragment.appendChild( elem );
- if ( typeof elem.getElementsByTagName !== "undefined" ) {
- // handleScript alters the DOM, so use jQuery.merge to ensure snapshot iteration
- jsTags = jQuery.grep( jQuery.merge( [], elem.getElementsByTagName("script") ), handleScript );
-
- // Splice the scripts into ret after their former ancestor and advance our index beyond them
- ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
- i += jsTags.length;
- }
- }
- }
- }
-
- return ret;
- };
-}
-
-var eventAdd = jQuery.event.add,
- eventRemove = jQuery.event.remove,
- eventTrigger = jQuery.event.trigger,
- oldToggle = jQuery.fn.toggle,
- oldLive = jQuery.fn.live,
- oldDie = jQuery.fn.die,
- ajaxEvents = "ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",
- rajaxEvent = new RegExp( "\\b(?:" + ajaxEvents + ")\\b" ),
- rhoverHack = /(?:^|\s)hover(\.\S+|)\b/,
- hoverHack = function( events ) {
- if ( typeof( events ) !== "string" || jQuery.event.special.hover ) {
- return events;
- }
- if ( rhoverHack.test( events ) ) {
- migrateWarn("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'");
- }
- return events && events.replace( rhoverHack, "mouseenter$1 mouseleave$1" );
- };
-
-// Event props removed in 1.9, put them back if needed; no practical way to warn them
-if ( jQuery.event.props && jQuery.event.props[ 0 ] !== "attrChange" ) {
- jQuery.event.props.unshift( "attrChange", "attrName", "relatedNode", "srcElement" );
-}
-
-// Undocumented jQuery.event.handle was "deprecated" in jQuery 1.7
-if ( jQuery.event.dispatch ) {
- migrateWarnProp( jQuery.event, "handle", jQuery.event.dispatch, "jQuery.event.handle is undocumented and deprecated" );
-}
-
-// Support for 'hover' pseudo-event and ajax event warnings
-jQuery.event.add = function( elem, types, handler, data, selector ){
- if ( elem !== document && rajaxEvent.test( types ) ) {
- migrateWarn( "AJAX events should be attached to document: " + types );
- }
- eventAdd.call( this, elem, hoverHack( types || "" ), handler, data, selector );
-};
-jQuery.event.remove = function( elem, types, handler, selector, mappedTypes ){
- eventRemove.call( this, elem, hoverHack( types ) || "", handler, selector, mappedTypes );
-};
-
-jQuery.fn.error = function() {
- var args = Array.prototype.slice.call( arguments, 0);
- migrateWarn("jQuery.fn.error() is deprecated");
- args.splice( 0, 0, "error" );
- if ( arguments.length ) {
- return this.bind.apply( this, args );
- }
- // error event should not bubble to window, although it does pre-1.7
- this.triggerHandler.apply( this, args );
- return this;
-};
-
-jQuery.fn.toggle = function( fn, fn2 ) {
-
- // Don't mess with animation or css toggles
- if ( !jQuery.isFunction( fn ) || !jQuery.isFunction( fn2 ) ) {
- return oldToggle.apply( this, arguments );
- }
- migrateWarn("jQuery.fn.toggle(handler, handler...) is deprecated");
-
- // Save reference to arguments for access in closure
- var args = arguments,
- guid = fn.guid || jQuery.guid++,
- i = 0,
- toggler = function( event ) {
- // Figure out which function to execute
- var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
- jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
-
- // Make sure that clicks stop
- event.preventDefault();
-
- // and execute the function
- return args[ lastToggle ].apply( this, arguments ) || false;
- };
-
- // link all the functions, so any of them can unbind this click handler
- toggler.guid = guid;
- while ( i < args.length ) {
- args[ i++ ].guid = guid;
- }
-
- return this.click( toggler );
-};
-
-jQuery.fn.live = function( types, data, fn ) {
- migrateWarn("jQuery.fn.live() is deprecated");
- if ( oldLive ) {
- return oldLive.apply( this, arguments );
- }
- jQuery( this.context ).on( types, this.selector, data, fn );
- return this;
-};
-
-jQuery.fn.die = function( types, fn ) {
- migrateWarn("jQuery.fn.die() is deprecated");
- if ( oldDie ) {
- return oldDie.apply( this, arguments );
- }
- jQuery( this.context ).off( types, this.selector || "**", fn );
- return this;
-};
-
-// Turn global events into document-triggered events
-jQuery.event.trigger = function( event, data, elem, onlyHandlers ){
- if ( !elem && !rajaxEvent.test( event ) ) {
- migrateWarn( "Global events are undocumented and deprecated" );
- }
- return eventTrigger.call( this, event, data, elem || document, onlyHandlers );
-};
-jQuery.each( ajaxEvents.split("|"),
- function( _, name ) {
- jQuery.event.special[ name ] = {
- setup: function() {
- var elem = this;
-
- // The document needs no shimming; must be !== for oldIE
- if ( elem !== document ) {
- jQuery.event.add( document, name + "." + jQuery.guid, function() {
- jQuery.event.trigger( name, null, elem, true );
- });
- jQuery._data( this, name, jQuery.guid++ );
- }
- return false;
- },
- teardown: function() {
- if ( this !== document ) {
- jQuery.event.remove( document, name + "." + jQuery._data( this, name ) );
- }
- return false;
- }
- };
- }
-);
-
-
-})( jQuery, window );
diff --git a/view/js/jquery.js b/view/js/jquery.js
index d26ce7f6a..046447ce9 100644
--- a/view/js/jquery.js
+++ b/view/js/jquery.js
@@ -1,5 +1,5 @@
-/*! jQuery v1.11.2 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
-!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.2",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=hb(),z=hb(),A=hb(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},eb=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fb){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function gb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+rb(o[l]);w=ab.test(a)&&pb(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function hb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ib(a){return a[u]=!0,a}function jb(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function kb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function lb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function nb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function ob(a){return ib(function(b){return b=+b,ib(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pb(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=gb.support={},f=gb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=gb.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",eb,!1):e.attachEvent&&e.attachEvent("onunload",eb)),p=!f(g),c.attributes=jb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=jb(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=jb(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(jb(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),jb(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&jb(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return lb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?lb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},gb.matches=function(a,b){return gb(a,null,null,b)},gb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return gb(b,n,null,[a]).length>0},gb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},gb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},gb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=gb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=gb.selectors={cacheLength:50,createPseudo:ib,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||gb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&gb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=gb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||gb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ib(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ib(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ib(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ib(function(a){return function(b){return gb(a,b).length>0}}),contains:ib(function(a){return a=a.replace(cb,db),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ib(function(a){return W.test(a||"")||gb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:ob(function(){return[0]}),last:ob(function(a,b){return[b-1]}),eq:ob(function(a,b,c){return[0>c?c+b:c]}),even:ob(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:ob(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:ob(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:ob(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=mb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=nb(b);function qb(){}qb.prototype=d.filters=d.pseudos,d.setFilters=new qb,g=gb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?gb.error(a):z(a,i).slice(0)};function rb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function tb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ub(a,b,c){for(var d=0,e=b.length;e>d;d++)gb(a,b[d],c);return c}function vb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wb(a,b,c,d,e,f){return d&&!d[u]&&(d=wb(d)),e&&!e[u]&&(e=wb(e,f)),ib(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ub(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:vb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=vb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=vb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sb(function(a){return a===b},h,!0),l=sb(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sb(tb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wb(i>1&&tb(m),i>1&&rb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xb(a.slice(i,e)),f>e&&xb(a=a.slice(e)),f>e&&rb(a))}m.push(c)}return tb(m)}function yb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=vb(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&gb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ib(f):f}return h=gb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,yb(e,d)),f.selector=a}return f},i=gb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&pb(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&rb(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&pb(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=jb(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),jb(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||kb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&jb(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||kb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),jb(function(a){return null==a.getAttribute("disabled")})||kb(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),gb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;
-return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?"<table>"!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight),b.removeChild(i)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)
-}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=m.event&&k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});
+/*! jQuery v3.1.0 | (c) jQuery Foundation | jquery.org/license */
+!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.0",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null!=a?a<0?this[a+this.length]:this[a]:f.call(this)},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=r.isArray(d)))?(e?(e=!1,f=c&&r.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"label"in b&&b.disabled===a||"form"in b&&b.disabled===a||"form"in b&&b.disabled===!1&&(b.isDisabled===a||b.isDisabled!==!a&&("label"in b||!ea(b))!==a)}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e)}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(_,aa),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=V.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(_,aa),$.test(j[0].type)&&qa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&sa(j),!a)return G.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||$.test(a)&&qa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){if(r.isFunction(b))return r.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return r.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(C.test(b))return r.filter(b,a,c);b=r.filter(b,a)}return r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType})}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/\S+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,M,e),g(f,c,N,e)):(f++,j.call(a,g(f,c,M,e),g(f,c,N,e),g(f,c,M,c.notifyWith))):(d!==M&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R),a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,
+r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},T=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function U(){this.expando=r.expando+U.uid++}U.uid=1,U.prototype={cache:function(a){var b=a[this.expando];return b||(b={},T(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){r.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(K)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var V=new U,W=new U,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Y=/[A-Z]/g;function Z(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Y,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c||"false"!==c&&("null"===c?null:+c+""===c?+c:X.test(c)?JSON.parse(c):c)}catch(e){}W.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return W.hasData(a)||V.hasData(a)},data:function(a,b,c){return W.access(a,b,c)},removeData:function(a,b){W.remove(a,b)},_data:function(a,b,c){return V.access(a,b,c)},_removeData:function(a,b){V.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=W.get(f),1===f.nodeType&&!V.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),Z(f,d,e[d])));V.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){W.set(this,a)}):S(this,function(b){var c;if(f&&void 0===b){if(c=W.get(f,a),void 0!==c)return c;if(c=Z(f,a),void 0!==c)return c}else this.each(function(){W.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=V.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var $=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,_=new RegExp("^(?:([+-])=|)("+$+")([a-z%]*)$","i"),aa=["Top","Right","Bottom","Left"],ba=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ca=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function da(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&_.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ea={};function fa(a){var b,c=a.ownerDocument,d=a.nodeName,e=ea[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ea[d]=e,e)}function ga(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=V.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&ba(d)&&(e[f]=fa(d))):"none"!==c&&(e[f]="none",V.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ga(this,!0)},hide:function(){return ga(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){ba(this)?r(this).show():r(this).hide()})}});var ha=/^(?:checkbox|radio)$/i,ia=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,ja=/^$|\/(?:java|ecma)script/i,ka={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ka.optgroup=ka.option,ka.tbody=ka.tfoot=ka.colgroup=ka.caption=ka.thead,ka.th=ka.td;function la(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function ma(a,b){for(var c=0,d=a.length;c<d;c++)V.set(a[c],"globalEval",!b||V.get(b[c],"globalEval"))}var na=/<|&#?\w+;/;function oa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(na.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ia.exec(f)||["",""])[1].toLowerCase(),i=ka[h]||ka._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=la(l.appendChild(f),"script"),j&&ma(g),c){k=0;while(f=g[k++])ja.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var pa=d.documentElement,qa=/^key/,ra=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,sa=/^([^.]*)(?:\.(.+)|)/;function ta(){return!0}function ua(){return!1}function va(){try{return d.activeElement}catch(a){}}function wa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)wa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ua;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(pa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;c<h;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?r(e,this).index(i)>-1:r.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==va()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===va()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&r.nodeName(this,"input"))return this.click(),!1},_default:function(a){return r.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ta:ua,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:ua,isPropagationStopped:ua,isImmediatePropagationStopped:ua,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ta,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ta,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ta,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&qa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ra.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return wa(this,a,b,c,d)},one:function(a,b,c,d){return wa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=ua),this.each(function(){r.event.remove(this,a,c,b)})}});var xa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,ya=/<script|<style|<link/i,za=/checked\s*(?:[^=]|=\s*.checked.)/i,Aa=/^true\/(.*)/,Ba=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ca(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Da(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ea(a){var b=Aa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}W.hasData(a)&&(h=W.access(a),i=r.extend({},h),W.set(b,i))}}function Ga(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ha.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ha(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&za.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(m&&(e=oa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(la(e,"script"),Da),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,la(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ea),l=0;l<i;l++)j=h[l],ja.test(j.type||"")&&!V.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Ba,""),k))}return a}function Ia(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(la(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&ma(la(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(xa,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=la(h),f=la(a),d=0,e=f.length;d<e;d++)Ga(f[d],g[d]);if(b)if(c)for(f=f||la(a),g=g||la(h),d=0,e=f.length;d<e;d++)Fa(f[d],g[d]);else Fa(a,h);return g=la(h,"script"),g.length>0&&ma(g,!i&&la(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(la(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!ya.test(a)&&!ka[(ia.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(la(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(la(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var Ja=/^margin/,Ka=new RegExp("^("+$+")(?!px)[a-z%]+$","i"),La=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",pa.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,pa.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Ma(a,b,c){var d,e,f,g,h=a.style;return c=c||La(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ka.test(g)&&Ja.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Na(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Oa=/^(none|table(?!-c[ea]).+)/,Pa={position:"absolute",visibility:"hidden",display:"block"},Qa={letterSpacing:"0",fontWeight:"400"},Ra=["Webkit","Moz","ms"],Sa=d.createElement("div").style;function Ta(a){if(a in Sa)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ra.length;while(c--)if(a=Ra[c]+b,a in Sa)return a}function Ua(a,b,c){var d=_.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Va(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+aa[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+aa[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+aa[f]+"Width",!0,e))):(g+=r.css(a,"padding"+aa[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+aa[f]+"Width",!0,e)));return g}function Wa(a,b,c){var d,e=!0,f=La(a),g="border-box"===r.css(a,"boxSizing",!1,f);if(a.getClientRects().length&&(d=a.getBoundingClientRect()[b]),d<=0||null==d){if(d=Ma(a,b,f),(d<0||null==d)&&(d=a.style[b]),Ka.test(d))return d;e=g&&(o.boxSizingReliable()||d===a.style[b]),d=parseFloat(d)||0}return d+Va(a,b,c||(g?"border":"content"),e,f)+"px"}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Ma(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=a.style;return b=r.cssProps[h]||(r.cssProps[h]=Ta(h)||h),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=_.exec(c))&&e[1]&&(c=da(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b);return b=r.cssProps[h]||(r.cssProps[h]=Ta(h)||h),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Ma(a,b,d)),"normal"===e&&b in Qa&&(e=Qa[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Oa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?Wa(a,b,d):ca(a,Pa,function(){return Wa(a,b,d)})},set:function(a,c,d){var e,f=d&&La(a),g=d&&Va(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=_.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ua(a,c,g)}}}),r.cssHooks.marginLeft=Na(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Ma(a,"marginLeft"))||a.getBoundingClientRect().left-ca(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+aa[d]+b]=f[d]||f[d-2]||f[0];return e}},Ja.test(a)||(r.cssHooks[a+b].set=Ua)}),r.fn.extend({css:function(a,b){return S(this,function(a,b,c){var d,e,f={},g=0;if(r.isArray(b)){for(d=La(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function Xa(a,b,c,d,e){return new Xa.prototype.init(a,b,c,d,e)}r.Tween=Xa,Xa.prototype={constructor:Xa,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Xa.propHooks[this.prop];return a&&a.get?a.get(this):Xa.propHooks._default.get(this)},run:function(a){var b,c=Xa.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Xa.propHooks._default.set(this),this}},Xa.prototype.init.prototype=Xa.prototype,Xa.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Xa.propHooks.scrollTop=Xa.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Xa.prototype.init,r.fx.step={};var Ya,Za,$a=/^(?:toggle|show|hide)$/,_a=/queueHooks$/;function ab(){Za&&(a.requestAnimationFrame(ab),r.fx.tick())}function bb(){return a.setTimeout(function(){Ya=void 0}),Ya=r.now()}function cb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=aa[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function db(a,b,c){for(var d,e=(gb.tweeners[b]||[]).concat(gb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function eb(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&ba(a),q=V.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],$a.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=V.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ga([a],!0),j=a.style.display||j,k=r.css(a,"display"),ga([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=V.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ga([a],!0),m.done(function(){p||ga([a]),V.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=db(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function fb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],r.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function gb(a,b,c){var d,e,f=0,g=gb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Ya||bb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:Ya||bb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(fb(k,j.opts.specialEasing);f<g;f++)if(d=gb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,db,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}r.Animation=r.extend(gb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return da(c.elem,a,_.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(K);for(var c,d=0,e=a.length;d<e;d++)c=a[d],gb.tweeners[c]=gb.tweeners[c]||[],gb.tweeners[c].unshift(b)},prefilters:[eb],prefilter:function(a,b){b?gb.prefilters.unshift(a):gb.prefilters.push(a)}}),r.speed=function(a,b,c){var e=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off||d.hidden?e.duration=0:e.duration="number"==typeof e.duration?e.duration:e.duration in r.fx.speeds?r.fx.speeds[e.duration]:r.fx.speeds._default,null!=e.queue&&e.queue!==!0||(e.queue="fx"),e.old=e.complete,e.complete=function(){r.isFunction(e.old)&&e.old.call(this),e.queue&&r.dequeue(this,e.queue)},e},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(ba).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=gb(this,r.extend({},a),f);(e||V.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=V.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&_a.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=V.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(cb(b,!0),a,d,e)}}),r.each({slideDown:cb("show"),slideUp:cb("hide"),slideToggle:cb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(Ya=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),Ya=void 0},r.fx.timer=function(a){r.timers.push(a),a()?r.fx.start():r.timers.pop()},r.fx.interval=13,r.fx.start=function(){Za||(Za=a.requestAnimationFrame?a.requestAnimationFrame(ab):a.setInterval(r.fx.tick,r.fx.interval))},r.fx.stop=function(){a.cancelAnimationFrame?a.cancelAnimationFrame(Za):a.clearInterval(Za),Za=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var hb,ib=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return S(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?hb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);
+if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),hb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ib[b]||r.find.attr;ib[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=ib[g],ib[g]=e,e=null!=c(a,b,d)?g:null,ib[g]=f),e}});var jb=/^(?:input|select|textarea|button)$/i,kb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):jb.test(a.nodeName)||kb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});var lb=/[\t\r\n\f]/g;function mb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,mb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(" "+e+" ").replace(lb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,mb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(" "+e+" ").replace(lb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,mb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=mb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(c)+" ").replace(lb," ").indexOf(b)>-1)return!0;return!1}});var nb=/\r/g,ob=/[\x20\t\r\n\f]+/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(nb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:r.trim(r.text(a)).replace(ob," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type,g=f?null:[],h=f?e+1:d.length,i=e<0?h:f?e:0;i<h;i++)if(c=d[i],(c.selected||i===e)&&!c.disabled&&(!c.parentNode.disabled||!r.nodeName(c.parentNode,"optgroup"))){if(b=r(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ha.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,""),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Qb=[],Rb=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Qb.pop()||r.expando+"_"+rb++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Rb.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Rb.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Rb,"$1"+e):b.jsonp!==!1&&(b.url+=(sb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Qb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=B.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=oa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=r.trim(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length};function Sb(a){return r.isWindow(a)?a:9===a.nodeType&&a.defaultView}r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),d.width||d.height?(e=f.ownerDocument,c=Sb(e),b=e.documentElement,{top:d.top+c.pageYOffset-b.clientTop,left:d.left+c.pageXOffset-b.clientLeft}):d):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),r.nodeName(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||pa})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return S(this,function(a,d,e){var f=Sb(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Na(o.pixelPosition,function(a,c){if(c)return c=Ma(a,b),Ka.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return S(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.parseJSON=JSON.parse,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Tb=a.jQuery,Ub=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Ub),b&&a.jQuery===r&&(a.jQuery=Tb),r},b||(a.jQuery=a.$=r),r});
diff --git a/view/js/jquery.migrate-3.0.0.js b/view/js/jquery.migrate-3.0.0.js
new file mode 100644
index 000000000..99e0dd20a
--- /dev/null
+++ b/view/js/jquery.migrate-3.0.0.js
@@ -0,0 +1,2 @@
+/*! jQuery Migrate v3.0.0 | (c) jQuery Foundation and other contributors | jquery.org/license */
+"undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=!0),function(a,b){"use strict";function c(c){var d=b.console;e[c]||(e[c]=!0,a.migrateWarnings.push(c),d&&d.warn&&!a.migrateMute&&(d.warn("JQMIGRATE: "+c),a.migrateTrace&&d.trace&&d.trace()))}function d(a,b,d,e){Object.defineProperty(a,b,{configurable:!0,enumerable:!0,get:function(){return c(e),d}})}a.migrateVersion="3.0.0",function(){var c=b.console&&b.console.log&&function(){b.console.log.apply(b.console,arguments)},d=/^[12]\./;c&&(a&&!d.test(a.fn.jquery)||c("JQMIGRATE: jQuery 3.0.0+ REQUIRED"),a.migrateWarnings&&c("JQMIGRATE: Migrate plugin loaded multiple times"),c("JQMIGRATE: Migrate is installed"+(a.migrateMute?"":" with logging active")+", version "+a.migrateVersion))}();var e={};a.migrateWarnings=[],void 0===a.migrateTrace&&(a.migrateTrace=!0),a.migrateReset=function(){e={},a.migrateWarnings.length=0},"BackCompat"===document.compatMode&&c("jQuery is not compatible with Quirks Mode");var f=a.fn.init,g=a.isNumeric,h=a.find,i=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,j=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;a.fn.init=function(a){var b=Array.prototype.slice.call(arguments);return"string"==typeof a&&"#"===a&&(c("jQuery( '#' ) is not a valid selector"),b[0]=[]),f.apply(this,b)},a.fn.init.prototype=a.fn,a.find=function(a){var b=Array.prototype.slice.call(arguments);if("string"==typeof a&&i.test(a))try{document.querySelector(a)}catch(d){a=a.replace(j,function(a,b,c,d){return"["+b+c+'"'+d+'"]'});try{document.querySelector(a),c("Attribute selector with '#' must be quoted: "+b[0]),b[0]=a}catch(e){c("Attribute selector with '#' was not fixed: "+b[0])}}return h.apply(this,b)};var k;for(k in h)Object.prototype.hasOwnProperty.call(h,k)&&(a.find[k]=h[k]);a.fn.size=function(){return c("jQuery.fn.size() is deprecated; use the .length property"),this.length},a.parseJSON=function(){return c("jQuery.parseJSON is deprecated; use JSON.parse"),JSON.parse.apply(null,arguments)},a.isNumeric=function(b){function d(b){var c=b&&b.toString();return!a.isArray(b)&&c-parseFloat(c)+1>=0}var e=g(b),f=d(b);return e!==f&&c("jQuery.isNumeric() should not be called on constructed objects"),f},d(a,"unique",a.uniqueSort,"jQuery.unique is deprecated, use jQuery.uniqueSort"),d(a.expr,"filters",a.expr.pseudos,"jQuery.expr.filters is now jQuery.expr.pseudos"),d(a.expr,":",a.expr.pseudos,'jQuery.expr[":"] is now jQuery.expr.pseudos');var l=a.ajax;a.ajax=function(){var a=l.apply(this,arguments);return a.promise&&(d(a,"success",a.done,"jQXHR.success is deprecated and removed"),d(a,"error",a.fail,"jQXHR.error is deprecated and removed"),d(a,"complete",a.always,"jQXHR.complete is deprecated and removed")),a};var m=a.fn.removeAttr,n=a.fn.toggleClass,o=/\S+/g;a.fn.removeAttr=function(b){var d=this;return a.each(b.match(o),function(b,e){a.expr.match.bool.test(e)&&(c("jQuery.fn.removeAttr no longer sets boolean properties: "+e),d.prop(e,!1))}),m.apply(this,arguments)},a.fn.toggleClass=function(b){return void 0!==b&&"boolean"!=typeof b?n.apply(this,arguments):(c("jQuery.fn.toggleClass( boolean ) is deprecated"),this.each(function(){var c=this.getAttribute&&this.getAttribute("class")||"";c&&a.data(this,"__className__",c),this.setAttribute&&this.setAttribute("class",c||b===!1?"":a.data(this,"__className__")||"")}))};var p=!1;a.swap&&a.each(["height","width","reliableMarginRight"],function(b,c){var d=a.cssHooks[c]&&a.cssHooks[c].get;d&&(a.cssHooks[c].get=function(){var a;return p=!0,a=d.apply(this,arguments),p=!1,a})}),a.swap=function(a,b,d,e){var f,g,h={};p||c("jQuery.swap() is undocumented and deprecated");for(g in b)h[g]=a.style[g],a.style[g]=b[g];f=d.apply(a,e||[]);for(g in b)a.style[g]=h[g];return f};var q=a.data;a.data=function(b,d,e){var f;return d&&d!==a.camelCase(d)&&(f=a.hasData(b)&&q.call(this,b),f&&d in f)?(c("jQuery.data() always sets/gets camelCased names: "+d),arguments.length>2&&(f[d]=e),f[d]):q.apply(this,arguments)};var r=a.Tween.prototype.run;a.Tween.prototype.run=function(b){a.easing[this.easing].length>1&&(c('easing function "jQuery.easing.'+this.easing.toString()+'" should use only first argument'),a.easing[this.easing]=a.easing[this.easing].bind(a.easing,b,this.options.duration*b,0,1,this.options.duration)),r.apply(this,arguments)};var s=a.fn.load,t=a.event.fix;a.event.props=[],a.event.fixHooks={},a.event.fix=function(b){var d,e=b.type,f=this.fixHooks[e],g=a.event.props;if(g.length)for(c("jQuery.event.props are deprecated and removed: "+g.join());g.length;)a.event.addProp(g.pop());if(f&&!f._migrated_&&(f._migrated_=!0,c("jQuery.event.fixHooks are deprecated and removed: "+e),(g=f.props)&&g.length))for(;g.length;)a.event.addProp(g.pop());return d=t.call(this,b),f&&f.filter?f.filter(d,b):d},a.each(["load","unload","error"],function(b,d){a.fn[d]=function(){var a=Array.prototype.slice.call(arguments,0);return"load"===d&&"string"==typeof a[0]?s.apply(this,a):(c("jQuery.fn."+d+"() is deprecated"),a.splice(0,0,d),arguments.length?this.on.apply(this,a):(this.triggerHandler.apply(this,a),this))}}),a(function(){a(document).triggerHandler("ready")}),a.event.special.ready={setup:function(){this===document&&c("'ready' event is deprecated")}},a.fn.extend({bind:function(a,b,d){return c("jQuery.fn.bind() is deprecated"),this.on(a,null,b,d)},unbind:function(a,b){return c("jQuery.fn.unbind() is deprecated"),this.off(a,null,b)},delegate:function(a,b,d,e){return c("jQuery.fn.delegate() is deprecated"),this.on(b,a,d,e)},undelegate:function(a,b,d){return c("jQuery.fn.undelegate() is deprecated"),1===arguments.length?this.off(a,"**"):this.off(b,a||"**",d)}});var u=a.fn.offset;a.fn.offset=function(){var b,d=this[0],e={top:0,left:0};return d&&d.nodeType?(b=(d.ownerDocument||document).documentElement,a.contains(b,d)?u.apply(this,arguments):(c("jQuery.fn.offset() requires an element connected to a document"),e)):(c("jQuery.fn.offset() requires a valid DOM element"),e)};var v=a.param;a.param=function(b,d){var e=a.ajaxSettings&&a.ajaxSettings.traditional;return void 0===d&&e&&(c("jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),d=e),v.call(this,b,d)};var w=a.fn.andSelf||a.fn.addBack;a.fn.andSelf=function(){return c("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),w.apply(this,arguments)};var x=a.Deferred,y=[["resolve","done",a.Callbacks("once memory"),a.Callbacks("once memory"),"resolved"],["reject","fail",a.Callbacks("once memory"),a.Callbacks("once memory"),"rejected"],["notify","progress",a.Callbacks("memory"),a.Callbacks("memory")]];a.Deferred=function(b){var d=x(),e=d.promise();return d.pipe=e.pipe=function(){var b=arguments;return c("deferred.pipe() is deprecated"),a.Deferred(function(c){a.each(y,function(f,g){var h=a.isFunction(b[f])&&b[f];d[g[1]](function(){var b=h&&h.apply(this,arguments);b&&a.isFunction(b.promise)?b.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[g[0]+"With"](this===e?c.promise():this,h?[b]:arguments)})}),b=null}).promise()},b&&b.call(d,d),d}}(jQuery,window);
diff --git a/view/js/main.js b/view/js/main.js
index 2caf5a1dd..a288f98f5 100644
--- a/view/js/main.js
+++ b/view/js/main.js
@@ -283,12 +283,13 @@ $(function() {
/* Turn elements with one of our special rel tags into popup menus */
/* CHANGES: let bootstrap handle popups and only do the loading here */
- $('a[rel^=#]').click(function(e){
+
+ $('a[rel^="#"]').click(function(e){
manage_popup_menu(this, e);
return;
});
- $('span[rel^=#]').click(function(e){
+ $('span[rel^="#"]').click(function(e){
manage_popup_menu(this, e);
return;
});
@@ -639,7 +640,7 @@ function updateConvItems(mode,data) {
var bimgcount = bimgs.length;
if (bimgcount) {
- bimgs.load(function() {
+ bimgs.on('load',function() {
bimgcount--;
if (! bimgcount) {
collapseHeight();
@@ -652,7 +653,7 @@ function updateConvItems(mode,data) {
}
function collapseHeight() {
- var origContentHeight = parseInt($("#region_2").height());
+ var origContentHeight = Math.ceil($("#region_2").height());
var cDiff = 0;
var i = 0;
var position = $(window).scrollTop();
@@ -662,25 +663,19 @@ function collapseHeight() {
if(orgHeight > divmore_height) {
if(! $(this).hasClass('divmore')) {
- //var trigger = $(window).scrollTop() < $(this).offset().top ? true : false;
- //console.log($(this).offset().top + divmore_height - $(window).scrollTop() + cDiff - ($(".divgrow-showmore").outerHeight() * i));
-
// check if we will collapse some content above the visible content and compensate the diff later
if($(this).offset().top + divmore_height - $(window).scrollTop() + cDiff - ($(".divgrow-showmore").outerHeight() * i) < 65) {
- //$(this).css('color', 'red');
- //console.log($(this).offset().top + divmore_height + ' / ' + $(window).scrollTop());
diff = orgHeight - divmore_height;
cDiff = cDiff + diff;
i++;
}
- //if(trigger) {
$(this).readmore({
speed: 0,
heightMargin: 50,
collapsedHeight: divmore_height,
- moreLink: '<a href="#" class="divgrow-showmore">' + aStr.divgrowmore + '</a>',
- lessLink: '<a href="#" class="divgrow-showmore">' + aStr.divgrowless + '</a>',
+ moreLink: '<a href="#" class="divgrow-showmore fakelink">' + aStr.divgrowmore + '</a>',
+ lessLink: '<a href="#" class="divgrow-showmore fakelink">' + aStr.divgrowless + '</a>',
beforeToggle: function(trigger, element, expanded) {
if(expanded) {
if((($(element).offset().top + divmore_height) - $(window).scrollTop()) < 65 ) {
@@ -690,12 +685,11 @@ function collapseHeight() {
}
});
$(this).addClass('divmore');
- //}
}
}
});
- var collapsedContentHeight = parseInt($("#region_2").height());
+ var collapsedContentHeight = Math.ceil($("#region_2").height());
contentHeightDiff = origContentHeight - collapsedContentHeight;
console.log('collapseHeight() - contentHeightDiff: ' + contentHeightDiff + 'px');
diff --git a/view/js/mod_mail.js b/view/js/mod_mail.js
index 3e55c8aeb..46574a63d 100644
--- a/view/js/mod_mail.js
+++ b/view/js/mod_mail.js
@@ -1,5 +1,5 @@
$(document).ready(function() {
- $("#recip").name_autocomplete(baseurl + '/acl', '', false, function(data) {
+ $("#recip").name_autocomplete(baseurl + '/acl', 'm', false, function(data) {
$("#recip-complete").val(data.xid);
});
$(".autotime").timeago()
diff --git a/view/js/mod_photos.js b/view/js/mod_photos.js
index 006be5f23..e3df3ca68 100644
--- a/view/js/mod_photos.js
+++ b/view/js/mod_photos.js
@@ -3,7 +3,7 @@
*/
$(document).ready(function() {
- $("#photo-edit-newtag").contact_autocomplete(baseurl + '/acl', 'p', false, function(data) {
+ $("#photo-edit-newtag").contact_autocomplete(baseurl + '/acl', 'a', false, function(data) {
$("#photo-edit-newtag").val('@' + data.name);
});
diff --git a/view/js/mod_settings.js b/view/js/mod_settings.js
index 640c154dd..0f45e0d16 100644
--- a/view/js/mod_settings.js
+++ b/view/js/mod_settings.js
@@ -5,6 +5,9 @@
$(document).ready(function() {
$('form').areYouSure({'addRemoveFieldsMarksDirty':true, 'message': aStr['leavethispage'] }); // Warn user about unsaved settings
+ $('.token-mirror').html($('#id_token').val());
+ $('#id_token').keyup( function() { $('.token-mirror').html($('#id_token').val()); });
+
$("#id_permissions_role").change(function() {
var role = $("#id_permissions_role").val();
if(role == 'custom')
diff --git a/view/php/theme_init.php b/view/php/theme_init.php
index e9ba2aa05..46aadaa7d 100644
--- a/view/php/theme_init.php
+++ b/view/php/theme_init.php
@@ -13,7 +13,7 @@ head_add_css('library/justifiedGallery/justifiedGallery.min.css');
head_add_css('library/Text_Highlighter/sample.css');
head_add_js('jquery.js');
-//head_add_js('jquery-migrate-1.1.1.js');
+//head_add_js('jquery.migrate-3.0.0.js');
head_add_js('library/justifiedGallery/jquery.justifiedGallery.min.js');
head_add_js('library/sprintf.js/dist/sprintf.min.js');
diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css
index a63042b87..6cc3e2f10 100644
--- a/view/theme/redbasic/css/style.css
+++ b/view/theme/redbasic/css/style.css
@@ -1416,9 +1416,6 @@ img.mail-conv-sender-photo {
display: block;
border-top: 1px dashed #ccc;
text-align: center;
- font-size: $body_font_size;
- color: $link_colour;
- cursor: pointer;
}
.divgrow-showmore:hover {
@@ -1658,6 +1655,7 @@ main.fullscreen .section-content-wrapper-np {
display: none;
}
+.atoken-index-row:hover td,
.chatroom-index-row:hover td,
.locs-index-row:hover td,
[id^="cloud-index-"]:hover td,
diff --git a/view/theme/redbasic/js/redbasic.js b/view/theme/redbasic/js/redbasic.js
index 5209ad945..999b46268 100644
--- a/view/theme/redbasic/js/redbasic.js
+++ b/view/theme/redbasic/js/redbasic.js
@@ -56,13 +56,14 @@ $(document).ready(function() {
function makeFullScreen(full) {
if(typeof full=='undefined' || full == true) {
$('main').css({'transition': 'none'}).addClass('fullscreen');
- $('#fullscreen-btn, header, nav, aside, #tabs-collapse-1').css({'visibility': 'hidden'});
+ $('header, nav, aside, #fullscreen-btn').hide();
+ $('#tabs-collapse-1').css({'visibility': 'hidden'});
$('#inline-btn').show();
-
}
else {
$('main').removeClass('fullscreen');
- $('#fullscreen-btn, header, nav, aside, #tabs-collapse-1').css({'visibility': ''});
+ $('header, nav, aside, #fullscreen-btn').show();
+ $('#tabs-collapse-1').css({'visibility': ''});
$('#inline-btn').hide();
$('main').css({'transition': ''});
}
diff --git a/view/theme/redbasic/php/style.php b/view/theme/redbasic/php/style.php
index 83c35935a..2db0d4c44 100644
--- a/view/theme/redbasic/php/style.php
+++ b/view/theme/redbasic/php/style.php
@@ -153,6 +153,18 @@ if(file_exists('view/theme/redbasic/css/style.css')) {
$x = file_get_contents('view/theme/redbasic/css/style.css');
+ if($narrow_navbar && file_exists('view/theme/redbasic/css/narrow_navbar.css')) {
+ $x .= file_get_contents('view/theme/redbasic/css/narrow_navbar.css');
+ }
+
+ if($align_left && file_exists('view/theme/redbasic/css/align_left.css')) {
+ $x .= file_get_contents('view/theme/redbasic/css/align_left.css');
+ }
+
+ if($schemecss) {
+ $x .= $schemecss;
+ }
+
$aside_width = 287;
// left aside and right aside are 285px + converse width
@@ -204,18 +216,6 @@ if(file_exists('view/theme/redbasic/css/style.css')) {
}
-if($narrow_navbar && file_exists('view/theme/redbasic/css/narrow_navbar.css')) {
- echo file_get_contents('view/theme/redbasic/css/narrow_navbar.css');
-}
-
-if($align_left && file_exists('view/theme/redbasic/css/align_left.css')) {
- echo file_get_contents('view/theme/redbasic/css/align_left.css');
-}
-
-if($schemecss) {
- echo $schemecss;
-}
-
// Set the schema to the default schema in derived themes. See the documentation for creating derived themes how to override this.
if(local_channel() && App::$channel && App::$channel['channel_theme'] != 'redbasic')
diff --git a/view/tpl/chat.tpl b/view/tpl/chat.tpl
index 341ff7649..31be4136f 100644
--- a/view/tpl/chat.tpl
+++ b/view/tpl/chat.tpl
@@ -1,8 +1,6 @@
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
<div class="pull-right">
- <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(); adjustFullscreenTopBarHeight();"><i class="fa fa-expand"></i></button>
- <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false); adjustInlineTopBarHeight();"><i class="fa fa-compress"></i></button>
{{if $is_owner}}
<form id="chat-destroy" method="post" action="chat">
<input type="hidden" name="room_name" value="{{$room_name}}" />
@@ -10,6 +8,8 @@
<button class="btn btn-danger btn-xs" type="submit" name="submit" value="{{$drop}}" onclick="return confirmDelete();"><i class="fa fa-trash-o"></i>&nbsp;{{$drop}}</button>
</form>
{{/if}}
+ <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(); adjustFullscreenTopBarHeight();"><i class="fa fa-expand"></i></button>
+ <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false); adjustInlineTopBarHeight();"><i class="fa fa-compress"></i></button>
</div>
<h2>{{$room_name}}</h2>
<div class="clear"></div>
diff --git a/view/tpl/contact_block.tpl b/view/tpl/contact_block.tpl
index a32437212..6a29abaef 100755
--- a/view/tpl/contact_block.tpl
+++ b/view/tpl/contact_block.tpl
@@ -11,4 +11,3 @@
</div>
{{/if}}
</div>
-<div class="clear"></div>
diff --git a/view/tpl/cover_photo_widget.tpl b/view/tpl/cover_photo_widget.tpl
index 8254fc87d..4e210a300 100755
--- a/view/tpl/cover_photo_widget.tpl
+++ b/view/tpl/cover_photo_widget.tpl
@@ -1,8 +1,17 @@
<script>
+ var aside_padding_top;
+ var section_padding_top;
+
$(document).ready(function() {
+
+ aside_padding_top = parseInt($('aside').css('padding-top'));
+ section_padding_top = parseInt($('section').css('padding-top'));
+
if($('#cover-photo').length && $(window).width() > 755) {
$('.navbar-fixed-top').css('position', 'relative');
- $('aside, section').css('padding-top', 0 + 'px');
+ $('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();
}
@@ -15,9 +24,11 @@
if($('#cover-photo').length && $(window).width() > 755 && $(window).scrollTop() >= $('#cover-photo').height()) {
$('header').fadeIn();
$('main').css('opacity', 1);
- $('aside, section').css('padding-top', $('nav').outerHeight(true) + 'px');
+ $('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');
+ $('main').css('margin-top', '');
$('#cover-photo').remove();
}
if($('#cover-photo').length) {
@@ -28,7 +39,8 @@
$(window).resize(function () {
if($('#cover-photo').length && $(window).width() < 755) {
$('main').css('opacity', 1);
- $('aside, section').css('padding-top', $('nav').outerHeight(true) + 'px');
+ $('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();
}
@@ -36,7 +48,7 @@
});
function slideUpCover() {
- $('html, body').animate({scrollTop: $('#cover-photo').height() + 'px'});
+ $('html, body').animate({scrollTop: Math.ceil($('#cover-photo').height()) + 'px' });
}
</script>
diff --git a/view/tpl/events-js.tpl b/view/tpl/events-js.tpl
index 3397411a8..6299242ce 100755
--- a/view/tpl/events-js.tpl
+++ b/view/tpl/events-js.tpl
@@ -2,8 +2,6 @@
<div class="section-title-wrapper">
<div class="pull-right">
<div class="dropdown">
- <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button>
- <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button>
<button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown"><i class="fa fa-caret-down"></i>&nbsp;{{$view_label}}</button>
<ul class="dropdown-menu">
<li><a href="#" onclick="changeView('changeView', 'month'); return false;">{{$month}}</a></li>
@@ -16,6 +14,8 @@
<button id="events-spinner" class="btn btn-default btn-xs" onclick="changeView('today', false);" title="{{$today}}"><i class="fa fa-bullseye"></i></button>
<button class="btn btn-default btn-xs" onclick="changeView('next', false);" title="{{$next}}"><i class="fa fa-forward"></i></button>
</div>
+ <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button>
+ <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button>
</div>
</div>
<h2 id="title"></h2>
diff --git a/view/tpl/events_cal-js.tpl b/view/tpl/events_cal-js.tpl
index 121c06cb5..b7836cfab 100755
--- a/view/tpl/events_cal-js.tpl
+++ b/view/tpl/events_cal-js.tpl
@@ -2,13 +2,13 @@
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
<div class="pull-right">
- <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button>
- <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button>
<div class="btn-group">
<button class="btn btn-default btn-xs" onclick="changeView('prev', false);" title="{{$prev}}"><i class="fa fa-backward"></i></button>
<button id="events-spinner" class="btn btn-default btn-xs" onclick="changeView('today', false);" title="{{$today}}"><i class="fa fa-bullseye"></i></button>
<button class="btn btn-default btn-xs" onclick="changeView('next', false);" title="{{$next}}"><i class="fa fa-forward"></i></button>
</div>
+ <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button>
+ <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button>
</div>
<h2 id="title"></h2>
<div class="clear"></div>
diff --git a/view/tpl/photo_album.tpl b/view/tpl/photo_album.tpl
index e6cb61637..f097646e4 100755
--- a/view/tpl/photo_album.tpl
+++ b/view/tpl/photo_album.tpl
@@ -1,8 +1,6 @@
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
<div class="pull-right">
- <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button>
- <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button>
{{if $order}}
<a class="btn btn-default btn-xs" href="{{$order.1}}" title="{{$order.0}}"><i class="fa fa-sort"></i></a>
{{/if}}
@@ -14,6 +12,10 @@
<button class="btn btn-xs btn-success btn-xs" title="{{$usage}}" onclick="openClose('photo-upload-form'); closeMenu('photo-album-edit-wrapper');"><i class="fa fa-arrow-circle-o-up"></i>&nbsp;{{$upload.0}}</button>
{{/if}}
</div>
+ {{if !$no_fullscreen_btn}}
+ <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button>
+ <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button>
+ {{/if}}
</div>
<h2>{{$album}}</h2>
<div class="clear"></div>
diff --git a/view/tpl/photos_recent.tpl b/view/tpl/photos_recent.tpl
index c40dda145..139f27a23 100755
--- a/view/tpl/photos_recent.tpl
+++ b/view/tpl/photos_recent.tpl
@@ -1,11 +1,11 @@
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
<div class="pull-right">
- <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button>
- <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button>
{{if $can_post}}
<button class="btn btn-xs btn-success" title="{{$usage}}" onclick="openClose('photo-upload-form');"><i class="fa fa-arrow-circle-o-up"></i>&nbsp;{{$upload.0}}</button>
{{/if}}
+ <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button>
+ <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button>
</div>
<h2>{{$title}}</h2>
<div class="clear"></div>
diff --git a/view/tpl/settings_tokens.tpl b/view/tpl/settings_tokens.tpl
new file mode 100644
index 000000000..22af381e9
--- /dev/null
+++ b/view/tpl/settings_tokens.tpl
@@ -0,0 +1,40 @@
+<div class="generic-content-wrapper">
+ <div class="section-title-wrapper">
+ <h2>{{$title}}</h2>
+ <div class="clear"></div>
+ </div>
+ <div class="section-content-tools-wrapper">
+ <div class="section-content-info-wrapper">
+ {{$desc}}
+ </div>
+
+ <form action="settings/tokens" id="settings-account-form" method="post" autocomplete="off" >
+ <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
+ {{if $atoken}}<input type="hidden" name="atoken_id" value="{{$atoken.atoken_id}}" />{{/if}}
+ {{include file="field_input.tpl" field=$name}}
+ {{include file="field_input.tpl" field=$token}}
+ {{include file="field_input.tpl" field=$expires}}
+ <div class="settings-submit-wrapper form-group">
+ <button type="submit" name="submit" class="btn btn-primary">{{$submit}}</button>
+ </div>
+ </form>
+ <div class="descriptive-text">{{$desc2}}</div>
+ <ul>
+ <li>{{$url1}}<span class="zat-example">?f=&zat=<span class="token-mirror"></span></span></li>
+ <li>{{$url2}}<span class="zat-example">?f=&zat=<span class="token-mirror"></span></span></li>
+ </ul>
+ </div>
+ {{if $tokens}}
+ <div class="section-content-wrapper-np">
+ <table id="atoken-index">
+ {{foreach $tokens as $t}}
+ <tr id="atoken-index-{{$t.atoken_id}}" class="atoken-index-row">
+ <td width="99%"><a href="settings/tokens/{{$t.atoken_id}}">{{$t.atoken_name}}</a></td>
+ <td width="1%" class="atoken-index-tool"><i class="fa fa-trash-o drop-icons" onClick="dropItem('/settings/tokens/{{$t.atoken_id}}/drop', '#atoken-index-{{$t.atoken_id}}')"></i></td>
+ </tr>
+ {{/foreach}}
+ </table>
+
+ </div>
+ {{/if}}
+</div>