diff --git a/app/Resources/static/themes/material/index.js b/app/Resources/static/themes/material/index.js
index e808d75c2..da055e80a 100755
--- a/app/Resources/static/themes/material/index.js
+++ b/app/Resources/static/themes/material/index.js
@@ -57,9 +57,9 @@ $(document).ready(() => {
$('.datepicker').pickadate({
selectMonths: true,
selectYears: 15,
- formatSubmit: 'dd/mm/yyyy',
- hiddenName: true,
- format: 'dd/mm/yyyy',
+ formatSubmit: 'yyyy-mm-dd',
+ hiddenName: false,
+ format: 'yyyy-mm-dd',
container: 'body',
});
diff --git a/src/Wallabag/CoreBundle/Entity/Entry.php b/src/Wallabag/CoreBundle/Entity/Entry.php
index 190457983..0e19a0c20 100644
--- a/src/Wallabag/CoreBundle/Entity/Entry.php
+++ b/src/Wallabag/CoreBundle/Entity/Entry.php
@@ -552,7 +552,7 @@ class Entry
*
* @return Entry
*/
- public function setCreatedAt(\DateTime $createdAt)
+ public function setCreatedAt(\DateTimeInterface $createdAt)
{
$this->createdAt = $createdAt;
diff --git a/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php b/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php
index 17070c598..61ad99a86 100644
--- a/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php
+++ b/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php
@@ -73,23 +73,22 @@ class EntryFilterType extends AbstractType
'label' => 'entry.filters.reading_time.label',
])
->add('createdAt', DateRangeFilterType::class, [
- 'left_date_options' => [
- 'attr' => [
- 'placeholder' => 'dd/mm/yyyy',
- ],
- 'format' => 'dd/MM/yyyy',
- 'widget' => 'single_text',
+ 'left_date_options' => [
+ 'attr' => [
+ 'placeholder' => 'yyyy-mm-dd',
],
- 'right_date_options' => [
- 'attr' => [
- 'placeholder' => 'dd/mm/yyyy',
- ],
- 'format' => 'dd/MM/yyyy',
- 'widget' => 'single_text',
+ 'format' => 'yyyy-MM-dd',
+ 'widget' => 'single_text',
+ ],
+ 'right_date_options' => [
+ 'attr' => [
+ 'placeholder' => 'yyyy-mm-dd',
],
- 'label' => 'entry.filters.created_at.label',
- ]
- )
+ 'format' => 'yyyy-MM-dd',
+ 'widget' => 'single_text',
+ ],
+ 'label' => 'entry.filters.created_at.label',
+ ])
->add('domainName', TextFilterType::class, [
'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
$value = $values['value'];
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig
index 0c21dc5dd..0cd00cfdf 100644
--- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig
@@ -39,7 +39,7 @@
{% for entry in entries %}
- -
+
-
{% if listMode == 1 %}
{% include "@WallabagCore/themes/material/Entry/_card_list.html.twig" with {'entry': entry} only %}
{% elseif not entry.previewPicture is null and entry.mimetype starts with 'image/' %}
diff --git a/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php b/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php
index 3a8f92e7c..3dcc1cd06 100644
--- a/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php
+++ b/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php
@@ -90,19 +90,18 @@ class EntryControllerTest extends WallabagCoreTestCase
public function testPostNewViaBookmarklet()
{
$this->logInAs('admin');
- $this->useTheme('baggy');
$client = $this->getClient();
$crawler = $client->request('GET', '/');
- $this->assertCount(4, $crawler->filter('div[class=entry]'));
+ $this->assertCount(4, $crawler->filter('li.entry'));
// Good URL
$client->request('GET', '/bookmarklet', ['url' => $this->url]);
$this->assertSame(302, $client->getResponse()->getStatusCode());
$client->followRedirect();
$crawler = $client->request('GET', '/');
- $this->assertCount(5, $crawler->filter('div[class=entry]'));
+ $this->assertCount(5, $crawler->filter('li.entry'));
$em = $client->getContainer()
->get('doctrine.orm.entity_manager');
@@ -694,7 +693,6 @@ class EntryControllerTest extends WallabagCoreTestCase
public function testFilterOnReadingTime()
{
$this->logInAs('admin');
- $this->useTheme('baggy');
$client = $this->getClient();
$entry = new Entry($this->getLoggedInUser());
$entry->setUrl($this->url);
@@ -713,7 +711,7 @@ class EntryControllerTest extends WallabagCoreTestCase
$crawler = $client->submit($form, $data);
- $this->assertCount(1, $crawler->filter('div[class=entry]'));
+ $this->assertCount(1, $crawler->filter('li.entry'));
}
public function testFilterOnReadingTimeWithNegativeValue()
@@ -733,17 +731,16 @@ class EntryControllerTest extends WallabagCoreTestCase
$crawler = $client->submit($form, $data);
// forcing negative value results in no entry displayed
- $this->assertCount(0, $crawler->filter('div[class=entry]'));
+ $this->assertCount(0, $crawler->filter('li.entry'));
}
public function testFilterOnReadingTimeOnlyUpper()
{
$this->logInAs('admin');
- $this->useTheme('baggy');
$client = $this->getClient();
$crawler = $client->request('GET', '/all/list');
- $this->assertCount(5, $crawler->filter('div[class=entry]'));
+ $this->assertCount(5, $crawler->filter('li.entry'));
$entry = new Entry($this->getLoggedInUser());
$entry->setUrl($this->url);
@@ -752,7 +749,7 @@ class EntryControllerTest extends WallabagCoreTestCase
$this->getEntityManager()->flush();
$crawler = $client->request('GET', '/all/list');
- $this->assertCount(6, $crawler->filter('div[class=entry]'));
+ $this->assertCount(6, $crawler->filter('li.entry'));
$form = $crawler->filter('button[id=submit-filter]')->form();
@@ -762,13 +759,12 @@ class EntryControllerTest extends WallabagCoreTestCase
$crawler = $client->submit($form, $data);
- $this->assertCount(5, $crawler->filter('div[class=entry]'));
+ $this->assertCount(5, $crawler->filter('li.entry'));
}
public function testFilterOnReadingTimeOnlyLower()
{
$this->logInAs('admin');
- $this->useTheme('baggy');
$client = $this->getClient();
$crawler = $client->request('GET', '/unread/list');
@@ -781,7 +777,7 @@ class EntryControllerTest extends WallabagCoreTestCase
$crawler = $client->submit($form, $data);
- $this->assertCount(0, $crawler->filter('div[class=entry]'));
+ $this->assertCount(0, $crawler->filter('li.entry'));
$entry = new Entry($this->getLoggedInUser());
$entry->setUrl($this->url);
@@ -790,13 +786,12 @@ class EntryControllerTest extends WallabagCoreTestCase
$this->getEntityManager()->flush();
$crawler = $client->submit($form, $data);
- $this->assertCount(1, $crawler->filter('div[class=entry]'));
+ $this->assertCount(1, $crawler->filter('li.entry'));
}
public function testFilterOnUnreadStatus()
{
$this->logInAs('admin');
- $this->useTheme('baggy');
$client = $this->getClient();
$crawler = $client->request('GET', '/all/list');
@@ -809,7 +804,7 @@ class EntryControllerTest extends WallabagCoreTestCase
$crawler = $client->submit($form, $data);
- $this->assertCount(4, $crawler->filter('div[class=entry]'));
+ $this->assertCount(4, $crawler->filter('li.entry'));
$entry = new Entry($this->getLoggedInUser());
$entry->setUrl($this->url);
@@ -819,45 +814,56 @@ class EntryControllerTest extends WallabagCoreTestCase
$crawler = $client->submit($form, $data);
- $this->assertCount(5, $crawler->filter('div[class=entry]'));
+ $this->assertCount(5, $crawler->filter('li.entry'));
}
public function testFilterOnCreationDate()
{
$this->logInAs('admin');
- $this->useTheme('baggy');
$client = $this->getClient();
+ $em = $this->getEntityManager();
+
+ $today = new \DateTimeImmutable();
+ $tomorrow = $today->add(new \DateInterval('P1D'));
+ $yesterday = $today->sub(new \DateInterval('P1D'));
+
+ $entry = new Entry($this->getLoggedInUser());
+ $entry->setUrl('http://0.0.0.0/testFilterOnCreationDate');
+ $entry->setCreatedAt($yesterday);
+ $em->persist($entry);
+ $em->flush();
+
$crawler = $client->request('GET', '/unread/list');
$form = $crawler->filter('button[id=submit-filter]')->form();
$data = [
- 'entry_filter[createdAt][left_date]' => date('d/m/Y'),
- 'entry_filter[createdAt][right_date]' => date('d/m/Y', strtotime('+1 day')),
+ 'entry_filter[createdAt][left_date]' => $today->format('Y-m-d'),
+ 'entry_filter[createdAt][right_date]' => $tomorrow->format('Y-m-d'),
];
$crawler = $client->submit($form, $data);
- $this->assertCount(5, $crawler->filter('div[class=entry]'));
+ $this->assertCount(5, $crawler->filter('li.entry'));
$data = [
- 'entry_filter[createdAt][left_date]' => date('d/m/Y'),
- 'entry_filter[createdAt][right_date]' => date('d/m/Y'),
+ 'entry_filter[createdAt][left_date]' => $today->format('Y-m-d'),
+ 'entry_filter[createdAt][right_date]' => $today->format('Y-m-d'),
];
$crawler = $client->submit($form, $data);
- $this->assertCount(5, $crawler->filter('div[class=entry]'));
+ $this->assertCount(5, $crawler->filter('li.entry'));
$data = [
- 'entry_filter[createdAt][left_date]' => '01/01/1970',
- 'entry_filter[createdAt][right_date]' => '01/01/1970',
+ 'entry_filter[createdAt][left_date]' => '1970-01-01',
+ 'entry_filter[createdAt][right_date]' => '1970-01-01',
];
$crawler = $client->submit($form, $data);
- $this->assertCount(0, $crawler->filter('div[class=entry]'));
+ $this->assertCount(0, $crawler->filter('li.entry'));
}
public function testPaginationWithFilter()
@@ -892,7 +898,6 @@ class EntryControllerTest extends WallabagCoreTestCase
public function testFilterOnDomainName()
{
$this->logInAs('admin');
- $this->useTheme('baggy');
$client = $this->getClient();
$crawler = $client->request('GET', '/unread/list');
@@ -902,7 +907,7 @@ class EntryControllerTest extends WallabagCoreTestCase
];
$crawler = $client->submit($form, $data);
- $this->assertCount(5, $crawler->filter('div[class=entry]'));
+ $this->assertCount(5, $crawler->filter('li.entry'));
$crawler = $client->request('GET', '/unread/list');
$form = $crawler->filter('button[id=submit-filter]')->form();
@@ -911,7 +916,7 @@ class EntryControllerTest extends WallabagCoreTestCase
];
$crawler = $client->submit($form, $data);
- $this->assertCount(5, $crawler->filter('div[class=entry]'));
+ $this->assertCount(5, $crawler->filter('li.entry'));
$form = $crawler->filter('button[id=submit-filter]')->form();
$data = [
@@ -919,13 +924,12 @@ class EntryControllerTest extends WallabagCoreTestCase
];
$crawler = $client->submit($form, $data);
- $this->assertCount(0, $crawler->filter('div[class=entry]'));
+ $this->assertCount(0, $crawler->filter('li.entry'));
}
public function testFilterOnStatus()
{
$this->logInAs('admin');
- $this->useTheme('baggy');
$client = $this->getClient();
$crawler = $client->request('GET', '/unread/list');
@@ -934,20 +938,19 @@ class EntryControllerTest extends WallabagCoreTestCase
$form['entry_filter[isStarred]']->untick();
$crawler = $client->submit($form);
- $this->assertCount(1, $crawler->filter('div[class=entry]'));
+ $this->assertCount(1, $crawler->filter('li.entry'));
$form = $crawler->filter('button[id=submit-filter]')->form();
$form['entry_filter[isArchived]']->untick();
$form['entry_filter[isStarred]']->tick();
$crawler = $client->submit($form);
- $this->assertCount(1, $crawler->filter('div[class=entry]'));
+ $this->assertCount(1, $crawler->filter('li.entry'));
}
public function testFilterOnIsPublic()
{
$this->logInAs('admin');
- $this->useTheme('baggy');
$client = $this->getClient();
$crawler = $client->request('GET', '/unread/list');
@@ -955,13 +958,12 @@ class EntryControllerTest extends WallabagCoreTestCase
$form['entry_filter[isPublic]']->tick();
$crawler = $client->submit($form);
- $this->assertCount(0, $crawler->filter('div[class=entry]'));
+ $this->assertCount(0, $crawler->filter('li.entry'));
}
public function testPreviewPictureFilter()
{
$this->logInAs('admin');
- $this->useTheme('baggy');
$client = $this->getClient();
$crawler = $client->request('GET', '/unread/list');
@@ -969,13 +971,12 @@ class EntryControllerTest extends WallabagCoreTestCase
$form['entry_filter[previewPicture]']->tick();
$crawler = $client->submit($form);
- $this->assertCount(1, $crawler->filter('div[class=entry]'));
+ $this->assertCount(1, $crawler->filter('li.entry'));
}
public function testFilterOnLanguage()
{
$this->logInAs('admin');
- $this->useTheme('baggy');
$client = $this->getClient();
$entry = new Entry($this->getLoggedInUser());
@@ -991,7 +992,7 @@ class EntryControllerTest extends WallabagCoreTestCase
];
$crawler = $client->submit($form, $data);
- $this->assertCount(3, $crawler->filter('div[class=entry]'));
+ $this->assertCount(3, $crawler->filter('li.entry'));
$form = $crawler->filter('button[id=submit-filter]')->form();
$data = [
@@ -999,7 +1000,7 @@ class EntryControllerTest extends WallabagCoreTestCase
];
$crawler = $client->submit($form, $data);
- $this->assertCount(2, $crawler->filter('div[class=entry]'));
+ $this->assertCount(2, $crawler->filter('li.entry'));
}
public function testShareEntryPublicly()
@@ -1181,7 +1182,6 @@ class EntryControllerTest extends WallabagCoreTestCase
public function testFilterOnHttpStatus()
{
$this->logInAs('admin');
- $this->useTheme('baggy');
$client = $this->getClient();
$entry = new Entry($this->getLoggedInUser());
@@ -1200,7 +1200,7 @@ class EntryControllerTest extends WallabagCoreTestCase
$crawler = $client->submit($form, $data);
- $this->assertCount(1, $crawler->filter('div[class=entry]'));
+ $this->assertCount(1, $crawler->filter('li.entry'));
$entry = new Entry($this->getLoggedInUser());
$entry->setUrl($this->url);
@@ -1223,7 +1223,7 @@ class EntryControllerTest extends WallabagCoreTestCase
$crawler = $client->submit($form, $data);
- $this->assertCount(2, $crawler->filter('div[class=entry]'));
+ $this->assertCount(2, $crawler->filter('li.entry'));
$crawler = $client->request('GET', '/all/list');
$form = $crawler->filter('button[id=submit-filter]')->form();
@@ -1234,13 +1234,12 @@ class EntryControllerTest extends WallabagCoreTestCase
$crawler = $client->submit($form, $data);
- $this->assertCount(8, $crawler->filter('div[class=entry]'));
+ $this->assertCount(8, $crawler->filter('li.entry'));
}
public function testSearch()
{
$this->logInAs('admin');
- $this->useTheme('baggy');
$client = $this->getClient();
$entry = new Entry($this->getLoggedInUser());
@@ -1259,7 +1258,7 @@ class EntryControllerTest extends WallabagCoreTestCase
$crawler = $client->submit($form, $data);
- $this->assertCount(4, $crawler->filter('div[class=entry]'));
+ $this->assertCount(4, $crawler->filter('li.entry'));
// Search on starred list
$crawler = $client->request('GET', '/starred/list');
@@ -1278,7 +1277,7 @@ class EntryControllerTest extends WallabagCoreTestCase
$crawler = $client->submit($form, $data);
- $this->assertCount(1, $crawler->filter('div[class=entry]'));
+ $this->assertCount(1, $crawler->filter('li.entry'));
$crawler = $client->request('GET', '/archive/list');
@@ -1297,7 +1296,7 @@ class EntryControllerTest extends WallabagCoreTestCase
$crawler = $client->submit($form, $data);
- $this->assertCount(1, $crawler->filter('div[class=entry]'));
+ $this->assertCount(1, $crawler->filter('li.entry'));
$client->request('GET', '/delete/' . $entry->getId());
// test on list of all articles
@@ -1310,7 +1309,7 @@ class EntryControllerTest extends WallabagCoreTestCase
$crawler = $client->submit($form, $data);
- $this->assertCount(0, $crawler->filter('div[class=entry]'));
+ $this->assertCount(0, $crawler->filter('li.entry'));
// test url search on list of all articles
$entry = new Entry($this->getLoggedInUser());
@@ -1329,7 +1328,7 @@ class EntryControllerTest extends WallabagCoreTestCase
$crawler = $client->submit($form, $data);
- $this->assertCount(1, $crawler->filter('div[class=entry]'));
+ $this->assertCount(1, $crawler->filter('li.entry'));
// same as previous test but for case-sensitivity
$crawler = $client->request('GET', '/all/list');
@@ -1341,7 +1340,7 @@ class EntryControllerTest extends WallabagCoreTestCase
$crawler = $client->submit($form, $data);
- $this->assertCount(1, $crawler->filter('div[class=entry]'));
+ $this->assertCount(1, $crawler->filter('li.entry'));
}
public function dataForLanguage()
diff --git a/web/wallassets/baggy.js b/web/wallassets/baggy.js
index 77249f12b..72dd807d5 100644
--- a/web/wallassets/baggy.js
+++ b/web/wallassets/baggy.js
@@ -1 +1 @@
-!function(e){function __webpack_require__(Q){if(t[Q])return t[Q].exports;var T=t[Q]={i:Q,l:!1,exports:{}};return e[Q].call(T.exports,T,T.exports,__webpack_require__),T.l=!0,T.exports}var t={};__webpack_require__.m=e,__webpack_require__.c=t,__webpack_require__.i=function(e){return e},__webpack_require__.d=function(e,t,Q){__webpack_require__.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:Q})},__webpack_require__.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(t,"a",t),t},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=244)}([function(e,t,Q){var T,r;!function(t,Q){"object"==typeof e&&"object"==typeof e.exports?e.exports=t.document?Q(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return Q(e)}:Q(t)}("undefined"!=typeof window?window:this,function(Q,n){function isArrayLike(e){var t=!!e&&"length"in e&&e.length,Q=L.type(e);return"function"!==Q&&!L.isWindow(e)&&("array"===Q||0===t||"number"==typeof t&&t>0&&t-1 in e)}function winnow(e,t,Q){if(L.isFunction(t))return L.grep(e,function(e,T){return!!t.call(e,T,e)!==Q});if(t.nodeType)return L.grep(e,function(e){return e===t!==Q});if("string"==typeof t){if(v.test(t))return L.filter(t,e,Q);t=L.filter(t,e)}return L.grep(e,function(e){return c.call(t,e)>-1!==Q})}function sibling(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function createOptions(e){var t={};return L.each(e.match(N)||[],function(e,Q){t[Q]=!0}),t}function completed(){o.removeEventListener("DOMContentLoaded",completed),Q.removeEventListener("load",completed),L.ready()}function Data(){this.expando=L.expando+Data.uid++}function dataAttr(e,t,Q){var T;if(void 0===Q&&1===e.nodeType)if(T="data-"+t.replace(P,"-$&").toLowerCase(),"string"==typeof(Q=e.getAttribute(T))){try{Q="true"===Q||"false"!==Q&&("null"===Q?null:+Q+""===Q?+Q:D.test(Q)?L.parseJSON(Q):Q)}catch(e){}w.set(e,t,Q)}else Q=void 0;return Q}function adjustCSS(e,t,Q,T){var r,n=1,i=20,o=T?function(){return T.cur()}:function(){return L.css(e,t,"")},a=o(),s=Q&&Q[3]||(L.cssNumber[t]?"":"px"),l=(L.cssNumber[t]||"px"!==s&&+a)&&B.exec(L.css(e,t));if(l&&l[3]!==s){s=s||l[3],Q=Q||[],l=+a||1;do{n=n||".5",l/=n,L.style(e,t,l+s)}while(n!==(n=o()/a)&&1!==n&&--i)}return Q&&(l=+l||+a||0,r=Q[1]?l+(Q[1]+1)*Q[2]:+Q[2],T&&(T.unit=s,T.start=l,T.end=r)),r}function getAll(e,t){var Q=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&L.nodeName(e,t)?L.merge([e],Q):Q}function setGlobalEval(e,t){for(var Q=0,T=e.length;Q-1)r&&r.push(n);else if(s=L.contains(n.ownerDocument,n),i=getAll(c.appendChild(n),"script"),s&&setGlobalEval(i),Q)for(l=0;n=i[l++];)Y.test(n.type||"")&&Q.push(n);return c}function returnTrue(){return!0}function returnFalse(){return!1}function safeActiveElement(){try{return o.activeElement}catch(e){}}function on(e,t,Q,T,r,n){var i,o;if("object"==typeof t){"string"!=typeof Q&&(T=T||Q,Q=void 0);for(o in t)on(e,o,Q,T,t[o],n);return e}if(null==T&&null==r?(r=Q,T=Q=void 0):null==r&&("string"==typeof Q?(r=T,T=void 0):(r=T,T=Q,Q=void 0)),!1===r)r=returnFalse;else if(!r)return e;return 1===n&&(i=r,r=function(e){return L().off(e),i.apply(this,arguments)},r.guid=i.guid||(i.guid=L.guid++)),e.each(function(){L.event.add(this,t,r,T,Q)})}function manipulationTarget(e,t){return L.nodeName(e,"table")&&L.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function disableScript(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function restoreScript(e){var t=ee.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function cloneCopyEvent(e,t){var Q,T,r,n,i,o,a,s;if(1===t.nodeType){if(x.hasData(e)&&(n=x.access(e),i=x.set(t,n),s=n.events)){delete i.handle,i.events={};for(r in s)for(Q=0,T=s[r].length;Q1&&"string"==typeof p&&!_.checkClone&&J.test(p))return e.each(function(r){var n=e.eq(r);f&&(t[0]=p.call(this,r,n.html())),domManip(n,t,Q,T)});if(u&&(r=buildFragment(t,e[0].ownerDocument,!1,e,T),n=r.firstChild,1===r.childNodes.length&&(r=n),n||T)){for(i=L.map(getAll(r,"script"),disableScript),o=i.length;c")).appendTo(t.documentElement),t=Qe[0].contentDocument,t.write(),t.close(),Q=actualDisplay(e,t),Qe.detach()),Te[e]=Q),Q}function curCSS(e,t,Q){var T,r,n,i,o=e.style;return Q=Q||ie(e),i=Q?Q.getPropertyValue(t)||Q[t]:void 0,""!==i&&void 0!==i||L.contains(e.ownerDocument,e)||(i=L.style(e,t)),Q&&!_.pixelMarginRight()&&ne.test(i)&&re.test(t)&&(T=o.width,r=o.minWidth,n=o.maxWidth,o.minWidth=o.maxWidth=o.width=i,i=Q.width,o.width=T,o.minWidth=r,o.maxWidth=n),void 0!==i?i+"":i}function addGetHookIf(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function vendorPropName(e){if(e in de)return e;for(var t=e[0].toUpperCase()+e.slice(1),Q=ue.length;Q--;)if((e=ue[Q]+t)in de)return e}function setPositiveNumber(e,t,Q){var T=B.exec(t);return T?Math.max(0,T[2]-(Q||0))+(T[3]||"px"):t}function augmentWidthOrHeight(e,t,Q,T,r){for(var n=Q===(T?"border":"content")?4:"width"===t?1:0,i=0;n<4;n+=2)"margin"===Q&&(i+=L.css(e,Q+F[n],!0,r)),T?("content"===Q&&(i-=L.css(e,"padding"+F[n],!0,r)),"margin"!==Q&&(i-=L.css(e,"border"+F[n]+"Width",!0,r))):(i+=L.css(e,"padding"+F[n],!0,r),"padding"!==Q&&(i+=L.css(e,"border"+F[n]+"Width",!0,r)));return i}function getWidthOrHeight(e,t,Q){var T=!0,r="width"===t?e.offsetWidth:e.offsetHeight,n=ie(e),i="border-box"===L.css(e,"boxSizing",!1,n);if(r<=0||null==r){if(r=curCSS(e,t,n),(r<0||null==r)&&(r=e.style[t]),ne.test(r))return r;T=i&&(_.boxSizingReliable()||r===e.style[t]),r=parseFloat(r)||0}return r+augmentWidthOrHeight(e,t,Q||(i?"border":"content"),T,n)+"px"}function showHide(e,t){for(var Q,T,r,n=[],i=0,o=e.length;i=0&&Q=0},isPlainObject:function(e){var t;if("object"!==L.type(e)||e.nodeType||L.isWindow(e))return!1;if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype||{},"isPrototypeOf"))return!1;for(t in e);return void 0===t||p.call(e,t)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?u[d.call(e)]||"object":typeof e},globalEval:function(e){var t,Q=eval;(e=L.trim(e))&&(1===e.indexOf("use strict")?(t=o.createElement("script"),t.text=e,o.head.appendChild(t).parentNode.removeChild(t)):Q(e))},camelCase:function(e){return e.replace(m,"ms-").replace(h,g)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var Q,T=0;if(isArrayLike(e))for(Q=e.length;T
T.cacheLength&&delete cache[e.shift()],cache[t+" "]=Q}var e=[];return cache}function markFunction(e){return e[g]=!0,e}function assert(e){var t=d.createElement("div");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function addHandle(e,t){for(var Q=e.split("|"),r=Q.length;r--;)T.attrHandle[Q[r]]=t}function siblingCheck(e,t){var Q=t&&e,T=Q&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||M)-(~e.sourceIndex||M);if(T)return T;if(Q)for(;Q=Q.nextSibling;)if(Q===t)return-1;return e?1:-1}function createPositionalPseudo(e){return markFunction(function(t){return t=+t,markFunction(function(Q,T){for(var r,n=e([],Q.length,t),i=n.length;i--;)Q[r=n[i]]&&(Q[r]=!(T[r]=Q[r]))})})}function testContext(e){return e&&void 0!==e.getElementsByTagName&&e}function setFilters(){}function toSelector(e){for(var t=0,Q=e.length,T="";t1?function(t,Q,T){for(var r=e.length;r--;)if(!e[r](t,Q,T))return!1;return!0}:e[0]}function multipleContexts(e,t,Q){for(var T=0,r=t.length;T-1&&(n[s]=!(i[s]=c))}}else f=condense(f===i?f.splice(p,f.length):f),r?r(null,i,f,a):A.apply(i,f)})}function matcherFromTokens(e){for(var t,Q,r,n=e.length,i=T.relative[e[0].type],o=i||T.relative[" "],a=i?1:0,l=addCombinator(function(e){return e===t},o,!0),c=addCombinator(function(e){return x(t,e)>-1},o,!0),u=[function(e,Q,T){var r=!i&&(T||Q!==s)||((t=Q).nodeType?l(e,Q,T):c(e,Q,T));return t=null,r}];a1&&elementMatcher(u),a>1&&toSelector(e.slice(0,a-1).concat({value:" "===e[a-2].type?"*":""})).replace(U,"$1"),Q,a0,r=e.length>0,n=function(n,i,o,a,l){var c,p,L,f=0,m="0",h=n&&[],g=[],H=s,S=n||r&&T.find.TAG("*",l),b=E+=null==H?1:Math.random()||.1,y=S.length;for(l&&(s=i===d||i||l);m!==y&&null!=(c=S[m]);m++){if(r&&c){for(p=0,i||c.ownerDocument===d||(u(c),o=!_);L=e[p++];)if(L(c,i||d,o)){a.push(c);break}l&&(E=b)}Q&&((c=!L&&c)&&f--,n&&h.push(c))}if(f+=m,Q&&m!==f){for(p=0;L=t[p++];)L(h,g,i,o);if(n){if(f>0)for(;m--;)h[m]||g[m]||(g[m]=N.call(a));g=condense(g)}A.apply(a,g),l&&!n&&g.length>0&&f+t.length>1&&Sizzle.uniqueSort(a)}return l&&(E=b,s=H),h};return Q?markFunction(n):n}var t,Q,T,r,n,i,o,a,s,l,c,u,d,p,_,L,f,m,h,g="sizzle"+1*new Date,H=e.document,E=0,S=0,b=createCache(),y=createCache(),v=createCache(),O=function(e,t){return e===t&&(c=!0),0},M=1<<31,C={}.hasOwnProperty,V=[],N=V.pop,R=V.push,A=V.push,I=V.slice,x=function(e,t){for(var Q=0,T=e.length;Q+~]|"+D+")"+D+"*"),Y=new RegExp("="+D+"*([^\\]'\"]*?)"+D+"*\\]","g"),j=new RegExp(B),q=new RegExp("^"+P+"$"),W={ID:new RegExp("^#("+P+")"),CLASS:new RegExp("^\\.("+P+")"),TAG:new RegExp("^("+P+"|[*])"),ATTR:new RegExp("^"+k),PSEUDO:new RegExp("^"+B),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+D+"*(even|odd|(([+-]|)(\\d*)n|)"+D+"*(?:([+-]|)"+D+"*(\\d+)|))"+D+"*\\)|)","i"),bool:new RegExp("^(?:"+w+")$","i"),needsContext:new RegExp("^"+D+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+D+"*((?:-\\d)?\\d*)"+D+"*\\)|)(?=[^-]|$)","i")},z=/^(?:input|select|textarea|button)$/i,K=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,X=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,J=/[+~]/,ee=/'|\\/g,te=new RegExp("\\\\([\\da-f]{1,6}"+D+"?|("+D+")|.)","ig"),Qe=function(e,t,Q){var T="0x"+t-65536;return T!==T||Q?t:T<0?String.fromCharCode(T+65536):String.fromCharCode(T>>10|55296,1023&T|56320)},Te=function(){u()};try{A.apply(V=I.call(H.childNodes),H.childNodes),V[H.childNodes.length].nodeType}catch(e){A={apply:V.length?function(e,t){R.apply(e,I.call(t))}:function(e,t){for(var Q=e.length,T=0;e[Q++]=t[T++];);e.length=Q-1}}}Q=Sizzle.support={},n=Sizzle.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},u=Sizzle.setDocument=function(e){var t,r,i=e?e.ownerDocument||e:H;return i!==d&&9===i.nodeType&&i.documentElement?(d=i,p=d.documentElement,_=!n(d),(r=d.defaultView)&&r.top!==r&&(r.addEventListener?r.addEventListener("unload",Te,!1):r.attachEvent&&r.attachEvent("onunload",Te)),Q.attributes=assert(function(e){return e.className="i",!e.getAttribute("className")}),Q.getElementsByTagName=assert(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),Q.getElementsByClassName=$.test(d.getElementsByClassName),Q.getById=assert(function(e){return p.appendChild(e).id=g,!d.getElementsByName||!d.getElementsByName(g).length}),Q.getById?(T.find.ID=function(e,t){if(void 0!==t.getElementById&&_){var Q=t.getElementById(e);return Q?[Q]:[]}},T.filter.ID=function(e){var t=e.replace(te,Qe);return function(e){return e.getAttribute("id")===t}}):(delete T.find.ID,T.filter.ID=function(e){var t=e.replace(te,Qe);return function(e){var Q=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return Q&&Q.value===t}}),T.find.TAG=Q.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):Q.qsa?t.querySelectorAll(e):void 0}:function(e,t){var Q,T=[],r=0,n=t.getElementsByTagName(e);if("*"===e){for(;Q=n[r++];)1===Q.nodeType&&T.push(Q);return T}return n},T.find.CLASS=Q.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&_)return t.getElementsByClassName(e)},f=[],L=[],(Q.qsa=$.test(d.querySelectorAll))&&(assert(function(e){p.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&L.push("[*^$]="+D+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||L.push("\\["+D+"*(?:value|"+w+")"),e.querySelectorAll("[id~="+g+"-]").length||L.push("~="),e.querySelectorAll(":checked").length||L.push(":checked"),e.querySelectorAll("a#"+g+"+*").length||L.push(".#.+[+~]")}),assert(function(e){var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&L.push("name"+D+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||L.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),L.push(",.*:")})),(Q.matchesSelector=$.test(m=p.matches||p.webkitMatchesSelector||p.mozMatchesSelector||p.oMatchesSelector||p.msMatchesSelector))&&assert(function(e){Q.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),f.push("!=",B)}),L=L.length&&new RegExp(L.join("|")),f=f.length&&new RegExp(f.join("|")),t=$.test(p.compareDocumentPosition),h=t||$.test(p.contains)?function(e,t){var Q=9===e.nodeType?e.documentElement:e,T=t&&t.parentNode;return e===T||!(!T||1!==T.nodeType||!(Q.contains?Q.contains(T):e.compareDocumentPosition&&16&e.compareDocumentPosition(T)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},O=t?function(e,t){if(e===t)return c=!0,0;var T=!e.compareDocumentPosition-!t.compareDocumentPosition;return T||(T=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&T||!Q.sortDetached&&t.compareDocumentPosition(e)===T?e===d||e.ownerDocument===H&&h(H,e)?-1:t===d||t.ownerDocument===H&&h(H,t)?1:l?x(l,e)-x(l,t):0:4&T?-1:1)}:function(e,t){if(e===t)return c=!0,0;var Q,T=0,r=e.parentNode,n=t.parentNode,i=[e],o=[t];if(!r||!n)return e===d?-1:t===d?1:r?-1:n?1:l?x(l,e)-x(l,t):0;if(r===n)return siblingCheck(e,t);for(Q=e;Q=Q.parentNode;)i.unshift(Q);for(Q=t;Q=Q.parentNode;)o.unshift(Q);for(;i[T]===o[T];)T++;return T?siblingCheck(i[T],o[T]):i[T]===H?-1:o[T]===H?1:0},d):d},Sizzle.matches=function(e,t){return Sizzle(e,null,null,t)},Sizzle.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&u(e),t=t.replace(Y,"='$1']"),Q.matchesSelector&&_&&!v[t+" "]&&(!f||!f.test(t))&&(!L||!L.test(t)))try{var T=m.call(e,t);if(T||Q.disconnectedMatch||e.document&&11!==e.document.nodeType)return T}catch(e){}return Sizzle(t,d,null,[e]).length>0},Sizzle.contains=function(e,t){return(e.ownerDocument||e)!==d&&u(e),h(e,t)},Sizzle.attr=function(e,t){(e.ownerDocument||e)!==d&&u(e);var r=T.attrHandle[t.toLowerCase()],n=r&&C.call(T.attrHandle,t.toLowerCase())?r(e,t,!_):void 0;return void 0!==n?n:Q.attributes||!_?e.getAttribute(t):(n=e.getAttributeNode(t))&&n.specified?n.value:null},Sizzle.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},Sizzle.uniqueSort=function(e){var t,T=[],r=0,n=0;if(c=!Q.detectDuplicates,l=!Q.sortStable&&e.slice(0),e.sort(O),c){for(;t=e[n++];)t===e[n]&&(r=T.push(n));for(;r--;)e.splice(T[r],1)}return l=null,e},r=Sizzle.getText=function(e){var t,Q="",T=0,n=e.nodeType;if(n){if(1===n||9===n||11===n){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)Q+=r(e)}else if(3===n||4===n)return e.nodeValue}else for(;t=e[T++];)Q+=r(t);return Q},T=Sizzle.selectors={cacheLength:50,createPseudo:markFunction,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,Qe),e[3]=(e[3]||e[4]||e[5]||"").replace(te,Qe),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||Sizzle.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&Sizzle.error(e[0]),e},PSEUDO:function(e){var t,Q=!e[6]&&e[2];return W.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":Q&&j.test(Q)&&(t=i(Q,!0))&&(t=Q.indexOf(")",Q.length-t)-Q.length)&&(e[0]=e[0].slice(0,t),e[2]=Q.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,Qe).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=b[e+" "];return t||(t=new RegExp("(^|"+D+")"+e+"("+D+"|$)"))&&b(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,Q){return function(T){var r=Sizzle.attr(T,e);return null==r?"!="===t:!t||(r+="","="===t?r===Q:"!="===t?r!==Q:"^="===t?Q&&0===r.indexOf(Q):"*="===t?Q&&r.indexOf(Q)>-1:"$="===t?Q&&r.slice(-Q.length)===Q:"~="===t?(" "+r.replace(F," ")+" ").indexOf(Q)>-1:"|="===t&&(r===Q||r.slice(0,Q.length+1)===Q+"-"))}},CHILD:function(e,t,Q,T,r){var n="nth"!==e.slice(0,3),i="last"!==e.slice(-4),o="of-type"===t;return 1===T&&0===r?function(e){return!!e.parentNode}:function(t,Q,a){var s,l,c,u,d,p,_=n!==i?"nextSibling":"previousSibling",L=t.parentNode,f=o&&t.nodeName.toLowerCase(),m=!a&&!o,h=!1;if(L){if(n){for(;_;){for(u=t;u=u[_];)if(o?u.nodeName.toLowerCase()===f:1===u.nodeType)return!1;p=_="only"===e&&!p&&"nextSibling"}return!0}if(p=[i?L.firstChild:L.lastChild],i&&m){for(u=L,c=u[g]||(u[g]={}),l=c[u.uniqueID]||(c[u.uniqueID]={}),s=l[e]||[],d=s[0]===E&&s[1],h=d&&s[2],u=d&&L.childNodes[d];u=++d&&u&&u[_]||(h=d=0)||p.pop();)if(1===u.nodeType&&++h&&u===t){l[e]=[E,d,h];break}}else if(m&&(u=t,c=u[g]||(u[g]={}),l=c[u.uniqueID]||(c[u.uniqueID]={}),s=l[e]||[],d=s[0]===E&&s[1],h=d),!1===h)for(;(u=++d&&u&&u[_]||(h=d=0)||p.pop())&&((o?u.nodeName.toLowerCase()!==f:1!==u.nodeType)||!++h||(m&&(c=u[g]||(u[g]={}),l=c[u.uniqueID]||(c[u.uniqueID]={}),l[e]=[E,h]),u!==t)););return(h-=r)===T||h%T==0&&h/T>=0}}},PSEUDO:function(e,t){var Q,r=T.pseudos[e]||T.setFilters[e.toLowerCase()]||Sizzle.error("unsupported pseudo: "+e);return r[g]?r(t):r.length>1?(Q=[e,e,"",t],T.setFilters.hasOwnProperty(e.toLowerCase())?markFunction(function(e,Q){for(var T,n=r(e,t),i=n.length;i--;)T=x(e,n[i]),e[T]=!(Q[T]=n[i])}):function(e){return r(e,0,Q)}):r}},pseudos:{not:markFunction(function(e){var t=[],Q=[],T=o(e.replace(U,"$1"));return T[g]?markFunction(function(e,t,Q,r){for(var n,i=T(e,null,r,[]),o=e.length;o--;)(n=i[o])&&(e[o]=!(t[o]=n))}):function(e,r,n){return t[0]=e,T(t,null,n,Q),t[0]=null,!Q.pop()}}),has:markFunction(function(e){return function(t){return Sizzle(e,t).length>0}}),contains:markFunction(function(e){return e=e.replace(te,Qe),function(t){return(t.textContent||t.innerText||r(t)).indexOf(e)>-1}}),lang:markFunction(function(e){return q.test(e||"")||Sizzle.error("unsupported lang: "+e),e=e.replace(te,Qe).toLowerCase(),function(t){var Q;do{if(Q=_?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(Q=Q.toLowerCase())===e||0===Q.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var Q=e.location&&e.location.hash;return Q&&Q.slice(1)===t.id},root:function(e){return e===p},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return!1===e.disabled},disabled:function(e){return!0===e.disabled},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!T.pseudos.empty(e)},header:function(e){return K.test(e.nodeName)},input:function(e){return z.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:createPositionalPseudo(function(){return[0]}),last:createPositionalPseudo(function(e,t){return[t-1]}),eq:createPositionalPseudo(function(e,t,Q){return[Q<0?Q+t:Q]}),even:createPositionalPseudo(function(e,t){for(var Q=0;Q=0;)e.push(T);return e}),gt:createPositionalPseudo(function(e,t,Q){for(var T=Q<0?Q+t:Q;++T2&&"ID"===(l=s[0]).type&&Q.getById&&9===t.nodeType&&_&&T.relative[s[1].type]){if(!(t=(T.find.ID(l.matches[0].replace(te,Qe),t)||[])[0]))return r;d&&(t=t.parentNode),e=e.slice(s.shift().value.length)}for(a=W.needsContext.test(e)?0:s.length;a--&&(l=s[a],!T.relative[c=l.type]);)if((u=T.find[c])&&(n=u(l.matches[0].replace(te,Qe),J.test(s[0].type)&&testContext(t.parentNode)||t))){if(s.splice(a,1),!(e=n.length&&toSelector(s)))return A.apply(r,n),r;break}}return(d||o(e,p))(n,t,!_,r,!t||J.test(e)&&testContext(t.parentNode)||t),r},Q.sortStable=g.split("").sort(O).join("")===g,Q.detectDuplicates=!!c,u(),Q.sortDetached=assert(function(e){return 1&e.compareDocumentPosition(d.createElement("div"))}),assert(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||addHandle("type|href|height|width",function(e,t,Q){if(!Q)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),Q.attributes&&assert(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||addHandle("value",function(e,t,Q){if(!Q&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),assert(function(e){return null==e.getAttribute("disabled")})||addHandle(w,function(e,t,Q){var T;if(!Q)return!0===e[t]?t.toLowerCase():(T=e.getAttributeNode(t))&&T.specified?T.value:null}),Sizzle}(Q);L.find=H,L.expr=H.selectors,L.expr[":"]=L.expr.pseudos,L.uniqueSort=L.unique=H.uniqueSort,L.text=H.getText,L.isXMLDoc=H.isXML,L.contains=H.contains;var E=function(e,t,Q){for(var T=[],r=void 0!==Q;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(r&&L(e).is(Q))break;T.push(e)}return T},S=function(e,t){for(var Q=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&Q.push(e);return Q},b=L.expr.match.needsContext,y=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;L.filter=function(e,t,Q){var T=t[0];return Q&&(e=":not("+e+")"),1===t.length&&1===T.nodeType?L.find.matchesSelector(T,e)?[T]:[]:L.find.matches(e,L.grep(t,function(e){return 1===e.nodeType}))},L.fn.extend({find:function(e){var t,Q=this.length,T=[],r=this;if("string"!=typeof e)return this.pushStack(L(e).filter(function(){for(t=0;t1?L.unique(T):T),T.selector=this.selector?this.selector+" "+e:e,T},filter:function(e){return this.pushStack(winnow(this,e||[],!1))},not:function(e){return this.pushStack(winnow(this,e||[],!0))},is:function(e){return!!winnow(this,"string"==typeof e&&b.test(e)?L(e):e||[],!1).length}});var O,M=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;(L.fn.init=function(e,t,Q){var T,r;if(!e)return this;if(Q=Q||O,"string"==typeof e){if(!(T="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:M.exec(e))||!T[1]&&t)return!t||t.jquery?(t||Q).find(e):this.constructor(t).find(e);if(T[1]){if(t=t instanceof L?t[0]:t,L.merge(this,L.parseHTML(T[1],t&&t.nodeType?t.ownerDocument||t:o,!0)),y.test(T[1])&&L.isPlainObject(t))for(T in t)L.isFunction(this[T])?this[T](t[T]):this.attr(T,t[T]);return this}return r=o.getElementById(T[2]),r&&r.parentNode&&(this.length=1,this[0]=r),this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):L.isFunction(e)?void 0!==Q.ready?Q.ready(e):e(L):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),L.makeArray(e,this))}).prototype=L.fn,O=L(o);var C=/^(?:parents|prev(?:Until|All))/,V={children:!0,contents:!0,next:!0,prev:!0};L.fn.extend({has:function(e){var t=L(e,this),Q=t.length;return this.filter(function(){for(var e=0;e-1:1===Q.nodeType&&L.find.matchesSelector(Q,e))){n.push(Q);break}return this.pushStack(n.length>1?L.uniqueSort(n):n)},index:function(e){return e?"string"==typeof e?c.call(L(e),this[0]):c.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(L.uniqueSort(L.merge(this.get(),L(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),L.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return E(e,"parentNode")},parentsUntil:function(e,t,Q){return E(e,"parentNode",Q)},next:function(e){return sibling(e,"nextSibling")},prev:function(e){return sibling(e,"previousSibling")},nextAll:function(e){return E(e,"nextSibling")},prevAll:function(e){return E(e,"previousSibling")},nextUntil:function(e,t,Q){return E(e,"nextSibling",Q)},prevUntil:function(e,t,Q){return E(e,"previousSibling",Q)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return e.contentDocument||L.merge([],e.childNodes)}},function(e,t){L.fn[e]=function(Q,T){var r=L.map(this,t,Q);return"Until"!==e.slice(-5)&&(T=Q),T&&"string"==typeof T&&(r=L.filter(T,r)),this.length>1&&(V[e]||L.uniqueSort(r),C.test(e)&&r.reverse()),this.pushStack(r)}});var N=/\S+/g;L.Callbacks=function(e){e="string"==typeof e?createOptions(e):L.extend({},e);var t,Q,T,r,n=[],i=[],o=-1,a=function(){for(r=e.once,T=t=!0;i.length;o=-1)for(Q=i.shift();++o-1;)n.splice(Q,1),Q<=o&&o--}),this},has:function(e){return e?L.inArray(e,n)>-1:n.length>0},empty:function(){return n&&(n=[]),this},disable:function(){return r=i=[],n=Q="",this},disabled:function(){return!n},lock:function(){return r=i=[],Q||(n=Q=""),this},locked:function(){return!!r},fireWith:function(e,Q){return r||(Q=Q||[],Q=[e,Q.slice?Q.slice():Q],i.push(Q),t||a()),this},fire:function(){return s.fireWith(this,arguments),this},fired:function(){return!!T}};return s},L.extend({Deferred:function(e){var t=[["resolve","done",L.Callbacks("once memory"),"resolved"],["reject","fail",L.Callbacks("once memory"),"rejected"],["notify","progress",L.Callbacks("memory")]],Q="pending",T={state:function(){return Q},always:function(){return r.done(arguments).fail(arguments),this},then:function(){var e=arguments;return L.Deferred(function(Q){L.each(t,function(t,n){var i=L.isFunction(e[t])&&e[t];r[n[1]](function(){var e=i&&i.apply(this,arguments);e&&L.isFunction(e.promise)?e.promise().progress(Q.notify).done(Q.resolve).fail(Q.reject):Q[n[0]+"With"](this===T?Q.promise():this,i?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?L.extend(e,T):T}},r={};return T.pipe=T.then,L.each(t,function(e,n){var i=n[2],o=n[3];T[n[1]]=i.add,o&&i.add(function(){Q=o},t[1^e][2].disable,t[2][2].lock),r[n[0]]=function(){return r[n[0]+"With"](this===r?T:this,arguments),this},r[n[0]+"With"]=i.fireWith}),T.promise(r),e&&e.call(r,r),r},when:function(e){var t,Q,T,r=0,n=a.call(arguments),i=n.length,o=1!==i||e&&L.isFunction(e.promise)?i:0,s=1===o?e:L.Deferred(),l=function(e,Q,T){return function(r){Q[e]=this,T[e]=arguments.length>1?a.call(arguments):r,T===t?s.notifyWith(Q,T):--o||s.resolveWith(Q,T)}};if(i>1)for(t=new Array(i),Q=new Array(i),T=new Array(i);r0||(R.resolveWith(o,[L]),L.fn.triggerHandler&&(L(o).triggerHandler("ready"),L(o).off("ready"))))}}),L.ready.promise=function(e){return R||(R=L.Deferred(),"complete"===o.readyState||"loading"!==o.readyState&&!o.documentElement.doScroll?Q.setTimeout(L.ready):(o.addEventListener("DOMContentLoaded",completed),Q.addEventListener("load",completed))),R.promise(e)},L.ready.promise();var A=function(e,t,Q,T,r,n,i){var o=0,a=e.length,s=null==Q;if("object"===L.type(Q)){r=!0;for(o in Q)A(e,t,o,Q[o],!0,n,i)}else if(void 0!==T&&(r=!0,L.isFunction(T)||(i=!0),s&&(i?(t.call(e,T),t=null):(s=t,t=function(e,t,Q){return s.call(L(e),Q)})),t))for(;o-1&&void 0!==Q&&w.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){w.remove(this,e)})}}),L.extend({queue:function(e,t,Q){var T;if(e)return t=(t||"fx")+"queue",T=x.get(e,t),Q&&(!T||L.isArray(Q)?T=x.access(e,t,L.makeArray(Q)):T.push(Q)),T||[]},dequeue:function(e,t){t=t||"fx";var Q=L.queue(e,t),T=Q.length,r=Q.shift(),n=L._queueHooks(e,t),i=function(){L.dequeue(e,t)};"inprogress"===r&&(r=Q.shift(),T--),r&&("fx"===t&&Q.unshift("inprogress"),delete n.stop,r.call(e,i,n)),!T&&n&&n.empty.fire()},_queueHooks:function(e,t){var Q=t+"queueHooks";return x.get(e,Q)||x.access(e,Q,{empty:L.Callbacks("once memory").add(function(){x.remove(e,[t+"queue",Q])})})}}),L.fn.extend({queue:function(e,t){var Q=2;return"string"!=typeof e&&(t=e,e="fx",Q--),arguments.length",""],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};j.optgroup=j.option,j.tbody=j.tfoot=j.colgroup=j.caption=j.thead,j.th=j.td;var q=/<|?\w+;/;!function(){var e=o.createDocumentFragment(),t=e.appendChild(o.createElement("div")),Q=o.createElement("input");Q.setAttribute("type","radio"),Q.setAttribute("checked","checked"),Q.setAttribute("name","t"),t.appendChild(Q),_.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="",_.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var W=/^key/,z=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,K=/^([^.]*)(?:\.(.+)|)/;L.event={global:{},add:function(e,t,Q,T,r){var n,i,o,a,s,l,c,u,d,p,_,f=x.get(e);if(f)for(Q.handler&&(n=Q,Q=n.handler,r=n.selector),Q.guid||(Q.guid=L.guid++),(a=f.events)||(a=f.events={}),(i=f.handle)||(i=f.handle=function(t){return void 0!==L&&L.event.triggered!==t.type?L.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(N)||[""],s=t.length;s--;)o=K.exec(t[s])||[],d=_=o[1],p=(o[2]||"").split(".").sort(),d&&(c=L.event.special[d]||{},d=(r?c.delegateType:c.bindType)||d,c=L.event.special[d]||{},l=L.extend({type:d,origType:_,data:T,handler:Q,guid:Q.guid,selector:r,needsContext:r&&L.expr.match.needsContext.test(r),namespace:p.join(".")},n),(u=a[d])||(u=a[d]=[],u.delegateCount=0,c.setup&&!1!==c.setup.call(e,T,p,i)||e.addEventListener&&e.addEventListener(d,i)),c.add&&(c.add.call(e,l),l.handler.guid||(l.handler.guid=Q.guid)),r?u.splice(u.delegateCount++,0,l):u.push(l),L.event.global[d]=!0)},remove:function(e,t,Q,T,r){var n,i,o,a,s,l,c,u,d,p,_,f=x.hasData(e)&&x.get(e);if(f&&(a=f.events)){for(t=(t||"").match(N)||[""],s=t.length;s--;)if(o=K.exec(t[s])||[],d=_=o[1],p=(o[2]||"").split(".").sort(),d){for(c=L.event.special[d]||{},d=(T?c.delegateType:c.bindType)||d,u=a[d]||[],o=o[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=n=u.length;n--;)l=u[n],!r&&_!==l.origType||Q&&Q.guid!==l.guid||o&&!o.test(l.namespace)||T&&T!==l.selector&&("**"!==T||!l.selector)||(u.splice(n,1),l.selector&&u.delegateCount--,c.remove&&c.remove.call(e,l));i&&!u.length&&(c.teardown&&!1!==c.teardown.call(e,p,f.handle)||L.removeEvent(e,d,f.handle),delete a[d])}else for(d in a)L.event.remove(e,d+t[s],Q,T,!0);L.isEmptyObject(a)&&x.remove(e,"handle events")}},dispatch:function(e){e=L.event.fix(e);var t,Q,T,r,n,i=[],o=a.call(arguments),s=(x.get(this,"events")||{})[e.type]||[],l=L.event.special[e.type]||{};if(o[0]=e,e.delegateTarget=this,!l.preDispatch||!1!==l.preDispatch.call(this,e)){for(i=L.event.handlers.call(this,e,s),t=0;(r=i[t++])&&!e.isPropagationStopped();)for(e.currentTarget=r.elem,Q=0;(n=r.handlers[Q++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(n.namespace)||(e.handleObj=n,e.data=n.data,void 0!==(T=((L.event.special[n.origType]||{}).handle||n.handler).apply(r.elem,o))&&!1===(e.result=T)&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var Q,T,r,n,i=[],o=t.delegateCount,a=e.target;if(o&&a.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;a!==this;a=a.parentNode||this)if(1===a.nodeType&&(!0!==a.disabled||"click"!==e.type)){for(T=[],Q=0;Q-1:L.find(r,this,null,[a]).length),T[r]&&T.push(n);T.length&&i.push({elem:a,handlers:T})}return o]*)\/>/gi,X=/