algoliasearch - Version 1.5.0

Version Notes

==== BREAKING CHANGE ====

- The queue is now runned outside of the Magento default cron system. To run the jobs you will need to run
the `algolia_queue_runner` indexer via the following command `php -f shell/indexer.php --reindex algolia_queue_runner`
You can add it to your crontab just add this line:
`*/5 * * * * php -f /absolute/path/to/magento/shell/indexer.php -- -reindex algolia_queue_runner`

- As this is a major update you will loose your settings and will need to reconfigure the extension

=========================

- NEW: replace custom logic by autocomplete.js and instantsearch.js
- NEW: add total_ordered because ordered_qty does not always make sense
- NEW: add drag and drop for grid in the config page
- UPDATED: More intelligent queue that is able to batch jobs
- UPDATED: Option to have most popular suggestions when no result page
- FIX: issue with configurable and gouped sub_products query
- FIX: replace image helper override by subclass

Download this release

Release Info

Developer Algolia Team
Extension algoliasearch
Version 1.5.0
Comparing to
See all releases


Code changes from version 1.4.8 to 1.5.0

Files changed (35) hide show
  1. app/code/community/Algolia/Algoliasearch/Block/System/Config/Form/Field/Facets.php +1 -6
  2. app/code/community/Algolia/Algoliasearch/Block/System/Config/Form/Field/{Additionalsections.php → Sections.php} +25 -10
  3. app/code/community/Algolia/Algoliasearch/Helper/Config.php +59 -39
  4. app/code/community/Algolia/Algoliasearch/Helper/Data.php +20 -23
  5. app/code/community/Algolia/Algoliasearch/Helper/Entity/Additionalsectionshelper.php +1 -1
  6. app/code/community/Algolia/Algoliasearch/Helper/Entity/Categoryhelper.php +1 -1
  7. app/code/community/Algolia/Algoliasearch/Helper/Entity/Pagehelper.php +1 -0
  8. app/code/community/Algolia/Algoliasearch/Helper/Entity/Producthelper.php +113 -31
  9. app/code/community/Algolia/Algoliasearch/Helper/Entity/Suggestionhelper.php +28 -0
  10. app/code/community/Algolia/Algoliasearch/Helper/Image.php +2 -5
  11. app/code/community/Algolia/Algoliasearch/Model/Indexer/Algolia.php +5 -2
  12. app/code/community/Algolia/Algoliasearch/Model/Indexer/Algoliacategories.php +1 -1
  13. app/code/community/Algolia/Algoliasearch/Model/Indexer/Algoliaqueuerunner.php +73 -0
  14. app/code/community/Algolia/Algoliasearch/Model/Observer.php +23 -3
  15. app/code/community/Algolia/Algoliasearch/Model/Queue.php +151 -49
  16. app/code/community/Algolia/Algoliasearch/Model/Resource/Engine.php +56 -40
  17. app/code/community/Algolia/Algoliasearch/Model/Resource/Fulltext.php +1 -1
  18. app/code/community/Algolia/Algoliasearch/Model/Resource/Fulltext/Collection.php +4 -2
  19. app/code/community/Algolia/Algoliasearch/Model/System/Removewords.php +3 -3
  20. app/code/community/Algolia/Algoliasearch/etc/config.xml +36 -37
  21. app/code/community/Algolia/Algoliasearch/etc/system.xml +210 -242
  22. app/code/community/Algolia/Algoliasearch/sql/algoliasearch_setup/{mysql4-upgrade-0.1.0-1.4.7.php → mysql4-upgrade-0.1.0-1.4.8.php} +0 -0
  23. app/code/community/Algolia/Algoliasearch/sql/algoliasearch_setup/mysql4-upgrade-1.4.8-1.5.0.php +14 -0
  24. app/design/adminhtml/default/default/layout/algoliasearch.xml +8 -0
  25. app/design/adminhtml/default/default/template/algoliasearch/adminjs.phtml +9 -0
  26. app/design/frontend/base/default/layout/algoliasearch.xml +26 -3
  27. app/design/frontend/base/default/template/algoliasearch/beforecontent.phtml +1 -0
  28. app/design/frontend/base/default/template/algoliasearch/beforetopsearch.phtml +555 -0
  29. app/design/frontend/base/default/template/algoliasearch/frontjs.phtml +2 -0
  30. app/design/frontend/base/default/template/algoliasearch/topsearch.phtml +481 -1459
  31. app/etc/modules/Algolia_Algoliasearch.xml +1 -1
  32. js/algoliasearch/Function.prototype.bind.js +28 -0
  33. js/algoliasearch/admin_scripts.js +19 -0
  34. js/algoliasearch/algoliaAdminBundle.min.js +34 -0
  35. js/algoliasearch/algoliaBundle.min.js +3 -0
app/code/community/Algolia/Algoliasearch/Block/System/Config/Form/Field/Facets.php CHANGED
@@ -32,7 +32,7 @@ class Algolia_Algoliasearch_Block_System_Config_Form_Field_Facets extends Mage_A
32
  'conjunctive' => 'Conjunctive',
33
  'disjunctive' => 'Disjunctive',
34
  'slider' => 'Slider',
35
- 'other' => 'Other ->'
36
  );
37
 
38
  $selectField->setExtraParams('style="width:100px;"');
@@ -60,11 +60,6 @@ class Algolia_Algoliasearch_Block_System_Config_Form_Field_Facets extends Mage_A
60
  'renderer'=> $this->getRenderer('type'),
61
  ));
62
 
63
- $this->addColumn('other_type', array(
64
- 'label' => Mage::helper('adminhtml')->__('Other facet type'),
65
- 'style' => 'width: 100px;'
66
- ));
67
-
68
  $this->addColumn('label', array(
69
  'label' => Mage::helper('adminhtml')->__('Label'),
70
  'style' => 'width: 100px;'
32
  'conjunctive' => 'Conjunctive',
33
  'disjunctive' => 'Disjunctive',
34
  'slider' => 'Slider',
35
+ 'priceRanges' => 'Price Ranges'
36
  );
37
 
38
  $selectField->setExtraParams('style="width:100px;"');
60
  'renderer'=> $this->getRenderer('type'),
61
  ));
62
 
 
 
 
 
 
63
  $this->addColumn('label', array(
64
  'label' => Mage::helper('adminhtml')->__('Label'),
65
  'style' => 'width: 100px;'
app/code/community/Algolia/Algoliasearch/Block/System/Config/Form/Field/{Additionalsections.php → Sections.php} RENAMED
@@ -3,7 +3,7 @@
3
  /**
4
  * Algolia custom sort order field
5
  */
6
- class Algolia_Algoliasearch_Block_System_Config_Form_Field_Additionalsections extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
7
  {
8
  protected $selectFields = array();
9
 
@@ -17,18 +17,27 @@ class Algolia_Algoliasearch_Block_System_Config_Form_Field_Additionalsections ex
17
  $config = Mage::helper('algoliasearch/config');
18
 
19
  switch($columnId) {
20
- case 'attribute': // Populate the attribute column with a list of searchable attributes
 
 
 
 
21
 
22
  $attributes = $config->getFacets();
23
 
24
  foreach ($attributes as $attribute) {
25
- if ($attribute['attribute'] == 'categories')
26
- continue;
27
  if ($attribute['attribute'] == 'price')
28
  continue;
29
- $aOptions[$attribute['attribute']] = $attribute['label'] ? $attribute['label'] : $attribute['attribute'];
 
 
 
 
30
  }
31
 
 
 
 
32
  $selectField->setExtraParams('style="width:130px;"');
33
 
34
  break;
@@ -44,9 +53,9 @@ class Algolia_Algoliasearch_Block_System_Config_Form_Field_Additionalsections ex
44
 
45
  public function __construct()
46
  {
47
- $this->addColumn('attribute', array(
48
- 'label' => Mage::helper('adminhtml')->__('Attribute'),
49
- 'renderer'=> $this->getRenderer('attribute'),
50
  ));
51
 
52
  $this->addColumn('label', array(
@@ -54,6 +63,12 @@ class Algolia_Algoliasearch_Block_System_Config_Form_Field_Additionalsections ex
54
  'style' => 'width: 100px;'
55
  ));
56
 
 
 
 
 
 
 
57
  $this->_addAfter = false;
58
  $this->_addButtonLabel = Mage::helper('adminhtml')->__('Add Attribute');
59
  parent::__construct();
@@ -62,8 +77,8 @@ class Algolia_Algoliasearch_Block_System_Config_Form_Field_Additionalsections ex
62
  protected function _prepareArrayRow(Varien_Object $row)
63
  {
64
  $row->setData(
65
- 'option_extra_attr_' . $this->getRenderer('attribute')->calcOptionHash(
66
- $row->getAttribute()),
67
  'selected="selected"'
68
  );
69
  }
3
  /**
4
  * Algolia custom sort order field
5
  */
6
+ class Algolia_Algoliasearch_Block_System_Config_Form_Field_Sections extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
7
  {
8
  protected $selectFields = array();
9
 
17
  $config = Mage::helper('algoliasearch/config');
18
 
19
  switch($columnId) {
20
+ case 'name': // Populate the attribute column with a list of searchable attributes
21
+
22
+ $sections = array(
23
+ array('name' => 'pages', 'label' => 'Pages'),
24
+ );
25
 
26
  $attributes = $config->getFacets();
27
 
28
  foreach ($attributes as $attribute) {
 
 
29
  if ($attribute['attribute'] == 'price')
30
  continue;
31
+
32
+ if ($attribute['attribute'] == 'category' || $attribute['attribute'] == 'categories')
33
+ continue;
34
+
35
+ $sections[] = array('name' => $attribute['attribute'], 'label' => $attribute['label'] ? $attribute['label'] : $attribute['attribute']);
36
  }
37
 
38
+ foreach ($sections as $section)
39
+ $aOptions[$section['name']] = $section['label'];
40
+
41
  $selectField->setExtraParams('style="width:130px;"');
42
 
43
  break;
53
 
54
  public function __construct()
55
  {
56
+ $this->addColumn('name', array(
57
+ 'label' => Mage::helper('adminhtml')->__('Section'),
58
+ 'renderer' => $this->getRenderer('name'),
59
  ));
60
 
61
  $this->addColumn('label', array(
63
  'style' => 'width: 100px;'
64
  ));
65
 
66
+ $this->addColumn('hitsPerPage', array(
67
+ 'label' => Mage::helper('adminhtml')->__('Hits per page'),
68
+ 'style' => 'width: 100px;',
69
+ 'class' => 'required-entry input-text validate-number'
70
+ ));
71
+
72
  $this->_addAfter = false;
73
  $this->_addButtonLabel = Mage::helper('adminhtml')->__('Add Attribute');
74
  parent::__construct();
77
  protected function _prepareArrayRow(Varien_Object $row)
78
  {
79
  $row->setData(
80
+ 'option_extra_attr_' . $this->getRenderer('name')->calcOptionHash(
81
+ $row->getName()),
82
  'selected="selected"'
83
  );
84
  }
app/code/community/Algolia/Algoliasearch/Helper/Config.php CHANGED
@@ -21,50 +21,78 @@ class Algolia_Algoliasearch_Helper_Config extends Mage_Core_Helper_Abstract
21
  const SORTING_INDICES = 'algoliasearch/instant/sorts';
22
  const XML_ADD_TO_CART_ENABLE = 'algoliasearch/instant/add_to_cart_enable';
23
 
24
- const AUTOCOMPLETE_ADD_SECTIONS = 'algoliasearch/autocomplete/additional_sections';
 
 
 
 
 
 
25
 
26
- const NUMBER_OF_PRODUCT_SUGGESTIONS = 'algoliasearch/products/number_product_suggestions';
27
  const NUMBER_OF_PRODUCT_RESULTS = 'algoliasearch/products/number_product_results';
28
  const PRODUCT_ATTRIBUTES = 'algoliasearch/products/product_additional_attributes';
29
  const PRODUCT_CUSTOM_RANKING = 'algoliasearch/products/custom_ranking_product_attributes';
30
  const RESULTS_LIMIT = 'algoliasearch/products/results_limit';
 
31
 
32
- const NUMBER_OF_CATEGORY_SUGGESTIONS = 'algoliasearch/categories/number_category_suggestions';
33
  const CATEGORY_ATTRIBUTES = 'algoliasearch/categories/category_additional_attributes2';
34
  const INDEX_PRODUCT_COUNT = 'algoliasearch/categories/index_product_count';
35
  const CATEGORY_CUSTOM_RANKING = 'algoliasearch/categories/custom_ranking_category_attributes';
36
 
37
- const NUMBER_OF_PAGE_SUGGESTIONS = 'algoliasearch/pages/number_page_suggestions';
38
- const EXCLUDED_PAGES = 'algoliasearch/pages/excluded_pages';
39
 
40
- const NUMBER_QUERY_SUGGESTIONS = 'algoliasearch/suggestions/number_query_suggestions';
41
- const MIN_POPULARITY = 'algoliasearch/suggestions/min_popularity';
42
- const MIN_NUMBER_OF_RESULTS = 'algoliasearch/suggestions/min_number_of_results';
43
-
44
- const REMOVE_IF_NO_RESULT = 'algoliasearch/relevance/remove_words_if_no_result';
45
-
46
- const MAX_RETRIES = 'algoliasearch/queue/retries';
47
  const IS_ACTIVE = 'algoliasearch/queue/active';
48
  const NUMBER_OF_ELEMENT_BY_PAGE = 'algoliasearch/queue/number_of_element_by_page';
49
  const NUMBER_OF_JOB_TO_RUN = 'algoliasearch/queue/number_of_job_to_run';
50
- const NO_PROCESS = 'algoliasearch/queue/noprocess';
51
 
52
  const XML_PATH_IMAGE_WIDTH = 'algoliasearch/image/width';
53
  const XML_PATH_IMAGE_HEIGHT = 'algoliasearch/image/height';
54
  const XML_PATH_IMAGE_TYPE = 'algoliasearch/image/type';
55
 
 
56
  const PARTIAL_UPDATES = 'algoliasearch/advanced/partial_update';
57
  const CUSTOMER_GROUPS_ENABLE = 'algoliasearch/advanced/customer_groups_enable';
58
  const MAKE_SEO_REQUEST = 'algoliasearch/advanced/make_seo_request';
59
  const REMOVE_BRANDING = 'algoliasearch/advanced/remove_branding';
 
60
 
61
  const SHOW_OUT_OF_STOCK = 'cataloginventory/options/show_out_of_stock';
62
  const LOGGING_ENABLED = 'dev/log/active';
63
 
64
  protected $_productTypeMap = array();
65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  public function isEnabledFrontEnd($storeId = null)
67
  {
 
68
  return Mage::getStoreConfigFlag(self::ENABLE_BACKEND, $storeId) && Mage::getStoreConfigFlag(self::ENABLE_FRONTEND, $storeId);
69
  }
70
 
@@ -118,9 +146,9 @@ class Algolia_Algoliasearch_Helper_Config extends Mage_Core_Helper_Abstract
118
  return Mage::getStoreConfigFlag(self::PARTIAL_UPDATES, $storeId);
119
  }
120
 
121
- public function getAutocompleteAdditionnalSections($storeId = null)
122
  {
123
- $attrs = unserialize(Mage::getStoreConfig(self::AUTOCOMPLETE_ADD_SECTIONS, $storeId));
124
 
125
  if (is_array($attrs))
126
  return array_values($attrs);
@@ -158,11 +186,6 @@ class Algolia_Algoliasearch_Helper_Config extends Mage_Core_Helper_Abstract
158
  return Mage::getStoreConfig(self::MAX_VALUES_PER_FACET, $storeId);
159
  }
160
 
161
- public function getQueueMaxRetries($storeId = null)
162
- {
163
- return Mage::getStoreConfig(self::MAX_RETRIES, $storeId);
164
- }
165
-
166
  public function getNumberOfElementByPage($storeId = null)
167
  {
168
  return Mage::getStoreConfig(self::NUMBER_OF_ELEMENT_BY_PAGE, $storeId);
@@ -183,26 +206,11 @@ class Algolia_Algoliasearch_Helper_Config extends Mage_Core_Helper_Abstract
183
  return Mage::getStoreConfig(self::REMOVE_IF_NO_RESULT, $storeId);
184
  }
185
 
186
- public function getNumberOfProductSuggestions($storeId = NULL)
187
- {
188
- return (int) Mage::getStoreConfig(self::NUMBER_OF_PRODUCT_SUGGESTIONS, $storeId);
189
- }
190
-
191
  public function getNumberOfProductResults($storeId = NULL)
192
  {
193
  return (int) Mage::getStoreConfig(self::NUMBER_OF_PRODUCT_RESULTS, $storeId);
194
  }
195
 
196
- public function getNumberOfCategorySuggestions($storeId = NULL)
197
- {
198
- return (int) Mage::getStoreConfig(self::NUMBER_OF_CATEGORY_SUGGESTIONS, $storeId);
199
- }
200
-
201
- public function getNumberOfPageSuggestions($storeId = NULL)
202
- {
203
- return (int) Mage::getStoreConfig(self::NUMBER_OF_PAGE_SUGGESTIONS, $storeId);
204
- }
205
-
206
  public function getResultsLimit($storeId = NULL)
207
  {
208
  return Mage::getStoreConfig(self::RESULTS_LIMIT, $storeId);
@@ -259,17 +267,17 @@ class Algolia_Algoliasearch_Helper_Config extends Mage_Core_Helper_Abstract
259
  {
260
  $suffix_index_name = 'group_' . $group_id;
261
 
262
- $attr['index_name'] = $product_helper->getIndexName($storeId) . '_' . $attr['attribute'] . '_' .$suffix_index_name.'_'.$attr['sort'];
263
  }
264
  else
265
- $attr['index_name'] = $product_helper->getIndexName($storeId). '_' .$attr['attribute'] . '_'.$attr['sort'];
266
  }
267
  else
268
  {
269
  if (strpos($attr['attribute'], 'price') !== false)
270
- $attr['index_name'] = $product_helper->getIndexName($storeId). '_' .$attr['attribute'].'_' . 'default' . '_'.$attr['sort'];
271
  else
272
- $attr['index_name'] = $product_helper->getIndexName($storeId). '_' .$attr['attribute'] . '_'.$attr['sort'];
273
  }
274
  }
275
 
@@ -360,6 +368,18 @@ class Algolia_Algoliasearch_Helper_Config extends Mage_Core_Helper_Abstract
360
  return $currencySymbol;
361
  }
362
 
 
 
 
 
 
 
 
 
 
 
 
 
363
  /**
364
  * Loads product type mapping from configuration (default) > algoliasearch > product_map > (product type)
365
  *
21
  const SORTING_INDICES = 'algoliasearch/instant/sorts';
22
  const XML_ADD_TO_CART_ENABLE = 'algoliasearch/instant/add_to_cart_enable';
23
 
24
+ const NB_OF_PRODUCTS_SUGGESTIONS = 'algoliasearch/autocomplete/nb_of_products_suggestions';
25
+ const NB_OF_CATEGORIES_SUGGESTIONS = 'algoliasearch/autocomplete/nb_of_categories_suggestions';
26
+ const NB_OF_QUERIES_SUGGESTIONS = 'algoliasearch/autocomplete/nb_of_queries_suggestions';
27
+ const AUTOCOMPLETE_SECTIONS = 'algoliasearch/autocomplete/sections';
28
+ const EXCLUDED_PAGES = 'algoliasearch/autocomplete/excluded_pages';
29
+ const MIN_POPULARITY = 'algoliasearch/autocomplete/min_popularity';
30
+ const MIN_NUMBER_OF_RESULTS = 'algoliasearch/autocomplete/min_number_of_results';
31
 
 
32
  const NUMBER_OF_PRODUCT_RESULTS = 'algoliasearch/products/number_product_results';
33
  const PRODUCT_ATTRIBUTES = 'algoliasearch/products/product_additional_attributes';
34
  const PRODUCT_CUSTOM_RANKING = 'algoliasearch/products/custom_ranking_product_attributes';
35
  const RESULTS_LIMIT = 'algoliasearch/products/results_limit';
36
+ const SHOW_SUGGESTIONS_NO_RESULTS = 'algoliasearch/products/show_suggestions_on_no_result_page';
37
 
 
38
  const CATEGORY_ATTRIBUTES = 'algoliasearch/categories/category_additional_attributes2';
39
  const INDEX_PRODUCT_COUNT = 'algoliasearch/categories/index_product_count';
40
  const CATEGORY_CUSTOM_RANKING = 'algoliasearch/categories/custom_ranking_category_attributes';
41
 
 
 
42
 
 
 
 
 
 
 
 
43
  const IS_ACTIVE = 'algoliasearch/queue/active';
44
  const NUMBER_OF_ELEMENT_BY_PAGE = 'algoliasearch/queue/number_of_element_by_page';
45
  const NUMBER_OF_JOB_TO_RUN = 'algoliasearch/queue/number_of_job_to_run';
 
46
 
47
  const XML_PATH_IMAGE_WIDTH = 'algoliasearch/image/width';
48
  const XML_PATH_IMAGE_HEIGHT = 'algoliasearch/image/height';
49
  const XML_PATH_IMAGE_TYPE = 'algoliasearch/image/type';
50
 
51
+ const REMOVE_IF_NO_RESULT = 'algoliasearch/advanced/remove_words_if_no_result';
52
  const PARTIAL_UPDATES = 'algoliasearch/advanced/partial_update';
53
  const CUSTOMER_GROUPS_ENABLE = 'algoliasearch/advanced/customer_groups_enable';
54
  const MAKE_SEO_REQUEST = 'algoliasearch/advanced/make_seo_request';
55
  const REMOVE_BRANDING = 'algoliasearch/advanced/remove_branding';
56
+ const AUTOCOMPLETE_SELECTOR = 'algoliasearch/advanced/autocomplete_selector';
57
 
58
  const SHOW_OUT_OF_STOCK = 'cataloginventory/options/show_out_of_stock';
59
  const LOGGING_ENABLED = 'dev/log/active';
60
 
61
  protected $_productTypeMap = array();
62
 
63
+ public function isDefaultSelector($storeId = null)
64
+ {
65
+ return '.algolia-search-input' === $this->getAutocompleteSelector($storeId);
66
+ }
67
+
68
+ public function getAutocompleteSelector($storeId = null)
69
+ {
70
+ return Mage::getStoreConfig(self::AUTOCOMPLETE_SELECTOR, $storeId);
71
+ }
72
+
73
+ public function getNumberOfQueriesSuggestions($storeId = null)
74
+ {
75
+ return Mage::getStoreConfig(self::NB_OF_QUERIES_SUGGESTIONS, $storeId);
76
+ }
77
+
78
+ public function getNumberOfProductsSuggestions($storeId = null)
79
+ {
80
+ return Mage::getStoreConfig(self::NB_OF_PRODUCTS_SUGGESTIONS, $storeId);
81
+ }
82
+
83
+ public function getNumberOfCategoriesSuggestions($storeId = null)
84
+ {
85
+ return Mage::getStoreConfig(self::NB_OF_CATEGORIES_SUGGESTIONS, $storeId);
86
+ }
87
+
88
+ public function showSuggestionsOnNoResultsPage($storeId = null)
89
+ {
90
+ return Mage::getStoreConfigFlag(self::SHOW_SUGGESTIONS_NO_RESULTS, $storeId);
91
+ }
92
+
93
  public function isEnabledFrontEnd($storeId = null)
94
  {
95
+ // Frontend = Backend + Frontent
96
  return Mage::getStoreConfigFlag(self::ENABLE_BACKEND, $storeId) && Mage::getStoreConfigFlag(self::ENABLE_FRONTEND, $storeId);
97
  }
98
 
146
  return Mage::getStoreConfigFlag(self::PARTIAL_UPDATES, $storeId);
147
  }
148
 
149
+ public function getAutocompleteSections($storeId = null)
150
  {
151
+ $attrs = unserialize(Mage::getStoreConfig(self::AUTOCOMPLETE_SECTIONS, $storeId));
152
 
153
  if (is_array($attrs))
154
  return array_values($attrs);
186
  return Mage::getStoreConfig(self::MAX_VALUES_PER_FACET, $storeId);
187
  }
188
 
 
 
 
 
 
189
  public function getNumberOfElementByPage($storeId = null)
190
  {
191
  return Mage::getStoreConfig(self::NUMBER_OF_ELEMENT_BY_PAGE, $storeId);
206
  return Mage::getStoreConfig(self::REMOVE_IF_NO_RESULT, $storeId);
207
  }
208
 
 
 
 
 
 
209
  public function getNumberOfProductResults($storeId = NULL)
210
  {
211
  return (int) Mage::getStoreConfig(self::NUMBER_OF_PRODUCT_RESULTS, $storeId);
212
  }
213
 
 
 
 
 
 
 
 
 
 
 
214
  public function getResultsLimit($storeId = NULL)
215
  {
216
  return Mage::getStoreConfig(self::RESULTS_LIMIT, $storeId);
267
  {
268
  $suffix_index_name = 'group_' . $group_id;
269
 
270
+ $attr['name'] = $product_helper->getIndexName($storeId) . '_' . $attr['attribute'] . '_' .$suffix_index_name.'_'.$attr['sort'];
271
  }
272
  else
273
+ $attr['name'] = $product_helper->getIndexName($storeId). '_' .$attr['attribute'] . '_'.$attr['sort'];
274
  }
275
  else
276
  {
277
  if (strpos($attr['attribute'], 'price') !== false)
278
+ $attr['name'] = $product_helper->getIndexName($storeId). '_' .$attr['attribute'].'_' . 'default' . '_'.$attr['sort'];
279
  else
280
+ $attr['name'] = $product_helper->getIndexName($storeId). '_' .$attr['attribute'] . '_'.$attr['sort'];
281
  }
282
  }
283
 
368
  return $currencySymbol;
369
  }
370
 
371
+ public function getPopularQueries($storeId = null)
372
+ {
373
+ if ($storeId === null) {
374
+ $storeId = Mage::app()->getStore()->getId();
375
+ }
376
+
377
+ $suggestion_helper = Mage::helper('algoliasearch/entity_suggestionhelper');
378
+ $popularQueries = $suggestion_helper->getPopularQueries($storeId);
379
+
380
+ return $popularQueries;
381
+ }
382
+
383
  /**
384
  * Loads product type mapping from configuration (default) > algoliasearch > product_map > (product type)
385
  *
app/code/community/Algolia/Algoliasearch/Helper/Data.php CHANGED
@@ -25,7 +25,7 @@ class Algolia_Algoliasearch_Helper_Data extends Mage_Core_Helper_Abstract
25
 
26
  public function __construct()
27
  {
28
- \AlgoliaSearch\Version::$custom_value = " Magento (1.4.8)";
29
 
30
  $this->algolia_helper = Mage::helper('algoliasearch/algoliahelper');
31
 
@@ -85,8 +85,13 @@ class Algolia_Algoliasearch_Helper_Data extends Mage_Core_Helper_Abstract
85
  $this->algolia_helper->setSettings($this->page_helper->getIndexName($storeId), $this->page_helper->getIndexSettings($storeId));
86
  $this->algolia_helper->setSettings($this->suggestion_helper->getIndexName($storeId), $this->suggestion_helper->getIndexSettings($storeId));
87
 
88
- foreach ($this->config->getAutocompleteAdditionnalSections() as $section)
89
- $this->algolia_helper->setSettings($this->additionalsections_helper->getIndexName($storeId).'_'.$section['attribute'], $this->additionalsections_helper->getIndexSettings($storeId));
 
 
 
 
 
90
 
91
  $this->product_helper->setSettings($storeId);
92
  }
@@ -107,7 +112,8 @@ class Algolia_Algoliasearch_Helper_Data extends Mage_Core_Helper_Abstract
107
  'attributesToRetrieve' => 'objectID',
108
  'attributesToHighlight' => '',
109
  'attributesToSnippet' => '',
110
- 'removeWordsIfNoResult'=> $this->config->getRemoveWordsIfNoResult($storeId),
 
111
  'analyticsTags' => 'backend-search'
112
  ));
113
 
@@ -139,21 +145,6 @@ class Algolia_Algoliasearch_Helper_Data extends Mage_Core_Helper_Abstract
139
  $index_name = $this->product_helper->getIndexName($store_id);
140
 
141
  $this->algolia_helper->deleteObjects($ids, $index_name);
142
-
143
- /**
144
- * Group Deleting
145
- */
146
- if ($this->config->isCustomerGroupsEnabled($store_id))
147
- {
148
- foreach ($groups = Mage::getModel('customer/group')->getCollection() as $group)
149
- {
150
- $group_id = (int) $group->getData('customer_group_id');
151
-
152
- $index_name = $this->product_helper->getIndexName($store_id).'_group_'.$group_id;
153
-
154
- $this->algolia_helper->deleteObjects($ids, $index_name);
155
- }
156
- }
157
  }
158
  }
159
 
@@ -183,11 +174,14 @@ class Algolia_Algoliasearch_Helper_Data extends Mage_Core_Helper_Abstract
183
  return;
184
  }
185
 
186
- $additionnal_sections = $this->config->getAutocompleteAdditionnalSections();
187
 
188
  foreach ($additionnal_sections as $section)
189
  {
190
- $index_name = $this->additionalsections_helper->getIndexName($storeId).'_'.$section['attribute'];
 
 
 
191
 
192
  $attribute_values = $this->additionalsections_helper->getAttributeValues($storeId, $section);
193
 
@@ -369,7 +363,7 @@ class Algolia_Algoliasearch_Helper_Data extends Mage_Core_Helper_Abstract
369
 
370
  $suggestion_obj = $this->suggestion_helper->getObject($suggestion);
371
 
372
- if ($suggestion_obj['popularity'] >= $this->config->getMinPopularity() && $suggestion_obj['number_of_results'] >= $this->config->getMinNumberOfResults())
373
  array_push($indexData, $suggestion_obj);
374
  }
375
 
@@ -480,7 +474,10 @@ class Algolia_Algoliasearch_Helper_Data extends Mage_Core_Helper_Abstract
480
  $collection->joinField('stock_qty', $index_prefix.'cataloginventory_stock_item', 'qty', 'product_id=entity_id', '{{table}}.stock_id=1', 'left');
481
 
482
  if ($this->product_helper->isAttributeEnabled($additionalAttributes, 'ordered_qty'))
483
- $collection->getSelect()->columns('(SELECT SUM(qty_ordered) FROM '.$index_prefix.'sales_flat_order_item WHERE sales_flat_order_item.product_id = e.entity_id) as ordered_qty');
 
 
 
484
 
485
  if ($this->product_helper->isAttributeEnabled($additionalAttributes, 'rating_summary'))
486
  $collection->joinField('rating_summary', $index_prefix.'review_entity_summary', 'rating_summary', 'entity_pk_value=entity_id', '{{table}}.store_id='.$storeId, 'left');
25
 
26
  public function __construct()
27
  {
28
+ \AlgoliaSearch\Version::$custom_value = " Magento (1.5.0)";
29
 
30
  $this->algolia_helper = Mage::helper('algoliasearch/algoliahelper');
31
 
85
  $this->algolia_helper->setSettings($this->page_helper->getIndexName($storeId), $this->page_helper->getIndexSettings($storeId));
86
  $this->algolia_helper->setSettings($this->suggestion_helper->getIndexName($storeId), $this->suggestion_helper->getIndexSettings($storeId));
87
 
88
+ foreach ($this->config->getAutocompleteSections() as $section)
89
+ {
90
+ if ($section['name'] === 'products' || $section['name'] === 'categories' || $section['name'] === 'pages' || $section['name'] === 'suggestions')
91
+ continue;
92
+
93
+ $this->algolia_helper->setSettings($this->additionalsections_helper->getIndexName($storeId).'_'.$section['name'], $this->additionalsections_helper->getIndexSettings($storeId));
94
+ }
95
 
96
  $this->product_helper->setSettings($storeId);
97
  }
112
  'attributesToRetrieve' => 'objectID',
113
  'attributesToHighlight' => '',
114
  'attributesToSnippet' => '',
115
+ 'numericFilters' => 'visibility_search=1',
116
+ 'removeWordsIfNoResults'=> $this->config->getRemoveWordsIfNoResult($storeId),
117
  'analyticsTags' => 'backend-search'
118
  ));
119
 
145
  $index_name = $this->product_helper->getIndexName($store_id);
146
 
147
  $this->algolia_helper->deleteObjects($ids, $index_name);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  }
149
  }
150
 
174
  return;
175
  }
176
 
177
+ $additionnal_sections = $this->config->getAutocompleteSections();
178
 
179
  foreach ($additionnal_sections as $section)
180
  {
181
+ if ($section['name'] === 'products' || $section['name'] === 'categories' || $section['name'] === 'pages' || $section['name'] === 'suggestions')
182
+ continue;
183
+
184
+ $index_name = $this->additionalsections_helper->getIndexName($storeId).'_'.$section['name'];
185
 
186
  $attribute_values = $this->additionalsections_helper->getAttributeValues($storeId, $section);
187
 
363
 
364
  $suggestion_obj = $this->suggestion_helper->getObject($suggestion);
365
 
366
+ if (strlen($suggestion_obj['query']) >= 3)
367
  array_push($indexData, $suggestion_obj);
368
  }
369
 
474
  $collection->joinField('stock_qty', $index_prefix.'cataloginventory_stock_item', 'qty', 'product_id=entity_id', '{{table}}.stock_id=1', 'left');
475
 
476
  if ($this->product_helper->isAttributeEnabled($additionalAttributes, 'ordered_qty'))
477
+ $collection->getSelect()->columns('(SELECT SUM(qty_ordered) FROM '.$index_prefix.'sales_flat_order_item WHERE '.$index_prefix.'sales_flat_order_item.product_id = e.entity_id) as ordered_qty');
478
+
479
+ if ($this->product_helper->isAttributeEnabled($additionalAttributes, 'total_ordered'))
480
+ $collection->getSelect()->columns('(SELECT SUM(row_total) FROM '.$index_prefix.'sales_flat_order_item WHERE '.$index_prefix.'sales_flat_order_item.product_id = e.entity_id) as total_ordered');
481
 
482
  if ($this->product_helper->isAttributeEnabled($additionalAttributes, 'rating_summary'))
483
  $collection->joinField('rating_summary', $index_prefix.'review_entity_summary', 'rating_summary', 'entity_pk_value=entity_id', '{{table}}.store_id='.$storeId, 'left');
app/code/community/Algolia/Algoliasearch/Helper/Entity/Additionalsectionshelper.php CHANGED
@@ -16,7 +16,7 @@ class Algolia_Algoliasearch_Helper_Entity_Additionalsectionshelper extends Algol
16
 
17
  public function getAttributeValues($storeId, $section)
18
  {
19
- $attributeCode = $section['attribute'];
20
 
21
  $products = Mage::getResourceModel('catalog/product_collection')
22
  ->addStoreFilter($storeId)
16
 
17
  public function getAttributeValues($storeId, $section)
18
  {
19
+ $attributeCode = $section['name'];
20
 
21
  $products = Mage::getResourceModel('catalog/product_collection')
22
  ->addStoreFilter($storeId)
app/code/community/Algolia/Algoliasearch/Helper/Entity/Categoryhelper.php CHANGED
@@ -145,7 +145,7 @@ class Algolia_Algoliasearch_Helper_Entity_Categoryhelper extends Algolia_Algolia
145
  'name' => $category->getName(),
146
  'path' => $path,
147
  'level' => $category->getLevel(),
148
- 'url' => $category->getUrl(),
149
  '_tags' => array('category'),
150
  'popularity' => 1,
151
  'product_count' => $category->getProductCount()
145
  'name' => $category->getName(),
146
  'path' => $path,
147
  'level' => $category->getLevel(),
148
+ 'url' => Mage::getBaseUrl() . $category->getRequestPath(),
149
  '_tags' => array('category'),
150
  'popularity' => 1,
151
  'product_count' => $category->getProductCount()
app/code/community/Algolia/Algoliasearch/Helper/Entity/Pagehelper.php CHANGED
@@ -11,6 +11,7 @@ class Algolia_Algoliasearch_Helper_Entity_Pagehelper extends Algolia_Algoliasear
11
  {
12
  return array(
13
  'attributesToIndex' => array('slug', 'name', 'unordered(content)'),
 
14
  );
15
  }
16
 
11
  {
12
  return array(
13
  'attributesToIndex' => array('slug', 'name', 'unordered(content)'),
14
+ 'attributesToSnippet' => array('content:7')
15
  );
16
  }
17
 
app/code/community/Algolia/Algoliasearch/Helper/Entity/Producthelper.php CHANGED
@@ -4,7 +4,15 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
4
  {
5
  protected static $_productAttributes;
6
 
7
- protected static $_predefinedProductAttributes = array('name', 'url_key', 'description', 'image', 'small_image', 'thumbnail');
 
 
 
 
 
 
 
 
8
 
9
  protected function getIndexNameSuffix()
10
  {
@@ -22,7 +30,7 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
22
 
23
  $allAttributes = $config->getEntityAttributeCodes('catalog_product');
24
 
25
- $productAttributes = array_merge(array('name', 'path', 'categories', 'categories_without_path', 'description', 'ordered_qty', 'stock_qty', 'price', 'rating_summary', 'media_gallery'), $allAttributes);
26
 
27
  $excludedAttributes = array(
28
  'all_children', 'available_sort_by', 'children', 'children_count', 'custom_apply_to_products',
@@ -68,7 +76,7 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
68
  ->addStoreFilter($storeId);
69
 
70
  if ($only_visible)
71
- $products = $products->addAttributeToFilter('visibility', array('in' => Mage::getSingleton('catalog/product_visibility')->getVisibleInSearchIds()));
72
 
73
  if (false === $this->config->getShowOutOfStock($storeId))
74
  Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($products);
@@ -111,6 +119,11 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
111
 
112
  if ($attribute['retrievable'] != '1')
113
  $unretrievableAttributes[] = $attribute['attribute'];
 
 
 
 
 
114
  }
115
 
116
  $customRankings = $this->config->getProductCustomRanking($storeId);
@@ -149,7 +162,8 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
149
  'customRanking' => $customRankingsArr,
150
  'unretrievableAttributes' => $unretrievableAttributes,
151
  'attributesForFaceting' => $attributesForFaceting,
152
- 'maxValuesPerFacet' => (int) $this->config->getMaxValuesPerFacet($storeId)
 
153
  );
154
 
155
  // Additional index settings from event observer
@@ -267,6 +281,7 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
267
  $customData[$field]['default'] = $price;
268
  $customData[$field]['default_formated'] = $product->getStore()->formatPrice($price, false);
269
 
 
270
 
271
  if ($customer_groups_enabled) // If fetch special price for groups
272
  {
@@ -292,17 +307,31 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
292
  $product->setCustomerGroupId(null);
293
  }
294
 
295
- $special_price = (double) Mage::helper('tax')->getPrice($product, $product->getFinalPrice(), $with_tax, null, null, null, $product->getStore(), null);
 
296
 
297
- if ($special_price && $special_price !== $customData[$field]['default'])
298
  {
299
- $customData[$field]['special_from_date'] = strtotime($product->getSpecialFromDate());
300
- $customData[$field]['special_to_date'] = strtotime($product->getSpecialToDate());
 
301
 
302
- $customData[$field]['default_original_formated'] = $customData[$field]['default_formated'];
 
 
 
 
 
 
 
 
 
 
 
303
 
304
- $customData[$field]['default'] = $special_price;
305
- $customData[$field]['default_formated'] = $product->getStore()->formatPrice($special_price, false);
 
306
  }
307
 
308
  if ($type == 'configurable' || $type == 'grouped' || $type == 'bundle')
@@ -333,10 +362,23 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
333
  $min = $max; // avoid to have PHP_INT_MAX in case of no subproducts (Corner case of visibility and stock options)
334
  }
335
 
 
336
  if ($min != $max)
337
  {
338
  $dashed_format = $product->getStore()->formatPrice($min, false) . ' - ' . $product->getStore()->formatPrice($max, false);
339
- $customData[$field]['default_formated'] = $dashed_format;
 
 
 
 
 
 
 
 
 
 
 
 
340
 
341
  if ($customer_groups_enabled)
342
  {
@@ -344,31 +386,32 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
344
  {
345
  $group_id = (int)$group->getData('customer_group_id');
346
 
347
- $customData[$field]['group_' . $group_id] = 0;
348
- $customData[$field]['group_' . $group_id . '_formated'] = $dashed_format;
 
 
 
349
  }
350
  }
351
-
352
- //// Do not keep special price that is already taken into account in min max
353
- unset($customData['price']['special_from_date']);
354
- unset($customData['price']['special_to_date']);
355
- unset($customData['price']['default_original_formated']);
356
-
357
- $customData[$field]['default'] = 0; // will be reset just after
358
  }
359
 
 
360
  if ($customData[$field]['default'] == 0)
361
  {
362
  $customData[$field]['default'] = $min;
363
 
364
  if ($min === $max)
365
  $customData[$field]['default_formated'] = $product->getStore()->formatPrice($min, false);
 
366
 
367
- if ($customer_groups_enabled)
 
 
368
  {
369
- foreach ($groups as $group)
 
 
370
  {
371
- $group_id = (int)$group->getData('customer_group_id');
372
  $customData[$field]['group_' . $group_id] = $min;
373
 
374
  if ($min === $max)
@@ -395,10 +438,17 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
395
 
396
  $defaultData = is_array($defaultData) ? $defaultData : explode("|",$defaultData);
397
 
 
 
 
 
 
398
  $customData = array(
399
  'objectID' => $product->getId(),
400
  'name' => $product->getName(),
401
- 'url' => $product->getProductUrl()
 
 
402
  );
403
 
404
  $additionalAttributes = $this->config->getProductAdditionalAttributes($product->getStoreId());
@@ -420,8 +470,18 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
420
  ->addFieldToFilter('level', array('gt' => 1))
421
  ->addIsActiveFilter();
422
 
 
 
423
  foreach ($categoryCollection as $category)
424
  {
 
 
 
 
 
 
 
 
425
  $categoryName = $category->getName();
426
 
427
  if ($categoryName)
@@ -480,7 +540,7 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
480
 
481
  if (false === isset($defaultData['thumbnail_url']))
482
  {
483
- $thumb = Mage::helper('catalog/image')->init($product, 'thumbnail')->resize(75, 75);
484
 
485
  try
486
  {
@@ -499,7 +559,7 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
499
 
500
  if (false === isset($defaultData['image_url']))
501
  {
502
- $image = Mage::helper('catalog/image')->init($product, $this->config->getImageType())->resize($this->config->getImageWidth(), $this->config->getImageHeight());
503
 
504
  try
505
  {
@@ -541,7 +601,10 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
541
  }
542
 
543
  if ($type == 'configurable' || $type == 'grouped')
 
544
  $ids = $product->getTypeInstance(true)->getChildrenIds($product->getId());
 
 
545
 
546
  if (count($ids))
547
  {
@@ -562,7 +625,10 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
562
 
563
  // skip default calculation if we have provided these attributes via the observer in $defaultData
564
  if (false === isset($defaultData['ordered_qty']) && $this->isAttributeEnabled($additionalAttributes, 'ordered_qty'))
565
- $customData['ordered_qty'] = (int) $product->getOrderedQty();
 
 
 
566
 
567
  if (false === isset($defaultData['stock_qty']) && $this->isAttributeEnabled($additionalAttributes, 'stock_qty'))
568
  $customData['stock_qty'] = (int) $product->getStockQty();
@@ -591,13 +657,17 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
591
  {
592
  $values = array();
593
 
 
 
594
  foreach ($sub_products as $sub_product)
595
  {
596
- $stock = (int) $sub_product->getStockItem()->getIsInStock();
597
 
598
- if ($stock == false)
599
  continue;
600
 
 
 
601
  $value = $sub_product->getData($attribute['attribute']);
602
 
603
  if ($value)
@@ -615,6 +685,12 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
615
  {
616
  $customData[$attribute['attribute']] = array_values(array_unique($values));
617
  }
 
 
 
 
 
 
618
  }
619
  }
620
  else
@@ -637,7 +713,13 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
637
  }
638
  }
639
 
640
- $this->handlePrice($product, $sub_products, $customData);
 
 
 
 
 
 
641
 
642
  $transport = new Varien_Object($customData);
643
  Mage::dispatchEvent('algolia_subproducts_index', array('custom_data' => $transport, 'sub_products' => $sub_products));
4
  {
5
  protected static $_productAttributes;
6
 
7
+ protected static $_predefinedProductAttributes = array(
8
+ 'name',
9
+ 'url_key',
10
+ 'description',
11
+ 'image',
12
+ 'small_image',
13
+ 'thumbnail',
14
+ 'msrp_enabled' // NEEDED to handle msrp behavior
15
+ );
16
 
17
  protected function getIndexNameSuffix()
18
  {
30
 
31
  $allAttributes = $config->getEntityAttributeCodes('catalog_product');
32
 
33
+ $productAttributes = array_merge(array('name', 'path', 'categories', 'categories_without_path', 'description', 'ordered_qty', 'total_ordered', 'stock_qty', 'rating_summary', 'media_gallery'), $allAttributes);
34
 
35
  $excludedAttributes = array(
36
  'all_children', 'available_sort_by', 'children', 'children_count', 'custom_apply_to_products',
76
  ->addStoreFilter($storeId);
77
 
78
  if ($only_visible)
79
+ $products = $products->addAttributeToFilter('visibility', array('in' => Mage::getSingleton('catalog/product_visibility')->getVisibleInSiteIds()));
80
 
81
  if (false === $this->config->getShowOutOfStock($storeId))
82
  Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($products);
119
 
120
  if ($attribute['retrievable'] != '1')
121
  $unretrievableAttributes[] = $attribute['attribute'];
122
+
123
+ if ($attribute['attribute'] == 'categories')
124
+ {
125
+ $attributesToIndex[] = $attribute['order'] == 'ordered' ? 'categories_without_path' : 'unordered(categories_without_path)';
126
+ }
127
  }
128
 
129
  $customRankings = $this->config->getProductCustomRanking($storeId);
162
  'customRanking' => $customRankingsArr,
163
  'unretrievableAttributes' => $unretrievableAttributes,
164
  'attributesForFaceting' => $attributesForFaceting,
165
+ 'maxValuesPerFacet' => (int) $this->config->getMaxValuesPerFacet($storeId),
166
+ 'removeWordsIfNoResults' => $this->config->getRemoveWordsIfNoResult($storeId)
167
  );
168
 
169
  // Additional index settings from event observer
281
  $customData[$field]['default'] = $price;
282
  $customData[$field]['default_formated'] = $product->getStore()->formatPrice($price, false);
283
 
284
+ $special_price = (double) Mage::helper('tax')->getPrice($product, $product->getFinalPrice(), $with_tax, null, null, null, $product->getStore(), null);
285
 
286
  if ($customer_groups_enabled) // If fetch special price for groups
287
  {
307
  $product->setCustomerGroupId(null);
308
  }
309
 
310
+ $customData[$field]['special_from_date'] = strtotime($product->getSpecialFromDate());
311
+ $customData[$field]['special_to_date'] = strtotime($product->getSpecialToDate());
312
 
313
+ if ($customer_groups_enabled)
314
  {
315
+ foreach ($groups as $group)
316
+ {
317
+ $group_id = (int)$group->getData('customer_group_id');
318
 
319
+ if ($special_price && $special_price < $customData[$field]['group_' . $group_id])
320
+ {
321
+ $customData[$field]['group_' . $group_id] = $special_price;
322
+ $customData[$field]['group_' . $group_id . '_formated'] = $product->getStore()->formatPrice($special_price, false);
323
+ }
324
+ }
325
+ }
326
+ else
327
+ {
328
+ if ($special_price && $special_price < $customData[$field]['default'])
329
+ {
330
+ $customData[$field]['default_original_formated'] = $customData[$field]['default_formated'];
331
 
332
+ $customData[$field]['default'] = $special_price;
333
+ $customData[$field]['default_formated'] = $product->getStore()->formatPrice($special_price, false);
334
+ }
335
  }
336
 
337
  if ($type == 'configurable' || $type == 'grouped' || $type == 'bundle')
362
  $min = $max; // avoid to have PHP_INT_MAX in case of no subproducts (Corner case of visibility and stock options)
363
  }
364
 
365
+
366
  if ($min != $max)
367
  {
368
  $dashed_format = $product->getStore()->formatPrice($min, false) . ' - ' . $product->getStore()->formatPrice($max, false);
369
+
370
+ if (isset($customData[$field]['default_original_formated']) === false || $min <= $customData[$field]['default'])
371
+ {
372
+
373
+ $customData[$field]['default_formated'] = $dashed_format;
374
+
375
+ //// Do not keep special price that is already taken into account in min max
376
+ unset($customData['price']['special_from_date']);
377
+ unset($customData['price']['special_to_date']);
378
+ unset($customData['price']['default_original_formated']);
379
+
380
+ $customData[$field]['default'] = 0; // will be reset just after
381
+ }
382
 
383
  if ($customer_groups_enabled)
384
  {
386
  {
387
  $group_id = (int)$group->getData('customer_group_id');
388
 
389
+ if ($min != $max && $min <= $customData[$field]['group_' . $group_id])
390
+ {
391
+ $customData[$field]['group_' . $group_id] = 0;
392
+ $customData[$field]['group_' . $group_id . '_formated'] = $dashed_format;
393
+ }
394
  }
395
  }
 
 
 
 
 
 
 
396
  }
397
 
398
+
399
  if ($customData[$field]['default'] == 0)
400
  {
401
  $customData[$field]['default'] = $min;
402
 
403
  if ($min === $max)
404
  $customData[$field]['default_formated'] = $product->getStore()->formatPrice($min, false);
405
+ }
406
 
407
+ if ($customer_groups_enabled)
408
+ {
409
+ foreach ($groups as $group)
410
  {
411
+ $group_id = (int)$group->getData('customer_group_id');
412
+
413
+ if ($customData[$field]['group_' . $group_id] == 0)
414
  {
 
415
  $customData[$field]['group_' . $group_id] = $min;
416
 
417
  if ($min === $max)
438
 
439
  $defaultData = is_array($defaultData) ? $defaultData : explode("|",$defaultData);
440
 
441
+ $visibility = (int) $product->getVisibility();
442
+
443
+ $visibleInCatalog = Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds();
444
+ $visibleInSearch = Mage::getSingleton('catalog/product_visibility')->getVisibleInSearchIds();
445
+
446
  $customData = array(
447
  'objectID' => $product->getId(),
448
  'name' => $product->getName(),
449
+ 'url' => Mage::getBaseUrl() . $product->getRequestPath(),
450
+ 'visibility_search' => (int) (in_array($visibility, $visibleInSearch)),
451
+ 'visibility_catalog' => (int) (in_array($visibility, $visibleInCatalog))
452
  );
453
 
454
  $additionalAttributes = $this->config->getProductAdditionalAttributes($product->getStoreId());
470
  ->addFieldToFilter('level', array('gt' => 1))
471
  ->addIsActiveFilter();
472
 
473
+ $rootCat = Mage::app()->getStore($product->getStoreId())->getRootCategoryId();
474
+
475
  foreach ($categoryCollection as $category)
476
  {
477
+ // Check and skip all categories that is not
478
+ // in the path of the current store.
479
+ $path = $category->getPath();
480
+ $path_parts = explode("/",$path);
481
+ if (isset($path_parts[1]) && $path_parts[1] != $rootCat) {
482
+ continue;
483
+ }
484
+
485
  $categoryName = $category->getName();
486
 
487
  if ($categoryName)
540
 
541
  if (false === isset($defaultData['thumbnail_url']))
542
  {
543
+ $thumb = Mage::helper('algoliasearch/image')->init($product, 'thumbnail')->resize(75, 75);
544
 
545
  try
546
  {
559
 
560
  if (false === isset($defaultData['image_url']))
561
  {
562
+ $image = Mage::helper('algoliasearch/image')->init($product, $this->config->getImageType())->resize($this->config->getImageWidth(), $this->config->getImageHeight());
563
 
564
  try
565
  {
601
  }
602
 
603
  if ($type == 'configurable' || $type == 'grouped')
604
+ {
605
  $ids = $product->getTypeInstance(true)->getChildrenIds($product->getId());
606
+ $ids = call_user_func_array('array_merge', $ids);
607
+ }
608
 
609
  if (count($ids))
610
  {
625
 
626
  // skip default calculation if we have provided these attributes via the observer in $defaultData
627
  if (false === isset($defaultData['ordered_qty']) && $this->isAttributeEnabled($additionalAttributes, 'ordered_qty'))
628
+ $customData['ordered_qty'] = (int) $product->getOrderedQty();
629
+
630
+ if (false === isset($defaultData['total_ordered']) && $this->isAttributeEnabled($additionalAttributes, 'total_ordered'))
631
+ $customData['total_ordered'] = (int) $product->getTotalOrdered();
632
 
633
  if (false === isset($defaultData['stock_qty']) && $this->isAttributeEnabled($additionalAttributes, 'stock_qty'))
634
  $customData['stock_qty'] = (int) $product->getStockQty();
657
  {
658
  $values = array();
659
 
660
+ $all_sub_products_out_of_stock = true;
661
+
662
  foreach ($sub_products as $sub_product)
663
  {
664
+ $isInStock = (int) $sub_product->getStockItem()->getIsInStock();
665
 
666
+ if ($isInStock == false)
667
  continue;
668
 
669
+ $all_sub_products_out_of_stock = false;
670
+
671
  $value = $sub_product->getData($attribute['attribute']);
672
 
673
  if ($value)
685
  {
686
  $customData[$attribute['attribute']] = array_values(array_unique($values));
687
  }
688
+
689
+ if ($customData['in_stock'] && $all_sub_products_out_of_stock) {
690
+ // Set main product out of stock if all
691
+ // sub-products is out of stock.
692
+ $customData['in_stock'] = 0;
693
+ }
694
  }
695
  }
696
  else
713
  }
714
  }
715
 
716
+
717
+ $msrpEnabled = method_exists(Mage::helper('catalog'), 'canApplyMsrp') ? (bool) Mage::helper('catalog')->canApplyMsrp($product): false;
718
+
719
+ if (false === $msrpEnabled)
720
+ $this->handlePrice($product, $sub_products, $customData);
721
+ else
722
+ unset($customData['price']);
723
 
724
  $transport = new Varien_Object($customData);
725
  Mage::dispatchEvent('algolia_subproducts_index', array('custom_data' => $transport, 'sub_products' => $sub_products));
app/code/community/Algolia/Algoliasearch/Helper/Entity/Suggestionhelper.php CHANGED
@@ -30,11 +30,39 @@ class Algolia_Algoliasearch_Helper_Entity_Suggestionhelper extends Algolia_Algol
30
  return $suggestion_obj;
31
  }
32
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  public function getSuggestionCollectionQuery($storeId)
34
  {
35
  $collection = Mage::getResourceModel('catalogsearch/query_collection')
 
36
  ->setStoreId($storeId);
37
 
 
 
38
  return $collection;
39
  }
40
  }
30
  return $suggestion_obj;
31
  }
32
 
33
+ public function getPopularQueries($storeId)
34
+ {
35
+ $collection = Mage::getResourceModel('catalogsearch/query_collection');
36
+ $collection->getSelect()->where('num_results >= '.$this->config->getMinNumberOfResults().' AND popularity >= ' . $this->config->getMinPopularity() .' AND query_text != "__empty__"');
37
+ $collection->getSelect()->limit(12);
38
+ $collection->setOrder('popularity', 'DESC');
39
+ $collection->setOrder('num_results', 'DESC');
40
+ $collection->setOrder('updated_at', 'ASC');
41
+
42
+ if ($storeId) {
43
+ $collection->getSelect()->where('store_id = ?', (int) $storeId);
44
+ }
45
+
46
+ $collection->load();
47
+
48
+ $suggestions = array();
49
+
50
+ /** @var $suggestion Mage_Catalog_Model_Category */
51
+ foreach ($collection as $suggestion)
52
+ if (strlen($suggestion['query_text']) >= 3)
53
+ $suggestions[] = $suggestion['query_text'];
54
+
55
+ return array_slice($suggestions, 0, 9);
56
+ }
57
+
58
  public function getSuggestionCollectionQuery($storeId)
59
  {
60
  $collection = Mage::getResourceModel('catalogsearch/query_collection')
61
+ ->addStoreFilter($storeId)
62
  ->setStoreId($storeId);
63
 
64
+ $collection->getSelect()->where('num_results >= '.$this->config->getMinNumberOfResults().' AND popularity >= ' . $this->config->getMinPopularity() .' AND query_text != "__empty__"');
65
+
66
  return $collection;
67
  }
68
  }
app/code/community/Algolia/Algoliasearch/Helper/Image.php CHANGED
@@ -3,7 +3,7 @@
3
  class Algolia_Algoliasearch_Helper_Image extends Mage_Catalog_Helper_Image
4
  {
5
  /*
6
- * Override to be able to catch the error
7
  */
8
  public function toString()
9
  {
@@ -17,7 +17,6 @@ class Algolia_Algoliasearch_Helper_Image extends Mage_Catalog_Helper_Image
17
  if ($model->isCached())
18
  return $model->getUrl();
19
 
20
-
21
  if ($this->_scheduleRotate)
22
  $model->rotate($this->getAngle());
23
 
@@ -27,8 +26,6 @@ class Algolia_Algoliasearch_Helper_Image extends Mage_Catalog_Helper_Image
27
  if ($this->getWatermark())
28
  $model->setWatermark($this->getWatermark());
29
 
30
- $url = $model->saveFile()->getUrl();
31
-
32
- return $url;
33
  }
34
  }
3
  class Algolia_Algoliasearch_Helper_Image extends Mage_Catalog_Helper_Image
4
  {
5
  /*
6
+ * Subclass to be able to catch the error
7
  */
8
  public function toString()
9
  {
17
  if ($model->isCached())
18
  return $model->getUrl();
19
 
 
20
  if ($this->_scheduleRotate)
21
  $model->rotate($this->getAngle());
22
 
26
  if ($this->getWatermark())
27
  $model->setWatermark($this->getWatermark());
28
 
29
+ return $model->saveFile()->getUrl();
 
 
30
  }
31
  }
app/code/community/Algolia/Algoliasearch/Model/Indexer/Algolia.php CHANGED
@@ -74,6 +74,8 @@ class Algolia_Algoliasearch_Model_Indexer_Algolia extends Mage_Index_Model_Index
74
 
75
  $result = $process->getMode() !== Mage_Index_Model_Process::MODE_MANUAL;
76
 
 
 
77
  $event->addNewData(self::EVENT_MATCH_RESULT_KEY, $result);
78
 
79
  return $result;
@@ -107,7 +109,7 @@ class Algolia_Algoliasearch_Model_Indexer_Algolia extends Mage_Index_Model_Index
107
 
108
  $product = Mage::getModel('catalog/product')->load($object->getProductId());
109
 
110
- if ($object->getData('is_in_stock') == false|| $product->getQty() <= 0)
111
  {
112
  try // In case of wrong credentials or overquota or block account. To avoid checkout process to fail
113
  {
@@ -131,12 +133,13 @@ class Algolia_Algoliasearch_Model_Indexer_Algolia extends Mage_Index_Model_Index
131
  /** @var $product Mage_Catalog_Model_Product */
132
  $product = $event->getDataObject();
133
  $delete = FALSE;
 
134
 
135
  if ($product->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED)
136
  {
137
  $delete = TRUE;
138
  }
139
- elseif (! in_array($product->getData('visibility'), Mage::getSingleton('catalog/product_visibility')->getVisibleInSearchIds()))
140
  {
141
  $delete = TRUE;
142
  }
74
 
75
  $result = $process->getMode() !== Mage_Index_Model_Process::MODE_MANUAL;
76
 
77
+ $result = $result && $event->getEntity() !== 'core_config_data';
78
+
79
  $event->addNewData(self::EVENT_MATCH_RESULT_KEY, $result);
80
 
81
  return $result;
109
 
110
  $product = Mage::getModel('catalog/product')->load($object->getProductId());
111
 
112
+ if ($object->getData('is_in_stock') == false || (int) $product->getStockItem()->getQty() <= 0)
113
  {
114
  try // In case of wrong credentials or overquota or block account. To avoid checkout process to fail
115
  {
133
  /** @var $product Mage_Catalog_Model_Product */
134
  $product = $event->getDataObject();
135
  $delete = FALSE;
136
+ $visibleInSite = Mage::getSingleton('catalog/product_visibility')->getVisibleInSiteIds();
137
 
138
  if ($product->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED)
139
  {
140
  $delete = TRUE;
141
  }
142
+ elseif (! in_array($product->getData('visibility'), $visibleInSite))
143
  {
144
  $delete = TRUE;
145
  }
app/code/community/Algolia/Algoliasearch/Model/Indexer/Algoliacategories.php CHANGED
@@ -43,7 +43,7 @@ class Algolia_Algoliasearch_Model_Indexer_Algoliacategories extends Mage_Index_M
43
 
44
  public function matchEvent(Mage_Index_Model_Event $event)
45
  {
46
- $result = true;
47
 
48
  $event->addNewData(self::EVENT_MATCH_RESULT_KEY, $result);
49
 
43
 
44
  public function matchEvent(Mage_Index_Model_Event $event)
45
  {
46
+ $result = $event->getEntity() !== 'core_config_data';;
47
 
48
  $event->addNewData(self::EVENT_MATCH_RESULT_KEY, $result);
49
 
app/code/community/Algolia/Algoliasearch/Model/Indexer/Algoliaqueuerunner.php ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Algolia_Algoliasearch_Model_Indexer_Algoliaqueuerunner extends Mage_Index_Model_Indexer_Abstract
4
+ {
5
+ const EVENT_MATCH_RESULT_KEY = 'algoliasearch_match_result';
6
+ private $config;
7
+ /** @var Algolia_Algoliasearch_Model_Queue */
8
+ private $queue;
9
+
10
+ public function __construct()
11
+ {
12
+ parent::__construct();
13
+ $this->config = Mage::helper('algoliasearch/config');
14
+ $this->queue = Mage::getSingleton('algoliasearch/queue');
15
+ }
16
+
17
+ protected $_matchedEntities = array();
18
+
19
+ protected function _getResource()
20
+ {
21
+ return Mage::getResourceSingleton('catalogsearch/indexer_fulltext');
22
+ }
23
+
24
+ public function getName()
25
+ {
26
+ return Mage::helper('algoliasearch')->__('Algolia Search Queue Runner');
27
+ }
28
+
29
+ public function getDescription()
30
+ {
31
+ return Mage::helper('algoliasearch')->__('Process the queue if enabled. This allow to run jobs in the queue');
32
+ }
33
+
34
+ public function matchEvent(Mage_Index_Model_Event $event)
35
+ {
36
+ return false;
37
+ }
38
+
39
+ protected function _registerEvent(Mage_Index_Model_Event $event)
40
+ {
41
+ return $this;
42
+ }
43
+
44
+ protected function _registerCatalogProductEvent(Mage_Index_Model_Event $event)
45
+ {
46
+ return $this;
47
+ }
48
+
49
+ protected function _registerCatalogCategoryEvent(Mage_Index_Model_Event $event)
50
+ {
51
+ return $this;
52
+ }
53
+
54
+ protected function _processEvent(Mage_Index_Model_Event $event)
55
+ {
56
+ }
57
+
58
+ /**
59
+ * Rebuild all index data
60
+ */
61
+ public function reindexAll()
62
+ {
63
+ if (! $this->config->getApplicationID() || ! $this->config->getAPIKey() || ! $this->config->getSearchOnlyAPIKey())
64
+ {
65
+ Mage::getSingleton('adminhtml/session')->addError('Algolia reindexing failed: You need to configure your Algolia credentials in System > Configuration > Algolia Search.');
66
+ return;
67
+ }
68
+
69
+ $this->queue->runCron();
70
+
71
+ return $this;
72
+ }
73
+ }
app/code/community/Algolia/Algoliasearch/Model/Observer.php CHANGED
@@ -34,6 +34,14 @@ class Algolia_Algoliasearch_Model_Observer
34
  $this->helper->saveConfigurationToAlgolia($store->getId());
35
  }
36
 
 
 
 
 
 
 
 
 
37
  /**
38
  * Call algoliasearch.xml To load js / css / phtml
39
  */
@@ -41,9 +49,21 @@ class Algolia_Algoliasearch_Model_Observer
41
  {
42
  if ($this->config->isEnabledFrontEnd())
43
  {
44
- if ($this->config->isPopupEnabled() || $this->config->isInstantEnabled())
45
  {
46
- $observer->getLayout()->getUpdate()->addHandle('algolia_search_handle');
 
 
 
 
 
 
 
 
 
 
 
 
47
  }
48
  }
49
 
@@ -158,7 +178,7 @@ class Algolia_Algoliasearch_Model_Observer
158
  else
159
  {
160
  if (! empty($page) && ! empty($pageSize))
161
- $this->helper->rebuildStoreCategoryIndexPage($storeId, $this->category_helper->getProductCollectionQuery($storeId, $categoryIds), $page, $pageSize);
162
  else
163
  $this->helper->rebuildStoreCategoryIndex($storeId, $categoryIds);
164
  }
34
  $this->helper->saveConfigurationToAlgolia($store->getId());
35
  }
36
 
37
+ public function addBundleToAdmin(Varien_Event_Observer $observer)
38
+ {
39
+ $req = Mage::app()->getRequest();
40
+
41
+ if (strpos($req->getPathInfo(), 'system_config/edit/section/algoliasearch') !== false)
42
+ $observer->getLayout()->getUpdate()->addHandle('algolia_bundle_handle');
43
+ }
44
+
45
  /**
46
  * Call algoliasearch.xml To load js / css / phtml
47
  */
49
  {
50
  if ($this->config->isEnabledFrontEnd())
51
  {
52
+ if ($this->config->getApplicationID() && $this->config->getAPIKey())
53
  {
54
+ if ($this->config->isPopupEnabled() || $this->config->isInstantEnabled())
55
+ {
56
+ $observer->getLayout()->getUpdate()->addHandle('algolia_search_handle');
57
+
58
+ if ($this->config->isDefaultSelector())
59
+ {
60
+ $observer->getLayout()->getUpdate()->addHandle('algolia_search_handle_with_topsearch');
61
+ }
62
+ else
63
+ {
64
+ $observer->getLayout()->getUpdate()->addHandle('algolia_search_handle_no_topsearch');
65
+ }
66
+ }
67
  }
68
  }
69
 
178
  else
179
  {
180
  if (! empty($page) && ! empty($pageSize))
181
+ $this->helper->rebuildStoreCategoryIndexPage($storeId, $this->category_helper->getCategoryCollectionQuery($storeId, $categoryIds), $page, $pageSize);
182
  else
183
  $this->helper->rebuildStoreCategoryIndex($storeId, $categoryIds);
184
  }
app/code/community/Algolia/Algoliasearch/Model/Queue.php CHANGED
@@ -9,6 +9,10 @@ class Algolia_Algoliasearch_Model_Queue
9
  protected $db;
10
 
11
  protected $config;
 
 
 
 
12
 
13
  public function __construct()
14
  {
@@ -16,16 +20,19 @@ class Algolia_Algoliasearch_Model_Queue
16
  $this->db = Mage::getSingleton('core/resource')->getConnection('core_write');
17
 
18
  $this->config = Mage::helper('algoliasearch/config');
 
 
 
19
  }
20
 
21
- public function add($class, $method, $data, $retries = NULL)
22
  {
23
  // Insert a row for the new job
24
  $this->db->insert($this->table, array(
25
  'class' => $class,
26
  'method' => $method,
27
- 'data' => serialize($data),
28
- 'max_retries' => max(array(1,(int)($retries ? $retries : $this->config->getQueueMaxRetries()))),
29
  'pid' => NULL,
30
  ));
31
  }
@@ -35,66 +42,161 @@ class Algolia_Algoliasearch_Model_Queue
35
  if ( ! $this->config->isQueueActive())
36
  return;
37
 
38
- if ($this->config->noProcess())
39
- return;
40
 
41
- $this->run($this->config->getNumberOfJobToRun());
 
 
 
 
42
  }
43
 
44
- public function run($limit = null)
45
  {
46
- // Cleanup crashed jobs
47
- $pids = $this->db->fetchCol("SELECT pid FROM {$this->table} WHERE pid IS NOT NULL GROUP BY pid");
48
- foreach ($pids as $pid) {
49
- // Old pid is no longer running, release it's reserved tasks
50
- if (is_numeric($pid) && ! file_exists("/proc/{$pid}/status")) {
51
- Mage::log("A crashed job queue process was detected for pid {$pid}", Zend_Log::NOTICE, self::ERROR_LOG);
52
-
53
- $expr = array('pid' => new Zend_Db_Expr('NULL'), 'retries' => new Zend_Db_Expr('retries + 1'));
54
- $binding = array('pid = ?' => $pid);
55
- $this->db->update($this->table, $expr, $binding);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  }
 
 
 
 
 
57
  }
58
 
59
- // Reserve all new jobs since last run
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  $pid = getmypid();
61
- $limit = ($limit ? "LIMIT $limit":'');
62
- $batchSize = $this->db->query("UPDATE {$this->db->quoteIdentifier($this->table,true)} SET pid = {$pid} WHERE pid IS NULL ORDER BY job_id $limit")->rowCount();
 
 
 
 
 
 
63
 
64
  // Run all reserved jobs
65
- $result = $this->db->query($this->db->select()->from($this->table, '*')->where('pid = ?',$pid)->order(array('job_id')));
66
- while ($row = $result->fetch()) {
67
- $where = $this->db->quoteInto('job_id = ?', $row['job_id']);
68
- $data = (substr($row['data'],0,1) == '{') ? json_decode($row['data'], TRUE) : $data = unserialize($row['data']);
69
-
70
- // Check retries
71
- if ($row['retries'] >= $row['max_retries']) {
72
- $this->db->delete($this->table, $where);
73
- Mage::log("{$row['pid']}: Mage::getSingleton({$row['class']})->{$row['method']}(".json_encode($data).")\n".$row['error_log'], Zend_Log::ERR, self::ERROR_LOG);
74
- continue;
75
  }
76
-
77
- // Run job!
78
- try {
79
- $model = Mage::getSingleton($row['class']);
80
- $method = $row['method'];
81
- $model->$method(new Varien_Object($data));
82
- $this->db->delete($this->table, $where);
83
- Mage::log("{$row['pid']}: Mage::getSingleton({$row['class']})->{$row['method']}(".json_encode($data).")", Zend_Log::INFO, self::SUCCESS_LOG);
84
- } catch(Exception $e) {
85
  // Increment retries and log error information
86
- $error =
87
- date('c')." ERROR: ".get_class($e).": '{$e->getMessage()}' in {$e->getFile()}:{$e->getLine()}\n".
88
- "Stack trace:\n".
89
- $e->getTraceAsString();
90
- $bind = array(
91
- 'pid' => new Zend_Db_Expr('NULL'),
92
- 'error_log' => new Zend_Db_Expr('SUBSTR(CONCAT(error_log,'.$this->db->quote($error).',"\n\n"),1,20000)')
93
- );
94
- $this->db->update($this->table, $bind, $where);
95
  }
96
  }
97
 
98
- return $batchSize;
 
 
 
 
 
 
 
 
99
  }
100
  }
9
  protected $db;
10
 
11
  protected $config;
12
+ /** @var Algolia_Algoliasearch_Helper_Logger */
13
+ protected $logger;
14
+
15
+ private $by_page;
16
 
17
  public function __construct()
18
  {
20
  $this->db = Mage::getSingleton('core/resource')->getConnection('core_write');
21
 
22
  $this->config = Mage::helper('algoliasearch/config');
23
+ $this->logger = Mage::helper('algoliasearch/logger');
24
+
25
+ $this->by_page = $this->config->getNumberOfElementByPage();
26
  }
27
 
28
+ public function add($class, $method, $data, $data_size)
29
  {
30
  // Insert a row for the new job
31
  $this->db->insert($this->table, array(
32
  'class' => $class,
33
  'method' => $method,
34
+ 'data' => json_encode($data),
35
+ 'data_size' => $data_size,
36
  'pid' => NULL,
37
  ));
38
  }
42
  if ( ! $this->config->isQueueActive())
43
  return;
44
 
45
+ $nbJobs = $this->config->getNumberOfJobToRun();
 
46
 
47
+ if (getenv('EMPTY_QUEUE') && getenv('EMPTY_QUEUE') == '1')
48
+ $nbJobs = -1;
49
+
50
+
51
+ $this->run($nbJobs);
52
  }
53
 
54
+ private function mergeable($j1, $j2)
55
  {
56
+ if ($j1['class'] !== $j2['class'])
57
+ return false;
58
+
59
+ if ($j1['method'] !== $j2['method'])
60
+ return false;
61
+
62
+ if ($j1['data']['store_id'] !== $j2['data']['store_id'])
63
+ return false;
64
+
65
+ if ((! isset($j1['data']['product_ids']) || count($j1['data']['product_ids']) <= 0)
66
+ && (! isset($j1['data']['category_ids']) || count($j1['data']['category_ids']) < 0))
67
+ return false;
68
+
69
+ if ((! isset($j2['data']['product_ids']) || count($j2['data']['product_ids']) <= 0)
70
+ && (! isset($j2['data']['category_ids']) || count($j2['data']['category_ids']) < 0))
71
+ return false;
72
+
73
+ if (isset($j1['data']['product_ids']) && count($j1['data']['product_ids']) + count($j2['data']['product_ids']) > $this->by_page)
74
+ return false;
75
+
76
+ if (isset($j1['data']['category_ids']) && count($j1['data']['category_ids']) + count($j2['data']['category_ids']) > $this->by_page)
77
+ return false;
78
+
79
+ return true;
80
+ }
81
+
82
+ private function sortAndMergeJob($old_jobs)
83
+ {
84
+ usort($old_jobs, function ($a, $b) {
85
+ if (strcmp($a['class'], $b['class']) !== 0)
86
+ return strcmp($a['class'], $b['class']);
87
+
88
+ if ($a['data']['store_id'] !== $b['data']['store_id'])
89
+ return $a['data']['store_id'] > $b['data']['store_id'];
90
+
91
+ return $a['job_id'] - $b['job_id'];
92
+ });
93
+
94
+ $jobs = array();
95
+
96
+ $current_job = array_shift($old_jobs);
97
+ $next_job = null;
98
+
99
+ while ($current_job !== null)
100
+ {
101
+ if (count($old_jobs) > 0)
102
+ {
103
+ $next_job = array_shift($old_jobs);
104
+
105
+ if ($this->mergeable($current_job, $next_job))
106
+ {
107
+ if (isset($current_job['data']['product_ids']))
108
+ $current_job['data']['product_ids'] = array_merge($current_job['data']['product_ids'], $next_job['data']['product_ids']);
109
+ else
110
+ $current_job['data']['category_ids'] = array_merge($current_job['data']['category_ids'], $next_job['data']['category_ids']);
111
+
112
+ continue;
113
+ }
114
  }
115
+ else
116
+ $next_job = null;
117
+
118
+ $jobs[] = $current_job;
119
+ $current_job = $next_job;
120
  }
121
 
122
+ return $jobs;
123
+ }
124
+
125
+ public function run($limit)
126
+ {
127
+ $full_reindex = ($limit === -1);
128
+ $limit = $full_reindex ? 1 : $limit;
129
+
130
+ $element_count = 0;
131
+ $jobs = array();
132
+ $offset = 0;
133
+ $max_size = $this->config->getNumberOfElementByPage() * $limit;
134
+
135
+ while ($element_count < $max_size)
136
+ {
137
+ $data = $this->db->query($this->db->select()->from($this->table, '*')->where('pid IS NULL')->order(array('job_id'))->limit($limit, $limit * $offset));
138
+ $data = $data->fetchAll();
139
+
140
+ $offset++;
141
+
142
+ if (count($data) <= 0)
143
+ break;
144
+
145
+ foreach ($data as $job)
146
+ {
147
+ $job_size = (int) $job['data_size'];
148
+
149
+ if ($element_count + $job_size <= $max_size)
150
+ {
151
+ $jobs[] = $job;
152
+ $element_count += $job_size;
153
+ }
154
+ else
155
+ break 2;
156
+ }
157
+ }
158
+
159
+ if (count($jobs) <= 0)
160
+ return;
161
+
162
+ $first_id = $jobs[0]['job_id'];
163
+ $last_id = $jobs[count($jobs) - 1]['job_id'];
164
+
165
  $pid = getmypid();
166
+
167
+ // Reserve all new jobs since last run
168
+ $this->db->query("UPDATE {$this->db->quoteIdentifier($this->table,true)} SET pid = ". $pid . " WHERE job_id >= " . $first_id . " AND job_id <= $last_id");
169
+
170
+ foreach ($jobs as &$job)
171
+ $job['data'] = json_decode($job['data'], true);
172
+
173
+ $jobs = $this->sortAndMergeJob($jobs);
174
 
175
  // Run all reserved jobs
176
+ foreach ($jobs as $job)
177
+ {
178
+ try
179
+ {
180
+ $model = Mage::getSingleton($job['class']);
181
+ $method = $job['method'];
182
+ $model->$method(new Varien_Object($job['data']));
 
 
 
183
  }
184
+ catch(Exception $e)
185
+ {
 
 
 
 
 
 
 
186
  // Increment retries and log error information
187
+ $this->logger->log("Queue processing {$job['pid']} [KO]: Mage::getSingleton({$job['class']})->{$job['method']}(".json_encode($job['data']).")");
188
+ $this->logger->log(date('c')." ERROR: ".get_class($e).": '{$e->getMessage()}' in {$e->getFile()}:{$e->getLine()}\n". "Stack trace:\n". $e->getTraceAsString());
 
 
 
 
 
 
 
189
  }
190
  }
191
 
192
+ // Delete only when finished to be able to debug the queue if needed
193
+ $where = $this->db->quoteInto('pid = ?', $pid);
194
+ $this->db->delete($this->table, $where);
195
+
196
+
197
+ if ($full_reindex)
198
+ {
199
+ $this->run(-1);
200
+ }
201
  }
202
  }
app/code/community/Algolia/Algoliasearch/Model/Resource/Engine.php CHANGED
@@ -25,61 +25,77 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
25
  $this->suggestion_helper = Mage::helper('algoliasearch/entity_suggestionhelper');
26
  }
27
 
28
- public function addToQueue($observer, $method, $data, $nb_retry)
29
  {
30
  if ($this->config->isQueueActive())
31
- $this->queue->add($observer, $method, $data, $nb_retry);
32
  else
33
  Mage::getSingleton($observer)->$method(new Varien_Object($data));
34
  }
35
 
36
  public function removeProducts($storeId = null, $product_ids = null)
37
  {
38
- if (is_array($product_ids) == false)
39
- $product_ids = array($product_ids);
40
-
41
- $by_page = $this->config->getNumberOfElementByPage();
42
 
43
- if (is_array($product_ids) && count($product_ids) > $by_page)
44
  {
45
- foreach (array_chunk($product_ids, $by_page) as $chunk)
46
- $this->addToQueue('algoliasearch/observer', 'removeProducts', array('store_id' => $storeId, 'product_ids' => $chunk), $this->config->getQueueMaxRetries());
 
 
 
 
 
 
 
 
 
 
47
  }
48
- else
49
- $this->addToQueue('algoliasearch/observer', 'removeProducts', array('store_id' => $storeId, 'product_ids' => $product_ids), $this->config->getQueueMaxRetries());
50
 
51
  return $this;
52
  }
53
 
54
  public function removeCategories($storeId = null, $category_ids = null)
55
  {
56
- if (is_array($category_ids) == false)
57
- $category_ids = array($category_ids);
58
-
59
- $by_page = $this->config->getNumberOfElementByPage();
60
 
61
- if (is_array($category_ids) && count($category_ids) > $by_page)
62
  {
63
- foreach (array_chunk($category_ids, $by_page) as $chunk)
64
- $this->addToQueue('algoliasearch/observer', 'removeCategories', array('store_id' => $storeId, 'category_ids' => $chunk), $this->config->getQueueMaxRetries());
65
- }
66
- else
67
- $this->addToQueue('algoliasearch/observer', 'removeCategories', array('store_id' => $storeId, 'category_ids' => $category_ids), $this->config->getQueueMaxRetries());
68
 
69
- return $this;
 
 
 
 
 
 
 
 
 
 
 
70
  }
71
 
72
  public function rebuildCategoryIndex($storeId = null, $categoryIds = null)
73
  {
74
- $by_page = $this->config->getNumberOfElementByPage();
75
 
76
- if (is_array($categoryIds) && count($categoryIds) > $by_page) {
77
- foreach (array_chunk($categoryIds, $by_page) as $chunk) {
78
- $this->_rebuildCategoryIndex($storeId, $chunk);
 
 
 
 
 
 
 
79
  }
80
- } else {
81
- $this->_rebuildCategoryIndex($storeId, $categoryIds);
82
  }
 
83
  return $this;
84
  }
85
 
@@ -93,7 +109,7 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
93
  continue;
94
  }
95
 
96
- $this->addToQueue('algoliasearch/observer', 'rebuildPageIndex', array('store_id' => $store->getId()), $this->config->getQueueMaxRetries());
97
  }
98
  }
99
 
@@ -107,7 +123,7 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
107
  continue;
108
  }
109
 
110
- $this->addToQueue('algoliasearch/observer', 'rebuildAdditionalSectionsIndex', array('store_id' => $store->getId()), $this->config->getQueueMaxRetries());
111
  }
112
  }
113
 
@@ -128,10 +144,10 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
128
  for ($i = 1; $i <= $nb_page; $i++)
129
  {
130
  $data = array('store_id' => $store->getId(), 'page_size' => $by_page, 'page' => $i);
131
- $this->addToQueue('algoliasearch/observer', 'rebuildSuggestionIndex', $data, $this->config->getQueueMaxRetries());
132
  }
133
 
134
- $this->addToQueue('algoliasearch/observer', 'moveStoreSuggestionIndex', array('store_id' => $store->getId()), $this->config->getQueueMaxRetries());
135
  }
136
 
137
 
@@ -154,7 +170,7 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
154
  }
155
  else
156
  {
157
- $this->addToQueue('algoliasearch/observer', 'deleteProductsStoreIndices', array('store_id' => $store->getId()), $this->config->getQueueMaxRetries());
158
  }
159
  }
160
  }
@@ -171,11 +187,11 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
171
 
172
  if ($store->getIsActive())
173
  {
174
- $this->addToQueue('algoliasearch/observer', 'rebuildCategoryIndex', array('store_id' => $store->getId(), 'category_ids' => array()), $this->config->getQueueMaxRetries());
175
  }
176
  else
177
  {
178
- $this->addToQueue('algoliasearch/observer', 'deleteCategoriesStoreIndices', array('store_id' => $store->getId()), $this->config->getQueueMaxRetries());
179
  }
180
  }
181
  }
@@ -200,7 +216,7 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
200
  return $this;
201
  }
202
 
203
- private function _rebuildCategoryIndex($storeId = null, $categoryIds = null)
204
  {
205
  if ($categoryIds == null || count($categoryIds) == 0)
206
  {
@@ -211,11 +227,11 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
211
  for ($i = 1; $i <= $nb_page; $i++)
212
  {
213
  $data = array('store_id' => $storeId, 'category_ids' => $categoryIds, 'page_size' => $by_page, 'page' => $i);
214
- $this->addToQueue('algoliasearch/observer', 'rebuildCategoryIndex', $data, $this->config->getQueueMaxRetries());
215
  }
216
  }
217
  else
218
- $this->addToQueue('algoliasearch/observer', 'rebuildCategoryIndex', array('store_id' => $storeId, 'category_ids' => $categoryIds), $this->config->getQueueMaxRetries());
219
 
220
 
221
  return $this;
@@ -232,11 +248,11 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
232
  for ($i = 1; $i <= $nb_page; $i++)
233
  {
234
  $data = array('store_id' => $storeId, 'product_ids' => $productIds, 'page_size' => $by_page, 'page' => $i);
235
- $this->addToQueue('algoliasearch/observer', 'rebuildProductIndex', $data, $this->config->getQueueMaxRetries());
236
  }
237
  }
238
  else
239
- $this->addToQueue('algoliasearch/observer', 'rebuildProductIndex', array('store_id' => $storeId, 'product_ids' => $productIds), $this->config->getQueueMaxRetries());
240
 
241
 
242
  return $this;
25
  $this->suggestion_helper = Mage::helper('algoliasearch/entity_suggestionhelper');
26
  }
27
 
28
+ public function addToQueue($observer, $method, $data, $data_size)
29
  {
30
  if ($this->config->isQueueActive())
31
+ $this->queue->add($observer, $method, $data, $data_size);
32
  else
33
  Mage::getSingleton($observer)->$method(new Varien_Object($data));
34
  }
35
 
36
  public function removeProducts($storeId = null, $product_ids = null)
37
  {
38
+ $ids = Algolia_Algoliasearch_Helper_Entity_Helper::getStores($storeId);
 
 
 
39
 
40
+ foreach ($ids as $id)
41
  {
42
+ if (is_array($product_ids) == false)
43
+ $product_ids = array($product_ids);
44
+
45
+ $by_page = $this->config->getNumberOfElementByPage();
46
+
47
+ if (is_array($product_ids) && count($product_ids) > $by_page)
48
+ {
49
+ foreach (array_chunk($product_ids, $by_page) as $chunk)
50
+ $this->addToQueue('algoliasearch/observer', 'removeProducts', array('store_id' => $id, 'product_ids' => $chunk), count($chunk));
51
+ }
52
+ else
53
+ $this->addToQueue('algoliasearch/observer', 'removeProducts', array('store_id' => $id, 'product_ids' => $product_ids), count($product_ids));
54
  }
 
 
55
 
56
  return $this;
57
  }
58
 
59
  public function removeCategories($storeId = null, $category_ids = null)
60
  {
61
+ $ids = Algolia_Algoliasearch_Helper_Entity_Helper::getStores($storeId);
 
 
 
62
 
63
+ foreach ($ids as $id)
64
  {
65
+ if (is_array($category_ids) == false)
66
+ $category_ids = array($category_ids);
 
 
 
67
 
68
+ $by_page = $this->config->getNumberOfElementByPage();
69
+
70
+ if (is_array($category_ids) && count($category_ids) > $by_page)
71
+ {
72
+ foreach (array_chunk($category_ids, $by_page) as $chunk)
73
+ $this->addToQueue('algoliasearch/observer', 'removeCategories', array('store_id' => $id, 'category_ids' => $chunk), count($chunk));
74
+ }
75
+ else
76
+ $this->addToQueue('algoliasearch/observer', 'removeCategories', array('store_id' => $id, 'category_ids' => $category_ids), count($category_ids));
77
+
78
+ return $this;
79
+ }
80
  }
81
 
82
  public function rebuildCategoryIndex($storeId = null, $categoryIds = null)
83
  {
84
+ $ids = Algolia_Algoliasearch_Helper_Entity_Helper::getStores($storeId);
85
 
86
+ foreach ($ids as $id)
87
+ {
88
+ $by_page = $this->config->getNumberOfElementByPage();
89
+
90
+ if (is_array($categoryIds) && count($categoryIds) > $by_page) {
91
+ foreach (array_chunk($categoryIds, $by_page) as $chunk) {
92
+ $this->_rebuildCategoryIndex($storeId, $chunk);
93
+ }
94
+ } else {
95
+ $this->_rebuildCategoryIndex($id, $categoryIds);
96
  }
 
 
97
  }
98
+
99
  return $this;
100
  }
101
 
109
  continue;
110
  }
111
 
112
+ $this->addToQueue('algoliasearch/observer', 'rebuildPageIndex', array('store_id' => $store->getId()), 1);
113
  }
114
  }
115
 
123
  continue;
124
  }
125
 
126
+ $this->addToQueue('algoliasearch/observer', 'rebuildAdditionalSectionsIndex', array('store_id' => $store->getId()), 1);
127
  }
128
  }
129
 
144
  for ($i = 1; $i <= $nb_page; $i++)
145
  {
146
  $data = array('store_id' => $store->getId(), 'page_size' => $by_page, 'page' => $i);
147
+ $this->addToQueue('algoliasearch/observer', 'rebuildSuggestionIndex', $data, 1);
148
  }
149
 
150
+ $this->addToQueue('algoliasearch/observer', 'moveStoreSuggestionIndex', array('store_id' => $store->getId()), 1);
151
  }
152
 
153
 
170
  }
171
  else
172
  {
173
+ $this->addToQueue('algoliasearch/observer', 'deleteProductsStoreIndices', array('store_id' => $store->getId()), 1);
174
  }
175
  }
176
  }
187
 
188
  if ($store->getIsActive())
189
  {
190
+ $this->addToQueue('algoliasearch/observer', 'rebuildCategoryIndex', array('store_id' => $store->getId(), 'category_ids' => array()), 1);
191
  }
192
  else
193
  {
194
+ $this->addToQueue('algoliasearch/observer', 'deleteCategoriesStoreIndices', array('store_id' => $store->getId()), 1);
195
  }
196
  }
197
  }
216
  return $this;
217
  }
218
 
219
+ private function _rebuildCategoryIndex($storeId, $categoryIds = null)
220
  {
221
  if ($categoryIds == null || count($categoryIds) == 0)
222
  {
227
  for ($i = 1; $i <= $nb_page; $i++)
228
  {
229
  $data = array('store_id' => $storeId, 'category_ids' => $categoryIds, 'page_size' => $by_page, 'page' => $i);
230
+ $this->addToQueue('algoliasearch/observer', 'rebuildCategoryIndex', $data, $by_page);
231
  }
232
  }
233
  else
234
+ $this->addToQueue('algoliasearch/observer', 'rebuildCategoryIndex', array('store_id' => $storeId, 'category_ids' => $categoryIds), count($categoryIds));
235
 
236
 
237
  return $this;
248
  for ($i = 1; $i <= $nb_page; $i++)
249
  {
250
  $data = array('store_id' => $storeId, 'product_ids' => $productIds, 'page_size' => $by_page, 'page' => $i);
251
+ $this->addToQueue('algoliasearch/observer', 'rebuildProductIndex', $data, $by_page);
252
  }
253
  }
254
  else
255
+ $this->addToQueue('algoliasearch/observer', 'rebuildProductIndex', array('store_id' => $storeId, 'product_ids' => $productIds), count($productIds));
256
 
257
 
258
  return $this;
app/code/community/Algolia/Algoliasearch/Model/Resource/Fulltext.php CHANGED
@@ -21,7 +21,7 @@ class Algolia_Algoliasearch_Model_Resource_Fulltext extends Mage_CatalogSearch_M
21
 
22
  public function prepareResult($object, $queryText, $query)
23
  {
24
- if ($this->config->isEnabledFrontEnd(Mage::app()->getStore()->getId()) === false)
25
  return parent::prepareResult($object, $queryText, $query);
26
 
27
  return $this;
21
 
22
  public function prepareResult($object, $queryText, $query)
23
  {
24
+ if (! $this->config->getApplicationID() || ! $this->config->getAPIKey() || $this->config->isEnabledFrontEnd() === false)
25
  return parent::prepareResult($object, $queryText, $query);
26
 
27
  return $this;
app/code/community/Algolia/Algoliasearch/Model/Resource/Fulltext/Collection.php CHANGED
@@ -7,11 +7,13 @@ class Algolia_Algoliasearch_Model_Resource_Fulltext_Collection extends Mage_Cata
7
  */
8
  public function addSearchFilter($query)
9
  {
10
- $storeId = Mage::app()->getStore()->getId();
11
  $config = Mage::helper('algoliasearch/config');
 
12
 
13
- if ($config->isEnabledFrontEnd($storeId) === false)
 
14
  return parent::addSearchFilter($query);
 
15
 
16
  $data = array();
17
 
7
  */
8
  public function addSearchFilter($query)
9
  {
 
10
  $config = Mage::helper('algoliasearch/config');
11
+ $storeId = Mage::app()->getStore()->getId();
12
 
13
+ if (! $config->getApplicationID() || ! $config->getAPIKey() || $config->isEnabledFrontEnd($storeId) === false)
14
+ {
15
  return parent::addSearchFilter($query);
16
+ }
17
 
18
  $data = array();
19
 
app/code/community/Algolia/Algoliasearch/Model/System/Removewords.php CHANGED
@@ -8,10 +8,10 @@ class Algolia_Algoliasearch_Model_System_Removewords
8
  public function toOptionArray()
9
  {
10
  return array(
11
- array('value'=>'None', 'label' => Mage::helper('algoliasearch')->__('None')),
12
  array('value'=>'allOptional', 'label' => Mage::helper('algoliasearch')->__('AllOptional')),
13
- array('value'=>'LastWords', 'label' => Mage::helper('algoliasearch')->__('LastWords')),
14
- array('value'=>'FirstWords', 'label' => Mage::helper('algoliasearch')->__('FirstWords')),
15
  );
16
  }
17
  }
8
  public function toOptionArray()
9
  {
10
  return array(
11
+ array('value'=>'none', 'label' => Mage::helper('algoliasearch')->__('None')),
12
  array('value'=>'allOptional', 'label' => Mage::helper('algoliasearch')->__('AllOptional')),
13
+ array('value'=>'lastWords', 'label' => Mage::helper('algoliasearch')->__('LastWords')),
14
+ array('value'=>'firstWords', 'label' => Mage::helper('algoliasearch')->__('FirstWords')),
15
  );
16
  }
17
  }
app/code/community/Algolia/Algoliasearch/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Algolia_Algoliasearch>
5
- <version>1.4.8</version>
6
  </Algolia_Algoliasearch>
7
  </modules>
8
  <frontend>
@@ -25,16 +25,31 @@
25
  </controller_action_layout_load_before>
26
  </events>
27
  </frontend>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  <global>
29
  <helpers>
30
  <algoliasearch>
31
  <class>Algolia_Algoliasearch_Helper</class>
32
  </algoliasearch>
33
- <catalog>
34
- <rewrite>
35
- <image>Algolia_Algoliasearch_Helper_Image</image>
36
- </rewrite>
37
- </catalog>
38
  </helpers>
39
  <blocks>
40
  <algoliasearch>
@@ -111,21 +126,12 @@
111
  <search_indexer_addsections>
112
  <model>algoliasearch/indexer_algoliaadditionalsections</model>
113
  </search_indexer_addsections>
 
 
 
114
  </indexer>
115
  </index>
116
  </global>
117
- <crontab>
118
- <jobs>
119
- <algoliasearch_run_queue>
120
- <schedule>
121
- <cron_expr>*/5 * * * *</cron_expr>
122
- </schedule>
123
- <run>
124
- <model>algoliasearch/queue::runCron</model>
125
- </run>
126
- </algoliasearch_run_queue>
127
- </jobs>
128
- </crontab>
129
  <default>
130
  <algoliasearch>
131
  <credentials>
@@ -139,46 +145,37 @@
139
  <is_instant_enabled>1</is_instant_enabled>
140
  </credentials>
141
  <products>
142
- <number_product_suggestions>3</number_product_suggestions>
143
  <number_product_results>9</number_product_results>
144
- <number_product_results_backend>9</number_product_results_backend>
145
- <product_additional_attributes>a:13:{s:18:"_1427959997377_377";a:4:{s:9:"attribute";s:4:"name";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427960012597_597";a:4:{s:9:"attribute";s:4:"path";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427960251221_221";a:4:{s:9:"attribute";s:17:"short_description";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:9:"unordered";}s:18:"_1427961262735_735";a:4:{s:9:"attribute";s:10:"categories";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961263735_735";a:4:{s:9:"attribute";s:10:"meta_title";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961264377_377";a:4:{s:9:"attribute";s:12:"meta_keyword";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961289908_908";a:4:{s:9:"attribute";s:16:"meta_description";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:9:"unordered";}s:18:"_1427961324936_936";a:4:{s:9:"attribute";s:3:"sku";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427962021621_621";a:4:{s:9:"attribute";s:5:"price";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427977839554_554";a:4:{s:9:"attribute";s:11:"ordered_qty";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"0";s:5:"order";s:7:"ordered";}s:18:"_1428566173508_508";a:4:{s:9:"attribute";s:9:"stock_qty";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"0";s:5:"order";s:7:"ordered";}s:17:"_1433929490023_23";a:4:{s:9:"attribute";s:14:"rating_summary";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1436178594492_492";a:4:{s:9:"attribute";s:10:"created_at";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"0";s:5:"order";s:7:"ordered";}}</product_additional_attributes>
146
  <custom_ranking_product_attributes>a:1:{s:18:"_1427960305274_274";a:2:{s:9:"attribute";s:11:"ordered_qty";s:5:"order";s:4:"desc";}}</custom_ranking_product_attributes>
147
  <results_limit>1000</results_limit>
 
148
  </products>
149
  <instant>
150
  <replace_categories>1</replace_categories>
151
  <instant_selector>.main</instant_selector>
152
- <facets>a:2:{s:18:"_1432907948596_596";a:4:{s:9:"attribute";s:5:"price";s:4:"type";s:6:"slider";s:10:"other_type";s:0:"";s:5:"label";s:5:"Price";}s:18:"_1432907963376_376";a:4:{s:9:"attribute";s:10:"categories";s:4:"type";s:11:"conjunctive";s:10:"other_type";s:0:"";s:5:"label";s:10:"Categories";}}</facets>
153
  <max_values_per_facet>10</max_values_per_facet>
154
  <sorts>a:3:{s:18:"_1432908018844_844";a:3:{s:9:"attribute";s:5:"price";s:4:"sort";s:3:"asc";s:5:"label";s:12:"Lowest price";}s:18:"_1432908022539_539";a:3:{s:9:"attribute";s:5:"price";s:4:"sort";s:4:"desc";s:5:"label";s:13:"Highest price";}s:18:"_1433768597454_454";a:3:{s:9:"attribute";s:10:"created_at";s:4:"sort";s:4:"desc";s:5:"label";s:12:"Newest first";}}</sorts>
155
  <add_to_cart_enable>1</add_to_cart_enable>
156
  </instant>
157
  <autocomplete>
158
- <additional_sections></additional_sections>
 
 
 
 
 
159
  </autocomplete>
160
  <categories>
161
  <number_category_suggestions>5</number_category_suggestions>
162
  <category_additional_attributes2>a:7:{s:18:"_1427960339954_954";a:4:{s:9:"attribute";s:4:"name";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427960354437_437";a:4:{s:9:"attribute";s:4:"path";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961004989_989";a:4:{s:9:"attribute";s:11:"description";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:9:"unordered";}s:18:"_1427961205511_511";a:4:{s:9:"attribute";s:10:"meta_title";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961216134_134";a:4:{s:9:"attribute";s:13:"meta_keywords";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961216916_916";a:4:{s:9:"attribute";s:16:"meta_description";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:9:"unordered";}s:18:"_1427977778338_338";a:4:{s:9:"attribute";s:13:"product_count";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}}</category_additional_attributes2>
163
  <custom_ranking_category_attributes>a:1:{s:18:"_1427961035192_192";a:2:{s:9:"attribute";s:13:"product_count";s:5:"order";s:4:"desc";}}</custom_ranking_category_attributes>
164
  </categories>
165
- <pages>
166
- <number_page_suggestions>3</number_page_suggestions>
167
- </pages>
168
- <suggestions>
169
- <number_query_suggestions>0</number_query_suggestions>
170
- <min_popularity>100000</min_popularity>
171
- <min_number_of_results>2</min_number_of_results>
172
- </suggestions>
173
- <relevance>
174
- <remove_words_if_no_result>None</remove_words_if_no_result>
175
- </relevance>
176
  <queue>
177
  <active>0</active>
178
- <retries>3</retries>
179
  <number_of_element_by_page>100</number_of_element_by_page>
180
- <number_of_job_to_run>300</number_of_job_to_run>
181
- <noprocess>0</noprocess>
182
  </queue>
183
  <image>
184
  <width>265</width>
@@ -186,9 +183,11 @@
186
  <type>image</type>
187
  </image>
188
  <advanced>
 
189
  <partial_update>0</partial_update>
190
  <make_seo_request>1</make_seo_request>
191
  <remove_branding>0</remove_branding>
 
192
  </advanced>
193
  <product_map>
194
  <!--
2
  <config>
3
  <modules>
4
  <Algolia_Algoliasearch>
5
+ <version>1.5.0</version>
6
  </Algolia_Algoliasearch>
7
  </modules>
8
  <frontend>
25
  </controller_action_layout_load_before>
26
  </events>
27
  </frontend>
28
+ <adminhtml>
29
+ <layout>
30
+ <updates>
31
+ <algoliasearch>
32
+ <file>algoliasearch.xml</file>
33
+ </algoliasearch>
34
+ </updates>
35
+ </layout>
36
+ <events>
37
+ <controller_action_layout_load_before>
38
+ <observers>
39
+ <algolia_search>
40
+ <type>singleton</type>
41
+ <class>algoliasearch/observer</class>
42
+ <method>addBundleToAdmin</method>
43
+ </algolia_search>
44
+ </observers>
45
+ </controller_action_layout_load_before>
46
+ </events>
47
+ </adminhtml>
48
  <global>
49
  <helpers>
50
  <algoliasearch>
51
  <class>Algolia_Algoliasearch_Helper</class>
52
  </algoliasearch>
 
 
 
 
 
53
  </helpers>
54
  <blocks>
55
  <algoliasearch>
126
  <search_indexer_addsections>
127
  <model>algoliasearch/indexer_algoliaadditionalsections</model>
128
  </search_indexer_addsections>
129
+ <algolia_queue_runner>
130
+ <model>algoliasearch/indexer_algoliaqueuerunner</model>
131
+ </algolia_queue_runner>
132
  </indexer>
133
  </index>
134
  </global>
 
 
 
 
 
 
 
 
 
 
 
 
135
  <default>
136
  <algoliasearch>
137
  <credentials>
145
  <is_instant_enabled>1</is_instant_enabled>
146
  </credentials>
147
  <products>
 
148
  <number_product_results>9</number_product_results>
149
+ <product_additional_attributes>a:10:{s:18:"_1427959997377_377";a:4:{s:9:"attribute";s:4:"name";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427960012597_597";a:4:{s:9:"attribute";s:4:"path";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961262735_735";a:4:{s:9:"attribute";s:10:"categories";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1447846016385_385";a:4:{s:9:"attribute";s:5:"color";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961324936_936";a:4:{s:9:"attribute";s:3:"sku";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427962021621_621";a:4:{s:9:"attribute";s:5:"price";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427977839554_554";a:4:{s:9:"attribute";s:11:"ordered_qty";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"0";s:5:"order";s:7:"ordered";}s:18:"_1428566173508_508";a:4:{s:9:"attribute";s:9:"stock_qty";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"0";s:5:"order";s:7:"ordered";}s:17:"_1433929490023_23";a:4:{s:9:"attribute";s:14:"rating_summary";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1436178594492_492";a:4:{s:9:"attribute";s:10:"created_at";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"0";s:5:"order";s:7:"ordered";}}</product_additional_attributes>
 
150
  <custom_ranking_product_attributes>a:1:{s:18:"_1427960305274_274";a:2:{s:9:"attribute";s:11:"ordered_qty";s:5:"order";s:4:"desc";}}</custom_ranking_product_attributes>
151
  <results_limit>1000</results_limit>
152
+ <show_suggestions_on_no_result_page>1</show_suggestions_on_no_result_page>
153
  </products>
154
  <instant>
155
  <replace_categories>1</replace_categories>
156
  <instant_selector>.main</instant_selector>
157
+ <facets>a:3:{s:18:"_1432907948596_596";a:3:{s:9:"attribute";s:5:"price";s:4:"type";s:6:"slider";s:5:"label";s:5:"Price";}s:18:"_1432907963376_376";a:3:{s:9:"attribute";s:10:"categories";s:4:"type";s:11:"conjunctive";s:5:"label";s:10:"Categories";}s:17:"_1447846054032_32";a:3:{s:9:"attribute";s:5:"color";s:4:"type";s:11:"disjunctive";s:5:"label";s:6:"Colors";}}</facets>
158
  <max_values_per_facet>10</max_values_per_facet>
159
  <sorts>a:3:{s:18:"_1432908018844_844";a:3:{s:9:"attribute";s:5:"price";s:4:"sort";s:3:"asc";s:5:"label";s:12:"Lowest price";}s:18:"_1432908022539_539";a:3:{s:9:"attribute";s:5:"price";s:4:"sort";s:4:"desc";s:5:"label";s:13:"Highest price";}s:18:"_1433768597454_454";a:3:{s:9:"attribute";s:10:"created_at";s:4:"sort";s:4:"desc";s:5:"label";s:12:"Newest first";}}</sorts>
160
  <add_to_cart_enable>1</add_to_cart_enable>
161
  </instant>
162
  <autocomplete>
163
+ <nb_of_products_suggestions>6</nb_of_products_suggestions>
164
+ <nb_of_categories_suggestions>2</nb_of_categories_suggestions>
165
+ <nb_of_queries_suggestions>0</nb_of_queries_suggestions>
166
+ <sections>a:1:{s:18:"_1450089283397_397";a:3:{s:4:"name";s:5:"pages";s:5:"label";s:5:"Pages";s:11:"hitsPerPage";s:1:"2";}}</sections>
167
+ <min_popularity>1000</min_popularity>
168
+ <min_number_of_results>2</min_number_of_results>
169
  </autocomplete>
170
  <categories>
171
  <number_category_suggestions>5</number_category_suggestions>
172
  <category_additional_attributes2>a:7:{s:18:"_1427960339954_954";a:4:{s:9:"attribute";s:4:"name";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427960354437_437";a:4:{s:9:"attribute";s:4:"path";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961004989_989";a:4:{s:9:"attribute";s:11:"description";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:9:"unordered";}s:18:"_1427961205511_511";a:4:{s:9:"attribute";s:10:"meta_title";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961216134_134";a:4:{s:9:"attribute";s:13:"meta_keywords";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961216916_916";a:4:{s:9:"attribute";s:16:"meta_description";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:9:"unordered";}s:18:"_1427977778338_338";a:4:{s:9:"attribute";s:13:"product_count";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}}</category_additional_attributes2>
173
  <custom_ranking_category_attributes>a:1:{s:18:"_1427961035192_192";a:2:{s:9:"attribute";s:13:"product_count";s:5:"order";s:4:"desc";}}</custom_ranking_category_attributes>
174
  </categories>
 
 
 
 
 
 
 
 
 
 
 
175
  <queue>
176
  <active>0</active>
 
177
  <number_of_element_by_page>100</number_of_element_by_page>
178
+ <number_of_job_to_run>10</number_of_job_to_run>
 
179
  </queue>
180
  <image>
181
  <width>265</width>
183
  <type>image</type>
184
  </image>
185
  <advanced>
186
+ <remove_words_if_no_result>allOptional</remove_words_if_no_result>
187
  <partial_update>0</partial_update>
188
  <make_seo_request>1</make_seo_request>
189
  <remove_branding>0</remove_branding>
190
+ <autocomplete_selector>.algolia-search-input</autocomplete_selector>
191
  </advanced>
192
  <product_map>
193
  <!--
app/code/community/Algolia/Algoliasearch/etc/system.xml CHANGED
@@ -4,7 +4,7 @@
4
  <algoliasearch translate="label" module="algoliasearch">
5
  <label>
6
  <![CDATA[
7
- Algolia Search 1.4.8
8
  <style>
9
  .algoliasearch-admin-menu span {
10
  padding-left: 38px !important;
@@ -25,7 +25,6 @@
25
  <show_in_default>1</show_in_default>
26
  <show_in_website>1</show_in_website>
27
  <show_in_store>1</show_in_store>
28
- <expanded>1</expanded>
29
  <groups>
30
  <credentials translate="label">
31
  <label>Credentials &amp; Setup</label>
@@ -37,8 +36,23 @@
37
  <expanded>1</expanded>
38
  <comment>
39
  <![CDATA[
40
- <font size="2"> Watch the <a href="https://youtu.be/DUuv9ALS5cM?t=213" target="_blank"><font color="#0066cc">Tutorial</font></a><br /n>
41
- </font>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  ]]>
43
  </comment>
44
  <fields>
@@ -117,7 +131,7 @@
117
  <show_in_store>1</show_in_store>
118
  <comment>
119
  <![CDATA[
120
- If set to Yes, the seach box will display a search-as-you-type drop-down menu. It requires your theme to expose a <code>top.search</code> template.
121
  ]]>
122
  </comment>
123
  </is_popup_enabled>
@@ -131,91 +145,119 @@
131
  <show_in_store>1</show_in_store>
132
  <comment>
133
  <![CDATA[
134
- If set to Yes, the products inside the results pages will be searchable the refined results updated as-you-type. It requires your theme to expose a <code>top.search</code> template.
135
  ]]>
136
  </comment>
137
  </is_instant_enabled>
138
  </fields>
139
  </credentials>
140
- <products translate="label">
141
- <label>Product Configuration</label>
142
  <frontend_type>text</frontend_type>
143
- <sort_order>30</sort_order>
144
  <show_in_default>1</show_in_default>
145
  <show_in_website>1</show_in_website>
146
  <show_in_store>1</show_in_store>
147
- <expanded>1</expanded>
148
- <comment>
149
- <![CDATA[
150
- <font size="2"> Watch the <a href="https://youtu.be/DUuv9ALS5cM?t=398" target="_blank"><font color="#0066cc">Tutorial</font></a><br /n>
151
- </font>
152
- ]]>
153
- </comment>
154
  <fields>
155
- <number_product_suggestions translate="label comment">
156
- <label>Number of product suggestions in the dropdown menu</label>
157
  <frontend_type>text</frontend_type>
158
  <validate>validate-digits</validate>
159
- <sort_order>0</sort_order>
160
  <show_in_default>1</show_in_default>
161
  <show_in_website>1</show_in_website>
162
  <show_in_store>1</show_in_store>
163
- <comment>The number of product results displayed in the drop-down menu. Default value is 3. Set the value to 0 if you do not want to display the products section in the menu.</comment>
164
- </number_product_suggestions>
165
- <number_product_results translate="label comment">
166
- <label>Number of products per page in the instant result page</label>
167
  <frontend_type>text</frontend_type>
168
  <validate>validate-digits</validate>
169
- <sort_order>10</sort_order>
170
  <show_in_default>1</show_in_default>
171
  <show_in_website>1</show_in_website>
172
  <show_in_store>1</show_in_store>
173
- <comment>The number of products displayed on the instant search results page. Default value is 9.</comment>
174
- </number_product_results>
175
- <product_additional_attributes translate="label comment">
176
- <label>Attributes</label>
177
- <frontend_model>algoliasearch/system_config_form_field_customsortorderproduct</frontend_model>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
178
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
179
- <sort_order>30</sort_order>
180
  <show_in_default>1</show_in_default>
181
  <show_in_website>1</show_in_website>
182
  <show_in_store>1</show_in_store>
 
183
  <comment>
184
  <![CDATA[
185
- Choose here the product attributes your users can search on, the ones you want to use as filters and sorts options and the ones required to display the search results. The order of the searchable attributes matters: a query matching the first searchable attribute of a product will put this product before the others in the results. Chose "Ordered" if you want the position of the matching word(s) inside the attribute to matter. A match at the beginning of an attribute will be considered more important: for the query "iPhone", "iPhone 5s" will be ranked before "case for iPhone".<br />
186
- <span style="color: #D83900">&#9888;</span> Do not forget to reindex your Algolia Search index after you've modified this panel.
187
  ]]>
188
  </comment>
189
- </product_additional_attributes>
190
- <custom_ranking_product_attributes translate="label comment">
191
- <label>Ranking</label>
192
- <frontend_model>algoliasearch/system_config_form_field_customrankingproduct</frontend_model>
193
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
194
- <sort_order>40</sort_order>
195
  <show_in_default>1</show_in_default>
196
  <show_in_website>1</show_in_website>
197
  <show_in_store>1</show_in_store>
198
  <comment>
199
  <![CDATA[
200
- Configure here the attributes that reflect the popularity of your product (number of orders, number of likes, number of views, ...).<br />
201
- <span style="color: #D83900">&#9888;</span> All attributes used here must have been initially included in the Attributes configuration panel.
202
  ]]>
203
  </comment>
204
- </custom_ranking_product_attributes>
205
  </fields>
206
- </products>
207
  <instant>
208
- <label>Instant Search Results Page Configuration</label>
209
  <frontend_type>text</frontend_type>
210
- <sort_order>31</sort_order>
211
  <show_in_default>1</show_in_default>
212
  <show_in_website>1</show_in_website>
213
  <show_in_store>1</show_in_store>
214
- <expanded>1</expanded>
215
  <comment>
216
  <![CDATA[
217
- <font size="2"> Watch the <a href="https://youtu.be/DUuv9ALS5cM?t=666" target="_blank"><font color="#0066cc">Tutorial</font></a><br /n>
218
- </font>
219
  ]]>
220
  </comment>
221
  <fields>
@@ -299,213 +341,167 @@
299
  </add_to_cart_enable>
300
  </fields>
301
  </instant>
302
- <categories translate="label">
303
- <label>Category Autocomplete Configuration</label>
304
  <frontend_type>text</frontend_type>
305
  <sort_order>40</sort_order>
306
  <show_in_default>1</show_in_default>
307
  <show_in_website>1</show_in_website>
308
  <show_in_store>1</show_in_store>
309
- <expanded>1</expanded>
310
  <comment>
311
- <![CDATA[
312
- <font size="2"> Watch the <a href="https://youtu.be/DUuv9ALS5cM?t=805" target="_blank"><font color="#0066cc">Tutorial</font></a><br /n>
313
- </font>
314
  ]]>
315
  </comment>
316
  <fields>
317
- <number_category_suggestions translate="label comment">
318
- <label>Number of category suggestions</label>
319
  <frontend_type>text</frontend_type>
320
  <validate>validate-digits</validate>
321
- <sort_order>0</sort_order>
322
  <show_in_default>1</show_in_default>
323
  <show_in_website>1</show_in_website>
324
  <show_in_store>1</show_in_store>
325
- <comment>The number of category results displayed in the drop-down menu. Default value is 5. Set the value to 0 if you do not want to display the categories section in the menu.</comment>
326
- </number_category_suggestions>
327
- <category_additional_attributes2 translate="label comment">
328
  <label>Attributes</label>
329
- <frontend_model>algoliasearch/system_config_form_field_customsortordercategory</frontend_model>
330
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
331
- <sort_order>10</sort_order>
332
  <show_in_default>1</show_in_default>
333
  <show_in_website>1</show_in_website>
334
  <show_in_store>1</show_in_store>
335
  <comment>
336
  <![CDATA[
337
- Configure here the category attributes your users can search on. The order of these attributes matters: the higher in the list, the more important to rank the results.<br />
338
- <span style="color: #D83900">&#9888;</span> Do not forget to reindex your Algolia Search index after you've modified this panel.
 
339
  ]]>
340
  </comment>
341
- </category_additional_attributes2>
342
- <custom_ranking_category_attributes translate="label comment">
343
  <label>Ranking</label>
344
- <frontend_model>algoliasearch/system_config_form_field_customrankingcategory</frontend_model>
345
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
346
- <sort_order>30</sort_order>
347
  <show_in_default>1</show_in_default>
348
  <show_in_website>1</show_in_website>
349
  <show_in_store>1</show_in_store>
350
  <comment>
351
  <![CDATA[
352
- Choose here the attributes that reflect the popularity of your categories (number of products, total number of sales of the category,etc.).<br />
353
- <span style="color: #D83900">&#9888;</span> All attributes used here must have been included before in the Attributes chart.
354
  ]]>
355
  </comment>
356
- </custom_ranking_category_attributes>
357
- </fields>
358
- </categories>
359
- <pages>
360
- <label>Page Autocomplete Configuration</label>
361
- <frontend_type>text</frontend_type>
362
- <sort_order>45</sort_order>
363
- <show_in_default>1</show_in_default>
364
- <show_in_website>1</show_in_website>
365
- <show_in_store>1</show_in_store>
366
- <expanded>1</expanded>
367
- <comment>
368
- <![CDATA[
369
- <font size="2"> Watch the <a href="https://youtu.be/DUuv9ALS5cM?t=841" target="_blank"><font color="#0066cc">Tutorial</font></a><br /n>
370
- </font>
371
- ]]>
372
- </comment>
373
- <fields>
374
- <number_page_suggestions translate="label comment">
375
- <label>Number of page suggestions</label>
376
- <frontend_type>text</frontend_type>
377
- <validate>validate-digits</validate>
378
- <sort_order>0</sort_order>
379
- <show_in_default>1</show_in_default>
380
- <show_in_website>1</show_in_website>
381
- <show_in_store>1</show_in_store>
382
- <comment>The number of page suggestions displayed in the drop-down menu. Default value is 3. Set the value to 0 if you do not want to display the pages section in the menu.</comment>
383
- </number_page_suggestions>
384
- <excluded_pages translate="label comment">
385
- <label>Excluded Pages</label>
386
- <frontend_model>algoliasearch/system_config_form_field_custompages</frontend_model>
387
- <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
388
- <sort_order>10</sort_order>
389
  <show_in_default>1</show_in_default>
390
  <show_in_website>1</show_in_website>
391
  <show_in_store>1</show_in_store>
392
  <comment>
393
  <![CDATA[
394
- Configure here the pages you don't want to search in.<br /n>
395
- <span style="color: #D83900">&#9888;</span> Do not forget to reindex your Algolia Search Pages index whenever you modify this setting.
396
  ]]>
397
  </comment>
398
- </excluded_pages>
399
  </fields>
400
- </pages>
401
- <suggestions>
402
- <label>Query Suggestions Autocomplete Configuration</label>
403
  <frontend_type>text</frontend_type>
404
- <sort_order>46</sort_order>
405
  <show_in_default>1</show_in_default>
406
  <show_in_website>1</show_in_website>
407
  <show_in_store>1</show_in_store>
408
- <expanded>1</expanded>
409
  <comment>
410
  <![CDATA[
411
- <font size="2"> Watch the <a href="https://youtu.be/DUuv9ALS5cM?t=881" target="_blank"><font color="#0066cc">Tutorial</font></a><br /n>
412
- </font>
413
  ]]>
414
  </comment>
415
  <fields>
416
- <number_query_suggestions translate="label comment">
417
- <label>Number of query suggestions</label>
418
- <frontend_type>text</frontend_type>
419
- <validate>validate-digits</validate>
420
- <sort_order>0</sort_order>
421
- <show_in_default>1</show_in_default>
422
- <show_in_website>1</show_in_website>
423
- <show_in_store>1</show_in_store>
424
- <comment>The number of query suggestions displayed in the drop-down menu. Default value is 0.</comment>
425
- </number_query_suggestions>
426
- <min_popularity translate="label comment">
427
- <label>Min popularity</label>
428
- <frontend_type>text</frontend_type>
429
- <validate>validate-digits</validate>
430
  <sort_order>10</sort_order>
431
  <show_in_default>1</show_in_default>
432
  <show_in_website>1</show_in_website>
433
  <show_in_store>1</show_in_store>
434
- <comment>The min number of times a query has been performed in order to be suggested. Default value is 100000.</comment>
435
- </min_popularity>
436
- <min_number_of_results translate="label comment">
437
- <label>Min number of products</label>
438
- <frontend_type>text</frontend_type>
439
- <validate>validate-digits</validate>
440
- <sort_order>20</sort_order>
441
- <show_in_default>1</show_in_default>
442
- <show_in_website>1</show_in_website>
443
- <show_in_store>1</show_in_store>
444
  <comment>
445
  <![CDATA[
446
- The min number of results a query needs to return to be suggested. Default value is 2. <br /n>
447
- <span style="color: #D83900">&#9888;</span> Updating your suggested queries requires that you reindex your Algolia Search Suggestions index.
448
  ]]>
449
  </comment>
450
- </min_number_of_results>
451
- </fields>
452
- </suggestions>
453
- <autocomplete>
454
- <label>Additional Autocomplete Sections Configuration</label>
455
- <frontend_type>text</frontend_type>
456
- <sort_order>47</sort_order>
457
- <show_in_default>1</show_in_default>
458
- <show_in_website>1</show_in_website>
459
- <show_in_store>1</show_in_store>
460
- <expanded>1</expanded>
461
- <fields>
462
- <additional_sections>
463
- <label>Additionnal Sections</label>
464
- <frontend_model>algoliasearch/system_config_form_field_additionalsections</frontend_model>
465
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
466
  <sort_order>30</sort_order>
467
  <show_in_default>1</show_in_default>
468
  <show_in_website>1</show_in_website>
469
  <show_in_store>1</show_in_store>
470
- <depends><active>1</active></depends>
471
  <comment>
472
  <![CDATA[
473
- Configure here the additional auto-completion menu sections you want include in the dropdown menu (Ex. Manufacturer).<br />
474
- <span style="color: #D83900">&#9888;</span> All attributes used here must have been initially included in the <strong>Attributes Configuration</strong> panel and configured as a facet in the <strong>Instant Search Results Page Configuration</strong> panel to be able to refine on the specific attribute.
475
  ]]>
476
  </comment>
477
- </additional_sections>
478
  </fields>
479
- </autocomplete>
480
- <relevance translate="label">
481
- <label>Query Expansion Configuration</label>
 
482
  <frontend_type>text</frontend_type>
483
- <expanded>1</expanded>
484
- <sort_order>50</sort_order>
485
  <show_in_default>1</show_in_default>
486
  <show_in_website>1</show_in_website>
487
  <show_in_store>1</show_in_store>
488
  <fields>
489
- <remove_words_if_no_result translate="label comment">
490
- <label>Remove Words If No Result?</label>
491
- <frontend_type>select</frontend_type>
492
- <source_model>algoliasearch/system_removewords</source_model>
493
  <sort_order>10</sort_order>
494
  <show_in_default>1</show_in_default>
495
  <show_in_website>1</show_in_website>
496
  <show_in_store>1</show_in_store>
497
- <comment><![CDATA[Optional property to avoid empty result pages.<br/>
498
- By default, Algolia performs "AND" queries, which can lead to no results pages when queries are too long or too detailed. To avoid this, you can select among the following options:<br/>
499
- LastWords: when a query does not return any result, the last word will be considered as optional and the query will be automatically performed again (the process is repeated with the n-1 word, n-2 word, ... until there is results).<br/>
500
- FirstWords: when a query does not return any result, the first word will be considered as optional and the query will be automatically performed again (the process is repeated with the second word, third word, ... until there is results).<br/>
501
- allOptional: when a query does not return any result, all words will be optional.<br/>
502
- None: No specific processing is done when a query does not return any result. <br/>]]></comment>
503
- </remove_words_if_no_result>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
504
  </fields>
505
- </relevance>
506
  <queue translate="label">
507
- <label>Queue Configuration</label>
508
- <expanded>1</expanded>
509
  <frontend_type>text</frontend_type>
510
  <sort_order>70</sort_order>
511
  <show_in_default>1</show_in_default>
@@ -522,31 +518,24 @@
522
  <show_in_store>1</show_in_store>
523
  <comment>
524
  <![CDATA[
525
- If enabled, all indexing operations (add, remove & update operations) will be done asynchronously using the CRON mechanism.<br />
 
 
 
 
526
  <span style="color: #D83900">&#9888;</span> Enabling this option is recommended in production or if your store has a lot of products.
527
  ]]>
528
-
529
  </comment>
530
  </active>
531
- <retries translate="label comment">
532
- <label>Max Retries</label>
533
- <frontend_type>text</frontend_type>
534
- <sort_order>20</sort_order>
535
- <show_in_default>1</show_in_default>
536
- <show_in_website>1</show_in_website>
537
- <show_in_store>1</show_in_store>
538
- <comment>Number of retries before giving up on unexpected errors.</comment>
539
- <depends><active>1</active></depends>
540
- </retries>
541
  <number_of_element_by_page translate="label comment">
542
- <label>Max number of products by indexing job</label>
543
  <frontend_type>text</frontend_type>
544
  <validate>validate-digits</validate>
545
  <sort_order>30</sort_order>
546
  <show_in_default>1</show_in_default>
547
  <show_in_website>1</show_in_website>
548
  <show_in_store>1</show_in_store>
549
- <comment>The max number of products by indexing job. Default value is 100.</comment>
550
  </number_of_element_by_page>
551
  <number_of_job_to_run translate="label comment">
552
  <label>Number of jobs to run each time the cron is run</label>
@@ -556,72 +545,42 @@
556
  <show_in_default>1</show_in_default>
557
  <show_in_website>1</show_in_website>
558
  <show_in_store>1</show_in_store>
559
- <comment>Number of jobs to run each time the cron is run. Default value is 300.</comment>
 
 
 
 
 
 
 
560
  <depends><active>1</active></depends>
561
  </number_of_job_to_run>
562
- <noprocess>
563
- <label>Disable indexing</label>
564
- <frontend_type>select</frontend_type>
565
- <source_model>adminhtml/system_config_source_yesno</source_model>
566
- <sort_order>50</sort_order>
567
- <show_in_default>1</show_in_default>
568
- <show_in_website>1</show_in_website>
569
- <show_in_store>1</show_in_store>
570
- <comment>Job will stack onto the queue but no indexing will be done. Default value is false.</comment>
571
- <depends><active>1</active></depends>
572
- </noprocess>
573
  </fields>
574
  </queue>
575
- <image translate="label">
576
- <label>Image Configuration</label>
577
- <expanded>1</expanded>
578
  <frontend_type>text</frontend_type>
579
- <sort_order>80</sort_order>
580
  <show_in_default>1</show_in_default>
581
  <show_in_website>1</show_in_website>
582
  <show_in_store>1</show_in_store>
583
  <fields>
584
- <width translate="label comment">
585
- <label>Width</label>
586
- <frontend_type>text</frontend_type>
587
- <validate>validate-digits</validate>
588
- <sort_order>10</sort_order>
589
- <show_in_default>1</show_in_default>
590
- <show_in_website>1</show_in_website>
591
- <show_in_store>1</show_in_store>
592
- </width>
593
- <height translate="label comment">
594
- <label>Height</label>
595
- <frontend_type>text</frontend_type>
596
- <validate>validate-digits</validate>
597
- <sort_order>10</sort_order>
598
- <show_in_default>1</show_in_default>
599
- <show_in_website>1</show_in_website>
600
- <show_in_store>1</show_in_store>
601
- <comment><![CDATA[You can specify the size of the images used at the Search Results Page.<br />
602
- If your images are already present in some size, eg. 265x265, Algolia's index job may not have to resize those, potentially saving time and resources.]]></comment>
603
- </height>
604
- <type translate="label comment">
605
- <label>Type</label>
606
  <frontend_type>select</frontend_type>
607
- <source_model>algoliasearch/system_imagetype</source_model>
608
- <sort_order>20</sort_order>
609
  <show_in_default>1</show_in_default>
610
  <show_in_website>1</show_in_website>
611
  <show_in_store>1</show_in_store>
612
- <comment>The image used at the Search Results Page.</comment>
613
- </type>
614
- </fields>
615
- </image>
616
- <advanced translate="label">
617
- <label>Advanced Configuration</label>
618
- <expanded>0</expanded>
619
- <frontend_type>text</frontend_type>
620
- <sort_order>90</sort_order>
621
- <show_in_default>1</show_in_default>
622
- <show_in_website>1</show_in_website>
623
- <show_in_store>1</show_in_store>
624
- <fields>
625
  <partial_update translate="label">
626
  <label>Partial Updates</label>
627
  <frontend_type>select</frontend_type>
@@ -670,6 +629,15 @@
670
  <show_in_store>1</show_in_store>
671
  <comment>Choose here if the algolia logo is added to the drop-down template.</comment>
672
  </remove_branding>
 
 
 
 
 
 
 
 
 
673
  </fields>
674
  </advanced>
675
  </groups>
4
  <algoliasearch translate="label" module="algoliasearch">
5
  <label>
6
  <![CDATA[
7
+ Algolia Search 1.5.0
8
  <style>
9
  .algoliasearch-admin-menu span {
10
  padding-left: 38px !important;
25
  <show_in_default>1</show_in_default>
26
  <show_in_website>1</show_in_website>
27
  <show_in_store>1</show_in_store>
 
28
  <groups>
29
  <credentials translate="label">
30
  <label>Credentials &amp; Setup</label>
36
  <expanded>1</expanded>
37
  <comment>
38
  <![CDATA[
39
+ <table>
40
+ <tr>
41
+ <td>Documentation:</td>
42
+ <td><a target="_BLANK" href="https://community.algolia.com/magento/documentation">https://community.algolia.com/magento/documentation</a></td>
43
+ </tr>
44
+ <tr>
45
+ <td>FAQ: </td>
46
+ <td><a target="_BLANK" href="https://www.algolia.com/doc/faq">https://www.algolia.com/doc/faq</a></td>
47
+ </tr>
48
+ <tr>
49
+ <td>Issues: </td>
50
+ <td><a target="_BLANK" href="https://github.com/algolia/algoliasearch-magento/issues">https://github.com/algoliasearch-magento/issues</a></td>
51
+ </tr>
52
+ </table>
53
+ <br>
54
+ <hr>
55
+ <br>
56
  ]]>
57
  </comment>
58
  <fields>
131
  <show_in_store>1</show_in_store>
132
  <comment>
133
  <![CDATA[
134
+ If set to Yes, the seach box will display a search-as-you-type drop-down menu. It requires your theme to expose a <code>top.search</code> and <code>content</code> block.
135
  ]]>
136
  </comment>
137
  </is_popup_enabled>
145
  <show_in_store>1</show_in_store>
146
  <comment>
147
  <![CDATA[
148
+ If set to Yes, the products inside the results pages will be searchable the refined results updated as-you-type. It requires your theme to expose a <code>top.search</code> and <code>content</code> block.
149
  ]]>
150
  </comment>
151
  </is_instant_enabled>
152
  </fields>
153
  </credentials>
154
+ <autocomplete>
155
+ <label>Autocomplete</label>
156
  <frontend_type>text</frontend_type>
157
+ <sort_order>20</sort_order>
158
  <show_in_default>1</show_in_default>
159
  <show_in_website>1</show_in_website>
160
  <show_in_store>1</show_in_store>
161
+ <expanded>0</expanded>
 
 
 
 
 
 
162
  <fields>
163
+ <nb_of_products_suggestions translate="label comment">
164
+ <label>Number of products</label>
165
  <frontend_type>text</frontend_type>
166
  <validate>validate-digits</validate>
167
+ <sort_order>1</sort_order>
168
  <show_in_default>1</show_in_default>
169
  <show_in_website>1</show_in_website>
170
  <show_in_store>1</show_in_store>
171
+ <comment>The number of products (>=1) suggested in the autocomplete dropdown. Default value is 6</comment>
172
+ </nb_of_products_suggestions>
173
+ <nb_of_categories_suggestions translate="label comment">
174
+ <label>Number of categories</label>
175
  <frontend_type>text</frontend_type>
176
  <validate>validate-digits</validate>
177
+ <sort_order>2</sort_order>
178
  <show_in_default>1</show_in_default>
179
  <show_in_website>1</show_in_website>
180
  <show_in_store>1</show_in_store>
181
+ <comment>The number of categories (>=1) suggested in the autocomplete dropdown. Default value is 2</comment>
182
+ </nb_of_categories_suggestions>
183
+ <nb_of_queries_suggestions>
184
+ <label>Number of queries</label>
185
+ <frontend_type>text</frontend_type>
186
+ <validate>validate-digits</validate>
187
+ <sort_order>3</sort_order>
188
+ <show_in_default>1</show_in_default>
189
+ <show_in_website>1</show_in_website>
190
+ <show_in_store>1</show_in_store>
191
+ <comment>The number of queries suggestions (0 to disabled it) suggested in the autocomplete dropdown. Default value is 0</comment>
192
+ </nb_of_queries_suggestions>
193
+ <min_popularity translate="label comment">
194
+ <label>Min query popularity</label>
195
+ <frontend_type>text</frontend_type>
196
+ <validate>validate-digits</validate>
197
+ <sort_order>4</sort_order>
198
+ <show_in_default>1</show_in_default>
199
+ <show_in_website>1</show_in_website>
200
+ <show_in_store>1</show_in_store>
201
+ <comment>The min number of times a query has been performed in order to be suggested. Default value is 1000.</comment>
202
+ </min_popularity>
203
+ <min_number_of_results translate="label comment">
204
+ <label>Min number of products per query</label>
205
+ <frontend_type>text</frontend_type>
206
+ <validate>validate-digits</validate>
207
+ <sort_order>5</sort_order>
208
+ <show_in_default>1</show_in_default>
209
+ <show_in_website>1</show_in_website>
210
+ <show_in_store>1</show_in_store>
211
+ <comment>
212
+ <![CDATA[
213
+ The min number of results a query needs to return to be suggested. Default value is 2. <br /n>
214
+ ]]>
215
+ </comment>
216
+ </min_number_of_results>
217
+ <sections>
218
+ <label>Additional Sections</label>
219
+ <frontend_model>algoliasearch/system_config_form_field_sections</frontend_model>
220
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
221
+ <sort_order>10</sort_order>
222
  <show_in_default>1</show_in_default>
223
  <show_in_website>1</show_in_website>
224
  <show_in_store>1</show_in_store>
225
+ <depends><active>1</active></depends>
226
  <comment>
227
  <![CDATA[
228
+ Configure here the additional auto-completion menu sections you want include in the dropdown menu (Ex. Suggestions, Pages, Manufacturer, Colors).<br /><br>
229
+ <span style="color: #D83900">&#9888;</span> All attributes used here must have been initially included in the <strong>Attributes Configuration</strong> panel and configured as a facet in the <strong>Instant Search Results Page Configuration</strong> panel to be able to refine on the specific attribute.
230
  ]]>
231
  </comment>
232
+ </sections>
233
+ <excluded_pages translate="label comment">
234
+ <label>Excluded Pages</label>
235
+ <frontend_model>algoliasearch/system_config_form_field_custompages</frontend_model>
236
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
237
+ <sort_order>20</sort_order>
238
  <show_in_default>1</show_in_default>
239
  <show_in_website>1</show_in_website>
240
  <show_in_store>1</show_in_store>
241
  <comment>
242
  <![CDATA[
243
+ Configure here the pages you don't want to search in.<br><br>
244
+ <span style="font-size: 20px; color: #D83900">&#9888;</span> Do not forget to trigger the Algolia Search indexers whenever you modify those settings.
245
  ]]>
246
  </comment>
247
+ </excluded_pages>
248
  </fields>
249
+ </autocomplete>
250
  <instant>
251
+ <label>Instant Search Results Page</label>
252
  <frontend_type>text</frontend_type>
253
+ <sort_order>30</sort_order>
254
  <show_in_default>1</show_in_default>
255
  <show_in_website>1</show_in_website>
256
  <show_in_store>1</show_in_store>
257
+ <expanded>0</expanded>
258
  <comment>
259
  <![CDATA[
260
+
 
261
  ]]>
262
  </comment>
263
  <fields>
341
  </add_to_cart_enable>
342
  </fields>
343
  </instant>
344
+ <products translate="label">
345
+ <label>Products</label>
346
  <frontend_type>text</frontend_type>
347
  <sort_order>40</sort_order>
348
  <show_in_default>1</show_in_default>
349
  <show_in_website>1</show_in_website>
350
  <show_in_store>1</show_in_store>
351
+ <expanded>0</expanded>
352
  <comment>
353
+ <![CDATA[
354
+
 
355
  ]]>
356
  </comment>
357
  <fields>
358
+ <number_product_results translate="label comment">
359
+ <label>Number of products per page in the instant result page</label>
360
  <frontend_type>text</frontend_type>
361
  <validate>validate-digits</validate>
362
+ <sort_order>10</sort_order>
363
  <show_in_default>1</show_in_default>
364
  <show_in_website>1</show_in_website>
365
  <show_in_store>1</show_in_store>
366
+ <comment>The number of products displayed on the instant search results page. Default value is 9.</comment>
367
+ </number_product_results>
368
+ <product_additional_attributes translate="label comment">
369
  <label>Attributes</label>
370
+ <frontend_model>algoliasearch/system_config_form_field_customsortorderproduct</frontend_model>
371
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
372
+ <sort_order>30</sort_order>
373
  <show_in_default>1</show_in_default>
374
  <show_in_website>1</show_in_website>
375
  <show_in_store>1</show_in_store>
376
  <comment>
377
  <![CDATA[
378
+ Choose here the product attributes your users can search on, the ones you want to use as filters and sorts options and the ones required to display the search results.<br><br>
379
+ The order of the searchable attributes matters: a query matching the first searchable attribute of a product will put this product before the others in the results. Chose "Ordered" if you want the position of the matching word(s) inside the attribute to matter. A match at the beginning of an attribute will be considered more important: for the query "iPhone", "iPhone 5s" will be ranked before "case for iPhone".<br />
380
+ <br><span style="font-size: 20px; color: #D83900">&#9888;</span> Do not forget to reindex your Algolia Search index after you've modified this panel.
381
  ]]>
382
  </comment>
383
+ </product_additional_attributes>
384
+ <custom_ranking_product_attributes translate="label comment">
385
  <label>Ranking</label>
386
+ <frontend_model>algoliasearch/system_config_form_field_customrankingproduct</frontend_model>
387
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
388
+ <sort_order>40</sort_order>
389
  <show_in_default>1</show_in_default>
390
  <show_in_website>1</show_in_website>
391
  <show_in_store>1</show_in_store>
392
  <comment>
393
  <![CDATA[
394
+ Configure here the attributes that reflect the popularity of your product (number of orders, number of likes, number of views, ...).<br />
395
+ <span style="color: #D83900">&#9888;</span> All attributes used here must have been initially included in the Attributes configuration panel.
396
  ]]>
397
  </comment>
398
+ </custom_ranking_product_attributes>
399
+ <show_suggestions_on_no_result_page translate="label comment">
400
+ <label>Show most popular queries suggestions when there are no results</label>
401
+ <frontend_type>select</frontend_type>
402
+ <source_model>adminhtml/system_config_source_yesno</source_model>
403
+ <sort_order>50</sort_order>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
404
  <show_in_default>1</show_in_default>
405
  <show_in_website>1</show_in_website>
406
  <show_in_store>1</show_in_store>
407
  <comment>
408
  <![CDATA[
409
+ Choose here if you want to show most popular queries suggestions when there are no results/
 
410
  ]]>
411
  </comment>
412
+ </show_suggestions_on_no_result_page>
413
  </fields>
414
+ </products>
415
+ <categories translate="label">
416
+ <label>Categories</label>
417
  <frontend_type>text</frontend_type>
418
+ <sort_order>50</sort_order>
419
  <show_in_default>1</show_in_default>
420
  <show_in_website>1</show_in_website>
421
  <show_in_store>1</show_in_store>
422
+ <expanded>0</expanded>
423
  <comment>
424
  <![CDATA[
425
+
 
426
  ]]>
427
  </comment>
428
  <fields>
429
+ <category_additional_attributes2 translate="label comment">
430
+ <label>Attributes</label>
431
+ <frontend_model>algoliasearch/system_config_form_field_customsortordercategory</frontend_model>
432
+ <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
 
 
 
 
 
 
 
 
 
 
433
  <sort_order>10</sort_order>
434
  <show_in_default>1</show_in_default>
435
  <show_in_website>1</show_in_website>
436
  <show_in_store>1</show_in_store>
 
 
 
 
 
 
 
 
 
 
437
  <comment>
438
  <![CDATA[
439
+ Configure here the category attributes your users can search on. The order of these attributes matters: the higher in the list, the more important to rank the results.<br />
440
+ <span style="color: #D83900">&#9888;</span> Do not forget to reindex your Algolia Search index after you've modified this panel.
441
  ]]>
442
  </comment>
443
+ </category_additional_attributes2>
444
+ <custom_ranking_category_attributes translate="label comment">
445
+ <label>Ranking</label>
446
+ <frontend_model>algoliasearch/system_config_form_field_customrankingcategory</frontend_model>
 
 
 
 
 
 
 
 
 
 
 
447
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
448
  <sort_order>30</sort_order>
449
  <show_in_default>1</show_in_default>
450
  <show_in_website>1</show_in_website>
451
  <show_in_store>1</show_in_store>
 
452
  <comment>
453
  <![CDATA[
454
+ Choose here the attributes that reflect the popularity of your categories (number of products, total number of sales of the category,etc.).<br />
455
+ <span style="color: #D83900">&#9888;</span> All attributes used here must have been included before in the Attributes chart.
456
  ]]>
457
  </comment>
458
+ </custom_ranking_category_attributes>
459
  </fields>
460
+ </categories>
461
+ <image translate="label">
462
+ <label>Images</label>
463
+ <expanded>0</expanded>
464
  <frontend_type>text</frontend_type>
465
+ <sort_order>60</sort_order>
 
466
  <show_in_default>1</show_in_default>
467
  <show_in_website>1</show_in_website>
468
  <show_in_store>1</show_in_store>
469
  <fields>
470
+ <width translate="label comment">
471
+ <label>Width</label>
472
+ <frontend_type>text</frontend_type>
473
+ <validate>validate-digits</validate>
474
  <sort_order>10</sort_order>
475
  <show_in_default>1</show_in_default>
476
  <show_in_website>1</show_in_website>
477
  <show_in_store>1</show_in_store>
478
+ </width>
479
+ <height translate="label comment">
480
+ <label>Height</label>
481
+ <frontend_type>text</frontend_type>
482
+ <validate>validate-digits</validate>
483
+ <sort_order>10</sort_order>
484
+ <show_in_default>1</show_in_default>
485
+ <show_in_website>1</show_in_website>
486
+ <show_in_store>1</show_in_store>
487
+ <comment><![CDATA[You can specify the size of the images used at the Search Results Page.<br />
488
+ If your images are already present in some size, eg. 265x265, Algolia's index job may not have to resize those, potentially saving time and resources.]]></comment>
489
+ </height>
490
+ <type translate="label comment">
491
+ <label>Type</label>
492
+ <frontend_type>select</frontend_type>
493
+ <source_model>algoliasearch/system_imagetype</source_model>
494
+ <sort_order>20</sort_order>
495
+ <show_in_default>1</show_in_default>
496
+ <show_in_website>1</show_in_website>
497
+ <show_in_store>1</show_in_store>
498
+ <comment>The image used at the Search Results Page.</comment>
499
+ </type>
500
  </fields>
501
+ </image>
502
  <queue translate="label">
503
+ <label>Indexing Queue / Cron</label>
504
+ <expanded>0</expanded>
505
  <frontend_type>text</frontend_type>
506
  <sort_order>70</sort_order>
507
  <show_in_default>1</show_in_default>
518
  <show_in_store>1</show_in_store>
519
  <comment>
520
  <![CDATA[
521
+ If enabled, all inxdexing operations (add, remove & update operations) will be done asynchronously using the CRON mechanism.<br />
522
+ <br>
523
+ To schedule the run you need to add this in your crontab:<br>
524
+ */5 * * * * php -f /absolute/path/to/magento/shell/indexer.php -- -reindex algolia_queue_runner
525
+ <br><br>
526
  <span style="color: #D83900">&#9888;</span> Enabling this option is recommended in production or if your store has a lot of products.
527
  ]]>
 
528
  </comment>
529
  </active>
 
 
 
 
 
 
 
 
 
 
530
  <number_of_element_by_page translate="label comment">
531
+ <label>Max number of element per indexing job</label>
532
  <frontend_type>text</frontend_type>
533
  <validate>validate-digits</validate>
534
  <sort_order>30</sort_order>
535
  <show_in_default>1</show_in_default>
536
  <show_in_website>1</show_in_website>
537
  <show_in_store>1</show_in_store>
538
+ <comment>The max number of element by indexing job. Default value is 100.</comment>
539
  </number_of_element_by_page>
540
  <number_of_job_to_run translate="label comment">
541
  <label>Number of jobs to run each time the cron is run</label>
545
  <show_in_default>1</show_in_default>
546
  <show_in_website>1</show_in_website>
547
  <show_in_store>1</show_in_store>
548
+ <comment>
549
+ <![CDATA[
550
+ Number of jobs to run each time the cron is run. Default value is 10.
551
+ <br><br>
552
+ <span style="font-size: 20px; color: #D83900">&#9888;</span> Eacb time the cron runs it will process ("Max number of element per indexing job" * "Number of jobs to run each time the cron is run")
553
+ products.
554
+ ]]>
555
+ </comment>
556
  <depends><active>1</active></depends>
557
  </number_of_job_to_run>
 
 
 
 
 
 
 
 
 
 
 
558
  </fields>
559
  </queue>
560
+ <advanced translate="label">
561
+ <label>Advanced</label>
562
+ <expanded>0</expanded>
563
  <frontend_type>text</frontend_type>
564
+ <sort_order>90</sort_order>
565
  <show_in_default>1</show_in_default>
566
  <show_in_website>1</show_in_website>
567
  <show_in_store>1</show_in_store>
568
  <fields>
569
+ <remove_words_if_no_result translate="label comment">
570
+ <label>Remove Words If No Result?</label>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
571
  <frontend_type>select</frontend_type>
572
+ <source_model>algoliasearch/system_removewords</source_model>
573
+ <sort_order>1</sort_order>
574
  <show_in_default>1</show_in_default>
575
  <show_in_website>1</show_in_website>
576
  <show_in_store>1</show_in_store>
577
+ <comment><![CDATA[Optional property to avoid empty result pages.<br/>
578
+ By default, Algolia performs "AND" queries, which can lead to no results pages when queries are too long or too detailed. To avoid this, you can select among the following options:<br/>
579
+ LastWords: when a query does not return any result, the last word will be considered as optional and the query will be automatically performed again (the process is repeated with the n-1 word, n-2 word, ... until there is results).<br/>
580
+ FirstWords: when a query does not return any result, the first word will be considered as optional and the query will be automatically performed again (the process is repeated with the second word, third word, ... until there is results).<br/>
581
+ allOptional: when a query does not return any result, all words will be optional.<br/>
582
+ None: No specific processing is done when a query does not return any result. <br/>]]></comment>
583
+ </remove_words_if_no_result>
 
 
 
 
 
 
584
  <partial_update translate="label">
585
  <label>Partial Updates</label>
586
  <frontend_type>select</frontend_type>
629
  <show_in_store>1</show_in_store>
630
  <comment>Choose here if the algolia logo is added to the drop-down template.</comment>
631
  </remove_branding>
632
+ <autocomplete_selector translate="label comment">
633
+ <label>Search input DOM Selector</label>
634
+ <frontend_type>text</frontend_type>
635
+ <sort_order>50</sort_order>
636
+ <show_in_default>1</show_in_default>
637
+ <show_in_website>1</show_in_website>
638
+ <show_in_store>1</show_in_store>
639
+ <comment>If you don't have the top.search block you can specify the selector of your search input here to use it. Default value is .algolia-search-input</comment>
640
+ </autocomplete_selector>
641
  </fields>
642
  </advanced>
643
  </groups>
app/code/community/Algolia/Algoliasearch/sql/algoliasearch_setup/{mysql4-upgrade-0.1.0-1.4.7.php → mysql4-upgrade-0.1.0-1.4.8.php} RENAMED
File without changes
app/code/community/Algolia/Algoliasearch/sql/algoliasearch_setup/mysql4-upgrade-1.4.8-1.5.0.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $installer = $this; /** @var $installer Mage_Core_Model_Resource_Setup */
4
+
5
+ $installer->startSetup();
6
+
7
+ /** Need a truncate since now everything is json_encoded and not serialized */
8
+ $installer->run("TRUNCATE TABLE `{$installer->getTable('algoliasearch/queue')}`");
9
+ $installer->run("ALTER TABLE `{$installer->getTable('algoliasearch/queue')}` ADD data_size INT(11);");
10
+
11
+ $index_prefix = Mage::getConfig()->getTablePrefix();
12
+ $installer->run("DELETE FROM `".$index_prefix."core_config_data` WHERE `path` LIKE '%algolia%'");
13
+
14
+ $installer->endSetup();
app/design/adminhtml/default/default/layout/algoliasearch.xml ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout>
3
+ <algolia_bundle_handle>
4
+ <reference name="before_body_end">
5
+ <block type="core/template" template="algoliasearch/adminjs.phtml"/>
6
+ </reference>
7
+ </algolia_bundle_handle>
8
+ </layout>
app/design/adminhtml/default/default/template/algoliasearch/adminjs.phtml ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <script src="<?php echo Mage::getBaseUrl('js'); ?>algoliasearch/algoliaAdminBundle.min.js"></script>
2
+ <script src="<?php echo Mage::getBaseUrl('js'); ?>algoliasearch/admin_scripts.js"></script>
3
+ <script>
4
+ document.addEventListener("DOMContentLoaded", function(event) {
5
+ algoliaAdminBundle.$(function ($) {
6
+ $('p.note').css('width', '100%');
7
+ });
8
+ });
9
+ </script>
app/design/frontend/base/default/layout/algoliasearch.xml CHANGED
@@ -2,12 +2,35 @@
2
  <layout>
3
  <algolia_search_handle>
4
  <reference name="head">
5
- <action method="addCss"><stylesheet>algoliasearch/bundle.css</stylesheet></action>
6
  <action method="addCss"><stylesheet>algoliasearch/algoliasearch.css</stylesheet></action>
7
- <action method="addJs"><script>algoliasearch/bundle.min.js</script></action>
 
 
 
 
 
 
 
 
 
 
8
  </reference>
 
 
 
 
 
 
 
 
 
9
  <reference name="top.search">
10
  <action method="setTemplate"><template>algoliasearch/topsearch.phtml</template></action>
11
  </reference>
12
- </algolia_search_handle>
 
 
 
 
 
13
  </layout>
2
  <layout>
3
  <algolia_search_handle>
4
  <reference name="head">
 
5
  <action method="addCss"><stylesheet>algoliasearch/algoliasearch.css</stylesheet></action>
6
+ <block type="core/text" name="algolia-polyfill">
7
+ <action method="setText">
8
+ <text>
9
+ <![CDATA[<meta http-equiv="X-UA-Compatible" content="IE=Edge">
10
+ <!--[if lte IE 9]>
11
+ <script src="https://cdn.polyfill.io/v2/polyfill.min.js"></script>
12
+ <![endif]-->]]>
13
+ </text>
14
+ </action>
15
+ </block>
16
+ <block type="core/template" template="algoliasearch/beforetopsearch.phtml"/>
17
  </reference>
18
+ <reference name="before_body_end">
19
+ <block type="core/template" template="algoliasearch/frontjs.phtml"/>
20
+ </reference>
21
+ <reference name="content">
22
+ <block type="core/template" before="content" template="algoliasearch/beforecontent.phtml"/>
23
+ </reference>
24
+
25
+ </algolia_search_handle>
26
+ <algolia_search_handle_with_topsearch>
27
  <reference name="top.search">
28
  <action method="setTemplate"><template>algoliasearch/topsearch.phtml</template></action>
29
  </reference>
30
+ </algolia_search_handle_with_topsearch>
31
+ <algolia_search_handle_no_topsearch>
32
+ <reference name="head">
33
+ <block type="core/template" template="algoliasearch/topsearch.phtml"/>
34
+ </reference>
35
+ </algolia_search_handle_no_topsearch>
36
  </layout>
app/design/frontend/base/default/template/algoliasearch/beforecontent.phtml ADDED
@@ -0,0 +1 @@
 
1
+ <div id="algolia-autocomplete-container"></div>
app/design/frontend/base/default/template/algoliasearch/beforetopsearch.phtml ADDED
@@ -0,0 +1,555 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $config = Mage::helper('algoliasearch/config');
4
+ $catalogSearchHelper = $this->helper('catalogsearch'); /** @var $catalogSearchHelper Mage_CatalogSearch_Helper_Data */
5
+ $algoliaSearchHelper = $this->helper('algoliasearch'); /** @var $algoliaSearchHelper Algolia_Algoliasearch_Helper_Data */
6
+ $product_helper = Mage::helper('algoliasearch/entity_producthelper');
7
+
8
+ $base_url = Mage::getBaseUrl();
9
+
10
+ $isSearchPage = false;
11
+ $isCategoryPage = false;
12
+
13
+ $group_id = Mage::getSingleton('customer/session')->getCustomerGroupId();
14
+ $price_key = $config->isCustomerGroupsEnabled(Mage::app()->getStore()->getStoreId()) ? '.group_'.$group_id : '.default';
15
+
16
+ $allDepartments = "All departments";
17
+
18
+ $query = '';
19
+ $refinement_key = '';
20
+ $refinement_value = '';
21
+ $path = '';
22
+
23
+ /**
24
+ * Handle category replacement
25
+ */
26
+ if($config->isInstantEnabled() && $config->replaceCategories() && Mage::app()->getRequest()->getControllerName() == 'category')
27
+ {
28
+ $category = Mage::registry('current_category');
29
+
30
+ if ($category && $category->getDisplayMode() !== 'PAGE')
31
+ {
32
+ $category->getUrlInstance()->setStore(Mage::app()->getStore()->getStoreId());
33
+
34
+ foreach ($category->getPathIds() as $treeCategoryId) {
35
+ if ($path != '') {
36
+ $path .= ' /// ';
37
+ }
38
+
39
+ $path .= $product_helper->getCategoryName($treeCategoryId, Mage::app()->getStore()->getStoreId());
40
+ }
41
+
42
+ $indexName = $product_helper->getIndexName(Mage::app()->getStore()->getStoreId());
43
+ $category_url = $category->getUrl($category);
44
+ $isSearchPage = true;
45
+ $isCategoryPage = true;
46
+ }
47
+ }
48
+
49
+ /**
50
+ * Handle search
51
+ */
52
+ if ($config->isInstantEnabled())
53
+ {
54
+ $pageIdentifier = Mage::app()->getFrontController()->getAction()->getFullActionName();
55
+
56
+ if ($pageIdentifier === 'catalogsearch_result_index')
57
+ {
58
+ $query = $catalogSearchHelper->getEscapedQueryText();
59
+
60
+ if ($query == '__empty__')
61
+ $query = '';
62
+
63
+ $product_helper = Mage::helper('algoliasearch/entity_producthelper');
64
+
65
+ $refinement_key = Mage::app()->getRequest()->getParam('refinement_key');
66
+
67
+ if ($refinement_key !== null)
68
+ {
69
+ $refinement_value = $query;
70
+ $query = "";
71
+ }
72
+ else
73
+ $refinement_key = "";
74
+
75
+ $isSearchPage = true;
76
+ }
77
+ }
78
+
79
+ if ($base_url[strlen($base_url) - 1] == '/')
80
+ $base_url = substr($base_url, 0, strlen($base_url) - 1);
81
+
82
+ if ($config->isInstantEnabled() && $isSearchPage) {
83
+ // hide the instant-search selector ASAP to remove flickering. Will be re-displayed later with JS
84
+ echo '<style>' . $config->getInstantSelector() . '{ display: none; }</style>';
85
+ }
86
+
87
+ ?>
88
+
89
+ <script>
90
+ document.addEventListener("DOMContentLoaded", function(event) {
91
+ algoliaBundle.$(function ($) {
92
+ window.algoliaConfig = {
93
+ instant: {
94
+ enabled: <?php echo $config->isInstantEnabled() ? "true" : "false"; ?>,
95
+ selector: '<?php echo $config->getInstantSelector(); ?>',
96
+ isAddToCartEnabled: <?php echo $config->isAddToCartEnable() ? "true" : "false"; ?>
97
+ },
98
+ autocomplete: {
99
+ enabled: <?php echo $config->isAutoCompleteEnabled() ? "true" : "false"; ?>,
100
+ selector: '<?php echo $config->getAutocompleteSelector(); ?>',
101
+ sections: <?php echo json_encode($config->getAutocompleteSections()); ?>,
102
+ nbOfProductsSuggestions: '<?php echo $config->getNumberOfProductsSuggestions(); ?>',
103
+ nbOfCategoriesSuggestions: '<?php echo $config->getNumberOfCategoriesSuggestions(); ?>',
104
+ nbOfQueriesSuggestions: '<?php echo $config->getNumberOfQueriesSuggestions(); ?>'
105
+ },
106
+ applicationId: '<?php echo $config->getApplicationID() ?>',
107
+ indexName: '<?php echo $product_helper->getBaseIndexName(); ?>',
108
+ apiKey: '<?php echo $config->getSearchOnlyAPIKey() ?>',
109
+ facets: <?php echo json_encode($config->getFacets()); ?>,
110
+ hitsPerPage: <?php echo (int) $config->getNumberOfProductResults() ?>,
111
+ sortingIndices: <?php echo json_encode(array_values($config->getSortingIndices())); ?>,
112
+ isSearchPage: <?php echo $isSearchPage ? "true" : "false" ?>,
113
+ isCategoryPage: <?php echo $isCategoryPage ? "true" : "false" ?>,
114
+ removeBranding: <?php echo $config->isRemoveBranding() ? "true" : "false"; ?>,
115
+ priceKey: '<?php echo $price_key; ?>',
116
+ currencySymbol: '<?php echo Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol(); ?>',
117
+ autofocus: true,
118
+ request: {
119
+ query:<?php echo json_encode(array("value" => html_entity_decode($query))); ?>.value,
120
+ refinement_key: '<?php echo $refinement_key; ?>',
121
+ refinement_value: '<?php echo $refinement_value; ?>',
122
+ path: '<?php echo $path; ?>'
123
+ },
124
+ showSuggestionsOnNoResultsPage: <?php echo $config->showSuggestionsOnNoResultsPage() ? "true" : "false"; ?>,
125
+ baseUrl: '<?php echo $base_url ?>',
126
+ popularQueries: <?php echo json_encode($config->getPopularQueries()); ?>
127
+ };
128
+
129
+ window.transformHit = function (hit, price_key) {
130
+ if (Array.isArray(hit.categories))
131
+ hit.categories = hit.categories.join(', ');
132
+
133
+ if (Array.isArray(hit.categories_without_path)) {
134
+ hit.categories_without_path = $.map(hit._highlightResult.categories_without_path, function (category) {
135
+ return category.value;
136
+ });
137
+
138
+ hit.categories_without_path = hit.categories_without_path.join(', ');
139
+ }
140
+
141
+ if (Array.isArray(hit.color)) {
142
+ var colors = [];
143
+
144
+ $.each(hit._highlightResult.color, function (i, color) {
145
+ if (color.matchLevel === 'none') {
146
+ return;
147
+ }
148
+ colors.push(color.value);
149
+ });
150
+
151
+ colors = colors.join(', ');
152
+
153
+ hit._highlightResult.color = {value: colors};
154
+ }
155
+ else {
156
+ if (hit._highlightResult.color && hit._highlightResult.color.matchLevel === 'none') {
157
+ hit._highlightResult.color = {value: ''};
158
+ }
159
+ }
160
+
161
+ if (hit._highlightResult.color && hit._highlightResult.color.value && hit.categories_without_path) {
162
+ if (hit.categories_without_path.indexOf('<em>') === -1 && hit._highlightResult.color.value.indexOf('<em>') !== -1) {
163
+ hit.categories_without_path = '';
164
+ }
165
+ }
166
+
167
+
168
+ if (Array.isArray(hit._highlightResult.name))
169
+ hit._highlightResult.name = hit._highlightResult.name[0];
170
+
171
+ if (Array.isArray(hit.price))
172
+ hit.price = hit.price[0];
173
+
174
+ if (price_key !== '.default' && hit['price'][price_key.substr(1) + '_formated'] !== hit['price']['default_formated']) {
175
+ hit['price'][price_key.substr(1) + '_original_formated'] = hit['price']['default_formated'];
176
+ }
177
+
178
+ return hit;
179
+ };
180
+
181
+ window.getFacetWidget = function (facet, templates) {
182
+
183
+ if (facet.type === 'priceRanges') {
184
+ return algoliaBundle.instantsearch.widgets.priceRanges({
185
+ container: facet.wrapper.appendChild(document.createElement('div')),
186
+ attributeName: facet.attribute,
187
+ labels: {
188
+ currency: algoliaConfig.currencySymbol,
189
+ separator: '<?php echo $this->__("to"); ?>',
190
+ button: '<?php echo $this->__("Go"); ?>'
191
+ },
192
+ templates: templates,
193
+ cssClasses: {
194
+ root: 'facet conjunctive'
195
+ }
196
+ })
197
+ }
198
+
199
+ var listItemTemplate = '<label class="{{cssClasses.label}}">' +
200
+ '<input type="checkbox" class="{{cssClasses.checkbox}}" value="{{name}}" {{#isRefined}}checked{{/isRefined}} />{{name}}' +
201
+ '{{#isRefined}}<img class="cross-circle" src="<?php echo Mage::getBaseUrl(); ?>/skin/frontend/base/default/algoliasearch/cross-circle.png"/>{{/isRefined}}' +
202
+ '<span class="{{cssClasses.count}}">{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}</span>' +
203
+ '</label>';
204
+
205
+ if (facet.type === 'conjunctive') {
206
+
207
+ templates.item = listItemTemplate;
208
+ return algoliaBundle.instantsearch.widgets.refinementList({
209
+ container: facet.wrapper.appendChild(document.createElement('div')),
210
+ attributeName: facet.attribute,
211
+ operator: 'and',
212
+ templates: templates,
213
+ cssClasses: {
214
+ root: 'facet conjunctive'
215
+ }
216
+ });
217
+ }
218
+
219
+ if (facet.type === 'disjunctive') {
220
+ templates.item = listItemTemplate;
221
+
222
+ return algoliaBundle.instantsearch.widgets.refinementList({
223
+ container: facet.wrapper.appendChild(document.createElement('div')),
224
+ attributeName: facet.attribute,
225
+ operator: 'or',
226
+ templates: templates,
227
+ cssClasses: {
228
+ root: 'facet disjunctive'
229
+ }
230
+ });
231
+ }
232
+
233
+ if (facet.type == 'slider') {
234
+ return algoliaBundle.instantsearch.widgets.rangeSlider({
235
+ container: facet.wrapper.appendChild(document.createElement('div')),
236
+ attributeName: facet.attribute,
237
+ templates: templates,
238
+ cssClasses: {
239
+ root: 'facet slider'
240
+ },
241
+ tooltips: {
242
+ format: function(formattedValue) {
243
+ return parseInt(formattedValue);
244
+ }
245
+ }
246
+ });
247
+ }
248
+ };
249
+
250
+ window.getAutocompleteSource = function (section, algolia_client, $, i) {
251
+ if (section.hitsPerPage <= 0)
252
+ return null;
253
+
254
+ var options = {
255
+ hitsPerPage: section.hitsPerPage,
256
+ analyticsTags: 'autocomplete'
257
+ };
258
+
259
+ var source;
260
+
261
+ if (section.name === "products") {
262
+ options.facets = ['categories.level0'];
263
+ options.numericFilters = 'visibility_search=1';
264
+
265
+ source = {
266
+ source: $.fn.autocomplete.sources.hits(algolia_client.initIndex(algoliaConfig.indexName + "_" + section.name), options),
267
+ name: section.name,
268
+ templates: {
269
+ empty: function (query) {
270
+ var template = '<div class="aa-no-results-products">' +
271
+ '<div class="title"><?php echo $this->__('No products for query'); ?> "' + query.query + '"</div>';
272
+
273
+ var suggestions = [];
274
+
275
+ if (algoliaConfig.showSuggestionsOnNoResultsPage && algoliaConfig.popularQueries.length > 0) {
276
+ $.each(algoliaConfig.popularQueries.slice(0, Math.min(3, algoliaConfig.popularQueries.length)), function (i, query) {
277
+ query = $('<div>').html(query).text(); // Avoid xss
278
+ suggestions.push('<a href="' + algoliaConfig.baseUrl + '/catalogsearch/result/?q=' + encodeURIComponent(query) + '">' + query + '</a>');
279
+ });
280
+
281
+ template += '<div class="suggestions"><div><?php echo $this->__('You can try one of the popular search queries'); ?></div>';
282
+ template += '<div>' + suggestions.join(', ') + '</div>';
283
+ template += '</div>';
284
+ }
285
+
286
+ template += '<div class="see-all">' + (suggestions.length > 0 ? '<?php echo $this->__('or'); ?> ' : '') + '<a href="' + algoliaConfig.baseUrl + '/catalogsearch/result/?q=__empty__"><?php echo $this->__('See all products'); ?></a></div>' +
287
+ '</div>';
288
+
289
+ return template;
290
+ },
291
+ suggestion: function (hit) {
292
+ hit = transformHit(hit, algoliaConfig.priceKey)
293
+ hit.displayKey = hit.displayKey || hit.name;
294
+ return algoliaConfig.autocomplete.templates[section.name].render(hit);
295
+ }
296
+ }
297
+ };
298
+ }
299
+ else if (section.name === "categories" || section.name === "pages")
300
+ {
301
+ source = {
302
+ source: $.fn.autocomplete.sources.hits(algolia_client.initIndex(algoliaConfig.indexName + "_" + section.name), options),
303
+ name: i,
304
+ templates: {
305
+ empty: '<div class="aa-no-results">No results</div>',
306
+ suggestion: function (hit) {
307
+ if (section.name === 'categories') {
308
+ hit.displayKey = hit.path;
309
+ }
310
+
311
+ if (hit._snippetResult && hit._snippetResult.content && hit._snippetResult.content.value.length > 0) {
312
+ hit.content = hit._snippetResult.content.value;
313
+
314
+ if (hit.content.charAt(0).toUpperCase() !== hit.content.charAt(0)) {
315
+ hit.content = '&#8230; ' + hit.content;
316
+ }
317
+
318
+ if ($.inArray(hit.content.charAt(hit.content.length - 1), ['.', '!', '?'])) {
319
+ hit.content = hit.content + ' &#8230;';
320
+ }
321
+
322
+ if (hit.content.indexOf('<em>') === -1) {
323
+ hit.content = '';
324
+ }
325
+ }
326
+
327
+ hit.displayKey = hit.displayKey || hit.name;
328
+ return algoliaConfig.autocomplete.templates[section.name].render(hit);
329
+ }
330
+ }
331
+ };
332
+ }
333
+ else if (section.name === "suggestions")
334
+ {
335
+ /// popular queries/suggestions
336
+ var suggestions_index = algolia_client.initIndex(algoliaConfig.indexName + "_suggestions");
337
+ var products_index = algolia_client.initIndex(algoliaConfig.indexName + "_products");
338
+
339
+ source = {
340
+ source: $.fn.autocomplete.sources.popularIn(suggestions_index, {
341
+ hitsPerPage: section.hitsPerPage
342
+ }, {
343
+ source: 'query',
344
+ index: products_index,
345
+ facets: ['categories.level0'],
346
+ hitsPerPage: 0,
347
+ typoTolerance: false,
348
+ maxValuesPerFacet: 1,
349
+ analytics: false
350
+ }, {
351
+ includeAll: true,
352
+ allTitle: '<?php echo $this->__($allDepartments) ?>'
353
+ }),
354
+ displayKey: 'query',
355
+ name: section.name,
356
+ templates: {
357
+ suggestion: function (hit) {
358
+ if (hit.facet) {
359
+ hit.category = hit.facet.value;
360
+ }
361
+
362
+ if (hit.facet && hit.facet.value !== "<?php echo $allDepartments; ?>") {
363
+ hit.url = algoliaConfig.baseUrl + '/catalogsearch/result/?q=' + hit.query + '#q=' + hit.query + '&hFR[categories.level0][0]=' + encodeURIComponent(hit.category) + '&idx=' + algoliaConfig.indexName + '_products';
364
+ } else {
365
+ hit.url = algoliaConfig.baseUrl + '/catalogsearch/result/?q=' + hit.query;
366
+ }
367
+ return algoliaConfig.autocomplete.templates.suggestions.render(hit);
368
+ }
369
+ }
370
+ };
371
+ } else {
372
+ /** If is not products, categories, pages or suggestions, it's additional section **/
373
+ var index = algolia_client.initIndex(algoliaConfig.indexName + "_section_" + section.name);
374
+
375
+ source = {
376
+ source: $.fn.autocomplete.sources.hits(index, {
377
+ hitsPerPage: section.hitsPerPage,
378
+ analyticsTags: 'autocomplete'
379
+ }),
380
+ displayKey: 'value',
381
+ name: i,
382
+ templates: {
383
+ suggestion: function (hit) {
384
+ hit.url = algoliaConfig.baseUrl + '/catalogsearch/result/?q=' + hit.value + '&refinement_key=' + section.name;
385
+ return algoliaConfig.autocomplete.templates.additionnalSection.render(hit);
386
+ }
387
+ }
388
+ };
389
+ }
390
+
391
+ if (section.name === 'products') {
392
+ source.templates.footer = function (query, content) {
393
+ var keys = [];
394
+ for (var key in content.facets['categories.level0']) {
395
+ var url = algoliaConfig.baseUrl + '/catalogsearch/result/?q=' + query.query + '#q=' + query.query + '&hFR[categories.level0][0]=' + encodeURIComponent(key) + '&idx=' + algoliaConfig.indexName + '_products';
396
+ keys.push({
397
+ key: key,
398
+ value: content.facets['categories.level0'][key],
399
+ url: url
400
+ });
401
+ }
402
+
403
+ keys.sort(function (a, b) {
404
+ return b.value - a.value;
405
+ });
406
+
407
+ var ors = '';
408
+
409
+ if (keys.length > 0) {
410
+ ors += '<span><a href="' + keys[0].url + '">' + keys[0].key + '</a></span>';
411
+ }
412
+
413
+ if (keys.length > 1) {
414
+ ors += ', <span><a href="' + keys[1].url + '">' + keys[1].key + '</a></span>';
415
+ }
416
+
417
+ var allUrl = algoliaConfig.baseUrl + '/catalogsearch/result/?q=' + query.query;
418
+ return '<div id="autocomplete-products-footer">See products in <span><a href="' + allUrl + '">All departments</a></span> (' + content.nbHits + ') or in ' + ors + '</div>';
419
+ }
420
+ }
421
+
422
+ if (section.name !== 'suggestions' && section.name !== 'products') {
423
+ source.templates.header = '<div class="category">' + (section.label ? section.label : section.name) + '</div>';
424
+ }
425
+
426
+ return source;
427
+ };
428
+
429
+ window.fixAutocompleteCssHeight = function () {
430
+ if ($(document).width() > 768) {
431
+ $(".other-sections").css('min-height', '0');
432
+ $(".aa-dataset-products").css('min-height', '0');
433
+ var height = Math.max($(".other-sections").outerHeight(), $(".aa-dataset-products").outerHeight());
434
+ $(".aa-dataset-products").css('min-height', height);
435
+ }
436
+ };
437
+
438
+ window.fixAutocompleteCssSticky = function (menu) {
439
+ var dropdown_menu = $('#algolia-autocomplete-container .aa-dropdown-menu');
440
+ var autocomplete_container = $('#algolia-autocomplete-container');
441
+ autocomplete_container.removeClass('reverse');
442
+
443
+ /** Reset computation **/
444
+ dropdown_menu.css('top', '0px');
445
+
446
+ /** Stick menu vertically to the input **/
447
+ var targetOffset = Math.round(menu.offset().top + menu.outerHeight());
448
+ var currentOffset = Math.round(autocomplete_container.offset().top);
449
+
450
+ dropdown_menu.css('top', (targetOffset - currentOffset) + 'px');
451
+
452
+ if (menu.offset().left + menu.outerWidth() / 2 > $(document).width() / 2) {
453
+ /** Stick menu horizontally align on right to the input **/
454
+ dropdown_menu.css('right', '0px');
455
+ dropdown_menu.css('left', 'auto');
456
+
457
+ var targetOffset = Math.round(menu.offset().left + menu.outerWidth());
458
+ var currentOffset = Math.round(autocomplete_container.offset().left + autocomplete_container.outerWidth());
459
+
460
+ dropdown_menu.css('right', (currentOffset - targetOffset) + 'px');
461
+ }
462
+ else {
463
+ /** Stick menu horizontally align on left to the input **/
464
+ dropdown_menu.css('left', 'auto');
465
+ dropdown_menu.css('right', '0px');
466
+ autocomplete_container.addClass('reverse');
467
+
468
+ var targetOffset = Math.round(menu.offset().left);
469
+ var currentOffset = Math.round(autocomplete_container.offset().left);
470
+
471
+ dropdown_menu.css('left', (targetOffset - currentOffset) + 'px');
472
+ }
473
+ };
474
+
475
+ $(algoliaConfig.autocomplete.selector).each(function () {
476
+ $(this).closest('form').submit(function (e) {
477
+ var query = $(this).find(algoliaConfig.autocomplete.selector).val();
478
+
479
+ if (algoliaConfig.instant.enabled && query == '')
480
+ query = '__empty__';
481
+
482
+ window.location = $(this).attr('action') + '?q=' + query;
483
+
484
+ return false;
485
+ });
486
+ });
487
+
488
+ function handleInputCrossAutocomplete(input) {
489
+ if (input.val().length > 0) {
490
+ input.closest('#algolia-searchbox').find('.clear-query-autocomplete').show();
491
+ input.closest('#algolia-searchbox').find('svg').hide();
492
+ }
493
+ else {
494
+ input.closest('#algolia-searchbox').find('.clear-query-autocomplete').hide();
495
+ input.closest('#algolia-searchbox').find('svg').show();
496
+ }
497
+ }
498
+
499
+ window.handleInputCrossInstant = function (input) {
500
+ if (input.val().length > 0) {
501
+ input.closest('#instant-search-box').find('.clear-query-instant').show();
502
+ }
503
+ else {
504
+ input.closest('#instant-search-box').find('.clear-query-instant').hide();
505
+ }
506
+ };
507
+
508
+ var instant_selector = !algoliaConfig.autocomplete.enabled ? ".algolia-search-input" : "#instant-search-bar";
509
+
510
+ $(document).on('input', algoliaConfig.autocomplete.selector, function () {
511
+ handleInputCrossAutocomplete($(this));
512
+ });
513
+
514
+ $(document).on('input', instant_selector, function () {
515
+ handleInputCrossInstant($(this));
516
+ });
517
+
518
+ $(document).on('click', '.clear-query-instant', function () {
519
+ var input = $(this).closest('#instant-search-box').find('input');
520
+ input.val('');
521
+ input.get(0).dispatchEvent(new Event('input'));
522
+ handleInputCrossInstant(input);
523
+ });
524
+
525
+ $(document).on('click', '.clear-query-autocomplete', function () {
526
+ var input = $(this).closest('#algolia-searchbox').find('input');
527
+ input.val('');
528
+ handleInputCrossAutocomplete(input);
529
+ });
530
+
531
+
532
+
533
+ /** Handle small screen **/
534
+ $('body').on('click', '#refine-toggle', function () {
535
+ $('#instant-search-facets-container').toggleClass('hidden-sm').toggleClass('hidden-xs');
536
+ if ($(this).html()[0] === '+')
537
+ $(this).html('- Refine');
538
+ else
539
+ $(this).html('+ Refine');
540
+ });
541
+
542
+ $.fn.focusWithoutScrolling = function(){
543
+ var x = window.scrollX, y = window.scrollY;
544
+ this.focus();
545
+ window.scrollTo(x, y);
546
+ };
547
+ });
548
+ });
549
+ </script>
550
+
551
+ <!--[if lte IE 9]>
552
+ <script>
553
+ algoliaConfig.autofocus = false;
554
+ </script>
555
+ <![endif]-->
app/design/frontend/base/default/template/algoliasearch/frontjs.phtml ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <script src="<?php echo Mage::getBaseUrl('js'); ?>algoliasearch/Function.prototype.bind.js"></script>
2
+ <script src="<?php echo Mage::getBaseUrl('js'); ?>algoliasearch/algoliaBundle.min.js"></script>
app/design/frontend/base/default/template/algoliasearch/topsearch.phtml CHANGED
@@ -1,32 +1,25 @@
 
 
 
 
 
 
 
 
1
  <?php
2
  $config = Mage::helper('algoliasearch/config');
3
- $catalogSearchHelper = $this->helper('catalogsearch'); /** @var $catalogSearchHelper Mage_CatalogSearch_Helper_Data */
4
- $algoliaSearchHelper = $this->helper('algoliasearch'); /** @var $algoliaSearchHelper Algolia_Algoliasearch_Helper_Data */
5
- $product_helper = Mage::helper('algoliasearch/entity_producthelper');
6
- $formKey = Mage::getSingleton('core/session')->getFormKey();
7
-
8
- $base_url = Mage::getBaseUrl();
9
-
10
- $isSearchPage = false;;
11
- $hash_path = null;
12
-
13
- $group_id = Mage::getSingleton('customer/session')->getCustomerGroupId();
14
- $price_key = '.default';
15
-
16
- if ($config->isCustomerGroupsEnabled(Mage::app()->getStore()->getStoreId()))
17
- {
18
- $price_key = '.group_'.$group_id;
19
- }
20
 
21
  $title = '';
 
22
  $content = '';
 
23
 
24
- /**
25
- * Handle category replacement
26
- */
27
  if($config->isInstantEnabled() && $config->replaceCategories() && Mage::app()->getRequest()->getControllerName() == 'category')
28
  {
29
  $category = Mage::registry('current_category');
 
30
 
31
  if ($category && $category->getDisplayMode() !== 'PAGE')
32
  {
@@ -34,126 +27,41 @@ if($config->isInstantEnabled() && $config->replaceCategories() && Mage::app()->g
34
 
35
  if ($category->getDisplayMode() == 'PRODUCTS_AND_PAGE')
36
  {
37
- $page = $category->getLandingPage();
38
- $cms_block = Mage::getModel('cms/block')->load($page);
39
- $title = $cms_block->getTitle();
40
- $content = $cms_block->getContent();
41
- }
42
 
43
- $path = '';
 
44
 
45
- foreach ($category->getPathIds() as $treeCategoryId) {
46
- if ($path != '') {
47
- $path .= ' /// ';
 
48
  }
49
-
50
- $path .= $product_helper->getCategoryName($treeCategoryId, Mage::app()->getStore()->getStoreId());
51
- }
52
-
53
- $indexName = $product_helper->getIndexName(Mage::app()->getStore()->getStoreId());
54
- $category_url = $category->getUrl($category);
55
- $hash_path = '#q=&page=0&refinements=%5B%7B%22categories%22%3A%5B%22'.$path.'%22%5D%7D%5D&numerics_refinements=%7B%7D&index_name=%22'.$indexName.'%22';
56
-
57
- $isSearchPage = true;
58
- }
59
- }
60
-
61
- /**
62
- * Handle search
63
- */
64
- if ($config->isInstantEnabled())
65
- {
66
- $pageIdentifier = Mage::app()->getFrontController()->getAction()->getFullActionName();
67
-
68
- if ($pageIdentifier === 'catalogsearch_result_index')
69
- {
70
- $query = $catalogSearchHelper->getEscapedQueryText();
71
-
72
- if ($query == '__empty__')
73
- $query = '';
74
-
75
- $product_helper = Mage::helper('algoliasearch/entity_producthelper');
76
-
77
- $hash_path = '#q='.htmlentities($query, ENT_COMPAT, "UTF-8").'&page=0&refinements=%5B%5D&numerics_refinements=%7B%7D&index_name=%22'.$product_helper->getIndexName().'%22';
78
-
79
- $refinement_key = Mage::app()->getRequest()->getParam('refinement_key');
80
- $refinement_value = Mage::app()->getRequest()->getParam('refinement_value');
81
-
82
- if ($refinement_key !== null)
83
- {
84
- $hash_path = '#q=&page=0&refinements=%5B%7B%22' . $refinement_key . '%22%3A%5B%22' . $refinement_value . '%22%5D%7D%5D&numerics_refinements=%7B%7D&index_name=%22' . $product_helper->getBaseIndexName() . '_products%22';
85
  }
86
-
87
- $isSearchPage = true;
88
  }
89
  }
90
 
91
-
92
- if ($hash_path !== null)
93
- {
94
- echo '<script>if (window.location.hash.length <= 1) { window.location.hash = "'.$hash_path.'"; }</script>';
95
- }
96
-
97
-
98
-
99
- if ($base_url[strlen($base_url) - 1] == '/')
100
- $base_url = substr($base_url, 0, strlen($base_url) - 1);
101
-
102
- if ($config->isInstantEnabled() && $isSearchPage) {
103
- // hide the instant-search selector ASAP to remove flickering. Will be re-displayed later with JS
104
- echo '<style>' . $config->getInstantSelector() . '{ display: none; }</style>';
105
-
106
-
107
- }
108
- ?>
109
-
110
- <!--
111
- //================================
112
- //
113
- // Search box
114
- //
115
- //================================
116
- -->
117
-
118
- <?php
119
-
120
- $types = array();
121
-
122
- if ($config->getNumberOfProductSuggestions() > 0)
123
- $types[] = $this->__('products');
124
-
125
- if ($config->getNumberOfCategorySuggestions() > 0)
126
- $types[] = $this->__('categories');
127
-
128
- if ($config->getNumberOfPageSuggestions() > 0)
129
- $types[] = $this->__('pages');
130
-
131
- $or = count($types) > 1 ? ' '.$this->__('or').' ' : '';
132
-
133
- $placeholder = $this->__('Search');
134
-
135
- if (count($types) > 0)
136
- {
137
- $placeholder = $this->__('Search for'). ' ' . implode(', ', array_slice($types, 0, count($types) - 1)) . $or . $types[count($types) - 1];
138
- }
139
-
140
- $class = $isSearchPage ? 'search-page' : '';
141
 
142
  ?>
143
 
 
144
  <form id="search_mini_form" action="<?php echo $catalogSearchHelper->getResultUrl() ?>" method="get">
145
- <div id="algolia-searchbox" class="<?php echo $class; ?>">
146
  <label for="search"><?php echo $this->__('Search:') ?></label>
147
- <input id="search" type="text" name="<?php echo $catalogSearchHelper->getQueryParamName() ?>" class="input-text" autocomplete="off" spellcheck="false" autocorrect="off" autocapitalize="off" placeholder="<?php echo $placeholder; ?>" />
 
148
  <svg id="algolia-glass" xmlns="http://www.w3.org/2000/svg" class="magnifying-glass" width="24" height="24" viewBox="0 0 128 128" >
149
- <g transform="scale(4)">
150
- <path stroke-width="3" d="M19.5 19.582l9.438 9.438"></path>
151
- <circle stroke-width="3" cx="12" cy="12" r="10.5" fill="none"></circle>
152
- <path d="M23.646 20.354l-3.293 3.293c-.195.195-.195.512 0 .707l7.293 7.293c.195.195.512.195.707 0l3.293-3.293c.195-.195.195-.512 0-.707l-7.293-7.293c-.195-.195-.512-.195-.707 0z" ></path>
153
- </g>
154
  </svg>
155
  </div>
156
  </form>
 
157
 
158
  <!--
159
  //================================
@@ -170,28 +78,35 @@ $class = $isSearchPage ? 'search-page' : '';
170
  <div class="thumb"><img src="{{thumbnail_url}}" /></div>
171
  {{/thumbnail_url}}
172
 
173
- <div class="algoliasearch-autocomplete-price">
174
- <span class="after_special">
175
- {{price<?php echo $price_key; ?>_formated}}
176
- </span>
177
-
178
- {{#price<?php echo $price_key; ?>_original_formated}}
179
- <span class="before_special">
180
- {{price<?php echo $price_key; ?>_original_formated}}
181
- </span>
182
- {{/price<?php echo $price_key; ?>_original_formated}}
183
- </div>
184
-
185
  <div class="info">
186
  {{{_highlightResult.name.value}}}
187
 
188
- {{#categories_without_path}}
189
  <div class="algoliasearch-autocomplete-category">
190
- <?php echo $this->__('in'); ?> {{categories_without_path}}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
191
  </div>
192
- {{/categories_without_path}}
193
  </div>
194
- <div class="clearfix"></div>
195
  </a>
196
  </script>
197
 
@@ -210,14 +125,14 @@ $class = $isSearchPage ? 'search-page' : '';
210
  {{^image_url}}
211
  <div class="info-without-thumb">
212
  {{#_highlightResult.path}}
213
- {{{_highlightResult.path.value}}}
214
  {{/_highlightResult.path}}
215
  {{^_highlightResult.path}}
216
- {{{path}}}
217
  {{/_highlightResult.path}}
218
 
219
  {{#product_count}}
220
- <small>( {{product_count}} )</small>
221
  {{/product_count}}
222
 
223
  </div>
@@ -232,6 +147,11 @@ $class = $isSearchPage ? 'search-page' : '';
232
  <a class="algoliasearch-autocomplete-hit" href="{{url}}">
233
  <div class="info-without-thumb">
234
  {{{_highlightResult.name.value}}}
 
 
 
 
 
235
  </div>
236
  <div class="clearfix"></div>
237
  </a>
@@ -250,11 +170,18 @@ $class = $isSearchPage ? 'search-page' : '';
250
  <!-- Suggestion hit template -->
251
  <script type="text/template" id="autocomplete_suggestions_template">
252
  <a class="algoliasearch-autocomplete-hit" href="{{url}}">
 
 
 
 
 
 
 
253
  <div class="info-without-thumb">
254
  {{{_highlightResult.query.value}}}
255
 
256
  {{#category}}
257
- <span class="text-muted"><?php echo $this->__('in'); ?></span> <span class="category-tag">{{category}}</span>
258
  {{/category}}
259
  </div>
260
  <div class="clearfix"></div>
@@ -274,106 +201,112 @@ $class = $isSearchPage ? 'search-page' : '';
274
 
275
  <!-- Wrapping template -->
276
  <script type="text/template" id="instant_wrapper_template">
277
-
 
 
278
  <div id="algolia_instant_selector"<?php echo count($config->getFacets()) > 0 ? ' class="with-facets"' : '' ?>>
279
 
280
- <div class="row">
281
- <div class="col-md-offset-3 col-md-9">
282
- <div id="algolia-static-content">
283
- <div class="page-title category-title">
284
- <h1><?php echo $title; ?></h1>
285
- </div>
286
- <?php echo $content; ?>
287
- </div>
288
- <div>
289
- {{#second_bar}}
290
- <div id="instant-search-bar-container">
291
- <div id="instant-search-box">
292
- <label for="instant-search-bar">
293
- <?php echo $this->__('Search :'); ?>
294
- </label>
295
-
296
- <input value="<?php echo $catalogSearchHelper->getEscapedQueryText() ?>" placeholder="<?php echo $this->__('Search for products'); ?>" id="instant-search-bar" type="text" autocomplete="off" spellcheck="false" autocorrect="off" autocapitalize="off" />
297
-
298
- <svg xmlns="http://www.w3.org/2000/svg" class="magnifying-glass" width="24" height="24" viewBox="0 0 128 128">
299
- <g transform="scale(4)">
300
- <path stroke-width="3" d="M19.5 19.582l9.438 9.438"></path>
301
- <circle stroke-width="3" cx="12" cy="12" r="10.5" fill="none"></circle>
302
- <path d="M23.646 20.354l-3.293 3.293c-.195.195-.195.512 0 .707l7.293 7.293c.195.195.512.195.707 0l3.293-3.293c.195-.195.195-.512 0-.707l-7.293-7.293c-.195-.195-.512-.195-.707 0z"></path>
303
- </g>
304
- </svg>
305
  </div>
 
306
  </div>
307
- {{/second_bar}}
308
  </div>
309
  </div>
310
- </div>
311
 
312
  <div class="row">
313
  <div class="col-md-3" id="algolia-left-container">
314
  <div id="refine-toggle" class="visible-xs visible-sm">+ <?php echo $this->__('Refine'); ?></div>
315
- <div class="hidden-xs hidden-sm" id="instant-search-facets-container"></div>
 
 
316
  </div>
317
 
318
  <div class="col-md-9" id="algolia-right-container">
319
- <div id="instant-search-results-container"></div>
320
- <div id="instant-search-pagination-container"></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
321
  </div>
322
  </div>
323
 
324
  </div>
325
  </script>
326
 
327
- <!-- Product hit template -->
328
- <script type="text/template" id="instant-content-template">
329
- <div class="hits">
330
- {{#hits.length}}
331
- <div class="infos">
332
- <div class="pull-left">
333
- {{nbHits}} <?php echo $this->__('result'); ?>{{^nbHits_one}}<?php echo $this->__('s'); ?>{{/nbHits_one}} <?php echo $this->__('found'); ?> {{#query}}<?php echo $this->__('matching'); ?> "<strong>{{query}}</strong>" {{/query}}<?php echo $this->__('in'); ?> {{processingTimeMS}} <?php echo $this->__('ms'); ?>
334
- </div>
335
- {{#sorting_indices.length}}
336
- <div class="pull-right">
337
- <?php echo $this->__('Order by'); ?>
338
- <select id="index_to_use">
339
- <option {{#sortSelected}}{{relevance_index_name}}{{/sortSelected}} value="{{relevance_index_name}}"><?php echo $this->__('Relevance'); ?></option>
340
- {{#sorting_indices}}
341
- <option {{#sortSelected}}{{index_name}}{{/sortSelected}} value="{{index_name}}">{{label}}</option>
342
- {{/sorting_indices}}
343
- </select>
344
- </div>
345
- {{/sorting_indices.length}}
346
- <div class="clearfix"></div>
347
- </div>
348
- {{/hits.length}}
349
-
350
- <div class="row">
351
- {{#hits}}
352
- <div class="col-md-4 col-sm-6">
353
- <div class="result-wrapper">
354
- <a href="{{url}}" class="result">
355
- <div class="result-content">
356
- <div class="result-thumbnail">
357
- {{#image_url}}
358
- <img src="{{{ image_url }}}" />
359
- {{/image_url}}
360
- {{^image_url}}
361
- <span class="no-image"></span>
362
- {{/image_url}}
363
- </div>
364
  <div class="result-sub-content">
365
- <h3 class="result-title text-ellipsis">
366
- {{{ _highlightResult.name.value }}}
367
- </h3>
368
  <div class="ratings">
369
  <div class="rating-box">
370
  <div class="rating" style="width:{{rating_summary}}%" width="148" height="148"></div>
371
  </div>
372
  </div>
373
  <div class="price">
374
- <div class="algoliasearch-autocomplete-price">
375
  <div>
376
- <span class="after_special">
377
  {{price<?php echo $price_key; ?>_formated}}
378
  </span>
379
 
@@ -385,141 +318,74 @@ $class = $isSearchPage ? 'search-page' : '';
385
  </div>
386
  </div>
387
  </div>
388
- <div class="result-description text-ellipsis">
389
- {{{ _highlightResult.description.value }}}
390
- </div>
391
-
392
- {{#isAddToCartEnabled}}
393
- {{#in_stock}}
394
-
395
- <form action="<?php echo $base_url; ?>/checkout/cart/add/product/{{objectID}}" method="post">
396
- <input type="hidden" name="form_key" value="<?php echo $formKey; ?>" />
397
-
398
- <input type="hidden" name="qty" value="1">
399
-
400
- <button type="submit"><?php echo $this->__('Add to Cart'); ?></button>
401
- </form>
402
- {{/in_stock}}
403
- {{/isAddToCartEnabled}}
404
  </div>
405
  </div>
406
- <div class="clearfix"></div>
407
- </a>
 
 
 
 
 
 
 
 
 
 
408
  </div>
409
- </div>
410
- {{/hits}}
411
  </div>
412
-
413
- {{^hits.length}}
414
- <div class="no-results">
415
- <?php echo $this->__('No results found matching'); ?> "<strong>{{query}}</strong>". <span class="button clear-button"><?php echo $this->__('Clear query and filters'); ?></span>
416
- </div>
417
- {{/hits.length}}
418
- <div class="clearfix"></div>
419
  </div>
420
  </script>
421
 
422
- <script type="text/template" id="instant-facets-hierarchical-template">
423
- {{#data}}
424
- <div style="padding-left: 10px; padding-right: 0px;" class="hierarchical_facet">
425
- <div data-name="{{attribute}}" data-path="{{path}}" data-type="hierarchical" class="{{#isRefined}}checked {{/isRefined}}sub_facet hierarchical {{#empty}}empty{{/empty}}">
426
- <input style="display: none;" data-attribute="{{attribute}}" {{#isRefined}}checked{{/isRefined}} data-name="{{name}}" class="facet_value" type="checkbox" />
427
- {{name}}
428
- {{#count}}<span class="count">{{count}}</span>{{/count}}
429
- </div>
430
- {{>facet_hierarchical}}
431
- </div>
432
- {{/data}}
433
  </script>
434
 
435
- <!-- Facet template -->
436
- <script type="text/template" id="instant-facets-template">
437
- <div class="facets">
438
- {{#facets}}
439
- {{#count}}
440
- <div class="facet">
441
- <div class="name">
442
- {{ facet_categorie_name }}
443
- </div>
444
- <div>
445
- {{#sub_facets}}
446
-
447
- {{#type.menu}}
448
- <div data-attribute="{{attribute}}" data-name="{{nameattr}}" data-type="menu" class="{{#checked}}checked {{/checked}}sub_facet menu {{#empty}}empty{{/empty}}">
449
- <input style="display: none;" data-attribute="{{attribute}}" {{#checked}}checked{{/checked}} data-name="{{nameattr}}" class="facet_value" type="checkbox" />
450
- {{name}}
451
- {{#print_count}}<span class="count">{{count}}</span>{{/print_count}}
452
- </div>
453
- {{/type.menu}}
454
-
455
- {{#type.conjunctive}}
456
- <div data-name="{{attribute}}" data-type="conjunctive" class="{{#checked}}checked {{/checked}}sub_facet conjunctive {{#empty}}empty{{/empty}}">
457
- <input style="display: none;" data-attribute="{{attribute}}" {{#checked}}checked{{/checked}} data-name="{{nameattr}}" class="facet_value" type="checkbox" />
458
- {{name}}
459
- {{#count}}<span class="count">{{count}}</span>{{/count}}
460
- </div>
461
- {{/type.conjunctive}}
462
-
463
- {{#type.slider}}
464
- <div class="algolia-slider algolia-slider-true" data-attribute="{{attribute}}" data-min="{{min}}" data-max="{{max}}"></div>
465
- <div class="algolia-slider-info">
466
- <div class="min" style="float: left;">{{current_min}}</div>
467
- <div class="max" style="float: right;">{{current_max}}</div>
468
- <div class="clearfix"></div>
469
- </div>
470
- {{/type.slider}}
471
-
472
- {{#type.disjunctive}}
473
- <div data-name="{{attribute}}" data-type="disjunctive" class="{{#checked}}checked {{/checked}}sub_facet disjunctive {{#empty}}empty{{/empty}}">
474
- <input data-attribute="{{attribute}}" {{#checked}}checked{{/checked}} data-name="{{nameattr}}" class="facet_value" type="checkbox" />
475
- {{name}}
476
- {{#count}}<span class="count">{{count}}</span>{{/count}}
477
- </div>
478
- {{/type.disjunctive}}
479
 
480
- {{#type.hierarchical}}
481
- <div style="margin-left: -10px;">
482
- {{>facet_hierarchical}}
483
- </div>
484
- {{/type.hierarchical}}
485
 
486
- {{/sub_facets}}
487
- </div>
488
- </div>
489
- {{/count}}
490
- {{/facets}}
 
 
 
 
 
 
 
 
491
  </div>
492
  </script>
493
 
494
- <!-- Pagination template -->
495
- <script type="text/template" id="instant-pagination-template">
496
- <div class="pagination-wrapper">
497
- <div class="text-center">
498
- <ul class="algolia-pagination">
499
- <a href="#" data-page="{{prev_page}}">
500
- <li {{^prev_page}}class="disabled"{{/prev_page}}>
501
- &laquo;
502
- </li>
503
- </a>
504
-
505
- {{#pages}}
506
- <a href="#" data-page="{{number}}">
507
- <li class="{{#current}}active{{/current}}{{#disabled}}disabled{{/disabled}}">
508
- {{ number }}
509
- </li>
510
- </a>
511
- {{/pages}}
512
- <a href="#" data-page="{{next_page}}">
513
- <li {{^next_page}}class="disabled"{{/next_page}}>
514
- &raquo;
515
- </li>
516
- </a>
517
- </ul>
518
  </div>
519
  </div>
520
  </script>
521
 
522
-
523
  <!--
524
  //================================
525
  //
@@ -532,1206 +398,362 @@ $class = $isSearchPage ? 'search-page' : '';
532
  <script type="text/javascript">
533
  //<![CDATA[
534
 
535
- algoliaBundle.$(function($) {
536
- var supportsHistory = window.history && window.history.pushState;
537
-
538
- var algoliaConfig = {
539
- instant: {
540
- enabled: <?php echo $config->isInstantEnabled() ? "true" : "false"; ?>,
541
- selector: '<?php echo $config->getInstantSelector(); ?>',
542
- isAddToCartEnabled: <?php echo $config->isAddToCartEnable() ? "true" : "false"; ?>
543
- },
544
- autocomplete: {
545
- enabled: <?php echo $config->isAutoCompleteEnabled() ? "true" : "false"; ?>,
546
- selector: '#search',
547
- hitsPerPage: {
548
- products: <?php echo (int) $config->getNumberOfProductSuggestions() ?>,
549
- categories: <?php echo (int) $config->getNumberOfCategorySuggestions() ?>,
550
- pages: <?php echo (int) $config->getNumberOfPageSuggestions() ?>,
551
- suggestions: <?php echo (int) $config->getNumberOfQuerySuggestions() ?>
552
- },
553
- templates: {
554
- suggestions: algoliaBundle.Hogan.compile($('#autocomplete_suggestions_template').html()),
555
- products: algoliaBundle.Hogan.compile($('#autocomplete_products_template').html()),
556
- categories: algoliaBundle.Hogan.compile($('#autocomplete_categories_template').html()),
557
- pages: algoliaBundle.Hogan.compile($('#autocomplete_pages_template').html()),
558
- additionnalSection: algoliaBundle.Hogan.compile($('#autocomplete_extra_template').html()),
559
- },
560
- titles: {
561
- products: '<?php echo $this->__('Products'); ?>',
562
- categories: '<?php echo $this->__('Categories') ?>',
563
- pages: '<?php echo $this->__('Pages') ?>',
564
- suggestions: '<?php echo $this->__('Suggestions') ?>'
565
- },
566
- additionnalSection: <?php echo json_encode($config->getAutocompleteAdditionnalSections()); ?>
567
- },
568
- applicationId: '<?php echo $config->getApplicationID() ?>',
569
- indexName: '<?php echo $product_helper->getBaseIndexName(); ?>',
570
- apiKey: '<?php echo $config->getSearchOnlyAPIKey() ?>',
571
- facets: <?php echo json_encode($config->getFacets()); ?>,
572
- hitsPerPage: <?php echo (int) $config->getNumberOfProductResults() ?>,
573
- sortingIndices: <?php echo json_encode(array_values($config->getSortingIndices())); ?>,
574
- isSearchPage: <?php echo $isSearchPage ? "true" : "false" ?>,
575
- removeBranding: <?php echo $config->isRemoveBranding() ? "true" : "false"; ?>
576
- };
577
-
578
-
579
- $('#search').closest('form').submit(function(e) {
580
- var query = $('#search').val();
581
-
582
- if (algoliaConfig.instant.enabled && query == '')
583
- query = '__empty__';
584
-
585
- var url = $(this).attr('action') + '?q=' + query;
586
-
587
- window.location = url;
588
-
589
- return false;
590
- });
591
-
592
- /*****************
593
- **
594
- ** INITIALIZATION
595
- **
596
- *****************/
597
-
598
- var algolia_client = algoliaBundle.algoliasearch(algoliaConfig.applicationId, algoliaConfig.apiKey);
599
-
600
- /**
601
- * Foreach Type decide if it need to have a conjunctive or dijunctive faceting
602
- * When you create a custom facet type you need to add it here.
603
- * Example : 'menu'
604
- */
605
- var conjunctive_facets = [];
606
- var hierarchical_facets = [];
607
- var disjunctive_facets = [];
608
- var disjunctive_facets_empty = [];
609
-
610
- for (var i = 0; i < algoliaConfig.facets.length; i++)
611
- {
612
- /** Force categories to be hierarchical **/
613
- if (algoliaConfig.facets[i].attribute == "categories")
614
- algoliaConfig.facets[i].type = "hierarchical";
615
-
616
- if (algoliaConfig.facets[i].attribute.indexOf("price") !== -1)
617
- algoliaConfig.facets[i].attribute = algoliaConfig.facets[i].attribute + '<?php echo $price_key; ?>';
618
-
619
- if (algoliaConfig.facets[i].type == "conjunctive")
620
- conjunctive_facets.push(algoliaConfig.facets[i].attribute);
621
-
622
- if (algoliaConfig.facets[i].type == "disjunctive")
623
- {
624
- disjunctive_facets.push(algoliaConfig.facets[i].attribute);
625
- disjunctive_facets_empty.push(algoliaConfig.facets[i].attribute);
626
- }
627
-
628
- if (algoliaConfig.facets[i].type == "hierarchical")
629
- {
630
- var hierarchical_levels = [];
631
-
632
- for (var l = 0; l < 10; l++)
633
- hierarchical_levels.push('categories.level' + l.toString());
634
-
635
- if (algoliaConfig.facets[i].attribute === 'categories')
636
- hierarchical_facets.push({
637
- name: algoliaConfig.facets[i].attribute,
638
- attributes: hierarchical_levels,
639
- separator: ' /// ',
640
- alwaysGetRootLevel: true,
641
- sortBy: ['name:asc']
642
- });
643
- else
644
- disjunctive_facets.push(algoliaConfig.facets[i].attribute);
645
- }
646
-
647
- if (algoliaConfig.facets[i].type == "slider")
648
- disjunctive_facets.push(algoliaConfig.facets[i].attribute);
649
-
650
- if (algoliaConfig.facets[i].type == "menu")
651
- {
652
- disjunctive_facets.push(algoliaConfig.facets[i].attribute);
653
- disjunctive_facets_empty.push(algoliaConfig.facets[i].attribute);
654
- }
655
- }
656
-
657
- var helper = algoliaBundle.algoliasearchHelper(algolia_client, algoliaConfig.indexName + '_products', {
658
- facets: conjunctive_facets,
659
- disjunctiveFacets: disjunctive_facets,
660
- hierarchicalFacets: hierarchical_facets,
661
- hitsPerPage: algoliaConfig.hitsPerPage,
662
- analyticsTags: 'instant-search'
663
- });
664
-
665
- helper.setQuery('');
666
-
667
- var helper_empty = algoliaBundle.algoliasearchHelper(algolia_client, algoliaConfig.indexName + '_products', {
668
- facets: conjunctive_facets,
669
- disjunctiveFacets: disjunctive_facets_empty,
670
- hierarchicalFacets: hierarchical_facets,
671
- hitsPerPage: algoliaConfig.hitsPerPage,
672
- analyticsTags: 'instant-search'
673
- });
674
-
675
- helper_empty.setQuery('');
676
-
677
- /**
678
- * Helper functions
679
- */
680
- var history_timeout;
681
- var custom_facets_types = [];
682
-
683
- custom_facets_types["slider"] = function (helper, content, facet) {
684
-
685
- if (content.getFacetByName(facet.attribute) !== undefined)
686
- {
687
- var min = content.getFacetByName(facet.attribute).stats.min;
688
- var max = content.getFacetByName(facet.attribute).stats.max;
689
-
690
- var current_min = helper.state.getNumericRefinement(facet.attribute, ">=");
691
- var current_max = helper.state.getNumericRefinement(facet.attribute, "<=");
692
-
693
- if (current_min == undefined)
694
- current_min = min;
695
-
696
- if (current_max == undefined)
697
- current_max = max;
698
-
699
- var params = {
700
- type: {},
701
- current_min: Math.floor(current_min),
702
- current_max: Math.ceil(current_max),
703
- count: min == max ? 0 : 1,
704
- min: Math.floor(min),
705
- max: Math.ceil(max)
706
- };
707
-
708
- params.type[facet.type] = true;
709
-
710
- return [params];
711
- }
712
-
713
- return [];
714
- };
715
-
716
- var updateUrl = function (push_state) {
717
-
718
- var refinements = [];
719
-
720
- /** Get refinements for conjunctive facets **/
721
- for (var refine in helper.state.facetsRefinements)
722
- {
723
- if (helper.state.facetsRefinements[refine])
724
- {
725
- var r = {};
726
 
727
- r[refine] = helper.state.facetsRefinements[refine];
728
 
729
- refinements.push(r);
730
- }
731
- }
732
-
733
- /** Get refinements for disjunctive facets **/
734
- for (var refine in helper.state.disjunctiveFacetsRefinements)
735
  {
736
- var r = {};
737
-
738
- r[refine] = helper.state.disjunctiveFacetsRefinements[refine];
739
-
740
- refinements.push(r);
741
- }
742
 
743
- /** Get refinements for hierarchical facets **/
744
- for (var refine in helper.state.hierarchicalFacetsRefinements)
745
- {
746
- var r = {};
747
 
748
- r[refine] = helper.state.hierarchicalFacetsRefinements[refine];
749
 
750
- refinements.push(r);
751
- }
752
 
753
- var url = '#q=' + encodeURIComponent(helper.state.query) +
754
- '&page=' + helper.getCurrentPage() +
755
- '&refinements=' + encodeURIComponent(JSON.stringify(refinements)) +
756
- '&numerics_refinements=' + encodeURIComponent(JSON.stringify(helper.state.numericRefinements)) +
757
- '&index_name=' + encodeURIComponent(JSON.stringify(helper.getIndex()));
758
 
759
- /** If we have pushState push_state is false wait for one second to push the state in history **/
760
- if (push_state) {
761
- updateBrowserUrlBar(url);
762
- }
763
- else
764
- {
765
- clearTimeout(history_timeout);
766
- history_timeout = setTimeout(function() {
767
- updateBrowserUrlBar(url)
768
- }, 1000);
769
- }
770
- };
771
 
772
- var getRefinementsFromUrl = function() {
 
 
 
 
 
 
 
 
 
 
773
 
774
- if (location.hash && location.hash.indexOf('#q=') === 0)
775
- {
776
- var params = location.hash.substring(3);
777
- var pageParamOffset = params.indexOf('&page=');
778
- var refinementsParamOffset = params.indexOf('&refinements=');
779
- var numericsRefinementsParamOffset = params.indexOf('&numerics_refinements=');
780
- var indexNameOffset = params.indexOf('&index_name=');
781
-
782
- var q = decodeURIComponent(params.substring(0, pageParamOffset));
783
- var page = parseInt(params.substring(pageParamOffset + '&page='.length, refinementsParamOffset));
784
- var refinements = JSON.parse(decodeURIComponent(params.substring(refinementsParamOffset + '&refinements='.length, numericsRefinementsParamOffset)));
785
- var numericsRefinements = JSON.parse(decodeURIComponent(params.substring(numericsRefinementsParamOffset + '&numerics_refinements='.length, indexNameOffset)));
786
- var indexName = JSON.parse(decodeURIComponent(params.substring(indexNameOffset + '&index_name='.length)));
787
-
788
- q = $("<div/>").html(q).text();
789
-
790
- helper.setQuery(q);
791
-
792
- helper.clearRefinements();
793
-
794
- /** Set refinements from url data **/
795
- for (var i = 0; i < refinements.length; ++i) {
796
- for (var refine in refinements[i]) {
797
- for (var j = 0; j < refinements[i][refine].length; j++) {
798
- helper.toggleRefine(refine, refinements[i][refine][j]);
799
- helper_empty.toggleRefine(refine, refinements[i][refine][j]);
800
  }
801
  }
802
- }
803
-
804
- for (var key in numericsRefinements)
805
- for (var operator in numericsRefinements[key])
806
- helper.addNumericRefinement(key, operator, numericsRefinements[key][operator]);
807
 
808
- helper.setIndex(indexName).setCurrentPage(page);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
809
 
810
- }
811
- helper.search();
812
- };
 
 
813
 
814
- var getFacets = function (content) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
815
 
816
- var facets = [];
 
817
 
818
- for (var i = 0; i < algoliaConfig.facets.length; i++)
819
- {
820
- var sub_facets = [];
821
 
822
- if (custom_facets_types[algoliaConfig.facets[i].type] != undefined)
823
- {
824
- try
825
- {
826
- var params = custom_facets_types[algoliaConfig.facets[i].type](helper, content, algoliaConfig.facets[i]);
827
-
828
- if (params)
829
- for (var k = 0; k < params.length; k++)
830
- sub_facets.push(params[k]);
831
- }
832
- catch(error)
833
- {
834
- console.log(error);
835
- throw("Bad facet function for '" + algoliaConfig.facets[i].type + "'");
836
  }
837
- }
838
- else
839
- {
840
- var content_facet = content.getFacetByName(algoliaConfig.facets[i].attribute);
841
-
842
- if (content_facet == undefined)
843
- continue;
844
-
845
- for (var key in content_facet.data)
846
- {
847
- var checked = helper.isRefined(algoliaConfig.facets[i].attribute, key);
848
 
849
- var nameattr = window.facetsLabels && window.facetsLabels[key] != undefined ? window.facetsLabels[key] : key;
850
- var explode = nameattr.split(' /// ');
851
- var name = explode[explode.length - 1];
852
 
853
- var params = {
854
- type: {},
855
- checked: checked,
856
- nameattr: nameattr,
857
- name: name,
858
- count: content_facet.data[key]
859
- };
860
 
861
- params.type[algoliaConfig.facets[i].type] = true;
 
862
 
863
- sub_facets.push(params);
 
 
 
 
864
  }
865
 
866
- sub_facets.sort(function sortByCheckedThenCount(f1, f2) {
867
- if (f1.checked !== f2.checked)
868
- return f1.checked ? -1 : 1;
869
-
870
- if (f2.count !== f1.count)
871
- return f2.count - f1.count;
872
 
873
- return f1.name.localeCompare(f2.name);
 
 
874
  });
875
-
876
- }
877
-
878
- var label = algoliaConfig.facets[i].label !== "" ? algoliaConfig.facets[i].label : algoliaConfig.facets[i].attribute;
879
-
880
- facets.push({count: sub_facets.length, attribute: algoliaConfig.facets[i].attribute, facet_categorie_name: label, sub_facets: sub_facets });
881
- }
882
-
883
- return facets;
884
- };
885
-
886
- var getPages = function (content) {
887
- var pages = [];
888
- if (content.page > 5)
889
- {
890
- pages.push({ current: false, number: 1 });
891
- pages.push({ current: false, number: '...', disabled: true });
892
- }
893
-
894
- for (var p = content.page - 5; p < content.page + 5; ++p)
895
- {
896
- if (p < 0 || p >= content.nbPages)
897
- continue;
898
-
899
- pages.push({ current: content.page == p, number: (p + 1) });
900
- }
901
- if (content.page + 5 < content.nbPages)
902
- {
903
- pages.push({ current: false, number: '...', disabled: true });
904
- pages.push({ current: false, number: content.nbPages });
905
- }
906
-
907
- return pages;
908
- };
909
-
910
- var sortSelected = function () {
911
- return function (val) {
912
- var template = algoliaBundle.Hogan.compile(val);
913
-
914
- var renderer = function(context) {
915
- return function(text) {
916
- return template.c.compile(text, template.options).render(context);
917
- };
918
- };
919
-
920
- var render = renderer(this);
921
-
922
- var index_name = render(val);
923
-
924
- if (index_name == helper.getIndex())
925
- return "selected";
926
- return "";
927
- }
928
- };
929
-
930
- var gotoPage = function(page) {
931
- helper.setCurrentPage(+page - 1);
932
- };
933
-
934
- var getDate = function () {
935
- return function (val) {
936
- var template = algoliaBundle.Hogan.compile(val);
937
-
938
- var renderer = function(context) {
939
- return function(text) {
940
- return template.c.compile(text, template.options).render(context);
941
- };
942
- };
943
-
944
- var render = renderer(this);
945
-
946
- var timestamp = render(val);
947
-
948
-
949
- var date = new Date(timestamp * 1000);
950
-
951
- var days = ["<?php echo $this->__('Sunday'); ?>", "<?php echo $this->__('Monday'); ?>", "<?php echo $this->__('Tuesday'); ?>", "<?php echo $this->__('Wednesday'); ?>", "<?php echo $this->__('Thursday'); ?>", "<?php echo $this->__('Friday'); ?>", "<?php echo $this->__('Saturday'); ?>"];
952
- var months = ["<?php echo $this->__('January'); ?>", "<?php echo $this->__('February'); ?>", "<?php echo $this->__('March'); ?>", "<?php echo $this->__('April'); ?>", "<?php echo $this->__('May'); ?>", "<?php echo $this->__('June'); ?>", "<?php echo $this->__('July'); ?>", "<?php echo $this->__('August'); ?>", "<?php echo $this->__('September'); ?>", "<?php echo $this->__('October'); ?>", "<?php echo $this->__('November'); ?>", "<?php echo $this->__('December'); ?>"];
953
-
954
- var day = date.getDate();
955
-
956
- if (day == 1)
957
- day += "<?php echo $this->__('st'); ?>";
958
- else if (day == 2)
959
- day += "<?php echo $this->__('nd'); ?>";
960
- else if (day == 3)
961
- day += "<?php echo $this->__('rd'); ?>";
962
- else
963
- day += "<?php echo $this->__('th'); ?>";
964
-
965
- return days[date.getDay()] + ", " + months[date.getMonth()] + " " + day + ", " + date.getFullYear();
966
- }
967
- };
968
-
969
- /*****************
970
- **
971
- ** RENDERING HELPERS
972
- **
973
- *****************/
974
-
975
- function getHtmlForPagination(paginationTemplate, content, pages, facets) {
976
- var pagination_html = paginationTemplate.render({
977
- pages: pages,
978
- facets_count: facets.length,
979
- prev_page: (content.page > 0 ? content.page : false),
980
- next_page: (content.page + 1 < content.nbPages ? content.page + 2 : false)
981
- });
982
-
983
- return pagination_html;
984
- }
985
-
986
- function getHtmlForResults(resultsTemplate, content, facets) {
987
-
988
- var results_html = resultsTemplate.render({
989
- facets_count: facets.length,
990
- getDate: getDate,
991
- relevance_index_name: algoliaConfig.indexName + '_products',
992
- sorting_indices: algoliaConfig.sortingIndices,
993
- sortSelected: sortSelected,
994
- hits: content.hits,
995
- nbHits: content.nbHits,
996
- nbHits_zero: (content.nbHits === 0),
997
- nbHits_one: (content.nbHits === 1),
998
- nbHits_many: (content.nbHits > 1),
999
- query: helper.state.query,
1000
- processingTimeMS: content.processingTimeMS,
1001
- isAddToCartEnabled: algoliaConfig.instant.isAddToCartEnabled
1002
- });
1003
-
1004
- return results_html;
1005
- }
1006
-
1007
- function getHtmlForFacets(facetsTemplate, facets, empty) {
1008
-
1009
- var facets_html = facetsTemplate.render({
1010
- facets: facets,
1011
- count: facets.length,
1012
- getDate: getDate,
1013
- relevance_index_name: algoliaConfig.indexName + '_products',
1014
- sorting_indices: algoliaConfig.sortingIndices,
1015
- sortSelected: sortSelected,
1016
- empty: empty
1017
- }, {
1018
- facet_hierarchical: facet_hierarchical
1019
- });
1020
-
1021
- return facets_html;
1022
- }
1023
-
1024
- /*****************
1025
- **
1026
- ** AUTOCOMPLETION MENU
1027
- **
1028
- *****************/
1029
-
1030
- if (algoliaConfig.autocomplete.enabled)
1031
- {
1032
- var params = {};
1033
-
1034
- var hogan_objs = [];
1035
-
1036
- var indices = ['categories', 'products', 'pages'];
1037
- var indices_with_suffix = ['categories', 'products', 'pages'];
1038
-
1039
- if (algoliaConfig.autocomplete.hitsPerPage['suggestions'] > 0)
1040
- {
1041
- var suggestions_index = algolia_client.initIndex(algoliaConfig.indexName + "_suggestions");
1042
- var products_index = algolia_client.initIndex(algoliaConfig.indexName + "_products");
1043
-
1044
- hogan_objs.push({
1045
- displayKey: 'query',
1046
- source: function (query, cb) {
1047
- suggestions_index.search(query, {
1048
- hitsPerPage: algoliaConfig.autocomplete.hitsPerPage['suggestions'],
1049
- analyticsTags: 'autocomplete'
1050
- }, function (err, content) {
1051
- if (err)
1052
- return;
1053
-
1054
- if (content.hits.length > 0) {
1055
- products_index.search(content.hits[0].query, {
1056
- facets: ['categories.level0'],
1057
- hitsPerPage: 0,
1058
- typoTolerance: false,
1059
- maxValuesPerFacet: 3,
1060
- analyticsTags: 'instant-search'
1061
- }, function (err2, content2) {
1062
-
1063
- if (err2)
1064
- {
1065
- cb([]);
1066
- return;
1067
- }
1068
-
1069
- var hits = [];
1070
-
1071
- var categories = {};
1072
-
1073
- if (content2.facets['categories.level0']) {
1074
-
1075
- var obj = $.extend(true, {}, content.hits[0]);
1076
- obj.category = '<?php echo $this->__('All departments') ?>';
1077
- obj.url = '<?php echo $base_url; ?>/catalogsearch/result/?q=' + obj.query;
1078
- hits.push(obj);
1079
-
1080
- for (var key in content2.facets['categories.level0']) {
1081
-
1082
- var explode = key.split(' /// ');
1083
- var nameattr = explode[0];
1084
-
1085
- categories[nameattr] = 1;
1086
- }
1087
-
1088
- for (var key in categories)
1089
- {
1090
- var obj = $.extend(true, {}, content.hits[0]);
1091
- obj.category = key;
1092
- obj.url = '<?php echo $base_url; ?>/catalogsearch/result/?q=' + obj.query + '#q=' + obj.query + '&page=0&refinements=%5B%7B%22categories%22%3A%5B%22' + obj.category + '%22%5D%7D%5D&numerics_refinements=%7B%7D&index_name=%22<?php echo $product_helper->getBaseIndexName(); ?>_products%22';
1093
- hits.push(obj);
1094
- }
1095
- }
1096
- else
1097
- {
1098
- var obj = $.extend(true, {}, content.hits[0]);
1099
- obj.url = '<?php echo $base_url; ?>/catalogsearch/result/?q=' + obj.query;
1100
- hits.push(obj);
1101
- }
1102
-
1103
- for (var k = 1; k < content.hits.length; k++)
1104
- {
1105
- var obj = $.extend(true, {}, content.hits[k]);
1106
- obj.url = '<?php echo $base_url; ?>/catalogsearch/result/?q=' + obj.query;
1107
- hits.push(obj);
1108
- }
1109
-
1110
-
1111
- for (var k = 0; k < hits.length; k++)
1112
- hits[k].query = content.query;
1113
-
1114
- cb(hits);
1115
- });
1116
- }
1117
- else
1118
- cb([]);
1119
- });
1120
- },
1121
- templates: {
1122
- suggestion: function (hit) {
1123
- return algoliaConfig.autocomplete.templates['suggestions'].render(hit);
1124
- }
1125
- }
1126
  });
1127
- }
1128
 
1129
- for (var i = 0; i < indices.length; i++)
1130
- {
1131
- if (algoliaConfig.autocomplete.hitsPerPage[indices[i]] > 0)
1132
- {
1133
- var index = algolia_client.initIndex(algoliaConfig.indexName + "_" + indices_with_suffix[i]);
1134
-
1135
- hogan_objs.push({
1136
- source: (function (index, i) {
1137
- return function (query, cb) {
1138
- index.search(query, {
1139
- hitsPerPage: algoliaConfig.autocomplete.hitsPerPage[indices[i]],
1140
- analyticsTags: 'autocomplete'
1141
- }, function (err, content) {
1142
- if (err)
1143
- {
1144
- cb([]);
1145
- return;
1146
- }
1147
-
1148
- for (var k = 0; k < content.hits.length; k++)
1149
- content.hits[k].query = content.query;
1150
-
1151
- cb(content.hits);
1152
- });
1153
- }
1154
- })(index, i),
1155
- displayKey: 'query',
1156
  templates: {
1157
- header: '<div class="category">' + algoliaConfig.autocomplete.titles[indices[i]] + '</div>',
1158
- suggestion: (function (i) {
1159
- return function (hit) {
1160
- if (indices[i] == 'products')
1161
- {
1162
- var time = Math.floor(Date.now() / 1000);
1163
-
1164
- if ((hit.special_price_from_date != undefined && (hit.special_price_from_date > time && hit.special_price_from_date !== '')) ||
1165
- (hit.special_price_to_date != undefined && (hit.special_price_to_date < time && hit.special_price_to_date !== '')))
1166
- {
1167
- delete hit.special_price_from_date;
1168
- delete hit.special_price_to_date;
1169
- delete hit.special_price;
1170
- delete hit.special_price_with_tax;
1171
- delete hit.special_price_formated;
1172
- delete hit.special_price_with_tax_formated;
1173
- }
1174
-
1175
- if (Array.isArray(hit.categories_without_path))
1176
- hit.categories_without_path = hit.categories_without_path.join(', ');
1177
-
1178
- if (Array.isArray(hit._highlightResult.name)) {
1179
- hit._highlightResult.name = hit._highlightResult.name[0];
1180
- hit.displayKey = hit.name[0];
1181
- }
1182
-
1183
- if (Array.isArray(hit.price))
1184
- hit.price = hit.price[0];
1185
-
1186
- if ('<?php echo $price_key; ?>' !== '.default' && hit['price']['<?php echo $price_key; ?>'.substr(1) + '_formated'] !== hit['price']['default_formated'])
1187
- {
1188
- hit['price']['<?php echo $price_key; ?>'.substr(1) + '_original_formated'] = hit['price']['default_formated'];
1189
- }
1190
-
1191
- }
1192
-
1193
- if (indices[i] == 'categories')
1194
- {
1195
- hit.displayKey = hit.path;
1196
- }
1197
-
1198
- hit.displayKey = hit.displayKey || hit.name;
1199
-
1200
- return algoliaConfig.autocomplete.templates[indices[i]].render(hit);
1201
- }
1202
- })(i)
1203
- }
1204
- });
1205
- }
1206
- }
1207
-
1208
- for (var i = 0; i < algoliaConfig.autocomplete.additionnalSection.length; i++)
1209
- {
1210
- var index = algolia_client.initIndex(algoliaConfig.indexName + "_section_" + algoliaConfig.autocomplete.additionnalSection[i].attribute);
1211
-
1212
- var label = algoliaConfig.autocomplete.additionnalSection[i].label !== "" ?
1213
- algoliaConfig.autocomplete.additionnalSection[i].label : algoliaConfig.autocomplete.additionnalSection[i].attribute;
1214
-
1215
- hogan_objs.push({
1216
- source: (function (index, i) {
1217
- return function (query, cb) {
1218
- index.search(query, {
1219
- hitsPerPage: algoliaConfig.autocomplete.additionnalSection[i].hitsPerPage,
1220
- analyticsTags: 'autocomplete'
1221
- }, function (err, content) {
1222
- if (err)
1223
- {
1224
- cb([]);
1225
- return;
1226
- }
1227
-
1228
- cb(content.hits);
1229
- });
1230
- }
1231
- })(index, i),
1232
- displayKey: 'value',
1233
- templates: {
1234
- header: '<div class="category">' + label + '</div>',
1235
- suggestion: (function (i) {
1236
- return function (hit) {
1237
- hit.url = '<?php echo $base_url; ?>/catalogsearch/result/?q=' + hit.value + '&refinement_key=' + algoliaConfig.autocomplete.additionnalSection[i].attribute + "&refinement_value=" + hit.value;
1238
-
1239
- return algoliaConfig.autocomplete.templates.additionnalSection.render(hit);
1240
- }
1241
- })(i)
1242
- }
1243
- });
1244
- }
1245
 
1246
- if (algoliaConfig.removeBranding === false)
1247
- {
1248
- hogan_objs.push({
1249
- source: function findMatches(q, cb) {
1250
- return cb(["algolia-branding"]);
1251
- },
1252
- displayKey: 'title',
1253
- templates: {
1254
- suggestion: function (hit) {
1255
- return '<div class="footer_algolia"><a href="https://www.algolia.com/?utm_source=magento&utm_medium=link&utm_campaign=magento_autocompletion_menu" target="_blank"><img src="<?php echo $base_url; ?>/skin/frontend/base/default/algoliasearch/algolia-logo.png" /></a></div>';
1256
  }
1257
  }
1258
  });
1259
- }
1260
-
1261
- $(algoliaConfig.autocomplete.selector).each(function (i) {
1262
- var tt = $(this)
1263
- .typeahead({hint: false}, hogan_objs)
1264
- .parent()
1265
- .attr('id', 'algolia-autocomplete-tt');
1266
-
1267
- $(this).on('typeahead:selected', function (e, item) {
1268
- autocomplete = false;
1269
- instant = false;
1270
- window.location.href = item.url;
1271
- });
1272
- });
1273
-
1274
- $("#algolia-glass").click(function () {
1275
- $(this).closest('form').submit();
1276
- });
1277
- }
1278
-
1279
- /*****************
1280
- **
1281
- ** INSTANT RESULTS PAGE SEARCH
1282
- **
1283
- *****************/
1284
-
1285
- if (algoliaConfig.instant.enabled && (<?php echo $isSearchPage ? "true" : "false"; ?> || ! algoliaConfig.autocomplete.enabled))
1286
- {
1287
- if ($(algoliaConfig.instant.selector).length !== 1)
1288
- throw '[Algolia] Invalid instant-search selector: ' + algoliaConfig.instant.selector;
1289
-
1290
- if (algoliaConfig.autocomplete.enabled && $(algoliaConfig.instant.selector).find(algoliaConfig.autocomplete.selector).length > 0)
1291
- throw '[Algolia] You can\'t have a search input matching "' + algoliaConfig.autocomplete.selector +
1292
- '" inside you instant selector "' + algoliaConfig.instant.selector + '"';
1293
-
1294
- var instant_selector = ! algoliaConfig.autocomplete.enabled ? "#search" : "#instant-search-bar";
1295
-
1296
- var wrapperTemplate = algoliaBundle.Hogan.compile($('#instant_wrapper_template').html());
1297
-
1298
- var initialized = false;
1299
-
1300
- var resultsTemplate = algoliaBundle.Hogan.compile($('#instant-content-template').html());
1301
- var facetsTemplate = algoliaBundle.Hogan.compile($('#instant-facets-template').html());
1302
- var paginationTemplate = algoliaBundle.Hogan.compile($('#instant-pagination-template').html());
1303
- var facet_hierarchical = algoliaBundle.Hogan.compile($('#instant-facets-hierarchical-template').html());
1304
-
1305
-
1306
- function performQueries(push_state)
1307
- {
1308
- helper.search();
1309
-
1310
- updateUrl(push_state);
1311
- }
1312
-
1313
- function searchCallbackEmpty(content)
1314
- {
1315
- var instant_search_facets_container = $('#instant-search-facets-container');
1316
-
1317
- var facets = getFacets(content);
1318
-
1319
- instant_search_facets_container.html(getHtmlForFacets(facetsTemplate, facets, true));
1320
- }
1321
-
1322
- function searchCallback(content)
1323
- {
1324
- if (initialized === false)
1325
- {
1326
- $(algoliaConfig.instant.selector).html(wrapperTemplate.render({ second_bar: algoliaConfig.autocomplete.enabled })).show();
1327
- initialized = true;
1328
- }
1329
- /**
1330
- * Modify results to be able to print it with Hogan
1331
- */
1332
- for (var i = 0; i < content.hits.length; ++i)
1333
- {
1334
- if (Array.isArray(content.hits[i].categories))
1335
- content.hits[i].categories = content.hits[i].categories.join(', ');
1336
-
1337
- if (Array.isArray(content.hits[i]._highlightResult.name))
1338
- content.hits[i]._highlightResult.name = content.hits[i]._highlightResult.name[0];
1339
-
1340
- if (Array.isArray(content.hits[i].price))
1341
- content.hits[i].price = content.hits[i].price[0];
1342
-
1343
- var time = Math.floor(Date.now() / 1000);
1344
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1345
 
1346
- if ((content.hits[i].special_price_from_date != undefined && (content.hits[i].special_price_from_date > time && content.hits[i].special_price_from_date !== '')) ||
1347
- (content.hits[i].special_price_to_date != undefined && (content.hits[i].special_price_to_date < time && content.hits[i].special_price_to_date !== '')))
1348
- {
1349
- delete content.hits[i].special_price_from_date;
1350
- delete content.hits[i].special_price_to_date;
1351
- delete content.hits[i].special_price;
1352
- delete content.hits[i].special_price_with_tax;
1353
- delete content.hits[i].special_price_formated;
1354
- delete content.hits[i].special_price_with_tax_formated;
1355
- }
1356
 
1357
- if (content.hits[i].min_formated !== undefined)
1358
- {
1359
- delete content.hits[i].price;
1360
- delete content.hits[i].price_formated;
1361
- delete content.hits[i].price_with_tax;
1362
- delete content.hits[i].price_with_tax_formated;
1363
- }
1364
 
1365
- if ('<?php echo $price_key; ?>' !== '.default' && content.hits[i]['price']['<?php echo $price_key; ?>'.substr(1) + '_formated'] !== content.hits[i]['price']['default_formated'])
1366
- {
1367
- content.hits[i]['price']['<?php echo $price_key; ?>'.substr(1) + '_original_formated'] = content.hits[i]['price']['default_formated'];
1368
  }
 
1369
 
1370
- }
1371
-
1372
- /**
1373
- * Generate HTML
1374
- */
1375
 
1376
- var instant_search_facets_container = $('#instant-search-facets-container');
1377
- var instant_search_results_container = $('#instant-search-results-container');
1378
- var instant_search_pagination_container = $('#instant-search-pagination-container');
1379
 
1380
- instant_search_pagination_container.html('');
1381
 
1382
- var facets = [];
1383
- var pages = [];
 
1384
 
1385
- if (content.hits.length > 0)
1386
- {
1387
- facets = getFacets(content);
1388
- pages = getPages(content);
1389
 
1390
- instant_search_facets_container.html(getHtmlForFacets(facetsTemplate, facets, false));
1391
- }
1392
- else
1393
- {
1394
- helper_empty.search();
1395
- }
1396
 
1397
- instant_search_results_container.html(getHtmlForResults(resultsTemplate, content, facets));
 
 
 
 
 
 
 
 
 
 
 
 
1398
 
1399
- if (content.hits.length > 0)
1400
- instant_search_pagination_container.html(getHtmlForPagination(paginationTemplate, content, pages, facets));
1401
 
1402
- updateSliderValues();
1403
 
1404
  var instant_search_bar = $(instant_selector);
1405
-
1406
  if (instant_search_bar.is(":focus") === false)
1407
  {
1408
  if ($(window).width() > 992) {
1409
- instant_search_bar.focus().val('');
 
 
1410
  }
1411
- instant_search_bar.val(helper.state.query);
1412
  }
1413
- }
1414
-
1415
- helper.on('result', searchCallback);
1416
- helper_empty.on('result', searchCallbackEmpty);
1417
-
1418
- custom_facets_types["hierarchical"] = function (helper, content, facet) {
1419
- var data = [];
1420
-
1421
- var content_facet = content.getFacetByName(facet.attribute);
1422
 
1423
- content_facet.name = window.facetsLabels && window.facetsLabels[content_facet.name] != undefined ? window.facetsLabels[content_facet.name] : content_facet.name;
1424
- content_facet.type = { hierarchical: true };
1425
-
1426
- return [content_facet];
1427
- };
1428
-
1429
- /**
1430
- * Example of a custom facet type
1431
- */
1432
- custom_facets_types["menu"] = function (helper, content, facet) {
1433
-
1434
- var data = [];
1435
-
1436
- var all_count = 0;
1437
- var all_unchecked = true;
1438
-
1439
- var content_facet = content.getFacetByName(facet.attribute);
1440
-
1441
- if (content_facet == undefined)
1442
- return data;
1443
-
1444
- for (var key in content_facet.data)
1445
- {
1446
- var checked = helper.isRefined(facet.attribute, key);
1447
-
1448
- all_unchecked = all_unchecked && !checked;
1449
-
1450
- var name = window.facetsLabels && window.facetsLabels[key] != undefined ? window.facetsLabels[key] : key;
1451
- var explode = name.split(' /// ');
1452
- var nameattr = explode[explode.length - 1];
1453
-
1454
- var params = {
1455
- type: {},
1456
- checked: checked,
1457
- nameattr: nameattr,
1458
- name: name,
1459
- print_count: true,
1460
- count: content_facet.data[key]
1461
- };
1462
 
1463
- all_count += content_facet.data[key];
1464
-
1465
- params.type[facet.type] = true;
1466
-
1467
- data.push(params);
1468
- }
1469
-
1470
- var params = {
1471
- type: {},
1472
- checked: all_unchecked,
1473
- nameattr: 'all',
1474
- name: 'All',
1475
- print_count: false,
1476
- count: all_count
1477
- };
1478
-
1479
- params.type[facet.type] = true;
1480
-
1481
- data.unshift(params);
1482
-
1483
- return data;
1484
- };
1485
-
1486
- /**
1487
- * Handle click on menu custom facet
1488
- */
1489
- $("body").on("click", ".sub_facet.menu", function (e) {
1490
-
1491
- e.stopImmediatePropagation();
1492
-
1493
- if ($(this).hasClass("empty")) {
1494
- helper.setQuery("");
1495
- }
1496
-
1497
- if ($(this).attr("data-name") == "all")
1498
- helper.state.clearRefinements($(this).attr("data-attribute"));
1499
-
1500
- $(this).find("input[type='checkbox']").each(function (i) {
1501
- $(this).prop("checked", !$(this).prop("checked"));
1502
-
1503
- if (false == helper.isRefined($(this).attr("data-attribute"), $(this).attr("data-name")))
1504
- helper.state.clearRefinements($(this).attr("data-attribute"));
1505
-
1506
- if ($(this).attr("data-name") != "all")
1507
- {
1508
- helper.toggleRefine($(this).attr("data-attribute"), $(this).attr("data-name"));
1509
- helper_empty.toggleRefine($(this).attr("data-attribute"), $(this).attr("data-name"));
1510
  }
 
1511
  });
 
1512
 
1513
- performQueries(true);
1514
- });
 
 
 
1515
 
1516
- /**
1517
- * Handle click on hierarchical facet
1518
- */
1519
- $("body").on("click", ".sub_facet.hierarchical", function (e) {
1520
 
1521
- e.stopImmediatePropagation();
 
 
 
1522
 
1523
- if ($(this).hasClass("empty")) {
1524
- helper.setQuery("");
1525
  }
1526
 
1527
- helper.toggleRefine($(this).attr("data-name"), $(this).attr('data-path'));
1528
- helper_empty.toggleRefine($(this).attr("data-name"), $(this).attr('data-path'));
1529
 
1530
- performQueries(true);
1531
- });
 
1532
 
1533
- /**
1534
- * Handle click on conjunctive and disjunctive facet
1535
- */
1536
- $("body").on("click", ".sub_facet", function () {
1537
 
1538
- if ($(this).hasClass("empty")) {
1539
- helper.setQuery("");
1540
- }
1541
 
1542
- $(this).find("input[type='checkbox']").each(function (i) {
1543
- $(this).prop("checked", !$(this).prop("checked"));
1544
-
1545
- helper.toggleRefine($(this).attr("data-attribute"), $(this).attr("data-name"));
1546
- helper_empty.toggleRefine($(this).attr("data-attribute"), $(this).attr("data-name"));
1547
  });
1548
 
1549
- performQueries(true);
1550
- });
1551
-
1552
- /**
1553
- * Handle jquery-ui slider initialisation
1554
- */
1555
- $("body").on("slide", "", function (event, ui) {
1556
- updateSlideInfos(ui);
1557
- });
1558
-
1559
- /**
1560
- * Handle sort change
1561
- */
1562
- $("body").on("change", "#index_to_use", function () {
1563
- helper.setIndex($(this).val());
1564
-
1565
- helper.setCurrentPage(0);
1566
-
1567
- performQueries(true);
1568
- });
1569
-
1570
- /**
1571
- * Handle jquery-ui slide event
1572
- */
1573
- $("body").on("slidechange", ".algolia-slider-true", function (event, ui) {
1574
-
1575
- var slide_dom = $(ui.handle).closest(".algolia-slider");
1576
- var min = slide_dom.slider("values")[0];
1577
- var max = slide_dom.slider("values")[1];
1578
-
1579
- if (parseInt(slide_dom.slider("values")[0]) >= parseInt(slide_dom.attr("data-min")))
1580
- helper.addNumericRefinement(slide_dom.attr("data-attribute"), ">=", min);
1581
- if (parseInt(slide_dom.slider("values")[1]) <= parseInt(slide_dom.attr("data-max")))
1582
- helper.addNumericRefinement(slide_dom.attr("data-attribute"), "<=", max);
1583
-
1584
- if (parseInt(min) == parseInt(slide_dom.attr("data-min")))
1585
- helper.removeNumericRefinement(slide_dom.attr("data-attribute"), ">=");
1586
-
1587
- if (parseInt(max) == parseInt(slide_dom.attr("data-max")))
1588
- helper.removeNumericRefinement(slide_dom.attr("data-attribute"), "<=");
1589
-
1590
- updateSlideInfos(ui);
1591
- performQueries(true);
1592
- });
1593
-
1594
- /**
1595
- * Handle page change
1596
- */
1597
- $("body").on("click", ".algolia-pagination a", function (e) {
1598
- e.preventDefault();
1599
-
1600
- gotoPage($(this).attr("data-page"));
1601
- performQueries(true);
1602
-
1603
- $("body").scrollTop(0);
1604
-
1605
- return false;
1606
- });
1607
-
1608
- /** Handle input clearing **/
1609
- $('body').on('click', '.clear-button', function () {
1610
- $(instant_selector).val('').focus();
1611
- helper.clearRefinements().setQuery('');
1612
-
1613
- performQueries(true);
1614
- });
1615
-
1616
- /** Handle small screen **/
1617
- $('body').on('click', '#refine-toggle', function () {
1618
- $('#instant-search-facets-container').toggleClass('hidden-sm').toggleClass('hidden-xs');
1619
-
1620
- if ($(this).html()[0] === '+')
1621
- $(this).html('- Refine');
1622
- else
1623
- $(this).html('+ Refine');
1624
- });
1625
-
1626
-
1627
- /**
1628
- * Handle search
1629
- */
1630
-
1631
- $('body').on('keyup', instant_selector, function (e) {
1632
- e.preventDefault();
1633
-
1634
- helper.setQuery($(this).val());
1635
-
1636
- /* Uncomment to clear refinements on keyup */
1637
-
1638
- //helper.clearRefinements();
1639
-
1640
- performQueries(false);
1641
-
1642
- return false;
1643
- });
1644
-
1645
- function updateSliderValues()
1646
- {
1647
- $(".algolia-slider-true").each(function (i) {
1648
- var min = $(this).attr("data-min");
1649
- var max = $(this).attr("data-max");
1650
-
1651
- var new_min = helper.state.getNumericRefinement($(this).attr("data-attribute"), ">=");
1652
- var new_max = helper.state.getNumericRefinement($(this).attr("data-attribute"), "<=");
1653
-
1654
- if (new_min != undefined)
1655
- min = new_min;
1656
 
1657
- if (new_max != undefined)
1658
- max = new_max;
 
1659
 
1660
- $(this).slider({
1661
- min: parseInt($(this).attr("data-min")),
1662
- max: parseInt($(this).attr("data-max")),
1663
- range: true,
1664
- values: [min, max]
1665
- });
 
 
 
 
1666
  });
1667
  }
1668
-
1669
- function updateSlideInfos(ui)
1670
- {
1671
- var infos = $(ui.handle).closest(".algolia-slider").nextAll(".algolia-slider-info");
1672
-
1673
- infos.find(".min").html(ui.values[0]);
1674
- infos.find(".max").html(ui.values[1]);
1675
- }
1676
-
1677
- function updateBrowserUrlBar(url) {
1678
- if (supportsHistory) {
1679
- history.pushState(url, null, url);
1680
- } else {
1681
- window.location.hash = url;
1682
- }
1683
- }
1684
-
1685
- /**
1686
- * Initialization
1687
- */
1688
-
1689
- /** Clean input **/
1690
- $(algoliaConfig.autocomplete.selector).attr('autocomplete', 'off').attr('autocorrect', 'off').attr('spellcheck', 'false').attr('autocapitalize', 'off');
1691
-
1692
- if (<?php echo $isSearchPage ? "true" : "false"; ?> || location.hash.length > 1) {
1693
- getRefinementsFromUrl();
1694
- }
1695
-
1696
-
1697
- if (supportsHistory) {
1698
- // FIX SAFARI ISSUE
1699
- if (document.readyState !== 'complete') {
1700
- // load event has not fired
1701
- window.addEventListener('load', function() {
1702
- setTimeout(function() {
1703
- window.addEventListener("popstate", getRefinementsFromUrl);
1704
- }, 0);
1705
- }, false);
1706
- }
1707
- else {
1708
- // load event has fired
1709
- window.addEventListener("popstate", getRefinementsFromUrl);
1710
- }
1711
- } else {
1712
- window.addEventListener("hashchange", getRefinementsFromUrl);
1713
- }
1714
-
1715
- onfocus_css = {
1716
- 'opacity': '1',
1717
- 'fill': '#54A5CD',
1718
- 'stroke': '#54A5CD'
1719
- };
1720
-
1721
- onblur_css = {
1722
- 'opacity': '0.4',
1723
- 'fill': '#AAA',
1724
- 'stroke': '#AAA'
1725
- };
1726
-
1727
- $('#search').focus(function () {
1728
- $(this).parent().next().css(onfocus_css);
1729
- }).blur(function () {
1730
- $(this).parent().next().css(onblur_css);
1731
- }).parent().next().css(onblur_css);
1732
-
1733
- }
1734
  });
1735
 
1736
  //]]>
1737
- </script>
1
+ <!--
2
+ //================================
3
+ //
4
+ // Search box
5
+ //
6
+ //================================
7
+ -->
8
+
9
  <?php
10
  $config = Mage::helper('algoliasearch/config');
11
+ $catalogSearchHelper = $this->helper('catalogsearch');
12
+ $price_key = $config->isCustomerGroupsEnabled(Mage::app()->getStore()->getStoreId()) ? '.group_'.$group_id : '.default';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
  $title = '';
15
+ $description = '';
16
  $content = '';
17
+ $imgHtml = '';
18
 
 
 
 
19
  if($config->isInstantEnabled() && $config->replaceCategories() && Mage::app()->getRequest()->getControllerName() == 'category')
20
  {
21
  $category = Mage::registry('current_category');
22
+ $title = $category->getName();
23
 
24
  if ($category && $category->getDisplayMode() !== 'PAGE')
25
  {
27
 
28
  if ($category->getDisplayMode() == 'PRODUCTS_AND_PAGE')
29
  {
30
+ $page = $category->getLandingPage();
31
+ $cms_block = Mage::getModel('cms/block')->load($page);
 
 
 
32
 
33
+ $description = $category->getDescription();
34
+ $content = $this->getLayout()->createBlock('cms/block')->setBlockId($page)->toHtml();
35
 
36
+ if ($category->getImageUrl())
37
+ {
38
+ $imgHtml = '<p class="category-image"><img src="'.$category->getImageUrl().'" alt="'.$this->escapeHtml($category->getName()).'" title="'.$this->escapeHtml($category->getName()).'" /></p>';
39
+ $imgHtml = $this->helper('catalog/output')->categoryAttribute($category, $imgHtml, 'image');
40
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  }
 
 
42
  }
43
  }
44
 
45
+ $placeholder = $this->__('Search for products, categories, ...');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
 
47
  ?>
48
 
49
+ <?php if ($config->isDefaultSelector()): ?>
50
  <form id="search_mini_form" action="<?php echo $catalogSearchHelper->getResultUrl() ?>" method="get">
51
+ <div id="algolia-searchbox">
52
  <label for="search"><?php echo $this->__('Search:') ?></label>
53
+ <input id="search" type="text" name="<?php echo $catalogSearchHelper->getQueryParamName() ?>" class="input-text algolia-search-input" autocomplete="off" spellcheck="false" autocorrect="off" autocapitalize="off" placeholder="<?php echo $placeholder; ?>" />
54
+ <img class="clear-query-autocomplete" src="<?php echo Mage::getBaseUrl(); ?>/skin/frontend/base/default/algoliasearch/cross.png" />
55
  <svg id="algolia-glass" xmlns="http://www.w3.org/2000/svg" class="magnifying-glass" width="24" height="24" viewBox="0 0 128 128" >
56
+ <g transform="scale(4)">
57
+ <path stroke-width="3" d="M19.5 19.582l9.438 9.438"></path>
58
+ <circle stroke-width="3" cx="12" cy="12" r="10.5" fill="none"></circle>
59
+ <path d="M23.646 20.354l-3.293 3.293c-.195.195-.195.512 0 .707l7.293 7.293c.195.195.512.195.707 0l3.293-3.293c.195-.195.195-.512 0-.707l-7.293-7.293c-.195-.195-.512-.195-.707 0z" ></path>
60
+ </g>
61
  </svg>
62
  </div>
63
  </form>
64
+ <?php endif; ?>
65
 
66
  <!--
67
  //================================
78
  <div class="thumb"><img src="{{thumbnail_url}}" /></div>
79
  {{/thumbnail_url}}
80
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  <div class="info">
82
  {{{_highlightResult.name.value}}}
83
 
 
84
  <div class="algoliasearch-autocomplete-category">
85
+ {{#categories_without_path}}
86
+ <?php echo $this->__('in'); ?> {{{categories_without_path}}}
87
+ {{/categories_without_path}}
88
+
89
+ {{#_highlightResult.color}}
90
+ {{#_highlightResult.color.value}}
91
+ <span>
92
+ {{#categories_without_path}} | {{/categories_without_path}} Color: {{{_highlightResult.color.value}}}
93
+ </span>
94
+ {{/_highlightResult.color.value}}
95
+ {{/_highlightResult.color}}
96
+ </div>
97
+
98
+ <div class="algoliasearch-autocomplete-price">
99
+ <span class="after_special {{#price<?php echo $price_key; ?>_original_formated}}promotion{{/price<?php echo $price_key; ?>_original_formated}}">
100
+ {{price<?php echo $price_key; ?>_formated}}
101
+ </span>
102
+
103
+ {{#price<?php echo $price_key; ?>_original_formated}}
104
+ <span class="before_special">
105
+ {{price<?php echo $price_key; ?>_original_formated}}
106
+ </span>
107
+ {{/price<?php echo $price_key; ?>_original_formated}}
108
  </div>
 
109
  </div>
 
110
  </a>
111
  </script>
112
 
125
  {{^image_url}}
126
  <div class="info-without-thumb">
127
  {{#_highlightResult.path}}
128
+ {{{_highlightResult.path.value}}}
129
  {{/_highlightResult.path}}
130
  {{^_highlightResult.path}}
131
+ {{{path}}}
132
  {{/_highlightResult.path}}
133
 
134
  {{#product_count}}
135
+ <small>({{product_count}})</small>
136
  {{/product_count}}
137
 
138
  </div>
147
  <a class="algoliasearch-autocomplete-hit" href="{{url}}">
148
  <div class="info-without-thumb">
149
  {{{_highlightResult.name.value}}}
150
+ {{#content}}
151
+ <div class="details">
152
+ {{{content}}}
153
+ </div>
154
+ {{/content}}
155
  </div>
156
  <div class="clearfix"></div>
157
  </a>
170
  <!-- Suggestion hit template -->
171
  <script type="text/template" id="autocomplete_suggestions_template">
172
  <a class="algoliasearch-autocomplete-hit" href="{{url}}">
173
+ <svg xmlns="http://www.w3.org/2000/svg" class="algolia-glass-suggestion magnifying-glass" width="24" height="24" viewBox="0 0 128 128" >
174
+ <g transform="scale(2.5)">
175
+ <path stroke-width="3" d="M19.5 19.582l9.438 9.438"></path>
176
+ <circle stroke-width="3" cx="12" cy="12" r="10.5" fill="none"></circle>
177
+ <path d="M23.646 20.354l-3.293 3.293c-.195.195-.195.512 0 .707l7.293 7.293c.195.195.512.195.707 0l3.293-3.293c.195-.195.195-.512 0-.707l-7.293-7.293c-.195-.195-.512-.195-.707 0z" ></path>
178
+ </g>
179
+ </svg>
180
  <div class="info-without-thumb">
181
  {{{_highlightResult.query.value}}}
182
 
183
  {{#category}}
184
+ <span class="text-muted"><?php echo $this->__('in'); ?></span> <span class="category-tag">{{category}}</span>
185
  {{/category}}
186
  </div>
187
  <div class="clearfix"></div>
201
 
202
  <!-- Wrapping template -->
203
  <script type="text/template" id="instant_wrapper_template">
204
+ {{#findAutocomplete}}
205
+ <div id="algolia-autocomplete-container"></div>
206
+ {{/findAutocomplete}}
207
  <div id="algolia_instant_selector"<?php echo count($config->getFacets()) > 0 ? ' class="with-facets"' : '' ?>>
208
 
209
+ <?php if ($title || $imgHtml || $description || $content): ?>
210
+ <div class="row">
211
+ <div class="col-md-12">
212
+ <div id="algolia-static-content">
213
+ <div class="page-title category-title">
214
+ <h1><?php echo $title; ?></h1>
215
+ </div>
216
+ <div>
217
+ <?php echo $imgHtml; ?>
218
+ </div>
219
+ <div class="category-description std">
220
+ <?php echo $description; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
221
  </div>
222
+ <?php echo $content; ?>
223
  </div>
 
224
  </div>
225
  </div>
226
+ <?php endif; ?>
227
 
228
  <div class="row">
229
  <div class="col-md-3" id="algolia-left-container">
230
  <div id="refine-toggle" class="visible-xs visible-sm">+ <?php echo $this->__('Refine'); ?></div>
231
+ <div class="hidden-xs hidden-sm" id="instant-search-facets-container">
232
+ <div id="current-refinements"></div>
233
+ </div>
234
  </div>
235
 
236
  <div class="col-md-9" id="algolia-right-container">
237
+ <div class="row">
238
+ <div class="col-md-12">
239
+ <div>
240
+ {{#second_bar}}
241
+ <div id="instant-search-bar-container">
242
+ <div id="instant-search-box">
243
+ <label for="instant-search-bar">
244
+ <?php echo $this->__('Search :'); ?>
245
+ </label>
246
+
247
+ <input placeholder="<?php echo $this->__('Search for products'); ?>" id="instant-search-bar" type="text" autocomplete="off" spellcheck="false" autocorrect="off" autocapitalize="off" />
248
+
249
+ <img class="clear-query-instant" src="<?php echo Mage::getBaseUrl(); ?>/skin/frontend/base/default/algoliasearch/cross.png" />
250
+ <svg xmlns="http://www.w3.org/2000/svg" class="magnifying-glass" width="24" height="24" viewBox="0 0 128 128">
251
+ <g transform="scale(4)">
252
+ <path stroke-width="3" d="M19.5 19.582l9.438 9.438"></path>
253
+ <circle stroke-width="3" cx="12" cy="12" r="10.5" fill="none"></circle>
254
+ <path d="M23.646 20.354l-3.293 3.293c-.195.195-.195.512 0 .707l7.293 7.293c.195.195.512.195.707 0l3.293-3.293c.195-.195.195-.512 0-.707l-7.293-7.293c-.195-.195-.512-.195-.707 0z"></path>
255
+ </g>
256
+ </svg>
257
+ </div>
258
+ </div>
259
+ {{/second_bar}}
260
+ </div>
261
+ </div>
262
+ </div>
263
+ <div class="row">
264
+ <div>
265
+ <div class="hits">
266
+ <div class="infos">
267
+ <div class="pull-left" id="algolia-stats"></div>
268
+ <div class="pull-right" id="algolia-sorts"></div>
269
+ <div class="clearfix"></div>
270
+ </div>
271
+ <div id="instant-search-results-container"></div>
272
+ </div>
273
+ </div>
274
+ <div class="clearfix"></div>
275
+ </div>
276
+
277
+ <div class="text-center">
278
+ <div id="instant-search-pagination-container"></div>
279
+ </div>
280
  </div>
281
  </div>
282
 
283
  </div>
284
  </script>
285
 
286
+ <script type="text/template" id="instant-hit-template">
287
+ <div class="col-md-4 col-sm-6">
288
+ <div class="result-wrapper">
289
+ <a href="{{url}}" class="result">
290
+ <div class="result-content">
291
+ <div class="result-thumbnail">
292
+ {{#image_url}}<img src="{{{ image_url }}}" />{{/image_url}}
293
+ {{^image_url}}<span class="no-image"></span>{{/image_url}}
294
+ </div>
295
+ <div class="result-sub-content">
296
+ <h3 class="result-title text-ellipsis">
297
+ {{{ _highlightResult.name.value }}}
298
+ </h3>
299
+ <div class="ratings">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
300
  <div class="result-sub-content">
 
 
 
301
  <div class="ratings">
302
  <div class="rating-box">
303
  <div class="rating" style="width:{{rating_summary}}%" width="148" height="148"></div>
304
  </div>
305
  </div>
306
  <div class="price">
307
+ <div class="price-wrapper">
308
  <div>
309
+ <span class="after_special {{#price<?php echo $price_key; ?>_original_formated}}promotion{{/price<?php echo $price_key; ?>_original_formated}}">
310
  {{price<?php echo $price_key; ?>_formated}}
311
  </span>
312
 
318
  </div>
319
  </div>
320
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
321
  </div>
322
  </div>
323
+ <div class="result-description text-ellipsis">{{{ _highlightResult.description.value }}}</div>
324
+
325
+ {{#isAddToCartEnabled}}
326
+ {{#in_stock}}
327
+ <form action="<?php echo Mage::getBaseUrl(); ?>/checkout/cart/add/product/{{objectID}}" method="post">
328
+ <input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey(); ?>" />
329
+ <input type="hidden" name="qty" value="1">
330
+ <button type="submit"><?php echo $this->__('Add to Cart'); ?></button>
331
+ </form>
332
+ {{/in_stock}}
333
+ {{/isAddToCartEnabled}}
334
+ </div>
335
  </div>
336
+ <div class="clearfix"></div>
337
+ </a>
338
  </div>
 
 
 
 
 
 
 
339
  </div>
340
  </script>
341
 
342
+ <script type="text/template" id="instant-stats-template">
343
+ {{#hasOneResult}}<strong>1</strong> <?php echo $this->__('result'); ?> found{{/hasOneResult}}
344
+ {{#hasManyResults}}{{^hasNoResults}}{{first}}-{{last}} out of{{/hasNoResults}} <strong>{{#helpers.formatNumber}}{{nbHits}}{{/helpers.formatNumber}} <?php echo $this->__('results found'); ?></strong>{{/hasManyResults}}
345
+ <?php echo $this->__('in'); ?> {{seconds}} <?php echo $this->__('seconds'); ?>
 
 
 
 
 
 
 
346
  </script>
347
 
348
+ <script type="text/template" id="facet-template">
349
+ <div class="sub_facet {{#isRefined}}checked{{/isRefined}}">
350
+ <input class="facet_value" {{#isRefined}}checked{{/isRefined}} type="checkbox">
351
+ {{name}}
352
+ <span class="count">{{count}}</span>
353
+ </div>
354
+ </script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
355
 
 
 
 
 
 
356
 
357
+ <script type="text/template" id="current-refinements-template">
358
+ <div class="cross-wrapper">
359
+ <img src="<?php echo Mage::getBaseUrl(); ?>/skin/frontend/base/default/algoliasearch/cross.png" />
360
+ </div>
361
+ <div class="current-refinement-wrapper">
362
+ {{#label}}
363
+ <span class="current-refinement-label">{{label}}{{^operator}}:{{/operator}}</span>
364
+ {{/label}}
365
+ {{#operator}}
366
+ {{{displayOperator}}}
367
+ {{/operator}}
368
+ {{#exclude}}-{{/exclude}}
369
+ <span class="current-refinement-name">{{name}}</span>
370
  </div>
371
  </script>
372
 
373
+ <script type="text/template" id="menu-template">
374
+ <div class="autocomplete-wrapper">
375
+ <div class="col9">
376
+ <div class="aa-dataset-products"></div>
377
+ </div>
378
+ <div class="col3">
379
+ <div class="other-sections">
380
+ <div class="aa-dataset-suggestions"></div>
381
+ <?php for ($i = 0; $i < 10; $i++): ?>
382
+ <div class="aa-dataset-<?php echo $i; ?>"></div>
383
+ <?php endfor; ?>
384
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
385
  </div>
386
  </div>
387
  </script>
388
 
 
389
  <!--
390
  //================================
391
  //
398
  <script type="text/javascript">
399
  //<![CDATA[
400
 
401
+ document.addEventListener("DOMContentLoaded", function(event) {
402
+ algoliaBundle.$(function ($) {
403
+ algoliaConfig.autocomplete.templates = {
404
+ suggestions: algoliaBundle.Hogan.compile($('#autocomplete_suggestions_template').html()),
405
+ products: algoliaBundle.Hogan.compile($('#autocomplete_products_template').html()),
406
+ categories: algoliaBundle.Hogan.compile($('#autocomplete_categories_template').html()),
407
+ pages: algoliaBundle.Hogan.compile($('#autocomplete_pages_template').html()),
408
+ additionnalSection: algoliaBundle.Hogan.compile($('#autocomplete_extra_template').html())
409
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
410
 
411
+ var algolia_client = algoliaBundle.algoliasearch(algoliaConfig.applicationId, algoliaConfig.apiKey);
412
 
413
+ if (algoliaConfig.instant.enabled && (algoliaConfig.isSearchPage || !algoliaConfig.autocomplete.enabled))
 
 
 
 
 
414
  {
415
+ if ($(algoliaConfig.instant.selector).length <= 0)
416
+ throw '[Algolia] Invalid instant-search selector: ' + algoliaConfig.instant.selector;
 
 
 
 
417
 
418
+ if (algoliaConfig.autocomplete.enabled && $(algoliaConfig.instant.selector).find(algoliaConfig.autocomplete.selector).length > 0)
419
+ throw '[Algolia] You can\'t have a search input matching "' + algoliaConfig.autocomplete.selector +
420
+ '" inside you instant selector "' + algoliaConfig.instant.selector + '"';
 
421
 
422
+ var instant_selector = !algoliaConfig.autocomplete.enabled ? ".algolia-search-input" : "#instant-search-bar";
423
 
424
+ var wrapperTemplate = algoliaBundle.Hogan.compile($('#instant_wrapper_template').html());
 
425
 
426
+ var findAutocomplete = algoliaConfig.autocomplete.enabled && $(algoliaConfig.instant.selector).find('#algolia-autocomplete-container').length > 0;
427
+ $(algoliaConfig.instant.selector).html(wrapperTemplate.render({second_bar: algoliaConfig.autocomplete.enabled, findAutocomplete: findAutocomplete})).show();
 
 
 
428
 
429
+ /** Initialise instant search **/
430
+ var search = algoliaBundle.instantsearch({
431
+ appId: algoliaConfig.applicationId,
432
+ apiKey: algoliaConfig.apiKey,
433
+ indexName: algoliaConfig.indexName + '_products',
434
+ urlSync: {
435
+ useHash: true,
436
+ trackedParameters: ['query', 'page', 'attribute:*', 'index']
437
+ }
438
+ });
 
 
439
 
440
+ search.addWidget({
441
+ getConfiguration: function () {
442
+ if (algoliaConfig.request.query.length > 0 && location.hash.length < 1) {
443
+ return { query: algoliaConfig.request.query }
444
+ }
445
+ return {};
446
+ },
447
+ init: function(data) {
448
+ if (algoliaConfig.request.refinement_key.length > 0) {
449
+ data.helper.toggleRefine(algoliaConfig.request.refinement_key, algoliaConfig.request.refinement_value);
450
+ }
451
 
452
+ if (algoliaConfig.isCategoryPage) {
453
+ data.helper.addNumericRefinement('visibility_catalog', '=', 1);
454
+ }
455
+ else {
456
+ data.helper.addNumericRefinement('visibility_search', '=', 1);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
457
  }
458
  }
459
+ });
 
 
 
 
460
 
461
+ /** Search bar **/
462
+ search.addWidget(
463
+ algoliaBundle.instantsearch.widgets.searchBox({
464
+ container: instant_selector,
465
+ placeholder: 'Search for products'
466
+ })
467
+ );
468
+
469
+ /** Stats **/
470
+ search.addWidget(
471
+ algoliaBundle.instantsearch.widgets.stats({
472
+ container: '#algolia-stats',
473
+ templates: {
474
+ body: $('#instant-stats-template').html()
475
+ },
476
+ transformData: function (data) {
477
+ data.first = data.page * data.hitsPerPage + 1;
478
+ data.last = Math.min(data.page * data.hitsPerPage + data.hitsPerPage, data.nbHits);
479
+ data.seconds = data.processingTimeMS / 1000;
480
+
481
+ return data;
482
+ }
483
+ })
484
+ );
485
 
486
+ /** Sorts **/
487
+ algoliaConfig.sortingIndices.unshift({
488
+ name: algoliaConfig.indexName + '_products',
489
+ label: '<?php echo $this->__('Relevance'); ?>'
490
+ });
491
 
492
+ search.addWidget(
493
+ algoliaBundle.instantsearch.widgets.sortBySelector({
494
+ container: '#algolia-sorts',
495
+ indices: algoliaConfig.sortingIndices,
496
+ cssClass: 'form-control'
497
+ })
498
+ );
499
+
500
+ /** Hits **/
501
+ search.addWidget(
502
+ algoliaBundle.instantsearch.widgets.hits({
503
+ container: '#instant-search-results-container',
504
+ templates: {
505
+ item: $('#instant-hit-template').html()
506
+ },
507
+ transformData: {
508
+ item: function (hit) {
509
+ hit = transformHit(hit, algoliaConfig.priceKey);
510
+ hit.isAddToCartEnabled = algoliaConfig.instant.isAddToCartEnabled;
511
+
512
+ return hit;
513
+ }
514
+ },
515
+ hitsPerPage: algoliaConfig.hitsPerPage
516
+ })
517
+ );
518
+
519
+ search.addWidget({
520
+ suggestions: [],
521
+ init: function () {
522
+ if (algoliaConfig.showSuggestionsOnNoResultsPage) {
523
+ var $this = this;
524
+ $.each(algoliaConfig.popularQueries.slice(0, Math.min(4, algoliaConfig.popularQueries.length)), function (i, query) {
525
+ query = $('<div>').html(query).text(); //xss
526
+ $this.suggestions.push('<a href="' + algoliaConfig.baseUrl + '/catalogsearch/result/?q=' + encodeURIComponent(query) + '">' + query + '</a>');
527
+ });
528
+ }
529
+ },
530
+ render: function (data) {
531
+ if (data.results.hits.length === 0) {
532
+ var content = '<div class="no-results">';
533
+ content += '<div><b><?php echo $this->__('No products for query'); ?> "' + $("<div>").text(data.results.query).html() + '</b>"</div>';
534
+ content += '<div class="popular-searches">';
535
+
536
+ if (algoliaConfig.showSuggestionsOnNoResultsPage && this.suggestions.length > 0) {
537
+ content += '<div><?php echo $this->__('You can can try one of he popular seearch queries'); ?></div>' + this.suggestions.join(', ');
538
+ }
539
 
540
+ content += '</div>';
541
+ content += '<?php echo $this->__('or'); ?> <a href="' + algoliaConfig.baseUrl + '/catalogsearch/result/?q=__empty__"><?php echo $this->__('See all products'); ?></a>'
542
 
543
+ content += '</div>';
 
 
544
 
545
+ $('#instant-search-results-container').html(content);
546
+ }
 
 
 
 
 
 
 
 
 
 
 
 
547
  }
548
+ });
 
 
 
 
 
 
 
 
 
 
549
 
550
+ /** Facets **/
551
+ var wrapper = document.getElementById('instant-search-facets-container');
 
552
 
553
+ var attributes = [];
 
 
 
 
 
 
554
 
555
+ $.each(algoliaConfig.facets, function (i, facet) {
556
+ var name = facet.attribute;
557
 
558
+ if (name === 'categories') {
559
+ if (algoliaConfig.isCategoryPage) {
560
+ return;
561
+ }
562
+ name = 'categories.level0';
563
  }
564
 
565
+ if (name === 'price') {
566
+ name = facet.attribute + algoliaConfig.priceKey
567
+ }
 
 
 
568
 
569
+ attributes.push({
570
+ name: name,
571
+ label: facet.label ? facet.label : facet.attribute
572
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
573
  });
 
574
 
575
+ search.addWidget(
576
+ algoliaBundle.instantsearch.widgets.currentRefinedValues({
577
+ container: '#current-refinements',
578
+ cssClasses: {
579
+ root: 'facet'
580
+ },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
581
  templates: {
582
+ header: '<div class="name">' + '<?php echo $this->__('Selected Filters'); ?>' + '</div>',
583
+ item: $('#current-refinements-template').html()
584
+ },
585
+ attributes: attributes,
586
+ onlyListedAttributes: true
587
+ })
588
+ );
589
+
590
+ search.addWidget({
591
+ render: function (data) {
592
+ if (data.results.hits.length === 0) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
593
 
 
 
 
 
 
 
 
 
 
 
594
  }
595
  }
596
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
597
 
598
+ var customAttributeFacet = {
599
+ categories: function(facet, templates) {
600
+ var hierarchical_levels = [];
601
+ for (var l = 0; l < 10; l++)
602
+ hierarchical_levels.push('categories.level' + l.toString());
603
+
604
+ var hierarchicalMenuParams = {
605
+ container: facet.wrapper.appendChild(document.createElement('div')),
606
+ attributes: hierarchical_levels,
607
+ separator: ' /// ',
608
+ alwaysGetRootLevel: true,
609
+ templates: templates,
610
+ sortBy: ['name:asc'],
611
+ cssClasses: {
612
+ list: 'hierarchical',
613
+ root: 'facet hierarchical'
614
+ }
615
+ };
616
 
617
+ hierarchicalMenuParams.templates.item = '' +
618
+ '<div class="ais-hierearchical-link-wrapper">' +
619
+ '<a class="{{cssClasses.link}}" href="{{url}}">{{name}}' +
620
+ '{{#isRefined}}<img class="cross-circle" src="<?php echo Mage::getBaseUrl(); ?>/skin/frontend/base/default/algoliasearch/cross-circle.png"/>{{/isRefined}}' +
621
+ '<span class="{{cssClasses.count}}">{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}</span></a>' +
622
+ '</div>';
 
 
 
 
623
 
624
+ if (algoliaConfig.request.path.length > 0) {
625
+ hierarchicalMenuParams.rootPath = algoliaConfig.request.path;
626
+ }
 
 
 
 
627
 
628
+ return algoliaBundle.instantsearch.widgets.hierarchicalMenu(hierarchicalMenuParams);
 
 
629
  }
630
+ };
631
 
632
+ $.each(algoliaConfig.facets, function (i, facet) {
 
 
 
 
633
 
634
+ if (facet.attribute.indexOf("price") !== -1)
635
+ facet.attribute = facet.attribute + algoliaConfig.priceKey;
 
636
 
637
+ facet.wrapper = wrapper;
638
 
639
+ var templates = {
640
+ header: '<div class="name">' + (facet.label ? facet.label : facet.attribute) + '</div>'
641
+ };
642
 
643
+ var widget = customAttributeFacet[facet.attribute] !== undefined ?
644
+ customAttributeFacet[facet.attribute](facet, templates) :
645
+ getFacetWidget(facet, templates);
 
646
 
647
+ search.addWidget(widget);
648
+ });
 
 
 
 
649
 
650
+ /** Pagination **/
651
+ search.addWidget(
652
+ algoliaBundle.instantsearch.widgets.pagination({
653
+ container: '#instant-search-pagination-container',
654
+ cssClass: 'algolia-pagination',
655
+ showFirstLast: false,
656
+ labels: {
657
+ previous: '<?php echo $this->__('Previous page'); ?>',
658
+ next: '<?php echo $this->__('Next page'); ?>'
659
+ },
660
+ scrollTo: 'body'
661
+ })
662
+ );
663
 
664
+ search.start();
 
665
 
666
+ handleInputCrossInstant($(instant_selector));
667
 
668
  var instant_search_bar = $(instant_selector);
 
669
  if (instant_search_bar.is(":focus") === false)
670
  {
671
  if ($(window).width() > 992) {
672
+ if (algoliaConfig.autofocus === false) {
673
+ instant_search_bar.focus().val('');
674
+ }
675
  }
676
+ instant_search_bar.val(search.helper.state.query);
677
  }
 
 
 
 
 
 
 
 
 
678
 
679
+ $('#search_mini_form').addClass('search-page');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
680
 
681
+ $(document).on('click', '.ais-hierarchical-menu--link, .ais-refinement-list--checkbox', function () {
682
+ if ($(window).width() > 992) {
683
+ instant_search_bar.focusWithoutScrolling();
684
+ if (algoliaConfig.autofocus === false) {
685
+ instant_search_bar.val('');
686
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
687
  }
688
+ instant_search_bar.val(search.helper.state.query);
689
  });
690
+ }
691
 
692
+ /*****************
693
+ **
694
+ ** AUTOCOMPLETION MENU
695
+ **
696
+ *****************/
697
 
698
+ /** keep it after instant search to be able to bind to the recreated <div id="algolia-autocomplete-container"></div> **/
699
+ if (algoliaConfig.autocomplete.enabled) {
700
+ var sources = [];
 
701
 
702
+ /** Add products and categories that are required sections **/
703
+ var nb_cat = algoliaConfig.autocomplete.nbOfCategoriesSuggestions >= 1 ? algoliaConfig.autocomplete.nbOfCategoriesSuggestions: 2;
704
+ var nb_pro = algoliaConfig.autocomplete.nbOfProductsSuggestions >= 1 ? algoliaConfig.autocomplete.nbOfProductsSuggestions : 6;
705
+ var nb_que = algoliaConfig.autocomplete.nbOfQueriesSuggestions >= 0 ? algoliaConfig.autocomplete.nbOfQueriesSuggestions : 0;
706
 
707
+ if (nb_que > 0) {
708
+ algoliaConfig.autocomplete.sections.unshift({ hitsPerPage: nb_que, label: '', name: "suggestions"});
709
  }
710
 
711
+ algoliaConfig.autocomplete.sections.unshift({ hitsPerPage: nb_cat, label: <?php echo json_encode($this->__('Categories')); ?>, name: "categories"});
712
+ algoliaConfig.autocomplete.sections.unshift({ hitsPerPage: nb_pro, label: <?php echo json_encode($this->__('Products')); ?>, name: "products"});
713
 
714
+ var i = 0;
715
+ $.each(algoliaConfig.autocomplete.sections, function (name, section) {
716
+ var source = getAutocompleteSource(section, algolia_client, $, i);
717
 
718
+ if (source)
719
+ sources.push(source);
 
 
720
 
721
+ /* Those sections have already specific placeholder, so do not use the default aa-dataset-{i} class */
722
+ if (section.name !== 'suggestions' && section.name !== 'products')
723
+ i++;
724
 
 
 
 
 
 
725
  });
726
 
727
+ // setup the auto-completed search input
728
+ $(algoliaConfig.autocomplete.selector).each(function (i) {
729
+ var menu = $(this);
730
+ var options = {
731
+ hint: false,
732
+ templates: {
733
+ dropdownMenu: '#menu-template'
734
+ },
735
+ dropdownMenuContainer: "#algolia-autocomplete-container",
736
+ debug: false
737
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
738
 
739
+ if (algoliaConfig.removeBranding === false) {
740
+ options.templates.footer = '<div class="footer_algolia"><span>Search by</span> <a href="https://www.algolia.com/?utm_source=magento&utm_medium=link&utm_campaign=magento_autocompletion_menu" target="_blank"><img src="<?php echo Mage::getBaseUrl(); ?>/skin/frontend/base/default/algoliasearch/algolia-logo.png" /></a></div>';
741
+ }
742
 
743
+ $(this)
744
+ .autocomplete(options, sources)
745
+ .parent()
746
+ .attr('id', 'algolia-autocomplete-tt')
747
+ .on('autocomplete:updated', function (e) {
748
+ fixAutocompleteCssSticky(menu);
749
+ })
750
+ .on('autocomplete:updated', function (e) {
751
+ fixAutocompleteCssHeight(menu);
752
+ });
753
  });
754
  }
755
+ });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
756
  });
757
 
758
  //]]>
759
+ </script>
app/etc/modules/Algolia_Algoliasearch.xml CHANGED
@@ -4,7 +4,7 @@
4
  <Algolia_Algoliasearch>
5
  <active>true</active>
6
  <codePool>community</codePool>
7
- <version>1.0.1</version>
8
  </Algolia_Algoliasearch>
9
  </modules>
10
  </config>
4
  <Algolia_Algoliasearch>
5
  <active>true</active>
6
  <codePool>community</codePool>
7
+ <version>1.5.0</version>
8
  </Algolia_Algoliasearch>
9
  </modules>
10
  </config>
js/algoliasearch/Function.prototype.bind.js ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Magento is using a very old prototype.js version with a poor Function.prototype.bind
2
+ // forced overloading, we redefine it here so that our code works
3
+ // ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
4
+ Function.prototype.bind = function(oThis) {
5
+ if (typeof this !== 'function') {
6
+ // closest thing possible to the ECMAScript 5
7
+ // internal IsCallable function
8
+ throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');
9
+ }
10
+
11
+ var aArgs = Array.prototype.slice.call(arguments, 1),
12
+ fToBind = this,
13
+ fNOP = function() {},
14
+ fBound = function() {
15
+ return fToBind.apply(this instanceof fNOP
16
+ ? this
17
+ : oThis,
18
+ aArgs.concat(Array.prototype.slice.call(arguments)));
19
+ };
20
+
21
+ if (this.prototype) {
22
+ // native functions don't have a prototype
23
+ fNOP.prototype = this.prototype;
24
+ }
25
+ fBound.prototype = new fNOP();
26
+
27
+ return fBound;
28
+ };
js/algoliasearch/admin_scripts.js ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ algoliaAdminBundle.$(function($) {
2
+ var fixHelper = function(e, ui) {
3
+ ui.children().each(function() {
4
+ $(this).width($(this).width());
5
+ });
6
+ return ui;
7
+ };
8
+
9
+ $(".grid tbody").sortable({
10
+ containment: "parent",
11
+ items: 'tr:not(:first-child):not(:last-child)',
12
+ helper: fixHelper,
13
+ start: function (event, ui) {
14
+ $(ui.item).css('box-shadow', '2px 2px 2px #444').css('margin-left', '10px');
15
+ }
16
+ });
17
+
18
+ $('.grid tr:not(:first-child):not(:last-child) td').css('cursor', 'move');
19
+ });
js/algoliasearch/algoliaAdminBundle.min.js ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! algoliaAdminBundle 4.2.0 | © Algolia SAS | algolia.com */!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.algoliaAdminBundle=t():e.algoliaAdminBundle=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){e.exports={$:n(1),instantsearch:n(2),algoliasearch:n(7),algoliasearchHelper:n(74),Hogan:n(537),autocomplete:n(608),angular:n(624)},n(626)},function(e,t){var n,r;!function(t,n){"object"==typeof e&&"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,function(i,o){function a(e){var t="length"in e&&e.length,n=ue.type(e);return"function"===n||ue.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e}function s(e,t,n){if(ue.isFunction(t))return ue.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return ue.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(ve.test(t))return ue.filter(t,e,n);t=ue.filter(t,e)}return ue.grep(e,function(e){return ue.inArray(e,t)>=0!==n})}function u(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function c(e){var t=Ce[e]={};return ue.each(e.match(_e)||[],function(e,n){t[n]=!0}),t}function l(){ye.addEventListener?(ye.removeEventListener("DOMContentLoaded",p,!1),i.removeEventListener("load",p,!1)):(ye.detachEvent("onreadystatechange",p),i.detachEvent("onload",p))}function p(){(ye.addEventListener||"load"===event.type||"complete"===ye.readyState)&&(l(),ue.ready())}function f(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(Pe,"-$1").toLowerCase();if(n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:Te.test(n)?ue.parseJSON(n):n}catch(i){}ue.data(e,t,n)}else n=void 0}return n}function d(e){var t;for(t in e)if(("data"!==t||!ue.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function h(e,t,n,r){if(ue.acceptData(e)){var i,o,a=ue.expando,s=e.nodeType,u=s?ue.cache:e,c=s?e[a]:e[a]&&a;if(c&&u[c]&&(r||u[c].data)||void 0!==n||"string"!=typeof t)return c||(c=s?e[a]=J.pop()||ue.guid++:a),u[c]||(u[c]=s?{}:{toJSON:ue.noop}),("object"==typeof t||"function"==typeof t)&&(r?u[c]=ue.extend(u[c],t):u[c].data=ue.extend(u[c].data,t)),o=u[c],r||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[ue.camelCase(t)]=n),"string"==typeof t?(i=o[t],null==i&&(i=o[ue.camelCase(t)])):i=o,i}}function m(e,t,n){if(ue.acceptData(e)){var r,i,o=e.nodeType,a=o?ue.cache:e,s=o?e[ue.expando]:ue.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){ue.isArray(t)?t=t.concat(ue.map(t,ue.camelCase)):t in r?t=[t]:(t=ue.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;for(;i--;)delete r[t[i]];if(n?!d(r):!ue.isEmptyObject(r))return}(n||(delete a[s].data,d(a[s])))&&(o?ue.cleanData([e],!0):ae.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}function v(){return!0}function g(){return!1}function y(){try{return ye.activeElement}catch(e){}}function b(e){var t=Ve.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function x(e,t){var n,r,i=0,o=typeof e.getElementsByTagName!==Oe?e.getElementsByTagName(t||"*"):typeof e.querySelectorAll!==Oe?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||ue.nodeName(r,t)?o.push(r):ue.merge(o,x(r,t));return void 0===t||t&&ue.nodeName(e,t)?ue.merge([e],o):o}function w(e){Ae.test(e.type)&&(e.defaultChecked=e.checked)}function E(e,t){return ue.nodeName(e,"table")&&ue.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function _(e){return e.type=(null!==ue.find.attr(e,"type"))+"/"+e.type,e}function C(e){var t=Xe.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function N(e,t){for(var n,r=0;null!=(n=e[r]);r++)ue._data(n,"globalEval",!t||ue._data(t[r],"globalEval"))}function $(e,t){if(1===t.nodeType&&ue.hasData(e)){var n,r,i,o=ue._data(e),a=ue._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)ue.event.add(t,n,s[n][r])}a.data&&(a.data=ue.extend({},a.data))}}function O(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!ae.noCloneEvent&&t[ue.expando]){i=ue._data(t);for(r in i.events)ue.removeEvent(t,r,i.handle);t.removeAttribute(ue.expando)}"script"===n&&t.text!==e.text?(_(t).text=e.text,C(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),ae.html5Clone&&e.innerHTML&&!ue.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ae.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function T(e,t){var n,r=ue(t.createElement(e)).appendTo(t.body),o=i.getDefaultComputedStyle&&(n=i.getDefaultComputedStyle(r[0]))?n.display:ue.css(r[0],"display");return r.detach(),o}function P(e){var t=ye,n=rt[e];return n||(n=T(e,t),"none"!==n&&n||(nt=(nt||ue("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement),t=(nt[0].contentWindow||nt[0].contentDocument).document,t.write(),t.close(),n=T(e,t),nt.detach()),rt[e]=n),n}function S(e,t){return{get:function(){var n=e();if(null!=n)return n?void delete this.get:(this.get=t).apply(this,arguments)}}}function D(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=vt.length;i--;)if(t=vt[i]+n,t in e)return t;return r}function R(e,t){for(var n,r,i,o=[],a=0,s=e.length;s>a;a++)r=e[a],r.style&&(o[a]=ue._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&Re(r)&&(o[a]=ue._data(r,"olddisplay",P(r.nodeName)))):(i=Re(r),(n&&"none"!==n||!i)&&ue._data(r,"olddisplay",i?n:ue.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}function k(e,t,n){var r=ft.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function A(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>o;o+=2)"margin"===n&&(a+=ue.css(e,n+De[o],!0,i)),r?("content"===n&&(a-=ue.css(e,"padding"+De[o],!0,i)),"margin"!==n&&(a-=ue.css(e,"border"+De[o]+"Width",!0,i))):(a+=ue.css(e,"padding"+De[o],!0,i),"padding"!==n&&(a+=ue.css(e,"border"+De[o]+"Width",!0,i)));return a}function j(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=it(e),a=ae.boxSizing&&"border-box"===ue.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=ot(e,t,o),(0>i||null==i)&&(i=e.style[t]),st.test(i))return i;r=a&&(ae.boxSizingReliable()||i===e.style[t]),i=parseFloat(i)||0}return i+A(e,t,n||(a?"border":"content"),r,o)+"px"}function I(e,t,n,r,i){return new I.prototype.init(e,t,n,r,i)}function M(){return setTimeout(function(){gt=void 0}),gt=ue.now()}function F(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=De[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function L(e,t,n){for(var r,i=(_t[t]||[]).concat(_t["*"]),o=0,a=i.length;a>o;o++)if(r=i[o].call(n,t,e))return r}function V(e,t,n){var r,i,o,a,s,u,c,l,p=this,f={},d=e.style,h=e.nodeType&&Re(e),m=ue._data(e,"fxshow");n.queue||(s=ue._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,u=s.empty.fire,s.empty.fire=function(){s.unqueued||u()}),s.unqueued++,p.always(function(){p.always(function(){s.unqueued--,ue.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],c=ue.css(e,"display"),l="none"===c?ue._data(e,"olddisplay")||P(e.nodeName):c,"inline"===l&&"none"===ue.css(e,"float")&&(ae.inlineBlockNeedsLayout&&"inline"!==P(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",ae.shrinkWrapBlocks()||p.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],bt.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(h?"hide":"show")){if("show"!==i||!m||void 0===m[r])continue;h=!0}f[r]=m&&m[r]||ue.style(e,r)}else c=void 0;if(ue.isEmptyObject(f))"inline"===("none"===c?P(e.nodeName):c)&&(d.display=c);else{m?"hidden"in m&&(h=m.hidden):m=ue._data(e,"fxshow",{}),o&&(m.hidden=!h),h?ue(e).show():p.done(function(){ue(e).hide()}),p.done(function(){var t;ue._removeData(e,"fxshow");for(t in f)ue.style(e,t,f[t])});for(r in f)a=L(h?m[r]:0,r,p),r in m||(m[r]=a.start,h&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function U(e,t){var n,r,i,o,a;for(n in e)if(r=ue.camelCase(n),i=t[r],o=e[n],ue.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=ue.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function H(e,t,n){var r,i,o=0,a=Et.length,s=ue.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=gt||M(),n=Math.max(0,c.startTime+c.duration-t),r=n/c.duration||0,o=1-r,a=0,u=c.tweens.length;u>a;a++)c.tweens[a].run(o);return s.notifyWith(e,[c,o,n]),1>o&&u?n:(s.resolveWith(e,[c]),!1)},c=s.promise({elem:e,props:ue.extend({},t),opts:ue.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:gt||M(),duration:n.duration,tweens:[],createTween:function(t,n){var r=ue.Tween(e,c.opts,t,n,c.opts.specialEasing[t]||c.opts.easing);return c.tweens.push(r),r},stop:function(t){var n=0,r=t?c.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)c.tweens[n].run(1);return t?s.resolveWith(e,[c,t]):s.rejectWith(e,[c,t]),this}}),l=c.props;for(U(l,c.opts.specialEasing);a>o;o++)if(r=Et[o].call(c,e,l,c.opts))return r;return ue.map(l,L,c),ue.isFunction(c.opts.start)&&c.opts.start.call(e,c),ue.fx.timer(ue.extend(u,{elem:e,anim:c,queue:c.opts.queue})),c.progress(c.opts.progress).done(c.opts.done,c.opts.complete).fail(c.opts.fail).always(c.opts.always)}function q(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(_e)||[];if(ue.isFunction(n))for(;r=o[i++];)"+"===r.charAt(0)?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function B(e,t,n,r){function i(s){var u;return o[s]=!0,ue.each(e[s]||[],function(e,s){var c=s(t,n,r);return"string"!=typeof c||a||o[c]?a?!(u=c):void 0:(t.dataTypes.unshift(c),i(c),!1)}),u}var o={},a=e===Kt;return i(t.dataTypes[0])||!o["*"]&&i("*")}function W(e,t){var n,r,i=ue.ajaxSettings.flatOptions||{};for(r in t)void 0!==t[r]&&((i[r]?e:n||(n={}))[r]=t[r]);return n&&ue.extend(!0,e,n),e}function z(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===i&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i)for(a in s)if(s[a]&&s[a].test(i)){u.unshift(a);break}if(u[0]in n)o=u[0];else{for(a in n){if(!u[0]||e.converters[a+" "+u[0]]){o=a;break}r||(r=a)}o=o||r}return o?(o!==u[0]&&u.unshift(o),n[o]):void 0}function K(e,t,n,r){var i,o,a,s,u,c={},l=e.dataTypes.slice();if(l[1])for(a in e.converters)c[a.toLowerCase()]=e.converters[a];for(o=l.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=l.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(a=c[u+" "+o]||c["* "+o],!a)for(i in c)if(s=i.split(" "),s[1]===o&&(a=c[u+" "+s[0]]||c["* "+s[0]])){a===!0?a=c[i]:c[i]!==!0&&(o=s[0],l.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}function Q(e,t,n,r){var i;if(ue.isArray(t))ue.each(t,function(t,i){n||Xt.test(e)?r(e,i):Q(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==ue.type(t))r(e,t);else for(i in t)Q(e+"["+i+"]",t[i],n,r)}function Y(){try{return new i.XMLHttpRequest}catch(e){}}function G(){try{return new i.ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}function X(e){return ue.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}var J=[],Z=J.slice,ee=J.concat,te=J.push,ne=J.indexOf,re={},ie=re.toString,oe=re.hasOwnProperty,ae={},se="1.11.3",ue=function(e,t){return new ue.fn.init(e,t)},ce=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,le=/^-ms-/,pe=/-([\da-z])/gi,fe=function(e,t){return t.toUpperCase()};ue.fn=ue.prototype={jquery:se,constructor:ue,selector:"",length:0,toArray:function(){return Z.call(this)},get:function(e){return null!=e?0>e?this[e+this.length]:this[e]:Z.call(this)},pushStack:function(e){var t=ue.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return ue.each(this,e,t)},map:function(e){return this.pushStack(ue.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(Z.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:te,sort:J.sort,splice:J.splice},ue.extend=ue.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,c=!1;for("boolean"==typeof a&&(c=a,a=arguments[s]||{},s++),"object"==typeof a||ue.isFunction(a)||(a={}),s===u&&(a=this,s--);u>s;s++)if(null!=(i=arguments[s]))for(r in i)e=a[r],n=i[r],a!==n&&(c&&n&&(ue.isPlainObject(n)||(t=ue.isArray(n)))?(t?(t=!1,o=e&&ue.isArray(e)?e:[]):o=e&&ue.isPlainObject(e)?e:{},a[r]=ue.extend(c,o,n)):void 0!==n&&(a[r]=n));return a},ue.extend({expando:"jQuery"+(se+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===ue.type(e)},isArray:Array.isArray||function(e){return"array"===ue.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!ue.isArray(e)&&e-parseFloat(e)+1>=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==ue.type(e)||e.nodeType||ue.isWindow(e))return!1;try{if(e.constructor&&!oe.call(e,"constructor")&&!oe.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(ae.ownLast)for(t in e)return oe.call(e,t);for(t in e);return void 0===t||oe.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?re[ie.call(e)]||"object":typeof e},globalEval:function(e){e&&ue.trim(e)&&(i.execScript||function(e){i.eval.call(i,e)})(e)},camelCase:function(e){return e.replace(le,"ms-").replace(pe,fe)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,s=a(e);if(n){if(s)for(;o>i&&(r=t.apply(e[i],n),r!==!1);i++);else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(s)for(;o>i&&(r=t.call(e[i],i,e[i]),r!==!1);i++);else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:function(e){return null==e?"":(e+"").replace(ce,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(a(Object(e))?ue.merge(n,"string"==typeof e?[e]:e):te.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(ne)return ne.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;n>r;)e[i++]=t[r++];if(n!==n)for(;void 0!==t[r];)e[i++]=t[r++];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;a>o;o++)r=!t(e[o],o),r!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,s=a(e),u=[];if(s)for(;o>i;i++)r=t(e[i],i,n),null!=r&&u.push(r);else for(i in e)r=t(e[i],i,n),null!=r&&u.push(r);return ee.apply([],u)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(i=e[t],t=e,e=i),ue.isFunction(e)?(n=Z.call(arguments,2),r=function(){return e.apply(t||this,n.concat(Z.call(arguments)))},r.guid=e.guid=e.guid||ue.guid++,r):void 0},now:function(){return+new Date},support:ae}),ue.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){re["[object "+t+"]"]=t.toLowerCase()});var de=function(e){function t(e,t,n,r){var i,o,a,s,u,c,p,d,h,m;if((t?t.ownerDocument||t:V)!==R&&D(t),t=t||R,n=n||[],s=t.nodeType,"string"!=typeof e||!e||1!==s&&9!==s&&11!==s)return n;if(!r&&A){if(11!==s&&(i=ye.exec(e)))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&F(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return J.apply(n,t.getElementsByTagName(e)),n;if((a=i[3])&&w.getElementsByClassName)return J.apply(n,t.getElementsByClassName(a)),n}if(w.qsa&&(!j||!j.test(e))){if(d=p=L,h=t,m=1!==s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(c=N(e),(p=t.getAttribute("id"))?d=p.replace(xe,"\\$&"):t.setAttribute("id",d),d="[id='"+d+"'] ",u=c.length;u--;)c[u]=d+f(c[u]);h=be.test(e)&&l(t.parentNode)||t,m=c.join(",")}if(m)try{return J.apply(n,h.querySelectorAll(m)),n}catch(v){}finally{p||t.removeAttribute("id")}}}return O(e.replace(ue,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>E.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[L]=!0,e}function i(e){var t=R.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=e.length;r--;)E.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||K)-(~e.sourceIndex||K);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function l(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function p(){}function f(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function d(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=H++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,u,c=[U,o];if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i){if(u=t[L]||(t[L]={}),(s=u[r])&&s[0]===U&&s[1]===o)return c[2]=s[2];if(u[r]=c,c[2]=e(t,n,a))return!0}}}function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(e,n,r){for(var i=0,o=n.length;o>i;i++)t(e,n[i],r);return r}function v(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,c=null!=t;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),c&&t.push(s));return a}function g(e,t,n,i,o,a){return i&&!i[L]&&(i=g(i)),o&&!o[L]&&(o=g(o,a)),r(function(r,a,s,u){var c,l,p,f=[],d=[],h=a.length,g=r||m(t||"*",s.nodeType?[s]:s,[]),y=!e||!r&&t?g:v(g,f,e,s,u),b=n?o||(r?e:h||i)?[]:a:y;if(n&&n(y,b,s,u),i)for(c=v(b,d),i(c,[],s,u),l=c.length;l--;)(p=c[l])&&(b[d[l]]=!(y[d[l]]=p));if(r){if(o||e){if(o){for(c=[],l=b.length;l--;)(p=b[l])&&c.push(y[l]=p);o(null,b=[],c,u)}for(l=b.length;l--;)(p=b[l])&&(c=o?ee(r,p):f[l])>-1&&(r[c]=!(a[c]=p))}}else b=v(b===a?b.splice(h,b.length):b),o?o(null,a,b,u):J.apply(a,b)})}function y(e){for(var t,n,r,i=e.length,o=E.relative[e[0].type],a=o||E.relative[" "],s=o?1:0,u=d(function(e){return e===t},a,!0),c=d(function(e){return ee(t,e)>-1},a,!0),l=[function(e,n,r){var i=!o&&(r||n!==T)||((t=n).nodeType?u(e,n,r):c(e,n,r));return t=null,i}];i>s;s++)if(n=E.relative[e[s].type])l=[d(h(l),n)];else{if(n=E.filter[e[s].type].apply(null,e[s].matches),n[L]){for(r=++s;i>r&&!E.relative[e[r].type];r++);return g(s>1&&h(l),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(ue,"$1"),n,r>s&&y(e.slice(s,r)),i>r&&y(e=e.slice(r)),i>r&&f(e))}l.push(n)}return h(l)}function b(e,n){var i=n.length>0,o=e.length>0,a=function(r,a,s,u,c){var l,p,f,d=0,h="0",m=r&&[],g=[],y=T,b=r||o&&E.find.TAG("*",c),x=U+=null==y?1:Math.random()||.1,w=b.length;for(c&&(T=a!==R&&a);h!==w&&null!=(l=b[h]);h++){if(o&&l){for(p=0;f=e[p++];)if(f(l,a,s)){u.push(l);break}c&&(U=x)}i&&((l=!f&&l)&&d--,r&&m.push(l))}if(d+=h,i&&h!==d){for(p=0;f=n[p++];)f(m,g,a,s);if(r){if(d>0)for(;h--;)m[h]||g[h]||(g[h]=G.call(u));g=v(g)}J.apply(u,g),c&&!r&&g.length>0&&d+n.length>1&&t.uniqueSort(u)}return c&&(U=x,T=y),m};return i?r(a):a}var x,w,E,_,C,N,$,O,T,P,S,D,R,k,A,j,I,M,F,L="sizzle"+1*new Date,V=e.document,U=0,H=0,q=n(),B=n(),W=n(),z=function(e,t){return e===t&&(S=!0),0},K=1<<31,Q={}.hasOwnProperty,Y=[],G=Y.pop,X=Y.push,J=Y.push,Z=Y.slice,ee=function(e,t){for(var n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1},te="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ne="[\\x20\\t\\r\\n\\f]",re="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ie=re.replace("w","w#"),oe="\\["+ne+"*("+re+")(?:"+ne+"*([*^$|!~]?=)"+ne+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+ie+"))|)"+ne+"*\\]",ae=":("+re+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+oe+")*)|.*)\\)|)",se=new RegExp(ne+"+","g"),ue=new RegExp("^"+ne+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ne+"+$","g"),ce=new RegExp("^"+ne+"*,"+ne+"*"),le=new RegExp("^"+ne+"*([>+~]|"+ne+")"+ne+"*"),pe=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(ae),de=new RegExp("^"+ie+"$"),he={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re.replace("w","w*")+")"),ATTR:new RegExp("^"+oe),PSEUDO:new RegExp("^"+ae),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},me=/^(?:input|select|textarea|button)$/i,ve=/^h\d$/i,ge=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,be=/[+~]/,xe=/'|\\/g,we=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),Ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},_e=function(){D()};try{J.apply(Y=Z.call(V.childNodes),V.childNodes),Y[V.childNodes.length].nodeType}catch(Ce){J={apply:Y.length?function(e,t){X.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}w=t.support={},C=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},D=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:V;return r!==R&&9===r.nodeType&&r.documentElement?(R=r,k=r.documentElement,n=r.defaultView,n&&n!==n.top&&(n.addEventListener?n.addEventListener("unload",_e,!1):n.attachEvent&&n.attachEvent("onunload",_e)),A=!C(r),w.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=i(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=ge.test(r.getElementsByClassName),w.getById=i(function(e){return k.appendChild(e).id=L,!r.getElementsByName||!r.getElementsByName(L).length}),w.getById?(E.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&A){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},E.filter.ID=function(e){var t=e.replace(we,Ee);return function(e){return e.getAttribute("id")===t}}):(delete E.find.ID,E.filter.ID=function(e){var t=e.replace(we,Ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),E.find.TAG=w.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):w.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},E.find.CLASS=w.getElementsByClassName&&function(e,t){return A?t.getElementsByClassName(e):void 0},I=[],j=[],(w.qsa=ge.test(r.querySelectorAll))&&(i(function(e){k.appendChild(e).innerHTML="<a id='"+L+"'></a><select id='"+L+"-\f]' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&j.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||j.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+L+"-]").length||j.push("~="),e.querySelectorAll(":checked").length||j.push(":checked"),e.querySelectorAll("a#"+L+"+*").length||j.push(".#.+[+~]")}),i(function(e){var t=r.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&j.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||j.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),j.push(",.*:")})),(w.matchesSelector=ge.test(M=k.matches||k.webkitMatchesSelector||k.mozMatchesSelector||k.oMatchesSelector||k.msMatchesSelector))&&i(function(e){w.disconnectedMatch=M.call(e,"div"),M.call(e,"[s!='']:x"),I.push("!=",ae)}),j=j.length&&new RegExp(j.join("|")),I=I.length&&new RegExp(I.join("|")),t=ge.test(k.compareDocumentPosition),F=t||ge.test(k.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},z=t?function(e,t){if(e===t)return S=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!w.sortDetached&&t.compareDocumentPosition(e)===n?e===r||e.ownerDocument===V&&F(V,e)?-1:t===r||t.ownerDocument===V&&F(V,t)?1:P?ee(P,e)-ee(P,t):0:4&n?-1:1)}:function(e,t){if(e===t)return S=!0,0;var n,i=0,o=e.parentNode,s=t.parentNode,u=[e],c=[t];if(!o||!s)return e===r?-1:t===r?1:o?-1:s?1:P?ee(P,e)-ee(P,t):0;if(o===s)return a(e,t);for(n=e;n=n.parentNode;)u.unshift(n);for(n=t;n=n.parentNode;)c.unshift(n);for(;u[i]===c[i];)i++;return i?a(u[i],c[i]):u[i]===V?-1:c[i]===V?1:0},r):R},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==R&&D(e),n=n.replace(pe,"='$1']"),!(!w.matchesSelector||!A||I&&I.test(n)||j&&j.test(n)))try{var r=M.call(e,n);if(r||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,R,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==R&&D(e),F(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==R&&D(e);var n=E.attrHandle[t.toLowerCase()],r=n&&Q.call(E.attrHandle,t.toLowerCase())?n(e,t,!A):void 0;return void 0!==r?r:w.attributes||!A?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(S=!w.detectDuplicates,P=!w.sortStable&&e.slice(0),e.sort(z),S){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return P=null,e},_=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=_(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=_(t);return n},E=t.selectors={cacheLength:50,createPseudo:r,match:he,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(we,Ee),e[3]=(e[3]||e[4]||e[5]||"").replace(we,Ee),"~="===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]||t.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]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return he.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(we,Ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=q[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&q(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:n?(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(se," ")+" ").indexOf(r)>-1:"|="===n?o===r||o.slice(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var c,l,p,f,d,h,m=o!==a?"nextSibling":"previousSibling",v=t.parentNode,g=s&&t.nodeName.toLowerCase(),y=!u&&!s;if(v){if(o){for(;m;){for(p=t;p=p[m];)if(s?p.nodeName.toLowerCase()===g:1===p.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?v.firstChild:v.lastChild],a&&y){for(l=v[L]||(v[L]={}),c=l[e]||[],d=c[0]===U&&c[1],f=c[0]===U&&c[2],p=d&&v.childNodes[d];p=++d&&p&&p[m]||(f=d=0)||h.pop();)if(1===p.nodeType&&++f&&p===t){l[e]=[U,d,f];break}}else if(y&&(c=(t[L]||(t[L]={}))[e])&&c[0]===U)f=c[1];else for(;(p=++d&&p&&p[m]||(f=d=0)||h.pop())&&((s?p.nodeName.toLowerCase()!==g:1!==p.nodeType)||!++f||(y&&((p[L]||(p[L]={}))[e]=[U,f]),p!==t)););return f-=i,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(e,n){var i,o=E.pseudos[e]||E.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[L]?o(n):o.length>1?(i=[e,e,"",n],E.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=ee(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=$(e.replace(ue,"$1"));return i[L]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(we,Ee),function(t){return(t.textContent||t.innerText||_(t)).indexOf(e)>-1}}),lang:r(function(e){return de.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(we,Ee).toLowerCase(),function(t){var n;do if(n=A?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===k},focus:function(e){return e===R.activeElement&&(!R.hasFocus||R.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},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,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!E.pseudos.empty(e)},header:function(e){return ve.test(e.nodeName)},input:function(e){return me.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:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);
2
+
3
+ return e}),gt:c(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}},E.pseudos.nth=E.pseudos.eq;for(x in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})E.pseudos[x]=s(x);for(x in{submit:!0,reset:!0})E.pseudos[x]=u(x);return p.prototype=E.filters=E.pseudos,E.setFilters=new p,N=t.tokenize=function(e,n){var r,i,o,a,s,u,c,l=B[e+" "];if(l)return n?0:l.slice(0);for(s=e,u=[],c=E.preFilter;s;){(!r||(i=ce.exec(s)))&&(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),r=!1,(i=le.exec(s))&&(r=i.shift(),o.push({value:r,type:i[0].replace(ue," ")}),s=s.slice(r.length));for(a in E.filter)!(i=he[a].exec(s))||c[a]&&!(i=c[a](i))||(r=i.shift(),o.push({value:r,type:a,matches:i}),s=s.slice(r.length));if(!r)break}return n?s.length:s?t.error(e):B(e,u).slice(0)},$=t.compile=function(e,t){var n,r=[],i=[],o=W[e+" "];if(!o){for(t||(t=N(e)),n=t.length;n--;)o=y(t[n]),o[L]?r.push(o):i.push(o);o=W(e,b(i,r)),o.selector=e}return o},O=t.select=function(e,t,n,r){var i,o,a,s,u,c="function"==typeof e&&e,p=!r&&N(e=c.selector||e);if(n=n||[],1===p.length){if(o=p[0]=p[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&w.getById&&9===t.nodeType&&A&&E.relative[o[1].type]){if(t=(E.find.ID(a.matches[0].replace(we,Ee),t)||[])[0],!t)return n;c&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=he.needsContext.test(e)?0:o.length;i--&&(a=o[i],!E.relative[s=a.type]);)if((u=E.find[s])&&(r=u(a.matches[0].replace(we,Ee),be.test(o[0].type)&&l(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&f(o),!e)return J.apply(n,r),n;break}}return(c||$(e,p))(r,t,!A,n,be.test(e)&&l(t.parentNode)||t),n},w.sortStable=L.split("").sort(z).join("")===L,w.detectDuplicates=!!S,D(),w.sortDetached=i(function(e){return 1&e.compareDocumentPosition(R.createElement("div"))}),i(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&i(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var r;return n?void 0:e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(i);ue.find=de,ue.expr=de.selectors,ue.expr[":"]=ue.expr.pseudos,ue.unique=de.uniqueSort,ue.text=de.getText,ue.isXMLDoc=de.isXML,ue.contains=de.contains;var he=ue.expr.match.needsContext,me=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ve=/^.[^:#\[\.,]*$/;ue.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?ue.find.matchesSelector(r,e)?[r]:[]:ue.find.matches(e,ue.grep(t,function(e){return 1===e.nodeType}))},ue.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(ue(e).filter(function(){for(t=0;i>t;t++)if(ue.contains(r[t],this))return!0}));for(t=0;i>t;t++)ue.find(e,r[t],n);return n=this.pushStack(i>1?ue.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(s(this,e||[],!1))},not:function(e){return this.pushStack(s(this,e||[],!0))},is:function(e){return!!s(this,"string"==typeof e&&he.test(e)?ue(e):e||[],!1).length}});var ge,ye=i.document,be=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,xe=ue.fn.init=function(e,t){var n,r;if(!e)return this;if("string"==typeof e){if(n="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:be.exec(e),!n||!n[1]&&t)return!t||t.jquery?(t||ge).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof ue?t[0]:t,ue.merge(this,ue.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:ye,!0)),me.test(n[1])&&ue.isPlainObject(t))for(n in t)ue.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}if(r=ye.getElementById(n[2]),r&&r.parentNode){if(r.id!==n[2])return ge.find(e);this.length=1,this[0]=r}return this.context=ye,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):ue.isFunction(e)?"undefined"!=typeof ge.ready?ge.ready(e):e(ue):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),ue.makeArray(e,this))};xe.prototype=ue.fn,ge=ue(ye);var we=/^(?:parents|prev(?:Until|All))/,Ee={children:!0,contents:!0,next:!0,prev:!0};ue.extend({dir:function(e,t,n){for(var r=[],i=e[t];i&&9!==i.nodeType&&(void 0===n||1!==i.nodeType||!ue(i).is(n));)1===i.nodeType&&r.push(i),i=i[t];return r},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}}),ue.fn.extend({has:function(e){var t,n=ue(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(ue.contains(this,n[t]))return!0})},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=he.test(e)||"string"!=typeof e?ue(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&ue.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?ue.unique(o):o)},index:function(e){return e?"string"==typeof e?ue.inArray(this[0],ue(e)):ue.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ue.unique(ue.merge(this.get(),ue(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ue.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return ue.dir(e,"parentNode")},parentsUntil:function(e,t,n){return ue.dir(e,"parentNode",n)},next:function(e){return u(e,"nextSibling")},prev:function(e){return u(e,"previousSibling")},nextAll:function(e){return ue.dir(e,"nextSibling")},prevAll:function(e){return ue.dir(e,"previousSibling")},nextUntil:function(e,t,n){return ue.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return ue.dir(e,"previousSibling",n)},siblings:function(e){return ue.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return ue.sibling(e.firstChild)},contents:function(e){return ue.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:ue.merge([],e.childNodes)}},function(e,t){ue.fn[e]=function(n,r){var i=ue.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=ue.filter(r,i)),this.length>1&&(Ee[e]||(i=ue.unique(i)),we.test(e)&&(i=i.reverse())),this.pushStack(i)}});var _e=/\S+/g,Ce={};ue.Callbacks=function(e){e="string"==typeof e?Ce[e]||c(e):ue.extend({},e);var t,n,r,i,o,a,s=[],u=!e.once&&[],l=function(c){for(n=e.memory&&c,r=!0,o=a||0,a=0,i=s.length,t=!0;s&&i>o;o++)if(s[o].apply(c[0],c[1])===!1&&e.stopOnFalse){n=!1;break}t=!1,s&&(u?u.length&&l(u.shift()):n?s=[]:p.disable())},p={add:function(){if(s){var r=s.length;!function o(t){ue.each(t,function(t,n){var r=ue.type(n);"function"===r?e.unique&&p.has(n)||s.push(n):n&&n.length&&"string"!==r&&o(n)})}(arguments),t?i=s.length:n&&(a=r,l(n))}return this},remove:function(){return s&&ue.each(arguments,function(e,n){for(var r;(r=ue.inArray(n,s,r))>-1;)s.splice(r,1),t&&(i>=r&&i--,o>=r&&o--)}),this},has:function(e){return e?ue.inArray(e,s)>-1:!(!s||!s.length)},empty:function(){return s=[],i=0,this},disable:function(){return s=u=n=void 0,this},disabled:function(){return!s},lock:function(){return u=void 0,n||p.disable(),this},locked:function(){return!u},fireWith:function(e,n){return!s||r&&!u||(n=n||[],n=[e,n.slice?n.slice():n],t?u.push(n):l(n)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!r}};return p},ue.extend({Deferred:function(e){var t=[["resolve","done",ue.Callbacks("once memory"),"resolved"],["reject","fail",ue.Callbacks("once memory"),"rejected"],["notify","progress",ue.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return ue.Deferred(function(n){ue.each(t,function(t,o){var a=ue.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&ue.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[o[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?ue.extend(e,r):r}},i={};return r.pipe=r.then,ue.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=Z.call(arguments),a=o.length,s=1!==a||e&&ue.isFunction(e.promise)?a:0,u=1===s?e:ue.Deferred(),c=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?Z.call(arguments):i,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);a>i;i++)o[i]&&ue.isFunction(o[i].promise)?o[i].promise().done(c(i,r,o)).fail(u.reject).progress(c(i,n,t)):--s;return s||u.resolveWith(r,o),u.promise()}});var Ne;ue.fn.ready=function(e){return ue.ready.promise().done(e),this},ue.extend({isReady:!1,readyWait:1,holdReady:function(e){e?ue.readyWait++:ue.ready(!0)},ready:function(e){if(e===!0?!--ue.readyWait:!ue.isReady){if(!ye.body)return setTimeout(ue.ready);ue.isReady=!0,e!==!0&&--ue.readyWait>0||(Ne.resolveWith(ye,[ue]),ue.fn.triggerHandler&&(ue(ye).triggerHandler("ready"),ue(ye).off("ready")))}}}),ue.ready.promise=function(e){if(!Ne)if(Ne=ue.Deferred(),"complete"===ye.readyState)setTimeout(ue.ready);else if(ye.addEventListener)ye.addEventListener("DOMContentLoaded",p,!1),i.addEventListener("load",p,!1);else{ye.attachEvent("onreadystatechange",p),i.attachEvent("onload",p);var t=!1;try{t=null==i.frameElement&&ye.documentElement}catch(n){}t&&t.doScroll&&!function r(){if(!ue.isReady){try{t.doScroll("left")}catch(e){return setTimeout(r,50)}l(),ue.ready()}}()}return Ne.promise(e)};var $e,Oe="undefined";for($e in ue(ae))break;ae.ownLast="0"!==$e,ae.inlineBlockNeedsLayout=!1,ue(function(){var e,t,n,r;n=ye.getElementsByTagName("body")[0],n&&n.style&&(t=ye.createElement("div"),r=ye.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),typeof t.style.zoom!==Oe&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",ae.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(r))}),function(){var e=ye.createElement("div");if(null==ae.deleteExpando){ae.deleteExpando=!0;try{delete e.test}catch(t){ae.deleteExpando=!1}}e=null}(),ue.acceptData=function(e){var t=ue.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return 1!==n&&9!==n?!1:!t||t!==!0&&e.getAttribute("classid")===t};var Te=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Pe=/([A-Z])/g;ue.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?ue.cache[e[ue.expando]]:e[ue.expando],!!e&&!d(e)},data:function(e,t,n){return h(e,t,n)},removeData:function(e,t){return m(e,t)},_data:function(e,t,n){return h(e,t,n,!0)},_removeData:function(e,t){return m(e,t,!0)}}),ue.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=ue.data(o),1===o.nodeType&&!ue._data(o,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(r=a[n].name,0===r.indexOf("data-")&&(r=ue.camelCase(r.slice(5)),f(o,r,i[r])));ue._data(o,"parsedAttrs",!0)}return i}return"object"==typeof e?this.each(function(){ue.data(this,e)}):arguments.length>1?this.each(function(){ue.data(this,e,t)}):o?f(o,e,ue.data(o,e)):void 0},removeData:function(e){return this.each(function(){ue.removeData(this,e)})}}),ue.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=ue._data(e,t),n&&(!r||ue.isArray(n)?r=ue._data(e,t,ue.makeArray(n)):r.push(n)),r||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=ue.queue(e,t),r=n.length,i=n.shift(),o=ue._queueHooks(e,t),a=function(){ue.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return ue._data(e,n)||ue._data(e,n,{empty:ue.Callbacks("once memory").add(function(){ue._removeData(e,t+"queue"),ue._removeData(e,n)})})}}),ue.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?ue.queue(this[0],e):void 0===t?this:this.each(function(){var n=ue.queue(this,e,t);ue._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&ue.dequeue(this,e)})},dequeue:function(e){return this.each(function(){ue.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=ue.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";a--;)n=ue._data(o[a],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var Se=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,De=["Top","Right","Bottom","Left"],Re=function(e,t){return e=t||e,"none"===ue.css(e,"display")||!ue.contains(e.ownerDocument,e)},ke=ue.access=function(e,t,n,r,i,o,a){var s=0,u=e.length,c=null==n;if("object"===ue.type(n)){i=!0;for(s in n)ue.access(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,ue.isFunction(r)||(a=!0),c&&(a?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(ue(e),n)})),t))for(;u>s;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:c?t.call(e):u?t(e[0],n):o},Ae=/^(?:checkbox|radio)$/i;!function(){var e=ye.createElement("input"),t=ye.createElement("div"),n=ye.createDocumentFragment();if(t.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",ae.leadingWhitespace=3===t.firstChild.nodeType,ae.tbody=!t.getElementsByTagName("tbody").length,ae.htmlSerialize=!!t.getElementsByTagName("link").length,ae.html5Clone="<:nav></:nav>"!==ye.createElement("nav").cloneNode(!0).outerHTML,e.type="checkbox",e.checked=!0,n.appendChild(e),ae.appendChecked=e.checked,t.innerHTML="<textarea>x</textarea>",ae.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue,n.appendChild(t),t.innerHTML="<input type='radio' checked='checked' name='t'/>",ae.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,ae.noCloneEvent=!0,t.attachEvent&&(t.attachEvent("onclick",function(){ae.noCloneEvent=!1}),t.cloneNode(!0).click()),null==ae.deleteExpando){ae.deleteExpando=!0;try{delete t.test}catch(r){ae.deleteExpando=!1}}}(),function(){var e,t,n=ye.createElement("div");for(e in{submit:!0,change:!0,focusin:!0})t="on"+e,(ae[e+"Bubbles"]=t in i)||(n.setAttribute(t,"t"),ae[e+"Bubbles"]=n.attributes[t].expando===!1);n=null}();var je=/^(?:input|select|textarea)$/i,Ie=/^key/,Me=/^(?:mouse|pointer|contextmenu)|click/,Fe=/^(?:focusinfocus|focusoutblur)$/,Le=/^([^.]*)(?:\.(.+)|)$/;ue.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,c,l,p,f,d,h,m,v=ue._data(e);if(v){for(n.handler&&(u=n,n=u.handler,i=u.selector),n.guid||(n.guid=ue.guid++),(a=v.events)||(a=v.events={}),(l=v.handle)||(l=v.handle=function(e){return typeof ue===Oe||e&&ue.event.triggered===e.type?void 0:ue.event.dispatch.apply(l.elem,arguments)},l.elem=e),t=(t||"").match(_e)||[""],s=t.length;s--;)o=Le.exec(t[s])||[],d=m=o[1],h=(o[2]||"").split(".").sort(),d&&(c=ue.event.special[d]||{},d=(i?c.delegateType:c.bindType)||d,c=ue.event.special[d]||{},p=ue.extend({type:d,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&ue.expr.match.needsContext.test(i),namespace:h.join(".")},u),(f=a[d])||(f=a[d]=[],f.delegateCount=0,c.setup&&c.setup.call(e,r,h,l)!==!1||(e.addEventListener?e.addEventListener(d,l,!1):e.attachEvent&&e.attachEvent("on"+d,l))),c.add&&(c.add.call(e,p),p.handler.guid||(p.handler.guid=n.guid)),i?f.splice(f.delegateCount++,0,p):f.push(p),ue.event.global[d]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,u,c,l,p,f,d,h,m,v=ue.hasData(e)&&ue._data(e);if(v&&(l=v.events)){for(t=(t||"").match(_e)||[""],c=t.length;c--;)if(s=Le.exec(t[c])||[],d=m=s[1],h=(s[2]||"").split(".").sort(),d){for(p=ue.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=l[d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=f.length;o--;)a=f[o],!i&&m!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,v.handle)!==!1||ue.removeEvent(e,d,v.handle),delete l[d])}else for(d in l)ue.event.remove(e,d+t[c],n,r,!0);ue.isEmptyObject(l)&&(delete v.handle,ue._removeData(e,"events"))}},trigger:function(e,t,n,r){var o,a,s,u,c,l,p,f=[n||ye],d=oe.call(e,"type")?e.type:e,h=oe.call(e,"namespace")?e.namespace.split("."):[];if(s=l=n=n||ye,3!==n.nodeType&&8!==n.nodeType&&!Fe.test(d+ue.event.triggered)&&(d.indexOf(".")>=0&&(h=d.split("."),d=h.shift(),h.sort()),a=d.indexOf(":")<0&&"on"+d,e=e[ue.expando]?e:new ue.Event(d,"object"==typeof e&&e),e.isTrigger=r?2:3,e.namespace=h.join("."),e.namespace_re=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:ue.makeArray(t,[e]),c=ue.event.special[d]||{},r||!c.trigger||c.trigger.apply(n,t)!==!1)){if(!r&&!c.noBubble&&!ue.isWindow(n)){for(u=c.delegateType||d,Fe.test(u+d)||(s=s.parentNode);s;s=s.parentNode)f.push(s),l=s;l===(n.ownerDocument||ye)&&f.push(l.defaultView||l.parentWindow||i)}for(p=0;(s=f[p++])&&!e.isPropagationStopped();)e.type=p>1?u:c.bindType||d,o=(ue._data(s,"events")||{})[e.type]&&ue._data(s,"handle"),o&&o.apply(s,t),o=a&&s[a],o&&o.apply&&ue.acceptData(s)&&(e.result=o.apply(s,t),e.result===!1&&e.preventDefault());if(e.type=d,!r&&!e.isDefaultPrevented()&&(!c._default||c._default.apply(f.pop(),t)===!1)&&ue.acceptData(n)&&a&&n[d]&&!ue.isWindow(n)){l=n[a],l&&(n[a]=null),ue.event.triggered=d;try{n[d]()}catch(m){}ue.event.triggered=void 0,l&&(n[a]=l)}return e.result}},dispatch:function(e){e=ue.event.fix(e);var t,n,r,i,o,a=[],s=Z.call(arguments),u=(ue._data(this,"events")||{})[e.type]||[],c=ue.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){for(a=ue.event.handlers.call(this,e,u),t=0;(i=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,o=0;(r=i.handlers[o++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(r.namespace))&&(e.handleObj=r,e.data=r.data,n=((ue.event.special[r.origType]||{}).handle||r.handler).apply(i.elem,s),void 0!==n&&(e.result=n)===!1&&(e.preventDefault(),e.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(i=[],o=0;s>o;o++)r=t[o],n=r.selector+" ",void 0===i[n]&&(i[n]=r.needsContext?ue(n,this).index(u)>=0:ue.find(n,this,null,[u]).length),i[n]&&i.push(r);i.length&&a.push({elem:u,handlers:i})}return s<t.length&&a.push({elem:this,handlers:t.slice(s)}),a},fix:function(e){if(e[ue.expando])return e;var t,n,r,i=e.type,o=e,a=this.fixHooks[i];for(a||(this.fixHooks[i]=a=Me.test(i)?this.mouseHooks:Ie.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new ue.Event(o),t=r.length;t--;)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||ye),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,a.filter?a.filter(e,o):e},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(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,o=t.button,a=t.fromElement;return null==e.pageX&&null!=t.clientX&&(r=e.target.ownerDocument||ye,i=r.documentElement,n=r.body,e.pageX=t.clientX+(i&&i.scrollLeft||n&&n.scrollLeft||0)-(i&&i.clientLeft||n&&n.clientLeft||0),e.pageY=t.clientY+(i&&i.scrollTop||n&&n.scrollTop||0)-(i&&i.clientTop||n&&n.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?t.toElement:a),e.which||void 0===o||(e.which=1&o?1:2&o?3:4&o?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==y()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===y()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return ue.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(e){return ue.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=ue.extend(new ue.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?ue.event.trigger(i,null,t):ue.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},ue.removeEvent=ye.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===Oe&&(e[r]=null),e.detachEvent(r,n))},ue.Event=function(e,t){return this instanceof ue.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&e.returnValue===!1?v:g):this.type=e,t&&ue.extend(this,t),this.timeStamp=e&&e.timeStamp||ue.now(),void(this[ue.expando]=!0)):new ue.Event(e,t)},ue.Event.prototype={isDefaultPrevented:g,isPropagationStopped:g,isImmediatePropagationStopped:g,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=v,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=v,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=v,e&&e.stopImmediatePropagation&&e.stopImmediatePropagation(),this.stopPropagation()}},ue.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){ue.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!ue.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),ae.submitBubbles||(ue.event.special.submit={setup:function(){return ue.nodeName(this,"form")?!1:void ue.event.add(this,"click._submit keypress._submit",function(e){var t=e.target,n=ue.nodeName(t,"input")||ue.nodeName(t,"button")?t.form:void 0;n&&!ue._data(n,"submitBubbles")&&(ue.event.add(n,"submit._submit",function(e){e._submit_bubble=!0}),ue._data(n,"submitBubbles",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&ue.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return ue.nodeName(this,"form")?!1:void ue.event.remove(this,"._submit")}}),ae.changeBubbles||(ue.event.special.change={setup:function(){return je.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(ue.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),ue.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),ue.event.simulate("change",this,e,!0)})),!1):void ue.event.add(this,"beforeactivate._change",function(e){var t=e.target;je.test(t.nodeName)&&!ue._data(t,"changeBubbles")&&(ue.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||ue.event.simulate("change",this.parentNode,e,!0)}),ue._data(t,"changeBubbles",!0))})},handle:function(e){var t=e.target;return this!==t||e.isSimulated||e.isTrigger||"radio"!==t.type&&"checkbox"!==t.type?e.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return ue.event.remove(this,"._change"),!je.test(this.nodeName)}}),ae.focusinBubbles||ue.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){ue.event.simulate(t,e.target,ue.event.fix(e),!0)};ue.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=ue._data(r,t);i||r.addEventListener(e,n,!0),ue._data(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=ue._data(r,t)-1;i?ue._data(r,t,i):(r.removeEventListener(e,n,!0),ue._removeData(r,t))}}}),ue.fn.extend({on:function(e,t,n,r,i){var o,a;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=void 0);for(o in e)this.on(o,t,n,e[o],i);return this}if(null==n&&null==r?(r=t,n=t=void 0):null==r&&("string"==typeof t?(r=n,n=void 0):(r=n,n=t,t=void 0)),r===!1)r=g;else if(!r)return this;return 1===i&&(a=r,r=function(e){return ue().off(e),a.apply(this,arguments)},r.guid=a.guid||(a.guid=ue.guid++)),this.each(function(){ue.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,ue(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=void 0),n===!1&&(n=g),this.each(function(){ue.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){ue.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?ue.event.trigger(e,t,n,!0):void 0}});var Ve="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",Ue=/ jQuery\d+="(?:null|\d+)"/g,He=new RegExp("<(?:"+Ve+")[\\s/>]","i"),qe=/^\s+/,Be=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,We=/<([\w:]+)/,ze=/<tbody/i,Ke=/<|&#?\w+;/,Qe=/<(?:script|style|link)/i,Ye=/checked\s*(?:[^=]|=\s*.checked.)/i,Ge=/^$|\/(?:java|ecma)script/i,Xe=/^true\/(.*)/,Je=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Ze={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:ae.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},et=b(ye),tt=et.appendChild(ye.createElement("div"));Ze.optgroup=Ze.option,Ze.tbody=Ze.tfoot=Ze.colgroup=Ze.caption=Ze.thead,Ze.th=Ze.td,ue.extend({clone:function(e,t,n){var r,i,o,a,s,u=ue.contains(e.ownerDocument,e);if(ae.html5Clone||ue.isXMLDoc(e)||!He.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(tt.innerHTML=e.outerHTML,tt.removeChild(o=tt.firstChild)),!(ae.noCloneEvent&&ae.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ue.isXMLDoc(e)))for(r=x(o),s=x(e),a=0;null!=(i=s[a]);++a)r[a]&&O(i,r[a]);if(t)if(n)for(s=s||x(e),r=r||x(o),a=0;null!=(i=s[a]);a++)$(i,r[a]);else $(e,o);return r=x(o,"script"),r.length>0&&N(r,!u&&x(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){for(var i,o,a,s,u,c,l,p=e.length,f=b(t),d=[],h=0;p>h;h++)if(o=e[h],o||0===o)if("object"===ue.type(o))ue.merge(d,o.nodeType?[o]:o);else if(Ke.test(o)){for(s=s||f.appendChild(t.createElement("div")),u=(We.exec(o)||["",""])[1].toLowerCase(),l=Ze[u]||Ze._default,s.innerHTML=l[1]+o.replace(Be,"<$1></$2>")+l[2],i=l[0];i--;)s=s.lastChild;if(!ae.leadingWhitespace&&qe.test(o)&&d.push(t.createTextNode(qe.exec(o)[0])),!ae.tbody)for(o="table"!==u||ze.test(o)?"<table>"!==l[1]||ze.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;i--;)ue.nodeName(c=o.childNodes[i],"tbody")&&!c.childNodes.length&&o.removeChild(c);for(ue.merge(d,s.childNodes),s.textContent="";s.firstChild;)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));for(s&&f.removeChild(s),ae.appendChecked||ue.grep(x(d,"input"),w),h=0;o=d[h++];)if((!r||-1===ue.inArray(o,r))&&(a=ue.contains(o.ownerDocument,o),s=x(f.appendChild(o),"script"),a&&N(s),n))for(i=0;o=s[i++];)Ge.test(o.type||"")&&n.push(o);return s=null,f},cleanData:function(e,t){for(var n,r,i,o,a=0,s=ue.expando,u=ue.cache,c=ae.deleteExpando,l=ue.event.special;null!=(n=e[a]);a++)if((t||ue.acceptData(n))&&(i=n[s],o=i&&u[i])){if(o.events)for(r in o.events)l[r]?ue.event.remove(n,r):ue.removeEvent(n,r,o.handle);u[i]&&(delete u[i],c?delete n[s]:typeof n.removeAttribute!==Oe?n.removeAttribute(s):n[s]=null,J.push(i))}}}),ue.fn.extend({text:function(e){return ke(this,function(e){return void 0===e?ue.text(this):this.empty().append((this[0]&&this[0].ownerDocument||ye).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=E(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=E(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,r=e?ue.filter(e,this):this,i=0;null!=(n=r[i]);i++)t||1!==n.nodeType||ue.cleanData(x(n)),n.parentNode&&(t&&ue.contains(n.ownerDocument,n)&&N(x(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&ue.cleanData(x(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&ue.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return ue.clone(this,e,t)})},html:function(e){return ke(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Ue,""):void 0;if(!("string"!=typeof e||Qe.test(e)||!ae.htmlSerialize&&He.test(e)||!ae.leadingWhitespace&&qe.test(e)||Ze[(We.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(Be,"<$1></$2>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(ue.cleanData(x(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=arguments[0];return this.domManip(arguments,function(t){e=this.parentNode,ue.cleanData(x(this)),e&&e.replaceChild(t,this)}),e&&(e.length||e.nodeType)?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t){e=ee.apply([],e);var n,r,i,o,a,s,u=0,c=this.length,l=this,p=c-1,f=e[0],d=ue.isFunction(f);if(d||c>1&&"string"==typeof f&&!ae.checkClone&&Ye.test(f))return this.each(function(n){var r=l.eq(n);d&&(e[0]=f.call(this,n,r.html())),r.domManip(e,t)});if(c&&(s=ue.buildFragment(e,this[0].ownerDocument,!1,this),n=s.firstChild,1===s.childNodes.length&&(s=n),n)){for(o=ue.map(x(s,"script"),_),i=o.length;c>u;u++)r=s,u!==p&&(r=ue.clone(r,!0,!0),i&&ue.merge(o,x(r,"script"))),t.call(this[u],r,u);if(i)for(a=o[o.length-1].ownerDocument,ue.map(o,C),u=0;i>u;u++)r=o[u],Ge.test(r.type||"")&&!ue._data(r,"globalEval")&&ue.contains(a,r)&&(r.src?ue._evalUrl&&ue._evalUrl(r.src):ue.globalEval((r.text||r.textContent||r.innerHTML||"").replace(Je,"")));s=n=null}return this}}),ue.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){ue.fn[e]=function(e){for(var n,r=0,i=[],o=ue(e),a=o.length-1;a>=r;r++)n=r===a?this:this.clone(!0),ue(o[r])[t](n),te.apply(i,n.get());return this.pushStack(i)}});var nt,rt={};!function(){var e;ae.shrinkWrapBlocks=function(){if(null!=e)return e;e=!1;var t,n,r;return n=ye.getElementsByTagName("body")[0],n&&n.style?(t=ye.createElement("div"),r=ye.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),typeof t.style.zoom!==Oe&&(t.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",
4
+ t.appendChild(ye.createElement("div")).style.width="5px",e=3!==t.offsetWidth),n.removeChild(r),e):void 0}}();var it,ot,at=/^margin/,st=new RegExp("^("+Se+")(?!px)[a-z%]+$","i"),ut=/^(top|right|bottom|left)$/;i.getComputedStyle?(it=function(e){return e.ownerDocument.defaultView.opener?e.ownerDocument.defaultView.getComputedStyle(e,null):i.getComputedStyle(e,null)},ot=function(e,t,n){var r,i,o,a,s=e.style;return n=n||it(e),a=n?n.getPropertyValue(t)||n[t]:void 0,n&&(""!==a||ue.contains(e.ownerDocument,e)||(a=ue.style(e,t)),st.test(a)&&at.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0===a?a:a+""}):ye.documentElement.currentStyle&&(it=function(e){return e.currentStyle},ot=function(e,t,n){var r,i,o,a,s=e.style;return n=n||it(e),a=n?n[t]:void 0,null==a&&s&&s[t]&&(a=s[t]),st.test(a)&&!ut.test(t)&&(r=s.left,i=e.runtimeStyle,o=i&&i.left,o&&(i.left=e.currentStyle.left),s.left="fontSize"===t?"1em":a,a=s.pixelLeft+"px",s.left=r,o&&(i.left=o)),void 0===a?a:a+""||"auto"}),function(){function e(){var e,t,n,r;t=ye.getElementsByTagName("body")[0],t&&t.style&&(e=ye.createElement("div"),n=ye.createElement("div"),n.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",t.appendChild(n).appendChild(e),e.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",o=a=!1,u=!0,i.getComputedStyle&&(o="1%"!==(i.getComputedStyle(e,null)||{}).top,a="4px"===(i.getComputedStyle(e,null)||{width:"4px"}).width,r=e.appendChild(ye.createElement("div")),r.style.cssText=e.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",r.style.marginRight=r.style.width="0",e.style.width="1px",u=!parseFloat((i.getComputedStyle(r,null)||{}).marginRight),e.removeChild(r)),e.innerHTML="<table><tr><td></td><td>t</td></tr></table>",r=e.getElementsByTagName("td"),r[0].style.cssText="margin:0;border:0;padding:0;display:none",s=0===r[0].offsetHeight,s&&(r[0].style.display="",r[1].style.display="none",s=0===r[0].offsetHeight),t.removeChild(n))}var t,n,r,o,a,s,u;t=ye.createElement("div"),t.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",r=t.getElementsByTagName("a")[0],n=r&&r.style,n&&(n.cssText="float:left;opacity:.5",ae.opacity="0.5"===n.opacity,ae.cssFloat=!!n.cssFloat,t.style.backgroundClip="content-box",t.cloneNode(!0).style.backgroundClip="",ae.clearCloneStyle="content-box"===t.style.backgroundClip,ae.boxSizing=""===n.boxSizing||""===n.MozBoxSizing||""===n.WebkitBoxSizing,ue.extend(ae,{reliableHiddenOffsets:function(){return null==s&&e(),s},boxSizingReliable:function(){return null==a&&e(),a},pixelPosition:function(){return null==o&&e(),o},reliableMarginRight:function(){return null==u&&e(),u}}))}(),ue.swap=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};var ct=/alpha\([^)]*\)/i,lt=/opacity\s*=\s*([^)]*)/,pt=/^(none|table(?!-c[ea]).+)/,ft=new RegExp("^("+Se+")(.*)$","i"),dt=new RegExp("^([+-])=("+Se+")","i"),ht={position:"absolute",visibility:"hidden",display:"block"},mt={letterSpacing:"0",fontWeight:"400"},vt=["Webkit","O","Moz","ms"];ue.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=ot(e,"opacity");return""===n?"1":n}}}},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":ae.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=ue.camelCase(t),u=e.style;if(t=ue.cssProps[s]||(ue.cssProps[s]=D(u,s)),a=ue.cssHooks[t]||ue.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:u[t];if(o=typeof n,"string"===o&&(i=dt.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(ue.css(e,t)),o="number"),null!=n&&n===n&&("number"!==o||ue.cssNumber[s]||(n+="px"),ae.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),!(a&&"set"in a&&void 0===(n=a.set(e,n,r)))))try{u[t]=n}catch(c){}}},css:function(e,t,n,r){var i,o,a,s=ue.camelCase(t);return t=ue.cssProps[s]||(ue.cssProps[s]=D(e.style,s)),a=ue.cssHooks[t]||ue.cssHooks[s],a&&"get"in a&&(o=a.get(e,!0,n)),void 0===o&&(o=ot(e,t,r)),"normal"===o&&t in mt&&(o=mt[t]),""===n||n?(i=parseFloat(o),n===!0||ue.isNumeric(i)?i||0:o):o}}),ue.each(["height","width"],function(e,t){ue.cssHooks[t]={get:function(e,n,r){return n?pt.test(ue.css(e,"display"))&&0===e.offsetWidth?ue.swap(e,ht,function(){return j(e,t,r)}):j(e,t,r):void 0},set:function(e,n,r){var i=r&&it(e);return k(e,n,r?A(e,t,r,ae.boxSizing&&"border-box"===ue.css(e,"boxSizing",!1,i),i):0)}}}),ae.opacity||(ue.cssHooks.opacity={get:function(e,t){return lt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=ue.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===ue.trim(o.replace(ct,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=ct.test(o)?o.replace(ct,i):o+" "+i)}}),ue.cssHooks.marginRight=S(ae.reliableMarginRight,function(e,t){return t?ue.swap(e,{display:"inline-block"},ot,[e,"marginRight"]):void 0}),ue.each({margin:"",padding:"",border:"Width"},function(e,t){ue.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];4>r;r++)i[e+De[r]+t]=o[r]||o[r-2]||o[0];return i}},at.test(e)||(ue.cssHooks[e+t].set=k)}),ue.fn.extend({css:function(e,t){return ke(this,function(e,t,n){var r,i,o={},a=0;if(ue.isArray(t)){for(r=it(e),i=t.length;i>a;a++)o[t[a]]=ue.css(e,t[a],!1,r);return o}return void 0!==n?ue.style(e,t,n):ue.css(e,t)},e,t,arguments.length>1)},show:function(){return R(this,!0)},hide:function(){return R(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Re(this)?ue(this).show():ue(this).hide()})}}),ue.Tween=I,I.prototype={constructor:I,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(ue.cssNumber[n]?"":"px")},cur:function(){var e=I.propHooks[this.prop];return e&&e.get?e.get(this):I.propHooks._default.get(this)},run:function(e){var t,n=I.propHooks[this.prop];return this.pos=t=this.options.duration?ue.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):I.propHooks._default.set(this),this}},I.prototype.init.prototype=I.prototype,I.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=ue.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){ue.fx.step[e.prop]?ue.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[ue.cssProps[e.prop]]||ue.cssHooks[e.prop])?ue.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},I.propHooks.scrollTop=I.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ue.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},ue.fx=I.prototype.init,ue.fx.step={};var gt,yt,bt=/^(?:toggle|show|hide)$/,xt=new RegExp("^(?:([+-])=|)("+Se+")([a-z%]*)$","i"),wt=/queueHooks$/,Et=[V],_t={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=xt.exec(t),o=i&&i[3]||(ue.cssNumber[e]?"":"px"),a=(ue.cssNumber[e]||"px"!==o&&+r)&&xt.exec(ue.css(n.elem,e)),s=1,u=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,ue.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--u)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};ue.Animation=ue.extend(H,{tweener:function(e,t){ue.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],_t[n]=_t[n]||[],_t[n].unshift(t)},prefilter:function(e,t){t?Et.unshift(e):Et.push(e)}}),ue.speed=function(e,t,n){var r=e&&"object"==typeof e?ue.extend({},e):{complete:n||!n&&t||ue.isFunction(e)&&e,duration:e,easing:n&&t||t&&!ue.isFunction(t)&&t};return r.duration=ue.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in ue.fx.speeds?ue.fx.speeds[r.duration]:ue.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){ue.isFunction(r.old)&&r.old.call(this),r.queue&&ue.dequeue(this,r.queue)},r},ue.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Re).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=ue.isEmptyObject(e),o=ue.speed(t,n,r),a=function(){var t=H(this,ue.extend({},e),o);(i||ue._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=ue.timers,a=ue._data(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&wt.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));(t||!n)&&ue.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=ue._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=ue.timers,a=r?r.length:0;for(n.finish=!0,ue.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),ue.each(["toggle","show","hide"],function(e,t){var n=ue.fn[t];ue.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(F(t,!0),e,r,i)}}),ue.each({slideDown:F("show"),slideUp:F("hide"),slideToggle:F("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){ue.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),ue.timers=[],ue.fx.tick=function(){var e,t=ue.timers,n=0;for(gt=ue.now();n<t.length;n++)e=t[n],e()||t[n]!==e||t.splice(n--,1);t.length||ue.fx.stop(),gt=void 0},ue.fx.timer=function(e){ue.timers.push(e),e()?ue.fx.start():ue.timers.pop()},ue.fx.interval=13,ue.fx.start=function(){yt||(yt=setInterval(ue.fx.tick,ue.fx.interval))},ue.fx.stop=function(){clearInterval(yt),yt=null},ue.fx.speeds={slow:600,fast:200,_default:400},ue.fn.delay=function(e,t){return e=ue.fx?ue.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},function(){var e,t,n,r,i;t=ye.createElement("div"),t.setAttribute("className","t"),t.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",r=t.getElementsByTagName("a")[0],n=ye.createElement("select"),i=n.appendChild(ye.createElement("option")),e=t.getElementsByTagName("input")[0],r.style.cssText="top:1px",ae.getSetAttribute="t"!==t.className,ae.style=/top/.test(r.getAttribute("style")),ae.hrefNormalized="/a"===r.getAttribute("href"),ae.checkOn=!!e.value,ae.optSelected=i.selected,ae.enctype=!!ye.createElement("form").enctype,n.disabled=!0,ae.optDisabled=!i.disabled,e=ye.createElement("input"),e.setAttribute("value",""),ae.input=""===e.getAttribute("value"),e.value="t",e.setAttribute("type","radio"),ae.radioValue="t"===e.value}();var Ct=/\r/g;ue.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=ue.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,ue(this).val()):e,null==i?i="":"number"==typeof i?i+="":ue.isArray(i)&&(i=ue.map(i,function(e){return null==e?"":e+""})),t=ue.valHooks[this.type]||ue.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return t=ue.valHooks[i.type]||ue.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(Ct,""):null==n?"":n)}}}),ue.extend({valHooks:{option:{get:function(e){var t=ue.find.attr(e,"value");return null!=t?t:ue.trim(ue.text(e))}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(ae.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&ue.nodeName(n.parentNode,"optgroup"))){if(t=ue(n).val(),o)return t;a.push(t)}return a},set:function(e,t){for(var n,r,i=e.options,o=ue.makeArray(t),a=i.length;a--;)if(r=i[a],ue.inArray(ue.valHooks.option.get(r),o)>=0)try{r.selected=n=!0}catch(s){r.scrollHeight}else r.selected=!1;return n||(e.selectedIndex=-1),i}}}}),ue.each(["radio","checkbox"],function(){ue.valHooks[this]={set:function(e,t){return ue.isArray(t)?e.checked=ue.inArray(ue(e).val(),t)>=0:void 0}},ae.checkOn||(ue.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Nt,$t,Ot=ue.expr.attrHandle,Tt=/^(?:checked|selected)$/i,Pt=ae.getSetAttribute,St=ae.input;ue.fn.extend({attr:function(e,t){return ke(this,ue.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){ue.removeAttr(this,e)})}}),ue.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(e&&3!==o&&8!==o&&2!==o)return typeof e.getAttribute===Oe?ue.prop(e,t,n):(1===o&&ue.isXMLDoc(e)||(t=t.toLowerCase(),r=ue.attrHooks[t]||(ue.expr.match.bool.test(t)?$t:Nt)),void 0===n?r&&"get"in r&&null!==(i=r.get(e,t))?i:(i=ue.find.attr(e,t),null==i?void 0:i):null!==n?r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:(e.setAttribute(t,n+""),n):void ue.removeAttr(e,t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(_e);if(o&&1===e.nodeType)for(;n=o[i++];)r=ue.propFix[n]||n,ue.expr.match.bool.test(n)?St&&Pt||!Tt.test(n)?e[r]=!1:e[ue.camelCase("default-"+n)]=e[r]=!1:ue.attr(e,n,""),e.removeAttribute(Pt?n:r)},attrHooks:{type:{set:function(e,t){if(!ae.radioValue&&"radio"===t&&ue.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}}}),$t={set:function(e,t,n){return t===!1?ue.removeAttr(e,n):St&&Pt||!Tt.test(n)?e.setAttribute(!Pt&&ue.propFix[n]||n,n):e[ue.camelCase("default-"+n)]=e[n]=!0,n}},ue.each(ue.expr.match.bool.source.match(/\w+/g),function(e,t){var n=Ot[t]||ue.find.attr;Ot[t]=St&&Pt||!Tt.test(t)?function(e,t,r){var i,o;return r||(o=Ot[t],Ot[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,Ot[t]=o),i}:function(e,t,n){return n?void 0:e[ue.camelCase("default-"+t)]?t.toLowerCase():null}}),St&&Pt||(ue.attrHooks.value={set:function(e,t,n){return ue.nodeName(e,"input")?void(e.defaultValue=t):Nt&&Nt.set(e,t,n)}}),Pt||(Nt={set:function(e,t,n){var r=e.getAttributeNode(n);return r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="","value"===n||t===e.getAttribute(n)?t:void 0}},Ot.id=Ot.name=Ot.coords=function(e,t,n){var r;return n?void 0:(r=e.getAttributeNode(t))&&""!==r.value?r.value:null},ue.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);return n&&n.specified?n.value:void 0},set:Nt.set},ue.attrHooks.contenteditable={set:function(e,t,n){Nt.set(e,""===t?!1:t,n)}},ue.each(["width","height"],function(e,t){ue.attrHooks[t]={set:function(e,n){return""===n?(e.setAttribute(t,"auto"),n):void 0}}})),ae.style||(ue.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var Dt=/^(?:input|select|textarea|button|object)$/i,Rt=/^(?:a|area)$/i;ue.fn.extend({prop:function(e,t){return ke(this,ue.prop,e,t,arguments.length>1)},removeProp:function(e){return e=ue.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(t){}})}}),ue.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,o,a=e.nodeType;if(e&&3!==a&&8!==a&&2!==a)return o=1!==a||!ue.isXMLDoc(e),o&&(t=ue.propFix[t]||t,i=ue.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=ue.find.attr(e,"tabindex");return t?parseInt(t,10):Dt.test(e.nodeName)||Rt.test(e.nodeName)&&e.href?0:-1}}}}),ae.hrefNormalized||ue.each(["href","src"],function(e,t){ue.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),ae.optSelected||(ue.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),ue.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ue.propFix[this.toLowerCase()]=this}),ae.enctype||(ue.propFix.enctype="encoding");var kt=/[\t\r\n\f]/g;ue.fn.extend({addClass:function(e){var t,n,r,i,o,a,s=0,u=this.length,c="string"==typeof e&&e;if(ue.isFunction(e))return this.each(function(t){ue(this).addClass(e.call(this,t,this.className))});if(c)for(t=(e||"").match(_e)||[];u>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(kt," "):" ")){for(o=0;i=t[o++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");a=ue.trim(r),n.className!==a&&(n.className=a)}return this},removeClass:function(e){var t,n,r,i,o,a,s=0,u=this.length,c=0===arguments.length||"string"==typeof e&&e;if(ue.isFunction(e))return this.each(function(t){ue(this).removeClass(e.call(this,t,this.className))});if(c)for(t=(e||"").match(_e)||[];u>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(kt," "):"")){for(o=0;i=t[o++];)for(;r.indexOf(" "+i+" ")>=0;)r=r.replace(" "+i+" "," ");a=e?ue.trim(r):"",n.className!==a&&(n.className=a)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):this.each(ue.isFunction(e)?function(n){ue(this).toggleClass(e.call(this,n,this.className,t),t)}:function(){if("string"===n)for(var t,r=0,i=ue(this),o=e.match(_e)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else(n===Oe||"boolean"===n)&&(this.className&&ue._data(this,"__className__",this.className),this.className=this.className||e===!1?"":ue._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(kt," ").indexOf(t)>=0)return!0;return!1}}),ue.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(e,t){ue.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),ue.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var At=ue.now(),jt=/\?/,It=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;ue.parseJSON=function(e){if(i.JSON&&i.JSON.parse)return i.JSON.parse(e+"");var t,n=null,r=ue.trim(e+"");return r&&!ue.trim(r.replace(It,function(e,r,i,o){return t&&r&&(n=0),0===n?e:(t=i||r,n+=!o-!i,"")}))?Function("return "+r)():ue.error("Invalid JSON: "+e)},ue.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{i.DOMParser?(n=new DOMParser,t=n.parseFromString(e,"text/xml")):(t=new ActiveXObject("Microsoft.XMLDOM"),t.async="false",t.loadXML(e))}catch(r){t=void 0}return t&&t.documentElement&&!t.getElementsByTagName("parsererror").length||ue.error("Invalid XML: "+e),t};var Mt,Ft,Lt=/#.*$/,Vt=/([?&])_=[^&]*/,Ut=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Ht=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,qt=/^(?:GET|HEAD)$/,Bt=/^\/\//,Wt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,zt={},Kt={},Qt="*/".concat("*");try{Ft=location.href}catch(Yt){Ft=ye.createElement("a"),Ft.href="",Ft=Ft.href}Mt=Wt.exec(Ft.toLowerCase())||[],ue.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ft,type:"GET",isLocal:Ht.test(Mt[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Qt,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":ue.parseJSON,"text xml":ue.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?W(W(e,ue.ajaxSettings),t):W(ue.ajaxSettings,e)},ajaxPrefilter:q(zt),ajaxTransport:q(Kt),ajax:function(e,t){function n(e,t,n,r){var i,l,g,y,x,E=t;2!==b&&(b=2,s&&clearTimeout(s),c=void 0,a=r||"",w.readyState=e>0?4:0,i=e>=200&&300>e||304===e,n&&(y=z(p,w,n)),y=K(p,y,w,i),i?(p.ifModified&&(x=w.getResponseHeader("Last-Modified"),x&&(ue.lastModified[o]=x),x=w.getResponseHeader("etag"),x&&(ue.etag[o]=x)),204===e||"HEAD"===p.type?E="nocontent":304===e?E="notmodified":(E=y.state,l=y.data,g=y.error,i=!g)):(g=E,(e||!E)&&(E="error",0>e&&(e=0))),w.status=e,w.statusText=(t||E)+"",i?h.resolveWith(f,[l,E,w]):h.rejectWith(f,[w,E,g]),w.statusCode(v),v=void 0,u&&d.trigger(i?"ajaxSuccess":"ajaxError",[w,p,i?l:g]),m.fireWith(f,[w,E]),u&&(d.trigger("ajaxComplete",[w,p]),--ue.active||ue.event.trigger("ajaxStop")))}"object"==typeof e&&(t=e,e=void 0),t=t||{};var r,i,o,a,s,u,c,l,p=ue.ajaxSetup({},t),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?ue(f):ue.event,h=ue.Deferred(),m=ue.Callbacks("once memory"),v=p.statusCode||{},g={},y={},b=0,x="canceled",w={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!l)for(l={};t=Ut.exec(a);)l[t[1].toLowerCase()]=t[2];t=l[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=y[n]=y[n]||e,g[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)v[t]=[v[t],e[t]];else w.always(e[w.status]);return this},abort:function(e){var t=e||x;return c&&c.abort(t),n(0,t),this}};if(h.promise(w).complete=m.add,w.success=w.done,w.error=w.fail,p.url=((e||p.url||Ft)+"").replace(Lt,"").replace(Bt,Mt[1]+"//"),p.type=t.method||t.type||p.method||p.type,p.dataTypes=ue.trim(p.dataType||"*").toLowerCase().match(_e)||[""],null==p.crossDomain&&(r=Wt.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===Mt[1]&&r[2]===Mt[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(Mt[3]||("http:"===Mt[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=ue.param(p.data,p.traditional)),B(zt,p,t,w),2===b)return w;u=ue.event&&p.global,u&&0===ue.active++&&ue.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!qt.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(jt.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=Vt.test(o)?o.replace(Vt,"$1_="+At++):o+(jt.test(o)?"&":"?")+"_="+At++)),p.ifModified&&(ue.lastModified[o]&&w.setRequestHeader("If-Modified-Since",ue.lastModified[o]),ue.etag[o]&&w.setRequestHeader("If-None-Match",ue.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||t.contentType)&&w.setRequestHeader("Content-Type",p.contentType),w.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Qt+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)w.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,w,p)===!1||2===b))return w.abort();x="abort";for(i in{success:1,error:1,complete:1})w[i](p[i]);if(c=B(Kt,p,t,w)){w.readyState=1,u&&d.trigger("ajaxSend",[w,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){w.abort("timeout")},p.timeout));try{b=1,c.send(g,n)}catch(E){if(!(2>b))throw E;n(-1,E)}}else n(-1,"No Transport");return w},getJSON:function(e,t,n){return ue.get(e,t,n,"json")},getScript:function(e,t){return ue.get(e,void 0,t,"script")}}),ue.each(["get","post"],function(e,t){ue[t]=function(e,n,r,i){return ue.isFunction(n)&&(i=i||r,r=n,n=void 0),ue.ajax({url:e,type:t,dataType:i,data:n,success:r})}}),ue._evalUrl=function(e){return ue.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},ue.fn.extend({wrapAll:function(e){if(ue.isFunction(e))return this.each(function(t){ue(this).wrapAll(e.call(this,t))});if(this[0]){var t=ue(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return this.each(ue.isFunction(e)?function(t){ue(this).wrapInner(e.call(this,t))}:function(){var t=ue(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=ue.isFunction(e);return this.each(function(n){ue(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){ue.nodeName(this,"body")||ue(this).replaceWith(this.childNodes)}).end()}}),ue.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0||!ae.reliableHiddenOffsets()&&"none"===(e.style&&e.style.display||ue.css(e,"display"))},ue.expr.filters.visible=function(e){return!ue.expr.filters.hidden(e)};var Gt=/%20/g,Xt=/\[\]$/,Jt=/\r?\n/g,Zt=/^(?:submit|button|image|reset|file)$/i,en=/^(?:input|select|textarea|keygen)/i;ue.param=function(e,t){var n,r=[],i=function(e,t){t=ue.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=ue.ajaxSettings&&ue.ajaxSettings.traditional),ue.isArray(e)||e.jquery&&!ue.isPlainObject(e))ue.each(e,function(){i(this.name,this.value)});else for(n in e)Q(n,e[n],t,i);return r.join("&").replace(Gt,"+")},ue.fn.extend({serialize:function(){return ue.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ue.prop(this,"elements");return e?ue.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ue(this).is(":disabled")&&en.test(this.nodeName)&&!Zt.test(e)&&(this.checked||!Ae.test(e))}).map(function(e,t){var n=ue(this).val();return null==n?null:ue.isArray(n)?ue.map(n,function(e){return{name:t.name,value:e.replace(Jt,"\r\n")}}):{name:t.name,value:n.replace(Jt,"\r\n")}}).get()}}),ue.ajaxSettings.xhr=void 0!==i.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Y()||G()}:Y;var tn=0,nn={},rn=ue.ajaxSettings.xhr();i.attachEvent&&i.attachEvent("onunload",function(){for(var e in nn)nn[e](void 0,!0)}),ae.cors=!!rn&&"withCredentials"in rn,rn=ae.ajax=!!rn,rn&&ue.ajaxTransport(function(e){if(!e.crossDomain||ae.cors){var t;return{send:function(n,r){var i,o=e.xhr(),a=++tn;if(o.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(i in e.xhrFields)o[i]=e.xhrFields[i];e.mimeType&&o.overrideMimeType&&o.overrideMimeType(e.mimeType),e.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest");for(i in n)void 0!==n[i]&&o.setRequestHeader(i,n[i]+"");o.send(e.hasContent&&e.data||null),t=function(n,i){var s,u,c;if(t&&(i||4===o.readyState))if(delete nn[a],t=void 0,o.onreadystatechange=ue.noop,i)4!==o.readyState&&o.abort();else{c={},s=o.status,"string"==typeof o.responseText&&(c.text=o.responseText);try{u=o.statusText}catch(l){u=""}s||!e.isLocal||e.crossDomain?1223===s&&(s=204):s=c.text?200:404}c&&r(s,u,c,o.getAllResponseHeaders())},e.async?4===o.readyState?setTimeout(t):o.onreadystatechange=nn[a]=t:t()},abort:function(){t&&t(void 0,!0)}}}}),ue.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return ue.globalEval(e),e}}}),ue.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),ue.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=ye.head||ue("head")[0]||ye.documentElement;return{send:function(r,i){t=ye.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||i(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var on=[],an=/(=)\?(?=&|$)|\?\?/;ue.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=on.pop()||ue.expando+"_"+At++;return this[e]=!0,e}}),ue.ajaxPrefilter("json jsonp",function(e,t,n){var r,o,a,s=e.jsonp!==!1&&(an.test(e.url)?"url":"string"==typeof e.data&&!(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&an.test(e.data)&&"data");return s||"jsonp"===e.dataTypes[0]?(r=e.jsonpCallback=ue.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,s?e[s]=e[s].replace(an,"$1"+r):e.jsonp!==!1&&(e.url+=(jt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return a||ue.error(r+" was not called"),a[0]},e.dataTypes[0]="json",o=i[r],i[r]=function(){a=arguments},n.always(function(){i[r]=o,e[r]&&(e.jsonpCallback=t.jsonpCallback,on.push(r)),a&&ue.isFunction(o)&&o(a[0]),a=o=void 0}),"script"):void 0}),ue.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||ye;var r=me.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=ue.buildFragment([e],t,i),i&&i.length&&ue(i).remove(),ue.merge([],r.childNodes))};var sn=ue.fn.load;ue.fn.load=function(e,t,n){if("string"!=typeof e&&sn)return sn.apply(this,arguments);var r,i,o,a=this,s=e.indexOf(" ");return s>=0&&(r=ue.trim(e.slice(s,e.length)),e=e.slice(0,s)),ue.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(o="POST"),a.length>0&&ue.ajax({url:e,type:o,dataType:"html",data:t}).done(function(e){i=arguments,a.html(r?ue("<div>").append(ue.parseHTML(e)).find(r):e)}).complete(n&&function(e,t){a.each(n,i||[e.responseText,t,e])}),this},ue.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ue.fn[t]=function(e){return this.on(t,e)}}),ue.expr.filters.animated=function(e){return ue.grep(ue.timers,function(t){return e===t.elem}).length};var un=i.document.documentElement;ue.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,c,l=ue.css(e,"position"),p=ue(e),f={};"static"===l&&(e.style.position="relative"),s=p.offset(),o=ue.css(e,"top"),u=ue.css(e,"left"),c=("absolute"===l||"fixed"===l)&&ue.inArray("auto",[o,u])>-1,c?(r=p.position(),a=r.top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),ue.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):p.css(f)}},ue.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){ue.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;if(o)return t=o.documentElement,ue.contains(t,i)?(typeof i.getBoundingClientRect!==Oe&&(r=i.getBoundingClientRect()),n=X(o),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r},position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===ue.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),ue.nodeName(e[0],"html")||(n=e.offset()),n.top+=ue.css(e[0],"borderTopWidth",!0),n.left+=ue.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-ue.css(r,"marginTop",!0),left:t.left-n.left-ue.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||un;e&&!ue.nodeName(e,"html")&&"static"===ue.css(e,"position");)e=e.offsetParent;return e||un})}}),ue.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);ue.fn[e]=function(r){return ke(this,function(e,r,i){var o=X(e);return void 0===i?o?t in o?o[t]:o.document.documentElement[r]:e[r]:void(o?o.scrollTo(n?ue(o).scrollLeft():i,n?i:ue(o).scrollTop()):e[r]=i);
5
+
6
+ },e,r,arguments.length,null)}}),ue.each(["top","left"],function(e,t){ue.cssHooks[t]=S(ae.pixelPosition,function(e,n){return n?(n=ot(e,t),st.test(n)?ue(e).position()[t]+"px":n):void 0})}),ue.each({Height:"height",Width:"width"},function(e,t){ue.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){ue.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(r===!0||i===!0?"margin":"border");return ke(this,function(t,n,r){var i;return ue.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):void 0===r?ue.css(t,n,a):ue.style(t,n,r,a)},t,o?r:void 0,o,null)}})}),ue.fn.size=function(){return this.length},ue.fn.andSelf=ue.fn.addBack,n=[],r=function(){return ue}.apply(t,n),!(void 0!==r&&(e.exports=r));var cn=i.jQuery,ln=i.$;return ue.noConflict=function(e){return i.$===ue&&(i.$=ln),e&&i.jQuery===ue&&(i.jQuery=cn),ue},typeof o===Oe&&(i.jQuery=i.$=ue),ue})},function(e,t,n){"use strict";e.exports=n(3)},function(e,t,n){"use strict";n(4);var r=n(5),i=n(6),o=r(i),a=n(74);o.widgets={clearAll:n(312),currentRefinedValues:n(542),hierarchicalMenu:n(553),hits:n(556),hitsPerPageSelector:n(559),menu:n(564),refinementList:n(566),numericRefinementList:n(568),numericSelector:n(573),pagination:n(574),priceRanges:n(586),searchBox:n(591),rangeSlider:n(593),sortBySelector:n(597),starRating:n(600),stats:n(603),toggle:n(606)},o.version=n(303),o.createQueryString=a.url.getQueryStringFromState,e.exports=o},function(){"use strict";Object.freeze||(Object.freeze=function(e){if(Object(e)!==e)throw new TypeError("Object.freeze can only be called on Objects.");return e})},function(e){"use strict";function t(e){var t=function(){for(var t=arguments.length,r=Array(t),i=0;t>i;i++)r[i]=arguments[i];return new(n.apply(e,[null].concat(r)))};return t.__proto__=e,t.prototype=e.prototype,t}var n=Function.prototype.bind;e.exports=t},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function o(){return"#"}function a(e,t){if(!t.getConfiguration)return e;var n=t.getConfiguration(e);return f({},e,n,function(e,t){return Array.isArray(e)?d(e,t):void 0})}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},c=n(7),l=n(74),p=n(253),f=n(279),d=n(291),h=n(301).EventEmitter,m=n(302),v=n(303),g=function(e){function t(e){var i=e.appId,o=void 0===i?null:i,a=e.apiKey,s=void 0===a?null:a,l=e.indexName,p=void 0===l?null:l,f=e.numberLocale,d=void 0===f?"en-EN":f,h=e.searchParameters,m=void 0===h?{}:h,g=e.urlSync,y=void 0===g?null:g;if(r(this,t),u(Object.getPrototypeOf(t.prototype),"constructor",this).call(this),null===o||null===s||null===p){var b="\nUsage: instantsearch({\n appId: 'my_application_id',\n apiKey: 'my_search_api_key',\n indexName: 'my_index_name'\n});";throw new Error(b)}var x=c(o,s);x.addAlgoliaAgent("instantsearch.js "+v),this.client=x,this.helper=null,this.indexName=p,this.searchParameters=m||{},this.widgets=[],this.templatesConfig={helpers:n(311)({numberLocale:d}),compileOptions:{}},this.urlSync=y}return i(t,e),s(t,[{key:"addWidget",value:function(e){if(void 0===e.render&&void 0===e.init)throw new Error("Widget definition missing render or init method");this.widgets.push(e)}},{key:"start",value:function(){if(!this.widgets)throw new Error("No widgets were added to instantsearch.js");if(this.urlSync){var e=m(this.urlSync);this._createURL=e.createURL.bind(e),this.widgets.push(e)}else this._createURL=o;this.searchParameters=this.widgets.reduce(a,this.searchParameters);var t=l(this.client,this.searchParameters.index||this.indexName,this.searchParameters);this.helper=t,this._init(t.state,t),t.on("result",this._render.bind(this,t)),t.search()}},{key:"createURL",value:function(e){if(!this._createURL)throw new Error("You need to call start() before calling createURL()");return this._createURL(this.helper.state.setQueryParameters(e))}},{key:"_render",value:function(e,t,n){p(this.widgets,function(r){r.render&&r.render({templatesConfig:this.templatesConfig,results:t,state:n,helper:e,createURL:this._createURL})},this),this.emit("render")}},{key:"_init",value:function(e,t){p(this.widgets,function(n){if(n.init){var r=this.templatesConfig;n.init({state:e,helper:t,templatesConfig:r})}},this)}}]),t}(h);e.exports=g},function(e,t,n){(function(t){"use strict";function r(e,t,o){var a=n(71),s=n(72);return o=a(o||{}),void 0===o.protocol&&(o.protocol=s()),o._ua=o._ua||r.ua,new i(e,t,o)}function i(){s.apply(this,arguments)}e.exports=r;var o=n(9),a=window.Promise||n(10).Promise,s=n(14),u=n(15),c=n(66),l=n(70);"development"===t.env.APP_ENV&&n(42).enable("algoliasearch*"),r.version=n(73),r.ua="Algolia for vanilla JavaScript "+r.version,window.__algolia={debug:n(42),algoliasearch:r};var p={hasXMLHttpRequest:"XMLHttpRequest"in window,hasXDomainRequest:"XDomainRequest"in window,cors:"withCredentials"in new XMLHttpRequest,timeout:"timeout"in new XMLHttpRequest};o(i,s),i.prototype._request=function(e,t){return new a(function(n,r){function i(){if(!l){p.timeout||clearTimeout(s);var e;try{e={body:JSON.parse(d.responseText),responseText:d.responseText,statusCode:d.status,headers:d.getAllResponseHeaders&&d.getAllResponseHeaders()||{}}}catch(t){e=new u.UnparsableJSON({more:d.responseText})}e instanceof u.UnparsableJSON?r(e):n(e)}}function o(e){l||(p.timeout||clearTimeout(s),r(new u.Network({more:e})))}function a(){p.timeout||(l=!0,d.abort()),r(new u.RequestTimeout)}if(!p.cors&&!p.hasXDomainRequest)return void r(new u.Network("CORS not supported"));e=c(e,t.headers);var s,l,f=t.body,d=p.cors?new XMLHttpRequest:new XDomainRequest;d instanceof XMLHttpRequest?d.open(t.method,e,!0):d.open(t.method,e),p.cors&&(f&&("POST"===t.method?d.setRequestHeader("content-type","application/x-www-form-urlencoded"):d.setRequestHeader("content-type","application/json")),d.setRequestHeader("accept","application/json")),d.onprogress=function(){},d.onload=i,d.onerror=o,p.timeout?(d.timeout=t.timeout,d.ontimeout=a):s=setTimeout(a,t.timeout),d.send(f)})},i.prototype._request.fallback=function(e,t){return e=c(e,t.headers),new a(function(n,r){l(e,t,function(e,t){return e?void r(e):void n(t)})})},i.prototype._promise={reject:function(e){return a.reject(e)},resolve:function(e){return a.resolve(e)},delay:function(e){return new a(function(t){setTimeout(t,e)})}}}).call(t,n(8))},function(e){function t(){u=!1,o.length?s=o.concat(s):c=-1,s.length&&n()}function n(){if(!u){var e=setTimeout(t);u=!0;for(var n=s.length;n;){for(o=s,s=[];++c<n;)o&&o[c].run();c=-1,n=s.length}o=null,u=!1,clearTimeout(e)}}function r(e,t){this.fun=e,this.array=t}function i(){}var o,a=e.exports={},s=[],u=!1,c=-1;a.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)t[i-1]=arguments[i];s.push(new r(e,t)),1!==s.length||u||setTimeout(n,0)},r.prototype.run=function(){this.fun.apply(null,this.array)},a.title="browser",a.browser=!0,a.env={},a.argv=[],a.version="",a.versions={},a.on=i,a.addListener=i,a.once=i,a.off=i,a.removeListener=i,a.removeAllListeners=i,a.emit=i,a.binding=function(){throw new Error("process.binding is not supported")},a.cwd=function(){return"/"},a.chdir=function(){throw new Error("process.chdir is not supported")},a.umask=function(){return 0}},function(e){e.exports="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){var r;(function(e,i,o){(function(){"use strict";function a(e){return"function"==typeof e||"object"==typeof e&&null!==e}function s(e){return"function"==typeof e}function u(e){return"object"==typeof e&&null!==e}function c(e){K=e}function l(e){X=e}function p(){return function(){e.nextTick(v)}}function f(){return function(){z(v)}}function d(){var e=0,t=new ee(v),n=document.createTextNode("");return t.observe(n,{characterData:!0}),function(){n.data=e=++e%2}}function h(){var e=new MessageChannel;return e.port1.onmessage=v,function(){e.port2.postMessage(0)}}function m(){return function(){setTimeout(v,1)}}function v(){for(var e=0;G>e;e+=2){var t=re[e],n=re[e+1];t(n),re[e]=void 0,re[e+1]=void 0}G=0}function g(){try{var e=n(12);return z=e.runOnLoop||e.runOnContext,f()}catch(t){return m()}}function y(){}function b(){return new TypeError("You cannot resolve a promise with itself")}function x(){return new TypeError("A promises callback cannot return that same promise.")}function w(e){try{return e.then}catch(t){return se.error=t,se}}function E(e,t,n,r){try{e.call(t,n,r)}catch(i){return i}}function _(e,t,n){X(function(e){var r=!1,i=E(n,t,function(n){r||(r=!0,t!==n?$(e,n):T(e,n))},function(t){r||(r=!0,P(e,t))},"Settle: "+(e._label||" unknown promise"));!r&&i&&(r=!0,P(e,i))},e)}function C(e,t){t._state===oe?T(e,t._result):t._state===ae?P(e,t._result):S(t,void 0,function(t){$(e,t)},function(t){P(e,t)})}function N(e,t){if(t.constructor===e.constructor)C(e,t);else{var n=w(t);n===se?P(e,se.error):void 0===n?T(e,t):s(n)?_(e,t,n):T(e,t)}}function $(e,t){e===t?P(e,b()):a(t)?N(e,t):T(e,t)}function O(e){e._onerror&&e._onerror(e._result),D(e)}function T(e,t){e._state===ie&&(e._result=t,e._state=oe,0!==e._subscribers.length&&X(D,e))}function P(e,t){e._state===ie&&(e._state=ae,e._result=t,X(O,e))}function S(e,t,n,r){var i=e._subscribers,o=i.length;e._onerror=null,i[o]=t,i[o+oe]=n,i[o+ae]=r,0===o&&e._state&&X(D,e)}function D(e){var t=e._subscribers,n=e._state;if(0!==t.length){for(var r,i,o=e._result,a=0;a<t.length;a+=3)r=t[a],i=t[a+n],r?A(n,r,i,o):i(o);e._subscribers.length=0}}function R(){this.error=null}function k(e,t){try{return e(t)}catch(n){return ue.error=n,ue}}function A(e,t,n,r){var i,o,a,u,c=s(n);if(c){if(i=k(n,r),i===ue?(u=!0,o=i.error,i=null):a=!0,t===i)return void P(t,x())}else i=r,a=!0;t._state!==ie||(c&&a?$(t,i):u?P(t,o):e===oe?T(t,i):e===ae&&P(t,i))}function j(e,t){try{t(function(t){$(e,t)},function(t){P(e,t)})}catch(n){P(e,n)}}function I(e,t){var n=this;n._instanceConstructor=e,n.promise=new e(y),n._validateInput(t)?(n._input=t,n.length=t.length,n._remaining=t.length,n._init(),0===n.length?T(n.promise,n._result):(n.length=n.length||0,n._enumerate(),0===n._remaining&&T(n.promise,n._result))):P(n.promise,n._validationError())}function M(e){return new ce(this,e).promise}function F(e){function t(e){$(i,e)}function n(e){P(i,e)}var r=this,i=new r(y);if(!Y(e))return P(i,new TypeError("You must pass an array to race.")),i;for(var o=e.length,a=0;i._state===ie&&o>a;a++)S(r.resolve(e[a]),void 0,t,n);return i}function L(e){var t=this;if(e&&"object"==typeof e&&e.constructor===t)return e;var n=new t(y);return $(n,e),n}function V(e){var t=this,n=new t(y);return P(n,e),n}function U(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function H(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function q(e){this._id=he++,this._state=void 0,this._result=void 0,this._subscribers=[],y!==e&&(s(e)||U(),this instanceof q||H(),j(this,e))}function B(){var e;if("undefined"!=typeof i)e=i;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=e.Promise;(!n||"[object Promise]"!==Object.prototype.toString.call(n.resolve())||n.cast)&&(e.Promise=me)}var W;W=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var z,K,Q,Y=W,G=0,X=({}.toString,function(e,t){re[G]=e,re[G+1]=t,G+=2,2===G&&(K?K(v):Q())}),J="undefined"!=typeof window?window:void 0,Z=J||{},ee=Z.MutationObserver||Z.WebKitMutationObserver,te="undefined"!=typeof e&&"[object process]"==={}.toString.call(e),ne="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,re=new Array(1e3);Q=te?p():ee?d():ne?h():void 0===J?g():m();var ie=void 0,oe=1,ae=2,se=new R,ue=new R;I.prototype._validateInput=function(e){return Y(e)},I.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")},I.prototype._init=function(){this._result=new Array(this.length)};var ce=I;I.prototype._enumerate=function(){for(var e=this,t=e.length,n=e.promise,r=e._input,i=0;n._state===ie&&t>i;i++)e._eachEntry(r[i],i)},I.prototype._eachEntry=function(e,t){var n=this,r=n._instanceConstructor;u(e)?e.constructor===r&&e._state!==ie?(e._onerror=null,n._settledAt(e._state,t,e._result)):n._willSettleAt(r.resolve(e),t):(n._remaining--,n._result[t]=e)},I.prototype._settledAt=function(e,t,n){var r=this,i=r.promise;i._state===ie&&(r._remaining--,e===ae?P(i,n):r._result[t]=n),0===r._remaining&&T(i,r._result)},I.prototype._willSettleAt=function(e,t){var n=this;S(e,void 0,function(e){n._settledAt(oe,t,e)},function(e){n._settledAt(ae,t,e)})};var le=M,pe=F,fe=L,de=V,he=0,me=q;q.all=le,q.race=pe,q.resolve=fe,q.reject=de,q._setScheduler=c,q._setAsap=l,q._asap=X,q.prototype={constructor:q,then:function(e,t){var n=this,r=n._state;if(r===oe&&!e||r===ae&&!t)return this;var i=new this.constructor(y),o=n._result;if(r){var a=arguments[r-1];X(function(){A(r,i,a,o)})}else S(n,i,e,t);return i},"catch":function(e){return this.then(null,e)}};var ve=B,ge={Promise:me,polyfill:ve};n(13).amd?(r=function(){return ge}.call(t,n,t,o),!(void 0!==r&&(o.exports=r))):"undefined"!=typeof o&&o.exports?o.exports=ge:"undefined"!=typeof this&&(this.ES6Promise=ge),ve()}).call(this)}).call(t,n(8),function(){return this}(),n(11)(e))},function(e){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(){},function(e){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t,n){(function(t){"use strict";function r(e,t,r){var a=n(42)("algoliasearch"),s=n(45),u=n(35),c="Usage: algoliasearch(applicationID, apiKey, opts)";if(!e)throw new f.AlgoliaSearchError("Please provide an application ID. "+c);if(!t)throw new f.AlgoliaSearchError("Please provide an API key. "+c);this.applicationID=e,this.apiKey=t;var l=[this.applicationID+"-1.algolianet.com",this.applicationID+"-2.algolianet.com",this.applicationID+"-3.algolianet.com"];this.hosts={read:[],write:[]},this.hostIndex={read:0,write:0},r=r||{};var p=r.protocol||"https:",d=void 0===r.timeout?2e3:r.timeout;if(/:$/.test(p)||(p+=":"),"http:"!==r.protocol&&"https:"!==r.protocol)throw new f.AlgoliaSearchError("protocol must be `http:` or `https:` (was `"+r.protocol+"`)");r.hosts?u(r.hosts)?(this.hosts.read=s(r.hosts),this.hosts.write=s(r.hosts)):(this.hosts.read=s(r.hosts.read),this.hosts.write=s(r.hosts.write)):(this.hosts.read=[this.applicationID+"-dsn.algolia.net"].concat(l),this.hosts.write=[this.applicationID+".algolia.net"].concat(l)),this.hosts.read=i(this.hosts.read,o(p)),this.hosts.write=i(this.hosts.write,o(p)),this.requestTimeout=d,this.extraHeaders=[],this.cache={},this._ua=r._ua,this._useCache=void 0===r._useCache?!0:r._useCache,this._setTimeout=r._setTimeout,a("init done, %j",this)}function i(e,t){for(var n=[],r=0;r<e.length;++r)n.push(t(e[r],r));return n}function o(e){return function(t){return e+"//"+t.toLowerCase()}}function a(){var e="Not implemented in this environment.\nIf you feel this is a mistake, write to support@algolia.com";throw new f.AlgoliaSearchError(e)}function s(e,t){var n=e.toLowerCase().replace(".","").replace("()","");return"algoliasearch: `"+e+"` was replaced by `"+t+"`. Please see https://github.com/algolia/algoliasearch-client-js/wiki/Deprecated#"+n}function u(e,t){t(e,0)}function c(e,t){function n(){return r||(console.log(t),r=!0),e.apply(this,arguments)}var r=!1;return n}function l(e){if(void 0===Array.prototype.toJSON)return JSON.stringify(e);var t=Array.prototype.toJSON;delete Array.prototype.toJSON;var n=JSON.stringify(e);return Array.prototype.toJSON=t,n}function p(e){return function(t,n,r){if("function"==typeof t&&"object"==typeof n||"object"==typeof r)throw new f.AlgoliaSearchError("index.search usage is index.search(query, params, cb)");0===arguments.length||"function"==typeof t?(r=t,t=""):(1===arguments.length||"function"==typeof n)&&(r=n,n=void 0),"object"==typeof t&&null!==t?(n=t,t=void 0):(void 0===t||null===t)&&(t="");var i="";return void 0!==t&&(i+=e+"="+encodeURIComponent(t)),void 0!==n&&(i=this.as._getSearchParams(n,i)),this._search(i,r)}}e.exports=r;var f=n(15);r.prototype={deleteIndex:function(e,t){return this._jsonRequest({method:"DELETE",url:"/1/indexes/"+encodeURIComponent(e),hostType:"write",callback:t})},moveIndex:function(e,t,n){var r={operation:"move",destination:t};return this._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(e)+"/operation",body:r,hostType:"write",callback:n})},copyIndex:function(e,t,n){var r={operation:"copy",destination:t};return this._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(e)+"/operation",body:r,hostType:"write",callback:n})},getLogs:function(e,t,n){return 0===arguments.length||"function"==typeof e?(n=e,e=0,t=10):(1===arguments.length||"function"==typeof t)&&(n=t,t=10),this._jsonRequest({method:"GET",url:"/1/logs?offset="+e+"&length="+t,hostType:"read",callback:n})},listIndexes:function(e,t){var n="";return void 0===e||"function"==typeof e?t=e:n="?page="+e,this._jsonRequest({method:"GET",url:"/1/indexes"+n,hostType:"read",callback:t})},initIndex:function(e){return new this.Index(this,e)},listUserKeys:function(e){return this._jsonRequest({method:"GET",url:"/1/keys",hostType:"read",callback:e})},getUserKeyACL:function(e,t){return this._jsonRequest({method:"GET",url:"/1/keys/"+e,hostType:"read",callback:t})},deleteUserKey:function(e,t){return this._jsonRequest({method:"DELETE",url:"/1/keys/"+e,hostType:"write",callback:t})},addUserKey:function(e,t,r){var i=n(35),o="Usage: client.addUserKey(arrayOfAcls[, params, callback])";if(!i(e))throw new Error(o);(1===arguments.length||"function"==typeof t)&&(r=t,t=null);var a={acl:e};return t&&(a.validity=t.validity,a.maxQueriesPerIPPerHour=t.maxQueriesPerIPPerHour,a.maxHitsPerQuery=t.maxHitsPerQuery,a.indexes=t.indexes,a.description=t.description,t.queryParameters&&(a.queryParameters=this._getSearchParams(t.queryParameters,"")),a.referers=t.referers),this._jsonRequest({method:"POST",url:"/1/keys",body:a,hostType:"write",callback:r})},addUserKeyWithValidity:c(function(e,t,n){return this.addUserKey(e,t,n)},s("client.addUserKeyWithValidity()","client.addUserKey()")),updateUserKey:function(e,t,r,i){var o=n(35),a="Usage: client.updateUserKey(key, arrayOfAcls[, params, callback])";if(!o(t))throw new Error(a);(2===arguments.length||"function"==typeof r)&&(i=r,r=null);var s={acl:t};return r&&(s.validity=r.validity,s.maxQueriesPerIPPerHour=r.maxQueriesPerIPPerHour,s.maxHitsPerQuery=r.maxHitsPerQuery,s.indexes=r.indexes,s.description=r.description,r.queryParameters&&(s.queryParameters=this._getSearchParams(r.queryParameters,"")),s.referers=r.referers),this._jsonRequest({method:"PUT",url:"/1/keys/"+e,body:s,hostType:"write",callback:i})},setSecurityTags:function(e){if("[object Array]"===Object.prototype.toString.call(e)){for(var t=[],n=0;n<e.length;++n)if("[object Array]"===Object.prototype.toString.call(e[n])){for(var r=[],i=0;i<e[n].length;++i)r.push(e[n][i]);t.push("("+r.join(",")+")")}else t.push(e[n]);e=t.join(",")}this.securityTags=e},setUserToken:function(e){this.userToken=e},startQueriesBatch:c(function(){this._batch=[]},s("client.startQueriesBatch()","client.search()")),addQueryInBatch:c(function(e,t,n){this._batch.push({indexName:e,query:t,params:n})},s("client.addQueryInBatch()","client.search()")),clearCache:function(){this.cache={}},sendQueriesBatch:c(function(e){return this.search(this._batch,e)},s("client.sendQueriesBatch()","client.search()")),setRequestTimeout:function(e){e&&(this.requestTimeout=parseInt(e,10))},search:function(e,t){var r=n(35),o="Usage: client.search(arrayOfQueries[, callback])";if(!r(e))throw new Error(o);var a=this,s={requests:i(e,function(e){var t="";return void 0!==e.query&&(t+="query="+encodeURIComponent(e.query)),{indexName:e.indexName,params:a._getSearchParams(e.params,t)}})};return this._jsonRequest({cache:this.cache,method:"POST",url:"/1/indexes/*/queries",body:s,hostType:"read",callback:t})},batch:function(e,t){var r=n(35),i="Usage: client.batch(operations[, callback])";if(!r(e))throw new Error(i);return this._jsonRequest({method:"POST",url:"/1/indexes/*/batch",body:{requests:e},hostType:"write",callback:t})},destroy:a,enableRateLimitForward:a,disableRateLimitForward:a,useSecuredAPIKey:a,disableSecuredAPIKey:a,generateSecuredApiKey:a,Index:function(e,t){this.indexName=t,this.as=e,this.typeAheadArgs=null,this.typeAheadValueOption=null,this.cache={}},setExtraHeader:function(e,t){this.extraHeaders.push({name:e.toLowerCase(),value:t})},addAlgoliaAgent:function(e){this._ua+=";"+e},_sendQueriesBatch:function(e,t){function n(){for(var t="",n=0;n<e.requests.length;++n){var r="/1/indexes/"+encodeURIComponent(e.requests[n].indexName)+"?"+e.requests[n].params;t+=n+"="+encodeURIComponent(r)+"&"}return t}return this._jsonRequest({cache:this.cache,method:"POST",url:"/1/indexes/*/queries",body:e,hostType:"read",fallback:{method:"GET",url:"/1/indexes/*",body:{params:n()}},callback:t})},_jsonRequest:function(e){function r(n,u){function d(e){var n=e&&e.body&&e.body.message&&e.body.status||e.statusCode||e&&e.body&&200;o("received response: statusCode: %s, computed statusCode: %d, headers: %j",e.statusCode,n,e.headers),t&&t.env.DEBUG&&-1!==t.env.DEBUG.indexOf("debugBody")&&o("body: %j",e.body);var r=200===n||201===n,i=!r&&4!==Math.floor(n/100)&&1!==Math.floor(n/100);if(s._useCache&&r&&a&&(a[v]=e.responseText),r)return e.body;if(i)return c+=1,m();var u=new f.AlgoliaSearchError(e.body&&e.body.message);return s._promise.reject(u)}function h(t){return o("error: %s, stack: %s",t.message,t.stack),t instanceof f.AlgoliaSearchError||(t=new f.Unknown(t&&t.message,t)),c+=1,t instanceof f.Unknown||t instanceof f.UnparsableJSON||c>=s.hosts[e.hostType].length&&(p||!e.fallback||!s._request.fallback)?s._promise.reject(t):(s.hostIndex[e.hostType]=++s.hostIndex[e.hostType]%s.hosts[e.hostType].length,t instanceof f.RequestTimeout?m():(s._request.fallback&&!s.useFallback&&(s.useFallback=!0),r(n,u)))}function m(){return s.hostIndex[e.hostType]=++s.hostIndex[e.hostType]%s.hosts[e.hostType].length,u.timeout=s.requestTimeout*(c+1),r(n,u)}var v;if(s._useCache&&(v=e.url),s._useCache&&i&&(v+="_body_"+u.body),s._useCache&&a&&void 0!==a[v])return o("serving response from cache"),s._promise.resolve(JSON.parse(a[v]));if(c>=s.hosts[e.hostType].length||s.useFallback&&!p)return e.fallback&&s._request.fallback&&!p?(o("switching to fallback"),c=0,u.method=e.fallback.method,u.url=e.fallback.url,u.jsonBody=e.fallback.body,u.jsonBody&&(u.body=l(u.jsonBody)),u.timeout=s.requestTimeout*(c+1),s.hostIndex[e.hostType]=0,p=!0,r(s._request.fallback,u)):(o("could not get any response"),s._promise.reject(new f.AlgoliaSearchError("Cannot connect to the AlgoliaSearch API. Send an email to support@algolia.com to report and resolve the issue. Application id was: "+s.applicationID)));var g=s.hosts[e.hostType][s.hostIndex[e.hostType]]+u.url,y={body:i,jsonBody:e.body,method:u.method,headers:s._computeRequestHeaders(),timeout:u.timeout,debug:o};return o("method: %s, url: %s, headers: %j, timeout: %d",y.method,g,y.headers,y.timeout),n===s._request.fallback&&o("using fallback"),n.call(s,g,y).then(d,h)}var i,o=n(42)("algoliasearch:"+e.url),a=e.cache,s=this,c=0,p=!1;void 0!==e.body&&(i=l(e.body)),o("request start");var d=s.useFallback&&e.fallback,h=d?e.fallback:e,m=r(d?s._request.fallback:s._request,{url:h.url,method:h.method,body:i,jsonBody:e.body,timeout:s.requestTimeout*(c+1)});return e.callback?void m.then(function(t){u(function(){e.callback(null,t)},s._setTimeout||setTimeout)},function(t){u(function(){e.callback(t)},s._setTimeout||setTimeout)}):m},_getSearchParams:function(e,t){if(this._isUndefined(e)||null===e)return t;for(var n in e)null!==n&&void 0!==e[n]&&e.hasOwnProperty(n)&&(t+=""===t?"":"&",t+=n+"="+encodeURIComponent("[object Array]"===Object.prototype.toString.call(e[n])?l(e[n]):e[n]));return t},_isUndefined:function(e){return void 0===e},_computeRequestHeaders:function(){var e=n(16),t={"x-algolia-api-key":this.apiKey,"x-algolia-application-id":this.applicationID,"x-algolia-agent":this._ua};return this.userToken&&(t["x-algolia-usertoken"]=this.userToken),this.securityTags&&(t["x-algolia-tagfilters"]=this.securityTags),this.extraHeaders&&e(this.extraHeaders,function(e){t[e.name]=e.value}),t}},r.prototype.Index.prototype={clearCache:function(){this.cache={}},addObject:function(e,t,n){var r=this;return(1===arguments.length||"function"==typeof t)&&(n=t,t=void 0),this.as._jsonRequest({method:void 0!==t?"PUT":"POST",url:"/1/indexes/"+encodeURIComponent(r.indexName)+(void 0!==t?"/"+encodeURIComponent(t):""),body:e,hostType:"write",callback:n})},addObjects:function(e,t){var r=n(35),i="Usage: index.addObjects(arrayOfObjects[, callback])";if(!r(e))throw new Error(i);for(var o=this,a={requests:[]},s=0;s<e.length;++s){var u={action:"addObject",body:e[s]};a.requests.push(u)}return this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(o.indexName)+"/batch",body:a,hostType:"write",callback:t})},getObject:function(e,t,n){var r=this;(1===arguments.length||"function"==typeof t)&&(n=t,t=void 0);var i="";if(void 0!==t){i="?attributes=";for(var o=0;o<t.length;++o)0!==o&&(i+=","),i+=t[o]}return this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(r.indexName)+"/"+encodeURIComponent(e)+i,hostType:"read",callback:n})},getObjects:function(e,t,r){var o=n(35),a="Usage: index.getObjects(arrayOfObjectIDs[, callback])";if(!o(e))throw new Error(a);var s=this;(1===arguments.length||"function"==typeof t)&&(r=t,t=void 0);var u={requests:i(e,function(e){var n={indexName:s.indexName,objectID:e};return t&&(n.attributesToRetrieve=t.join(",")),n})};return this.as._jsonRequest({method:"POST",url:"/1/indexes/*/objects",hostType:"read",body:u,callback:r})},partialUpdateObject:function(e,t){var n=this;return this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(n.indexName)+"/"+encodeURIComponent(e.objectID)+"/partial",body:e,hostType:"write",callback:t})},partialUpdateObjects:function(e,t){var r=n(35),i="Usage: index.partialUpdateObjects(arrayOfObjects[, callback])";if(!r(e))throw new Error(i);for(var o=this,a={requests:[]},s=0;s<e.length;++s){var u={action:"partialUpdateObject",objectID:e[s].objectID,body:e[s]};a.requests.push(u)}return this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(o.indexName)+"/batch",body:a,hostType:"write",callback:t})},saveObject:function(e,t){var n=this;return this.as._jsonRequest({method:"PUT",url:"/1/indexes/"+encodeURIComponent(n.indexName)+"/"+encodeURIComponent(e.objectID),body:e,hostType:"write",callback:t})},saveObjects:function(e,t){var r=n(35),i="Usage: index.saveObjects(arrayOfObjects[, callback])";if(!r(e))throw new Error(i);for(var o=this,a={requests:[]},s=0;s<e.length;++s){var u={action:"updateObject",objectID:e[s].objectID,body:e[s]};a.requests.push(u)}return this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(o.indexName)+"/batch",body:a,hostType:"write",callback:t})},deleteObject:function(e,t){if("function"==typeof e||"string"!=typeof e&&"number"!=typeof e){var n=new f.AlgoliaSearchError("Cannot delete an object without an objectID");return t=e,"function"==typeof t?t(n):this.as._promise.reject(n)}var r=this;return this.as._jsonRequest({method:"DELETE",url:"/1/indexes/"+encodeURIComponent(r.indexName)+"/"+encodeURIComponent(e),hostType:"write",callback:t})},deleteObjects:function(e,t){var r=n(35),o="Usage: index.deleteObjects(arrayOfObjectIDs[, callback])";if(!r(e))throw new Error(o);var a=this,s={requests:i(e,function(e){return{action:"deleteObject",objectID:e,body:{objectID:e}}})};return this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(a.indexName)+"/batch",body:s,hostType:"write",callback:t})},deleteByQuery:function(e,t,r){function o(e){if(0===e.nbHits)return e;var t=i(e.hits,function(e){return e.objectID});return f.deleteObjects(t).then(a).then(s)}function a(e){return f.waitTask(e.taskID)}function s(){return f.deleteByQuery(e,t)}function c(){u(function(){r(null)},d._setTimeout||setTimeout)}function l(e){u(function(){r(e)},d._setTimeout||setTimeout)}var p=n(45),f=this,d=f.as;1===arguments.length||"function"==typeof t?(r=t,t={}):t=p(t),t.attributesToRetrieve="objectID",t.hitsPerPage=1e3,t.distinct=!1,this.clearCache();var h=this.search(e,t).then(o);return r?void h.then(c,l):h},search:p("query"),similarSearch:p("similarQuery"),browse:function(e,t,r){var i,o,a=n(55),s=this;0===arguments.length||1===arguments.length&&"function"==typeof arguments[0]?(i=0,r=arguments[0],e=void 0):"number"==typeof arguments[0]?(i=arguments[0],"number"==typeof arguments[1]?o=arguments[1]:"function"==typeof arguments[1]&&(r=arguments[1],o=void 0),e=void 0,t=void 0):"object"==typeof arguments[0]?("function"==typeof arguments[1]&&(r=arguments[1]),t=arguments[0],e=void 0):"string"==typeof arguments[0]&&"function"==typeof arguments[1]&&(r=arguments[1],t=void 0),t=a({},t||{},{page:i,hitsPerPage:o,query:e});var u=this.as._getSearchParams(t,"");return this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(s.indexName)+"/browse?"+u,hostType:"read",callback:r})},browseFrom:function(e,t){return this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(this.indexName)+"/browse?cursor="+encodeURIComponent(e),hostType:"read",callback:t})},browseAll:function(e,t){function r(e){if(!s._stopped){var t;t=void 0!==e?"cursor="+encodeURIComponent(e):l,u._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/browse?"+t,hostType:"read",callback:i})}}function i(e,t){return s._stopped?void 0:e?void s._error(e):(s._result(t),void 0===t.cursor?void s._end():void r(t.cursor))}"object"==typeof e&&(t=e,e=void 0);var o=n(55),a=n(64),s=new a,u=this.as,c=this,l=u._getSearchParams(o({},t||{},{query:e}),"");return r(),s},ttAdapter:function(e){var t=this;return function(n,r,i){var o;o="function"==typeof i?i:r,t.search(n,e,function(e,t){return e?void o(e):void o(t.hits)})}},waitTask:function(e,t){function n(){return l._jsonRequest({method:"GET",hostType:"read",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/task/"+e}).then(function(e){s++;var t=o*s*s;return t>a&&(t=a),"published"!==e.status?l._promise.delay(t).then(n):e})}function r(e){u(function(){t(null,e)},l._setTimeout||setTimeout)}function i(e){u(function(){t(e)},l._setTimeout||setTimeout)}var o=100,a=5e3,s=0,c=this,l=c.as,p=n();return t?void p.then(r,i):p},clearIndex:function(e){var t=this;return this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(t.indexName)+"/clear",hostType:"write",callback:e})},getSettings:function(e){var t=this;return this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(t.indexName)+"/settings",
7
+ hostType:"read",callback:e})},setSettings:function(e,t){var n=this;return this.as._jsonRequest({method:"PUT",url:"/1/indexes/"+encodeURIComponent(n.indexName)+"/settings",hostType:"write",body:e,callback:t})},listUserKeys:function(e){var t=this;return this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(t.indexName)+"/keys",hostType:"read",callback:e})},getUserKeyACL:function(e,t){var n=this;return this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(n.indexName)+"/keys/"+e,hostType:"read",callback:t})},deleteUserKey:function(e,t){var n=this;return this.as._jsonRequest({method:"DELETE",url:"/1/indexes/"+encodeURIComponent(n.indexName)+"/keys/"+e,hostType:"write",callback:t})},addUserKey:function(e,t,r){var i=n(35),o="Usage: index.addUserKey(arrayOfAcls[, params, callback])";if(!i(e))throw new Error(o);(1===arguments.length||"function"==typeof t)&&(r=t,t=null);var a={acl:e};return t&&(a.validity=t.validity,a.maxQueriesPerIPPerHour=t.maxQueriesPerIPPerHour,a.maxHitsPerQuery=t.maxHitsPerQuery,a.description=t.description,t.queryParameters&&(a.queryParameters=this.as._getSearchParams(t.queryParameters,"")),a.referers=t.referers),this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(this.indexName)+"/keys",body:a,hostType:"write",callback:r})},addUserKeyWithValidity:c(function(e,t,n){return this.addUserKey(e,t,n)},s("index.addUserKeyWithValidity()","index.addUserKey()")),updateUserKey:function(e,t,r,i){var o=n(35),a="Usage: index.updateUserKey(key, arrayOfAcls[, params, callback])";if(!o(t))throw new Error(a);(2===arguments.length||"function"==typeof r)&&(i=r,r=null);var s={acl:t};return r&&(s.validity=r.validity,s.maxQueriesPerIPPerHour=r.maxQueriesPerIPPerHour,s.maxHitsPerQuery=r.maxHitsPerQuery,s.description=r.description,r.queryParameters&&(s.queryParameters=this.as._getSearchParams(r.queryParameters,"")),s.referers=r.referers),this.as._jsonRequest({method:"PUT",url:"/1/indexes/"+encodeURIComponent(this.indexName)+"/keys/"+e,body:s,hostType:"write",callback:i})},_search:function(e,t){return this.as._jsonRequest({cache:this.cache,method:"POST",url:"/1/indexes/"+encodeURIComponent(this.indexName)+"/query",body:{params:e},hostType:"read",fallback:{method:"GET",url:"/1/indexes/"+encodeURIComponent(this.indexName),body:{params:e}},callback:t})},as:null,indexName:null,typeAheadArgs:null,typeAheadValueOption:null}}).call(t,n(8))},function(e,t,n){"use strict";function r(e,t){var r=n(16),i=this;"function"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):i.stack=(new Error).stack||"Cannot get a stacktrace, browser is too old",this.name=this.constructor.name,this.message=e||"Unknown error",t&&r(t,function(e,t){i[t]=e})}function i(e,t){function n(){var n=Array.prototype.slice.call(arguments,0);"string"!=typeof n[0]&&n.unshift(t),r.apply(this,n),this.name="AlgoliaSearch"+e+"Error"}return o(n,r),n}var o=n(9);o(r,Error),e.exports={AlgoliaSearchError:r,UnparsableJSON:i("UnparsableJSON","Could not parse the incoming response as JSON, see err.more for details"),RequestTimeout:i("RequestTimeout","Request timedout before getting a response"),Network:i("Network","Network issue, see err.more for details"),JSONPScriptFail:i("JSONPScriptFail","<script> was loaded but did not call our provided callback"),JSONPScriptError:i("JSONPScriptError","<script> unable to load due to an `error` event on it"),Unknown:i("Unknown","Unknown error occured")}},function(e,t,n){var r=n(17),i=n(18),o=n(39),a=o(r,i);e.exports=a},function(e){function t(e,t){for(var n=-1,r=e.length;++n<r&&t(e[n],n,e)!==!1;);return e}e.exports=t},function(e,t,n){var r=n(19),i=n(38),o=i(r);e.exports=o},function(e,t,n){function r(e,t){return i(e,t,o)}var i=n(20),o=n(24);e.exports=r},function(e,t,n){var r=n(21),i=r();e.exports=i},function(e,t,n){function r(e){return function(t,n,r){for(var o=i(t),a=r(t),s=a.length,u=e?s:-1;e?u--:++u<s;){var c=a[u];if(n(o[c],c,o)===!1)break}return t}}var i=n(22);e.exports=r},function(e,t,n){function r(e){return i(e)?e:Object(e)}var i=n(23);e.exports=r},function(e){function t(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=t},function(e,t,n){var r=n(25),i=n(29),o=n(23),a=n(33),s=r(Object,"keys"),u=s?function(e){var t=null==e?void 0:e.constructor;return"function"==typeof t&&t.prototype===e||"function"!=typeof e&&i(e)?a(e):o(e)?s(e):[]}:a;e.exports=u},function(e,t,n){function r(e,t){var n=null==e?void 0:e[t];return i(n)?n:void 0}var i=n(26);e.exports=r},function(e,t,n){function r(e){return null==e?!1:i(e)?l.test(u.call(e)):o(e)&&a.test(e)}var i=n(27),o=n(28),a=/^\[object .+?Constructor\]$/,s=Object.prototype,u=Function.prototype.toString,c=s.hasOwnProperty,l=RegExp("^"+u.call(c).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=r},function(e,t,n){function r(e){return i(e)&&s.call(e)==o}var i=n(23),o="[object Function]",a=Object.prototype,s=a.toString;e.exports=r},function(e){function t(e){return!!e&&"object"==typeof e}e.exports=t},function(e,t,n){function r(e){return null!=e&&o(i(e))}var i=n(30),o=n(32);e.exports=r},function(e,t,n){var r=n(31),i=r("length");e.exports=i},function(e){function t(e){return function(t){return null==t?void 0:t[e]}}e.exports=t},function(e){function t(e){return"number"==typeof e&&e>-1&&e%1==0&&n>=e}var n=9007199254740991;e.exports=t},function(e,t,n){function r(e){for(var t=u(e),n=t.length,r=n&&e.length,c=!!r&&s(r)&&(o(e)||i(e)),p=-1,f=[];++p<n;){var d=t[p];(c&&a(d,r)||l.call(e,d))&&f.push(d)}return f}var i=n(34),o=n(35),a=n(36),s=n(32),u=n(37),c=Object.prototype,l=c.hasOwnProperty;e.exports=r},function(e,t,n){function r(e){return o(e)&&i(e)&&s.call(e,"callee")&&!u.call(e,"callee")}var i=n(29),o=n(28),a=Object.prototype,s=a.hasOwnProperty,u=a.propertyIsEnumerable;e.exports=r},function(e,t,n){var r=n(25),i=n(32),o=n(28),a="[object Array]",s=Object.prototype,u=s.toString,c=r(Array,"isArray"),l=c||function(e){return o(e)&&i(e.length)&&u.call(e)==a};e.exports=l},function(e){function t(e,t){return e="number"==typeof e||n.test(e)?+e:-1,t=null==t?r:t,e>-1&&e%1==0&&t>e}var n=/^\d+$/,r=9007199254740991;e.exports=t},function(e,t,n){function r(e){if(null==e)return[];u(e)||(e=Object(e));var t=e.length;t=t&&s(t)&&(o(e)||i(e))&&t||0;for(var n=e.constructor,r=-1,c="function"==typeof n&&n.prototype===e,p=Array(t),f=t>0;++r<t;)p[r]=r+"";for(var d in e)f&&a(d,t)||"constructor"==d&&(c||!l.call(e,d))||p.push(d);return p}var i=n(34),o=n(35),a=n(36),s=n(32),u=n(23),c=Object.prototype,l=c.hasOwnProperty;e.exports=r},function(e,t,n){function r(e,t){return function(n,r){var s=n?i(n):0;if(!o(s))return e(n,r);for(var u=t?s:-1,c=a(n);(t?u--:++u<s)&&r(c[u],u,c)!==!1;);return n}}var i=n(30),o=n(32),a=n(22);e.exports=r},function(e,t,n){function r(e,t){return function(n,r,a){return"function"==typeof r&&void 0===a&&o(n)?e(n,r):t(n,i(r,a,3))}}var i=n(40),o=n(35);e.exports=r},function(e,t,n){function r(e,t,n){if("function"!=typeof e)return i;if(void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,o){return e.call(t,n,r,i,o)};case 5:return function(n,r,i,o,a){return e.call(t,n,r,i,o,a)}}return function(){return e.apply(t,arguments)}}var i=n(41);e.exports=r},function(e){function t(e){return e}e.exports=t},function(e,t,n){function r(){return"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31}function i(){var e=arguments,n=this.useColors;if(e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff),!n)return e;var r="color: "+this.color;e=[e[0],r,"color: inherit"].concat(Array.prototype.slice.call(e,1));var i=0,o=0;return e[0].replace(/%[a-z%]/g,function(e){"%%"!==e&&(i++,"%c"===e&&(o=i))}),e.splice(o,0,r),e}function o(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function a(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(n){}}function s(){var e;try{e=t.storage.debug}catch(n){}return e}function u(){try{return window.localStorage}catch(e){}}t=e.exports=n(43),t.log=o,t.formatArgs=i,t.save=a,t.load=s,t.useColors=r,t.storage="undefined"!=typeof chrome&&"undefined"!=typeof chrome.storage?chrome.storage.local:u(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){return JSON.stringify(e)},t.enable(s())},function(e,t,n){function r(){return t.colors[l++%t.colors.length]}function i(e){function n(){}function i(){var e=i,n=+new Date,o=n-(c||n);e.diff=o,e.prev=c,e.curr=n,c=n,null==e.useColors&&(e.useColors=t.useColors()),null==e.color&&e.useColors&&(e.color=r());var a=Array.prototype.slice.call(arguments);a[0]=t.coerce(a[0]),"string"!=typeof a[0]&&(a=["%o"].concat(a));var s=0;a[0]=a[0].replace(/%([a-z%])/g,function(n,r){if("%%"===n)return n;s++;var i=t.formatters[r];if("function"==typeof i){var o=a[s];n=i.call(e,o),a.splice(s,1),s--}return n}),"function"==typeof t.formatArgs&&(a=t.formatArgs.apply(e,a));var u=i.log||t.log||console.log.bind(console);u.apply(e,a)}n.enabled=!1,i.enabled=!0;var o=t.enabled(e)?i:n;return o.namespace=e,o}function o(e){t.save(e);for(var n=(e||"").split(/[\s,]+/),r=n.length,i=0;r>i;i++)n[i]&&(e=n[i].replace(/\*/g,".*?"),"-"===e[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))}function a(){t.enable("")}function s(e){var n,r;for(n=0,r=t.skips.length;r>n;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;r>n;n++)if(t.names[n].test(e))return!0;return!1}function u(e){return e instanceof Error?e.stack||e.message:e}t=e.exports=i,t.coerce=u,t.disable=a,t.enable=o,t.enabled=s,t.humanize=n(44),t.names=[],t.skips=[],t.formatters={};var c,l=0},function(e){function t(e){if(e=""+e,!(e.length>1e4)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]),r=(t[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*c;case"days":case"day":case"d":return n*u;case"hours":case"hour":case"hrs":case"hr":case"h":return n*s;case"minutes":case"minute":case"mins":case"min":case"m":return n*a;case"seconds":case"second":case"secs":case"sec":case"s":return n*o;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n}}}}function n(e){return e>=u?Math.round(e/u)+"d":e>=s?Math.round(e/s)+"h":e>=a?Math.round(e/a)+"m":e>=o?Math.round(e/o)+"s":e+"ms"}function r(e){return i(e,u,"day")||i(e,s,"hour")||i(e,a,"minute")||i(e,o,"second")||e+" ms"}function i(e,t,n){return t>e?void 0:1.5*t>e?Math.floor(e/t)+" "+n:Math.ceil(e/t)+" "+n+"s"}var o=1e3,a=60*o,s=60*a,u=24*s,c=365.25*u;e.exports=function(e,i){return i=i||{},"string"==typeof e?t(e):i["long"]?r(e):n(e)}},function(e,t,n){function r(e,t,n,r){return t&&"boolean"!=typeof t&&a(e,t,n)?t=!1:"function"==typeof t&&(r=n,n=t,t=!1),"function"==typeof n?i(e,t,o(n,r,3)):i(e,t)}var i=n(46),o=n(40),a=n(54);e.exports=r},function(e,t,n){function r(e,t,n,h,m,v,g){var b;if(n&&(b=m?n(e,h,m):n(e)),void 0!==b)return b;if(!f(e))return e;var x=p(e);if(x){if(b=u(e),!t)return i(e,b)}else{var E=F.call(e),_=E==y;if(E!=w&&E!=d&&(!_||m))return I[E]?c(e,E,t):m?e:{};if(b=l(_?{}:e),!t)return a(b,e)}v||(v=[]),g||(g=[]);for(var C=v.length;C--;)if(v[C]==e)return g[C];return v.push(e),g.push(b),(x?o:s)(e,function(i,o){b[o]=r(i,t,n,o,e,v,g)}),b}var i=n(47),o=n(17),a=n(48),s=n(19),u=n(50),c=n(51),l=n(53),p=n(35),f=n(23),d="[object Arguments]",h="[object Array]",m="[object Boolean]",v="[object Date]",g="[object Error]",y="[object Function]",b="[object Map]",x="[object Number]",w="[object Object]",E="[object RegExp]",_="[object Set]",C="[object String]",N="[object WeakMap]",$="[object ArrayBuffer]",O="[object Float32Array]",T="[object Float64Array]",P="[object Int8Array]",S="[object Int16Array]",D="[object Int32Array]",R="[object Uint8Array]",k="[object Uint8ClampedArray]",A="[object Uint16Array]",j="[object Uint32Array]",I={};I[d]=I[h]=I[$]=I[m]=I[v]=I[O]=I[T]=I[P]=I[S]=I[D]=I[x]=I[w]=I[E]=I[C]=I[R]=I[k]=I[A]=I[j]=!0,I[g]=I[y]=I[b]=I[_]=I[N]=!1;var M=Object.prototype,F=M.toString;e.exports=r},function(e){function t(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}e.exports=t},function(e,t,n){function r(e,t){return null==t?e:i(t,o(t),e)}var i=n(49),o=n(24);e.exports=r},function(e){function t(e,t,n){n||(n={});for(var r=-1,i=t.length;++r<i;){var o=t[r];n[o]=e[o]}return n}e.exports=t},function(e){function t(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&r.call(e,"index")&&(n.index=e.index,n.input=e.input),n}var n=Object.prototype,r=n.hasOwnProperty;e.exports=t},function(e,t,n){function r(e,t,n){var r=e.constructor;switch(t){case l:return i(e);case o:case a:return new r(+e);case p:case f:case d:case h:case m:case v:case g:case y:case b:var w=e.buffer;return new r(n?i(w):w,e.byteOffset,e.length);case s:case c:return new r(e);case u:var E=new r(e.source,x.exec(e));E.lastIndex=e.lastIndex}return E}var i=n(52),o="[object Boolean]",a="[object Date]",s="[object Number]",u="[object RegExp]",c="[object String]",l="[object ArrayBuffer]",p="[object Float32Array]",f="[object Float64Array]",d="[object Int8Array]",h="[object Int16Array]",m="[object Int32Array]",v="[object Uint8Array]",g="[object Uint8ClampedArray]",y="[object Uint16Array]",b="[object Uint32Array]",x=/\w*$/;e.exports=r},function(e,t){(function(t){function n(e){var t=new r(e.byteLength),n=new i(t);return n.set(new i(e)),t}var r=t.ArrayBuffer,i=t.Uint8Array;e.exports=n}).call(t,function(){return this}())},function(e){function t(e){var t=e.constructor;return"function"==typeof t&&t instanceof t||(t=Object),new t}e.exports=t},function(e,t,n){function r(e,t,n){if(!a(n))return!1;var r=typeof t;if("number"==r?i(n)&&o(t,n.length):"string"==r&&t in n){var s=n[t];return e===e?e===s:s!==s}return!1}var i=n(29),o=n(36),a=n(23);e.exports=r},function(e,t,n){var r=n(56),i=n(62),o=i(r);e.exports=o},function(e,t,n){function r(e,t,n,f,d){if(!u(e))return e;var h=s(t)&&(a(t)||l(t)),m=h?void 0:p(t);return i(m||t,function(i,a){if(m&&(a=i,i=t[a]),c(i))f||(f=[]),d||(d=[]),o(e,t,a,r,n,f,d);else{var s=e[a],u=n?n(s,i,a,e,t):void 0,l=void 0===u;l&&(u=i),void 0===u&&(!h||a in e)||!l&&(u===u?u===s:s!==s)||(e[a]=u)}}),e}var i=n(17),o=n(57),a=n(35),s=n(29),u=n(23),c=n(28),l=n(60),p=n(24);e.exports=r},function(e,t,n){function r(e,t,n,r,p,f,d){for(var h=f.length,m=t[n];h--;)if(f[h]==m)return void(e[n]=d[h]);var v=e[n],g=p?p(v,m,n,e,t):void 0,y=void 0===g;y&&(g=m,s(m)&&(a(m)||c(m))?g=a(v)?v:s(v)?i(v):[]:u(m)||o(m)?g=o(v)?l(v):u(v)?v:{}:y=!1),f.push(m),d.push(g),y?e[n]=r(g,m,p,f,d):(g===g?g!==v:v===v)&&(e[n]=g)}var i=n(47),o=n(34),a=n(35),s=n(29),u=n(58),c=n(60),l=n(61);e.exports=r},function(e,t,n){function r(e){var t;if(!a(e)||l.call(e)!=s||o(e)||!c.call(e,"constructor")&&(t=e.constructor,"function"==typeof t&&!(t instanceof t)))return!1;var n;return i(e,function(e,t){n=t}),void 0===n||c.call(e,n)}var i=n(59),o=n(34),a=n(28),s="[object Object]",u=Object.prototype,c=u.hasOwnProperty,l=u.toString;e.exports=r},function(e,t,n){function r(e,t){return i(e,t,o)}var i=n(20),o=n(37);e.exports=r},function(e,t,n){function r(e){return o(e)&&i(e.length)&&!!P[D.call(e)]}var i=n(32),o=n(28),a="[object Arguments]",s="[object Array]",u="[object Boolean]",c="[object Date]",l="[object Error]",p="[object Function]",f="[object Map]",d="[object Number]",h="[object Object]",m="[object RegExp]",v="[object Set]",g="[object String]",y="[object WeakMap]",b="[object ArrayBuffer]",x="[object Float32Array]",w="[object Float64Array]",E="[object Int8Array]",_="[object Int16Array]",C="[object Int32Array]",N="[object Uint8Array]",$="[object Uint8ClampedArray]",O="[object Uint16Array]",T="[object Uint32Array]",P={};P[x]=P[w]=P[E]=P[_]=P[C]=P[N]=P[$]=P[O]=P[T]=!0,P[a]=P[s]=P[b]=P[u]=P[c]=P[l]=P[p]=P[f]=P[d]=P[h]=P[m]=P[v]=P[g]=P[y]=!1;var S=Object.prototype,D=S.toString;e.exports=r},function(e,t,n){function r(e){return i(e,o(e))}var i=n(49),o=n(37);e.exports=r},function(e,t,n){function r(e){return a(function(t,n){var r=-1,a=null==t?0:n.length,s=a>2?n[a-2]:void 0,u=a>2?n[2]:void 0,c=a>1?n[a-1]:void 0;for("function"==typeof s?(s=i(s,c,5),a-=2):(s="function"==typeof c?c:void 0,a-=s?1:0),u&&o(n[0],n[1],u)&&(s=3>a?void 0:s,a=1);++r<a;){var l=n[r];l&&e(t,l,s)}return t})}var i=n(40),o=n(54),a=n(63);e.exports=r},function(e){function t(e,t){if("function"!=typeof e)throw new TypeError(n);return t=r(void 0===t?e.length-1:+t||0,0),function(){for(var n=arguments,i=-1,o=r(n.length-t,0),a=Array(o);++i<o;)a[i]=n[t+i];switch(t){case 0:return e.call(this,a);case 1:return e.call(this,n[0],a);case 2:return e.call(this,n[0],n[1],a)}var s=Array(t+1);for(i=-1;++i<t;)s[i]=n[i];return s[t]=a,e.apply(this,s)}}var n="Expected a function",r=Math.max;e.exports=t},function(e,t,n){"use strict";function r(){}e.exports=r;var i=n(9),o=n(65).EventEmitter;i(r,o),r.prototype.stop=function(){this._stopped=!0,this._clean()},r.prototype._end=function(){this.emit("end"),this._clean()},r.prototype._error=function(e){this.emit("error",e),this._clean()},r.prototype._result=function(e){this.emit("result",e)},r.prototype._clean=function(){this.removeAllListeners("stop"),this.removeAllListeners("end"),this.removeAllListeners("error"),this.removeAllListeners("result")}},function(e){function t(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function n(e){return"function"==typeof e}function r(e){return"number"==typeof e}function i(e){return"object"==typeof e&&null!==e}function o(e){return void 0===e}e.exports=t,t.EventEmitter=t,t.prototype._events=void 0,t.prototype._maxListeners=void 0,t.defaultMaxListeners=10,t.prototype.setMaxListeners=function(e){if(!r(e)||0>e||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},t.prototype.emit=function(e){var t,r,a,s,u,c;if(this._events||(this._events={}),"error"===e&&(!this._events.error||i(this._events.error)&&!this._events.error.length)){if(t=arguments[1],t instanceof Error)throw t;throw TypeError('Uncaught, unspecified "error" event.')}if(r=this._events[e],o(r))return!1;if(n(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:s=Array.prototype.slice.call(arguments,1),r.apply(this,s)}else if(i(r))for(s=Array.prototype.slice.call(arguments,1),c=r.slice(),a=c.length,u=0;a>u;u++)c[u].apply(this,s);return!0},t.prototype.addListener=function(e,r){var a;if(!n(r))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,n(r.listener)?r.listener:r),this._events[e]?i(this._events[e])?this._events[e].push(r):this._events[e]=[this._events[e],r]:this._events[e]=r,i(this._events[e])&&!this._events[e].warned&&(a=o(this._maxListeners)?t.defaultMaxListeners:this._maxListeners,a&&a>0&&this._events[e].length>a&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())),this},t.prototype.on=t.prototype.addListener,t.prototype.once=function(e,t){function r(){this.removeListener(e,r),i||(i=!0,t.apply(this,arguments))}if(!n(t))throw TypeError("listener must be a function");var i=!1;return r.listener=t,this.on(e,r),this},t.prototype.removeListener=function(e,t){var r,o,a,s;if(!n(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],a=r.length,o=-1,r===t||n(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(i(r)){for(s=a;s-->0;)if(r[s]===t||r[s].listener&&r[s].listener===t){o=s;break}if(0>o)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(o,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},t.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],n(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},t.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?n(this._events[e])?[this._events[e]]:this._events[e].slice():[]},t.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(n(t))return 1;if(t)return t.length}return 0},t.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,n){"use strict";function r(e,t){return e+=/\?/.test(e)?"&":"?",e+i.encode(t)}e.exports=r;var i=n(67)},function(e,t,n){"use strict";t.decode=t.parse=n(68),t.encode=t.stringify=n(69)},function(e){"use strict";function t(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,n,r,i){n=n||"&",r=r||"=";var o={};if("string"!=typeof e||0===e.length)return o;var a=/\+/g;e=e.split(n);var s=1e3;i&&"number"==typeof i.maxKeys&&(s=i.maxKeys);var u=e.length;s>0&&u>s&&(u=s);for(var c=0;u>c;++c){var l,p,f,d,h=e[c].replace(a,"%20"),m=h.indexOf(r);m>=0?(l=h.substr(0,m),p=h.substr(m+1)):(l=h,p=""),f=decodeURIComponent(l),d=decodeURIComponent(p),t(o,f)?Array.isArray(o[f])?o[f].push(d):o[f]=[o[f],d]:o[f]=d}return o}},function(e){"use strict";var t=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,n,r,i){return n=n||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map(function(i){var o=encodeURIComponent(t(i))+r;return Array.isArray(e[i])?e[i].map(function(e){return o+encodeURIComponent(t(e))}).join(n):o+encodeURIComponent(t(e[i]))}).join(n):i?encodeURIComponent(t(i))+r+encodeURIComponent(t(e)):""}},function(e,t,n){"use strict";function r(e,t,n){function r(){t.debug("JSONP: success"),m||p||(m=!0,l||(t.debug("JSONP: Fail. Script loaded but did not call the callback"),s(),n(new i.JSONPScriptFail)))}function a(){("loaded"===this.readyState||"complete"===this.readyState)&&r()}function s(){clearTimeout(v),d.onload=null,d.onreadystatechange=null,d.onerror=null,f.removeChild(d);try{delete window[h],delete window[h+"_loaded"]}catch(e){window[h]=null,window[h+"_loaded"]=null}}function u(){t.debug("JSONP: Script timeout"),p=!0,s(),n(new i.RequestTimeout)}function c(){t.debug("JSONP: Script error"),m||p||(s(),n(new i.JSONPScriptError))}if("GET"!==t.method)return void n(new Error("Method "+t.method+" "+e+" is not supported by JSONP."));t.debug("JSONP: start");var l=!1,p=!1;o+=1;var f=document.getElementsByTagName("head")[0],d=document.createElement("script"),h="algoliaJSONP_"+o,m=!1;window[h]=function(e){try{delete window[h]}catch(t){window[h]=void 0}p||(l=!0,s(),n(null,{body:e}))},e+="&callback="+h,t.jsonBody&&t.jsonBody.params&&(e+="&"+t.jsonBody.params);var v=setTimeout(u,t.timeout);d.onreadystatechange=a,d.onload=r,d.onerror=c,d.async=!0,d.defer=!0,d.src=e,f.appendChild(d)}e.exports=r;var i=n(15),o=0},function(e,t,n){function r(e,t,n){return"function"==typeof t?i(e,!0,o(t,n,3)):i(e,!0)}var i=n(46),o=n(40);e.exports=r},function(e){"use strict";function t(){var e=window.document.location.protocol;return"http:"!==e&&"https:"!==e&&(e="http:"),e}e.exports=t},function(e){"use strict";e.exports="3.10.0"},function(e,t,n){"use strict";function r(e,t,n){return new i(e,t,n)}var i=n(75),o=n(76),a=n(182);r.version=n(252),r.AlgoliaSearchHelper=i,r.SearchParameters=o,r.SearchResults=a,r.url=n(242),e.exports=r},function(e,t,n){"use strict";function r(e,t,n){this.client=e;var r=n||{};r.index=t,this.state=i.make(r),this.lastResults=null,this._queryId=0,this._lastQueryIdReceived=-1}var i=n(76),o=n(182),a=n(236),s=n(237),u=n(240),c=n(108),l=n(138),p=n(241),f=n(155),d=n(229),h=n(242);s.inherits(r,u.EventEmitter),r.prototype.search=function(){return this._search(),this},r.prototype.searchOnce=function(e,t){var n=this.state.setQueryParameters(e),r=a._getQueries(n.index,n);return t?this.client.search(r,function(e,r){t(e,new o(n,r),n)}):this.client.search(r).then(function(e){return{content:new o(n,e),state:n}})},r.prototype.setQuery=function(e){return this.state=this.state.setQuery(e),this._change(),this},r.prototype.clearRefinements=function(e){return this.state=this.state.clearRefinements(e),this._change(),this},r.prototype.clearTags=function(){return this.state=this.state.clearTags(),this._change(),this},r.prototype.addDisjunctiveFacetRefinement=function(e,t){return this.state=this.state.addDisjunctiveFacetRefinement(e,t),this._change(),this},r.prototype.addDisjunctiveRefine=function(){return this.addDisjunctiveFacetRefinement.apply(this,arguments)},r.prototype.addNumericRefinement=function(e,t,n){return this.state=this.state.addNumericRefinement(e,t,n),this._change(),this},r.prototype.addFacetRefinement=function(e,t){return this.state=this.state.addFacetRefinement(e,t),this._change(),this},r.prototype.addRefine=function(){return this.addFacetRefinement.apply(this,arguments)},r.prototype.addFacetExclusion=function(e,t){return this.state=this.state.addExcludeRefinement(e,t),this._change(),this},r.prototype.addExclude=function(){return this.addFacetExclusion.apply(this,arguments)},r.prototype.addTag=function(e){return this.state=this.state.addTagRefinement(e),this._change(),this},r.prototype.removeNumericRefinement=function(e,t,n){return this.state=this.state.removeNumericRefinement(e,t,n),this._change(),this},r.prototype.removeDisjunctiveFacetRefinement=function(e,t){return this.state=this.state.removeDisjunctiveFacetRefinement(e,t),this._change(),this},r.prototype.removeDisjunctiveRefine=function(){return this.removeDisjunctiveFacetRefinement.apply(this,arguments)},r.prototype.removeFacetRefinement=function(e,t){return this.state=this.state.removeFacetRefinement(e,t),this._change(),this},r.prototype.removeRefine=function(){return this.removeFacetRefinement.apply(this,arguments)},r.prototype.removeFacetExclusion=function(e,t){return this.state=this.state.removeExcludeRefinement(e,t),this._change(),this},r.prototype.removeExclude=function(){return this.removeFacetExclusion.apply(this,arguments)},r.prototype.removeTag=function(e){return this.state=this.state.removeTagRefinement(e),this._change(),this},r.prototype.toggleFacetExclusion=function(e,t){return this.state=this.state.toggleExcludeFacetRefinement(e,t),this._change(),this},r.prototype.toggleExclude=function(){return this.toggleFacetExclusion.apply(this,arguments)},r.prototype.toggleRefinement=function(e,t){return this.state=this.state.toggleRefinement(e,t),this._change(),this},r.prototype.toggleRefine=function(){return this.toggleRefinement.apply(this,arguments)},r.prototype.toggleTag=function(e){return this.state=this.state.toggleTagRefinement(e),this._change(),this},r.prototype.nextPage=function(){return this.setCurrentPage(this.state.page+1)},r.prototype.previousPage=function(){return this.setCurrentPage(this.state.page-1)},r.prototype.setCurrentPage=function(e){if(0>e)throw new Error("Page requested below 0.");return this.state=this.state.setPage(e),this._change(),this},r.prototype.setIndex=function(e){return this.state=this.state.setIndex(e),this._change(),this},r.prototype.setQueryParameter=function(e,t){var n=this.state.setQueryParameter(e,t);return this.state===n?this:(this.state=n,this._change(),this)},r.prototype.setState=function(e){return this.state=new i(e),this._change(),this},r.prototype.getState=function(e){return void 0===e?this.state:this.state.filter(e)},r.prototype.getStateAsQueryString=function(e){var t=e&&e.filters||["query","attribute:*"],n=this.getState(t);return h.getQueryStringFromState(n,e)},r.getConfigurationFromQueryString=h.getStateFromQueryString,r.getForeignConfigurationInQueryString=h.getUnrecognizedParametersInQueryString,r.prototype.setStateFromQueryString=function(e,t){var n=t&&t.triggerChange||!1,r=h.getStateFromQueryString(e,t),i=this.state.setQueryParameters(r);n?this.setState(i):this.overrideStateWithoutTriggeringChangeEvent(i)},r.prototype.overrideStateWithoutTriggeringChangeEvent=function(e){return this.state=new i(e),this},r.prototype.isRefined=function(e,t){if(this.state.isConjunctiveFacet(e))return this.state.isFacetRefined(e,t);if(this.state.isDisjunctiveFacet(e))return this.state.isDisjunctiveFacetRefined(e,t);throw new Error(e+" is not properly defined in this helper configuration(use the facets or disjunctiveFacets keys to configure it)")},r.prototype.hasRefinements=function(e){return f(this.state.getNumericRefinements(e))?this.state.isConjunctiveFacet(e)?this.state.isFacetRefined(e):this.state.isDisjunctiveFacet(e)?this.state.isDisjunctiveFacetRefined(e):this.state.isHierarchicalFacet(e)?this.state.isHierarchicalFacetRefined(e):!1:!0},r.prototype.isExcluded=function(e,t){return this.state.isExcludeRefined(e,t)},r.prototype.isDisjunctiveRefined=function(e,t){return this.state.isDisjunctiveFacetRefined(e,t)},r.prototype.hasTag=function(e){return this.state.isTagRefined(e)},r.prototype.isTagRefined=function(){return this.hasTagRefinements.apply(this,arguments)},r.prototype.getIndex=function(){return this.state.index},r.prototype.getCurrentPage=function(){return this.state.page},r.prototype.getTags=function(){return this.state.tagRefinements},r.prototype.getQueryParameter=function(e){return this.state.getQueryParameter(e)},r.prototype.getRefinements=function(e){var t=[];if(this.state.isConjunctiveFacet(e)){var n=this.state.getConjunctiveRefinements(e);c(n,function(e){t.push({value:e,type:"conjunctive"})});var r=this.state.getExcludeRefinements(e);c(r,function(e){t.push({value:e,type:"exclude"})})}else if(this.state.isDisjunctiveFacet(e)){var i=this.state.getDisjunctiveRefinements(e);c(i,function(e){t.push({value:e,type:"disjunctive"})})}var o=this.state.getNumericRefinements(e);return c(o,function(e,n){t.push({value:e,operator:n,type:"numeric"})}),t},r.prototype.getNumericRefinement=function(e,t){return this.state.getNumericRefinement(e,t)},r.prototype.getHierarchicalFacetBreadcrumb=function(e){return l(this.state.getHierarchicalRefinement(e)[0].split(this.state._getHierarchicalFacetSeparator(this.state.getHierarchicalFacetByName(e))),function(e){return d(e)})},r.prototype._search=function(){var e=this.state,t=a._getQueries(e.index,e);this.emit("search",e,this.lastResults),this.client.search(t,p(this._handleResponse,this,e,this._queryId++))},r.prototype._handleResponse=function(e,t,n,r){if(!(t<this._lastQueryIdReceived)){if(this._lastQueryIdReceived=t,n)return void this.emit("error",n);var i=this.lastResults=new o(e,r);this.emit("result",i,e)}},r.prototype.containsRefinement=function(e,t,n,r){return e||0!==t.length||0!==n.length||0!==r.length},r.prototype._hasDisjunctiveRefinements=function(e){return this.state.disjunctiveRefinements[e]&&this.state.disjunctiveRefinements[e].length>0},r.prototype._change=function(){this.emit("change",this.state,this.lastResults)},e.exports=r},function(e,t,n){"use strict";function r(e){var t=e?r._parseNumbers(e):{};this.index=t.index||"",this.query=t.query||"",this.facets=t.facets||[],this.disjunctiveFacets=t.disjunctiveFacets||[],this.hierarchicalFacets=t.hierarchicalFacets||[],this.facetsRefinements=t.facetsRefinements||{},this.facetsExcludes=t.facetsExcludes||{},this.disjunctiveFacetsRefinements=t.disjunctiveFacetsRefinements||{},this.numericRefinements=t.numericRefinements||{},this.tagRefinements=t.tagRefinements||[],this.hierarchicalFacetsRefinements=t.hierarchicalFacetsRefinements||{},
8
+ this.numericFilters=t.numericFilters,this.tagFilters=t.tagFilters,this.optionalTagFilters=t.optionalTagFilters,this.optionalFacetFilters=t.optionalFacetFilters,this.hitsPerPage=t.hitsPerPage,this.maxValuesPerFacet=t.maxValuesPerFacet,this.page=t.page||0,this.queryType=t.queryType,this.typoTolerance=t.typoTolerance,this.minWordSizefor1Typo=t.minWordSizefor1Typo,this.minWordSizefor2Typos=t.minWordSizefor2Typos,this.minProximity=t.minProximity,this.allowTyposOnNumericTokens=t.allowTyposOnNumericTokens,this.ignorePlurals=t.ignorePlurals,this.restrictSearchableAttributes=t.restrictSearchableAttributes,this.advancedSyntax=t.advancedSyntax,this.analytics=t.analytics,this.analyticsTags=t.analyticsTags,this.synonyms=t.synonyms,this.replaceSynonymsInHighlight=t.replaceSynonymsInHighlight,this.optionalWords=t.optionalWords,this.removeWordsIfNoResults=t.removeWordsIfNoResults,this.attributesToRetrieve=t.attributesToRetrieve,this.attributesToHighlight=t.attributesToHighlight,this.highlightPreTag=t.highlightPreTag,this.highlightPostTag=t.highlightPostTag,this.attributesToSnippet=t.attributesToSnippet,this.getRankingInfo=t.getRankingInfo,this.distinct=t.distinct,this.aroundLatLng=t.aroundLatLng,this.aroundLatLngViaIP=t.aroundLatLngViaIP,this.aroundRadius=t.aroundRadius,this.minimumAroundRadius=t.minimumAroundRadius,this.aroundPrecision=t.aroundPrecision,this.insideBoundingBox=t.insideBoundingBox,this.insidePolygon=t.insidePolygon,this.offset=t.offset,this.length=t.length,a(t,function(e,t){if(!this.hasOwnProperty(t)){var n="Unsupported SearchParameter: `"+t+"` (this will throw in the next version)";window?window.console&&window.console.error(n):console.error(n)}},this)}var i=n(77),o=n(92),a=n(100),s=n(108),u=n(113),c=n(138),l=n(141),p=n(145),f=n(152),d=n(89),h=n(155),m=n(157),v=n(156),g=n(158),y=n(80),b=n(159),x=n(163),w=n(164),E=n(173),_=n(179),C=n(180),N=n(181);r.PARAMETERS=i(new r),r._parseNumbers=function(e){var t={},n=["aroundPrecision","aroundRadius","getRankingInfo","minWordSizefor2Typos","minWordSizefor1Typo","page","maxValuesPerFacet","distinct","minimumAroundRadius","hitsPerPage","minProximity"];if(s(n,function(n){var r=e[n];v(r)&&(t[n]=parseFloat(e[n]))}),e.numericRefinements){var r={};s(e.numericRefinements,function(e,t){r[t]={},s(e,function(e,n){var i=c(e,function(e){return d(e)?c(e,function(e){return v(e)?parseFloat(e):e}):v(e)?parseFloat(e):e});r[t][n]=i})}),t.numericRefinements=r}return E({},e,t)},r.make=function(e){var t=new r(e);return s(e.hierarchicalFacets,function(e){if(e.rootPath){var n=t.getHierarchicalRefinement(e.name);n.length>0&&0!==n[0].indexOf(e.rootPath)&&(t=t.clearRefinements(e.name)),n=t.getHierarchicalRefinement(e.name),0===n.length&&(t=t.toggleHierarchicalFacetRefinement(e.name,e.rootPath))}}),_(t)},r.validate=function(e,t){var n=t||{},r=i(n),o=u(r,function(t){return!e.hasOwnProperty(t)});return 1===o.length?new Error("Property "+o[0]+" is not defined on SearchParameters (see http://algolia.github.io/algoliasearch-helper-js/docs/SearchParameters.html)"):o.length>1?new Error("Properties "+o.join(" ")+" are not defined on SearchParameters (see http://algolia.github.io/algoliasearch-helper-js/docs/SearchParameters.html)"):e.tagFilters&&n.tagRefinements&&n.tagRefinements.length>0?new Error("[Tags] Cannot switch from the managed tag API to the advanced API. It is probably an error, if it is really what you want, you should first clear the tags with clearTags method."):e.tagRefinements.length>0&&n.tagFilters?new Error("[Tags] Cannot switch from the advanced tag API to the managed API. It is probably an error, if it is not, you should first clear the tags with clearTags method."):e.numericFilters&&n.numericRefinements&&!h(n.numericRefinements)?new Error("[Numeric filters] Can't switch from the advanced to the managed API. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):!h(e.numericRefinements)&&n.numericFilters?new Error("[Numeric filters] Can't switch from the managed API to the advanced. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):null},r.prototype={constructor:r,clearRefinements:function(e){var t=N.clearRefinement;return this.setQueryParameters({page:0,numericRefinements:this._clearNumericRefinements(e),facetsRefinements:t(this.facetsRefinements,e,"conjunctiveFacet"),facetsExcludes:t(this.facetsExcludes,e,"exclude"),disjunctiveFacetsRefinements:t(this.disjunctiveFacetsRefinements,e,"disjunctiveFacet"),hierarchicalFacetsRefinements:t(this.hierarchicalFacetsRefinements,e,"hierarchicalFacet")})},clearTags:function(){return void 0===this.tagFilters&&0===this.tagRefinements.length?this:this.setQueryParameters({page:0,tagFilters:void 0,tagRefinements:[]})},setIndex:function(e){return e===this.index?this:this.setQueryParameters({index:e,page:0})},setQuery:function(e){return e===this.query?this:this.setQueryParameters({query:e,page:0})},setPage:function(e){return e===this.page?this:this.setQueryParameters({page:e})},setFacets:function(e){return this.setQueryParameters({facets:e})},setDisjunctiveFacets:function(e){return this.setQueryParameters({disjunctiveFacets:e})},setHitsPerPage:function(e){return this.hitsPerPage===e?this:this.setQueryParameters({hitsPerPage:e,page:0})},setTypoTolerance:function(e){return this.typoTolerance===e?this:this.setQueryParameters({typoTolerance:e,page:0})},addNumericRefinement:function(e,t,n){var r;if(g(n))r=n;else if(v(n))r=parseFloat(n);else{if(!d(n))throw new Error("The value should be a number, a parseable string or an array of those.");r=c(n,function(e){return v(e)?parseFloat(e):e})}if(this.isNumericRefined(e,t,r))return this;var i=E({},this.numericRefinements);return i[e]=E({},i[e]),i[e][t]?(i[e][t]=i[e][t].slice(),i[e][t].push(r)):i[e][t]=[r],this.setQueryParameters({page:0,numericRefinements:i})},getConjunctiveRefinements:function(e){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.facetsRefinements[e]||[]},getDisjunctiveRefinements:function(e){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return this.disjunctiveFacetsRefinements[e]||[]},getHierarchicalRefinement:function(e){return this.hierarchicalFacetsRefinements[e]||[]},getExcludeRefinements:function(e){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.facetsExcludes[e]||[]},removeNumericRefinement:function(e,t,n){return void 0!==n?this.isNumericRefined(e,t,n)?this.setQueryParameters({page:0,numericRefinements:this._clearNumericRefinements(function(r,i){return i===e&&r.op===t&&r.val===n})}):this:void 0!==t?this.isNumericRefined(e,t)?this.setQueryParameters({page:0,numericRefinements:this._clearNumericRefinements(function(n,r){return r===e&&n.op===t})}):this:this.isNumericRefined(e)?this.setQueryParameters({page:0,numericRefinements:this._clearNumericRefinements(function(t,n){return n===e})}):this},getNumericRefinements:function(e){return this.numericRefinements[e]||{}},getNumericRefinement:function(e,t){return this.numericRefinements[e]&&this.numericRefinements[e][t]},_clearNumericRefinements:function(e){return m(e)?{}:v(e)?p(this.numericRefinements,e):y(e)?l(this.numericRefinements,function(t,n,r){var i={};return s(n,function(t,n){var o=[];s(t,function(t){var i=e({val:t,op:n},r,"numeric");i||o.push(t)}),h(o)||(i[n]=o)}),h(i)||(t[r]=i),t},{}):void 0},addFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return N.isRefined(this.facetsRefinements,e,t)?this:this.setQueryParameters({page:0,facetsRefinements:N.addRefinement(this.facetsRefinements,e,t)})},addExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return N.isRefined(this.facetsExcludes,e,t)?this:this.setQueryParameters({page:0,facetsExcludes:N.addRefinement(this.facetsExcludes,e,t)})},addDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return N.isRefined(this.disjunctiveFacetsRefinements,e,t)?this:this.setQueryParameters({page:0,disjunctiveFacetsRefinements:N.addRefinement(this.disjunctiveFacetsRefinements,e,t)})},addTagRefinement:function(e){if(this.isTagRefined(e))return this;var t={page:0,tagRefinements:this.tagRefinements.concat(e)};return this.setQueryParameters(t)},removeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return N.isRefined(this.facetsRefinements,e,t)?this.setQueryParameters({page:0,facetsRefinements:N.removeRefinement(this.facetsRefinements,e,t)}):this},removeExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return N.isRefined(this.facetsExcludes,e,t)?this.setQueryParameters({page:0,facetsExcludes:N.removeRefinement(this.facetsExcludes,e,t)}):this},removeDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return N.isRefined(this.disjunctiveFacetsRefinements,e,t)?this.setQueryParameters({page:0,disjunctiveFacetsRefinements:N.removeRefinement(this.disjunctiveFacetsRefinements,e,t)}):this},removeTagRefinement:function(e){if(!this.isTagRefined(e))return this;var t={page:0,tagRefinements:u(this.tagRefinements,function(t){return t!==e})};return this.setQueryParameters(t)},toggleRefinement:function(e,t){if(this.isHierarchicalFacet(e))return this.toggleHierarchicalFacetRefinement(e,t);if(this.isConjunctiveFacet(e))return this.toggleFacetRefinement(e,t);if(this.isDisjunctiveFacet(e))return this.toggleDisjunctiveFacetRefinement(e,t);throw new Error("Cannot refine the undeclared facet "+e+"; it should be added to the helper options facets, disjunctiveFacets or hierarchicalFacets")},toggleFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({page:0,facetsRefinements:N.toggleRefinement(this.facetsRefinements,e,t)})},toggleExcludeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({page:0,facetsExcludes:N.toggleRefinement(this.facetsExcludes,e,t)})},toggleDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return this.setQueryParameters({page:0,disjunctiveFacetsRefinements:N.toggleRefinement(this.disjunctiveFacetsRefinements,e,t)})},toggleHierarchicalFacetRefinement:function(e,t){if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration");var n=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e)),r={},i=void 0!==this.hierarchicalFacetsRefinements[e]&&this.hierarchicalFacetsRefinements[e].length>0&&(this.hierarchicalFacetsRefinements[e][0]===t||0===this.hierarchicalFacetsRefinements[e][0].indexOf(t+n));return r[e]=i?-1===t.indexOf(n)?[]:[t.slice(0,t.lastIndexOf(n))]:[t],this.setQueryParameters({page:0,hierarchicalFacetsRefinements:w({},r,this.hierarchicalFacetsRefinements)})},toggleTagRefinement:function(e){return this.isTagRefined(e)?this.removeTagRefinement(e):this.addTagRefinement(e)},isDisjunctiveFacet:function(e){return f(this.disjunctiveFacets,e)>-1},isHierarchicalFacet:function(e){return void 0!==this.getHierarchicalFacetByName(e)},isConjunctiveFacet:function(e){return f(this.facets,e)>-1},isFacetRefined:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return N.isRefined(this.facetsRefinements,e,t)},isExcludeRefined:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return N.isRefined(this.facetsExcludes,e,t)},isDisjunctiveFacetRefined:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return N.isRefined(this.disjunctiveFacetsRefinements,e,t)},isHierarchicalFacetRefined:function(e,t){if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration");var n=this.getHierarchicalRefinement(e);return t?-1!==f(n,t):n.length>0},isNumericRefined:function(e,t,n){if(m(n)&&m(t))return!!this.numericRefinements[e];if(m(n))return this.numericRefinements[e]&&!m(this.numericRefinements[e][t]);var r=parseFloat(n);return this.numericRefinements[e]&&!m(this.numericRefinements[e][t])&&-1!==f(this.numericRefinements[e][t],r)},isTagRefined:function(e){return-1!==f(this.tagRefinements,e)},getRefinedDisjunctiveFacets:function(){var e=o(i(this.numericRefinements),this.disjunctiveFacets);return i(this.disjunctiveFacetsRefinements).concat(e).concat(this.getRefinedHierarchicalFacets())},getRefinedHierarchicalFacets:function(){return o(x(this.hierarchicalFacets,"name"),i(this.hierarchicalFacetsRefinements))},getUnrefinedDisjunctiveFacets:function(){var e=this.getRefinedDisjunctiveFacets();return u(this.disjunctiveFacets,function(t){return-1===f(e,t)})},managedParameters:["index","facets","disjunctiveFacets","facetsRefinements","facetsExcludes","disjunctiveFacetsRefinements","numericRefinements","tagRefinements","hierarchicalFacets","hierarchicalFacetsRefinements"],getQueryParams:function(){var e=this.managedParameters,t={};return a(this,function(n,r){-1===f(e,r)&&void 0!==n&&(t[r]=n)}),t},getQueryParameter:function(e){if(!this.hasOwnProperty(e))throw new Error("Parameter '"+e+"' is not an attribute of SearchParameters (http://algolia.github.io/algoliasearch-helper-js/docs/SearchParameters.html)");return this[e]},setQueryParameter:function(e,t){if(this[e]===t)return this;var n={};return n[e]=t,this.setQueryParameters(n)},setQueryParameters:function(e){var t=r.validate(this,e);if(t)throw t;var n=r._parseNumbers(e);return this.mutateMe(function(t){var r=i(e);return s(r,function(e){t[e]=n[e]}),t})},filter:function(e){return C(this,e)},mutateMe:function(e){var t=new this.constructor(this);return e(t,this),_(t)},_getHierarchicalFacetSortBy:function(e){return e.sortBy||["isRefined:desc","name:asc"]},_getHierarchicalFacetSeparator:function(e){return e.separator||" > "},_getHierarchicalRootPath:function(e){return e.rootPath||null},_getHierarchicalShowParentLevel:function(e){return"boolean"==typeof e.showParentLevel?e.showParentLevel:!0},getHierarchicalFacetByName:function(e){return b(this.hierarchicalFacets,{name:e})}},e.exports=r},function(e,t,n){var r=n(78),i=n(83),o=n(81),a=n(87),s=r(Object,"keys"),u=s?function(e){var t=null==e?void 0:e.constructor;return"function"==typeof t&&t.prototype===e||"function"!=typeof e&&i(e)?a(e):o(e)?s(e):[]}:a;e.exports=u},function(e,t,n){function r(e,t){var n=null==e?void 0:e[t];return i(n)?n:void 0}var i=n(79);e.exports=r},function(e,t,n){function r(e){return null==e?!1:i(e)?l.test(u.call(e)):o(e)&&a.test(e)}var i=n(80),o=n(82),a=/^\[object .+?Constructor\]$/,s=Object.prototype,u=Function.prototype.toString,c=s.hasOwnProperty,l=RegExp("^"+u.call(c).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=r},function(e,t,n){function r(e){return i(e)&&s.call(e)==o}var i=n(81),o="[object Function]",a=Object.prototype,s=a.toString;e.exports=r},function(e){function t(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=t},function(e){function t(e){return!!e&&"object"==typeof e}e.exports=t},function(e,t,n){function r(e){return null!=e&&o(i(e))}var i=n(84),o=n(86);e.exports=r},function(e,t,n){var r=n(85),i=r("length");e.exports=i},function(e){function t(e){return function(t){return null==t?void 0:t[e]}}e.exports=t},function(e){function t(e){return"number"==typeof e&&e>-1&&e%1==0&&n>=e}var n=9007199254740991;e.exports=t},function(e,t,n){function r(e){for(var t=u(e),n=t.length,r=n&&e.length,c=!!r&&s(r)&&(o(e)||i(e)),p=-1,f=[];++p<n;){var d=t[p];(c&&a(d,r)||l.call(e,d))&&f.push(d)}return f}var i=n(88),o=n(89),a=n(90),s=n(86),u=n(91),c=Object.prototype,l=c.hasOwnProperty;e.exports=r},function(e,t,n){function r(e){return o(e)&&i(e)&&s.call(e,"callee")&&!u.call(e,"callee")}var i=n(83),o=n(82),a=Object.prototype,s=a.hasOwnProperty,u=a.propertyIsEnumerable;e.exports=r},function(e,t,n){var r=n(78),i=n(86),o=n(82),a="[object Array]",s=Object.prototype,u=s.toString,c=r(Array,"isArray"),l=c||function(e){return o(e)&&i(e.length)&&u.call(e)==a};e.exports=l},function(e){function t(e,t){return e="number"==typeof e||n.test(e)?+e:-1,t=null==t?r:t,e>-1&&e%1==0&&t>e}var n=/^\d+$/,r=9007199254740991;e.exports=t},function(e,t,n){function r(e){if(null==e)return[];u(e)||(e=Object(e));var t=e.length;t=t&&s(t)&&(o(e)||i(e))&&t||0;for(var n=e.constructor,r=-1,c="function"==typeof n&&n.prototype===e,p=Array(t),f=t>0;++r<t;)p[r]=r+"";for(var d in e)f&&a(d,t)||"constructor"==d&&(c||!l.call(e,d))||p.push(d);return p}var i=n(88),o=n(89),a=n(90),s=n(86),u=n(81),c=Object.prototype,l=c.hasOwnProperty;e.exports=r},function(e,t,n){var r=n(93),i=n(95),o=n(96),a=n(83),s=n(99),u=s(function(e){for(var t=e.length,n=t,s=Array(h),u=r,c=!0,l=[];n--;){var p=e[n]=a(p=e[n])?p:[];s[n]=c&&p.length>=120?o(n&&p):null}var f=e[0],d=-1,h=f?f.length:0,m=s[0];e:for(;++d<h;)if(p=f[d],(m?i(m,p):u(l,p,0))<0){for(var n=t;--n;){var v=s[n];if((v?i(v,p):u(e[n],p,0))<0)continue e}m&&m.push(p),l.push(p)}return l});e.exports=u},function(e,t,n){function r(e,t,n){if(t!==t)return i(e,n);for(var r=n-1,o=e.length;++r<o;)if(e[r]===t)return r;return-1}var i=n(94);e.exports=r},function(e){function t(e,t,n){for(var r=e.length,i=t+(n?0:-1);n?i--:++i<r;){var o=e[i];if(o!==o)return i}return-1}e.exports=t},function(e,t,n){function r(e,t){var n=e.data,r="string"==typeof t||i(t)?n.set.has(t):n.hash[t];return r?0:-1}var i=n(81);e.exports=r},function(e,t,n){(function(t){function r(e){return s&&a?new i(e):null}var i=n(97),o=n(78),a=o(t,"Set"),s=o(Object,"create");e.exports=r}).call(t,function(){return this}())},function(e,t,n){(function(t){function r(e){var t=e?e.length:0;for(this.data={hash:s(null),set:new a};t--;)this.push(e[t])}var i=n(98),o=n(78),a=o(t,"Set"),s=o(Object,"create");r.prototype.push=i,e.exports=r}).call(t,function(){return this}())},function(e,t,n){function r(e){var t=this.data;"string"==typeof e||i(e)?t.set.add(e):t.hash[e]=!0}var i=n(81);e.exports=r},function(e){function t(e,t){if("function"!=typeof e)throw new TypeError(n);return t=r(void 0===t?e.length-1:+t||0,0),function(){for(var n=arguments,i=-1,o=r(n.length-t,0),a=Array(o);++i<o;)a[i]=n[t+i];switch(t){case 0:return e.call(this,a);case 1:return e.call(this,n[0],a);case 2:return e.call(this,n[0],n[1],a)}var s=Array(t+1);for(i=-1;++i<t;)s[i]=n[i];return s[t]=a,e.apply(this,s)}}var n="Expected a function",r=Math.max;e.exports=t},function(e,t,n){var r=n(101),i=n(105),o=i(r);e.exports=o},function(e,t,n){function r(e,t){return i(e,t,o)}var i=n(102),o=n(77);e.exports=r},function(e,t,n){var r=n(103),i=r();e.exports=i},function(e,t,n){function r(e){return function(t,n,r){for(var o=i(t),a=r(t),s=a.length,u=e?s:-1;e?u--:++u<s;){var c=a[u];if(n(o[c],c,o)===!1)break}return t}}var i=n(104);e.exports=r},function(e,t,n){function r(e){return i(e)?e:Object(e)}var i=n(81);e.exports=r},function(e,t,n){function r(e){return function(t,n,r){return("function"!=typeof n||void 0!==r)&&(n=i(n,r,3)),e(t,n)}}var i=n(106);e.exports=r},function(e,t,n){function r(e,t,n){if("function"!=typeof e)return i;if(void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,o){return e.call(t,n,r,i,o)};case 5:return function(n,r,i,o,a){return e.call(t,n,r,i,o,a)}}return function(){return e.apply(t,arguments)}}var i=n(107);e.exports=r},function(e){function t(e){return e}e.exports=t},function(e,t,n){var r=n(109),i=n(110),o=n(112),a=o(r,i);e.exports=a},function(e){function t(e,t){for(var n=-1,r=e.length;++n<r&&t(e[n],n,e)!==!1;);return e}e.exports=t},function(e,t,n){var r=n(101),i=n(111),o=i(r);e.exports=o},function(e,t,n){function r(e,t){return function(n,r){var s=n?i(n):0;if(!o(s))return e(n,r);for(var u=t?s:-1,c=a(n);(t?u--:++u<s)&&r(c[u],u,c)!==!1;);return n}}var i=n(84),o=n(86),a=n(104);e.exports=r},function(e,t,n){function r(e,t){return function(n,r,a){return"function"==typeof r&&void 0===a&&o(n)?e(n,r):t(n,i(r,a,3))}}var i=n(106),o=n(89);e.exports=r},function(e,t,n){function r(e,t,n){var r=s(e)?i:a;return t=o(t,n,3),r(e,t)}var i=n(114),o=n(115),a=n(137),s=n(89);e.exports=r},function(e){function t(e,t){for(var n=-1,r=e.length,i=-1,o=[];++n<r;){var a=e[n];t(a,n,e)&&(o[++i]=a)}return o}e.exports=t},function(e,t,n){function r(e,t,n){var r=typeof e;return"function"==r?void 0===t?e:a(e,t,n):null==e?s:"object"==r?i(e):void 0===t?u(e):o(e,t)}var i=n(116),o=n(128),a=n(106),s=n(107),u=n(135);e.exports=r},function(e,t,n){function r(e){var t=o(e);if(1==t.length&&t[0][2]){var n=t[0][0],r=t[0][1];return function(e){return null==e?!1:e[n]===r&&(void 0!==r||n in a(e))}}return function(e){return i(e,t)}}var i=n(117),o=n(125),a=n(104);e.exports=r},function(e,t,n){function r(e,t,n){var r=t.length,a=r,s=!n;if(null==e)return!a;for(e=o(e);r--;){var u=t[r];if(s&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++r<a;){u=t[r];var c=u[0],l=e[c],p=u[1];if(s&&u[2]){if(void 0===l&&!(c in e))return!1}else{var f=n?n(l,p,c):void 0;if(!(void 0===f?i(p,l,n,!0):f))return!1}}return!0}var i=n(118),o=n(104);e.exports=r},function(e,t,n){function r(e,t,n,s,u,c){return e===t?!0:null==e||null==t||!o(e)&&!a(t)?e!==e&&t!==t:i(e,t,r,n,s,u,c)}var i=n(119),o=n(81),a=n(82);e.exports=r},function(e,t,n){function r(e,t,n,r,f,m,v){var g=s(e),y=s(t),b=l,x=l;g||(b=h.call(e),b==c?b=p:b!=p&&(g=u(e))),y||(x=h.call(t),x==c?x=p:x!=p&&(y=u(t)));var w=b==p,E=x==p,_=b==x;if(_&&!g&&!w)return o(e,t,b);if(!f){var C=w&&d.call(e,"__wrapped__"),N=E&&d.call(t,"__wrapped__");if(C||N)return n(C?e.value():e,N?t.value():t,r,f,m,v)}if(!_)return!1;m||(m=[]),v||(v=[]);for(var $=m.length;$--;)if(m[$]==e)return v[$]==t;m.push(e),v.push(t);var O=(g?i:a)(e,t,n,r,f,m,v);return m.pop(),v.pop(),O}var i=n(120),o=n(122),a=n(123),s=n(89),u=n(124),c="[object Arguments]",l="[object Array]",p="[object Object]",f=Object.prototype,d=f.hasOwnProperty,h=f.toString;e.exports=r},function(e,t,n){function r(e,t,n,r,o,a,s){var u=-1,c=e.length,l=t.length;if(c!=l&&!(o&&l>c))return!1;for(;++u<c;){var p=e[u],f=t[u],d=r?r(o?f:p,o?p:f,u):void 0;if(void 0!==d){if(d)continue;return!1}if(o){if(!i(t,function(e){return p===e||n(p,e,r,o,a,s)}))return!1}else if(p!==f&&!n(p,f,r,o,a,s))return!1}return!0}var i=n(121);e.exports=r},function(e){function t(e,t){for(var n=-1,r=e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}e.exports=t},function(e){function t(e,t,u){switch(u){case n:case r:return+e==+t;case i:return e.name==t.name&&e.message==t.message;case o:return e!=+e?t!=+t:e==+t;case a:case s:return e==t+""}return!1}var n="[object Boolean]",r="[object Date]",i="[object Error]",o="[object Number]",a="[object RegExp]",s="[object String]";e.exports=t},function(e,t,n){function r(e,t,n,r,o,s,u){var c=i(e),l=c.length,p=i(t),f=p.length;if(l!=f&&!o)return!1;for(var d=l;d--;){var h=c[d];if(!(o?h in t:a.call(t,h)))return!1}for(var m=o;++d<l;){h=c[d];var v=e[h],g=t[h],y=r?r(o?g:v,o?v:g,h):void 0;if(!(void 0===y?n(v,g,r,o,s,u):y))return!1;m||(m="constructor"==h)}if(!m){var b=e.constructor,x=t.constructor;if(b!=x&&"constructor"in e&&"constructor"in t&&!("function"==typeof b&&b instanceof b&&"function"==typeof x&&x instanceof x))return!1}return!0}var i=n(77),o=Object.prototype,a=o.hasOwnProperty;e.exports=r},function(e,t,n){function r(e){return o(e)&&i(e.length)&&!!P[D.call(e)]}var i=n(86),o=n(82),a="[object Arguments]",s="[object Array]",u="[object Boolean]",c="[object Date]",l="[object Error]",p="[object Function]",f="[object Map]",d="[object Number]",h="[object Object]",m="[object RegExp]",v="[object Set]",g="[object String]",y="[object WeakMap]",b="[object ArrayBuffer]",x="[object Float32Array]",w="[object Float64Array]",E="[object Int8Array]",_="[object Int16Array]",C="[object Int32Array]",N="[object Uint8Array]",$="[object Uint8ClampedArray]",O="[object Uint16Array]",T="[object Uint32Array]",P={};P[x]=P[w]=P[E]=P[_]=P[C]=P[N]=P[$]=P[O]=P[T]=!0,P[a]=P[s]=P[b]=P[u]=P[c]=P[l]=P[p]=P[f]=P[d]=P[h]=P[m]=P[v]=P[g]=P[y]=!1;var S=Object.prototype,D=S.toString;e.exports=r},function(e,t,n){function r(e){for(var t=o(e),n=t.length;n--;)t[n][2]=i(t[n][1]);return t}var i=n(126),o=n(127);e.exports=r},function(e,t,n){function r(e){return e===e&&!i(e)}var i=n(81);e.exports=r},function(e,t,n){function r(e){e=o(e);for(var t=-1,n=i(e),r=n.length,a=Array(r);++t<r;){var s=n[t];a[t]=[s,e[s]]}return a}var i=n(77),o=n(104);e.exports=r},function(e,t,n){function r(e,t){var n=s(e),r=u(e)&&c(t),d=e+"";return e=f(e),function(s){if(null==s)return!1;var u=d;if(s=p(s),!(!n&&r||u in s)){if(s=1==e.length?s:i(s,a(e,0,-1)),null==s)return!1;u=l(e),s=p(s)}return s[u]===t?void 0!==t||u in s:o(t,s[u],void 0,!0)}}var i=n(129),o=n(118),a=n(130),s=n(89),u=n(131),c=n(126),l=n(132),p=n(104),f=n(133);e.exports=r},function(e,t,n){function r(e,t,n){if(null!=e){void 0!==n&&n in i(e)&&(t=[n]);for(var r=0,o=t.length;null!=e&&o>r;)e=e[t[r++]];return r&&r==o?e:void 0}}var i=n(104);e.exports=r},function(e){function t(e,t,n){var r=-1,i=e.length;t=null==t?0:+t||0,0>t&&(t=-t>i?0:i+t),n=void 0===n||n>i?i:+n||0,0>n&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(i);++r<i;)o[r]=e[r+t];return o}e.exports=t},function(e,t,n){function r(e,t){var n=typeof e;if("string"==n&&s.test(e)||"number"==n)return!0;if(i(e))return!1;var r=!a.test(e);return r||null!=t&&e in o(t)}var i=n(89),o=n(104),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,s=/^\w*$/;e.exports=r},function(e){function t(e){var t=e?e.length:0;return t?e[t-1]:void 0}e.exports=t},function(e,t,n){function r(e){if(o(e))return e;var t=[];return i(e).replace(a,function(e,n,r,i){t.push(r?i.replace(s,"$1"):n||e)}),t}var i=n(134),o=n(89),a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,s=/\\(\\)?/g;e.exports=r},function(e){function t(e){return null==e?"":e+""}e.exports=t},function(e,t,n){function r(e){return a(e)?i(e):o(e)}var i=n(85),o=n(136),a=n(131);e.exports=r},function(e,t,n){function r(e){var t=e+"";return e=o(e),function(n){return i(n,e,t)}}var i=n(129),o=n(133);e.exports=r},function(e,t,n){function r(e,t){var n=[];return i(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}var i=n(110);e.exports=r},function(e,t,n){function r(e,t,n){var r=s(e)?i:a;return t=o(t,n,3),r(e,t)}var i=n(139),o=n(115),a=n(140),s=n(89);e.exports=r},function(e){function t(e,t){for(var n=-1,r=e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}e.exports=t},function(e,t,n){function r(e,t){var n=-1,r=o(e)?Array(e.length):[];return i(e,function(e,i,o){r[++n]=t(e,i,o)}),r}var i=n(110),o=n(83);e.exports=r},function(e,t,n){var r=n(142),i=n(110),o=n(143),a=o(r,i);e.exports=a},function(e){function t(e,t,n,r){var i=-1,o=e.length;for(r&&o&&(n=e[++i]);++i<o;)n=t(n,e[i],i,e);return n}e.exports=t},function(e,t,n){function r(e,t){return function(n,r,s,u){var c=arguments.length<3;return"function"==typeof r&&void 0===u&&a(n)?e(n,r,s,c):o(n,i(r,u,4),s,c,t)}}var i=n(115),o=n(144),a=n(89);e.exports=r},function(e){function t(e,t,n,r,i){return i(e,function(e,i,o){n=r?(r=!1,e):t(n,e,i,o)}),n}e.exports=t},function(e,t,n){var r=n(139),i=n(146),o=n(147),a=n(106),s=n(91),u=n(149),c=n(150),l=n(99),p=l(function(e,t){if(null==e)return{};if("function"!=typeof t[0]){var t=r(o(t),String);return u(e,i(s(e),t))}var n=a(t[0],t[1],3);return c(e,function(e,t,r){return!n(e,t,r)})});e.exports=p},function(e,t,n){function r(e,t){var n=e?e.length:0,r=[];if(!n)return r;var u=-1,c=i,l=!0,p=l&&t.length>=s?a(t):null,f=t.length;p&&(c=o,l=!1,t=p);e:for(;++u<n;){var d=e[u];if(l&&d===d){for(var h=f;h--;)if(t[h]===d)continue e;r.push(d)}else c(t,d,0)<0&&r.push(d)}return r}var i=n(93),o=n(95),a=n(96),s=200;e.exports=r},function(e,t,n){function r(e,t,n,c){c||(c=[]);for(var l=-1,p=e.length;++l<p;){var f=e[l];u(f)&&s(f)&&(n||a(f)||o(f))?t?r(f,t,n,c):i(c,f):n||(c[c.length]=f)}return c}var i=n(148),o=n(88),a=n(89),s=n(83),u=n(82);e.exports=r},function(e){function t(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}e.exports=t},function(e,t,n){function r(e,t){e=i(e);for(var n=-1,r=t.length,o={};++n<r;){var a=t[n];a in e&&(o[a]=e[a])}return o}var i=n(104);e.exports=r},function(e,t,n){function r(e,t){var n={};return i(e,function(e,r,i){t(e,r,i)&&(n[r]=e)}),n}var i=n(151);e.exports=r},function(e,t,n){function r(e,t){return i(e,t,o)}var i=n(102),o=n(91);e.exports=r},function(e,t,n){function r(e,t,n){var r=e?e.length:0;if(!r)return-1;if("number"==typeof n)n=0>n?a(r+n,0):n;else if(n){var s=o(e,t);return r>s&&(t===t?t===e[s]:e[s]!==e[s])?s:-1}return i(e,t,n||0)}var i=n(93),o=n(153),a=Math.max;e.exports=r},function(e,t,n){function r(e,t,n){var r=0,a=e?e.length:r;if("number"==typeof t&&t===t&&s>=a){for(;a>r;){var u=r+a>>>1,c=e[u];(n?t>=c:t>c)&&null!==c?r=u+1:a=u}return a}return i(e,t,o,n)}var i=n(154),o=n(107),a=4294967295,s=a>>>1;e.exports=r},function(e){function t(e,t,i,a){t=i(t);for(var s=0,u=e?e.length:0,c=t!==t,l=null===t,p=void 0===t;u>s;){var f=n((s+u)/2),d=i(e[f]),h=void 0!==d,m=d===d;if(c)var v=m||a;else v=l?m&&h&&(a||null!=d):p?m&&(a||h):null==d?!1:a?t>=d:t>d;v?s=f+1:u=f}return r(u,o)}var n=Math.floor,r=Math.min,i=4294967295,o=i-1;e.exports=t},function(e,t,n){function r(e){return null==e?!0:a(e)&&(o(e)||c(e)||i(e)||u(e)&&s(e.splice))?!e.length:!l(e).length}var i=n(88),o=n(89),a=n(83),s=n(80),u=n(82),c=n(156),l=n(77);e.exports=r},function(e,t,n){function r(e){return"string"==typeof e||i(e)&&s.call(e)==o}var i=n(82),o="[object String]",a=Object.prototype,s=a.toString;e.exports=r},function(e){function t(e){return void 0===e}e.exports=t},function(e,t,n){function r(e){return"number"==typeof e||i(e)&&s.call(e)==o}var i=n(82),o="[object Number]",a=Object.prototype,s=a.toString;e.exports=r},function(e,t,n){var r=n(110),i=n(160),o=i(r);e.exports=o},function(e,t,n){function r(e,t){return function(n,r,u){if(r=i(r,u,3),s(n)){var c=a(n,r,t);return c>-1?n[c]:void 0}return o(n,r,e)}}var i=n(115),o=n(161),a=n(162),s=n(89);e.exports=r},function(e){function t(e,t,n,r){var i;return n(e,function(e,n,o){return t(e,n,o)?(i=r?n:e,!1):void 0}),i}e.exports=t},function(e){function t(e,t,n){for(var r=e.length,i=n?r:-1;n?i--:++i<r;)if(t(e[i],i,e))return i;return-1}e.exports=t},function(e,t,n){function r(e,t){return i(e,o(t))}var i=n(138),o=n(135);e.exports=r},function(e,t,n){var r=n(165),i=n(171),o=n(172),a=o(r,i);e.exports=a},function(e,t,n){var r=n(166),i=n(167),o=n(169),a=o(function(e,t,n){return n?r(e,t,n):i(e,t)});e.exports=a},function(e,t,n){function r(e,t,n){for(var r=-1,o=i(t),a=o.length;++r<a;){var s=o[r],u=e[s],c=n(u,t[s],s,e,t);(c===c?c===u:u!==u)&&(void 0!==u||s in e)||(e[s]=c)}return e}var i=n(77);e.exports=r},function(e,t,n){function r(e,t){return null==t?e:i(t,o(t),e)}var i=n(168),o=n(77);e.exports=r},function(e){function t(e,t,n){n||(n={});for(var r=-1,i=t.length;++r<i;){var o=t[r];n[o]=e[o]}return n}e.exports=t},function(e,t,n){function r(e){return a(function(t,n){var r=-1,a=null==t?0:n.length,s=a>2?n[a-2]:void 0,u=a>2?n[2]:void 0,c=a>1?n[a-1]:void 0;for("function"==typeof s?(s=i(s,c,5),a-=2):(s="function"==typeof c?c:void 0,a-=s?1:0),u&&o(n[0],n[1],u)&&(s=3>a?void 0:s,a=1);++r<a;){var l=n[r];l&&e(t,l,s);
9
+
10
+ }return t})}var i=n(106),o=n(170),a=n(99);e.exports=r},function(e,t,n){function r(e,t,n){if(!a(n))return!1;var r=typeof t;if("number"==r?i(n)&&o(t,n.length):"string"==r&&t in n){var s=n[t];return e===e?e===s:s!==s}return!1}var i=n(83),o=n(90),a=n(81);e.exports=r},function(e){function t(e,t){return void 0===e?t:e}e.exports=t},function(e,t,n){function r(e,t){return i(function(n){var r=n[0];return null==r?r:(n.push(t),e.apply(void 0,n))})}var i=n(99);e.exports=r},function(e,t,n){var r=n(174),i=n(169),o=i(r);e.exports=o},function(e,t,n){function r(e,t,n,f,d){if(!u(e))return e;var h=s(t)&&(a(t)||l(t)),m=h?void 0:p(t);return i(m||t,function(i,a){if(m&&(a=i,i=t[a]),c(i))f||(f=[]),d||(d=[]),o(e,t,a,r,n,f,d);else{var s=e[a],u=n?n(s,i,a,e,t):void 0,l=void 0===u;l&&(u=i),void 0===u&&(!h||a in e)||!l&&(u===u?u===s:s!==s)||(e[a]=u)}}),e}var i=n(109),o=n(175),a=n(89),s=n(83),u=n(81),c=n(82),l=n(124),p=n(77);e.exports=r},function(e,t,n){function r(e,t,n,r,p,f,d){for(var h=f.length,m=t[n];h--;)if(f[h]==m)return void(e[n]=d[h]);var v=e[n],g=p?p(v,m,n,e,t):void 0,y=void 0===g;y&&(g=m,s(m)&&(a(m)||c(m))?g=a(v)?v:s(v)?i(v):[]:u(m)||o(m)?g=o(v)?l(v):u(v)?v:{}:y=!1),f.push(m),d.push(g),y?e[n]=r(g,m,p,f,d):(g===g?g!==v:v===v)&&(e[n]=g)}var i=n(176),o=n(88),a=n(89),s=n(83),u=n(177),c=n(124),l=n(178);e.exports=r},function(e){function t(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}e.exports=t},function(e,t,n){function r(e){var t;if(!a(e)||l.call(e)!=s||o(e)||!c.call(e,"constructor")&&(t=e.constructor,"function"==typeof t&&!(t instanceof t)))return!1;var n;return i(e,function(e,t){n=t}),void 0===n||c.call(e,n)}var i=n(151),o=n(88),a=n(82),s="[object Object]",u=Object.prototype,c=u.hasOwnProperty,l=u.toString;e.exports=r},function(e,t,n){function r(e){return i(e,o(e))}var i=n(168),o=n(91);e.exports=r},function(e,t,n){"use strict";var r=n(108),i=n(107),o=n(81),a=function(e){return o(e)?(r(e,a),Object.isFrozen(e)||Object.freeze(e),e):e};e.exports=Object.freeze?a:i},function(e,t,n){"use strict";function r(e,t){var n={},r=o(t,function(e){return-1!==e.indexOf("attribute:")}),c=a(r,function(e){return e.split(":")[1]});-1===u(c,"*")?i(c,function(t){e.isConjunctiveFacet(t)&&e.isFacetRefined(t)&&(n.facetsRefinements||(n.facetsRefinements={}),n.facetsRefinements[t]=e.facetsRefinements[t]),e.isDisjunctiveFacet(t)&&e.isDisjunctiveFacetRefined(t)&&(n.disjunctiveFacetsRefinements||(n.disjunctiveFacetsRefinements={}),n.disjunctiveFacetsRefinements[t]=e.disjunctiveFacetsRefinements[t]);var r=e.getNumericRefinements(t);s(r)||(n.numericRefinements||(n.numericRefinements={}),n.numericRefinements[t]=e.numericRefinements[t])}):(s(e.numericRefinements)||(n.numericRefinements=e.numericRefinements),s(e.facetsRefinements)||(n.facetsRefinements=e.facetsRefinements),s(e.disjunctiveFacetsRefinements)||(n.disjunctiveFacetsRefinements=e.disjunctiveFacetsRefinements),s(e.hierarchicalFacetsRefinements)||(n.hierarchicalFacetsRefinements=e.hierarchicalFacetsRefinements));var l=o(t,function(e){return-1===e.indexOf("attribute:")});return i(l,function(t){n[t]=e[t]}),n}var i=n(108),o=n(113),a=n(138),s=n(155),u=n(152);e.exports=r},function(e,t,n){"use strict";var r=n(157),i=n(156),o=n(80),a=n(155),s=n(164),u=n(141),c=n(113),l=n(145),p={addRefinement:function(e,t,n){if(p.isRefined(e,t,n))return e;var r=""+n,i=e[t]?e[t].concat(r):[r],o={};return o[t]=i,s({},o,e)},removeRefinement:function(e,t,n){if(r(n))return p.clearRefinement(e,t);var i=""+n;return p.clearRefinement(e,function(e,n){return t===n&&i===e})},toggleRefinement:function(e,t,n){if(r(n))throw new Error("toggleRefinement should be used with a value");return p.isRefined(e,t,n)?p.removeRefinement(e,t,n):p.addRefinement(e,t,n)},clearRefinement:function(e,t,n){return r(t)?{}:i(t)?l(e,t):o(t)?u(e,function(e,r,i){var o=c(r,function(e){return!t(e,i,n)});return a(o)||(e[i]=o),e},{}):void 0},isRefined:function(e,t,i){var o=n(152),a=!!e[t]&&e[t].length>0;if(r(i)||!a)return a;var s=""+i;return-1!==o(e[t],s)}};e.exports=p},function(e,t,n){"use strict";function r(e){var t={};return p(e,function(e,n){t[e]=n}),t}function i(e,t,n){t&&t[n]&&(e.stats=t[n])}function o(e,t){return v(e,function(e){return g(e.attributes,t)})}function a(e,t){var n=t.results[0];this.query=n.query,this.parsedQuery=n.parsedQuery,this.hits=n.hits,this.index=n.index,this.hitsPerPage=n.hitsPerPage,this.nbHits=n.nbHits,this.nbPages=n.nbPages,this.page=n.page,this.processingTimeMS=m(t.results,"processingTimeMS"),this.aroundLatLng=n.aroundLatLng,this.automaticRadius=n.automaticRadius,this.serverUsed=n.serverUsed,this.timeoutCounts=n.timeoutCounts,this.timeoutHits=n.timeoutHits,this.disjunctiveFacets=[],this.hierarchicalFacets=y(e.hierarchicalFacets,function(){return[]}),this.facets=[];var a=e.getRefinedDisjunctiveFacets(),s=r(e.facets),u=r(e.disjunctiveFacets),c=1;p(n.facets,function(t,r){var a=o(e.hierarchicalFacets,r);if(a){var c=a.attributes.indexOf(r);this.hierarchicalFacets[h(e.hierarchicalFacets,{name:a.name})][c]={attribute:r,data:t,exhaustive:n.exhaustiveFacetsCount}}else{var l,p=-1!==d(e.disjunctiveFacets,r),f=-1!==d(e.facets,r);p&&(l=u[r],this.disjunctiveFacets[l]={name:r,data:t,exhaustive:n.exhaustiveFacetsCount},i(this.disjunctiveFacets[l],n.facets_stats,r)),f&&(l=s[r],this.facets[l]={name:r,data:t,exhaustive:n.exhaustiveFacetsCount},i(this.facets[l],n.facets_stats,r))}},this),this.hierarchicalFacets=f(this.hierarchicalFacets),p(a,function(r){var o=t.results[c],a=e.getHierarchicalFacetByName(r);p(o.facets,function(t,r){var s;if(a){s=h(e.hierarchicalFacets,{name:a.name});var c=h(this.hierarchicalFacets[s],{attribute:r});if(-1===c)return;this.hierarchicalFacets[s][c].data=w({},this.hierarchicalFacets[s][c].data,t)}else{s=u[r];var l=n.facets&&n.facets[r]||{};this.disjunctiveFacets[s]={name:r,data:x({},t,l),exhaustive:o.exhaustiveFacetsCount},i(this.disjunctiveFacets[s],o.facets_stats,r),e.disjunctiveFacetsRefinements[r]&&p(e.disjunctiveFacetsRefinements[r],function(t){!this.disjunctiveFacets[s].data[t]&&d(e.disjunctiveFacetsRefinements[r],t)>-1&&(this.disjunctiveFacets[s].data[t]=0)},this)}},this),c++},this),p(e.getRefinedHierarchicalFacets(),function(n){var r=e.getHierarchicalFacetByName(n),i=e._getHierarchicalFacetSeparator(r),o=e.getHierarchicalRefinement(n);if(!(0===o.length||o[0].split(i).length<2)){var a=t.results[c];p(a.facets,function(t,n){var a=h(e.hierarchicalFacets,{name:r.name}),s=h(this.hierarchicalFacets[a],{attribute:n});if(-1!==s){var u={};if(o.length>0){var c=o[0].split(i)[0];u[c]=this.hierarchicalFacets[a][s].data[c]}this.hierarchicalFacets[a][s].data=x(u,t,this.hierarchicalFacets[a][s].data)}},this),c++}},this),p(e.facetsExcludes,function(e,t){var r=s[t];this.facets[r]={name:t,data:n.facets[t],exhaustive:n.exhaustiveFacetsCount},p(e,function(e){this.facets[r]=this.facets[r]||{name:t},this.facets[r].data=this.facets[r].data||{},this.facets[r].data[e]=0},this)},this),this.hierarchicalFacets=y(this.hierarchicalFacets,O(e)),this.facets=f(this.facets),this.disjunctiveFacets=f(this.disjunctiveFacets),this._state=e}function s(e,t){var n={name:t};if(e._state.isConjunctiveFacet(t)){var r=v(e.facets,n);return r?y(r.data,function(n,r){return{name:r,count:n,isRefined:e._state.isFacetRefined(t,r)}}):[]}if(e._state.isDisjunctiveFacet(t)){var i=v(e.disjunctiveFacets,n);return i?y(i.data,function(n,r){return{name:r,count:n,isRefined:e._state.isDisjunctiveFacetRefined(t,r)}}):[]}return e._state.isHierarchicalFacet(t)?v(e.hierarchicalFacets,n):void 0}function u(e,t){if(!t.data||0===t.data.length)return t;var n=y(t.data,C(u,e)),r=e(n),i=w({},t,{data:r});return i}function c(e,t){return t.sort(e)}function l(e,t){var n=v(e,{name:t});return n&&n.stats}var p=n(108),f=n(183),d=n(152),h=n(184),m=n(186),v=n(159),g=n(193),y=n(138),b=n(194),x=n(164),w=n(173),E=n(89),_=n(80),C=n(199),N=n(226),$=n(227),O=n(228);a.prototype.getFacetByName=function(e){var t={name:e};return v(this.facets,t)||v(this.disjunctiveFacets,t)||v(this.hierarchicalFacets,t)},a.DEFAULT_SORT=["isRefined:desc","count:desc","name:asc"],a.prototype.getFacetValues=function(e,t){var n=s(this,e);if(!n)throw new Error(e+" is not a retrieved facet.");var r=x({},t,{sortBy:a.DEFAULT_SORT});if(E(r.sortBy)){var i=$(r.sortBy);return E(n)?b(n,i[0],i[1]):u(N(b,i[0],i[1]),n)}if(_(r.sortBy))return E(n)?n.sort(r.sortBy):u(C(c,r.sortBy),n);throw new Error("options.sortBy is optional but if defined it must be either an array of string (predicates) or a sorting function")},a.prototype.getFacetStats=function(e){if(this._state.isConjunctiveFacet(e))return l(this.facets,e);if(this._state.isDisjunctiveFacet(e))return l(this.disjunctiveFacets,e);throw new Error(e+" is not present in `facets` or `disjunctiveFacets`")},e.exports=a},function(e){function t(e){for(var t=-1,n=e?e.length:0,r=-1,i=[];++t<n;){var o=e[t];o&&(i[++r]=o)}return i}e.exports=t},function(e,t,n){var r=n(185),i=r();e.exports=i},function(e,t,n){function r(e){return function(t,n,r){return t&&t.length?(n=i(n,r,3),o(t,n,e)):-1}}var i=n(115),o=n(162);e.exports=r},function(e,t,n){e.exports=n(187)},function(e,t,n){function r(e,t,n){return n&&u(e,t,n)&&(t=void 0),t=o(t,n,3),1==t.length?i(s(e)?e:c(e),t):a(e,t)}var i=n(188),o=n(115),a=n(189),s=n(89),u=n(170),c=n(190);e.exports=r},function(e){function t(e,t){for(var n=e.length,r=0;n--;)r+=+t(e[n])||0;return r}e.exports=t},function(e,t,n){function r(e,t){var n=0;return i(e,function(e,r,i){n+=+t(e,r,i)||0}),n}var i=n(110);e.exports=r},function(e,t,n){function r(e){return null==e?[]:i(e)?o(e)?e:Object(e):a(e)}var i=n(83),o=n(81),a=n(191);e.exports=r},function(e,t,n){function r(e){return i(e,o(e))}var i=n(192),o=n(77);e.exports=r},function(e){function t(e,t){for(var n=-1,r=t.length,i=Array(r);++n<r;)i[n]=e[t[n]];return i}e.exports=t},function(e,t,n){function r(e,t,n,r){var f=e?o(e):0;return u(f)||(e=l(e),f=e.length),n="number"!=typeof n||r&&s(t,n,r)?0:0>n?p(f+n,0):n||0,"string"==typeof e||!a(e)&&c(e)?f>=n&&e.indexOf(t,n)>-1:!!f&&i(e,t,n)>-1}var i=n(93),o=n(84),a=n(89),s=n(170),u=n(86),c=n(156),l=n(191),p=Math.max;e.exports=r},function(e,t,n){function r(e,t,n,r){return null==e?[]:(r&&a(t,n,r)&&(n=void 0),o(t)||(t=null==t?[]:[t]),o(n)||(n=null==n?[]:[n]),i(e,t,n))}var i=n(195),o=n(89),a=n(170);e.exports=r},function(e,t,n){function r(e,t,n){var r=-1;t=i(t,function(e){return o(e)});var c=a(e,function(e){var n=i(t,function(t){return t(e)});return{criteria:n,index:++r,value:e}});return s(c,function(e,t){return u(e,t,n)})}var i=n(139),o=n(115),a=n(140),s=n(196),u=n(197);e.exports=r},function(e){function t(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}e.exports=t},function(e,t,n){function r(e,t,n){for(var r=-1,o=e.criteria,a=t.criteria,s=o.length,u=n.length;++r<s;){var c=i(o[r],a[r]);if(c){if(r>=u)return c;var l=n[r];return c*("asc"===l||l===!0?1:-1)}}return e.index-t.index}var i=n(198);e.exports=r},function(e){function t(e,t){if(e!==t){var n=null===e,r=void 0===e,i=e===e,o=null===t,a=void 0===t,s=t===t;if(e>t&&!o||!i||n&&!a&&s||r&&s)return 1;if(t>e&&!n||!s||o&&!r&&i||a&&i)return-1}return 0}e.exports=t},function(e,t,n){var r=n(200),i=32,o=r(i);o.placeholder={},e.exports=o},function(e,t,n){function r(e){var t=a(function(n,r){var a=o(r,t.placeholder);return i(n,e,void 0,r,a)});return t}var i=n(201),o=n(221),a=n(99);e.exports=r},function(e,t,n){function r(e,t,n,r,g,y,b,x){var w=t&f;if(!w&&"function"!=typeof e)throw new TypeError(m);var E=r?r.length:0;if(E||(t&=~(d|h),r=g=void 0),E-=g?g.length:0,t&h){var _=r,C=g;r=g=void 0}var N=w?void 0:u(e),$=[e,t,n,r,g,_,C,y,b,x];if(N&&(c($,N),t=$[1],x=$[9]),$[9]=null==x?w?0:e.length:v(x-E,0)||0,t==p)var O=o($[0],$[2]);else O=t!=d&&t!=(p|d)||$[4].length?a.apply(void 0,$):s.apply(void 0,$);var T=N?i:l;return T(O,$)}var i=n(202),o=n(204),a=n(207),s=n(224),u=n(213),c=n(225),l=n(222),p=1,f=2,d=32,h=64,m="Expected a function",v=Math.max;e.exports=r},function(e,t,n){var r=n(107),i=n(203),o=i?function(e,t){return i.set(e,t),e}:r;e.exports=o},function(e,t,n){(function(t){var r=n(78),i=r(t,"WeakMap"),o=i&&new i;e.exports=o}).call(t,function(){return this}())},function(e,t,n){(function(t){function r(e,n){function r(){var i=this&&this!==t&&this instanceof r?o:e;return i.apply(n,arguments)}var o=i(e);return r}var i=n(205);e.exports=r}).call(t,function(){return this}())},function(e,t,n){function r(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=i(e.prototype),r=e.apply(n,t);return o(r)?r:n}}var i=n(206),o=n(81);e.exports=r},function(e,t,n){var r=n(81),i=function(){function e(){}return function(t){if(r(t)){e.prototype=t;var n=new e;e.prototype=void 0}return n||{}}}();e.exports=i},function(e,t,n){(function(t){function r(e,n,w,E,_,C,N,$,O,T){function P(){for(var h=arguments.length,m=h,v=Array(h);m--;)v[m]=arguments[m];if(E&&(v=o(v,E,_)),C&&(v=a(v,C,N)),k||j){var b=P.placeholder,M=l(v,b);if(h-=M.length,T>h){var F=$?i($):void 0,L=x(T-h,0),V=k?M:void 0,U=k?void 0:M,H=k?v:void 0,q=k?void 0:v;n|=k?g:y,n&=~(k?y:g),A||(n&=~(f|d));var B=[e,n,w,H,V,q,U,F,O,L],W=r.apply(void 0,B);return u(e)&&p(W,B),W.placeholder=b,W}}var z=D?w:this,K=R?z[e]:e;return $&&(v=c(v,$)),S&&O<v.length&&(v.length=O),this&&this!==t&&this instanceof P&&(K=I||s(e)),K.apply(z,v)}var S=n&b,D=n&f,R=n&d,k=n&m,A=n&h,j=n&v,I=R?void 0:s(e);return P}var i=n(176),o=n(208),a=n(209),s=n(205),u=n(210),c=n(220),l=n(221),p=n(222),f=1,d=2,h=4,m=8,v=16,g=32,y=64,b=128,x=Math.max;e.exports=r}).call(t,function(){return this}())},function(e){function t(e,t,r){for(var i=r.length,o=-1,a=n(e.length-i,0),s=-1,u=t.length,c=Array(u+a);++s<u;)c[s]=t[s];for(;++o<i;)c[r[o]]=e[o];for(;a--;)c[s++]=e[o++];return c}var n=Math.max;e.exports=t},function(e){function t(e,t,r){for(var i=-1,o=r.length,a=-1,s=n(e.length-o,0),u=-1,c=t.length,l=Array(s+c);++a<s;)l[a]=e[a];for(var p=a;++u<c;)l[p+u]=t[u];for(;++i<o;)l[p+r[i]]=e[a++];return l}var n=Math.max;e.exports=t},function(e,t,n){function r(e){var t=a(e),n=s[t];if("function"!=typeof n||!(t in i.prototype))return!1;if(e===n)return!0;var r=o(n);return!!r&&e===r[0]}var i=n(211),o=n(213),a=n(215),s=n(217);e.exports=r},function(e,t,n){function r(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=a,this.__views__=[]}var i=n(206),o=n(212),a=Number.POSITIVE_INFINITY;r.prototype=i(o.prototype),r.prototype.constructor=r,e.exports=r},function(e){function t(){}e.exports=t},function(e,t,n){var r=n(203),i=n(214),o=r?function(e){return r.get(e)}:i;e.exports=o},function(e){function t(){}e.exports=t},function(e,t,n){function r(e){for(var t=e.name+"",n=i[t],r=n?n.length:0;r--;){var o=n[r],a=o.func;if(null==a||a==e)return o.name}return t}var i=n(216);e.exports=r},function(e){var t={};e.exports=t},function(e,t,n){function r(e){if(u(e)&&!s(e)&&!(e instanceof i)){if(e instanceof o)return e;if(p.call(e,"__chain__")&&p.call(e,"__wrapped__"))return c(e)}return new o(e)}var i=n(211),o=n(218),a=n(212),s=n(89),u=n(82),c=n(219),l=Object.prototype,p=l.hasOwnProperty;r.prototype=a.prototype,e.exports=r},function(e,t,n){function r(e,t,n){this.__wrapped__=e,this.__actions__=n||[],this.__chain__=!!t}var i=n(206),o=n(212);r.prototype=i(o.prototype),r.prototype.constructor=r,e.exports=r},function(e,t,n){function r(e){return e instanceof i?e.clone():new o(e.__wrapped__,e.__chain__,a(e.__actions__))}var i=n(211),o=n(218),a=n(176);e.exports=r},function(e,t,n){function r(e,t){for(var n=e.length,r=a(t.length,n),s=i(e);r--;){var u=t[r];e[r]=o(u,n)?s[u]:void 0}return e}var i=n(176),o=n(90),a=Math.min;e.exports=r},function(e){function t(e,t){for(var r=-1,i=e.length,o=-1,a=[];++r<i;)e[r]===t&&(e[r]=n,a[++o]=r);return a}var n="__lodash_placeholder__";e.exports=t},function(e,t,n){var r=n(202),i=n(223),o=150,a=16,s=function(){var e=0,t=0;return function(n,s){var u=i(),c=a-(u-t);if(t=u,c>0){if(++e>=o)return n}else e=0;return r(n,s)}}();e.exports=s},function(e,t,n){var r=n(78),i=r(Date,"now"),o=i||function(){return(new Date).getTime()};e.exports=o},function(e,t,n){(function(t){function r(e,n,r,a){function s(){for(var n=-1,i=arguments.length,o=-1,l=a.length,p=Array(l+i);++o<l;)p[o]=a[o];for(;i--;)p[o++]=arguments[++n];var f=this&&this!==t&&this instanceof s?c:e;return f.apply(u?r:this,p)}var u=n&o,c=i(e);return s}var i=n(205),o=1;e.exports=r}).call(t,function(){return this}())},function(e,t,n){function r(e,t){var n=e[1],r=t[1],m=n|r,v=p>m,g=r==p&&n==l||r==p&&n==f&&e[7].length<=t[8]||r==(p|f)&&n==l;if(!v&&!g)return e;r&u&&(e[2]=t[2],m|=n&u?0:c);var y=t[3];if(y){var b=e[3];e[3]=b?o(b,y,t[4]):i(y),e[4]=b?s(e[3],d):i(t[4])}return y=t[5],y&&(b=e[5],e[5]=b?a(b,y,t[6]):i(y),e[6]=b?s(e[5],d):i(t[6])),y=t[7],y&&(e[7]=i(y)),r&p&&(e[8]=null==e[8]?t[8]:h(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=m,e}var i=n(176),o=n(208),a=n(209),s=n(221),u=1,c=4,l=8,p=128,f=256,d="__lodash_placeholder__",h=Math.min;e.exports=r},function(e,t,n){var r=n(200),i=64,o=r(i);o.placeholder={},e.exports=o},function(e,t,n){"use strict";var r=n(141);e.exports=function(e){return r(e,function(e,t){var n=t.split(":");return e[0].push(n[0]),e[1].push(n[1]),e},[[],[]])}},function(e,t,n){"use strict";function r(e){return function(t,n){var r=e.hierarchicalFacets[n],o=e.hierarchicalFacetsRefinements[r.name]&&e.hierarchicalFacetsRefinements[r.name][0]||"",a=e._getHierarchicalFacetSeparator(r),s=e._getHierarchicalRootPath(r),u=e._getHierarchicalShowParentLevel(r),l=h(e._getHierarchicalFacetSortBy(r)),p=i(l,a,s,u,o),f=t;return s&&(f=t.slice(s.split(a).length)),c(f,p,{name:e.hierarchicalFacets[n].name,count:null,isRefined:!0,path:null,data:null})}}function i(e,t,n,r,i){return function(s,c,p){var h=s;if(p>0){var m=0;for(h=s;p>m;)h=h&&f(h.data,{isRefined:!0}),m++}if(h){var v=o(h.path||n,i,t,n,r);h.data=l(u(d(c.data,v),a(t,i)),e[0],e[1])}return s}}function o(e,t,n,r,i){return function(o,a){return!r||0===a.indexOf(r)&&r!==a?!r&&-1===a.indexOf(n)||r&&a.split(n).length-r.split(n).length===1||-1===a.indexOf(n)&&-1===t.indexOf(n)||0===t.indexOf(a)||0===a.indexOf(e+n)&&(i||0===a.indexOf(t)):!1}}function a(e,t){return function(n,r){return{name:p(s(r.split(e))),path:r,count:n,isRefined:t===r||0===t.indexOf(r+e),data:null}}}e.exports=r;var s=n(132),u=n(138),c=n(141),l=n(194),p=n(229),f=n(159),d=n(235),h=n(227)},function(e,t,n){function r(e,t,n){var r=e;return(e=i(e))?(n?s(r,t,n):null==t)?e.slice(u(e),c(e)+1):(t+="",e.slice(o(e,t),a(e,t)+1)):e}var i=n(134),o=n(230),a=n(231),s=n(170),u=n(232),c=n(234);e.exports=r},function(e){function t(e,t){for(var n=-1,r=e.length;++n<r&&t.indexOf(e.charAt(n))>-1;);return n}e.exports=t},function(e){function t(e,t){for(var n=e.length;n--&&t.indexOf(e.charAt(n))>-1;);return n}e.exports=t},function(e,t,n){function r(e){for(var t=-1,n=e.length;++t<n&&i(e.charCodeAt(t)););return t}var i=n(233);e.exports=r},function(e){function t(e){return 160>=e&&e>=9&&13>=e||32==e||160==e||5760==e||6158==e||e>=8192&&(8202>=e||8232==e||8233==e||8239==e||8287==e||12288==e||65279==e)}e.exports=t},function(e,t,n){function r(e){for(var t=e.length;t--&&i(e.charCodeAt(t)););return t}var i=n(233);e.exports=r},function(e,t,n){var r=n(147),i=n(106),o=n(149),a=n(150),s=n(99),u=s(function(e,t){return null==e?{}:"function"==typeof t[0]?a(e,i(t[0],t[1],3)):o(e,r(t))});e.exports=u},function(e,t,n){"use strict";var r=n(108),i=n(138),o=n(141),a=n(173),s=n(89),u={_getQueries:function(e,t){var n=[];return n.push({indexName:e,params:this._getHitsSearchParams(t)}),r(t.getRefinedDisjunctiveFacets(),function(r){n.push({indexName:e,params:this._getDisjunctiveFacetSearchParams(t,r)})},this),r(t.getRefinedHierarchicalFacets(),function(r){var i=t.getHierarchicalFacetByName(r),o=t.getHierarchicalRefinement(r);o.length>0&&o[0].split(t._getHierarchicalFacetSeparator(i)).length>1&&n.push({indexName:e,params:this._getDisjunctiveFacetSearchParams(t,r,!0)})},this),n},_getHitsSearchParams:function(e){var t=e.facets.concat(e.disjunctiveFacets).concat(this._getHitsHierarchicalFacetsAttributes(e)),n=this._getFacetFilters(e),r=this._getNumericFilters(e),i=this._getTagFilters(e),o={facets:t,tagFilters:i};return(e.distinct===!0||e.distinct===!1)&&(o.distinct=e.distinct),n.length>0&&(o.facetFilters=n),r.length>0&&(o.numericFilters=r),a(e.getQueryParams(),o)},_getDisjunctiveFacetSearchParams:function(e,t,n){var r=this._getFacetFilters(e,t,n),i=this._getNumericFilters(e,t),o=this._getTagFilters(e),s={hitsPerPage:1,page:0,attributesToRetrieve:[],attributesToHighlight:[],attributesToSnippet:[],tagFilters:o},u=e.getHierarchicalFacetByName(t);return s.facets=u?this._getDisjunctiveHierarchicalFacetAttribute(e,u,n):t,(e.distinct===!0||e.distinct===!1)&&(s.distinct=e.distinct),i.length>0&&(s.numericFilters=i),r.length>0&&(s.facetFilters=r),a(e.getQueryParams(),s)},_getNumericFilters:function(e,t){if(e.numericFilters)return e.numericFilters;var n=[];return r(e.numericRefinements,function(e,o){r(e,function(e,a){t!==o&&r(e,function(e){if(s(e)){var t=i(e,function(e){return o+a+e});n.push(t)}else n.push(o+a+e)})})}),n},_getTagFilters:function(e){return e.tagFilters?e.tagFilters:e.tagRefinements.join(",")},_getFacetFilters:function(e,t,n){var i=[];return r(e.facetsRefinements,function(e,t){r(e,function(e){i.push(t+":"+e)})}),r(e.facetsExcludes,function(e,t){r(e,function(e){i.push(t+":-"+e)})}),r(e.disjunctiveFacetsRefinements,function(e,n){if(n!==t&&e&&0!==e.length){var o=[];r(e,function(e){o.push(n+":"+e)}),i.push(o)}}),r(e.hierarchicalFacetsRefinements,function(r,o){var a=r[0];if(void 0!==a){var s,u,c=e.getHierarchicalFacetByName(o),l=e._getHierarchicalFacetSeparator(c),p=e._getHierarchicalRootPath(c);if(t===o){if(-1===a.indexOf(l)||!p&&n===!0||p&&p.split(l).length===a.split(l).length)return;p?(u=p.split(l).length-1,a=p):(u=a.split(l).length-2,a=a.slice(0,a.lastIndexOf(l))),s=c.attributes[u]}else u=a.split(l).length-1,s=c.attributes[u];s&&i.push([s+":"+a])}}),i},_getHitsHierarchicalFacetsAttributes:function(e){var t=[];return o(e.hierarchicalFacets,function(t,n){var r=e.getHierarchicalRefinement(n.name)[0];if(!r)return t.push(n.attributes[0]),t;var i=r.split(e._getHierarchicalFacetSeparator(n)).length,o=n.attributes.slice(0,i+1);return t.concat(o)},t)},_getDisjunctiveHierarchicalFacetAttribute:function(e,t,n){var r=e._getHierarchicalFacetSeparator(t);if(n===!0){var i=e._getHierarchicalRootPath(t),o=0;return i&&(o=i.split(r).length),[t.attributes[o]]}var a=e.getHierarchicalRefinement(t.name)[0]||"",s=a.split(r).length-1;return t.attributes.slice(0,s+1)}};e.exports=u},function(e,t,n){(function(e,r){function i(e,n){var r={seen:[],stylize:a};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),m(n)?r.showHidden=n:n&&t._extend(r,n),w(r.showHidden)&&(r.showHidden=!1),w(r.depth)&&(r.depth=2),w(r.colors)&&(r.colors=!1),w(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=o),u(r,e,r.depth)}function o(e,t){var n=i.styles[t];return n?"["+i.colors[n][0]+"m"+e+"["+i.colors[n][1]+"m":e}function a(e){return e}function s(e){var t={};return e.forEach(function(e){t[e]=!0}),t}function u(e,n,r){if(e.customInspect&&n&&$(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var i=n.inspect(r,e);return b(i)||(i=u(e,i,r)),i}var o=c(e,n);if(o)return o;var a=Object.keys(n),m=s(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),N(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return l(n);if(0===a.length){if($(n)){var v=n.name?": "+n.name:"";return e.stylize("[Function"+v+"]","special")}if(E(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(C(n))return e.stylize(Date.prototype.toString.call(n),"date");if(N(n))return l(n)}var g="",y=!1,x=["{","}"];if(h(n)&&(y=!0,x=["[","]"]),$(n)){var w=n.name?": "+n.name:"";g=" [Function"+w+"]"}if(E(n)&&(g=" "+RegExp.prototype.toString.call(n)),C(n)&&(g=" "+Date.prototype.toUTCString.call(n)),N(n)&&(g=" "+l(n)),0===a.length&&(!y||0==n.length))return x[0]+g+x[1];if(0>r)return E(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special");e.seen.push(n);var _;return _=y?p(e,n,r,m,a):a.map(function(t){return f(e,n,r,m,t,y)}),e.seen.pop(),d(_,g,x)}function c(e,t){if(w(t))return e.stylize("undefined","undefined");if(b(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return y(t)?e.stylize(""+t,"number"):m(t)?e.stylize(""+t,"boolean"):v(t)?e.stylize("null","null"):void 0}function l(e){return"["+Error.prototype.toString.call(e)+"]"}function p(e,t,n,r,i){for(var o=[],a=0,s=t.length;s>a;++a)o.push(D(t,String(a))?f(e,t,n,r,String(a),!0):"");return i.forEach(function(i){i.match(/^\d+$/)||o.push(f(e,t,n,r,i,!0))}),o}function f(e,t,n,r,i,o){var a,s,c;if(c=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},c.get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),D(r,i)||(a="["+i+"]"),s||(e.seen.indexOf(c.value)<0?(s=v(n)?u(e,c.value,null):u(e,c.value,n-1),s.indexOf("\n")>-1&&(s=o?s.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+s.split("\n").map(function(e){return" "+e}).join("\n"))):s=e.stylize("[Circular]","special")),w(a)){if(o&&i.match(/^\d+$/))return s;a=JSON.stringify(""+i),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function d(e,t,n){var r=0,i=e.reduce(function(e,t){return r++,t.indexOf("\n")>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function h(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function v(e){return null===e}function g(e){return null==e}function y(e){return"number"==typeof e}function b(e){return"string"==typeof e}function x(e){return"symbol"==typeof e}function w(e){return void 0===e}function E(e){return _(e)&&"[object RegExp]"===T(e)}function _(e){return"object"==typeof e&&null!==e}function C(e){return _(e)&&"[object Date]"===T(e)}function N(e){return _(e)&&("[object Error]"===T(e)||e instanceof Error)}function $(e){return"function"==typeof e}function O(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function T(e){return Object.prototype.toString.call(e)}function P(e){return 10>e?"0"+e.toString(10):e.toString(10)}function S(){var e=new Date,t=[P(e.getHours()),P(e.getMinutes()),P(e.getSeconds())].join(":");return[e.getDate(),j[e.getMonth()],t].join(" ")}function D(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var R=/%[sdj%]/g;t.format=function(e){if(!b(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(i(arguments[n]));return t.join(" ")}for(var n=1,r=arguments,o=r.length,a=String(e).replace(R,function(e){if("%%"===e)return"%";if(n>=o)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(t){return"[Circular]"}default:return e}}),s=r[n];o>n;s=r[++n])a+=v(s)||!_(s)?" "+s:" "+i(s);return a},t.deprecate=function(n,i){function o(){if(!a){if(r.throwDeprecation)throw new Error(i);r.traceDeprecation?console.trace(i):console.error(i),a=!0}return n.apply(this,arguments)}if(w(e.process))return function(){return t.deprecate(n,i).apply(this,arguments)};if(r.noDeprecation===!0)return n;var a=!1;return o};var k,A={};t.debuglog=function(e){if(w(k)&&(k=r.env.NODE_DEBUG||""),e=e.toUpperCase(),!A[e])if(new RegExp("\\b"+e+"\\b","i").test(k)){var n=r.pid;A[e]=function(){var r=t.format.apply(t,arguments);console.error("%s %d: %s",e,n,r)}}else A[e]=function(){};return A[e]},t.inspect=i,i.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},i.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=h,t.isBoolean=m,t.isNull=v,t.isNullOrUndefined=g,t.isNumber=y,t.isString=b,t.isSymbol=x,t.isUndefined=w,t.isRegExp=E,t.isObject=_,t.isDate=C,t.isError=N,t.isFunction=$,t.isPrimitive=O,t.isBuffer=n(238);var j=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];t.log=function(){console.log("%s - %s",S(),t.format.apply(t,arguments))},t.inherits=n(239),t._extend=function(e,t){if(!t||!_(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e}}).call(t,function(){return this}(),n(8))},function(e){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},function(e){e.exports="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e){function t(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function n(e){return"function"==typeof e}function r(e){return"number"==typeof e}function i(e){return"object"==typeof e&&null!==e}function o(e){return void 0===e}e.exports=t,t.EventEmitter=t,t.prototype._events=void 0,t.prototype._maxListeners=void 0,t.defaultMaxListeners=10,t.prototype.setMaxListeners=function(e){if(!r(e)||0>e||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},t.prototype.emit=function(e){var t,r,a,s,u,c;if(this._events||(this._events={}),"error"===e&&(!this._events.error||i(this._events.error)&&!this._events.error.length)){if(t=arguments[1],t instanceof Error)throw t;throw TypeError('Uncaught, unspecified "error" event.')}if(r=this._events[e],o(r))return!1;if(n(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:s=Array.prototype.slice.call(arguments,1),r.apply(this,s)}else if(i(r))for(s=Array.prototype.slice.call(arguments,1),c=r.slice(),a=c.length,u=0;a>u;u++)c[u].apply(this,s);return!0},t.prototype.addListener=function(e,r){var a;if(!n(r))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,n(r.listener)?r.listener:r),this._events[e]?i(this._events[e])?this._events[e].push(r):this._events[e]=[this._events[e],r]:this._events[e]=r,i(this._events[e])&&!this._events[e].warned&&(a=o(this._maxListeners)?t.defaultMaxListeners:this._maxListeners,a&&a>0&&this._events[e].length>a&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())),this},t.prototype.on=t.prototype.addListener,t.prototype.once=function(e,t){function r(){this.removeListener(e,r),i||(i=!0,t.apply(this,arguments))}if(!n(t))throw TypeError("listener must be a function");var i=!1;return r.listener=t,this.on(e,r),this},t.prototype.removeListener=function(e,t){var r,o,a,s;if(!n(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],a=r.length,o=-1,r===t||n(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(i(r)){for(s=a;s-->0;)if(r[s]===t||r[s].listener&&r[s].listener===t){o=s;break}if(0>o)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(o,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},t.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],
11
+ this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],n(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},t.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?n(this._events[e])?[this._events[e]]:this._events[e].slice():[]},t.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(n(t))return 1;if(t)return t.length}return 0},t.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,n){var r=n(201),i=n(221),o=n(99),a=1,s=32,u=o(function(e,t,n){var o=a;if(n.length){var c=i(n,u.placeholder);o|=s}return r(e,o,t,n,c)});u.placeholder={},e.exports=u},function(e,t,n){"use strict";function r(e){return m(e)?d(e,r):v(e)?p(e,r):h(e)?g(e):e}function i(e,t,n){if(null!==e&&(t=t.replace(e,""),n=n.replace(e,"")),-1!==b.indexOf(t)||-1!==b.indexOf(n)){if("q"===t)return-1;if("q"===n)return 1;var r=-1!==y.indexOf(t),i=-1!==y.indexOf(n);if(r&&!i)return 1;if(i&&!r)return-1}return t.localeCompare(n)}var o=n(243),a=n(76),s=n(245),u=n(241),c=n(108),l=n(235),p=n(138),f=n(249),d=n(251),h=n(156),m=n(177),v=n(89),g=n(247).encode,y=["dFR","fR","nR","hFR","tR"],b=o.ENCODED_PARAMETERS;t.getStateFromQueryString=function(e,t){var n=t&&t.prefix||"",r=s.parse(e),i=new RegExp("^"+n),u=f(r,function(e,t){if(n&&i.test(t)){var r=t.replace(i,"");return o.decode(r)}var a=o.decode(t);return a||t}),c=a._parseNumbers(u);return l(c,a.PARAMETERS)},t.getUnrecognizedParametersInQueryString=function(e,t){var n=t&&t.prefix,r={},i=s.parse(e);if(n){var a=new RegExp("^"+n);c(i,function(e,t){a.test(t)||(r[t]=e)})}else c(i,function(e,t){o.decode(t)||(r[t]=e)});return r},t.getQueryStringFromState=function(e,t){var n=t&&t.moreAttributes,a=t&&t.prefix||"",c=r(e),l=f(c,function(e,t){var n=o.encode(t);return a+n}),p=""===a?null:new RegExp("^"+a),d=u(i,null,p);if(n){var h=s.stringify(l,{encode:!1,sort:d}),m=s.stringify(n,{encode:!1});return h?h+"&"+m:m}return s.stringify(l,{encode:!1,sort:d})}},function(e,t,n){"use strict";var r=n(244),i=n(77),o={advancedSyntax:"aS",allowTyposOnNumericTokens:"aTONT",analyticsTags:"aT",analytics:"a",aroundLatLngViaIP:"aLLVIP",aroundLatLng:"aLL",aroundPrecision:"aP",aroundRadius:"aR",attributesToHighlight:"aTH",attributesToRetrieve:"aTR",attributesToSnippet:"aTS",disjunctiveFacetsRefinements:"dFR",disjunctiveFacets:"dF",distinct:"d",facetsExcludes:"fE",facetsRefinements:"fR",facets:"f",getRankingInfo:"gRI",hierarchicalFacetsRefinements:"hFR",hierarchicalFacets:"hF",highlightPostTag:"hPoT",highlightPreTag:"hPrT",hitsPerPage:"hPP",ignorePlurals:"iP",index:"idx",insideBoundingBox:"iBB",insidePolygon:"iPg",length:"l",maxValuesPerFacet:"mVPF",minimumAroundRadius:"mAR",minProximity:"mP",minWordSizefor1Typo:"mWS1T",minWordSizefor2Typos:"mWS2T",numericFilters:"nF",numericRefinements:"nR",offset:"o",optionalWords:"oW",page:"p",queryType:"qT",query:"q",removeWordsIfNoResults:"rWINR",replaceSynonymsInHighlight:"rSIH",restrictSearchableAttributes:"rSA",synonyms:"s",tagFilters:"tF",tagRefinements:"tR",typoTolerance:"tT",optionalTagFilters:"oTF",optionalFacetFilters:"oFF"},a=r(o);e.exports={ENCODED_PARAMETERS:i(a),decode:function(e){return a[e]},encode:function(e){return o[e]}}},function(e,t,n){function r(e,t,n){n&&i(e,t,n)&&(t=void 0);for(var r=-1,a=o(e),u=a.length,c={};++r<u;){var l=a[r],p=e[l];t?s.call(c,p)?c[p].push(l):c[p]=[l]:c[p]=l}return c}var i=n(170),o=n(77),a=Object.prototype,s=a.hasOwnProperty;e.exports=r},function(e,t,n){var r=n(246),i=n(248);e.exports={stringify:r,parse:i}},function(e,t,n){var r=n(247),i={delimiter:"&",arrayPrefixGenerators:{brackets:function(e){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},strictNullHandling:!1,skipNulls:!1,encode:!0};i.stringify=function(e,t,n,o,a,s,u,c){if("function"==typeof u)e=u(t,e);else if(r.isBuffer(e))e=e.toString();else if(e instanceof Date)e=e.toISOString();else if(null===e){if(o)return s?r.encode(t):t;e=""}if("string"==typeof e||"number"==typeof e||"boolean"==typeof e)return s?[r.encode(t)+"="+r.encode(e)]:[t+"="+e];var l=[];if("undefined"==typeof e)return l;var p;if(Array.isArray(u))p=u;else{var f=Object.keys(e);p=c?f.sort(c):f}for(var d=0,h=p.length;h>d;++d){var m=p[d];a&&null===e[m]||(l=l.concat(Array.isArray(e)?i.stringify(e[m],n(t,m),n,o,a,s,u):i.stringify(e[m],t+"["+m+"]",n,o,a,s,u)))}return l},e.exports=function(e,t){t=t||{};var n,r,o="undefined"==typeof t.delimiter?i.delimiter:t.delimiter,a="boolean"==typeof t.strictNullHandling?t.strictNullHandling:i.strictNullHandling,s="boolean"==typeof t.skipNulls?t.skipNulls:i.skipNulls,u="boolean"==typeof t.encode?t.encode:i.encode,c="function"==typeof t.sort?t.sort:null;"function"==typeof t.filter?(r=t.filter,e=r("",e)):Array.isArray(t.filter)&&(n=r=t.filter);var l=[];if("object"!=typeof e||null===e)return"";var p;p=t.arrayFormat in i.arrayPrefixGenerators?t.arrayFormat:"indices"in t?t.indices?"indices":"repeat":"indices";var f=i.arrayPrefixGenerators[p];n||(n=Object.keys(e)),c&&n.sort(c);for(var d=0,h=n.length;h>d;++d){var m=n[d];s&&null===e[m]||(l=l.concat(i.stringify(e[m],m,f,a,s,u,r,c)))}return l.join(o)}},function(e,t){var n={};n.hexTable=new Array(256);for(var r=0;256>r;++r)n.hexTable[r]="%"+((16>r?"0":"")+r.toString(16)).toUpperCase();t.arrayToObject=function(e,t){for(var n=t.plainObjects?Object.create(null):{},r=0,i=e.length;i>r;++r)"undefined"!=typeof e[r]&&(n[r]=e[r]);return n},t.merge=function(e,n,r){if(!n)return e;if("object"!=typeof n)return Array.isArray(e)?e.push(n):"object"==typeof e?e[n]=!0:e=[e,n],e;if("object"!=typeof e)return e=[e].concat(n);Array.isArray(e)&&!Array.isArray(n)&&(e=t.arrayToObject(e,r));for(var i=Object.keys(n),o=0,a=i.length;a>o;++o){var s=i[o],u=n[s];e[s]=Object.prototype.hasOwnProperty.call(e,s)?t.merge(e[s],u,r):u}return e},t.decode=function(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(t){return e}},t.encode=function(e){if(0===e.length)return e;"string"!=typeof e&&(e=""+e);for(var t="",r=0,i=e.length;i>r;++r){var o=e.charCodeAt(r);45===o||46===o||95===o||126===o||o>=48&&57>=o||o>=65&&90>=o||o>=97&&122>=o?t+=e[r]:128>o?t+=n.hexTable[o]:2048>o?t+=n.hexTable[192|o>>6]+n.hexTable[128|63&o]:55296>o||o>=57344?t+=n.hexTable[224|o>>12]+n.hexTable[128|o>>6&63]+n.hexTable[128|63&o]:(++r,o=65536+((1023&o)<<10|1023&e.charCodeAt(r)),t+=n.hexTable[240|o>>18]+n.hexTable[128|o>>12&63]+n.hexTable[128|o>>6&63]+n.hexTable[128|63&o])}return t},t.compact=function(e,n){if("object"!=typeof e||null===e)return e;n=n||[];var r=n.indexOf(e);if(-1!==r)return n[r];if(n.push(e),Array.isArray(e)){for(var i=[],o=0,a=e.length;a>o;++o)"undefined"!=typeof e[o]&&i.push(e[o]);return i}var s=Object.keys(e);for(o=0,a=s.length;a>o;++o){var u=s[o];e[u]=t.compact(e[u],n)}return e},t.isRegExp=function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},t.isBuffer=function(e){return null===e||"undefined"==typeof e?!1:!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}},function(e,t,n){var r=n(247),i={delimiter:"&",depth:5,arrayLimit:20,parameterLimit:1e3,strictNullHandling:!1,plainObjects:!1,allowPrototypes:!1,allowDots:!1};i.parseValues=function(e,t){for(var n={},i=e.split(t.delimiter,t.parameterLimit===1/0?void 0:t.parameterLimit),o=0,a=i.length;a>o;++o){var s=i[o],u=-1===s.indexOf("]=")?s.indexOf("="):s.indexOf("]=")+1;if(-1===u)n[r.decode(s)]="",t.strictNullHandling&&(n[r.decode(s)]=null);else{var c=r.decode(s.slice(0,u)),l=r.decode(s.slice(u+1));n[c]=Object.prototype.hasOwnProperty.call(n,c)?[].concat(n[c]).concat(l):l}}return n},i.parseObject=function(e,t,n){if(!e.length)return t;var r,o=e.shift();if("[]"===o)r=[],r=r.concat(i.parseObject(e,t,n));else{r=n.plainObjects?Object.create(null):{};var a="["===o[0]&&"]"===o[o.length-1]?o.slice(1,o.length-1):o,s=parseInt(a,10),u=""+s;!isNaN(s)&&o!==a&&u===a&&s>=0&&n.parseArrays&&s<=n.arrayLimit?(r=[],r[s]=i.parseObject(e,t,n)):r[a]=i.parseObject(e,t,n)}return r},i.parseKeys=function(e,t,n){if(e){n.allowDots&&(e=e.replace(/\.([^\.\[]+)/g,"[$1]"));var r=/^([^\[\]]*)/,o=/(\[[^\[\]]*\])/g,a=r.exec(e),s=[];if(a[1]){if(!n.plainObjects&&Object.prototype.hasOwnProperty(a[1])&&!n.allowPrototypes)return;s.push(a[1])}for(var u=0;null!==(a=o.exec(e))&&u<n.depth;)++u,(n.plainObjects||!Object.prototype.hasOwnProperty(a[1].replace(/\[|\]/g,""))||n.allowPrototypes)&&s.push(a[1]);return a&&s.push("["+e.slice(a.index)+"]"),i.parseObject(s,t,n)}},e.exports=function(e,t){if(t=t||{},t.delimiter="string"==typeof t.delimiter||r.isRegExp(t.delimiter)?t.delimiter:i.delimiter,t.depth="number"==typeof t.depth?t.depth:i.depth,t.arrayLimit="number"==typeof t.arrayLimit?t.arrayLimit:i.arrayLimit,t.parseArrays=t.parseArrays!==!1,t.allowDots="boolean"==typeof t.allowDots?t.allowDots:i.allowDots,t.plainObjects="boolean"==typeof t.plainObjects?t.plainObjects:i.plainObjects,t.allowPrototypes="boolean"==typeof t.allowPrototypes?t.allowPrototypes:i.allowPrototypes,t.parameterLimit="number"==typeof t.parameterLimit?t.parameterLimit:i.parameterLimit,t.strictNullHandling="boolean"==typeof t.strictNullHandling?t.strictNullHandling:i.strictNullHandling,""===e||null===e||"undefined"==typeof e)return t.plainObjects?Object.create(null):{};for(var n="string"==typeof e?i.parseValues(e,t):e,o=t.plainObjects?Object.create(null):{},a=Object.keys(n),s=0,u=a.length;u>s;++s){var c=a[s],l=i.parseKeys(c,n[c],t);o=r.merge(o,l,t)}return r.compact(o)}},function(e,t,n){var r=n(250),i=r(!0);e.exports=i},function(e,t,n){function r(e){return function(t,n,r){var a={};return n=i(n,r,3),o(t,function(t,r,i){var o=n(t,r,i);r=e?o:r,t=e?t:o,a[r]=t}),a}}var i=n(115),o=n(101);e.exports=r},function(e,t,n){var r=n(250),i=r();e.exports=i},function(e){"use strict";e.exports="2.8.0"},function(e,t,n){"use strict";var r=n(254),i=n(255),o=n(276),a=o(r,i);e.exports=a},function(e){"use strict";function t(e,t){for(var n=-1,r=e.length;++n<r&&t(e[n],n,e)!==!1;);return e}e.exports=t},function(e,t,n){"use strict";var r=n(256),i=n(275),o=i(r);e.exports=o},function(e,t,n){"use strict";function r(e,t){return i(e,t,o)}var i=n(257),o=n(261);e.exports=r},function(e,t,n){"use strict";var r=n(258),i=r();e.exports=i},function(e,t,n){"use strict";function r(e){return function(t,n,r){for(var o=i(t),a=r(t),s=a.length,u=e?s:-1;e?u--:++u<s;){var c=a[u];if(n(o[c],c,o)===!1)break}return t}}var i=n(259);e.exports=r},function(e,t,n){"use strict";function r(e){return i(e)?e:Object(e)}var i=n(260);e.exports=r},function(e){"use strict";function t(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=t},function(e,t,n){"use strict";var r=n(262),i=n(266),o=n(260),a=n(270),s=r(Object,"keys"),u=s?function(e){var t=null==e?void 0:e.constructor;return"function"==typeof t&&t.prototype===e||"function"!=typeof e&&i(e)?a(e):o(e)?s(e):[]}:a;e.exports=u},function(e,t,n){"use strict";function r(e,t){var n=null==e?void 0:e[t];return i(n)?n:void 0}var i=n(263);e.exports=r},function(e,t,n){"use strict";function r(e){return null==e?!1:i(e)?l.test(u.call(e)):o(e)&&a.test(e)}var i=n(264),o=n(265),a=/^\[object .+?Constructor\]$/,s=Object.prototype,u=Function.prototype.toString,c=s.hasOwnProperty,l=RegExp("^"+u.call(c).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=r},function(e,t,n){"use strict";function r(e){return i(e)&&s.call(e)==o}var i=n(260),o="[object Function]",a=Object.prototype,s=a.toString;e.exports=r},function(e){"use strict";function t(e){return!!e&&"object"==typeof e}e.exports=t},function(e,t,n){"use strict";function r(e){return null!=e&&o(i(e))}var i=n(267),o=n(269);e.exports=r},function(e,t,n){"use strict";var r=n(268),i=r("length");e.exports=i},function(e){"use strict";function t(e){return function(t){return null==t?void 0:t[e]}}e.exports=t},function(e){"use strict";function t(e){return"number"==typeof e&&e>-1&&e%1==0&&n>=e}var n=9007199254740991;e.exports=t},function(e,t,n){"use strict";function r(e){for(var t=u(e),n=t.length,r=n&&e.length,c=!!r&&s(r)&&(o(e)||i(e)),p=-1,f=[];++p<n;){var d=t[p];(c&&a(d,r)||l.call(e,d))&&f.push(d)}return f}var i=n(271),o=n(272),a=n(273),s=n(269),u=n(274),c=Object.prototype,l=c.hasOwnProperty;e.exports=r},function(e,t,n){"use strict";function r(e){return o(e)&&i(e)&&s.call(e,"callee")&&!u.call(e,"callee")}var i=n(266),o=n(265),a=Object.prototype,s=a.hasOwnProperty,u=a.propertyIsEnumerable;e.exports=r},function(e,t,n){"use strict";var r=n(262),i=n(269),o=n(265),a="[object Array]",s=Object.prototype,u=s.toString,c=r(Array,"isArray"),l=c||function(e){return o(e)&&i(e.length)&&u.call(e)==a};e.exports=l},function(e){"use strict";function t(e,t){return e="number"==typeof e||n.test(e)?+e:-1,t=null==t?r:t,e>-1&&e%1==0&&t>e}var n=/^\d+$/,r=9007199254740991;e.exports=t},function(e,t,n){"use strict";function r(e){if(null==e)return[];u(e)||(e=Object(e));var t=e.length;t=t&&s(t)&&(o(e)||i(e))&&t||0;for(var n=e.constructor,r=-1,c="function"==typeof n&&n.prototype===e,p=Array(t),f=t>0;++r<t;)p[r]=r+"";for(var d in e)f&&a(d,t)||"constructor"==d&&(c||!l.call(e,d))||p.push(d);return p}var i=n(271),o=n(272),a=n(273),s=n(269),u=n(260),c=Object.prototype,l=c.hasOwnProperty;e.exports=r},function(e,t,n){"use strict";function r(e,t){return function(n,r){var s=n?i(n):0;if(!o(s))return e(n,r);for(var u=t?s:-1,c=a(n);(t?u--:++u<s)&&r(c[u],u,c)!==!1;);return n}}var i=n(267),o=n(269),a=n(259);e.exports=r},function(e,t,n){"use strict";function r(e,t){return function(n,r,a){return"function"==typeof r&&void 0===a&&o(n)?e(n,r):t(n,i(r,a,3))}}var i=n(277),o=n(272);e.exports=r},function(e,t,n){"use strict";function r(e,t,n){if("function"!=typeof e)return i;if(void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,o){return e.call(t,n,r,i,o)};case 5:return function(n,r,i,o,a){return e.call(t,n,r,i,o,a)}}return function(){return e.apply(t,arguments)}}var i=n(278);e.exports=r},function(e){"use strict";function t(e){return e}e.exports=t},function(e,t,n){"use strict";var r=n(280),i=n(288),o=i(r);e.exports=o},function(e,t,n){"use strict";function r(e,t,n,f,d){if(!u(e))return e;var h=s(t)&&(a(t)||l(t)),m=h?void 0:p(t);return i(m||t,function(i,a){if(m&&(a=i,i=t[a]),c(i))f||(f=[]),d||(d=[]),o(e,t,a,r,n,f,d);else{var s=e[a],u=n?n(s,i,a,e,t):void 0,l=void 0===u;l&&(u=i),void 0===u&&(!h||a in e)||!l&&(u===u?u===s:s!==s)||(e[a]=u)}}),e}var i=n(254),o=n(281),a=n(272),s=n(266),u=n(260),c=n(265),l=n(285),p=n(261);e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r,p,f,d){for(var h=f.length,m=t[n];h--;)if(f[h]==m)return void(e[n]=d[h]);var v=e[n],g=p?p(v,m,n,e,t):void 0,y=void 0===g;y&&(g=m,s(m)&&(a(m)||c(m))?g=a(v)?v:s(v)?i(v):[]:u(m)||o(m)?g=o(v)?l(v):u(v)?v:{}:y=!1),f.push(m),d.push(g),y?e[n]=r(g,m,p,f,d):(g===g?g!==v:v===v)&&(e[n]=g)}var i=n(282),o=n(271),a=n(272),s=n(266),u=n(283),c=n(285),l=n(286);e.exports=r},function(e){"use strict";function t(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}e.exports=t},function(e,t,n){"use strict";function r(e){var t;if(!a(e)||l.call(e)!=s||o(e)||!c.call(e,"constructor")&&(t=e.constructor,"function"==typeof t&&!(t instanceof t)))return!1;var n;return i(e,function(e,t){n=t}),void 0===n||c.call(e,n)}var i=n(284),o=n(271),a=n(265),s="[object Object]",u=Object.prototype,c=u.hasOwnProperty,l=u.toString;e.exports=r},function(e,t,n){"use strict";function r(e,t){return i(e,t,o)}var i=n(257),o=n(274);e.exports=r},function(e,t,n){"use strict";function r(e){return o(e)&&i(e.length)&&!!P[D.call(e)]}var i=n(269),o=n(265),a="[object Arguments]",s="[object Array]",u="[object Boolean]",c="[object Date]",l="[object Error]",p="[object Function]",f="[object Map]",d="[object Number]",h="[object Object]",m="[object RegExp]",v="[object Set]",g="[object String]",y="[object WeakMap]",b="[object ArrayBuffer]",x="[object Float32Array]",w="[object Float64Array]",E="[object Int8Array]",_="[object Int16Array]",C="[object Int32Array]",N="[object Uint8Array]",$="[object Uint8ClampedArray]",O="[object Uint16Array]",T="[object Uint32Array]",P={};P[x]=P[w]=P[E]=P[_]=P[C]=P[N]=P[$]=P[O]=P[T]=!0,P[a]=P[s]=P[b]=P[u]=P[c]=P[l]=P[p]=P[f]=P[d]=P[h]=P[m]=P[v]=P[g]=P[y]=!1;var S=Object.prototype,D=S.toString;e.exports=r},function(e,t,n){"use strict";function r(e){return i(e,o(e))}var i=n(287),o=n(274);e.exports=r},function(e){"use strict";function t(e,t,n){n||(n={});for(var r=-1,i=t.length;++r<i;){var o=t[r];n[o]=e[o]}return n}e.exports=t},function(e,t,n){"use strict";function r(e){return a(function(t,n){var r=-1,a=null==t?0:n.length,s=a>2?n[a-2]:void 0,u=a>2?n[2]:void 0,c=a>1?n[a-1]:void 0;for("function"==typeof s?(s=i(s,c,5),a-=2):(s="function"==typeof c?c:void 0,a-=s?1:0),u&&o(n[0],n[1],u)&&(s=3>a?void 0:s,a=1);++r<a;){var l=n[r];l&&e(t,l,s)}return t})}var i=n(277),o=n(289),a=n(290);e.exports=r},function(e,t,n){"use strict";function r(e,t,n){if(!a(n))return!1;var r=typeof t;if("number"==r?i(n)&&o(t,n.length):"string"==r&&t in n){var s=n[t];return e===e?e===s:s!==s}return!1}var i=n(266),o=n(273),a=n(260);e.exports=r},function(e){"use strict";function t(e,t){if("function"!=typeof e)throw new TypeError(n);return t=r(void 0===t?e.length-1:+t||0,0),function(){for(var n=arguments,i=-1,o=r(n.length-t,0),a=Array(o);++i<o;)a[i]=n[t+i];switch(t){case 0:return e.call(this,a);case 1:return e.call(this,n[0],a);case 2:return e.call(this,n[0],n[1],a)}var s=Array(t+1);for(i=-1;++i<t;)s[i]=n[i];return s[t]=a,e.apply(this,s)}}var n="Expected a function",r=Math.max;e.exports=t},function(e,t,n){"use strict";var r=n(292),i=n(294),o=n(290),a=o(function(e){return i(r(e,!1,!0))});e.exports=a},function(e,t,n){"use strict";function r(e,t,n,c){c||(c=[]);for(var l=-1,p=e.length;++l<p;){var f=e[l];u(f)&&s(f)&&(n||a(f)||o(f))?t?r(f,t,n,c):i(c,f):n||(c[c.length]=f)}return c}var i=n(293),o=n(271),a=n(272),s=n(266),u=n(265);e.exports=r},function(e){"use strict";function t(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}e.exports=t},function(e,t,n){"use strict";function r(e,t){var n=-1,r=i,u=e.length,c=!0,l=c&&u>=s,p=l?a():null,f=[];p?(r=o,c=!1):(l=!1,p=t?[]:f);e:for(;++n<u;){var d=e[n],h=t?t(d,n,e):d;if(c&&d===d){for(var m=p.length;m--;)if(p[m]===h)continue e;t&&p.push(h),f.push(d)}else r(p,h,0)<0&&((t||l)&&p.push(h),f.push(d))}return f}var i=n(295),o=n(297),a=n(298),s=200;e.exports=r},function(e,t,n){"use strict";function r(e,t,n){if(t!==t)return i(e,n);for(var r=n-1,o=e.length;++r<o;)if(e[r]===t)return r;return-1}var i=n(296);e.exports=r},function(e){"use strict";function t(e,t,n){for(var r=e.length,i=t+(n?0:-1);n?i--:++i<r;){var o=e[i];if(o!==o)return i}return-1}e.exports=t},function(e,t,n){"use strict";function r(e,t){var n=e.data,r="string"==typeof t||i(t)?n.set.has(t):n.hash[t];return r?0:-1}var i=n(260);e.exports=r},function(e,t,n){(function(t){"use strict";function r(e){return s&&a?new i(e):null}var i=n(299),o=n(262),a=o(t,"Set"),s=o(Object,"create");e.exports=r}).call(t,function(){return this}())},function(e,t,n){(function(t){"use strict";function r(e){var t=e?e.length:0;for(this.data={hash:s(null),set:new a};t--;)this.push(e[t])}var i=n(300),o=n(262),a=o(t,"Set"),s=o(Object,"create");r.prototype.push=i,e.exports=r}).call(t,function(){return this}())},function(e,t,n){"use strict";function r(e){var t=this.data;"string"==typeof e||i(e)?t.set.add(e):t.hash[e]=!0}var i=n(260);e.exports=r},function(e){"use strict";function t(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function n(e){return"function"==typeof e}function r(e){return"number"==typeof e}function i(e){return"object"==typeof e&&null!==e}function o(e){return void 0===e}e.exports=t,t.EventEmitter=t,t.prototype._events=void 0,t.prototype._maxListeners=void 0,t.defaultMaxListeners=10,t.prototype.setMaxListeners=function(e){if(!r(e)||0>e||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},t.prototype.emit=function(e){var t,r,a,s,u,c;if(this._events||(this._events={}),"error"===e&&(!this._events.error||i(this._events.error)&&!this._events.error.length)){if(t=arguments[1],t instanceof Error)throw t;throw TypeError('Uncaught, unspecified "error" event.')}if(r=this._events[e],o(r))return!1;if(n(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:s=Array.prototype.slice.call(arguments,1),r.apply(this,s)}else if(i(r))for(s=Array.prototype.slice.call(arguments,1),c=r.slice(),a=c.length,u=0;a>u;u++)c[u].apply(this,s);return!0},t.prototype.addListener=function(e,r){var a;if(!n(r))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,n(r.listener)?r.listener:r),this._events[e]?i(this._events[e])?this._events[e].push(r):this._events[e]=[this._events[e],r]:this._events[e]=r,i(this._events[e])&&!this._events[e].warned&&(a=o(this._maxListeners)?t.defaultMaxListeners:this._maxListeners,a&&a>0&&this._events[e].length>a&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())),this},t.prototype.on=t.prototype.addListener,t.prototype.once=function(e,t){function r(){this.removeListener(e,r),i||(i=!0,t.apply(this,arguments))}if(!n(t))throw TypeError("listener must be a function");var i=!1;return r.listener=t,this.on(e,r),this},t.prototype.removeListener=function(e,t){var r,o,a,s;if(!n(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],a=r.length,o=-1,r===t||n(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(i(r)){for(s=a;s-->0;)if(r[s]===t||r[s].listener&&r[s].listener===t){o=s;break}if(0>o)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(o,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},t.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],n(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},t.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?n(this._events[e])?[this._events[e]]:this._events[e].slice():[]},t.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(n(t))return 1;if(t)return t.length}return 0},t.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e){var t=e;return function(){var e=Date.now(),n=e-t;return t=e,n}}function o(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.useHash||!1,n=t?f:d;return new h(n,e)}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=n(74),u=s.AlgoliaSearchHelper,c=n(303).split(".")[0],l=n(304),p=n(279),f={character:"#",onpopstate:function(e){window.addEventListener("hashchange",e)},pushState:function(e){window.location.assign(this.createURL(e))},replaceState:function(e){window.location.replace(this.createURL(e))},createURL:function(e){return document.location.search+this.character+e},readUrl:function(){return window.location.hash.slice(1)}},d={character:"?",onpopstate:function(e){window.addEventListener("popstate",e)},pushState:function(e){window.history.pushState(null,"",this.createURL(e))},replaceState:function(e){window.history.replaceState(null,"",this.createURL(e))},createURL:function(e){return this.character+e+document.location.hash},readUrl:function(){return window.location.search.slice(1)}},h=function(){function e(t,n){r(this,e),this.urlUtils=t,this.originalConfig=null,this.timer=i(Date.now()),this.threshold=n.threshold||700,this.trackedParameters=n.trackedParameters||["query","attribute:*","index","page","hitsPerPage"]}return a(e,[{key:"getConfiguration",value:function(e){this.originalConfig=e;var t=this.urlUtils.readUrl(),n=u.getConfigurationFromQueryString(t);return n}},{key:"onPopState",value:function(e){var t=this.urlUtils.readUrl(),n=u.getConfigurationFromQueryString(t),r=p({},this.originalConfig,n),i=e.getState(this.trackedParameters),o=p({},this.originalConfig,i);l(o,r)||e.setState(r).search()}},{key:"init",value:function(e){var t=e.helper;this.urlUtils.onpopstate(this.onPopState.bind(this,t))}},{key:"render",value:function(e){var t=e.helper,n=t.getState(this.trackedParameters),r=this.urlUtils.readUrl(),i=u.getConfigurationFromQueryString(r);if(!l(n,i)){var o=u.getForeignConfigurationInQueryString(r);o.is_v=c;var a=t.getStateAsQueryString({filters:this.trackedParameters,moreAttributes:o});this.timer()<this.threshold?this.urlUtils.replaceState(a):this.urlUtils.pushState(a)}}},{key:"createURL",value:function(e){var t=this.urlUtils.readUrl(),n=e.filter(this.trackedParameters),r=s.url.getUnrecognizedParametersInQueryString(t);return r.is_v=c,this.urlUtils.createURL(s.url.getQueryStringFromState(n))}}]),e}();e.exports=o},function(e){"use strict";e.exports="1.2.0-beta.0"},function(e,t,n){"use strict";function r(e,t,n,r){n="function"==typeof n?o(n,r,3):void 0;var a=n?n(e,t):void 0;return void 0===a?i(e,t,n):!!a}var i=n(305),o=n(277);e.exports=r},function(e,t,n){"use strict";function r(e,t,n,s,u,c){return e===t?!0:null==e||null==t||!o(e)&&!a(t)?e!==e&&t!==t:i(e,t,r,n,s,u,c)}var i=n(306),o=n(260),a=n(265);e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r,f,m,v){var g=s(e),y=s(t),b=l,x=l;g||(b=h.call(e),b==c?b=p:b!=p&&(g=u(e))),y||(x=h.call(t),x==c?x=p:x!=p&&(y=u(t)));var w=b==p,E=x==p,_=b==x;if(_&&!g&&!w)return o(e,t,b);if(!f){var C=w&&d.call(e,"__wrapped__"),N=E&&d.call(t,"__wrapped__");if(C||N)return n(C?e.value():e,N?t.value():t,r,f,m,v)}if(!_)return!1;m||(m=[]),v||(v=[]);for(var $=m.length;$--;)if(m[$]==e)return v[$]==t;m.push(e),v.push(t);var O=(g?i:a)(e,t,n,r,f,m,v);return m.pop(),v.pop(),O}var i=n(307),o=n(309),a=n(310),s=n(272),u=n(285),c="[object Arguments]",l="[object Array]",p="[object Object]",f=Object.prototype,d=f.hasOwnProperty,h=f.toString;e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r,o,a,s){var u=-1,c=e.length,l=t.length;if(c!=l&&!(o&&l>c))return!1;for(;++u<c;){var p=e[u],f=t[u],d=r?r(o?f:p,o?p:f,u):void 0;if(void 0!==d){if(d)continue;return!1}if(o){if(!i(t,function(e){return p===e||n(p,e,r,o,a,s)}))return!1}else if(p!==f&&!n(p,f,r,o,a,s))return!1}return!0}var i=n(308);e.exports=r},function(e){"use strict";function t(e,t){for(var n=-1,r=e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}e.exports=t},function(e){"use strict";function t(e,t,u){switch(u){case n:case r:return+e==+t;case i:return e.name==t.name&&e.message==t.message;case o:return e!=+e?t!=+t:e==+t;case a:case s:return e==t+""}return!1}var n="[object Boolean]",r="[object Date]",i="[object Error]",o="[object Number]",a="[object RegExp]",s="[object String]";e.exports=t},function(e,t,n){"use strict";function r(e,t,n,r,o,s,u){var c=i(e),l=c.length,p=i(t),f=p.length;if(l!=f&&!o)return!1;for(var d=l;d--;){var h=c[d];if(!(o?h in t:a.call(t,h)))return!1}for(var m=o;++d<l;){h=c[d];var v=e[h],g=t[h],y=r?r(o?g:v,o?v:g,h):void 0;if(!(void 0===y?n(v,g,r,o,s,u):y))return!1;m||(m="constructor"==h)}if(!m){var b=e.constructor,x=t.constructor;if(b!=x&&"constructor"in e&&"constructor"in t&&!("function"==typeof b&&b instanceof b&&"function"==typeof x&&x instanceof x))return!1}return!0}var i=n(261),o=Object.prototype,a=o.hasOwnProperty;e.exports=r},function(e){"use strict";e.exports=function(e){var t=e.numberLocale;return{formatNumber:function(e,n){return Number(n(e)).toLocaleString(t)}}}},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.templates,a=void 0===r?g:r,s=e.cssClasses,b=void 0===s?{}:s,x=e.autoHideContainer,w=void 0===x?!0:x;if(!t)throw new Error(y);var E=u(t),_=v(n(541));return w===!0&&(_=m(_)),{render:function(e){var t=e.results,n=e.helper,r=e.state,s=e.templatesConfig,u=e.createURL,m=0!==l(t,r).length,v={root:h(d(null),b.root),header:h(d("header"),b.header),body:h(d("body"),b.body),footer:h(d("footer"),b.footer),link:h(d("link"),b.link)},y=u(p(r)),x=f.bind(null,n),w=c({defaultTemplates:g,templatesConfig:s,templates:a});o.render(i.createElement(_,{clearAll:x,cssClasses:v,hasRefinements:m,shouldAutoHideContainer:!m,templateProps:w,url:y}),E)}}}var i=n(313),o=n(469),a=n(470),s=a.bemHelper,u=a.getContainerNode,c=a.prepareTemplateProps,l=a.getRefinements,p=a.clearRefinementsFromState,f=a.clearRefinementsAndSearch,d=s("ais-clear-all"),h=n(497),m=n(498),v=n(499),g=n(540),y="Usage:\nclearAll({\n container,\n [cssClasses.{root,header,body,footer,link}={}],\n [templates.{header,link,footer}={header: '', link: 'Clear all', footer: ''}],\n [autoHideContainer=true]\n})";e.exports=r},function(e,t,n){"use strict";e.exports=n(314)},function(e,t,n){"use strict";var r=n(315),i=n(459),o=n(463),a=n(350),s=n(468),u={};a(u,o),a(u,{findDOMNode:s("findDOMNode","ReactDOM","react-dom",r,r.findDOMNode),render:s("render","ReactDOM","react-dom",r,r.render),unmountComponentAtNode:s("unmountComponentAtNode","ReactDOM","react-dom",r,r.unmountComponentAtNode),renderToString:s("renderToString","ReactDOMServer","react-dom/server",i,i.renderToString),renderToStaticMarkup:s("renderToStaticMarkup","ReactDOMServer","react-dom/server",i,i.renderToStaticMarkup)}),u.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=r,u.__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=i,e.exports=u},function(e,t,n){(function(t){"use strict";var r=n(316),i=n(317),o=n(382),a=n(356),s=n(339),u=n(329),c=n(361),l=n(365),p=n(457),f=n(402),d=n(458),h=n(336);o.inject();var m=u.measure("React","render",s.render),v={findDOMNode:f,render:m,unmountComponentAtNode:s.unmountComponentAtNode,version:p,unstable_batchedUpdates:l.batchedUpdates,unstable_renderSubtreeIntoContainer:d};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({CurrentOwner:r,InstanceHandles:a,Mount:s,Reconciler:c,TextComponent:i}),"production"!==t.env.NODE_ENV){var g=n(320);if(g.canUseDOM&&window.top===window.self){"undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&(navigator.userAgent.indexOf("Chrome")>-1&&-1===navigator.userAgent.indexOf("Edge")||navigator.userAgent.indexOf("Firefox")>-1)&&console.debug("Download the React DevTools for a better development experience: https://fb.me/react-devtools");var y=document.documentMode&&document.documentMode<8;"production"!==t.env.NODE_ENV?h(!y,'Internet Explorer is running in compatibility mode; please add the following tag to your HTML to prevent this from happening: <meta http-equiv="X-UA-Compatible" content="IE=edge" />'):void 0;for(var b=[Array.isArray,Array.prototype.every,Array.prototype.forEach,Array.prototype.indexOf,Array.prototype.map,Date.now,Function.prototype.bind,Object.keys,String.prototype.split,String.prototype.trim,Object.create,Object.freeze],x=0;x<b.length;x++)if(!b[x]){console.error("One or more ES5 shim/shams expected by React are not available: https://fb.me/react-warning-polyfills");break}}}e.exports=v}).call(t,n(8))},function(e){"use strict";var t={current:null};e.exports=t},function(e,t,n){
12
+ (function(t){"use strict";var r=n(318),i=n(333),o=n(337),a=n(339),s=n(350),u=n(332),c=n(331),l=n(381),p=function(){};s(p.prototype,{construct:function(e){this._currentElement=e,this._stringText=""+e,this._rootNodeID=null,this._mountIndex=0},mountComponent:function(e,n,r){if("production"!==t.env.NODE_ENV&&r[l.ancestorInfoContextKey]&&l("span",null,r[l.ancestorInfoContextKey]),this._rootNodeID=e,n.useCreateElement){var o=r[a.ownerDocumentContextKey],s=o.createElement("span");return i.setAttributeForID(s,e),a.getID(s),c(s,this._stringText),s}var p=u(this._stringText);return n.renderToStaticMarkup?p:"<span "+i.createMarkupForID(e)+">"+p+"</span>"},receiveComponent:function(e){if(e!==this._currentElement){this._currentElement=e;var t=""+e;if(t!==this._stringText){this._stringText=t;var n=a.getNode(this._rootNodeID);r.updateTextContent(n,t)}}},unmountComponent:function(){o.unmountIDFromEnvironment(this._rootNodeID)}}),e.exports=p}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,t,n){var r=n>=e.childNodes.length?null:e.childNodes.item(n);e.insertBefore(t,r)}var i=n(319),o=n(327),a=n(329),s=n(330),u=n(331),c=n(324),l={dangerouslyReplaceNodeWithMarkup:i.dangerouslyReplaceNodeWithMarkup,updateTextContent:u,processUpdates:function(e,n){for(var a,l=null,p=null,f=0;f<e.length;f++)if(a=e[f],a.type===o.MOVE_EXISTING||a.type===o.REMOVE_NODE){var d=a.fromIndex,h=a.parentNode.childNodes[d],m=a.parentID;h?void 0:"production"!==t.env.NODE_ENV?c(!1,"processUpdates(): Unable to find child %s of element. This probably means the DOM was unexpectedly mutated (e.g., by the browser), usually due to forgetting a <tbody> when using tables, nesting tags like <form>, <p>, or <a>, or using non-SVG elements in an <svg> parent. Try inspecting the child nodes of the element with React ID `%s`.",d,m):c(!1),l=l||{},l[m]=l[m]||[],l[m][d]=h,p=p||[],p.push(h)}var v;if(v=n.length&&"string"==typeof n[0]?i.dangerouslyRenderMarkup(n):n,p)for(var g=0;g<p.length;g++)p[g].parentNode.removeChild(p[g]);for(var y=0;y<e.length;y++)switch(a=e[y],a.type){case o.INSERT_MARKUP:r(a.parentNode,v[a.markupIndex],a.toIndex);break;case o.MOVE_EXISTING:r(a.parentNode,l[a.parentID][a.fromIndex],a.toIndex);break;case o.SET_MARKUP:s(a.parentNode,a.content);break;case o.TEXT_CONTENT:u(a.parentNode,a.content);break;case o.REMOVE_NODE:}}};a.measureMethods(l,"DOMChildrenOperations",{updateTextContent:"updateTextContent"}),e.exports=l}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e){return e.substring(1,e.indexOf(" "))}var i=n(320),o=n(321),a=n(326),s=n(325),u=n(324),c=/^(<[^ \/>]+)/,l="data-danger-index",p={dangerouslyRenderMarkup:function(e){i.canUseDOM?void 0:"production"!==t.env.NODE_ENV?u(!1,"dangerouslyRenderMarkup(...): Cannot render markup in a worker thread. Make sure `window` and `document` are available globally before requiring React when unit testing or use ReactDOMServer.renderToString for server rendering."):u(!1);for(var n,p={},f=0;f<e.length;f++)e[f]?void 0:"production"!==t.env.NODE_ENV?u(!1,"dangerouslyRenderMarkup(...): Missing markup."):u(!1),n=r(e[f]),n=s(n)?n:"*",p[n]=p[n]||[],p[n][f]=e[f];var d=[],h=0;for(n in p)if(p.hasOwnProperty(n)){var m,v=p[n];for(m in v)if(v.hasOwnProperty(m)){var g=v[m];v[m]=g.replace(c,"$1 "+l+'="'+m+'" ')}for(var y=o(v.join(""),a),b=0;b<y.length;++b){var x=y[b];x.hasAttribute&&x.hasAttribute(l)?(m=+x.getAttribute(l),x.removeAttribute(l),d.hasOwnProperty(m)?"production"!==t.env.NODE_ENV?u(!1,"Danger: Assigning to an already-occupied result index."):u(!1):void 0,d[m]=x,h+=1):"production"!==t.env.NODE_ENV&&console.error("Danger: Discarding unexpected node:",x)}}return h!==d.length?"production"!==t.env.NODE_ENV?u(!1,"Danger: Did not assign to every index of resultList."):u(!1):void 0,d.length!==e.length?"production"!==t.env.NODE_ENV?u(!1,"Danger: Expected markup to render %s nodes, but rendered %s.",e.length,d.length):u(!1):void 0,d},dangerouslyReplaceNodeWithMarkup:function(e,n){i.canUseDOM?void 0:"production"!==t.env.NODE_ENV?u(!1,"dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a worker thread. Make sure `window` and `document` are available globally before requiring React when unit testing or use ReactDOMServer.renderToString() for server rendering."):u(!1),n?void 0:"production"!==t.env.NODE_ENV?u(!1,"dangerouslyReplaceNodeWithMarkup(...): Missing markup."):u(!1),"html"===e.tagName.toLowerCase()?"production"!==t.env.NODE_ENV?u(!1,"dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the <html> node. This is because browser quirks make this unreliable and/or slow. If you want to render to the root you must use server rendering. See ReactDOMServer.renderToString()."):u(!1):void 0;var r;r="string"==typeof n?o(n,a)[0]:n,e.parentNode.replaceChild(r,e)}};e.exports=p}).call(t,n(8))},function(e){"use strict";var t=!("undefined"==typeof window||!window.document||!window.document.createElement),n={canUseDOM:t,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:t&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:t&&!!window.screen,isInWorker:!t};e.exports=n},function(e,t,n){(function(t){"use strict";function r(e){var t=e.match(l);return t&&t[1].toLowerCase()}function i(e,n){var i=c;c?void 0:"production"!==t.env.NODE_ENV?u(!1,"createNodesFromMarkup dummy not initialized"):u(!1);var o=r(e),l=o&&s(o);if(l){i.innerHTML=l[1]+e+l[2];for(var p=l[0];p--;)i=i.lastChild}else i.innerHTML=e;var f=i.getElementsByTagName("script");f.length&&(n?void 0:"production"!==t.env.NODE_ENV?u(!1,"createNodesFromMarkup(...): Unexpected <script> element rendered."):u(!1),a(f).forEach(n));for(var d=a(i.childNodes);i.lastChild;)i.removeChild(i.lastChild);return d}var o=n(320),a=n(322),s=n(325),u=n(324),c=o.canUseDOM?document.createElement("div"):null,l=/^\s*<(\w+)/;e.exports=i}).call(t,n(8))},function(e,t,n){"use strict";function r(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"length"in e&&!("setInterval"in e)&&"number"!=typeof e.nodeType&&(Array.isArray(e)||"callee"in e||"item"in e)}function i(e){return r(e)?Array.isArray(e)?e.slice():o(e):[e]}var o=n(323);e.exports=i},function(e,t,n){(function(t){"use strict";function r(e){var n=e.length;if(Array.isArray(e)||"object"!=typeof e&&"function"!=typeof e?"production"!==t.env.NODE_ENV?i(!1,"toArray: Array-like object expected"):i(!1):void 0,"number"!=typeof n?"production"!==t.env.NODE_ENV?i(!1,"toArray: Object needs a length property"):i(!1):void 0,0===n||n-1 in e?void 0:"production"!==t.env.NODE_ENV?i(!1,"toArray: Object should have keys for indices"):i(!1),e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(r){}for(var o=Array(n),a=0;n>a;a++)o[a]=e[a];return o}var i=n(324);e.exports=r}).call(t,n(8))},function(e,t,n){(function(t){"use strict";var n=function(e,n,r,i,o,a,s,u){if("production"!==t.env.NODE_ENV&&void 0===n)throw new Error("invariant requires an error message argument");if(!e){var c;if(void 0===n)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[r,i,o,a,s,u],p=0;c=new Error("Invariant Violation: "+n.replace(/%s/g,function(){return l[p++]}))}throw c.framesToPop=1,c}};e.exports=n}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e){return a?void 0:"production"!==t.env.NODE_ENV?o(!1,"Markup wrapping node not initialized"):o(!1),f.hasOwnProperty(e)||(e="*"),s.hasOwnProperty(e)||(a.innerHTML="*"===e?"<link />":"<"+e+"></"+e+">",s[e]=!a.firstChild),s[e]?f[e]:null}var i=n(320),o=n(324),a=i.canUseDOM?document.createElement("div"):null,s={},u=[1,'<select multiple="true">',"</select>"],c=[1,"<table>","</table>"],l=[3,"<table><tbody><tr>","</tr></tbody></table>"],p=[1,'<svg xmlns="http://www.w3.org/2000/svg">',"</svg>"],f={"*":[1,"?<div>","</div>"],area:[1,"<map>","</map>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],legend:[1,"<fieldset>","</fieldset>"],param:[1,"<object>","</object>"],tr:[2,"<table><tbody>","</tbody></table>"],optgroup:u,option:u,caption:c,colgroup:c,tbody:c,tfoot:c,thead:c,td:l,th:l},d=["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"];d.forEach(function(e){f[e]=p,s[e]=!0}),e.exports=r}).call(t,n(8))},function(e){"use strict";function t(e){return function(){return e}}function n(){}n.thatReturns=t,n.thatReturnsFalse=t(!1),n.thatReturnsTrue=t(!0),n.thatReturnsNull=t(null),n.thatReturnsThis=function(){return this},n.thatReturnsArgument=function(e){return e},e.exports=n},function(e,t,n){"use strict";var r=n(328),i=r({INSERT_MARKUP:null,MOVE_EXISTING:null,REMOVE_NODE:null,SET_MARKUP:null,TEXT_CONTENT:null});e.exports=i},function(e,t,n){(function(t){"use strict";var r=n(324),i=function(e){var n,i={};e instanceof Object&&!Array.isArray(e)?void 0:"production"!==t.env.NODE_ENV?r(!1,"keyMirror(...): Argument must be an object."):r(!1);for(n in e)e.hasOwnProperty(n)&&(i[n]=n);return i};e.exports=i}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function n(e,t,n){return n}var r={enableMeasure:!1,storedMeasure:n,measureMethods:function(e,n,i){if("production"!==t.env.NODE_ENV)for(var o in i)i.hasOwnProperty(o)&&(e[o]=r.measure(n,i[o],e[o]))},measure:function(e,n,i){if("production"!==t.env.NODE_ENV){var o=null,a=function(){return r.enableMeasure?(o||(o=r.storedMeasure(e,n,i)),o.apply(this,arguments)):i.apply(this,arguments)};return a.displayName=e+"_"+n,a}return i},injection:{injectMeasure:function(e){r.storedMeasure=e}}};e.exports=r}).call(t,n(8))},function(e,t,n){"use strict";var r=n(320),i=/^[ \r\n\t\f]/,o=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,a=function(e,t){e.innerHTML=t};if("undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction&&(a=function(e,t){MSApp.execUnsafeLocalFunction(function(){e.innerHTML=t})}),r.canUseDOM){var s=document.createElement("div");s.innerHTML=" ",""===s.innerHTML&&(a=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),i.test(t)||"<"===t[0]&&o.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t})}e.exports=a},function(e,t,n){"use strict";var r=n(320),i=n(332),o=n(330),a=function(e,t){e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){o(e,i(t))})),e.exports=a},function(e){"use strict";function t(e){return r[e]}function n(e){return(""+e).replace(i,t)}var r={"&":"&amp;",">":"&gt;","<":"&lt;",'"':"&quot;","'":"&#x27;"},i=/[&><"']/g;e.exports=n},function(e,t,n){(function(t){"use strict";function r(e){return p.hasOwnProperty(e)?!0:l.hasOwnProperty(e)?!1:c.test(e)?(p[e]=!0,!0):(l[e]=!0,"production"!==t.env.NODE_ENV?u(!1,"Invalid attribute name: `%s`",e):void 0,!1)}function i(e,t){return null==t||e.hasBooleanValue&&!t||e.hasNumericValue&&isNaN(t)||e.hasPositiveNumericValue&&1>t||e.hasOverloadedBooleanValue&&t===!1}var o=n(334),a=n(329),s=n(335),u=n(336),c=/^[a-zA-Z_][\w\.\-]*$/,l={},p={};if("production"!==t.env.NODE_ENV)var f={children:!0,dangerouslySetInnerHTML:!0,key:!0,ref:!0},d={},h=function(e){if(!(f.hasOwnProperty(e)&&f[e]||d.hasOwnProperty(e)&&d[e])){d[e]=!0;var n=e.toLowerCase(),r=o.isCustomAttribute(n)?n:o.getPossibleStandardName.hasOwnProperty(n)?o.getPossibleStandardName[n]:null;"production"!==t.env.NODE_ENV?u(null==r,"Unknown DOM property %s. Did you mean %s?",e,r):void 0}};var m={createMarkupForID:function(e){return o.ID_ATTRIBUTE_NAME+"="+s(e)},setAttributeForID:function(e,t){e.setAttribute(o.ID_ATTRIBUTE_NAME,t)},createMarkupForProperty:function(e,n){var r=o.properties.hasOwnProperty(e)?o.properties[e]:null;if(r){if(i(r,n))return"";var a=r.attributeName;return r.hasBooleanValue||r.hasOverloadedBooleanValue&&n===!0?a+'=""':a+"="+s(n)}return o.isCustomAttribute(e)?null==n?"":e+"="+s(n):("production"!==t.env.NODE_ENV&&h(e),null)},createMarkupForCustomAttribute:function(e,t){return r(e)&&null!=t?e+"="+s(t):""},setValueForProperty:function(e,n,r){var a=o.properties.hasOwnProperty(n)?o.properties[n]:null;if(a){var s=a.mutationMethod;if(s)s(e,r);else if(i(a,r))this.deleteValueForProperty(e,n);else if(a.mustUseAttribute){var u=a.attributeName,c=a.attributeNamespace;c?e.setAttributeNS(c,u,""+r):a.hasBooleanValue||a.hasOverloadedBooleanValue&&r===!0?e.setAttribute(u,""):e.setAttribute(u,""+r)}else{var l=a.propertyName;a.hasSideEffects&&""+e[l]==""+r||(e[l]=r)}}else o.isCustomAttribute(n)?m.setValueForAttribute(e,n,r):"production"!==t.env.NODE_ENV&&h(n)},setValueForAttribute:function(e,t,n){r(t)&&(null==n?e.removeAttribute(t):e.setAttribute(t,""+n))},deleteValueForProperty:function(e,n){var r=o.properties.hasOwnProperty(n)?o.properties[n]:null;if(r){var i=r.mutationMethod;if(i)i(e,void 0);else if(r.mustUseAttribute)e.removeAttribute(r.attributeName);else{var a=r.propertyName,s=o.getDefaultValueForProperty(e.nodeName,a);r.hasSideEffects&&""+e[a]===s||(e[a]=s)}}else o.isCustomAttribute(n)?e.removeAttribute(n):"production"!==t.env.NODE_ENV&&h(n)}};a.measureMethods(m,"DOMPropertyOperations",{setValueForProperty:"setValueForProperty",setValueForAttribute:"setValueForAttribute",deleteValueForProperty:"deleteValueForProperty"}),e.exports=m}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,t){return(e&t)===t}var i=n(324),o={MUST_USE_ATTRIBUTE:1,MUST_USE_PROPERTY:2,HAS_SIDE_EFFECTS:4,HAS_BOOLEAN_VALUE:8,HAS_NUMERIC_VALUE:16,HAS_POSITIVE_NUMERIC_VALUE:48,HAS_OVERLOADED_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(e){var n=o,a=e.Properties||{},u=e.DOMAttributeNamespaces||{},c=e.DOMAttributeNames||{},l=e.DOMPropertyNames||{},p=e.DOMMutationMethods||{};e.isCustomAttribute&&s._isCustomAttributeFunctions.push(e.isCustomAttribute);for(var f in a){s.properties.hasOwnProperty(f)?"production"!==t.env.NODE_ENV?i(!1,"injectDOMPropertyConfig(...): You're trying to inject DOM property '%s' which has already been injected. You may be accidentally injecting the same DOM property config twice, or you may be injecting two configs that have conflicting property names.",f):i(!1):void 0;var d=f.toLowerCase(),h=a[f],m={attributeName:d,attributeNamespace:null,propertyName:f,mutationMethod:null,mustUseAttribute:r(h,n.MUST_USE_ATTRIBUTE),mustUseProperty:r(h,n.MUST_USE_PROPERTY),hasSideEffects:r(h,n.HAS_SIDE_EFFECTS),hasBooleanValue:r(h,n.HAS_BOOLEAN_VALUE),hasNumericValue:r(h,n.HAS_NUMERIC_VALUE),hasPositiveNumericValue:r(h,n.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:r(h,n.HAS_OVERLOADED_BOOLEAN_VALUE)};if(m.mustUseAttribute&&m.mustUseProperty?"production"!==t.env.NODE_ENV?i(!1,"DOMProperty: Cannot require using both attribute and property: %s",f):i(!1):void 0,!m.mustUseProperty&&m.hasSideEffects?"production"!==t.env.NODE_ENV?i(!1,"DOMProperty: Properties that have side effects must use property: %s",f):i(!1):void 0,m.hasBooleanValue+m.hasNumericValue+m.hasOverloadedBooleanValue<=1?void 0:"production"!==t.env.NODE_ENV?i(!1,"DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s",f):i(!1),"production"!==t.env.NODE_ENV&&(s.getPossibleStandardName[d]=f),c.hasOwnProperty(f)){var v=c[f];m.attributeName=v,"production"!==t.env.NODE_ENV&&(s.getPossibleStandardName[v]=f)}u.hasOwnProperty(f)&&(m.attributeNamespace=u[f]),l.hasOwnProperty(f)&&(m.propertyName=l[f]),p.hasOwnProperty(f)&&(m.mutationMethod=p[f]),s.properties[f]=m}}},a={},s={ID_ATTRIBUTE_NAME:"data-reactid",properties:{},getPossibleStandardName:"production"!==t.env.NODE_ENV?{}:null,_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t<s._isCustomAttributeFunctions.length;t++){var n=s._isCustomAttributeFunctions[t];if(n(e))return!0}return!1},getDefaultValueForProperty:function(e,t){var n,r=a[e];return r||(a[e]=r={}),t in r||(n=document.createElement(e),r[t]=n[t]),r[t]},injection:o};e.exports=s}).call(t,n(8))},function(e,t,n){"use strict";function r(e){return'"'+i(e)+'"'}var i=n(332);e.exports=r},function(e,t,n){(function(t){"use strict";var r=n(326),i=r;"production"!==t.env.NODE_ENV&&(i=function(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),i=2;n>i;i++)r[i-2]=arguments[i];if(void 0===t)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==t.indexOf("Failed Composite propType: ")&&!e){var o=0,a="Warning: "+t.replace(/%s/g,function(){return r[o++]});"undefined"!=typeof console&&console.error(a);try{throw new Error(a)}catch(s){}}}),e.exports=i}).call(t,n(8))},function(e,t,n){"use strict";var r=n(338),i=n(339),o={processChildrenUpdates:r.dangerouslyProcessChildrenUpdates,replaceNodeWithMarkupByID:r.dangerouslyReplaceNodeWithMarkupByID,unmountIDFromEnvironment:function(e){i.purgeID(e)}};e.exports=o},function(e,t,n){(function(t){"use strict";var r=n(318),i=n(333),o=n(339),a=n(329),s=n(324),u={dangerouslySetInnerHTML:"`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.",style:"`style` must be set using `updateStylesByID()`."},c={updatePropertyByID:function(e,n,r){var a=o.getNode(e);u.hasOwnProperty(n)?"production"!==t.env.NODE_ENV?s(!1,"updatePropertyByID(...): %s",u[n]):s(!1):void 0,null!=r?i.setValueForProperty(a,n,r):i.deleteValueForProperty(a,n)},dangerouslyReplaceNodeWithMarkupByID:function(e,t){var n=o.getNode(e);r.dangerouslyReplaceNodeWithMarkup(n,t)},dangerouslyProcessChildrenUpdates:function(e,t){for(var n=0;n<e.length;n++)e[n].parentNode=o.getNode(e[n].parentID);r.processUpdates(e,t)}};a.measureMethods(c,"ReactDOMIDOperations",{dangerouslyReplaceNodeWithMarkupByID:"dangerouslyReplaceNodeWithMarkupByID",dangerouslyProcessChildrenUpdates:"dangerouslyProcessChildrenUpdates"}),e.exports=c}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,t){for(var n=Math.min(e.length,t.length),r=0;n>r;r++)if(e.charAt(r)!==t.charAt(r))return r;return e.length===t.length?-1:n}function i(e){return e?e.nodeType===W?e.documentElement:e.firstChild:null}function o(e){var t=i(e);return t&&ee.getID(t)}function a(e){var n=s(e);if(n)if(q.hasOwnProperty(n)){var r=q[n];r!==e&&(p(r,n)?"production"!==t.env.NODE_ENV?M(!1,"ReactMount: Two valid but unequal nodes with the same `%s`: %s",H,n):M(!1):void 0,q[n]=e)}else q[n]=e;return n}function s(e){return e&&e.getAttribute&&e.getAttribute(H)||""}function u(e,t){var n=s(e);n!==t&&delete q[n],e.setAttribute(H,t),q[t]=e}function c(e){return q.hasOwnProperty(e)&&p(q[e],e)||(q[e]=ee.findReactNodeByID(e)),q[e]}function l(e){var t=O.get(e)._rootNodeID;return N.isNullComponentID(t)?null:(q.hasOwnProperty(t)&&p(q[t],t)||(q[t]=ee.findReactNodeByID(t)),q[t])}function p(e,n){if(e){s(e)!==n?"production"!==t.env.NODE_ENV?M(!1,"ReactMount: Unexpected modification of `%s`",H):M(!1):void 0;var r=ee.findReactContainerForID(n);if(r&&j(r,e))return!0}return!1}function f(e){delete q[e]}function d(e){var t=q[e];return t&&p(t,e)?void(J=t):!1}function h(e){J=null,$.traverseAncestors(e,d);var t=J;return J=null,t}function m(e,n,r,i,o,a){if(_.useCreateElement&&(a=k({},a),a[K]=r.nodeType===W?r:r.ownerDocument),"production"!==t.env.NODE_ENV){a===A&&(a={});var s=r.nodeName.toLowerCase();a[V.ancestorInfoContextKey]=V.updatedAncestorInfo(null,s,null)}var u=S.mountComponent(e,n,i,a);e._renderedComponent._topLevelWrapper=e,ee._mountImageIntoNode(u,r,o,i)}function v(e,t,n,r,i){var o=R.ReactReconcileTransaction.getPooled(r);o.perform(m,null,e,t,n,o,r,i),R.ReactReconcileTransaction.release(o)}function g(e,t){for(S.unmountComponent(e),t.nodeType===W&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)}function y(e){var t=o(e);return t?t!==$.getReactRootIDFromNodeID(t):!1}function b(e){for(;e&&e.parentNode!==e;e=e.parentNode)if(1===e.nodeType){var t=s(e);if(t){var n,r=$.getReactRootIDFromNodeID(t),i=e;do if(n=s(i),i=i.parentNode,null==i)return null;while(n!==r);if(i===Y[r])return e}}return null}var x=n(334),w=n(340),E=n(316),_=n(352),C=n(353),N=n(355),$=n(356),O=n(358),T=n(359),P=n(329),S=n(361),D=n(364),R=n(365),k=n(350),A=n(369),j=n(370),I=n(373),M=n(324),F=n(330),L=n(378),V=n(381),U=n(336),H=x.ID_ATTRIBUTE_NAME,q={},B=1,W=9,z=11,K="__ReactMount_ownerDocument$"+Math.random().toString(36).slice(2),Q={},Y={};if("production"!==t.env.NODE_ENV)var G={};var X=[],J=null,Z=function(){};Z.prototype.isReactComponent={},"production"!==t.env.NODE_ENV&&(Z.displayName="TopLevelWrapper"),Z.prototype.render=function(){return this.props};var ee={TopLevelWrapper:Z,_instancesByReactRootID:Q,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,n,r,a){return ee.scrollMonitor(r,function(){D.enqueueElementInternal(e,n),a&&D.enqueueCallbackInternal(e,a)}),"production"!==t.env.NODE_ENV&&(G[o(r)]=i(r)),e},_registerComponent:function(e,n){!n||n.nodeType!==B&&n.nodeType!==W&&n.nodeType!==z?"production"!==t.env.NODE_ENV?M(!1,"_registerComponent(...): Target container is not a DOM element."):M(!1):void 0,w.ensureScrollValueMonitoring();var r=ee.registerContainer(n);return Q[r]=e,r},_renderNewRootComponent:function(e,n,r,o){"production"!==t.env.NODE_ENV?U(null==E.current,"_renderNewRootComponent(): Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate. Check the render method of %s.",E.current&&E.current.getName()||"ReactCompositeComponent"):void 0;var a=I(e,null),s=ee._registerComponent(a,n);return R.batchedUpdates(v,a,s,n,r,o),"production"!==t.env.NODE_ENV&&(G[s]=i(n)),a},renderSubtreeIntoContainer:function(e,n,r,i){return null==e||null==e._reactInternalInstance?"production"!==t.env.NODE_ENV?M(!1,"parentComponent must be a valid React Component"):M(!1):void 0,ee._renderSubtreeIntoContainer(e,n,r,i)},_renderSubtreeIntoContainer:function(e,n,r,a){C.isValidElement(n)?void 0:"production"!==t.env.NODE_ENV?M(!1,"ReactDOM.render(): Invalid component element.%s","string"==typeof n?" Instead of passing an element string, make sure to instantiate it by passing it to React.createElement.":"function"==typeof n?" Instead of passing a component class, make sure to instantiate it by passing it to React.createElement.":null!=n&&void 0!==n.props?" This may be caused by unintentionally loading two independent copies of React.":""):M(!1),"production"!==t.env.NODE_ENV?U(!r||!r.tagName||"BODY"!==r.tagName.toUpperCase(),"render(): Rendering components directly into document.body is discouraged, since its children are often manipulated by third-party scripts and browser extensions. This may lead to subtle reconciliation issues. Try rendering into a container element created for your app."):void 0;var u=new C(Z,null,null,null,null,null,n),c=Q[o(r)];if(c){var l=c._currentElement,p=l.props;if(L(p,n)){var f=c._renderedComponent.getPublicInstance(),d=a&&function(){a.call(f)};return ee._updateRootComponent(c,u,r,d),f}ee.unmountComponentAtNode(r)}var h=i(r),m=h&&!!s(h),v=y(r);if("production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?U(!v,"render(...): Replacing React-rendered children with a new root component. If you intended to update the children of this node, you should instead have the existing children update their state and render the new components instead of calling ReactDOM.render."):void 0,!m||h.nextSibling))for(var g=h;g;){if(s(g)){"production"!==t.env.NODE_ENV?U(!1,"render(): Target node has markup rendered by React, but there are unrelated nodes as well. This is most commonly caused by white-space inserted around server-rendered markup."):void 0;break}g=g.nextSibling}var b=m&&!c&&!v,x=ee._renderNewRootComponent(u,r,b,null!=e?e._reactInternalInstance._processChildContext(e._reactInternalInstance._context):A)._renderedComponent.getPublicInstance();return a&&a.call(x),x},render:function(e,t,n){return ee._renderSubtreeIntoContainer(null,e,t,n)},registerContainer:function(e){var t=o(e);return t&&(t=$.getReactRootIDFromNodeID(t)),t||(t=$.createReactRootID()),Y[t]=e,t},unmountComponentAtNode:function(e){"production"!==t.env.NODE_ENV?U(null==E.current,"unmountComponentAtNode(): Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate. Check the render method of %s.",E.current&&E.current.getName()||"ReactCompositeComponent"):void 0,!e||e.nodeType!==B&&e.nodeType!==W&&e.nodeType!==z?"production"!==t.env.NODE_ENV?M(!1,"unmountComponentAtNode(...): Target container is not a DOM element."):M(!1):void 0;var n=o(e),r=Q[n];if(!r){var i=y(e),a=s(e),u=a&&a===$.getReactRootIDFromNodeID(a);return"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?U(!i,"unmountComponentAtNode(): The node you're attempting to unmount was rendered by React and is not a top-level container. %s",u?"You may have accidentally passed in a React root node instead of its container.":"Instead, have the parent component update its state and rerender in order to remove this component."):void 0),!1}return R.batchedUpdates(g,r,e),delete Q[n],delete Y[n],"production"!==t.env.NODE_ENV&&delete G[n],!0},findReactContainerForID:function(e){var n=$.getReactRootIDFromNodeID(e),r=Y[n];if("production"!==t.env.NODE_ENV){var i=G[n];if(i&&i.parentNode!==r){"production"!==t.env.NODE_ENV?U(s(i)===n,"ReactMount: Root element ID differed from reactRootID."):void 0;var o=r.firstChild;o&&n===s(o)?G[n]=o:"production"!==t.env.NODE_ENV?U(!1,"ReactMount: Root element has been removed from its original container. New container: %s",i.parentNode):void 0}}return r},findReactNodeByID:function(e){var t=ee.findReactContainerForID(e);return ee.findComponentRoot(t,e)},getFirstReactDOM:function(e){return b(e)},findComponentRoot:function(e,n){var r=X,i=0,o=h(n)||e;for("production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?U(null!=o,"React can't find the root component node for data-reactid value `%s`. If you're seeing this message, it probably means that you've loaded two copies of React on the page. At this time, only a single copy of React can be loaded at a time.",n):void 0),r[0]=o.firstChild,r.length=1;i<r.length;){for(var a,s=r[i++];s;){var u=ee.getID(s);u?n===u?a=s:$.isAncestorIDOf(u,n)&&(r.length=i=0,r.push(s.firstChild)):r.push(s.firstChild),s=s.nextSibling}if(a)return r.length=0,a}r.length=0,"production"!==t.env.NODE_ENV?M(!1,"findComponentRoot(..., %s): Unable to find element. This probably means the DOM was unexpectedly mutated (e.g., by the browser), usually due to forgetting a <tbody> when using tables, nesting tags like <form>, <p>, or <a>, or using non-SVG elements in an <svg> parent. Try inspecting the child nodes of the element with React ID `%s`.",n,ee.getID(e)):M(!1)},_mountImageIntoNode:function(e,n,o,a){if(!n||n.nodeType!==B&&n.nodeType!==W&&n.nodeType!==z?"production"!==t.env.NODE_ENV?M(!1,"mountComponentIntoNode(...): Target container is not valid."):M(!1):void 0,o){var s=i(n);if(T.canReuseMarkup(e,s))return;var u=s.getAttribute(T.CHECKSUM_ATTR_NAME);s.removeAttribute(T.CHECKSUM_ATTR_NAME);var c=s.outerHTML;s.setAttribute(T.CHECKSUM_ATTR_NAME,u);var l=e;if("production"!==t.env.NODE_ENV){var p;n.nodeType===B?(p=document.createElement("div"),p.innerHTML=e,l=p.innerHTML):(p=document.createElement("iframe"),document.body.appendChild(p),p.contentDocument.write(e),l=p.contentDocument.documentElement.outerHTML,document.body.removeChild(p))}var f=r(l,c),d=" (client) "+l.substring(f-20,f+20)+"\n (server) "+c.substring(f-20,f+20);n.nodeType===W?"production"!==t.env.NODE_ENV?M(!1,"You're trying to render a component to the document using server rendering but the checksum was invalid. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side:\n%s",d):M(!1):void 0,"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?U(!1,"React attempted to reuse markup in a container but the checksum was invalid. This generally means that you are using server rendering and the markup generated on the server was not what the client was expecting. React injected new markup to compensate which works but you have lost many of the benefits of server rendering. Instead, figure out why the markup being generated is different on the client or server:\n%s",d):void 0)}if(n.nodeType===W?"production"!==t.env.NODE_ENV?M(!1,"You're trying to render a component to the document but you didn't use server rendering. We can't do this without using server rendering due to cross-browser quirks. See ReactDOMServer.renderToString() for server rendering."):M(!1):void 0,a.useCreateElement){for(;n.lastChild;)n.removeChild(n.lastChild);n.appendChild(e)}else F(n,e)},ownerDocumentContextKey:K,getReactRootID:o,getID:a,setID:u,getNode:c,getNodeFromInstance:l,isValid:p,purgeID:f};P.measureMethods(ee,"ReactMount",{_renderNewRootComponent:"_renderNewRootComponent",_mountImageIntoNode:"_mountImageIntoNode"}),e.exports=ee}).call(t,n(8))},function(e,t,n){"use strict";function r(e){return Object.prototype.hasOwnProperty.call(e,v)||(e[v]=h++,f[e[v]]={}),f[e[v]]}var i=n(341),o=n(342),a=n(343),s=n(348),u=n(329),c=n(349),l=n(350),p=n(351),f={},d=!1,h=0,m={topAbort:"abort",topBlur:"blur",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topChange:"change",topClick:"click",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topScroll:"scroll",topSeeked:"seeked",topSeeking:"seeking",topSelectionChange:"selectionchange",topStalled:"stalled",topSuspend:"suspend",topTextInput:"textInput",topTimeUpdate:"timeupdate",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topVolumeChange:"volumechange",topWaiting:"waiting",topWheel:"wheel"},v="_reactListenersID"+String(Math.random()).slice(2),g=l({},s,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(g.handleTopLevel),g.ReactEventListener=e}},setEnabled:function(e){g.ReactEventListener&&g.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!g.ReactEventListener||!g.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var n=t,o=r(n),s=a.registrationNameDependencies[e],u=i.topLevelTypes,c=0;c<s.length;c++){var l=s[c];o.hasOwnProperty(l)&&o[l]||(l===u.topWheel?p("wheel")?g.ReactEventListener.trapBubbledEvent(u.topWheel,"wheel",n):p("mousewheel")?g.ReactEventListener.trapBubbledEvent(u.topWheel,"mousewheel",n):g.ReactEventListener.trapBubbledEvent(u.topWheel,"DOMMouseScroll",n):l===u.topScroll?p("scroll",!0)?g.ReactEventListener.trapCapturedEvent(u.topScroll,"scroll",n):g.ReactEventListener.trapBubbledEvent(u.topScroll,"scroll",g.ReactEventListener.WINDOW_HANDLE):l===u.topFocus||l===u.topBlur?(p("focus",!0)?(g.ReactEventListener.trapCapturedEvent(u.topFocus,"focus",n),g.ReactEventListener.trapCapturedEvent(u.topBlur,"blur",n)):p("focusin")&&(g.ReactEventListener.trapBubbledEvent(u.topFocus,"focusin",n),g.ReactEventListener.trapBubbledEvent(u.topBlur,"focusout",n)),o[u.topBlur]=!0,o[u.topFocus]=!0):m.hasOwnProperty(l)&&g.ReactEventListener.trapBubbledEvent(l,m[l],n),
13
+ o[l]=!0)}},trapBubbledEvent:function(e,t,n){return g.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return g.ReactEventListener.trapCapturedEvent(e,t,n)},ensureScrollValueMonitoring:function(){if(!d){var e=c.refreshScrollValues;g.ReactEventListener.monitorScrollValue(e),d=!0}},eventNameDispatchConfigs:o.eventNameDispatchConfigs,registrationNameModules:o.registrationNameModules,putListener:o.putListener,getListener:o.getListener,deleteListener:o.deleteListener,deleteAllListeners:o.deleteAllListeners});u.measureMethods(g,"ReactBrowserEventEmitter",{putListener:"putListener",deleteListener:"deleteListener"}),e.exports=g},function(e,t,n){"use strict";var r=n(328),i=r({bubbled:null,captured:null}),o=r({topAbort:null,topBlur:null,topCanPlay:null,topCanPlayThrough:null,topChange:null,topClick:null,topCompositionEnd:null,topCompositionStart:null,topCompositionUpdate:null,topContextMenu:null,topCopy:null,topCut:null,topDoubleClick:null,topDrag:null,topDragEnd:null,topDragEnter:null,topDragExit:null,topDragLeave:null,topDragOver:null,topDragStart:null,topDrop:null,topDurationChange:null,topEmptied:null,topEncrypted:null,topEnded:null,topError:null,topFocus:null,topInput:null,topKeyDown:null,topKeyPress:null,topKeyUp:null,topLoad:null,topLoadedData:null,topLoadedMetadata:null,topLoadStart:null,topMouseDown:null,topMouseMove:null,topMouseOut:null,topMouseOver:null,topMouseUp:null,topPaste:null,topPause:null,topPlay:null,topPlaying:null,topProgress:null,topRateChange:null,topReset:null,topScroll:null,topSeeked:null,topSeeking:null,topSelectionChange:null,topStalled:null,topSubmit:null,topSuspend:null,topTextInput:null,topTimeUpdate:null,topTouchCancel:null,topTouchEnd:null,topTouchMove:null,topTouchStart:null,topVolumeChange:null,topWaiting:null,topWheel:null}),a={topLevelTypes:o,PropagationPhases:i};e.exports=a},function(e,t,n){(function(t){"use strict";function r(){var e=v&&v.traverseTwoPhase&&v.traverseEnterLeave;"production"!==t.env.NODE_ENV?l(e,"InstanceHandle not injected before use!"):void 0}var i=n(343),o=n(344),a=n(345),s=n(346),u=n(347),c=n(324),l=n(336),p={},f=null,d=function(e,t){e&&(o.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e))},h=function(e){return d(e,!0)},m=function(e){return d(e,!1)},v=null,g={injection:{injectMount:o.injection.injectMount,injectInstanceHandle:function(e){v=e,"production"!==t.env.NODE_ENV&&r()},getInstanceHandle:function(){return"production"!==t.env.NODE_ENV&&r(),v},injectEventPluginOrder:i.injectEventPluginOrder,injectEventPluginsByName:i.injectEventPluginsByName},eventNameDispatchConfigs:i.eventNameDispatchConfigs,registrationNameModules:i.registrationNameModules,putListener:function(e,n,r){"function"!=typeof r?"production"!==t.env.NODE_ENV?c(!1,"Expected %s listener to be a function, instead got type %s",n,typeof r):c(!1):void 0;var o=p[n]||(p[n]={});o[e]=r;var a=i.registrationNameModules[n];a&&a.didPutListener&&a.didPutListener(e,n,r)},getListener:function(e,t){var n=p[t];return n&&n[e]},deleteListener:function(e,t){var n=i.registrationNameModules[t];n&&n.willDeleteListener&&n.willDeleteListener(e,t);var r=p[t];r&&delete r[e]},deleteAllListeners:function(e){for(var t in p)if(p[t][e]){var n=i.registrationNameModules[t];n&&n.willDeleteListener&&n.willDeleteListener(e,t),delete p[t][e]}},extractEvents:function(e,t,n,r,o){for(var a,u=i.plugins,c=0;c<u.length;c++){var l=u[c];if(l){var p=l.extractEvents(e,t,n,r,o);p&&(a=s(a,p))}}return a},enqueueEvents:function(e){e&&(f=s(f,e))},processEventQueue:function(e){var n=f;f=null,e?u(n,h):u(n,m),f?"production"!==t.env.NODE_ENV?c(!1,"processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented."):c(!1):void 0,a.rethrowCaughtError()},__purge:function(){p={}},__getListenerBank:function(){return p}};e.exports=g}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(){if(s)for(var e in u){var n=u[e],r=s.indexOf(e);if(r>-1?void 0:"production"!==t.env.NODE_ENV?a(!1,"EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.",e):a(!1),!c.plugins[r]){n.extractEvents?void 0:"production"!==t.env.NODE_ENV?a(!1,"EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.",e):a(!1),c.plugins[r]=n;var o=n.eventTypes;for(var l in o)i(o[l],n,l)?void 0:"production"!==t.env.NODE_ENV?a(!1,"EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.",l,e):a(!1)}}}function i(e,n,r){c.eventNameDispatchConfigs.hasOwnProperty(r)?"production"!==t.env.NODE_ENV?a(!1,"EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.",r):a(!1):void 0,c.eventNameDispatchConfigs[r]=e;var i=e.phasedRegistrationNames;if(i){for(var s in i)if(i.hasOwnProperty(s)){var u=i[s];o(u,n,r)}return!0}return e.registrationName?(o(e.registrationName,n,r),!0):!1}function o(e,n,r){c.registrationNameModules[e]?"production"!==t.env.NODE_ENV?a(!1,"EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.",e):a(!1):void 0,c.registrationNameModules[e]=n,c.registrationNameDependencies[e]=n.eventTypes[r].dependencies}var a=n(324),s=null,u={},c={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},injectEventPluginOrder:function(e){s?"production"!==t.env.NODE_ENV?a(!1,"EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React."):a(!1):void 0,s=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var n=!1;for(var i in e)if(e.hasOwnProperty(i)){var o=e[i];u.hasOwnProperty(i)&&u[i]===o||(u[i]?"production"!==t.env.NODE_ENV?a(!1,"EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.",i):a(!1):void 0,u[i]=o,n=!0)}n&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return c.registrationNameModules[t.registrationName]||null;for(var n in t.phasedRegistrationNames)if(t.phasedRegistrationNames.hasOwnProperty(n)){var r=c.registrationNameModules[t.phasedRegistrationNames[n]];if(r)return r}return null},_resetEventPlugins:function(){s=null;for(var e in u)u.hasOwnProperty(e)&&delete u[e];c.plugins.length=0;var t=c.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=c.registrationNameModules;for(var i in r)r.hasOwnProperty(i)&&delete r[i]}};e.exports=c}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e){return e===y.topMouseUp||e===y.topTouchEnd||e===y.topTouchCancel}function i(e){return e===y.topMouseMove||e===y.topTouchMove}function o(e){return e===y.topMouseDown||e===y.topTouchStart}function a(e,t,n,r){var i=e.type||"unknown-event";e.currentTarget=g.Mount.getNode(r),t?h.invokeGuardedCallbackWithCatch(i,n,e,r):h.invokeGuardedCallback(i,n,e,r),e.currentTarget=null}function s(e,n){var r=e._dispatchListeners,i=e._dispatchIDs;if("production"!==t.env.NODE_ENV&&f(e),Array.isArray(r))for(var o=0;o<r.length&&!e.isPropagationStopped();o++)a(e,n,r[o],i[o]);else r&&a(e,n,r,i);e._dispatchListeners=null,e._dispatchIDs=null}function u(e){var n=e._dispatchListeners,r=e._dispatchIDs;if("production"!==t.env.NODE_ENV&&f(e),Array.isArray(n)){for(var i=0;i<n.length&&!e.isPropagationStopped();i++)if(n[i](e,r[i]))return r[i]}else if(n&&n(e,r))return r;return null}function c(e){var t=u(e);return e._dispatchIDs=null,e._dispatchListeners=null,t}function l(e){"production"!==t.env.NODE_ENV&&f(e);var n=e._dispatchListeners,r=e._dispatchIDs;Array.isArray(n)?"production"!==t.env.NODE_ENV?m(!1,"executeDirectDispatch(...): Invalid `event`."):m(!1):void 0;var i=n?n(e,r):null;return e._dispatchListeners=null,e._dispatchIDs=null,i}function p(e){return!!e._dispatchListeners}var f,d=n(341),h=n(345),m=n(324),v=n(336),g={Mount:null,injectMount:function(e){g.Mount=e,"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?v(e&&e.getNode&&e.getID,"EventPluginUtils.injection.injectMount(...): Injected Mount module is missing getNode or getID."):void 0)}},y=d.topLevelTypes;"production"!==t.env.NODE_ENV&&(f=function(e){var n=e._dispatchListeners,r=e._dispatchIDs,i=Array.isArray(n),o=Array.isArray(r),a=o?r.length:r?1:0,s=i?n.length:n?1:0;"production"!==t.env.NODE_ENV?v(o===i&&a===s,"EventPluginUtils: Invalid `event`."):void 0});var b={isEndish:r,isMoveish:i,isStartish:o,executeDirectDispatch:l,executeDispatchesInOrder:s,executeDispatchesInOrderStopAtTrue:c,hasDispatches:p,getNode:function(e){return g.Mount.getNode(e)},getID:function(e){return g.Mount.getID(e)},injection:g};e.exports=b}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function n(e,t,n,i){try{return t(n,i)}catch(o){return void(null===r&&(r=o))}}var r=null,i={invokeGuardedCallback:n,invokeGuardedCallbackWithCatch:n,rethrowCaughtError:function(){if(r){var e=r;throw r=null,e}}};if("production"!==t.env.NODE_ENV&&"undefined"!=typeof window&&"function"==typeof window.dispatchEvent&&"undefined"!=typeof document&&"function"==typeof document.createEvent){var o=document.createElement("react");i.invokeGuardedCallback=function(e,t,n,r){var i=t.bind(null,n,r),a="react-"+e;o.addEventListener(a,i,!1);var s=document.createEvent("Event");s.initEvent(a,!1,!1),o.dispatchEvent(s),o.removeEventListener(a,i,!1)}}e.exports=i}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,n){if(null==n?"production"!==t.env.NODE_ENV?i(!1,"accumulateInto(...): Accumulated items must not be null or undefined."):i(!1):void 0,null==e)return n;var r=Array.isArray(e),o=Array.isArray(n);return r&&o?(e.push.apply(e,n),e):r?(e.push(n),e):o?[e].concat(n):[e,n]}var i=n(324);e.exports=r}).call(t,n(8))},function(e){"use strict";var t=function(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)};e.exports=t},function(e,t,n){"use strict";function r(e){i.enqueueEvents(e),i.processEventQueue(!1)}var i=n(342),o={handleTopLevel:function(e,t,n,o,a){var s=i.extractEvents(e,t,n,o,a);r(s)}};e.exports=o},function(e){"use strict";var t={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(e){t.currentScrollLeft=e.x,t.currentScrollTop=e.y}};e.exports=t},function(e){"use strict";function t(e){if(null==e)throw new TypeError("Object.assign target cannot be null or undefined");for(var t=Object(e),n=Object.prototype.hasOwnProperty,r=1;r<arguments.length;r++){var i=arguments[r];if(null!=i){var o=Object(i);for(var a in o)n.call(o,a)&&(t[a]=o[a])}}return t}e.exports=t},function(e,t,n){"use strict";function r(e,t){if(!o.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var a=document.createElement("div");a.setAttribute(n,"return;"),r="function"==typeof a[n]}return!r&&i&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var i,o=n(320);o.canUseDOM&&(i=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),e.exports=r},function(e){"use strict";var t={useCreateElement:!1};e.exports=t},function(e,t,n){(function(t){"use strict";var r=n(316),i=n(350),o=n(354),a="function"==typeof Symbol&&Symbol["for"]&&Symbol["for"]("react.element")||60103,s={key:!0,ref:!0,__self:!0,__source:!0},u=function(e,n,r,i,s,u,c){var l={$$typeof:a,type:e,key:n,ref:r,props:c,_owner:u};return"production"!==t.env.NODE_ENV&&(l._store={},o?(Object.defineProperty(l._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(l,"_self",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.defineProperty(l,"_source",{configurable:!1,enumerable:!1,writable:!1,value:s})):(l._store.validated=!1,l._self=i,l._source=s),Object.freeze(l.props),Object.freeze(l)),l};u.createElement=function(e,t,n){var i,o={},a=null,c=null,l=null,p=null;if(null!=t){c=void 0===t.ref?null:t.ref,a=void 0===t.key?null:""+t.key,l=void 0===t.__self?null:t.__self,p=void 0===t.__source?null:t.__source;for(i in t)t.hasOwnProperty(i)&&!s.hasOwnProperty(i)&&(o[i]=t[i])}var f=arguments.length-2;if(1===f)o.children=n;else if(f>1){for(var d=Array(f),h=0;f>h;h++)d[h]=arguments[h+2];o.children=d}if(e&&e.defaultProps){var m=e.defaultProps;for(i in m)"undefined"==typeof o[i]&&(o[i]=m[i])}return u(e,a,c,l,p,r.current,o)},u.createFactory=function(e){var t=u.createElement.bind(null,e);return t.type=e,t},u.cloneAndReplaceKey=function(e,t){var n=u(e.type,t,e.ref,e._self,e._source,e._owner,e.props);return n},u.cloneAndReplaceProps=function(e,n){var r=u(e.type,e.key,e.ref,e._self,e._source,e._owner,n);return"production"!==t.env.NODE_ENV&&(r._store.validated=e._store.validated),r},u.cloneElement=function(e,t,n){var o,a=i({},e.props),c=e.key,l=e.ref,p=e._self,f=e._source,d=e._owner;if(null!=t){void 0!==t.ref&&(l=t.ref,d=r.current),void 0!==t.key&&(c=""+t.key);for(o in t)t.hasOwnProperty(o)&&!s.hasOwnProperty(o)&&(a[o]=t[o])}var h=arguments.length-2;if(1===h)a.children=n;else if(h>1){for(var m=Array(h),v=0;h>v;v++)m[v]=arguments[v+2];a.children=m}return u(e.type,c,l,p,f,d,a)},u.isValidElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===a},e.exports=u}).call(t,n(8))},function(e,t,n){(function(t){"use strict";var n=!1;if("production"!==t.env.NODE_ENV)try{Object.defineProperty({},"x",{get:function(){}}),n=!0}catch(r){}e.exports=n}).call(t,n(8))},function(e){"use strict";function t(e){return!!i[e]}function n(e){i[e]=!0}function r(e){delete i[e]}var i={},o={isNullComponentID:t,registerNullComponentID:n,deregisterNullComponentID:r};e.exports=o},function(e,t,n){(function(t){"use strict";function r(e){return d+e.toString(36)}function i(e,t){return e.charAt(t)===d||t===e.length}function o(e){return""===e||e.charAt(0)===d&&e.charAt(e.length-1)!==d}function a(e,t){return 0===t.indexOf(e)&&i(t,e.length)}function s(e){return e?e.substr(0,e.lastIndexOf(d)):""}function u(e,n){if(o(e)&&o(n)?void 0:"production"!==t.env.NODE_ENV?f(!1,"getNextDescendantID(%s, %s): Received an invalid React DOM ID.",e,n):f(!1),a(e,n)?void 0:"production"!==t.env.NODE_ENV?f(!1,"getNextDescendantID(...): React has made an invalid assumption about the DOM hierarchy. Expected `%s` to be an ancestor of `%s`.",e,n):f(!1),e===n)return e;var r,s=e.length+h;for(r=s;r<n.length&&!i(n,r);r++);return n.substr(0,r)}function c(e,n){var r=Math.min(e.length,n.length);if(0===r)return"";for(var a=0,s=0;r>=s;s++)if(i(e,s)&&i(n,s))a=s;else if(e.charAt(s)!==n.charAt(s))break;var u=e.substr(0,a);return o(u)?void 0:"production"!==t.env.NODE_ENV?f(!1,"getFirstCommonAncestorID(%s, %s): Expected a valid React DOM ID: %s",e,n,u):f(!1),u}function l(e,n,r,i,o,c){e=e||"",n=n||"",e===n?"production"!==t.env.NODE_ENV?f(!1,"traverseParentPath(...): Cannot traverse from and to the same ID, `%s`.",e):f(!1):void 0;var l=a(n,e);l||a(e,n)?void 0:"production"!==t.env.NODE_ENV?f(!1,"traverseParentPath(%s, %s, ...): Cannot traverse from two IDs that do not have a parent path.",e,n):f(!1);for(var p=0,d=l?s:u,h=e;;h=d(h,n)){var v;if(o&&h===e||c&&h===n||(v=r(h,l,i)),v===!1||h===n)break;p++<m?void 0:"production"!==t.env.NODE_ENV?f(!1,"traverseParentPath(%s, %s, ...): Detected an infinite loop while traversing the React DOM ID tree. This may be due to malformed IDs: %s",e,n,h):f(!1)}}var p=n(357),f=n(324),d=".",h=d.length,m=1e4,v={createReactRootID:function(){return r(p.createReactRootIndex())},createReactID:function(e,t){return e+t},getReactRootIDFromNodeID:function(e){if(e&&e.charAt(0)===d&&e.length>1){var t=e.indexOf(d,1);return t>-1?e.substr(0,t):e}return null},traverseEnterLeave:function(e,t,n,r,i){var o=c(e,t);o!==e&&l(e,o,n,r,!1,!0),o!==t&&l(o,t,n,i,!0,!1)},traverseTwoPhase:function(e,t,n){e&&(l("",e,t,n,!0,!1),l(e,"",t,n,!1,!0))},traverseTwoPhaseSkipTarget:function(e,t,n){e&&(l("",e,t,n,!0,!0),l(e,"",t,n,!0,!0))},traverseAncestors:function(e,t,n){l("",e,t,n,!0,!1)},getFirstCommonAncestorID:c,_getNextDescendantID:u,isAncestorIDOf:a,SEPARATOR:d};e.exports=v}).call(t,n(8))},function(e){"use strict";var t={injectCreateReactRootIndex:function(e){n.createReactRootIndex=e}},n={createReactRootIndex:null,injection:t};e.exports=n},function(e){"use strict";var t={remove:function(e){e._reactInternalInstance=void 0},get:function(e){return e._reactInternalInstance},has:function(e){return void 0!==e._reactInternalInstance},set:function(e,t){e._reactInternalInstance=t}};e.exports=t},function(e,t,n){"use strict";var r=n(360),i=/\/?>/,o={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return e.replace(i," "+o.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(o.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var i=r(e);return i===n}};e.exports=o},function(e){"use strict";function t(e){for(var t=1,r=0,i=0,o=e.length,a=-4&o;a>i;){for(;i<Math.min(i+4096,a);i+=4)r+=(t+=e.charCodeAt(i))+(t+=e.charCodeAt(i+1))+(t+=e.charCodeAt(i+2))+(t+=e.charCodeAt(i+3));t%=n,r%=n}for(;o>i;i++)r+=t+=e.charCodeAt(i);return t%=n,r%=n,t|r<<16}var n=65521;e.exports=t},function(e,t,n){"use strict";function r(){i.attachRefs(this,this._currentElement)}var i=n(362),o={mountComponent:function(e,t,n,i){var o=e.mountComponent(t,n,i);return e._currentElement&&null!=e._currentElement.ref&&n.getReactMountReady().enqueue(r,e),o},unmountComponent:function(e){i.detachRefs(e,e._currentElement),e.unmountComponent()},receiveComponent:function(e,t,n,o){var a=e._currentElement;if(t!==a||o!==e._context){var s=i.shouldUpdateRefs(a,t);s&&i.detachRefs(e,a),e.receiveComponent(t,n,o),s&&e._currentElement&&null!=e._currentElement.ref&&n.getReactMountReady().enqueue(r,e)}},performUpdateIfNecessary:function(e,t){e.performUpdateIfNecessary(t)}};e.exports=o},function(e,t,n){"use strict";function r(e,t,n){"function"==typeof e?e(t.getPublicInstance()):o.addComponentAsRefTo(t,e,n)}function i(e,t,n){"function"==typeof e?e(null):o.removeComponentAsRefFrom(t,e,n)}var o=n(363),a={};a.attachRefs=function(e,t){if(null!==t&&t!==!1){var n=t.ref;null!=n&&r(n,e,t._owner)}},a.shouldUpdateRefs=function(e,t){var n=null===e||e===!1,r=null===t||t===!1;return n||r||t._owner!==e._owner||t.ref!==e.ref},a.detachRefs=function(e,t){if(null!==t&&t!==!1){var n=t.ref;null!=n&&i(n,e,t._owner)}},e.exports=a},function(e,t,n){(function(t){"use strict";var r=n(324),i={isValidOwner:function(e){return!(!e||"function"!=typeof e.attachRef||"function"!=typeof e.detachRef)},addComponentAsRefTo:function(e,n,o){i.isValidOwner(o)?void 0:"production"!==t.env.NODE_ENV?r(!1,"addComponentAsRefTo(...): Only a ReactOwner can have refs. You might be adding a ref to a component that was not created inside a component's `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner)."):r(!1),o.attachRef(n,e)},removeComponentAsRefFrom:function(e,n,o){i.isValidOwner(o)?void 0:"production"!==t.env.NODE_ENV?r(!1,"removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might be removing a ref to a component that was not created inside a component's `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner)."):r(!1),o.getPublicInstance().refs[n]===e.getPublicInstance()&&o.detachRef(n)}};e.exports=i}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e){u.enqueueUpdate(e)}function i(e,n){var r=s.get(e);return r?("production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?p(null==o.current,"%s(...): Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state.",n):void 0),r):("production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?p(!n,"%s(...): Can only update a mounted or mounting component. This usually means you called %s() on an unmounted component. This is a no-op. Please check the code for the %s component.",n,n,e.constructor.displayName):void 0),null)}var o=n(316),a=n(353),s=n(358),u=n(365),c=n(350),l=n(324),p=n(336),f={isMounted:function(e){if("production"!==t.env.NODE_ENV){var n=o.current;null!==n&&("production"!==t.env.NODE_ENV?p(n._warnedAboutRefsInRender,"%s is accessing isMounted inside its render() function. render() should be a pure function of props and state. It should never access something that requires stale data from the previous render, such as refs. Move this logic to componentDidMount and componentDidUpdate instead.",n.getName()||"A component"):void 0,n._warnedAboutRefsInRender=!0)}var r=s.get(e);return r?!!r._renderedComponent:!1},enqueueCallback:function(e,n){"function"!=typeof n?"production"!==t.env.NODE_ENV?l(!1,"enqueueCallback(...): You called `setProps`, `replaceProps`, `setState`, `replaceState`, or `forceUpdate` with a callback that isn't callable."):l(!1):void 0;var o=i(e);return o?(o._pendingCallbacks?o._pendingCallbacks.push(n):o._pendingCallbacks=[n],void r(o)):null},enqueueCallbackInternal:function(e,n){"function"!=typeof n?"production"!==t.env.NODE_ENV?l(!1,"enqueueCallback(...): You called `setProps`, `replaceProps`, `setState`, `replaceState`, or `forceUpdate` with a callback that isn't callable."):l(!1):void 0,e._pendingCallbacks?e._pendingCallbacks.push(n):e._pendingCallbacks=[n],r(e)},enqueueForceUpdate:function(e){var t=i(e,"forceUpdate");t&&(t._pendingForceUpdate=!0,r(t))},enqueueReplaceState:function(e,t){var n=i(e,"replaceState");n&&(n._pendingStateQueue=[t],n._pendingReplaceState=!0,r(n))},enqueueSetState:function(e,t){var n=i(e,"setState");if(n){var o=n._pendingStateQueue||(n._pendingStateQueue=[]);o.push(t),r(n)}},enqueueSetProps:function(e,t){var n=i(e,"setProps");n&&f.enqueueSetPropsInternal(n,t)},enqueueSetPropsInternal:function(e,n){var i=e._topLevelWrapper;i?void 0:"production"!==t.env.NODE_ENV?l(!1,"setProps(...): You called `setProps` on a component with a parent. This is an anti-pattern since props will get reactively updated when rendered. Instead, change the owner's `render` method to pass the correct value as props to the component where it is created."):l(!1);var o=i._pendingElement||i._currentElement,s=o.props,u=c({},s.props,n);i._pendingElement=a.cloneAndReplaceProps(o,a.cloneAndReplaceProps(s,u)),r(i)},enqueueReplaceProps:function(e,t){var n=i(e,"replaceProps");n&&f.enqueueReplacePropsInternal(n,t)},enqueueReplacePropsInternal:function(e,n){var i=e._topLevelWrapper;i?void 0:"production"!==t.env.NODE_ENV?l(!1,"replaceProps(...): You called `replaceProps` on a component with a parent. This is an anti-pattern since props will get reactively updated when rendered. Instead, change the owner's `render` method to pass the correct value as props to the component where it is created."):l(!1);var o=i._pendingElement||i._currentElement,s=o.props;i._pendingElement=a.cloneAndReplaceProps(o,a.cloneAndReplaceProps(s,n)),r(i)},enqueueElementInternal:function(e,t){e._pendingElement=t,r(e)}};e.exports=f}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(){$.ReactReconcileTransaction&&x?void 0:"production"!==t.env.NODE_ENV?v(!1,"ReactUpdates: must inject a reconcile transaction class and batching strategy"):v(!1)}function i(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=l.getPooled(),this.reconcileTransaction=$.ReactReconcileTransaction.getPooled(!1)}function o(e,t,n,i,o,a){r(),x.batchedUpdates(e,t,n,i,o,a)}function a(e,t){return e._mountOrder-t._mountOrder}function s(e){var n=e.dirtyComponentsLength;n!==g.length?"production"!==t.env.NODE_ENV?v(!1,"Expected flush transaction's stored dirty-components length (%s) to match dirty-components array length (%s).",n,g.length):v(!1):void 0,g.sort(a);for(var r=0;n>r;r++){var i=g[r],o=i._pendingCallbacks;if(i._pendingCallbacks=null,d.performUpdateIfNecessary(i,e.reconcileTransaction),o)for(var s=0;s<o.length;s++)e.callbackQueue.enqueue(o[s],i.getPublicInstance())}}function u(e){return r(),x.isBatchingUpdates?void g.push(e):void x.batchedUpdates(u,e)}function c(e,n){x.isBatchingUpdates?void 0:"production"!==t.env.NODE_ENV?v(!1,"ReactUpdates.asap: Can't enqueue an asap callback in a context whereupdates are not being batched."):v(!1),y.enqueue(e,n),b=!0}var l=n(366),p=n(367),f=n(329),d=n(361),h=n(368),m=n(350),v=n(324),g=[],y=l.getPooled(),b=!1,x=null,w={initialize:function(){this.dirtyComponentsLength=g.length},close:function(){this.dirtyComponentsLength!==g.length?(g.splice(0,this.dirtyComponentsLength),C()):g.length=0}},E={initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}},_=[w,E];m(i.prototype,h.Mixin,{getTransactionWrappers:function(){return _},destructor:function(){this.dirtyComponentsLength=null,l.release(this.callbackQueue),this.callbackQueue=null,$.ReactReconcileTransaction.release(this.reconcileTransaction),this.reconcileTransaction=null},perform:function(e,t,n){return h.Mixin.perform.call(this,this.reconcileTransaction.perform,this.reconcileTransaction,e,t,n)}}),p.addPoolingTo(i);var C=function(){for(;g.length||b;){if(g.length){var e=i.getPooled();e.perform(s,null,e),i.release(e)}if(b){b=!1;var t=y;y=l.getPooled(),t.notifyAll(),l.release(t)}}};C=f.measure("ReactUpdates","flushBatchedUpdates",C);var N={injectReconcileTransaction:function(e){e?void 0:"production"!==t.env.NODE_ENV?v(!1,"ReactUpdates: must provide a reconcile transaction class"):v(!1),$.ReactReconcileTransaction=e},injectBatchingStrategy:function(e){e?void 0:"production"!==t.env.NODE_ENV?v(!1,"ReactUpdates: must provide a batching strategy"):v(!1),"function"!=typeof e.batchedUpdates?"production"!==t.env.NODE_ENV?v(!1,"ReactUpdates: must provide a batchedUpdates() function"):v(!1):void 0,"boolean"!=typeof e.isBatchingUpdates?"production"!==t.env.NODE_ENV?v(!1,"ReactUpdates: must provide an isBatchingUpdates boolean attribute"):v(!1):void 0,x=e}},$={ReactReconcileTransaction:null,batchedUpdates:o,enqueueUpdate:u,flushBatchedUpdates:C,injection:N,asap:c};e.exports=$}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(){this._callbacks=null,this._contexts=null}var i=n(367),o=n(350),a=n(324);o(r.prototype,{enqueue:function(e,t){this._callbacks=this._callbacks||[],this._contexts=this._contexts||[],this._callbacks.push(e),this._contexts.push(t)},notifyAll:function(){var e=this._callbacks,n=this._contexts;if(e){e.length!==n.length?"production"!==t.env.NODE_ENV?a(!1,"Mismatched list of contexts in callback queue"):a(!1):void 0,this._callbacks=null,this._contexts=null;for(var r=0;r<e.length;r++)e[r].call(n[r]);e.length=0,n.length=0}},reset:function(){this._callbacks=null,this._contexts=null},destructor:function(){this.reset()}}),i.addPoolingTo(r),e.exports=r}).call(t,n(8))},function(e,t,n){(function(t){"use strict";var r=n(324),i=function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)},o=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},a=function(e,t,n){var r=this;if(r.instancePool.length){var i=r.instancePool.pop();return r.call(i,e,t,n),i}return new r(e,t,n)},s=function(e,t,n,r){var i=this;if(i.instancePool.length){var o=i.instancePool.pop();return i.call(o,e,t,n,r),o}return new i(e,t,n,r)},u=function(e,t,n,r,i){var o=this;if(o.instancePool.length){var a=o.instancePool.pop();return o.call(a,e,t,n,r,i),a}return new o(e,t,n,r,i)},c=function(e){var n=this;e instanceof n?void 0:"production"!==t.env.NODE_ENV?r(!1,"Trying to release an instance into a pool of a different type."):r(!1),e.destructor(),n.instancePool.length<n.poolSize&&n.instancePool.push(e)},l=10,p=i,f=function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||p,n.poolSize||(n.poolSize=l),n.release=c,n},d={addPoolingTo:f,oneArgumentPooler:i,twoArgumentPooler:o,threeArgumentPooler:a,fourArgumentPooler:s,fiveArgumentPooler:u};e.exports=d}).call(t,n(8))},function(e,t,n){(function(t){"use strict";var r=n(324),i={reinitializeTransaction:function(){this.transactionWrappers=this.getTransactionWrappers(),this.wrapperInitData?this.wrapperInitData.length=0:this.wrapperInitData=[],this._isInTransaction=!1},_isInTransaction:!1,getTransactionWrappers:null,isInTransaction:function(){return!!this._isInTransaction},perform:function(e,n,i,o,a,s,u,c){this.isInTransaction()?"production"!==t.env.NODE_ENV?r(!1,"Transaction.perform(...): Cannot initialize a transaction when there is already an outstanding transaction."):r(!1):void 0;var l,p;try{this._isInTransaction=!0,l=!0,this.initializeAll(0),p=e.call(n,i,o,a,s,u,c),l=!1}finally{try{if(l)try{this.closeAll(0)}catch(f){}else this.closeAll(0)}finally{this._isInTransaction=!1}}return p},initializeAll:function(e){for(var t=this.transactionWrappers,n=e;n<t.length;n++){var r=t[n];try{this.wrapperInitData[n]=o.OBSERVED_ERROR,this.wrapperInitData[n]=r.initialize?r.initialize.call(this):null}finally{if(this.wrapperInitData[n]===o.OBSERVED_ERROR)try{this.initializeAll(n+1)}catch(i){}}}},closeAll:function(e){this.isInTransaction()?void 0:"production"!==t.env.NODE_ENV?r(!1,"Transaction.closeAll(): Cannot close transaction when none are open."):r(!1);for(var n=this.transactionWrappers,i=e;i<n.length;i++){var a,s=n[i],u=this.wrapperInitData[i];try{a=!0,u!==o.OBSERVED_ERROR&&s.close&&s.close.call(this,u),a=!1}finally{if(a)try{this.closeAll(i+1)}catch(c){}}}this.wrapperInitData.length=0}},o={Mixin:i,OBSERVED_ERROR:{}};e.exports=o}).call(t,n(8))},function(e,t,n){(function(t){"use strict";var n={};"production"!==t.env.NODE_ENV&&Object.freeze(n),e.exports=n}).call(t,n(8))},function(e,t,n){"use strict";function r(e,t){var n=!0;e:for(;n;){var r=e,o=t;if(n=!1,r&&o){if(r===o)return!0;if(i(r))return!1;if(i(o)){e=r,t=o.parentNode,n=!0;continue e}return r.contains?r.contains(o):r.compareDocumentPosition?!!(16&r.compareDocumentPosition(o)):!1}return!1}}var i=n(371);e.exports=r},function(e,t,n){"use strict";function r(e){return i(e)&&3==e.nodeType}var i=n(372);e.exports=r},function(e){"use strict";function t(e){return!(!e||!("function"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}e.exports=t},function(e,t,n){(function(t){"use strict";function r(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}function i(e){return"function"==typeof e&&"undefined"!=typeof e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}function o(e){var n;if(null===e||e===!1)n=new s(o);else if("object"==typeof e){var a=e;!a||"function"!=typeof a.type&&"string"!=typeof a.type?"production"!==t.env.NODE_ENV?l(!1,"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",null==a.type?a.type:typeof a.type,r(a._owner)):l(!1):void 0,n="string"==typeof a.type?u.createInternalComponent(a):i(a.type)?new a.type(a):new f}else"string"==typeof e||"number"==typeof e?n=u.createInstanceForText(e):"production"!==t.env.NODE_ENV?l(!1,"Encountered invalid React node of type %s",typeof e):l(!1);return"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?p("function"==typeof n.construct&&"function"==typeof n.mountComponent&&"function"==typeof n.receiveComponent&&"function"==typeof n.unmountComponent,"Only React Components can be mounted."):void 0),n.construct(e),n._mountIndex=0,n._mountImage=null,"production"!==t.env.NODE_ENV&&(n._isOwnerNecessary=!1,n._warnedAboutRefsInRender=!1),"production"!==t.env.NODE_ENV&&Object.preventExtensions&&Object.preventExtensions(n),n}var a=n(374),s=n(379),u=n(380),c=n(350),l=n(324),p=n(336),f=function(){};c(f.prototype,a.Mixin,{_instantiateReactComponent:o}),e.exports=o}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e){var t=e._currentElement._owner||null;if(t){var n=t.getName();if(n)return" Check the render method of `"+n+"`."}return""}function i(){}var o=n(375),a=n(316),s=n(353),u=n(358),c=n(329),l=n(376),p=n(377),f=n(361),d=n(364),h=n(350),m=n(369),v=n(324),g=n(378),y=n(336);i.prototype.render=function(){var e=u.get(this)._currentElement.type;return e(this.props,this.context,this.updater)};var b=1,x={construct:function(e){
14
+ this._currentElement=e,this._rootNodeID=null,this._instance=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null},mountComponent:function(e,n,r){this._context=r,this._mountOrder=b++,this._rootNodeID=e;var o,c,l=this._processProps(this._currentElement.props),p=this._processContext(r),h=this._currentElement.type,g="prototype"in h;if(g)if("production"!==t.env.NODE_ENV){a.current=this;try{o=new h(l,p,d)}finally{a.current=null}}else o=new h(l,p,d);(!g||null===o||o===!1||s.isValidElement(o))&&(c=o,o=new i(h)),"production"!==t.env.NODE_ENV&&(null==o.render?"production"!==t.env.NODE_ENV?y(!1,"%s(...): No `render` method found on the returned component instance: you may have forgotten to define `render`, returned null/false from a stateless component, or tried to render an element whose type is a function that isn't a React component.",h.displayName||h.name||"Component"):void 0:"production"!==t.env.NODE_ENV?y(h.prototype&&h.prototype.isReactComponent||!g||!(o instanceof h),"%s(...): React component classes must extend React.Component.",h.displayName||h.name||"Component"):void 0),o.props=l,o.context=p,o.refs=m,o.updater=d,this._instance=o,u.set(o,this),"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?y(!o.getInitialState||o.getInitialState.isReactClassApproved,"getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?",this.getName()||"a component"):void 0,"production"!==t.env.NODE_ENV?y(!o.getDefaultProps||o.getDefaultProps.isReactClassApproved,"getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.",this.getName()||"a component"):void 0,"production"!==t.env.NODE_ENV?y(!o.propTypes,"propTypes was defined as an instance property on %s. Use a static property to define propTypes instead.",this.getName()||"a component"):void 0,"production"!==t.env.NODE_ENV?y(!o.contextTypes,"contextTypes was defined as an instance property on %s. Use a static property to define contextTypes instead.",this.getName()||"a component"):void 0,"production"!==t.env.NODE_ENV?y("function"!=typeof o.componentShouldUpdate,"%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.",this.getName()||"A component"):void 0,"production"!==t.env.NODE_ENV?y("function"!=typeof o.componentDidUnmount,"%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?",this.getName()||"A component"):void 0,"production"!==t.env.NODE_ENV?y("function"!=typeof o.componentWillRecieveProps,"%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?",this.getName()||"A component"):void 0);var x=o.state;void 0===x&&(o.state=x=null),"object"!=typeof x||Array.isArray(x)?"production"!==t.env.NODE_ENV?v(!1,"%s.state: must be set to an object or null",this.getName()||"ReactCompositeComponent"):v(!1):void 0,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,o.componentWillMount&&(o.componentWillMount(),this._pendingStateQueue&&(o.state=this._processPendingState(o.props,o.context))),void 0===c&&(c=this._renderValidatedComponent()),this._renderedComponent=this._instantiateReactComponent(c);var w=f.mountComponent(this._renderedComponent,e,n,this._processChildContext(r));return o.componentDidMount&&n.getReactMountReady().enqueue(o.componentDidMount,o),w},unmountComponent:function(){var e=this._instance;e.componentWillUnmount&&e.componentWillUnmount(),f.unmountComponent(this._renderedComponent),this._renderedComponent=null,this._instance=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=null,this._topLevelWrapper=null,u.remove(e)},_maskContext:function(e){var t=null,n=this._currentElement.type,r=n.contextTypes;if(!r)return m;t={};for(var i in r)t[i]=e[i];return t},_processContext:function(e){var n=this._maskContext(e);if("production"!==t.env.NODE_ENV){var r=this._currentElement.type;r.contextTypes&&this._checkPropTypes(r.contextTypes,n,l.context)}return n},_processChildContext:function(e){var n=this._currentElement.type,r=this._instance,i=r.getChildContext&&r.getChildContext();if(i){"object"!=typeof n.childContextTypes?"production"!==t.env.NODE_ENV?v(!1,"%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().",this.getName()||"ReactCompositeComponent"):v(!1):void 0,"production"!==t.env.NODE_ENV&&this._checkPropTypes(n.childContextTypes,i,l.childContext);for(var o in i)o in n.childContextTypes?void 0:"production"!==t.env.NODE_ENV?v(!1,'%s.getChildContext(): key "%s" is not defined in childContextTypes.',this.getName()||"ReactCompositeComponent",o):v(!1);return h({},e,i)}return e},_processProps:function(e){if("production"!==t.env.NODE_ENV){var n=this._currentElement.type;n.propTypes&&this._checkPropTypes(n.propTypes,e,l.prop)}return e},_checkPropTypes:function(e,n,i){var o=this.getName();for(var a in e)if(e.hasOwnProperty(a)){var s;try{"function"!=typeof e[a]?"production"!==t.env.NODE_ENV?v(!1,"%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.",o||"React class",p[i],a):v(!1):void 0,s=e[a](n,a,o,i)}catch(u){s=u}if(s instanceof Error){var c=r(this);i===l.prop?"production"!==t.env.NODE_ENV?y(!1,"Failed Composite propType: %s%s",s.message,c):void 0:"production"!==t.env.NODE_ENV?y(!1,"Failed Context Types: %s%s",s.message,c):void 0}}},receiveComponent:function(e,t,n){var r=this._currentElement,i=this._context;this._pendingElement=null,this.updateComponent(t,r,e,i,n)},performUpdateIfNecessary:function(e){null!=this._pendingElement&&f.receiveComponent(this,this._pendingElement||this._currentElement,e,this._context),(null!==this._pendingStateQueue||this._pendingForceUpdate)&&this.updateComponent(e,this._currentElement,this._currentElement,this._context,this._context)},updateComponent:function(e,n,r,i,o){var a,s=this._instance,u=this._context===o?s.context:this._processContext(o);n===r?a=r.props:(a=this._processProps(r.props),s.componentWillReceiveProps&&s.componentWillReceiveProps(a,u));var c=this._processPendingState(a,u),l=this._pendingForceUpdate||!s.shouldComponentUpdate||s.shouldComponentUpdate(a,c,u);"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?y("undefined"!=typeof l,"%s.shouldComponentUpdate(): Returned undefined instead of a boolean value. Make sure to return true or false.",this.getName()||"ReactCompositeComponent"):void 0),l?(this._pendingForceUpdate=!1,this._performComponentUpdate(r,a,c,u,e,o)):(this._currentElement=r,this._context=o,s.props=a,s.state=c,s.context=u)},_processPendingState:function(e,t){var n=this._instance,r=this._pendingStateQueue,i=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(i&&1===r.length)return r[0];for(var o=h({},i?r[0]:n.state),a=i?1:0;a<r.length;a++){var s=r[a];h(o,"function"==typeof s?s.call(n,o,e,t):s)}return o},_performComponentUpdate:function(e,t,n,r,i,o){var a,s,u,c=this._instance,l=Boolean(c.componentDidUpdate);l&&(a=c.props,s=c.state,u=c.context),c.componentWillUpdate&&c.componentWillUpdate(t,n,r),this._currentElement=e,this._context=o,c.props=t,c.state=n,c.context=r,this._updateRenderedComponent(i,o),l&&i.getReactMountReady().enqueue(c.componentDidUpdate.bind(c,a,s,u),c)},_updateRenderedComponent:function(e,t){var n=this._renderedComponent,r=n._currentElement,i=this._renderValidatedComponent();if(g(r,i))f.receiveComponent(n,i,e,this._processChildContext(t));else{var o=this._rootNodeID,a=n._rootNodeID;f.unmountComponent(n),this._renderedComponent=this._instantiateReactComponent(i);var s=f.mountComponent(this._renderedComponent,o,e,this._processChildContext(t));this._replaceNodeWithMarkupByID(a,s)}},_replaceNodeWithMarkupByID:function(e,t){o.replaceNodeWithMarkupByID(e,t)},_renderValidatedComponentWithoutOwnerOrContext:function(){var e=this._instance,n=e.render();return"production"!==t.env.NODE_ENV&&"undefined"==typeof n&&e.render._isMockFunction&&(n=null),n},_renderValidatedComponent:function(){var e;a.current=this;try{e=this._renderValidatedComponentWithoutOwnerOrContext()}finally{a.current=null}return null===e||e===!1||s.isValidElement(e)?void 0:"production"!==t.env.NODE_ENV?v(!1,"%s.render(): A valid ReactComponent must be returned. You may have returned undefined, an array or some other invalid object.",this.getName()||"ReactCompositeComponent"):v(!1),e},attachRef:function(e,n){var r=this.getPublicInstance();null==r?"production"!==t.env.NODE_ENV?v(!1,"Stateless function components cannot have refs."):v(!1):void 0;var i=n.getPublicInstance();if("production"!==t.env.NODE_ENV){var o=n&&n.getName?n.getName():"a component";"production"!==t.env.NODE_ENV?y(null!=i,'Stateless function components cannot be given refs (See ref "%s" in %s created by %s). Attempts to access this ref will fail.',e,o,this.getName()):void 0}var a=r.refs===m?r.refs={}:r.refs;a[e]=i},detachRef:function(e){var t=this.getPublicInstance().refs;delete t[e]},getName:function(){var e=this._currentElement.type,t=this._instance&&this._instance.constructor;return e.displayName||t&&t.displayName||e.name||t&&t.name||null},getPublicInstance:function(){var e=this._instance;return e instanceof i?null:e},_instantiateReactComponent:null};c.measureMethods(x,"ReactCompositeComponent",{mountComponent:"mountComponent",updateComponent:"updateComponent",_renderValidatedComponent:"_renderValidatedComponent"});var w={Mixin:x};e.exports=w}).call(t,n(8))},function(e,t,n){(function(t){"use strict";var r=n(324),i=!1,o={unmountIDFromEnvironment:null,replaceNodeWithMarkupByID:null,processChildrenUpdates:null,injection:{injectEnvironment:function(e){i?"production"!==t.env.NODE_ENV?r(!1,"ReactCompositeComponent: injectEnvironment() can only be called once."):r(!1):void 0,o.unmountIDFromEnvironment=e.unmountIDFromEnvironment,o.replaceNodeWithMarkupByID=e.replaceNodeWithMarkupByID,o.processChildrenUpdates=e.processChildrenUpdates,i=!0}}};e.exports=o}).call(t,n(8))},function(e,t,n){"use strict";var r=n(328),i=r({prop:null,context:null,childContext:null});e.exports=i},function(e,t,n){(function(t){"use strict";var n={};"production"!==t.env.NODE_ENV&&(n={prop:"prop",context:"context",childContext:"child context"}),e.exports=n}).call(t,n(8))},function(e){"use strict";function t(e,t){var n=null===e||e===!1,r=null===t||t===!1;if(n||r)return n===r;var i=typeof e,o=typeof t;return"string"===i||"number"===i?"string"===o||"number"===o:"object"===o&&e.type===t.type&&e.key===t.key}e.exports=t},function(e,t,n){"use strict";var r,i=n(353),o=n(355),a=n(361),s=n(350),u={injectEmptyComponent:function(e){r=i.createElement(e)}},c=function(e){this._currentElement=null,this._rootNodeID=null,this._renderedComponent=e(r)};s(c.prototype,{construct:function(){},mountComponent:function(e,t,n){return o.registerNullComponentID(e),this._rootNodeID=e,a.mountComponent(this._renderedComponent,e,t,n)},receiveComponent:function(){},unmountComponent:function(){a.unmountComponent(this._renderedComponent),o.deregisterNullComponentID(this._rootNodeID),this._rootNodeID=null,this._renderedComponent=null}}),c.injection=u,e.exports=c},function(e,t,n){(function(t){"use strict";function r(e){if("function"==typeof e.type)return e.type;var t=e.type,n=p[t];return null==n&&(p[t]=n=c(t)),n}function i(e){return l?void 0:"production"!==t.env.NODE_ENV?u(!1,"There is no registered component for the tag %s",e.type):u(!1),new l(e.type,e.props)}function o(e){return new f(e)}function a(e){return e instanceof f}var s=n(350),u=n(324),c=null,l=null,p={},f=null,d={injectGenericComponentClass:function(e){l=e},injectTextComponentClass:function(e){f=e},injectComponentClasses:function(e){s(p,e)}},h={getComponentClassForElement:r,createInternalComponent:i,createInstanceForText:o,isTextComponent:a,injection:d};e.exports=h}).call(t,n(8))},function(e,t,n){(function(t){"use strict";var r=n(350),i=n(326),o=n(336),a=i;if("production"!==t.env.NODE_ENV){var s=["address","applet","area","article","aside","base","basefont","bgsound","blockquote","body","br","button","caption","center","col","colgroup","dd","details","dir","div","dl","dt","embed","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","img","input","isindex","li","link","listing","main","marquee","menu","menuitem","meta","nav","noembed","noframes","noscript","object","ol","p","param","plaintext","pre","script","section","select","source","style","summary","table","tbody","td","template","textarea","tfoot","th","thead","title","tr","track","ul","wbr","xmp"],u=["applet","caption","html","table","td","th","marquee","object","template","foreignObject","desc","title"],c=u.concat(["button"]),l=["dd","dt","li","option","optgroup","p","rp","rt"],p={parentTag:null,formTag:null,aTagInScope:null,buttonTagInScope:null,nobrTagInScope:null,pTagInButtonScope:null,listItemTagAutoclosing:null,dlItemTagAutoclosing:null},f=function(e,t,n){var i=r({},e||p),o={tag:t,instance:n};return-1!==u.indexOf(t)&&(i.aTagInScope=null,i.buttonTagInScope=null,i.nobrTagInScope=null),-1!==c.indexOf(t)&&(i.pTagInButtonScope=null),-1!==s.indexOf(t)&&"address"!==t&&"div"!==t&&"p"!==t&&(i.listItemTagAutoclosing=null,i.dlItemTagAutoclosing=null),i.parentTag=o,"form"===t&&(i.formTag=o),"a"===t&&(i.aTagInScope=o),"button"===t&&(i.buttonTagInScope=o),"nobr"===t&&(i.nobrTagInScope=o),"p"===t&&(i.pTagInButtonScope=o),"li"===t&&(i.listItemTagAutoclosing=o),("dd"===t||"dt"===t)&&(i.dlItemTagAutoclosing=o),i},d=function(e,t){switch(t){case"select":return"option"===e||"optgroup"===e||"#text"===e;case"optgroup":return"option"===e||"#text"===e;case"option":return"#text"===e;case"tr":return"th"===e||"td"===e||"style"===e||"script"===e||"template"===e;case"tbody":case"thead":case"tfoot":return"tr"===e||"style"===e||"script"===e||"template"===e;case"colgroup":return"col"===e||"template"===e;case"table":return"caption"===e||"colgroup"===e||"tbody"===e||"tfoot"===e||"thead"===e||"style"===e||"script"===e||"template"===e;case"head":return"base"===e||"basefont"===e||"bgsound"===e||"link"===e||"meta"===e||"title"===e||"noscript"===e||"noframes"===e||"style"===e||"script"===e||"template"===e;case"html":return"head"===e||"body"===e}switch(e){case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return"h1"!==t&&"h2"!==t&&"h3"!==t&&"h4"!==t&&"h5"!==t&&"h6"!==t;case"rp":case"rt":return-1===l.indexOf(t);case"caption":case"col":case"colgroup":case"frame":case"head":case"tbody":case"td":case"tfoot":case"th":case"thead":case"tr":return null==t}return!0},h=function(e,t){switch(e){case"address":case"article":case"aside":case"blockquote":case"center":case"details":case"dialog":case"dir":case"div":case"dl":case"fieldset":case"figcaption":case"figure":case"footer":case"header":case"hgroup":case"main":case"menu":case"nav":case"ol":case"p":case"section":case"summary":case"ul":case"pre":case"listing":case"table":case"hr":case"xmp":case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return t.pTagInButtonScope;case"form":return t.formTag||t.pTagInButtonScope;case"li":return t.listItemTagAutoclosing;case"dd":case"dt":return t.dlItemTagAutoclosing;case"button":return t.buttonTagInScope;case"a":return t.aTagInScope;case"nobr":return t.nobrTagInScope}return null},m=function(e){if(!e)return[];var t=[];do t.push(e);while(e=e._currentElement._owner);return t.reverse(),t},v={};a=function(e,n,r){r=r||p;var i=r.parentTag,a=i&&i.tag,s=d(e,a)?null:i,u=s?null:h(e,r),c=s||u;if(c){var l,f=c.tag,g=c.instance,y=n&&n._currentElement._owner,b=g&&g._currentElement._owner,x=m(y),w=m(b),E=Math.min(x.length,w.length),_=-1;for(l=0;E>l&&x[l]===w[l];l++)_=l;var C="(unknown)",N=x.slice(_+1).map(function(e){return e.getName()||C}),$=w.slice(_+1).map(function(e){return e.getName()||C}),O=[].concat(-1!==_?x[_].getName()||C:[],$,f,u?["..."]:[],N,e).join(" > "),T=!!s+"|"+e+"|"+f+"|"+O;if(v[T])return;if(v[T]=!0,s){var P="";"table"===f&&"tr"===e&&(P+=" Add a <tbody> to your code to match the DOM tree generated by the browser."),"production"!==t.env.NODE_ENV?o(!1,"validateDOMNesting(...): <%s> cannot appear as a child of <%s>. See %s.%s",e,f,O,P):void 0}else"production"!==t.env.NODE_ENV?o(!1,"validateDOMNesting(...): <%s> cannot appear as a descendant of <%s>. See %s.",e,f,O):void 0}},a.ancestorInfoContextKey="__validateDOMNesting_ancestorInfo$"+Math.random().toString(36).slice(2),a.updatedAncestorInfo=f,a.isTagValidInContext=function(e,t){t=t||p;var n=t.parentTag,r=n&&n.tag;return d(e,r)&&!h(e,t)}}e.exports=a}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(){if(!N&&(N=!0,g.EventEmitter.injectReactEventListener(v),g.EventPluginHub.injectEventPluginOrder(s),g.EventPluginHub.injectInstanceHandle(y),g.EventPluginHub.injectMount(b),g.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:_,EnterLeaveEventPlugin:u,ChangeEventPlugin:o,SelectEventPlugin:w,BeforeInputEventPlugin:i}),g.NativeComponent.injectGenericComponentClass(h),g.NativeComponent.injectTextComponentClass(m),g.Class.injectMixin(p),g.DOMProperty.injectDOMPropertyConfig(l),g.DOMProperty.injectDOMPropertyConfig(C),g.EmptyComponent.injectEmptyComponent("noscript"),g.Updates.injectReconcileTransaction(x),g.Updates.injectBatchingStrategy(d),g.RootIndex.injectCreateReactRootIndex(c.canUseDOM?a.createReactRootIndex:E.createReactRootIndex),g.Component.injectEnvironment(f),"production"!==t.env.NODE_ENV)){var e=c.canUseDOM&&window.location.href||"";if(/[?&]react_perf\b/.test(e)){var r=n(453);r.start()}}}var i=n(383),o=n(391),a=n(394),s=n(395),u=n(396),c=n(320),l=n(400),p=n(401),f=n(337),d=n(403),h=n(404),m=n(317),v=n(429),g=n(432),y=n(356),b=n(339),x=n(436),w=n(441),E=n(442),_=n(443),C=n(452),N=!1;e.exports={inject:r}}).call(t,n(8))},function(e,t,n){"use strict";function r(){var e=window.opera;return"object"==typeof e&&"function"==typeof e.version&&parseInt(e.version(),10)<=12}function i(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}function o(e){switch(e){case T.topCompositionStart:return P.compositionStart;case T.topCompositionEnd:return P.compositionEnd;case T.topCompositionUpdate:return P.compositionUpdate}}function a(e,t){return e===T.topKeyDown&&t.keyCode===w}function s(e,t){switch(e){case T.topKeyUp:return-1!==x.indexOf(t.keyCode);case T.topKeyDown:return t.keyCode!==w;case T.topKeyPress:case T.topMouseDown:case T.topBlur:return!0;default:return!1}}function u(e){var t=e.detail;return"object"==typeof t&&"data"in t?t.data:null}function c(e,t,n,r,i){var c,l;if(E?c=o(e):D?s(e,r)&&(c=P.compositionEnd):a(e,r)&&(c=P.compositionStart),!c)return null;N&&(D||c!==P.compositionStart?c===P.compositionEnd&&D&&(l=D.getData()):D=v.getPooled(t));var p=g.getPooled(c,n,r,i);if(l)p.data=l;else{var f=u(r);null!==f&&(p.data=f)}return h.accumulateTwoPhaseDispatches(p),p}function l(e,t){switch(e){case T.topCompositionEnd:return u(t);case T.topKeyPress:var n=t.which;return n!==$?null:(S=!0,O);case T.topTextInput:var r=t.data;return r===O&&S?null:r;default:return null}}function p(e,t){if(D){if(e===T.topCompositionEnd||s(e,t)){var n=D.getData();return v.release(D),D=null,n}return null}switch(e){case T.topPaste:return null;case T.topKeyPress:return t.which&&!i(t)?String.fromCharCode(t.which):null;case T.topCompositionEnd:return N?null:t.data;default:return null}}function f(e,t,n,r,i){var o;if(o=C?l(e,r):p(e,r),!o)return null;var a=y.getPooled(P.beforeInput,n,r,i);return a.data=o,h.accumulateTwoPhaseDispatches(a),a}var d=n(341),h=n(384),m=n(320),v=n(385),g=n(387),y=n(389),b=n(390),x=[9,13,27,32],w=229,E=m.canUseDOM&&"CompositionEvent"in window,_=null;m.canUseDOM&&"documentMode"in document&&(_=document.documentMode);var C=m.canUseDOM&&"TextEvent"in window&&!_&&!r(),N=m.canUseDOM&&(!E||_&&_>8&&11>=_),$=32,O=String.fromCharCode($),T=d.topLevelTypes,P={beforeInput:{phasedRegistrationNames:{bubbled:b({onBeforeInput:null}),captured:b({onBeforeInputCapture:null})},dependencies:[T.topCompositionEnd,T.topKeyPress,T.topTextInput,T.topPaste]},compositionEnd:{phasedRegistrationNames:{bubbled:b({onCompositionEnd:null}),captured:b({onCompositionEndCapture:null})},dependencies:[T.topBlur,T.topCompositionEnd,T.topKeyDown,T.topKeyPress,T.topKeyUp,T.topMouseDown]},compositionStart:{phasedRegistrationNames:{bubbled:b({onCompositionStart:null}),captured:b({onCompositionStartCapture:null})},dependencies:[T.topBlur,T.topCompositionStart,T.topKeyDown,T.topKeyPress,T.topKeyUp,T.topMouseDown]},compositionUpdate:{phasedRegistrationNames:{bubbled:b({onCompositionUpdate:null}),captured:b({onCompositionUpdateCapture:null})},dependencies:[T.topBlur,T.topCompositionUpdate,T.topKeyDown,T.topKeyPress,T.topKeyUp,T.topMouseDown]}},S=!1,D=null,R={eventTypes:P,extractEvents:function(e,t,n,r,i){return[c(e,t,n,r,i),f(e,t,n,r,i)]}};e.exports=R},function(e,t,n){(function(t){"use strict";function r(e,t,n){var r=t.dispatchConfig.phasedRegistrationNames[n];return b(e,r)}function i(e,n,i){"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?m(e,"Dispatching id must not be null"):void 0);var o=n?y.bubbled:y.captured,a=r(e,i,o);a&&(i._dispatchListeners=v(i._dispatchListeners,a),i._dispatchIDs=v(i._dispatchIDs,e))}function o(e){e&&e.dispatchConfig.phasedRegistrationNames&&h.injection.getInstanceHandle().traverseTwoPhase(e.dispatchMarker,i,e)}function a(e){e&&e.dispatchConfig.phasedRegistrationNames&&h.injection.getInstanceHandle().traverseTwoPhaseSkipTarget(e.dispatchMarker,i,e)}function s(e,t,n){if(n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,i=b(e,r);i&&(n._dispatchListeners=v(n._dispatchListeners,i),n._dispatchIDs=v(n._dispatchIDs,e))}}function u(e){e&&e.dispatchConfig.registrationName&&s(e.dispatchMarker,null,e)}function c(e){g(e,o)}function l(e){g(e,a)}function p(e,t,n,r){h.injection.getInstanceHandle().traverseEnterLeave(n,r,s,e,t)}function f(e){g(e,u)}var d=n(341),h=n(342),m=n(336),v=n(346),g=n(347),y=d.PropagationPhases,b=h.getListener,x={accumulateTwoPhaseDispatches:c,accumulateTwoPhaseDispatchesSkipTarget:l,accumulateDirectDispatches:f,accumulateEnterLeaveDispatches:p};e.exports=x}).call(t,n(8))},function(e,t,n){"use strict";function r(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}var i=n(367),o=n(350),a=n(386);o(r.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[a()]},getData:function(){if(this._fallbackText)return this._fallbackText;var e,t,n=this._startText,r=n.length,i=this.getText(),o=i.length;for(e=0;r>e&&n[e]===i[e];e++);var a=r-e;for(t=1;a>=t&&n[r-t]===i[o-t];t++);var s=t>1?1-t:void 0;return this._fallbackText=i.slice(e,s),this._fallbackText}}),i.addPoolingTo(r),e.exports=r},function(e,t,n){"use strict";function r(){return!o&&i.canUseDOM&&(o="textContent"in document.documentElement?"textContent":"innerText"),o}var i=n(320),o=null;e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(388),o={data:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){(function(t){"use strict";function r(e,t,n,r){this.dispatchConfig=e,this.dispatchMarker=t,this.nativeEvent=n,this.target=r,this.currentTarget=r;var i=this.constructor.Interface;for(var o in i)if(i.hasOwnProperty(o)){var s=i[o];this[o]=s?s(n):n[o]}var u=null!=n.defaultPrevented?n.defaultPrevented:n.returnValue===!1;this.isDefaultPrevented=u?a.thatReturnsTrue:a.thatReturnsFalse,this.isPropagationStopped=a.thatReturnsFalse}var i=n(367),o=n(350),a=n(326),s=n(336),u={type:null,currentTarget:a.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};o(r.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?s(e,"This synthetic event is reused for performance reasons. If you're seeing this, you're calling `preventDefault` on a released/nullified synthetic event. This is a no-op. See https://fb.me/react-event-pooling for more information."):void 0),e&&(e.preventDefault?e.preventDefault():e.returnValue=!1,this.isDefaultPrevented=a.thatReturnsTrue)},stopPropagation:function(){var e=this.nativeEvent;"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?s(e,"This synthetic event is reused for performance reasons. If you're seeing this, you're calling `stopPropagation` on a released/nullified synthetic event. This is a no-op. See https://fb.me/react-event-pooling for more information."):void 0),e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,this.isPropagationStopped=a.thatReturnsTrue)},persist:function(){this.isPersistent=a.thatReturnsTrue},isPersistent:a.thatReturnsFalse,destructor:function(){var e=this.constructor.Interface;for(var t in e)this[t]=null;this.dispatchConfig=null,this.dispatchMarker=null,this.nativeEvent=null}}),r.Interface=u,r.augmentClass=function(e,t){var n=this,r=Object.create(n.prototype);o(r,e.prototype),e.prototype=r,e.prototype.constructor=e,e.Interface=o({},n.Interface,t),e.augmentClass=n.augmentClass,i.addPoolingTo(e,i.fourArgumentPooler)},i.addPoolingTo(r,i.fourArgumentPooler),e.exports=r}).call(t,n(8))},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(388),o={data:null};i.augmentClass(r,o),e.exports=r},function(e){"use strict";var t=function(e){var t;for(t in e)if(e.hasOwnProperty(t))return t;return null};e.exports=t},function(e,t,n){"use strict";function r(e){var t=e.nodeName&&e.nodeName.toLowerCase();return"select"===t||"input"===t&&"file"===e.type}function i(e){var t=_.getPooled(P.change,D,e,C(e));x.accumulateTwoPhaseDispatches(t),E.batchedUpdates(o,t)}function o(e){b.enqueueEvents(e),b.processEventQueue(!1)}function a(e,t){S=e,D=t,S.attachEvent("onchange",i)}function s(){S&&(S.detachEvent("onchange",i),S=null,D=null)}function u(e,t,n){return e===T.topChange?n:void 0}function c(e,t,n){e===T.topFocus?(s(),a(t,n)):e===T.topBlur&&s()}function l(e,t){S=e,D=t,R=e.value,k=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(S,"value",I),S.attachEvent("onpropertychange",f)}function p(){S&&(delete S.value,S.detachEvent("onpropertychange",f),S=null,D=null,R=null,k=null)}function f(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==R&&(R=t,i(e))}}function d(e,t,n){return e===T.topInput?n:void 0}function h(e,t,n){e===T.topFocus?(p(),l(t,n)):e===T.topBlur&&p()}function m(e){return e!==T.topSelectionChange&&e!==T.topKeyUp&&e!==T.topKeyDown||!S||S.value===R?void 0:(R=S.value,D)}function v(e){return e.nodeName&&"input"===e.nodeName.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}function g(e,t,n){return e===T.topClick?n:void 0}var y=n(341),b=n(342),x=n(384),w=n(320),E=n(365),_=n(388),C=n(392),N=n(351),$=n(393),O=n(390),T=y.topLevelTypes,P={change:{phasedRegistrationNames:{bubbled:O({onChange:null}),captured:O({onChangeCapture:null})},dependencies:[T.topBlur,T.topChange,T.topClick,T.topFocus,T.topInput,T.topKeyDown,T.topKeyUp,T.topSelectionChange]}},S=null,D=null,R=null,k=null,A=!1;w.canUseDOM&&(A=N("change")&&(!("documentMode"in document)||document.documentMode>8));var j=!1;w.canUseDOM&&(j=N("input")&&(!("documentMode"in document)||document.documentMode>9));var I={get:function(){return k.get.call(this)},set:function(e){R=""+e,k.set.call(this,e)}},M={eventTypes:P,extractEvents:function(e,t,n,i,o){var a,s;if(r(t)?A?a=u:s=c:$(t)?j?a=d:(a=m,s=h):v(t)&&(a=g),a){var l=a(e,t,n);if(l){var p=_.getPooled(P.change,l,i,o);return p.type="change",x.accumulateTwoPhaseDispatches(p),p}}s&&s(e,t,n)}};e.exports=M},function(e){"use strict";function t(e){var t=e.target||e.srcElement||window;return 3===t.nodeType?t.parentNode:t}e.exports=t},function(e){"use strict";function t(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&n[e.type]||"textarea"===t)}var n={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};e.exports=t},function(e){"use strict";var t=0,n={createReactRootIndex:function(){return t++}};e.exports=n},function(e,t,n){"use strict";var r=n(390),i=[r({ResponderEventPlugin:null}),r({SimpleEventPlugin:null}),r({TapEventPlugin:null}),r({EnterLeaveEventPlugin:null}),r({ChangeEventPlugin:null}),r({SelectEventPlugin:null}),r({BeforeInputEventPlugin:null})];e.exports=i},function(e,t,n){"use strict";var r=n(341),i=n(384),o=n(397),a=n(339),s=n(390),u=r.topLevelTypes,c=a.getFirstReactDOM,l={mouseEnter:{registrationName:s({onMouseEnter:null}),dependencies:[u.topMouseOut,u.topMouseOver]},mouseLeave:{registrationName:s({onMouseLeave:null}),dependencies:[u.topMouseOut,u.topMouseOver]}},p=[null,null],f={eventTypes:l,extractEvents:function(e,t,n,r,s){if(e===u.topMouseOver&&(r.relatedTarget||r.fromElement))return null;if(e!==u.topMouseOut&&e!==u.topMouseOver)return null;var f;if(t.window===t)f=t;else{var d=t.ownerDocument;f=d?d.defaultView||d.parentWindow:window}var h,m,v="",g="";if(e===u.topMouseOut?(h=t,v=n,m=c(r.relatedTarget||r.toElement),m?g=a.getID(m):m=f,m=m||f):(h=f,m=t,g=n),h===m)return null;var y=o.getPooled(l.mouseLeave,v,r,s);y.type="mouseleave",y.target=h,y.relatedTarget=m;var b=o.getPooled(l.mouseEnter,g,r,s);return b.type="mouseenter",b.target=m,b.relatedTarget=h,i.accumulateEnterLeaveDispatches(y,b,v,g),p[0]=y,p[1]=b,p}};e.exports=f},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(398),o=n(349),a=n(399),s={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:a,button:function u(e){var u=e.button;return"which"in e?u:2===u?2:4===u?1:0},buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},pageX:function(e){return"pageX"in e?e.pageX:e.clientX+o.currentScrollLeft},pageY:function(e){return"pageY"in e?e.pageY:e.clientY+o.currentScrollTop}};i.augmentClass(r,s),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(388),o=n(392),a={view:function(e){if(e.view)return e.view;var t=o(e);if(null!=t&&t.window===t)return t;var n=t.ownerDocument;return n?n.defaultView||n.parentWindow:window},detail:function(e){return e.detail||0}};i.augmentClass(r,a),e.exports=r},function(e){"use strict";function t(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var i=r[e];return i?!!n[i]:!1}function n(){return t}var r={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};e.exports=n},function(e,t,n){"use strict";var r,i=n(334),o=n(320),a=i.injection.MUST_USE_ATTRIBUTE,s=i.injection.MUST_USE_PROPERTY,u=i.injection.HAS_BOOLEAN_VALUE,c=i.injection.HAS_SIDE_EFFECTS,l=i.injection.HAS_NUMERIC_VALUE,p=i.injection.HAS_POSITIVE_NUMERIC_VALUE,f=i.injection.HAS_OVERLOADED_BOOLEAN_VALUE;if(o.canUseDOM){var d=document.implementation;r=d&&d.hasFeature&&d.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")}var h={isCustomAttribute:RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/),Properties:{accept:null,acceptCharset:null,accessKey:null,action:null,allowFullScreen:a|u,allowTransparency:a,alt:null,async:u,autoComplete:null,autoPlay:u,capture:a|u,cellPadding:null,cellSpacing:null,charSet:a,challenge:a,checked:s|u,classID:a,className:r?a:s,cols:a|p,colSpan:null,content:null,contentEditable:null,contextMenu:a,controls:s|u,coords:null,crossOrigin:null,data:null,
15
+ dateTime:a,"default":u,defer:u,dir:null,disabled:a|u,download:f,draggable:null,encType:null,form:a,formAction:a,formEncType:a,formMethod:a,formNoValidate:u,formTarget:a,frameBorder:a,headers:null,height:a,hidden:a|u,high:null,href:null,hrefLang:null,htmlFor:null,httpEquiv:null,icon:null,id:s,inputMode:a,integrity:null,is:a,keyParams:a,keyType:a,kind:null,label:null,lang:null,list:a,loop:s|u,low:null,manifest:a,marginHeight:null,marginWidth:null,max:null,maxLength:a,media:a,mediaGroup:null,method:null,min:null,minLength:a,multiple:s|u,muted:s|u,name:null,nonce:a,noValidate:u,open:u,optimum:null,pattern:null,placeholder:null,poster:null,preload:null,radioGroup:null,readOnly:s|u,rel:null,required:u,reversed:u,role:a,rows:a|p,rowSpan:null,sandbox:null,scope:null,scoped:u,scrolling:null,seamless:a|u,selected:s|u,shape:null,size:a|p,sizes:a,span:p,spellCheck:null,src:null,srcDoc:s,srcLang:null,srcSet:a,start:l,step:null,style:null,summary:null,tabIndex:null,target:null,title:null,type:null,useMap:null,value:s|c,width:a,wmode:a,wrap:null,about:a,datatype:a,inlist:a,prefix:a,property:a,resource:a,"typeof":a,vocab:a,autoCapitalize:null,autoCorrect:null,autoSave:null,color:null,itemProp:a,itemScope:a|u,itemType:a,itemID:a,itemRef:a,results:null,security:a,unselectable:a},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{autoCapitalize:"autocapitalize",autoComplete:"autocomplete",autoCorrect:"autocorrect",autoFocus:"autofocus",autoPlay:"autoplay",autoSave:"autosave",encType:"encoding",hrefLang:"hreflang",radioGroup:"radiogroup",spellCheck:"spellcheck",srcDoc:"srcdoc",srcSet:"srcset"}};e.exports=h},function(e,t,n){(function(t){"use strict";var r=n(358),i=n(402),o=n(336),a="_getDOMNodeDidWarn",s={getDOMNode:function(){return"production"!==t.env.NODE_ENV?o(this.constructor[a],"%s.getDOMNode(...) is deprecated. Please use ReactDOM.findDOMNode(instance) instead.",r.get(this).getName()||this.tagName||"Unknown"):void 0,this.constructor[a]=!0,i(this)}};e.exports=s}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e){if("production"!==t.env.NODE_ENV){var n=i.current;null!==n&&("production"!==t.env.NODE_ENV?u(n._warnedAboutRefsInRender,"%s is accessing getDOMNode or findDOMNode inside its render(). render() should be a pure function of props and state. It should never access something that requires stale data from the previous render, such as refs. Move this logic to componentDidMount and componentDidUpdate instead.",n.getName()||"A component"):void 0,n._warnedAboutRefsInRender=!0)}return null==e?null:1===e.nodeType?e:o.has(e)?a.getNodeFromInstance(e):(null!=e.render&&"function"==typeof e.render?"production"!==t.env.NODE_ENV?s(!1,"findDOMNode was called on an unmounted component."):s(!1):void 0,void("production"!==t.env.NODE_ENV?s(!1,"Element appears to be neither ReactComponent nor DOMNode (keys: %s)",Object.keys(e)):s(!1)))}var i=n(316),o=n(358),a=n(339),s=n(324),u=n(336);e.exports=r}).call(t,n(8))},function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var i=n(365),o=n(368),a=n(350),s=n(326),u={initialize:s,close:function(){f.isBatchingUpdates=!1}},c={initialize:s,close:i.flushBatchedUpdates.bind(i)},l=[c,u];a(r.prototype,o.Mixin,{getTransactionWrappers:function(){return l}});var p=new r,f={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,i,o){var a=f.isBatchingUpdates;f.isBatchingUpdates=!0,a?e(t,n,r,i,o):p.perform(e,null,t,n,r,i,o)}};e.exports=f},function(e,t,n){(function(t){"use strict";function r(e){if(e){var t=e._currentElement._owner||null;if(t){var n=t.getName();if(n)return" This DOM node was rendered by `"+n+"`."}}return""}function i(){if("production"!==t.env.NODE_ENV){var e=this._reactInternalComponent;"production"!==t.env.NODE_ENV?Q(!1,"ReactDOMComponent: Do not access .getDOMNode() of a DOM node; instead, use the node directly.%s",r(e)):void 0}return this}function o(){var e=this._reactInternalComponent;return"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?Q(!1,"ReactDOMComponent: Do not access .isMounted() of a DOM node.%s",r(e)):void 0),!!e}function a(){if("production"!==t.env.NODE_ENV){var e=this._reactInternalComponent;"production"!==t.env.NODE_ENV?Q(!1,"ReactDOMComponent: Do not access .setState(), .replaceState(), or .forceUpdate() of a DOM node. This is a no-op.%s",r(e)):void 0}}function s(e,n){var i=this._reactInternalComponent;"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?Q(!1,"ReactDOMComponent: Do not access .setProps() of a DOM node. Instead, call ReactDOM.render again at the top level.%s",r(i)):void 0),i&&(M.enqueueSetPropsInternal(i,e),n&&M.enqueueCallbackInternal(i,n))}function u(e,n){var i=this._reactInternalComponent;"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?Q(!1,"ReactDOMComponent: Do not access .replaceProps() of a DOM node. Instead, call ReactDOM.render again at the top level.%s",r(i)):void 0),i&&(M.enqueueReplacePropsInternal(i,e),n&&M.enqueueCallbackInternal(i,n))}function c(e){if("object"==typeof e){if(Array.isArray(e))return"["+e.map(c).join(", ")+"]";var t=[];for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=/^[a-z$_][\w$_]*$/i.test(n)?n:JSON.stringify(n);t.push(r+": "+c(e[n]))}return"{"+t.join(", ")+"}"}return"string"==typeof e?JSON.stringify(e):"function"==typeof e?"[function object]":String(e)}function l(e,n,r){if(null!=e&&null!=n&&!z(e,n)){var i,o=r._tag,a=r._currentElement._owner;a&&(i=a.getName());var s=i+"|"+o;re.hasOwnProperty(s)||(re[s]=!0,"production"!==t.env.NODE_ENV?Q(!1,"`%s` was passed a style object that has previously been mutated. Mutating `style` is deprecated. Consider cloning it beforehand. Check the `render` %s. Previous style: %s. Mutated style: %s.",o,a?"of `"+i+"`":"using <"+o+">",c(e),c(n)):void 0)}}function p(e,n){n&&("production"!==t.env.NODE_ENV&&se[e._tag]&&("production"!==t.env.NODE_ENV?Q(null==n.children&&null==n.dangerouslySetInnerHTML,"%s is a void element tag and must not have `children` or use `props.dangerouslySetInnerHTML`.%s",e._tag,e._currentElement._owner?" Check the render method of "+e._currentElement._owner.getName()+".":""):void 0),null!=n.dangerouslySetInnerHTML&&(null!=n.children?"production"!==t.env.NODE_ENV?U(!1,"Can only set one of `children` or `props.dangerouslySetInnerHTML`."):U(!1):void 0,"object"==typeof n.dangerouslySetInnerHTML&&te in n.dangerouslySetInnerHTML?void 0:"production"!==t.env.NODE_ENV?U(!1,"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information."):U(!1)),"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?Q(null==n.innerHTML,"Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`."):void 0,"production"!==t.env.NODE_ENV?Q(!n.contentEditable||null==n.children,"A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional."):void 0),null!=n.style&&"object"!=typeof n.style?"production"!==t.env.NODE_ENV?U(!1,"The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.%s",r(e)):U(!1):void 0)}function f(e,n,r,i){"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?Q("onScroll"!==n||H("scroll",!0),"This browser doesn't support the `onScroll` event"):void 0);var o=A.findReactContainerForID(e);if(o){var a=o.nodeType===ne?o.ownerDocument:o;G(n,a)}i.getReactMountReady().enqueue(d,{id:e,registrationName:n,listener:r})}function d(){var e=this;O.putListener(e.id,e.registrationName,e.listener)}function h(){var e=this;e._rootNodeID?void 0:"production"!==t.env.NODE_ENV?U(!1,"Must be mounted to trap events"):U(!1);var n=A.getNode(e._rootNodeID);switch(n?void 0:"production"!==t.env.NODE_ENV?U(!1,"trapBubbledEvent(...): Requires node to be rendered."):U(!1),e._tag){case"iframe":e._wrapperState.listeners=[O.trapBubbledEvent($.topLevelTypes.topLoad,"load",n)];break;case"video":case"audio":e._wrapperState.listeners=[];for(var r in ie)ie.hasOwnProperty(r)&&e._wrapperState.listeners.push(O.trapBubbledEvent($.topLevelTypes[r],ie[r],n));break;case"img":e._wrapperState.listeners=[O.trapBubbledEvent($.topLevelTypes.topError,"error",n),O.trapBubbledEvent($.topLevelTypes.topLoad,"load",n)];break;case"form":e._wrapperState.listeners=[O.trapBubbledEvent($.topLevelTypes.topReset,"reset",n),O.trapBubbledEvent($.topLevelTypes.topSubmit,"submit",n)]}}function m(){S.mountReadyWrapper(this)}function v(){R.postUpdateWrapper(this)}function g(e){le.call(ce,e)||(ue.test(e)?void 0:"production"!==t.env.NODE_ENV?U(!1,"Invalid tag: %s",e):U(!1),ce[e]=!0)}function y(e,t){e=F({},e);var n=e[K.ancestorInfoContextKey];return e[K.ancestorInfoContextKey]=K.updatedAncestorInfo(n,t._tag,t),e}function b(e,t){return e.indexOf("-")>=0||null!=t.is}function x(e){g(e),this._tag=e.toLowerCase(),this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._rootNodeID=null,this._wrapperState=null,this._topLevelWrapper=null,this._nodeWithLegacyProperties=null,"production"!==t.env.NODE_ENV&&(this._unprocessedContextDev=null,this._processedContextDev=null)}var w,E=n(405),_=n(407),C=n(334),N=n(333),$=n(341),O=n(340),T=n(337),P=n(415),S=n(416),D=n(420),R=n(423),k=n(424),A=n(339),j=n(425),I=n(329),M=n(364),F=n(350),L=n(354),V=n(332),U=n(324),H=n(351),q=n(390),B=n(330),W=n(331),z=n(428),K=n(381),Q=n(336),Y=O.deleteListener,G=O.listenTo,X=O.registrationNameModules,J={string:!0,number:!0},Z=q({children:null}),ee=q({style:null}),te=q({__html:null}),ne=1;"production"!==t.env.NODE_ENV&&(w={props:{enumerable:!1,get:function(){var e=this._reactInternalComponent;return"production"!==t.env.NODE_ENV?Q(!1,"ReactDOMComponent: Do not access .props of a DOM node; instead, recreate the props as `render` did originally or read the DOM properties/attributes directly from this node (e.g., this.refs.box.className).%s",r(e)):void 0,e._currentElement.props}}});var re={},ie={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},oe={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},ae={listing:!0,pre:!0,textarea:!0},se=F({menuitem:!0},oe),ue=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,ce={},le={}.hasOwnProperty;x.displayName="ReactDOMComponent",x.Mixin={construct:function(e){this._currentElement=e},mountComponent:function(e,n,r){this._rootNodeID=e;var i=this._currentElement.props;switch(this._tag){case"iframe":case"img":case"form":case"video":case"audio":this._wrapperState={listeners:null},n.getReactMountReady().enqueue(h,this);break;case"button":i=P.getNativeProps(this,i,r);break;case"input":S.mountWrapper(this,i,r),i=S.getNativeProps(this,i,r);break;case"option":D.mountWrapper(this,i,r),i=D.getNativeProps(this,i,r);break;case"select":R.mountWrapper(this,i,r),i=R.getNativeProps(this,i,r),r=R.processChildContext(this,i,r);break;case"textarea":k.mountWrapper(this,i,r),i=k.getNativeProps(this,i,r)}p(this,i),"production"!==t.env.NODE_ENV&&r[K.ancestorInfoContextKey]&&K(this._tag,this,r[K.ancestorInfoContextKey]),"production"!==t.env.NODE_ENV&&(this._unprocessedContextDev=r,this._processedContextDev=y(r,this),r=this._processedContextDev);var o;if(n.useCreateElement){var a=r[A.ownerDocumentContextKey],s=a.createElement(this._currentElement.type);N.setAttributeForID(s,this._rootNodeID),A.getID(s),this._updateDOMProperties({},i,n,s),this._createInitialChildren(n,i,r,s),o=s}else{var u=this._createOpenTagMarkupAndPutListeners(n,i),c=this._createContentMarkup(n,i,r);o=!c&&oe[this._tag]?u+"/>":u+">"+c+"</"+this._currentElement.type+">"}switch(this._tag){case"input":n.getReactMountReady().enqueue(m,this);case"button":case"select":case"textarea":i.autoFocus&&n.getReactMountReady().enqueue(E.focusDOMComponent,this)}return o},_createOpenTagMarkupAndPutListeners:function(e,n){var r="<"+this._currentElement.type;for(var i in n)if(n.hasOwnProperty(i)){var o=n[i];if(null!=o)if(X.hasOwnProperty(i))o&&f(this._rootNodeID,i,o,e);else{i===ee&&(o&&("production"!==t.env.NODE_ENV&&(this._previousStyle=o),o=this._previousStyleCopy=F({},n.style)),o=_.createMarkupForStyles(o));var a=null;null!=this._tag&&b(this._tag,n)?i!==Z&&(a=N.createMarkupForCustomAttribute(i,o)):a=N.createMarkupForProperty(i,o),a&&(r+=" "+a)}}if(e.renderToStaticMarkup)return r;var s=N.createMarkupForID(this._rootNodeID);return r+" "+s},_createContentMarkup:function(e,t,n){var r="",i=t.dangerouslySetInnerHTML;if(null!=i)null!=i.__html&&(r=i.__html);else{var o=J[typeof t.children]?t.children:null,a=null!=o?null:t.children;if(null!=o)r=V(o);else if(null!=a){var s=this.mountChildren(a,e,n);r=s.join("")}}return ae[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var i=t.dangerouslySetInnerHTML;if(null!=i)null!=i.__html&&B(r,i.__html);else{var o=J[typeof t.children]?t.children:null,a=null!=o?null:t.children;if(null!=o)W(r,o);else if(null!=a)for(var s=this.mountChildren(a,e,n),u=0;u<s.length;u++)r.appendChild(s[u])}},receiveComponent:function(e,t,n){var r=this._currentElement;this._currentElement=e,this.updateComponent(t,r,e,n)},updateComponent:function(e,n,r,i){var o=n.props,a=this._currentElement.props;switch(this._tag){case"button":o=P.getNativeProps(this,o),a=P.getNativeProps(this,a);break;case"input":S.updateWrapper(this),o=S.getNativeProps(this,o),a=S.getNativeProps(this,a);break;case"option":o=D.getNativeProps(this,o),a=D.getNativeProps(this,a);break;case"select":o=R.getNativeProps(this,o),a=R.getNativeProps(this,a);break;case"textarea":k.updateWrapper(this),o=k.getNativeProps(this,o),a=k.getNativeProps(this,a)}"production"!==t.env.NODE_ENV&&(this._unprocessedContextDev!==i&&(this._unprocessedContextDev=i,this._processedContextDev=y(i,this)),i=this._processedContextDev),p(this,a),this._updateDOMProperties(o,a,e,null),this._updateDOMChildren(o,a,e,i),!L&&this._nodeWithLegacyProperties&&(this._nodeWithLegacyProperties.props=a),"select"===this._tag&&e.getReactMountReady().enqueue(v,this)},_updateDOMProperties:function(e,n,r,i){var o,a,s;for(o in e)if(!n.hasOwnProperty(o)&&e.hasOwnProperty(o))if(o===ee){var u=this._previousStyleCopy;for(a in u)u.hasOwnProperty(a)&&(s=s||{},s[a]="");this._previousStyleCopy=null}else X.hasOwnProperty(o)?e[o]&&Y(this._rootNodeID,o):(C.properties[o]||C.isCustomAttribute(o))&&(i||(i=A.getNode(this._rootNodeID)),N.deleteValueForProperty(i,o));for(o in n){var c=n[o],p=o===ee?this._previousStyleCopy:e[o];if(n.hasOwnProperty(o)&&c!==p)if(o===ee)if(c?("production"!==t.env.NODE_ENV&&(l(this._previousStyleCopy,this._previousStyle,this),this._previousStyle=c),c=this._previousStyleCopy=F({},c)):this._previousStyleCopy=null,p){for(a in p)!p.hasOwnProperty(a)||c&&c.hasOwnProperty(a)||(s=s||{},s[a]="");for(a in c)c.hasOwnProperty(a)&&p[a]!==c[a]&&(s=s||{},s[a]=c[a])}else s=c;else X.hasOwnProperty(o)?c?f(this._rootNodeID,o,c,r):p&&Y(this._rootNodeID,o):b(this._tag,n)?(i||(i=A.getNode(this._rootNodeID)),o===Z&&(c=null),N.setValueForAttribute(i,o,c)):(C.properties[o]||C.isCustomAttribute(o))&&(i||(i=A.getNode(this._rootNodeID)),null!=c?N.setValueForProperty(i,o,c):N.deleteValueForProperty(i,o))}s&&(i||(i=A.getNode(this._rootNodeID)),_.setValueForStyles(i,s))},_updateDOMChildren:function(e,t,n,r){var i=J[typeof e.children]?e.children:null,o=J[typeof t.children]?t.children:null,a=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,s=t.dangerouslySetInnerHTML&&t.dangerouslySetInnerHTML.__html,u=null!=i?null:e.children,c=null!=o?null:t.children,l=null!=i||null!=a,p=null!=o||null!=s;null!=u&&null==c?this.updateChildren(null,n,r):l&&!p&&this.updateTextContent(""),null!=o?i!==o&&this.updateTextContent(""+o):null!=s?a!==s&&this.updateMarkup(""+s):null!=c&&this.updateChildren(c,n,r)},unmountComponent:function(){switch(this._tag){case"iframe":case"img":case"form":case"video":case"audio":var e=this._wrapperState.listeners;if(e)for(var n=0;n<e.length;n++)e[n].remove();break;case"input":S.unmountWrapper(this);break;case"html":case"head":case"body":"production"!==t.env.NODE_ENV?U(!1,"<%s> tried to unmount. Because of cross-browser quirks it is impossible to unmount some top-level components (eg <html>, <head>, and <body>) reliably and efficiently. To fix this, have a single top-level component that never unmounts render these elements.",this._tag):U(!1)}if(this.unmountChildren(),O.deleteAllListeners(this._rootNodeID),T.unmountIDFromEnvironment(this._rootNodeID),this._rootNodeID=null,this._wrapperState=null,this._nodeWithLegacyProperties){var r=this._nodeWithLegacyProperties;r._reactInternalComponent=null,this._nodeWithLegacyProperties=null}},getPublicInstance:function(){if(!this._nodeWithLegacyProperties){var e=A.getNode(this._rootNodeID);e._reactInternalComponent=this,e.getDOMNode=i,e.isMounted=o,e.setState=a,e.replaceState=a,e.forceUpdate=a,e.setProps=s,e.replaceProps=u,"production"!==t.env.NODE_ENV&&L?Object.defineProperties(e,w):e.props=this._currentElement.props,this._nodeWithLegacyProperties=e}return this._nodeWithLegacyProperties}},I.measureMethods(x,"ReactDOMComponent",{mountComponent:"mountComponent",updateComponent:"updateComponent"}),F(x.prototype,x.Mixin,j.Mixin),e.exports=x}).call(t,n(8))},function(e,t,n){"use strict";var r=n(339),i=n(402),o=n(406),a={componentDidMount:function(){this.props.autoFocus&&o(i(this))}},s={Mixin:a,focusDOMComponent:function(){o(r.getNode(this._rootNodeID))}};e.exports=s},function(e){"use strict";function t(e){try{e.focus()}catch(t){}}e.exports=t},function(e,t,n){(function(t){"use strict";var r=n(408),i=n(320),o=n(329),a=n(409),s=n(411),u=n(412),c=n(414),l=n(336),p=c(function(e){return u(e)}),f=!1,d="cssFloat";if(i.canUseDOM){var h=document.createElement("div").style;try{h.font=""}catch(m){f=!0}void 0===document.documentElement.style.cssFloat&&(d="styleFloat")}if("production"!==t.env.NODE_ENV)var v=/^(?:webkit|moz|o)[A-Z]/,g=/;\s*$/,y={},b={},x=function(e){y.hasOwnProperty(e)&&y[e]||(y[e]=!0,"production"!==t.env.NODE_ENV?l(!1,"Unsupported style property %s. Did you mean %s?",e,a(e)):void 0)},w=function(e){y.hasOwnProperty(e)&&y[e]||(y[e]=!0,"production"!==t.env.NODE_ENV?l(!1,"Unsupported vendor-prefixed style property %s. Did you mean %s?",e,e.charAt(0).toUpperCase()+e.slice(1)):void 0)},E=function(e,n){b.hasOwnProperty(n)&&b[n]||(b[n]=!0,"production"!==t.env.NODE_ENV?l(!1,'Style property values shouldn\'t contain a semicolon. Try "%s: %s" instead.',e,n.replace(g,"")):void 0)},_=function(e,t){e.indexOf("-")>-1?x(e):v.test(e)?w(e):g.test(t)&&E(e,t)};var C={createMarkupForStyles:function(e){var n="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r];"production"!==t.env.NODE_ENV&&_(r,i),null!=i&&(n+=p(r)+":",n+=s(r,i)+";")}return n||null},setValueForStyles:function(e,n){var i=e.style;for(var o in n)if(n.hasOwnProperty(o)){"production"!==t.env.NODE_ENV&&_(o,n[o]);var a=s(o,n[o]);if("float"===o&&(o=d),a)i[o]=a;else{var u=f&&r.shorthandPropertyExpansions[o];if(u)for(var c in u)i[c]="";else i[o]=""}}}};o.measureMethods(C,"CSSPropertyOperations",{setValueForStyles:"setValueForStyles"}),e.exports=C}).call(t,n(8))},function(e){"use strict";function t(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var n={animationIterationCount:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,stopOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0},r=["Webkit","ms","Moz","O"];Object.keys(n).forEach(function(e){r.forEach(function(r){n[t(r,e)]=n[e]})});var i={background:{backgroundAttachment:!0,backgroundColor:!0,backgroundImage:!0,backgroundPositionX:!0,backgroundPositionY:!0,backgroundRepeat:!0},backgroundPosition:{backgroundPositionX:!0,backgroundPositionY:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0},outline:{outlineWidth:!0,outlineStyle:!0,outlineColor:!0}},o={isUnitlessNumber:n,shorthandPropertyExpansions:i};e.exports=o},function(e,t,n){"use strict";function r(e){return i(e.replace(o,"ms-"))}var i=n(410),o=/^-ms-/;e.exports=r},function(e){"use strict";function t(e){return e.replace(n,function(e,t){return t.toUpperCase()})}var n=/-(.)/g;e.exports=t},function(e,t,n){"use strict";function r(e,t){var n=null==t||"boolean"==typeof t||""===t;if(n)return"";var r=isNaN(t);return r||0===t||o.hasOwnProperty(e)&&o[e]?""+t:("string"==typeof t&&(t=t.trim()),t+"px")}var i=n(408),o=i.isUnitlessNumber;e.exports=r},function(e,t,n){"use strict";function r(e){return i(e).replace(o,"-ms-")}var i=n(413),o=/^ms-/;e.exports=r},function(e){"use strict";function t(e){return e.replace(n,"-$1").toLowerCase()}var n=/([A-Z])/g;e.exports=t},function(e){"use strict";function t(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}e.exports=t},function(e){"use strict";var t={onClick:!0,onDoubleClick:!0,onMouseDown:!0,onMouseMove:!0,onMouseUp:!0,onClickCapture:!0,onDoubleClickCapture:!0,onMouseDownCapture:!0,onMouseMoveCapture:!0,onMouseUpCapture:!0},n={getNativeProps:function(e,n){if(!n.disabled)return n;var r={};for(var i in n)n.hasOwnProperty(i)&&!t[i]&&(r[i]=n[i]);return r}};e.exports=n},function(e,t,n){(function(t){"use strict";function r(){this._rootNodeID&&f.updateWrapper(this)}function i(e){var n=this._currentElement.props,i=a.executeOnChange(n,e);u.asap(r,this);var o=n.name;if("radio"===n.type&&null!=o){for(var c=s.getNode(this._rootNodeID),f=c;f.parentNode;)f=f.parentNode;for(var d=f.querySelectorAll("input[name="+JSON.stringify(""+o)+'][type="radio"]'),h=0;h<d.length;h++){var m=d[h];if(m!==c&&m.form===c.form){var v=s.getID(m);v?void 0:"production"!==t.env.NODE_ENV?l(!1,"ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported."):l(!1);var g=p[v];g?void 0:"production"!==t.env.NODE_ENV?l(!1,"ReactDOMInput: Unknown radio button ID %s.",v):l(!1),u.asap(r,g)}}}return i}var o=n(338),a=n(417),s=n(339),u=n(365),c=n(350),l=n(324),p={},f={getNativeProps:function(e,t){var n=a.getValue(t),r=a.getChecked(t),i=c({},t,{defaultChecked:void 0,defaultValue:void 0,value:null!=n?n:e._wrapperState.initialValue,checked:null!=r?r:e._wrapperState.initialChecked,onChange:e._wrapperState.onChange});return i},mountWrapper:function(e,n){"production"!==t.env.NODE_ENV&&a.checkPropTypes("input",n,e._currentElement._owner);var r=n.defaultValue;e._wrapperState={initialChecked:n.defaultChecked||!1,initialValue:null!=r?r:null,onChange:i.bind(e)}},mountReadyWrapper:function(e){p[e._rootNodeID]=e},unmountWrapper:function(e){delete p[e._rootNodeID]},updateWrapper:function(e){var t=e._currentElement.props,n=t.checked;null!=n&&o.updatePropertyByID(e._rootNodeID,"checked",n||!1);var r=a.getValue(t);null!=r&&o.updatePropertyByID(e._rootNodeID,"value",""+r)}};e.exports=f}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e){null!=e.checkedLink&&null!=e.valueLink?"production"!==t.env.NODE_ENV?c(!1,"Cannot provide a checkedLink and a valueLink. If you want to use checkedLink, you probably don't want to use valueLink and vice versa."):c(!1):void 0}function i(e){r(e),null!=e.value||null!=e.onChange?"production"!==t.env.NODE_ENV?c(!1,"Cannot provide a valueLink and a value or onChange event. If you want to use value or onChange, you probably don't want to use valueLink."):c(!1):void 0}function o(e){r(e),null!=e.checked||null!=e.onChange?"production"!==t.env.NODE_ENV?c(!1,"Cannot provide a checkedLink and a checked property or onChange event. If you want to use checked or onChange, you probably don't want to use checkedLink"):c(!1):void 0}function a(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}var s=n(418),u=n(376),c=n(324),l=n(336),p={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0},f={value:function(e,t){return!e[t]||p[e.type]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")},checked:function(e,t){return!e[t]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")},onChange:s.func},d={},h={checkPropTypes:function(e,n,r){for(var i in f){if(f.hasOwnProperty(i))var o=f[i](n,i,e,u.prop);if(o instanceof Error&&!(o.message in d)){d[o.message]=!0;var s=a(r);"production"!==t.env.NODE_ENV?l(!1,"Failed form propType: %s%s",o.message,s):void 0}}},getValue:function(e){return e.valueLink?(i(e),e.valueLink.value):e.value},getChecked:function(e){return e.checkedLink?(o(e),e.checkedLink.value):e.checked},executeOnChange:function(e,t){return e.valueLink?(i(e),e.valueLink.requestChange(t.target.value)):e.checkedLink?(o(e),e.checkedLink.requestChange(t.target.checked)):e.onChange?e.onChange.call(void 0,t):void 0}};e.exports=h}).call(t,n(8))},function(e,t,n){"use strict";function r(e){function t(t,n,r,i,o,a){if(i=i||E,a=a||r,null==n[r]){var s=b[o];return t?new Error("Required "+s+" `"+a+"` was not specified in "+("`"+i+"`.")):null}return e(n,r,i,o,a)}var n=t.bind(null,!1);return n.isRequired=t.bind(null,!0),n}function i(e){function t(t,n,r,i,o){var a=t[n],s=m(a);if(s!==e){var u=b[i],c=v(a);return new Error("Invalid "+u+" `"+o+"` of type "+("`"+c+"` supplied to `"+r+"`, expected ")+("`"+e+"`."))}return null}return r(t)}function o(){return r(x.thatReturns(null))}function a(e){function t(t,n,r,i,o){var a=t[n];if(!Array.isArray(a)){var s=b[i],u=m(a);return new Error("Invalid "+s+" `"+o+"` of type "+("`"+u+"` supplied to `"+r+"`, expected an array."))}for(var c=0;c<a.length;c++){var l=e(a,c,r,i,o+"["+c+"]");if(l instanceof Error)return l}return null}return r(t)}function s(){function e(e,t,n,r,i){if(!y.isValidElement(e[t])){var o=b[r];return new Error("Invalid "+o+" `"+i+"` supplied to "+("`"+n+"`, expected a single ReactElement."))}return null}return r(e)}function u(e){function t(t,n,r,i,o){if(!(t[n]instanceof e)){var a=b[i],s=e.name||E,u=g(t[n]);return new Error("Invalid "+a+" `"+o+"` of type "+("`"+u+"` supplied to `"+r+"`, expected ")+("instance of `"+s+"`."))}return null}return r(t)}function c(e){function t(t,n,r,i,o){for(var a=t[n],s=0;s<e.length;s++)if(a===e[s])return null;var u=b[i],c=JSON.stringify(e);return new Error("Invalid "+u+" `"+o+"` of value `"+a+"` "+("supplied to `"+r+"`, expected one of "+c+"."))}return r(Array.isArray(e)?t:function(){return new Error("Invalid argument supplied to oneOf, expected an instance of array.")})}function l(e){function t(t,n,r,i,o){var a=t[n],s=m(a);if("object"!==s){var u=b[i];return new Error("Invalid "+u+" `"+o+"` of type "+("`"+s+"` supplied to `"+r+"`, expected an object."))}for(var c in a)if(a.hasOwnProperty(c)){var l=e(a,c,r,i,o+"."+c);if(l instanceof Error)return l}return null}return r(t)}function p(e){function t(t,n,r,i,o){for(var a=0;a<e.length;a++){var s=e[a];if(null==s(t,n,r,i,o))return null}var u=b[i];return new Error("Invalid "+u+" `"+o+"` supplied to "+("`"+r+"`."))}return r(Array.isArray(e)?t:function(){return new Error("Invalid argument supplied to oneOfType, expected an instance of array.")})}function f(){function e(e,t,n,r,i){if(!h(e[t])){var o=b[r];return new Error("Invalid "+o+" `"+i+"` supplied to "+("`"+n+"`, expected a ReactNode."))}return null}return r(e)}function d(e){function t(t,n,r,i,o){var a=t[n],s=m(a);if("object"!==s){var u=b[i];return new Error("Invalid "+u+" `"+o+"` of type `"+s+"` "+("supplied to `"+r+"`, expected `object`."))}for(var c in e){var l=e[c];if(l){var p=l(a,c,r,i,o+"."+c);if(p)return p}}return null}return r(t)}function h(e){switch(typeof e){case"number":case"string":case"undefined":return!0;case"boolean":return!e;case"object":if(Array.isArray(e))return e.every(h);if(null===e||y.isValidElement(e))return!0;var t=w(e);if(!t)return!1;var n,r=t.call(e);if(t!==e.entries){for(;!(n=r.next()).done;)if(!h(n.value))return!1}else for(;!(n=r.next()).done;){var i=n.value;if(i&&!h(i[1]))return!1}return!0;default:return!1}}function m(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":t}function v(e){var t=m(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function g(e){return e.constructor&&e.constructor.name?e.constructor.name:"<<anonymous>>"}var y=n(353),b=n(377),x=n(326),w=n(419),E="<<anonymous>>",_={array:i("array"),bool:i("boolean"),func:i("function"),number:i("number"),object:i("object"),string:i("string"),any:o(),arrayOf:a,element:s(),instanceOf:u,node:f(),objectOf:l,oneOf:c,oneOfType:p,shape:d};e.exports=_},function(e){"use strict";function t(e){var t=e&&(n&&e[n]||e[r]);return"function"==typeof t?t:void 0}var n="function"==typeof Symbol&&Symbol.iterator,r="@@iterator";e.exports=t},function(e,t,n){(function(t){"use strict";var r=n(421),i=n(423),o=n(350),a=n(336),s=i.valueContextKey,u={mountWrapper:function(e,n,r){"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?a(null==n.selected,"Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>."):void 0);var i=r[s],o=null;if(null!=i)if(o=!1,Array.isArray(i)){for(var u=0;u<i.length;u++)if(""+i[u]==""+n.value){o=!0;break}}else o=""+i==""+n.value;e._wrapperState={selected:o}},getNativeProps:function(e,n){var i=o({selected:void 0,children:void 0},n);null!=e._wrapperState.selected&&(i.selected=e._wrapperState.selected);var s="";return r.forEach(n.children,function(e){null!=e&&("string"==typeof e||"number"==typeof e?s+=e:"production"!==t.env.NODE_ENV?a(!1,"Only strings and numbers are supported as <option> children."):void 0)}),i.children=s,i}};e.exports=u}).call(t,n(8))},function(e,t,n){"use strict";function r(e){return(""+e).replace(x,"//")}function i(e,t){this.func=e,this.context=t,this.count=0}function o(e,t){var n=e.func,r=e.context;n.call(r,t,e.count++)}function a(e,t,n){if(null==e)return e;var r=i.getPooled(t,n);g(e,o,r),i.release(r)}function s(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function u(e,t,n){var i=e.result,o=e.keyPrefix,a=e.func,s=e.context,u=a.call(s,t,e.count++);Array.isArray(u)?c(u,i,n,v.thatReturnsArgument):null!=u&&(m.isValidElement(u)&&(u=m.cloneAndReplaceKey(u,o+(u!==t?r(u.key||"")+"/":"")+n)),i.push(u))}function c(e,t,n,i,o){var a="";null!=n&&(a=r(n)+"/");var c=s.getPooled(t,a,i,o);g(e,u,c),s.release(c)}function l(e,t,n){if(null==e)return e;var r=[];return c(e,r,null,t,n),r}function p(){return null}function f(e){return g(e,p,null)}function d(e){var t=[];return c(e,t,null,v.thatReturnsArgument),t}var h=n(367),m=n(353),v=n(326),g=n(422),y=h.twoArgumentPooler,b=h.fourArgumentPooler,x=/\/(?!\/)/g;i.prototype.destructor=function(){this.func=null,
16
+ this.context=null,this.count=0},h.addPoolingTo(i,y),s.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},h.addPoolingTo(s,b);var w={forEach:a,map:l,mapIntoWithKeyPrefixInternal:c,count:f,toArray:d};e.exports=w},function(e,t,n){(function(t){"use strict";function r(e){return g[e]}function i(e,t){return e&&null!=e.key?a(e.key):t.toString(36)}function o(e){return(""+e).replace(y,r)}function a(e){return"$"+o(e)}function s(e,n,r,o){var u=typeof e;if(("undefined"===u||"boolean"===u)&&(e=null),null===e||"string"===u||"number"===u||l.isValidElement(e))return r(o,e,""===n?m+i(e,0):n),1;var p,g,y=0,x=""===n?m:n+v;if(Array.isArray(e))for(var w=0;w<e.length;w++)p=e[w],g=x+i(p,w),y+=s(p,g,r,o);else{var E=f(e);if(E){var _,C=E.call(e);if(E!==e.entries)for(var N=0;!(_=C.next()).done;)p=_.value,g=x+i(p,N++),y+=s(p,g,r,o);else for("production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?h(b,"Using Maps as children is not yet fully supported. It is an experimental feature that might be removed. Convert it to a sequence / iterable of keyed ReactElements instead."):void 0,b=!0);!(_=C.next()).done;){var $=_.value;$&&(p=$[1],g=x+a($[0])+v+i(p,0),y+=s(p,g,r,o))}}else if("object"===u){var O="";if("production"!==t.env.NODE_ENV&&(O=" If you meant to render a collection of children, use an array instead or wrap the object using createFragment(object) from the React add-ons.",e._isReactElement&&(O=" It looks like you're using an element created by a different version of React. Make sure to use only one copy of React."),c.current)){var T=c.current.getName();T&&(O+=" Check the render method of `"+T+"`.")}var P=String(e);"production"!==t.env.NODE_ENV?d(!1,"Objects are not valid as a React child (found: %s).%s","[object Object]"===P?"object with keys {"+Object.keys(e).join(", ")+"}":P,O):d(!1)}}return y}function u(e,t,n){return null==e?0:s(e,"",t,n)}var c=n(316),l=n(353),p=n(356),f=n(419),d=n(324),h=n(336),m=p.SEPARATOR,v=":",g={"=":"=0",".":"=1",":":"=2"},y=/[=.:]/g,b=!1;e.exports=u}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(){if(this._rootNodeID&&this._wrapperState.pendingUpdate){this._wrapperState.pendingUpdate=!1;var e=this._currentElement.props,t=u.getValue(e);null!=t&&a(this,e,t)}}function i(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}function o(e,n){var r=e._currentElement._owner;u.checkPropTypes("select",n,r);for(var o=0;o<h.length;o++){var a=h[o];null!=n[a]&&(n.multiple?"production"!==t.env.NODE_ENV?f(Array.isArray(n[a]),"The `%s` prop supplied to <select> must be an array if `multiple` is true.%s",a,i(r)):void 0:"production"!==t.env.NODE_ENV?f(!Array.isArray(n[a]),"The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.%s",a,i(r)):void 0)}}function a(e,t,n){var r,i,o=c.getNode(e._rootNodeID).options;if(t){for(r={},i=0;i<n.length;i++)r[""+n[i]]=!0;for(i=0;i<o.length;i++){var a=r.hasOwnProperty(o[i].value);o[i].selected!==a&&(o[i].selected=a)}}else{for(r=""+n,i=0;i<o.length;i++)if(o[i].value===r)return void(o[i].selected=!0);o.length&&(o[0].selected=!0)}}function s(e){var t=this._currentElement.props,n=u.executeOnChange(t,e);return this._wrapperState.pendingUpdate=!0,l.asap(r,this),n}var u=n(417),c=n(339),l=n(365),p=n(350),f=n(336),d="__ReactDOMSelect_value$"+Math.random().toString(36).slice(2),h=["value","defaultValue"],m={valueContextKey:d,getNativeProps:function(e,t){return p({},t,{onChange:e._wrapperState.onChange,value:void 0})},mountWrapper:function(e,n){"production"!==t.env.NODE_ENV&&o(e,n);var r=u.getValue(n);e._wrapperState={pendingUpdate:!1,initialValue:null!=r?r:n.defaultValue,onChange:s.bind(e),wasMultiple:Boolean(n.multiple)}},processChildContext:function(e,t,n){var r=p({},n);return r[d]=e._wrapperState.initialValue,r},postUpdateWrapper:function(e){var t=e._currentElement.props;e._wrapperState.initialValue=void 0;var n=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=Boolean(t.multiple);var r=u.getValue(t);null!=r?(e._wrapperState.pendingUpdate=!1,a(e,Boolean(t.multiple),r)):n!==Boolean(t.multiple)&&(null!=t.defaultValue?a(e,Boolean(t.multiple),t.defaultValue):a(e,Boolean(t.multiple),t.multiple?[]:""))}};e.exports=m}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(){this._rootNodeID&&p.updateWrapper(this)}function i(e){var t=this._currentElement.props,n=o.executeOnChange(t,e);return s.asap(r,this),n}var o=n(417),a=n(338),s=n(365),u=n(350),c=n(324),l=n(336),p={getNativeProps:function(e,n){null!=n.dangerouslySetInnerHTML?"production"!==t.env.NODE_ENV?c(!1,"`dangerouslySetInnerHTML` does not make sense on <textarea>."):c(!1):void 0;var r=u({},n,{defaultValue:void 0,value:void 0,children:e._wrapperState.initialValue,onChange:e._wrapperState.onChange});return r},mountWrapper:function(e,n){"production"!==t.env.NODE_ENV&&o.checkPropTypes("textarea",n,e._currentElement._owner);var r=n.defaultValue,a=n.children;null!=a&&("production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?l(!1,"Use the `defaultValue` or `value` props instead of setting children on <textarea>."):void 0),null!=r?"production"!==t.env.NODE_ENV?c(!1,"If you supply `defaultValue` on a <textarea>, do not pass children."):c(!1):void 0,Array.isArray(a)&&(a.length<=1?void 0:"production"!==t.env.NODE_ENV?c(!1,"<textarea> can only have at most one child."):c(!1),a=a[0]),r=""+a),null==r&&(r="");var s=o.getValue(n);e._wrapperState={initialValue:""+(null!=s?s:r),onChange:i.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=o.getValue(t);null!=n&&a.updatePropertyByID(e._rootNodeID,"value",""+n)}};e.exports=p}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,t,n){g.push({parentID:e,parentNode:null,type:p.INSERT_MARKUP,markupIndex:y.push(t)-1,content:null,fromIndex:null,toIndex:n})}function i(e,t,n){g.push({parentID:e,parentNode:null,type:p.MOVE_EXISTING,markupIndex:null,content:null,fromIndex:t,toIndex:n})}function o(e,t){g.push({parentID:e,parentNode:null,type:p.REMOVE_NODE,markupIndex:null,content:null,fromIndex:t,toIndex:null})}function a(e,t){g.push({parentID:e,parentNode:null,type:p.SET_MARKUP,markupIndex:null,content:t,fromIndex:null,toIndex:null})}function s(e,t){g.push({parentID:e,parentNode:null,type:p.TEXT_CONTENT,markupIndex:null,content:t,fromIndex:null,toIndex:null})}function u(){g.length&&(l.processChildrenUpdates(g,y),c())}function c(){g.length=0,y.length=0}var l=n(375),p=n(327),f=n(316),d=n(361),h=n(426),m=n(427),v=0,g=[],y=[],b={Mixin:{_reconcilerInstantiateChildren:function(e,n,r){if("production"!==t.env.NODE_ENV&&this._currentElement)try{return f.current=this._currentElement._owner,h.instantiateChildren(e,n,r)}finally{f.current=null}return h.instantiateChildren(e,n,r)},_reconcilerUpdateChildren:function(e,n,r,i){var o;if("production"!==t.env.NODE_ENV&&this._currentElement){try{f.current=this._currentElement._owner,o=m(n)}finally{f.current=null}return h.updateChildren(e,o,r,i)}return o=m(n),h.updateChildren(e,o,r,i)},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var i=[],o=0;for(var a in r)if(r.hasOwnProperty(a)){var s=r[a],u=this._rootNodeID+a,c=d.mountComponent(s,u,t,n);s._mountIndex=o++,i.push(c)}return i},updateTextContent:function(e){v++;var t=!0;try{var n=this._renderedChildren;h.unmountChildren(n);for(var r in n)n.hasOwnProperty(r)&&this._unmountChild(n[r]);this.setTextContent(e),t=!1}finally{v--,v||(t?c():u())}},updateMarkup:function(e){v++;var t=!0;try{var n=this._renderedChildren;h.unmountChildren(n);for(var r in n)n.hasOwnProperty(r)&&this._unmountChildByName(n[r],r);this.setMarkup(e),t=!1}finally{v--,v||(t?c():u())}},updateChildren:function(e,t,n){v++;var r=!0;try{this._updateChildren(e,t,n),r=!1}finally{v--,v||(r?c():u())}},_updateChildren:function(e,t,n){var r=this._renderedChildren,i=this._reconcilerUpdateChildren(r,e,t,n);if(this._renderedChildren=i,i||r){var o,a=0,s=0;for(o in i)if(i.hasOwnProperty(o)){var u=r&&r[o],c=i[o];u===c?(this.moveChild(u,s,a),a=Math.max(u._mountIndex,a),u._mountIndex=s):(u&&(a=Math.max(u._mountIndex,a),this._unmountChild(u)),this._mountChildByNameAtIndex(c,o,s,t,n)),s++}for(o in r)!r.hasOwnProperty(o)||i&&i.hasOwnProperty(o)||this._unmountChild(r[o])}},unmountChildren:function(){var e=this._renderedChildren;h.unmountChildren(e),this._renderedChildren=null},moveChild:function(e,t,n){e._mountIndex<n&&i(this._rootNodeID,e._mountIndex,t)},createChild:function(e,t){r(this._rootNodeID,t,e._mountIndex)},removeChild:function(e){o(this._rootNodeID,e._mountIndex)},setTextContent:function(e){s(this._rootNodeID,e)},setMarkup:function(e){a(this._rootNodeID,e)},_mountChildByNameAtIndex:function(e,t,n,r,i){var o=this._rootNodeID+t,a=d.mountComponent(e,o,r,i);e._mountIndex=n,this.createChild(e,a)},_unmountChild:function(e){this.removeChild(e),e._mountIndex=null}}};e.exports=b}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,n,r){var i=void 0===e[r];"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?u(i,"flattenChildren(...): Encountered two children with the same key, `%s`. Child keys must be unique; when two children share a key, only the first child will be used.",r):void 0),null!=n&&i&&(e[r]=o(n,null))}var i=n(361),o=n(373),a=n(378),s=n(422),u=n(336),c={instantiateChildren:function(e){if(null==e)return null;var t={};return s(e,r,t),t},updateChildren:function(e,t,n,r){if(!t&&!e)return null;var s;for(s in t)if(t.hasOwnProperty(s)){var u=e&&e[s],c=u&&u._currentElement,l=t[s];if(null!=u&&a(c,l))i.receiveComponent(u,l,n,r),t[s]=u;else{u&&i.unmountComponent(u,s);var p=o(l,null);t[s]=p}}for(s in e)!e.hasOwnProperty(s)||t&&t.hasOwnProperty(s)||i.unmountComponent(e[s]);return t},unmountChildren:function(e){for(var t in e)if(e.hasOwnProperty(t)){var n=e[t];i.unmountComponent(n)}}};e.exports=c}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,n,r){var i=e,o=void 0===i[r];"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?a(o,"flattenChildren(...): Encountered two children with the same key, `%s`. Child keys must be unique; when two children share a key, only the first child will be used.",r):void 0),o&&null!=n&&(i[r]=n)}function i(e){if(null==e)return e;var t={};return o(e,r,t),t}var o=n(422),a=n(336);e.exports=i}).call(t,n(8))},function(e){"use strict";function t(e,t){if(e===t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;for(var o=n.bind(t),a=0;a<r.length;a++)if(!o(r[a])||e[r[a]]!==t[r[a]])return!1;return!0}var n=Object.prototype.hasOwnProperty;e.exports=t},function(e,t,n){"use strict";function r(e){var t=f.getID(e),n=p.getReactRootIDFromNodeID(t),r=f.findReactContainerForID(n),i=f.getFirstReactDOM(r);return i}function i(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function o(e){a(e)}function a(e){for(var t=f.getFirstReactDOM(m(e.nativeEvent))||window,n=t;n;)e.ancestors.push(n),n=r(n);for(var i=0;i<e.ancestors.length;i++){t=e.ancestors[i];var o=f.getID(t)||"";g._handleTopLevel(e.topLevelType,t,o,e.nativeEvent,m(e.nativeEvent))}}function s(e){var t=v(window);e(t)}var u=n(430),c=n(320),l=n(367),p=n(356),f=n(339),d=n(365),h=n(350),m=n(392),v=n(431);h(i.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),l.addPoolingTo(i,l.twoArgumentPooler);var g={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:c.canUseDOM?window:null,setHandleTopLevel:function(e){g._handleTopLevel=e},setEnabled:function(e){g._enabled=!!e},isEnabled:function(){return g._enabled},trapBubbledEvent:function(e,t,n){var r=n;return r?u.listen(r,t,g.dispatchEvent.bind(null,e)):null},trapCapturedEvent:function(e,t,n){var r=n;return r?u.capture(r,t,g.dispatchEvent.bind(null,e)):null},monitorScrollValue:function(e){var t=s.bind(null,e);u.listen(window,"scroll",t)},dispatchEvent:function(e,t){if(g._enabled){var n=i.getPooled(e,t);try{d.batchedUpdates(o,n)}finally{i.release(n)}}}};e.exports=g},function(e,t,n){(function(t){"use strict";var r=n(326),i={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,n,i){return e.addEventListener?(e.addEventListener(n,i,!0),{remove:function(){e.removeEventListener(n,i,!0)}}):("production"!==t.env.NODE_ENV&&console.error("Attempted to listen to events during the capture phase on a browser that does not support the capture phase. Your application will not receive some events."),{remove:r})},registerDefault:function(){}};e.exports=i}).call(t,n(8))},function(e){"use strict";function t(e){return e===window?{x:window.pageXOffset||document.documentElement.scrollLeft,y:window.pageYOffset||document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}e.exports=t},function(e,t,n){"use strict";var r=n(334),i=n(342),o=n(375),a=n(433),s=n(379),u=n(340),c=n(380),l=n(329),p=n(357),f=n(365),d={Component:o.injection,Class:a.injection,DOMProperty:r.injection,EmptyComponent:s.injection,EventPluginHub:i.injection,EventEmitter:u.injection,NativeComponent:c.injection,Perf:l.injection,RootIndex:p.injection,Updates:f.injection};e.exports=d},function(e,t,n){(function(t){"use strict";function r(){O||(O=!0,"production"!==t.env.NODE_ENV?_(!1,"setProps(...) and replaceProps(...) are deprecated. Instead, call render again at the top level."):void 0)}function i(e,n,r){for(var i in n)n.hasOwnProperty(i)&&("production"!==t.env.NODE_ENV?_("function"==typeof n[i],"%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.",e.displayName||"ReactClass",v[r],i):void 0)}function o(e,n){var r=T.hasOwnProperty(n)?T[n]:null;S.hasOwnProperty(n)&&(r!==N.OVERRIDE_BASE?"production"!==t.env.NODE_ENV?x(!1,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",n):x(!1):void 0),e.hasOwnProperty(n)&&(r!==N.DEFINE_MANY&&r!==N.DEFINE_MANY_MERGED?"production"!==t.env.NODE_ENV?x(!1,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n):x(!1):void 0)}function a(e,n){if(n){"function"==typeof n?"production"!==t.env.NODE_ENV?x(!1,"ReactClass: You're attempting to use a component class as a mixin. Instead, just use a regular object."):x(!1):void 0,h.isValidElement(n)?"production"!==t.env.NODE_ENV?x(!1,"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object."):x(!1):void 0;var r=e.prototype;n.hasOwnProperty(C)&&P.mixins(e,n.mixins);for(var i in n)if(n.hasOwnProperty(i)&&i!==C){var a=n[i];if(o(r,i),P.hasOwnProperty(i))P[i](e,a);else{var s=T.hasOwnProperty(i),u=r.hasOwnProperty(i),p="function"==typeof a,f=p&&!s&&!u&&n.autobind!==!1;if(f)r.__reactAutoBindMap||(r.__reactAutoBindMap={}),r.__reactAutoBindMap[i]=a,r[i]=a;else if(u){var d=T[i];!s||d!==N.DEFINE_MANY_MERGED&&d!==N.DEFINE_MANY?"production"!==t.env.NODE_ENV?x(!1,"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",d,i):x(!1):void 0,d===N.DEFINE_MANY_MERGED?r[i]=c(r[i],a):d===N.DEFINE_MANY&&(r[i]=l(r[i],a))}else r[i]=a,"production"!==t.env.NODE_ENV&&"function"==typeof a&&n.displayName&&(r[i].displayName=n.displayName+"_"+i)}}}}function s(e,n){if(n)for(var r in n){var i=n[r];if(n.hasOwnProperty(r)){var o=r in P;o?"production"!==t.env.NODE_ENV?x(!1,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',r):x(!1):void 0;var a=r in e;a?"production"!==t.env.NODE_ENV?x(!1,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",r):x(!1):void 0,e[r]=i}}}function u(e,n){e&&n&&"object"==typeof e&&"object"==typeof n?void 0:"production"!==t.env.NODE_ENV?x(!1,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects."):x(!1);for(var r in n)n.hasOwnProperty(r)&&(void 0!==e[r]?"production"!==t.env.NODE_ENV?x(!1,"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",r):x(!1):void 0,e[r]=n[r]);return e}function c(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var i={};return u(i,n),u(i,r),i}}function l(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function p(e,n){var r=n.bind(e);if("production"!==t.env.NODE_ENV){r.__reactBoundContext=e,r.__reactBoundMethod=n,r.__reactBoundArguments=null;var i=e.constructor.displayName,o=r.bind;r.bind=function(a){for(var s=arguments.length,u=Array(s>1?s-1:0),c=1;s>c;c++)u[c-1]=arguments[c];if(a!==e&&null!==a)"production"!==t.env.NODE_ENV?_(!1,"bind(): React component methods may only be bound to the component instance. See %s",i):void 0;else if(!u.length)return"production"!==t.env.NODE_ENV?_(!1,"bind(): You are binding a component method to the component. React does this for you automatically in a high-performance way, so you can safely remove this call. See %s",i):void 0,r;var l=o.apply(r,arguments);return l.__reactBoundContext=e,l.__reactBoundMethod=n,l.__reactBoundArguments=u,l}}return r}function f(e){for(var t in e.__reactAutoBindMap)if(e.__reactAutoBindMap.hasOwnProperty(t)){var n=e.__reactAutoBindMap[t];e[t]=p(e,n)}}var d=n(434),h=n(353),m=n(376),v=n(377),g=n(435),y=n(350),b=n(369),x=n(324),w=n(328),E=n(390),_=n(336),C=E({mixins:null}),N=w({DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null,DEFINE_MANY_MERGED:null}),$=[],O=!1,T={mixins:N.DEFINE_MANY,statics:N.DEFINE_MANY,propTypes:N.DEFINE_MANY,contextTypes:N.DEFINE_MANY,childContextTypes:N.DEFINE_MANY,getDefaultProps:N.DEFINE_MANY_MERGED,getInitialState:N.DEFINE_MANY_MERGED,getChildContext:N.DEFINE_MANY_MERGED,render:N.DEFINE_ONCE,componentWillMount:N.DEFINE_MANY,componentDidMount:N.DEFINE_MANY,componentWillReceiveProps:N.DEFINE_MANY,shouldComponentUpdate:N.DEFINE_ONCE,componentWillUpdate:N.DEFINE_MANY,componentDidUpdate:N.DEFINE_MANY,componentWillUnmount:N.DEFINE_MANY,updateComponent:N.OVERRIDE_BASE},P={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)a(e,t[n])},childContextTypes:function(e,n){"production"!==t.env.NODE_ENV&&i(e,n,m.childContext),e.childContextTypes=y({},e.childContextTypes,n)},contextTypes:function(e,n){"production"!==t.env.NODE_ENV&&i(e,n,m.context),e.contextTypes=y({},e.contextTypes,n)},getDefaultProps:function(e,t){e.getDefaultProps=e.getDefaultProps?c(e.getDefaultProps,t):t},propTypes:function(e,n){"production"!==t.env.NODE_ENV&&i(e,n,m.prop),e.propTypes=y({},e.propTypes,n)},statics:function(e,t){s(e,t)},autobind:function(){}},S={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e),t&&this.updater.enqueueCallback(this,t)},isMounted:function(){return this.updater.isMounted(this)},setProps:function(e,n){"production"!==t.env.NODE_ENV&&r(),this.updater.enqueueSetProps(this,e),n&&this.updater.enqueueCallback(this,n)},replaceProps:function(e,n){"production"!==t.env.NODE_ENV&&r(),this.updater.enqueueReplaceProps(this,e),n&&this.updater.enqueueCallback(this,n)}},D=function(){};y(D.prototype,d.prototype,S);var R={createClass:function(e){var n=function i(e,n,r){"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?_(this instanceof i,"Something is calling a React component directly. Use a factory or JSX instead. See: https://fb.me/react-legacyfactory"):void 0),this.__reactAutoBindMap&&f(this),this.props=e,this.context=n,this.refs=b,this.updater=r||g,this.state=null;var o=this.getInitialState?this.getInitialState():null;"production"!==t.env.NODE_ENV&&"undefined"==typeof o&&this.getInitialState._isMockFunction&&(o=null),"object"!=typeof o||Array.isArray(o)?"production"!==t.env.NODE_ENV?x(!1,"%s.getInitialState(): must return an object or null",i.displayName||"ReactCompositeComponent"):x(!1):void 0,this.state=o};n.prototype=new D,n.prototype.constructor=n,$.forEach(a.bind(null,n)),a(n,e),n.getDefaultProps&&(n.defaultProps=n.getDefaultProps()),"production"!==t.env.NODE_ENV&&(n.getDefaultProps&&(n.getDefaultProps.isReactClassApproved={}),n.prototype.getInitialState&&(n.prototype.getInitialState.isReactClassApproved={})),n.prototype.render?void 0:"production"!==t.env.NODE_ENV?x(!1,"createClass(...): Class specification must implement a `render` method."):x(!1),"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?_(!n.prototype.componentShouldUpdate,"%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.",e.displayName||"A component"):void 0,"production"!==t.env.NODE_ENV?_(!n.prototype.componentWillRecieveProps,"%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?",e.displayName||"A component"):void 0);for(var r in T)n.prototype[r]||(n.prototype[r]=null);return n},injection:{injectMixin:function(e){$.push(e)}}};e.exports=R}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,t,n){this.props=e,this.context=t,this.refs=a,this.updater=n||i}var i=n(435),o=n(354),a=n(369),s=n(324),u=n(336);if(r.prototype.isReactComponent={},r.prototype.setState=function(e,n){"object"!=typeof e&&"function"!=typeof e&&null!=e?"production"!==t.env.NODE_ENV?s(!1,"setState(...): takes an object of state variables to update or a function which returns an object of state variables."):s(!1):void 0,"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?u(null!=e,"setState(...): You passed an undefined or null state object; instead, use forceUpdate()."):void 0),this.updater.enqueueSetState(this,e),n&&this.updater.enqueueCallback(this,n)},r.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e)},"production"!==t.env.NODE_ENV){var c={getDOMNode:["getDOMNode","Use ReactDOM.findDOMNode(component) instead."],isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceProps:["replaceProps","Instead, call render again at the top level."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."],setProps:["setProps","Instead, call render again at the top level."]},l=function(e,n){o&&Object.defineProperty(r.prototype,e,{get:function(){return void("production"!==t.env.NODE_ENV?u(!1,"%s(...) is deprecated in plain JavaScript React classes. %s",n[0],n[1]):void 0)}})};for(var p in c)c.hasOwnProperty(p)&&l(p,c[p])}e.exports=r}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,n){"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?i(!1,"%s(...): Can only update a mounted or mounting component. This usually means you called %s() on an unmounted component. This is a no-op. Please check the code for the %s component.",n,n,e.constructor&&e.constructor.displayName||""):void 0)}var i=n(336),o={isMounted:function(){return!1},enqueueCallback:function(){},enqueueForceUpdate:function(e){r(e,"forceUpdate")},enqueueReplaceState:function(e){r(e,"replaceState")},enqueueSetState:function(e){r(e,"setState")},enqueueSetProps:function(e){r(e,"setProps")},enqueueReplaceProps:function(e){r(e,"replaceProps")}};e.exports=o}).call(t,n(8))},function(e,t,n){"use strict";function r(e){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=i.getPooled(null),this.useCreateElement=!e&&s.useCreateElement}var i=n(366),o=n(367),a=n(340),s=n(352),u=n(437),c=n(368),l=n(350),p={initialize:u.getSelectionInformation,close:u.restoreSelection},f={initialize:function(){var e=a.isEnabled();return a.setEnabled(!1),e},close:function(e){a.setEnabled(e)}},d={initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}},h=[p,f,d],m={getTransactionWrappers:function(){return h},getReactMountReady:function(){return this.reactMountReady},destructor:function(){i.release(this.reactMountReady),this.reactMountReady=null}};l(r.prototype,c.Mixin,m),o.addPoolingTo(r),e.exports=r},function(e,t,n){"use strict";function r(e){return o(document.documentElement,e)}var i=n(438),o=n(370),a=n(406),s=n(440),u={hasSelectionCapabilities:function(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&"text"===e.type||"textarea"===t||"true"===e.contentEditable)},getSelectionInformation:function(){var e=s();return{focusedElem:e,selectionRange:u.hasSelectionCapabilities(e)?u.getSelection(e):null}},restoreSelection:function(e){var t=s(),n=e.focusedElem,i=e.selectionRange;t!==n&&r(n)&&(u.hasSelectionCapabilities(n)&&u.setSelection(n,i),a(n))},getSelection:function(e){var t;if("selectionStart"in e)t={start:e.selectionStart,end:e.selectionEnd};else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var n=document.selection.createRange();n.parentElement()===e&&(t={start:-n.moveStart("character",-e.value.length),end:-n.moveEnd("character",-e.value.length)})}else t=i.getOffsets(e);return t||{start:0,end:0}},setSelection:function(e,t){var n=t.start,r=t.end;if("undefined"==typeof r&&(r=n),"selectionStart"in e)e.selectionStart=n,e.selectionEnd=Math.min(r,e.value.length);else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var o=e.createTextRange();o.collapse(!0),o.moveStart("character",n),o.moveEnd("character",r-n),o.select()}else i.setOffsets(e,t)}};e.exports=u},function(e,t,n){"use strict";function r(e,t,n,r){return e===n&&t===r}function i(e){var t=document.selection,n=t.createRange(),r=n.text.length,i=n.duplicate();i.moveToElementText(e),i.setEndPoint("EndToStart",n);var o=i.text.length,a=o+r;return{start:o,end:a}}function o(e){var t=window.getSelection&&window.getSelection();if(!t||0===t.rangeCount)return null;var n=t.anchorNode,i=t.anchorOffset,o=t.focusNode,a=t.focusOffset,s=t.getRangeAt(0);try{s.startContainer.nodeType,s.endContainer.nodeType}catch(u){return null}var c=r(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset),l=c?0:s.toString().length,p=s.cloneRange();p.selectNodeContents(e),p.setEnd(s.startContainer,s.startOffset);var f=r(p.startContainer,p.startOffset,p.endContainer,p.endOffset),d=f?0:p.toString().length,h=d+l,m=document.createRange();m.setStart(n,i),m.setEnd(o,a);var v=m.collapsed;return{start:v?h:d,end:v?d:h}}function a(e,t){var n,r,i=document.selection.createRange().duplicate();"undefined"==typeof t.end?(n=t.start,r=n):t.start>t.end?(n=t.end,r=t.start):(n=t.start,r=t.end),i.moveToElementText(e),i.moveStart("character",n),i.setEndPoint("EndToStart",i),i.moveEnd("character",r-n),i.select()}function s(e,t){if(window.getSelection){var n=window.getSelection(),r=e[l()].length,i=Math.min(t.start,r),o="undefined"==typeof t.end?i:Math.min(t.end,r);if(!n.extend&&i>o){var a=o;o=i,i=a}var s=c(e,i),u=c(e,o);if(s&&u){var p=document.createRange();p.setStart(s.node,s.offset),n.removeAllRanges(),i>o?(n.addRange(p),n.extend(u.node,u.offset)):(p.setEnd(u.node,u.offset),n.addRange(p))}}}var u=n(320),c=n(439),l=n(386),p=u.canUseDOM&&"selection"in document&&!("getSelection"in window),f={getOffsets:p?i:o,setOffsets:p?a:s};e.exports=f},function(e){"use strict";function t(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function n(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}function r(e,r){for(var i=t(e),o=0,a=0;i;){if(3===i.nodeType){if(a=o+i.textContent.length,r>=o&&a>=r)return{node:i,offset:r-o};o=a}i=t(n(i))}}e.exports=r},function(e){"use strict";function t(){if("undefined"==typeof document)return null;try{return document.activeElement||document.body}catch(e){return document.body}}e.exports=t},function(e,t,n){"use strict";function r(e){if("selectionStart"in e&&u.hasSelectionCapabilities(e))return{start:e.selectionStart,end:e.selectionEnd};if(window.getSelection){var t=window.getSelection();return{anchorNode:t.anchorNode,anchorOffset:t.anchorOffset,focusNode:t.focusNode,focusOffset:t.focusOffset}}if(document.selection){var n=document.selection.createRange();return{parentElement:n.parentElement(),text:n.text,top:n.boundingTop,left:n.boundingLeft}}}function i(e,t){if(x||null==g||g!==l())return null;var n=r(g);if(!b||!d(b,n)){b=n;var i=c.getPooled(v.select,y,e,t);return i.type="select",i.target=g,a.accumulateTwoPhaseDispatches(i),i}return null}var o=n(341),a=n(384),s=n(320),u=n(437),c=n(388),l=n(440),p=n(393),f=n(390),d=n(428),h=o.topLevelTypes,m=s.canUseDOM&&"documentMode"in document&&document.documentMode<=11,v={select:{phasedRegistrationNames:{bubbled:f({onSelect:null}),captured:f({onSelectCapture:null})},dependencies:[h.topBlur,h.topContextMenu,h.topFocus,h.topKeyDown,h.topMouseDown,h.topMouseUp,h.topSelectionChange]}},g=null,y=null,b=null,x=!1,w=!1,E=f({onSelect:null}),_={eventTypes:v,extractEvents:function(e,t,n,r,o){if(!w)return null;switch(e){case h.topFocus:(p(t)||"true"===t.contentEditable)&&(g=t,y=n,b=null);break;case h.topBlur:g=null,y=null,b=null;break;case h.topMouseDown:x=!0;break;case h.topContextMenu:case h.topMouseUp:return x=!1,i(r,o);case h.topSelectionChange:if(m)break;case h.topKeyDown:case h.topKeyUp:return i(r,o)}return null},didPutListener:function(e,t){t===E&&(w=!0)}};e.exports=_},function(e){"use strict";var t=Math.pow(2,53),n={createReactRootIndex:function(){return Math.ceil(Math.random()*t)}};e.exports=n},function(e,t,n){(function(t){"use strict";var r=n(341),i=n(430),o=n(384),a=n(339),s=n(444),u=n(388),c=n(445),l=n(446),p=n(397),f=n(449),d=n(450),h=n(398),m=n(451),v=n(326),g=n(447),y=n(324),b=n(390),x=r.topLevelTypes,w={abort:{phasedRegistrationNames:{bubbled:b({onAbort:!0}),captured:b({onAbortCapture:!0})}},blur:{phasedRegistrationNames:{bubbled:b({onBlur:!0}),captured:b({onBlurCapture:!0})}},canPlay:{phasedRegistrationNames:{bubbled:b({onCanPlay:!0}),captured:b({onCanPlayCapture:!0})}},canPlayThrough:{phasedRegistrationNames:{bubbled:b({onCanPlayThrough:!0}),captured:b({onCanPlayThroughCapture:!0})}},click:{phasedRegistrationNames:{bubbled:b({onClick:!0}),captured:b({onClickCapture:!0})}},contextMenu:{phasedRegistrationNames:{bubbled:b({onContextMenu:!0}),captured:b({onContextMenuCapture:!0})}},copy:{phasedRegistrationNames:{bubbled:b({onCopy:!0}),captured:b({onCopyCapture:!0})}},cut:{phasedRegistrationNames:{bubbled:b({onCut:!0}),captured:b({onCutCapture:!0})}},doubleClick:{phasedRegistrationNames:{bubbled:b({onDoubleClick:!0}),captured:b({onDoubleClickCapture:!0})}},drag:{phasedRegistrationNames:{bubbled:b({onDrag:!0}),captured:b({onDragCapture:!0})}},dragEnd:{phasedRegistrationNames:{bubbled:b({onDragEnd:!0}),captured:b({onDragEndCapture:!0})}},dragEnter:{phasedRegistrationNames:{bubbled:b({onDragEnter:!0}),captured:b({onDragEnterCapture:!0})}},dragExit:{phasedRegistrationNames:{bubbled:b({onDragExit:!0}),captured:b({onDragExitCapture:!0})}},dragLeave:{phasedRegistrationNames:{bubbled:b({onDragLeave:!0}),captured:b({onDragLeaveCapture:!0})}},dragOver:{phasedRegistrationNames:{bubbled:b({onDragOver:!0}),captured:b({onDragOverCapture:!0})}},dragStart:{phasedRegistrationNames:{bubbled:b({onDragStart:!0}),captured:b({onDragStartCapture:!0})}},drop:{phasedRegistrationNames:{bubbled:b({onDrop:!0}),captured:b({onDropCapture:!0})}},durationChange:{phasedRegistrationNames:{bubbled:b({onDurationChange:!0}),captured:b({onDurationChangeCapture:!0})}},emptied:{phasedRegistrationNames:{bubbled:b({onEmptied:!0}),captured:b({onEmptiedCapture:!0})}},encrypted:{phasedRegistrationNames:{bubbled:b({onEncrypted:!0}),captured:b({onEncryptedCapture:!0})}},ended:{phasedRegistrationNames:{bubbled:b({onEnded:!0}),captured:b({onEndedCapture:!0})}},error:{
17
+ phasedRegistrationNames:{bubbled:b({onError:!0}),captured:b({onErrorCapture:!0})}},focus:{phasedRegistrationNames:{bubbled:b({onFocus:!0}),captured:b({onFocusCapture:!0})}},input:{phasedRegistrationNames:{bubbled:b({onInput:!0}),captured:b({onInputCapture:!0})}},keyDown:{phasedRegistrationNames:{bubbled:b({onKeyDown:!0}),captured:b({onKeyDownCapture:!0})}},keyPress:{phasedRegistrationNames:{bubbled:b({onKeyPress:!0}),captured:b({onKeyPressCapture:!0})}},keyUp:{phasedRegistrationNames:{bubbled:b({onKeyUp:!0}),captured:b({onKeyUpCapture:!0})}},load:{phasedRegistrationNames:{bubbled:b({onLoad:!0}),captured:b({onLoadCapture:!0})}},loadedData:{phasedRegistrationNames:{bubbled:b({onLoadedData:!0}),captured:b({onLoadedDataCapture:!0})}},loadedMetadata:{phasedRegistrationNames:{bubbled:b({onLoadedMetadata:!0}),captured:b({onLoadedMetadataCapture:!0})}},loadStart:{phasedRegistrationNames:{bubbled:b({onLoadStart:!0}),captured:b({onLoadStartCapture:!0})}},mouseDown:{phasedRegistrationNames:{bubbled:b({onMouseDown:!0}),captured:b({onMouseDownCapture:!0})}},mouseMove:{phasedRegistrationNames:{bubbled:b({onMouseMove:!0}),captured:b({onMouseMoveCapture:!0})}},mouseOut:{phasedRegistrationNames:{bubbled:b({onMouseOut:!0}),captured:b({onMouseOutCapture:!0})}},mouseOver:{phasedRegistrationNames:{bubbled:b({onMouseOver:!0}),captured:b({onMouseOverCapture:!0})}},mouseUp:{phasedRegistrationNames:{bubbled:b({onMouseUp:!0}),captured:b({onMouseUpCapture:!0})}},paste:{phasedRegistrationNames:{bubbled:b({onPaste:!0}),captured:b({onPasteCapture:!0})}},pause:{phasedRegistrationNames:{bubbled:b({onPause:!0}),captured:b({onPauseCapture:!0})}},play:{phasedRegistrationNames:{bubbled:b({onPlay:!0}),captured:b({onPlayCapture:!0})}},playing:{phasedRegistrationNames:{bubbled:b({onPlaying:!0}),captured:b({onPlayingCapture:!0})}},progress:{phasedRegistrationNames:{bubbled:b({onProgress:!0}),captured:b({onProgressCapture:!0})}},rateChange:{phasedRegistrationNames:{bubbled:b({onRateChange:!0}),captured:b({onRateChangeCapture:!0})}},reset:{phasedRegistrationNames:{bubbled:b({onReset:!0}),captured:b({onResetCapture:!0})}},scroll:{phasedRegistrationNames:{bubbled:b({onScroll:!0}),captured:b({onScrollCapture:!0})}},seeked:{phasedRegistrationNames:{bubbled:b({onSeeked:!0}),captured:b({onSeekedCapture:!0})}},seeking:{phasedRegistrationNames:{bubbled:b({onSeeking:!0}),captured:b({onSeekingCapture:!0})}},stalled:{phasedRegistrationNames:{bubbled:b({onStalled:!0}),captured:b({onStalledCapture:!0})}},submit:{phasedRegistrationNames:{bubbled:b({onSubmit:!0}),captured:b({onSubmitCapture:!0})}},suspend:{phasedRegistrationNames:{bubbled:b({onSuspend:!0}),captured:b({onSuspendCapture:!0})}},timeUpdate:{phasedRegistrationNames:{bubbled:b({onTimeUpdate:!0}),captured:b({onTimeUpdateCapture:!0})}},touchCancel:{phasedRegistrationNames:{bubbled:b({onTouchCancel:!0}),captured:b({onTouchCancelCapture:!0})}},touchEnd:{phasedRegistrationNames:{bubbled:b({onTouchEnd:!0}),captured:b({onTouchEndCapture:!0})}},touchMove:{phasedRegistrationNames:{bubbled:b({onTouchMove:!0}),captured:b({onTouchMoveCapture:!0})}},touchStart:{phasedRegistrationNames:{bubbled:b({onTouchStart:!0}),captured:b({onTouchStartCapture:!0})}},volumeChange:{phasedRegistrationNames:{bubbled:b({onVolumeChange:!0}),captured:b({onVolumeChangeCapture:!0})}},waiting:{phasedRegistrationNames:{bubbled:b({onWaiting:!0}),captured:b({onWaitingCapture:!0})}},wheel:{phasedRegistrationNames:{bubbled:b({onWheel:!0}),captured:b({onWheelCapture:!0})}}},E={topAbort:w.abort,topBlur:w.blur,topCanPlay:w.canPlay,topCanPlayThrough:w.canPlayThrough,topClick:w.click,topContextMenu:w.contextMenu,topCopy:w.copy,topCut:w.cut,topDoubleClick:w.doubleClick,topDrag:w.drag,topDragEnd:w.dragEnd,topDragEnter:w.dragEnter,topDragExit:w.dragExit,topDragLeave:w.dragLeave,topDragOver:w.dragOver,topDragStart:w.dragStart,topDrop:w.drop,topDurationChange:w.durationChange,topEmptied:w.emptied,topEncrypted:w.encrypted,topEnded:w.ended,topError:w.error,topFocus:w.focus,topInput:w.input,topKeyDown:w.keyDown,topKeyPress:w.keyPress,topKeyUp:w.keyUp,topLoad:w.load,topLoadedData:w.loadedData,topLoadedMetadata:w.loadedMetadata,topLoadStart:w.loadStart,topMouseDown:w.mouseDown,topMouseMove:w.mouseMove,topMouseOut:w.mouseOut,topMouseOver:w.mouseOver,topMouseUp:w.mouseUp,topPaste:w.paste,topPause:w.pause,topPlay:w.play,topPlaying:w.playing,topProgress:w.progress,topRateChange:w.rateChange,topReset:w.reset,topScroll:w.scroll,topSeeked:w.seeked,topSeeking:w.seeking,topStalled:w.stalled,topSubmit:w.submit,topSuspend:w.suspend,topTimeUpdate:w.timeUpdate,topTouchCancel:w.touchCancel,topTouchEnd:w.touchEnd,topTouchMove:w.touchMove,topTouchStart:w.touchStart,topVolumeChange:w.volumeChange,topWaiting:w.waiting,topWheel:w.wheel};for(var _ in E)E[_].dependencies=[_];var C=b({onClick:null}),N={},$={eventTypes:w,extractEvents:function(e,n,r,i,a){var v=E[e];if(!v)return null;var b;switch(e){case x.topAbort:case x.topCanPlay:case x.topCanPlayThrough:case x.topDurationChange:case x.topEmptied:case x.topEncrypted:case x.topEnded:case x.topError:case x.topInput:case x.topLoad:case x.topLoadedData:case x.topLoadedMetadata:case x.topLoadStart:case x.topPause:case x.topPlay:case x.topPlaying:case x.topProgress:case x.topRateChange:case x.topReset:case x.topSeeked:case x.topSeeking:case x.topStalled:case x.topSubmit:case x.topSuspend:case x.topTimeUpdate:case x.topVolumeChange:case x.topWaiting:b=u;break;case x.topKeyPress:if(0===g(i))return null;case x.topKeyDown:case x.topKeyUp:b=l;break;case x.topBlur:case x.topFocus:b=c;break;case x.topClick:if(2===i.button)return null;case x.topContextMenu:case x.topDoubleClick:case x.topMouseDown:case x.topMouseMove:case x.topMouseOut:case x.topMouseOver:case x.topMouseUp:b=p;break;case x.topDrag:case x.topDragEnd:case x.topDragEnter:case x.topDragExit:case x.topDragLeave:case x.topDragOver:case x.topDragStart:case x.topDrop:b=f;break;case x.topTouchCancel:case x.topTouchEnd:case x.topTouchMove:case x.topTouchStart:b=d;break;case x.topScroll:b=h;break;case x.topWheel:b=m;break;case x.topCopy:case x.topCut:case x.topPaste:b=s}b?void 0:"production"!==t.env.NODE_ENV?y(!1,"SimpleEventPlugin: Unhandled event type, `%s`.",e):y(!1);var w=b.getPooled(v,r,i,a);return o.accumulateTwoPhaseDispatches(w),w},didPutListener:function(e,t){if(t===C){var n=a.getNode(e);N[e]||(N[e]=i.listen(n,"click",v))}},willDeleteListener:function(e,t){t===C&&(N[e].remove(),delete N[e])}};e.exports=$}).call(t,n(8))},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(388),o={clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(398),o={relatedTarget:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(398),o=n(447),a=n(448),s=n(399),u={key:a,location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:s,charCode:function(e){return"keypress"===e.type?o(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?o(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}};i.augmentClass(r,u),e.exports=r},function(e){"use strict";function t(e){var t,n=e.keyCode;return"charCode"in e?(t=e.charCode,0===t&&13===n&&(t=13)):t=n,t>=32||13===t?t:0}e.exports=t},function(e,t,n){"use strict";function r(e){if(e.key){var t=o[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=i(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?a[e.keyCode]||"Unidentified":""}var i=n(447),o={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},a={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(397),o={dataTransfer:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(398),o=n(399),a={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:o};i.augmentClass(r,a),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(397),o={deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";var r=n(334),i=r.injection.MUST_USE_ATTRIBUTE,o={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"},a={Properties:{clipPath:i,cx:i,cy:i,d:i,dx:i,dy:i,fill:i,fillOpacity:i,fontFamily:i,fontSize:i,fx:i,fy:i,gradientTransform:i,gradientUnits:i,markerEnd:i,markerMid:i,markerStart:i,offset:i,opacity:i,patternContentUnits:i,patternUnits:i,points:i,preserveAspectRatio:i,r:i,rx:i,ry:i,spreadMethod:i,stopColor:i,stopOpacity:i,stroke:i,strokeDasharray:i,strokeLinecap:i,strokeOpacity:i,strokeWidth:i,textAnchor:i,transform:i,version:i,viewBox:i,x1:i,x2:i,x:i,xlinkActuate:i,xlinkArcrole:i,xlinkHref:i,xlinkRole:i,xlinkShow:i,xlinkTitle:i,xlinkType:i,xmlBase:i,xmlLang:i,xmlSpace:i,y1:i,y2:i,y:i},DOMAttributeNamespaces:{xlinkActuate:o.xlink,xlinkArcrole:o.xlink,xlinkHref:o.xlink,xlinkRole:o.xlink,xlinkShow:o.xlink,xlinkTitle:o.xlink,xlinkType:o.xlink,xmlBase:o.xml,xmlLang:o.xml,xmlSpace:o.xml},DOMAttributeNames:{clipPath:"clip-path",fillOpacity:"fill-opacity",fontFamily:"font-family",fontSize:"font-size",gradientTransform:"gradientTransform",gradientUnits:"gradientUnits",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",patternContentUnits:"patternContentUnits",patternUnits:"patternUnits",preserveAspectRatio:"preserveAspectRatio",spreadMethod:"spreadMethod",stopColor:"stop-color",stopOpacity:"stop-opacity",strokeDasharray:"stroke-dasharray",strokeLinecap:"stroke-linecap",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",textAnchor:"text-anchor",viewBox:"viewBox",xlinkActuate:"xlink:actuate",xlinkArcrole:"xlink:arcrole",xlinkHref:"xlink:href",xlinkRole:"xlink:role",xlinkShow:"xlink:show",xlinkTitle:"xlink:title",xlinkType:"xlink:type",xmlBase:"xml:base",xmlLang:"xml:lang",xmlSpace:"xml:space"}};e.exports=a},function(e,t,n){"use strict";function r(e){return Math.floor(100*e)/100}function i(e,t,n){e[t]=(e[t]||0)+n}var o=n(334),a=n(454),s=n(339),u=n(329),c=n(455),l={_allMeasurements:[],_mountStack:[0],_injected:!1,start:function(){l._injected||u.injection.injectMeasure(l.measure),l._allMeasurements.length=0,u.enableMeasure=!0},stop:function(){u.enableMeasure=!1},getLastMeasurements:function(){return l._allMeasurements},printExclusive:function(e){e=e||l._allMeasurements;var t=a.getExclusiveSummary(e);console.table(t.map(function(e){return{"Component class name":e.componentName,"Total inclusive time (ms)":r(e.inclusive),"Exclusive mount time (ms)":r(e.exclusive),"Exclusive render time (ms)":r(e.render),"Mount time per instance (ms)":r(e.exclusive/e.count),"Render time per instance (ms)":r(e.render/e.count),Instances:e.count}}))},printInclusive:function(e){e=e||l._allMeasurements;var t=a.getInclusiveSummary(e);console.table(t.map(function(e){return{"Owner > component":e.componentName,"Inclusive time (ms)":r(e.time),Instances:e.count}})),console.log("Total time:",a.getTotalTime(e).toFixed(2)+" ms")},getMeasurementsSummaryMap:function(e){var t=a.getInclusiveSummary(e,!0);return t.map(function(e){return{"Owner > component":e.componentName,"Wasted time (ms)":e.time,Instances:e.count}})},printWasted:function(e){e=e||l._allMeasurements,console.table(l.getMeasurementsSummaryMap(e)),console.log("Total time:",a.getTotalTime(e).toFixed(2)+" ms")},printDOM:function(e){e=e||l._allMeasurements;var t=a.getDOMSummary(e);console.table(t.map(function(e){var t={};return t[o.ID_ATTRIBUTE_NAME]=e.id,t.type=e.type,t.args=JSON.stringify(e.args),t})),console.log("Total time:",a.getTotalTime(e).toFixed(2)+" ms")},_recordWrite:function(e,t,n,r){var i=l._allMeasurements[l._allMeasurements.length-1].writes;i[e]=i[e]||[],i[e].push({type:t,time:n,args:r})},measure:function(e,t,n){return function(){for(var r=arguments.length,o=Array(r),a=0;r>a;a++)o[a]=arguments[a];var u,p,f;if("_renderNewRootComponent"===t||"flushBatchedUpdates"===t)return l._allMeasurements.push({exclusive:{},inclusive:{},render:{},counts:{},writes:{},displayNames:{},totalTime:0,created:{}}),f=c(),p=n.apply(this,o),l._allMeasurements[l._allMeasurements.length-1].totalTime=c()-f,p;if("_mountImageIntoNode"===t||"ReactBrowserEventEmitter"===e||"ReactDOMIDOperations"===e||"CSSPropertyOperations"===e||"DOMChildrenOperations"===e||"DOMPropertyOperations"===e){if(f=c(),p=n.apply(this,o),u=c()-f,"_mountImageIntoNode"===t){var d=s.getID(o[1]);l._recordWrite(d,t,u,o[0])}else if("dangerouslyProcessChildrenUpdates"===t)o[0].forEach(function(e){var t={};null!==e.fromIndex&&(t.fromIndex=e.fromIndex),null!==e.toIndex&&(t.toIndex=e.toIndex),null!==e.textContent&&(t.textContent=e.textContent),null!==e.markupIndex&&(t.markup=o[1][e.markupIndex]),l._recordWrite(e.parentID,e.type,u,t)});else{var h=o[0];"object"==typeof h&&(h=s.getID(o[0])),l._recordWrite(h,t,u,Array.prototype.slice.call(o,1))}return p}if("ReactCompositeComponent"!==e||"mountComponent"!==t&&"updateComponent"!==t&&"_renderValidatedComponent"!==t)return n.apply(this,o);if(this._currentElement.type===s.TopLevelWrapper)return n.apply(this,o);var m="mountComponent"===t?o[0]:this._rootNodeID,v="_renderValidatedComponent"===t,g="mountComponent"===t,y=l._mountStack,b=l._allMeasurements[l._allMeasurements.length-1];if(v?i(b.counts,m,1):g&&(b.created[m]=!0,y.push(0)),f=c(),p=n.apply(this,o),u=c()-f,v)i(b.render,m,u);else if(g){var x=y.pop();y[y.length-1]+=u,i(b.exclusive,m,u-x),i(b.inclusive,m,u)}else i(b.inclusive,m,u);return b.displayNames[m]={current:this.getName(),owner:this._currentElement._owner?this._currentElement._owner.getName():"<root>"},p}}};e.exports=l},function(e,t,n){"use strict";function r(e){for(var t=0,n=0;n<e.length;n++){var r=e[n];t+=r.totalTime}return t}function i(e){var t=[];return e.forEach(function(e){Object.keys(e.writes).forEach(function(n){e.writes[n].forEach(function(e){t.push({id:n,type:l[e.type]||e.type,args:e.args})})})}),t}function o(e){for(var t,n={},r=0;r<e.length;r++){var i=e[r],o=u({},i.exclusive,i.inclusive);for(var a in o)t=i.displayNames[a].current,n[t]=n[t]||{componentName:t,inclusive:0,exclusive:0,render:0,count:0},i.render[a]&&(n[t].render+=i.render[a]),i.exclusive[a]&&(n[t].exclusive+=i.exclusive[a]),i.inclusive[a]&&(n[t].inclusive+=i.inclusive[a]),i.counts[a]&&(n[t].count+=i.counts[a])}var s=[];for(t in n)n[t].exclusive>=c&&s.push(n[t]);return s.sort(function(e,t){return t.exclusive-e.exclusive}),s}function a(e,t){for(var n,r={},i=0;i<e.length;i++){var o,a=e[i],l=u({},a.exclusive,a.inclusive);t&&(o=s(a));for(var p in l)if(!t||o[p]){var f=a.displayNames[p];n=f.owner+" > "+f.current,r[n]=r[n]||{componentName:n,time:0,count:0},a.inclusive[p]&&(r[n].time+=a.inclusive[p]),a.counts[p]&&(r[n].count+=a.counts[p])}}var d=[];for(n in r)r[n].time>=c&&d.push(r[n]);return d.sort(function(e,t){return t.time-e.time}),d}function s(e){var t={},n=Object.keys(e.writes),r=u({},e.exclusive,e.inclusive);for(var i in r){for(var o=!1,a=0;a<n.length;a++)if(0===n[a].indexOf(i)){o=!0;break}e.created[i]&&(o=!0),!o&&e.counts[i]>0&&(t[i]=!0)}return t}var u=n(350),c=1.2,l={_mountImageIntoNode:"set innerHTML",INSERT_MARKUP:"set innerHTML",MOVE_EXISTING:"move",REMOVE_NODE:"remove",SET_MARKUP:"set innerHTML",TEXT_CONTENT:"set textContent",setValueForProperty:"update attribute",setValueForAttribute:"update attribute",deleteValueForProperty:"remove attribute",dangerouslyReplaceNodeWithMarkupByID:"replace"},p={getExclusiveSummary:o,getInclusiveSummary:a,getDOMSummary:i,getTotalTime:r};e.exports=p},function(e,t,n){"use strict";var r=n(456),i=r;i&&i.now||(i=Date);var o=i.now.bind(i);e.exports=o},function(e,t,n){"use strict";var r,i=n(320);i.canUseDOM&&(r=window.performance||window.msPerformance||window.webkitPerformance),e.exports=r||{}},function(e){"use strict";e.exports="0.14.3"},function(e,t,n){"use strict";var r=n(339);e.exports=r.renderSubtreeIntoContainer},function(e,t,n){"use strict";var r=n(382),i=n(460),o=n(457);r.inject();var a={renderToString:i.renderToString,renderToStaticMarkup:i.renderToStaticMarkup,version:o};e.exports=a},function(e,t,n){(function(t){"use strict";function r(e){a.isValidElement(e)?void 0:"production"!==t.env.NODE_ENV?h(!1,"renderToString(): You must pass a valid ReactElement."):h(!1);var n;try{p.injection.injectBatchingStrategy(c);var r=s.createReactRootID();return n=l.getPooled(!1),n.perform(function(){var t=d(e,null),i=t.mountComponent(r,n,f);return u.addChecksumToMarkup(i)},null)}finally{l.release(n),p.injection.injectBatchingStrategy(o)}}function i(e){a.isValidElement(e)?void 0:"production"!==t.env.NODE_ENV?h(!1,"renderToStaticMarkup(): You must pass a valid ReactElement."):h(!1);var n;try{p.injection.injectBatchingStrategy(c);var r=s.createReactRootID();return n=l.getPooled(!0),n.perform(function(){var t=d(e,null);return t.mountComponent(r,n,f)},null)}finally{l.release(n),p.injection.injectBatchingStrategy(o)}}var o=n(403),a=n(353),s=n(356),u=n(359),c=n(461),l=n(462),p=n(365),f=n(369),d=n(373),h=n(324);e.exports={renderToString:r,renderToStaticMarkup:i}}).call(t,n(8))},function(e){"use strict";var t={isBatchingUpdates:!1,batchedUpdates:function(){}};e.exports=t},function(e,t,n){"use strict";function r(e){this.reinitializeTransaction(),this.renderToStaticMarkup=e,this.reactMountReady=o.getPooled(null),this.useCreateElement=!1}var i=n(367),o=n(366),a=n(368),s=n(350),u=n(326),c={initialize:function(){this.reactMountReady.reset()},close:u},l=[c],p={getTransactionWrappers:function(){return l},getReactMountReady:function(){return this.reactMountReady},destructor:function(){o.release(this.reactMountReady),this.reactMountReady=null}};s(r.prototype,a.Mixin,p),i.addPoolingTo(r),e.exports=r},function(e,t,n){(function(t){"use strict";var r=n(421),i=n(434),o=n(433),a=n(464),s=n(353),u=n(465),c=n(418),l=n(457),p=n(350),f=n(467),d=s.createElement,h=s.createFactory,m=s.cloneElement;"production"!==t.env.NODE_ENV&&(d=u.createElement,h=u.createFactory,m=u.cloneElement);var v={Children:{map:r.map,forEach:r.forEach,count:r.count,toArray:r.toArray,only:f},Component:i,createElement:d,cloneElement:m,isValidElement:s.isValidElement,PropTypes:c,createClass:o.createClass,createFactory:h,createMixin:function(e){return e},DOM:a,version:l,__spread:p};e.exports=v}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e){return"production"!==t.env.NODE_ENV?o.createFactory(e):i.createFactory(e)}var i=n(353),o=n(465),a=n(466),s=a({a:"a",abbr:"abbr",address:"address",area:"area",article:"article",aside:"aside",audio:"audio",b:"b",base:"base",bdi:"bdi",bdo:"bdo",big:"big",blockquote:"blockquote",body:"body",br:"br",button:"button",canvas:"canvas",caption:"caption",cite:"cite",code:"code",col:"col",colgroup:"colgroup",data:"data",datalist:"datalist",dd:"dd",del:"del",details:"details",dfn:"dfn",dialog:"dialog",div:"div",dl:"dl",dt:"dt",em:"em",embed:"embed",fieldset:"fieldset",figcaption:"figcaption",figure:"figure",footer:"footer",form:"form",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",head:"head",header:"header",hgroup:"hgroup",hr:"hr",html:"html",i:"i",iframe:"iframe",img:"img",input:"input",ins:"ins",kbd:"kbd",keygen:"keygen",label:"label",legend:"legend",li:"li",link:"link",main:"main",map:"map",mark:"mark",menu:"menu",menuitem:"menuitem",meta:"meta",meter:"meter",nav:"nav",noscript:"noscript",object:"object",ol:"ol",optgroup:"optgroup",option:"option",output:"output",p:"p",param:"param",picture:"picture",pre:"pre",progress:"progress",q:"q",rp:"rp",rt:"rt",ruby:"ruby",s:"s",samp:"samp",script:"script",section:"section",select:"select",small:"small",source:"source",span:"span",strong:"strong",style:"style",sub:"sub",summary:"summary",sup:"sup",table:"table",tbody:"tbody",td:"td",textarea:"textarea",tfoot:"tfoot",th:"th",thead:"thead",time:"time",title:"title",tr:"tr",track:"track",u:"u",ul:"ul","var":"var",video:"video",wbr:"wbr",circle:"circle",clipPath:"clipPath",defs:"defs",ellipse:"ellipse",g:"g",image:"image",line:"line",linearGradient:"linearGradient",mask:"mask",path:"path",pattern:"pattern",polygon:"polygon",polyline:"polyline",radialGradient:"radialGradient",rect:"rect",stop:"stop",svg:"svg",text:"text",tspan:"tspan"},r);e.exports=s}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(){if(f.current){var e=f.current.getName();if(e)return" Check the render method of `"+e+"`."}return""}function i(e,n){if(e._store&&!e._store.validated&&null==e.key){e._store.validated=!0;var r=o("uniqueKey",e,n);null!==r&&("production"!==t.env.NODE_ENV?v(!1,'Each child in an array or iterator should have a unique "key" prop.%s%s%s',r.parentOrOwner||"",r.childOwner||"",r.url||""):void 0)}}function o(e,t,n){var i=r();if(!i){var o="string"==typeof n?n:n.displayName||n.name;o&&(i=" Check the top-level render call using <"+o+">.")}var a=g[e]||(g[e]={});if(a[i])return null;a[i]=!0;var s={parentOrOwner:i,url:" See https://fb.me/react-warning-keys for more information.",childOwner:null};return t&&t._owner&&t._owner!==f.current&&(s.childOwner=" It was passed a child from "+t._owner.getName()+"."),s}function a(e,t){if("object"==typeof e)if(Array.isArray(e))for(var n=0;n<e.length;n++){var r=e[n];c.isValidElement(r)&&i(r,t)}else if(c.isValidElement(e))e._store&&(e._store.validated=!0);else if(e){var o=h(e);if(o&&o!==e.entries)for(var a,s=o.call(e);!(a=s.next()).done;)c.isValidElement(a.value)&&i(a.value,t)}}function s(e,n,i,o){for(var a in n)if(n.hasOwnProperty(a)){var s;try{"function"!=typeof n[a]?"production"!==t.env.NODE_ENV?m(!1,"%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.",e||"React class",p[o],a):m(!1):void 0,s=n[a](i,a,e,o)}catch(u){s=u}if("production"!==t.env.NODE_ENV?v(!s||s instanceof Error,"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",e||"React class",p[o],a,typeof s):void 0,s instanceof Error&&!(s.message in y)){y[s.message]=!0;var c=r();"production"!==t.env.NODE_ENV?v(!1,"Failed propType: %s%s",s.message,c):void 0}}}function u(e){var n=e.type;if("function"==typeof n){var r=n.displayName||n.name;n.propTypes&&s(r,n.propTypes,e.props,l.prop),"function"==typeof n.getDefaultProps&&("production"!==t.env.NODE_ENV?v(n.getDefaultProps.isReactClassApproved,"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead."):void 0)}}var c=n(353),l=n(376),p=n(377),f=n(316),d=n(354),h=n(419),m=n(324),v=n(336),g={},y={},b={createElement:function(e){var n="string"==typeof e||"function"==typeof e;"production"!==t.env.NODE_ENV?v(n,"React.createElement: type should not be null, undefined, boolean, or number. It should be a string (for DOM elements) or a ReactClass (for composite components).%s",r()):void 0;var i=c.createElement.apply(this,arguments);if(null==i)return i;if(n)for(var o=2;o<arguments.length;o++)a(arguments[o],e);return u(i),i},createFactory:function(e){var n=b.createElement.bind(null,e);return n.type=e,"production"!==t.env.NODE_ENV&&d&&Object.defineProperty(n,"type",{enumerable:!1,get:function(){return"production"!==t.env.NODE_ENV?v(!1,"Factory.type is deprecated. Access the class directly before passing it to createFactory."):void 0,Object.defineProperty(this,"type",{value:e}),e}}),n},cloneElement:function(){for(var e=c.cloneElement.apply(this,arguments),t=2;t<arguments.length;t++)a(arguments[t],e.type);return u(e),e}};e.exports=b}).call(t,n(8))},function(e){"use strict";function t(e,t,r){if(!e)return null;var i={};for(var o in e)n.call(e,o)&&(i[o]=t.call(r,e[o],o,e));return i}var n=Object.prototype.hasOwnProperty;e.exports=t},function(e,t,n){(function(t){"use strict";function r(e){return i.isValidElement(e)?void 0:"production"!==t.env.NODE_ENV?o(!1,"onlyChild must be passed a children with exactly one child."):o(!1),e}var i=n(353),o=n(324);e.exports=r}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,n,r,a,s){var u=!1;if("production"!==t.env.NODE_ENV){var c=function(){return"production"!==t.env.NODE_ENV?o(u,"React.%s is deprecated. Please use %s.%s from require('%s') instead.",e,n,e,r):void 0,u=!0,s.apply(a,arguments)};return i(c,s)}return s}var i=n(350),o=n(336);e.exports=r}).call(t,n(8))},function(e,t,n){"use strict";e.exports=n(315)},function(e,t,n){"use strict";function r(e){var t="string"==typeof e,n=void 0;if(n=t?document.querySelector(e):e,!i(n)){var r="Container must be `string` or `HTMLElement`.";throw t&&(r+=" Unable to find "+e),new Error(r)}return n}function i(e){return e instanceof HTMLElement||!!e&&e.nodeType>0}function o(e){var t=1===e.button;return t||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function a(e){return function(t,n){return t||n?t&&!n?e+"--"+t:t&&n?e+"--"+t+"__"+n:!t&&n?e+"__"+n:void 0:e}}function s(e){var t=e.transformData,n=e.defaultTemplates,r=e.templates,i=e.templatesConfig,o=u(n,r);return d({transformData:t,templatesConfig:i},o)}function u(e,t){return h(e,function(e,n,r){var i=t&&void 0!==t[r]&&t[r]!==n;return i?(e.templates[r]=t[r],e.useCustomCompileOptions[r]=!0):(e.templates[r]=n,e.useCustomCompileOptions[r]=!1),e},{templates:{},useCustomCompileOptions:{}})}function c(e,t,n,r,i){var o={type:t,attributeName:n,name:r},a=v(i,{name:n}),s=void 0;if("hierarchical"===t){var u=e.getHierarchicalFacetByName(n),c=r.split(u.separator);o.name=c[c.length-1];for(var l=0;void 0!==a&&l<c.length;++l)a=v(a.data,{name:c[l]});s=g(a,"count")}else s=g(a,'data["'+o.name+'"]');var p=g(a,"exhaustive");return void 0!==s&&(o.count=s),void 0!==p&&(o.exhaustive=p),o}function l(e,t){var n=[];return m(t.facetsRefinements,function(r,i){m(r,function(r){n.push(c(t,"facet",i,r,e.facets))})}),m(t.facetsExcludes,function(e,t){m(e,function(e){n.push({type:"exclude",attributeName:t,name:e,exclude:!0})})}),m(t.disjunctiveFacetsRefinements,function(r,i){m(r,function(r){n.push(c(t,"disjunctive",i,r,e.disjunctiveFacets))})}),m(t.hierarchicalFacetsRefinements,function(r,i){m(r,function(r){n.push(c(t,"hierarchical",i,r,e.hierarchicalFacets))})}),m(t.numericRefinements,function(e,t){m(e,function(e,r){m(e,function(e){n.push({type:"numeric",attributeName:t,name:e,operator:r})})})}),m(t.tagRefinements,function(e){n.push({type:"tag",attributeName:"_tags",name:e})}),n}function p(e,t){return y(t)?(e=e.clearTags(),e=e.clearRefinements()):(m(t,function(t){e="_tags"===t?e.clearTags():e.clearRefinements(t)}),e)}function f(e,t){e.setState(p(e.state,t)).search()}var d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h=n(471),m=n(253),v=n(490),g=n(494),y=n(495),b={getContainerNode:r,bemHelper:a,prepareTemplateProps:s,isSpecialClick:o,isDomElement:i,getRefinements:l,clearRefinementsFromState:p,clearRefinementsAndSearch:f};e.exports=b},function(e,t,n){"use strict";var r=n(472),i=n(255),o=n(473),a=o(r,i);e.exports=a},function(e){"use strict";function t(e,t,n,r){var i=-1,o=e.length;for(r&&o&&(n=e[++i]);++i<o;)n=t(n,e[i],i,e);return n}e.exports=t},function(e,t,n){"use strict";function r(e,t){return function(n,r,s,u){var c=arguments.length<3;return"function"==typeof r&&void 0===u&&a(n)?e(n,r,s,c):o(n,i(r,u,4),s,c,t)}}var i=n(474),o=n(489),a=n(272);e.exports=r},function(e,t,n){"use strict";function r(e,t,n){var r=typeof e;return"function"==r?void 0===t?e:a(e,t,n):null==e?s:"object"==r?i(e):void 0===t?u(e):o(e,t)}var i=n(475),o=n(480),a=n(277),s=n(278),u=n(487);e.exports=r},function(e,t,n){"use strict";function r(e){var t=o(e);if(1==t.length&&t[0][2]){var n=t[0][0],r=t[0][1];return function(e){return null==e?!1:e[n]===r&&(void 0!==r||n in a(e))}}return function(e){return i(e,t)}}var i=n(476),o=n(477),a=n(259);e.exports=r},function(e,t,n){"use strict";function r(e,t,n){var r=t.length,a=r,s=!n;if(null==e)return!a;for(e=o(e);r--;){var u=t[r];if(s&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++r<a;){u=t[r];var c=u[0],l=e[c],p=u[1];if(s&&u[2]){if(void 0===l&&!(c in e))return!1}else{var f=n?n(l,p,c):void 0;if(!(void 0===f?i(p,l,n,!0):f))return!1}}return!0}var i=n(305),o=n(259);e.exports=r},function(e,t,n){"use strict";function r(e){for(var t=o(e),n=t.length;n--;)t[n][2]=i(t[n][1]);return t}var i=n(478),o=n(479);e.exports=r},function(e,t,n){"use strict";function r(e){return e===e&&!i(e)}var i=n(260);e.exports=r},function(e,t,n){"use strict";function r(e){e=o(e);for(var t=-1,n=i(e),r=n.length,a=Array(r);++t<r;){var s=n[t];a[t]=[s,e[s]]}return a}var i=n(261),o=n(259);e.exports=r},function(e,t,n){"use strict";function r(e,t){var n=s(e),r=u(e)&&c(t),d=e+"";return e=f(e),function(s){if(null==s)return!1;var u=d;if(s=p(s),!(!n&&r||u in s)){if(s=1==e.length?s:i(s,a(e,0,-1)),null==s)return!1;u=l(e),s=p(s)}return s[u]===t?void 0!==t||u in s:o(t,s[u],void 0,!0)}}var i=n(481),o=n(305),a=n(482),s=n(272),u=n(483),c=n(478),l=n(484),p=n(259),f=n(485);e.exports=r},function(e,t,n){"use strict";function r(e,t,n){if(null!=e){void 0!==n&&n in i(e)&&(t=[n]);for(var r=0,o=t.length;null!=e&&o>r;)e=e[t[r++]];return r&&r==o?e:void 0}}var i=n(259);e.exports=r},function(e){"use strict";function t(e,t,n){var r=-1,i=e.length;t=null==t?0:+t||0,0>t&&(t=-t>i?0:i+t),n=void 0===n||n>i?i:+n||0,0>n&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(i);++r<i;)o[r]=e[r+t];return o}e.exports=t},function(e,t,n){"use strict";function r(e,t){var n=typeof e;if("string"==n&&s.test(e)||"number"==n)return!0;if(i(e))return!1;var r=!a.test(e);return r||null!=t&&e in o(t)}var i=n(272),o=n(259),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,s=/^\w*$/;e.exports=r},function(e){"use strict";function t(e){var t=e?e.length:0;return t?e[t-1]:void 0}e.exports=t},function(e,t,n){"use strict";function r(e){if(o(e))return e;var t=[];return i(e).replace(a,function(e,n,r,i){t.push(r?i.replace(s,"$1"):n||e)}),t}var i=n(486),o=n(272),a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,s=/\\(\\)?/g;e.exports=r},function(e){"use strict";function t(e){return null==e?"":e+""}e.exports=t},function(e,t,n){"use strict";function r(e){return a(e)?i(e):o(e)}var i=n(268),o=n(488),a=n(483);e.exports=r},function(e,t,n){"use strict";function r(e){var t=e+"";return e=o(e),function(n){return i(n,e,t)}}var i=n(481),o=n(485);e.exports=r},function(e){"use strict";function t(e,t,n,r,i){return i(e,function(e,i,o){n=r?(r=!1,e):t(n,e,i,o)}),n}e.exports=t},function(e,t,n){"use strict";var r=n(255),i=n(491),o=i(r);e.exports=o},function(e,t,n){"use strict";function r(e,t){return function(n,r,u){if(r=i(r,u,3),s(n)){var c=a(n,r,t);return c>-1?n[c]:void 0}return o(n,r,e)}}var i=n(474),o=n(492),a=n(493),s=n(272);e.exports=r},function(e){"use strict";function t(e,t,n,r){var i;return n(e,function(e,n,o){return t(e,n,o)?(i=r?n:e,!1):void 0}),i}e.exports=t},function(e){"use strict";function t(e,t,n){for(var r=e.length,i=n?r:-1;n?i--:++i<r;)if(t(e[i],i,e))return i;return-1}e.exports=t},function(e,t,n){"use strict";function r(e,t,n){var r=null==e?void 0:i(e,o(t),t+"");
18
+
19
+ return void 0===r?n:r}var i=n(481),o=n(485);e.exports=r},function(e,t,n){"use strict";function r(e){return null==e?!0:a(e)&&(o(e)||c(e)||i(e)||u(e)&&s(e.splice))?!e.length:!l(e).length}var i=n(271),o=n(272),a=n(266),s=n(264),u=n(265),c=n(496),l=n(261);e.exports=r},function(e,t,n){"use strict";function r(e){return"string"==typeof e||i(e)&&s.call(e)==o}var i=n(265),o="[object String]",a=Object.prototype,s=a.toString;e.exports=r},function(e,t){var n,r;!function(){"use strict";function i(){for(var e="",t=0;t<arguments.length;t++){var n=arguments[t];if(n){var r=typeof n;if("string"===r||"number"===r)e+=" "+n;else if(Array.isArray(n))e+=" "+i.apply(null,n);else if("object"===r)for(var a in n)o.call(n,a)&&n[a]&&(e+=" "+a)}}return e.substr(1)}var o={}.hasOwnProperty;"undefined"!=typeof e&&e.exports?e.exports=i:(n=[],r=function(){return i}.apply(t,n),!(void 0!==r&&(e.exports=r)))}()},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function o(e){var t=function(t){function n(){r(this,n),s(Object.getPrototypeOf(n.prototype),"constructor",this).apply(this,arguments)}return i(n,t),a(n,[{key:"componentDidMount",value:function(){this._hideOrShowContainer(this.props)}},{key:"componentWillReceiveProps",value:function(e){this._hideOrShowContainer(e)}},{key:"_hideOrShowContainer",value:function(e){var t=c.findDOMNode(this).parentNode;t.style.display=e.shouldAutoHideContainer===!0?"none":""}},{key:"render",value:function(){return this.props.shouldAutoHideContainer===!0?u.createElement("div",null):u.createElement(e,this.props)}}]),n}(u.Component);return t.propTypes={shouldAutoHideContainer:u.PropTypes.bool.isRequired},t.displayName=e.name+"-AutoHide",t}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},u=n(313),c=n(469);e.exports=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function o(e){var t=function(t){function n(){r(this,n),u(Object.getPrototypeOf(n.prototype),"constructor",this).apply(this,arguments)}return i(n,t),s(n,[{key:"getTemplate",value:function(e){var t=this.props.templateProps.templates;if(!t||!t[e])return null;var n=l(this.props.cssClasses[e],"ais-"+e);return c.createElement(p,a({},this.props.templateProps,{cssClass:n,templateKey:e,transformData:null}))}},{key:"render",value:function(){var t={root:l(this.props.cssClasses.root),body:l(this.props.cssClasses.body)},n=this.getTemplate("header"),r=this.getTemplate("footer");return c.createElement("div",{className:t.root},n,c.createElement("div",{className:t.body},c.createElement(e,this.props)),r)}}]),n}(c.Component);return t.propTypes={cssClasses:c.PropTypes.shape({root:c.PropTypes.string,header:c.PropTypes.string,body:c.PropTypes.string,footer:c.PropTypes.string}),templateProps:c.PropTypes.object},t.defaultProps={cssClasses:{}},t.displayName=e.name+"-HeaderFooter",t}var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},c=n(313),l=n(497),p=n(500);e.exports=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function o(e,t,n){if(!e)return n;var r=h(n),i=void 0;if("function"==typeof e)i=e(r);else{if("object"!=typeof e)throw new Error("`transformData` must be a function or an object");i=e[t]?e[t](r):n}var o=typeof i,a=typeof n;if(o!==a)throw new Error("`transformData` must return a `"+a+"`, got `"+o+"`.");return i}function a(e){var t=e.template,n=e.compileOptions,r=e.helpers,i=e.data,o="string"==typeof t,a="function"==typeof t;if(o||a){if(a)return t(i);var c=s(r,n,i),l=u({},i,{helpers:c});return m.compile(t,n).render(l)}throw new Error("Template must be `string` or `function`")}function s(e,t,n){return f(e,function(e){return d(function(r){var i=this,o=function(e){return m.compile(e,t).render(i)};return e.call(n,r,o)})})}var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),l=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},p=n(313),f=n(501),d=n(503),h=n(530),m=n(537),v=function(e){function t(){r(this,t),l(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),c(t,[{key:"render",value:function(){var e=this.props.useCustomCompileOptions[this.props.templateKey]?this.props.templatesConfig.compileOptions:{},t=a({template:this.props.templates[this.props.templateKey],compileOptions:e,helpers:this.props.templatesConfig.helpers,data:o(this.props.transformData,this.props.templateKey,this.props.data)});return null===t?null:p.createElement("div",{className:this.props.cssClass,dangerouslySetInnerHTML:{__html:t}})}}]),t}(p.Component);v.propTypes={cssClass:p.PropTypes.string,data:p.PropTypes.object,templateKey:p.PropTypes.string,templates:p.PropTypes.objectOf(p.PropTypes.oneOfType([p.PropTypes.string,p.PropTypes.func])),templatesConfig:p.PropTypes.shape({helpers:p.PropTypes.objectOf(p.PropTypes.func),compileOptions:p.PropTypes.shape({asString:p.PropTypes.bool,sectionTags:p.PropTypes.arrayOf(p.PropTypes.shape({o:p.PropTypes.string,c:p.PropTypes.string})),delimiters:p.PropTypes.string,disableLambda:p.PropTypes.bool})}),transformData:p.PropTypes.oneOfType([p.PropTypes.func,p.PropTypes.objectOf(p.PropTypes.func)]),useCustomCompileOptions:p.PropTypes.objectOf(p.PropTypes.bool)},v.defaultProps={data:{},useCustomCompileOptions:{},templates:{},templatesConfig:{}},e.exports=v},function(e,t,n){"use strict";var r=n(502),i=r();e.exports=i},function(e,t,n){"use strict";function r(e){return function(t,n,r){var a={};return n=i(n,r,3),o(t,function(t,r,i){var o=n(t,r,i);r=e?o:r,t=e?t:o,a[r]=t}),a}}var i=n(474),o=n(256);e.exports=r},function(e,t,n){"use strict";var r=n(504),i=8,o=r(i);o.placeholder={},e.exports=o},function(e,t,n){"use strict";function r(e){function t(n,r,a){a&&o(n,r,a)&&(r=void 0);var s=i(n,e,void 0,void 0,void 0,void 0,void 0,r);return s.placeholder=t.placeholder,s}return t}var i=n(505),o=n(289);e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r,g,y,b,x){var w=t&f;if(!w&&"function"!=typeof e)throw new TypeError(m);var E=r?r.length:0;if(E||(t&=~(d|h),r=g=void 0),E-=g?g.length:0,t&h){var _=r,C=g;r=g=void 0}var N=w?void 0:u(e),$=[e,t,n,r,g,_,C,y,b,x];if(N&&(c($,N),t=$[1],x=$[9]),$[9]=null==x?w?0:e.length:v(x-E,0)||0,t==p)var O=o($[0],$[2]);else O=t!=d&&t!=(p|d)||$[4].length?a.apply(void 0,$):s.apply(void 0,$);var T=N?i:l;return T(O,$)}var i=n(506),o=n(508),a=n(511),s=n(528),u=n(517),c=n(529),l=n(526),p=1,f=2,d=32,h=64,m="Expected a function",v=Math.max;e.exports=r},function(e,t,n){"use strict";var r=n(278),i=n(507),o=i?function(e,t){return i.set(e,t),e}:r;e.exports=o},function(e,t,n){(function(t){"use strict";var r=n(262),i=r(t,"WeakMap"),o=i&&new i;e.exports=o}).call(t,function(){return this}())},function(e,t,n){(function(t){"use strict";function r(e,n){function r(){var i=this&&this!==t&&this instanceof r?o:e;return i.apply(n,arguments)}var o=i(e);return r}var i=n(509);e.exports=r}).call(t,function(){return this}())},function(e,t,n){"use strict";function r(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=i(e.prototype),r=e.apply(n,t);return o(r)?r:n}}var i=n(510),o=n(260);e.exports=r},function(e,t,n){"use strict";var r=n(260),i=function(){function e(){}return function(t){if(r(t)){e.prototype=t;var n=new e;e.prototype=void 0}return n||{}}}();e.exports=i},function(e,t,n){(function(t){"use strict";function r(e,n,w,E,_,C,N,$,O,T){function P(){for(var h=arguments.length,m=h,v=Array(h);m--;)v[m]=arguments[m];if(E&&(v=o(v,E,_)),C&&(v=a(v,C,N)),k||j){var b=P.placeholder,M=l(v,b);if(h-=M.length,T>h){var F=$?i($):void 0,L=x(T-h,0),V=k?M:void 0,U=k?void 0:M,H=k?v:void 0,q=k?void 0:v;n|=k?g:y,n&=~(k?y:g),A||(n&=~(f|d));var B=[e,n,w,H,V,q,U,F,O,L],W=r.apply(void 0,B);return u(e)&&p(W,B),W.placeholder=b,W}}var z=D?w:this,K=R?z[e]:e;return $&&(v=c(v,$)),S&&O<v.length&&(v.length=O),this&&this!==t&&this instanceof P&&(K=I||s(e)),K.apply(z,v)}var S=n&b,D=n&f,R=n&d,k=n&m,A=n&h,j=n&v,I=R?void 0:s(e);return P}var i=n(282),o=n(512),a=n(513),s=n(509),u=n(514),c=n(524),l=n(525),p=n(526),f=1,d=2,h=4,m=8,v=16,g=32,y=64,b=128,x=Math.max;e.exports=r}).call(t,function(){return this}())},function(e){"use strict";function t(e,t,r){for(var i=r.length,o=-1,a=n(e.length-i,0),s=-1,u=t.length,c=Array(u+a);++s<u;)c[s]=t[s];for(;++o<i;)c[r[o]]=e[o];for(;a--;)c[s++]=e[o++];return c}var n=Math.max;e.exports=t},function(e){"use strict";function t(e,t,r){for(var i=-1,o=r.length,a=-1,s=n(e.length-o,0),u=-1,c=t.length,l=Array(s+c);++a<s;)l[a]=e[a];for(var p=a;++u<c;)l[p+u]=t[u];for(;++i<o;)l[p+r[i]]=e[a++];return l}var n=Math.max;e.exports=t},function(e,t,n){"use strict";function r(e){var t=a(e),n=s[t];if("function"!=typeof n||!(t in i.prototype))return!1;if(e===n)return!0;var r=o(n);return!!r&&e===r[0]}var i=n(515),o=n(517),a=n(519),s=n(521);e.exports=r},function(e,t,n){"use strict";function r(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=a,this.__views__=[]}var i=n(510),o=n(516),a=Number.POSITIVE_INFINITY;r.prototype=i(o.prototype),r.prototype.constructor=r,e.exports=r},function(e){"use strict";function t(){}e.exports=t},function(e,t,n){"use strict";var r=n(507),i=n(518),o=r?function(e){return r.get(e)}:i;e.exports=o},function(e){"use strict";function t(){}e.exports=t},function(e,t,n){"use strict";function r(e){for(var t=e.name+"",n=i[t],r=n?n.length:0;r--;){var o=n[r],a=o.func;if(null==a||a==e)return o.name}return t}var i=n(520);e.exports=r},function(e){"use strict";var t={};e.exports=t},function(e,t,n){"use strict";function r(e){if(u(e)&&!s(e)&&!(e instanceof i)){if(e instanceof o)return e;if(p.call(e,"__chain__")&&p.call(e,"__wrapped__"))return c(e)}return new o(e)}var i=n(515),o=n(522),a=n(516),s=n(272),u=n(265),c=n(523),l=Object.prototype,p=l.hasOwnProperty;r.prototype=a.prototype,e.exports=r},function(e,t,n){"use strict";function r(e,t,n){this.__wrapped__=e,this.__actions__=n||[],this.__chain__=!!t}var i=n(510),o=n(516);r.prototype=i(o.prototype),r.prototype.constructor=r,e.exports=r},function(e,t,n){"use strict";function r(e){return e instanceof i?e.clone():new o(e.__wrapped__,e.__chain__,a(e.__actions__))}var i=n(515),o=n(522),a=n(282);e.exports=r},function(e,t,n){"use strict";function r(e,t){for(var n=e.length,r=a(t.length,n),s=i(e);r--;){var u=t[r];e[r]=o(u,n)?s[u]:void 0}return e}var i=n(282),o=n(273),a=Math.min;e.exports=r},function(e){"use strict";function t(e,t){for(var r=-1,i=e.length,o=-1,a=[];++r<i;)e[r]===t&&(e[r]=n,a[++o]=r);return a}var n="__lodash_placeholder__";e.exports=t},function(e,t,n){"use strict";var r=n(506),i=n(527),o=150,a=16,s=function(){var e=0,t=0;return function(n,s){var u=i(),c=a-(u-t);if(t=u,c>0){if(++e>=o)return n}else e=0;return r(n,s)}}();e.exports=s},function(e,t,n){"use strict";var r=n(262),i=r(Date,"now"),o=i||function(){return(new Date).getTime()};e.exports=o},function(e,t,n){(function(t){"use strict";function r(e,n,r,a){function s(){for(var n=-1,i=arguments.length,o=-1,l=a.length,p=Array(l+i);++o<l;)p[o]=a[o];for(;i--;)p[o++]=arguments[++n];var f=this&&this!==t&&this instanceof s?c:e;return f.apply(u?r:this,p)}var u=n&o,c=i(e);return s}var i=n(509),o=1;e.exports=r}).call(t,function(){return this}())},function(e,t,n){"use strict";function r(e,t){var n=e[1],r=t[1],m=n|r,v=p>m,g=r==p&&n==l||r==p&&n==f&&e[7].length<=t[8]||r==(p|f)&&n==l;if(!v&&!g)return e;r&u&&(e[2]=t[2],m|=n&u?0:c);var y=t[3];if(y){var b=e[3];e[3]=b?o(b,y,t[4]):i(y),e[4]=b?s(e[3],d):i(t[4])}return y=t[5],y&&(b=e[5],e[5]=b?a(b,y,t[6]):i(y),e[6]=b?s(e[5],d):i(t[6])),y=t[7],y&&(e[7]=i(y)),r&p&&(e[8]=null==e[8]?t[8]:h(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=m,e}var i=n(282),o=n(512),a=n(513),s=n(525),u=1,c=4,l=8,p=128,f=256,d="__lodash_placeholder__",h=Math.min;e.exports=r},function(e,t,n){"use strict";function r(e,t,n){return"function"==typeof t?i(e,!0,o(t,n,3)):i(e,!0)}var i=n(531),o=n(277);e.exports=r},function(e,t,n){"use strict";function r(e,t,n,h,m,v,g){var b;if(n&&(b=m?n(e,h,m):n(e)),void 0!==b)return b;if(!f(e))return e;var x=p(e);if(x){if(b=u(e),!t)return i(e,b)}else{var E=F.call(e),_=E==y;if(E!=w&&E!=d&&(!_||m))return I[E]?c(e,E,t):m?e:{};if(b=l(_?{}:e),!t)return a(b,e)}v||(v=[]),g||(g=[]);for(var C=v.length;C--;)if(v[C]==e)return g[C];return v.push(e),g.push(b),(x?o:s)(e,function(i,o){b[o]=r(i,t,n,o,e,v,g)}),b}var i=n(282),o=n(254),a=n(532),s=n(256),u=n(533),c=n(534),l=n(536),p=n(272),f=n(260),d="[object Arguments]",h="[object Array]",m="[object Boolean]",v="[object Date]",g="[object Error]",y="[object Function]",b="[object Map]",x="[object Number]",w="[object Object]",E="[object RegExp]",_="[object Set]",C="[object String]",N="[object WeakMap]",$="[object ArrayBuffer]",O="[object Float32Array]",T="[object Float64Array]",P="[object Int8Array]",S="[object Int16Array]",D="[object Int32Array]",R="[object Uint8Array]",k="[object Uint8ClampedArray]",A="[object Uint16Array]",j="[object Uint32Array]",I={};I[d]=I[h]=I[$]=I[m]=I[v]=I[O]=I[T]=I[P]=I[S]=I[D]=I[x]=I[w]=I[E]=I[C]=I[R]=I[k]=I[A]=I[j]=!0,I[g]=I[y]=I[b]=I[_]=I[N]=!1;var M=Object.prototype,F=M.toString;e.exports=r},function(e,t,n){"use strict";function r(e,t){return null==t?e:i(t,o(t),e)}var i=n(287),o=n(261);e.exports=r},function(e){"use strict";function t(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&r.call(e,"index")&&(n.index=e.index,n.input=e.input),n}var n=Object.prototype,r=n.hasOwnProperty;e.exports=t},function(e,t,n){"use strict";function r(e,t,n){var r=e.constructor;switch(t){case l:return i(e);case o:case a:return new r(+e);case p:case f:case d:case h:case m:case v:case g:case y:case b:var w=e.buffer;return new r(n?i(w):w,e.byteOffset,e.length);case s:case c:return new r(e);case u:var E=new r(e.source,x.exec(e));E.lastIndex=e.lastIndex}return E}var i=n(535),o="[object Boolean]",a="[object Date]",s="[object Number]",u="[object RegExp]",c="[object String]",l="[object ArrayBuffer]",p="[object Float32Array]",f="[object Float64Array]",d="[object Int8Array]",h="[object Int16Array]",m="[object Int32Array]",v="[object Uint8Array]",g="[object Uint8ClampedArray]",y="[object Uint16Array]",b="[object Uint32Array]",x=/\w*$/;e.exports=r},function(e,t){(function(t){"use strict";function n(e){var t=new r(e.byteLength),n=new i(t);return n.set(new i(e)),t}var r=t.ArrayBuffer,i=t.Uint8Array;e.exports=n}).call(t,function(){return this}())},function(e){"use strict";function t(e){var t=e.constructor;return"function"==typeof t&&t instanceof t||(t=Object),new t}e.exports=t},function(e,t,n){var r=n(538);r.Template=n(539).Template,r.template=r.Template,e.exports=r},function(e,t){!function(e){function t(e){"}"===e.n.substr(e.n.length-1)&&(e.n=e.n.substring(0,e.n.length-1))}function n(e){return e.trim?e.trim():e.replace(/^\s*|\s*$/g,"")}function r(e,t,n){if(t.charAt(n)!=e.charAt(0))return!1;for(var r=1,i=e.length;i>r;r++)if(t.charAt(n+r)!=e.charAt(r))return!1;return!0}function i(t,n,r,s){var u=[],c=null,l=null,p=null;for(l=r[r.length-1];t.length>0;){if(p=t.shift(),l&&"<"==l.tag&&!(p.tag in w))throw new Error("Illegal content in < super tag.");if(e.tags[p.tag]<=e.tags.$||o(p,s))r.push(p),p.nodes=i(t,p.tag,r,s);else{if("/"==p.tag){if(0===r.length)throw new Error("Closing tag without opener: /"+p.n);if(c=r.pop(),p.n!=c.n&&!a(p.n,c.n,s))throw new Error("Nesting error: "+c.n+" vs. "+p.n);return c.end=p.i,u}"\n"==p.tag&&(p.last=0==t.length||"\n"==t[0].tag)}u.push(p)}if(r.length>0)throw new Error("missing closing tag: "+r.pop().n);return u}function o(e,t){for(var n=0,r=t.length;r>n;n++)if(t[n].o==e.n)return e.tag="#",!0}function a(e,t,n){for(var r=0,i=n.length;i>r;r++)if(n[r].c==e&&n[r].o==t)return!0}function s(e){var t=[];for(var n in e)t.push('"'+c(n)+'": function(c,p,t,i) {'+e[n]+"}");return"{ "+t.join(",")+" }"}function u(e){var t=[];for(var n in e.partials)t.push('"'+c(n)+'":{name:"'+c(e.partials[n].name)+'", '+u(e.partials[n])+"}");return"partials: {"+t.join(",")+"}, subs: "+s(e.subs)}function c(e){return e.replace(y,"\\\\").replace(m,'\\"').replace(v,"\\n").replace(g,"\\r").replace(b,"\\u2028").replace(x,"\\u2029")}function l(e){return~e.indexOf(".")?"d":"f"}function p(e,t){var n="<"+(t.prefix||""),r=n+e.n+E++;return t.partials[r]={name:e.n,partials:{}},t.code+='t.b(t.rp("'+c(r)+'",c,p,"'+(e.indent||"")+'"));',r}function f(e,t){t.code+="t.b(t.t(t."+l(e.n)+'("'+c(e.n)+'",c,p,0)));'}function d(e){return"t.b("+e+");"}var h=/\S/,m=/\"/g,v=/\n/g,g=/\r/g,y=/\\/g,b=/\u2028/,x=/\u2029/;e.tags={"#":1,"^":2,"<":3,$:4,"/":5,"!":6,">":7,"=":8,_v:9,"{":10,"&":11,_t:12},e.scan=function(i,o){function a(){y.length>0&&(b.push({tag:"_t",text:new String(y)}),y="")}function s(){for(var t=!0,n=E;n<b.length;n++)if(t=e.tags[b[n].tag]<e.tags._v||"_t"==b[n].tag&&null===b[n].text.match(h),!t)return!1;return t}function u(e,t){if(a(),e&&s())for(var n,r=E;r<b.length;r++)b[r].text&&((n=b[r+1])&&">"==n.tag&&(n.indent=b[r].text.toString()),b.splice(r,1));else t||b.push({tag:"\n"});x=!1,E=b.length}function c(e,t){var r="="+C,i=e.indexOf(r,t),o=n(e.substring(e.indexOf("=",t)+1,i)).split(" ");return _=o[0],C=o[o.length-1],i+r.length-1}var l=i.length,p=0,f=1,d=2,m=p,v=null,g=null,y="",b=[],x=!1,w=0,E=0,_="{{",C="}}";for(o&&(o=o.split(" "),_=o[0],C=o[1]),w=0;l>w;w++)m==p?r(_,i,w)?(--w,a(),m=f):"\n"==i.charAt(w)?u(x):y+=i.charAt(w):m==f?(w+=_.length-1,g=e.tags[i.charAt(w+1)],v=g?i.charAt(w+1):"_v","="==v?(w=c(i,w),m=p):(g&&w++,m=d),x=w):r(C,i,w)?(b.push({tag:v,n:n(y),otag:_,ctag:C,i:"/"==v?x-_.length:w+C.length}),y="",w+=C.length-1,m=p,"{"==v&&("}}"==C?w++:t(b[b.length-1]))):y+=i.charAt(w);return u(x,!0),b};var w={_t:!0,"\n":!0,$:!0,"/":!0};e.stringify=function(t){return"{code: function (c,p,i) { "+e.wrapMain(t.code)+" },"+u(t)+"}"};var E=0;e.generate=function(t,n,r){E=0;var i={code:"",subs:{},partials:{}};return e.walk(t,i),r.asString?this.stringify(i,n,r):this.makeTemplate(i,n,r)},e.wrapMain=function(e){return'var t=this;t.b(i=i||"");'+e+"return t.fl();"},e.template=e.Template,e.makeTemplate=function(e,t,n){var r=this.makePartials(e);return r.code=new Function("c","p","i",this.wrapMain(e.code)),new this.template(r,t,this,n)},e.makePartials=function(e){var t,n={subs:{},partials:e.partials,name:e.name};for(t in n.partials)n.partials[t]=this.makePartials(n.partials[t]);for(t in e.subs)n.subs[t]=new Function("c","p","t","i",e.subs[t]);return n},e.codegen={"#":function(t,n){n.code+="if(t.s(t."+l(t.n)+'("'+c(t.n)+'",c,p,1),c,p,0,'+t.i+","+t.end+',"'+t.otag+" "+t.ctag+'")){t.rs(c,p,function(c,p,t){',e.walk(t.nodes,n),n.code+="});c.pop();}"},"^":function(t,n){n.code+="if(!t.s(t."+l(t.n)+'("'+c(t.n)+'",c,p,1),c,p,1,0,0,"")){',e.walk(t.nodes,n),n.code+="};"},">":p,"<":function(t,n){var r={partials:{},code:"",subs:{},inPartial:!0};e.walk(t.nodes,r);var i=n.partials[p(t,n)];i.subs=r.subs,i.partials=r.partials},$:function(t,n){var r={subs:{},code:"",partials:n.partials,prefix:t.n};e.walk(t.nodes,r),n.subs[t.n]=r.code,n.inPartial||(n.code+='t.sub("'+c(t.n)+'",c,p,i);')},"\n":function(e,t){t.code+=d('"\\n"'+(e.last?"":" + i"))},_v:function(e,t){t.code+="t.b(t.v(t."+l(e.n)+'("'+c(e.n)+'",c,p,0)));'},_t:function(e,t){t.code+=d('"'+c(e.text)+'"')},"{":f,"&":f},e.walk=function(t,n){for(var r,i=0,o=t.length;o>i;i++)r=e.codegen[t[i].tag],r&&r(t[i],n);return n},e.parse=function(e,t,n){return n=n||{},i(e,"",[],n.sectionTags||[])},e.cache={},e.cacheKey=function(e,t){return[e,!!t.asString,!!t.disableLambda,t.delimiters,!!t.modelGet].join("||")},e.compile=function(t,n){n=n||{};var r=e.cacheKey(t,n),i=this.cache[r];if(i){var o=i.partials;for(var a in o)delete o[a].instance;return i}return i=this.generate(this.parse(this.scan(t,n.delimiters),t,n),t,n),this.cache[r]=i}}(t)},function(e,t){!function(e){function t(e,t,n){var r;return t&&"object"==typeof t&&(void 0!==t[e]?r=t[e]:n&&t.get&&"function"==typeof t.get&&(r=t.get(e))),r}function n(e,t,n,r,i,o){function a(){}function s(){}a.prototype=e,s.prototype=e.subs;var u,c=new a;c.subs=new s,c.subsText={},c.buf="",r=r||{},c.stackSubs=r,c.subsText=o;for(u in t)r[u]||(r[u]=t[u]);for(u in r)c.subs[u]=r[u];i=i||{},c.stackPartials=i;for(u in n)i[u]||(i[u]=n[u]);for(u in i)c.partials[u]=i[u];return c}function r(e){return String(null===e||void 0===e?"":e)}function i(e){return e=r(e),l.test(e)?e.replace(o,"&amp;").replace(a,"&lt;").replace(s,"&gt;").replace(u,"&#39;").replace(c,"&quot;"):e}e.Template=function(e,t,n,r){e=e||{},this.r=e.code||this.r,this.c=n,this.options=r||{},this.text=t||"",this.partials=e.partials||{},this.subs=e.subs||{},this.buf=""},e.Template.prototype={r:function(){return""},v:i,t:r,render:function(e,t,n){return this.ri([e],t||{},n)},ri:function(e,t,n){return this.r(e,t,n)},ep:function(e,t){var r=this.partials[e],i=t[r.name];if(r.instance&&r.base==i)return r.instance;if("string"==typeof i){if(!this.c)throw new Error("No compiler available.");i=this.c.compile(i,this.options)}if(!i)return null;if(this.partials[e].base=i,r.subs){t.stackText||(t.stackText={});for(key in r.subs)t.stackText[key]||(t.stackText[key]=void 0!==this.activeSub&&t.stackText[this.activeSub]?t.stackText[this.activeSub]:this.text);i=n(i,r.subs,r.partials,this.stackSubs,this.stackPartials,t.stackText)}return this.partials[e].instance=i,i},rp:function(e,t,n,r){var i=this.ep(e,n);return i?i.ri(t,n,r):""},rs:function(e,t,n){var r=e[e.length-1];if(!p(r))return void n(e,t,this);for(var i=0;i<r.length;i++)e.push(r[i]),n(e,t,this),e.pop()},s:function(e,t,n,r,i,o,a){var s;return p(e)&&0===e.length?!1:("function"==typeof e&&(e=this.ms(e,t,n,r,i,o,a)),s=!!e,!r&&s&&t&&t.push("object"==typeof e?e:t[t.length-1]),s)},d:function(e,n,r,i){var o,a=e.split("."),s=this.f(a[0],n,r,i),u=this.options.modelGet,c=null;if("."===e&&p(n[n.length-2]))s=n[n.length-1];else for(var l=1;l<a.length;l++)o=t(a[l],s,u),void 0!==o?(c=s,s=o):s="";return i&&!s?!1:(i||"function"!=typeof s||(n.push(c),s=this.mv(s,n,r),n.pop()),s)},f:function(e,n,r,i){for(var o=!1,a=null,s=!1,u=this.options.modelGet,c=n.length-1;c>=0;c--)if(a=n[c],o=t(e,a,u),void 0!==o){s=!0;break}return s?(i||"function"!=typeof o||(o=this.mv(o,n,r)),o):i?!1:""},ls:function(e,t,n,i,o){var a=this.options.delimiters;return this.options.delimiters=o,this.b(this.ct(r(e.call(t,i)),t,n)),this.options.delimiters=a,!1},ct:function(e,t,n){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(e,this.options).render(t,n)},b:function(e){this.buf+=e},fl:function(){var e=this.buf;return this.buf="",e},ms:function(e,t,n,r,i,o,a){var s,u=t[t.length-1],c=e.call(u);return"function"==typeof c?r?!0:(s=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(c,u,n,s.substring(i,o),a)):c},mv:function(e,t,n){var i=t[t.length-1],o=e.call(i);return"function"==typeof o?this.ct(r(o.call(i)),i,n):o},sub:function(e,t,n,r){var i=this.subs[e];i&&(this.activeSub=e,i(t,n,this,r),this.activeSub=!1)}};var o=/&/g,a=/</g,s=/>/g,u=/\'/g,c=/\"/g,l=/[&<>\"\']/,p=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}}(t)},function(e){"use strict";e.exports={header:"",link:"Clear all",footer:""}},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},u=n(313),c=n(500),l=n(470),p=l.isSpecialClick,f=function(e){function t(){r(this,t),s(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),a(t,[{key:"handleClick",value:function(e){p(e)||(e.preventDefault(),this.props.clearAll())}},{key:"render",value:function(){var e=this.props.cssClasses.link,t={hasRefinements:this.props.hasRefinements};return u.createElement("a",{className:e,href:this.props.url,onClick:this.handleClick.bind(this)},u.createElement(c,o({data:t,templateKey:"link"},this.props.templateProps)))}}]),t}(u.Component);f.propTypes={clearAll:u.PropTypes.func.isRequired,cssClasses:u.PropTypes.shape({link:u.PropTypes.string}),hasRefinements:u.PropTypes.bool.isRequired,templateProps:u.PropTypes.object.isRequired,url:u.PropTypes.string.isRequired},e.exports=f},function(e,t,n){"use strict";function r(e){var t=e.container,r=e.attributes,i=void 0===r?[]:r,o=e.onlyListedAttributes,p=void 0===o?!1:o,f=e.clearAll,v=void 0===f?"before":f,O=e.templates,S=void 0===O?k:O,j=e.transformData,I=e.autoHideContainer,M=void 0===I?!0:I,F=e.cssClasses,L=void 0===F?{}:F,V=C(i)&&P(i,function(e,t){return e&&N(t)&&_(t.name)&&(w(t.label)||_(t.label))&&(w(t.template)||_(t.template)||$(t.template))&&(w(t.transformData)||$(t.transformData))},!0),U=["header","item","clearAll","footer"],H=N(S)&&P(S,function(e,t,n){return e&&-1!==U.indexOf(n)&&(_(t)||$(t))},!0),q=["root","header","body","clearAll","list","item","link","count","footer"],B=N(L)&&P(L,function(e,t,n){return e&&-1!==q.indexOf(n)&&_(t)},!0),W=!((_(t)||d(t))&&C(i)&&V&&E(p)&&-1!==[!1,"before","after"].indexOf(v)&&N(S)&&H&&(w(j)||$(j))&&E(M)&&B);if(W)throw new Error(A);var z=h(t),K=D(n(552));M===!0&&(K=R(K));var Q=T(i,function(e){return e.name}),Y=p?Q:[],G=P(i,function(e,t){return e[t.name]=t,e},{});return{render:function(e){var t=e.results,n=e.helper,r=e.state,i=e.templatesConfig,o=e.createURL,f={root:x(b(null),L.root),header:x(b("header"),L.header),body:x(b("body"),L.body),clearAll:x(b("clear-all"),L.clearAll),list:x(b("list"),L.list),item:x(b("item"),L.item),link:x(b("link"),L.link),count:x(b("count"),L.count),footer:x(b("footer"),L.footer)},d=m({defaultTemplates:k,templatesConfig:i,templates:S}),h=o(g(r,Y)),w=y.bind(null,n,Y),E=a(t,r,Q,p),_=E.map(function(e){return o(s(r,e))}),C=E.map(function(e){return u.bind(null,n,e)}),N=0===E.length;l.render(c.createElement(K,{attributes:G,clearAllClick:w,clearAllPosition:v,clearAllURL:h,clearRefinementClicks:C,clearRefinementURLs:_,cssClasses:f,refinements:E,shouldAutoHideContainer:N,templateProps:d}),z)}}}function i(e,t,n){var r=e.indexOf(n);return-1!==r?r:e.length+t.indexOf(n)}function o(e,t,n,r){var o=i(e,t,n.attributeName),a=i(e,t,r.attributeName);return o===a?n.name===r.name?0:n.name<r.name?-1:1:a>o?-1:1}function a(e,t,n,r){var i=v(e,t),a=P(i,function(e,t){return-1===n.indexOf(t.attributeName)&&e.indexOf(-1===t.attributeName)&&e.push(t.attributeName),e},[]);return i=i.sort(o.bind(null,n,a)),r&&!O(n)&&(i=S(i,function(e){return-1!==n.indexOf(e.attributeName)})),i}function s(e,t){switch(t.type){case"facet":return e.removeFacetRefinement(t.attributeName,t.name);case"disjunctive":return e.removeDisjunctiveFacetRefinement(t.attributeName,t.name);case"hierarchical":return e.clearRefinements(t.attributeName);case"exclude":return e.removeExcludeRefinement(t.attributeName,t.name);case"numeric":return e.removeNumericRefinement(t.attributeName,t.operator,t.name);case"tag":return e.removeTagRefinement(t.name);default:throw new Error("clearRefinement: type "+t.type+"isn't handled")}}function u(e,t){e.setState(s(e.state,t)).search()}var c=n(313),l=n(469),p=n(470),f=p.bemHelper,d=p.isDomElement,h=p.getContainerNode,m=p.prepareTemplateProps,v=p.getRefinements,g=p.clearRefinementsFromState,y=p.clearRefinementsAndSearch,b=f("ais-current-refined-values"),x=n(497),w=n(543),E=n(544),_=n(496),C=n(272),N=n(283),$=n(264),O=n(495),T=n(545),P=n(471),S=n(548),D=n(499),R=n(498),k=n(551),A="Usage:\ncurrentRefinedValues({\n container,\n [ attributes: [{name[, label, template, transformData]}] ],\n [ onlyListedAttributes = false ],\n [ clearAll = 'before' ] // One of ['before', 'after', false]\n [ templates.{header = '', item, clearAll, footer = ''} ],\n [ transformData ],\n [ autoHideContainer = true ],\n [ cssClasses.{root, header, body, clearAll, list, item, link, count, footer} = {} ]\n})";e.exports=r},function(e){"use strict";function t(e){return void 0===e}e.exports=t},function(e,t,n){"use strict";function r(e){return e===!0||e===!1||i(e)&&s.call(e)==o}var i=n(265),o="[object Boolean]",a=Object.prototype,s=a.toString;e.exports=r},function(e,t,n){"use strict";function r(e,t,n){var r=s(e)?i:a;return t=o(t,n,3),r(e,t)}var i=n(546),o=n(474),a=n(547),s=n(272);e.exports=r},function(e){
20
+ "use strict";function t(e,t){for(var n=-1,r=e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}e.exports=t},function(e,t,n){"use strict";function r(e,t){var n=-1,r=o(e)?Array(e.length):[];return i(e,function(e,i,o){r[++n]=t(e,i,o)}),r}var i=n(255),o=n(266);e.exports=r},function(e,t,n){"use strict";function r(e,t,n){var r=s(e)?i:a;return t=o(t,n,3),r(e,t)}var i=n(549),o=n(474),a=n(550),s=n(272);e.exports=r},function(e){"use strict";function t(e,t){for(var n=-1,r=e.length,i=-1,o=[];++n<r;){var a=e[n];t(a,n,e)&&(o[++i]=a)}return o}e.exports=t},function(e,t,n){"use strict";function r(e,t){var n=[];return i(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}var i=n(255);e.exports=r},function(e){"use strict";e.exports={header:"",item:'{{#label}}{{label}}{{^operator}}:{{/operator}} {{/label}}{{#operator}}{{{displayOperator}}} {{/operator}}{{#exclude}}-{{/exclude}}{{name}} <span class="{{cssClasses.count}}">{{count}}</span>',clearAll:"Clear all",footer:""}},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function o(e){var t={};return void 0!==e.template&&(t.templates={item:e.template}),void 0!==e.transformData&&(t.transformData=e.transformData),t}function a(e,t,n){var r=v(t);return r.cssClasses=n,void 0!==e.label&&(r.label=e.label),void 0!==r.operator&&(r.displayOperator=r.operator,">="===r.operator&&(r.displayOperator="&ge;"),"<="===r.operator&&(r.displayOperator="&le;")),r}function s(e){return function(t){h(t)||(t.preventDefault(),e())}}var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),l=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},p=n(313),f=n(500),d=n(470),h=d.isSpecialClick,m=n(545),v=n(530),g=function(e){function t(){r(this,t),l(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),c(t,[{key:"_clearAllElement",value:function(e,t){return t!==e?void 0:p.createElement("a",{className:this.props.cssClasses.clearAll,href:this.props.clearAllURL,onClick:s(this.props.clearAllClick)},p.createElement(f,u({templateKey:"clearAll"},this.props.templateProps)))}},{key:"_refinementElement",value:function(e,t){var n=this.props.attributes[e.attributeName]||{},r=a(n,e,this.props.cssClasses),i=o(n),c=e.attributeName+(e.operator?e.operator:":")+(e.exclude?e.exclude:"")+e.name;return p.createElement("div",{className:this.props.cssClasses.item,key:c},p.createElement("a",{className:this.props.cssClasses.link,href:this.props.clearRefinementURLs[t],onClick:s(this.props.clearRefinementClicks[t])},p.createElement(f,u({data:r,templateKey:"item"},this.props.templateProps,i))))}},{key:"render",value:function(){return p.createElement("div",null,this._clearAllElement("before",this.props.clearAllPosition),p.createElement("div",{className:this.props.cssClasses.list},m(this.props.refinements,this._refinementElement,this)),this._clearAllElement("after",this.props.clearAllPosition))}}]),t}(p.Component);g.propTypes={attributes:p.PropTypes.object,clearAllClick:p.PropTypes.func,clearAllPosition:p.PropTypes.oneOfType([p.PropTypes.string,p.PropTypes.bool]),clearAllURL:p.PropTypes.string,clearRefinementClicks:p.PropTypes.arrayOf(p.PropTypes.func),clearRefinementURLs:p.PropTypes.arrayOf(p.PropTypes.string),cssClasses:p.PropTypes.shape({clearAll:p.PropTypes.string,list:p.PropTypes.string,item:p.PropTypes.string,link:p.PropTypes.string,count:p.PropTypes.string}).isRequired,refinements:p.PropTypes.array,templateProps:p.PropTypes.object.isRequired},e.exports=g},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.attributes,a=e.separator,v=void 0===a?" > ":a,g=e.rootPath,y=void 0===g?null:g,b=e.showParentLevel,x=void 0===b?!0:b,w=e.limit,E=void 0===w?1e3:w,_=e.sortBy,C=void 0===_?["name:asc"]:_,N=e.cssClasses,$=void 0===N?{}:N,O=e.autoHideContainer,T=void 0===O?!0:O,P=e.templates,S=void 0===P?h:P,D=e.transformData;if(!t||!r||!r.length)throw new Error(m);var R=c.getContainerNode(t),k=d(n(555));T===!0&&(k=f(k));var A=r[0];return{getConfiguration:function(){return{hierarchicalFacets:[{name:A,attributes:r,separator:v,rootPath:y,showParentLevel:x}]}},render:function(e){var t=e.results,n=e.helper,r=e.templatesConfig,a=e.createURL,f=e.state,d=o(t,A,C,E),m=0===d.length,v=c.prepareTemplateProps({transformData:D,defaultTemplates:h,templatesConfig:r,templates:S}),g={root:p(l(null),$.root),header:p(l("header"),$.header),body:p(l("body"),$.body),footer:p(l("footer"),$.footer),list:p(l("list"),$.list),depth:l("list","lvl"),item:p(l("item"),$.item),active:p(l("item","active"),$.active),link:p(l("link"),$.link),count:p(l("count"),$.count)};u.render(s.createElement(k,{attributeNameKey:"path",createURL:function(e){return a(f.toggleRefinement(A,e))},cssClasses:g,facetValues:d,shouldAutoHideContainer:m,templateProps:v,toggleRefinement:i.bind(null,n,A)}),R)}}}function i(e,t,n){e.toggleRefinement(t,n).search()}function o(e,t,n,r){var i=e.getFacetValues(t,{sortBy:n}).data||[];return a(i,r)}function a(e,t){return e.slice(0,t).map(function(e){return Array.isArray(e.data)&&(e.data=a(e.data,t)),e})}var s=n(313),u=n(469),c=n(470),l=c.bemHelper("ais-hierarchical-menu"),p=n(497),f=n(498),d=n(499),h=n(554),m="Usage:\nhierarchicalMenu({\n container,\n attributes,\n [ separator=' > ' ],\n [ rootPath ],\n [ showParentLevel=true ],\n [ limit=1000 ],\n [ sortBy=['name:asc'] ],\n [ cssClasses.{root , header, body, footer, list, depth, item, active, link}={} ],\n [ templates.{header, item, footer} ],\n [ transformData ],\n [ autoHideContainer=true ]\n})";e.exports=r},function(e){"use strict";e.exports={header:"",item:'<a class="{{cssClasses.link}}" href="{{url}}">{{name}} <span class="{{cssClasses.count}}">{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}</span></a>',footer:""}},function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},c=n(313),l=n(497),p=n(500),f=n(470),d=f.isSpecialClick,h=function(e){function t(){i(this,t),u(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return o(t,e),s(t,[{key:"refine",value:function(e){this.props.toggleRefinement(e)}},{key:"_generateFacetItem",value:function(e){var n=void 0,i=e.data&&e.data.length>0;i&&(n=c.createElement(t,a({},this.props,{depth:this.props.depth+1,facetValues:e.data})));var o=e;this.props.createURL&&(o.url=this.props.createURL(e[this.props.attributeNameKey]));var s=a({},e,{cssClasses:this.props.cssClasses}),u=l(this.props.cssClasses.item,r({},this.props.cssClasses.active,e.isRefined)),f=e[this.props.attributeNameKey];return void 0!==e.isRefined&&(f+="/"+e.isRefined),void 0!==e.count&&(f+="/"+e.count),c.createElement("div",{className:u,key:f,onClick:this.handleClick.bind(this,e[this.props.attributeNameKey])},c.createElement(p,a({data:s,templateKey:"item"},this.props.templateProps)),n)}},{key:"handleClick",value:function(e,t){if(!d(t)){if("INPUT"===t.target.tagName)return void this.refine(e);for(var n=t.target;n!==t.currentTarget;){if("LABEL"===n.tagName&&(n.querySelector('input[type="checkbox"]')||n.querySelector('input[type="radio"]')))return;"A"===n.tagName&&n.href&&t.preventDefault(),n=n.parentNode}t.stopPropagation(),this.refine(e)}}},{key:"render",value:function(){var e=[this.props.cssClasses.list];return this.props.cssClasses.depth&&e.push(""+this.props.cssClasses.depth+this.props.depth),c.createElement("div",{className:l(e)},this.props.facetValues.map(this._generateFacetItem,this))}}]),t}(c.Component);h.propTypes={Template:c.PropTypes.func,attributeNameKey:c.PropTypes.string,createURL:c.PropTypes.func.isRequired,cssClasses:c.PropTypes.shape({active:c.PropTypes.string,depth:c.PropTypes.string,item:c.PropTypes.string,list:c.PropTypes.string}),depth:c.PropTypes.number,facetValues:c.PropTypes.array,templateProps:c.PropTypes.object.isRequired,toggleRefinement:c.PropTypes.func.isRequired},h.defaultProps={cssClasses:{},depth:0,attributeNameKey:"name"},e.exports=h},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,n=e.cssClasses,r=void 0===n?{}:n,f=e.templates,d=void 0===f?l:f,h=e.transformData,m=e.hitsPerPage,v=void 0===m?20:m;if(!t)throw new Error(p);var g=a.getContainerNode(t),y={root:u(s(null),r.root),item:u(s("item"),r.item),empty:u(s(null,"empty"),r.empty)};return{getConfiguration:function(){return{hitsPerPage:v}},render:function(e){var t=e.results,n=e.templatesConfig,r=a.prepareTemplateProps({transformData:h,defaultTemplates:l,templatesConfig:n,templates:d});o.render(i.createElement(c,{cssClasses:y,hits:t.hits,results:t,templateProps:r}),g)}}}var i=n(313),o=n(469),a=n(470),s=a.bemHelper("ais-hits"),u=n(497),c=n(557),l=n(558),p="Usage:\nhits({\n container,\n [ cssClasses.{root,empty,item}={} ],\n [ templates.{empty,item} ],\n [ transformData.{empty=identity,item=identity} ],\n [ hitsPerPage=20 ]\n})";e.exports=r},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},u=n(313),c=n(545),l=n(500),p=function(e){function t(){r(this,t),s(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),a(t,[{key:"renderWithResults",value:function(){var e=this,t=c(this.props.results.hits,function(t){return u.createElement(l,o({cssClass:e.props.cssClasses.item,data:t,key:t.objectID,templateKey:"item"},e.props.templateProps))});return u.createElement("div",{className:this.props.cssClasses.root},t)}},{key:"renderNoResults",value:function(){var e=this.props.cssClasses.root+" "+this.props.cssClasses.empty;return u.createElement(l,o({cssClass:e,data:this.props.results,templateKey:"empty"},this.props.templateProps))}},{key:"render",value:function(){return this.props.results.hits.length>0?this.renderWithResults():this.renderNoResults()}}]),t}(u.Component);p.propTypes={cssClasses:u.PropTypes.shape({root:u.PropTypes.string,item:u.PropTypes.string,empty:u.PropTypes.string}),results:u.PropTypes.object,templateProps:u.PropTypes.object.isRequired},p.defaultProps={results:{hits:[]}},e.exports=p},function(e){"use strict";e.exports={empty:"No results",item:function(e){return JSON.stringify(e,null,2)}}},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.options,f=e.cssClasses,d=void 0===f?{}:f,h=e.autoHideContainer,m=void 0===h?!1:h;if(!t||!r)throw new Error(p);var v=a.getContainerNode(t),g=n(563);return m===!0&&(g=l(g)),{init:function(e){var t=e.state,n=s(r,function(e){return+t.hitsPerPage===+e.value});n||(void 0===t.hitsPerPage?window.console&&window.console.log("[Warning][hitsPerPageSelector] hitsPerPage not defined.You should probably used a `hits` widget or set the value `hitsPerPage` using the searchParameters attribute of the instantsearch constructor."):window.console&&window.console.log("[Warning][hitsPerPageSelector] No option in `options` with `value: hitsPerPage` (hitsPerPage: "+t.hitsPerPage+")"),r=[{value:void 0,label:""}].concat(r))},setHitsPerPage:function(e,t){e.setQueryParameter("hitsPerPage",+t),e.search()},render:function(e){var t=e.helper,n=e.state,a=e.results,s=n.hitsPerPage,l=0===a.nbHits,p=this.setHitsPerPage.bind(this,t),f={root:c(u(null),d.root),item:c(u("item"),d.item)};o.render(i.createElement(g,{cssClasses:f,currentValue:s,options:r,setValue:p,shouldAutoHideContainer:l}),v)}}}var i=n(313),o=n(469),a=n(470),s=n(560),u=a.bemHelper("ais-hits-per-page-selector"),c=n(497),l=n(498),p="Usage:\nhitsPerPageSelector({\n container,\n options,\n [ cssClasses.{root,item}={} ],\n [ autoHideContainer=false ]\n})";e.exports=r},function(e,t,n){"use strict";e.exports=n(561)},function(e,t,n){"use strict";function r(e,t,n){var r=s(e)?i:a;return n&&u(e,t,n)&&(t=void 0),("function"!=typeof t||void 0!==n)&&(t=o(t,n,3)),r(e,t)}var i=n(308),o=n(474),a=n(562),s=n(272),u=n(289);e.exports=r},function(e,t,n){"use strict";function r(e,t){var n;return i(e,function(e,r,i){return n=t(e,r,i),!n}),!!n}var i=n(255);e.exports=r},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},s=n(313),u=function(e){function t(){r(this,t),a(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),o(t,[{key:"handleChange",value:function(e){this.props.setValue(e.target.value)}},{key:"render",value:function(){var e=this,t=this.props,n=t.currentValue,r=t.options,i=this.handleChange.bind(this);return s.createElement("select",{className:this.props.cssClasses.root,defaultValue:n,onChange:i},r.map(function(t){return s.createElement("option",{className:e.props.cssClasses.item,key:t.value,value:t.value},t.label)}))}}]),t}(s.Component);u.propTypes={cssClasses:s.PropTypes.shape({root:s.PropTypes.oneOfType([s.PropTypes.string,s.PropTypes.arrayOf(s.PropTypes.string)]),item:s.PropTypes.oneOfType([s.PropTypes.string,s.PropTypes.arrayOf(s.PropTypes.string)])}),currentValue:s.PropTypes.oneOfType([s.PropTypes.string,s.PropTypes.number]).isRequired,options:s.PropTypes.arrayOf(s.PropTypes.shape({value:s.PropTypes.oneOfType([s.PropTypes.string,s.PropTypes.number]).isRequired,label:s.PropTypes.string.isRequired})).isRequired,setValue:s.PropTypes.func.isRequired},e.exports=u},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.attributeName,m=e.sortBy,v=void 0===m?["count:desc"]:m,g=e.limit,y=void 0===g?100:g,b=e.cssClasses,x=void 0===b?{}:b,w=e.templates,E=void 0===w?d:w,_=e.transformData,C=e.autoHideContainer,N=void 0===C?!0:C;if(!t||!r)throw new Error(h);var $=u.getContainerNode(t),O=f(n(555));N===!0&&(O=p(O));var T=r;return{getConfiguration:function(){return{hierarchicalFacets:[{name:T,attributes:[r]}]}},render:function(e){var t=e.results,n=e.helper,r=e.templatesConfig,p=e.state,f=e.createURL,h=o(t,T,v,y),m=0===h.length,g=u.prepareTemplateProps({transformData:_,defaultTemplates:d,templatesConfig:r,templates:E}),b={root:l(c(null),x.root),header:l(c("header"),x.header),body:l(c("body"),x.body),footer:l(c("footer"),x.footer),list:l(c("list"),x.list),item:l(c("item"),x.item),active:l(c("item","active"),x.active),link:l(c("link"),x.link),count:l(c("count"),x.count)};s.render(a.createElement(O,{createURL:function(e){return f(p.toggleRefinement(T,e))},cssClasses:b,facetValues:h,shouldAutoHideContainer:m,templateProps:g,toggleRefinement:i.bind(null,n,T)}),$)}}}function i(e,t,n){e.toggleRefinement(t,n).search()}function o(e,t,n,r){var i=e.getFacetValues(t,{sortBy:n});return i.data&&i.data.slice(0,r)||[]}var a=n(313),s=n(469),u=n(470),c=u.bemHelper("ais-menu"),l=n(497),p=n(498),f=n(499),d=n(565),h="Usage:\nmenu({\n container,\n attributeName,\n [sortBy],\n [limit],\n [cssClasses.{root,list,item}],\n [templates.{header,item,footer}],\n [transformData],\n [autoHideContainer]\n})";e.exports=r},function(e){"use strict";e.exports={header:"",item:'<a class="{{cssClasses.link}}" href="{{url}}">{{name}} <span class="{{cssClasses.count}}">{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}</span></a>',footer:""}},function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e){var t=e.container,i=e.attributeName,h=e.operator,m=void 0===h?"or":h,v=e.sortBy,g=void 0===v?["count:desc"]:v,y=e.limit,b=void 0===y?1e3:y,x=e.cssClasses,w=void 0===x?{}:x,E=e.templates,_=void 0===E?f:E,C=e.transformData,N=e.autoHideContainer,$=void 0===N?!0:N,O=n(555);if(!t||!i)throw new Error(d);O=p(O),$===!0&&(O=l(O));var T=s.getContainerNode(t);if(m&&(m=m.toLowerCase(),"and"!==m&&"or"!==m))throw new Error(d);return{getConfiguration:function(e){var t=r({},"and"===m?"facets":"disjunctiveFacets",[i]),n=e.maxValuesPerFacet||0;return t.maxValuesPerFacet=Math.max(n,b),t},toggleRefinement:function(e,t){e.toggleRefinement(i,t).search()},render:function(e){var t=e.results,n=e.helper,r=e.templatesConfig,l=e.state,p=e.createURL,d=s.prepareTemplateProps({transformData:C,defaultTemplates:f,templatesConfig:r,templates:_}),h=t.getFacetValues(i,{sortBy:g}).slice(0,b),m=0===h.length,v={root:c(u(null),w.root),header:c(u("header"),w.header),body:c(u("body"),w.body),footer:c(u("footer"),w.footer),list:c(u("list"),w.list),item:c(u("item"),w.item),active:c(u("item","active"),w.active),label:c(u("label"),w.label),checkbox:c(u("checkbox"),w.checkbox),count:c(u("count"),w.count)},y=this.toggleRefinement.bind(this,n);a.render(o.createElement(O,{createURL:function(e){return p(l.toggleRefinement(i,e))},cssClasses:v,facetValues:h,shouldAutoHideContainer:m,templateProps:d,toggleRefinement:y}),T)}}}var o=n(313),a=n(469),s=n(470),u=s.bemHelper("ais-refinement-list"),c=n(497),l=n(498),p=n(499),f=n(567),d="Usage:\nrefinementList({\n container,\n attributeName,\n [ operator='or' ],\n [ sortBy=['count:desc'] ],\n [ limit=1000 ],\n [ cssClasses.{root,header,body,footer,list,item,active,label,checkbox,count}],\n [ templates.{header,item,footer} ],\n [ transformData ],\n [ autoHideContainer=true ]\n})";e.exports=i},function(e){"use strict";e.exports={header:"",item:'<label class="{{cssClasses.label}}">\n <input type="checkbox" class="{{cssClasses.checkbox}}" value="{{name}}" {{#isRefined}}checked{{/isRefined}} />{{name}}\n <span class="{{cssClasses.count}}">{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}</span>\n</label>',footer:""}},function(e,t,n){"use strict";function r(e){var t=e.container,r=e.attributeName,a=e.options,f=e.cssClasses,d=void 0===f?{}:f,y=e.templates,b=void 0===y?v:y,x=e.transformData,w=e.autoHideContainer,E=void 0===w?!0:w;if(!t||!r||!a)throw new Error(g);var _=c.getContainerNode(t),C=m(n(555));return E===!0&&(C=h(C)),{getConfiguration:function(){return{}},render:function(e){var t=e.helper,n=e.results,f=e.templatesConfig,h=e.state,m=e.createURL,g=c.prepareTemplateProps({transformData:x,defaultTemplates:v,templatesConfig:f,templates:b}),y=a.map(function(e){return e.isRefined=i(t.state,r,e),e.attributeName=r,e}),w=0===n.nbHits,E={root:p(l(null),d.root),header:p(l("header"),d.header),body:p(l("body"),d.body),footer:p(l("footer"),d.footer),list:p(l("list"),d.list),item:p(l("item"),d.item),label:p(l("label"),d.label),radio:p(l("radio"),d.radio),active:p(l("item","active"),d.active)};u.render(s.createElement(C,{createURL:function(e){return m(o(h,r,a,e))},cssClasses:E,facetValues:y,shouldAutoHideContainer:w,templateProps:g,toggleRefinement:this._toggleRefinement.bind(null,t)}),_)},_toggleRefinement:function(e,t){var n=o(e.state,r,a,t);e.setState(n),e.search()}}}function i(e,t,n){var r=e.getNumericRefinements(t);return void 0!==n.start&&void 0!==n.end&&n.start===n.end?a(r,"=",n.start):void 0!==n.start?a(r,">=",n.start):void 0!==n.end?a(r,"<=",n.end):void 0===n.start&&void 0===n.end?0===Object.keys(r).length:void 0}function o(e,t,n,r){var o=f(n,{name:r}),s=e.getNumericRefinements(t);if(void 0===o.start&&void 0===o.end)return e.clearRefinements(t);if(i(e,t,o)||(e=e.clearRefinements(t)),void 0!==o.start&&void 0!==o.end){if(o.start>o.end)throw new Error("option.start should be > to option.end");if(o.start===o.end)return e=a(s,"=",o.start)?e.removeNumericRefinement(t,"=",o.start):e.addNumericRefinement(t,"=",o.start)}return void 0!==o.start&&(e=a(s,">=",o.start)?e.removeNumericRefinement(t,">=",o.start):e.addNumericRefinement(t,">=",o.start)),void 0!==o.end&&(e=a(s,"<=",o.end)?e.removeNumericRefinement(t,"<=",o.end):e.addNumericRefinement(t,"<=",o.end)),e}function a(e,t,n){var r=void 0!==e[t],i=d(e[t],n);return r&&i}var s=n(313),u=n(469),c=n(470),l=c.bemHelper("ais-refinement-list"),p=n(497),f=n(490),d=n(569),h=n(498),m=n(499),v=n(572),g="Usage:\nnumericRefinementList({\n container,\n attributeName,\n options,\n [ sortBy ],\n [ limit ],\n [ cssClasses.{root,header,body,footer,list,item,active,label,checkbox,count} ],\n [ templates.{header,item,footer} ],\n [ transformData ],\n [ autoHideContainer ]\n})";e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){var f=e?o(e):0;return u(f)||(e=l(e),f=e.length),n="number"!=typeof n||r&&s(t,n,r)?0:0>n?p(f+n,0):n||0,"string"==typeof e||!a(e)&&c(e)?f>=n&&e.indexOf(t,n)>-1:!!f&&i(e,t,n)>-1}var i=n(295),o=n(267),a=n(272),s=n(289),u=n(269),c=n(496),l=n(570),p=Math.max;e.exports=r},function(e,t,n){"use strict";function r(e){return i(e,o(e))}var i=n(571),o=n(261);e.exports=r},function(e){"use strict";function t(e,t){for(var n=-1,r=t.length,i=Array(r);++n<r;)i[n]=e[t[n]];return i}e.exports=t},function(e){"use strict";e.exports={header:"",item:'<label class="{{cssClasses.label}}">\n <input type="radio" class="{{cssClasses.checkbox}}" name="{{attributeName}}" {{#isRefined}}checked{{/isRefined}} />{{name}}\n</label>',footer:""}},function(e,t,n){"use strict";function r(e){var t=e.container,r=e.operator,p=void 0===r?"=":r,f=e.attributeName,d=e.options,h=e.cssClasses,m=void 0===h?{}:h,v=e.autoHideContainer,g=void 0===v?!1:v,y=a.getContainerNode(t),b="Usage: numericSelector({container, attributeName, options[, cssClasses.{root,item}, autoHideContainer]})",x=n(563);if(g===!0&&(x=c(x)),!t||!d||0===d.length||!f)throw new Error(b);return{init:function(e){var t=e.helper,n=this._getRefinedValue(t)||d[0].value;void 0!==n&&t.addNumericRefinement(f,p,n)},render:function(e){var t=e.helper,n=e.results,r=this._getRefinedValue(t),a=0===n.nbHits,u={root:s(l(null),m.root),item:s(l("item"),m.item)};o.render(i.createElement(x,{cssClasses:u,currentValue:r,options:d,setValue:this._refine.bind(this,t),shouldAutoHideContainer:a}),y)},_refine:function(e,t){e.clearRefinements(f),void 0!==t&&e.addNumericRefinement(f,p,t),e.search()},_getRefinedValue:function(e){var t=e.getRefinements(f),n=u(t,{operator:p});return n&&void 0!==n.value&&void 0!==n.value[0]?n.value[0]:void 0}}}var i=n(313),o=n(469),a=n(470),s=n(497),u=n(490),c=n(498),l=a.bemHelper("ais-numeric-selector");e.exports=r},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.cssClasses,d=void 0===r?{}:r,h=e.labels,m=void 0===h?{}:h,v=e.maxPages,g=void 0===v?20:v,y=e.padding,b=void 0===y?3:y,x=e.showFirstLast,w=void 0===x?!0:x,E=e.autoHideContainer,_=void 0===E?!0:E,C=e.scrollTo,N=void 0===C?"body":C;if(!t)throw new Error(f);N===!0&&(N="body");var $=u.getContainerNode(t),O=N!==!1?u.getContainerNode(N):!1,T=n(580);return _===!0&&(T=l(T)),m=a(m,p),{setCurrentPage:function(e,t){e.setCurrentPage(t),O!==!1&&O.scrollIntoView(),e.search()},render:function(e){var t=e.results,n=e.helper,r=e.createURL,a=e.state,u=t.page,l=t.nbPages,p=t.nbHits,f=0===p,h={root:s(c(null),d.root),item:s(c("item"),d.item),link:s(c("link"),d.link),page:s(c("item","page"),d.page),previous:s(c("item","previous"),d.previous),next:s(c("item","next"),d.next),first:s(c("item","first"),d.first),last:s(c("item","last"),d.last),active:s(c("item","active"),d.active),disabled:s(c("item","disabled"),d.disabled)};void 0!==g&&(l=Math.min(g,t.nbPages)),o.render(i.createElement(T,{createURL:function(e){return r(a.setPage(e))},cssClasses:h,currentPage:u,labels:m,nbHits:p,nbPages:l,padding:b,setCurrentPage:this.setCurrentPage.bind(this,n),shouldAutoHideContainer:f,showFirstLast:w}),$)}}}var i=n(313),o=n(469),a=n(575),s=n(497),u=n(470),c=u.bemHelper("ais-pagination"),l=n(498),p={previous:"‹",next:"›",first:"«",last:"»"},f="Usage:\npagination({\n container,\n [ cssClasses.{root,item,page,previous,next,first,last,active,disabled}={} ],\n [ labels.{previous,next,first,last} ],\n [ maxPages=20 ],\n [ padding=3 ],\n [ showFirstLast=true ],\n [ autoHideContainer=true ],\n [ scrollTo='body' ]\n})";e.exports=r},function(e,t,n){"use strict";var r=n(576),i=n(578),o=n(579),a=o(r,i);e.exports=a},function(e,t,n){"use strict";var r=n(577),i=n(532),o=n(288),a=o(function(e,t,n){return n?r(e,t,n):i(e,t)});e.exports=a},function(e,t,n){"use strict";function r(e,t,n){for(var r=-1,o=i(t),a=o.length;++r<a;){var s=o[r],u=e[s],c=n(u,t[s],s,e,t);(c===c?c===u:u!==u)&&(void 0!==u||s in e)||(e[s]=c)}return e}var i=n(261);e.exports=r},function(e){"use strict";function t(e,t){return void 0===e?t:e}e.exports=t},function(e,t,n){"use strict";function r(e,t){return i(function(n){var r=n[0];return null==r?r:(n.push(t),e.apply(void 0,n))})}var i=n(290);e.exports=r},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},s=n(313),u=n(253),c=n(581),l=n(470),p=l.isSpecialClick,f=n(583),d=n(585),h=n(497),m=function(e){function t(e){r(this,t),a(Object.getPrototypeOf(t.prototype),"constructor",this).call(this,c(e,t.defaultProps))}return i(t,e),o(t,[{key:"handleClick",value:function(e,t){p(t)||(t.preventDefault(),this.props.setCurrentPage(e))}},{key:"pageLink",value:function(e){var t=e.label,n=e.ariaLabel,r=e.pageNumber,i=e.additionalClassName,o=void 0===i?null:i,a=e.isDisabled,u=void 0===a?!1:a,c=e.isActive,l=void 0===c?!1:c,p=e.createURL,f=this.handleClick.bind(this,r),m={item:h(this.props.cssClasses.item,o),link:h(this.props.cssClasses.link)};u?m.item=h(m.item,this.props.cssClasses.disabled):l&&(m.item=h(m.item,this.props.cssClasses.active));var v=p&&!u?p(r):"#";return s.createElement(d,{ariaLabel:n,cssClasses:m,handleClick:f,key:t,label:t,url:v})}},{key:"previousPageLink",value:function(e,t){return this.pageLink({ariaLabel:"Previous",additionalClassName:this.props.cssClasses.previous,isDisabled:e.isFirstPage(),label:this.props.labels.previous,pageNumber:e.currentPage-1,createURL:t})}},{key:"nextPageLink",value:function(e,t){return this.pageLink({ariaLabel:"Next",additionalClassName:this.props.cssClasses.next,isDisabled:e.isLastPage(),label:this.props.labels.next,pageNumber:e.currentPage+1,createURL:t})}},{key:"firstPageLink",value:function(e,t){return this.pageLink({ariaLabel:"First",additionalClassName:this.props.cssClasses.first,isDisabled:e.isFirstPage(),label:this.props.labels.first,pageNumber:0,createURL:t})}},{key:"lastPageLink",value:function(e,t){return this.pageLink({ariaLabel:"Last",additionalClassName:this.props.cssClasses.last,isDisabled:e.isLastPage(),label:this.props.labels.last,pageNumber:e.total-1,createURL:t})}},{key:"pages",value:function n(e,t){var r=this,n=[];return u(e.pages(),function(i){var o=i===e.currentPage;n.push(r.pageLink({ariaLabel:i+1,additionalClassName:r.props.cssClasses.page,isActive:o,label:i+1,pageNumber:i,createURL:t}))}),n}},{key:"render",value:function(){var e=new f({currentPage:this.props.currentPage,total:this.props.nbPages,padding:this.props.padding}),t=this.props.createURL;return s.createElement("ul",{className:this.props.cssClasses.root},this.props.showFirstLast?this.firstPageLink(e,t):null,this.previousPageLink(e,t),this.pages(e,t),this.nextPageLink(e,t),this.props.showFirstLast?this.lastPageLink(e,t):null)}}]),t}(s.Component);m.propTypes={createURL:s.PropTypes.func,cssClasses:s.PropTypes.shape({root:s.PropTypes.string,item:s.PropTypes.string,link:s.PropTypes.string,page:s.PropTypes.string,previous:s.PropTypes.string,next:s.PropTypes.string,first:s.PropTypes.string,last:s.PropTypes.string,active:s.PropTypes.string,disabled:s.PropTypes.string
21
+ }),currentPage:s.PropTypes.number,labels:s.PropTypes.shape({first:s.PropTypes.string,last:s.PropTypes.string,next:s.PropTypes.string,previous:s.PropTypes.string}),nbHits:s.PropTypes.number,nbPages:s.PropTypes.number,padding:s.PropTypes.number,setCurrentPage:s.PropTypes.func.isRequired,showFirstLast:s.PropTypes.bool},m.defaultProps={nbHits:0,currentPage:0,nbPages:0},e.exports=m},function(e,t,n){"use strict";var r=n(579),i=n(279),o=n(582),a=r(i,o);e.exports=a},function(e,t,n){"use strict";function r(e,t){return void 0===e?t:i(e,t,r)}var i=n(279);e.exports=r},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=n(584),a=function(){function e(t){r(this,e),this.currentPage=t.currentPage,this.total=t.total,this.padding=t.padding}return i(e,[{key:"pages",value:function(){var e=this.total,t=this.currentPage,n=this.padding,r=this.nbPagesDisplayed(n,e);if(r===e)return o(0,e);var i=this.calculatePaddingLeft(t,n,e,r),a=r-i,s=t-i,u=t+a;return o(s,u)}},{key:"nbPagesDisplayed",value:function(e,t){return Math.min(2*e+1,t)}},{key:"calculatePaddingLeft",value:function(e,t,n,r){return t>=e?e:e>=n-t?r-(n-e):t}},{key:"isLastPage",value:function(){return this.currentPage===this.total-1}},{key:"isFirstPage",value:function(){return 0===this.currentPage}}]),e}();e.exports=a},function(e,t,n){"use strict";function r(e,t,n){n&&i(e,t,n)&&(t=n=void 0),e=+e||0,n=null==n?1:+n||0,null==t?(t=e,e=0):t=+t||0;for(var r=-1,s=a(o((t-e)/(n||1)),0),u=Array(s);++r<s;)u[r]=e,e+=n;return u}var i=n(289),o=Math.ceil,a=Math.max;e.exports=r},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},s=n(313),u=function(e){function t(){r(this,t),a(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),o(t,[{key:"render",value:function(){var e=this.props,t=e.cssClasses,n=e.label,r=e.ariaLabel,i=e.handleClick,o=e.url;return s.createElement("li",{className:t.item},s.createElement("a",{ariaLabel:r,className:t.link,dangerouslySetInnerHTML:{__html:n},href:o,onClick:i}))}}]),t}(s.Component);u.propTypes={ariaLabel:s.PropTypes.oneOfType([s.PropTypes.string,s.PropTypes.number]).isRequired,cssClasses:s.PropTypes.shape({item:s.PropTypes.string,link:s.PropTypes.string}),handleClick:s.PropTypes.func.isRequired,label:s.PropTypes.oneOfType([s.PropTypes.string,s.PropTypes.number]).isRequired,url:s.PropTypes.string},e.exports=u},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.attributeName,h=e.cssClasses,m=void 0===h?{}:h,v=e.templates,g=void 0===v?u:v,y=e.labels,b=void 0===y?{currency:"$",button:"Go",separator:"to"}:y,x=e.autoHideContainer,w=void 0===x?!0:x;if(!t||!r)throw new Error(d);var E=a.getContainerNode(t),_=l(n(589));return w===!0&&(_=c(_)),{getConfiguration:function(){return{facets:[r]}},_generateRanges:function(e){var t=e.getFacetStats(r);return s(t)},_extractRefinedRange:function(e){var t=e.getRefinements(r),n=void 0,i=void 0;return 0===t.length?[]:(t.forEach(function(e){-1!==e.operator.indexOf(">")?n=Math.floor(e.value[0]):-1!==e.operator.indexOf("<")&&(i=Math.ceil(e.value[0]))}),[{from:n,to:i,isRefined:!0}])},_refine:function(e,t,n){var i=this._extractRefinedRange(e);e.clearRefinements(r),(0===i.length||i[0].from!==t||i[0].to!==n)&&("undefined"!=typeof t&&e.addNumericRefinement(r,">=",Math.floor(t)),"undefined"!=typeof n&&e.addNumericRefinement(r,"<=",Math.ceil(n))),e.search()},render:function(e){var t=e.results,n=e.helper,s=e.templatesConfig,c=e.state,l=e.createURL,d=void 0;t.hits.length>0?(d=this._extractRefinedRange(n),0===d.length&&(d=this._generateRanges(t))):d=[];var h=a.prepareTemplateProps({defaultTemplates:u,templatesConfig:s,templates:g}),v=0===d.length,y={root:f(p(null),m.root),header:f(p("header"),m.header),body:f(p("body"),m.body),list:f(p("list"),m.list),link:f(p("link"),m.link),item:f(p("item"),m.item),active:f(p("item","active"),m.active),form:f(p("form"),m.form),label:f(p("label"),m.label),input:f(p("input"),m.input),currency:f(p("currency"),m.currency),button:f(p("button"),m.button),separator:f(p("separator"),m.separator),footer:f(p("footer"),m.footer)};o.render(i.createElement(_,{createURL:function(e,t,n){var i=c.clearRefinements(r);return n||("undefined"!=typeof e&&(i=i.addNumericRefinement(r,">=",Math.floor(e))),"undefined"!=typeof t&&(i=i.addNumericRefinement(r,"<=",Math.ceil(t)))),l(i)},cssClasses:y,facetValues:d,labels:b,refine:this._refine.bind(this,n),shouldAutoHideContainer:v,templateProps:h}),E)}}}var i=n(313),o=n(469),a=n(470),s=n(587),u=n(588),c=n(498),l=n(499),p=a.bemHelper("ais-price-ranges"),f=n(497),d="Usage:\npriceRanges({\n container,\n attributeName,\n [ cssClasses.{root,header,body,list,item,active,link,form,label,input,currency,separator,button,footer} ],\n [ templates.{header,item,footer} ],\n [ labels.{currency,separator,button} ],\n [ autoHideContainer=true ]\n})";e.exports=r},function(e){"use strict";function t(e,t){var n=Math.round(e/t)*t;return 1>n&&(n=1),n}function n(e){var n=void 0;n=e.avg<100?1:e.avg<1e3?10:100;for(var r=t(Math.round(e.avg),n),i=Math.ceil(e.min),o=t(Math.floor(e.max),n);o>e.max;)o-=n;var a=void 0,s=void 0,u=[];if(i!==o){for(a=i,u.push({to:a});r>a;)s=u[u.length-1].to,a=t(s+(r-i)/3,n),s>=a&&(a=s+1),u.push({from:s,to:a});for(;o>a;)s=u[u.length-1].to,a=t(s+(o-r)/3,n),s>=a&&(a=s+1),u.push({from:s,to:a});1===u.length&&a!==r&&(u.push({from:a,to:r}),a=r),1===u.length?(u[0].from=e.min,u[0].to=e.max):delete u[u.length-1].to}return u}e.exports=n},function(e){"use strict";e.exports={header:"",item:"\n {{#from}}\n {{^to}}\n &ge;\n {{/to}}\n ${{from}}\n {{/from}}\n {{#to}}\n {{#from}}\n -\n {{/from}}\n {{^from}}\n &le;\n {{/from}}\n ${{to}}\n {{/to}}\n ",footer:""}},function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},c=n(313),l=n(500),p=n(590),f=n(497),d=function(e){function t(){i(this,t),u(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return o(t,e),s(t,[{key:"getForm",value:function(){return c.createElement(p,{cssClasses:this.props.cssClasses,labels:this.props.labels,refine:this.refine.bind(this)})}},{key:"getURLFromFacetValue",value:function(e){return this.props.createURL?this.props.createURL(e.from,e.to,e.isRefined):"#"}},{key:"getItemFromFacetValue",value:function(e){var t=f(this.props.cssClasses.item,r({},this.props.cssClasses.active,e.isRefined)),n=this.getURLFromFacetValue(e),i=e.from+"_"+e.to,o=this.refine.bind(this,e.from,e.to);return c.createElement("div",{className:t,key:i},c.createElement("a",{className:this.props.cssClasses.link,href:n,onClick:o},c.createElement(l,a({data:e,templateKey:"item"},this.props.templateProps))))}},{key:"refine",value:function(e,t,n){n.preventDefault(),this.setState({formFromValue:null,formToValue:null}),this.props.refine(e,t)}},{key:"render",value:function(){var e=this,t=this.getForm();return c.createElement("div",null,c.createElement("div",{className:this.props.cssClasses.list},this.props.facetValues.map(function(t){return e.getItemFromFacetValue(t)})),t)}}]),t}(c.Component);d.propTypes={createURL:c.PropTypes.func.isRequired,cssClasses:c.PropTypes.shape({active:c.PropTypes.string,button:c.PropTypes.string,form:c.PropTypes.string,input:c.PropTypes.string,item:c.PropTypes.string,label:c.PropTypes.string,link:c.PropTypes.string,list:c.PropTypes.string,separator:c.PropTypes.string}),facetValues:c.PropTypes.array,labels:c.PropTypes.shape({button:c.PropTypes.string,currency:c.PropTypes.string,to:c.PropTypes.string}),refine:c.PropTypes.func.isRequired,templateProps:c.PropTypes.object.isRequired},d.defaultProps={cssClasses:{}},e.exports=d},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},s=n(313),u=function(e){function t(){r(this,t),a(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),o(t,[{key:"getInput",value:function(e){return s.createElement("label",{className:this.props.cssClasses.label},s.createElement("span",{className:this.props.cssClasses.currency},this.props.labels.currency," "),s.createElement("input",{className:this.props.cssClasses.input,ref:e,type:"number"}))}},{key:"handleSubmit",value:function(e){var t=+this.refs.from.value||void 0,n=+this.refs.to.value||void 0;this.props.refine(t,n,e)}},{key:"render",value:function(){var e=this.getInput("from"),t=this.getInput("to"),n=this.handleSubmit.bind(this);return s.createElement("form",{className:this.props.cssClasses.form,onSubmit:n,ref:"form"},e,s.createElement("span",{className:this.props.cssClasses.separator}," ",this.props.labels.separator," "),t,s.createElement("button",{className:this.props.cssClasses.button,type:"submit"},this.props.labels.button))}}]),t}(s.Component);u.propTypes={cssClasses:s.PropTypes.shape({button:s.PropTypes.string,currency:s.PropTypes.string,form:s.PropTypes.string,input:s.PropTypes.string,label:s.PropTypes.string,separator:s.PropTypes.string}),labels:s.PropTypes.shape({button:s.PropTypes.string,currency:s.PropTypes.string,separator:s.PropTypes.string}),refine:s.PropTypes.func.isRequired},u.defaultProps={cssClasses:{},labels:{}},e.exports=u},function(e,t,n){"use strict";function r(e){var t=e.container,r=e.placeholder,d=void 0===r?"":r,h=e.cssClasses,m=void 0===h?{}:h,v=e.poweredBy,g=void 0===v?!1:v,y=e.wrapInput,b=void 0===y?!0:y,x=e.autofocus,w=void 0===x?"auto":x,E=e.searchOnEnterKeyPressOnly,_=void 0===E?!1:E;if(!t)throw new Error(f);return t=a.getContainerNode(t),"boolean"!=typeof w&&(w="auto"),{getInput:function(){return"INPUT"===t.tagName?t:document.createElement("input")},wrapInput:function(e){var t=document.createElement("div");return t.classList.add(c(u(null),m.root)),t.appendChild(e),t},addDefaultAttributesToInput:function(e,t){var n={autocapitalize:"off",autocomplete:"off",autocorrect:"off",placeholder:d,role:"textbox",spellcheck:"false",type:"text",value:t};s(n,function(t,n){e.hasAttribute(n)||e.setAttribute(n,t)}),e.classList.add(c(u("input"),m.input))},addPoweredBy:function(e){var t=n(592),r=document.createElement("div");e.parentNode.insertBefore(r,e.nextSibling);var a={root:c(u("powered-by"),m.poweredBy),link:u("powered-by-link")};o.render(i.createElement(t,{cssClasses:a}),r)},init:function(e){function n(e){var t=e.currentTarget?e.currentTarget:e.srcElement;i.setQuery(t.value),_||i.search()}var r=e.state,i=e.helper,o="INPUT"===t.tagName,a=this.getInput();if(this.addDefaultAttributesToInput(a,r.query),a.addEventListener("keyup",function(e){i.setQuery(a.value),_&&e.keyCode===l&&i.search(),window.attachEvent&&e.keyCode===p&&i.search()}),window.attachEvent?a.attachEvent("onpropertychange",n):a.addEventListener("input",n,!1),o){var s=document.createElement("div");a.parentNode.insertBefore(s,a);var u=a.parentNode,c=b?this.wrapInput(a):a;u.replaceChild(c,s)}else{var c=b?this.wrapInput(a):a;t.appendChild(c)}g&&this.addPoweredBy(a),i.on("change",function(e){a!==document.activeElement&&a.value!==e.query&&(a.value=r.query)}),(w===!0||"auto"===w&&""===i.state.query)&&a.focus()}}}var i=n(313),o=n(469),a=n(470),s=n(253),u=n(470).bemHelper("ais-search-box"),c=n(497),l=13,p=8,f="Usage:\nsearchBox({\n container,\n [ placeholder ],\n [ cssClasses.{input,poweredBy} ],\n [ poweredBy ],\n [ wrapInput ],\n [ autofocus ],\n [ searchOnEnterKeyPressOnly ]\n})";e.exports=r},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},s=n(313),u=function(e){function t(){r(this,t),a(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),o(t,[{key:"render",value:function(){return s.createElement("div",{className:this.props.cssClasses.root},"Powered by",s.createElement("a",{className:this.props.cssClasses.link,href:"https://www.algolia.com/",target:"_blank"},"Algolia"))}}]),t}(s.Component);u.propTypes={cssClasses:s.PropTypes.shape({root:s.PropTypes.string,link:s.PropTypes.string})},e.exports=u},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.attributeName,f=e.tooltips,d=void 0===f?!0:f,h=e.templates,m=void 0===h?l:h,v=e.cssClasses,g=void 0===v?{root:null,body:null}:v,y=e.step,b=void 0===y?1:y,x=e.pips,w=void 0===x?!0:x,E=e.autoHideContainer,_=void 0===E?!0:E;if(!t||!r)throw new Error(p);var C=a.getContainerNode(t),N=c(n(594));return _===!0&&(N=u(N)),{getConfiguration:function(){return{disjunctiveFacets:[r]}},_getCurrentRefinement:function(e){var t=e.state.getNumericRefinement(r,">="),n=e.state.getNumericRefinement(r,"<=");return t=t&&t.length?t[0]:-(1/0),n=n&&n.length?n[0]:1/0,{min:t,max:n}},_refine:function(e,t,n){e.clearRefinements(r),n[0]>t.min&&e.addNumericRefinement(r,">=",Math.round(n[0])),n[1]<t.max&&e.addNumericRefinement(r,"<=",Math.round(n[1])),e.search()},render:function(e){var t=e.results,n=e.helper,u=e.templatesConfig,c=s(t.disjunctiveFacets,{name:r}),p=void 0!==c?c.stats:void 0,f=this._getCurrentRefinement(n);void 0===p&&(p={min:null,max:null});var h=p.min===p.max,v=a.prepareTemplateProps({defaultTemplates:l,templatesConfig:u,templates:m});o.render(i.createElement(N,{cssClasses:g,onChange:this._refine.bind(this,n,p),pips:w,range:{min:Math.floor(p.min),max:Math.ceil(p.max)},shouldAutoHideContainer:h,start:[f.min,f.max],step:b,templateProps:v,tooltips:d}),C)}}}var i=n(313),o=n(469),a=n(470),s=n(490),u=n(498),c=n(499),l={header:"",footer:""},p="Usage:\nrangeSlider({\n container,\n attributeName,\n [ tooltips=true ],\n [ templates.{header, footer} ],\n [ cssClasses.{root, body} ],\n [ step=1 ],\n [ pips=true ],\n [ autoHideContainer=true ]\n});\n";e.exports=r},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},u=n(313),c=n(595),l="ais-range-slider--",p=function(e){function t(){r(this,t),s(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),a(t,[{key:"handleChange",value:function(e,t,n){this.props.onChange(n)}},{key:"render",value:function(){var e=void 0;return e=this.props.pips===!1?void 0:this.props.pips===!0||"undefined"==typeof this.props.pips?{mode:"positions",density:3,values:[0,50,100],stepped:!0,format:{to:function(e){return Number(e).toLocaleString()}}}:this.props.pips,u.createElement(c,o({},this.props,{animate:!1,behaviour:"snap",connect:!0,cssPrefix:l,onChange:this.handleChange.bind(this),pips:e}))}}]),t}(u.Component);p.propTypes={onChange:u.PropTypes.func,onSlide:u.PropTypes.func,pips:u.PropTypes.oneOfType([u.PropTypes.bool,u.PropTypes.object]),range:u.PropTypes.object.isRequired,start:u.PropTypes.arrayOf(u.PropTypes.number).isRequired,tooltips:u.PropTypes.oneOfType([u.PropTypes.bool,u.PropTypes.object])},e.exports=p},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},c=n(313),l=r(c),p=n(596),f=r(p),d=function(e){function t(){i(this,t),u(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return o(t,e),s(t,[{key:"componentDidMount",value:function(){this.createSlider()}},{key:"componentDidUpdate",value:function(){this.slider.destroy(),this.createSlider()}},{key:"componentWillUnmount",value:function(){this.slider.destroy()}},{key:"createSlider",value:function(){var e=this.slider=f["default"].create(this.sliderContainer,a({},this.props));this.props.onUpdate&&e.on("update",this.props.onUpdate),this.props.onChange&&e.on("change",this.props.onChange)}},{key:"render",value:function(){var e=this;return l["default"].createElement("div",{ref:function(t){e.sliderContainer=t}})}}]),t}(l["default"].Component);d.propTypes={animate:l["default"].PropTypes.bool,connect:l["default"].PropTypes.oneOfType([l["default"].PropTypes.oneOf(["lower","upper"]),l["default"].PropTypes.bool]),cssPrefix:l["default"].PropTypes.string,direction:l["default"].PropTypes.oneOf(["ltr","rtl"]),limit:l["default"].PropTypes.number,margin:l["default"].PropTypes.number,onChange:l["default"].PropTypes.func,onUpdate:l["default"].PropTypes.func,orientation:l["default"].PropTypes.oneOf(["horizontal","vertical"]),pips:l["default"].PropTypes.object,range:l["default"].PropTypes.object.isRequired,start:l["default"].PropTypes.arrayOf(l["default"].PropTypes.number).isRequired,step:l["default"].PropTypes.number,tooltips:l["default"].PropTypes.oneOfType([l["default"].PropTypes.bool,l["default"].PropTypes.object])},e.exports=d},function(e,t){var n,r,i;!function(o){r=[],n=o,i="function"==typeof n?n.apply(t,r):n,!(void 0!==i&&(e.exports=i))}(function(){"use strict";function e(e){return e.filter(function(e){return this[e]?!1:this[e]=!0},{})}function t(e,t){return Math.round(e/t)*t}function n(e){var t=e.getBoundingClientRect(),n=e.ownerDocument,r=n.documentElement,i=f();return/webkit.*Chrome.*Mobile/i.test(navigator.userAgent)&&(i.x=0),{top:t.top+i.y-r.clientTop,left:t.left+i.x-r.clientLeft}}function r(e){return"number"==typeof e&&!isNaN(e)&&isFinite(e)}function i(e){var t=Math.pow(10,7);return Number((Math.round(e*t)/t).toFixed(7))}function o(e,t,n){c(e,t),setTimeout(function(){l(e,t)},n)}function a(e){return Math.max(Math.min(e,100),0)}function s(e){return Array.isArray(e)?e:[e]}function u(e){var t=e.split(".");return t.length>1?t[1].length:0}function c(e,t){e.classList?e.classList.add(t):e.className+=" "+t}function l(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp("(^|\\b)"+t.split(" ").join("|")+"(\\b|$)","gi")," ")}function p(e,t){e.classList?e.classList.contains(t):new RegExp("(^| )"+t+"( |$)","gi").test(e.className)}function f(){var e=void 0!==window.pageXOffset,t="CSS1Compat"===(document.compatMode||""),n=e?window.pageXOffset:t?document.documentElement.scrollLeft:document.body.scrollLeft,r=e?window.pageYOffset:t?document.documentElement.scrollTop:document.body.scrollTop;return{x:n,y:r}}function d(e){return function(t){return e+t}}function h(e,t){return 100/(t-e)}function m(e,t){return 100*t/(e[1]-e[0])}function v(e,t){return m(e,e[0]<0?t+Math.abs(e[0]):t-e[0])}function g(e,t){return t*(e[1]-e[0])/100+e[0]}function y(e,t){for(var n=1;e>=t[n];)n+=1;return n}function b(e,t,n){if(n>=e.slice(-1)[0])return 100;var r,i,o,a,s=y(n,e);return r=e[s-1],i=e[s],o=t[s-1],a=t[s],o+v([r,i],n)/h(o,a)}function x(e,t,n){if(n>=100)return e.slice(-1)[0];var r,i,o,a,s=y(n,t);return r=e[s-1],i=e[s],o=t[s-1],a=t[s],g([r,i],(n-o)*h(o,a))}function w(e,n,r,i){if(100===i)return i;var o,a,s=y(i,e);return r?(o=e[s-1],a=e[s],i-o>(a-o)/2?a:o):n[s-1]?e[s-1]+t(i-e[s-1],n[s-1]):i}function E(e,t,n){var i;if("number"==typeof t&&(t=[t]),"[object Array]"!==Object.prototype.toString.call(t))throw new Error("noUiSlider: 'range' contains invalid value.");if(i="min"===e?0:"max"===e?100:parseFloat(e),!r(i)||!r(t[0]))throw new Error("noUiSlider: 'range' value isn't numeric.");n.xPct.push(i),n.xVal.push(t[0]),i?n.xSteps.push(isNaN(t[1])?!1:t[1]):isNaN(t[1])||(n.xSteps[0]=t[1])}function _(e,t,n){return t?void(n.xSteps[e]=m([n.xVal[e],n.xVal[e+1]],t)/h(n.xPct[e],n.xPct[e+1])):!0}function C(e,t,n,r){this.xPct=[],this.xVal=[],this.xSteps=[r||!1],this.xNumSteps=[!1],this.snap=t,this.direction=n;var i,o=[];for(i in e)e.hasOwnProperty(i)&&o.push([e[i],i]);for(o.sort(o.length&&"object"==typeof o[0][0]?function(e,t){return e[0][0]-t[0][0]}:function(e,t){return e[0]-t[0]}),i=0;i<o.length;i++)E(o[i][1],o[i][0],this);for(this.xNumSteps=this.xSteps.slice(0),i=0;i<this.xNumSteps.length;i++)_(i,this.xNumSteps[i],this)}function N(e,t){if(!r(t))throw new Error("noUiSlider: 'step' is not numeric.");e.singleStep=t}function $(e,t){if("object"!=typeof t||Array.isArray(t))throw new Error("noUiSlider: 'range' is not an object.");if(void 0===t.min||void 0===t.max)throw new Error("noUiSlider: Missing 'min' or 'max' in 'range'.");e.spectrum=new C(t,e.snap,e.dir,e.singleStep)}function O(e,t){if(t=s(t),!Array.isArray(t)||!t.length||t.length>2)throw new Error("noUiSlider: 'start' option is incorrect.");e.handles=t.length,e.start=t}function T(e,t){if(e.snap=t,"boolean"!=typeof t)throw new Error("noUiSlider: 'snap' option must be a boolean.")}function P(e,t){if(e.animate=t,"boolean"!=typeof t)throw new Error("noUiSlider: 'animate' option must be a boolean.")}function S(e,t){if("lower"===t&&1===e.handles)e.connect=1;else if("upper"===t&&1===e.handles)e.connect=2;else if(t===!0&&2===e.handles)e.connect=3;else{if(t!==!1)throw new Error("noUiSlider: 'connect' option doesn't match handle count.");e.connect=0}}function D(e,t){switch(t){case"horizontal":e.ort=0;break;case"vertical":e.ort=1;break;default:throw new Error("noUiSlider: 'orientation' option is invalid.")}}function R(e,t){if(!r(t))throw new Error("noUiSlider: 'margin' option must be numeric.");if(e.margin=e.spectrum.getMargin(t),!e.margin)throw new Error("noUiSlider: 'margin' option is only supported on linear sliders.")}function k(e,t){if(!r(t))throw new Error("noUiSlider: 'limit' option must be numeric.");if(e.limit=e.spectrum.getMargin(t),!e.limit)throw new Error("noUiSlider: 'limit' option is only supported on linear sliders.")}function A(e,t){switch(t){case"ltr":e.dir=0;break;case"rtl":e.dir=1,e.connect=[0,2,1,3][e.connect];break;default:throw new Error("noUiSlider: 'direction' option was not recognized.")}}function j(e,t){if("string"!=typeof t)throw new Error("noUiSlider: 'behaviour' must be a string containing options.");var n=t.indexOf("tap")>=0,r=t.indexOf("drag")>=0,i=t.indexOf("fixed")>=0,o=t.indexOf("snap")>=0;if(r&&!e.connect)throw new Error("noUiSlider: 'drag' behaviour must be used with 'connect': true.");e.events={tap:n||o,drag:r,fixed:i,snap:o}}function I(e,t){if(t===!0&&(e.tooltips=!0),t&&t.format){if("function"!=typeof t.format)throw new Error("noUiSlider: 'tooltips.format' must be an object.");e.tooltips={format:t.format}}}function M(e,t){if(e.format=t,"function"==typeof t.to&&"function"==typeof t.from)return!0;throw new Error("noUiSlider: 'format' requires 'to' and 'from' methods.")}function F(e,t){if(void 0!==t&&"string"!=typeof t)throw new Error("noUiSlider: 'cssPrefix' must be a string.");e.cssPrefix=t}function L(e){var t,n={margin:0,limit:0,animate:!0,format:B};t={step:{r:!1,t:N},start:{r:!0,t:O},connect:{r:!0,t:S},direction:{r:!0,t:A},snap:{r:!1,t:T},animate:{r:!1,t:P},range:{r:!0,t:$},orientation:{r:!1,t:D},margin:{r:!1,t:R},limit:{r:!1,t:k},behaviour:{r:!0,t:j},format:{r:!1,t:M},tooltips:{r:!1,t:I},cssPrefix:{r:!1,t:F}};var r={connect:!1,direction:"ltr",behaviour:"tap",orientation:"horizontal"};return Object.keys(r).forEach(function(t){void 0===e[t]&&(e[t]=r[t])}),Object.keys(t).forEach(function(r){var i=t[r];if(void 0===e[r]){if(i.r)throw new Error("noUiSlider: '"+r+"' is required.");return!0}i.t(n,e[r])}),n.pips=e.pips,n.style=n.ort?"top":"left",n}function V(t,r){function i(e,t,n){var r=e+t[0],i=e+t[1];return n?(0>r&&(i+=Math.abs(r)),i>100&&(r-=i-100),[a(r),a(i)]):[r,i]}function h(e,t){e.preventDefault();var n,r,i=0===e.type.indexOf("touch"),o=0===e.type.indexOf("mouse"),a=0===e.type.indexOf("pointer"),s=e;return 0===e.type.indexOf("MSPointer")&&(a=!0),i&&(n=e.changedTouches[0].pageX,r=e.changedTouches[0].pageY),t=t||f(),(o||a)&&(n=e.clientX+t.x,r=e.clientY+t.y),s.pageOffset=t,s.points=[n,r],s.cursor=o||a,s}function m(e,t){var n=document.createElement("div"),r=document.createElement("div"),i=["-lower","-upper"];return e&&i.reverse(),c(r,ee[3]),c(r,ee[3]+i[t]),c(n,ee[2]),n.appendChild(r),n}function v(e,t,n){switch(e){case 1:c(t,ee[7]),c(n[0],ee[6]);break;case 3:c(n[1],ee[6]);case 2:c(n[0],ee[7]);case 0:c(t,ee[6])}}function g(e,t,n){var r,i=[];for(r=0;e>r;r+=1)i.push(n.appendChild(m(t,r)));return i}function y(e,t,n){c(n,ee[0]),c(n,ee[8+e]),c(n,ee[4+t]);var r=document.createElement("div");return c(r,ee[1]),n.appendChild(r),r}function b(e){return e}function x(e){var t=document.createElement("div");return t.className=ee[18],e.firstChild.appendChild(t)}function w(e){var t=e.format?e.format:b,n=Q.map(x);B("update",function(e,r,i){n[r].innerHTML=t(e[r],i[r])})}function E(e,t,n){if("range"===e||"steps"===e)return X.xVal;if("count"===e){var r,i=100/(t-1),o=0;for(t=[];(r=o++*i)<=100;)t.push(r);e="positions"}return"positions"===e?t.map(function(e){return X.fromStepping(n?X.getStep(e):e)}):"values"===e?n?t.map(function(e){return X.fromStepping(X.getStep(X.toStepping(e)))}):t:void 0}function _(t,n,r){function i(e,t){return(e+t).toFixed(7)/1}var o=X.direction,a={},s=X.xVal[0],u=X.xVal[X.xVal.length-1],c=!1,l=!1,p=0;return X.direction=0,r=e(r.slice().sort(function(e,t){return e-t})),r[0]!==s&&(r.unshift(s),c=!0),r[r.length-1]!==u&&(r.push(u),l=!0),r.forEach(function(e,o){var s,u,f,d,h,m,v,g,y,b,x=e,w=r[o+1];if("steps"===n&&(s=X.xNumSteps[o]),s||(s=w-x),x!==!1&&void 0!==w)for(u=x;w>=u;u=i(u,s)){for(d=X.toStepping(u),h=d-p,g=h/t,y=Math.round(g),b=h/y,f=1;y>=f;f+=1)m=p+f*b,a[m.toFixed(5)]=["x",0];v=r.indexOf(u)>-1?1:"steps"===n?2:0,!o&&c&&(v=0),u===w&&l||(a[d.toFixed(5)]=[u,v]),p=d}}),X.direction=o,a}function C(e,t,n){function i(e){return["-normal","-large","-sub"][e]}function o(e,t,n){return'class="'+t+" "+t+"-"+s+" "+t+i(n[1])+'" style="'+r.style+": "+e+'%"'}function a(e,r){X.direction&&(e=100-e),r[1]=r[1]&&t?t(r[0],r[1]):r[1],u.innerHTML+="<div "+o(e,ee[21],r)+"></div>",r[1]&&(u.innerHTML+="<div "+o(e,ee[22],r)+">"+n.to(r[0])+"</div>")}var s=["horizontal","vertical"][r.ort],u=document.createElement("div");return c(u,ee[20]),c(u,ee[20]+"-"+s),Object.keys(e).forEach(function(t){a(t,e[t])}),u}function N(e){var t=e.mode,n=e.density||1,r=e.filter||!1,i=e.values||!1,o=e.stepped||!1,a=E(t,i,o),s=_(n,t,a),u=e.format||{to:Math.round};return Y.appendChild(C(s,r,u))}function $(){return K["offset"+["Width","Height"][r.ort]]}function O(e,t){
22
+ void 0!==t&&1!==r.handles&&(t=Math.abs(t-r.dir)),Object.keys(Z).forEach(function(n){var r=n.split(".")[0];e===r&&Z[n].forEach(function(e){e(s(F()),t,T(Array.prototype.slice.call(J)))})})}function T(e){return 1===e.length?e[0]:r.dir?e.reverse():e}function P(e,t,n,i){var o=function(t){return Y.hasAttribute("disabled")?!1:p(Y,ee[14])?!1:(t=h(t,i.pageOffset),e===H.start&&void 0!==t.buttons&&t.buttons>1?!1:(t.calcPoint=t.points[r.ort],void n(t,i)))},a=[];return e.split(" ").forEach(function(e){t.addEventListener(e,o,!1),a.push([e,o])}),a}function S(e,t){if(0===e.buttons&&0===e.which&&0!==t.buttonsProperty)return D(e,t);var n,r,o=t.handles||Q,a=!1,s=100*(e.calcPoint-t.start)/t.baseSize,u=o[0]===Q[0]?0:1;if(n=i(s,t.positions,o.length>1),a=j(o[0],n[u],1===o.length),o.length>1){if(a=j(o[1],n[u?0:1],!1)||a)for(r=0;r<t.handles.length;r++)O("slide",r)}else a&&O("slide",u)}function D(e,t){var n=K.querySelector("."+ee[15]),r=t.handles[0]===Q[0]?0:1;null!==n&&l(n,ee[15]),e.cursor&&(document.body.style.cursor="",document.body.removeEventListener("selectstart",document.body.noUiListener));var i=document.documentElement;i.noUiListeners.forEach(function(e){i.removeEventListener(e[0],e[1])}),l(Y,ee[12]),O("set",r),O("change",r)}function R(e,t){var n=document.documentElement;if(1===t.handles.length&&(c(t.handles[0].children[0],ee[15]),t.handles[0].hasAttribute("disabled")))return!1;e.stopPropagation();var r=P(H.move,n,S,{start:e.calcPoint,baseSize:$(),pageOffset:e.pageOffset,handles:t.handles,buttonsProperty:e.buttons,positions:[G[0],G[Q.length-1]]}),i=P(H.end,n,D,{handles:t.handles});if(n.noUiListeners=r.concat(i),e.cursor){document.body.style.cursor=getComputedStyle(e.target).cursor,Q.length>1&&c(Y,ee[12]);var o=function(){return!1};document.body.noUiListener=o,document.body.addEventListener("selectstart",o,!1)}}function k(e){var t,i,a=e.calcPoint,s=0;return e.stopPropagation(),Q.forEach(function(e){s+=n(e)[r.style]}),t=s/2>a||1===Q.length?0:1,a-=n(K)[r.style],i=100*a/$(),r.events.snap||o(Y,ee[14],300),Q[t].hasAttribute("disabled")?!1:(j(Q[t],i),O("slide",t),O("set",t),O("change",t),void(r.events.snap&&R(e,{handles:[Q[t]]})))}function A(e){var t,n;if(!e.fixed)for(t=0;t<Q.length;t+=1)P(H.start,Q[t].children[0],R,{handles:[Q[t]]});e.tap&&P(H.start,K,k,{handles:Q}),e.drag&&(n=[K.querySelector("."+ee[7])],c(n[0],ee[10]),e.fixed&&n.push(Q[n[0]===Q[0]?1:0].children[0]),n.forEach(function(e){P(H.start,e,R,{handles:Q})}))}function j(e,t,n){var i=e!==Q[0]?1:0,o=G[0]+r.margin,s=G[1]-r.margin,u=G[0]+r.limit,p=G[1]-r.limit,f=X.fromStepping(t);return Q.length>1&&(t=i?Math.max(t,o):Math.min(t,s)),n!==!1&&r.limit&&Q.length>1&&(t=i?Math.min(t,u):Math.max(t,p)),t=X.getStep(t),t=a(parseFloat(t.toFixed(7))),t===G[i]&&f===J[i]?!1:(window.requestAnimationFrame?window.requestAnimationFrame(function(){e.style[r.style]=t+"%"}):e.style[r.style]=t+"%",e.previousSibling||(l(e,ee[17]),t>50&&c(e,ee[17])),G[i]=t,J[i]=X.fromStepping(t),O("update",i),!0)}function I(e,t){var n,i,o;for(r.limit&&(e+=1),n=0;e>n;n+=1)i=n%2,o=t[i],null!==o&&o!==!1&&("number"==typeof o&&(o=String(o)),o=r.format.from(o),(o===!1||isNaN(o)||j(Q[i],X.toStepping(o),n===3-r.dir)===!1)&&O("update",i))}function M(e){var t,n,i=s(e);for(r.dir&&r.handles>1&&i.reverse(),r.animate&&-1!==G[0]&&o(Y,ee[14],300),t=Q.length>1?3:1,1===i.length&&(t=1),I(t,i),n=0;n<Q.length;n++)O("set",n)}function F(){var e,t=[];for(e=0;e<r.handles;e+=1)t[e]=r.format.to(J[e]);return T(t)}function V(){ee.forEach(function(e){e&&l(Y,e)}),Y.innerHTML="",delete Y.noUiSlider}function U(){var e=G.map(function(e,t){var n=X.getApplicableStep(e),r=u(String(n[2])),i=J[t],o=100===e?null:n[2],a=Number((i-n[2]).toFixed(r)),s=0===e?null:a>=n[1]?n[2]:n[0]||!1;return[s,o]});return T(e)}function B(e,t){Z[e]=Z[e]||[],Z[e].push(t),"update"===e.split(".")[0]&&Q.forEach(function(e,t){O("update",t)})}function W(e){var t=e.split(".")[0],n=e.substring(t.length);Object.keys(Z).forEach(function(e){var r=e.split(".")[0],i=e.substring(r.length);t&&t!==r||n&&n!==i||delete Z[e]})}function z(e){var t=L({start:[0,0],margin:e.margin,limit:e.limit,step:e.step,range:e.range,animate:e.animate});r.margin=t.margin,r.limit=t.limit,r.step=t.step,r.range=t.range,r.animate=t.animate,X=t.spectrum}var K,Q,Y=t,G=[-1,-1],X=r.spectrum,J=[],Z={},ee=["target","base","origin","handle","horizontal","vertical","background","connect","ltr","rtl","draggable","","state-drag","","state-tap","active","","stacking","tooltip","","pips","marker","value"].map(d(r.cssPrefix||q));if(Y.noUiSlider)throw new Error("Slider was already initialized.");return K=y(r.dir,r.ort,Y),Q=g(r.handles,r.dir,K),v(r.connect,Y,Q),A(r.events),r.pips&&N(r.pips),r.tooltips&&w(r.tooltips),{destroy:V,steps:U,on:B,off:W,get:F,set:M,updateOptions:z}}function U(e,t){if(!e.nodeName)throw new Error("noUiSlider.create requires a single element.");var n=L(t,e),r=V(e,n);return r.set(n.start),e.noUiSlider=r,r}var H=window.navigator.pointerEnabled?{start:"pointerdown",move:"pointermove",end:"pointerup"}:window.navigator.msPointerEnabled?{start:"MSPointerDown",move:"MSPointerMove",end:"MSPointerUp"}:{start:"mousedown touchstart",move:"mousemove touchmove",end:"mouseup touchend"},q="noUi-";C.prototype.getMargin=function(e){return 2===this.xPct.length?m(this.xVal,e):!1},C.prototype.toStepping=function(e){return e=b(this.xVal,this.xPct,e),this.direction&&(e=100-e),e},C.prototype.fromStepping=function(e){return this.direction&&(e=100-e),i(x(this.xVal,this.xPct,e))},C.prototype.getStep=function(e){return this.direction&&(e=100-e),e=w(this.xPct,this.xSteps,this.snap,e),this.direction&&(e=100-e),e},C.prototype.getApplicableStep=function(e){var t=y(e,this.xPct),n=100===e?2:1;return[this.xNumSteps[t-2],this.xVal[t-n],this.xNumSteps[t-n]]},C.prototype.convert=function(e){return this.getStep(this.toStepping(e))};var B={to:function(e){return void 0!==e&&e.toFixed(2)},from:Number};return{create:U}})},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.indices,d=e.cssClasses,h=void 0===d?{}:d,m=e.autoHideContainer,v=void 0===m?!1:m;if(!t||!r)throw new Error(f);var g=u.getContainerNode(t),y=n(563);v===!0&&(y=p(y));var b=s(r,function(e){return{label:e.label,value:e.name}});return{init:function(e){var t=e.helper,n=t.getIndex(),i=-1!==a(r,{name:n});if(!i)throw new Error("[sortBySelector]: Index "+n+" not present in `indices`")},setIndex:function(e,t){e.setIndex(t),e.search()},render:function(e){var t=e.helper,n=e.results,r=t.getIndex(),a=0===n.nbHits,s=this.setIndex.bind(this,t),u={root:l(c(null),h.root),item:l(c("item"),h.item)};o.render(i.createElement(y,{cssClasses:u,currentValue:r,options:b,setValue:s,shouldAutoHideContainer:a}),g)}}}var i=n(313),o=n(469),a=n(598),s=n(545),u=n(470),c=u.bemHelper("ais-sort-by-selector"),l=n(497),p=n(498),f="Usage:\nsortBySelector({\n container,\n indices,\n [cssClasses.{root,item}={}],\n [autoHideContainer=false]\n})";e.exports=r},function(e,t,n){"use strict";var r=n(599),i=r();e.exports=i},function(e,t,n){"use strict";function r(e){return function(t,n,r){return t&&t.length?(n=i(n,r,3),o(t,n,e)):-1}}var i=n(474),o=n(493);e.exports=r},function(e,t,n){"use strict";function r(e){var t=e.container,r=e.attributeName,h=e.max,m=void 0===h?5:h,v=e.cssClasses,g=void 0===v?{}:v,y=e.labels,b=void 0===y?f:y,x=e.templates,w=void 0===x?p:x,E=e.transformData,_=e.autoHideContainer,C=void 0===_?!0:_,N=a.getContainerNode(t),$=l(n(555));if(C===!0&&($=c($)),!t||!r)throw new Error(d);return{getConfiguration:function(){return{disjunctiveFacets:[r]}},render:function(e){for(var t=e.helper,n=e.results,c=e.templatesConfig,l=e.state,f=e.createURL,d=a.prepareTemplateProps({transformData:E,defaultTemplates:p,templatesConfig:c,templates:w}),h=[],v={},y=m-1;y>=0;--y)v[y]=0;n.getFacetValues(r).forEach(function(e){var t=Math.round(e.name);if(t&&!(t>m-1))for(var n=t;n>=1;--n)v[n]+=e.count});for(var x=this._getRefinedStar(t),_=m-1;_>=1;--_){var C=v[_];if(!x||_===x||0!==C){for(var O=[],T=1;m>=T;++T)O.push(_>=T);h.push({stars:O,name:""+_,count:C,isRefined:x===_,labels:b})}}var P={root:u(s(null),g.root),header:u(s("header"),g.header),body:u(s("body"),g.body),footer:u(s("footer"),g.footer),list:u(s("list"),g.list),item:u(s("item"),g.item),link:u(s("link"),g.link),disabledLink:u(s("link","disabled"),g.disabledLink),count:u(s("count"),g.count),star:u(s("star"),g.star),emptyStar:u(s("star","empty"),g.emptyStar),active:u(s("item","active"),g.active)};o.render(i.createElement($,{createURL:function(e){return f(l.toggleRefinement(r,e))},cssClasses:P,facetValues:h,shouldAutoHideContainer:0===n.nbHits,templateProps:d,toggleRefinement:this._toggleRefinement.bind(this,t)}),N)},_toggleRefinement:function(e,t){var n=this._getRefinedStar(e)===+t;if(e.clearRefinements(r),!n)for(var i=+t;m>=i;++i)e.addDisjunctiveFacetRefinement(r,i);e.search()},_getRefinedStar:function(e){var t=void 0,n=e.getRefinements(r);return n.forEach(function(e){(!t||+e.value<t)&&(t=+e.value)}),t}}}var i=n(313),o=n(469),a=n(470),s=a.bemHelper("ais-star-rating"),u=n(497),c=n(498),l=n(499),p=n(601),f=n(602),d="Usage:\nstarRating({\n container,\n attributeName,\n [ max=5 ],\n [ cssClasses.{root,header,body,footer,list,item,active,link,disabledLink,star,emptyStar,count} ],\n [ templates.{header,item,footer} ],\n [ labels.{andUp} ],\n [ transformData ],\n [ autoHideContainer=true ]\n})";e.exports=r},function(e){"use strict";e.exports={header:"",item:'<a class="{{cssClasses.link}}{{^count}} {{cssClasses.disabledLink}}{{/count}}" {{#count}}href="{{href}}"{{/count}}>\n {{#stars}}<span class="{{#.}}{{cssClasses.star}}{{/.}}{{^.}}{{cssClasses.emptyStar}}{{/.}}"></span>{{/stars}}\n {{labels.andUp}}\n {{#count}}<span class="{{cssClasses.count}}">{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}</span>{{/count}}\n</a>',footer:""}},function(e){"use strict";e.exports={andUp:"& Up"}},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.cssClasses,d=void 0===r?{}:r,h=e.autoHideContainer,m=void 0===h?!0:h,v=e.templates,g=void 0===v?p:v,y=e.transformData;if(!t)throw new Error(f);var b=a.getContainerNode(t),x=u(n(605));if(m===!0&&(x=s(x)),!b)throw new Error(f);return{render:function(e){var t=e.results,n=e.templatesConfig,r=0===t.nbHits,s=a.prepareTemplateProps({transformData:y,defaultTemplates:p,templatesConfig:n,templates:g}),u={body:l(c("body"),d.body),footer:l(c("footer"),d.footer),header:l(c("header"),d.header),root:l(c(null),d.root),time:l(c("time"),d.time)};o.render(i.createElement(x,{cssClasses:u,hitsPerPage:t.hitsPerPage,nbHits:t.nbHits,nbPages:t.nbPages,page:t.page,processingTimeMS:t.processingTimeMS,query:t.query,shouldAutoHideContainer:r,templateProps:s}),b)}}}var i=n(313),o=n(469),a=n(470),s=n(498),u=n(499),c=n(470).bemHelper("ais-stats"),l=n(497),p=n(604),f="Usage:\nstats({\n container,\n [ template ],\n [ transformData ],\n [ autoHideContainer]\n})";e.exports=r},function(e){"use strict";e.exports={header:"",body:'{{#hasNoResults}}No results{{/hasNoResults}}\n {{#hasOneResult}}1 result{{/hasOneResult}}\n {{#hasManyResults}}{{#helpers.formatNumber}}{{nbHits}}{{/helpers.formatNumber}} results{{/hasManyResults}}\n <span class="{{cssClasses.time}}">found in {{processingTimeMS}}ms</span>',footer:""}},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},u=n(313),c=n(500),l=function(e){function t(){r(this,t),s(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),a(t,[{key:"render",value:function(){var e={hasManyResults:this.props.nbHits>1,hasNoResults:0===this.props.nbHits,hasOneResult:1===this.props.nbHits,hitsPerPage:this.props.hitsPerPage,nbHits:this.props.nbHits,nbPages:this.props.nbPages,page:this.props.page,processingTimeMS:this.props.processingTimeMS,query:this.props.query,cssClasses:this.props.cssClasses};return u.createElement(c,o({data:e,templateKey:"body"},this.props.templateProps))}}]),t}(u.Component);l.propTypes={cssClasses:u.PropTypes.shape({time:u.PropTypes.string}),hitsPerPage:u.PropTypes.number,nbHits:u.PropTypes.number,nbPages:u.PropTypes.number,page:u.PropTypes.number,processingTimeMS:u.PropTypes.number,query:u.PropTypes.string,templateProps:u.PropTypes.object.isRequired},e.exports=l},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.attributeName,h=e.label,m=e.values,v=void 0===m?{on:!0,off:void 0}:m,g=e.templates,y=void 0===g?f:g,b=e.cssClasses,x=void 0===b?{}:b,w=e.transformData,E=e.autoHideContainer,_=void 0===E?!0:E,C=s.getContainerNode(t),N=p(n(555));if(_===!0&&(N=l(N)),!t||!r||!h)throw new Error(d);var $=void 0!==v.off;return{getConfiguration:function(){return{facets:[r]}},init:function(e){var t=e.state,n=e.helper;if(void 0!==v.off){var i=t.isFacetRefined(r,v.on);i||n.addFacetRefinement(r,v.off)}},toggleRefinement:function(e,t){var n=v.on,i=v.off;t?(e.removeFacetRefinement(r,n),$&&e.addFacetRefinement(r,i)):($&&e.removeFacetRefinement(r,i),e.addFacetRefinement(r,n)),e.search()},render:function(e){var t=e.helper,n=e.results,l=e.templatesConfig,p=e.state,d=e.createURL,m=t.state.isFacetRefined(r,v.on),g=i(n.getFacetValues(r),{name:m.toString()}),b=0===n.nbHits,E=s.prepareTemplateProps({transformData:w,defaultTemplates:f,templatesConfig:l,templates:y}),_={name:h,isRefined:m,count:g&&g.count||null},$={root:c(u(null),x.root),header:c(u("header"),x.header),body:c(u("body"),x.body),footer:c(u("footer"),x.footer),list:c(u("list"),x.list),item:c(u("item"),x.item),active:c(u("item","active"),x.active),label:c(u("label"),x.label),checkbox:c(u("checkbox"),x.checkbox),count:c(u("count"),x.count)},O=this.toggleRefinement.bind(this,t,m);a.render(o.createElement(N,{createURL:function(){return d(p.toggleRefinement(r,_.isRefined))},cssClasses:$,facetValues:[_],shouldAutoHideContainer:b,templateProps:E,toggleRefinement:O}),C)}}}var i=n(490),o=n(313),a=n(469),s=n(470),u=s.bemHelper("ais-toggle"),c=n(497),l=n(498),p=n(499),f=n(607),d="Usage:\ntoggle({\n container,\n attributeName,\n label,\n [ userValues={on: true, off: undefined} ],\n [ cssClasses.{root,header,body,footer,list,item,active,label,checkbox,count} ],\n [ templates.{header,item,footer} ],\n [ transformData ],\n [ autoHideContainer=true ]\n})";e.exports=r},function(e){"use strict";e.exports={header:"",item:'<label class="{{cssClasses.label}}">\n <input type="checkbox" class="{{cssClasses.checkbox}}" value="{{name}}" {{#isRefined}}checked{{/isRefined}} />{{name}}\n <span class="{{cssClasses.count}}">{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}</span>\n</label>',footer:""}},function(e,t,n){"use strict";e.exports=n(609)},function(e,t,n){"use strict";var r=n(610),i=n(1);r.element=i;var o=n(611);o.isArray=i.isArray,o.isFunction=i.isFunction,o.isObject=i.isPlainObject,o.bind=i.proxy,o.each=function(e,t){function n(e,n){return t(n,e)}i.each(e,n)},o.map=i.map,o.mixin=i.extend;var a,s,u,c=n(612),l=n(613);a=i.fn.autocomplete,s="aaAutocomplete",u={initialize:function(e,t){function n(){var n,r=i(this),o=new l({el:r});n=new c({input:r,eventBus:o,dropdownMenuContainer:e.dropdownMenuContainer,hint:void 0===e.hint?!0:!!e.hint,minLength:e.minLength,autoselect:e.autoselect,openOnFocus:e.openOnFocus,templates:e.templates,debug:e.debug,datasets:t}),r.data(s,n)}return t=o.isArray(t)?t:[].slice.call(arguments,1),e=e||{},this.each(n)},open:function(){function e(){var e,t=i(this);(e=t.data(s))&&e.open()}return this.each(e)},close:function(){function e(){var e,t=i(this);(e=t.data(s))&&e.close()}return this.each(e)},val:function(e){function t(){var t,n=i(this);(t=n.data(s))&&t.setVal(e)}function n(e){var t,n;return(t=e.data(s))&&(n=t.getVal()),n}return arguments.length?this.each(t):n(this.first())},destroy:function(){function e(){var e,t=i(this);(e=t.data(s))&&(e.destroy(),t.removeData(s))}return this.each(e)}},i.fn.autocomplete=function(e){var t;return u[e]&&"initialize"!==e?(t=this.filter(function(){return!!i(this).data(s)}),u[e].apply(t,[].slice.call(arguments,1))):u.initialize.apply(this,arguments)},i.fn.autocomplete.noConflict=function(){return i.fn.autocomplete=a,this},i.fn.autocomplete.sources=c.sources,e.exports=i.fn.autocomplete},function(e){"use strict";e.exports={element:null}},function(e,t,n){"use strict";var r=n(610);e.exports={isArray:null,isFunction:null,isObject:null,bind:null,each:null,map:null,mixin:null,isMsie:function(){return/(msie|trident)/i.test(navigator.userAgent)?navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2]:!1},escapeRegExChars:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isNumber:function(e){return"number"==typeof e},toStr:function(e){return void 0===e||null===e?"":e+""},cloneDeep:function(e){var t=this.mixin({},e),n=this;return this.each(t,function(e,r){e&&(n.isArray(e)?t[r]=[].concat(e):n.isObject(e)&&(t[r]=n.cloneDeep(e)))}),t},error:function(e){throw new Error(e)},every:function(e,t){var n=!0;return e?(this.each(e,function(r,i){return n=t.call(null,r,i,e),n?void 0:!1}),!!n):n},getUniqueId:function(){var e=0;return function(){return e++}}(),templatify:function(e){if(this.isFunction(e))return e;var t=r.element(e);return"SCRIPT"===t.prop("tagName")?function(){return t.text()}:function(){return String(e)}},defer:function(e){setTimeout(e,0)},noop:function(){}}},function(e,t,n){"use strict";function r(e){var t,n,o;e=e||{},e.input||u.error("missing input"),this.isActivated=!1,this.debug=!!e.debug,this.autoselect=!!e.autoselect,this.openOnFocus=!!e.openOnFocus,this.minLength=u.isNumber(e.minLength)?e.minLength:1,this.$node=i(e),t=this.$node.find(".aa-dropdown-menu"),n=this.$node.find(".aa-input"),o=this.$node.find(".aa-hint"),e.dropdownMenuContainer&&c.element(e.dropdownMenuContainer).css("position","relative").append(t.css("top","0")),n.on("blur.aa",function(e){var r=document.activeElement;u.isMsie()&&(t.is(r)||t.has(r).length>0)&&(e.preventDefault(),e.stopImmediatePropagation(),u.defer(function(){n.focus()}))}),t.on("mousedown.aa",function(e){e.preventDefault()}),this.eventBus=e.eventBus||new l({el:n}),this.dropdown=new r.Dropdown({menu:t,datasets:e.datasets,templates:e.templates}).onSync("suggestionClicked",this._onSuggestionClicked,this).onSync("cursorMoved",this._onCursorMoved,this).onSync("cursorRemoved",this._onCursorRemoved,this).onSync("opened",this._onOpened,this).onSync("closed",this._onClosed,this).onAsync("datasetRendered",this._onDatasetRendered,this),this.input=new r.Input({input:n,hint:o}).onSync("focused",this._onFocused,this).onSync("blurred",this._onBlurred,this).onSync("enterKeyed",this._onEnterKeyed,this).onSync("tabKeyed",this._onTabKeyed,this).onSync("escKeyed",this._onEscKeyed,this).onSync("upKeyed",this._onUpKeyed,this).onSync("downKeyed",this._onDownKeyed,this).onSync("leftKeyed",this._onLeftKeyed,this).onSync("rightKeyed",this._onRightKeyed,this).onSync("queryChanged",this._onQueryChanged,this).onSync("whitespaceChanged",this._onWhitespaceChanged,this),this._setLanguageDirection()}function i(e){var t,n,r,i;t=c.element(e.input),n=c.element(d.wrapper).css(h.wrapper),"block"===t.css("display")&&"table"===t.parent().css("display")&&n.css("display","table-cell"),r=c.element(d.dropdown).css(h.dropdown),e.templates&&e.templates.dropdownMenu&&r.html(u.templatify(e.templates.dropdownMenu)()),i=t.clone().css(h.hint).css(o(t)),i.val("").addClass("aa-hint").removeAttr("id name placeholder required").prop("readonly",!0).attr({autocomplete:"off",spellcheck:"false",tabindex:-1}),i.removeData&&i.removeData(),t.data(s,{dir:t.attr("dir"),autocomplete:t.attr("autocomplete"),spellcheck:t.attr("spellcheck"),style:t.attr("style")}),t.addClass("aa-input").attr({autocomplete:"off",spellcheck:!1}).css(e.hint?h.input:h.inputWithNoHint);try{t.attr("dir")||t.attr("dir","auto")}catch(a){}return t.wrap(n).parent().prepend(e.hint?i:null).append(r)}function o(e){return{backgroundAttachment:e.css("background-attachment"),backgroundClip:e.css("background-clip"),backgroundColor:e.css("background-color"),backgroundImage:e.css("background-image"),backgroundOrigin:e.css("background-origin"),backgroundPosition:e.css("background-position"),backgroundRepeat:e.css("background-repeat"),backgroundSize:e.css("background-size")}}function a(e){var t=e.find(".aa-input");u.each(t.data(s),function(e,n){void 0===e?t.removeAttr(n):t.attr(n,e)}),t.detach().removeClass("aa-input").insertAfter(e),t.removeData&&t.removeData(s),e.remove()}var s="aaAttrs",u=n(611),c=n(610),l=n(613),p=n(614),f=n(617),d=n(619),h=n(620);u.mixin(r.prototype,{_onSuggestionClicked:function(e,t){var n;(n=this.dropdown.getDatumForSuggestion(t))&&this._select(n)},_onCursorMoved:function(){var e=this.dropdown.getDatumForCursor();this.input.setInputValue(e.value,!0),this.eventBus.trigger("cursorchanged",e.raw,e.datasetName)},_onCursorRemoved:function(){this.input.resetInputValue(),this._updateHint()},_onDatasetRendered:function(){this._updateHint(),this.eventBus.trigger("updated")},_onOpened:function(){this._updateHint(),this.eventBus.trigger("opened")},_onClosed:function(){this.input.clearHint(),this.eventBus.trigger("closed")},_onFocused:function(){if(this.isActivated=!0,this.openOnFocus){var e=this.input.getQuery();e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty(),this.dropdown.open()}},_onBlurred:function(){this.debug||(this.isActivated=!1,this.dropdown.empty(),this.dropdown.close())},_onEnterKeyed:function(e,t){var n,r;n=this.dropdown.getDatumForCursor(),r=this.dropdown.getDatumForTopSuggestion(),n?(this._select(n),t.preventDefault()):this.autoselect&&r&&(this._select(r),t.preventDefault())},_onTabKeyed:function(e,t){var n;(n=this.dropdown.getDatumForCursor())?(this._select(n),t.preventDefault()):this._autocomplete(!0)},_onEscKeyed:function(){this.dropdown.close(),this.input.resetInputValue()},_onUpKeyed:function(){var e=this.input.getQuery();this.dropdown.isEmpty&&e.length>=this.minLength?this.dropdown.update(e):this.dropdown.moveCursorUp(),this.dropdown.open()},_onDownKeyed:function(){var e=this.input.getQuery();this.dropdown.isEmpty&&e.length>=this.minLength?this.dropdown.update(e):this.dropdown.moveCursorDown(),this.dropdown.open()},_onLeftKeyed:function(){"rtl"===this.dir&&this._autocomplete()},_onRightKeyed:function(){"ltr"===this.dir&&this._autocomplete()},_onQueryChanged:function(e,t){this.input.clearHintIfInvalid(),t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty(),this.dropdown.open(),this._setLanguageDirection()},_onWhitespaceChanged:function(){this._updateHint(),this.dropdown.open()},_setLanguageDirection:function(){var e=this.input.getLanguageDirection();this.dir!==e&&(this.dir=e,this.$node.css("direction",e),this.dropdown.setLanguageDirection(e))},_updateHint:function(){var e,t,n,r,i,o;e=this.dropdown.getDatumForTopSuggestion(),e&&this.dropdown.isVisible()&&!this.input.hasOverflow()?(t=this.input.getInputValue(),n=p.normalizeQuery(t),r=u.escapeRegExChars(n),i=new RegExp("^(?:"+r+")(.+$)","i"),o=i.exec(e.value),o?this.input.setHint(t+o[1]):this.input.clearHint()):this.input.clearHint()},_autocomplete:function(e){var t,n,r,i;t=this.input.getHint(),n=this.input.getQuery(),r=e||this.input.isCursorAtEnd(),t&&n!==t&&r&&(i=this.dropdown.getDatumForTopSuggestion(),i&&this.input.setInputValue(i.value),this.eventBus.trigger("autocompleted",i.raw,i.datasetName))},_select:function(e){"undefined"!=typeof e.value&&this.input.setQuery(e.value),this.input.setInputValue(e.value,!0),this._setLanguageDirection(),this.eventBus.trigger("selected",e.raw,e.datasetName),this.dropdown.close(),u.defer(u.bind(this.dropdown.empty,this.dropdown))},open:function(){if(!this.isActivated){var e=this.input.getInputValue();e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty()}this.dropdown.open()},close:function(){this.dropdown.close()},setVal:function(e){e=u.toStr(e),this.isActivated?this.input.setInputValue(e):(this.input.setQuery(e),this.input.setInputValue(e,!0)),this._setLanguageDirection()},getVal:function(){return this.input.getQuery()},destroy:function(){this.input.destroy(),this.dropdown.destroy(),a(this.$node),this.$node=null}}),r.Dropdown=f,r.Input=p,r.sources=n(621),e.exports=r},function(e,t,n){"use strict";function r(e){e&&e.el||o.error("EventBus initialized without el"),this.$el=a.element(e.el)}var i="autocomplete:",o=n(611),a=n(610);o.mixin(r.prototype,{trigger:function(e){var t=[].slice.call(arguments,1);this.$el.trigger(i+e,t)}}),e.exports=r},function(e,t,n){"use strict";function r(e){var t,n,r,o,a=this;e=e||{},e.input||u.error("input is missing"),t=u.bind(this._onBlur,this),n=u.bind(this._onFocus,this),r=u.bind(this._onKeydown,this),o=u.bind(this._onInput,this),this.$hint=c.element(e.hint),this.$input=c.element(e.input).on("blur.aa",t).on("focus.aa",n).on("keydown.aa",r),0===this.$hint.length&&(this.setHint=this.getHint=this.clearHint=this.clearHintIfInvalid=u.noop),u.isMsie()?this.$input.on("keydown.aa keypress.aa cut.aa paste.aa",function(e){s[e.which||e.keyCode]||u.defer(u.bind(a._onInput,a,e))}):this.$input.on("input.aa",o),this.query=this.$input.val(),this.$overflowHelper=i(this.$input)}function i(e){return c.element('<pre aria-hidden="true"></pre>').css({position:"absolute",visibility:"hidden",whiteSpace:"pre",fontFamily:e.css("font-family"),fontSize:e.css("font-size"),fontStyle:e.css("font-style"),fontVariant:e.css("font-variant"),fontWeight:e.css("font-weight"),wordSpacing:e.css("word-spacing"),letterSpacing:e.css("letter-spacing"),textIndent:e.css("text-indent"),textRendering:e.css("text-rendering"),textTransform:e.css("text-transform")}).insertAfter(e)}function o(e,t){return r.normalizeQuery(e)===r.normalizeQuery(t)}function a(e){return e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}var s;s={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"};var u=n(611),c=n(610),l=n(615);r.normalizeQuery=function(e){return(e||"").replace(/^\s*/g,"").replace(/\s{2,}/g," ")},u.mixin(r.prototype,l,{_onBlur:function(){this.resetInputValue(),this.trigger("blurred")},_onFocus:function(){this.trigger("focused")},_onKeydown:function(e){var t=s[e.which||e.keyCode];this._managePreventDefault(t,e),t&&this._shouldTrigger(t,e)&&this.trigger(t+"Keyed",e)},_onInput:function(){this._checkInputValue()},_managePreventDefault:function(e,t){var n,r,i;switch(e){case"tab":r=this.getHint(),i=this.getInputValue(),n=r&&r!==i&&!a(t);break;case"up":case"down":n=!a(t);break;default:n=!1}n&&t.preventDefault()},_shouldTrigger:function(e,t){var n;switch(e){case"tab":n=!a(t);break;default:n=!0}return n},_checkInputValue:function(){var e,t,n;e=this.getInputValue(),t=o(e,this.query),n=t&&this.query?this.query.length!==e.length:!1,this.query=e,t?n&&this.trigger("whitespaceChanged",this.query):this.trigger("queryChanged",this.query)},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(e){this.query=e},getInputValue:function(){return this.$input.val()},setInputValue:function(e,t){"undefined"==typeof e&&(e=this.query),this.$input.val(e),t?this.clearHint():this._checkInputValue()},resetInputValue:function(){this.setInputValue(this.query,!0)},getHint:function(){return this.$hint.val()},setHint:function(e){this.$hint.val(e)},clearHint:function(){this.setHint("")},clearHintIfInvalid:function(){var e,t,n,r;e=this.getInputValue(),t=this.getHint(),n=e!==t&&0===t.indexOf(e),r=""!==e&&n&&!this.hasOverflow(),r||this.clearHint()},getLanguageDirection:function(){return(this.$input.css("direction")||"ltr").toLowerCase()},hasOverflow:function(){var e=this.$input.width()-2;return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>=e},isCursorAtEnd:function(){var e,t,n;return e=this.$input.val().length,t=this.$input[0].selectionStart,u.isNumber(t)?t===e:document.selection?(n=document.selection.createRange(),n.moveStart("character",-e),e===n.text.length):!0},destroy:function(){this.$hint.off(".aa"),this.$input.off(".aa"),this.$hint=this.$input=this.$overflowHelper=null}}),e.exports=r},function(e,t,n){(function(t){"use strict";function n(e,t,n,r){var i;if(!n)return this;for(t=t.split(l),n=r?c(n,r):n,this._callbacks=this._callbacks||{};i=t.shift();)this._callbacks[i]=this._callbacks[i]||{sync:[],async:[]},this._callbacks[i][e].push(n);return this}function r(e,t,r){return n.call(this,"async",e,t,r)}function i(e,t,r){return n.call(this,"sync",e,t,r)}function o(e){var t;if(!this._callbacks)return this;for(e=e.split(l);t=e.shift();)delete this._callbacks[t];return this}function a(e){var t,n,r,i,o;if(!this._callbacks)return this;for(e=e.split(l),r=[].slice.call(arguments,1);(t=e.shift())&&(n=this._callbacks[t]);)i=s(n.sync,this,[t].concat(r)),o=s(n.async,this,[t].concat(r)),i()&&p(o);return this}function s(e,t,n){function r(){for(var r,i=0,o=e.length;!r&&o>i;i+=1)r=e[i].apply(t,n)===!1;return!r}return r}function u(){var e;return e=window.setImmediate?function(e){t(function(){e()})}:function(e){setTimeout(function(){e()},0)}}function c(e,t){return e.bind?e.bind(t):function(){e.apply(t,[].slice.call(arguments,0))}}var l=/\s+/,p=u();e.exports={onSync:i,onAsync:r,off:o,trigger:a}}).call(t,n(616).setImmediate)},function(e,t,n){(function(e,r){function i(e,t){this._id=e,this._clearFn=t}var o=n(8).nextTick,a=Function.prototype.apply,s=Array.prototype.slice,u={},c=0;t.setTimeout=function(){return new i(a.call(setTimeout,window,arguments),clearTimeout)},t.setInterval=function(){return new i(a.call(setInterval,window,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(window,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},t.setImmediate="function"==typeof e?e:function(e){var n=c++,r=arguments.length<2?!1:s.call(arguments,1);return u[n]=!0,o(function(){u[n]&&(r?e.apply(null,r):e.call(null),t.clearImmediate(n))}),n},t.clearImmediate="function"==typeof r?r:function(e){delete u[e]}}).call(t,n(616).setImmediate,n(616).clearImmediate)},function(e,t,n){"use strict";function r(e){var t,n,r,s=this;e=e||{},e.menu||o.error("menu is required"),o.isArray(e.datasets)||o.isObject(e.datasets)||o.error("1 or more datasets required"),e.datasets||o.error("datasets is required"),this.isOpen=!1,this.isEmpty=!0,t=o.bind(this._onSuggestionClick,this),n=o.bind(this._onSuggestionMouseEnter,this),r=o.bind(this._onSuggestionMouseLeave,this),this.$menu=a.element(e.menu).on("click.aa",".aa-suggestion",t).on("mouseenter.aa",".aa-suggestion",n).on("mouseleave.aa",".aa-suggestion",r),e.templates&&e.templates.header&&this.$menu.prepend(o.templatify(e.templates.header)()),
23
+ this.datasets=o.map(e.datasets,function(e){return i(s.$menu,e)}),o.each(this.datasets,function(e){var t=e.getRoot();t&&0===t.parent().length&&s.$menu.append(t),e.onSync("rendered",s._onRendered,s)}),e.templates&&e.templates.footer&&this.$menu.append(o.templatify(e.templates.footer)())}function i(e,t){return new r.Dataset(o.mixin({$menu:e},t))}var o=n(611),a=n(610),s=n(615),u=n(618),c=n(620);o.mixin(r.prototype,s,{_onSuggestionClick:function(e){this.trigger("suggestionClicked",a.element(e.currentTarget))},_onSuggestionMouseEnter:function(e){this._removeCursor(),this._setCursor(a.element(e.currentTarget),!0)},_onSuggestionMouseLeave:function(){this._removeCursor()},_onRendered:function(){function e(e){return e.isEmpty()}this.isEmpty=o.every(this.datasets,e),this.isEmpty?this._hide():this.isOpen&&this._show(),this.trigger("datasetRendered")},_hide:function(){this.$menu.hide()},_show:function(){this.$menu.css("display","block")},_getSuggestions:function(){return this.$menu.find(".aa-suggestion")},_getCursor:function(){return this.$menu.find(".aa-cursor").first()},_setCursor:function(e,t){e.first().addClass("aa-cursor"),t||this.trigger("cursorMoved")},_removeCursor:function(){this._getCursor().removeClass("aa-cursor")},_moveCursor:function(e){var t,n,r,i;if(this.isOpen){if(n=this._getCursor(),t=this._getSuggestions(),this._removeCursor(),r=t.index(n)+e,r=(r+1)%(t.length+1)-1,-1===r)return void this.trigger("cursorRemoved");-1>r&&(r=t.length-1),this._setCursor(i=t.eq(r)),this._ensureVisible(i)}},_ensureVisible:function(e){var t,n,r,i;t=e.position().top,n=t+e.height()+parseInt(e.css("margin-top"),10)+parseInt(e.css("margin-bottom"),10),r=this.$menu.scrollTop(),i=this.$menu.height()+parseInt(this.$menu.css("paddingTop"),10)+parseInt(this.$menu.css("paddingBottom"),10),0>t?this.$menu.scrollTop(r+t):n>i&&this.$menu.scrollTop(r+(n-i))},close:function(){this.isOpen&&(this.isOpen=!1,this._removeCursor(),this._hide(),this.trigger("closed"))},open:function(){this.isOpen||(this.isOpen=!0,this.isEmpty||this._show(),this.trigger("opened"))},setLanguageDirection:function(e){this.$menu.css("ltr"===e?c.ltr:c.rtl)},moveCursorUp:function(){this._moveCursor(-1)},moveCursorDown:function(){this._moveCursor(1)},getDatumForSuggestion:function(e){var t=null;return e.length&&(t={raw:u.extractDatum(e),value:u.extractValue(e),datasetName:u.extractDatasetName(e)}),t},getDatumForCursor:function(){return this.getDatumForSuggestion(this._getCursor().first())},getDatumForTopSuggestion:function(){return this.getDatumForSuggestion(this._getSuggestions().first())},update:function(e){function t(t){t.update(e)}o.each(this.datasets,t)},empty:function(){function e(e){e.clear()}o.each(this.datasets,e),this.isEmpty=!0},isVisible:function(){return this.isOpen&&!this.isEmpty},destroy:function(){function e(e){e.destroy()}this.$menu.off(".aa"),this.$menu=null,o.each(this.datasets,e)}}),r.Dataset=u,e.exports=r},function(e,t,n){"use strict";function r(e){e=e||{},e.templates=e.templates||{},e.source||l.error("missing source"),e.name&&!a(e.name)&&l.error("invalid dataset name: "+e.name),this.query=null,this.highlight=!!e.highlight,this.name="undefined"==typeof e.name||null===e.name?l.getUniqueId():e.name,this.source=e.source,this.displayFn=i(e.display||e.displayKey),this.templates=o(e.templates,this.displayFn),this.$el=p.element(e.$menu&&e.$menu.find(".aa-dataset-"+this.name).length>0?e.$menu.find(".aa-dataset-"+this.name)[0]:f.dataset.replace("%CLASS%",this.name)),this.$menu=e.$menu}function i(e){function t(t){return t[e]}return e=e||"value",l.isFunction(e)?e:t}function o(e,t){function n(e){return"<p>"+t(e)+"</p>"}return{empty:e.empty&&l.templatify(e.empty),header:e.header&&l.templatify(e.header),footer:e.footer&&l.templatify(e.footer),suggestion:e.suggestion||n}}function a(e){return/^[_a-zA-Z0-9-]+$/.test(e)}var s="aaDataset",u="aaValue",c="aaDatum",l=n(611),p=n(610),f=n(619),d=n(620),h=n(615);r.extractDatasetName=function(e){return p.element(e).data(s)},r.extractValue=function(e){return p.element(e).data(u)},r.extractDatum=function(e){var t=p.element(e).data(c);return"string"==typeof t&&(t=JSON.parse(t)),t},l.mixin(r.prototype,h,{_render:function(e,t){function n(){var t=[].slice.call(arguments,0);return t=[{query:e,isEmpty:!0}].concat(t),h.templates.empty.apply(this,t)}function r(){function e(e){var t;return t=p.element(f.suggestion).append(h.templates.suggestion.apply(this,[e].concat(i))).data(s,h.name).data(u,h.displayFn(e)||void 0).data(c,JSON.stringify(e)),t.children().each(function(){p.element(this).css(d.suggestionChild)}),t}var n,r,i=[].slice.call(arguments,0);return n=p.element(f.suggestions).css(d.suggestions),r=l.map(t,e),n.append.apply(n,r),n}function i(){var t=[].slice.call(arguments,0);return t=[{query:e,isEmpty:!a}].concat(t),h.templates.header.apply(this,t)}function o(){var t=[].slice.call(arguments,0);return t=[{query:e,isEmpty:!a}].concat(t),h.templates.footer.apply(this,t)}if(this.$el){var a,h=this,m=[].slice.call(arguments,2);this.$el.empty(),a=t&&t.length,!a&&this.templates.empty?this.$el.html(n.apply(this,m)).prepend(h.templates.header?i.apply(this,m):null).append(h.templates.footer?o.apply(this,m):null):a&&this.$el.html(r.apply(this,m)).prepend(h.templates.header?i.apply(this,m):null).append(h.templates.footer?o.apply(this,m):null),this.$menu&&this.$menu.addClass("aa-"+(a?"with":"without")+"-"+this.name).removeClass("aa-"+(a?"without":"with")+"-"+this.name),this.trigger("rendered")}},getRoot:function(){return this.$el},update:function(e){function t(t){if(!n.canceled&&e===n.query){var r=[].slice.call(arguments,1);r=[e,t].concat(r),n._render.apply(n,r)}}var n=this;this.query=e,this.canceled=!1,this.source(e,t)},cancel:function(){this.canceled=!0},clear:function(){this.cancel(),this.$el.empty(),this.trigger("rendered")},isEmpty:function(){return this.$el.is(":empty")},destroy:function(){this.$el=null}}),e.exports=r},function(e){"use strict";e.exports={wrapper:'<span class="algolia-autocomplete"></span>',dropdown:'<span class="aa-dropdown-menu"></span>',dataset:'<div class="aa-dataset-%CLASS%"></div>',suggestions:'<span class="aa-suggestions"></span>',suggestion:'<div class="aa-suggestion"></div>'}},function(e,t,n){"use strict";var r=n(611),i={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},dropdown:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"},suggestions:{display:"block"},suggestion:{whiteSpace:"nowrap",cursor:"pointer"},suggestionChild:{whiteSpace:"normal"},ltr:{left:"0",right:"auto"},rtl:{left:"auto",right:"0"}};r.isMsie()&&r.mixin(i.input,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"}),r.isMsie()&&r.isMsie()<=7&&r.mixin(i.input,{marginTop:"-1px"}),e.exports=i},function(e,t,n){"use strict";e.exports={hits:n(622),popularIn:n(623)}},function(e,t,n){"use strict";var r=n(611);e.exports=function(e,t){function n(n,i){e.search(n,t,function(e,t){return e?void r.error(e.message):void i(t.hits,t)})}return n}},function(e,t,n){"use strict";var r=n(611);e.exports=function(e,t,n,i){function o(o,u){e.search(o,t,function(e,t){if(e)return void r.error(e.message);if(t.hits.length>0){var o=t.hits[0],c=r.mixin({hitsPerPage:0},n);return delete c.source,delete c.index,void s.search(a(o),c,function(e,n){if(e)return void r.error(e.message);var a=[];if(i.includeAll){var s=i.allTitle||"All departments";a.push(r.mixin({facet:{value:s,count:n.nbHits}},r.cloneDeep(o)))}r.each(n.facets,function(e,t){r.each(e,function(e,n){a.push(r.mixin({facet:{facet:t,value:n,count:e}},r.cloneDeep(o)))})});for(var c=1;c<t.hits.length;++c)a.push(t.hits[c]);u(a,t)})}u([])})}if(!n.source)return r.error("Missing 'source' key");var a=r.isFunction(n.source)?n.source:function(e){return e[n.source]};if(!n.index)return r.error("Missing 'index' key");var s=n.index;return i=i||{},o}},function(e,t,n){n(625),e.exports=angular},function(){!function(e,t,n){"use strict";function r(e,t){return t=t||Error,function(){var n,r,i=2,o=arguments,a=o[0],s="["+(e?e+":":"")+a+"] ",u=o[1];for(s+=u.replace(/\{\d+\}/g,function(e){var t=+e.slice(1,-1),n=t+i;return n<o.length?be(o[n]):e}),s+="\nhttp://errors.angularjs.org/1.4.7/"+(e?e+"/":"")+a,r=i,n="?";r<o.length;r++,n="&")s+=n+"p"+(r-i)+"="+encodeURIComponent(be(o[r]));return new t(s)}}function i(e){if(null==e||T(e))return!1;var t="length"in Object(e)&&e.length;return e.nodeType===Kr&&t?!0:_(e)||Fr(e)||0===t||"number"==typeof t&&t>0&&t-1 in e}function o(e,t,n){var r,a;if(e)if($(e))for(r in e)"prototype"==r||"length"==r||"name"==r||e.hasOwnProperty&&!e.hasOwnProperty(r)||t.call(n,e[r],r,e);else if(Fr(e)||i(e)){var s="object"!=typeof e;for(r=0,a=e.length;a>r;r++)(s||r in e)&&t.call(n,e[r],r,e)}else if(e.forEach&&e.forEach!==o)e.forEach(t,n,e);else if(E(e))for(r in e)t.call(n,e[r],r,e);else if("function"==typeof e.hasOwnProperty)for(r in e)e.hasOwnProperty(r)&&t.call(n,e[r],r,e);else for(r in e)wr.call(e,r)&&t.call(n,e[r],r,e);return e}function a(e,t,n){for(var r=Object.keys(e).sort(),i=0;i<r.length;i++)t.call(n,e[r[i]],r[i]);return r}function s(e){return function(t,n){e(n,t)}}function u(){return++Ir}function c(e,t){t?e.$$hashKey=t:delete e.$$hashKey}function l(e,t,n){for(var r=e.$$hashKey,i=0,o=t.length;o>i;++i){var a=t[i];if(w(a)||$(a))for(var s=Object.keys(a),u=0,p=s.length;p>u;u++){var f=s[u],d=a[f];n&&w(d)?N(d)?e[f]=new Date(d.valueOf()):O(d)?e[f]=new RegExp(d):(w(e[f])||(e[f]=Fr(d)?[]:{}),l(e[f],[d],!0)):e[f]=d}}return c(e,r),e}function p(e){return l(e,Pr.call(arguments,1),!1)}function f(e){return l(e,Pr.call(arguments,1),!0)}function d(e){return parseInt(e,10)}function h(e,t){return p(Object.create(e),t)}function m(){}function v(e){return e}function g(e){return function(){return e}}function y(e){return $(e.toString)&&e.toString!==Object.prototype.toString}function b(e){return"undefined"==typeof e}function x(e){return"undefined"!=typeof e}function w(e){return null!==e&&"object"==typeof e}function E(e){return null!==e&&"object"==typeof e&&!kr(e)}function _(e){return"string"==typeof e}function C(e){return"number"==typeof e}function N(e){return"[object Date]"===Rr.call(e)}function $(e){return"function"==typeof e}function O(e){return"[object RegExp]"===Rr.call(e)}function T(e){return e&&e.window===e}function P(e){return e&&e.$evalAsync&&e.$watch}function S(e){return"[object File]"===Rr.call(e)}function D(e){return"[object FormData]"===Rr.call(e)}function R(e){return"[object Blob]"===Rr.call(e)}function k(e){return"boolean"==typeof e}function A(e){return e&&$(e.then)}function j(e){return Lr.test(Rr.call(e))}function I(e){return!(!e||!(e.nodeName||e.prop&&e.attr&&e.find))}function M(e){var t,n={},r=e.split(",");for(t=0;t<r.length;t++)n[r[t]]=!0;return n}function F(e){return xr(e.nodeName||e[0]&&e[0].nodeName)}function L(e,t){var n=e.indexOf(t);return n>=0&&e.splice(n,1),n}function V(e,t,n,r){if(T(e)||P(e))throw Ar("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");if(j(t))throw Ar("cpta","Can't copy! TypedArray destination cannot be mutated.");if(t){if(e===t)throw Ar("cpi","Can't copy! Source and destination are identical.");n=n||[],r=r||[],w(e)&&(n.push(e),r.push(t));var i;if(Fr(e)){t.length=0;for(var a=0;a<e.length;a++)t.push(V(e[a],null,n,r))}else{var s=t.$$hashKey;if(Fr(t)?t.length=0:o(t,function(e,n){delete t[n]}),E(e))for(i in e)t[i]=V(e[i],null,n,r);else if(e&&"function"==typeof e.hasOwnProperty)for(i in e)e.hasOwnProperty(i)&&(t[i]=V(e[i],null,n,r));else for(i in e)wr.call(e,i)&&(t[i]=V(e[i],null,n,r));c(t,s)}}else if(t=e,w(e)){var u;if(n&&-1!==(u=n.indexOf(e)))return r[u];if(Fr(e))return V(e,[],n,r);if(j(e))t=new e.constructor(e);else if(N(e))t=new Date(e.getTime());else if(O(e))t=new RegExp(e.source,e.toString().match(/[^\/]*$/)[0]),t.lastIndex=e.lastIndex;else{if(!$(e.cloneNode)){var l=Object.create(kr(e));return V(e,l,n,r)}t=e.cloneNode(!0)}r&&(n.push(e),r.push(t))}return t}function U(e,t){if(Fr(e)){t=t||[];for(var n=0,r=e.length;r>n;n++)t[n]=e[n]}else if(w(e)){t=t||{};for(var i in e)("$"!==i.charAt(0)||"$"!==i.charAt(1))&&(t[i]=e[i])}return t||e}function H(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e!==e&&t!==t)return!0;var n,r,i,o=typeof e,a=typeof t;if(o==a&&"object"==o){if(!Fr(e)){if(N(e))return N(t)?H(e.getTime(),t.getTime()):!1;if(O(e))return O(t)?e.toString()==t.toString():!1;if(P(e)||P(t)||T(e)||T(t)||Fr(t)||N(t)||O(t))return!1;i=ve();for(r in e)if("$"!==r.charAt(0)&&!$(e[r])){if(!H(e[r],t[r]))return!1;i[r]=!0}for(r in t)if(!(r in i)&&"$"!==r.charAt(0)&&x(t[r])&&!$(t[r]))return!1;return!0}if(!Fr(t))return!1;if((n=e.length)==t.length){for(r=0;n>r;r++)if(!H(e[r],t[r]))return!1;return!0}}return!1}function q(e,t,n){return e.concat(Pr.call(t,n))}function B(e,t){return Pr.call(e,t||0)}function W(e,t){var n=arguments.length>2?B(arguments,2):[];return!$(t)||t instanceof RegExp?t:n.length?function(){return arguments.length?t.apply(e,q(n,arguments,0)):t.apply(e,n)}:function(){return arguments.length?t.apply(e,arguments):t.call(e)}}function z(e,r){var i=r;return"string"==typeof e&&"$"===e.charAt(0)&&"$"===e.charAt(1)?i=n:T(r)?i="$WINDOW":r&&t===r?i="$DOCUMENT":P(r)&&(i="$SCOPE"),i}function K(e,t){return"undefined"==typeof e?n:(C(t)||(t=t?2:null),JSON.stringify(e,z,t))}function Q(e){return _(e)?JSON.parse(e):e}function Y(e,t){var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return isNaN(n)?t:n}function G(e,t){return e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+t),e}function X(e,t,n){n=n?-1:1;var r=Y(t,e.getTimezoneOffset());return G(e,n*(r-e.getTimezoneOffset()))}function J(e){e=$r(e).clone();try{e.empty()}catch(t){}var n=$r("<div>").append(e).html();try{return e[0].nodeType===Yr?xr(n):n.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(e,t){return"<"+xr(t)})}catch(t){return xr(n)}}function Z(e){try{return decodeURIComponent(e)}catch(t){}}function ee(e){var t={};return o((e||"").split("&"),function(e){var n,r,i;e&&(r=e=e.replace(/\+/g,"%20"),n=e.indexOf("="),-1!==n&&(r=e.substring(0,n),i=e.substring(n+1)),r=Z(r),x(r)&&(i=x(i)?Z(i):!0,wr.call(t,r)?Fr(t[r])?t[r].push(i):t[r]=[t[r],i]:t[r]=i))}),t}function te(e){var t=[];return o(e,function(e,n){Fr(e)?o(e,function(e){t.push(re(n,!0)+(e===!0?"":"="+re(e,!0)))}):t.push(re(n,!0)+(e===!0?"":"="+re(e,!0)))}),t.length?t.join("&"):""}function ne(e){return re(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function re(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,t?"%20":"+")}function ie(e,t){var n,r,i=Br.length;for(r=0;i>r;++r)if(n=Br[r]+t,_(n=e.getAttribute(n)))return n;return null}function oe(e,t){var n,r,i={};o(Br,function(t){var i=t+"app";!n&&e.hasAttribute&&e.hasAttribute(i)&&(n=e,r=e.getAttribute(i))}),o(Br,function(t){var i,o=t+"app";!n&&(i=e.querySelector("["+o.replace(":","\\:")+"]"))&&(n=i,r=i.getAttribute(o))}),n&&(i.strictDi=null!==ie(n,"strict-di"),t(n,r?[r]:[],i))}function ae(n,r,i){w(i)||(i={});var a={strictDi:!1};i=p(a,i);var s=function(){if(n=$r(n),n.injector()){var e=n[0]===t?"document":J(n);throw Ar("btstrpd","App Already Bootstrapped with this Element '{0}'",e.replace(/</,"&lt;").replace(/>/,"&gt;"))}r=r||[],r.unshift(["$provide",function(e){e.value("$rootElement",n)}]),i.debugInfoEnabled&&r.push(["$compileProvider",function(e){e.debugInfoEnabled(!0)}]),r.unshift("ng");var o=Je(r,i.strictDi);return o.invoke(["$rootScope","$rootElement","$compile","$injector",function(e,t,n,r){e.$apply(function(){t.data("$injector",r),n(t)(e)})}]),o},u=/^NG_ENABLE_DEBUG_INFO!/,c=/^NG_DEFER_BOOTSTRAP!/;return e&&u.test(e.name)&&(i.debugInfoEnabled=!0,e.name=e.name.replace(u,"")),e&&!c.test(e.name)?s():(e.name=e.name.replace(c,""),jr.resumeBootstrap=function(e){return o(e,function(e){r.push(e)}),s()},void($(jr.resumeDeferredBootstrap)&&jr.resumeDeferredBootstrap()))}function se(){e.name="NG_ENABLE_DEBUG_INFO!"+e.name,e.location.reload()}function ue(e){var t=jr.element(e).injector();if(!t)throw Ar("test","no injector found for element argument to getTestability");return t.get("$$testability")}function ce(e,t){return t=t||"_",e.replace(Wr,function(e,n){return(n?t:"")+e.toLowerCase()})}function le(){var t;if(!zr){var r=qr();Or=b(r)?e.jQuery:r?e[r]:n,Or&&Or.fn.on?($r=Or,p(Or.fn,{scope:di.scope,isolateScope:di.isolateScope,controller:di.controller,injector:di.injector,inheritedData:di.inheritedData}),t=Or.cleanData,Or.cleanData=function(e){var n;if(Mr)Mr=!1;else for(var r,i=0;null!=(r=e[i]);i++)n=Or._data(r,"events"),n&&n.$destroy&&Or(r).triggerHandler("$destroy");t(e)}):$r=Te,jr.element=$r,zr=!0}}function pe(e,t,n){if(!e)throw Ar("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function fe(e,t,n){return n&&Fr(e)&&(e=e[e.length-1]),pe($(e),t,"not a function, got "+(e&&"object"==typeof e?e.constructor.name||"Object":typeof e)),e}function de(e,t){if("hasOwnProperty"===e)throw Ar("badname","hasOwnProperty is not a valid {0} name",t)}function he(e,t,n){if(!t)return e;for(var r,i=t.split("."),o=e,a=i.length,s=0;a>s;s++)r=i[s],e&&(e=(o=e)[r]);return!n&&$(e)?W(o,e):e}function me(e){for(var t,n=e[0],r=e[e.length-1],i=1;n!==r&&(n=n.nextSibling);i++)(t||e[i]!==n)&&(t||(t=$r(Pr.call(e,0,i))),t.push(n));return t||e}function ve(){return Object.create(null)}function ge(e){function t(e,t,n){return e[t]||(e[t]=n())}var n=r("$injector"),i=r("ng"),o=t(e,"angular",Object);return o.$$minErr=o.$$minErr||r,t(o,"module",function(){var e={};return function(r,o,a){var s=function(e,t){if("hasOwnProperty"===e)throw i("badname","hasOwnProperty is not a valid {0} name",t)};return s(r,"module"),o&&e.hasOwnProperty(r)&&(e[r]=null),t(e,r,function(){function e(e,t,n,r){return r||(r=i),function(){return r[n||"push"]([e,t,arguments]),l}}function t(e,t){return function(n,o){return o&&$(o)&&(o.$$moduleName=r),i.push([e,t,arguments]),l}}if(!o)throw n("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",r);var i=[],s=[],u=[],c=e("$injector","invoke","push",s),l={_invokeQueue:i,_configBlocks:s,_runBlocks:u,requires:o,name:r,provider:t("$provide","provider"),factory:t("$provide","factory"),service:t("$provide","service"),value:e("$provide","value"),constant:e("$provide","constant","unshift"),decorator:t("$provide","decorator"),animation:t("$animateProvider","register"),filter:t("$filterProvider","register"),controller:t("$controllerProvider","register"),directive:t("$compileProvider","directive"),config:c,run:function(e){return u.push(e),this}};return a&&c(a),l})}})}function ye(e){var t=[];return JSON.stringify(e,function(e,n){if(n=z(e,n),w(n)){if(t.indexOf(n)>=0)return"...";t.push(n)}return n})}function be(e){return"function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):b(e)?"undefined":"string"!=typeof e?ye(e):e}function xe(t){p(t,{bootstrap:ae,copy:V,extend:p,merge:f,equals:H,element:$r,forEach:o,injector:Je,noop:m,bind:W,toJson:K,fromJson:Q,identity:v,isUndefined:b,isDefined:x,isString:_,isFunction:$,isObject:w,isNumber:C,isElement:I,isArray:Fr,version:Zr,isDate:N,lowercase:xr,uppercase:Er,callbacks:{counter:0},getTestability:ue,$$minErr:r,$$csp:Hr,reloadWithDebugInfo:se}),(Tr=ge(e))("ng",["ngLocale"],["$provide",function(e){e.provider({$$sanitizeUri:gn}),e.provider("$compile",ut).directive({a:ho,input:Do,textarea:Do,form:bo,script:_a,select:$a,style:Ta,option:Oa,ngBind:Ao,ngBindHtml:Io,ngBindTemplate:jo,ngClass:Fo,ngClassEven:Vo,ngClassOdd:Lo,ngCloak:Uo,ngController:Ho,ngForm:xo,ngHide:ga,ngIf:Wo,ngInclude:zo,ngInit:Qo,ngNonBindable:ua,ngPluralize:fa,ngRepeat:da,ngShow:va,ngStyle:ya,ngSwitch:ba,ngSwitchWhen:xa,ngSwitchDefault:wa,ngOptions:pa,ngTransclude:Ea,ngModel:oa,ngList:Yo,ngChange:Mo,pattern:Sa,ngPattern:Sa,required:Pa,ngRequired:Pa,minlength:Ra,ngMinlength:Ra,maxlength:Da,ngMaxlength:Da,ngValue:ko,ngModelOptions:sa}).directive({ngInclude:Ko}).directive(mo).directive(qo),e.provider({$anchorScroll:Ze,$animate:Ti,$animateCss:Pi,$$animateQueue:Oi,$$AnimateRunner:$i,$browser:ot,$cacheFactory:at,$controller:dt,$document:ht,$exceptionHandler:mt,$filter:Dn,$$forceReflow:Ai,$interpolate:Pt,$interval:St,$http:Nt,$httpParamSerializer:gt,$httpParamSerializerJQLike:yt,$httpBackend:Ot,$xhrFactory:$t,$location:Bt,$log:Wt,$parse:pn,$rootScope:vn,$q:fn,$$q:dn,$sce:wn,$sceDelegate:xn,$sniffer:En,$templateCache:st,$templateRequest:_n,$$testability:Cn,$timeout:Nn,$window:Tn,$$rAF:mn,$$jqLite:Ke,$$HashMap:gi,$$cookieReader:Sn})}])}function we(){return++ti}function Ee(e){return e.replace(ii,function(e,t,n,r){return r?n.toUpperCase():n}).replace(oi,"Moz$1")}function _e(e){return!ci.test(e)}function Ce(e){var t=e.nodeType;return t===Kr||!t||t===Xr}function Ne(e){for(var t in ei[e.ng339])return!0;return!1}function $e(e,t){var n,r,i,a,s=t.createDocumentFragment(),u=[];if(_e(e))u.push(t.createTextNode(e));else{for(n=n||s.appendChild(t.createElement("div")),r=(li.exec(e)||["",""])[1].toLowerCase(),i=fi[r]||fi._default,n.innerHTML=i[1]+e.replace(pi,"<$1></$2>")+i[2],a=i[0];a--;)n=n.lastChild;u=q(u,n.childNodes),n=s.firstChild,n.textContent=""}return s.textContent="",s.innerHTML="",o(u,function(e){s.appendChild(e)}),s}function Oe(e,n){n=n||t;var r;return(r=ui.exec(e))?[n.createElement(r[1])]:(r=$e(e,n))?r.childNodes:[]}function Te(e){if(e instanceof Te)return e;var t;if(_(e)&&(e=Vr(e),t=!0),!(this instanceof Te)){if(t&&"<"!=e.charAt(0))throw si("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new Te(e)}t?Fe(this,Oe(e)):Fe(this,e)}function Pe(e){return e.cloneNode(!0)}function Se(e,t){if(t||Re(e),e.querySelectorAll)for(var n=e.querySelectorAll("*"),r=0,i=n.length;i>r;r++)Re(n[r])}function De(e,t,n,r){if(x(r))throw si("offargs","jqLite#off() does not support the `selector` argument");var i=ke(e),a=i&&i.events,s=i&&i.handle;if(s)if(t)o(t.split(" "),function(t){if(x(n)){var r=a[t];if(L(r||[],n),r&&r.length>0)return}ri(e,t,s),delete a[t]});else for(t in a)"$destroy"!==t&&ri(e,t,s),delete a[t]}function Re(e,t){var r=e.ng339,i=r&&ei[r];if(i){if(t)return void delete i.data[t];i.handle&&(i.events.$destroy&&i.handle({},"$destroy"),De(e)),delete ei[r],e.ng339=n}}function ke(e,t){var r=e.ng339,i=r&&ei[r];return t&&!i&&(e.ng339=r=we(),i=ei[r]={events:{},data:{},handle:n}),i}function Ae(e,t,n){if(Ce(e)){var r=x(n),i=!r&&t&&!w(t),o=!t,a=ke(e,!i),s=a&&a.data;if(r)s[t]=n;else{if(o)return s;if(i)return s&&s[t];p(s,t)}}}function je(e,t){return e.getAttribute?(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+t+" ")>-1:!1}function Ie(e,t){t&&e.setAttribute&&o(t.split(" "),function(t){e.setAttribute("class",Vr((" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+Vr(t)+" "," ")))})}function Me(e,t){if(t&&e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");o(t.split(" "),function(e){e=Vr(e),-1===n.indexOf(" "+e+" ")&&(n+=e+" ")}),e.setAttribute("class",Vr(n))}}function Fe(e,t){if(t)if(t.nodeType)e[e.length++]=t;else{var n=t.length;if("number"==typeof n&&t.window!==t){if(n)for(var r=0;n>r;r++)e[e.length++]=t[r]}else e[e.length++]=t}}function Le(e,t){return Ve(e,"$"+(t||"ngController")+"Controller")}function Ve(e,t,n){e.nodeType==Xr&&(e=e.documentElement);for(var r=Fr(t)?t:[t];e;){for(var i=0,o=r.length;o>i;i++)if(x(n=$r.data(e,r[i])))return n;e=e.parentNode||e.nodeType===Jr&&e.host}}function Ue(e){for(Se(e,!0);e.firstChild;)e.removeChild(e.firstChild)}function He(e,t){t||Se(e);var n=e.parentNode;n&&n.removeChild(e)}function qe(t,n){n=n||e,"complete"===n.document.readyState?n.setTimeout(t):$r(n).on("load",t)}function Be(e,t){var n=hi[t.toLowerCase()];return n&&mi[F(e)]&&n}function We(e){return vi[e]}function ze(e,t){var n=function(n,r){n.isDefaultPrevented=function(){return n.defaultPrevented};var i=t[r||n.type],o=i?i.length:0;if(o){if(b(n.immediatePropagationStopped)){var a=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),a&&a.call(n)}}n.isImmediatePropagationStopped=function(){return n.immediatePropagationStopped===!0},o>1&&(i=U(i));for(var s=0;o>s;s++)n.isImmediatePropagationStopped()||i[s].call(e,n)}};return n.elem=e,n}function Ke(){this.$get=function(){return p(Te,{hasClass:function(e,t){return e.attr&&(e=e[0]),je(e,t)},addClass:function(e,t){return e.attr&&(e=e[0]),Me(e,t)},removeClass:function(e,t){return e.attr&&(e=e[0]),Ie(e,t)}})}}function Qe(e,t){var n=e&&e.$$hashKey;if(n)return"function"==typeof n&&(n=e.$$hashKey()),n;var r=typeof e;return n="function"==r||"object"==r&&null!==e?e.$$hashKey=r+":"+(t||u)():r+":"+e}function Ye(e,t){if(t){var n=0;this.nextUid=function(){return++n}}o(e,this.put,this)}function Ge(e){var t=e.toString().replace(wi,""),n=t.match(yi);return n?"function("+(n[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function Xe(e,t,n){var r,i,a,s;if("function"==typeof e){if(!(r=e.$inject)){if(r=[],e.length){if(t)throw _(n)&&n||(n=e.name||Ge(e)),Ei("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);i=e.toString().replace(wi,""),a=i.match(yi),o(a[1].split(bi),function(e){e.replace(xi,function(e,t,n){r.push(n)})})}e.$inject=r}}else Fr(e)?(s=e.length-1,fe(e[s],"fn"),r=e.slice(0,s)):fe(e,"fn",!0);return r}function Je(e,t){function r(e){return function(t,n){return w(t)?void o(t,s(e)):e(t,n)}}function i(e,t){if(de(e,"service"),($(t)||Fr(t))&&(t=C.instantiate(t)),!t.$get)throw Ei("pget","Provider '{0}' must define $get factory method.",e);return E[e+v]=t}function a(e,t){return function(){var n=O.invoke(t,this);if(b(n))throw Ei("undef","Provider '{0}' must return a value from $get factory method.",e);return n}}function u(e,t,n){return i(e,{$get:n!==!1?a(e,t):t})}function c(e,t){return u(e,["$injector",function(e){return e.instantiate(t)}])}function l(e,t){return u(e,g(t),!1)}function p(e,t){de(e,"constant"),E[e]=t,N[e]=t}function f(e,t){var n=C.get(e+v),r=n.$get;n.$get=function(){var e=O.invoke(r,n);return O.invoke(t,null,{$delegate:e})}}function d(e){pe(b(e)||Fr(e),"modulesToLoad","not an array");var t,n=[];return o(e,function(e){function r(e){var t,n;for(t=0,n=e.length;n>t;t++){var r=e[t],i=C.get(r[0]);i[r[1]].apply(i,r[2])}}if(!x.get(e)){x.put(e,!0);try{_(e)?(t=Tr(e),n=n.concat(d(t.requires)).concat(t._runBlocks),r(t._invokeQueue),r(t._configBlocks)):$(e)?n.push(C.invoke(e)):Fr(e)?n.push(C.invoke(e)):fe(e,"module")}catch(i){throw Fr(e)&&(e=e[e.length-1]),i.message&&i.stack&&-1==i.stack.indexOf(i.message)&&(i=i.message+"\n"+i.stack),Ei("modulerr","Failed to instantiate module {0} due to:\n{1}",e,i.stack||i.message||i)}}}),n}function h(e,n){function r(t,r){if(e.hasOwnProperty(t)){if(e[t]===m)throw Ei("cdep","Circular dependency found: {0}",t+" <- "+y.join(" <- "));return e[t]}try{return y.unshift(t),e[t]=m,e[t]=n(t,r)}catch(i){throw e[t]===m&&delete e[t],i}finally{y.shift()}}function i(e,n,i,o){"string"==typeof i&&(o=i,i=null);var a,s,u,c=[],l=Je.$$annotate(e,t,o);for(s=0,a=l.length;a>s;s++){if(u=l[s],"string"!=typeof u)throw Ei("itkn","Incorrect injection token! Expected service name as string, got {0}",u);c.push(i&&i.hasOwnProperty(u)?i[u]:r(u,o))}return Fr(e)&&(e=e[a]),e.apply(n,c)}function o(e,t,n){var r=Object.create((Fr(e)?e[e.length-1]:e).prototype||null),o=i(e,r,t,n);return w(o)||$(o)?o:r}return{invoke:i,instantiate:o,get:r,annotate:Je.$$annotate,has:function(t){return E.hasOwnProperty(t+v)||e.hasOwnProperty(t)}}}t=t===!0;var m={},v="Provider",y=[],x=new Ye([],!0),E={$provide:{provider:r(i),factory:r(u),service:r(c),value:r(l),constant:r(p),decorator:f}},C=E.$injector=h(E,function(e,t){throw jr.isString(t)&&y.push(t),Ei("unpr","Unknown provider: {0}",y.join(" <- "))}),N={},O=N.$injector=h(N,function(e,t){var r=C.get(e+v,t);return O.invoke(r.$get,r,n,e)});return o(d(e),function(e){e&&O.invoke(e)}),O}function Ze(){var e=!0;this.disableAutoScrolling=function(){e=!1},this.$get=["$window","$location","$rootScope",function(t,n,r){function i(e){var t=null;return Array.prototype.some.call(e,function(e){return"a"===F(e)?(t=e,!0):void 0}),t}function o(){var e=s.yOffset;if($(e))e=e();else if(I(e)){var n=e[0],r=t.getComputedStyle(n);e="fixed"!==r.position?0:n.getBoundingClientRect().bottom}else C(e)||(e=0);return e}function a(e){if(e){e.scrollIntoView();var n=o();if(n){var r=e.getBoundingClientRect().top;t.scrollBy(0,r-n)}}else t.scrollTo(0,0)}function s(e){e=_(e)?e:n.hash();var t;e?(t=u.getElementById(e))?a(t):(t=i(u.getElementsByName(e)))?a(t):"top"===e&&a(null):a(null)}var u=t.document;return e&&r.$watch(function(){return n.hash()},function(e,t){(e!==t||""!==e)&&qe(function(){r.$evalAsync(s)})}),s}]}function et(e,t){return e||t?e?t?(Fr(e)&&(e=e.join(" ")),Fr(t)&&(t=t.join(" ")),e+" "+t):e:t:""}function tt(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.nodeType===Ci)return n}}function nt(e){_(e)&&(e=e.split(" "));var t=ve();return o(e,function(e){e.length&&(t[e]=!0)}),t}function rt(e){return w(e)?e:{}}function it(e,t,n,r){function i(e){try{e.apply(null,B(arguments,1))}finally{if(y--,0===y)for(;x.length;)try{x.pop()()}catch(t){n.error(t)}}}function a(e){var t=e.indexOf("#");return-1===t?"":e.substr(t)}function s(){N=null,c(),l()}function u(){try{return d.state}catch(e){}}function c(){w=u(),w=b(w)?null:w,H(w,T)&&(w=T),T=w}function l(){(_!==p.url()||E!==w)&&(_=p.url(),E=w,o($,function(e){e(p.url(),w)}))}var p=this,f=(t[0],e.location),d=e.history,h=e.setTimeout,v=e.clearTimeout,g={};p.isMock=!1;var y=0,x=[];p.$$completeOutstandingRequest=i,p.$$incOutstandingRequestCount=function(){y++},p.notifyWhenNoOutstandingRequests=function(e){0===y?e():x.push(e)};var w,E,_=f.href,C=t.find("base"),N=null;c(),E=w,p.url=function(t,n,i){if(b(i)&&(i=null),f!==e.location&&(f=e.location),d!==e.history&&(d=e.history),t){var o=E===i;if(_===t&&(!r.history||o))return p;var s=_&&jt(_)===jt(t);return _=t,E=i,!r.history||s&&o?((!s||N)&&(N=t),n?f.replace(t):s?f.hash=a(t):f.href=t,f.href!==t&&(N=t)):(d[n?"replaceState":"pushState"](i,"",t),c(),E=w),p}return N||f.href.replace(/%27/g,"'")},p.state=function(){return w};var $=[],O=!1,T=null;p.onUrlChange=function(t){return O||(r.history&&$r(e).on("popstate",s),$r(e).on("hashchange",s),O=!0),$.push(t),t},p.$$applicationDestroyed=function(){$r(e).off("hashchange popstate",s)},p.$$checkUrlChange=l,p.baseHref=function(){var e=C.attr("href");return e?e.replace(/^(https?\:)?\/\/[^\/]*/,""):""},p.defer=function(e,t){var n;return y++,n=h(function(){delete g[n],i(e)},t||0),g[n]=!0,n},p.defer.cancel=function(e){return g[e]?(delete g[e],v(e),i(m),!0):!1}}function ot(){this.$get=["$window","$log","$sniffer","$document",function(e,t,n,r){return new it(e,r,t,n)}]}function at(){this.$get=function(){function e(e,n){function i(e){e!=f&&(d?d==e&&(d=e.n):d=e,o(e.n,e.p),o(e,f),f=e,f.n=null)}function o(e,t){e!=t&&(e&&(e.p=t),t&&(t.n=e))}if(e in t)throw r("$cacheFactory")("iid","CacheId '{0}' is already taken!",e);var a=0,s=p({},n,{id:e}),u={},c=n&&n.capacity||Number.MAX_VALUE,l={},f=null,d=null;return t[e]={put:function(e,t){if(!b(t)){if(c<Number.MAX_VALUE){var n=l[e]||(l[e]={key:e});i(n)}return e in u||a++,u[e]=t,a>c&&this.remove(d.key),t}},get:function(e){if(c<Number.MAX_VALUE){var t=l[e];if(!t)return;i(t)}return u[e]},remove:function(e){if(c<Number.MAX_VALUE){var t=l[e];if(!t)return;t==f&&(f=t.p),t==d&&(d=t.n),o(t.n,t.p),delete l[e]}delete u[e],a--},removeAll:function(){u={},a=0,l={},f=d=null},destroy:function(){u=null,s=null,l=null,delete t[e]},info:function(){return p({},s,{size:a})}}}var t={};return e.info=function(){var e={};return o(t,function(t,n){e[n]=t.info()}),e},e.get=function(e){return t[e]},e}}function st(){this.$get=["$cacheFactory",function(e){return e("templates")}]}function ut(e,r){function i(e,t,n){var r=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/,i={};
24
+
25
+ return o(e,function(e,o){var a=e.match(r);if(!a)throw Si("iscp","Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}",t,o,e,n?"controller bindings definition":"isolate scope definition");i[o]={mode:a[1][0],collection:"*"===a[2],optional:"?"===a[3],attrName:a[4]||o}}),i}function a(e,t){var n={isolateScope:null,bindToController:null};if(w(e.scope)&&(e.bindToController===!0?(n.bindToController=i(e.scope,t,!0),n.isolateScope={}):n.isolateScope=i(e.scope,t,!1)),w(e.bindToController)&&(n.bindToController=i(e.bindToController,t,!0)),w(n.bindToController)){var r=e.controller,o=e.controllerAs;if(!r)throw Si("noctrl","Cannot bind to controller without directive '{0}'s controller.",t);if(!ft(r,o))throw Si("noident","Cannot bind to controller without identifier for directive '{0}'.",t)}return n}function u(e){var t=e.charAt(0);if(!t||t!==xr(t))throw Si("baddir","Directive name '{0}' is invalid. The first character must be a lowercase letter",e);if(e!==e.trim())throw Si("baddir","Directive name '{0}' is invalid. The name should not contain leading or trailing whitespaces",e)}var c={},l="Directive",f=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,d=/(([\w\-]+)(?:\:([^;]+))?;?)/,y=M("ngSrc,ngSrcset,src,srcset"),E=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,C=/^(on[a-z]+|formaction)$/;this.directive=function O(t,n){return de(t,"directive"),_(t)?(u(t),pe(n,"directiveFactory"),c.hasOwnProperty(t)||(c[t]=[],e.factory(t+l,["$injector","$exceptionHandler",function(e,n){var r=[];return o(c[t],function(i,o){try{var s=e.invoke(i);$(s)?s={compile:g(s)}:!s.compile&&s.link&&(s.compile=g(s.link)),s.priority=s.priority||0,s.index=o,s.name=s.name||t,s.require=s.require||s.controller&&s.name,s.restrict=s.restrict||"EA";var u=s.$$bindings=a(s,s.name);w(u.isolateScope)&&(s.$$isolateBindings=u.isolateScope),s.$$moduleName=i.$$moduleName,r.push(s)}catch(c){n(c)}}),r}])),c[t].push(n)):o(t,s(O)),this},this.aHrefSanitizationWhitelist=function(e){return x(e)?(r.aHrefSanitizationWhitelist(e),this):r.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(e){return x(e)?(r.imgSrcSanitizationWhitelist(e),this):r.imgSrcSanitizationWhitelist()};var N=!0;this.debugInfoEnabled=function(e){return x(e)?(N=e,this):N},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(e,r,i,a,s,u,g,x,O,T,S){function D(e,t){try{e.addClass(t)}catch(n){}}function R(e,t,n,r,i){e instanceof $r||(e=$r(e)),o(e,function(t,n){t.nodeType==Yr&&t.nodeValue.match(/\S+/)&&(e[n]=$r(t).wrap("<span></span>").parent()[0])});var a=A(e,t,e,n,r,i);R.$$addScopeClass(e);var s=null;return function(t,n,r){pe(t,"scope"),r=r||{};var i=r.parentBoundTranscludeFn,o=r.transcludeControllers,u=r.futureParentElement;i&&i.$$boundTransclude&&(i=i.$$boundTransclude),s||(s=k(u));var c;if(c="html"!==s?$r(Z(s,$r("<div>").append(e).html())):n?di.clone.call(e):e,o)for(var l in o)c.data("$"+l+"Controller",o[l].instance);return R.$$addScopeInfo(c,t),n&&n(c,t),a&&a(t,c,c,i),c}}function k(e){var t=e&&e[0];return t&&"foreignobject"!==F(t)&&t.toString().match(/SVG/)?"svg":"html"}function A(e,t,r,i,o,a){function s(e,r,i,o){var a,s,u,c,l,p,f,d,v;if(h){var g=r.length;for(v=new Array(g),l=0;l<m.length;l+=3)f=m[l],v[f]=r[f]}else v=r;for(l=0,p=m.length;p>l;)if(u=v[m[l++]],a=m[l++],s=m[l++],a){if(a.scope){c=e.$new(),R.$$addScopeInfo($r(u),c);var y=a.$$destroyBindings;y&&(a.$$destroyBindings=null,c.$on("$destroyed",y))}else c=e;d=a.transcludeOnThisElement?j(e,a.transclude,o):!a.templateOnThisElement&&o?o:!o&&t?j(e,t):null,a(s,c,u,i,d,a)}else s&&s(e,u.childNodes,n,o)}for(var u,c,l,p,f,d,h,m=[],v=0;v<e.length;v++)u=new ae,c=I(e[v],[],u,0===v?i:n,o),l=c.length?U(c,e[v],u,t,r,null,[],[],a):null,l&&l.scope&&R.$$addScopeClass(u.$$element),f=l&&l.terminal||!(p=e[v].childNodes)||!p.length?null:A(p,l?(l.transcludeOnThisElement||!l.templateOnThisElement)&&l.transclude:t),(l||f)&&(m.push(v,l,f),d=!0,h=h||l),a=null;return d?s:null}function j(e,t,n){var r=function(r,i,o,a,s){return r||(r=e.$new(!1,s),r.$$transcluded=!0),t(r,i,{parentBoundTranscludeFn:n,transcludeControllers:o,futureParentElement:a})};return r}function I(e,t,n,r,i){var o,a,s=e.nodeType,u=n.$attr;switch(s){case Kr:W(t,ct(F(e)),"E",r,i);for(var c,l,p,h,m,v,g=e.attributes,y=0,b=g&&g.length;b>y;y++){var x=!1,E=!1;c=g[y],l=c.name,m=Vr(c.value),h=ct(l),(v=fe.test(h))&&(l=l.replace(Di,"").substr(8).replace(/_(.)/g,function(e,t){return t.toUpperCase()}));var C=h.replace(/(Start|End)$/,"");z(C)&&h===C+"Start"&&(x=l,E=l.substr(0,l.length-5)+"end",l=l.substr(0,l.length-6)),p=ct(l.toLowerCase()),u[p]=l,(v||!n.hasOwnProperty(p))&&(n[p]=m,Be(e,p)&&(n[p]=!0)),te(e,t,m,p,v),W(t,p,"A",r,i,x,E)}if(a=e.className,w(a)&&(a=a.animVal),_(a)&&""!==a)for(;o=d.exec(a);)p=ct(o[2]),W(t,p,"C",r,i)&&(n[p]=Vr(o[3])),a=a.substr(o.index+o[0].length);break;case Yr:if(11===Nr)for(;e.parentNode&&e.nextSibling&&e.nextSibling.nodeType===Yr;)e.nodeValue=e.nodeValue+e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);X(t,e.nodeValue);break;case Gr:try{o=f.exec(e.nodeValue),o&&(p=ct(o[1]),W(t,p,"M",r,i)&&(n[p]=Vr(o[2])))}catch(N){}}return t.sort(Y),t}function M(e,t,n){var r=[],i=0;if(t&&e.hasAttribute&&e.hasAttribute(t)){do{if(!e)throw Si("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",t,n);e.nodeType==Kr&&(e.hasAttribute(t)&&i++,e.hasAttribute(n)&&i--),r.push(e),e=e.nextSibling}while(i>0)}else r.push(e);return $r(r)}function V(e,t,n){return function(r,i,o,a,s){return i=M(i[0],t,n),e(r,i,o,a,s)}}function U(e,r,o,a,s,c,l,p,f){function d(e,t,n,r){e&&(n&&(e=V(e,n,r)),e.require=g.require,e.directiveName=y,(S===g||g.$$isolateScope)&&(e=re(e,{isolateScope:!0})),l.push(e)),t&&(n&&(t=V(t,n,r)),t.require=g.require,t.directiveName=y,(S===g||g.$$isolateScope)&&(t=re(t,{isolateScope:!0})),p.push(t))}function h(e,t,n,r){var i;if(_(t)){var o=t.match(E),a=t.substring(o[0].length),s=o[1]||o[3],u="?"===o[2];if("^^"===s?n=n.parent():(i=r&&r[a],i=i&&i.instance),!i){var c="$"+a+"Controller";i=s?n.inheritedData(c):n.data(c)}if(!i&&!u)throw Si("ctreq","Controller '{0}', required by directive '{1}', can't be found!",a,e)}else if(Fr(t)){i=[];for(var l=0,p=t.length;p>l;l++)i[l]=h(e,t[l],n,r)}return i||null}function m(e,t,n,r,i,o){var a=ve();for(var s in r){var c=r[s],l={$scope:c===S||c.$$isolateScope?i:o,$element:e,$attrs:t,$transclude:n},p=c.controller;"@"==p&&(p=t[c.name]);var f=u(p,l,!0,c.controllerAs);a[c.name]=f,F||e.data("$"+c.name+"Controller",f.instance)}return a}function v(e,t,i,a,s,u){function c(e,t,r){var i;return P(e)||(r=t,t=e,e=n),F&&(i=b),r||(r=F?w.parent():w),s(e,t,i,r,k)}var f,d,v,g,y,b,x,w,E;if(r===i?(E=o,w=o.$$element):(w=$r(i),E=new ae(w,o)),S&&(y=t.$new(!0)),s&&(x=c,x.$$boundTransclude=s),T&&(b=m(w,E,x,T,y,t)),S&&(R.$$addScopeInfo(w,y,!0,!(D&&(D===S||D===S.$$originalDirective))),R.$$addScopeClass(w,!0),y.$$isolateBindings=S.$$isolateBindings,oe(t,E,y,y.$$isolateBindings,S,y)),b){var _,C,N=S||O;N&&b[N.name]&&(_=N.$$bindings.bindToController,g=b[N.name],g&&g.identifier&&_&&(C=g,u.$$destroyBindings=oe(t,E,g.instance,_,N)));for(f in b){g=b[f];var $=g();$!==g.instance&&(g.instance=$,w.data("$"+f+"Controller",$),g===C&&(u.$$destroyBindings(),u.$$destroyBindings=oe(t,E,$,_,N)))}}for(f=0,d=l.length;d>f;f++)v=l[f],ie(v,v.isolateScope?y:t,w,E,v.require&&h(v.directiveName,v.require,w,b),x);var k=t;for(S&&(S.template||null===S.templateUrl)&&(k=y),e&&e(k,i.childNodes,n,s),f=p.length-1;f>=0;f--)v=p[f],ie(v,v.isolateScope?y:t,w,E,v.require&&h(v.directiveName,v.require,w,b),x)}f=f||{};for(var g,y,b,x,C,N=-Number.MAX_VALUE,O=f.newScopeDirective,T=f.controllerDirectives,S=f.newIsolateScopeDirective,D=f.templateDirective,k=f.nonTlbTranscludeDirective,A=!1,j=!1,F=f.hasElementTranscludeDirective,L=o.$$element=$r(r),U=c,H=a,W=0,z=e.length;z>W;W++){g=e[W];var Y=g.$$start,X=g.$$end;if(Y&&(L=M(r,Y,X)),b=n,N>g.priority)break;if((C=g.scope)&&(g.templateUrl||(w(C)?(G("new/isolated scope",S||O,g,L),S=g):G("new/isolated scope",S,g,L)),O=O||g),y=g.name,!g.templateUrl&&g.controller&&(C=g.controller,T=T||ve(),G("'"+y+"' controller",T[y],g,L),T[y]=g),(C=g.transclude)&&(A=!0,g.$$tlb||(G("transclusion",k,g,L),k=g),"element"==C?(F=!0,N=g.priority,b=L,L=o.$$element=$r(t.createComment(" "+y+": "+o[y]+" ")),r=L[0],ne(s,B(b),r),H=R(b,a,N,U&&U.name,{nonTlbTranscludeDirective:k})):(b=$r(Pe(r)).contents(),L.empty(),H=R(b,a))),g.template)if(j=!0,G("template",D,g,L),D=g,C=$(g.template)?g.template(L,o):g.template,C=le(C),g.replace){if(U=g,b=_e(C)?[]:pt(Z(g.templateNamespace,Vr(C))),r=b[0],1!=b.length||r.nodeType!==Kr)throw Si("tplrt","Template for directive '{0}' must have exactly one root element. {1}",y,"");ne(s,L,r);var ee={$attr:{}},te=I(r,[],ee),se=e.splice(W+1,e.length-(W+1));S&&q(te),e=e.concat(te).concat(se),K(o,ee),z=e.length}else L.html(C);if(g.templateUrl)j=!0,G("template",D,g,L),D=g,g.replace&&(U=g),v=Q(e.splice(W,e.length-W),L,o,s,A&&H,l,p,{controllerDirectives:T,newScopeDirective:O!==g&&O,newIsolateScopeDirective:S,templateDirective:D,nonTlbTranscludeDirective:k}),z=e.length;else if(g.compile)try{x=g.compile(L,o,H),$(x)?d(null,x,Y,X):x&&d(x.pre,x.post,Y,X)}catch(ue){i(ue,J(L))}g.terminal&&(v.terminal=!0,N=Math.max(N,g.priority))}return v.scope=O&&O.scope===!0,v.transcludeOnThisElement=A,v.templateOnThisElement=j,v.transclude=H,f.hasElementTranscludeDirective=F,v}function q(e){for(var t=0,n=e.length;n>t;t++)e[t]=h(e[t],{$$isolateScope:!0})}function W(t,n,r,o,a,s,u){if(n===a)return null;var p=null;if(c.hasOwnProperty(n))for(var f,d=e.get(n+l),m=0,v=d.length;v>m;m++)try{f=d[m],(b(o)||o>f.priority)&&-1!=f.restrict.indexOf(r)&&(s&&(f=h(f,{$$start:s,$$end:u})),t.push(f),p=f)}catch(g){i(g)}return p}function z(t){if(c.hasOwnProperty(t))for(var n,r=e.get(t+l),i=0,o=r.length;o>i;i++)if(n=r[i],n.multiElement)return!0;return!1}function K(e,t){var n=t.$attr,r=e.$attr,i=e.$$element;o(e,function(r,i){"$"!=i.charAt(0)&&(t[i]&&t[i]!==r&&(r+=("style"===i?";":" ")+t[i]),e.$set(i,r,!0,n[i]))}),o(t,function(t,o){"class"==o?(D(i,t),e["class"]=(e["class"]?e["class"]+" ":"")+t):"style"==o?(i.attr("style",i.attr("style")+";"+t),e.style=(e.style?e.style+";":"")+t):"$"==o.charAt(0)||e.hasOwnProperty(o)||(e[o]=t,r[o]=n[o])})}function Q(e,t,n,r,i,s,u,c){var l,p,f=[],d=t[0],m=e.shift(),v=h(m,{templateUrl:null,transclude:null,replace:null,$$originalDirective:m}),g=$(m.templateUrl)?m.templateUrl(t,n):m.templateUrl,y=m.templateNamespace;return t.empty(),a(g).then(function(a){var h,b,x,E;if(a=le(a),m.replace){if(x=_e(a)?[]:pt(Z(y,Vr(a))),h=x[0],1!=x.length||h.nodeType!==Kr)throw Si("tplrt","Template for directive '{0}' must have exactly one root element. {1}",m.name,g);b={$attr:{}},ne(r,t,h);var _=I(h,[],b);w(m.scope)&&q(_),e=_.concat(e),K(n,b)}else h=d,t.html(a);for(e.unshift(v),l=U(e,h,n,i,t,m,s,u,c),o(r,function(e,n){e==h&&(r[n]=t[0])}),p=A(t[0].childNodes,i);f.length;){var C=f.shift(),N=f.shift(),$=f.shift(),O=f.shift(),T=t[0];if(!C.$$destroyed){if(N!==d){var P=N.className;c.hasElementTranscludeDirective&&m.replace||(T=Pe(h)),ne($,$r(N),T),D($r(T),P)}E=l.transcludeOnThisElement?j(C,l.transclude,O):O,l(p,C,T,r,E,l)}}f=null}),function(e,t,n,r,i){var o=i;t.$$destroyed||(f?f.push(t,n,r,o):(l.transcludeOnThisElement&&(o=j(t,l.transclude,i)),l(p,t,n,r,o,l)))}}function Y(e,t){var n=t.priority-e.priority;return 0!==n?n:e.name!==t.name?e.name<t.name?-1:1:e.index-t.index}function G(e,t,n,r){function i(e){return e?" (module: "+e+")":""}if(t)throw Si("multidir","Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}",t.name,i(t.$$moduleName),n.name,i(n.$$moduleName),e,J(r))}function X(e,t){var n=r(t,!0);n&&e.push({priority:0,compile:function(e){var t=e.parent(),r=!!t.length;return r&&R.$$addBindingClass(t),function(e,t){var i=t.parent();r||R.$$addBindingClass(i),R.$$addBindingInfo(i,n.expressions),e.$watch(n,function(e){t[0].nodeValue=e})}}})}function Z(e,n){switch(e=xr(e||"html")){case"svg":case"math":var r=t.createElement("div");return r.innerHTML="<"+e+">"+n+"</"+e+">",r.childNodes[0].childNodes;default:return n}}function ee(e,t){if("srcdoc"==t)return O.HTML;var n=F(e);return"xlinkHref"==t||"form"==n&&"action"==t||"img"!=n&&("src"==t||"ngSrc"==t)?O.RESOURCE_URL:void 0}function te(e,t,n,i,o){var a=ee(e,i);o=y[i]||o;var s=r(n,!0,a,o);if(s){if("multiple"===i&&"select"===F(e))throw Si("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",J(e));t.push({priority:100,compile:function(){return{pre:function(e,t,u){var c=u.$$observers||(u.$$observers=ve());if(C.test(i))throw Si("nodomevents","Interpolations for HTML DOM event attributes are disallowed. Please use the ng- versions (such as ng-click instead of onclick) instead.");var l=u[i];l!==n&&(s=l&&r(l,!0,a,o),n=l),s&&(u[i]=s(e),(c[i]||(c[i]=[])).$$inter=!0,(u.$$observers&&u.$$observers[i].$$scope||e).$watch(s,function(e,t){"class"===i&&e!=t?u.$updateClass(e,t):u.$set(i,e)}))}}}})}}function ne(e,n,r){var i,o,a=n[0],s=n.length,u=a.parentNode;if(e)for(i=0,o=e.length;o>i;i++)if(e[i]==a){e[i++]=r;for(var c=i,l=c+s-1,p=e.length;p>c;c++,l++)p>l?e[c]=e[l]:delete e[c];e.length-=s-1,e.context===a&&(e.context=r);break}u&&u.replaceChild(r,a);var f=t.createDocumentFragment();f.appendChild(a),$r.hasData(a)&&($r(r).data($r(a).data()),Or?(Mr=!0,Or.cleanData([a])):delete $r.cache[a[$r.expando]]);for(var d=1,h=n.length;h>d;d++){var m=n[d];$r(m).remove(),f.appendChild(m),delete n[d]}n[0]=r,n.length=1}function re(e,t){return p(function(){return e.apply(null,arguments)},e,t)}function ie(e,t,n,r,o,a){try{e(t,n,r,o,a)}catch(s){i(s,J(n))}}function oe(e,t,n,i,a,u){var c;o(i,function(i,o){var u,l,p,f,d=i.attrName,h=i.optional,v=i.mode;switch(v){case"@":h||wr.call(t,d)||(n[o]=t[d]=void 0),t.$observe(d,function(e){_(e)&&(n[o]=e)}),t.$$observers[d].$$scope=e,_(t[d])&&(n[o]=r(t[d])(e));break;case"=":if(!wr.call(t,d)){if(h)break;t[d]=void 0}if(h&&!t[d])break;l=s(t[d]),f=l.literal?H:function(e,t){return e===t||e!==e&&t!==t},p=l.assign||function(){throw u=n[o]=l(e),Si("nonassign","Expression '{0}' used with directive '{1}' is non-assignable!",t[d],a.name)},u=n[o]=l(e);var g=function(t){return f(t,n[o])||(f(t,u)?p(e,t=n[o]):n[o]=t),u=t};g.$stateful=!0;var y;y=i.collection?e.$watchCollection(t[d],g):e.$watch(s(t[d],g),null,l.literal),c=c||[],c.push(y);break;case"&":if(l=t.hasOwnProperty(d)?s(t[d]):m,l===m&&h)break;n[o]=function(t){return l(e,t)}}});var l=c?function(){for(var e=0,t=c.length;t>e;++e)c[e]()}:m;return u&&l!==m?(u.$on("$destroy",l),m):l}var ae=function(e,t){if(t){var n,r,i,o=Object.keys(t);for(n=0,r=o.length;r>n;n++)i=o[n],this[i]=t[i]}else this.$attr={};this.$$element=e};ae.prototype={$normalize:ct,$addClass:function(e){e&&e.length>0&&T.addClass(this.$$element,e)},$removeClass:function(e){e&&e.length>0&&T.removeClass(this.$$element,e)},$updateClass:function(e,t){var n=lt(e,t);n&&n.length&&T.addClass(this.$$element,n);var r=lt(t,e);r&&r.length&&T.removeClass(this.$$element,r)},$set:function(e,t,n,r){var a,s=this.$$element[0],u=Be(s,e),c=We(e),l=e;if(u?(this.$$element.prop(e,t),r=u):c&&(this[c]=t,l=c),this[e]=t,r?this.$attr[e]=r:(r=this.$attr[e],r||(this.$attr[e]=r=ce(e,"-"))),a=F(this.$$element),"a"===a&&"href"===e||"img"===a&&"src"===e)this[e]=t=S(t,"src"===e);else if("img"===a&&"srcset"===e){for(var p="",f=Vr(t),d=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,h=/\s/.test(f)?d:/(,)/,m=f.split(h),v=Math.floor(m.length/2),g=0;v>g;g++){var y=2*g;p+=S(Vr(m[y]),!0),p+=" "+Vr(m[y+1])}var x=Vr(m[2*g]).split(/\s/);p+=S(Vr(x[0]),!0),2===x.length&&(p+=" "+Vr(x[1])),this[e]=t=p}n!==!1&&(null===t||b(t)?this.$$element.removeAttr(r):this.$$element.attr(r,t));var w=this.$$observers;w&&o(w[l],function(e){try{e(t)}catch(n){i(n)}})},$observe:function(e,t){var n=this,r=n.$$observers||(n.$$observers=ve()),i=r[e]||(r[e]=[]);return i.push(t),g.$evalAsync(function(){i.$$inter||!n.hasOwnProperty(e)||b(n[e])||t(n[e])}),function(){L(i,t)}}};var se=r.startSymbol(),ue=r.endSymbol(),le="{{"==se||"}}"==ue?v:function(e){return e.replace(/\{\{/g,se).replace(/}}/g,ue)},fe=/^ngAttr[A-Z]/;return R.$$addBindingInfo=N?function(e,t){var n=e.data("$binding")||[];Fr(t)?n=n.concat(t):n.push(t),e.data("$binding",n)}:m,R.$$addBindingClass=N?function(e){D(e,"ng-binding")}:m,R.$$addScopeInfo=N?function(e,t,n,r){var i=n?r?"$isolateScopeNoTemplate":"$isolateScope":"$scope";e.data(i,t)}:m,R.$$addScopeClass=N?function(e,t){D(e,t?"ng-isolate-scope":"ng-scope")}:m,R}]}function ct(e){return Ee(e.replace(Di,""))}function lt(e,t){var n="",r=e.split(/\s+/),i=t.split(/\s+/);e:for(var o=0;o<r.length;o++){for(var a=r[o],s=0;s<i.length;s++)if(a==i[s])continue e;n+=(n.length>0?" ":"")+a}return n}function pt(e){e=$r(e);var t=e.length;if(1>=t)return e;for(;t--;){var n=e[t];n.nodeType===Gr&&Sr.call(e,t,1)}return e}function ft(e,t){if(t&&_(t))return t;if(_(e)){var n=ki.exec(e);if(n)return n[3]}}function dt(){var e={},t=!1;this.register=function(t,n){de(t,"controller"),w(t)?p(e,t):e[t]=n},this.allowGlobals=function(){t=!0},this.$get=["$injector","$window",function(i,o){function a(e,t,n,i){if(!e||!w(e.$scope))throw r("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",i,t);e.$scope[t]=n}return function(r,s,u,c){var l,f,d,h;if(u=u===!0,c&&_(c)&&(h=c),_(r)){if(f=r.match(ki),!f)throw Ri("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",r);d=f[1],h=h||f[3],r=e.hasOwnProperty(d)?e[d]:he(s.$scope,d,!0)||(t?he(o,d,!0):n),fe(r,d,!0)}if(u){var m=(Fr(r)?r[r.length-1]:r).prototype;l=Object.create(m||null),h&&a(s,h,l,d||r.name);var v;return v=p(function(){var e=i.invoke(r,l,s,d);return e!==l&&(w(e)||$(e))&&(l=e,h&&a(s,h,l,d||r.name)),l},{instance:l,identifier:h})}return l=i.instantiate(r,s,d),h&&a(s,h,l,d||r.name),l}}]}function ht(){this.$get=["$window",function(e){return $r(e.document)}]}function mt(){this.$get=["$log",function(e){return function(){e.error.apply(e,arguments)}}]}function vt(e){return w(e)?N(e)?e.toISOString():K(e):e}function gt(){this.$get=function(){return function(e){if(!e)return"";var t=[];return a(e,function(e,n){null===e||b(e)||(Fr(e)?o(e,function(e){t.push(re(n)+"="+re(vt(e)))}):t.push(re(n)+"="+re(vt(e))))}),t.join("&")}}}function yt(){this.$get=function(){return function(e){function t(e,r,i){null===e||b(e)||(Fr(e)?o(e,function(e,n){t(e,r+"["+(w(e)?n:"")+"]")}):w(e)&&!N(e)?a(e,function(e,n){t(e,r+(i?"":"[")+n+(i?"":"]"))}):n.push(re(r)+"="+re(vt(e))))}if(!e)return"";var n=[];return t(e,"",!0),n.join("&")}}}function bt(e,t){if(_(e)){var n=e.replace(Li,"").trim();if(n){var r=t("Content-Type");(r&&0===r.indexOf(ji)||xt(n))&&(e=Q(n))}}return e}function xt(e){var t=e.match(Mi);return t&&Fi[t[0]].test(e)}function wt(e){function t(e,t){e&&(r[e]=r[e]?r[e]+", "+t:t)}var n,r=ve();return _(e)?o(e.split("\n"),function(e){n=e.indexOf(":"),t(xr(Vr(e.substr(0,n))),Vr(e.substr(n+1)))}):w(e)&&o(e,function(e,n){t(xr(n),Vr(e))}),r}function Et(e){var t;return function(n){if(t||(t=wt(e)),n){var r=t[xr(n)];return void 0===r&&(r=null),r}return t}}function _t(e,t,n,r){return $(r)?r(e,t,n):(o(r,function(r){e=r(e,t,n)}),e)}function Ct(e){return e>=200&&300>e}function Nt(){var e=this.defaults={transformResponse:[bt],transformRequest:[function(e){return!w(e)||S(e)||R(e)||D(e)?e:K(e)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:U(Ii),put:U(Ii),patch:U(Ii)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"},t=!1;this.useApplyAsync=function(e){return x(e)?(t=!!e,this):t};var i=!0;this.useLegacyPromiseExtensions=function(e){return x(e)?(i=!!e,this):i};var a=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(s,u,c,l,f,d){function h(t){function a(e){var t=p({},e);return t.data=e.data?_t(e.data,e.headers,e.status,c.transformResponse):e.data,Ct(e.status)?t:f.reject(t)}function s(e,t){var n,r={};return o(e,function(e,i){$(e)?(n=e(t),null!=n&&(r[i]=n)):r[i]=e}),r}function u(t){var n,r,i,o=e.headers,a=p({},t.headers);o=p({},o.common,o[xr(t.method)]);e:for(n in o){r=xr(n);for(i in a)if(xr(i)===r)continue e;a[n]=o[n]}return s(a,U(t))}if(!jr.isObject(t))throw r("$http")("badreq","Http request configuration must be an object. Received: {0}",t);var c=p({method:"get",transformRequest:e.transformRequest,transformResponse:e.transformResponse,paramSerializer:e.paramSerializer},t);c.headers=u(t),c.method=Er(c.method),c.paramSerializer=_(c.paramSerializer)?d.get(c.paramSerializer):c.paramSerializer;var l=function(t){var r=t.headers,i=_t(t.data,Et(r),n,t.transformRequest);return b(i)&&o(r,function(e,t){"content-type"===xr(t)&&delete r[t]}),b(t.withCredentials)&&!b(e.withCredentials)&&(t.withCredentials=e.withCredentials),g(t,i).then(a,a)},h=[l,n],m=f.when(c);for(o(C,function(e){(e.request||e.requestError)&&h.unshift(e.request,e.requestError),(e.response||e.responseError)&&h.push(e.response,e.responseError)});h.length;){var v=h.shift(),y=h.shift();m=m.then(v,y)}return i?(m.success=function(e){return fe(e,"fn"),m.then(function(t){e(t.data,t.status,t.headers,c)}),m},m.error=function(e){return fe(e,"fn"),m.then(null,function(t){e(t.data,t.status,t.headers,c)}),m}):(m.success=Ui("success"),m.error=Ui("error")),m}function m(){o(arguments,function(e){h[e]=function(t,n){return h(p({},n||{},{method:e,url:t}))}})}function v(){o(arguments,function(e){h[e]=function(t,n,r){return h(p({},r||{},{method:e,url:t,data:n}))}})}function g(r,i){function o(e,n,r,i){function o(){a(n,e,r,i)}d&&(Ct(e)?d.put(C,[e,n,wt(r),i]):d.remove(C)),t?l.$applyAsync(o):(o(),l.$$phase||l.$apply())}function a(e,t,n,i){t=t>=-1?t:0,(Ct(t)?v.resolve:v.reject)({data:e,status:t,headers:Et(n),config:r,statusText:i})}function c(e){a(e.data,e.status,U(e.headers()),e.statusText)}function p(){var e=h.pendingRequests.indexOf(r);-1!==e&&h.pendingRequests.splice(e,1)}var d,m,v=f.defer(),g=v.promise,_=r.headers,C=y(r.url,r.paramSerializer(r.params));if(h.pendingRequests.push(r),g.then(p,p),!r.cache&&!e.cache||r.cache===!1||"GET"!==r.method&&"JSONP"!==r.method||(d=w(r.cache)?r.cache:w(e.cache)?e.cache:E),d&&(m=d.get(C),x(m)?A(m)?m.then(c,c):Fr(m)?a(m[1],m[0],U(m[2]),m[3]):a(m,200,{},"OK"):d.put(C,g)),b(m)){var N=On(r.url)?u()[r.xsrfCookieName||e.xsrfCookieName]:n;N&&(_[r.xsrfHeaderName||e.xsrfHeaderName]=N),s(r.method,C,i,o,_,r.timeout,r.withCredentials,r.responseType)}return g}function y(e,t){return t.length>0&&(e+=(-1==e.indexOf("?")?"?":"&")+t),e}var E=c("$http");e.paramSerializer=_(e.paramSerializer)?d.get(e.paramSerializer):e.paramSerializer;var C=[];return o(a,function(e){C.unshift(_(e)?d.get(e):d.invoke(e))}),h.pendingRequests=[],m("get","delete","head","jsonp"),v("post","put","patch"),h.defaults=e,h}]}function $t(){this.$get=function(){return function(){return new e.XMLHttpRequest}}}function Ot(){this.$get=["$browser","$window","$document","$xhrFactory",function(e,t,n,r){return Tt(e,r,e.defer,t.angular.callbacks,n[0])}]}function Tt(e,t,n,r,i){function a(e,t,n){var o=i.createElement("script"),a=null;return o.type="text/javascript",o.src=e,o.async=!0,a=function(e){ri(o,"load",a),ri(o,"error",a),i.body.removeChild(o),o=null;var s=-1,u="unknown";e&&("load"!==e.type||r[t].called||(e={type:"error"}),u=e.type,s="error"===e.type?404:200),n&&n(s,u)},ni(o,"load",a),ni(o,"error",a),i.body.appendChild(o),a}return function(i,s,u,c,l,p,f,d){function h(){y&&y(),w&&w.abort()}function v(t,r,i,o,a){x(C)&&n.cancel(C),y=w=null,t(r,i,o,a),e.$$completeOutstandingRequest(m)}if(e.$$incOutstandingRequestCount(),s=s||e.url(),"jsonp"==xr(i)){var g="_"+(r.counter++).toString(36);r[g]=function(e){r[g].data=e,r[g].called=!0};var y=a(s.replace("JSON_CALLBACK","angular.callbacks."+g),g,function(e,t){v(c,e,r[g].data,"",t),r[g]=m})}else{var w=t(i,s);w.open(i,s,!0),o(l,function(e,t){x(e)&&w.setRequestHeader(t,e)}),w.onload=function(){var e=w.statusText||"",t="response"in w?w.response:w.responseText,n=1223===w.status?204:w.status;0===n&&(n=t?200:"file"==$n(s).protocol?404:0),v(c,n,t,w.getAllResponseHeaders(),e)};var E=function(){v(c,-1,null,null,"")};if(w.onerror=E,w.onabort=E,f&&(w.withCredentials=!0),d)try{w.responseType=d}catch(_){if("json"!==d)throw _}w.send(b(u)?null:u)}if(p>0)var C=n(h,p);else A(p)&&p.then(h)}}function Pt(){var e="{{",t="}}";this.startSymbol=function(t){return t?(e=t,this):e},this.endSymbol=function(e){return e?(t=e,this):t},this.$get=["$parse","$exceptionHandler","$sce",function(n,r,i){function o(e){return"\\\\\\"+e}function a(n){return n.replace(f,e).replace(d,t)}function s(e){if(null==e)return"";switch(typeof e){case"string":break;case"number":e=""+e;break;default:e=K(e)}return e}function u(o,u,f,d){function h(e){try{return e=T(e),d&&!x(e)?e:s(e)}catch(t){r(Hi.interr(o,t))}}d=!!d;for(var m,v,g,y=0,w=[],E=[],_=o.length,C=[],N=[];_>y;){if(-1==(m=o.indexOf(e,y))||-1==(v=o.indexOf(t,m+c))){y!==_&&C.push(a(o.substring(y)));break}y!==m&&C.push(a(o.substring(y,m))),g=o.substring(m+c,v),w.push(g),E.push(n(g,h)),y=v+l,N.push(C.length),C.push("")}if(f&&C.length>1&&Hi.throwNoconcat(o),!u||w.length){var O=function(e){for(var t=0,n=w.length;n>t;t++){if(d&&b(e[t]))return;C[N[t]]=e[t]}return C.join("")},T=function(e){return f?i.getTrusted(f,e):i.valueOf(e)};return p(function(e){var t=0,n=w.length,i=new Array(n);try{for(;n>t;t++)i[t]=E[t](e);return O(i)}catch(a){r(Hi.interr(o,a))}},{exp:o,expressions:w,$$watchDelegate:function(e,t){var n;return e.$watchGroup(E,function(r,i){var o=O(r);$(t)&&t.call(this,o,r!==i?n:o,e),n=o})}})}}var c=e.length,l=t.length,f=new RegExp(e.replace(/./g,o),"g"),d=new RegExp(t.replace(/./g,o),"g");return u.startSymbol=function(){return e},u.endSymbol=function(){return t},u}]}function St(){this.$get=["$rootScope","$window","$q","$$q",function(e,t,n,r){function i(i,a,s,u){var c=arguments.length>4,l=c?B(arguments,4):[],p=t.setInterval,f=t.clearInterval,d=0,h=x(u)&&!u,m=(h?r:n).defer(),v=m.promise;return s=x(s)?s:0,v.then(null,null,c?function(){i.apply(null,l)}:i),v.$$intervalId=p(function(){m.notify(d++),s>0&&d>=s&&(m.resolve(d),f(v.$$intervalId),delete o[v.$$intervalId]),h||e.$apply()},a),o[v.$$intervalId]=m,v}var o={};return i.cancel=function(e){return e&&e.$$intervalId in o?(o[e.$$intervalId].reject("canceled"),t.clearInterval(e.$$intervalId),delete o[e.$$intervalId],!0):!1},i}]}function Dt(e){for(var t=e.split("/"),n=t.length;n--;)t[n]=ne(t[n]);return t.join("/")}function Rt(e,t){var n=$n(e);t.$$protocol=n.protocol,t.$$host=n.hostname,t.$$port=d(n.port)||Bi[n.protocol]||null}function kt(e,t){var n="/"!==e.charAt(0);n&&(e="/"+e);var r=$n(e);t.$$path=decodeURIComponent(n&&"/"===r.pathname.charAt(0)?r.pathname.substring(1):r.pathname),t.$$search=ee(r.search),t.$$hash=decodeURIComponent(r.hash),t.$$path&&"/"!=t.$$path.charAt(0)&&(t.$$path="/"+t.$$path)}function At(e,t){return 0===t.indexOf(e)?t.substr(e.length):void 0}function jt(e){var t=e.indexOf("#");return-1==t?e:e.substr(0,t)}function It(e){return e.replace(/(#.+)|#$/,"$1")}function Mt(e){return e.substr(0,jt(e).lastIndexOf("/")+1)}function Ft(e){return e.substring(0,e.indexOf("/",e.indexOf("//")+2))}function Lt(e,t,n){this.$$html5=!0,n=n||"",Rt(e,this),this.$$parse=function(e){var n=At(t,e);if(!_(n))throw Wi("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',e,t);kt(n,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var e=te(this.$$search),n=this.$$hash?"#"+ne(this.$$hash):"";this.$$url=Dt(this.$$path)+(e?"?"+e:"")+n,this.$$absUrl=t+this.$$url.substr(1)},this.$$parseLinkUrl=function(r,i){if(i&&"#"===i[0])return this.hash(i.slice(1)),!0;var o,a,s;return x(o=At(e,r))?(a=o,s=x(o=At(n,o))?t+(At("/",o)||o):e+a):x(o=At(t,r))?s=t+o:t==r+"/"&&(s=t),s&&this.$$parse(s),!!s}}function Vt(e,t,n){Rt(e,this),this.$$parse=function(r){function i(e,t,n){var r,i=/^\/[A-Z]:(\/.*)/;return 0===t.indexOf(n)&&(t=t.replace(n,"")),i.exec(t)?e:(r=i.exec(e),r?r[1]:e)}var o,a=At(e,r)||At(t,r);b(a)||"#"!==a.charAt(0)?this.$$html5?o=a:(o="",b(a)&&(e=r,this.replace())):(o=At(n,a),b(o)&&(o=a)),kt(o,this),this.$$path=i(this.$$path,o,e),this.$$compose()},this.$$compose=function(){var t=te(this.$$search),r=this.$$hash?"#"+ne(this.$$hash):"";this.$$url=Dt(this.$$path)+(t?"?"+t:"")+r,this.$$absUrl=e+(this.$$url?n+this.$$url:"")},this.$$parseLinkUrl=function(t){return jt(e)==jt(t)?(this.$$parse(t),!0):!1}}function Ut(e,t,n){this.$$html5=!0,Vt.apply(this,arguments),this.$$parseLinkUrl=function(r,i){if(i&&"#"===i[0])return this.hash(i.slice(1)),!0;var o,a;return e==jt(r)?o=r:(a=At(t,r))?o=e+n+a:t===r+"/"&&(o=t),o&&this.$$parse(o),!!o},this.$$compose=function(){var t=te(this.$$search),r=this.$$hash?"#"+ne(this.$$hash):"";this.$$url=Dt(this.$$path)+(t?"?"+t:"")+r,this.$$absUrl=e+n+this.$$url}}function Ht(e){return function(){return this[e]}}function qt(e,t){return function(n){return b(n)?this[e]:(this[e]=t(n),this.$$compose(),this)}}function Bt(){var e="",t={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(t){return x(t)?(e=t,this):e},this.html5Mode=function(e){return k(e)?(t.enabled=e,this):w(e)?(k(e.enabled)&&(t.enabled=e.enabled),k(e.requireBase)&&(t.requireBase=e.requireBase),k(e.rewriteLinks)&&(t.rewriteLinks=e.rewriteLinks),this):t},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,r,i,o,a){function s(e,t,n){var i=c.url(),o=c.$$state;try{r.url(e,t,n),c.$$state=r.state()}catch(a){throw c.url(i),c.$$state=o,a}}function u(e,t){n.$broadcast("$locationChangeSuccess",c.absUrl(),e,c.$$state,t)}var c,l,p,f=r.baseHref(),d=r.url();if(t.enabled){if(!f&&t.requireBase)throw Wi("nobase","$location in HTML5 mode requires a <base> tag to be present!");p=Ft(d)+(f||"/"),l=i.history?Lt:Ut}else p=jt(d),l=Vt;var h=Mt(p);c=new l(p,h,"#"+e),c.$$parseLinkUrl(d,d),c.$$state=r.state();var m=/^\s*(javascript|mailto):/i;o.on("click",function(e){if(t.rewriteLinks&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&2!=e.which&&2!=e.button){for(var i=$r(e.target);"a"!==F(i[0]);)if(i[0]===o[0]||!(i=i.parent())[0])return;var s=i.prop("href"),u=i.attr("href")||i.attr("xlink:href");w(s)&&"[object SVGAnimatedString]"===s.toString()&&(s=$n(s.animVal).href),m.test(s)||!s||i.attr("target")||e.isDefaultPrevented()||c.$$parseLinkUrl(s,u)&&(e.preventDefault(),c.absUrl()!=r.url()&&(n.$apply(),a.angular["ff-684208-preventDefault"]=!0))}}),It(c.absUrl())!=It(d)&&r.url(c.absUrl(),!0);var v=!0;return r.onUrlChange(function(e,t){return b(At(h,e))?void(a.location.href=e):(n.$evalAsync(function(){var r,i=c.absUrl(),o=c.$$state;c.$$parse(e),c.$$state=t,r=n.$broadcast("$locationChangeStart",e,i,t,o).defaultPrevented,c.absUrl()===e&&(r?(c.$$parse(i),c.$$state=o,s(i,!1,o)):(v=!1,u(i,o)))}),void(n.$$phase||n.$digest()))}),n.$watch(function(){var e=It(r.url()),t=It(c.absUrl()),o=r.state(),a=c.$$replace,l=e!==t||c.$$html5&&i.history&&o!==c.$$state;(v||l)&&(v=!1,n.$evalAsync(function(){var t=c.absUrl(),r=n.$broadcast("$locationChangeStart",t,e,c.$$state,o).defaultPrevented;c.absUrl()===t&&(r?(c.$$parse(e),c.$$state=o):(l&&s(t,a,o===c.$$state?null:c.$$state),u(e,o)))})),c.$$replace=!1}),c}]}function Wt(){var e=!0,t=this;this.debugEnabled=function(t){return x(t)?(e=t,this):e},this.$get=["$window",function(n){function r(e){return e instanceof Error&&(e.stack?e=e.message&&-1===e.stack.indexOf(e.message)?"Error: "+e.message+"\n"+e.stack:e.stack:e.sourceURL&&(e=e.message+"\n"+e.sourceURL+":"+e.line)),e}function i(e){var t=n.console||{},i=t[e]||t.log||m,a=!1;try{a=!!i.apply}catch(s){}return a?function(){var e=[];return o(arguments,function(t){e.push(r(t))}),i.apply(t,e)}:function(e,t){i(e,null==t?"":t)}}return{log:i("log"),info:i("info"),warn:i("warn"),error:i("error"),debug:function(){var n=i("debug");return function(){e&&n.apply(t,arguments)}}()}}]}function zt(e,t){if("__defineGetter__"===e||"__defineSetter__"===e||"__lookupGetter__"===e||"__lookupSetter__"===e||"__proto__"===e)throw Ki("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",t);return e}function Kt(e,t){if(e+="",!_(e))throw Ki("iseccst","Cannot convert object to primitive value! Expression: {0}",t);return e}function Qt(e,t){if(e){if(e.constructor===e)throw Ki("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);
26
+
27
+ if(e.window===e)throw Ki("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",t);if(e.children&&(e.nodeName||e.prop&&e.attr&&e.find))throw Ki("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",t);if(e===Object)throw Ki("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",t)}return e}function Yt(e,t){if(e){if(e.constructor===e)throw Ki("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);if(e===Qi||e===Yi||e===Gi)throw Ki("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",t)}}function Gt(e,t){if(e&&(e===0..constructor||e===(!1).constructor||e==="".constructor||e==={}.constructor||e===[].constructor||e===Function.constructor))throw Ki("isecaf","Assigning to a constructor is disallowed! Expression: {0}",t)}function Xt(e,t){return"undefined"!=typeof e?e:t}function Jt(e,t){return"undefined"==typeof e?t:"undefined"==typeof t?e:e+t}function Zt(e,t){var n=e(t);return!n.$stateful}function en(e,t){var n,r;switch(e.type){case eo.Program:n=!0,o(e.body,function(e){en(e.expression,t),n=n&&e.expression.constant}),e.constant=n;break;case eo.Literal:e.constant=!0,e.toWatch=[];break;case eo.UnaryExpression:en(e.argument,t),e.constant=e.argument.constant,e.toWatch=e.argument.toWatch;break;case eo.BinaryExpression:en(e.left,t),en(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.left.toWatch.concat(e.right.toWatch);break;case eo.LogicalExpression:en(e.left,t),en(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.constant?[]:[e];break;case eo.ConditionalExpression:en(e.test,t),en(e.alternate,t),en(e.consequent,t),e.constant=e.test.constant&&e.alternate.constant&&e.consequent.constant,e.toWatch=e.constant?[]:[e];break;case eo.Identifier:e.constant=!1,e.toWatch=[e];break;case eo.MemberExpression:en(e.object,t),e.computed&&en(e.property,t),e.constant=e.object.constant&&(!e.computed||e.property.constant),e.toWatch=[e];break;case eo.CallExpression:n=e.filter?Zt(t,e.callee.name):!1,r=[],o(e.arguments,function(e){en(e,t),n=n&&e.constant,e.constant||r.push.apply(r,e.toWatch)}),e.constant=n,e.toWatch=e.filter&&Zt(t,e.callee.name)?r:[e];break;case eo.AssignmentExpression:en(e.left,t),en(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=[e];break;case eo.ArrayExpression:n=!0,r=[],o(e.elements,function(e){en(e,t),n=n&&e.constant,e.constant||r.push.apply(r,e.toWatch)}),e.constant=n,e.toWatch=r;break;case eo.ObjectExpression:n=!0,r=[],o(e.properties,function(e){en(e.value,t),n=n&&e.value.constant,e.value.constant||r.push.apply(r,e.value.toWatch)}),e.constant=n,e.toWatch=r;break;case eo.ThisExpression:e.constant=!1,e.toWatch=[]}}function tn(e){if(1==e.length){var t=e[0].expression,r=t.toWatch;return 1!==r.length?r:r[0]!==t?r:n}}function nn(e){return e.type===eo.Identifier||e.type===eo.MemberExpression}function rn(e){return 1===e.body.length&&nn(e.body[0].expression)?{type:eo.AssignmentExpression,left:e.body[0].expression,right:{type:eo.NGValueParameter},operator:"="}:void 0}function on(e){return 0===e.body.length||1===e.body.length&&(e.body[0].expression.type===eo.Literal||e.body[0].expression.type===eo.ArrayExpression||e.body[0].expression.type===eo.ObjectExpression)}function an(e){return e.constant}function sn(e,t){this.astBuilder=e,this.$filter=t}function un(e,t){this.astBuilder=e,this.$filter=t}function cn(e){return"constructor"==e}function ln(e){return $(e.valueOf)?e.valueOf():no.call(e)}function pn(){var e=ve(),t=ve();this.$get=["$filter",function(r){function i(e,t){return null==e||null==t?e===t:"object"==typeof e&&(e=ln(e),"object"==typeof e)?!1:e===t||e!==e&&t!==t}function a(e,t,r,o,a){var s,u=o.inputs;if(1===u.length){var c=i;return u=u[0],e.$watch(function(e){var t=u(e);return i(t,c)||(s=o(e,n,n,[t]),c=t&&ln(t)),s},t,r,a)}for(var l=[],p=[],f=0,d=u.length;d>f;f++)l[f]=i,p[f]=null;return e.$watch(function(e){for(var t=!1,r=0,a=u.length;a>r;r++){var c=u[r](e);(t||(t=!i(c,l[r])))&&(p[r]=c,l[r]=c&&ln(c))}return t&&(s=o(e,n,n,p)),s},t,r,a)}function s(e,t,n,r){var i,o;return i=e.$watch(function(e){return r(e)},function(e,n,r){o=e,$(t)&&t.apply(this,arguments),x(e)&&r.$$postDigest(function(){x(o)&&i()})},n)}function u(e,t,n,r){function i(e){var t=!0;return o(e,function(e){x(e)||(t=!1)}),t}var a,s;return a=e.$watch(function(e){return r(e)},function(e,n,r){s=e,$(t)&&t.call(this,e,n,r),i(e)&&r.$$postDigest(function(){i(s)&&a()})},n)}function c(e,t,n,r){var i;return i=e.$watch(function(e){return r(e)},function(){$(t)&&t.apply(this,arguments),i()},n)}function l(e,t){if(!t)return e;var n=e.$$watchDelegate,r=n!==u&&n!==s,i=r?function(n,r,i,o){var a=e(n,r,i,o);return t(a,n,r)}:function(n,r,i,o){var a=e(n,r,i,o),s=t(a,n,r);return x(a)?s:a};return e.$$watchDelegate&&e.$$watchDelegate!==a?i.$$watchDelegate=e.$$watchDelegate:t.$stateful||(i.$$watchDelegate=a,i.inputs=e.inputs?e.inputs:[e]),i}var p=Hr().noUnsafeEval,f={csp:p,expensiveChecks:!1},d={csp:p,expensiveChecks:!0};return function(n,i,o){var p,h,v;switch(typeof n){case"string":n=n.trim(),v=n;var g=o?t:e;if(p=g[v],!p){":"===n.charAt(0)&&":"===n.charAt(1)&&(h=!0,n=n.substring(2));var y=o?d:f,b=new Zi(y),x=new to(b,r,y);p=x.parse(n),p.constant?p.$$watchDelegate=c:h?p.$$watchDelegate=p.literal?u:s:p.inputs&&(p.$$watchDelegate=a),g[v]=p}return l(p,i);case"function":return l(n,i);default:return m}}}]}function fn(){this.$get=["$rootScope","$exceptionHandler",function(e,t){return hn(function(t){e.$evalAsync(t)},t)}]}function dn(){this.$get=["$browser","$exceptionHandler",function(e,t){return hn(function(t){e.defer(t)},t)}]}function hn(e,t){function i(e,t,n){function r(t){return function(n){i||(i=!0,t.call(e,n))}}var i=!1;return[r(t),r(n)]}function a(){this.$$state={status:0}}function s(e,t){return function(n){t.call(e,n)}}function u(e){var r,i,o;o=e.pending,e.processScheduled=!1,e.pending=n;for(var a=0,s=o.length;s>a;++a){i=o[a][0],r=o[a][e.status];try{$(r)?i.resolve(r(e.value)):1===e.status?i.resolve(e.value):i.reject(e.value)}catch(u){i.reject(u),t(u)}}}function c(t){!t.processScheduled&&t.pending&&(t.processScheduled=!0,e(function(){u(t)}))}function l(){this.promise=new a,this.resolve=s(this,this.resolve),this.reject=s(this,this.reject),this.notify=s(this,this.notify)}function f(e){var t=new l,n=0,r=Fr(e)?[]:{};return o(e,function(e,i){n++,y(e).then(function(e){r.hasOwnProperty(i)||(r[i]=e,--n||t.resolve(r))},function(e){r.hasOwnProperty(i)||t.reject(e)})}),0===n&&t.resolve(r),t.promise}var d=r("$q",TypeError),h=function(){return new l};p(a.prototype,{then:function(e,t,n){if(b(e)&&b(t)&&b(n))return this;var r=new l;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([r,e,t,n]),this.$$state.status>0&&c(this.$$state),r.promise},"catch":function(e){return this.then(null,e)},"finally":function(e,t){return this.then(function(t){return g(t,!0,e)},function(t){return g(t,!1,e)},t)}}),p(l.prototype,{resolve:function(e){this.promise.$$state.status||(e===this.promise?this.$$reject(d("qcycle","Expected promise to be resolved with value other than itself '{0}'",e)):this.$$resolve(e))},$$resolve:function(e){var n,r;r=i(this,this.$$resolve,this.$$reject);try{(w(e)||$(e))&&(n=e&&e.then),$(n)?(this.promise.$$state.status=-1,n.call(e,r[0],r[1],this.notify)):(this.promise.$$state.value=e,this.promise.$$state.status=1,c(this.promise.$$state))}catch(o){r[1](o),t(o)}},reject:function(e){this.promise.$$state.status||this.$$reject(e)},$$reject:function(e){this.promise.$$state.value=e,this.promise.$$state.status=2,c(this.promise.$$state)},notify:function(n){var r=this.promise.$$state.pending;this.promise.$$state.status<=0&&r&&r.length&&e(function(){for(var e,i,o=0,a=r.length;a>o;o++){i=r[o][0],e=r[o][3];try{i.notify($(e)?e(n):n)}catch(s){t(s)}}})}});var m=function(e){var t=new l;return t.reject(e),t.promise},v=function(e,t){var n=new l;return t?n.resolve(e):n.reject(e),n.promise},g=function(e,t,n){var r=null;try{$(n)&&(r=n())}catch(i){return v(i,!1)}return A(r)?r.then(function(){return v(e,t)},function(e){return v(e,!1)}):v(e,t)},y=function(e,t,n,r){var i=new l;return i.resolve(e),i.promise.then(t,n,r)},x=y,E=function _(e){function t(e){r.resolve(e)}function n(e){r.reject(e)}if(!$(e))throw d("norslvr","Expected resolverFn, got '{0}'",e);if(!(this instanceof _))return new _(e);var r=new l;return e(t,n),r.promise};return E.defer=h,E.reject=m,E.when=y,E.resolve=x,E.all=f,E}function mn(){this.$get=["$window","$timeout",function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame,r=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,i=!!n,o=i?function(e){var t=n(e);return function(){r(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return o.supported=i,o}]}function vn(){function e(e){function t(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=u(),this.$$ChildScope=null}return t.prototype=e,t}var t=10,n=r("$rootScope"),a=null,s=null;this.digestTtl=function(e){return arguments.length&&(t=e),t},this.$get=["$injector","$exceptionHandler","$parse","$browser",function(r,c,l,p){function f(e){e.currentScope.$$destroyed=!0}function d(){this.$id=u(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}function h(e){if(C.$$phase)throw n("inprog","{0} already in progress",C.$$phase);C.$$phase=e}function v(){C.$$phase=null}function g(e,t){do e.$$watchersCount+=t;while(e=e.$parent)}function y(e,t,n){do e.$$listenerCount[n]-=t,0===e.$$listenerCount[n]&&delete e.$$listenerCount[n];while(e=e.$parent)}function x(){}function E(){for(;T.length;)try{T.shift()()}catch(e){c(e)}s=null}function _(){null===s&&(s=p.defer(function(){C.$apply(E)}))}d.prototype={constructor:d,$new:function(t,n){var r;return n=n||this,t?(r=new d,r.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=e(this)),r=new this.$$ChildScope),r.$parent=n,r.$$prevSibling=n.$$childTail,n.$$childHead?(n.$$childTail.$$nextSibling=r,n.$$childTail=r):n.$$childHead=n.$$childTail=r,(t||n!=this)&&r.$on("$destroy",f),r},$watch:function(e,t,n,r){var i=l(e);if(i.$$watchDelegate)return i.$$watchDelegate(this,t,n,i,e);var o=this,s=o.$$watchers,u={fn:t,last:x,get:i,exp:r||e,eq:!!n};return a=null,$(t)||(u.fn=m),s||(s=o.$$watchers=[]),s.unshift(u),g(this,1),function(){L(s,u)>=0&&g(o,-1),a=null}},$watchGroup:function(e,t){function n(){u=!1,c?(c=!1,t(i,i,s)):t(i,r,s)}var r=new Array(e.length),i=new Array(e.length),a=[],s=this,u=!1,c=!0;if(!e.length){var l=!0;return s.$evalAsync(function(){l&&t(i,i,s)}),function(){l=!1}}return 1===e.length?this.$watch(e[0],function(e,n,o){i[0]=e,r[0]=n,t(i,e===n?i:r,o)}):(o(e,function(e,t){var o=s.$watch(e,function(e,o){i[t]=e,r[t]=o,u||(u=!0,s.$evalAsync(n))});a.push(o)}),function(){for(;a.length;)a.shift()()})},$watchCollection:function(e,t){function n(e){o=e;var t,n,r,s,u;if(!b(o)){if(w(o))if(i(o)){a!==d&&(a=d,v=a.length=0,p++),t=o.length,v!==t&&(p++,a.length=v=t);for(var c=0;t>c;c++)u=a[c],s=o[c],r=u!==u&&s!==s,r||u===s||(p++,a[c]=s)}else{a!==h&&(a=h={},v=0,p++),t=0;for(n in o)wr.call(o,n)&&(t++,s=o[n],u=a[n],n in a?(r=u!==u&&s!==s,r||u===s||(p++,a[n]=s)):(v++,a[n]=s,p++));if(v>t){p++;for(n in a)wr.call(o,n)||(v--,delete a[n])}}else a!==o&&(a=o,p++);return p}}function r(){if(m?(m=!1,t(o,o,u)):t(o,s,u),c)if(w(o))if(i(o)){s=new Array(o.length);for(var e=0;e<o.length;e++)s[e]=o[e]}else{s={};for(var n in o)wr.call(o,n)&&(s[n]=o[n])}else s=o}n.$stateful=!0;var o,a,s,u=this,c=t.length>1,p=0,f=l(e,n),d=[],h={},m=!0,v=0;return this.$watch(f,r)},$digest:function(){var e,r,i,o,u,l,f,d,m,g,y=t,b=this,w=[];h("$digest"),p.$$checkUrlChange(),this===C&&null!==s&&(p.defer.cancel(s),E()),a=null;do{for(l=!1,d=b;N.length;){try{g=N.shift(),g.scope.$eval(g.expression,g.locals)}catch(_){c(_)}a=null}e:do{if(o=d.$$watchers)for(u=o.length;u--;)try{if(e=o[u])if((r=e.get(d))===(i=e.last)||(e.eq?H(r,i):"number"==typeof r&&"number"==typeof i&&isNaN(r)&&isNaN(i))){if(e===a){l=!1;break e}}else l=!0,a=e,e.last=e.eq?V(r,null):r,e.fn(r,i===x?r:i,d),5>y&&(m=4-y,w[m]||(w[m]=[]),w[m].push({msg:$(e.exp)?"fn: "+(e.exp.name||e.exp.toString()):e.exp,newVal:r,oldVal:i}))}catch(_){c(_)}if(!(f=d.$$watchersCount&&d.$$childHead||d!==b&&d.$$nextSibling))for(;d!==b&&!(f=d.$$nextSibling);)d=d.$parent}while(d=f);if((l||N.length)&&!y--)throw v(),n("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",t,w)}while(l||N.length);for(v();O.length;)try{O.shift()()}catch(_){c(_)}},$destroy:function(){if(!this.$$destroyed){var e=this.$parent;this.$broadcast("$destroy"),this.$$destroyed=!0,this===C&&p.$$applicationDestroyed(),g(this,-this.$$watchersCount);for(var t in this.$$listenerCount)y(this,this.$$listenerCount[t],t);e&&e.$$childHead==this&&(e.$$childHead=this.$$nextSibling),e&&e.$$childTail==this&&(e.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=m,this.$on=this.$watch=this.$watchGroup=function(){return m},this.$$listeners={},this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}},$eval:function(e,t){return l(e)(this,t)},$evalAsync:function(e,t){C.$$phase||N.length||p.defer(function(){N.length&&C.$digest()}),N.push({scope:this,expression:e,locals:t})},$$postDigest:function(e){O.push(e)},$apply:function(e){try{h("$apply");try{return this.$eval(e)}finally{v()}}catch(t){c(t)}finally{try{C.$digest()}catch(t){throw c(t),t}}},$applyAsync:function(e){function t(){n.$eval(e)}var n=this;e&&T.push(t),_()},$on:function(e,t){var n=this.$$listeners[e];n||(this.$$listeners[e]=n=[]),n.push(t);var r=this;do r.$$listenerCount[e]||(r.$$listenerCount[e]=0),r.$$listenerCount[e]++;while(r=r.$parent);var i=this;return function(){var r=n.indexOf(t);-1!==r&&(n[r]=null,y(i,1,e))}},$emit:function(e){var t,n,r,i=[],o=this,a=!1,s={name:e,targetScope:o,stopPropagation:function(){a=!0},preventDefault:function(){s.defaultPrevented=!0},defaultPrevented:!1},u=q([s],arguments,1);do{for(t=o.$$listeners[e]||i,s.currentScope=o,n=0,r=t.length;r>n;n++)if(t[n])try{t[n].apply(null,u)}catch(l){c(l)}else t.splice(n,1),n--,r--;if(a)return s.currentScope=null,s;o=o.$parent}while(o);return s.currentScope=null,s},$broadcast:function(e){var t=this,n=t,r=t,i={name:e,targetScope:t,preventDefault:function(){i.defaultPrevented=!0},defaultPrevented:!1};if(!t.$$listenerCount[e])return i;for(var o,a,s,u=q([i],arguments,1);n=r;){for(i.currentScope=n,o=n.$$listeners[e]||[],a=0,s=o.length;s>a;a++)if(o[a])try{o[a].apply(null,u)}catch(l){c(l)}else o.splice(a,1),a--,s--;if(!(r=n.$$listenerCount[e]&&n.$$childHead||n!==t&&n.$$nextSibling))for(;n!==t&&!(r=n.$$nextSibling);)n=n.$parent}return i.currentScope=null,i}};var C=new d,N=C.$$asyncQueue=[],O=C.$$postDigestQueue=[],T=C.$$applyAsyncQueue=[];return C}]}function gn(){var e=/^\s*(https?|ftp|mailto|tel|file):/,t=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(t){return x(t)?(e=t,this):e},this.imgSrcSanitizationWhitelist=function(e){return x(e)?(t=e,this):t},this.$get=function(){return function(n,r){var i,o=r?t:e;return i=$n(n).href,""===i||i.match(o)?n:"unsafe:"+i}}}function yn(e){if("self"===e)return e;if(_(e)){if(e.indexOf("***")>-1)throw ro("iwcard","Illegal sequence *** in string matcher. String: {0}",e);return e=Ur(e).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),new RegExp("^"+e+"$")}if(O(e))return new RegExp("^"+e.source+"$");throw ro("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function bn(e){var t=[];return x(e)&&o(e,function(e){t.push(yn(e))}),t}function xn(){this.SCE_CONTEXTS=io;var e=["self"],t=[];this.resourceUrlWhitelist=function(t){return arguments.length&&(e=bn(t)),e},this.resourceUrlBlacklist=function(e){return arguments.length&&(t=bn(e)),t},this.$get=["$injector",function(n){function r(e,t){return"self"===e?On(t):!!e.exec(t.href)}function i(n){var i,o,a=$n(n.toString()),s=!1;for(i=0,o=e.length;o>i;i++)if(r(e[i],a)){s=!0;break}if(s)for(i=0,o=t.length;o>i;i++)if(r(t[i],a)){s=!1;break}return s}function o(e){var t=function(e){this.$$unwrapTrustedValue=function(){return e}};return e&&(t.prototype=new e),t.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},t.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},t}function a(e,t){var n=p.hasOwnProperty(e)?p[e]:null;if(!n)throw ro("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",e,t);if(null===t||b(t)||""===t)return t;if("string"!=typeof t)throw ro("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",e);return new n(t)}function s(e){return e instanceof l?e.$$unwrapTrustedValue():e}function u(e,t){if(null===t||b(t)||""===t)return t;var n=p.hasOwnProperty(e)?p[e]:null;if(n&&t instanceof n)return t.$$unwrapTrustedValue();if(e===io.RESOURCE_URL){if(i(t))return t;throw ro("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}",t.toString())}if(e===io.HTML)return c(t);throw ro("unsafe","Attempting to use an unsafe value in a safe context.")}var c=function(){throw ro("unsafe","Attempting to use an unsafe value in a safe context.")};n.has("$sanitize")&&(c=n.get("$sanitize"));var l=o(),p={};return p[io.HTML]=o(l),p[io.CSS]=o(l),p[io.URL]=o(l),p[io.JS]=o(l),p[io.RESOURCE_URL]=o(p[io.URL]),{trustAs:a,getTrusted:u,valueOf:s}}]}function wn(){var e=!0;this.enabled=function(t){return arguments.length&&(e=!!t),e},this.$get=["$parse","$sceDelegate",function(t,n){if(e&&8>Nr)throw ro("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode. You can fix this by adding the text <!doctype html> to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.");var r=U(io);r.isEnabled=function(){return e},r.trustAs=n.trustAs,r.getTrusted=n.getTrusted,r.valueOf=n.valueOf,e||(r.trustAs=r.getTrusted=function(e,t){return t},r.valueOf=v),r.parseAs=function(e,n){var i=t(n);return i.literal&&i.constant?i:t(n,function(t){return r.getTrusted(e,t)})};var i=r.parseAs,a=r.getTrusted,s=r.trustAs;return o(io,function(e,t){var n=xr(t);r[Ee("parse_as_"+n)]=function(t){return i(e,t)},r[Ee("get_trusted_"+n)]=function(t){return a(e,t)},r[Ee("trust_as_"+n)]=function(t){return s(e,t)}}),r}]}function En(){this.$get=["$window","$document",function(e,t){var n,r,i={},o=d((/android (\d+)/.exec(xr((e.navigator||{}).userAgent))||[])[1]),a=/Boxee/i.test((e.navigator||{}).userAgent),s=t[0]||{},u=/^(Moz|webkit|ms)(?=[A-Z])/,c=s.body&&s.body.style,l=!1,p=!1;if(c){for(var f in c)if(r=u.exec(f)){n=r[0],n=n.substr(0,1).toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in c&&"webkit"),l=!!("transition"in c||n+"Transition"in c),p=!!("animation"in c||n+"Animation"in c),!o||l&&p||(l=_(c.webkitTransition),p=_(c.webkitAnimation))}return{history:!(!e.history||!e.history.pushState||4>o||a),hasEvent:function(e){if("input"===e&&11>=Nr)return!1;if(b(i[e])){var t=s.createElement("div");i[e]="on"+e in t}return i[e]},csp:Hr(),vendorPrefix:n,transitions:l,animations:p,android:o}}]}function _n(){this.$get=["$templateCache","$http","$q","$sce",function(e,t,n,r){function i(o,a){function s(e){if(!a)throw Si("tpload","Failed to load template: {0} (HTTP status: {1} {2})",o,e.status,e.statusText);return n.reject(e)}i.totalPendingRequests++,_(o)&&e.get(o)||(o=r.getTrustedResourceUrl(o));var u=t.defaults&&t.defaults.transformResponse;Fr(u)?u=u.filter(function(e){return e!==bt}):u===bt&&(u=null);var c={cache:e,transformResponse:u};return t.get(o,c)["finally"](function(){i.totalPendingRequests--}).then(function(t){return e.put(o,t.data),t.data},s)}return i.totalPendingRequests=0,i}]}function Cn(){this.$get=["$rootScope","$browser","$location",function(e,t,n){var r={};return r.findBindings=function(e,t,n){var r=e.getElementsByClassName("ng-binding"),i=[];return o(r,function(e){var r=jr.element(e).data("$binding");r&&o(r,function(r){if(n){var o=new RegExp("(^|\\s)"+Ur(t)+"(\\s|\\||$)");o.test(r)&&i.push(e)}else-1!=r.indexOf(t)&&i.push(e)})}),i},r.findModels=function(e,t,n){for(var r=["ng-","data-ng-","ng\\:"],i=0;i<r.length;++i){var o=n?"=":"*=",a="["+r[i]+"model"+o+'"'+t+'"]',s=e.querySelectorAll(a);if(s.length)return s}},r.getLocation=function(){return n.url()},r.setLocation=function(t){t!==n.url()&&(n.url(t),e.$digest())},r.whenStable=function(e){t.notifyWhenNoOutstandingRequests(e)},r}]}function Nn(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(e,t,n,r,i){function o(o,s,u){$(o)||(u=s,s=o,o=m);var c,l=B(arguments,3),p=x(u)&&!u,f=(p?r:n).defer(),d=f.promise;return c=t.defer(function(){try{f.resolve(o.apply(null,l))}catch(t){f.reject(t),i(t)}finally{delete a[d.$$timeoutId]}p||e.$apply()},s),d.$$timeoutId=c,a[c]=f,d}var a={};return o.cancel=function(e){return e&&e.$$timeoutId in a?(a[e.$$timeoutId].reject("canceled"),delete a[e.$$timeoutId],t.defer.cancel(e.$$timeoutId)):!1},o}]}function $n(e){var t=e;return Nr&&(oo.setAttribute("href",t),t=oo.href),oo.setAttribute("href",t),{href:oo.href,protocol:oo.protocol?oo.protocol.replace(/:$/,""):"",host:oo.host,search:oo.search?oo.search.replace(/^\?/,""):"",hash:oo.hash?oo.hash.replace(/^#/,""):"",hostname:oo.hostname,port:oo.port,pathname:"/"===oo.pathname.charAt(0)?oo.pathname:"/"+oo.pathname}}function On(e){var t=_(e)?$n(e):e;return t.protocol===ao.protocol&&t.host===ao.host}function Tn(){this.$get=g(e)}function Pn(e){function t(e){try{return decodeURIComponent(e)}catch(t){return e}}var n=e[0]||{},r={},i="";return function(){var e,o,a,s,u,c=n.cookie||"";if(c!==i)for(i=c,e=i.split("; "),r={},a=0;a<e.length;a++)o=e[a],s=o.indexOf("="),s>0&&(u=t(o.substring(0,s)),b(r[u])&&(r[u]=t(o.substring(s+1))));return r}}function Sn(){this.$get=Pn}function Dn(e){function t(r,i){if(w(r)){var a={};return o(r,function(e,n){a[n]=t(n,e)}),a}return e.factory(r+n,i)}var n="Filter";this.register=t,this.$get=["$injector",function(e){return function(t){return e.get(t+n)}}],t("currency",In),t("date",Yn),t("filter",Rn),t("json",Gn),t("limitTo",Xn),t("lowercase",po),t("number",Mn),t("orderBy",Jn),t("uppercase",fo)}function Rn(){return function(e,t,n){if(!i(e)){if(null==e)return e;throw r("filter")("notarray","Expected array but received: {0}",e)}var o,a,s=jn(t);switch(s){case"function":o=t;break;case"boolean":case"null":case"number":case"string":a=!0;case"object":o=kn(t,n,a);break;default:return e}return Array.prototype.filter.call(e,o)}}function kn(e,t,n){var r,i=w(e)&&"$"in e;return t===!0?t=H:$(t)||(t=function(e,t){return b(e)?!1:null===e||null===t?e===t:w(t)||w(e)&&!y(e)?!1:(e=xr(""+e),t=xr(""+t),-1!==e.indexOf(t))}),r=function(r){return i&&!w(r)?An(r,e.$,t,!1):An(r,e,t,n)}}function An(e,t,n,r,i){var o=jn(e),a=jn(t);if("string"===a&&"!"===t.charAt(0))return!An(e,t.substring(1),n,r);if(Fr(e))return e.some(function(e){return An(e,t,n,r)});switch(o){case"object":var s;if(r){for(s in e)if("$"!==s.charAt(0)&&An(e[s],t,n,!0))return!0;return i?!1:An(e,t,n,!1)}if("object"===a){for(s in t){var u=t[s];if(!$(u)&&!b(u)){var c="$"===s,l=c?e:e[s];if(!An(l,u,n,c,c))return!1}}return!0}return n(e,t);case"function":return!1;default:return n(e,t)}}function jn(e){return null===e?"null":typeof e}function In(e){var t=e.NUMBER_FORMATS;return function(e,n,r){return b(n)&&(n=t.CURRENCY_SYM),b(r)&&(r=t.PATTERNS[1].maxFrac),null==e?e:Fn(e,t.PATTERNS[1],t.GROUP_SEP,t.DECIMAL_SEP,r).replace(/\u00A4/g,n)}}function Mn(e){var t=e.NUMBER_FORMATS;return function(e,n){return null==e?e:Fn(e,t.PATTERNS[0],t.GROUP_SEP,t.DECIMAL_SEP,n)}}function Fn(e,t,n,r,i){if(w(e))return"";var o=0>e;e=Math.abs(e);var a=e===1/0;if(!a&&!isFinite(e))return"";var s=e+"",u="",c=!1,l=[];if(a&&(u="∞"),!a&&-1!==s.indexOf("e")){var p=s.match(/([\d\.]+)e(-?)(\d+)/);p&&"-"==p[2]&&p[3]>i+1?e=0:(u=s,c=!0)}if(a||c)i>0&&1>e&&(u=e.toFixed(i),e=parseFloat(u),u=u.replace(so,r));else{var f=(s.split(so)[1]||"").length;b(i)&&(i=Math.min(Math.max(t.minFrac,f),t.maxFrac)),e=+(Math.round(+(e.toString()+"e"+i)).toString()+"e"+-i);var d=(""+e).split(so),h=d[0];d=d[1]||"";var m,v=0,g=t.lgSize,y=t.gSize;if(h.length>=g+y)for(v=h.length-g,m=0;v>m;m++)(v-m)%y===0&&0!==m&&(u+=n),u+=h.charAt(m);for(m=v;m<h.length;m++)(h.length-m)%g===0&&0!==m&&(u+=n),u+=h.charAt(m);for(;d.length<i;)d+="0";i&&"0"!==i&&(u+=r+d.substr(0,i))}return 0===e&&(o=!1),l.push(o?t.negPre:t.posPre,u,o?t.negSuf:t.posSuf),l.join("")}function Ln(e,t,n){var r="";for(0>e&&(r="-",e=-e),e=""+e;e.length<t;)e="0"+e;return n&&(e=e.substr(e.length-t)),r+e}function Vn(e,t,n,r){return n=n||0,function(i){var o=i["get"+e]();return(n>0||o>-n)&&(o+=n),0===o&&-12==n&&(o=12),Ln(o,t,r)}}function Un(e,t){return function(n,r){var i=n["get"+e](),o=Er(t?"SHORT"+e:e);return r[o][i]}}function Hn(e,t,n){var r=-1*n,i=r>=0?"+":"";return i+=Ln(Math[r>0?"floor":"ceil"](r/60),2)+Ln(Math.abs(r%60),2)}function qn(e){var t=new Date(e,0,1).getDay();return new Date(e,0,(4>=t?5:12)-t)}function Bn(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate()+(4-e.getDay()))}function Wn(e){return function(t){var n=qn(t.getFullYear()),r=Bn(t),i=+r-+n,o=1+Math.round(i/6048e5);return Ln(o,e)}}function zn(e,t){return e.getHours()<12?t.AMPMS[0]:t.AMPMS[1]}function Kn(e,t){return e.getFullYear()<=0?t.ERAS[0]:t.ERAS[1]}function Qn(e,t){return e.getFullYear()<=0?t.ERANAMES[0]:t.ERANAMES[1]}function Yn(e){function t(e){var t;if(t=e.match(n)){var r=new Date(0),i=0,o=0,a=t[8]?r.setUTCFullYear:r.setFullYear,s=t[8]?r.setUTCHours:r.setHours;t[9]&&(i=d(t[9]+t[10]),o=d(t[9]+t[11])),a.call(r,d(t[1]),d(t[2])-1,d(t[3]));var u=d(t[4]||0)-i,c=d(t[5]||0)-o,l=d(t[6]||0),p=Math.round(1e3*parseFloat("0."+(t[7]||0)));return s.call(r,u,c,l,p),r}return e}var n=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,r,i){var a,s,u="",c=[];if(r=r||"mediumDate",r=e.DATETIME_FORMATS[r]||r,_(n)&&(n=lo.test(n)?d(n):t(n)),C(n)&&(n=new Date(n)),!N(n)||!isFinite(n.getTime()))return n;for(;r;)s=co.exec(r),s?(c=q(c,s,1),r=c.pop()):(c.push(r),r=null);var l=n.getTimezoneOffset();return i&&(l=Y(i,n.getTimezoneOffset()),n=X(n,i,!0)),o(c,function(t){a=uo[t],u+=a?a(n,e.DATETIME_FORMATS,l):t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),u}}function Gn(){return function(e,t){return b(t)&&(t=2),K(e,t)}}function Xn(){return function(e,t,n){return t=Math.abs(Number(t))===1/0?Number(t):d(t),isNaN(t)?e:(C(e)&&(e=e.toString()),Fr(e)||_(e)?(n=!n||isNaN(n)?0:d(n),n=0>n&&n>=-e.length?e.length+n:n,t>=0?e.slice(n,n+t):0===n?e.slice(t,e.length):e.slice(Math.max(0,n+t),n)):e)}}function Jn(e){function t(t,n){return n=n?-1:1,t.map(function(t){var r=1,i=v;if($(t))i=t;else if(_(t)&&(("+"==t.charAt(0)||"-"==t.charAt(0))&&(r="-"==t.charAt(0)?-1:1,t=t.substring(1)),""!==t&&(i=e(t),i.constant))){var o=i();i=function(e){return e[o]}}return{get:i,descending:r*n}})}function n(e){switch(typeof e){case"number":case"boolean":case"string":return!0;default:return!1}}function r(e,t){return"function"==typeof e.valueOf&&(e=e.valueOf(),n(e))?e:y(e)&&(e=e.toString(),n(e))?e:t}function o(e,t){var n=typeof e;return null===e?(n="string",e="null"):"string"===n?e=e.toLowerCase():"object"===n&&(e=r(e,t)),{value:e,type:n}}function a(e,t){var n=0;return e.type===t.type?e.value!==t.value&&(n=e.value<t.value?-1:1):n=e.type<t.type?-1:1,n}return function(e,n,r){function s(e,t){return{value:e,predicateValues:c.map(function(n){return o(n.get(e),t)})}}function u(e,t){for(var n=0,r=0,i=c.length;i>r&&!(n=a(e.predicateValues[r],t.predicateValues[r])*c[r].descending);++r);return n}if(!i(e))return e;Fr(n)||(n=[n]),0===n.length&&(n=["+"]);var c=t(n,r);c.push({get:function(){return{}},descending:r?-1:1});var l=Array.prototype.map.call(e,s);return l.sort(u),e=l.map(function(e){return e.value})}}function Zn(e){return $(e)&&(e={link:e}),e.restrict=e.restrict||"AC",g(e)}function er(e,t){e.$name=t}function tr(e,t,r,i,a){var s=this,u=[];s.$error={},s.$$success={},s.$pending=n,s.$name=a(t.name||t.ngForm||"")(r),s.$dirty=!1,s.$pristine=!0,s.$valid=!0,s.$invalid=!1,s.$submitted=!1,s.$$parentForm=vo,s.$rollbackViewValue=function(){o(u,function(e){e.$rollbackViewValue()})},s.$commitViewValue=function(){o(u,function(e){e.$commitViewValue()})},s.$addControl=function(e){de(e.$name,"input"),u.push(e),e.$name&&(s[e.$name]=e),e.$$parentForm=s},s.$$renameControl=function(e,t){var n=e.$name;s[n]===e&&delete s[n],s[t]=e,e.$name=t},s.$removeControl=function(e){e.$name&&s[e.$name]===e&&delete s[e.$name],o(s.$pending,function(t,n){s.$setValidity(n,null,e)}),o(s.$error,function(t,n){s.$setValidity(n,null,e)}),o(s.$$success,function(t,n){s.$setValidity(n,null,e)}),L(u,e),e.$$parentForm=vo},vr({ctrl:this,$element:e,set:function(e,t,n){var r=e[t];if(r){var i=r.indexOf(n);-1===i&&r.push(n)}else e[t]=[n]},unset:function(e,t,n){var r=e[t];r&&(L(r,n),0===r.length&&delete e[t])},$animate:i}),s.$setDirty=function(){i.removeClass(e,Jo),i.addClass(e,Zo),s.$dirty=!0,s.$pristine=!1,s.$$parentForm.$setDirty()},s.$setPristine=function(){i.setClass(e,Jo,Zo+" "+go),s.$dirty=!1,s.$pristine=!0,s.$submitted=!1,o(u,function(e){e.$setPristine()})},s.$setUntouched=function(){o(u,function(e){e.$setUntouched()})},s.$setSubmitted=function(){i.addClass(e,go),s.$submitted=!0,s.$$parentForm.$setSubmitted()}}function nr(e){e.$formatters.push(function(t){return e.$isEmpty(t)?t:t.toString()})}function rr(e,t,n,r,i,o){ir(e,t,n,r,i,o),nr(r)}function ir(e,t,n,r,i,o){var a=xr(t[0].type);if(!i.android){var s=!1;t.on("compositionstart",function(){s=!0}),t.on("compositionend",function(){s=!1,u()})}var u=function(e){if(c&&(o.defer.cancel(c),c=null),!s){var i=t.val(),u=e&&e.type;"password"===a||n.ngTrim&&"false"===n.ngTrim||(i=Vr(i)),(r.$viewValue!==i||""===i&&r.$$hasNativeValidators)&&r.$setViewValue(i,u)}};if(i.hasEvent("input"))t.on("input",u);else{var c,l=function(e,t,n){c||(c=o.defer(function(){c=null,t&&t.value===n||u(e)}))};t.on("keydown",function(e){var t=e.keyCode;91===t||t>15&&19>t||t>=37&&40>=t||l(e,this,this.value)}),i.hasEvent("paste")&&t.on("paste cut",l)}t.on("change",u),r.$render=function(){var e=r.$isEmpty(r.$viewValue)?"":r.$viewValue;t.val()!==e&&t.val(e)}}function or(e,t){if(N(e))return e;if(_(e)){Oo.lastIndex=0;var n=Oo.exec(e);if(n){var r=+n[1],i=+n[2],o=0,a=0,s=0,u=0,c=qn(r),l=7*(i-1);return t&&(o=t.getHours(),a=t.getMinutes(),s=t.getSeconds(),u=t.getMilliseconds()),new Date(r,0,c.getDate()+l,o,a,s,u)}}return 0/0}function ar(e,t){return function(n,r){var i,a;if(N(n))return n;if(_(n)){if('"'==n.charAt(0)&&'"'==n.charAt(n.length-1)&&(n=n.substring(1,n.length-1)),wo.test(n))return new Date(n);if(e.lastIndex=0,i=e.exec(n))return i.shift(),a=r?{yyyy:r.getFullYear(),MM:r.getMonth()+1,dd:r.getDate(),HH:r.getHours(),mm:r.getMinutes(),ss:r.getSeconds(),sss:r.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},o(i,function(e,n){n<t.length&&(a[t[n]]=+e)}),new Date(a.yyyy,a.MM-1,a.dd,a.HH,a.mm,a.ss||0,1e3*a.sss||0)}return 0/0}}function sr(e,t,r,i){return function(o,a,s,u,c,l,p){function f(e){return e&&!(e.getTime&&e.getTime()!==e.getTime())}function d(e){return x(e)&&!N(e)?r(e)||n:e}ur(o,a,s,u),ir(o,a,s,u,c,l);var h,m=u&&u.$options&&u.$options.timezone;if(u.$$parserName=e,u.$parsers.push(function(e){if(u.$isEmpty(e))return null;if(t.test(e)){var i=r(e,h);return m&&(i=X(i,m)),i}return n}),u.$formatters.push(function(e){if(e&&!N(e))throw ra("datefmt","Expected `{0}` to be a date",e);return f(e)?(h=e,h&&m&&(h=X(h,m,!0)),p("date")(e,i,m)):(h=null,"")}),x(s.min)||s.ngMin){var v;u.$validators.min=function(e){return!f(e)||b(v)||r(e)>=v},s.$observe("min",function(e){v=d(e),u.$validate();
28
+
29
+ })}if(x(s.max)||s.ngMax){var g;u.$validators.max=function(e){return!f(e)||b(g)||r(e)<=g},s.$observe("max",function(e){g=d(e),u.$validate()})}}}function ur(e,t,r,i){var o=t[0],a=i.$$hasNativeValidators=w(o.validity);a&&i.$parsers.push(function(e){var r=t.prop(br)||{};return r.badInput&&!r.typeMismatch?n:e})}function cr(e,t,r,i,o,a){if(ur(e,t,r,i),ir(e,t,r,i,o,a),i.$$parserName="number",i.$parsers.push(function(e){return i.$isEmpty(e)?null:Co.test(e)?parseFloat(e):n}),i.$formatters.push(function(e){if(!i.$isEmpty(e)){if(!C(e))throw ra("numfmt","Expected `{0}` to be a number",e);e=e.toString()}return e}),x(r.min)||r.ngMin){var s;i.$validators.min=function(e){return i.$isEmpty(e)||b(s)||e>=s},r.$observe("min",function(e){x(e)&&!C(e)&&(e=parseFloat(e,10)),s=C(e)&&!isNaN(e)?e:n,i.$validate()})}if(x(r.max)||r.ngMax){var u;i.$validators.max=function(e){return i.$isEmpty(e)||b(u)||u>=e},r.$observe("max",function(e){x(e)&&!C(e)&&(e=parseFloat(e,10)),u=C(e)&&!isNaN(e)?e:n,i.$validate()})}}function lr(e,t,n,r,i,o){ir(e,t,n,r,i,o),nr(r),r.$$parserName="url",r.$validators.url=function(e,t){var n=e||t;return r.$isEmpty(n)||Eo.test(n)}}function pr(e,t,n,r,i,o){ir(e,t,n,r,i,o),nr(r),r.$$parserName="email",r.$validators.email=function(e,t){var n=e||t;return r.$isEmpty(n)||_o.test(n)}}function fr(e,t,n,r){b(n.name)&&t.attr("name",u());var i=function(e){t[0].checked&&r.$setViewValue(n.value,e&&e.type)};t.on("click",i),r.$render=function(){var e=n.value;t[0].checked=e==r.$viewValue},n.$observe("value",r.$render)}function dr(e,t,n,r,i){var o;if(x(r)){if(o=e(r),!o.constant)throw ra("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,r);return o(t)}return i}function hr(e,t,n,r,i,o,a,s){var u=dr(s,e,"ngTrueValue",n.ngTrueValue,!0),c=dr(s,e,"ngFalseValue",n.ngFalseValue,!1),l=function(e){r.$setViewValue(t[0].checked,e&&e.type)};t.on("click",l),r.$render=function(){t[0].checked=r.$viewValue},r.$isEmpty=function(e){return e===!1},r.$formatters.push(function(e){return H(e,u)}),r.$parsers.push(function(e){return e?u:c})}function mr(e,t){return e="ngClass"+e,["$animate",function(n){function r(e,t){var n=[];e:for(var r=0;r<e.length;r++){for(var i=e[r],o=0;o<t.length;o++)if(i==t[o])continue e;n.push(i)}return n}function i(e){var t=[];return Fr(e)?(o(e,function(e){t=t.concat(i(e))}),t):_(e)?e.split(" "):w(e)?(o(e,function(e,n){e&&(t=t.concat(n.split(" ")))}),t):e}return{restrict:"AC",link:function(a,s,u){function c(e){var t=p(e,1);u.$addClass(t)}function l(e){var t=p(e,-1);u.$removeClass(t)}function p(e,t){var n=s.data("$classCounts")||ve(),r=[];return o(e,function(e){(t>0||n[e])&&(n[e]=(n[e]||0)+t,n[e]===+(t>0)&&r.push(e))}),s.data("$classCounts",n),r.join(" ")}function f(e,t){var i=r(t,e),o=r(e,t);i=p(i,1),o=p(o,-1),i&&i.length&&n.addClass(s,i),o&&o.length&&n.removeClass(s,o)}function d(e){if(t===!0||a.$index%2===t){var n=i(e||[]);if(h){if(!H(e,h)){var r=i(h);f(r,n)}}else c(n)}h=U(e)}var h;a.$watch(u[e],d,!0),u.$observe("class",function(){d(a.$eval(u[e]))}),"ngClass"!==e&&a.$watch("$index",function(n,r){var o=1&n;if(o!==(1&r)){var s=i(a.$eval(u[e]));o===t?c(s):l(s)}})}}}]}function vr(e){function t(e,t,u){b(t)?r("$pending",e,u):i("$pending",e,u),k(t)?t?(p(s.$error,e,u),l(s.$$success,e,u)):(l(s.$error,e,u),p(s.$$success,e,u)):(p(s.$error,e,u),p(s.$$success,e,u)),s.$pending?(o(na,!0),s.$valid=s.$invalid=n,a("",null)):(o(na,!1),s.$valid=gr(s.$error),s.$invalid=!s.$valid,a("",s.$valid));var c;c=s.$pending&&s.$pending[e]?n:s.$error[e]?!1:s.$$success[e]?!0:null,a(e,c),s.$$parentForm.$setValidity(e,c,s)}function r(e,t,n){s[e]||(s[e]={}),l(s[e],t,n)}function i(e,t,r){s[e]&&p(s[e],t,r),gr(s[e])&&(s[e]=n)}function o(e,t){t&&!c[e]?(f.addClass(u,e),c[e]=!0):!t&&c[e]&&(f.removeClass(u,e),c[e]=!1)}function a(e,t){e=e?"-"+ce(e,"-"):"",o(Go+e,t===!0),o(Xo+e,t===!1)}var s=e.ctrl,u=e.$element,c={},l=e.set,p=e.unset,f=e.$animate;c[Xo]=!(c[Go]=u.hasClass(Go)),s.$setValidity=t}function gr(e){if(e)for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}var yr=/^\/(.+)\/([a-z]*)$/,br="validity",xr=function(e){return _(e)?e.toLowerCase():e},wr=Object.prototype.hasOwnProperty,Er=function(e){return _(e)?e.toUpperCase():e},_r=function(e){return _(e)?e.replace(/[A-Z]/g,function(e){return String.fromCharCode(32|e.charCodeAt(0))}):e},Cr=function(e){return _(e)?e.replace(/[a-z]/g,function(e){return String.fromCharCode(-33&e.charCodeAt(0))}):e};"i"!=="I".toLowerCase()&&(xr=_r,Er=Cr);var Nr,$r,Or,Tr,Pr=[].slice,Sr=[].splice,Dr=[].push,Rr=Object.prototype.toString,kr=Object.getPrototypeOf,Ar=r("ng"),jr=e.angular||(e.angular={}),Ir=0;Nr=t.documentMode,m.$inject=[],v.$inject=[];var Mr,Fr=Array.isArray,Lr=/^\[object (Uint8(Clamped)?)|(Uint16)|(Uint32)|(Int8)|(Int16)|(Int32)|(Float(32)|(64))Array\]$/,Vr=function(e){return _(e)?e.trim():e},Ur=function(e){return e.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},Hr=function(){function e(){try{return new Function(""),!1}catch(e){return!0}}if(!x(Hr.rules)){var n=t.querySelector("[ng-csp]")||t.querySelector("[data-ng-csp]");if(n){var r=n.getAttribute("ng-csp")||n.getAttribute("data-ng-csp");Hr.rules={noUnsafeEval:!r||-1!==r.indexOf("no-unsafe-eval"),noInlineStyle:!r||-1!==r.indexOf("no-inline-style")}}else Hr.rules={noUnsafeEval:e(),noInlineStyle:!1}}return Hr.rules},qr=function(){if(x(qr.name_))return qr.name_;var e,n,r,i,o=Br.length;for(n=0;o>n;++n)if(r=Br[n],e=t.querySelector("["+r.replace(":","\\:")+"jq]")){i=e.getAttribute(r+"jq");break}return qr.name_=i},Br=["ng-","data-ng-","ng:","x-ng-"],Wr=/[A-Z]/g,zr=!1,Kr=1,Qr=2,Yr=3,Gr=8,Xr=9,Jr=11,Zr={full:"1.4.7",major:1,minor:4,dot:7,codeName:"dark-luminescence"};Te.expando="ng339";var ei=Te.cache={},ti=1,ni=function(e,t,n){e.addEventListener(t,n,!1)},ri=function(e,t,n){e.removeEventListener(t,n,!1)};Te._data=function(e){return this.cache[e[this.expando]]||{}};var ii=/([\:\-\_]+(.))/g,oi=/^moz([A-Z])/,ai={mouseleave:"mouseout",mouseenter:"mouseover"},si=r("jqLite"),ui=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,ci=/<|&#?\w+;/,li=/<([\w:-]+)/,pi=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,fi={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,"",""]};fi.optgroup=fi.option,fi.tbody=fi.tfoot=fi.colgroup=fi.caption=fi.thead,fi.th=fi.td;var di=Te.prototype={ready:function(n){function r(){i||(i=!0,n())}var i=!1;"complete"===t.readyState?setTimeout(r):(this.on("DOMContentLoaded",r),Te(e).on("load",r))},toString:function(){var e=[];return o(this,function(t){e.push(""+t)}),"["+e.join(", ")+"]"},eq:function(e){return $r(e>=0?this[e]:this[this.length+e])},length:0,push:Dr,sort:[].sort,splice:[].splice},hi={};o("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(e){hi[xr(e)]=e});var mi={};o("input,select,option,textarea,button,form,details".split(","),function(e){mi[e]=!0});var vi={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};o({data:Ae,removeData:Re,hasData:Ne},function(e,t){Te[t]=e}),o({data:Ae,inheritedData:Ve,scope:function(e){return $r.data(e,"$scope")||Ve(e.parentNode||e,["$isolateScope","$scope"])},isolateScope:function(e){return $r.data(e,"$isolateScope")||$r.data(e,"$isolateScopeNoTemplate")},controller:Le,injector:function(e){return Ve(e,"$injector")},removeAttr:function(e,t){e.removeAttribute(t)},hasClass:je,css:function(e,t,n){return t=Ee(t),x(n)?void(e.style[t]=n):e.style[t]},attr:function(e,t,r){var i=e.nodeType;if(i!==Yr&&i!==Qr&&i!==Gr){var o=xr(t);if(hi[o]){if(!x(r))return e[t]||(e.attributes.getNamedItem(t)||m).specified?o:n;r?(e[t]=!0,e.setAttribute(t,o)):(e[t]=!1,e.removeAttribute(o))}else if(x(r))e.setAttribute(t,r);else if(e.getAttribute){var a=e.getAttribute(t,2);return null===a?n:a}}},prop:function(e,t,n){return x(n)?void(e[t]=n):e[t]},text:function(){function e(e,t){if(b(t)){var n=e.nodeType;return n===Kr||n===Yr?e.textContent:""}e.textContent=t}return e.$dv="",e}(),val:function(e,t){if(b(t)){if(e.multiple&&"select"===F(e)){var n=[];return o(e.options,function(e){e.selected&&n.push(e.value||e.text)}),0===n.length?null:n}return e.value}e.value=t},html:function(e,t){return b(t)?e.innerHTML:(Se(e,!0),void(e.innerHTML=t))},empty:Ue},function(e,t){Te.prototype[t]=function(t,n){var r,i,o=this.length;if(e!==Ue&&b(2==e.length&&e!==je&&e!==Le?t:n)){if(w(t)){for(r=0;o>r;r++)if(e===Ae)e(this[r],t);else for(i in t)e(this[r],i,t[i]);return this}for(var a=e.$dv,s=b(a)?Math.min(o,1):o,u=0;s>u;u++){var c=e(this[u],t,n);a=a?a+c:c}return a}for(r=0;o>r;r++)e(this[r],t,n);return this}}),o({removeData:Re,on:function ka(e,t,n,r){if(x(r))throw si("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(Ce(e)){var i=ke(e,!0),o=i.events,a=i.handle;a||(a=i.handle=ze(e,o));for(var s=t.indexOf(" ")>=0?t.split(" "):[t],u=s.length;u--;){t=s[u];var c=o[t];c||(o[t]=[],"mouseenter"===t||"mouseleave"===t?ka(e,ai[t],function(e){var n=this,r=e.relatedTarget;(!r||r!==n&&!n.contains(r))&&a(e,t)}):"$destroy"!==t&&ni(e,t,a),c=o[t]),c.push(n)}}},off:De,one:function(e,t,n){e=$r(e),e.on(t,function r(){e.off(t,n),e.off(t,r)}),e.on(t,n)},replaceWith:function(e,t){var n,r=e.parentNode;Se(e),o(new Te(t),function(t){n?r.insertBefore(t,n.nextSibling):r.replaceChild(t,e),n=t})},children:function(e){var t=[];return o(e.childNodes,function(e){e.nodeType===Kr&&t.push(e)}),t},contents:function(e){return e.contentDocument||e.childNodes||[]},append:function(e,t){var n=e.nodeType;if(n===Kr||n===Jr){t=new Te(t);for(var r=0,i=t.length;i>r;r++){var o=t[r];e.appendChild(o)}}},prepend:function(e,t){if(e.nodeType===Kr){var n=e.firstChild;o(new Te(t),function(t){e.insertBefore(t,n)})}},wrap:function(e,t){t=$r(t).eq(0).clone()[0];var n=e.parentNode;n&&n.replaceChild(t,e),t.appendChild(e)},remove:He,detach:function(e){He(e,!0)},after:function(e,t){var n=e,r=e.parentNode;t=new Te(t);for(var i=0,o=t.length;o>i;i++){var a=t[i];r.insertBefore(a,n.nextSibling),n=a}},addClass:Me,removeClass:Ie,toggleClass:function(e,t,n){t&&o(t.split(" "),function(t){var r=n;b(r)&&(r=!je(e,t)),(r?Me:Ie)(e,t)})},parent:function(e){var t=e.parentNode;return t&&t.nodeType!==Jr?t:null},next:function(e){return e.nextElementSibling},find:function(e,t){return e.getElementsByTagName?e.getElementsByTagName(t):[]},clone:Pe,triggerHandler:function(e,t,n){var r,i,a,s=t.type||t,u=ke(e),c=u&&u.events,l=c&&c[s];l&&(r={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented===!0},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return this.immediatePropagationStopped===!0},stopPropagation:m,type:s,target:e},t.type&&(r=p(r,t)),i=U(l),a=n?[r].concat(n):[r],o(i,function(t){r.isImmediatePropagationStopped()||t.apply(e,a)}))}},function(e,t){Te.prototype[t]=function(t,n,r){for(var i,o=0,a=this.length;a>o;o++)b(i)?(i=e(this[o],t,n,r),x(i)&&(i=$r(i))):Fe(i,e(this[o],t,n,r));return x(i)?i:this},Te.prototype.bind=Te.prototype.on,Te.prototype.unbind=Te.prototype.off}),Ye.prototype={put:function(e,t){this[Qe(e,this.nextUid)]=t},get:function(e){return this[Qe(e,this.nextUid)]},remove:function(e){var t=this[e=Qe(e,this.nextUid)];return delete this[e],t}};var gi=[function(){this.$get=[function(){return Ye}]}],yi=/^[^\(]*\(\s*([^\)]*)\)/m,bi=/,/,xi=/^\s*(_?)(\S+?)\1\s*$/,wi=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Ei=r("$injector");Je.$$annotate=Xe;var _i=r("$animate"),Ci=1,Ni="ng-animate",$i=function(){this.$get=["$q","$$rAF",function(e,t){function n(){}return n.all=m,n.chain=m,n.prototype={end:m,cancel:m,resume:m,pause:m,complete:m,then:function(n,r){return e(function(e){t(function(){e()})}).then(n,r)}},n}]},Oi=function(){var e=new Ye,t=[];this.$get=["$$AnimateRunner","$rootScope",function(n,r){function i(e,t,n){var r=!1;return t&&(t=_(t)?t.split(" "):Fr(t)?t:[],o(t,function(t){t&&(r=!0,e[t]=n)})),r}function a(){o(t,function(t){var n=e.get(t);if(n){var r=nt(t.attr("class")),i="",a="";o(n,function(e,t){var n=!!r[t];e!==n&&(e?i+=(i.length?" ":"")+t:a+=(a.length?" ":"")+t)}),o(t,function(e){i&&Me(e,i),a&&Ie(e,a)}),e.remove(t)}}),t.length=0}function s(n,o,s){var u=e.get(n)||{},c=i(u,o,!0),l=i(u,s,!1);(c||l)&&(e.put(n,u),t.push(n),1===t.length&&r.$$postDigest(a))}return{enabled:m,on:m,off:m,pin:m,push:function(e,t,r,i){return i&&i(),r=r||{},r.from&&e.css(r.from),r.to&&e.css(r.to),(r.addClass||r.removeClass)&&s(e,r.addClass,r.removeClass),new n}}}]},Ti=["$provide",function(e){var t=this;this.$$registeredAnimations=Object.create(null),this.register=function(n,r){if(n&&"."!==n.charAt(0))throw _i("notcsel","Expecting class selector starting with '.' got '{0}'.",n);var i=n+"-animation";t.$$registeredAnimations[n.substr(1)]=i,e.factory(i,r)},this.classNameFilter=function(e){if(1===arguments.length&&(this.$$classNameFilter=e instanceof RegExp?e:null,this.$$classNameFilter)){var t=new RegExp("(\\s+|\\/)"+Ni+"(\\s+|\\/)");if(t.test(this.$$classNameFilter.toString()))throw _i("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',Ni)}return this.$$classNameFilter},this.$get=["$$animateQueue",function(e){function t(e,t,n){if(n){var r=tt(n);!r||r.parentNode||r.previousElementSibling||(n=null)}n?n.after(e):t.prepend(e)}return{on:e.on,off:e.off,pin:e.pin,enabled:e.enabled,cancel:function(e){e.end&&e.end()},enter:function(n,r,i,o){return r=r&&$r(r),i=i&&$r(i),r=r||i.parent(),t(n,r,i),e.push(n,"enter",rt(o))},move:function(n,r,i,o){return r=r&&$r(r),i=i&&$r(i),r=r||i.parent(),t(n,r,i),e.push(n,"move",rt(o))},leave:function(t,n){return e.push(t,"leave",rt(n),function(){t.remove()})},addClass:function(t,n,r){return r=rt(r),r.addClass=et(r.addclass,n),e.push(t,"addClass",r)},removeClass:function(t,n,r){return r=rt(r),r.removeClass=et(r.removeClass,n),e.push(t,"removeClass",r)},setClass:function(t,n,r,i){return i=rt(i),i.addClass=et(i.addClass,n),i.removeClass=et(i.removeClass,r),e.push(t,"setClass",i)},animate:function(t,n,r,i,o){return o=rt(o),o.from=o.from?p(o.from,n):n,o.to=o.to?p(o.to,r):r,i=i||"ng-inline-animate",o.tempClasses=et(o.tempClasses,i),e.push(t,"animate",o)}}}]}],Pi=function(){this.$get=["$$rAF","$q",function(e,t){var n=function(){};return n.prototype={done:function(e){this.defer&&this.defer[e===!0?"reject":"resolve"]()},end:function(){this.done()},cancel:function(){this.done(!0)},getPromise:function(){return this.defer||(this.defer=t.defer()),this.defer.promise},then:function(e,t){return this.getPromise().then(e,t)},"catch":function(e){return this.getPromise()["catch"](e)},"finally":function(e){return this.getPromise()["finally"](e)}},function(t,r){function i(){return e(function(){o(),a||s.done(),a=!0}),s}function o(){r.addClass&&(t.addClass(r.addClass),r.addClass=null),r.removeClass&&(t.removeClass(r.removeClass),r.removeClass=null),r.to&&(t.css(r.to),r.to=null)}r.cleanupStyles&&(r.from=r.to=null),r.from&&(t.css(r.from),r.from=null);var a,s=new n;return{start:i,end:i}}}]},Si=r("$compile");ut.$inject=["$provide","$$sanitizeUriProvider"];var Di=/^((?:x|data)[\:\-_])/i,Ri=r("$controller"),ki=/^(\S+)(\s+as\s+(\w+))?$/,Ai=function(){this.$get=["$document",function(e){return function(t){return t?!t.nodeType&&t instanceof $r&&(t=t[0]):t=e[0].body,t.offsetWidth+1}}]},ji="application/json",Ii={"Content-Type":ji+";charset=utf-8"},Mi=/^\[|^\{(?!\{)/,Fi={"[":/]$/,"{":/}$/},Li=/^\)\]\}',?\n/,Vi=r("$http"),Ui=function(e){return function(){throw Vi("legacy","The method `{0}` on the promise returned from `$http` has been disabled.",e)}},Hi=jr.$interpolateMinErr=r("$interpolate");Hi.throwNoconcat=function(e){throw Hi("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce",e)},Hi.interr=function(e,t){return Hi("interr","Can't interpolate: {0}\n{1}",e,t.toString())};var qi=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,Bi={http:80,https:443,ftp:21},Wi=r("$location"),zi={$$html5:!1,$$replace:!1,absUrl:Ht("$$absUrl"),url:function(e){if(b(e))return this.$$url;var t=qi.exec(e);return(t[1]||""===e)&&this.path(decodeURIComponent(t[1])),(t[2]||t[1]||""===e)&&this.search(t[3]||""),this.hash(t[5]||""),this},protocol:Ht("$$protocol"),host:Ht("$$host"),port:Ht("$$port"),path:qt("$$path",function(e){return e=null!==e?e.toString():"","/"==e.charAt(0)?e:"/"+e}),search:function(e,t){switch(arguments.length){case 0:return this.$$search;case 1:if(_(e)||C(e))e=e.toString(),this.$$search=ee(e);else{if(!w(e))throw Wi("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");e=V(e,{}),o(e,function(t,n){null==t&&delete e[n]}),this.$$search=e}break;default:b(t)||null===t?delete this.$$search[e]:this.$$search[e]=t}return this.$$compose(),this},hash:qt("$$hash",function(e){return null!==e?e.toString():""}),replace:function(){return this.$$replace=!0,this}};o([Ut,Vt,Lt],function(e){e.prototype=Object.create(zi),e.prototype.state=function(t){if(!arguments.length)return this.$$state;if(e!==Lt||!this.$$html5)throw Wi("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=b(t)?null:t,this}});var Ki=r("$parse"),Qi=Function.prototype.call,Yi=Function.prototype.apply,Gi=Function.prototype.bind,Xi=ve();o("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(e){Xi[e]=!0});var Ji={n:"\n",f:"\f",r:"\r",t:" ",v:"","'":"'",'"':'"'},Zi=function(e){this.options=e};Zi.prototype={constructor:Zi,lex:function(e){for(this.text=e,this.index=0,this.tokens=[];this.index<this.text.length;){var t=this.text.charAt(this.index);if('"'===t||"'"===t)this.readString(t);else if(this.isNumber(t)||"."===t&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(t))this.readIdent();else if(this.is(t,"(){}[].,;:?"))this.tokens.push({index:this.index,text:t}),this.index++;else if(this.isWhitespace(t))this.index++;else{var n=t+this.peek(),r=n+this.peek(2),i=Xi[t],o=Xi[n],a=Xi[r];if(i||o||a){var s=a?r:o?n:t;this.tokens.push({index:this.index,text:s,operator:!0}),this.index+=s.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(e,t){return-1!==t.indexOf(e)},peek:function(e){var t=e||1;return this.index+t<this.text.length?this.text.charAt(this.index+t):!1},isNumber:function(e){return e>="0"&&"9">=e&&"string"==typeof e},isWhitespace:function(e){return" "===e||"\r"===e||" "===e||"\n"===e||""===e||" "===e},isIdent:function(e){return e>="a"&&"z">=e||e>="A"&&"Z">=e||"_"===e||"$"===e},isExpOperator:function(e){return"-"===e||"+"===e||this.isNumber(e)},throwError:function(e,t,n){n=n||this.index;var r=x(t)?"s "+t+"-"+this.index+" ["+this.text.substring(t,n)+"]":" "+n;throw Ki("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",e,r,this.text)},readNumber:function(){for(var e="",t=this.index;this.index<this.text.length;){var n=xr(this.text.charAt(this.index));if("."==n||this.isNumber(n))e+=n;else{var r=this.peek();if("e"==n&&this.isExpOperator(r))e+=n;else if(this.isExpOperator(n)&&r&&this.isNumber(r)&&"e"==e.charAt(e.length-1))e+=n;else{if(!this.isExpOperator(n)||r&&this.isNumber(r)||"e"!=e.charAt(e.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:t,text:e,constant:!0,value:Number(e)})},readIdent:function(){for(var e=this.index;this.index<this.text.length;){var t=this.text.charAt(this.index);if(!this.isIdent(t)&&!this.isNumber(t))break;this.index++}this.tokens.push({index:e,text:this.text.slice(e,this.index),identifier:!0})},readString:function(e){var t=this.index;this.index++;for(var n="",r=e,i=!1;this.index<this.text.length;){var o=this.text.charAt(this.index);if(r+=o,i){if("u"===o){var a=this.text.substring(this.index+1,this.index+5);a.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+a+"]"),this.index+=4,n+=String.fromCharCode(parseInt(a,16))}else{var s=Ji[o];n+=s||o}i=!1}else if("\\"===o)i=!0;else{if(o===e)return this.index++,void this.tokens.push({index:t,text:r,constant:!0,value:n});n+=o}this.index++}this.throwError("Unterminated quote",t)}};var eo=function(e,t){this.lexer=e,this.options=t};eo.Program="Program",eo.ExpressionStatement="ExpressionStatement",eo.AssignmentExpression="AssignmentExpression",eo.ConditionalExpression="ConditionalExpression",eo.LogicalExpression="LogicalExpression",eo.BinaryExpression="BinaryExpression",eo.UnaryExpression="UnaryExpression",eo.CallExpression="CallExpression",eo.MemberExpression="MemberExpression",eo.Identifier="Identifier",eo.Literal="Literal",eo.ArrayExpression="ArrayExpression",eo.Property="Property",eo.ObjectExpression="ObjectExpression",eo.ThisExpression="ThisExpression",eo.NGValueParameter="NGValueParameter",eo.prototype={ast:function(e){this.text=e,this.tokens=this.lexer.lex(e);var t=this.program();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),t},program:function(){for(var e=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&e.push(this.expressionStatement()),!this.expect(";"))return{type:eo.Program,body:e}},expressionStatement:function(){return{type:eo.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var e,t=this.expression();e=this.expect("|");)t=this.filter(t);return t},expression:function(){return this.assignment()},assignment:function(){var e=this.ternary();return this.expect("=")&&(e={type:eo.AssignmentExpression,left:e,right:this.assignment(),operator:"="}),e},ternary:function(){var e,t,n=this.logicalOR();return this.expect("?")&&(e=this.expression(),this.consume(":"))?(t=this.expression(),{type:eo.ConditionalExpression,test:n,alternate:e,consequent:t}):n},logicalOR:function(){for(var e=this.logicalAND();this.expect("||");)e={type:eo.LogicalExpression,operator:"||",left:e,right:this.logicalAND()};return e},logicalAND:function(){for(var e=this.equality();this.expect("&&");)e={type:eo.LogicalExpression,operator:"&&",left:e,right:this.equality()};return e},equality:function(){for(var e,t=this.relational();e=this.expect("==","!=","===","!==");)t={type:eo.BinaryExpression,operator:e.text,left:t,right:this.relational()};return t},relational:function(){for(var e,t=this.additive();e=this.expect("<",">","<=",">=");)t={type:eo.BinaryExpression,operator:e.text,left:t,right:this.additive()};return t},additive:function(){for(var e,t=this.multiplicative();e=this.expect("+","-");)t={type:eo.BinaryExpression,operator:e.text,left:t,right:this.multiplicative()};return t},multiplicative:function(){for(var e,t=this.unary();e=this.expect("*","/","%");)t={type:eo.BinaryExpression,operator:e.text,left:t,right:this.unary()};return t},unary:function(){var e;return(e=this.expect("+","-","!"))?{type:eo.UnaryExpression,operator:e.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var e;this.expect("(")?(e=this.filterChain(),this.consume(")")):this.expect("[")?e=this.arrayDeclaration():this.expect("{")?e=this.object():this.constants.hasOwnProperty(this.peek().text)?e=V(this.constants[this.consume().text]):this.peek().identifier?e=this.identifier():this.peek().constant?e=this.constant():this.throwError("not a primary expression",this.peek());for(var t;t=this.expect("(","[",".");)"("===t.text?(e={type:eo.CallExpression,callee:e,arguments:this.parseArguments()},this.consume(")")):"["===t.text?(e={type:eo.MemberExpression,object:e,property:this.expression(),computed:!0},this.consume("]")):"."===t.text?e={type:eo.MemberExpression,object:e,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return e},filter:function(e){for(var t=[e],n={type:eo.CallExpression,callee:this.identifier(),arguments:t,filter:!0};this.expect(":");)t.push(this.expression());return n},parseArguments:function(){var e=[];if(")"!==this.peekToken().text)do e.push(this.expression());while(this.expect(","));return e},identifier:function(){var e=this.consume();return e.identifier||this.throwError("is not a valid identifier",e),{type:eo.Identifier,name:e.text}},constant:function(){return{type:eo.Literal,value:this.consume().value}},arrayDeclaration:function(){var e=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;e.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:eo.ArrayExpression,elements:e}},object:function(){var e,t=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;e={type:eo.Property,kind:"init"},this.peek().constant?e.key=this.constant():this.peek().identifier?e.key=this.identifier():this.throwError("invalid key",this.peek()),this.consume(":"),e.value=this.expression(),t.push(e)}while(this.expect(","));return this.consume("}"),{type:eo.ObjectExpression,properties:t}},throwError:function(e,t){throw Ki("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",t.text,e,t.index+1,this.text,this.text.substring(t.index))},consume:function(e){if(0===this.tokens.length)throw Ki("ueoe","Unexpected end of expression: {0}",this.text);var t=this.expect(e);return t||this.throwError("is unexpected, expecting ["+e+"]",this.peek()),t},peekToken:function(){if(0===this.tokens.length)throw Ki("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(e,t,n,r){return this.peekAhead(0,e,t,n,r)},peekAhead:function(e,t,n,r,i){if(this.tokens.length>e){var o=this.tokens[e],a=o.text;if(a===t||a===n||a===r||a===i||!t&&!n&&!r&&!i)return o}return!1},expect:function(e,t,n,r){var i=this.peek(e,t,n,r);return i?(this.tokens.shift(),i):!1},constants:{"true":{type:eo.Literal,value:!0},"false":{type:eo.Literal,value:!1},"null":{type:eo.Literal,value:null},undefined:{type:eo.Literal,value:n},"this":{type:eo.ThisExpression}}},sn.prototype={compile:function(e,t){var r=this,i=this.astBuilder.ast(e);this.state={nextId:0,filters:{},expensiveChecks:t,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},en(i,r.$filter);var a,s="";if(this.stage="assign",a=rn(i)){this.state.computing="assign";var u=this.nextId();this.recurse(a,u),this.return_(u),s="fn.assign="+this.generateFunction("assign","s,v,l")}var c=tn(i.body);r.stage="inputs",o(c,function(e,t){var n="fn"+t;r.state[n]={vars:[],body:[],own:{}},r.state.computing=n;var i=r.nextId();r.recurse(e,i),r.return_(i),r.state.inputs.push(n),e.watchId=t}),this.state.computing="fn",this.stage="main",this.recurse(i);var l='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+s+this.watchFns()+"return fn;",p=new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue","ensureSafeAssignContext","ifDefined","plus","text",l)(this.$filter,zt,Qt,Yt,Kt,Gt,Xt,Jt,e);return this.state=this.stage=n,p.literal=on(i),p.constant=an(i),p},USE:"use",STRICT:"strict",watchFns:function(){var e=[],t=this.state.inputs,n=this;return o(t,function(t){e.push("var "+t+"="+n.generateFunction(t,"s"))}),t.length&&e.push("fn.inputs=["+t.join(",")+"];"),e.join("")},generateFunction:function(e,t){return"function("+t+"){"+this.varsPrefix(e)+this.body(e)+"};"},filterPrefix:function(){var e=[],t=this;return o(this.state.filters,function(n,r){e.push(n+"=$filter("+t.escape(r)+")")}),e.length?"var "+e.join(",")+";":""},varsPrefix:function(e){return this.state[e].vars.length?"var "+this.state[e].vars.join(",")+";":""},body:function(e){return this.state[e].body.join("")},recurse:function(e,t,r,i,a,s){var u,c,l,p,f=this;if(i=i||m,!s&&x(e.watchId))return t=t||this.nextId(),void this.if_("i",this.lazyAssign(t,this.computedMember("i",e.watchId)),this.lazyRecurse(e,t,r,i,a,!0));switch(e.type){case eo.Program:o(e.body,function(t,r){f.recurse(t.expression,n,n,function(e){c=e}),r!==e.body.length-1?f.current().body.push(c,";"):f.return_(c)});break;case eo.Literal:p=this.escape(e.value),this.assign(t,p),i(p);break;case eo.UnaryExpression:this.recurse(e.argument,n,n,function(e){c=e}),p=e.operator+"("+this.ifDefined(c,0)+")",this.assign(t,p),i(p);break;case eo.BinaryExpression:this.recurse(e.left,n,n,function(e){u=e}),this.recurse(e.right,n,n,function(e){c=e}),p="+"===e.operator?this.plus(u,c):"-"===e.operator?this.ifDefined(u,0)+e.operator+this.ifDefined(c,0):"("+u+")"+e.operator+"("+c+")",this.assign(t,p),i(p);break;case eo.LogicalExpression:t=t||this.nextId(),f.recurse(e.left,t),f.if_("&&"===e.operator?t:f.not(t),f.lazyRecurse(e.right,t)),i(t);break;case eo.ConditionalExpression:t=t||this.nextId(),f.recurse(e.test,t),f.if_(t,f.lazyRecurse(e.alternate,t),f.lazyRecurse(e.consequent,t)),i(t);break;case eo.Identifier:t=t||this.nextId(),r&&(r.context="inputs"===f.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",e.name)+"?l:s"),r.computed=!1,r.name=e.name),zt(e.name),f.if_("inputs"===f.stage||f.not(f.getHasOwnProperty("l",e.name)),function(){f.if_("inputs"===f.stage||"s",function(){a&&1!==a&&f.if_(f.not(f.nonComputedMember("s",e.name)),f.lazyAssign(f.nonComputedMember("s",e.name),"{}")),f.assign(t,f.nonComputedMember("s",e.name))})},t&&f.lazyAssign(t,f.nonComputedMember("l",e.name))),(f.state.expensiveChecks||cn(e.name))&&f.addEnsureSafeObject(t),i(t);break;case eo.MemberExpression:u=r&&(r.context=this.nextId())||this.nextId(),t=t||this.nextId(),f.recurse(e.object,u,n,function(){f.if_(f.notNull(u),function(){e.computed?(c=f.nextId(),f.recurse(e.property,c),f.getStringValue(c),f.addEnsureSafeMemberName(c),a&&1!==a&&f.if_(f.not(f.computedMember(u,c)),f.lazyAssign(f.computedMember(u,c),"{}")),p=f.ensureSafeObject(f.computedMember(u,c)),f.assign(t,p),r&&(r.computed=!0,r.name=c)):(zt(e.property.name),a&&1!==a&&f.if_(f.not(f.nonComputedMember(u,e.property.name)),f.lazyAssign(f.nonComputedMember(u,e.property.name),"{}")),p=f.nonComputedMember(u,e.property.name),(f.state.expensiveChecks||cn(e.property.name))&&(p=f.ensureSafeObject(p)),f.assign(t,p),r&&(r.computed=!1,r.name=e.property.name))},function(){f.assign(t,"undefined")}),i(t)},!!a);break;case eo.CallExpression:t=t||this.nextId(),e.filter?(c=f.filter(e.callee.name),l=[],o(e.arguments,function(e){var t=f.nextId();f.recurse(e,t),l.push(t)}),p=c+"("+l.join(",")+")",f.assign(t,p),i(t)):(c=f.nextId(),u={},l=[],f.recurse(e.callee,c,u,function(){f.if_(f.notNull(c),function(){f.addEnsureSafeFunction(c),o(e.arguments,function(e){f.recurse(e,f.nextId(),n,function(e){l.push(f.ensureSafeObject(e))})}),u.name?(f.state.expensiveChecks||f.addEnsureSafeObject(u.context),p=f.member(u.context,u.name,u.computed)+"("+l.join(",")+")"):p=c+"("+l.join(",")+")",p=f.ensureSafeObject(p),f.assign(t,p)},function(){f.assign(t,"undefined")}),i(t)}));break;case eo.AssignmentExpression:if(c=this.nextId(),u={},!nn(e.left))throw Ki("lval","Trying to assing a value to a non l-value");this.recurse(e.left,n,u,function(){f.if_(f.notNull(u.context),function(){f.recurse(e.right,c),f.addEnsureSafeObject(f.member(u.context,u.name,u.computed)),f.addEnsureSafeAssignContext(u.context),p=f.member(u.context,u.name,u.computed)+e.operator+c,f.assign(t,p),i(t||p)})},1);break;case eo.ArrayExpression:l=[],o(e.elements,function(e){f.recurse(e,f.nextId(),n,function(e){l.push(e)})}),p="["+l.join(",")+"]",this.assign(t,p),i(p);break;case eo.ObjectExpression:l=[],o(e.properties,function(e){f.recurse(e.value,f.nextId(),n,function(t){l.push(f.escape(e.key.type===eo.Identifier?e.key.name:""+e.key.value)+":"+t)})}),p="{"+l.join(",")+"}",this.assign(t,p),i(p);break;case eo.ThisExpression:this.assign(t,"s"),i("s");break;case eo.NGValueParameter:this.assign(t,"v"),i("v")}},getHasOwnProperty:function(e,t){var n=e+"."+t,r=this.current().own;return r.hasOwnProperty(n)||(r[n]=this.nextId(!1,e+"&&("+this.escape(t)+" in "+e+")")),r[n]},assign:function(e,t){return e?(this.current().body.push(e,"=",t,";"),e):void 0},filter:function(e){return this.state.filters.hasOwnProperty(e)||(this.state.filters[e]=this.nextId(!0)),this.state.filters[e];
30
+
31
+ },ifDefined:function(e,t){return"ifDefined("+e+","+this.escape(t)+")"},plus:function(e,t){return"plus("+e+","+t+")"},return_:function(e){this.current().body.push("return ",e,";")},if_:function(e,t,n){if(e===!0)t();else{var r=this.current().body;r.push("if(",e,"){"),t(),r.push("}"),n&&(r.push("else{"),n(),r.push("}"))}},not:function(e){return"!("+e+")"},notNull:function(e){return e+"!=null"},nonComputedMember:function(e,t){return e+"."+t},computedMember:function(e,t){return e+"["+t+"]"},member:function(e,t,n){return n?this.computedMember(e,t):this.nonComputedMember(e,t)},addEnsureSafeObject:function(e){this.current().body.push(this.ensureSafeObject(e),";")},addEnsureSafeMemberName:function(e){this.current().body.push(this.ensureSafeMemberName(e),";")},addEnsureSafeFunction:function(e){this.current().body.push(this.ensureSafeFunction(e),";")},addEnsureSafeAssignContext:function(e){this.current().body.push(this.ensureSafeAssignContext(e),";")},ensureSafeObject:function(e){return"ensureSafeObject("+e+",text)"},ensureSafeMemberName:function(e){return"ensureSafeMemberName("+e+",text)"},ensureSafeFunction:function(e){return"ensureSafeFunction("+e+",text)"},getStringValue:function(e){this.assign(e,"getStringValue("+e+",text)")},ensureSafeAssignContext:function(e){return"ensureSafeAssignContext("+e+",text)"},lazyRecurse:function(e,t,n,r,i,o){var a=this;return function(){a.recurse(e,t,n,r,i,o)}},lazyAssign:function(e,t){var n=this;return function(){n.assign(e,t)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)},escape:function(e){if(_(e))return"'"+e.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(C(e))return e.toString();if(e===!0)return"true";if(e===!1)return"false";if(null===e)return"null";if("undefined"==typeof e)return"undefined";throw Ki("esc","IMPOSSIBLE")},nextId:function(e,t){var n="v"+this.state.nextId++;return e||this.current().vars.push(n+(t?"="+t:"")),n},current:function(){return this.state[this.state.computing]}},un.prototype={compile:function(e,t){var n=this,r=this.astBuilder.ast(e);this.expression=e,this.expensiveChecks=t,en(r,n.$filter);var i,a;(i=rn(r))&&(a=this.recurse(i));var s,u=tn(r.body);u&&(s=[],o(u,function(e,t){var r=n.recurse(e);e.input=r,s.push(r),e.watchId=t}));var c=[];o(r.body,function(e){c.push(n.recurse(e.expression))});var l=0===r.body.length?function(){}:1===r.body.length?c[0]:function(e,t){var n;return o(c,function(r){n=r(e,t)}),n};return a&&(l.assign=function(e,t,n){return a(e,n,t)}),s&&(l.inputs=s),l.literal=on(r),l.constant=an(r),l},recurse:function(e,t,r){var i,a,s,u=this;if(e.input)return this.inputs(e.input,e.watchId);switch(e.type){case eo.Literal:return this.value(e.value,t);case eo.UnaryExpression:return a=this.recurse(e.argument),this["unary"+e.operator](a,t);case eo.BinaryExpression:return i=this.recurse(e.left),a=this.recurse(e.right),this["binary"+e.operator](i,a,t);case eo.LogicalExpression:return i=this.recurse(e.left),a=this.recurse(e.right),this["binary"+e.operator](i,a,t);case eo.ConditionalExpression:return this["ternary?:"](this.recurse(e.test),this.recurse(e.alternate),this.recurse(e.consequent),t);case eo.Identifier:return zt(e.name,u.expression),u.identifier(e.name,u.expensiveChecks||cn(e.name),t,r,u.expression);case eo.MemberExpression:return i=this.recurse(e.object,!1,!!r),e.computed||(zt(e.property.name,u.expression),a=e.property.name),e.computed&&(a=this.recurse(e.property)),e.computed?this.computedMember(i,a,t,r,u.expression):this.nonComputedMember(i,a,u.expensiveChecks,t,r,u.expression);case eo.CallExpression:return s=[],o(e.arguments,function(e){s.push(u.recurse(e))}),e.filter&&(a=this.$filter(e.callee.name)),e.filter||(a=this.recurse(e.callee,!0)),e.filter?function(e,r,i,o){for(var u=[],c=0;c<s.length;++c)u.push(s[c](e,r,i,o));var l=a.apply(n,u,o);return t?{context:n,name:n,value:l}:l}:function(e,n,r,i){var o,c=a(e,n,r,i);if(null!=c.value){Qt(c.context,u.expression),Yt(c.value,u.expression);for(var l=[],p=0;p<s.length;++p)l.push(Qt(s[p](e,n,r,i),u.expression));o=Qt(c.value.apply(c.context,l),u.expression)}return t?{value:o}:o};case eo.AssignmentExpression:return i=this.recurse(e.left,!0,1),a=this.recurse(e.right),function(e,n,r,o){var s=i(e,n,r,o),c=a(e,n,r,o);return Qt(s.value,u.expression),Gt(s.context),s.context[s.name]=c,t?{value:c}:c};case eo.ArrayExpression:return s=[],o(e.elements,function(e){s.push(u.recurse(e))}),function(e,n,r,i){for(var o=[],a=0;a<s.length;++a)o.push(s[a](e,n,r,i));return t?{value:o}:o};case eo.ObjectExpression:return s=[],o(e.properties,function(e){s.push({key:e.key.type===eo.Identifier?e.key.name:""+e.key.value,value:u.recurse(e.value)})}),function(e,n,r,i){for(var o={},a=0;a<s.length;++a)o[s[a].key]=s[a].value(e,n,r,i);return t?{value:o}:o};case eo.ThisExpression:return function(e){return t?{value:e}:e};case eo.NGValueParameter:return function(e,n,r){return t?{value:r}:r}}},"unary+":function(e,t){return function(n,r,i,o){var a=e(n,r,i,o);return a=x(a)?+a:0,t?{value:a}:a}},"unary-":function(e,t){return function(n,r,i,o){var a=e(n,r,i,o);return a=x(a)?-a:0,t?{value:a}:a}},"unary!":function(e,t){return function(n,r,i,o){var a=!e(n,r,i,o);return t?{value:a}:a}},"binary+":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a),u=t(r,i,o,a),c=Jt(s,u);return n?{value:c}:c}},"binary-":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a),u=t(r,i,o,a),c=(x(s)?s:0)-(x(u)?u:0);return n?{value:c}:c}},"binary*":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)*t(r,i,o,a);return n?{value:s}:s}},"binary/":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)/t(r,i,o,a);return n?{value:s}:s}},"binary%":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)%t(r,i,o,a);return n?{value:s}:s}},"binary===":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)===t(r,i,o,a);return n?{value:s}:s}},"binary!==":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)!==t(r,i,o,a);return n?{value:s}:s}},"binary==":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)==t(r,i,o,a);return n?{value:s}:s}},"binary!=":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)!=t(r,i,o,a);return n?{value:s}:s}},"binary<":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)<t(r,i,o,a);return n?{value:s}:s}},"binary>":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)>t(r,i,o,a);return n?{value:s}:s}},"binary<=":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)<=t(r,i,o,a);return n?{value:s}:s}},"binary>=":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)>=t(r,i,o,a);return n?{value:s}:s}},"binary&&":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)&&t(r,i,o,a);return n?{value:s}:s}},"binary||":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)||t(r,i,o,a);return n?{value:s}:s}},"ternary?:":function(e,t,n,r){return function(i,o,a,s){var u=e(i,o,a,s)?t(i,o,a,s):n(i,o,a,s);return r?{value:u}:u}},value:function(e,t){return function(){return t?{context:n,name:n,value:e}:e}},identifier:function(e,t,r,i,o){return function(a,s){var u=s&&e in s?s:a;i&&1!==i&&u&&!u[e]&&(u[e]={});var c=u?u[e]:n;return t&&Qt(c,o),r?{context:u,name:e,value:c}:c}},computedMember:function(e,t,n,r,i){return function(o,a,s,u){var c,l,p=e(o,a,s,u);return null!=p&&(c=t(o,a,s,u),c=Kt(c),zt(c,i),r&&1!==r&&p&&!p[c]&&(p[c]={}),l=p[c],Qt(l,i)),n?{context:p,name:c,value:l}:l}},nonComputedMember:function(e,t,r,i,o,a){return function(s,u,c,l){var p=e(s,u,c,l);o&&1!==o&&p&&!p[t]&&(p[t]={});var f=null!=p?p[t]:n;return(r||cn(t))&&Qt(f,a),i?{context:p,name:t,value:f}:f}},inputs:function(e,t){return function(n,r,i,o){return o?o[t]:e(n,r,i)}}};var to=function(e,t,n){this.lexer=e,this.$filter=t,this.options=n,this.ast=new eo(this.lexer),this.astCompiler=n.csp?new un(this.ast,t):new sn(this.ast,t)};to.prototype={constructor:to,parse:function(e){return this.astCompiler.compile(e,this.options.expensiveChecks)}};var no=(ve(),ve(),Object.prototype.valueOf),ro=r("$sce"),io={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Si=r("$compile"),oo=t.createElement("a"),ao=$n(e.location.href);Pn.$inject=["$document"],Dn.$inject=["$provide"],In.$inject=["$locale"],Mn.$inject=["$locale"];var so=".",uo={yyyy:Vn("FullYear",4),yy:Vn("FullYear",2,0,!0),y:Vn("FullYear",1),MMMM:Un("Month"),MMM:Un("Month",!0),MM:Vn("Month",2,1),M:Vn("Month",1,1),dd:Vn("Date",2),d:Vn("Date",1),HH:Vn("Hours",2),H:Vn("Hours",1),hh:Vn("Hours",2,-12),h:Vn("Hours",1,-12),mm:Vn("Minutes",2),m:Vn("Minutes",1),ss:Vn("Seconds",2),s:Vn("Seconds",1),sss:Vn("Milliseconds",3),EEEE:Un("Day"),EEE:Un("Day",!0),a:zn,Z:Hn,ww:Wn(2),w:Wn(1),G:Kn,GG:Kn,GGG:Kn,GGGG:Qn},co=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,lo=/^\-?\d+$/;Yn.$inject=["$locale"];var po=g(xr),fo=g(Er);Jn.$inject=["$parse"];var ho=g({restrict:"E",compile:function(e,t){return t.href||t.xlinkHref?void 0:function(e,t){if("a"===t[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===Rr.call(t.prop("href"))?"xlink:href":"href";t.on("click",function(e){t.attr(n)||e.preventDefault()})}}}}),mo={};o(hi,function(e,t){function n(e,n,i){e.$watch(i[r],function(e){i.$set(t,!!e)})}if("multiple"!=e){var r=ct("ng-"+t),i=n;"checked"===e&&(i=function(e,t,i){i.ngModel!==i[r]&&n(e,t,i)}),mo[r]=function(){return{restrict:"A",priority:100,link:i}}}}),o(vi,function(e,t){mo[t]=function(){return{priority:100,link:function(e,n,r){if("ngPattern"===t&&"/"==r.ngPattern.charAt(0)){var i=r.ngPattern.match(yr);if(i)return void r.$set("ngPattern",new RegExp(i[1],i[2]))}e.$watch(r[t],function(e){r.$set(t,e)})}}}}),o(["src","srcset","href"],function(e){var t=ct("ng-"+e);mo[t]=function(){return{priority:99,link:function(n,r,i){var o=e,a=e;"href"===e&&"[object SVGAnimatedString]"===Rr.call(r.prop("href"))&&(a="xlinkHref",i.$attr[a]="xlink:href",o=null),i.$observe(t,function(t){return t?(i.$set(a,t),void(Nr&&o&&r.prop(o,i[a]))):void("href"===e&&i.$set(a,null))})}}}});var vo={$addControl:m,$$renameControl:er,$removeControl:m,$setValidity:m,$setDirty:m,$setPristine:m,$setSubmitted:m},go="ng-submitted";tr.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var yo=function(e){return["$timeout","$parse",function(t,r){function i(e){return""===e?r('this[""]').assign:r(e).assign||m}var o={name:"form",restrict:e?"EAC":"E",require:["form","^^?form"],controller:tr,compile:function(r,o){r.addClass(Jo).addClass(Go);var a=o.name?"name":e&&o.ngForm?"ngForm":!1;return{pre:function(e,r,o,s){var u=s[0];if(!("action"in o)){var c=function(t){e.$apply(function(){u.$commitViewValue(),u.$setSubmitted()}),t.preventDefault()};ni(r[0],"submit",c),r.on("$destroy",function(){t(function(){ri(r[0],"submit",c)},0,!1)})}var l=s[1]||u.$$parentForm;l.$addControl(u);var f=a?i(u.$name):m;a&&(f(e,u),o.$observe(a,function(t){u.$name!==t&&(f(e,n),u.$$parentForm.$$renameControl(u,t),(f=i(u.$name))(e,u))})),r.on("$destroy",function(){u.$$parentForm.$removeControl(u),f(e,n),p(u,vo)})}}}};return o}]},bo=yo(),xo=yo(!0),wo=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,Eo=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,_o=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,Co=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,No=/^(\d{4})-(\d{2})-(\d{2})$/,$o=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Oo=/^(\d{4})-W(\d\d)$/,To=/^(\d{4})-(\d\d)$/,Po=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,So={text:rr,date:sr("date",No,ar(No,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":sr("datetimelocal",$o,ar($o,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:sr("time",Po,ar(Po,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:sr("week",Oo,or,"yyyy-Www"),month:sr("month",To,ar(To,["yyyy","MM"]),"yyyy-MM"),number:cr,url:lr,email:pr,radio:fr,checkbox:hr,hidden:m,button:m,submit:m,reset:m,file:m},Do=["$browser","$sniffer","$filter","$parse",function(e,t,n,r){return{restrict:"E",require:["?ngModel"],link:{pre:function(i,o,a,s){s[0]&&(So[xr(a.type)]||So.text)(i,o,a,s[0],t,e,n,r)}}}}],Ro=/^(true|false|\d+)$/,ko=function(){return{restrict:"A",priority:100,compile:function(e,t){return Ro.test(t.ngValue)?function(e,t,n){n.$set("value",e.$eval(n.ngValue))}:function(e,t,n){e.$watch(n.ngValue,function(e){n.$set("value",e)})}}}},Ao=["$compile",function(e){return{restrict:"AC",compile:function(t){return e.$$addBindingClass(t),function(t,n,r){e.$$addBindingInfo(n,r.ngBind),n=n[0],t.$watch(r.ngBind,function(e){n.textContent=b(e)?"":e})}}}}],jo=["$interpolate","$compile",function(e,t){return{compile:function(n){return t.$$addBindingClass(n),function(n,r,i){var o=e(r.attr(i.$attr.ngBindTemplate));t.$$addBindingInfo(r,o.expressions),r=r[0],i.$observe("ngBindTemplate",function(e){r.textContent=b(e)?"":e})}}}}],Io=["$sce","$parse","$compile",function(e,t,n){return{restrict:"A",compile:function(r,i){var o=t(i.ngBindHtml),a=t(i.ngBindHtml,function(e){return(e||"").toString()});return n.$$addBindingClass(r),function(t,r,i){n.$$addBindingInfo(r,i.ngBindHtml),t.$watch(a,function(){r.html(e.getTrustedHtml(o(t))||"")})}}}}],Mo=g({restrict:"A",require:"ngModel",link:function(e,t,n,r){r.$viewChangeListeners.push(function(){e.$eval(n.ngChange)})}}),Fo=mr("",!0),Lo=mr("Odd",0),Vo=mr("Even",1),Uo=Zn({compile:function(e,t){t.$set("ngCloak",n),e.removeClass("ng-cloak")}}),Ho=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],qo={},Bo={blur:!0,focus:!0};o("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(e){var t=ct("ng-"+e);qo[t]=["$parse","$rootScope",function(n,r){return{restrict:"A",compile:function(i,o){var a=n(o[t],null,!0);return function(t,n){n.on(e,function(n){var i=function(){a(t,{$event:n})};Bo[e]&&r.$$phase?t.$evalAsync(i):t.$apply(i)})}}}}]});var Wo=["$animate",function(e){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,r,i,o,a){var s,u,c;n.$watch(i.ngIf,function(n){n?u||a(function(n,o){u=o,n[n.length++]=t.createComment(" end ngIf: "+i.ngIf+" "),s={clone:n},e.enter(n,r.parent(),r)}):(c&&(c.remove(),c=null),u&&(u.$destroy(),u=null),s&&(c=me(s.clone),e.leave(c).then(function(){c=null}),s=null))})}}}],zo=["$templateRequest","$anchorScroll","$animate",function(e,t,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:jr.noop,compile:function(r,i){var o=i.ngInclude||i.src,a=i.onload||"",s=i.autoscroll;return function(r,i,u,c,l){var p,f,d,h=0,m=function(){f&&(f.remove(),f=null),p&&(p.$destroy(),p=null),d&&(n.leave(d).then(function(){f=null}),f=d,d=null)};r.$watch(o,function(o){var u=function(){!x(s)||s&&!r.$eval(s)||t()},f=++h;o?(e(o,!0).then(function(e){if(f===h){var t=r.$new();c.template=e;var s=l(t,function(e){m(),n.enter(e,null,i).then(u)});p=t,d=s,p.$emit("$includeContentLoaded",o),r.$eval(a)}},function(){f===h&&(m(),r.$emit("$includeContentError",o))}),r.$emit("$includeContentRequested",o)):(m(),c.template=null)})}}}}],Ko=["$compile",function(e){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,r,i,o){return/SVG/.test(r[0].toString())?(r.empty(),void e($e(o.template,t).childNodes)(n,function(e){r.append(e)},{futureParentElement:r})):(r.html(o.template),void e(r.contents())(n))}}}],Qo=Zn({priority:450,compile:function(){return{pre:function(e,t,n){e.$eval(n.ngInit)}}}}),Yo=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(e,t,r,i){var a=t.attr(r.$attr.ngList)||", ",s="false"!==r.ngTrim,u=s?Vr(a):a,c=function(e){if(!b(e)){var t=[];return e&&o(e.split(u),function(e){e&&t.push(s?Vr(e):e)}),t}};i.$parsers.push(c),i.$formatters.push(function(e){return Fr(e)?e.join(a):n}),i.$isEmpty=function(e){return!e||!e.length}}}},Go="ng-valid",Xo="ng-invalid",Jo="ng-pristine",Zo="ng-dirty",ea="ng-untouched",ta="ng-touched",na="ng-pending",ra=r("ngModel"),ia=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(e,t,r,i,a,s,u,c,l,p){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=n,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=n,this.$name=p(r.name||"",!1)(e),this.$$parentForm=vo;var f,d=a(r.ngModel),h=d.assign,v=d,g=h,y=null,w=this;this.$$setOptions=function(e){if(w.$options=e,e&&e.getterSetter){var t=a(r.ngModel+"()"),n=a(r.ngModel+"($$$p)");v=function(e){var n=d(e);return $(n)&&(n=t(e)),n},g=function(e){$(d(e))?n(e,{$$$p:w.$modelValue}):h(e,w.$modelValue)}}else if(!d.assign)throw ra("nonassign","Expression '{0}' is non-assignable. Element: {1}",r.ngModel,J(i))},this.$render=m,this.$isEmpty=function(e){return b(e)||""===e||null===e||e!==e};var E=0;vr({ctrl:this,$element:i,set:function(e,t){e[t]=!0},unset:function(e,t){delete e[t]},$animate:s}),this.$setPristine=function(){w.$dirty=!1,w.$pristine=!0,s.removeClass(i,Zo),s.addClass(i,Jo)},this.$setDirty=function(){w.$dirty=!0,w.$pristine=!1,s.removeClass(i,Jo),s.addClass(i,Zo),w.$$parentForm.$setDirty()},this.$setUntouched=function(){w.$touched=!1,w.$untouched=!0,s.setClass(i,ea,ta)},this.$setTouched=function(){w.$touched=!0,w.$untouched=!1,s.setClass(i,ta,ea)},this.$rollbackViewValue=function(){u.cancel(y),w.$viewValue=w.$$lastCommittedViewValue,w.$render()},this.$validate=function(){if(!C(w.$modelValue)||!isNaN(w.$modelValue)){var e=w.$$lastCommittedViewValue,t=w.$$rawModelValue,r=w.$valid,i=w.$modelValue,o=w.$options&&w.$options.allowInvalid;w.$$runValidators(t,e,function(e){o||r===e||(w.$modelValue=e?t:n,w.$modelValue!==i&&w.$$writeModelToScope())})}},this.$$runValidators=function(e,t,r){function i(){var e=w.$$parserName||"parse";return b(f)?(u(e,null),!0):(f||(o(w.$validators,function(e,t){u(t,null)}),o(w.$asyncValidators,function(e,t){u(t,null)})),u(e,f),f)}function a(){var n=!0;return o(w.$validators,function(r,i){var o=r(e,t);n=n&&o,u(i,o)}),n?!0:(o(w.$asyncValidators,function(e,t){u(t,null)}),!1)}function s(){var r=[],i=!0;o(w.$asyncValidators,function(o,a){var s=o(e,t);if(!A(s))throw ra("$asyncValidators","Expected asynchronous validator to return a promise but got '{0}' instead.",s);u(a,n),r.push(s.then(function(){u(a,!0)},function(){i=!1,u(a,!1)}))}),r.length?l.all(r).then(function(){c(i)},m):c(!0)}function u(e,t){p===E&&w.$setValidity(e,t)}function c(e){p===E&&r(e)}E++;var p=E;return i()&&a()?void s():void c(!1)},this.$commitViewValue=function(){var e=w.$viewValue;u.cancel(y),(w.$$lastCommittedViewValue!==e||""===e&&w.$$hasNativeValidators)&&(w.$$lastCommittedViewValue=e,w.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){function t(){w.$modelValue!==a&&w.$$writeModelToScope()}var r=w.$$lastCommittedViewValue,i=r;if(f=b(i)?n:!0)for(var o=0;o<w.$parsers.length;o++)if(i=w.$parsers[o](i),b(i)){f=!1;break}C(w.$modelValue)&&isNaN(w.$modelValue)&&(w.$modelValue=v(e));var a=w.$modelValue,s=w.$options&&w.$options.allowInvalid;w.$$rawModelValue=i,s&&(w.$modelValue=i,t()),w.$$runValidators(i,w.$$lastCommittedViewValue,function(e){s||(w.$modelValue=e?i:n,t())})},this.$$writeModelToScope=function(){g(e,w.$modelValue),o(w.$viewChangeListeners,function(e){try{e()}catch(n){t(n)}})},this.$setViewValue=function(e,t){w.$viewValue=e,(!w.$options||w.$options.updateOnDefault)&&w.$$debounceViewValueCommit(t)},this.$$debounceViewValueCommit=function(t){var n,r=0,i=w.$options;i&&x(i.debounce)&&(n=i.debounce,C(n)?r=n:C(n[t])?r=n[t]:C(n["default"])&&(r=n["default"])),u.cancel(y),r?y=u(function(){w.$commitViewValue()},r):c.$$phase?w.$commitViewValue():e.$apply(function(){w.$commitViewValue()})},e.$watch(function(){var t=v(e);if(t!==w.$modelValue&&(w.$modelValue===w.$modelValue||t===t)){w.$modelValue=w.$$rawModelValue=t,f=n;for(var r=w.$formatters,i=r.length,o=t;i--;)o=r[i](o);w.$viewValue!==o&&(w.$viewValue=w.$$lastCommittedViewValue=o,w.$render(),w.$$runValidators(t,o,m))}return t})}],oa=["$rootScope",function(e){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:ia,priority:1,compile:function(t){return t.addClass(Jo).addClass(ea).addClass(Go),{pre:function(e,t,n,r){var i=r[0],o=r[1]||i.$$parentForm;i.$$setOptions(r[2]&&r[2].$options),o.$addControl(i),n.$observe("name",function(e){i.$name!==e&&i.$$parentForm.$$renameControl(i,e)}),e.$on("$destroy",function(){i.$$parentForm.$removeControl(i)})},post:function(t,n,r,i){var o=i[0];o.$options&&o.$options.updateOn&&n.on(o.$options.updateOn,function(e){o.$$debounceViewValueCommit(e&&e.type)}),n.on("blur",function(){o.$touched||(e.$$phase?t.$evalAsync(o.$setTouched):t.$apply(o.$setTouched))})}}}}}],aa=/(\s+|^)default(\s+|$)/,sa=function(){return{restrict:"A",controller:["$scope","$attrs",function(e,t){var n=this;this.$options=V(e.$eval(t.ngModelOptions)),x(this.$options.updateOn)?(this.$options.updateOnDefault=!1,this.$options.updateOn=Vr(this.$options.updateOn.replace(aa,function(){return n.$options.updateOnDefault=!0," "}))):this.$options.updateOnDefault=!0}]}},ua=Zn({terminal:!0,priority:1e3}),ca=r("ngOptions"),la=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,pa=["$compile","$parse",function(e,n){function r(e,t,r){function o(e,t,n,r,i){this.selectValue=e,this.viewValue=t,this.label=n,this.group=r,this.disabled=i}function a(e){var t;if(!c&&i(e))t=e;else{t=[];for(var n in e)e.hasOwnProperty(n)&&"$"!==n.charAt(0)&&t.push(n)}return t}var s=e.match(la);if(!s)throw ca("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",e,J(t));var u=s[5]||s[7],c=s[6],l=/ as /.test(s[0])&&s[1],p=s[9],f=n(s[2]?s[1]:u),d=l&&n(l),h=d||f,m=p&&n(p),v=p?function(e,t){return m(r,t)}:function(e){return Qe(e)},g=function(e,t){return v(e,_(e,t))},y=n(s[2]||s[1]),b=n(s[3]||""),x=n(s[4]||""),w=n(s[8]),E={},_=c?function(e,t){return E[c]=t,E[u]=e,E}:function(e){return E[u]=e,E};return{trackBy:p,getTrackByValue:g,getWatchables:n(w,function(e){var t=[];e=e||[];for(var n=a(e),i=n.length,o=0;i>o;o++){var u=e===n?o:n[o],c=(e[u],_(e[u],u)),l=v(e[u],c);if(t.push(l),s[2]||s[1]){var p=y(r,c);t.push(p)}if(s[4]){var f=x(r,c);t.push(f)}}return t}),getOptions:function(){for(var e=[],t={},n=w(r)||[],i=a(n),s=i.length,u=0;s>u;u++){var c=n===i?u:i[u],l=n[c],f=_(l,c),d=h(r,f),m=v(d,f),E=y(r,f),C=b(r,f),N=x(r,f),$=new o(m,d,E,C,N);e.push($),t[m]=$}return{items:e,selectValueMap:t,getOptionFromViewValue:function(e){return t[g(e)]},getViewValueFromOption:function(e){return p?jr.copy(e.viewValue):e.viewValue}}}}}var a=t.createElement("option"),s=t.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","?ngModel"],link:function(t,n,i,u){function c(e,t){e.element=t,t.disabled=e.disabled,e.label!==t.label&&(t.label=e.label,t.textContent=e.label),e.value!==t.value&&(t.value=e.selectValue)}function l(e,t,n,r){var i;return t&&xr(t.nodeName)===n?i=t:(i=r.cloneNode(!1),t?e.insertBefore(i,t):e.appendChild(i)),i}function p(e){for(var t;e;)t=e.nextSibling,He(e),e=t}function f(e){var t=m&&m[0],n=E&&E[0];if(t||n)for(;e&&(e===t||e===n||t&&t.nodeType===Gr);)e=e.nextSibling;return e}function d(){var e=_&&v.readValue();_=C.getOptions();var t={},r=n[0].firstChild;if(w&&n.prepend(m),r=f(r),_.items.forEach(function(e){var i,o,u;e.group?(i=t[e.group],i||(o=l(n[0],r,"optgroup",s),r=o.nextSibling,o.label=e.group,i=t[e.group]={groupElement:o,currentOptionElement:o.firstChild}),u=l(i.groupElement,i.currentOptionElement,"option",a),c(e,u),i.currentOptionElement=u.nextSibling):(u=l(n[0],r,"option",a),c(e,u),r=u.nextSibling)}),Object.keys(t).forEach(function(e){p(t[e].currentOptionElement)}),p(r),h.$render(),!h.$isEmpty(e)){var i=v.readValue();(C.trackBy?H(e,i):e===i)||(h.$setViewValue(i),h.$render())}}var h=u[1];if(h){for(var m,v=u[0],g=i.multiple,y=0,b=n.children(),x=b.length;x>y;y++)if(""===b[y].value){m=b.eq(y);break}var w=!!m,E=$r(a.cloneNode(!1));E.val("?");var _,C=r(i.ngOptions,n,t),N=function(){w||n.prepend(m),n.val(""),m.prop("selected",!0),m.attr("selected",!0)},$=function(){w||m.remove()},O=function(){n.prepend(E),n.val("?"),E.prop("selected",!0),E.attr("selected",!0)},T=function(){E.remove()};g?(h.$isEmpty=function(e){return!e||0===e.length},v.writeValue=function(e){_.items.forEach(function(e){e.element.selected=!1}),e&&e.forEach(function(e){var t=_.getOptionFromViewValue(e);t&&!t.disabled&&(t.element.selected=!0)})},v.readValue=function(){var e=n.val()||[],t=[];return o(e,function(e){var n=_.selectValueMap[e];n&&!n.disabled&&t.push(_.getViewValueFromOption(n))}),t},C.trackBy&&t.$watchCollection(function(){return Fr(h.$viewValue)?h.$viewValue.map(function(e){return C.getTrackByValue(e)}):void 0},function(){h.$render()})):(v.writeValue=function(e){var t=_.getOptionFromViewValue(e);t&&!t.disabled?n[0].value!==t.selectValue&&(T(),$(),n[0].value=t.selectValue,t.element.selected=!0,t.element.setAttribute("selected","selected")):null===e||w?(T(),N()):($(),O())},v.readValue=function(){var e=_.selectValueMap[n.val()];return e&&!e.disabled?($(),T(),_.getViewValueFromOption(e)):null},C.trackBy&&t.$watch(function(){return C.getTrackByValue(h.$viewValue)},function(){h.$render()})),w?(m.remove(),e(m)(t),m.removeClass("ng-scope")):m=$r(a.cloneNode(!1)),d(),t.$watchCollection(C.getWatchables,d)}}}}],fa=["$locale","$interpolate","$log",function(e,t,n){var r=/{}/g,i=/^when(Minus)?(.+)$/;return{link:function(a,s,u){function c(e){s.text(e||"")}var l,p=u.count,f=u.$attr.when&&s.attr(u.$attr.when),d=u.offset||0,h=a.$eval(f)||{},v={},g=t.startSymbol(),y=t.endSymbol(),x=g+p+"-"+d+y,w=jr.noop;o(u,function(e,t){var n=i.exec(t);if(n){var r=(n[1]?"-":"")+xr(n[2]);h[r]=s.attr(u.$attr[t])}}),o(h,function(e,n){v[n]=t(e.replace(r,x))}),a.$watch(p,function(t){var r=parseFloat(t),i=isNaN(r);if(i||r in h||(r=e.pluralCat(r-d)),r!==l&&!(i&&C(l)&&isNaN(l))){w();var o=v[r];b(o)?(null!=t&&n.debug("ngPluralize: no rule defined for '"+r+"' in "+f),w=m,c()):w=a.$watch(o,c),l=r}})}}}],da=["$parse","$animate",function(e,a){var s="$$NG_REMOVED",u=r("ngRepeat"),c=function(e,t,n,r,i,o,a){e[n]=r,i&&(e[i]=o),e.$index=t,e.$first=0===t,e.$last=t===a-1,e.$middle=!(e.$first||e.$last),e.$odd=!(e.$even=0===(1&t))},l=function(e){return e.clone[0]},p=function(e){return e.clone[e.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(r,f){var d=f.ngRepeat,h=t.createComment(" end ngRepeat: "+d+" "),m=d.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!m)throw u("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",d);var v=m[1],g=m[2],y=m[3],b=m[4];if(m=v.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/),!m)throw u("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",v);var x=m[3]||m[1],w=m[2];if(y&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(y)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(y)))throw u("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",y);var E,_,C,N,$={$id:Qe};return b?E=e(b):(C=function(e,t){return Qe(t)},N=function(e){return e}),function(e,t,r,f,m){E&&(_=function(t,n,r){return w&&($[w]=t),$[x]=n,$.$index=r,E(e,$)});var v=ve();e.$watchCollection(g,function(r){var f,g,b,E,$,O,T,P,S,D,R,k,A=t[0],j=ve();if(y&&(e[y]=r),i(r))S=r,P=_||C;else{P=_||N,S=[];for(var I in r)wr.call(r,I)&&"$"!==I.charAt(0)&&S.push(I)}for(E=S.length,R=new Array(E),f=0;E>f;f++)if($=r===S?f:S[f],O=r[$],T=P($,O,f),v[T])D=v[T],delete v[T],j[T]=D,R[f]=D;else{if(j[T])throw o(R,function(e){e&&e.scope&&(v[e.id]=e)}),u("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",d,T,O);R[f]={id:T,scope:n,clone:n},j[T]=!0}for(var M in v){if(D=v[M],k=me(D.clone),a.leave(k),k[0].parentNode)for(f=0,g=k.length;g>f;f++)k[f][s]=!0;D.scope.$destroy()}for(f=0;E>f;f++)if($=r===S?f:S[f],O=r[$],D=R[f],D.scope){b=A;do b=b.nextSibling;while(b&&b[s]);l(D)!=b&&a.move(me(D.clone),null,$r(A)),A=p(D),c(D.scope,f,x,O,w,$,E)}else m(function(e,t){D.scope=t;var n=h.cloneNode(!1);e[e.length++]=n,a.enter(e,null,$r(A)),A=n,D.clone=e,j[D.id]=D,c(D.scope,f,x,O,w,$,E)});v=j})}}}}],ha="ng-hide",ma="ng-hide-animate",va=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,r){t.$watch(r.ngShow,function(t){e[t?"removeClass":"addClass"](n,ha,{tempClasses:ma})})}}}],ga=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,r){t.$watch(r.ngHide,function(t){e[t?"addClass":"removeClass"](n,ha,{tempClasses:ma})})}}}],ya=Zn(function(e,t,n){e.$watch(n.ngStyle,function(e,n){n&&e!==n&&o(n,function(e,n){t.css(n,"")}),e&&t.css(e)},!0)}),ba=["$animate",function(e){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,r,i,a){var s=i.ngSwitch||i.on,u=[],c=[],l=[],p=[],f=function(e,t){return function(){e.splice(t,1)}};n.$watch(s,function(n){var r,i;for(r=0,i=l.length;i>r;++r)e.cancel(l[r]);for(l.length=0,r=0,i=p.length;i>r;++r){var s=me(c[r].clone);p[r].$destroy();var d=l[r]=e.leave(s);d.then(f(l,r))}c.length=0,p.length=0,(u=a.cases["!"+n]||a.cases["?"])&&o(u,function(n){n.transclude(function(r,i){p.push(i);var o=n.element;r[r.length++]=t.createComment(" end ngSwitchWhen: ");var a={clone:r};c.push(a),e.enter(r,o.parent(),o)})})})}}}],xa=Zn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,r,i){r.cases["!"+n.ngSwitchWhen]=r.cases["!"+n.ngSwitchWhen]||[],r.cases["!"+n.ngSwitchWhen].push({transclude:i,element:t})}}),wa=Zn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,r,i){r.cases["?"]=r.cases["?"]||[],r.cases["?"].push({transclude:i,element:t})}}),Ea=Zn({restrict:"EAC",link:function(e,t,n,i,o){if(!o)throw r("ngTransclude")("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",J(t));o(function(e){t.empty(),t.append(e)})}}),_a=["$templateCache",function(e){return{restrict:"E",terminal:!0,compile:function(t,n){if("text/ng-template"==n.type){var r=n.id,i=t[0].text;e.put(r,i)}}}}],Ca={$setViewValue:m,$render:m},Na=["$element","$scope","$attrs",function(e,r){var i=this,o=new Ye;i.ngModelCtrl=Ca,i.unknownOption=$r(t.createElement("option")),i.renderUnknownOption=function(t){var n="? "+Qe(t)+" ?";i.unknownOption.val(n),e.prepend(i.unknownOption),e.val(n)},r.$on("$destroy",function(){i.renderUnknownOption=m}),i.removeUnknownOption=function(){i.unknownOption.parent()&&i.unknownOption.remove()},i.readValue=function(){return i.removeUnknownOption(),e.val()},i.writeValue=function(t){i.hasOption(t)?(i.removeUnknownOption(),e.val(t),""===t&&i.emptyOption.prop("selected",!0)):null==t&&i.emptyOption?(i.removeUnknownOption(),e.val("")):i.renderUnknownOption(t)},i.addOption=function(e,t){de(e,'"option value"'),""===e&&(i.emptyOption=t);var n=o.get(e)||0;o.put(e,n+1)},i.removeOption=function(e){var t=o.get(e);t&&(1===t?(o.remove(e),""===e&&(i.emptyOption=n)):o.put(e,t-1))},i.hasOption=function(e){return!!o.get(e)}}],$a=function(){return{restrict:"E",require:["select","?ngModel"],controller:Na,link:function(e,t,n,r){var i=r[1];if(i){var a=r[0];if(a.ngModelCtrl=i,i.$render=function(){a.writeValue(i.$viewValue)},t.on("change",function(){e.$apply(function(){i.$setViewValue(a.readValue())})}),n.multiple){a.readValue=function(){var e=[];return o(t.find("option"),function(t){
32
+ t.selected&&e.push(t.value)}),e},a.writeValue=function(e){var n=new Ye(e);o(t.find("option"),function(e){e.selected=x(n.get(e.value))})};var s,u=0/0;e.$watch(function(){u!==i.$viewValue||H(s,i.$viewValue)||(s=U(i.$viewValue),i.$render()),u=i.$viewValue}),i.$isEmpty=function(e){return!e||0===e.length}}}}}},Oa=["$interpolate",function(e){function t(e){e[0].hasAttribute("selected")&&(e[0].selected=!0)}return{restrict:"E",priority:100,compile:function(n,r){if(x(r.value))var i=e(r.value,!0);else{var o=e(n.text(),!0);o||r.$set("value",n.text())}return function(e,n,r){function a(e){c.addOption(e,n),c.ngModelCtrl.$render(),t(n)}var s="$selectController",u=n.parent(),c=u.data(s)||u.parent().data(s);if(c&&c.ngModelCtrl){if(i){var l;r.$observe("value",function(e){x(l)&&c.removeOption(l),l=e,a(e)})}else o?e.$watch(o,function(e,t){r.$set("value",e),t!==e&&c.removeOption(t),a(e)}):a(r.value);n.on("$destroy",function(){c.removeOption(r.value),c.ngModelCtrl.$render()})}}}}}],Ta=g({restrict:"E",terminal:!1}),Pa=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,r){r&&(n.required=!0,r.$validators.required=function(e,t){return!n.required||!r.$isEmpty(t)},n.$observe("required",function(){r.$validate()}))}}},Sa=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,i,o){if(o){var a,s=i.ngPattern||i.pattern;i.$observe("pattern",function(e){if(_(e)&&e.length>0&&(e=new RegExp("^"+e+"$")),e&&!e.test)throw r("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",s,e,J(t));a=e||n,o.$validate()}),o.$validators.pattern=function(e,t){return o.$isEmpty(t)||b(a)||a.test(t)}}}}},Da=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,r){if(r){var i=-1;n.$observe("maxlength",function(e){var t=d(e);i=isNaN(t)?-1:t,r.$validate()}),r.$validators.maxlength=function(e,t){return 0>i||r.$isEmpty(t)||t.length<=i}}}}},Ra=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,r){if(r){var i=0;n.$observe("minlength",function(e){i=d(e)||0,r.$validate()}),r.$validators.minlength=function(e,t){return r.$isEmpty(t)||t.length>=i}}}}};return e.angular.bootstrap?void console.log("WARNING: Tried to load angular more than once."):(le(),xe(jr),jr.module("ngLocale",[],["$provide",function(e){function t(e){e+="";var t=e.indexOf(".");return-1==t?0:e.length-t-1}function r(e,r){var i=r;n===i&&(i=Math.min(t(e),3));var o=Math.pow(10,i),a=(e*o|0)%o;return{v:i,f:a}}var i={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};e.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],SHORTDAY:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],SHORTMONTH:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-¤",negSuf:"",posPre:"¤",posSuf:""}]},id:"en-us",pluralCat:function(e,t){var n=0|e,o=r(e,t);return 1==n&&0==o.v?i.ONE:i.OTHER}})}]),void $r(t).ready(function(){oe(t,ae)}))}(window,document),!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>')},function(e,t,n){var r=n(1);n(627),n(628),n(629),function(e){function t(e,t,n){return e>t&&t+n>e}function n(e){return/left|right/.test(e.css("float"))||/inline|table-cell/.test(e.css("display"))}e.widget("ui.sortable",e.ui.mouse,{version:"1.10.4",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_create:function(){var e=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?"x"===e.axis||n(this.items[0].item):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_setOption:function(t,n){"disabled"===t?(this.options[t]=n,this.widget().toggleClass("ui-sortable-disabled",!!n)):e.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(t,n){var r=null,i=!1,o=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(t),e(t.target).parents().each(function(){return e.data(this,o.widgetName+"-item")===o?(r=e(this),!1):void 0}),e.data(t.target,o.widgetName+"-item")===o&&(r=e(t.target)),r&&(!this.options.handle||n||(e(this.options.handle,r).find("*").addBack().each(function(){this===t.target&&(i=!0)}),i))?(this.currentItem=r,this._removeCurrentsFromItems(),!0):!1)},_mouseStart:function(t,n,r){var i,o,a=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),a.containment&&this._setContainment(),a.cursor&&"auto"!==a.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",a.cursor),this.storedStylesheet=e("<style>*{ cursor: "+a.cursor+" !important; }</style>").appendTo(o)),a.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",a.opacity)),a.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",a.zIndex)),this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!r)for(i=this.containers.length-1;i>=0;i--)this.containers[i]._trigger("activate",t,this._uiHash(this));return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!a.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){var n,r,i,o,a=this.options,s=!1;for(this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY<a.scrollSensitivity?this.scrollParent[0].scrollTop=s=this.scrollParent[0].scrollTop+a.scrollSpeed:t.pageY-this.overflowOffset.top<a.scrollSensitivity&&(this.scrollParent[0].scrollTop=s=this.scrollParent[0].scrollTop-a.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-t.pageX<a.scrollSensitivity?this.scrollParent[0].scrollLeft=s=this.scrollParent[0].scrollLeft+a.scrollSpeed:t.pageX-this.overflowOffset.left<a.scrollSensitivity&&(this.scrollParent[0].scrollLeft=s=this.scrollParent[0].scrollLeft-a.scrollSpeed)):(t.pageY-e(document).scrollTop()<a.scrollSensitivity?s=e(document).scrollTop(e(document).scrollTop()-a.scrollSpeed):e(window).height()-(t.pageY-e(document).scrollTop())<a.scrollSensitivity&&(s=e(document).scrollTop(e(document).scrollTop()+a.scrollSpeed)),t.pageX-e(document).scrollLeft()<a.scrollSensitivity?s=e(document).scrollLeft(e(document).scrollLeft()-a.scrollSpeed):e(window).width()-(t.pageX-e(document).scrollLeft())<a.scrollSensitivity&&(s=e(document).scrollLeft(e(document).scrollLeft()+a.scrollSpeed))),s!==!1&&e.ui.ddmanager&&!a.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),n=this.items.length-1;n>=0;n--)if(r=this.items[n],i=r.item[0],o=this._intersectsWithPointer(r),o&&r.instance===this.currentContainer&&i!==this.currentItem[0]&&this.placeholder[1===o?"next":"prev"]()[0]!==i&&!e.contains(this.placeholder[0],i)&&("semi-dynamic"===this.options.type?!e.contains(this.element[0],i):!0)){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(r))break;this._rearrange(t,r),this._trigger("change",t,this._uiHash());break}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,n){if(t){if(e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t),this.options.revert){var r=this,i=this.placeholder.offset(),o=this.options.axis,a={};o&&"x"!==o||(a.left=i.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(a.top=i.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,e(this.helper).animate(a,parseInt(this.options.revert,10)||500,function(){r._clear(t)})}else this._clear(t,n);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},e(n).each(function(){var n=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[\-=_](.+)/);n&&r.push((t.key||n[1]+"[]")+"="+(t.key&&t.expression?n[1]:n[2]))}),!r.length&&t.key&&r.push(t.key+"="),r.join("&")},toArray:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},n.each(function(){r.push(e(t.item||this).attr(t.attribute||"id")||"")}),r},_intersectsWith:function(e){var t=this.positionAbs.left,n=t+this.helperProportions.width,r=this.positionAbs.top,i=r+this.helperProportions.height,o=e.left,a=o+e.width,s=e.top,u=s+e.height,c=this.offset.click.top,l=this.offset.click.left,p="x"===this.options.axis||r+c>s&&u>r+c,f="y"===this.options.axis||t+l>o&&a>t+l,d=p&&f;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>e[this.floating?"width":"height"]?d:o<t+this.helperProportions.width/2&&n-this.helperProportions.width/2<a&&s<r+this.helperProportions.height/2&&i-this.helperProportions.height/2<u},_intersectsWithPointer:function(e){var n="x"===this.options.axis||t(this.positionAbs.top+this.offset.click.top,e.top,e.height),r="y"===this.options.axis||t(this.positionAbs.left+this.offset.click.left,e.left,e.width),i=n&&r,o=this._getDragVerticalDirection(),a=this._getDragHorizontalDirection();return i?this.floating?a&&"right"===a||"down"===o?2:1:o&&("down"===o?2:1):!1},_intersectsWithSides:function(e){var n=t(this.positionAbs.top+this.offset.click.top,e.top+e.height/2,e.height),r=t(this.positionAbs.left+this.offset.click.left,e.left+e.width/2,e.width),i=this._getDragVerticalDirection(),o=this._getDragHorizontalDirection();return this.floating&&o?"right"===o&&r||"left"===o&&!r:i&&("down"===i&&n||"up"===i&&!n)},_getDragVerticalDirection:function(){var e=this.positionAbs.top-this.lastPositionAbs.top;return 0!==e&&(e>0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return 0!==e&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor===String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){function n(){s.push(this)}var r,i,o,a,s=[],u=[],c=this._connectWith();if(c&&t)for(r=c.length-1;r>=0;r--)for(o=e(c[r]),i=o.length-1;i>=0;i--)a=e.data(o[i],this.widgetFullName),a&&a!==this&&!a.options.disabled&&u.push([e.isFunction(a.options.items)?a.options.items.call(a.element):e(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(u.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),r=u.length-1;r>=0;r--)u[r][0].each(n);return e(s)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,function(e){for(var n=0;n<t.length;n++)if(t[n]===e.item[0])return!1;return!0})},_refreshItems:function(t){this.items=[],this.containers=[this];var n,r,i,o,a,s,u,c,l=this.items,p=[[e.isFunction(this.options.items)?this.options.items.call(this.element[0],t,{item:this.currentItem}):e(this.options.items,this.element),this]],f=this._connectWith();if(f&&this.ready)for(n=f.length-1;n>=0;n--)for(i=e(f[n]),r=i.length-1;r>=0;r--)o=e.data(i[r],this.widgetFullName),o&&o!==this&&!o.options.disabled&&(p.push([e.isFunction(o.options.items)?o.options.items.call(o.element[0],t,{item:this.currentItem}):e(o.options.items,o.element),o]),this.containers.push(o));for(n=p.length-1;n>=0;n--)for(a=p[n][1],s=p[n][0],r=0,c=s.length;c>r;r++)u=e(s[r]),u.data(this.widgetName+"-item",a),l.push({item:u,instance:a,width:0,height:0,left:0,top:0})},refreshPositions:function(t){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var n,r,i,o;for(n=this.items.length-1;n>=0;n--)r=this.items[n],r.instance!==this.currentContainer&&this.currentContainer&&r.item[0]!==this.currentItem[0]||(i=this.options.toleranceElement?e(this.options.toleranceElement,r.item):r.item,t||(r.width=i.outerWidth(),r.height=i.outerHeight()),o=i.offset(),r.left=o.left,r.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(n=this.containers.length-1;n>=0;n--)o=this.containers[n].element.offset(),this.containers[n].containerCache.left=o.left,this.containers[n].containerCache.top=o.top,this.containers[n].containerCache.width=this.containers[n].element.outerWidth(),this.containers[n].containerCache.height=this.containers[n].element.outerHeight();return this},_createPlaceholder:function(t){t=t||this;var n,r=t.options;r.placeholder&&r.placeholder.constructor!==String||(n=r.placeholder,r.placeholder={element:function(){var r=t.currentItem[0].nodeName.toLowerCase(),i=e("<"+r+">",t.document[0]).addClass(n||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tr"===r?t.currentItem.children().each(function(){e("<td>&#160;</td>",t.document[0]).attr("colspan",e(this).attr("colspan")||1).appendTo(i)}):"img"===r&&i.attr("src",t.currentItem.attr("src")),n||i.css("visibility","hidden"),i},update:function(e,i){(!n||r.forcePlaceholderSize)&&(i.height()||i.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),i.width()||i.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10)))}}),t.placeholder=e(r.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),r.placeholder.update(t,t.placeholder)},_contactContainers:function(r){var i,o,a,s,u,c,l,p,f,d,h=null,m=null;for(i=this.containers.length-1;i>=0;i--)if(!e.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(h&&e.contains(this.containers[i].element[0],h.element[0]))continue;h=this.containers[i],m=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",r,this._uiHash(this)),this.containers[i].containerCache.over=0);if(h)if(1===this.containers.length)this.containers[m].containerCache.over||(this.containers[m]._trigger("over",r,this._uiHash(this)),this.containers[m].containerCache.over=1);else{for(a=1e4,s=null,d=h.floating||n(this.currentItem),u=d?"left":"top",c=d?"width":"height",l=this.positionAbs[u]+this.offset.click[u],o=this.items.length-1;o>=0;o--)e.contains(this.containers[m].element[0],this.items[o].item[0])&&this.items[o].item[0]!==this.currentItem[0]&&(!d||t(this.positionAbs.top+this.offset.click.top,this.items[o].top,this.items[o].height))&&(p=this.items[o].item.offset()[u],f=!1,Math.abs(p-l)>Math.abs(p+this.items[o][c]-l)&&(f=!0,p+=this.items[o][c]),Math.abs(p-l)<a&&(a=Math.abs(p-l),s=this.items[o],this.direction=f?"up":"down"));if(!s&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[m])return;s?this._rearrange(r,s,null,!0):this._rearrange(r,null,this.containers[m].element,!0),this._trigger("change",r,this._uiHash()),this.containers[m]._trigger("change",r,this._uiHash(this)),this.currentContainer=this.containers[m],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[m]._trigger("over",r,this._uiHash(this)),this.containers[m].containerCache.over=1}},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper)?e(n.helper.apply(this.element[0],[t,this.currentItem])):"clone"===n.helper?this.currentItem.clone():this.currentItem;return r.parents("body").length||e("parent"!==n.appendTo?n.appendTo:this.currentItem[0].parentNode)[0].appendChild(r[0]),r[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!r[0].style.width||n.forceHelperSize)&&r.width(this.currentItem.width()),(!r[0].style.height||n.forceHelperSize)&&r.height(this.currentItem.height()),r},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&e.ui.ie)&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var e=this.currentItem.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,n,r,i=this.options;"parent"===i.containment&&(i.containment=this.helper[0].parentNode),("document"===i.containment||"window"===i.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,e("document"===i.containment?document:window).width()-this.helperProportions.width-this.margins.left,(e("document"===i.containment?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(i.containment)||(t=e(i.containment)[0],n=e(i.containment).offset(),r="hidden"!==e(t).css("overflow"),this.containment=[n.left+(parseInt(e(t).css("borderLeftWidth"),10)||0)+(parseInt(e(t).css("paddingLeft"),10)||0)-this.margins.left,n.top+(parseInt(e(t).css("borderTopWidth"),10)||0)+(parseInt(e(t).css("paddingTop"),10)||0)-this.margins.top,n.left+(r?Math.max(t.scrollWidth,t.offsetWidth):t.offsetWidth)-(parseInt(e(t).css("borderLeftWidth"),10)||0)-(parseInt(e(t).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,n.top+(r?Math.max(t.scrollHeight,t.offsetHeight):t.offsetHeight)-(parseInt(e(t).css("borderTopWidth"),10)||0)-(parseInt(e(t).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(t,n){n||(n=this.position);var r="absolute"===t?1:-1,i="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(i[0].tagName);return{top:n.top+this.offset.relative.top*r+this.offset.parent.top*r-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:i.scrollTop())*r,left:n.left+this.offset.relative.left*r+this.offset.parent.left*r-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:i.scrollLeft())*r}},_generatePosition:function(t){var n,r,i=this.options,o=t.pageX,a=t.pageY,s="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,u=/(html|body)/i.test(s[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==document&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(t.pageX-this.offset.click.left<this.containment[0]&&(o=this.containment[0]+this.offset.click.left),t.pageY-this.offset.click.top<this.containment[1]&&(a=this.containment[1]+this.offset.click.top),t.pageX-this.offset.click.left>this.containment[2]&&(o=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),i.grid&&(n=this.originalPageY+Math.round((a-this.originalPageY)/i.grid[1])*i.grid[1],a=this.containment?n-this.offset.click.top>=this.containment[1]&&n-this.offset.click.top<=this.containment[3]?n:n-this.offset.click.top>=this.containment[1]?n-i.grid[1]:n+i.grid[1]:n,r=this.originalPageX+Math.round((o-this.originalPageX)/i.grid[0])*i.grid[0],o=this.containment?r-this.offset.click.left>=this.containment[0]&&r-this.offset.click.left<=this.containment[2]?r:r-this.offset.click.left>=this.containment[0]?r-i.grid[0]:r+i.grid[0]:r)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():u?0:s.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():u?0:s.scrollLeft())}},_rearrange:function(e,t,n,r){n?n[0].appendChild(this.placeholder[0]):t.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?t.item[0]:t.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var i=this.counter;this._delay(function(){i===this.counter&&this.refreshPositions(!r)})},_clear:function(e,t){function n(e,t,n){return function(r){n._trigger(e,r,t._uiHash(t))}}this.reverting=!1;var r,i=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(r in this._storedCSS)("auto"===this._storedCSS[r]||"static"===this._storedCSS[r])&&(this._storedCSS[r]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!t&&i.push(function(e){this._trigger("receive",e,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||t||i.push(function(e){this._trigger("update",e,this._uiHash())}),this!==this.currentContainer&&(t||(i.push(function(e){this._trigger("remove",e,this._uiHash())}),i.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),i.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),r=this.containers.length-1;r>=0;r--)t||i.push(n("deactivate",this,this.containers[r])),this.containers[r].containerCache.over&&(i.push(n("out",this,this.containers[r])),this.containers[r].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,this.cancelHelperRemoval){if(!t){for(this._trigger("beforeStop",e,this._uiHash()),r=0;r<i.length;r++)i[r].call(this,e);this._trigger("stop",e,this._uiHash())}return this.fromOutside=!1,!1}if(t||this._trigger("beforeStop",e,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null,!t){for(r=0;r<i.length;r++)i[r].call(this,e);this._trigger("stop",e,this._uiHash())}return this.fromOutside=!1,!0},_trigger:function(){e.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(t){var n=t||this;return{helper:n.helper,placeholder:n.placeholder||e([]),position:n.position,originalPosition:n.originalPosition,offset:n.positionAbs,item:n.currentItem,sender:t?t.element:null}}})}(r)},function(e,t,n){var r=n(1);!function(e,t){function n(t,n){var i,o,a,s=t.nodeName.toLowerCase();return"area"===s?(i=t.parentNode,o=i.name,t.href&&o&&"map"===i.nodeName.toLowerCase()?(a=e("img[usemap=#"+o+"]")[0],!!a&&r(a)):!1):(/input|select|textarea|button|object/.test(s)?!t.disabled:"a"===s?t.href||n:n)&&r(t)}function r(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}var i=0,o=/^ui-id-\d+$/;e.ui=e.ui||{},e.extend(e.ui,{version:"1.10.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({focus:function(t){return function(n,r){return"number"==typeof n?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),r&&r.call(t)},n)}):t.apply(this,arguments)}}(e.fn.focus),scrollParent:function(){var t;return t=e.ui.ie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(e.css(this,"position"))&&/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0),/fixed/.test(this.css("position"))||!t.length?e(document):t},zIndex:function(n){if(n!==t)return this.css("zIndex",n);if(this.length)for(var r,i,o=e(this[0]);o.length&&o[0]!==document;){if(r=o.css("position"),("absolute"===r||"relative"===r||"fixed"===r)&&(i=parseInt(o.css("zIndex"),10),!isNaN(i)&&0!==i))return i;o=o.parent()}return 0},uniqueId:function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++i)})},removeUniqueId:function(){return this.each(function(){o.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,r){return!!e.data(t,r[3])},focusable:function(t){return n(t,!isNaN(e.attr(t,"tabindex")))},tabbable:function(t){var r=e.attr(t,"tabindex"),i=isNaN(r);return(i||r>=0)&&n(t,!i)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(n,r){function i(t,n,r,i){return e.each(o,function(){n-=parseFloat(e.css(t,"padding"+this))||0,r&&(n-=parseFloat(e.css(t,"border"+this+"Width"))||0),i&&(n-=parseFloat(e.css(t,"margin"+this))||0)}),n}var o="Width"===r?["Left","Right"]:["Top","Bottom"],a=r.toLowerCase(),s={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+r]=function(n){return n===t?s["inner"+r].call(this):this.each(function(){e(this).css(a,i(this,n)+"px")})},e.fn["outer"+r]=function(t,n){return"number"!=typeof t?s["outer"+r].call(this,t):this.each(function(){e(this).css(a,i(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(n){return arguments.length?t.call(this,e.camelCase(n)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.support.selectstart="onselectstart"in document.createElement("div"),e.fn.extend({disableSelection:function(){return this.bind((e.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),e.extend(e.ui,{plugin:{add:function(t,n,r){var i,o=e.ui[t].prototype;for(i in r)o.plugins[i]=o.plugins[i]||[],o.plugins[i].push([n,r[i]])},call:function(e,t,n){var r,i=e.plugins[t];if(i&&e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType)for(r=0;r<i.length;r++)e.options[i[r][0]]&&i[r][1].apply(e.element,n)}},hasScroll:function(t,n){if("hidden"===e(t).css("overflow"))return!1;
33
+
34
+ var r=n&&"left"===n?"scrollLeft":"scrollTop",i=!1;return t[r]>0?!0:(t[r]=1,i=t[r]>0,t[r]=0,i)}})}(r)},function(e,t,n){var r=n(1);n(629),function(e){var t=!1;e(document).mouseup(function(){t=!1}),e.widget("ui.mouse",{version:"1.10.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(n){return!0===e.data(n.target,t.widgetName+".preventClickEvent")?(e.removeData(n.target,t.widgetName+".preventClickEvent"),n.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(n){if(!t){this._mouseStarted&&this._mouseUp(n),this._mouseDownEvent=n;var r=this,i=1===n.which,o="string"==typeof this.options.cancel&&n.target.nodeName?e(n.target).closest(this.options.cancel).length:!1;return i&&!o&&this._mouseCapture(n)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){r.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(n)&&this._mouseDelayMet(n)&&(this._mouseStarted=this._mouseStart(n)!==!1,!this._mouseStarted)?(n.preventDefault(),!0):(!0===e.data(n.target,this.widgetName+".preventClickEvent")&&e.removeData(n.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return r._mouseMove(e)},this._mouseUpDelegate=function(e){return r._mouseUp(e)},e(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),n.preventDefault(),t=!0,!0)):!0}},_mouseMove:function(t){return e.ui.ie&&(!document.documentMode||document.documentMode<9)&&!t.button?this._mouseUp(t):this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){return e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})}(r)},function(e,t,n){var r=n(1);!function(e,t){var n=0,r=Array.prototype.slice,i=e.cleanData;e.cleanData=function(t){for(var n,r=0;null!=(n=t[r]);r++)try{e(n).triggerHandler("remove")}catch(o){}i(t)},e.widget=function(t,n,r){var i,o,a,s,u={},c=t.split(".")[0];t=t.split(".")[1],i=c+"-"+t,r||(r=n,n=e.Widget),e.expr[":"][i.toLowerCase()]=function(t){return!!e.data(t,i)},e[c]=e[c]||{},o=e[c][t],a=e[c][t]=function(e,t){return this._createWidget?void(arguments.length&&this._createWidget(e,t)):new a(e,t)},e.extend(a,o,{version:r.version,_proto:e.extend({},r),_childConstructors:[]}),s=new n,s.options=e.widget.extend({},s.options),e.each(r,function(t,r){return e.isFunction(r)?void(u[t]=function(){var e=function(){return n.prototype[t].apply(this,arguments)},i=function(e){return n.prototype[t].apply(this,e)};return function(){var t,n=this._super,o=this._superApply;return this._super=e,this._superApply=i,t=r.apply(this,arguments),this._super=n,this._superApply=o,t}}()):void(u[t]=r)}),a.prototype=e.widget.extend(s,{widgetEventPrefix:o?s.widgetEventPrefix||t:t},u,{constructor:a,namespace:c,widgetName:t,widgetFullName:i}),o?(e.each(o._childConstructors,function(t,n){var r=n.prototype;e.widget(r.namespace+"."+r.widgetName,a,n._proto)}),delete o._childConstructors):n._childConstructors.push(a),e.widget.bridge(t,a)},e.widget.extend=function(n){for(var i,o,a=r.call(arguments,1),s=0,u=a.length;u>s;s++)for(i in a[s])o=a[s][i],a[s].hasOwnProperty(i)&&o!==t&&(n[i]=e.isPlainObject(o)?e.isPlainObject(n[i])?e.widget.extend({},n[i],o):e.widget.extend({},o):o);return n},e.widget.bridge=function(n,i){var o=i.prototype.widgetFullName||n;e.fn[n]=function(a){var s="string"==typeof a,u=r.call(arguments,1),c=this;return a=!s&&u.length?e.widget.extend.apply(null,[a].concat(u)):a,this.each(s?function(){var r,i=e.data(this,o);return i?e.isFunction(i[a])&&"_"!==a.charAt(0)?(r=i[a].apply(i,u),r!==i&&r!==t?(c=r&&r.jquery?c.pushStack(r.get()):r,!1):void 0):e.error("no such method '"+a+"' for "+n+" widget instance"):e.error("cannot call methods on "+n+" prior to initialization; attempted to call method '"+a+"'")}:function(){var t=e.data(this,o);t?t.option(a||{})._init():e.data(this,o,new i(a,this))}),c}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,r){r=e(r||this.defaultElement||this)[0],this.element=e(r),this.uuid=n++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this.bindings=e(),this.hoverable=e(),this.focusable=e(),r!==this&&(e.data(r,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===r&&this.destroy()}}),this.document=e(r.style?r.ownerDocument:r.document||r),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(n,r){var i,o,a,s=n;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof n)if(s={},i=n.split("."),n=i.shift(),i.length){for(o=s[n]=e.widget.extend({},this.options[n]),a=0;a<i.length-1;a++)o[i[a]]=o[i[a]]||{},o=o[i[a]];if(n=i.pop(),1===arguments.length)return o[n]===t?null:o[n];o[n]=r}else{if(1===arguments.length)return this.options[n]===t?null:this.options[n];s[n]=r}return this._setOptions(s),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled ui-state-disabled",!!t).attr("aria-disabled",t),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_on:function(t,n,r){var i,o=this;"boolean"!=typeof t&&(r=n,n=t,t=!1),r?(n=i=e(n),this.bindings=this.bindings.add(n)):(r=n,n=this.element,i=this.widget()),e.each(r,function(r,a){function s(){return t||o.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(s.guid=a.guid=a.guid||s.guid||e.guid++);var u=r.match(/^(\w+)\s*(.*)$/),c=u[1]+o.eventNamespace,l=u[2];l?i.delegate(l,c,s):n.bind(c,s)})},_off:function(e,t){t=(t||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.unbind(t).undelegate(t)},_delay:function(e,t){function n(){return("string"==typeof e?r[e]:e).apply(r,arguments)}var r=this;return setTimeout(n,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,n,r){var i,o,a=this.options[t];if(r=r||{},n=e.Event(n),n.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),n.target=this.element[0],o=n.originalEvent)for(i in o)i in n||(n[i]=o[i]);return this.element.trigger(n,r),!(e.isFunction(a)&&a.apply(this.element[0],[n].concat(r))===!1||n.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,n){e.Widget.prototype["_"+t]=function(r,i,o){"string"==typeof i&&(i={effect:i});var a,s=i?i===!0||"number"==typeof i?n:i.effect||n:t;i=i||{},"number"==typeof i&&(i={duration:i}),a=!e.isEmptyObject(i),i.complete=o,i.delay&&r.delay(i.delay),a&&e.effects&&e.effects.effect[s]?r[t](i):s!==t&&r[s]?r[s](i.duration,i.easing,o):r.queue(function(n){e(this)[t](),o&&o.call(r[0]),n()})}})}(r)}])});
js/algoliasearch/algoliaBundle.min.js ADDED
@@ -0,0 +1,22 @@
 
 
 
1
+ /*! algoliaBundle 4.2.0 | © Algolia SAS | algolia.com */!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.algoliaBundle=t():e.algoliaBundle=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){e.exports={$:n(1),instantsearch:n(2),algoliasearch:n(7),algoliasearchHelper:n(74),Hogan:n(537),autocomplete:n(608)}},function(e,t){var n,r;!function(t,n){"object"==typeof e&&"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,function(o,i){function a(e){var t="length"in e&&e.length,n=ue.type(e);return"function"===n||ue.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e}function s(e,t,n){if(ue.isFunction(t))return ue.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return ue.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(ve.test(t))return ue.filter(t,e,n);t=ue.filter(t,e)}return ue.grep(e,function(e){return ue.inArray(e,t)>=0!==n})}function u(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function c(e){var t=Ce[e]={};return ue.each(e.match(we)||[],function(e,n){t[n]=!0}),t}function l(){ye.addEventListener?(ye.removeEventListener("DOMContentLoaded",p,!1),o.removeEventListener("load",p,!1)):(ye.detachEvent("onreadystatechange",p),o.detachEvent("onload",p))}function p(){(ye.addEventListener||"load"===event.type||"complete"===ye.readyState)&&(l(),ue.ready())}function f(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(Re,"-$1").toLowerCase();if(n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:Pe.test(n)?ue.parseJSON(n):n}catch(o){}ue.data(e,t,n)}else n=void 0}return n}function d(e){var t;for(t in e)if(("data"!==t||!ue.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function h(e,t,n,r){if(ue.acceptData(e)){var o,i,a=ue.expando,s=e.nodeType,u=s?ue.cache:e,c=s?e[a]:e[a]&&a;if(c&&u[c]&&(r||u[c].data)||void 0!==n||"string"!=typeof t)return c||(c=s?e[a]=J.pop()||ue.guid++:a),u[c]||(u[c]=s?{}:{toJSON:ue.noop}),("object"==typeof t||"function"==typeof t)&&(r?u[c]=ue.extend(u[c],t):u[c].data=ue.extend(u[c].data,t)),i=u[c],r||(i.data||(i.data={}),i=i.data),void 0!==n&&(i[ue.camelCase(t)]=n),"string"==typeof t?(o=i[t],null==o&&(o=i[ue.camelCase(t)])):o=i,o}}function m(e,t,n){if(ue.acceptData(e)){var r,o,i=e.nodeType,a=i?ue.cache:e,s=i?e[ue.expando]:ue.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){ue.isArray(t)?t=t.concat(ue.map(t,ue.camelCase)):t in r?t=[t]:(t=ue.camelCase(t),t=t in r?[t]:t.split(" ")),o=t.length;for(;o--;)delete r[t[o]];if(n?!d(r):!ue.isEmptyObject(r))return}(n||(delete a[s].data,d(a[s])))&&(i?ue.cleanData([e],!0):ae.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}function v(){return!0}function g(){return!1}function y(){try{return ye.activeElement}catch(e){}}function b(e){var t=Ve.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function x(e,t){var n,r,o=0,i=typeof e.getElementsByTagName!==Te?e.getElementsByTagName(t||"*"):typeof e.querySelectorAll!==Te?e.querySelectorAll(t||"*"):void 0;if(!i)for(i=[],n=e.childNodes||e;null!=(r=n[o]);o++)!t||ue.nodeName(r,t)?i.push(r):ue.merge(i,x(r,t));return void 0===t||t&&ue.nodeName(e,t)?ue.merge([e],i):i}function _(e){Ae.test(e.type)&&(e.defaultChecked=e.checked)}function E(e,t){return ue.nodeName(e,"table")&&ue.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function w(e){return e.type=(null!==ue.find.attr(e,"type"))+"/"+e.type,e}function C(e){var t=Xe.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function N(e,t){for(var n,r=0;null!=(n=e[r]);r++)ue._data(n,"globalEval",!t||ue._data(t[r],"globalEval"))}function O(e,t){if(1===t.nodeType&&ue.hasData(e)){var n,r,o,i=ue._data(e),a=ue._data(t,i),s=i.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,o=s[n].length;o>r;r++)ue.event.add(t,n,s[n][r])}a.data&&(a.data=ue.extend({},a.data))}}function T(e,t){var n,r,o;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!ae.noCloneEvent&&t[ue.expando]){o=ue._data(t);for(r in o.events)ue.removeEvent(t,r,o.handle);t.removeAttribute(ue.expando)}"script"===n&&t.text!==e.text?(w(t).text=e.text,C(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),ae.html5Clone&&e.innerHTML&&!ue.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ae.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function P(e,t){var n,r=ue(t.createElement(e)).appendTo(t.body),i=o.getDefaultComputedStyle&&(n=o.getDefaultComputedStyle(r[0]))?n.display:ue.css(r[0],"display");return r.detach(),i}function R(e){var t=ye,n=rt[e];return n||(n=P(e,t),"none"!==n&&n||(nt=(nt||ue("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement),t=(nt[0].contentWindow||nt[0].contentDocument).document,t.write(),t.close(),n=P(e,t),nt.detach()),rt[e]=n),n}function D(e,t){return{get:function(){var n=e();if(null!=n)return n?void delete this.get:(this.get=t).apply(this,arguments)}}}function S(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,o=vt.length;o--;)if(t=vt[o]+n,t in e)return t;return r}function k(e,t){for(var n,r,o,i=[],a=0,s=e.length;s>a;a++)r=e[a],r.style&&(i[a]=ue._data(r,"olddisplay"),n=r.style.display,t?(i[a]||"none"!==n||(r.style.display=""),""===r.style.display&&ke(r)&&(i[a]=ue._data(r,"olddisplay",R(r.nodeName)))):(o=ke(r),(n&&"none"!==n||!o)&&ue._data(r,"olddisplay",o?n:ue.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?i[a]||"":"none"));return e}function j(e,t,n){var r=ft.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function A(e,t,n,r,o){for(var i=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>i;i+=2)"margin"===n&&(a+=ue.css(e,n+Se[i],!0,o)),r?("content"===n&&(a-=ue.css(e,"padding"+Se[i],!0,o)),"margin"!==n&&(a-=ue.css(e,"border"+Se[i]+"Width",!0,o))):(a+=ue.css(e,"padding"+Se[i],!0,o),"padding"!==n&&(a+=ue.css(e,"border"+Se[i]+"Width",!0,o)));return a}function I(e,t,n){var r=!0,o="width"===t?e.offsetWidth:e.offsetHeight,i=ot(e),a=ae.boxSizing&&"border-box"===ue.css(e,"boxSizing",!1,i);if(0>=o||null==o){if(o=it(e,t,i),(0>o||null==o)&&(o=e.style[t]),st.test(o))return o;r=a&&(ae.boxSizingReliable()||o===e.style[t]),o=parseFloat(o)||0}return o+A(e,t,n||(a?"border":"content"),r,i)+"px"}function M(e,t,n,r,o){return new M.prototype.init(e,t,n,r,o)}function L(){return setTimeout(function(){gt=void 0}),gt=ue.now()}function F(e,t){var n,r={height:e},o=0;for(t=t?1:0;4>o;o+=2-t)n=Se[o],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function U(e,t,n){for(var r,o=(wt[t]||[]).concat(wt["*"]),i=0,a=o.length;a>i;i++)if(r=o[i].call(n,t,e))return r}function V(e,t,n){var r,o,i,a,s,u,c,l,p=this,f={},d=e.style,h=e.nodeType&&ke(e),m=ue._data(e,"fxshow");n.queue||(s=ue._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,u=s.empty.fire,s.empty.fire=function(){s.unqueued||u()}),s.unqueued++,p.always(function(){p.always(function(){s.unqueued--,ue.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],c=ue.css(e,"display"),l="none"===c?ue._data(e,"olddisplay")||R(e.nodeName):c,"inline"===l&&"none"===ue.css(e,"float")&&(ae.inlineBlockNeedsLayout&&"inline"!==R(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",ae.shrinkWrapBlocks()||p.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(r in t)if(o=t[r],bt.exec(o)){if(delete t[r],i=i||"toggle"===o,o===(h?"hide":"show")){if("show"!==o||!m||void 0===m[r])continue;h=!0}f[r]=m&&m[r]||ue.style(e,r)}else c=void 0;if(ue.isEmptyObject(f))"inline"===("none"===c?R(e.nodeName):c)&&(d.display=c);else{m?"hidden"in m&&(h=m.hidden):m=ue._data(e,"fxshow",{}),i&&(m.hidden=!h),h?ue(e).show():p.done(function(){ue(e).hide()}),p.done(function(){var t;ue._removeData(e,"fxshow");for(t in f)ue.style(e,t,f[t])});for(r in f)a=U(h?m[r]:0,r,p),r in m||(m[r]=a.start,h&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function H(e,t){var n,r,o,i,a;for(n in e)if(r=ue.camelCase(n),o=t[r],i=e[n],ue.isArray(i)&&(o=i[1],i=e[n]=i[0]),n!==r&&(e[r]=i,delete e[n]),a=ue.cssHooks[r],a&&"expand"in a){i=a.expand(i),delete e[r];for(n in i)n in e||(e[n]=i[n],t[n]=o)}else t[r]=o}function q(e,t,n){var r,o,i=0,a=Et.length,s=ue.Deferred().always(function(){delete u.elem}),u=function(){if(o)return!1;for(var t=gt||L(),n=Math.max(0,c.startTime+c.duration-t),r=n/c.duration||0,i=1-r,a=0,u=c.tweens.length;u>a;a++)c.tweens[a].run(i);return s.notifyWith(e,[c,i,n]),1>i&&u?n:(s.resolveWith(e,[c]),!1)},c=s.promise({elem:e,props:ue.extend({},t),opts:ue.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:gt||L(),duration:n.duration,tweens:[],createTween:function(t,n){var r=ue.Tween(e,c.opts,t,n,c.opts.specialEasing[t]||c.opts.easing);return c.tweens.push(r),r},stop:function(t){var n=0,r=t?c.tweens.length:0;if(o)return this;for(o=!0;r>n;n++)c.tweens[n].run(1);return t?s.resolveWith(e,[c,t]):s.rejectWith(e,[c,t]),this}}),l=c.props;for(H(l,c.opts.specialEasing);a>i;i++)if(r=Et[i].call(c,e,l,c.opts))return r;return ue.map(l,U,c),ue.isFunction(c.opts.start)&&c.opts.start.call(e,c),ue.fx.timer(ue.extend(u,{elem:e,anim:c,queue:c.opts.queue})),c.progress(c.opts.progress).done(c.opts.done,c.opts.complete).fail(c.opts.fail).always(c.opts.always)}function B(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,o=0,i=t.toLowerCase().match(we)||[];if(ue.isFunction(n))for(;r=i[o++];)"+"===r.charAt(0)?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function W(e,t,n,r){function o(s){var u;return i[s]=!0,ue.each(e[s]||[],function(e,s){var c=s(t,n,r);return"string"!=typeof c||a||i[c]?a?!(u=c):void 0:(t.dataTypes.unshift(c),o(c),!1)}),u}var i={},a=e===zt;return o(t.dataTypes[0])||!i["*"]&&o("*")}function K(e,t){var n,r,o=ue.ajaxSettings.flatOptions||{};for(r in t)void 0!==t[r]&&((o[r]?e:n||(n={}))[r]=t[r]);return n&&ue.extend(!0,e,n),e}function $(e,t,n){for(var r,o,i,a,s=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===o&&(o=e.mimeType||t.getResponseHeader("Content-Type"));if(o)for(a in s)if(s[a]&&s[a].test(o)){u.unshift(a);break}if(u[0]in n)i=u[0];else{for(a in n){if(!u[0]||e.converters[a+" "+u[0]]){i=a;break}r||(r=a)}i=i||r}return i?(i!==u[0]&&u.unshift(i),n[i]):void 0}function z(e,t,n,r){var o,i,a,s,u,c={},l=e.dataTypes.slice();if(l[1])for(a in e.converters)c[a.toLowerCase()]=e.converters[a];for(i=l.shift();i;)if(e.responseFields[i]&&(n[e.responseFields[i]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=i,i=l.shift())if("*"===i)i=u;else if("*"!==u&&u!==i){if(a=c[u+" "+i]||c["* "+i],!a)for(o in c)if(s=o.split(" "),s[1]===i&&(a=c[u+" "+s[0]]||c["* "+s[0]])){a===!0?a=c[o]:c[o]!==!0&&(i=s[0],l.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+u+" to "+i}}}return{state:"success",data:t}}function Q(e,t,n,r){var o;if(ue.isArray(t))ue.each(t,function(t,o){n||Xt.test(e)?r(e,o):Q(e+"["+("object"==typeof o?t:"")+"]",o,n,r)});else if(n||"object"!==ue.type(t))r(e,t);else for(o in t)Q(e+"["+o+"]",t[o],n,r)}function Y(){try{return new o.XMLHttpRequest}catch(e){}}function G(){try{return new o.ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}function X(e){return ue.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}var J=[],Z=J.slice,ee=J.concat,te=J.push,ne=J.indexOf,re={},oe=re.toString,ie=re.hasOwnProperty,ae={},se="1.11.3",ue=function(e,t){return new ue.fn.init(e,t)},ce=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,le=/^-ms-/,pe=/-([\da-z])/gi,fe=function(e,t){return t.toUpperCase()};ue.fn=ue.prototype={jquery:se,constructor:ue,selector:"",length:0,toArray:function(){return Z.call(this)},get:function(e){return null!=e?0>e?this[e+this.length]:this[e]:Z.call(this)},pushStack:function(e){var t=ue.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return ue.each(this,e,t)},map:function(e){return this.pushStack(ue.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(Z.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:te,sort:J.sort,splice:J.splice},ue.extend=ue.fn.extend=function(){var e,t,n,r,o,i,a=arguments[0]||{},s=1,u=arguments.length,c=!1;for("boolean"==typeof a&&(c=a,a=arguments[s]||{},s++),"object"==typeof a||ue.isFunction(a)||(a={}),s===u&&(a=this,s--);u>s;s++)if(null!=(o=arguments[s]))for(r in o)e=a[r],n=o[r],a!==n&&(c&&n&&(ue.isPlainObject(n)||(t=ue.isArray(n)))?(t?(t=!1,i=e&&ue.isArray(e)?e:[]):i=e&&ue.isPlainObject(e)?e:{},a[r]=ue.extend(c,i,n)):void 0!==n&&(a[r]=n));return a},ue.extend({expando:"jQuery"+(se+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===ue.type(e)},isArray:Array.isArray||function(e){return"array"===ue.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!ue.isArray(e)&&e-parseFloat(e)+1>=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==ue.type(e)||e.nodeType||ue.isWindow(e))return!1;try{if(e.constructor&&!ie.call(e,"constructor")&&!ie.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(ae.ownLast)for(t in e)return ie.call(e,t);for(t in e);return void 0===t||ie.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?re[oe.call(e)]||"object":typeof e},globalEval:function(e){e&&ue.trim(e)&&(o.execScript||function(e){o.eval.call(o,e)})(e)},camelCase:function(e){return e.replace(le,"ms-").replace(pe,fe)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,o=0,i=e.length,s=a(e);if(n){if(s)for(;i>o&&(r=t.apply(e[o],n),r!==!1);o++);else for(o in e)if(r=t.apply(e[o],n),r===!1)break}else if(s)for(;i>o&&(r=t.call(e[o],o,e[o]),r!==!1);o++);else for(o in e)if(r=t.call(e[o],o,e[o]),r===!1)break;return e},trim:function(e){return null==e?"":(e+"").replace(ce,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(a(Object(e))?ue.merge(n,"string"==typeof e?[e]:e):te.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(ne)return ne.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,t){for(var n=+t.length,r=0,o=e.length;n>r;)e[o++]=t[r++];if(n!==n)for(;void 0!==t[r];)e[o++]=t[r++];return e.length=o,e},grep:function(e,t,n){for(var r,o=[],i=0,a=e.length,s=!n;a>i;i++)r=!t(e[i],i),r!==s&&o.push(e[i]);return o},map:function(e,t,n){var r,o=0,i=e.length,s=a(e),u=[];if(s)for(;i>o;o++)r=t(e[o],o,n),null!=r&&u.push(r);else for(o in e)r=t(e[o],o,n),null!=r&&u.push(r);return ee.apply([],u)},guid:1,proxy:function(e,t){var n,r,o;return"string"==typeof t&&(o=e[t],t=e,e=o),ue.isFunction(e)?(n=Z.call(arguments,2),r=function(){return e.apply(t||this,n.concat(Z.call(arguments)))},r.guid=e.guid=e.guid||ue.guid++,r):void 0},now:function(){return+new Date},support:ae}),ue.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){re["[object "+t+"]"]=t.toLowerCase()});var de=function(e){function t(e,t,n,r){var o,i,a,s,u,c,p,d,h,m;if((t?t.ownerDocument||t:V)!==k&&S(t),t=t||k,n=n||[],s=t.nodeType,"string"!=typeof e||!e||1!==s&&9!==s&&11!==s)return n;if(!r&&A){if(11!==s&&(o=ye.exec(e)))if(a=o[1]){if(9===s){if(i=t.getElementById(a),!i||!i.parentNode)return n;if(i.id===a)return n.push(i),n}else if(t.ownerDocument&&(i=t.ownerDocument.getElementById(a))&&F(t,i)&&i.id===a)return n.push(i),n}else{if(o[2])return J.apply(n,t.getElementsByTagName(e)),n;if((a=o[3])&&_.getElementsByClassName)return J.apply(n,t.getElementsByClassName(a)),n}if(_.qsa&&(!I||!I.test(e))){if(d=p=U,h=t,m=1!==s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(c=N(e),(p=t.getAttribute("id"))?d=p.replace(xe,"\\$&"):t.setAttribute("id",d),d="[id='"+d+"'] ",u=c.length;u--;)c[u]=d+f(c[u]);h=be.test(e)&&l(t.parentNode)||t,m=c.join(",")}if(m)try{return J.apply(n,h.querySelectorAll(m)),n}catch(v){}finally{p||t.removeAttribute("id")}}}return T(e.replace(ue,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>E.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[U]=!0,e}function o(e){var t=k.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function i(e,t){for(var n=e.split("|"),r=e.length;r--;)E.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||z)-(~e.sourceIndex||z);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return r(function(t){return t=+t,r(function(n,r){for(var o,i=e([],n.length,t),a=i.length;a--;)n[o=i[a]]&&(n[o]=!(r[o]=n[o]))})})}function l(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function p(){}function f(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function d(e,t,n){var r=t.dir,o=n&&"parentNode"===r,i=q++;return t.first?function(t,n,i){for(;t=t[r];)if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,a){var s,u,c=[H,i];if(a){for(;t=t[r];)if((1===t.nodeType||o)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||o){if(u=t[U]||(t[U]={}),(s=u[r])&&s[0]===H&&s[1]===i)return c[2]=s[2];if(u[r]=c,c[2]=e(t,n,a))return!0}}}function h(e){return e.length>1?function(t,n,r){for(var o=e.length;o--;)if(!e[o](t,n,r))return!1;return!0}:e[0]}function m(e,n,r){for(var o=0,i=n.length;i>o;o++)t(e,n[o],r);return r}function v(e,t,n,r,o){for(var i,a=[],s=0,u=e.length,c=null!=t;u>s;s++)(i=e[s])&&(!n||n(i,r,o))&&(a.push(i),c&&t.push(s));return a}function g(e,t,n,o,i,a){return o&&!o[U]&&(o=g(o)),i&&!i[U]&&(i=g(i,a)),r(function(r,a,s,u){var c,l,p,f=[],d=[],h=a.length,g=r||m(t||"*",s.nodeType?[s]:s,[]),y=!e||!r&&t?g:v(g,f,e,s,u),b=n?i||(r?e:h||o)?[]:a:y;if(n&&n(y,b,s,u),o)for(c=v(b,d),o(c,[],s,u),l=c.length;l--;)(p=c[l])&&(b[d[l]]=!(y[d[l]]=p));if(r){if(i||e){if(i){for(c=[],l=b.length;l--;)(p=b[l])&&c.push(y[l]=p);i(null,b=[],c,u)}for(l=b.length;l--;)(p=b[l])&&(c=i?ee(r,p):f[l])>-1&&(r[c]=!(a[c]=p))}}else b=v(b===a?b.splice(h,b.length):b),i?i(null,a,b,u):J.apply(a,b)})}function y(e){for(var t,n,r,o=e.length,i=E.relative[e[0].type],a=i||E.relative[" "],s=i?1:0,u=d(function(e){return e===t},a,!0),c=d(function(e){return ee(t,e)>-1},a,!0),l=[function(e,n,r){var o=!i&&(r||n!==P)||((t=n).nodeType?u(e,n,r):c(e,n,r));return t=null,o}];o>s;s++)if(n=E.relative[e[s].type])l=[d(h(l),n)];else{if(n=E.filter[e[s].type].apply(null,e[s].matches),n[U]){for(r=++s;o>r&&!E.relative[e[r].type];r++);return g(s>1&&h(l),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(ue,"$1"),n,r>s&&y(e.slice(s,r)),o>r&&y(e=e.slice(r)),o>r&&f(e))}l.push(n)}return h(l)}function b(e,n){var o=n.length>0,i=e.length>0,a=function(r,a,s,u,c){var l,p,f,d=0,h="0",m=r&&[],g=[],y=P,b=r||i&&E.find.TAG("*",c),x=H+=null==y?1:Math.random()||.1,_=b.length;for(c&&(P=a!==k&&a);h!==_&&null!=(l=b[h]);h++){if(i&&l){for(p=0;f=e[p++];)if(f(l,a,s)){u.push(l);break}c&&(H=x)}o&&((l=!f&&l)&&d--,r&&m.push(l))}if(d+=h,o&&h!==d){for(p=0;f=n[p++];)f(m,g,a,s);if(r){if(d>0)for(;h--;)m[h]||g[h]||(g[h]=G.call(u));g=v(g)}J.apply(u,g),c&&!r&&g.length>0&&d+n.length>1&&t.uniqueSort(u)}return c&&(H=x,P=y),m};return o?r(a):a}var x,_,E,w,C,N,O,T,P,R,D,S,k,j,A,I,M,L,F,U="sizzle"+1*new Date,V=e.document,H=0,q=0,B=n(),W=n(),K=n(),$=function(e,t){return e===t&&(D=!0),0},z=1<<31,Q={}.hasOwnProperty,Y=[],G=Y.pop,X=Y.push,J=Y.push,Z=Y.slice,ee=function(e,t){for(var n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1},te="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ne="[\\x20\\t\\r\\n\\f]",re="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",oe=re.replace("w","w#"),ie="\\["+ne+"*("+re+")(?:"+ne+"*([*^$|!~]?=)"+ne+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+oe+"))|)"+ne+"*\\]",ae=":("+re+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ie+")*)|.*)\\)|)",se=new RegExp(ne+"+","g"),ue=new RegExp("^"+ne+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ne+"+$","g"),ce=new RegExp("^"+ne+"*,"+ne+"*"),le=new RegExp("^"+ne+"*([>+~]|"+ne+")"+ne+"*"),pe=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(ae),de=new RegExp("^"+oe+"$"),he={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re.replace("w","w*")+")"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+ae),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},me=/^(?:input|select|textarea|button)$/i,ve=/^h\d$/i,ge=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,be=/[+~]/,xe=/'|\\/g,_e=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),Ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},we=function(){S()};try{J.apply(Y=Z.call(V.childNodes),V.childNodes),Y[V.childNodes.length].nodeType}catch(Ce){J={apply:Y.length?function(e,t){X.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}_=t.support={},C=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},S=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:V;return r!==k&&9===r.nodeType&&r.documentElement?(k=r,j=r.documentElement,n=r.defaultView,n&&n!==n.top&&(n.addEventListener?n.addEventListener("unload",we,!1):n.attachEvent&&n.attachEvent("onunload",we)),A=!C(r),_.attributes=o(function(e){return e.className="i",!e.getAttribute("className")}),_.getElementsByTagName=o(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),_.getElementsByClassName=ge.test(r.getElementsByClassName),_.getById=o(function(e){return j.appendChild(e).id=U,!r.getElementsByName||!r.getElementsByName(U).length}),_.getById?(E.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&A){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},E.filter.ID=function(e){var t=e.replace(_e,Ee);return function(e){return e.getAttribute("id")===t}}):(delete E.find.ID,E.filter.ID=function(e){var t=e.replace(_e,Ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),E.find.TAG=_.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):_.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],o=0,i=t.getElementsByTagName(e);if("*"===e){for(;n=i[o++];)1===n.nodeType&&r.push(n);return r}return i},E.find.CLASS=_.getElementsByClassName&&function(e,t){return A?t.getElementsByClassName(e):void 0},M=[],I=[],(_.qsa=ge.test(r.querySelectorAll))&&(o(function(e){j.appendChild(e).innerHTML="<a id='"+U+"'></a><select id='"+U+"-\f]' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&I.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||I.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+U+"-]").length||I.push("~="),e.querySelectorAll(":checked").length||I.push(":checked"),e.querySelectorAll("a#"+U+"+*").length||I.push(".#.+[+~]")}),o(function(e){var t=r.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&I.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||I.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),I.push(",.*:")})),(_.matchesSelector=ge.test(L=j.matches||j.webkitMatchesSelector||j.mozMatchesSelector||j.oMatchesSelector||j.msMatchesSelector))&&o(function(e){_.disconnectedMatch=L.call(e,"div"),L.call(e,"[s!='']:x"),M.push("!=",ae)}),I=I.length&&new RegExp(I.join("|")),M=M.length&&new RegExp(M.join("|")),t=ge.test(j.compareDocumentPosition),F=t||ge.test(j.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},$=t?function(e,t){if(e===t)return D=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!_.sortDetached&&t.compareDocumentPosition(e)===n?e===r||e.ownerDocument===V&&F(V,e)?-1:t===r||t.ownerDocument===V&&F(V,t)?1:R?ee(R,e)-ee(R,t):0:4&n?-1:1)}:function(e,t){if(e===t)return D=!0,0;var n,o=0,i=e.parentNode,s=t.parentNode,u=[e],c=[t];if(!i||!s)return e===r?-1:t===r?1:i?-1:s?1:R?ee(R,e)-ee(R,t):0;if(i===s)return a(e,t);for(n=e;n=n.parentNode;)u.unshift(n);for(n=t;n=n.parentNode;)c.unshift(n);for(;u[o]===c[o];)o++;return o?a(u[o],c[o]):u[o]===V?-1:c[o]===V?1:0},r):k},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==k&&S(e),n=n.replace(pe,"='$1']"),!(!_.matchesSelector||!A||M&&M.test(n)||I&&I.test(n)))try{var r=L.call(e,n);if(r||_.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(o){}return t(n,k,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==k&&S(e),F(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==k&&S(e);var n=E.attrHandle[t.toLowerCase()],r=n&&Q.call(E.attrHandle,t.toLowerCase())?n(e,t,!A):void 0;return void 0!==r?r:_.attributes||!A?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,o=0;if(D=!_.detectDuplicates,R=!_.sortStable&&e.slice(0),e.sort($),D){for(;t=e[o++];)t===e[o]&&(r=n.push(o));for(;r--;)e.splice(n[r],1)}return R=null,e},w=t.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=w(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=w(t);return n},E=t.selectors={cacheLength:50,createPseudo:r,match:he,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(_e,Ee),e[3]=(e[3]||e[4]||e[5]||"").replace(_e,Ee),"~="===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]||t.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]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return he.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(_e,Ee).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("(^|"+ne+")"+e+"("+ne+"|$)"))&&B(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(o){var i=t.attr(o,e);return null==i?"!="===n:n?(i+="","="===n?i===r:"!="===n?i!==r:"^="===n?r&&0===i.indexOf(r):"*="===n?r&&i.indexOf(r)>-1:"$="===n?r&&i.slice(-r.length)===r:"~="===n?(" "+i.replace(se," ")+" ").indexOf(r)>-1:"|="===n?i===r||i.slice(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r,o){var i="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===o?function(e){return!!e.parentNode}:function(t,n,u){var c,l,p,f,d,h,m=i!==a?"nextSibling":"previousSibling",v=t.parentNode,g=s&&t.nodeName.toLowerCase(),y=!u&&!s;if(v){if(i){for(;m;){for(p=t;p=p[m];)if(s?p.nodeName.toLowerCase()===g:1===p.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?v.firstChild:v.lastChild],a&&y){for(l=v[U]||(v[U]={}),c=l[e]||[],d=c[0]===H&&c[1],f=c[0]===H&&c[2],p=d&&v.childNodes[d];p=++d&&p&&p[m]||(f=d=0)||h.pop();)if(1===p.nodeType&&++f&&p===t){l[e]=[H,d,f];break}}else if(y&&(c=(t[U]||(t[U]={}))[e])&&c[0]===H)f=c[1];else for(;(p=++d&&p&&p[m]||(f=d=0)||h.pop())&&((s?p.nodeName.toLowerCase()!==g:1!==p.nodeType)||!++f||(y&&((p[U]||(p[U]={}))[e]=[H,f]),p!==t)););return f-=o,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(e,n){var o,i=E.pseudos[e]||E.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return i[U]?i(n):i.length>1?(o=[e,e,"",n],E.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,o=i(e,n),a=o.length;a--;)r=ee(e,o[a]),e[r]=!(t[r]=o[a])}):function(e){return i(e,0,o)}):i}},pseudos:{not:r(function(e){var t=[],n=[],o=O(e.replace(ue,"$1"));return o[U]?r(function(e,t,n,r){for(var i,a=o(e,null,r,[]),s=e.length;s--;)(i=a[s])&&(e[s]=!(t[s]=i))}):function(e,r,i){return t[0]=e,o(t,null,i,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(_e,Ee),function(t){return(t.textContent||t.innerText||w(t)).indexOf(e)>-1}}),lang:r(function(e){return de.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(_e,Ee).toLowerCase(),function(t){var n;do if(n=A?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===j},focus:function(e){return e===k.activeElement&&(!k.hasFocus||k.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},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,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!E.pseudos.empty(e)},header:function(e){return ve.test(e.nodeName)},input:function(e){return me.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:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:c(function(e,t,n){
2
+ for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}},E.pseudos.nth=E.pseudos.eq;for(x in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})E.pseudos[x]=s(x);for(x in{submit:!0,reset:!0})E.pseudos[x]=u(x);return p.prototype=E.filters=E.pseudos,E.setFilters=new p,N=t.tokenize=function(e,n){var r,o,i,a,s,u,c,l=W[e+" "];if(l)return n?0:l.slice(0);for(s=e,u=[],c=E.preFilter;s;){(!r||(o=ce.exec(s)))&&(o&&(s=s.slice(o[0].length)||s),u.push(i=[])),r=!1,(o=le.exec(s))&&(r=o.shift(),i.push({value:r,type:o[0].replace(ue," ")}),s=s.slice(r.length));for(a in E.filter)!(o=he[a].exec(s))||c[a]&&!(o=c[a](o))||(r=o.shift(),i.push({value:r,type:a,matches:o}),s=s.slice(r.length));if(!r)break}return n?s.length:s?t.error(e):W(e,u).slice(0)},O=t.compile=function(e,t){var n,r=[],o=[],i=K[e+" "];if(!i){for(t||(t=N(e)),n=t.length;n--;)i=y(t[n]),i[U]?r.push(i):o.push(i);i=K(e,b(o,r)),i.selector=e}return i},T=t.select=function(e,t,n,r){var o,i,a,s,u,c="function"==typeof e&&e,p=!r&&N(e=c.selector||e);if(n=n||[],1===p.length){if(i=p[0]=p[0].slice(0),i.length>2&&"ID"===(a=i[0]).type&&_.getById&&9===t.nodeType&&A&&E.relative[i[1].type]){if(t=(E.find.ID(a.matches[0].replace(_e,Ee),t)||[])[0],!t)return n;c&&(t=t.parentNode),e=e.slice(i.shift().value.length)}for(o=he.needsContext.test(e)?0:i.length;o--&&(a=i[o],!E.relative[s=a.type]);)if((u=E.find[s])&&(r=u(a.matches[0].replace(_e,Ee),be.test(i[0].type)&&l(t.parentNode)||t))){if(i.splice(o,1),e=r.length&&f(i),!e)return J.apply(n,r),n;break}}return(c||O(e,p))(r,t,!A,n,be.test(e)&&l(t.parentNode)||t),n},_.sortStable=U.split("").sort($).join("")===U,_.detectDuplicates=!!D,S(),_.sortDetached=o(function(e){return 1&e.compareDocumentPosition(k.createElement("div"))}),o(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||i("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),_.attributes&&o(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||i("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),o(function(e){return null==e.getAttribute("disabled")})||i(te,function(e,t,n){var r;return n?void 0:e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(o);ue.find=de,ue.expr=de.selectors,ue.expr[":"]=ue.expr.pseudos,ue.unique=de.uniqueSort,ue.text=de.getText,ue.isXMLDoc=de.isXML,ue.contains=de.contains;var he=ue.expr.match.needsContext,me=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ve=/^.[^:#\[\.,]*$/;ue.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?ue.find.matchesSelector(r,e)?[r]:[]:ue.find.matches(e,ue.grep(t,function(e){return 1===e.nodeType}))},ue.fn.extend({find:function(e){var t,n=[],r=this,o=r.length;if("string"!=typeof e)return this.pushStack(ue(e).filter(function(){for(t=0;o>t;t++)if(ue.contains(r[t],this))return!0}));for(t=0;o>t;t++)ue.find(e,r[t],n);return n=this.pushStack(o>1?ue.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(s(this,e||[],!1))},not:function(e){return this.pushStack(s(this,e||[],!0))},is:function(e){return!!s(this,"string"==typeof e&&he.test(e)?ue(e):e||[],!1).length}});var ge,ye=o.document,be=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,xe=ue.fn.init=function(e,t){var n,r;if(!e)return this;if("string"==typeof e){if(n="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:be.exec(e),!n||!n[1]&&t)return!t||t.jquery?(t||ge).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof ue?t[0]:t,ue.merge(this,ue.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:ye,!0)),me.test(n[1])&&ue.isPlainObject(t))for(n in t)ue.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}if(r=ye.getElementById(n[2]),r&&r.parentNode){if(r.id!==n[2])return ge.find(e);this.length=1,this[0]=r}return this.context=ye,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):ue.isFunction(e)?"undefined"!=typeof ge.ready?ge.ready(e):e(ue):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),ue.makeArray(e,this))};xe.prototype=ue.fn,ge=ue(ye);var _e=/^(?:parents|prev(?:Until|All))/,Ee={children:!0,contents:!0,next:!0,prev:!0};ue.extend({dir:function(e,t,n){for(var r=[],o=e[t];o&&9!==o.nodeType&&(void 0===n||1!==o.nodeType||!ue(o).is(n));)1===o.nodeType&&r.push(o),o=o[t];return r},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}}),ue.fn.extend({has:function(e){var t,n=ue(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(ue.contains(this,n[t]))return!0})},closest:function(e,t){for(var n,r=0,o=this.length,i=[],a=he.test(e)||"string"!=typeof e?ue(e,t||this.context):0;o>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&ue.find.matchesSelector(n,e))){i.push(n);break}return this.pushStack(i.length>1?ue.unique(i):i)},index:function(e){return e?"string"==typeof e?ue.inArray(this[0],ue(e)):ue.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ue.unique(ue.merge(this.get(),ue(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ue.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return ue.dir(e,"parentNode")},parentsUntil:function(e,t,n){return ue.dir(e,"parentNode",n)},next:function(e){return u(e,"nextSibling")},prev:function(e){return u(e,"previousSibling")},nextAll:function(e){return ue.dir(e,"nextSibling")},prevAll:function(e){return ue.dir(e,"previousSibling")},nextUntil:function(e,t,n){return ue.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return ue.dir(e,"previousSibling",n)},siblings:function(e){return ue.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return ue.sibling(e.firstChild)},contents:function(e){return ue.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:ue.merge([],e.childNodes)}},function(e,t){ue.fn[e]=function(n,r){var o=ue.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(o=ue.filter(r,o)),this.length>1&&(Ee[e]||(o=ue.unique(o)),_e.test(e)&&(o=o.reverse())),this.pushStack(o)}});var we=/\S+/g,Ce={};ue.Callbacks=function(e){e="string"==typeof e?Ce[e]||c(e):ue.extend({},e);var t,n,r,o,i,a,s=[],u=!e.once&&[],l=function(c){for(n=e.memory&&c,r=!0,i=a||0,a=0,o=s.length,t=!0;s&&o>i;i++)if(s[i].apply(c[0],c[1])===!1&&e.stopOnFalse){n=!1;break}t=!1,s&&(u?u.length&&l(u.shift()):n?s=[]:p.disable())},p={add:function(){if(s){var r=s.length;!function i(t){ue.each(t,function(t,n){var r=ue.type(n);"function"===r?e.unique&&p.has(n)||s.push(n):n&&n.length&&"string"!==r&&i(n)})}(arguments),t?o=s.length:n&&(a=r,l(n))}return this},remove:function(){return s&&ue.each(arguments,function(e,n){for(var r;(r=ue.inArray(n,s,r))>-1;)s.splice(r,1),t&&(o>=r&&o--,i>=r&&i--)}),this},has:function(e){return e?ue.inArray(e,s)>-1:!(!s||!s.length)},empty:function(){return s=[],o=0,this},disable:function(){return s=u=n=void 0,this},disabled:function(){return!s},lock:function(){return u=void 0,n||p.disable(),this},locked:function(){return!u},fireWith:function(e,n){return!s||r&&!u||(n=n||[],n=[e,n.slice?n.slice():n],t?u.push(n):l(n)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!r}};return p},ue.extend({Deferred:function(e){var t=[["resolve","done",ue.Callbacks("once memory"),"resolved"],["reject","fail",ue.Callbacks("once memory"),"rejected"],["notify","progress",ue.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return o.done(arguments).fail(arguments),this},then:function(){var e=arguments;return ue.Deferred(function(n){ue.each(t,function(t,i){var a=ue.isFunction(e[t])&&e[t];o[i[1]](function(){var e=a&&a.apply(this,arguments);e&&ue.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[i[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?ue.extend(e,r):r}},o={};return r.pipe=r.then,ue.each(t,function(e,i){var a=i[2],s=i[3];r[i[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),o[i[0]]=function(){return o[i[0]+"With"](this===o?r:this,arguments),this},o[i[0]+"With"]=a.fireWith}),r.promise(o),e&&e.call(o,o),o},when:function(e){var t,n,r,o=0,i=Z.call(arguments),a=i.length,s=1!==a||e&&ue.isFunction(e.promise)?a:0,u=1===s?e:ue.Deferred(),c=function(e,n,r){return function(o){n[e]=this,r[e]=arguments.length>1?Z.call(arguments):o,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);a>o;o++)i[o]&&ue.isFunction(i[o].promise)?i[o].promise().done(c(o,r,i)).fail(u.reject).progress(c(o,n,t)):--s;return s||u.resolveWith(r,i),u.promise()}});var Ne;ue.fn.ready=function(e){return ue.ready.promise().done(e),this},ue.extend({isReady:!1,readyWait:1,holdReady:function(e){e?ue.readyWait++:ue.ready(!0)},ready:function(e){if(e===!0?!--ue.readyWait:!ue.isReady){if(!ye.body)return setTimeout(ue.ready);ue.isReady=!0,e!==!0&&--ue.readyWait>0||(Ne.resolveWith(ye,[ue]),ue.fn.triggerHandler&&(ue(ye).triggerHandler("ready"),ue(ye).off("ready")))}}}),ue.ready.promise=function(e){if(!Ne)if(Ne=ue.Deferred(),"complete"===ye.readyState)setTimeout(ue.ready);else if(ye.addEventListener)ye.addEventListener("DOMContentLoaded",p,!1),o.addEventListener("load",p,!1);else{ye.attachEvent("onreadystatechange",p),o.attachEvent("onload",p);var t=!1;try{t=null==o.frameElement&&ye.documentElement}catch(n){}t&&t.doScroll&&!function r(){if(!ue.isReady){try{t.doScroll("left")}catch(e){return setTimeout(r,50)}l(),ue.ready()}}()}return Ne.promise(e)};var Oe,Te="undefined";for(Oe in ue(ae))break;ae.ownLast="0"!==Oe,ae.inlineBlockNeedsLayout=!1,ue(function(){var e,t,n,r;n=ye.getElementsByTagName("body")[0],n&&n.style&&(t=ye.createElement("div"),r=ye.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),typeof t.style.zoom!==Te&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",ae.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(r))}),function(){var e=ye.createElement("div");if(null==ae.deleteExpando){ae.deleteExpando=!0;try{delete e.test}catch(t){ae.deleteExpando=!1}}e=null}(),ue.acceptData=function(e){var t=ue.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return 1!==n&&9!==n?!1:!t||t!==!0&&e.getAttribute("classid")===t};var Pe=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Re=/([A-Z])/g;ue.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?ue.cache[e[ue.expando]]:e[ue.expando],!!e&&!d(e)},data:function(e,t,n){return h(e,t,n)},removeData:function(e,t){return m(e,t)},_data:function(e,t,n){return h(e,t,n,!0)},_removeData:function(e,t){return m(e,t,!0)}}),ue.fn.extend({data:function(e,t){var n,r,o,i=this[0],a=i&&i.attributes;if(void 0===e){if(this.length&&(o=ue.data(i),1===i.nodeType&&!ue._data(i,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(r=a[n].name,0===r.indexOf("data-")&&(r=ue.camelCase(r.slice(5)),f(i,r,o[r])));ue._data(i,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){ue.data(this,e)}):arguments.length>1?this.each(function(){ue.data(this,e,t)}):i?f(i,e,ue.data(i,e)):void 0},removeData:function(e){return this.each(function(){ue.removeData(this,e)})}}),ue.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=ue._data(e,t),n&&(!r||ue.isArray(n)?r=ue._data(e,t,ue.makeArray(n)):r.push(n)),r||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=ue.queue(e,t),r=n.length,o=n.shift(),i=ue._queueHooks(e,t),a=function(){ue.dequeue(e,t)};"inprogress"===o&&(o=n.shift(),r--),o&&("fx"===t&&n.unshift("inprogress"),delete i.stop,o.call(e,a,i)),!r&&i&&i.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return ue._data(e,n)||ue._data(e,n,{empty:ue.Callbacks("once memory").add(function(){ue._removeData(e,t+"queue"),ue._removeData(e,n)})})}}),ue.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?ue.queue(this[0],e):void 0===t?this:this.each(function(){var n=ue.queue(this,e,t);ue._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&ue.dequeue(this,e)})},dequeue:function(e){return this.each(function(){ue.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,o=ue.Deferred(),i=this,a=this.length,s=function(){--r||o.resolveWith(i,[i])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";a--;)n=ue._data(i[a],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(s));return s(),o.promise(t)}});var De=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Se=["Top","Right","Bottom","Left"],ke=function(e,t){return e=t||e,"none"===ue.css(e,"display")||!ue.contains(e.ownerDocument,e)},je=ue.access=function(e,t,n,r,o,i,a){var s=0,u=e.length,c=null==n;if("object"===ue.type(n)){o=!0;for(s in n)ue.access(e,t,s,n[s],!0,i,a)}else if(void 0!==r&&(o=!0,ue.isFunction(r)||(a=!0),c&&(a?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(ue(e),n)})),t))for(;u>s;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return o?e:c?t.call(e):u?t(e[0],n):i},Ae=/^(?:checkbox|radio)$/i;!function(){var e=ye.createElement("input"),t=ye.createElement("div"),n=ye.createDocumentFragment();if(t.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",ae.leadingWhitespace=3===t.firstChild.nodeType,ae.tbody=!t.getElementsByTagName("tbody").length,ae.htmlSerialize=!!t.getElementsByTagName("link").length,ae.html5Clone="<:nav></:nav>"!==ye.createElement("nav").cloneNode(!0).outerHTML,e.type="checkbox",e.checked=!0,n.appendChild(e),ae.appendChecked=e.checked,t.innerHTML="<textarea>x</textarea>",ae.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue,n.appendChild(t),t.innerHTML="<input type='radio' checked='checked' name='t'/>",ae.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,ae.noCloneEvent=!0,t.attachEvent&&(t.attachEvent("onclick",function(){ae.noCloneEvent=!1}),t.cloneNode(!0).click()),null==ae.deleteExpando){ae.deleteExpando=!0;try{delete t.test}catch(r){ae.deleteExpando=!1}}}(),function(){var e,t,n=ye.createElement("div");for(e in{submit:!0,change:!0,focusin:!0})t="on"+e,(ae[e+"Bubbles"]=t in o)||(n.setAttribute(t,"t"),ae[e+"Bubbles"]=n.attributes[t].expando===!1);n=null}();var Ie=/^(?:input|select|textarea)$/i,Me=/^key/,Le=/^(?:mouse|pointer|contextmenu)|click/,Fe=/^(?:focusinfocus|focusoutblur)$/,Ue=/^([^.]*)(?:\.(.+)|)$/;ue.event={global:{},add:function(e,t,n,r,o){var i,a,s,u,c,l,p,f,d,h,m,v=ue._data(e);if(v){for(n.handler&&(u=n,n=u.handler,o=u.selector),n.guid||(n.guid=ue.guid++),(a=v.events)||(a=v.events={}),(l=v.handle)||(l=v.handle=function(e){return typeof ue===Te||e&&ue.event.triggered===e.type?void 0:ue.event.dispatch.apply(l.elem,arguments)},l.elem=e),t=(t||"").match(we)||[""],s=t.length;s--;)i=Ue.exec(t[s])||[],d=m=i[1],h=(i[2]||"").split(".").sort(),d&&(c=ue.event.special[d]||{},d=(o?c.delegateType:c.bindType)||d,c=ue.event.special[d]||{},p=ue.extend({type:d,origType:m,data:r,handler:n,guid:n.guid,selector:o,needsContext:o&&ue.expr.match.needsContext.test(o),namespace:h.join(".")},u),(f=a[d])||(f=a[d]=[],f.delegateCount=0,c.setup&&c.setup.call(e,r,h,l)!==!1||(e.addEventListener?e.addEventListener(d,l,!1):e.attachEvent&&e.attachEvent("on"+d,l))),c.add&&(c.add.call(e,p),p.handler.guid||(p.handler.guid=n.guid)),o?f.splice(f.delegateCount++,0,p):f.push(p),ue.event.global[d]=!0);e=null}},remove:function(e,t,n,r,o){var i,a,s,u,c,l,p,f,d,h,m,v=ue.hasData(e)&&ue._data(e);if(v&&(l=v.events)){for(t=(t||"").match(we)||[""],c=t.length;c--;)if(s=Ue.exec(t[c])||[],d=m=s[1],h=(s[2]||"").split(".").sort(),d){for(p=ue.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=l[d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=i=f.length;i--;)a=f[i],!o&&m!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(i,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,v.handle)!==!1||ue.removeEvent(e,d,v.handle),delete l[d])}else for(d in l)ue.event.remove(e,d+t[c],n,r,!0);ue.isEmptyObject(l)&&(delete v.handle,ue._removeData(e,"events"))}},trigger:function(e,t,n,r){var i,a,s,u,c,l,p,f=[n||ye],d=ie.call(e,"type")?e.type:e,h=ie.call(e,"namespace")?e.namespace.split("."):[];if(s=l=n=n||ye,3!==n.nodeType&&8!==n.nodeType&&!Fe.test(d+ue.event.triggered)&&(d.indexOf(".")>=0&&(h=d.split("."),d=h.shift(),h.sort()),a=d.indexOf(":")<0&&"on"+d,e=e[ue.expando]?e:new ue.Event(d,"object"==typeof e&&e),e.isTrigger=r?2:3,e.namespace=h.join("."),e.namespace_re=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:ue.makeArray(t,[e]),c=ue.event.special[d]||{},r||!c.trigger||c.trigger.apply(n,t)!==!1)){if(!r&&!c.noBubble&&!ue.isWindow(n)){for(u=c.delegateType||d,Fe.test(u+d)||(s=s.parentNode);s;s=s.parentNode)f.push(s),l=s;l===(n.ownerDocument||ye)&&f.push(l.defaultView||l.parentWindow||o)}for(p=0;(s=f[p++])&&!e.isPropagationStopped();)e.type=p>1?u:c.bindType||d,i=(ue._data(s,"events")||{})[e.type]&&ue._data(s,"handle"),i&&i.apply(s,t),i=a&&s[a],i&&i.apply&&ue.acceptData(s)&&(e.result=i.apply(s,t),e.result===!1&&e.preventDefault());if(e.type=d,!r&&!e.isDefaultPrevented()&&(!c._default||c._default.apply(f.pop(),t)===!1)&&ue.acceptData(n)&&a&&n[d]&&!ue.isWindow(n)){l=n[a],l&&(n[a]=null),ue.event.triggered=d;try{n[d]()}catch(m){}ue.event.triggered=void 0,l&&(n[a]=l)}return e.result}},dispatch:function(e){e=ue.event.fix(e);var t,n,r,o,i,a=[],s=Z.call(arguments),u=(ue._data(this,"events")||{})[e.type]||[],c=ue.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){for(a=ue.event.handlers.call(this,e,u),t=0;(o=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=o.elem,i=0;(r=o.handlers[i++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(r.namespace))&&(e.handleObj=r,e.data=r.data,n=((ue.event.special[r.origType]||{}).handle||r.handler).apply(o.elem,s),void 0!==n&&(e.result=n)===!1&&(e.preventDefault(),e.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,o,i,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],i=0;s>i;i++)r=t[i],n=r.selector+" ",void 0===o[n]&&(o[n]=r.needsContext?ue(n,this).index(u)>=0:ue.find(n,this,null,[u]).length),o[n]&&o.push(r);o.length&&a.push({elem:u,handlers:o})}return s<t.length&&a.push({elem:this,handlers:t.slice(s)}),a},fix:function(e){if(e[ue.expando])return e;var t,n,r,o=e.type,i=e,a=this.fixHooks[o];for(a||(this.fixHooks[o]=a=Le.test(o)?this.mouseHooks:Me.test(o)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new ue.Event(i),t=r.length;t--;)n=r[t],e[n]=i[n];return e.target||(e.target=i.srcElement||ye),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,a.filter?a.filter(e,i):e},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(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,o,i=t.button,a=t.fromElement;return null==e.pageX&&null!=t.clientX&&(r=e.target.ownerDocument||ye,o=r.documentElement,n=r.body,e.pageX=t.clientX+(o&&o.scrollLeft||n&&n.scrollLeft||0)-(o&&o.clientLeft||n&&n.clientLeft||0),e.pageY=t.clientY+(o&&o.scrollTop||n&&n.scrollTop||0)-(o&&o.clientTop||n&&n.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?t.toElement:a),e.which||void 0===i||(e.which=1&i?1:2&i?3:4&i?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==y()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===y()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return ue.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(e){return ue.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var o=ue.extend(new ue.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?ue.event.trigger(o,null,t):ue.event.dispatch.call(t,o),o.isDefaultPrevented()&&n.preventDefault()}},ue.removeEvent=ye.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===Te&&(e[r]=null),e.detachEvent(r,n))},ue.Event=function(e,t){return this instanceof ue.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&e.returnValue===!1?v:g):this.type=e,t&&ue.extend(this,t),this.timeStamp=e&&e.timeStamp||ue.now(),void(this[ue.expando]=!0)):new ue.Event(e,t)},ue.Event.prototype={isDefaultPrevented:g,isPropagationStopped:g,isImmediatePropagationStopped:g,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=v,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=v,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=v,e&&e.stopImmediatePropagation&&e.stopImmediatePropagation(),this.stopPropagation()}},ue.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){ue.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,o=e.relatedTarget,i=e.handleObj;return(!o||o!==r&&!ue.contains(r,o))&&(e.type=i.origType,n=i.handler.apply(this,arguments),e.type=t),n}}}),ae.submitBubbles||(ue.event.special.submit={setup:function(){return ue.nodeName(this,"form")?!1:void ue.event.add(this,"click._submit keypress._submit",function(e){var t=e.target,n=ue.nodeName(t,"input")||ue.nodeName(t,"button")?t.form:void 0;n&&!ue._data(n,"submitBubbles")&&(ue.event.add(n,"submit._submit",function(e){e._submit_bubble=!0}),ue._data(n,"submitBubbles",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&ue.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return ue.nodeName(this,"form")?!1:void ue.event.remove(this,"._submit")}}),ae.changeBubbles||(ue.event.special.change={setup:function(){return Ie.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(ue.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),ue.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),ue.event.simulate("change",this,e,!0)})),!1):void ue.event.add(this,"beforeactivate._change",function(e){var t=e.target;Ie.test(t.nodeName)&&!ue._data(t,"changeBubbles")&&(ue.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||ue.event.simulate("change",this.parentNode,e,!0)}),ue._data(t,"changeBubbles",!0))})},handle:function(e){var t=e.target;return this!==t||e.isSimulated||e.isTrigger||"radio"!==t.type&&"checkbox"!==t.type?e.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return ue.event.remove(this,"._change"),!Ie.test(this.nodeName)}}),ae.focusinBubbles||ue.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){ue.event.simulate(t,e.target,ue.event.fix(e),!0)};ue.event.special[t]={setup:function(){var r=this.ownerDocument||this,o=ue._data(r,t);o||r.addEventListener(e,n,!0),ue._data(r,t,(o||0)+1)},teardown:function(){var r=this.ownerDocument||this,o=ue._data(r,t)-1;o?ue._data(r,t,o):(r.removeEventListener(e,n,!0),ue._removeData(r,t))}}}),ue.fn.extend({on:function(e,t,n,r,o){var i,a;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=void 0);for(i in e)this.on(i,t,n,e[i],o);return this}if(null==n&&null==r?(r=t,n=t=void 0):null==r&&("string"==typeof t?(r=n,n=void 0):(r=n,n=t,t=void 0)),r===!1)r=g;else if(!r)return this;return 1===o&&(a=r,r=function(e){return ue().off(e),a.apply(this,arguments)},r.guid=a.guid||(a.guid=ue.guid++)),this.each(function(){ue.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,o;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,ue(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(o in e)this.off(o,t,e[o]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=void 0),n===!1&&(n=g),this.each(function(){ue.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){ue.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?ue.event.trigger(e,t,n,!0):void 0}});var Ve="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",He=/ jQuery\d+="(?:null|\d+)"/g,qe=new RegExp("<(?:"+Ve+")[\\s/>]","i"),Be=/^\s+/,We=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Ke=/<([\w:]+)/,$e=/<tbody/i,ze=/<|&#?\w+;/,Qe=/<(?:script|style|link)/i,Ye=/checked\s*(?:[^=]|=\s*.checked.)/i,Ge=/^$|\/(?:java|ecma)script/i,Xe=/^true\/(.*)/,Je=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Ze={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:ae.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},et=b(ye),tt=et.appendChild(ye.createElement("div"));Ze.optgroup=Ze.option,Ze.tbody=Ze.tfoot=Ze.colgroup=Ze.caption=Ze.thead,Ze.th=Ze.td,ue.extend({clone:function(e,t,n){var r,o,i,a,s,u=ue.contains(e.ownerDocument,e);if(ae.html5Clone||ue.isXMLDoc(e)||!qe.test("<"+e.nodeName+">")?i=e.cloneNode(!0):(tt.innerHTML=e.outerHTML,tt.removeChild(i=tt.firstChild)),!(ae.noCloneEvent&&ae.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ue.isXMLDoc(e)))for(r=x(i),s=x(e),a=0;null!=(o=s[a]);++a)r[a]&&T(o,r[a]);if(t)if(n)for(s=s||x(e),r=r||x(i),a=0;null!=(o=s[a]);a++)O(o,r[a]);else O(e,i);return r=x(i,"script"),r.length>0&&N(r,!u&&x(e,"script")),r=s=o=null,i},buildFragment:function(e,t,n,r){for(var o,i,a,s,u,c,l,p=e.length,f=b(t),d=[],h=0;p>h;h++)if(i=e[h],i||0===i)if("object"===ue.type(i))ue.merge(d,i.nodeType?[i]:i);else if(ze.test(i)){for(s=s||f.appendChild(t.createElement("div")),u=(Ke.exec(i)||["",""])[1].toLowerCase(),l=Ze[u]||Ze._default,s.innerHTML=l[1]+i.replace(We,"<$1></$2>")+l[2],o=l[0];o--;)s=s.lastChild;if(!ae.leadingWhitespace&&Be.test(i)&&d.push(t.createTextNode(Be.exec(i)[0])),!ae.tbody)for(i="table"!==u||$e.test(i)?"<table>"!==l[1]||$e.test(i)?0:s:s.firstChild,o=i&&i.childNodes.length;o--;)ue.nodeName(c=i.childNodes[o],"tbody")&&!c.childNodes.length&&i.removeChild(c);for(ue.merge(d,s.childNodes),s.textContent="";s.firstChild;)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(i));for(s&&f.removeChild(s),ae.appendChecked||ue.grep(x(d,"input"),_),h=0;i=d[h++];)if((!r||-1===ue.inArray(i,r))&&(a=ue.contains(i.ownerDocument,i),s=x(f.appendChild(i),"script"),a&&N(s),n))for(o=0;i=s[o++];)Ge.test(i.type||"")&&n.push(i);return s=null,f},cleanData:function(e,t){for(var n,r,o,i,a=0,s=ue.expando,u=ue.cache,c=ae.deleteExpando,l=ue.event.special;null!=(n=e[a]);a++)if((t||ue.acceptData(n))&&(o=n[s],i=o&&u[o])){if(i.events)for(r in i.events)l[r]?ue.event.remove(n,r):ue.removeEvent(n,r,i.handle);u[o]&&(delete u[o],c?delete n[s]:typeof n.removeAttribute!==Te?n.removeAttribute(s):n[s]=null,J.push(o))}}}),ue.fn.extend({text:function(e){return je(this,function(e){return void 0===e?ue.text(this):this.empty().append((this[0]&&this[0].ownerDocument||ye).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=E(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=E(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,r=e?ue.filter(e,this):this,o=0;null!=(n=r[o]);o++)t||1!==n.nodeType||ue.cleanData(x(n)),n.parentNode&&(t&&ue.contains(n.ownerDocument,n)&&N(x(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&ue.cleanData(x(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&ue.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return ue.clone(this,e,t)})},html:function(e){return je(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(He,""):void 0;if(!("string"!=typeof e||Qe.test(e)||!ae.htmlSerialize&&qe.test(e)||!ae.leadingWhitespace&&Be.test(e)||Ze[(Ke.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(We,"<$1></$2>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(ue.cleanData(x(t,!1)),t.innerHTML=e);t=0}catch(o){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=arguments[0];return this.domManip(arguments,function(t){e=this.parentNode,ue.cleanData(x(this)),e&&e.replaceChild(t,this)}),e&&(e.length||e.nodeType)?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t){e=ee.apply([],e);var n,r,o,i,a,s,u=0,c=this.length,l=this,p=c-1,f=e[0],d=ue.isFunction(f);if(d||c>1&&"string"==typeof f&&!ae.checkClone&&Ye.test(f))return this.each(function(n){var r=l.eq(n);d&&(e[0]=f.call(this,n,r.html())),r.domManip(e,t)});if(c&&(s=ue.buildFragment(e,this[0].ownerDocument,!1,this),n=s.firstChild,1===s.childNodes.length&&(s=n),n)){for(i=ue.map(x(s,"script"),w),o=i.length;c>u;u++)r=s,u!==p&&(r=ue.clone(r,!0,!0),o&&ue.merge(i,x(r,"script"))),t.call(this[u],r,u);if(o)for(a=i[i.length-1].ownerDocument,ue.map(i,C),u=0;o>u;u++)r=i[u],Ge.test(r.type||"")&&!ue._data(r,"globalEval")&&ue.contains(a,r)&&(r.src?ue._evalUrl&&ue._evalUrl(r.src):ue.globalEval((r.text||r.textContent||r.innerHTML||"").replace(Je,"")));s=n=null}return this}}),ue.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){ue.fn[e]=function(e){for(var n,r=0,o=[],i=ue(e),a=i.length-1;a>=r;r++)n=r===a?this:this.clone(!0),ue(i[r])[t](n),te.apply(o,n.get());return this.pushStack(o)}});var nt,rt={};!function(){var e;ae.shrinkWrapBlocks=function(){if(null!=e)return e;e=!1;var t,n,r;return n=ye.getElementsByTagName("body")[0],n&&n.style?(t=ye.createElement("div"),r=ye.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),typeof t.style.zoom!==Te&&(t.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",
3
+ t.appendChild(ye.createElement("div")).style.width="5px",e=3!==t.offsetWidth),n.removeChild(r),e):void 0}}();var ot,it,at=/^margin/,st=new RegExp("^("+De+")(?!px)[a-z%]+$","i"),ut=/^(top|right|bottom|left)$/;o.getComputedStyle?(ot=function(e){return e.ownerDocument.defaultView.opener?e.ownerDocument.defaultView.getComputedStyle(e,null):o.getComputedStyle(e,null)},it=function(e,t,n){var r,o,i,a,s=e.style;return n=n||ot(e),a=n?n.getPropertyValue(t)||n[t]:void 0,n&&(""!==a||ue.contains(e.ownerDocument,e)||(a=ue.style(e,t)),st.test(a)&&at.test(t)&&(r=s.width,o=s.minWidth,i=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=o,s.maxWidth=i)),void 0===a?a:a+""}):ye.documentElement.currentStyle&&(ot=function(e){return e.currentStyle},it=function(e,t,n){var r,o,i,a,s=e.style;return n=n||ot(e),a=n?n[t]:void 0,null==a&&s&&s[t]&&(a=s[t]),st.test(a)&&!ut.test(t)&&(r=s.left,o=e.runtimeStyle,i=o&&o.left,i&&(o.left=e.currentStyle.left),s.left="fontSize"===t?"1em":a,a=s.pixelLeft+"px",s.left=r,i&&(o.left=i)),void 0===a?a:a+""||"auto"}),function(){function e(){var e,t,n,r;t=ye.getElementsByTagName("body")[0],t&&t.style&&(e=ye.createElement("div"),n=ye.createElement("div"),n.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",t.appendChild(n).appendChild(e),e.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",i=a=!1,u=!0,o.getComputedStyle&&(i="1%"!==(o.getComputedStyle(e,null)||{}).top,a="4px"===(o.getComputedStyle(e,null)||{width:"4px"}).width,r=e.appendChild(ye.createElement("div")),r.style.cssText=e.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",r.style.marginRight=r.style.width="0",e.style.width="1px",u=!parseFloat((o.getComputedStyle(r,null)||{}).marginRight),e.removeChild(r)),e.innerHTML="<table><tr><td></td><td>t</td></tr></table>",r=e.getElementsByTagName("td"),r[0].style.cssText="margin:0;border:0;padding:0;display:none",s=0===r[0].offsetHeight,s&&(r[0].style.display="",r[1].style.display="none",s=0===r[0].offsetHeight),t.removeChild(n))}var t,n,r,i,a,s,u;t=ye.createElement("div"),t.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",r=t.getElementsByTagName("a")[0],n=r&&r.style,n&&(n.cssText="float:left;opacity:.5",ae.opacity="0.5"===n.opacity,ae.cssFloat=!!n.cssFloat,t.style.backgroundClip="content-box",t.cloneNode(!0).style.backgroundClip="",ae.clearCloneStyle="content-box"===t.style.backgroundClip,ae.boxSizing=""===n.boxSizing||""===n.MozBoxSizing||""===n.WebkitBoxSizing,ue.extend(ae,{reliableHiddenOffsets:function(){return null==s&&e(),s},boxSizingReliable:function(){return null==a&&e(),a},pixelPosition:function(){return null==i&&e(),i},reliableMarginRight:function(){return null==u&&e(),u}}))}(),ue.swap=function(e,t,n,r){var o,i,a={};for(i in t)a[i]=e.style[i],e.style[i]=t[i];o=n.apply(e,r||[]);for(i in t)e.style[i]=a[i];return o};var ct=/alpha\([^)]*\)/i,lt=/opacity\s*=\s*([^)]*)/,pt=/^(none|table(?!-c[ea]).+)/,ft=new RegExp("^("+De+")(.*)$","i"),dt=new RegExp("^([+-])=("+De+")","i"),ht={position:"absolute",visibility:"hidden",display:"block"},mt={letterSpacing:"0",fontWeight:"400"},vt=["Webkit","O","Moz","ms"];ue.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=it(e,"opacity");return""===n?"1":n}}}},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":ae.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,i,a,s=ue.camelCase(t),u=e.style;if(t=ue.cssProps[s]||(ue.cssProps[s]=S(u,s)),a=ue.cssHooks[t]||ue.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(o=a