Version Description
- Changes in all versions:
- New. Ability permanently delete all imported bookings before new import, instead of sending to Trash. Activate this option at the Booking > Settings > Sync > "General" page. (9.1.2.6)
- Fix. Double scrolling issue to "Thank you" message after submitting of the booking. (9.1.2.1)
- Fix. Showing slashes in "Thank you" message, if used quote symbols. (9.1.2.2)
- Fix. Issue of incorrectly defining path for calendar skins at some servers. (9.1.2.10)
- Under hood. New 'booking_options' field in booking table in Database, for saving different bookings meta data, like booking language locale, etc.. (9.1.2.12) (Business Large, MultiUser)
- Changes in Personal / Business Small / Business Medium / Business Large / MultiUser versions:
- Improvement. Disable using "Unavailable time before / after booking" in booking resources with specific capacity. Otherwise it generate availability issue. (9.1.2.7) (Business Large, MultiUser)
- Improvement. Ability to disabled fully booked dates in calendar, if in booking form was used "start time" fields in the conditional section. (9.1.2.8) (Business Medium/Large, MultiUser)
- Improvement. Block dates in calendar, if all time slots was booked for specific date(s), if activated this option "Disable booked time slots in multiple days selection mode" at the Booking > Settings General page in "Advanced" section. (9.1.2.9) (Business Small/Medium/Large, MultiUser)
- Improvement. Making automatic selection of custom search fields in search form after initial search. (9.1.2.11)
- Improvement. Updated print script to version 2.0.0 (9.1.2.13)
- Improvement. Save time of log note at the beginning of message (9.1.2.14)
- Fix. Prevent of showing '1980-01-01' in search results, after initial loading of page (if searching was not made, yet) instead of [search_check_in] and [search_check_out] shortcodes . (9.1.2.11)
- Fix. Showing booking resource labels with very long name, more than 80 characters. Trim such name to 80 symbols and show full booking resource name in a tooltip, when mouse over. (9.1.2.3)
- Fix. Uncaught TypeError: jQuery(...).hide is not a function, during cancellation of the bookings. (9.1.2.4)
- Under hood. Search availability enhance functionality. Ability to use shortcode like this [bookinglooking type=4 nummonths=1] instead of [booking type=4 nummonths=1] in content of the page, for ability to show this page in search availability result. Usually this trick useful, if the Booking Calendar shortcode used in side bar or meta-boxes of as widget, and we can not use it in main page content. Parameters of this [bookinglooking ... ] shortcode have to be the same as in [booking ... ] shortcode. Please check more here https://wpbookingcalendar.com/faq/shortcode-booking-form/ (9.1.2.5) (Business Large, MultiUser)
Download this release
Release Info
Developer | wpdevelop |
Plugin | Booking Calendar |
Version | 9.1.2 |
Comparing to | |
See all releases |
Code changes from version 9.1.1 to 9.1.2
- assets/libs/bootstrap-css/css/bootstrap.css +29 -29
- assets/libs/material-design-icons/material-design-icons.css +4 -1
- assets/libs/ui/_out/dropdown_modal.js +3 -3
- assets/libs/ui/_out/dropdown_modal.min.js +2 -2
- assets/libs/ui/_src/dropdown_modal.js +2 -1
- assets/libs/wpbc_js_print/wpbc_js_print.js +41 -26
- core/admin/api-settings.php +5 -5
- core/admin/page-bookings.php +6 -1
- core/admin/page-email-new-visitor.php +2 -2
- core/admin/page-ics-general.php +15 -7
- core/admin/wpbc-class-listing.php +8 -8
- core/admin/wpbc-toolbars.php +16 -4
- core/any/admin-bs-ui.php +67 -231
- core/any/css/admin-support.css +3 -0
- core/any/js/admin-support.js +68 -60
- core/lib/wpbc-ajax.php +1 -1
- core/lib/wpdev-booking-class.php +82 -199
- core/timeline/v2/wpbc-class-timeline_v2.php +2 -1
- core/wpbc-activation.php +6 -1
- core/wpbc-core.php +96 -1
- core/wpbc-css.php +4 -2
- core/wpbc-emails.php +3 -1
- core/wpbc-functions.php +10 -3
- core/wpbc-include.php +9 -7
- core/wpbc-js.php +2 -2
- css/client.css +3 -0
- css/wpbc-gutenberg.css +1 -0
- js/admin.js +13 -6
- js/client.js +4 -2
- js/datepick/jquery.datepick-ar.js +3 -2
- js/wpbc_times.js +40 -5
- readme.txt +22 -2
- wpdev-booking.php +2 -2
assets/libs/bootstrap-css/css/bootstrap.css
CHANGED
@@ -190,73 +190,73 @@
|
|
190 |
padding: 0;
|
191 |
}
|
192 |
@media print {
|
193 |
-
.
|
194 |
-
.
|
195 |
-
.
|
196 |
background: transparent !important;
|
197 |
color: #000 !important;
|
198 |
-webkit-box-shadow: none !important;
|
199 |
box-shadow: none !important;
|
200 |
text-shadow: none !important;
|
201 |
}
|
202 |
-
.
|
203 |
-
.
|
204 |
text-decoration: underline;
|
205 |
}
|
206 |
-
.
|
207 |
content: " (" attr(href) ")";
|
208 |
}
|
209 |
-
.
|
210 |
content: " (" attr(title) ")";
|
211 |
}
|
212 |
-
.
|
213 |
-
.
|
214 |
content: "";
|
215 |
}
|
216 |
-
.
|
217 |
-
.
|
218 |
border: 1px solid #999;
|
219 |
page-break-inside: avoid;
|
220 |
}
|
221 |
-
.
|
222 |
display: table-header-group;
|
223 |
}
|
224 |
-
.
|
225 |
-
.
|
226 |
page-break-inside: avoid;
|
227 |
}
|
228 |
-
.
|
229 |
max-width: 100% !important;
|
230 |
}
|
231 |
-
.
|
232 |
-
.
|
233 |
-
.
|
234 |
orphans: 3;
|
235 |
widows: 3;
|
236 |
}
|
237 |
-
.
|
238 |
-
.
|
239 |
page-break-after: avoid;
|
240 |
}
|
241 |
-
.
|
242 |
display: none;
|
243 |
}
|
244 |
-
.
|
245 |
-
.
|
246 |
border-top-color: #000 !important;
|
247 |
}
|
248 |
-
.
|
249 |
border: 1px solid #000;
|
250 |
}
|
251 |
-
.
|
252 |
border-collapse: collapse !important;
|
253 |
}
|
254 |
-
.
|
255 |
-
.
|
256 |
background-color: #fff !important;
|
257 |
}
|
258 |
-
.
|
259 |
-
.
|
260 |
border: 1px solid #ddd !important;
|
261 |
}
|
262 |
}
|
190 |
padding: 0;
|
191 |
}
|
192 |
@media print {
|
193 |
+
.wpdevelop_print *,
|
194 |
+
.wpdevelop_print *:before,
|
195 |
+
.wpdevelop_print *:after {
|
196 |
background: transparent !important;
|
197 |
color: #000 !important;
|
198 |
-webkit-box-shadow: none !important;
|
199 |
box-shadow: none !important;
|
200 |
text-shadow: none !important;
|
201 |
}
|
202 |
+
.wpdevelop_print a,
|
203 |
+
.wpdevelop_print a:visited {
|
204 |
text-decoration: underline;
|
205 |
}
|
206 |
+
.wpdevelop_print a[href]:after {
|
207 |
content: " (" attr(href) ")";
|
208 |
}
|
209 |
+
.wpdevelop_print abbr[title]:after {
|
210 |
content: " (" attr(title) ")";
|
211 |
}
|
212 |
+
.wpdevelop_print a[href^="#"]:after,
|
213 |
+
.wpdevelop_print a[href^="javascript:"]:after {
|
214 |
content: "";
|
215 |
}
|
216 |
+
.wpdevelop_print pre,
|
217 |
+
.wpdevelop_print blockquote {
|
218 |
border: 1px solid #999;
|
219 |
page-break-inside: avoid;
|
220 |
}
|
221 |
+
.wpdevelop_print thead {
|
222 |
display: table-header-group;
|
223 |
}
|
224 |
+
.wpdevelop_print tr,
|
225 |
+
.wpdevelop_print img {
|
226 |
page-break-inside: avoid;
|
227 |
}
|
228 |
+
.wpdevelop_print img {
|
229 |
max-width: 100% !important;
|
230 |
}
|
231 |
+
.wpdevelop_print p,
|
232 |
+
.wpdevelop_print h2,
|
233 |
+
.wpdevelop_print h3 {
|
234 |
orphans: 3;
|
235 |
widows: 3;
|
236 |
}
|
237 |
+
.wpdevelop_print h2,
|
238 |
+
.wpdevelop_print h3 {
|
239 |
page-break-after: avoid;
|
240 |
}
|
241 |
+
.wpdevelop_print .navbar {
|
242 |
display: none;
|
243 |
}
|
244 |
+
.wpdevelop_print .btn > .caret,
|
245 |
+
.wpdevelop_print .dropup > .btn > .caret {
|
246 |
border-top-color: #000 !important;
|
247 |
}
|
248 |
+
.wpdevelop_print .label {
|
249 |
border: 1px solid #000;
|
250 |
}
|
251 |
+
.wpdevelop_print .table {
|
252 |
border-collapse: collapse !important;
|
253 |
}
|
254 |
+
.wpdevelop_print .table td,
|
255 |
+
.wpdevelop_print .table th {
|
256 |
background-color: #fff !important;
|
257 |
}
|
258 |
+
.wpdevelop_print .table-bordered th,
|
259 |
+
.wpdevelop_print .table-bordered td {
|
260 |
border: 1px solid #ddd !important;
|
261 |
}
|
262 |
}
|
assets/libs/material-design-icons/material-design-icons.css
CHANGED
@@ -1,4 +1,7 @@
|
|
1 |
-
/* Font Icons: https://fonts.google.com/icons?
|
|
|
|
|
|
|
2 |
/* License: Apache License Version 2.0 http://www.apache.org/licenses/LICENSE-2.0.txt */
|
3 |
@font-face {
|
4 |
font-family: 'wpbc-material-icons';
|
1 |
+
/* Font Icons: https://fonts.google.com/icons?icon.query=event&icon.style=Filled&icon.set=Material+Icons
|
2 |
+
Download: https://github.com/google/material-design-icons/tree/master/font
|
3 |
+
Convertor: https://cloudconvert.com/otf-to-woff2
|
4 |
+
*/
|
5 |
/* License: Apache License Version 2.0 http://www.apache.org/licenses/LICENSE-2.0.txt */
|
6 |
@font-face {
|
7 |
font-family: 'wpbc-material-icons';
|
assets/libs/ui/_out/dropdown_modal.js
CHANGED
@@ -378,7 +378,7 @@ if (typeof jQuery === 'undefined') {
|
|
378 |
}
|
379 |
|
380 |
var desc = ' li:not(.disabled):visible a';
|
381 |
-
var $items = $parent.find('.dropdown-menu' + desc);
|
382 |
if (!$items.length) return;
|
383 |
var index = $items.index(e.target);
|
384 |
if (e.which == 38 && index > 0) index--; // up
|
@@ -414,6 +414,6 @@ if (typeof jQuery === 'undefined') {
|
|
414 |
|
415 |
$(document).on('click.wpbc.dropdown.data-api', clearMenus).on('click.wpbc.dropdown.data-api', '.dropdown form', function (e) {
|
416 |
e.stopPropagation();
|
417 |
-
}).on('click.wpbc.dropdown.data-api', toggle, Dropdown.prototype.toggle).on('keydown.wpbc.dropdown.data-api', toggle, Dropdown.prototype.keydown).on('keydown.wpbc.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown);
|
418 |
}(jQuery);
|
419 |
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9saWJzL3VpL19zcmMvZHJvcGRvd25fbW9kYWwuanMiXSwibmFtZXMiOlsialF1ZXJ5IiwiRXJyb3IiLCIkIiwidmVyc2lvbiIsImZuIiwianF1ZXJ5Iiwic3BsaXQiLCJNb2RhbCIsImVsZW1lbnQiLCJvcHRpb25zIiwiJGJvZHkiLCJkb2N1bWVudCIsImJvZHkiLCIkZWxlbWVudCIsIiRkaWFsb2ciLCJmaW5kIiwiJGJhY2tkcm9wIiwiaXNTaG93biIsIm9yaWdpbmFsQm9keVBhZCIsInNjcm9sbGJhcldpZHRoIiwiaWdub3JlQmFja2Ryb3BDbGljayIsInJlbW90ZSIsImxvYWQiLCJwcm94eSIsInRyaWdnZXIiLCJWRVJTSU9OIiwiVFJBTlNJVElPTl9EVVJBVElPTiIsIkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04iLCJERUZBVUxUUyIsImJhY2tkcm9wIiwia2V5Ym9hcmQiLCJzaG93IiwicHJvdG90eXBlIiwidG9nZ2xlIiwiX3JlbGF0ZWRUYXJnZXQiLCJoaWRlIiwidGhhdCIsImUiLCJFdmVudCIsInJlbGF0ZWRUYXJnZXQiLCJpc0RlZmF1bHRQcmV2ZW50ZWQiLCJjaGVja1Njcm9sbGJhciIsInNldFNjcm9sbGJhciIsImFkZENsYXNzIiwiZXNjYXBlIiwicmVzaXplIiwib24iLCJvbmUiLCJ0YXJnZXQiLCJpcyIsInRyYW5zaXRpb24iLCJzdXBwb3J0IiwiaGFzQ2xhc3MiLCJwYXJlbnQiLCJsZW5ndGgiLCJhcHBlbmRUbyIsInNjcm9sbFRvcCIsImFkanVzdERpYWxvZyIsIm9mZnNldFdpZHRoIiwiZW5mb3JjZUZvY3VzIiwiZW11bGF0ZVRyYW5zaXRpb25FbmQiLCJwcmV2ZW50RGVmYXVsdCIsIm9mZiIsInJlbW92ZUNsYXNzIiwiaGlkZU1vZGFsIiwiaGFzIiwid2hpY2giLCJ3aW5kb3ciLCJoYW5kbGVVcGRhdGUiLCJyZXNldEFkanVzdG1lbnRzIiwicmVzZXRTY3JvbGxiYXIiLCJyZW1vdmVCYWNrZHJvcCIsInJlbW92ZSIsImNhbGxiYWNrIiwiYW5pbWF0ZSIsImRvQW5pbWF0ZSIsImNyZWF0ZUVsZW1lbnQiLCJjdXJyZW50VGFyZ2V0IiwiZm9jdXMiLCJjYWxsYmFja1JlbW92ZSIsIm1vZGFsSXNPdmVyZmxvd2luZyIsInNjcm9sbEhlaWdodCIsImRvY3VtZW50RWxlbWVudCIsImNsaWVudEhlaWdodCIsImNzcyIsInBhZGRpbmdMZWZ0IiwiYm9keUlzT3ZlcmZsb3dpbmciLCJwYWRkaW5nUmlnaHQiLCJmdWxsV2luZG93V2lkdGgiLCJpbm5lcldpZHRoIiwiZG9jdW1lbnRFbGVtZW50UmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsInJpZ2h0IiwiTWF0aCIsImFicyIsImxlZnQiLCJjbGllbnRXaWR0aCIsIm1lYXN1cmVTY3JvbGxiYXIiLCJib2R5UGFkIiwicGFyc2VJbnQiLCJzdHlsZSIsInNjcm9sbERpdiIsImNsYXNzTmFtZSIsImFwcGVuZCIsInJlbW92ZUNoaWxkIiwiUGx1Z2luIiwib3B0aW9uIiwiZWFjaCIsIiR0aGlzIiwiZGF0YSIsImV4dGVuZCIsIm9sZCIsIndwYmNfbXlfbW9kYWwiLCJDb25zdHJ1Y3RvciIsIm5vQ29uZmxpY3QiLCJocmVmIiwiYXR0ciIsIiR0YXJnZXQiLCJyZXBsYWNlIiwidGVzdCIsInNob3dFdmVudCIsImNhbGwiLCJEcm9wZG93biIsImdldFBhcmVudCIsInNlbGVjdG9yIiwiJHBhcmVudCIsImNsZWFyTWVudXMiLCJ0eXBlIiwidGFnTmFtZSIsImNvbnRhaW5zIiwiaXNBY3RpdmUiLCJjbG9zZXN0IiwiaW5zZXJ0QWZ0ZXIiLCJ0b2dnbGVDbGFzcyIsImtleWRvd24iLCJzdG9wUHJvcGFnYXRpb24iLCJkZXNjIiwiJGl0ZW1zIiwiaW5kZXgiLCJlcSIsIndwYmNfZHJvcGRvd24iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksT0FBT0EsTUFBUCxLQUFrQixXQUF0QixFQUFtQztBQUNqQyxRQUFNLElBQUlDLEtBQUosQ0FBVSx5Q0FBVixDQUFOO0FBQ0Q7O0FBQ0QsQ0FBQyxVQUFVQyxDQUFWLEVBQWE7QUFDWjs7QUFDQSxNQUFJQyxPQUFPLEdBQUdELENBQUMsQ0FBQ0UsRUFBRixDQUFLQyxNQUFMLENBQVlDLEtBQVosQ0FBa0IsR0FBbEIsRUFBdUIsQ0FBdkIsRUFBMEJBLEtBQTFCLENBQWdDLEdBQWhDLENBQWQ7O0FBQ0EsTUFBS0gsT0FBTyxDQUFDLENBQUQsQ0FBUCxHQUFhLENBQWIsSUFBa0JBLE9BQU8sQ0FBQyxDQUFELENBQVAsR0FBYSxDQUFoQyxJQUF1Q0EsT0FBTyxDQUFDLENBQUQsQ0FBUCxJQUFjLENBQWQsSUFBbUJBLE9BQU8sQ0FBQyxDQUFELENBQVAsSUFBYyxDQUFqQyxJQUFzQ0EsT0FBTyxDQUFDLENBQUQsQ0FBUCxHQUFhLENBQTlGLEVBQWtHO0FBQ2hHLFVBQU0sSUFBSUYsS0FBSixDQUFVLGlFQUFWLENBQU47QUFDRDtBQUNGLENBTkEsQ0FNQ0QsTUFORCxDQUFEO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBR0EsQ0FBQyxVQUFVRSxDQUFWLEVBQWE7QUFDWixlQURZLENBR1o7QUFDQTs7QUFFQSxNQUFJSyxLQUFLLEdBQUcsU0FBUkEsS0FBUSxDQUFVQyxPQUFWLEVBQW1CQyxPQUFuQixFQUE0QjtBQUN0QyxTQUFLQSxPQUFMLEdBQTJCQSxPQUEzQjtBQUNBLFNBQUtDLEtBQUwsR0FBMkJSLENBQUMsQ0FBQ1MsUUFBUSxDQUFDQyxJQUFWLENBQTVCO0FBQ0EsU0FBS0MsUUFBTCxHQUEyQlgsQ0FBQyxDQUFDTSxPQUFELENBQTVCO0FBQ0EsU0FBS00sT0FBTCxHQUEyQixLQUFLRCxRQUFMLENBQWNFLElBQWQsQ0FBbUIsZUFBbkIsQ0FBM0I7QUFDQSxTQUFLQyxTQUFMLEdBQTJCLElBQTNCO0FBQ0EsU0FBS0MsT0FBTCxHQUEyQixJQUEzQjtBQUNBLFNBQUtDLGVBQUwsR0FBMkIsSUFBM0I7QUFDQSxTQUFLQyxjQUFMLEdBQTJCLENBQTNCO0FBQ0EsU0FBS0MsbUJBQUwsR0FBMkIsS0FBM0I7O0FBRUEsUUFBSSxLQUFLWCxPQUFMLENBQWFZLE1BQWpCLEVBQXlCO0FBQ3ZCLFdBQUtSLFFBQUwsQ0FDR0UsSUFESCxDQUNRLGdCQURSLEVBRUdPLElBRkgsQ0FFUSxLQUFLYixPQUFMLENBQWFZLE1BRnJCLEVBRTZCbkIsQ0FBQyxDQUFDcUIsS0FBRixDQUFRLFlBQVk7QUFDN0MsYUFBS1YsUUFBTCxDQUFjVyxPQUFkLENBQXNCLG1CQUF0QjtBQUNELE9BRjBCLEVBRXhCLElBRndCLENBRjdCO0FBS0Q7QUFDRixHQWxCRDs7QUFvQkFqQixFQUFBQSxLQUFLLENBQUNrQixPQUFOLEdBQWlCLE9BQWpCO0FBRUFsQixFQUFBQSxLQUFLLENBQUNtQixtQkFBTixHQUE0QixHQUE1QjtBQUNBbkIsRUFBQUEsS0FBSyxDQUFDb0IsNEJBQU4sR0FBcUMsR0FBckM7QUFFQXBCLEVBQUFBLEtBQUssQ0FBQ3FCLFFBQU4sR0FBaUI7QUFDZkMsSUFBQUEsUUFBUSxFQUFFLElBREs7QUFFZkMsSUFBQUEsUUFBUSxFQUFFLElBRks7QUFHZkMsSUFBQUEsSUFBSSxFQUFFO0FBSFMsR0FBakI7O0FBTUF4QixFQUFBQSxLQUFLLENBQUN5QixTQUFOLENBQWdCQyxNQUFoQixHQUF5QixVQUFVQyxjQUFWLEVBQTBCO0FBQ2pELFdBQU8sS0FBS2pCLE9BQUwsR0FBZSxLQUFLa0IsSUFBTCxFQUFmLEdBQTZCLEtBQUtKLElBQUwsQ0FBVUcsY0FBVixDQUFwQztBQUNELEdBRkQ7O0FBSUEzQixFQUFBQSxLQUFLLENBQUN5QixTQUFOLENBQWdCRCxJQUFoQixHQUF1QixVQUFVRyxjQUFWLEVBQTBCO0FBQy9DLFFBQUlFLElBQUksR0FBRyxJQUFYO0FBQ0EsUUFBSUMsQ0FBQyxHQUFNbkMsQ0FBQyxDQUFDb0MsS0FBRixDQUFRLGlCQUFSLEVBQTJCO0FBQUVDLE1BQUFBLGFBQWEsRUFBRUw7QUFBakIsS0FBM0IsQ0FBWDtBQUVBLFNBQUtyQixRQUFMLENBQWNXLE9BQWQsQ0FBc0JhLENBQXRCO0FBRUEsUUFBSSxLQUFLcEIsT0FBTCxJQUFnQm9CLENBQUMsQ0FBQ0csa0JBQUYsRUFBcEIsRUFBNEM7QUFFNUMsU0FBS3ZCLE9BQUwsR0FBZSxJQUFmO0FBRUEsU0FBS3dCLGNBQUw7QUFDQSxTQUFLQyxZQUFMO0FBQ0EsU0FBS2hDLEtBQUwsQ0FBV2lDLFFBQVgsQ0FBb0IsWUFBcEI7QUFFQSxTQUFLQyxNQUFMO0FBQ0EsU0FBS0MsTUFBTDtBQUVBLFNBQUtoQyxRQUFMLENBQWNpQyxFQUFkLENBQWlCLDBCQUFqQixFQUE2Qyx3QkFBN0MsRUFBdUU1QyxDQUFDLENBQUNxQixLQUFGLENBQVEsS0FBS1ksSUFBYixFQUFtQixJQUFuQixDQUF2RTtBQUVBLFNBQUtyQixPQUFMLENBQWFnQyxFQUFiLENBQWdCLDhCQUFoQixFQUFnRCxZQUFZO0FBQzFEVixNQUFBQSxJQUFJLENBQUN2QixRQUFMLENBQWNrQyxHQUFkLENBQWtCLDRCQUFsQixFQUFnRCxVQUFVVixDQUFWLEVBQWE7QUFDM0QsWUFBSW5DLENBQUMsQ0FBQ21DLENBQUMsQ0FBQ1csTUFBSCxDQUFELENBQVlDLEVBQVosQ0FBZWIsSUFBSSxDQUFDdkIsUUFBcEIsQ0FBSixFQUFtQ3VCLElBQUksQ0FBQ2hCLG1CQUFMLEdBQTJCLElBQTNCO0FBQ3BDLE9BRkQ7QUFHRCxLQUpEO0FBTUEsU0FBS1MsUUFBTCxDQUFjLFlBQVk7QUFDeEIsVUFBSXFCLFVBQVUsR0FBR2hELENBQUMsQ0FBQ2lELE9BQUYsQ0FBVUQsVUFBVixJQUF3QmQsSUFBSSxDQUFDdkIsUUFBTCxDQUFjdUMsUUFBZCxDQUF1QixNQUF2QixDQUF6Qzs7QUFFQSxVQUFJLENBQUNoQixJQUFJLENBQUN2QixRQUFMLENBQWN3QyxNQUFkLEdBQXVCQyxNQUE1QixFQUFvQztBQUNsQ2xCLFFBQUFBLElBQUksQ0FBQ3ZCLFFBQUwsQ0FBYzBDLFFBQWQsQ0FBdUJuQixJQUFJLENBQUMxQixLQUE1QixFQURrQyxDQUNDO0FBQ3BDOztBQUVEMEIsTUFBQUEsSUFBSSxDQUFDdkIsUUFBTCxDQUNHa0IsSUFESCxHQUVHeUIsU0FGSCxDQUVhLENBRmI7QUFJQXBCLE1BQUFBLElBQUksQ0FBQ3FCLFlBQUw7O0FBRUEsVUFBSVAsVUFBSixFQUFnQjtBQUNkZCxRQUFBQSxJQUFJLENBQUN2QixRQUFMLENBQWMsQ0FBZCxFQUFpQjZDLFdBQWpCLENBRGMsQ0FDZTtBQUM5Qjs7QUFFRHRCLE1BQUFBLElBQUksQ0FBQ3ZCLFFBQUwsQ0FBYzhCLFFBQWQsQ0FBdUIsSUFBdkI7QUFFQVAsTUFBQUEsSUFBSSxDQUFDdUIsWUFBTDtBQUVBLFVBQUl0QixDQUFDLEdBQUduQyxDQUFDLENBQUNvQyxLQUFGLENBQVEsa0JBQVIsRUFBNEI7QUFBRUMsUUFBQUEsYUFBYSxFQUFFTDtBQUFqQixPQUE1QixDQUFSO0FBRUFnQixNQUFBQSxVQUFVLEdBQ1JkLElBQUksQ0FBQ3RCLE9BQUwsQ0FBYTtBQUFiLE9BQ0dpQyxHQURILENBQ08saUJBRFAsRUFDMEIsWUFBWTtBQUNsQ1gsUUFBQUEsSUFBSSxDQUFDdkIsUUFBTCxDQUFjVyxPQUFkLENBQXNCLE9BQXRCLEVBQStCQSxPQUEvQixDQUF1Q2EsQ0FBdkM7QUFDRCxPQUhILEVBSUd1QixvQkFKSCxDQUl3QnJELEtBQUssQ0FBQ21CLG1CQUo5QixDQURRLEdBTVJVLElBQUksQ0FBQ3ZCLFFBQUwsQ0FBY1csT0FBZCxDQUFzQixPQUF0QixFQUErQkEsT0FBL0IsQ0FBdUNhLENBQXZDLENBTkY7QUFPRCxLQTlCRDtBQStCRCxHQXhERDs7QUEwREE5QixFQUFBQSxLQUFLLENBQUN5QixTQUFOLENBQWdCRyxJQUFoQixHQUF1QixVQUFVRSxDQUFWLEVBQWE7QUFDbEMsUUFBSUEsQ0FBSixFQUFPQSxDQUFDLENBQUN3QixjQUFGO0FBRVB4QixJQUFBQSxDQUFDLEdBQUduQyxDQUFDLENBQUNvQyxLQUFGLENBQVEsaUJBQVIsQ0FBSjtBQUVBLFNBQUt6QixRQUFMLENBQWNXLE9BQWQsQ0FBc0JhLENBQXRCO0FBRUEsUUFBSSxDQUFDLEtBQUtwQixPQUFOLElBQWlCb0IsQ0FBQyxDQUFDRyxrQkFBRixFQUFyQixFQUE2QztBQUU3QyxTQUFLdkIsT0FBTCxHQUFlLEtBQWY7QUFFQSxTQUFLMkIsTUFBTDtBQUNBLFNBQUtDLE1BQUw7QUFFQTNDLElBQUFBLENBQUMsQ0FBQ1MsUUFBRCxDQUFELENBQVltRCxHQUFaLENBQWdCLG9CQUFoQjtBQUVBLFNBQUtqRCxRQUFMLENBQ0drRCxXQURILENBQ2UsSUFEZixFQUVHRCxHQUZILENBRU8sMEJBRlAsRUFHR0EsR0FISCxDQUdPLDRCQUhQO0FBS0EsU0FBS2hELE9BQUwsQ0FBYWdELEdBQWIsQ0FBaUIsOEJBQWpCO0FBRUE1RCxJQUFBQSxDQUFDLENBQUNpRCxPQUFGLENBQVVELFVBQVYsSUFBd0IsS0FBS3JDLFFBQUwsQ0FBY3VDLFFBQWQsQ0FBdUIsTUFBdkIsQ0FBeEIsR0FDRSxLQUFLdkMsUUFBTCxDQUNHa0MsR0FESCxDQUNPLGlCQURQLEVBQzBCN0MsQ0FBQyxDQUFDcUIsS0FBRixDQUFRLEtBQUt5QyxTQUFiLEVBQXdCLElBQXhCLENBRDFCLEVBRUdKLG9CQUZILENBRXdCckQsS0FBSyxDQUFDbUIsbUJBRjlCLENBREYsR0FJRSxLQUFLc0MsU0FBTCxFQUpGO0FBS0QsR0E1QkQ7O0FBOEJBekQsRUFBQUEsS0FBSyxDQUFDeUIsU0FBTixDQUFnQjJCLFlBQWhCLEdBQStCLFlBQVk7QUFDekN6RCxJQUFBQSxDQUFDLENBQUNTLFFBQUQsQ0FBRCxDQUNHbUQsR0FESCxDQUNPLG9CQURQLEVBQzZCO0FBRDdCLEtBRUdoQixFQUZILENBRU0sb0JBRk4sRUFFNEI1QyxDQUFDLENBQUNxQixLQUFGLENBQVEsVUFBVWMsQ0FBVixFQUFhO0FBQzdDLFVBQUksS0FBS3hCLFFBQUwsQ0FBYyxDQUFkLE1BQXFCd0IsQ0FBQyxDQUFDVyxNQUF2QixJQUFpQyxDQUFDLEtBQUtuQyxRQUFMLENBQWNvRCxHQUFkLENBQWtCNUIsQ0FBQyxDQUFDVyxNQUFwQixFQUE0Qk0sTUFBbEUsRUFBMEU7QUFDeEUsYUFBS3pDLFFBQUwsQ0FBY1csT0FBZCxDQUFzQixPQUF0QjtBQUNEO0FBQ0YsS0FKeUIsRUFJdkIsSUFKdUIsQ0FGNUI7QUFPRCxHQVJEOztBQVVBakIsRUFBQUEsS0FBSyxDQUFDeUIsU0FBTixDQUFnQlksTUFBaEIsR0FBeUIsWUFBWTtBQUNuQyxRQUFJLEtBQUszQixPQUFMLElBQWdCLEtBQUtSLE9BQUwsQ0FBYXFCLFFBQWpDLEVBQTJDO0FBQ3pDLFdBQUtqQixRQUFMLENBQWNpQyxFQUFkLENBQWlCLDRCQUFqQixFQUErQzVDLENBQUMsQ0FBQ3FCLEtBQUYsQ0FBUSxVQUFVYyxDQUFWLEVBQWE7QUFDbEVBLFFBQUFBLENBQUMsQ0FBQzZCLEtBQUYsSUFBVyxFQUFYLElBQWlCLEtBQUsvQixJQUFMLEVBQWpCO0FBQ0QsT0FGOEMsRUFFNUMsSUFGNEMsQ0FBL0M7QUFHRCxLQUpELE1BSU8sSUFBSSxDQUFDLEtBQUtsQixPQUFWLEVBQW1CO0FBQ3hCLFdBQUtKLFFBQUwsQ0FBY2lELEdBQWQsQ0FBa0IsNEJBQWxCO0FBQ0Q7QUFDRixHQVJEOztBQVVBdkQsRUFBQUEsS0FBSyxDQUFDeUIsU0FBTixDQUFnQmEsTUFBaEIsR0FBeUIsWUFBWTtBQUNuQyxRQUFJLEtBQUs1QixPQUFULEVBQWtCO0FBQ2hCZixNQUFBQSxDQUFDLENBQUNpRSxNQUFELENBQUQsQ0FBVXJCLEVBQVYsQ0FBYSxtQkFBYixFQUFrQzVDLENBQUMsQ0FBQ3FCLEtBQUYsQ0FBUSxLQUFLNkMsWUFBYixFQUEyQixJQUEzQixDQUFsQztBQUNELEtBRkQsTUFFTztBQUNMbEUsTUFBQUEsQ0FBQyxDQUFDaUUsTUFBRCxDQUFELENBQVVMLEdBQVYsQ0FBYyxtQkFBZDtBQUNEO0FBQ0YsR0FORDs7QUFRQXZELEVBQUFBLEtBQUssQ0FBQ3lCLFNBQU4sQ0FBZ0JnQyxTQUFoQixHQUE0QixZQUFZO0FBQ3RDLFFBQUk1QixJQUFJLEdBQUcsSUFBWDtBQUNBLFNBQUt2QixRQUFMLENBQWNzQixJQUFkO0FBQ0EsU0FBS04sUUFBTCxDQUFjLFlBQVk7QUFDeEJPLE1BQUFBLElBQUksQ0FBQzFCLEtBQUwsQ0FBV3FELFdBQVgsQ0FBdUIsWUFBdkI7QUFDQTNCLE1BQUFBLElBQUksQ0FBQ2lDLGdCQUFMO0FBQ0FqQyxNQUFBQSxJQUFJLENBQUNrQyxjQUFMO0FBQ0FsQyxNQUFBQSxJQUFJLENBQUN2QixRQUFMLENBQWNXLE9BQWQsQ0FBc0IsbUJBQXRCO0FBQ0QsS0FMRDtBQU1ELEdBVEQ7O0FBV0FqQixFQUFBQSxLQUFLLENBQUN5QixTQUFOLENBQWdCdUMsY0FBaEIsR0FBaUMsWUFBWTtBQUMzQyxTQUFLdkQsU0FBTCxJQUFrQixLQUFLQSxTQUFMLENBQWV3RCxNQUFmLEVBQWxCO0FBQ0EsU0FBS3hELFNBQUwsR0FBaUIsSUFBakI7QUFDRCxHQUhEOztBQUtBVCxFQUFBQSxLQUFLLENBQUN5QixTQUFOLENBQWdCSCxRQUFoQixHQUEyQixVQUFVNEMsUUFBVixFQUFvQjtBQUM3QyxRQUFJckMsSUFBSSxHQUFHLElBQVg7QUFDQSxRQUFJc0MsT0FBTyxHQUFHLEtBQUs3RCxRQUFMLENBQWN1QyxRQUFkLENBQXVCLE1BQXZCLElBQWlDLE1BQWpDLEdBQTBDLEVBQXhEOztBQUVBLFFBQUksS0FBS25DLE9BQUwsSUFBZ0IsS0FBS1IsT0FBTCxDQUFhb0IsUUFBakMsRUFBMkM7QUFDekMsVUFBSThDLFNBQVMsR0FBR3pFLENBQUMsQ0FBQ2lELE9BQUYsQ0FBVUQsVUFBVixJQUF3QndCLE9BQXhDO0FBRUEsV0FBSzFELFNBQUwsR0FBaUJkLENBQUMsQ0FBQ1MsUUFBUSxDQUFDaUUsYUFBVCxDQUF1QixLQUF2QixDQUFELENBQUQsQ0FDZGpDLFFBRGMsQ0FDTCxvQkFBb0IrQixPQURmLEVBRWRuQixRQUZjLENBRUwsS0FBSzdDLEtBRkEsQ0FBakI7QUFJQSxXQUFLRyxRQUFMLENBQWNpQyxFQUFkLENBQWlCLDBCQUFqQixFQUE2QzVDLENBQUMsQ0FBQ3FCLEtBQUYsQ0FBUSxVQUFVYyxDQUFWLEVBQWE7QUFDaEUsWUFBSSxLQUFLakIsbUJBQVQsRUFBOEI7QUFDNUIsZUFBS0EsbUJBQUwsR0FBMkIsS0FBM0I7QUFDQTtBQUNEOztBQUNELFlBQUlpQixDQUFDLENBQUNXLE1BQUYsS0FBYVgsQ0FBQyxDQUFDd0MsYUFBbkIsRUFBa0M7QUFDbEMsYUFBS3BFLE9BQUwsQ0FBYW9CLFFBQWIsSUFBeUIsUUFBekIsR0FDSSxLQUFLaEIsUUFBTCxDQUFjLENBQWQsRUFBaUJpRSxLQUFqQixFQURKLEdBRUksS0FBSzNDLElBQUwsRUFGSjtBQUdELE9BVDRDLEVBUzFDLElBVDBDLENBQTdDO0FBV0EsVUFBSXdDLFNBQUosRUFBZSxLQUFLM0QsU0FBTCxDQUFlLENBQWYsRUFBa0IwQyxXQUFsQixDQWxCMEIsQ0FrQkk7O0FBRTdDLFdBQUsxQyxTQUFMLENBQWUyQixRQUFmLENBQXdCLElBQXhCO0FBRUEsVUFBSSxDQUFDOEIsUUFBTCxFQUFlO0FBRWZFLE1BQUFBLFNBQVMsR0FDUCxLQUFLM0QsU0FBTCxDQUNHK0IsR0FESCxDQUNPLGlCQURQLEVBQzBCMEIsUUFEMUIsRUFFR2Isb0JBRkgsQ0FFd0JyRCxLQUFLLENBQUNvQiw0QkFGOUIsQ0FETyxHQUlQOEMsUUFBUSxFQUpWO0FBTUQsS0E5QkQsTUE4Qk8sSUFBSSxDQUFDLEtBQUt4RCxPQUFOLElBQWlCLEtBQUtELFNBQTFCLEVBQXFDO0FBQzFDLFdBQUtBLFNBQUwsQ0FBZStDLFdBQWYsQ0FBMkIsSUFBM0I7O0FBRUEsVUFBSWdCLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsR0FBWTtBQUMvQjNDLFFBQUFBLElBQUksQ0FBQ21DLGNBQUw7QUFDQUUsUUFBQUEsUUFBUSxJQUFJQSxRQUFRLEVBQXBCO0FBQ0QsT0FIRDs7QUFJQXZFLE1BQUFBLENBQUMsQ0FBQ2lELE9BQUYsQ0FBVUQsVUFBVixJQUF3QixLQUFLckMsUUFBTCxDQUFjdUMsUUFBZCxDQUF1QixNQUF2QixDQUF4QixHQUNFLEtBQUtwQyxTQUFMLENBQ0crQixHQURILENBQ08saUJBRFAsRUFDMEJnQyxjQUQxQixFQUVHbkIsb0JBRkgsQ0FFd0JyRCxLQUFLLENBQUNvQiw0QkFGOUIsQ0FERixHQUlFb0QsY0FBYyxFQUpoQjtBQU1ELEtBYk0sTUFhQSxJQUFJTixRQUFKLEVBQWM7QUFDbkJBLE1BQUFBLFFBQVE7QUFDVDtBQUNGLEdBbERELENBN0tZLENBaU9aOzs7QUFFQWxFLEVBQUFBLEtBQUssQ0FBQ3lCLFNBQU4sQ0FBZ0JvQyxZQUFoQixHQUErQixZQUFZO0FBQ3pDLFNBQUtYLFlBQUw7QUFDRCxHQUZEOztBQUlBbEQsRUFBQUEsS0FBSyxDQUFDeUIsU0FBTixDQUFnQnlCLFlBQWhCLEdBQStCLFlBQVk7QUFDekMsUUFBSXVCLGtCQUFrQixHQUFHLEtBQUtuRSxRQUFMLENBQWMsQ0FBZCxFQUFpQm9FLFlBQWpCLEdBQWdDdEUsUUFBUSxDQUFDdUUsZUFBVCxDQUF5QkMsWUFBbEY7QUFFQSxTQUFLdEUsUUFBTCxDQUFjdUUsR0FBZCxDQUFrQjtBQUNoQkMsTUFBQUEsV0FBVyxFQUFHLENBQUMsS0FBS0MsaUJBQU4sSUFBMkJOLGtCQUEzQixHQUFnRCxLQUFLN0QsY0FBckQsR0FBc0UsRUFEcEU7QUFFaEJvRSxNQUFBQSxZQUFZLEVBQUUsS0FBS0QsaUJBQUwsSUFBMEIsQ0FBQ04sa0JBQTNCLEdBQWdELEtBQUs3RCxjQUFyRCxHQUFzRTtBQUZwRSxLQUFsQjtBQUlELEdBUEQ7O0FBU0FaLEVBQUFBLEtBQUssQ0FBQ3lCLFNBQU4sQ0FBZ0JxQyxnQkFBaEIsR0FBbUMsWUFBWTtBQUM3QyxTQUFLeEQsUUFBTCxDQUFjdUUsR0FBZCxDQUFrQjtBQUNoQkMsTUFBQUEsV0FBVyxFQUFFLEVBREc7QUFFaEJFLE1BQUFBLFlBQVksRUFBRTtBQUZFLEtBQWxCO0FBSUQsR0FMRDs7QUFPQWhGLEVBQUFBLEtBQUssQ0FBQ3lCLFNBQU4sQ0FBZ0JTLGNBQWhCLEdBQWlDLFlBQVk7QUFDM0MsUUFBSStDLGVBQWUsR0FBR3JCLE1BQU0sQ0FBQ3NCLFVBQTdCOztBQUNBLFFBQUksQ0FBQ0QsZUFBTCxFQUFzQjtBQUFFO0FBQ3RCLFVBQUlFLG1CQUFtQixHQUFHL0UsUUFBUSxDQUFDdUUsZUFBVCxDQUF5QlMscUJBQXpCLEVBQTFCO0FBQ0FILE1BQUFBLGVBQWUsR0FBR0UsbUJBQW1CLENBQUNFLEtBQXBCLEdBQTRCQyxJQUFJLENBQUNDLEdBQUwsQ0FBU0osbUJBQW1CLENBQUNLLElBQTdCLENBQTlDO0FBQ0Q7O0FBQ0QsU0FBS1QsaUJBQUwsR0FBeUIzRSxRQUFRLENBQUNDLElBQVQsQ0FBY29GLFdBQWQsR0FBNEJSLGVBQXJEO0FBQ0EsU0FBS3JFLGNBQUwsR0FBc0IsS0FBSzhFLGdCQUFMLEVBQXRCO0FBQ0QsR0FSRDs7QUFVQTFGLEVBQUFBLEtBQUssQ0FBQ3lCLFNBQU4sQ0FBZ0JVLFlBQWhCLEdBQStCLFlBQVk7QUFDekMsUUFBSXdELE9BQU8sR0FBR0MsUUFBUSxDQUFFLEtBQUt6RixLQUFMLENBQVcwRSxHQUFYLENBQWUsZUFBZixLQUFtQyxDQUFyQyxFQUF5QyxFQUF6QyxDQUF0QjtBQUNBLFNBQUtsRSxlQUFMLEdBQXVCUCxRQUFRLENBQUNDLElBQVQsQ0FBY3dGLEtBQWQsQ0FBb0JiLFlBQXBCLElBQW9DLEVBQTNEO0FBQ0EsUUFBSSxLQUFLRCxpQkFBVCxFQUE0QixLQUFLNUUsS0FBTCxDQUFXMEUsR0FBWCxDQUFlLGVBQWYsRUFBZ0NjLE9BQU8sR0FBRyxLQUFLL0UsY0FBL0M7QUFDN0IsR0FKRDs7QUFNQVosRUFBQUEsS0FBSyxDQUFDeUIsU0FBTixDQUFnQnNDLGNBQWhCLEdBQWlDLFlBQVk7QUFDM0MsU0FBSzVELEtBQUwsQ0FBVzBFLEdBQVgsQ0FBZSxlQUFmLEVBQWdDLEtBQUtsRSxlQUFyQztBQUNELEdBRkQ7O0FBSUFYLEVBQUFBLEtBQUssQ0FBQ3lCLFNBQU4sQ0FBZ0JpRSxnQkFBaEIsR0FBbUMsWUFBWTtBQUFFO0FBQy9DLFFBQUlJLFNBQVMsR0FBRzFGLFFBQVEsQ0FBQ2lFLGFBQVQsQ0FBdUIsS0FBdkIsQ0FBaEI7QUFDQXlCLElBQUFBLFNBQVMsQ0FBQ0MsU0FBVixHQUFzQix5QkFBdEI7QUFDQSxTQUFLNUYsS0FBTCxDQUFXNkYsTUFBWCxDQUFrQkYsU0FBbEI7QUFDQSxRQUFJbEYsY0FBYyxHQUFHa0YsU0FBUyxDQUFDM0MsV0FBVixHQUF3QjJDLFNBQVMsQ0FBQ0wsV0FBdkQ7QUFDQSxTQUFLdEYsS0FBTCxDQUFXLENBQVgsRUFBYzhGLFdBQWQsQ0FBMEJILFNBQTFCO0FBQ0EsV0FBT2xGLGNBQVA7QUFDRCxHQVBELENBM1FZLENBcVJaO0FBQ0E7OztBQUVBLFdBQVNzRixNQUFULENBQWdCQyxNQUFoQixFQUF3QnhFLGNBQXhCLEVBQXdDO0FBQ3RDLFdBQU8sS0FBS3lFLElBQUwsQ0FBVSxZQUFZO0FBQzNCLFVBQUlDLEtBQUssR0FBSzFHLENBQUMsQ0FBQyxJQUFELENBQWY7QUFDQSxVQUFJMkcsSUFBSSxHQUFNRCxLQUFLLENBQUNDLElBQU4sQ0FBVyxZQUFYLENBQWQ7QUFDQSxVQUFJcEcsT0FBTyxHQUFHUCxDQUFDLENBQUM0RyxNQUFGLENBQVMsRUFBVCxFQUFhdkcsS0FBSyxDQUFDcUIsUUFBbkIsRUFBNkJnRixLQUFLLENBQUNDLElBQU4sRUFBN0IsRUFBMkMsUUFBT0gsTUFBUCxLQUFpQixRQUFqQixJQUE2QkEsTUFBeEUsQ0FBZDtBQUVBLFVBQUksQ0FBQ0csSUFBTCxFQUFXRCxLQUFLLENBQUNDLElBQU4sQ0FBVyxZQUFYLEVBQTBCQSxJQUFJLEdBQUcsSUFBSXRHLEtBQUosQ0FBVSxJQUFWLEVBQWdCRSxPQUFoQixDQUFqQztBQUNYLFVBQUksT0FBT2lHLE1BQVAsSUFBaUIsUUFBckIsRUFBK0JHLElBQUksQ0FBQ0gsTUFBRCxDQUFKLENBQWF4RSxjQUFiLEVBQS9CLEtBQ0ssSUFBSXpCLE9BQU8sQ0FBQ3NCLElBQVosRUFBa0I4RSxJQUFJLENBQUM5RSxJQUFMLENBQVVHLGNBQVY7QUFDeEIsS0FSTSxDQUFQO0FBU0Q7O0FBRUQsTUFBSTZFLEdBQUcsR0FBRzdHLENBQUMsQ0FBQ0UsRUFBRixDQUFLNEcsYUFBZjtBQUVBOUcsRUFBQUEsQ0FBQyxDQUFDRSxFQUFGLENBQUs0RyxhQUFMLEdBQWlDUCxNQUFqQztBQUNBdkcsRUFBQUEsQ0FBQyxDQUFDRSxFQUFGLENBQUs0RyxhQUFMLENBQW1CQyxXQUFuQixHQUFpQzFHLEtBQWpDLENBdlNZLENBMFNaO0FBQ0E7O0FBRUFMLEVBQUFBLENBQUMsQ0FBQ0UsRUFBRixDQUFLNEcsYUFBTCxDQUFtQkUsVUFBbkIsR0FBZ0MsWUFBWTtBQUMxQ2hILElBQUFBLENBQUMsQ0FBQ0UsRUFBRixDQUFLNEcsYUFBTCxHQUFxQkQsR0FBckI7QUFDQSxXQUFPLElBQVA7QUFDRCxHQUhELENBN1NZLENBbVRaO0FBQ0E7OztBQUVBN0csRUFBQUEsQ0FBQyxDQUFDUyxRQUFELENBQUQsQ0FBWW1DLEVBQVosQ0FBZSwyQkFBZixFQUE0QywrQkFBNUMsRUFBNkUsVUFBVVQsQ0FBVixFQUFhO0FBQ3hGLFFBQUl1RSxLQUFLLEdBQUsxRyxDQUFDLENBQUMsSUFBRCxDQUFmO0FBQ0EsUUFBSWlILElBQUksR0FBTVAsS0FBSyxDQUFDUSxJQUFOLENBQVcsTUFBWCxDQUFkO0FBQ0EsUUFBSUMsT0FBTyxHQUFHbkgsQ0FBQyxDQUFDMEcsS0FBSyxDQUFDUSxJQUFOLENBQVcsYUFBWCxLQUE4QkQsSUFBSSxJQUFJQSxJQUFJLENBQUNHLE9BQUwsQ0FBYSxnQkFBYixFQUErQixFQUEvQixDQUF2QyxDQUFmLENBSHdGLENBR0c7O0FBQzNGLFFBQUlaLE1BQU0sR0FBSVcsT0FBTyxDQUFDUixJQUFSLENBQWEsWUFBYixJQUE2QixRQUE3QixHQUF3QzNHLENBQUMsQ0FBQzRHLE1BQUYsQ0FBUztBQUFFekYsTUFBQUEsTUFBTSxFQUFFLENBQUMsSUFBSWtHLElBQUosQ0FBU0osSUFBVCxDQUFELElBQW1CQTtBQUE3QixLQUFULEVBQThDRSxPQUFPLENBQUNSLElBQVIsRUFBOUMsRUFBOERELEtBQUssQ0FBQ0MsSUFBTixFQUE5RCxDQUF0RDtBQUVBLFFBQUlELEtBQUssQ0FBQzNELEVBQU4sQ0FBUyxHQUFULENBQUosRUFBbUJaLENBQUMsQ0FBQ3dCLGNBQUY7QUFFbkJ3RCxJQUFBQSxPQUFPLENBQUN0RSxHQUFSLENBQVksaUJBQVosRUFBK0IsVUFBVXlFLFNBQVYsRUFBcUI7QUFDbEQsVUFBSUEsU0FBUyxDQUFDaEYsa0JBQVYsRUFBSixFQUFvQyxPQURjLENBQ1A7O0FBQzNDNkUsTUFBQUEsT0FBTyxDQUFDdEUsR0FBUixDQUFZLG1CQUFaLEVBQWlDLFlBQVk7QUFDM0M2RCxRQUFBQSxLQUFLLENBQUMzRCxFQUFOLENBQVMsVUFBVCxLQUF3QjJELEtBQUssQ0FBQ3BGLE9BQU4sQ0FBYyxPQUFkLENBQXhCO0FBQ0QsT0FGRDtBQUdELEtBTEQ7QUFNQWlGLElBQUFBLE1BQU0sQ0FBQ2dCLElBQVAsQ0FBWUosT0FBWixFQUFxQlgsTUFBckIsRUFBNkIsSUFBN0I7QUFDRCxHQWZEO0FBaUJELENBdlVBLENBdVVDMUcsTUF2VUQsQ0FBRDtBQTBVQSxDQUFDLFVBQVVFLENBQVYsRUFBYTtBQUNaLGVBRFksQ0FHWjtBQUNBOztBQUVBLE1BQUkyQixRQUFRLEdBQUcsb0JBQWY7QUFDQSxNQUFJSSxNQUFNLEdBQUssK0JBQWY7O0FBQ0EsTUFBSXlGLFFBQVEsR0FBRyxTQUFYQSxRQUFXLENBQVVsSCxPQUFWLEVBQW1CO0FBQ2hDTixJQUFBQSxDQUFDLENBQUNNLE9BQUQsQ0FBRCxDQUFXc0MsRUFBWCxDQUFjLHFCQUFkLEVBQXFDLEtBQUtiLE1BQTFDO0FBQ0QsR0FGRDs7QUFJQXlGLEVBQUFBLFFBQVEsQ0FBQ2pHLE9BQVQsR0FBbUIsT0FBbkI7O0FBRUEsV0FBU2tHLFNBQVQsQ0FBbUJmLEtBQW5CLEVBQTBCO0FBQ3hCLFFBQUlnQixRQUFRLEdBQUdoQixLQUFLLENBQUNRLElBQU4sQ0FBVyxhQUFYLENBQWY7O0FBRUEsUUFBSSxDQUFDUSxRQUFMLEVBQWU7QUFDYkEsTUFBQUEsUUFBUSxHQUFHaEIsS0FBSyxDQUFDUSxJQUFOLENBQVcsTUFBWCxDQUFYO0FBQ0FRLE1BQUFBLFFBQVEsR0FBR0EsUUFBUSxJQUFJLFlBQVlMLElBQVosQ0FBaUJLLFFBQWpCLENBQVosSUFBMENBLFFBQVEsQ0FBQ04sT0FBVCxDQUFpQixnQkFBakIsRUFBbUMsRUFBbkMsQ0FBckQsQ0FGYSxDQUUrRTtBQUM3Rjs7QUFFRCxRQUFJTyxPQUFPLEdBQUdELFFBQVEsSUFBSTFILENBQUMsQ0FBQzBILFFBQUQsQ0FBM0I7QUFFQSxXQUFPQyxPQUFPLElBQUlBLE9BQU8sQ0FBQ3ZFLE1BQW5CLEdBQTRCdUUsT0FBNUIsR0FBc0NqQixLQUFLLENBQUN2RCxNQUFOLEVBQTdDO0FBQ0Q7O0FBRUQsV0FBU3lFLFVBQVQsQ0FBb0J6RixDQUFwQixFQUF1QjtBQUNyQixRQUFJQSxDQUFDLElBQUlBLENBQUMsQ0FBQzZCLEtBQUYsS0FBWSxDQUFyQixFQUF3QjtBQUN4QmhFLElBQUFBLENBQUMsQ0FBQzJCLFFBQUQsQ0FBRCxDQUFZMkMsTUFBWjtBQUNBdEUsSUFBQUEsQ0FBQyxDQUFDK0IsTUFBRCxDQUFELENBQVUwRSxJQUFWLENBQWUsWUFBWTtBQUN6QixVQUFJQyxLQUFLLEdBQVcxRyxDQUFDLENBQUMsSUFBRCxDQUFyQjtBQUNBLFVBQUkySCxPQUFPLEdBQVNGLFNBQVMsQ0FBQ2YsS0FBRCxDQUE3QjtBQUNBLFVBQUlyRSxhQUFhLEdBQUc7QUFBRUEsUUFBQUEsYUFBYSxFQUFFO0FBQWpCLE9BQXBCO0FBRUEsVUFBSSxDQUFDc0YsT0FBTyxDQUFDekUsUUFBUixDQUFpQixNQUFqQixDQUFMLEVBQStCO0FBRS9CLFVBQUlmLENBQUMsSUFBSUEsQ0FBQyxDQUFDMEYsSUFBRixJQUFVLE9BQWYsSUFBMEIsa0JBQWtCUixJQUFsQixDQUF1QmxGLENBQUMsQ0FBQ1csTUFBRixDQUFTZ0YsT0FBaEMsQ0FBMUIsSUFBc0U5SCxDQUFDLENBQUMrSCxRQUFGLENBQVdKLE9BQU8sQ0FBQyxDQUFELENBQWxCLEVBQXVCeEYsQ0FBQyxDQUFDVyxNQUF6QixDQUExRSxFQUE0RztBQUU1RzZFLE1BQUFBLE9BQU8sQ0FBQ3JHLE9BQVIsQ0FBZ0JhLENBQUMsR0FBR25DLENBQUMsQ0FBQ29DLEtBQUYsQ0FBUSxvQkFBUixFQUE4QkMsYUFBOUIsQ0FBcEI7QUFFQSxVQUFJRixDQUFDLENBQUNHLGtCQUFGLEVBQUosRUFBNEI7QUFFNUJvRSxNQUFBQSxLQUFLLENBQUNRLElBQU4sQ0FBVyxlQUFYLEVBQTRCLE9BQTVCO0FBQ0FTLE1BQUFBLE9BQU8sQ0FBQzlELFdBQVIsQ0FBb0IsTUFBcEIsRUFBNEJ2QyxPQUE1QixDQUFvQyxzQkFBcEMsRUFBNERlLGFBQTVEO0FBQ0QsS0FmRDtBQWdCRDs7QUFFRG1GLEVBQUFBLFFBQVEsQ0FBQzFGLFNBQVQsQ0FBbUJDLE1BQW5CLEdBQTRCLFVBQVVJLENBQVYsRUFBYTtBQUN2QyxRQUFJdUUsS0FBSyxHQUFHMUcsQ0FBQyxDQUFDLElBQUQsQ0FBYjtBQUVBLFFBQUkwRyxLQUFLLENBQUMzRCxFQUFOLENBQVMsc0JBQVQsQ0FBSixFQUFzQztBQUV0QyxRQUFJNEUsT0FBTyxHQUFJRixTQUFTLENBQUNmLEtBQUQsQ0FBeEI7QUFDQSxRQUFJc0IsUUFBUSxHQUFHTCxPQUFPLENBQUN6RSxRQUFSLENBQWlCLE1BQWpCLENBQWY7QUFFQTBFLElBQUFBLFVBQVU7O0FBRVYsUUFBSSxDQUFDSSxRQUFMLEVBQWU7QUFDYixVQUFJLGtCQUFrQnZILFFBQVEsQ0FBQ3VFLGVBQTNCLElBQThDLENBQUMyQyxPQUFPLENBQUNNLE9BQVIsQ0FBZ0IsYUFBaEIsRUFBK0I3RSxNQUFsRixFQUEwRjtBQUN4RjtBQUNBcEQsUUFBQUEsQ0FBQyxDQUFDUyxRQUFRLENBQUNpRSxhQUFULENBQXVCLEtBQXZCLENBQUQsQ0FBRCxDQUNHakMsUUFESCxDQUNZLG1CQURaLEVBRUd5RixXQUZILENBRWVsSSxDQUFDLENBQUMsSUFBRCxDQUZoQixFQUdHNEMsRUFISCxDQUdNLE9BSE4sRUFHZWdGLFVBSGY7QUFJRDs7QUFFRCxVQUFJdkYsYUFBYSxHQUFHO0FBQUVBLFFBQUFBLGFBQWEsRUFBRTtBQUFqQixPQUFwQjtBQUNBc0YsTUFBQUEsT0FBTyxDQUFDckcsT0FBUixDQUFnQmEsQ0FBQyxHQUFHbkMsQ0FBQyxDQUFDb0MsS0FBRixDQUFRLG9CQUFSLEVBQThCQyxhQUE5QixDQUFwQjtBQUVBLFVBQUlGLENBQUMsQ0FBQ0csa0JBQUYsRUFBSixFQUE0QjtBQUU1Qm9FLE1BQUFBLEtBQUssQ0FDRnBGLE9BREgsQ0FDVyxPQURYLEVBRUc0RixJQUZILENBRVEsZUFGUixFQUV5QixNQUZ6QjtBQUlBUyxNQUFBQSxPQUFPLENBQ0pRLFdBREgsQ0FDZSxNQURmLEVBRUc3RyxPQUZILENBRVcscUJBRlgsRUFFa0NlLGFBRmxDO0FBR0Q7O0FBRUQsV0FBTyxLQUFQO0FBQ0QsR0FsQ0Q7O0FBb0NBbUYsRUFBQUEsUUFBUSxDQUFDMUYsU0FBVCxDQUFtQnNHLE9BQW5CLEdBQTZCLFVBQVVqRyxDQUFWLEVBQWE7QUFDeEMsUUFBSSxDQUFDLGdCQUFnQmtGLElBQWhCLENBQXFCbEYsQ0FBQyxDQUFDNkIsS0FBdkIsQ0FBRCxJQUFrQyxrQkFBa0JxRCxJQUFsQixDQUF1QmxGLENBQUMsQ0FBQ1csTUFBRixDQUFTZ0YsT0FBaEMsQ0FBdEMsRUFBZ0Y7QUFFaEYsUUFBSXBCLEtBQUssR0FBRzFHLENBQUMsQ0FBQyxJQUFELENBQWI7QUFFQW1DLElBQUFBLENBQUMsQ0FBQ3dCLGNBQUY7QUFDQXhCLElBQUFBLENBQUMsQ0FBQ2tHLGVBQUY7QUFFQSxRQUFJM0IsS0FBSyxDQUFDM0QsRUFBTixDQUFTLHNCQUFULENBQUosRUFBc0M7QUFFdEMsUUFBSTRFLE9BQU8sR0FBSUYsU0FBUyxDQUFDZixLQUFELENBQXhCO0FBQ0EsUUFBSXNCLFFBQVEsR0FBR0wsT0FBTyxDQUFDekUsUUFBUixDQUFpQixNQUFqQixDQUFmOztBQUVBLFFBQUksQ0FBQzhFLFFBQUQsSUFBYTdGLENBQUMsQ0FBQzZCLEtBQUYsSUFBVyxFQUF4QixJQUE4QmdFLFFBQVEsSUFBSTdGLENBQUMsQ0FBQzZCLEtBQUYsSUFBVyxFQUF6RCxFQUE2RDtBQUMzRCxVQUFJN0IsQ0FBQyxDQUFDNkIsS0FBRixJQUFXLEVBQWYsRUFBbUIyRCxPQUFPLENBQUM5RyxJQUFSLENBQWFrQixNQUFiLEVBQXFCVCxPQUFyQixDQUE2QixPQUE3QjtBQUNuQixhQUFPb0YsS0FBSyxDQUFDcEYsT0FBTixDQUFjLE9BQWQsQ0FBUDtBQUNEOztBQUVELFFBQUlnSCxJQUFJLEdBQUcsOEJBQVg7QUFDQSxRQUFJQyxNQUFNLEdBQUdaLE9BQU8sQ0FBQzlHLElBQVIsQ0FBYSxtQkFBbUJ5SCxJQUFoQyxDQUFiO0FBRUEsUUFBSSxDQUFDQyxNQUFNLENBQUNuRixNQUFaLEVBQW9CO0FBRXBCLFFBQUlvRixLQUFLLEdBQUdELE1BQU0sQ0FBQ0MsS0FBUCxDQUFhckcsQ0FBQyxDQUFDVyxNQUFmLENBQVo7QUFFQSxRQUFJWCxDQUFDLENBQUM2QixLQUFGLElBQVcsRUFBWCxJQUFpQndFLEtBQUssR0FBRyxDQUE3QixFQUFnREEsS0FBSyxHQXpCYixDQXlCd0I7O0FBQ2hFLFFBQUlyRyxDQUFDLENBQUM2QixLQUFGLElBQVcsRUFBWCxJQUFpQndFLEtBQUssR0FBR0QsTUFBTSxDQUFDbkYsTUFBUCxHQUFnQixDQUE3QyxFQUFnRG9GLEtBQUssR0ExQmIsQ0EwQndCOztBQUNoRSxRQUFJLENBQUMsQ0FBQ0EsS0FBTixFQUFnREEsS0FBSyxHQUFHLENBQVI7QUFFaERELElBQUFBLE1BQU0sQ0FBQ0UsRUFBUCxDQUFVRCxLQUFWLEVBQWlCbEgsT0FBakIsQ0FBeUIsT0FBekI7QUFDRCxHQTlCRCxDQXBGWSxDQXFIWjtBQUNBOzs7QUFFQSxXQUFTaUYsTUFBVCxDQUFnQkMsTUFBaEIsRUFBd0I7QUFDdEIsV0FBTyxLQUFLQyxJQUFMLENBQVUsWUFBWTtBQUMzQixVQUFJQyxLQUFLLEdBQUcxRyxDQUFDLENBQUMsSUFBRCxDQUFiO0FBQ0EsVUFBSTJHLElBQUksR0FBSUQsS0FBSyxDQUFDQyxJQUFOLENBQVcsZUFBWCxDQUFaO0FBRUEsVUFBSSxDQUFDQSxJQUFMLEVBQVdELEtBQUssQ0FBQ0MsSUFBTixDQUFXLGVBQVgsRUFBNkJBLElBQUksR0FBRyxJQUFJYSxRQUFKLENBQWEsSUFBYixDQUFwQztBQUNYLFVBQUksT0FBT2hCLE1BQVAsSUFBaUIsUUFBckIsRUFBK0JHLElBQUksQ0FBQ0gsTUFBRCxDQUFKLENBQWFlLElBQWIsQ0FBa0JiLEtBQWxCO0FBQ2hDLEtBTk0sQ0FBUDtBQU9EOztBQUVELE1BQUlHLEdBQUcsR0FBRzdHLENBQUMsQ0FBQ0UsRUFBRixDQUFLd0ksYUFBZjtBQUVBMUksRUFBQUEsQ0FBQyxDQUFDRSxFQUFGLENBQUt3SSxhQUFMLEdBQWlDbkMsTUFBakM7QUFDQXZHLEVBQUFBLENBQUMsQ0FBQ0UsRUFBRixDQUFLd0ksYUFBTCxDQUFtQjNCLFdBQW5CLEdBQWlDUyxRQUFqQyxDQXJJWSxDQXdJWjtBQUNBOztBQUVBeEgsRUFBQUEsQ0FBQyxDQUFDRSxFQUFGLENBQUt3SSxhQUFMLENBQW1CMUIsVUFBbkIsR0FBZ0MsWUFBWTtBQUMxQ2hILElBQUFBLENBQUMsQ0FBQ0UsRUFBRixDQUFLd0ksYUFBTCxHQUFxQjdCLEdBQXJCO0FBQ0EsV0FBTyxJQUFQO0FBQ0QsR0FIRCxDQTNJWSxDQWlKWjtBQUNBOzs7QUFFQTdHLEVBQUFBLENBQUMsQ0FBQ1MsUUFBRCxDQUFELENBQ0dtQyxFQURILENBQ00sOEJBRE4sRUFDc0NnRixVQUR0QyxFQUVHaEYsRUFGSCxDQUVNLDhCQUZOLEVBRXNDLGdCQUZ0QyxFQUV3RCxVQUFVVCxDQUFWLEVBQWE7QUFBRUEsSUFBQUEsQ0FBQyxDQUFDa0csZUFBRjtBQUFxQixHQUY1RixFQUdHekYsRUFISCxDQUdNLDhCQUhOLEVBR3NDYixNQUh0QyxFQUc4Q3lGLFFBQVEsQ0FBQzFGLFNBQVQsQ0FBbUJDLE1BSGpFLEVBSUdhLEVBSkgsQ0FJTSxnQ0FKTixFQUl3Q2IsTUFKeEMsRUFJZ0R5RixRQUFRLENBQUMxRixTQUFULENBQW1Cc0csT0FKbkUsRUFLR3hGLEVBTEgsQ0FLTSxnQ0FMTixFQUt3QyxnQkFMeEMsRUFLMEQ0RSxRQUFRLENBQUMxRixTQUFULENBQW1Cc0csT0FMN0U7QUFPRCxDQTNKQSxDQTJKQ3RJLE1BM0pELENBQUQiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcclxuICogR2VuZXJhdGVkIHVzaW5nIHRoZSBCb290c3RyYXAgQ3VzdG9taXplciAoaHR0cDovL2dldGJvb3RzdHJhcC5jb20vY3VzdG9taXplLz9pZD1mNGI0YzljYjg1ZGY3NTdjYTA4YylcclxuICogQ29uZmlnIHNhdmVkIHRvIGNvbmZpZy5qc29uIGFuZCBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9mNGI0YzljYjg1ZGY3NTdjYTA4Y1xyXG4gKi9cclxuaWYgKHR5cGVvZiBqUXVlcnkgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgdGhyb3cgbmV3IEVycm9yKCdCb290c3RyYXBcXCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5JylcclxufVxyXG4rZnVuY3Rpb24gKCQpIHtcclxuICAndXNlIHN0cmljdCc7XHJcbiAgdmFyIHZlcnNpb24gPSAkLmZuLmpxdWVyeS5zcGxpdCgnICcpWzBdLnNwbGl0KCcuJylcclxuICBpZiAoKHZlcnNpb25bMF0gPCAyICYmIHZlcnNpb25bMV0gPCA5KSB8fCAodmVyc2lvblswXSA9PSAxICYmIHZlcnNpb25bMV0gPT0gOSAmJiB2ZXJzaW9uWzJdIDwgMSkpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcignQm9vdHN0cmFwXFwncyBKYXZhU2NyaXB0IHJlcXVpcmVzIGpRdWVyeSB2ZXJzaW9uIDEuOS4xIG9yIGhpZ2hlcicpXHJcbiAgfVxyXG59KGpRdWVyeSk7XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogQm9vdHN0cmFwOiBtb2RhbC5qcyB2My4zLjVcclxuICogaHR0cDovL2dldGJvb3RzdHJhcC5jb20vamF2YXNjcmlwdC8jbW9kYWxzXHJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gKiBDb3B5cmlnaHQgMjAxMS0yMDE1IFR3aXR0ZXIsIEluYy5cclxuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYXN0ZXIvTElDRU5TRSlcclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5cclxuK2Z1bmN0aW9uICgkKSB7XHJcbiAgJ3VzZSBzdHJpY3QnO1xyXG5cclxuICAvLyBNT0RBTCBDTEFTUyBERUZJTklUSU9OXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuICB2YXIgTW9kYWwgPSBmdW5jdGlvbiAoZWxlbWVudCwgb3B0aW9ucykge1xyXG4gICAgdGhpcy5vcHRpb25zICAgICAgICAgICAgID0gb3B0aW9uc1xyXG4gICAgdGhpcy4kYm9keSAgICAgICAgICAgICAgID0gJChkb2N1bWVudC5ib2R5KVxyXG4gICAgdGhpcy4kZWxlbWVudCAgICAgICAgICAgID0gJChlbGVtZW50KVxyXG4gICAgdGhpcy4kZGlhbG9nICAgICAgICAgICAgID0gdGhpcy4kZWxlbWVudC5maW5kKCcubW9kYWwtZGlhbG9nJylcclxuICAgIHRoaXMuJGJhY2tkcm9wICAgICAgICAgICA9IG51bGxcclxuICAgIHRoaXMuaXNTaG93biAgICAgICAgICAgICA9IG51bGxcclxuICAgIHRoaXMub3JpZ2luYWxCb2R5UGFkICAgICA9IG51bGxcclxuICAgIHRoaXMuc2Nyb2xsYmFyV2lkdGggICAgICA9IDBcclxuICAgIHRoaXMuaWdub3JlQmFja2Ryb3BDbGljayA9IGZhbHNlXHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5yZW1vdGUpIHtcclxuICAgICAgdGhpcy4kZWxlbWVudFxyXG4gICAgICAgIC5maW5kKCcubW9kYWwtY29udGVudCcpXHJcbiAgICAgICAgLmxvYWQodGhpcy5vcHRpb25zLnJlbW90ZSwgJC5wcm94eShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICB0aGlzLiRlbGVtZW50LnRyaWdnZXIoJ2xvYWRlZC53cGJjLm1vZGFsJylcclxuICAgICAgICB9LCB0aGlzKSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIE1vZGFsLlZFUlNJT04gID0gJzMuMy41J1xyXG5cclxuICBNb2RhbC5UUkFOU0lUSU9OX0RVUkFUSU9OID0gMzAwXHJcbiAgTW9kYWwuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTiA9IDE1MFxyXG5cclxuICBNb2RhbC5ERUZBVUxUUyA9IHtcclxuICAgIGJhY2tkcm9wOiB0cnVlLFxyXG4gICAga2V5Ym9hcmQ6IHRydWUsXHJcbiAgICBzaG93OiB0cnVlXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUudG9nZ2xlID0gZnVuY3Rpb24gKF9yZWxhdGVkVGFyZ2V0KSB7XHJcbiAgICByZXR1cm4gdGhpcy5pc1Nob3duID8gdGhpcy5oaWRlKCkgOiB0aGlzLnNob3coX3JlbGF0ZWRUYXJnZXQpXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uIChfcmVsYXRlZFRhcmdldCkge1xyXG4gICAgdmFyIHRoYXQgPSB0aGlzXHJcbiAgICB2YXIgZSAgICA9ICQuRXZlbnQoJ3Nob3cud3BiYy5tb2RhbCcsIHsgcmVsYXRlZFRhcmdldDogX3JlbGF0ZWRUYXJnZXQgfSlcclxuXHJcbiAgICB0aGlzLiRlbGVtZW50LnRyaWdnZXIoZSlcclxuXHJcbiAgICBpZiAodGhpcy5pc1Nob3duIHx8IGUuaXNEZWZhdWx0UHJldmVudGVkKCkpIHJldHVyblxyXG5cclxuICAgIHRoaXMuaXNTaG93biA9IHRydWVcclxuXHJcbiAgICB0aGlzLmNoZWNrU2Nyb2xsYmFyKClcclxuICAgIHRoaXMuc2V0U2Nyb2xsYmFyKClcclxuICAgIHRoaXMuJGJvZHkuYWRkQ2xhc3MoJ21vZGFsLW9wZW4nKVxyXG5cclxuICAgIHRoaXMuZXNjYXBlKClcclxuICAgIHRoaXMucmVzaXplKClcclxuXHJcbiAgICB0aGlzLiRlbGVtZW50Lm9uKCdjbGljay5kaXNtaXNzLndwYmMubW9kYWwnLCAnW2RhdGEtZGlzbWlzcz1cIm1vZGFsXCJdJywgJC5wcm94eSh0aGlzLmhpZGUsIHRoaXMpKVxyXG5cclxuICAgIHRoaXMuJGRpYWxvZy5vbignbW91c2Vkb3duLmRpc21pc3Mud3BiYy5tb2RhbCcsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgdGhhdC4kZWxlbWVudC5vbmUoJ21vdXNldXAuZGlzbWlzcy53cGJjLm1vZGFsJywgZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBpZiAoJChlLnRhcmdldCkuaXModGhhdC4kZWxlbWVudCkpIHRoYXQuaWdub3JlQmFja2Ryb3BDbGljayA9IHRydWVcclxuICAgICAgfSlcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5iYWNrZHJvcChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciB0cmFuc2l0aW9uID0gJC5zdXBwb3J0LnRyYW5zaXRpb24gJiYgdGhhdC4kZWxlbWVudC5oYXNDbGFzcygnZmFkZScpXHJcblxyXG4gICAgICBpZiAoIXRoYXQuJGVsZW1lbnQucGFyZW50KCkubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhhdC4kZWxlbWVudC5hcHBlbmRUbyh0aGF0LiRib2R5KSAvLyBkb24ndCBtb3ZlIG1vZGFscyBkb20gcG9zaXRpb25cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhhdC4kZWxlbWVudFxyXG4gICAgICAgIC5zaG93KClcclxuICAgICAgICAuc2Nyb2xsVG9wKDApXHJcblxyXG4gICAgICB0aGF0LmFkanVzdERpYWxvZygpXHJcblxyXG4gICAgICBpZiAodHJhbnNpdGlvbikge1xyXG4gICAgICAgIHRoYXQuJGVsZW1lbnRbMF0ub2Zmc2V0V2lkdGggLy8gZm9yY2UgcmVmbG93XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoYXQuJGVsZW1lbnQuYWRkQ2xhc3MoJ2luJylcclxuXHJcbiAgICAgIHRoYXQuZW5mb3JjZUZvY3VzKClcclxuXHJcbiAgICAgIHZhciBlID0gJC5FdmVudCgnc2hvd24ud3BiYy5tb2RhbCcsIHsgcmVsYXRlZFRhcmdldDogX3JlbGF0ZWRUYXJnZXQgfSlcclxuXHJcbiAgICAgIHRyYW5zaXRpb24gP1xyXG4gICAgICAgIHRoYXQuJGRpYWxvZyAvLyB3YWl0IGZvciBtb2RhbCB0byBzbGlkZSBpblxyXG4gICAgICAgICAgLm9uZSgnYnNUcmFuc2l0aW9uRW5kJywgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB0aGF0LiRlbGVtZW50LnRyaWdnZXIoJ2ZvY3VzJykudHJpZ2dlcihlKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5lbXVsYXRlVHJhbnNpdGlvbkVuZChNb2RhbC5UUkFOU0lUSU9OX0RVUkFUSU9OKSA6XHJcbiAgICAgICAgdGhhdC4kZWxlbWVudC50cmlnZ2VyKCdmb2N1cycpLnRyaWdnZXIoZSlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUuaGlkZSA9IGZ1bmN0aW9uIChlKSB7XHJcbiAgICBpZiAoZSkgZS5wcmV2ZW50RGVmYXVsdCgpXHJcblxyXG4gICAgZSA9ICQuRXZlbnQoJ2hpZGUud3BiYy5tb2RhbCcpXHJcblxyXG4gICAgdGhpcy4kZWxlbWVudC50cmlnZ2VyKGUpXHJcblxyXG4gICAgaWYgKCF0aGlzLmlzU2hvd24gfHwgZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuXHJcblxyXG4gICAgdGhpcy5pc1Nob3duID0gZmFsc2VcclxuXHJcbiAgICB0aGlzLmVzY2FwZSgpXHJcbiAgICB0aGlzLnJlc2l6ZSgpXHJcblxyXG4gICAgJChkb2N1bWVudCkub2ZmKCdmb2N1c2luLndwYmMubW9kYWwnKVxyXG5cclxuICAgIHRoaXMuJGVsZW1lbnRcclxuICAgICAgLnJlbW92ZUNsYXNzKCdpbicpXHJcbiAgICAgIC5vZmYoJ2NsaWNrLmRpc21pc3Mud3BiYy5tb2RhbCcpXHJcbiAgICAgIC5vZmYoJ21vdXNldXAuZGlzbWlzcy53cGJjLm1vZGFsJylcclxuXHJcbiAgICB0aGlzLiRkaWFsb2cub2ZmKCdtb3VzZWRvd24uZGlzbWlzcy53cGJjLm1vZGFsJylcclxuXHJcbiAgICAkLnN1cHBvcnQudHJhbnNpdGlvbiAmJiB0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCdmYWRlJykgP1xyXG4gICAgICB0aGlzLiRlbGVtZW50XHJcbiAgICAgICAgLm9uZSgnYnNUcmFuc2l0aW9uRW5kJywgJC5wcm94eSh0aGlzLmhpZGVNb2RhbCwgdGhpcykpXHJcbiAgICAgICAgLmVtdWxhdGVUcmFuc2l0aW9uRW5kKE1vZGFsLlRSQU5TSVRJT05fRFVSQVRJT04pIDpcclxuICAgICAgdGhpcy5oaWRlTW9kYWwoKVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLmVuZm9yY2VGb2N1cyA9IGZ1bmN0aW9uICgpIHtcclxuICAgICQoZG9jdW1lbnQpXHJcbiAgICAgIC5vZmYoJ2ZvY3VzaW4ud3BiYy5tb2RhbCcpIC8vIGd1YXJkIGFnYWluc3QgaW5maW5pdGUgZm9jdXMgbG9vcFxyXG4gICAgICAub24oJ2ZvY3VzaW4ud3BiYy5tb2RhbCcsICQucHJveHkoZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBpZiAodGhpcy4kZWxlbWVudFswXSAhPT0gZS50YXJnZXQgJiYgIXRoaXMuJGVsZW1lbnQuaGFzKGUudGFyZ2V0KS5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuJGVsZW1lbnQudHJpZ2dlcignZm9jdXMnKVxyXG4gICAgICAgIH1cclxuICAgICAgfSwgdGhpcykpXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUuZXNjYXBlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgaWYgKHRoaXMuaXNTaG93biAmJiB0aGlzLm9wdGlvbnMua2V5Ym9hcmQpIHtcclxuICAgICAgdGhpcy4kZWxlbWVudC5vbigna2V5ZG93bi5kaXNtaXNzLndwYmMubW9kYWwnLCAkLnByb3h5KGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgZS53aGljaCA9PSAyNyAmJiB0aGlzLmhpZGUoKVxyXG4gICAgICB9LCB0aGlzKSlcclxuICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNTaG93bikge1xyXG4gICAgICB0aGlzLiRlbGVtZW50Lm9mZigna2V5ZG93bi5kaXNtaXNzLndwYmMubW9kYWwnKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLnJlc2l6ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh0aGlzLmlzU2hvd24pIHtcclxuICAgICAgJCh3aW5kb3cpLm9uKCdyZXNpemUud3BiYy5tb2RhbCcsICQucHJveHkodGhpcy5oYW5kbGVVcGRhdGUsIHRoaXMpKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgJCh3aW5kb3cpLm9mZigncmVzaXplLndwYmMubW9kYWwnKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLmhpZGVNb2RhbCA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciB0aGF0ID0gdGhpc1xyXG4gICAgdGhpcy4kZWxlbWVudC5oaWRlKClcclxuICAgIHRoaXMuYmFja2Ryb3AoZnVuY3Rpb24gKCkge1xyXG4gICAgICB0aGF0LiRib2R5LnJlbW92ZUNsYXNzKCdtb2RhbC1vcGVuJylcclxuICAgICAgdGhhdC5yZXNldEFkanVzdG1lbnRzKClcclxuICAgICAgdGhhdC5yZXNldFNjcm9sbGJhcigpXHJcbiAgICAgIHRoYXQuJGVsZW1lbnQudHJpZ2dlcignaGlkZGVuLndwYmMubW9kYWwnKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5yZW1vdmVCYWNrZHJvcCA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHRoaXMuJGJhY2tkcm9wICYmIHRoaXMuJGJhY2tkcm9wLnJlbW92ZSgpXHJcbiAgICB0aGlzLiRiYWNrZHJvcCA9IG51bGxcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5iYWNrZHJvcCA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xyXG4gICAgdmFyIHRoYXQgPSB0aGlzXHJcbiAgICB2YXIgYW5pbWF0ZSA9IHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2ZhZGUnKSA/ICdmYWRlJyA6ICcnXHJcblxyXG4gICAgaWYgKHRoaXMuaXNTaG93biAmJiB0aGlzLm9wdGlvbnMuYmFja2Ryb3ApIHtcclxuICAgICAgdmFyIGRvQW5pbWF0ZSA9ICQuc3VwcG9ydC50cmFuc2l0aW9uICYmIGFuaW1hdGVcclxuXHJcbiAgICAgIHRoaXMuJGJhY2tkcm9wID0gJChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSlcclxuICAgICAgICAuYWRkQ2xhc3MoJ21vZGFsLWJhY2tkcm9wICcgKyBhbmltYXRlKVxyXG4gICAgICAgIC5hcHBlbmRUbyh0aGlzLiRib2R5KVxyXG5cclxuICAgICAgdGhpcy4kZWxlbWVudC5vbignY2xpY2suZGlzbWlzcy53cGJjLm1vZGFsJywgJC5wcm94eShmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgIGlmICh0aGlzLmlnbm9yZUJhY2tkcm9wQ2xpY2spIHtcclxuICAgICAgICAgIHRoaXMuaWdub3JlQmFja2Ryb3BDbGljayA9IGZhbHNlXHJcbiAgICAgICAgICByZXR1cm5cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGUudGFyZ2V0ICE9PSBlLmN1cnJlbnRUYXJnZXQpIHJldHVyblxyXG4gICAgICAgIHRoaXMub3B0aW9ucy5iYWNrZHJvcCA9PSAnc3RhdGljJ1xyXG4gICAgICAgICAgPyB0aGlzLiRlbGVtZW50WzBdLmZvY3VzKClcclxuICAgICAgICAgIDogdGhpcy5oaWRlKClcclxuICAgICAgfSwgdGhpcykpXHJcblxyXG4gICAgICBpZiAoZG9BbmltYXRlKSB0aGlzLiRiYWNrZHJvcFswXS5vZmZzZXRXaWR0aCAvLyBmb3JjZSByZWZsb3dcclxuXHJcbiAgICAgIHRoaXMuJGJhY2tkcm9wLmFkZENsYXNzKCdpbicpXHJcblxyXG4gICAgICBpZiAoIWNhbGxiYWNrKSByZXR1cm5cclxuXHJcbiAgICAgIGRvQW5pbWF0ZSA/XHJcbiAgICAgICAgdGhpcy4kYmFja2Ryb3BcclxuICAgICAgICAgIC5vbmUoJ2JzVHJhbnNpdGlvbkVuZCcsIGNhbGxiYWNrKVxyXG4gICAgICAgICAgLmVtdWxhdGVUcmFuc2l0aW9uRW5kKE1vZGFsLkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04pIDpcclxuICAgICAgICBjYWxsYmFjaygpXHJcblxyXG4gICAgfSBlbHNlIGlmICghdGhpcy5pc1Nob3duICYmIHRoaXMuJGJhY2tkcm9wKSB7XHJcbiAgICAgIHRoaXMuJGJhY2tkcm9wLnJlbW92ZUNsYXNzKCdpbicpXHJcblxyXG4gICAgICB2YXIgY2FsbGJhY2tSZW1vdmUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdGhhdC5yZW1vdmVCYWNrZHJvcCgpXHJcbiAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2soKVxyXG4gICAgICB9XHJcbiAgICAgICQuc3VwcG9ydC50cmFuc2l0aW9uICYmIHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2ZhZGUnKSA/XHJcbiAgICAgICAgdGhpcy4kYmFja2Ryb3BcclxuICAgICAgICAgIC5vbmUoJ2JzVHJhbnNpdGlvbkVuZCcsIGNhbGxiYWNrUmVtb3ZlKVxyXG4gICAgICAgICAgLmVtdWxhdGVUcmFuc2l0aW9uRW5kKE1vZGFsLkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04pIDpcclxuICAgICAgICBjYWxsYmFja1JlbW92ZSgpXHJcblxyXG4gICAgfSBlbHNlIGlmIChjYWxsYmFjaykge1xyXG4gICAgICBjYWxsYmFjaygpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyB0aGVzZSBmb2xsb3dpbmcgbWV0aG9kcyBhcmUgdXNlZCB0byBoYW5kbGUgb3ZlcmZsb3dpbmcgbW9kYWxzXHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5oYW5kbGVVcGRhdGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB0aGlzLmFkanVzdERpYWxvZygpXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUuYWRqdXN0RGlhbG9nID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIG1vZGFsSXNPdmVyZmxvd2luZyA9IHRoaXMuJGVsZW1lbnRbMF0uc2Nyb2xsSGVpZ2h0ID4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodFxyXG5cclxuICAgIHRoaXMuJGVsZW1lbnQuY3NzKHtcclxuICAgICAgcGFkZGluZ0xlZnQ6ICAhdGhpcy5ib2R5SXNPdmVyZmxvd2luZyAmJiBtb2RhbElzT3ZlcmZsb3dpbmcgPyB0aGlzLnNjcm9sbGJhcldpZHRoIDogJycsXHJcbiAgICAgIHBhZGRpbmdSaWdodDogdGhpcy5ib2R5SXNPdmVyZmxvd2luZyAmJiAhbW9kYWxJc092ZXJmbG93aW5nID8gdGhpcy5zY3JvbGxiYXJXaWR0aCA6ICcnXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLnJlc2V0QWRqdXN0bWVudHMgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB0aGlzLiRlbGVtZW50LmNzcyh7XHJcbiAgICAgIHBhZGRpbmdMZWZ0OiAnJyxcclxuICAgICAgcGFkZGluZ1JpZ2h0OiAnJ1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5jaGVja1Njcm9sbGJhciA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBmdWxsV2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aFxyXG4gICAgaWYgKCFmdWxsV2luZG93V2lkdGgpIHsgLy8gd29ya2Fyb3VuZCBmb3IgbWlzc2luZyB3aW5kb3cuaW5uZXJXaWR0aCBpbiBJRThcclxuICAgICAgdmFyIGRvY3VtZW50RWxlbWVudFJlY3QgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuICAgICAgZnVsbFdpbmRvd1dpZHRoID0gZG9jdW1lbnRFbGVtZW50UmVjdC5yaWdodCAtIE1hdGguYWJzKGRvY3VtZW50RWxlbWVudFJlY3QubGVmdClcclxuICAgIH1cclxuICAgIHRoaXMuYm9keUlzT3ZlcmZsb3dpbmcgPSBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIDwgZnVsbFdpbmRvd1dpZHRoXHJcbiAgICB0aGlzLnNjcm9sbGJhcldpZHRoID0gdGhpcy5tZWFzdXJlU2Nyb2xsYmFyKClcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5zZXRTY3JvbGxiYXIgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgYm9keVBhZCA9IHBhcnNlSW50KCh0aGlzLiRib2R5LmNzcygncGFkZGluZy1yaWdodCcpIHx8IDApLCAxMClcclxuICAgIHRoaXMub3JpZ2luYWxCb2R5UGFkID0gZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQgfHwgJydcclxuICAgIGlmICh0aGlzLmJvZHlJc092ZXJmbG93aW5nKSB0aGlzLiRib2R5LmNzcygncGFkZGluZy1yaWdodCcsIGJvZHlQYWQgKyB0aGlzLnNjcm9sbGJhcldpZHRoKVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLnJlc2V0U2Nyb2xsYmFyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdGhpcy4kYm9keS5jc3MoJ3BhZGRpbmctcmlnaHQnLCB0aGlzLm9yaWdpbmFsQm9keVBhZClcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5tZWFzdXJlU2Nyb2xsYmFyID0gZnVuY3Rpb24gKCkgeyAvLyB0aHggd2Fsc2hcclxuICAgIHZhciBzY3JvbGxEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxyXG4gICAgc2Nyb2xsRGl2LmNsYXNzTmFtZSA9ICdtb2RhbC1zY3JvbGxiYXItbWVhc3VyZSdcclxuICAgIHRoaXMuJGJvZHkuYXBwZW5kKHNjcm9sbERpdilcclxuICAgIHZhciBzY3JvbGxiYXJXaWR0aCA9IHNjcm9sbERpdi5vZmZzZXRXaWR0aCAtIHNjcm9sbERpdi5jbGllbnRXaWR0aFxyXG4gICAgdGhpcy4kYm9keVswXS5yZW1vdmVDaGlsZChzY3JvbGxEaXYpXHJcbiAgICByZXR1cm4gc2Nyb2xsYmFyV2lkdGhcclxuICB9XHJcblxyXG5cclxuICAvLyBNT0RBTCBQTFVHSU4gREVGSU5JVElPTlxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gIGZ1bmN0aW9uIFBsdWdpbihvcHRpb24sIF9yZWxhdGVkVGFyZ2V0KSB7XHJcbiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyICR0aGlzICAgPSAkKHRoaXMpXHJcbiAgICAgIHZhciBkYXRhICAgID0gJHRoaXMuZGF0YSgnd3BiYy5tb2RhbCcpXHJcbiAgICAgIHZhciBvcHRpb25zID0gJC5leHRlbmQoe30sIE1vZGFsLkRFRkFVTFRTLCAkdGhpcy5kYXRhKCksIHR5cGVvZiBvcHRpb24gPT0gJ29iamVjdCcgJiYgb3B0aW9uKVxyXG5cclxuICAgICAgaWYgKCFkYXRhKSAkdGhpcy5kYXRhKCd3cGJjLm1vZGFsJywgKGRhdGEgPSBuZXcgTW9kYWwodGhpcywgb3B0aW9ucykpKVxyXG4gICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PSAnc3RyaW5nJykgZGF0YVtvcHRpb25dKF9yZWxhdGVkVGFyZ2V0KVxyXG4gICAgICBlbHNlIGlmIChvcHRpb25zLnNob3cpIGRhdGEuc2hvdyhfcmVsYXRlZFRhcmdldClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICB2YXIgb2xkID0gJC5mbi53cGJjX215X21vZGFsXHJcblxyXG4gICQuZm4ud3BiY19teV9tb2RhbCAgICAgICAgICAgICA9IFBsdWdpblxyXG4gICQuZm4ud3BiY19teV9tb2RhbC5Db25zdHJ1Y3RvciA9IE1vZGFsXHJcblxyXG5cclxuICAvLyBNT0RBTCBOTyBDT05GTElDVFxyXG4gIC8vID09PT09PT09PT09PT09PT09XHJcblxyXG4gICQuZm4ud3BiY19teV9tb2RhbC5ub0NvbmZsaWN0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgJC5mbi53cGJjX215X21vZGFsID0gb2xkXHJcbiAgICByZXR1cm4gdGhpc1xyXG4gIH1cclxuXHJcblxyXG4gIC8vIE1PREFMIERBVEEtQVBJXHJcbiAgLy8gPT09PT09PT09PT09PT1cclxuXHJcbiAgJChkb2N1bWVudCkub24oJ2NsaWNrLndwYmMubW9kYWwuZGF0YS1hcGknLCAnW2RhdGEtdG9nZ2xlPVwid3BiY19teV9tb2RhbFwiXScsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICB2YXIgJHRoaXMgICA9ICQodGhpcylcclxuICAgIHZhciBocmVmICAgID0gJHRoaXMuYXR0cignaHJlZicpXHJcbiAgICB2YXIgJHRhcmdldCA9ICQoJHRoaXMuYXR0cignZGF0YS10YXJnZXQnKSB8fCAoaHJlZiAmJiBocmVmLnJlcGxhY2UoLy4qKD89I1teXFxzXSskKS8sICcnKSkpIC8vIHN0cmlwIGZvciBpZTdcclxuICAgIHZhciBvcHRpb24gID0gJHRhcmdldC5kYXRhKCd3cGJjLm1vZGFsJykgPyAndG9nZ2xlJyA6ICQuZXh0ZW5kKHsgcmVtb3RlOiAhLyMvLnRlc3QoaHJlZikgJiYgaHJlZiB9LCAkdGFyZ2V0LmRhdGEoKSwgJHRoaXMuZGF0YSgpKVxyXG5cclxuICAgIGlmICgkdGhpcy5pcygnYScpKSBlLnByZXZlbnREZWZhdWx0KClcclxuXHJcbiAgICAkdGFyZ2V0Lm9uZSgnc2hvdy53cGJjLm1vZGFsJywgZnVuY3Rpb24gKHNob3dFdmVudCkge1xyXG4gICAgICBpZiAoc2hvd0V2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm4gLy8gb25seSByZWdpc3RlciBmb2N1cyByZXN0b3JlciBpZiBtb2RhbCB3aWxsIGFjdHVhbGx5IGdldCBzaG93blxyXG4gICAgICAkdGFyZ2V0Lm9uZSgnaGlkZGVuLndwYmMubW9kYWwnLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgJHRoaXMuaXMoJzp2aXNpYmxlJykgJiYgJHRoaXMudHJpZ2dlcignZm9jdXMnKVxyXG4gICAgICB9KVxyXG4gICAgfSlcclxuICAgIFBsdWdpbi5jYWxsKCR0YXJnZXQsIG9wdGlvbiwgdGhpcylcclxuICB9KVxyXG5cclxufShqUXVlcnkpO1xyXG5cclxuXHJcbitmdW5jdGlvbiAoJCkge1xyXG4gICd1c2Ugc3RyaWN0JztcclxuXHJcbiAgLy8gRFJPUERPV04gQ0xBU1MgREVGSU5JVElPTlxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiAgdmFyIGJhY2tkcm9wID0gJy5kcm9wZG93bi1iYWNrZHJvcCdcclxuICB2YXIgdG9nZ2xlICAgPSAnW2RhdGEtdG9nZ2xlPVwid3BiY19kcm9wZG93blwiXSdcclxuICB2YXIgRHJvcGRvd24gPSBmdW5jdGlvbiAoZWxlbWVudCkge1xyXG4gICAgJChlbGVtZW50KS5vbignY2xpY2sud3BiYy5kcm9wZG93bicsIHRoaXMudG9nZ2xlKVxyXG4gIH1cclxuXHJcbiAgRHJvcGRvd24uVkVSU0lPTiA9ICczLjMuNSdcclxuXHJcbiAgZnVuY3Rpb24gZ2V0UGFyZW50KCR0aGlzKSB7XHJcbiAgICB2YXIgc2VsZWN0b3IgPSAkdGhpcy5hdHRyKCdkYXRhLXRhcmdldCcpXHJcblxyXG4gICAgaWYgKCFzZWxlY3Rvcikge1xyXG4gICAgICBzZWxlY3RvciA9ICR0aGlzLmF0dHIoJ2hyZWYnKVxyXG4gICAgICBzZWxlY3RvciA9IHNlbGVjdG9yICYmIC8jW0EtWmEtel0vLnRlc3Qoc2VsZWN0b3IpICYmIHNlbGVjdG9yLnJlcGxhY2UoLy4qKD89I1teXFxzXSokKS8sICcnKSAvLyBzdHJpcCBmb3IgaWU3XHJcbiAgICB9XHJcblxyXG4gICAgdmFyICRwYXJlbnQgPSBzZWxlY3RvciAmJiAkKHNlbGVjdG9yKVxyXG5cclxuICAgIHJldHVybiAkcGFyZW50ICYmICRwYXJlbnQubGVuZ3RoID8gJHBhcmVudCA6ICR0aGlzLnBhcmVudCgpXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBjbGVhck1lbnVzKGUpIHtcclxuICAgIGlmIChlICYmIGUud2hpY2ggPT09IDMpIHJldHVyblxyXG4gICAgJChiYWNrZHJvcCkucmVtb3ZlKClcclxuICAgICQodG9nZ2xlKS5lYWNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyICR0aGlzICAgICAgICAgPSAkKHRoaXMpXHJcbiAgICAgIHZhciAkcGFyZW50ICAgICAgID0gZ2V0UGFyZW50KCR0aGlzKVxyXG4gICAgICB2YXIgcmVsYXRlZFRhcmdldCA9IHsgcmVsYXRlZFRhcmdldDogdGhpcyB9XHJcblxyXG4gICAgICBpZiAoISRwYXJlbnQuaGFzQ2xhc3MoJ29wZW4nKSkgcmV0dXJuXHJcblxyXG4gICAgICBpZiAoZSAmJiBlLnR5cGUgPT0gJ2NsaWNrJyAmJiAvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGUudGFyZ2V0LnRhZ05hbWUpICYmICQuY29udGFpbnMoJHBhcmVudFswXSwgZS50YXJnZXQpKSByZXR1cm5cclxuXHJcbiAgICAgICRwYXJlbnQudHJpZ2dlcihlID0gJC5FdmVudCgnaGlkZS53cGJjLmRyb3Bkb3duJywgcmVsYXRlZFRhcmdldCkpXHJcblxyXG4gICAgICBpZiAoZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuXHJcblxyXG4gICAgICAkdGhpcy5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJylcclxuICAgICAgJHBhcmVudC5yZW1vdmVDbGFzcygnb3BlbicpLnRyaWdnZXIoJ2hpZGRlbi53cGJjLmRyb3Bkb3duJywgcmVsYXRlZFRhcmdldClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBEcm9wZG93bi5wcm90b3R5cGUudG9nZ2xlID0gZnVuY3Rpb24gKGUpIHtcclxuICAgIHZhciAkdGhpcyA9ICQodGhpcylcclxuXHJcbiAgICBpZiAoJHRoaXMuaXMoJy5kaXNhYmxlZCwgOmRpc2FibGVkJykpIHJldHVyblxyXG5cclxuICAgIHZhciAkcGFyZW50ICA9IGdldFBhcmVudCgkdGhpcylcclxuICAgIHZhciBpc0FjdGl2ZSA9ICRwYXJlbnQuaGFzQ2xhc3MoJ29wZW4nKVxyXG5cclxuICAgIGNsZWFyTWVudXMoKVxyXG5cclxuICAgIGlmICghaXNBY3RpdmUpIHtcclxuICAgICAgaWYgKCdvbnRvdWNoc3RhcnQnIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiAhJHBhcmVudC5jbG9zZXN0KCcubmF2YmFyLW5hdicpLmxlbmd0aCkge1xyXG4gICAgICAgIC8vIGlmIG1vYmlsZSB3ZSB1c2UgYSBiYWNrZHJvcCBiZWNhdXNlIGNsaWNrIGV2ZW50cyBkb24ndCBkZWxlZ2F0ZVxyXG4gICAgICAgICQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpXHJcbiAgICAgICAgICAuYWRkQ2xhc3MoJ2Ryb3Bkb3duLWJhY2tkcm9wJylcclxuICAgICAgICAgIC5pbnNlcnRBZnRlcigkKHRoaXMpKVxyXG4gICAgICAgICAgLm9uKCdjbGljaycsIGNsZWFyTWVudXMpXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHZhciByZWxhdGVkVGFyZ2V0ID0geyByZWxhdGVkVGFyZ2V0OiB0aGlzIH1cclxuICAgICAgJHBhcmVudC50cmlnZ2VyKGUgPSAkLkV2ZW50KCdzaG93LndwYmMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KSlcclxuXHJcbiAgICAgIGlmIChlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm5cclxuXHJcbiAgICAgICR0aGlzXHJcbiAgICAgICAgLnRyaWdnZXIoJ2ZvY3VzJylcclxuICAgICAgICAuYXR0cignYXJpYS1leHBhbmRlZCcsICd0cnVlJylcclxuXHJcbiAgICAgICRwYXJlbnRcclxuICAgICAgICAudG9nZ2xlQ2xhc3MoJ29wZW4nKVxyXG4gICAgICAgIC50cmlnZ2VyKCdzaG93bi53cGJjLmRyb3Bkb3duJywgcmVsYXRlZFRhcmdldClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2VcclxuICB9XHJcblxyXG4gIERyb3Bkb3duLnByb3RvdHlwZS5rZXlkb3duID0gZnVuY3Rpb24gKGUpIHtcclxuICAgIGlmICghLygzOHw0MHwyN3wzMikvLnRlc3QoZS53aGljaCkgfHwgL2lucHV0fHRleHRhcmVhL2kudGVzdChlLnRhcmdldC50YWdOYW1lKSkgcmV0dXJuXHJcblxyXG4gICAgdmFyICR0aGlzID0gJCh0aGlzKVxyXG5cclxuICAgIGUucHJldmVudERlZmF1bHQoKVxyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxyXG5cclxuICAgIGlmICgkdGhpcy5pcygnLmRpc2FibGVkLCA6ZGlzYWJsZWQnKSkgcmV0dXJuXHJcblxyXG4gICAgdmFyICRwYXJlbnQgID0gZ2V0UGFyZW50KCR0aGlzKVxyXG4gICAgdmFyIGlzQWN0aXZlID0gJHBhcmVudC5oYXNDbGFzcygnb3BlbicpXHJcblxyXG4gICAgaWYgKCFpc0FjdGl2ZSAmJiBlLndoaWNoICE9IDI3IHx8IGlzQWN0aXZlICYmIGUud2hpY2ggPT0gMjcpIHtcclxuICAgICAgaWYgKGUud2hpY2ggPT0gMjcpICRwYXJlbnQuZmluZCh0b2dnbGUpLnRyaWdnZXIoJ2ZvY3VzJylcclxuICAgICAgcmV0dXJuICR0aGlzLnRyaWdnZXIoJ2NsaWNrJylcclxuICAgIH1cclxuXHJcbiAgICB2YXIgZGVzYyA9ICcgbGk6bm90KC5kaXNhYmxlZCk6dmlzaWJsZSBhJ1xyXG4gICAgdmFyICRpdGVtcyA9ICRwYXJlbnQuZmluZCgnLmRyb3Bkb3duLW1lbnUnICsgZGVzYylcclxuXHJcbiAgICBpZiAoISRpdGVtcy5sZW5ndGgpIHJldHVyblxyXG5cclxuICAgIHZhciBpbmRleCA9ICRpdGVtcy5pbmRleChlLnRhcmdldClcclxuXHJcbiAgICBpZiAoZS53aGljaCA9PSAzOCAmJiBpbmRleCA+IDApICAgICAgICAgICAgICAgICBpbmRleC0tICAgICAgICAgLy8gdXBcclxuICAgIGlmIChlLndoaWNoID09IDQwICYmIGluZGV4IDwgJGl0ZW1zLmxlbmd0aCAtIDEpIGluZGV4KysgICAgICAgICAvLyBkb3duXHJcbiAgICBpZiAoIX5pbmRleCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDBcclxuXHJcbiAgICAkaXRlbXMuZXEoaW5kZXgpLnRyaWdnZXIoJ2ZvY3VzJylcclxuICB9XHJcblxyXG5cclxuICAvLyBEUk9QRE9XTiBQTFVHSU4gREVGSU5JVElPTlxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gIGZ1bmN0aW9uIFBsdWdpbihvcHRpb24pIHtcclxuICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpXHJcbiAgICAgIHZhciBkYXRhICA9ICR0aGlzLmRhdGEoJ3dwYmMuZHJvcGRvd24nKVxyXG5cclxuICAgICAgaWYgKCFkYXRhKSAkdGhpcy5kYXRhKCd3cGJjLmRyb3Bkb3duJywgKGRhdGEgPSBuZXcgRHJvcGRvd24odGhpcykpKVxyXG4gICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PSAnc3RyaW5nJykgZGF0YVtvcHRpb25dLmNhbGwoJHRoaXMpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgdmFyIG9sZCA9ICQuZm4ud3BiY19kcm9wZG93blxyXG5cclxuICAkLmZuLndwYmNfZHJvcGRvd24gICAgICAgICAgICAgPSBQbHVnaW5cclxuICAkLmZuLndwYmNfZHJvcGRvd24uQ29uc3RydWN0b3IgPSBEcm9wZG93blxyXG5cclxuXHJcbiAgLy8gRFJPUERPV04gTk8gQ09ORkxJQ1RcclxuICAvLyA9PT09PT09PT09PT09PT09PT09PVxyXG5cclxuICAkLmZuLndwYmNfZHJvcGRvd24ubm9Db25mbGljdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICQuZm4ud3BiY19kcm9wZG93biA9IG9sZFxyXG4gICAgcmV0dXJuIHRoaXNcclxuICB9XHJcblxyXG5cclxuICAvLyBBUFBMWSBUTyBTVEFOREFSRCBEUk9QRE9XTiBFTEVNRU5UU1xyXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gICQoZG9jdW1lbnQpXHJcbiAgICAub24oJ2NsaWNrLndwYmMuZHJvcGRvd24uZGF0YS1hcGknLCBjbGVhck1lbnVzKVxyXG4gICAgLm9uKCdjbGljay53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgJy5kcm9wZG93biBmb3JtJywgZnVuY3Rpb24gKGUpIHsgZS5zdG9wUHJvcGFnYXRpb24oKSB9KVxyXG4gICAgLm9uKCdjbGljay53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgdG9nZ2xlLCBEcm9wZG93bi5wcm90b3R5cGUudG9nZ2xlKVxyXG4gICAgLm9uKCdrZXlkb3duLndwYmMuZHJvcGRvd24uZGF0YS1hcGknLCB0b2dnbGUsIERyb3Bkb3duLnByb3RvdHlwZS5rZXlkb3duKVxyXG4gICAgLm9uKCdrZXlkb3duLndwYmMuZHJvcGRvd24uZGF0YS1hcGknLCAnLmRyb3Bkb3duLW1lbnUnLCBEcm9wZG93bi5wcm90b3R5cGUua2V5ZG93bilcclxuXHJcbn0oalF1ZXJ5KTtcclxuIl0sImZpbGUiOiJhc3NldHMvbGlicy91aS9fb3V0L2Ryb3Bkb3duX21vZGFsLmpzIn0=
|
378 |
}
|
379 |
|
380 |
var desc = ' li:not(.disabled):visible a';
|
381 |
+
var $items = $parent.find('.dropdown-menu' + desc + ',.ui_dropdown_menu' + desc);
|
382 |
if (!$items.length) return;
|
383 |
var index = $items.index(e.target);
|
384 |
if (e.which == 38 && index > 0) index--; // up
|
414 |
|
415 |
$(document).on('click.wpbc.dropdown.data-api', clearMenus).on('click.wpbc.dropdown.data-api', '.dropdown form', function (e) {
|
416 |
e.stopPropagation();
|
417 |
+
}).on('click.wpbc.dropdown.data-api', toggle, Dropdown.prototype.toggle).on('keydown.wpbc.dropdown.data-api', toggle, Dropdown.prototype.keydown).on('keydown.wpbc.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown).on('keydown.wpbc.dropdown.data-api', '.ui_dropdown_menu', Dropdown.prototype.keydown);
|
418 |
}(jQuery);
|
419 |
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9saWJzL3VpL19zcmMvZHJvcGRvd25fbW9kYWwuanMiXSwibmFtZXMiOlsialF1ZXJ5IiwiRXJyb3IiLCIkIiwidmVyc2lvbiIsImZuIiwianF1ZXJ5Iiwic3BsaXQiLCJNb2RhbCIsImVsZW1lbnQiLCJvcHRpb25zIiwiJGJvZHkiLCJkb2N1bWVudCIsImJvZHkiLCIkZWxlbWVudCIsIiRkaWFsb2ciLCJmaW5kIiwiJGJhY2tkcm9wIiwiaXNTaG93biIsIm9yaWdpbmFsQm9keVBhZCIsInNjcm9sbGJhcldpZHRoIiwiaWdub3JlQmFja2Ryb3BDbGljayIsInJlbW90ZSIsImxvYWQiLCJwcm94eSIsInRyaWdnZXIiLCJWRVJTSU9OIiwiVFJBTlNJVElPTl9EVVJBVElPTiIsIkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04iLCJERUZBVUxUUyIsImJhY2tkcm9wIiwia2V5Ym9hcmQiLCJzaG93IiwicHJvdG90eXBlIiwidG9nZ2xlIiwiX3JlbGF0ZWRUYXJnZXQiLCJoaWRlIiwidGhhdCIsImUiLCJFdmVudCIsInJlbGF0ZWRUYXJnZXQiLCJpc0RlZmF1bHRQcmV2ZW50ZWQiLCJjaGVja1Njcm9sbGJhciIsInNldFNjcm9sbGJhciIsImFkZENsYXNzIiwiZXNjYXBlIiwicmVzaXplIiwib24iLCJvbmUiLCJ0YXJnZXQiLCJpcyIsInRyYW5zaXRpb24iLCJzdXBwb3J0IiwiaGFzQ2xhc3MiLCJwYXJlbnQiLCJsZW5ndGgiLCJhcHBlbmRUbyIsInNjcm9sbFRvcCIsImFkanVzdERpYWxvZyIsIm9mZnNldFdpZHRoIiwiZW5mb3JjZUZvY3VzIiwiZW11bGF0ZVRyYW5zaXRpb25FbmQiLCJwcmV2ZW50RGVmYXVsdCIsIm9mZiIsInJlbW92ZUNsYXNzIiwiaGlkZU1vZGFsIiwiaGFzIiwid2hpY2giLCJ3aW5kb3ciLCJoYW5kbGVVcGRhdGUiLCJyZXNldEFkanVzdG1lbnRzIiwicmVzZXRTY3JvbGxiYXIiLCJyZW1vdmVCYWNrZHJvcCIsInJlbW92ZSIsImNhbGxiYWNrIiwiYW5pbWF0ZSIsImRvQW5pbWF0ZSIsImNyZWF0ZUVsZW1lbnQiLCJjdXJyZW50VGFyZ2V0IiwiZm9jdXMiLCJjYWxsYmFja1JlbW92ZSIsIm1vZGFsSXNPdmVyZmxvd2luZyIsInNjcm9sbEhlaWdodCIsImRvY3VtZW50RWxlbWVudCIsImNsaWVudEhlaWdodCIsImNzcyIsInBhZGRpbmdMZWZ0IiwiYm9keUlzT3ZlcmZsb3dpbmciLCJwYWRkaW5nUmlnaHQiLCJmdWxsV2luZG93V2lkdGgiLCJpbm5lcldpZHRoIiwiZG9jdW1lbnRFbGVtZW50UmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsInJpZ2h0IiwiTWF0aCIsImFicyIsImxlZnQiLCJjbGllbnRXaWR0aCIsIm1lYXN1cmVTY3JvbGxiYXIiLCJib2R5UGFkIiwicGFyc2VJbnQiLCJzdHlsZSIsInNjcm9sbERpdiIsImNsYXNzTmFtZSIsImFwcGVuZCIsInJlbW92ZUNoaWxkIiwiUGx1Z2luIiwib3B0aW9uIiwiZWFjaCIsIiR0aGlzIiwiZGF0YSIsImV4dGVuZCIsIm9sZCIsIndwYmNfbXlfbW9kYWwiLCJDb25zdHJ1Y3RvciIsIm5vQ29uZmxpY3QiLCJocmVmIiwiYXR0ciIsIiR0YXJnZXQiLCJyZXBsYWNlIiwidGVzdCIsInNob3dFdmVudCIsImNhbGwiLCJEcm9wZG93biIsImdldFBhcmVudCIsInNlbGVjdG9yIiwiJHBhcmVudCIsImNsZWFyTWVudXMiLCJ0eXBlIiwidGFnTmFtZSIsImNvbnRhaW5zIiwiaXNBY3RpdmUiLCJjbG9zZXN0IiwiaW5zZXJ0QWZ0ZXIiLCJ0b2dnbGVDbGFzcyIsImtleWRvd24iLCJzdG9wUHJvcGFnYXRpb24iLCJkZXNjIiwiJGl0ZW1zIiwiaW5kZXgiLCJlcSIsIndwYmNfZHJvcGRvd24iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksT0FBT0EsTUFBUCxLQUFrQixXQUF0QixFQUFtQztBQUNqQyxRQUFNLElBQUlDLEtBQUosQ0FBVSx5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NUpBLENBNEpDdEksTUE1SkQsQ0FBRCIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxyXG4gKiBHZW5lcmF0ZWQgdXNpbmcgdGhlIEJvb3RzdHJhcCBDdXN0b21pemVyIChodHRwOi8vZ2V0Ym9vdHN0cmFwLmNvbS9jdXN0b21pemUvP2lkPWY0YjRjOWNiODVkZjc1N2NhMDhjKVxyXG4gKiBDb25maWcgc2F2ZWQgdG8gY29uZmlnLmpzb24gYW5kIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2Y0YjRjOWNiODVkZjc1N2NhMDhjXHJcbiAqL1xyXG5pZiAodHlwZW9mIGpRdWVyeSA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICB0aHJvdyBuZXcgRXJyb3IoJ0Jvb3RzdHJhcFxcJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBqUXVlcnknKVxyXG59XHJcbitmdW5jdGlvbiAoJCkge1xyXG4gICd1c2Ugc3RyaWN0JztcclxuICB2YXIgdmVyc2lvbiA9ICQuZm4uanF1ZXJ5LnNwbGl0KCcgJylbMF0uc3BsaXQoJy4nKVxyXG4gIGlmICgodmVyc2lvblswXSA8IDIgJiYgdmVyc2lvblsxXSA8IDkpIHx8ICh2ZXJzaW9uWzBdID09IDEgJiYgdmVyc2lvblsxXSA9PSA5ICYmIHZlcnNpb25bMl0gPCAxKSkge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdCb290c3RyYXBcXCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5IHZlcnNpb24gMS45LjEgb3IgaGlnaGVyJylcclxuICB9XHJcbn0oalF1ZXJ5KTtcclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gKiBCb290c3RyYXA6IG1vZGFsLmpzIHYzLjMuNVxyXG4gKiBodHRwOi8vZ2V0Ym9vdHN0cmFwLmNvbS9qYXZhc2NyaXB0LyNtb2RhbHNcclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqIENvcHlyaWdodCAyMDExLTIwMTUgVHdpdHRlciwgSW5jLlxyXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcblxyXG4rZnVuY3Rpb24gKCQpIHtcclxuICAndXNlIHN0cmljdCc7XHJcblxyXG4gIC8vIE1PREFMIENMQVNTIERFRklOSVRJT05cclxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gIHZhciBNb2RhbCA9IGZ1bmN0aW9uIChlbGVtZW50LCBvcHRpb25zKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMgICAgICAgICAgICAgPSBvcHRpb25zXHJcbiAgICB0aGlzLiRib2R5ICAgICAgICAgICAgICAgPSAkKGRvY3VtZW50LmJvZHkpXHJcbiAgICB0aGlzLiRlbGVtZW50ICAgICAgICAgICAgPSAkKGVsZW1lbnQpXHJcbiAgICB0aGlzLiRkaWFsb2cgICAgICAgICAgICAgPSB0aGlzLiRlbGVtZW50LmZpbmQoJy5tb2RhbC1kaWFsb2cnKVxyXG4gICAgdGhpcy4kYmFja2Ryb3AgICAgICAgICAgID0gbnVsbFxyXG4gICAgdGhpcy5pc1Nob3duICAgICAgICAgICAgID0gbnVsbFxyXG4gICAgdGhpcy5vcmlnaW5hbEJvZHlQYWQgICAgID0gbnVsbFxyXG4gICAgdGhpcy5zY3JvbGxiYXJXaWR0aCAgICAgID0gMFxyXG4gICAgdGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrID0gZmFsc2VcclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLnJlbW90ZSkge1xyXG4gICAgICB0aGlzLiRlbGVtZW50XHJcbiAgICAgICAgLmZpbmQoJy5tb2RhbC1jb250ZW50JylcclxuICAgICAgICAubG9hZCh0aGlzLm9wdGlvbnMucmVtb3RlLCAkLnByb3h5KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgIHRoaXMuJGVsZW1lbnQudHJpZ2dlcignbG9hZGVkLndwYmMubW9kYWwnKVxyXG4gICAgICAgIH0sIHRoaXMpKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgTW9kYWwuVkVSU0lPTiAgPSAnMy4zLjUnXHJcblxyXG4gIE1vZGFsLlRSQU5TSVRJT05fRFVSQVRJT04gPSAzMDBcclxuICBNb2RhbC5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OID0gMTUwXHJcblxyXG4gIE1vZGFsLkRFRkFVTFRTID0ge1xyXG4gICAgYmFja2Ryb3A6IHRydWUsXHJcbiAgICBrZXlib2FyZDogdHJ1ZSxcclxuICAgIHNob3c6IHRydWVcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS50b2dnbGUgPSBmdW5jdGlvbiAoX3JlbGF0ZWRUYXJnZXQpIHtcclxuICAgIHJldHVybiB0aGlzLmlzU2hvd24gPyB0aGlzLmhpZGUoKSA6IHRoaXMuc2hvdyhfcmVsYXRlZFRhcmdldClcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5zaG93ID0gZnVuY3Rpb24gKF9yZWxhdGVkVGFyZ2V0KSB7XHJcbiAgICB2YXIgdGhhdCA9IHRoaXNcclxuICAgIHZhciBlICAgID0gJC5FdmVudCgnc2hvdy53cGJjLm1vZGFsJywgeyByZWxhdGVkVGFyZ2V0OiBfcmVsYXRlZFRhcmdldCB9KVxyXG5cclxuICAgIHRoaXMuJGVsZW1lbnQudHJpZ2dlcihlKVxyXG5cclxuICAgIGlmICh0aGlzLmlzU2hvd24gfHwgZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuXHJcblxyXG4gICAgdGhpcy5pc1Nob3duID0gdHJ1ZVxyXG5cclxuICAgIHRoaXMuY2hlY2tTY3JvbGxiYXIoKVxyXG4gICAgdGhpcy5zZXRTY3JvbGxiYXIoKVxyXG4gICAgdGhpcy4kYm9keS5hZGRDbGFzcygnbW9kYWwtb3BlbicpXHJcblxyXG4gICAgdGhpcy5lc2NhcGUoKVxyXG4gICAgdGhpcy5yZXNpemUoKVxyXG5cclxuICAgIHRoaXMuJGVsZW1lbnQub24oJ2NsaWNrLmRpc21pc3Mud3BiYy5tb2RhbCcsICdbZGF0YS1kaXNtaXNzPVwibW9kYWxcIl0nLCAkLnByb3h5KHRoaXMuaGlkZSwgdGhpcykpXHJcblxyXG4gICAgdGhpcy4kZGlhbG9nLm9uKCdtb3VzZWRvd24uZGlzbWlzcy53cGJjLm1vZGFsJywgZnVuY3Rpb24gKCkge1xyXG4gICAgICB0aGF0LiRlbGVtZW50Lm9uZSgnbW91c2V1cC5kaXNtaXNzLndwYmMubW9kYWwnLCBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgIGlmICgkKGUudGFyZ2V0KS5pcyh0aGF0LiRlbGVtZW50KSkgdGhhdC5pZ25vcmVCYWNrZHJvcENsaWNrID0gdHJ1ZVxyXG4gICAgICB9KVxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLmJhY2tkcm9wKGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyIHRyYW5zaXRpb24gPSAkLnN1cHBvcnQudHJhbnNpdGlvbiAmJiB0aGF0LiRlbGVtZW50Lmhhc0NsYXNzKCdmYWRlJylcclxuXHJcbiAgICAgIGlmICghdGhhdC4kZWxlbWVudC5wYXJlbnQoKS5sZW5ndGgpIHtcclxuICAgICAgICB0aGF0LiRlbGVtZW50LmFwcGVuZFRvKHRoYXQuJGJvZHkpIC8vIGRvbid0IG1vdmUgbW9kYWxzIGRvbSBwb3NpdGlvblxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGF0LiRlbGVtZW50XHJcbiAgICAgICAgLnNob3coKVxyXG4gICAgICAgIC5zY3JvbGxUb3AoMClcclxuXHJcbiAgICAgIHRoYXQuYWRqdXN0RGlhbG9nKClcclxuXHJcbiAgICAgIGlmICh0cmFuc2l0aW9uKSB7XHJcbiAgICAgICAgdGhhdC4kZWxlbWVudFswXS5vZmZzZXRXaWR0aCAvLyBmb3JjZSByZWZsb3dcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhhdC4kZWxlbWVudC5hZGRDbGFzcygnaW4nKVxyXG5cclxuICAgICAgdGhhdC5lbmZvcmNlRm9jdXMoKVxyXG5cclxuICAgICAgdmFyIGUgPSAkLkV2ZW50KCdzaG93bi53cGJjLm1vZGFsJywgeyByZWxhdGVkVGFyZ2V0OiBfcmVsYXRlZFRhcmdldCB9KVxyXG5cclxuICAgICAgdHJhbnNpdGlvbiA/XHJcbiAgICAgICAgdGhhdC4kZGlhbG9nIC8vIHdhaXQgZm9yIG1vZGFsIHRvIHNsaWRlIGluXHJcbiAgICAgICAgICAub25lKCdic1RyYW5zaXRpb25FbmQnLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHRoYXQuJGVsZW1lbnQudHJpZ2dlcignZm9jdXMnKS50cmlnZ2VyKGUpXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmVtdWxhdGVUcmFuc2l0aW9uRW5kKE1vZGFsLlRSQU5TSVRJT05fRFVSQVRJT04pIDpcclxuICAgICAgICB0aGF0LiRlbGVtZW50LnRyaWdnZXIoJ2ZvY3VzJykudHJpZ2dlcihlKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24gKGUpIHtcclxuICAgIGlmIChlKSBlLnByZXZlbnREZWZhdWx0KClcclxuXHJcbiAgICBlID0gJC5FdmVudCgnaGlkZS53cGJjLm1vZGFsJylcclxuXHJcbiAgICB0aGlzLiRlbGVtZW50LnRyaWdnZXIoZSlcclxuXHJcbiAgICBpZiAoIXRoaXMuaXNTaG93biB8fCBlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm5cclxuXHJcbiAgICB0aGlzLmlzU2hvd24gPSBmYWxzZVxyXG5cclxuICAgIHRoaXMuZXNjYXBlKClcclxuICAgIHRoaXMucmVzaXplKClcclxuXHJcbiAgICAkKGRvY3VtZW50KS5vZmYoJ2ZvY3VzaW4ud3BiYy5tb2RhbCcpXHJcblxyXG4gICAgdGhpcy4kZWxlbWVudFxyXG4gICAgICAucmVtb3ZlQ2xhc3MoJ2luJylcclxuICAgICAgLm9mZignY2xpY2suZGlzbWlzcy53cGJjLm1vZGFsJylcclxuICAgICAgLm9mZignbW91c2V1cC5kaXNtaXNzLndwYmMubW9kYWwnKVxyXG5cclxuICAgIHRoaXMuJGRpYWxvZy5vZmYoJ21vdXNlZG93bi5kaXNtaXNzLndwYmMubW9kYWwnKVxyXG5cclxuICAgICQuc3VwcG9ydC50cmFuc2l0aW9uICYmIHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2ZhZGUnKSA/XHJcbiAgICAgIHRoaXMuJGVsZW1lbnRcclxuICAgICAgICAub25lKCdic1RyYW5zaXRpb25FbmQnLCAkLnByb3h5KHRoaXMuaGlkZU1vZGFsLCB0aGlzKSlcclxuICAgICAgICAuZW11bGF0ZVRyYW5zaXRpb25FbmQoTW9kYWwuVFJBTlNJVElPTl9EVVJBVElPTikgOlxyXG4gICAgICB0aGlzLmhpZGVNb2RhbCgpXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUuZW5mb3JjZUZvY3VzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgJChkb2N1bWVudClcclxuICAgICAgLm9mZignZm9jdXNpbi53cGJjLm1vZGFsJykgLy8gZ3VhcmQgYWdhaW5zdCBpbmZpbml0ZSBmb2N1cyBsb29wXHJcbiAgICAgIC5vbignZm9jdXNpbi53cGJjLm1vZGFsJywgJC5wcm94eShmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgIGlmICh0aGlzLiRlbGVtZW50WzBdICE9PSBlLnRhcmdldCAmJiAhdGhpcy4kZWxlbWVudC5oYXMoZS50YXJnZXQpLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy4kZWxlbWVudC50cmlnZ2VyKCdmb2N1cycpXHJcbiAgICAgICAgfVxyXG4gICAgICB9LCB0aGlzKSlcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5lc2NhcGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICBpZiAodGhpcy5pc1Nob3duICYmIHRoaXMub3B0aW9ucy5rZXlib2FyZCkge1xyXG4gICAgICB0aGlzLiRlbGVtZW50Lm9uKCdrZXlkb3duLmRpc21pc3Mud3BiYy5tb2RhbCcsICQucHJveHkoZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBlLndoaWNoID09IDI3ICYmIHRoaXMuaGlkZSgpXHJcbiAgICAgIH0sIHRoaXMpKVxyXG4gICAgfSBlbHNlIGlmICghdGhpcy5pc1Nob3duKSB7XHJcbiAgICAgIHRoaXMuJGVsZW1lbnQub2ZmKCdrZXlkb3duLmRpc21pc3Mud3BiYy5tb2RhbCcpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUucmVzaXplID0gZnVuY3Rpb24gKCkge1xyXG4gICAgaWYgKHRoaXMuaXNTaG93bikge1xyXG4gICAgICAkKHdpbmRvdykub24oJ3Jlc2l6ZS53cGJjLm1vZGFsJywgJC5wcm94eSh0aGlzLmhhbmRsZVVwZGF0ZSwgdGhpcykpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAkKHdpbmRvdykub2ZmKCdyZXNpemUud3BiYy5tb2RhbCcpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUuaGlkZU1vZGFsID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIHRoYXQgPSB0aGlzXHJcbiAgICB0aGlzLiRlbGVtZW50LmhpZGUoKVxyXG4gICAgdGhpcy5iYWNrZHJvcChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHRoYXQuJGJvZHkucmVtb3ZlQ2xhc3MoJ21vZGFsLW9wZW4nKVxyXG4gICAgICB0aGF0LnJlc2V0QWRqdXN0bWVudHMoKVxyXG4gICAgICB0aGF0LnJlc2V0U2Nyb2xsYmFyKClcclxuICAgICAgdGhhdC4kZWxlbWVudC50cmlnZ2VyKCdoaWRkZW4ud3BiYy5tb2RhbCcpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLnJlbW92ZUJhY2tkcm9wID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdGhpcy4kYmFja2Ryb3AgJiYgdGhpcy4kYmFja2Ryb3AucmVtb3ZlKClcclxuICAgIHRoaXMuJGJhY2tkcm9wID0gbnVsbFxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLmJhY2tkcm9wID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XHJcbiAgICB2YXIgdGhhdCA9IHRoaXNcclxuICAgIHZhciBhbmltYXRlID0gdGhpcy4kZWxlbWVudC5oYXNDbGFzcygnZmFkZScpID8gJ2ZhZGUnIDogJydcclxuXHJcbiAgICBpZiAodGhpcy5pc1Nob3duICYmIHRoaXMub3B0aW9ucy5iYWNrZHJvcCkge1xyXG4gICAgICB2YXIgZG9BbmltYXRlID0gJC5zdXBwb3J0LnRyYW5zaXRpb24gJiYgYW5pbWF0ZVxyXG5cclxuICAgICAgdGhpcy4kYmFja2Ryb3AgPSAkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKVxyXG4gICAgICAgIC5hZGRDbGFzcygnbW9kYWwtYmFja2Ryb3AgJyArIGFuaW1hdGUpXHJcbiAgICAgICAgLmFwcGVuZFRvKHRoaXMuJGJvZHkpXHJcblxyXG4gICAgICB0aGlzLiRlbGVtZW50Lm9uKCdjbGljay5kaXNtaXNzLndwYmMubW9kYWwnLCAkLnByb3h5KGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaWdub3JlQmFja2Ryb3BDbGljaykge1xyXG4gICAgICAgICAgdGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrID0gZmFsc2VcclxuICAgICAgICAgIHJldHVyblxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZS50YXJnZXQgIT09IGUuY3VycmVudFRhcmdldCkgcmV0dXJuXHJcbiAgICAgICAgdGhpcy5vcHRpb25zLmJhY2tkcm9wID09ICdzdGF0aWMnXHJcbiAgICAgICAgICA/IHRoaXMuJGVsZW1lbnRbMF0uZm9jdXMoKVxyXG4gICAgICAgICAgOiB0aGlzLmhpZGUoKVxyXG4gICAgICB9LCB0aGlzKSlcclxuXHJcbiAgICAgIGlmIChkb0FuaW1hdGUpIHRoaXMuJGJhY2tkcm9wWzBdLm9mZnNldFdpZHRoIC8vIGZvcmNlIHJlZmxvd1xyXG5cclxuICAgICAgdGhpcy4kYmFja2Ryb3AuYWRkQ2xhc3MoJ2luJylcclxuXHJcbiAgICAgIGlmICghY2FsbGJhY2spIHJldHVyblxyXG5cclxuICAgICAgZG9BbmltYXRlID9cclxuICAgICAgICB0aGlzLiRiYWNrZHJvcFxyXG4gICAgICAgICAgLm9uZSgnYnNUcmFuc2l0aW9uRW5kJywgY2FsbGJhY2spXHJcbiAgICAgICAgICAuZW11bGF0ZVRyYW5zaXRpb25FbmQoTW9kYWwuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTikgOlxyXG4gICAgICAgIGNhbGxiYWNrKClcclxuXHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmlzU2hvd24gJiYgdGhpcy4kYmFja2Ryb3ApIHtcclxuICAgICAgdGhpcy4kYmFja2Ryb3AucmVtb3ZlQ2xhc3MoJ2luJylcclxuXHJcbiAgICAgIHZhciBjYWxsYmFja1JlbW92ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB0aGF0LnJlbW92ZUJhY2tkcm9wKClcclxuICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjaygpXHJcbiAgICAgIH1cclxuICAgICAgJC5zdXBwb3J0LnRyYW5zaXRpb24gJiYgdGhpcy4kZWxlbWVudC5oYXNDbGFzcygnZmFkZScpID9cclxuICAgICAgICB0aGlzLiRiYWNrZHJvcFxyXG4gICAgICAgICAgLm9uZSgnYnNUcmFuc2l0aW9uRW5kJywgY2FsbGJhY2tSZW1vdmUpXHJcbiAgICAgICAgICAuZW11bGF0ZVRyYW5zaXRpb25FbmQoTW9kYWwuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTikgOlxyXG4gICAgICAgIGNhbGxiYWNrUmVtb3ZlKClcclxuXHJcbiAgICB9IGVsc2UgaWYgKGNhbGxiYWNrKSB7XHJcbiAgICAgIGNhbGxiYWNrKClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIHRoZXNlIGZvbGxvd2luZyBtZXRob2RzIGFyZSB1c2VkIHRvIGhhbmRsZSBvdmVyZmxvd2luZyBtb2RhbHNcclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLmhhbmRsZVVwZGF0ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHRoaXMuYWRqdXN0RGlhbG9nKClcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5hZGp1c3REaWFsb2cgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgbW9kYWxJc092ZXJmbG93aW5nID0gdGhpcy4kZWxlbWVudFswXS5zY3JvbGxIZWlnaHQgPiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0XHJcblxyXG4gICAgdGhpcy4kZWxlbWVudC5jc3Moe1xyXG4gICAgICBwYWRkaW5nTGVmdDogICF0aGlzLmJvZHlJc092ZXJmbG93aW5nICYmIG1vZGFsSXNPdmVyZmxvd2luZyA/IHRoaXMuc2Nyb2xsYmFyV2lkdGggOiAnJyxcclxuICAgICAgcGFkZGluZ1JpZ2h0OiB0aGlzLmJvZHlJc092ZXJmbG93aW5nICYmICFtb2RhbElzT3ZlcmZsb3dpbmcgPyB0aGlzLnNjcm9sbGJhcldpZHRoIDogJydcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUucmVzZXRBZGp1c3RtZW50cyA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHRoaXMuJGVsZW1lbnQuY3NzKHtcclxuICAgICAgcGFkZGluZ0xlZnQ6ICcnLFxyXG4gICAgICBwYWRkaW5nUmlnaHQ6ICcnXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLmNoZWNrU2Nyb2xsYmFyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIGZ1bGxXaW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoXHJcbiAgICBpZiAoIWZ1bGxXaW5kb3dXaWR0aCkgeyAvLyB3b3JrYXJvdW5kIGZvciBtaXNzaW5nIHdpbmRvdy5pbm5lcldpZHRoIGluIElFOFxyXG4gICAgICB2YXIgZG9jdW1lbnRFbGVtZW50UmVjdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxyXG4gICAgICBmdWxsV2luZG93V2lkdGggPSBkb2N1bWVudEVsZW1lbnRSZWN0LnJpZ2h0IC0gTWF0aC5hYnMoZG9jdW1lbnRFbGVtZW50UmVjdC5sZWZ0KVxyXG4gICAgfVxyXG4gICAgdGhpcy5ib2R5SXNPdmVyZmxvd2luZyA9IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggPCBmdWxsV2luZG93V2lkdGhcclxuICAgIHRoaXMuc2Nyb2xsYmFyV2lkdGggPSB0aGlzLm1lYXN1cmVTY3JvbGxiYXIoKVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLnNldFNjcm9sbGJhciA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBib2R5UGFkID0gcGFyc2VJbnQoKHRoaXMuJGJvZHkuY3NzKCdwYWRkaW5nLXJpZ2h0JykgfHwgMCksIDEwKVxyXG4gICAgdGhpcy5vcmlnaW5hbEJvZHlQYWQgPSBkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCB8fCAnJ1xyXG4gICAgaWYgKHRoaXMuYm9keUlzT3ZlcmZsb3dpbmcpIHRoaXMuJGJvZHkuY3NzKCdwYWRkaW5nLXJpZ2h0JywgYm9keVBhZCArIHRoaXMuc2Nyb2xsYmFyV2lkdGgpXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUucmVzZXRTY3JvbGxiYXIgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB0aGlzLiRib2R5LmNzcygncGFkZGluZy1yaWdodCcsIHRoaXMub3JpZ2luYWxCb2R5UGFkKVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLm1lYXN1cmVTY3JvbGxiYXIgPSBmdW5jdGlvbiAoKSB7IC8vIHRoeCB3YWxzaFxyXG4gICAgdmFyIHNjcm9sbERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXHJcbiAgICBzY3JvbGxEaXYuY2xhc3NOYW1lID0gJ21vZGFsLXNjcm9sbGJhci1tZWFzdXJlJ1xyXG4gICAgdGhpcy4kYm9keS5hcHBlbmQoc2Nyb2xsRGl2KVxyXG4gICAgdmFyIHNjcm9sbGJhcldpZHRoID0gc2Nyb2xsRGl2Lm9mZnNldFdpZHRoIC0gc2Nyb2xsRGl2LmNsaWVudFdpZHRoXHJcbiAgICB0aGlzLiRib2R5WzBdLnJlbW92ZUNoaWxkKHNjcm9sbERpdilcclxuICAgIHJldHVybiBzY3JvbGxiYXJXaWR0aFxyXG4gIH1cclxuXHJcblxyXG4gIC8vIE1PREFMIFBMVUdJTiBERUZJTklUSU9OXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiAgZnVuY3Rpb24gUGx1Z2luKG9wdGlvbiwgX3JlbGF0ZWRUYXJnZXQpIHtcclxuICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgJHRoaXMgICA9ICQodGhpcylcclxuICAgICAgdmFyIGRhdGEgICAgPSAkdGhpcy5kYXRhKCd3cGJjLm1vZGFsJylcclxuICAgICAgdmFyIG9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgTW9kYWwuREVGQVVMVFMsICR0aGlzLmRhdGEoKSwgdHlwZW9mIG9wdGlvbiA9PSAnb2JqZWN0JyAmJiBvcHRpb24pXHJcblxyXG4gICAgICBpZiAoIWRhdGEpICR0aGlzLmRhdGEoJ3dwYmMubW9kYWwnLCAoZGF0YSA9IG5ldyBNb2RhbCh0aGlzLCBvcHRpb25zKSkpXHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0oX3JlbGF0ZWRUYXJnZXQpXHJcbiAgICAgIGVsc2UgaWYgKG9wdGlvbnMuc2hvdykgZGF0YS5zaG93KF9yZWxhdGVkVGFyZ2V0KVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHZhciBvbGQgPSAkLmZuLndwYmNfbXlfbW9kYWxcclxuXHJcbiAgJC5mbi53cGJjX215X21vZGFsICAgICAgICAgICAgID0gUGx1Z2luXHJcbiAgJC5mbi53cGJjX215X21vZGFsLkNvbnN0cnVjdG9yID0gTW9kYWxcclxuXHJcblxyXG4gIC8vIE1PREFMIE5PIENPTkZMSUNUXHJcbiAgLy8gPT09PT09PT09PT09PT09PT1cclxuXHJcbiAgJC5mbi53cGJjX215X21vZGFsLm5vQ29uZmxpY3QgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAkLmZuLndwYmNfbXlfbW9kYWwgPSBvbGRcclxuICAgIHJldHVybiB0aGlzXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gTU9EQUwgREFUQS1BUElcclxuICAvLyA9PT09PT09PT09PT09PVxyXG5cclxuICAkKGRvY3VtZW50KS5vbignY2xpY2sud3BiYy5tb2RhbC5kYXRhLWFwaScsICdbZGF0YS10b2dnbGU9XCJ3cGJjX215X21vZGFsXCJdJywgZnVuY3Rpb24gKGUpIHtcclxuICAgIHZhciAkdGhpcyAgID0gJCh0aGlzKVxyXG4gICAgdmFyIGhyZWYgICAgPSAkdGhpcy5hdHRyKCdocmVmJylcclxuICAgIHZhciAkdGFyZ2V0ID0gJCgkdGhpcy5hdHRyKCdkYXRhLXRhcmdldCcpIHx8IChocmVmICYmIGhyZWYucmVwbGFjZSgvLiooPz0jW15cXHNdKyQpLywgJycpKSkgLy8gc3RyaXAgZm9yIGllN1xyXG4gICAgdmFyIG9wdGlvbiAgPSAkdGFyZ2V0LmRhdGEoJ3dwYmMubW9kYWwnKSA/ICd0b2dnbGUnIDogJC5leHRlbmQoeyByZW1vdGU6ICEvIy8udGVzdChocmVmKSAmJiBocmVmIH0sICR0YXJnZXQuZGF0YSgpLCAkdGhpcy5kYXRhKCkpXHJcblxyXG4gICAgaWYgKCR0aGlzLmlzKCdhJykpIGUucHJldmVudERlZmF1bHQoKVxyXG5cclxuICAgICR0YXJnZXQub25lKCdzaG93LndwYmMubW9kYWwnLCBmdW5jdGlvbiAoc2hvd0V2ZW50KSB7XHJcbiAgICAgIGlmIChzaG93RXZlbnQuaXNEZWZhdWx0UHJldmVudGVkKCkpIHJldHVybiAvLyBvbmx5IHJlZ2lzdGVyIGZvY3VzIHJlc3RvcmVyIGlmIG1vZGFsIHdpbGwgYWN0dWFsbHkgZ2V0IHNob3duXHJcbiAgICAgICR0YXJnZXQub25lKCdoaWRkZW4ud3BiYy5tb2RhbCcsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAkdGhpcy5pcygnOnZpc2libGUnKSAmJiAkdGhpcy50cmlnZ2VyKCdmb2N1cycpXHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gICAgUGx1Z2luLmNhbGwoJHRhcmdldCwgb3B0aW9uLCB0aGlzKVxyXG4gIH0pXHJcblxyXG59KGpRdWVyeSk7XHJcblxyXG5cclxuK2Z1bmN0aW9uICgkKSB7XHJcbiAgJ3VzZSBzdHJpY3QnO1xyXG5cclxuICAvLyBEUk9QRE9XTiBDTEFTUyBERUZJTklUSU9OXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuICB2YXIgYmFja2Ryb3AgPSAnLmRyb3Bkb3duLWJhY2tkcm9wJ1xyXG4gIHZhciB0b2dnbGUgICA9ICdbZGF0YS10b2dnbGU9XCJ3cGJjX2Ryb3Bkb3duXCJdJ1xyXG4gIHZhciBEcm9wZG93biA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XHJcbiAgICAkKGVsZW1lbnQpLm9uKCdjbGljay53cGJjLmRyb3Bkb3duJywgdGhpcy50b2dnbGUpXHJcbiAgfVxyXG5cclxuICBEcm9wZG93bi5WRVJTSU9OID0gJzMuMy41J1xyXG5cclxuICBmdW5jdGlvbiBnZXRQYXJlbnQoJHRoaXMpIHtcclxuICAgIHZhciBzZWxlY3RvciA9ICR0aGlzLmF0dHIoJ2RhdGEtdGFyZ2V0JylcclxuXHJcbiAgICBpZiAoIXNlbGVjdG9yKSB7XHJcbiAgICAgIHNlbGVjdG9yID0gJHRoaXMuYXR0cignaHJlZicpXHJcbiAgICAgIHNlbGVjdG9yID0gc2VsZWN0b3IgJiYgLyNbQS1aYS16XS8udGVzdChzZWxlY3RvcikgJiYgc2VsZWN0b3IucmVwbGFjZSgvLiooPz0jW15cXHNdKiQpLywgJycpIC8vIHN0cmlwIGZvciBpZTdcclxuICAgIH1cclxuXHJcbiAgICB2YXIgJHBhcmVudCA9IHNlbGVjdG9yICYmICQoc2VsZWN0b3IpXHJcblxyXG4gICAgcmV0dXJuICRwYXJlbnQgJiYgJHBhcmVudC5sZW5ndGggPyAkcGFyZW50IDogJHRoaXMucGFyZW50KClcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGNsZWFyTWVudXMoZSkge1xyXG4gICAgaWYgKGUgJiYgZS53aGljaCA9PT0gMykgcmV0dXJuXHJcbiAgICAkKGJhY2tkcm9wKS5yZW1vdmUoKVxyXG4gICAgJCh0b2dnbGUpLmVhY2goZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgJHRoaXMgICAgICAgICA9ICQodGhpcylcclxuICAgICAgdmFyICRwYXJlbnQgICAgICAgPSBnZXRQYXJlbnQoJHRoaXMpXHJcbiAgICAgIHZhciByZWxhdGVkVGFyZ2V0ID0geyByZWxhdGVkVGFyZ2V0OiB0aGlzIH1cclxuXHJcbiAgICAgIGlmICghJHBhcmVudC5oYXNDbGFzcygnb3BlbicpKSByZXR1cm5cclxuXHJcbiAgICAgIGlmIChlICYmIGUudHlwZSA9PSAnY2xpY2snICYmIC9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QoZS50YXJnZXQudGFnTmFtZSkgJiYgJC5jb250YWlucygkcGFyZW50WzBdLCBlLnRhcmdldCkpIHJldHVyblxyXG5cclxuICAgICAgJHBhcmVudC50cmlnZ2VyKGUgPSAkLkV2ZW50KCdoaWRlLndwYmMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KSlcclxuXHJcbiAgICAgIGlmIChlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm5cclxuXHJcbiAgICAgICR0aGlzLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKVxyXG4gICAgICAkcGFyZW50LnJlbW92ZUNsYXNzKCdvcGVuJykudHJpZ2dlcignaGlkZGVuLndwYmMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIERyb3Bkb3duLnByb3RvdHlwZS50b2dnbGUgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgdmFyICR0aGlzID0gJCh0aGlzKVxyXG5cclxuICAgIGlmICgkdGhpcy5pcygnLmRpc2FibGVkLCA6ZGlzYWJsZWQnKSkgcmV0dXJuXHJcblxyXG4gICAgdmFyICRwYXJlbnQgID0gZ2V0UGFyZW50KCR0aGlzKVxyXG4gICAgdmFyIGlzQWN0aXZlID0gJHBhcmVudC5oYXNDbGFzcygnb3BlbicpXHJcblxyXG4gICAgY2xlYXJNZW51cygpXHJcblxyXG4gICAgaWYgKCFpc0FjdGl2ZSkge1xyXG4gICAgICBpZiAoJ29udG91Y2hzdGFydCcgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmICEkcGFyZW50LmNsb3Nlc3QoJy5uYXZiYXItbmF2JykubGVuZ3RoKSB7XHJcbiAgICAgICAgLy8gaWYgbW9iaWxlIHdlIHVzZSBhIGJhY2tkcm9wIGJlY2F1c2UgY2xpY2sgZXZlbnRzIGRvbid0IGRlbGVnYXRlXHJcbiAgICAgICAgJChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSlcclxuICAgICAgICAgIC5hZGRDbGFzcygnZHJvcGRvd24tYmFja2Ryb3AnKVxyXG4gICAgICAgICAgLmluc2VydEFmdGVyKCQodGhpcykpXHJcbiAgICAgICAgICAub24oJ2NsaWNrJywgY2xlYXJNZW51cylcclxuICAgICAgfVxyXG5cclxuICAgICAgdmFyIHJlbGF0ZWRUYXJnZXQgPSB7IHJlbGF0ZWRUYXJnZXQ6IHRoaXMgfVxyXG4gICAgICAkcGFyZW50LnRyaWdnZXIoZSA9ICQuRXZlbnQoJ3Nob3cud3BiYy5kcm9wZG93bicsIHJlbGF0ZWRUYXJnZXQpKVxyXG5cclxuICAgICAgaWYgKGUuaXNEZWZhdWx0UHJldmVudGVkKCkpIHJldHVyblxyXG5cclxuICAgICAgJHRoaXNcclxuICAgICAgICAudHJpZ2dlcignZm9jdXMnKVxyXG4gICAgICAgIC5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ3RydWUnKVxyXG5cclxuICAgICAgJHBhcmVudFxyXG4gICAgICAgIC50b2dnbGVDbGFzcygnb3BlbicpXHJcbiAgICAgICAgLnRyaWdnZXIoJ3Nob3duLndwYmMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZVxyXG4gIH1cclxuXHJcbiAgRHJvcGRvd24ucHJvdG90eXBlLmtleWRvd24gPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgaWYgKCEvKDM4fDQwfDI3fDMyKS8udGVzdChlLndoaWNoKSB8fCAvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGUudGFyZ2V0LnRhZ05hbWUpKSByZXR1cm5cclxuXHJcbiAgICB2YXIgJHRoaXMgPSAkKHRoaXMpXHJcblxyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXHJcblxyXG4gICAgaWYgKCR0aGlzLmlzKCcuZGlzYWJsZWQsIDpkaXNhYmxlZCcpKSByZXR1cm5cclxuXHJcbiAgICB2YXIgJHBhcmVudCAgPSBnZXRQYXJlbnQoJHRoaXMpXHJcbiAgICB2YXIgaXNBY3RpdmUgPSAkcGFyZW50Lmhhc0NsYXNzKCdvcGVuJylcclxuXHJcbiAgICBpZiAoIWlzQWN0aXZlICYmIGUud2hpY2ggIT0gMjcgfHwgaXNBY3RpdmUgJiYgZS53aGljaCA9PSAyNykge1xyXG4gICAgICBpZiAoZS53aGljaCA9PSAyNykgJHBhcmVudC5maW5kKHRvZ2dsZSkudHJpZ2dlcignZm9jdXMnKVxyXG4gICAgICByZXR1cm4gJHRoaXMudHJpZ2dlcignY2xpY2snKVxyXG4gICAgfVxyXG5cclxuICAgIHZhciBkZXNjID0gJyBsaTpub3QoLmRpc2FibGVkKTp2aXNpYmxlIGEnXHJcbiAgICB2YXIgJGl0ZW1zID0gJHBhcmVudC5maW5kKCcuZHJvcGRvd24tbWVudScgKyBkZXNjICsgJywudWlfZHJvcGRvd25fbWVudScgKyBkZXNjKVxyXG5cclxuICAgIGlmICghJGl0ZW1zLmxlbmd0aCkgcmV0dXJuXHJcblxyXG4gICAgdmFyIGluZGV4ID0gJGl0ZW1zLmluZGV4KGUudGFyZ2V0KVxyXG5cclxuICAgIGlmIChlLndoaWNoID09IDM4ICYmIGluZGV4ID4gMCkgICAgICAgICAgICAgICAgIGluZGV4LS0gICAgICAgICAvLyB1cFxyXG4gICAgaWYgKGUud2hpY2ggPT0gNDAgJiYgaW5kZXggPCAkaXRlbXMubGVuZ3RoIC0gMSkgaW5kZXgrKyAgICAgICAgIC8vIGRvd25cclxuICAgIGlmICghfmluZGV4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gMFxyXG5cclxuICAgICRpdGVtcy5lcShpbmRleCkudHJpZ2dlcignZm9jdXMnKVxyXG4gIH1cclxuXHJcblxyXG4gIC8vIERST1BET1dOIFBMVUdJTiBERUZJTklUSU9OXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiAgZnVuY3Rpb24gUGx1Z2luKG9wdGlvbikge1xyXG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciAkdGhpcyA9ICQodGhpcylcclxuICAgICAgdmFyIGRhdGEgID0gJHRoaXMuZGF0YSgnd3BiYy5kcm9wZG93bicpXHJcblxyXG4gICAgICBpZiAoIWRhdGEpICR0aGlzLmRhdGEoJ3dwYmMuZHJvcGRvd24nLCAoZGF0YSA9IG5ldyBEcm9wZG93bih0aGlzKSkpXHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0uY2FsbCgkdGhpcylcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICB2YXIgb2xkID0gJC5mbi53cGJjX2Ryb3Bkb3duXHJcblxyXG4gICQuZm4ud3BiY19kcm9wZG93biAgICAgICAgICAgICA9IFBsdWdpblxyXG4gICQuZm4ud3BiY19kcm9wZG93bi5Db25zdHJ1Y3RvciA9IERyb3Bkb3duXHJcblxyXG5cclxuICAvLyBEUk9QRE9XTiBOTyBDT05GTElDVFxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gICQuZm4ud3BiY19kcm9wZG93bi5ub0NvbmZsaWN0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgJC5mbi53cGJjX2Ryb3Bkb3duID0gb2xkXHJcbiAgICByZXR1cm4gdGhpc1xyXG4gIH1cclxuXHJcblxyXG4gIC8vIEFQUExZIFRPIFNUQU5EQVJEIERST1BET1dOIEVMRU1FTlRTXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiAgJChkb2N1bWVudClcclxuICAgIC5vbignY2xpY2sud3BiYy5kcm9wZG93bi5kYXRhLWFwaScsIGNsZWFyTWVudXMpXHJcbiAgICAub24oJ2NsaWNrLndwYmMuZHJvcGRvd24uZGF0YS1hcGknLCAnLmRyb3Bkb3duIGZvcm0nLCBmdW5jdGlvbiAoZSkgeyBlLnN0b3BQcm9wYWdhdGlvbigpIH0pXHJcbiAgICAub24oJ2NsaWNrLndwYmMuZHJvcGRvd24uZGF0YS1hcGknLCB0b2dnbGUsIERyb3Bkb3duLnByb3RvdHlwZS50b2dnbGUpXHJcbiAgICAub24oJ2tleWRvd24ud3BiYy5kcm9wZG93bi5kYXRhLWFwaScsIHRvZ2dsZSwgRHJvcGRvd24ucHJvdG90eXBlLmtleWRvd24pXHJcbiAgICAub24oJ2tleWRvd24ud3BiYy5kcm9wZG93bi5kYXRhLWFwaScsICcuZHJvcGRvd24tbWVudScsIERyb3Bkb3duLnByb3RvdHlwZS5rZXlkb3duKVxyXG4gICAgLm9uKCdrZXlkb3duLndwYmMuZHJvcGRvd24uZGF0YS1hcGknLCAnLnVpX2Ryb3Bkb3duX21lbnUnLCBEcm9wZG93bi5wcm90b3R5cGUua2V5ZG93bilcclxuXHJcbn0oalF1ZXJ5KTtcclxuIl0sImZpbGUiOiJhc3NldHMvbGlicy91aS9fb3V0L2Ryb3Bkb3duX21vZGFsLmpzIn0=
|
assets/libs/ui/_out/dropdown_modal.min.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
-
"use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");!function(){var t=jQuery.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1==t[0]&&9==t[1]&&t[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(),function(s){function r(t,e){this.options=e,this.$body=s(document.body),this.$element=s(t),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,s.proxy(function(){this.$element.trigger("loaded.wpbc.modal")},this))}function n(i,n){return this.each(function(){var t=s(this),e=t.data("wpbc.modal"),o=s.extend({},r.DEFAULTS,t.data(),"object"==_typeof(i)&&i);e||t.data("wpbc.modal",e=new r(this,o)),"string"==typeof i?e[i](n):o.show&&e.show(n)})}r.VERSION="3.3.5",r.TRANSITION_DURATION=300,r.BACKDROP_TRANSITION_DURATION=150,r.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},r.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},r.prototype.show=function(o){var i=this,t=s.Event("show.wpbc.modal",{relatedTarget:o});this.$element.trigger(t),this.isShown||t.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.wpbc.modal",'[data-dismiss="modal"]',s.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.wpbc.modal",function(){i.$element.one("mouseup.dismiss.wpbc.modal",function(t){s(t.target).is(i.$element)&&(i.ignoreBackdropClick=!0)})}),this.backdrop(function(){var t=s.support.transition&&i.$element.hasClass("fade");i.$element.parent().length||i.$element.appendTo(i.$body),i.$element.show().scrollTop(0),i.adjustDialog(),t&&i.$element[0].offsetWidth,i.$element.addClass("in"),i.enforceFocus();var e=s.Event("shown.wpbc.modal",{relatedTarget:o});t?i.$dialog.one("bsTransitionEnd",function(){i.$element.trigger("focus").trigger(e)}).emulateTransitionEnd(r.TRANSITION_DURATION):i.$element.trigger("focus").trigger(e)}))},r.prototype.hide=function(t){t&&t.preventDefault(),t=s.Event("hide.wpbc.modal"),this.$element.trigger(t),this.isShown&&!t.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),s(document).off("focusin.wpbc.modal"),this.$element.removeClass("in").off("click.dismiss.wpbc.modal").off("mouseup.dismiss.wpbc.modal"),this.$dialog.off("mousedown.dismiss.wpbc.modal"),s.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",s.proxy(this.hideModal,this)).emulateTransitionEnd(r.TRANSITION_DURATION):this.hideModal())},r.prototype.enforceFocus=function(){s(document).off("focusin.wpbc.modal").on("focusin.wpbc.modal",s.proxy(function(t){this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},r.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.wpbc.modal",s.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.wpbc.modal")},r.prototype.resize=function(){this.isShown?s(window).on("resize.wpbc.modal",s.proxy(this.handleUpdate,this)):s(window).off("resize.wpbc.modal")},r.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.wpbc.modal")})},r.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},r.prototype.backdrop=function(t){var e,o=this,i=this.$element.hasClass("fade")?"fade":"";this.isShown&&this.options.backdrop?(e=s.support.transition&&i,this.$backdrop=s(document.createElement("div")).addClass("modal-backdrop "+i).appendTo(this.$body),this.$element.on("click.dismiss.wpbc.modal",s.proxy(function(t){this.ignoreBackdropClick?this.ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide())},this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),t&&(e?this.$backdrop.one("bsTransitionEnd",t).emulateTransitionEnd(r.BACKDROP_TRANSITION_DURATION):t())):!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e=function(){o.removeBackdrop(),t&&t()},s.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",e).emulateTransitionEnd(r.BACKDROP_TRANSITION_DURATION):e()):t&&t()},r.prototype.handleUpdate=function(){this.adjustDialog()},r.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},r.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},r.prototype.checkScrollbar=function(){var t,e=window.innerWidth;e||(e=(t=document.documentElement.getBoundingClientRect()).right-Math.abs(t.left)),this.bodyIsOverflowing=document.body.clientWidth<e,this.scrollbarWidth=this.measureScrollbar()},r.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",t+this.scrollbarWidth)},r.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},r.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var t=s.fn.wpbc_my_modal;s.fn.wpbc_my_modal=n,s.fn.wpbc_my_modal.Constructor=r,s.fn.wpbc_my_modal.noConflict=function(){return s.fn.wpbc_my_modal=t,this},s(document).on("click.wpbc.modal.data-api",'[data-toggle="wpbc_my_modal"]',function(t){var e=s(this),o=e.attr("href"),i=s(e.attr("data-target")||o&&o.replace(/.*(?=#[^\s]+$)/,"")),o=i.data("wpbc.modal")?"toggle":s.extend({remote:!/#/.test(o)&&o},i.data(),e.data());e.is("a")&&t.preventDefault(),i.one("show.wpbc.modal",function(t){t.isDefaultPrevented()||i.one("hidden.wpbc.modal",function(){e.is(":visible")&&e.trigger("focus")})}),n.call(i,o,this)})}(jQuery),function(n){function i(t){n(t).on("click.wpbc.dropdown",this.toggle)}var s='[data-toggle="wpbc_dropdown"]';function r(t){var e=t.attr("data-target"),e=(e=e||(e=t.attr("href"))&&/#[A-Za-z]/.test(e)&&e.replace(/.*(?=#[^\s]*$)/,""))&&n(e);return e&&e.length?e:t.parent()}function a(i){i&&3===i.which||(n(".dropdown-backdrop").remove(),n(s).each(function(){var t=n(this),e=r(t),o={relatedTarget:this};e.hasClass("open")&&(i&&"click"==i.type&&/input|textarea/i.test(i.target.tagName)&&n.contains(e[0],i.target)||(e.trigger(i=n.Event("hide.wpbc.dropdown",o)),i.isDefaultPrevented()||(t.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.wpbc.dropdown",o))))}))}i.VERSION="3.3.5",i.prototype.toggle=function(t){var e=n(this);if(!e.is(".disabled, :disabled")){var o=r(e),i=o.hasClass("open");if(a(),!i){"ontouchstart"in document.documentElement&&!o.closest(".navbar-nav").length&&n(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(n(this)).on("click",a);i={relatedTarget:this};if(o.trigger(t=n.Event("show.wpbc.dropdown",i)),t.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),o.toggleClass("open").trigger("shown.wpbc.dropdown",i)}return!1}},i.prototype.keydown=function(t){if(/(38|40|27|32)/.test(t.which)&&!/input|textarea/i.test(t.target.tagName)){var e=n(this);if(t.preventDefault(),t.stopPropagation(),!e.is(".disabled, :disabled")){var o=r(e),i=o.hasClass("open");if(!i&&27!=t.which||i&&27==t.which)return 27==t.which&&o.find(s).trigger("focus"),e.trigger("click");e=
|
2 |
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2xpYnMvdWkvX291dC9kcm9wZG93bl9tb2RhbC5taW4uanMiLCJzb3VyY2VzIjpbImFzc2V0cy9saWJzL3VpL19vdXQvZHJvcGRvd25fbW9kYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgcmV0dXJuIF90eXBlb2YgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBcInN5bWJvbFwiID09IHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPyBmdW5jdGlvbiAob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9IDogZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gb2JqICYmIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9LCBfdHlwZW9mKG9iaik7IH1cblxuLyohXHJcbiAqIEdlbmVyYXRlZCB1c2luZyB0aGUgQm9vdHN0cmFwIEN1c3RvbWl6ZXIgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tL2N1c3RvbWl6ZS8/aWQ9ZjRiNGM5Y2I4NWRmNzU3Y2EwOGMpXHJcbiAqIENvbmZpZyBzYXZlZCB0byBjb25maWcuanNvbiBhbmQgaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZjRiNGM5Y2I4NWRmNzU3Y2EwOGNcclxuICovXG5pZiAodHlwZW9mIGpRdWVyeSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdCb290c3RyYXBcXCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5Jyk7XG59XG5cbitmdW5jdGlvbiAoJCkge1xuICAndXNlIHN0cmljdCc7XG5cbiAgdmFyIHZlcnNpb24gPSAkLmZuLmpxdWVyeS5zcGxpdCgnICcpWzBdLnNwbGl0KCcuJyk7XG5cbiAgaWYgKHZlcnNpb25bMF0gPCAyICYmIHZlcnNpb25bMV0gPCA5IHx8IHZlcnNpb25bMF0gPT0gMSAmJiB2ZXJzaW9uWzFdID09IDkgJiYgdmVyc2lvblsyXSA8IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Jvb3RzdHJhcFxcJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBqUXVlcnkgdmVyc2lvbiAxLjkuMSBvciBoaWdoZXInKTtcbiAgfVxufShqUXVlcnkpO1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqIEJvb3RzdHJhcDogbW9kYWwuanMgdjMuMy41XHJcbiAqIGh0dHA6Ly9nZXRib290c3RyYXAuY29tL2phdmFzY3JpcHQvI21vZGFsc1xyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogQ29weXJpZ2h0IDIwMTEtMjAxNSBUd2l0dGVyLCBJbmMuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXHJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4rZnVuY3Rpb24gKCQpIHtcbiAgJ3VzZSBzdHJpY3QnOyAvLyBNT0RBTCBDTEFTUyBERUZJTklUSU9OXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT1cblxuICB2YXIgTW9kYWwgPSBmdW5jdGlvbiBNb2RhbChlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLiRib2R5ID0gJChkb2N1bWVudC5ib2R5KTtcbiAgICB0aGlzLiRlbGVtZW50ID0gJChlbGVtZW50KTtcbiAgICB0aGlzLiRkaWFsb2cgPSB0aGlzLiRlbGVtZW50LmZpbmQoJy5tb2RhbC1kaWFsb2cnKTtcbiAgICB0aGlzLiRiYWNrZHJvcCA9IG51bGw7XG4gICAgdGhpcy5pc1Nob3duID0gbnVsbDtcbiAgICB0aGlzLm9yaWdpbmFsQm9keVBhZCA9IG51bGw7XG4gICAgdGhpcy5zY3JvbGxiYXJXaWR0aCA9IDA7XG4gICAgdGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnJlbW90ZSkge1xuICAgICAgdGhpcy4kZWxlbWVudC5maW5kKCcubW9kYWwtY29udGVudCcpLmxvYWQodGhpcy5vcHRpb25zLnJlbW90ZSwgJC5wcm94eShmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuJGVsZW1lbnQudHJpZ2dlcignbG9hZGVkLndwYmMubW9kYWwnKTtcbiAgICAgIH0sIHRoaXMpKTtcbiAgICB9XG4gIH07XG5cbiAgTW9kYWwuVkVSU0lPTiA9ICczLjMuNSc7XG4gIE1vZGFsLlRSQU5TSVRJT05fRFVSQVRJT04gPSAzMDA7XG4gIE1vZGFsLkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04gPSAxNTA7XG4gIE1vZGFsLkRFRkFVTFRTID0ge1xuICAgIGJhY2tkcm9wOiB0cnVlLFxuICAgIGtleWJvYXJkOiB0cnVlLFxuICAgIHNob3c6IHRydWVcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUudG9nZ2xlID0gZnVuY3Rpb24gKF9yZWxhdGVkVGFyZ2V0KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNTaG93biA/IHRoaXMuaGlkZSgpIDogdGhpcy5zaG93KF9yZWxhdGVkVGFyZ2V0KTtcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uIChfcmVsYXRlZFRhcmdldCkge1xuICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICB2YXIgZSA9ICQuRXZlbnQoJ3Nob3cud3BiYy5tb2RhbCcsIHtcbiAgICAgIHJlbGF0ZWRUYXJnZXQ6IF9yZWxhdGVkVGFyZ2V0XG4gICAgfSk7XG4gICAgdGhpcy4kZWxlbWVudC50cmlnZ2VyKGUpO1xuICAgIGlmICh0aGlzLmlzU2hvd24gfHwgZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuO1xuICAgIHRoaXMuaXNTaG93biA9IHRydWU7XG4gICAgdGhpcy5jaGVja1Njcm9sbGJhcigpO1xuICAgIHRoaXMuc2V0U2Nyb2xsYmFyKCk7XG4gICAgdGhpcy4kYm9keS5hZGRDbGFzcygnbW9kYWwtb3BlbicpO1xuICAgIHRoaXMuZXNjYXBlKCk7XG4gICAgdGhpcy5yZXNpemUoKTtcbiAgICB0aGlzLiRlbGVtZW50Lm9uKCdjbGljay5kaXNtaXNzLndwYmMubW9kYWwnLCAnW2RhdGEtZGlzbWlzcz1cIm1vZGFsXCJdJywgJC5wcm94eSh0aGlzLmhpZGUsIHRoaXMpKTtcbiAgICB0aGlzLiRkaWFsb2cub24oJ21vdXNlZG93bi5kaXNtaXNzLndwYmMubW9kYWwnLCBmdW5jdGlvbiAoKSB7XG4gICAgICB0aGF0LiRlbGVtZW50Lm9uZSgnbW91c2V1cC5kaXNtaXNzLndwYmMubW9kYWwnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICBpZiAoJChlLnRhcmdldCkuaXModGhhdC4kZWxlbWVudCkpIHRoYXQuaWdub3JlQmFja2Ryb3BDbGljayA9IHRydWU7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICB0aGlzLmJhY2tkcm9wKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciB0cmFuc2l0aW9uID0gJC5zdXBwb3J0LnRyYW5zaXRpb24gJiYgdGhhdC4kZWxlbWVudC5oYXNDbGFzcygnZmFkZScpO1xuXG4gICAgICBpZiAoIXRoYXQuJGVsZW1lbnQucGFyZW50KCkubGVuZ3RoKSB7XG4gICAgICAgIHRoYXQuJGVsZW1lbnQuYXBwZW5kVG8odGhhdC4kYm9keSk7IC8vIGRvbid0IG1vdmUgbW9kYWxzIGRvbSBwb3NpdGlvblxuICAgICAgfVxuXG4gICAgICB0aGF0LiRlbGVtZW50LnNob3coKS5zY3JvbGxUb3AoMCk7XG4gICAgICB0aGF0LmFkanVzdERpYWxvZygpO1xuXG4gICAgICBpZiAodHJhbnNpdGlvbikge1xuICAgICAgICB0aGF0LiRlbGVtZW50WzBdLm9mZnNldFdpZHRoOyAvLyBmb3JjZSByZWZsb3dcbiAgICAgIH1cblxuICAgICAgdGhhdC4kZWxlbWVudC5hZGRDbGFzcygnaW4nKTtcbiAgICAgIHRoYXQuZW5mb3JjZUZvY3VzKCk7XG4gICAgICB2YXIgZSA9ICQuRXZlbnQoJ3Nob3duLndwYmMubW9kYWwnLCB7XG4gICAgICAgIHJlbGF0ZWRUYXJnZXQ6IF9yZWxhdGVkVGFyZ2V0XG4gICAgICB9KTtcbiAgICAgIHRyYW5zaXRpb24gPyB0aGF0LiRkaWFsb2cgLy8gd2FpdCBmb3IgbW9kYWwgdG8gc2xpZGUgaW5cbiAgICAgIC5vbmUoJ2JzVHJhbnNpdGlvbkVuZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhhdC4kZWxlbWVudC50cmlnZ2VyKCdmb2N1cycpLnRyaWdnZXIoZSk7XG4gICAgICB9KS5lbXVsYXRlVHJhbnNpdGlvbkVuZChNb2RhbC5UUkFOU0lUSU9OX0RVUkFUSU9OKSA6IHRoYXQuJGVsZW1lbnQudHJpZ2dlcignZm9jdXMnKS50cmlnZ2VyKGUpO1xuICAgIH0pO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24gKGUpIHtcbiAgICBpZiAoZSkgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUgPSAkLkV2ZW50KCdoaWRlLndwYmMubW9kYWwnKTtcbiAgICB0aGlzLiRlbGVtZW50LnRyaWdnZXIoZSk7XG4gICAgaWYgKCF0aGlzLmlzU2hvd24gfHwgZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuO1xuICAgIHRoaXMuaXNTaG93biA9IGZhbHNlO1xuICAgIHRoaXMuZXNjYXBlKCk7XG4gICAgdGhpcy5yZXNpemUoKTtcbiAgICAkKGRvY3VtZW50KS5vZmYoJ2ZvY3VzaW4ud3BiYy5tb2RhbCcpO1xuICAgIHRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoJ2luJykub2ZmKCdjbGljay5kaXNtaXNzLndwYmMubW9kYWwnKS5vZmYoJ21vdXNldXAuZGlzbWlzcy53cGJjLm1vZGFsJyk7XG4gICAgdGhpcy4kZGlhbG9nLm9mZignbW91c2Vkb3duLmRpc21pc3Mud3BiYy5tb2RhbCcpO1xuICAgICQuc3VwcG9ydC50cmFuc2l0aW9uICYmIHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2ZhZGUnKSA/IHRoaXMuJGVsZW1lbnQub25lKCdic1RyYW5zaXRpb25FbmQnLCAkLnByb3h5KHRoaXMuaGlkZU1vZGFsLCB0aGlzKSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoTW9kYWwuVFJBTlNJVElPTl9EVVJBVElPTikgOiB0aGlzLmhpZGVNb2RhbCgpO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5lbmZvcmNlRm9jdXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgJChkb2N1bWVudCkub2ZmKCdmb2N1c2luLndwYmMubW9kYWwnKSAvLyBndWFyZCBhZ2FpbnN0IGluZmluaXRlIGZvY3VzIGxvb3BcbiAgICAub24oJ2ZvY3VzaW4ud3BiYy5tb2RhbCcsICQucHJveHkoZnVuY3Rpb24gKGUpIHtcbiAgICAgIGlmICh0aGlzLiRlbGVtZW50WzBdICE9PSBlLnRhcmdldCAmJiAhdGhpcy4kZWxlbWVudC5oYXMoZS50YXJnZXQpLmxlbmd0aCkge1xuICAgICAgICB0aGlzLiRlbGVtZW50LnRyaWdnZXIoJ2ZvY3VzJyk7XG4gICAgICB9XG4gICAgfSwgdGhpcykpO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5lc2NhcGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMuaXNTaG93biAmJiB0aGlzLm9wdGlvbnMua2V5Ym9hcmQpIHtcbiAgICAgIHRoaXMuJGVsZW1lbnQub24oJ2tleWRvd24uZGlzbWlzcy53cGJjLm1vZGFsJywgJC5wcm94eShmdW5jdGlvbiAoZSkge1xuICAgICAgICBlLndoaWNoID09IDI3ICYmIHRoaXMuaGlkZSgpO1xuICAgICAgfSwgdGhpcykpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNTaG93bikge1xuICAgICAgdGhpcy4kZWxlbWVudC5vZmYoJ2tleWRvd24uZGlzbWlzcy53cGJjLm1vZGFsJyk7XG4gICAgfVxuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5yZXNpemUgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMuaXNTaG93bikge1xuICAgICAgJCh3aW5kb3cpLm9uKCdyZXNpemUud3BiYy5tb2RhbCcsICQucHJveHkodGhpcy5oYW5kbGVVcGRhdGUsIHRoaXMpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgJCh3aW5kb3cpLm9mZigncmVzaXplLndwYmMubW9kYWwnKTtcbiAgICB9XG4gIH07XG5cbiAgTW9kYWwucHJvdG90eXBlLmhpZGVNb2RhbCA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgdGhpcy4kZWxlbWVudC5oaWRlKCk7XG4gICAgdGhpcy5iYWNrZHJvcChmdW5jdGlvbiAoKSB7XG4gICAgICB0aGF0LiRib2R5LnJlbW92ZUNsYXNzKCdtb2RhbC1vcGVuJyk7XG4gICAgICB0aGF0LnJlc2V0QWRqdXN0bWVudHMoKTtcbiAgICAgIHRoYXQucmVzZXRTY3JvbGxiYXIoKTtcbiAgICAgIHRoYXQuJGVsZW1lbnQudHJpZ2dlcignaGlkZGVuLndwYmMubW9kYWwnKTtcbiAgICB9KTtcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUucmVtb3ZlQmFja2Ryb3AgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy4kYmFja2Ryb3AgJiYgdGhpcy4kYmFja2Ryb3AucmVtb3ZlKCk7XG4gICAgdGhpcy4kYmFja2Ryb3AgPSBudWxsO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5iYWNrZHJvcCA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICB2YXIgYW5pbWF0ZSA9IHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2ZhZGUnKSA/ICdmYWRlJyA6ICcnO1xuXG4gICAgaWYgKHRoaXMuaXNTaG93biAmJiB0aGlzLm9wdGlvbnMuYmFja2Ryb3ApIHtcbiAgICAgIHZhciBkb0FuaW1hdGUgPSAkLnN1cHBvcnQudHJhbnNpdGlvbiAmJiBhbmltYXRlO1xuICAgICAgdGhpcy4kYmFja2Ryb3AgPSAkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKS5hZGRDbGFzcygnbW9kYWwtYmFja2Ryb3AgJyArIGFuaW1hdGUpLmFwcGVuZFRvKHRoaXMuJGJvZHkpO1xuICAgICAgdGhpcy4kZWxlbWVudC5vbignY2xpY2suZGlzbWlzcy53cGJjLm1vZGFsJywgJC5wcm94eShmdW5jdGlvbiAoZSkge1xuICAgICAgICBpZiAodGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrKSB7XG4gICAgICAgICAgdGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrID0gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGUudGFyZ2V0ICE9PSBlLmN1cnJlbnRUYXJnZXQpIHJldHVybjtcbiAgICAgICAgdGhpcy5vcHRpb25zLmJhY2tkcm9wID09ICdzdGF0aWMnID8gdGhpcy4kZWxlbWVudFswXS5mb2N1cygpIDogdGhpcy5oaWRlKCk7XG4gICAgICB9LCB0aGlzKSk7XG4gICAgICBpZiAoZG9BbmltYXRlKSB0aGlzLiRiYWNrZHJvcFswXS5vZmZzZXRXaWR0aDsgLy8gZm9yY2UgcmVmbG93XG5cbiAgICAgIHRoaXMuJGJhY2tkcm9wLmFkZENsYXNzKCdpbicpO1xuICAgICAgaWYgKCFjYWxsYmFjaykgcmV0dXJuO1xuICAgICAgZG9BbmltYXRlID8gdGhpcy4kYmFja2Ryb3Aub25lKCdic1RyYW5zaXRpb25FbmQnLCBjYWxsYmFjaykuZW11bGF0ZVRyYW5zaXRpb25FbmQoTW9kYWwuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTikgOiBjYWxsYmFjaygpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNTaG93biAmJiB0aGlzLiRiYWNrZHJvcCkge1xuICAgICAgdGhpcy4kYmFja2Ryb3AucmVtb3ZlQ2xhc3MoJ2luJyk7XG5cbiAgICAgIHZhciBjYWxsYmFja1JlbW92ZSA9IGZ1bmN0aW9uIGNhbGxiYWNrUmVtb3ZlKCkge1xuICAgICAgICB0aGF0LnJlbW92ZUJhY2tkcm9wKCk7XG4gICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKCk7XG4gICAgICB9O1xuXG4gICAgICAkLnN1cHBvcnQudHJhbnNpdGlvbiAmJiB0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCdmYWRlJykgPyB0aGlzLiRiYWNrZHJvcC5vbmUoJ2JzVHJhbnNpdGlvbkVuZCcsIGNhbGxiYWNrUmVtb3ZlKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChNb2RhbC5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OKSA6IGNhbGxiYWNrUmVtb3ZlKCk7XG4gICAgfSBlbHNlIGlmIChjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9XG4gIH07IC8vIHRoZXNlIGZvbGxvd2luZyBtZXRob2RzIGFyZSB1c2VkIHRvIGhhbmRsZSBvdmVyZmxvd2luZyBtb2RhbHNcblxuXG4gIE1vZGFsLnByb3RvdHlwZS5oYW5kbGVVcGRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5hZGp1c3REaWFsb2coKTtcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUuYWRqdXN0RGlhbG9nID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBtb2RhbElzT3ZlcmZsb3dpbmcgPSB0aGlzLiRlbGVtZW50WzBdLnNjcm9sbEhlaWdodCA+IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgdGhpcy4kZWxlbWVudC5jc3Moe1xuICAgICAgcGFkZGluZ0xlZnQ6ICF0aGlzLmJvZHlJc092ZXJmbG93aW5nICYmIG1vZGFsSXNPdmVyZmxvd2luZyA/IHRoaXMuc2Nyb2xsYmFyV2lkdGggOiAnJyxcbiAgICAgIHBhZGRpbmdSaWdodDogdGhpcy5ib2R5SXNPdmVyZmxvd2luZyAmJiAhbW9kYWxJc092ZXJmbG93aW5nID8gdGhpcy5zY3JvbGxiYXJXaWR0aCA6ICcnXG4gICAgfSk7XG4gIH07XG5cbiAgTW9kYWwucHJvdG90eXBlLnJlc2V0QWRqdXN0bWVudHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy4kZWxlbWVudC5jc3Moe1xuICAgICAgcGFkZGluZ0xlZnQ6ICcnLFxuICAgICAgcGFkZGluZ1JpZ2h0OiAnJ1xuICAgIH0pO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5jaGVja1Njcm9sbGJhciA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZnVsbFdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG5cbiAgICBpZiAoIWZ1bGxXaW5kb3dXaWR0aCkge1xuICAgICAgLy8gd29ya2Fyb3VuZCBmb3IgbWlzc2luZyB3aW5kb3cuaW5uZXJXaWR0aCBpbiBJRThcbiAgICAgIHZhciBkb2N1bWVudEVsZW1lbnRSZWN0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgZnVsbFdpbmRvd1dpZHRoID0gZG9jdW1lbnRFbGVtZW50UmVjdC5yaWdodCAtIE1hdGguYWJzKGRvY3VtZW50RWxlbWVudFJlY3QubGVmdCk7XG4gICAgfVxuXG4gICAgdGhpcy5ib2R5SXNPdmVyZmxvd2luZyA9IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggPCBmdWxsV2luZG93V2lkdGg7XG4gICAgdGhpcy5zY3JvbGxiYXJXaWR0aCA9IHRoaXMubWVhc3VyZVNjcm9sbGJhcigpO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5zZXRTY3JvbGxiYXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGJvZHlQYWQgPSBwYXJzZUludCh0aGlzLiRib2R5LmNzcygncGFkZGluZy1yaWdodCcpIHx8IDAsIDEwKTtcbiAgICB0aGlzLm9yaWdpbmFsQm9keVBhZCA9IGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0IHx8ICcnO1xuICAgIGlmICh0aGlzLmJvZHlJc092ZXJmbG93aW5nKSB0aGlzLiRib2R5LmNzcygncGFkZGluZy1yaWdodCcsIGJvZHlQYWQgKyB0aGlzLnNjcm9sbGJhcldpZHRoKTtcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUucmVzZXRTY3JvbGxiYXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy4kYm9keS5jc3MoJ3BhZGRpbmctcmlnaHQnLCB0aGlzLm9yaWdpbmFsQm9keVBhZCk7XG4gIH07XG5cbiAgTW9kYWwucHJvdG90eXBlLm1lYXN1cmVTY3JvbGxiYXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgLy8gdGh4IHdhbHNoXG4gICAgdmFyIHNjcm9sbERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHNjcm9sbERpdi5jbGFzc05hbWUgPSAnbW9kYWwtc2Nyb2xsYmFyLW1lYXN1cmUnO1xuICAgIHRoaXMuJGJvZHkuYXBwZW5kKHNjcm9sbERpdik7XG4gICAgdmFyIHNjcm9sbGJhcldpZHRoID0gc2Nyb2xsRGl2Lm9mZnNldFdpZHRoIC0gc2Nyb2xsRGl2LmNsaWVudFdpZHRoO1xuICAgIHRoaXMuJGJvZHlbMF0ucmVtb3ZlQ2hpbGQoc2Nyb2xsRGl2KTtcbiAgICByZXR1cm4gc2Nyb2xsYmFyV2lkdGg7XG4gIH07IC8vIE1PREFMIFBMVUdJTiBERUZJTklUSU9OXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09XG5cblxuICBmdW5jdGlvbiBQbHVnaW4ob3B0aW9uLCBfcmVsYXRlZFRhcmdldCkge1xuICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTtcbiAgICAgIHZhciBkYXRhID0gJHRoaXMuZGF0YSgnd3BiYy5tb2RhbCcpO1xuICAgICAgdmFyIG9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgTW9kYWwuREVGQVVMVFMsICR0aGlzLmRhdGEoKSwgX3R5cGVvZihvcHRpb24pID09ICdvYmplY3QnICYmIG9wdGlvbik7XG4gICAgICBpZiAoIWRhdGEpICR0aGlzLmRhdGEoJ3dwYmMubW9kYWwnLCBkYXRhID0gbmV3IE1vZGFsKHRoaXMsIG9wdGlvbnMpKTtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0oX3JlbGF0ZWRUYXJnZXQpO2Vsc2UgaWYgKG9wdGlvbnMuc2hvdykgZGF0YS5zaG93KF9yZWxhdGVkVGFyZ2V0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHZhciBvbGQgPSAkLmZuLndwYmNfbXlfbW9kYWw7XG4gICQuZm4ud3BiY19teV9tb2RhbCA9IFBsdWdpbjtcbiAgJC5mbi53cGJjX215X21vZGFsLkNvbnN0cnVjdG9yID0gTW9kYWw7IC8vIE1PREFMIE5PIENPTkZMSUNUXG4gIC8vID09PT09PT09PT09PT09PT09XG5cbiAgJC5mbi53cGJjX215X21vZGFsLm5vQ29uZmxpY3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgJC5mbi53cGJjX215X21vZGFsID0gb2xkO1xuICAgIHJldHVybiB0aGlzO1xuICB9OyAvLyBNT0RBTCBEQVRBLUFQSVxuICAvLyA9PT09PT09PT09PT09PVxuXG5cbiAgJChkb2N1bWVudCkub24oJ2NsaWNrLndwYmMubW9kYWwuZGF0YS1hcGknLCAnW2RhdGEtdG9nZ2xlPVwid3BiY19teV9tb2RhbFwiXScsIGZ1bmN0aW9uIChlKSB7XG4gICAgdmFyICR0aGlzID0gJCh0aGlzKTtcbiAgICB2YXIgaHJlZiA9ICR0aGlzLmF0dHIoJ2hyZWYnKTtcbiAgICB2YXIgJHRhcmdldCA9ICQoJHRoaXMuYXR0cignZGF0YS10YXJnZXQnKSB8fCBocmVmICYmIGhyZWYucmVwbGFjZSgvLiooPz0jW15cXHNdKyQpLywgJycpKTsgLy8gc3RyaXAgZm9yIGllN1xuXG4gICAgdmFyIG9wdGlvbiA9ICR0YXJnZXQuZGF0YSgnd3BiYy5tb2RhbCcpID8gJ3RvZ2dsZScgOiAkLmV4dGVuZCh7XG4gICAgICByZW1vdGU6ICEvIy8udGVzdChocmVmKSAmJiBocmVmXG4gICAgfSwgJHRhcmdldC5kYXRhKCksICR0aGlzLmRhdGEoKSk7XG4gICAgaWYgKCR0aGlzLmlzKCdhJykpIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAkdGFyZ2V0Lm9uZSgnc2hvdy53cGJjLm1vZGFsJywgZnVuY3Rpb24gKHNob3dFdmVudCkge1xuICAgICAgaWYgKHNob3dFdmVudC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuOyAvLyBvbmx5IHJlZ2lzdGVyIGZvY3VzIHJlc3RvcmVyIGlmIG1vZGFsIHdpbGwgYWN0dWFsbHkgZ2V0IHNob3duXG5cbiAgICAgICR0YXJnZXQub25lKCdoaWRkZW4ud3BiYy5tb2RhbCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJHRoaXMuaXMoJzp2aXNpYmxlJykgJiYgJHRoaXMudHJpZ2dlcignZm9jdXMnKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIFBsdWdpbi5jYWxsKCR0YXJnZXQsIG9wdGlvbiwgdGhpcyk7XG4gIH0pO1xufShqUXVlcnkpO1xuK2Z1bmN0aW9uICgkKSB7XG4gICd1c2Ugc3RyaWN0JzsgLy8gRFJPUERPV04gQ0xBU1MgREVGSU5JVElPTlxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgdmFyIGJhY2tkcm9wID0gJy5kcm9wZG93bi1iYWNrZHJvcCc7XG4gIHZhciB0b2dnbGUgPSAnW2RhdGEtdG9nZ2xlPVwid3BiY19kcm9wZG93blwiXSc7XG5cbiAgdmFyIERyb3Bkb3duID0gZnVuY3Rpb24gRHJvcGRvd24oZWxlbWVudCkge1xuICAgICQoZWxlbWVudCkub24oJ2NsaWNrLndwYmMuZHJvcGRvd24nLCB0aGlzLnRvZ2dsZSk7XG4gIH07XG5cbiAgRHJvcGRvd24uVkVSU0lPTiA9ICczLjMuNSc7XG5cbiAgZnVuY3Rpb24gZ2V0UGFyZW50KCR0aGlzKSB7XG4gICAgdmFyIHNlbGVjdG9yID0gJHRoaXMuYXR0cignZGF0YS10YXJnZXQnKTtcblxuICAgIGlmICghc2VsZWN0b3IpIHtcbiAgICAgIHNlbGVjdG9yID0gJHRoaXMuYXR0cignaHJlZicpO1xuICAgICAgc2VsZWN0b3IgPSBzZWxlY3RvciAmJiAvI1tBLVphLXpdLy50ZXN0KHNlbGVjdG9yKSAmJiBzZWxlY3Rvci5yZXBsYWNlKC8uKig/PSNbXlxcc10qJCkvLCAnJyk7IC8vIHN0cmlwIGZvciBpZTdcbiAgICB9XG5cbiAgICB2YXIgJHBhcmVudCA9IHNlbGVjdG9yICYmICQoc2VsZWN0b3IpO1xuICAgIHJldHVybiAkcGFyZW50ICYmICRwYXJlbnQubGVuZ3RoID8gJHBhcmVudCA6ICR0aGlzLnBhcmVudCgpO1xuICB9XG5cbiAgZnVuY3Rpb24gY2xlYXJNZW51cyhlKSB7XG4gICAgaWYgKGUgJiYgZS53aGljaCA9PT0gMykgcmV0dXJuO1xuICAgICQoYmFja2Ryb3ApLnJlbW92ZSgpO1xuICAgICQodG9nZ2xlKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciAkdGhpcyA9ICQodGhpcyk7XG4gICAgICB2YXIgJHBhcmVudCA9IGdldFBhcmVudCgkdGhpcyk7XG4gICAgICB2YXIgcmVsYXRlZFRhcmdldCA9IHtcbiAgICAgICAgcmVsYXRlZFRhcmdldDogdGhpc1xuICAgICAgfTtcbiAgICAgIGlmICghJHBhcmVudC5oYXNDbGFzcygnb3BlbicpKSByZXR1cm47XG4gICAgICBpZiAoZSAmJiBlLnR5cGUgPT0gJ2NsaWNrJyAmJiAvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGUudGFyZ2V0LnRhZ05hbWUpICYmICQuY29udGFpbnMoJHBhcmVudFswXSwgZS50YXJnZXQpKSByZXR1cm47XG4gICAgICAkcGFyZW50LnRyaWdnZXIoZSA9ICQuRXZlbnQoJ2hpZGUud3BiYy5kcm9wZG93bicsIHJlbGF0ZWRUYXJnZXQpKTtcbiAgICAgIGlmIChlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm47XG4gICAgICAkdGhpcy5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgICAkcGFyZW50LnJlbW92ZUNsYXNzKCdvcGVuJykudHJpZ2dlcignaGlkZGVuLndwYmMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KTtcbiAgICB9KTtcbiAgfVxuXG4gIERyb3Bkb3duLnByb3RvdHlwZS50b2dnbGUgPSBmdW5jdGlvbiAoZSkge1xuICAgIHZhciAkdGhpcyA9ICQodGhpcyk7XG4gICAgaWYgKCR0aGlzLmlzKCcuZGlzYWJsZWQsIDpkaXNhYmxlZCcpKSByZXR1cm47XG4gICAgdmFyICRwYXJlbnQgPSBnZXRQYXJlbnQoJHRoaXMpO1xuICAgIHZhciBpc0FjdGl2ZSA9ICRwYXJlbnQuaGFzQ2xhc3MoJ29wZW4nKTtcbiAgICBjbGVhck1lbnVzKCk7XG5cbiAgICBpZiAoIWlzQWN0aXZlKSB7XG4gICAgICBpZiAoJ29udG91Y2hzdGFydCcgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmICEkcGFyZW50LmNsb3Nlc3QoJy5uYXZiYXItbmF2JykubGVuZ3RoKSB7XG4gICAgICAgIC8vIGlmIG1vYmlsZSB3ZSB1c2UgYSBiYWNrZHJvcCBiZWNhdXNlIGNsaWNrIGV2ZW50cyBkb24ndCBkZWxlZ2F0ZVxuICAgICAgICAkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKS5hZGRDbGFzcygnZHJvcGRvd24tYmFja2Ryb3AnKS5pbnNlcnRBZnRlcigkKHRoaXMpKS5vbignY2xpY2snLCBjbGVhck1lbnVzKTtcbiAgICAgIH1cblxuICAgICAgdmFyIHJlbGF0ZWRUYXJnZXQgPSB7XG4gICAgICAgIHJlbGF0ZWRUYXJnZXQ6IHRoaXNcbiAgICAgIH07XG4gICAgICAkcGFyZW50LnRyaWdnZXIoZSA9ICQuRXZlbnQoJ3Nob3cud3BiYy5kcm9wZG93bicsIHJlbGF0ZWRUYXJnZXQpKTtcbiAgICAgIGlmIChlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm47XG4gICAgICAkdGhpcy50cmlnZ2VyKCdmb2N1cycpLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCAndHJ1ZScpO1xuICAgICAgJHBhcmVudC50b2dnbGVDbGFzcygnb3BlbicpLnRyaWdnZXIoJ3Nob3duLndwYmMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgRHJvcGRvd24ucHJvdG90eXBlLmtleWRvd24gPSBmdW5jdGlvbiAoZSkge1xuICAgIGlmICghLygzOHw0MHwyN3wzMikvLnRlc3QoZS53aGljaCkgfHwgL2lucHV0fHRleHRhcmVhL2kudGVzdChlLnRhcmdldC50YWdOYW1lKSkgcmV0dXJuO1xuICAgIHZhciAkdGhpcyA9ICQodGhpcyk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCR0aGlzLmlzKCcuZGlzYWJsZWQsIDpkaXNhYmxlZCcpKSByZXR1cm47XG4gICAgdmFyICRwYXJlbnQgPSBnZXRQYXJlbnQoJHRoaXMpO1xuICAgIHZhciBpc0FjdGl2ZSA9ICRwYXJlbnQuaGFzQ2xhc3MoJ29wZW4nKTtcblxuICAgIGlmICghaXNBY3RpdmUgJiYgZS53aGljaCAhPSAyNyB8fCBpc0FjdGl2ZSAmJiBlLndoaWNoID09IDI3KSB7XG4gICAgICBpZiAoZS53aGljaCA9PSAyNykgJHBhcmVudC5maW5kKHRvZ2dsZSkudHJpZ2dlcignZm9jdXMnKTtcbiAgICAgIHJldHVybiAkdGhpcy50cmlnZ2VyKCdjbGljaycpO1xuICAgIH1cblxuICAgIHZhciBkZXNjID0gJyBsaTpub3QoLmRpc2FibGVkKTp2aXNpYmxlIGEnO1xuICAgIHZhciAkaXRlbXMgPSAkcGFyZW50LmZpbmQoJy5kcm9wZG93bi1tZW51JyArIGRlc2MpO1xuICAgIGlmICghJGl0ZW1zLmxlbmd0aCkgcmV0dXJuO1xuICAgIHZhciBpbmRleCA9ICRpdGVtcy5pbmRleChlLnRhcmdldCk7XG4gICAgaWYgKGUud2hpY2ggPT0gMzggJiYgaW5kZXggPiAwKSBpbmRleC0tOyAvLyB1cFxuXG4gICAgaWYgKGUud2hpY2ggPT0gNDAgJiYgaW5kZXggPCAkaXRlbXMubGVuZ3RoIC0gMSkgaW5kZXgrKzsgLy8gZG93blxuXG4gICAgaWYgKCF+aW5kZXgpIGluZGV4ID0gMDtcbiAgICAkaXRlbXMuZXEoaW5kZXgpLnRyaWdnZXIoJ2ZvY3VzJyk7XG4gIH07IC8vIERST1BET1dOIFBMVUdJTiBERUZJTklUSU9OXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuICBmdW5jdGlvbiBQbHVnaW4ob3B0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpO1xuICAgICAgdmFyIGRhdGEgPSAkdGhpcy5kYXRhKCd3cGJjLmRyb3Bkb3duJyk7XG4gICAgICBpZiAoIWRhdGEpICR0aGlzLmRhdGEoJ3dwYmMuZHJvcGRvd24nLCBkYXRhID0gbmV3IERyb3Bkb3duKHRoaXMpKTtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0uY2FsbCgkdGhpcyk7XG4gICAgfSk7XG4gIH1cblxuICB2YXIgb2xkID0gJC5mbi53cGJjX2Ryb3Bkb3duO1xuICAkLmZuLndwYmNfZHJvcGRvd24gPSBQbHVnaW47XG4gICQuZm4ud3BiY19kcm9wZG93bi5Db25zdHJ1Y3RvciA9IERyb3Bkb3duOyAvLyBEUk9QRE9XTiBOTyBDT05GTElDVFxuICAvLyA9PT09PT09PT09PT09PT09PT09PVxuXG4gICQuZm4ud3BiY19kcm9wZG93bi5ub0NvbmZsaWN0ID0gZnVuY3Rpb24gKCkge1xuICAgICQuZm4ud3BiY19kcm9wZG93biA9IG9sZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfTsgLy8gQVBQTFkgVE8gU1RBTkRBUkQgRFJPUERPV04gRUxFTUVOVFNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4gICQoZG9jdW1lbnQpLm9uKCdjbGljay53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgY2xlYXJNZW51cykub24oJ2NsaWNrLndwYmMuZHJvcGRvd24uZGF0YS1hcGknLCAnLmRyb3Bkb3duIGZvcm0nLCBmdW5jdGlvbiAoZSkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH0pLm9uKCdjbGljay53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgdG9nZ2xlLCBEcm9wZG93bi5wcm90b3R5cGUudG9nZ2xlKS5vbigna2V5ZG93bi53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgdG9nZ2xlLCBEcm9wZG93bi5wcm90b3R5cGUua2V5ZG93bikub24oJ2tleWRvd24ud3BiYy5kcm9wZG93bi5kYXRhLWFwaScsICcuZHJvcGRvd24tbWVudScsIERyb3Bkb3duLnByb3RvdHlwZS5rZXlkb3duKTtcbn0oalF1ZXJ5KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zjg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSW1GemMyVjBjeTlzYVdKekwzVnBMMTl6Y21NdlpISnZjR1J2ZDI1ZmJXOWtZV3d1YW5NaVhTd2libUZ0WlhNaU9sc2lhbEYxWlhKNUlpd2lSWEp5YjNJaUxDSWtJaXdpZG1WeWMybHZiaUlzSW1adUlpd2lhbkYxWlhKNUlpd2ljM0JzYVhRaUxDSk5iMlJoYkNJc0ltVnNaVzFsYm5RaUxDSnZjSFJwYjI1eklpd2lKR0p2WkhraUxDSmtiMk4xYldWdWRDSXNJbUp2WkhraUxDSWtaV3hsYldWdWRDSXNJaVJrYVdGc2IyY2lMQ0ptYVc1a0lpd2lKR0poWTJ0a2NtOXdJaXdpYVhOVGFHOTNiaUlzSW05eWFXZHBibUZzUW05a2VWQmhaQ0lzSW5OamNtOXNiR0poY2xkcFpIUm9JaXdpYVdkdWIzSmxRbUZqYTJSeWIzQkRiR2xqYXlJc0luSmxiVzkwWlNJc0lteHZZV1FpTENKd2NtOTRlU0lzSW5SeWFXZG5aWElpTENKV1JWSlRTVTlPSWl3aVZGSkJUbE5KVkVsUFRsOUVWVkpCVkVsUFRpSXNJa0pCUTB0RVVrOVFYMVJTUVU1VFNWUkpUMDVmUkZWU1FWUkpUMDRpTENKRVJVWkJWVXhVVXlJc0ltSmhZMnRrY205d0lpd2lhMlY1WW05aGNtUWlMQ0p6YUc5M0lpd2ljSEp2ZEc5MGVYQmxJaXdpZEc5bloyeGxJaXdpWDNKbGJHRjBaV1JVWVhKblpYUWlMQ0pvYVdSbElpd2lkR2hoZENJc0ltVWlMQ0pGZG1WdWRDSXNJbkpsYkdGMFpXUlVZWEpuWlhRaUxDSnBjMFJsWm1GMWJIUlFjbVYyWlc1MFpXUWlMQ0pqYUdWamExTmpjbTlzYkdKaGNpSXNJbk5sZEZOamNtOXNiR0poY2lJc0ltRmtaRU5zWVhOeklpd2laWE5qWVhCbElpd2ljbVZ6YVhwbElpd2liMjRpTENKdmJtVWlMQ0owWVhKblpYUWlMQ0pwY3lJc0luUnlZVzV6YVhScGIyNGlMQ0p6ZFhCd2IzSjBJaXdpYUdGelEyeGhjM01pTENKd1lYSmxiblFpTENKc1pXNW5kR2dpTENKaGNIQmxibVJVYnlJc0luTmpjbTlzYkZSdmNDSXNJbUZrYW5WemRFUnBZV3h2WnlJc0ltOW1abk5sZEZkcFpIUm9JaXdpWlc1bWIzSmpaVVp2WTNWeklpd2laVzExYkdGMFpWUnlZVzV6YVhScGIyNUZibVFpTENKd2NtVjJaVzUwUkdWbVlYVnNkQ0lzSW05bVppSXNJbkpsYlc5MlpVTnNZWE56SWl3aWFHbGtaVTF2WkdGc0lpd2lhR0Z6SWl3aWQyaHBZMmdpTENKM2FXNWtiM2NpTENKb1lXNWtiR1ZWY0dSaGRHVWlMQ0p5WlhObGRFRmthblZ6ZEcxbGJuUnpJaXdpY21WelpYUlRZM0p2Ykd4aVlYSWlMQ0p5WlcxdmRtVkNZV05yWkhKdmNDSXNJbkpsYlc5MlpTSXNJbU5oYkd4aVlXTnJJaXdpWVc1cGJXRjBaU0lzSW1SdlFXNXBiV0YwWlNJc0ltTnlaV0YwWlVWc1pXMWxiblFpTENKamRYSnlaVzUwVkdGeVoyVjBJaXdpWm05amRYTWlMQ0pqWVd4c1ltRmphMUpsYlc5MlpTSXNJbTF2WkdGc1NYTlBkbVZ5Wm14dmQybHVaeUlzSW5OamNtOXNiRWhsYVdkb2RDSXNJbVJ2WTNWdFpXNTBSV3hsYldWdWRDSXNJbU5zYVdWdWRFaGxhV2RvZENJc0ltTnpjeUlzSW5CaFpHUnBibWRNWldaMElpd2lZbTlrZVVselQzWmxjbVpzYjNkcGJtY2lMQ0p3WVdSa2FXNW5VbWxuYUhRaUxDSm1kV3hzVjJsdVpHOTNWMmxrZEdnaUxDSnBibTVsY2xkcFpIUm9JaXdpWkc5amRXMWxiblJGYkdWdFpXNTBVbVZqZENJc0ltZGxkRUp2ZFc1a2FXNW5RMnhwWlc1MFVtVmpkQ0lzSW5KcFoyaDBJaXdpVFdGMGFDSXNJbUZpY3lJc0lteGxablFpTENKamJHbGxiblJYYVdSMGFDSXNJbTFsWVhOMWNtVlRZM0p2Ykd4aVlYSWlMQ0ppYjJSNVVHRmtJaXdpY0dGeWMyVkpiblFpTENKemRIbHNaU0lzSW5OamNtOXNiRVJwZGlJc0ltTnNZWE56VG1GdFpTSXNJbUZ3Y0dWdVpDSXNJbkpsYlc5MlpVTm9hV3hrSWl3aVVHeDFaMmx1SWl3aWIzQjBhVzl1SWl3aVpXRmphQ0lzSWlSMGFHbHpJaXdpWkdGMFlTSXNJbVY0ZEdWdVpDSXNJbTlzWkNJc0luZHdZbU5mYlhsZmJXOWtZV3dpTENKRGIyNXpkSEoxWTNSdmNpSXNJbTV2UTI5dVpteHBZM1FpTENKb2NtVm1JaXdpWVhSMGNpSXNJaVIwWVhKblpYUWlMQ0p5WlhCc1lXTmxJaXdpZEdWemRDSXNJbk5vYjNkRmRtVnVkQ0lzSW1OaGJHd2lMQ0pFY205d1pHOTNiaUlzSW1kbGRGQmhjbVZ1ZENJc0luTmxiR1ZqZEc5eUlpd2lKSEJoY21WdWRDSXNJbU5zWldGeVRXVnVkWE1pTENKMGVYQmxJaXdpZEdGblRtRnRaU0lzSW1OdmJuUmhhVzV6SWl3aWFYTkJZM1JwZG1VaUxDSmpiRzl6WlhOMElpd2lhVzV6WlhKMFFXWjBaWElpTENKMGIyZG5iR1ZEYkdGemN5SXNJbXRsZVdSdmQyNGlMQ0p6ZEc5d1VISnZjR0ZuWVhScGIyNGlMQ0prWlhOaklpd2lKR2wwWlcxeklpd2lhVzVrWlhnaUxDSmxjU0lzSW5kd1ltTmZaSEp2Y0dSdmQyNGlYU3dpYldGd2NHbHVaM01pT2lJN096czdRVUZCUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxFbEJRVWtzVDBGQlQwRXNUVUZCVUN4TFFVRnJRaXhYUVVGMFFpeEZRVUZ0UXp0QlFVTnFReXhSUVVGTkxFbEJRVWxETEV0QlFVb3NRMEZCVlN4NVEwRkJWaXhEUVVGT08wRkJRMFE3TzBGQlEwUXNRMEZCUXl4VlFVRlZReXhEUVVGV0xFVkJRV0U3UVVGRFdqczdRVUZEUVN4TlFVRkpReXhQUVVGUExFZEJRVWRFTEVOQlFVTXNRMEZCUTBVc1JVRkJSaXhEUVVGTFF5eE5RVUZNTEVOQlFWbERMRXRCUVZvc1EwRkJhMElzUjBGQmJFSXNSVUZCZFVJc1EwRkJka0lzUlVGQk1FSkJMRXRCUVRGQ0xFTkJRV2RETEVkQlFXaERMRU5CUVdRN08wRkJRMEVzVFVGQlMwZ3NUMEZCVHl4RFFVRkRMRU5CUVVRc1EwRkJVQ3hIUVVGaExFTkJRV0lzU1VGQmEwSkJMRTlCUVU4c1EwRkJReXhEUVVGRUxFTkJRVkFzUjBGQllTeERRVUZvUXl4SlFVRjFRMEVzVDBGQlR5eERRVUZETEVOQlFVUXNRMEZCVUN4SlFVRmpMRU5CUVdRc1NVRkJiVUpCTEU5QlFVOHNRMEZCUXl4RFFVRkVMRU5CUVZBc1NVRkJZeXhEUVVGcVF5eEpRVUZ6UTBFc1QwRkJUeXhEUVVGRExFTkJRVVFzUTBGQlVDeEhRVUZoTEVOQlFUbEdMRVZCUVd0SE8wRkJRMmhITEZWQlFVMHNTVUZCU1VZc1MwRkJTaXhEUVVGVkxHbEZRVUZXTEVOQlFVNDdRVUZEUkR0QlFVTkdMRU5CVGtFc1EwRk5RMFFzVFVGT1JDeERRVUZFTzBGQlVVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlIwRXNRMEZCUXl4VlFVRlZSU3hEUVVGV0xFVkJRV0U3UVVGRFdpeGxRVVJaTEVOQlIxbzdRVUZEUVRzN1FVRkZRU3hOUVVGSlN5eExRVUZMTEVkQlFVY3NVMEZCVWtFc1MwRkJVU3hEUVVGVlF5eFBRVUZXTEVWQlFXMUNReXhQUVVGdVFpeEZRVUUwUWp0QlFVTjBReXhUUVVGTFFTeFBRVUZNTEVkQlFUSkNRU3hQUVVFelFqdEJRVU5CTEZOQlFVdERMRXRCUVV3c1IwRkJNa0pTTEVOQlFVTXNRMEZCUTFNc1VVRkJVU3hEUVVGRFF5eEpRVUZXTEVOQlFUVkNPMEZCUTBFc1UwRkJTME1zVVVGQlRDeEhRVUV5UWxnc1EwRkJReXhEUVVGRFRTeFBRVUZFTEVOQlFUVkNPMEZCUTBFc1UwRkJTMDBzVDBGQlRDeEhRVUV5UWl4TFFVRkxSQ3hSUVVGTUxFTkJRV05GTEVsQlFXUXNRMEZCYlVJc1pVRkJia0lzUTBGQk0wSTdRVUZEUVN4VFFVRkxReXhUUVVGTUxFZEJRVEpDTEVsQlFUTkNPMEZCUTBFc1UwRkJTME1zVDBGQlRDeEhRVUV5UWl4SlFVRXpRanRCUVVOQkxGTkJRVXRETEdWQlFVd3NSMEZCTWtJc1NVRkJNMEk3UVVGRFFTeFRRVUZMUXl4alFVRk1MRWRCUVRKQ0xFTkJRVE5DTzBGQlEwRXNVMEZCUzBNc2JVSkJRVXdzUjBGQk1rSXNTMEZCTTBJN08wRkJSVUVzVVVGQlNTeExRVUZMV0N4UFFVRk1MRU5CUVdGWkxFMUJRV3BDTEVWQlFYbENPMEZCUTNaQ0xGZEJRVXRTTEZGQlFVd3NRMEZEUjBVc1NVRkVTQ3hEUVVOUkxHZENRVVJTTEVWQlJVZFBMRWxCUmtnc1EwRkZVU3hMUVVGTFlpeFBRVUZNTEVOQlFXRlpMRTFCUm5KQ0xFVkJSVFpDYmtJc1EwRkJReXhEUVVGRGNVSXNTMEZCUml4RFFVRlJMRmxCUVZrN1FVRkROME1zWVVGQlMxWXNVVUZCVEN4RFFVRmpWeXhQUVVGa0xFTkJRWE5DTEcxQ1FVRjBRanRCUVVORUxFOUJSakJDTEVWQlJYaENMRWxCUm5kQ0xFTkJSamRDTzBGQlMwUTdRVUZEUml4SFFXeENSRHM3UVVGdlFrRnFRaXhGUVVGQlFTeExRVUZMTEVOQlFVTnJRaXhQUVVGT0xFZEJRV2xDTEU5QlFXcENPMEZCUlVGc1FpeEZRVUZCUVN4TFFVRkxMRU5CUVVOdFFpeHRRa0ZCVGl4SFFVRTBRaXhIUVVFMVFqdEJRVU5CYmtJc1JVRkJRVUVzUzBGQlN5eERRVUZEYjBJc05FSkJRVTRzUjBGQmNVTXNSMEZCY2tNN1FVRkZRWEJDTEVWQlFVRkJMRXRCUVVzc1EwRkJRM0ZDTEZGQlFVNHNSMEZCYVVJN1FVRkRaa01zU1VGQlFVRXNVVUZCVVN4RlFVRkZMRWxCUkVzN1FVRkZaa01zU1VGQlFVRXNVVUZCVVN4RlFVRkZMRWxCUmtzN1FVRkhaa01zU1VGQlFVRXNTVUZCU1N4RlFVRkZPMEZCU0ZNc1IwRkJha0k3TzBGQlRVRjRRaXhGUVVGQlFTeExRVUZMTEVOQlFVTjVRaXhUUVVGT0xFTkJRV2RDUXl4TlFVRm9RaXhIUVVGNVFpeFZRVUZWUXl4alFVRldMRVZCUVRCQ08wRkJRMnBFTEZkQlFVOHNTMEZCUzJwQ0xFOUJRVXdzUjBGQlpTeExRVUZMYTBJc1NVRkJUQ3hGUVVGbUxFZEJRVFpDTEV0QlFVdEtMRWxCUVV3c1EwRkJWVWNzWTBGQlZpeERRVUZ3UXp0QlFVTkVMRWRCUmtRN08wRkJTVUV6UWl4RlFVRkJRU3hMUVVGTExFTkJRVU41UWl4VFFVRk9MRU5CUVdkQ1JDeEpRVUZvUWl4SFFVRjFRaXhWUVVGVlJ5eGpRVUZXTEVWQlFUQkNPMEZCUXk5RExGRkJRVWxGTEVsQlFVa3NSMEZCUnl4SlFVRllPMEZCUTBFc1VVRkJTVU1zUTBGQlF5eEhRVUZOYmtNc1EwRkJReXhEUVVGRGIwTXNTMEZCUml4RFFVRlJMR2xDUVVGU0xFVkJRVEpDTzBGQlFVVkRMRTFCUVVGQkxHRkJRV0VzUlVGQlJVdzdRVUZCYWtJc1MwRkJNMElzUTBGQldEdEJRVVZCTEZOQlFVdHlRaXhSUVVGTUxFTkJRV05YTEU5QlFXUXNRMEZCYzBKaExFTkJRWFJDTzBGQlJVRXNVVUZCU1N4TFFVRkxjRUlzVDBGQlRDeEpRVUZuUW05Q0xFTkJRVU1zUTBGQlEwY3NhMEpCUVVZc1JVRkJjRUlzUlVGQk5FTTdRVUZGTlVNc1UwRkJTM1pDTEU5QlFVd3NSMEZCWlN4SlFVRm1PMEZCUlVFc1UwRkJTM2RDTEdOQlFVdzdRVUZEUVN4VFFVRkxReXhaUVVGTU8wRkJRMEVzVTBGQlMyaERMRXRCUVV3c1EwRkJWMmxETEZGQlFWZ3NRMEZCYjBJc1dVRkJjRUk3UVVGRlFTeFRRVUZMUXl4TlFVRk1PMEZCUTBFc1UwRkJTME1zVFVGQlREdEJRVVZCTEZOQlFVdG9ReXhSUVVGTUxFTkJRV05wUXl4RlFVRmtMRU5CUVdsQ0xEQkNRVUZxUWl4RlFVRTJReXgzUWtGQk4wTXNSVUZCZFVVMVF5eERRVUZETEVOQlFVTnhRaXhMUVVGR0xFTkJRVkVzUzBGQlMxa3NTVUZCWWl4RlFVRnRRaXhKUVVGdVFpeERRVUYyUlR0QlFVVkJMRk5CUVV0eVFpeFBRVUZNTEVOQlFXRm5ReXhGUVVGaUxFTkJRV2RDTERoQ1FVRm9RaXhGUVVGblJDeFpRVUZaTzBGQlF6RkVWaXhOUVVGQlFTeEpRVUZKTEVOQlFVTjJRaXhSUVVGTUxFTkJRV05yUXl4SFFVRmtMRU5CUVd0Q0xEUkNRVUZzUWl4RlFVRm5SQ3hWUVVGVlZpeERRVUZXTEVWQlFXRTdRVUZETTBRc1dVRkJTVzVETEVOQlFVTXNRMEZCUTIxRExFTkJRVU1zUTBGQlExY3NUVUZCU0N4RFFVRkVMRU5CUVZsRExFVkJRVm9zUTBGQlpXSXNTVUZCU1N4RFFVRkRka0lzVVVGQmNFSXNRMEZCU2l4RlFVRnRRM1ZDTEVsQlFVa3NRMEZCUTJoQ0xHMUNRVUZNTEVkQlFUSkNMRWxCUVROQ08wRkJRM0JETEU5QlJrUTdRVUZIUkN4TFFVcEVPMEZCVFVFc1UwRkJTMU1zVVVGQlRDeERRVUZqTEZsQlFWazdRVUZEZUVJc1ZVRkJTWEZDTEZWQlFWVXNSMEZCUjJoRUxFTkJRVU1zUTBGQlEybEVMRTlCUVVZc1EwRkJWVVFzVlVGQlZpeEpRVUYzUW1Rc1NVRkJTU3hEUVVGRGRrSXNVVUZCVEN4RFFVRmpkVU1zVVVGQlpDeERRVUYxUWl4TlFVRjJRaXhEUVVGNlF6czdRVUZGUVN4VlFVRkpMRU5CUVVOb1FpeEpRVUZKTEVOQlFVTjJRaXhSUVVGTUxFTkJRV04zUXl4TlFVRmtMRWRCUVhWQ1F5eE5RVUUxUWl4RlFVRnZRenRCUVVOc1EyeENMRkZCUVVGQkxFbEJRVWtzUTBGQlEzWkNMRkZCUVV3c1EwRkJZekJETEZGQlFXUXNRMEZCZFVKdVFpeEpRVUZKTEVOQlFVTXhRaXhMUVVFMVFpeEZRVVJyUXl4RFFVTkRPMEZCUTNCRE96dEJRVVZFTUVJc1RVRkJRVUVzU1VGQlNTeERRVUZEZGtJc1VVRkJUQ3hEUVVOSGEwSXNTVUZFU0N4SFFVVkhlVUlzVTBGR1NDeERRVVZoTEVOQlJtSTdRVUZKUVhCQ0xFMUJRVUZCTEVsQlFVa3NRMEZCUTNGQ0xGbEJRVXc3TzBGQlJVRXNWVUZCU1ZBc1ZVRkJTaXhGUVVGblFqdEJRVU5rWkN4UlFVRkJRU3hKUVVGSkxFTkJRVU4yUWl4UlFVRk1MRU5CUVdNc1EwRkJaQ3hGUVVGcFFqWkRMRmRCUVdwQ0xFTkJSR01zUTBGRFpUdEJRVU01UWpzN1FVRkZSSFJDTEUxQlFVRkJMRWxCUVVrc1EwRkJRM1pDTEZGQlFVd3NRMEZCWXpoQ0xGRkJRV1FzUTBGQmRVSXNTVUZCZGtJN1FVRkZRVkFzVFVGQlFVRXNTVUZCU1N4RFFVRkRkVUlzV1VGQlREdEJRVVZCTEZWQlFVbDBRaXhEUVVGRExFZEJRVWR1UXl4RFFVRkRMRU5CUVVOdlF5eExRVUZHTEVOQlFWRXNhMEpCUVZJc1JVRkJORUk3UVVGQlJVTXNVVUZCUVVFc1lVRkJZU3hGUVVGRlREdEJRVUZxUWl4UFFVRTFRaXhEUVVGU08wRkJSVUZuUWl4TlFVRkJRU3hWUVVGVkxFZEJRMUprTEVsQlFVa3NRMEZCUTNSQ0xFOUJRVXdzUTBGQllUdEJRVUZpTEU5QlEwZHBReXhIUVVSSUxFTkJRMDhzYVVKQlJGQXNSVUZETUVJc1dVRkJXVHRCUVVOc1ExZ3NVVUZCUVVFc1NVRkJTU3hEUVVGRGRrSXNVVUZCVEN4RFFVRmpWeXhQUVVGa0xFTkJRWE5DTEU5QlFYUkNMRVZCUVN0Q1FTeFBRVUV2UWl4RFFVRjFRMkVzUTBGQmRrTTdRVUZEUkN4UFFVaElMRVZCU1VkMVFpeHZRa0ZLU0N4RFFVbDNRbkpFTEV0QlFVc3NRMEZCUTIxQ0xHMUNRVW81UWl4RFFVUlJMRWRCVFZKVkxFbEJRVWtzUTBGQlEzWkNMRkZCUVV3c1EwRkJZMWNzVDBGQlpDeERRVUZ6UWl4UFFVRjBRaXhGUVVFclFrRXNUMEZCTDBJc1EwRkJkVU5oTEVOQlFYWkRMRU5CVGtZN1FVRlBSQ3hMUVRsQ1JEdEJRU3RDUkN4SFFYaEVSRHM3UVVFd1JFRTVRaXhGUVVGQlFTeExRVUZMTEVOQlFVTjVRaXhUUVVGT0xFTkJRV2RDUnl4SlFVRm9RaXhIUVVGMVFpeFZRVUZWUlN4RFFVRldMRVZCUVdFN1FVRkRiRU1zVVVGQlNVRXNRMEZCU2l4RlFVRlBRU3hEUVVGRExFTkJRVU4zUWl4alFVRkdPMEZCUlZCNFFpeEpRVUZCUVN4RFFVRkRMRWRCUVVkdVF5eERRVUZETEVOQlFVTnZReXhMUVVGR0xFTkJRVkVzYVVKQlFWSXNRMEZCU2p0QlFVVkJMRk5CUVV0NlFpeFJRVUZNTEVOQlFXTlhMRTlCUVdRc1EwRkJjMEpoTEVOQlFYUkNPMEZCUlVFc1VVRkJTU3hEUVVGRExFdEJRVXR3UWl4UFFVRk9MRWxCUVdsQ2IwSXNRMEZCUXl4RFFVRkRSeXhyUWtGQlJpeEZRVUZ5UWl4RlFVRTJRenRCUVVVM1F5eFRRVUZMZGtJc1QwRkJUQ3hIUVVGbExFdEJRV1k3UVVGRlFTeFRRVUZMTWtJc1RVRkJURHRCUVVOQkxGTkJRVXRETEUxQlFVdzdRVUZGUVRORExFbEJRVUZCTEVOQlFVTXNRMEZCUTFNc1VVRkJSQ3hEUVVGRUxFTkJRVmx0UkN4SFFVRmFMRU5CUVdkQ0xHOUNRVUZvUWp0QlFVVkJMRk5CUVV0cVJDeFJRVUZNTEVOQlEwZHJSQ3hYUVVSSUxFTkJRMlVzU1VGRVppeEZRVVZIUkN4SFFVWklMRU5CUlU4c01FSkJSbEFzUlVGSFIwRXNSMEZJU0N4RFFVZFBMRFJDUVVoUU8wRkJTMEVzVTBGQlMyaEVMRTlCUVV3c1EwRkJZV2RFTEVkQlFXSXNRMEZCYVVJc09FSkJRV3BDTzBGQlJVRTFSQ3hKUVVGQlFTeERRVUZETEVOQlFVTnBSQ3hQUVVGR0xFTkJRVlZFTEZWQlFWWXNTVUZCZDBJc1MwRkJTM0pETEZGQlFVd3NRMEZCWTNWRExGRkJRV1FzUTBGQmRVSXNUVUZCZGtJc1EwRkJlRUlzUjBGRFJTeExRVUZMZGtNc1VVRkJUQ3hEUVVOSGEwTXNSMEZFU0N4RFFVTlBMR2xDUVVSUUxFVkJRekJDTjBNc1EwRkJReXhEUVVGRGNVSXNTMEZCUml4RFFVRlJMRXRCUVV0NVF5eFRRVUZpTEVWQlFYZENMRWxCUVhoQ0xFTkJSREZDTEVWQlJVZEtMRzlDUVVaSUxFTkJSWGRDY2tRc1MwRkJTeXhEUVVGRGJVSXNiVUpCUmpsQ0xFTkJSRVlzUjBGSlJTeExRVUZMYzBNc1UwRkJUQ3hGUVVwR08wRkJTMFFzUjBFMVFrUTdPMEZCT0VKQmVrUXNSVUZCUVVFc1MwRkJTeXhEUVVGRGVVSXNVMEZCVGl4RFFVRm5RakpDTEZsQlFXaENMRWRCUVN0Q0xGbEJRVms3UVVGRGVrTjZSQ3hKUVVGQlFTeERRVUZETEVOQlFVTlRMRkZCUVVRc1EwRkJSQ3hEUVVOSGJVUXNSMEZFU0N4RFFVTlBMRzlDUVVSUUxFVkJRelpDTzBGQlJEZENMRXRCUlVkb1FpeEZRVVpJTEVOQlJVMHNiMEpCUms0c1JVRkZORUkxUXl4RFFVRkRMRU5CUVVOeFFpeExRVUZHTEVOQlFWRXNWVUZCVldNc1EwRkJWaXhGUVVGaE8wRkJRemRETEZWQlFVa3NTMEZCUzNoQ0xGRkJRVXdzUTBGQll5eERRVUZrTEUxQlFYRkNkMElzUTBGQlF5eERRVUZEVnl4TlFVRjJRaXhKUVVGcFF5eERRVUZETEV0QlFVdHVReXhSUVVGTUxFTkJRV052UkN4SFFVRmtMRU5CUVd0Q05VSXNRMEZCUXl4RFFVRkRWeXhOUVVGd1FpeEZRVUUwUWswc1RVRkJiRVVzUlVGQk1FVTdRVUZEZUVVc1lVRkJTM3BETEZGQlFVd3NRMEZCWTFjc1QwRkJaQ3hEUVVGelFpeFBRVUYwUWp0QlFVTkVPMEZCUTBZc1MwRktlVUlzUlVGSmRrSXNTVUZLZFVJc1EwRkdOVUk3UVVGUFJDeEhRVkpFT3p0QlFWVkJha0lzUlVGQlFVRXNTMEZCU3l4RFFVRkRlVUlzVTBGQlRpeERRVUZuUWxrc1RVRkJhRUlzUjBGQmVVSXNXVUZCV1R0QlFVTnVReXhSUVVGSkxFdEJRVXN6UWl4UFFVRk1MRWxCUVdkQ0xFdEJRVXRTTEU5QlFVd3NRMEZCWVhGQ0xGRkJRV3BETEVWQlFUSkRPMEZCUTNwRExGZEJRVXRxUWl4UlFVRk1MRU5CUVdOcFF5eEZRVUZrTEVOQlFXbENMRFJDUVVGcVFpeEZRVUVyUXpWRExFTkJRVU1zUTBGQlEzRkNMRXRCUVVZc1EwRkJVU3hWUVVGVll5eERRVUZXTEVWQlFXRTdRVUZEYkVWQkxGRkJRVUZCTEVOQlFVTXNRMEZCUXpaQ0xFdEJRVVlzU1VGQlZ5eEZRVUZZTEVsQlFXbENMRXRCUVVzdlFpeEpRVUZNTEVWQlFXcENPMEZCUTBRc1QwRkdPRU1zUlVGRk5VTXNTVUZHTkVNc1EwRkJMME03UVVGSFJDeExRVXBFTEUxQlNVOHNTVUZCU1N4RFFVRkRMRXRCUVV0c1FpeFBRVUZXTEVWQlFXMUNPMEZCUTNoQ0xGZEJRVXRLTEZGQlFVd3NRMEZCWTJsRUxFZEJRV1FzUTBGQmEwSXNORUpCUVd4Q08wRkJRMFE3UVVGRFJpeEhRVkpFT3p0QlFWVkJka1FzUlVGQlFVRXNTMEZCU3l4RFFVRkRlVUlzVTBGQlRpeERRVUZuUW1Fc1RVRkJhRUlzUjBGQmVVSXNXVUZCV1R0QlFVTnVReXhSUVVGSkxFdEJRVXMxUWl4UFFVRlVMRVZCUVd0Q08wRkJRMmhDWml4TlFVRkJRU3hEUVVGRExFTkJRVU5wUlN4TlFVRkVMRU5CUVVRc1EwRkJWWEpDTEVWQlFWWXNRMEZCWVN4dFFrRkJZaXhGUVVGclF6VkRMRU5CUVVNc1EwRkJRM0ZDTEV0QlFVWXNRMEZCVVN4TFFVRkxOa01zV1VGQllpeEZRVUV5UWl4SlFVRXpRaXhEUVVGc1F6dEJRVU5FTEV0QlJrUXNUVUZGVHp0QlFVTk1iRVVzVFVGQlFVRXNRMEZCUXl4RFFVRkRhVVVzVFVGQlJDeERRVUZFTEVOQlFWVk1MRWRCUVZZc1EwRkJZeXh0UWtGQlpEdEJRVU5FTzBGQlEwWXNSMEZPUkRzN1FVRlJRWFpFTEVWQlFVRkJMRXRCUVVzc1EwRkJRM2xDTEZOQlFVNHNRMEZCWjBKblF5eFRRVUZvUWl4SFFVRTBRaXhaUVVGWk8wRkJRM1JETEZGQlFVazFRaXhKUVVGSkxFZEJRVWNzU1VGQldEdEJRVU5CTEZOQlFVdDJRaXhSUVVGTUxFTkJRV056UWl4SlFVRmtPMEZCUTBFc1UwRkJTMDRzVVVGQlRDeERRVUZqTEZsQlFWazdRVUZEZUVKUExFMUJRVUZCTEVsQlFVa3NRMEZCUXpGQ0xFdEJRVXdzUTBGQlYzRkVMRmRCUVZnc1EwRkJkVUlzV1VGQmRrSTdRVUZEUVROQ0xFMUJRVUZCTEVsQlFVa3NRMEZCUTJsRExHZENRVUZNTzBGQlEwRnFReXhOUVVGQlFTeEpRVUZKTEVOQlFVTnJReXhqUVVGTU8wRkJRMEZzUXl4TlFVRkJRU3hKUVVGSkxFTkJRVU4yUWl4UlFVRk1MRU5CUVdOWExFOUJRV1FzUTBGQmMwSXNiVUpCUVhSQ08wRkJRMFFzUzBGTVJEdEJRVTFFTEVkQlZFUTdPMEZCVjBGcVFpeEZRVUZCUVN4TFFVRkxMRU5CUVVONVFpeFRRVUZPTEVOQlFXZENkVU1zWTBGQmFFSXNSMEZCYVVNc1dVRkJXVHRCUVVNelF5eFRRVUZMZGtRc1UwRkJUQ3hKUVVGclFpeExRVUZMUVN4VFFVRk1MRU5CUVdWM1JDeE5RVUZtTEVWQlFXeENPMEZCUTBFc1UwRkJTM2hFTEZOQlFVd3NSMEZCYVVJc1NVRkJha0k3UVVGRFJDeEhRVWhFT3p0QlFVdEJWQ3hGUVVGQlFTeExRVUZMTEVOQlFVTjVRaXhUUVVGT0xFTkJRV2RDU0N4UlFVRm9RaXhIUVVFeVFpeFZRVUZWTkVNc1VVRkJWaXhGUVVGdlFqdEJRVU0zUXl4UlFVRkpja01zU1VGQlNTeEhRVUZITEVsQlFWZzdRVUZEUVN4UlFVRkpjME1zVDBGQlR5eEhRVUZITEV0QlFVczNSQ3hSUVVGTUxFTkJRV04xUXl4UlFVRmtMRU5CUVhWQ0xFMUJRWFpDTEVsQlFXbERMRTFCUVdwRExFZEJRVEJETEVWQlFYaEVPenRCUVVWQkxGRkJRVWtzUzBGQlMyNURMRTlCUVV3c1NVRkJaMElzUzBGQlMxSXNUMEZCVEN4RFFVRmhiMElzVVVGQmFrTXNSVUZCTWtNN1FVRkRla01zVlVGQlNUaERMRk5CUVZNc1IwRkJSM3BGTEVOQlFVTXNRMEZCUTJsRUxFOUJRVVlzUTBGQlZVUXNWVUZCVml4SlFVRjNRbmRDTEU5QlFYaERPMEZCUlVFc1YwRkJTekZFTEZOQlFVd3NSMEZCYVVKa0xFTkJRVU1zUTBGQlExTXNVVUZCVVN4RFFVRkRhVVVzWVVGQlZDeERRVUYxUWl4TFFVRjJRaXhEUVVGRUxFTkJRVVFzUTBGRFpHcERMRkZCUkdNc1EwRkRUQ3h2UWtGQmIwSXJRaXhQUVVSbUxFVkJSV1J1UWl4UlFVWmpMRU5CUlV3c1MwRkJTemRETEV0QlJrRXNRMEZCYWtJN1FVRkpRU3hYUVVGTFJ5eFJRVUZNTEVOQlFXTnBReXhGUVVGa0xFTkJRV2xDTERCQ1FVRnFRaXhGUVVFMlF6VkRMRU5CUVVNc1EwRkJRM0ZDTEV0QlFVWXNRMEZCVVN4VlFVRlZZeXhEUVVGV0xFVkJRV0U3UVVGRGFFVXNXVUZCU1N4TFFVRkxha0lzYlVKQlFWUXNSVUZCT0VJN1FVRkROVUlzWlVGQlMwRXNiVUpCUVV3c1IwRkJNa0lzUzBGQk0wSTdRVUZEUVR0QlFVTkVPenRCUVVORUxGbEJRVWxwUWl4RFFVRkRMRU5CUVVOWExFMUJRVVlzUzBGQllWZ3NRMEZCUXl4RFFVRkRkME1zWVVGQmJrSXNSVUZCYTBNN1FVRkRiRU1zWVVGQlMzQkZMRTlCUVV3c1EwRkJZVzlDTEZGQlFXSXNTVUZCZVVJc1VVRkJla0lzUjBGRFNTeExRVUZMYUVJc1VVRkJUQ3hEUVVGakxFTkJRV1FzUlVGQmFVSnBSU3hMUVVGcVFpeEZRVVJLTEVkQlJVa3NTMEZCU3pORExFbEJRVXdzUlVGR1NqdEJRVWRFTEU5QlZEUkRMRVZCVXpGRExFbEJWREJETEVOQlFUZERPMEZCVjBFc1ZVRkJTWGRETEZOQlFVb3NSVUZCWlN4TFFVRkxNMFFzVTBGQlRDeERRVUZsTEVOQlFXWXNSVUZCYTBJd1F5eFhRVUZzUWl4RFFXeENNRUlzUTBGclFrazdPMEZCUlRkRExGZEJRVXN4UXl4VFFVRk1MRU5CUVdVeVFpeFJRVUZtTEVOQlFYZENMRWxCUVhoQ08wRkJSVUVzVlVGQlNTeERRVUZET0VJc1VVRkJUQ3hGUVVGbE8wRkJSV1pGTEUxQlFVRkJMRk5CUVZNc1IwRkRVQ3hMUVVGTE0wUXNVMEZCVEN4RFFVTkhLMElzUjBGRVNDeERRVU5QTEdsQ1FVUlFMRVZCUXpCQ01FSXNVVUZFTVVJc1JVRkZSMklzYjBKQlJrZ3NRMEZGZDBKeVJDeExRVUZMTEVOQlFVTnZRaXcwUWtGR09VSXNRMEZFVHl4SFFVbFFPRU1zVVVGQlVTeEZRVXBXTzBGQlRVUXNTMEU1UWtRc1RVRTRRazhzU1VGQlNTeERRVUZETEV0QlFVdDRSQ3hQUVVGT0xFbEJRV2xDTEV0QlFVdEVMRk5CUVRGQ0xFVkJRWEZETzBGQlF6RkRMRmRCUVV0QkxGTkJRVXdzUTBGQlpTdERMRmRCUVdZc1EwRkJNa0lzU1VGQk0wSTdPMEZCUlVFc1ZVRkJTV2RDTEdOQlFXTXNSMEZCUnl4VFFVRnFRa0VzWTBGQmFVSXNSMEZCV1R0QlFVTXZRak5ETEZGQlFVRkJMRWxCUVVrc1EwRkJRMjFETEdOQlFVdzdRVUZEUVVVc1VVRkJRVUVzVVVGQlVTeEpRVUZKUVN4UlFVRlJMRVZCUVhCQ08wRkJRMFFzVDBGSVJEczdRVUZKUVhaRkxFMUJRVUZCTEVOQlFVTXNRMEZCUTJsRUxFOUJRVVlzUTBGQlZVUXNWVUZCVml4SlFVRjNRaXhMUVVGTGNrTXNVVUZCVEN4RFFVRmpkVU1zVVVGQlpDeERRVUYxUWl4TlFVRjJRaXhEUVVGNFFpeEhRVU5GTEV0QlFVdHdReXhUUVVGTUxFTkJRMGNyUWl4SFFVUklMRU5CUTA4c2FVSkJSRkFzUlVGRE1FSm5ReXhqUVVReFFpeEZRVVZIYmtJc2IwSkJSa2dzUTBGRmQwSnlSQ3hMUVVGTExFTkJRVU52UWl3MFFrRkdPVUlzUTBGRVJpeEhRVWxGYjBRc1kwRkJZeXhGUVVwb1FqdEJRVTFFTEV0QllrMHNUVUZoUVN4SlFVRkpUaXhSUVVGS0xFVkJRV003UVVGRGJrSkJMRTFCUVVGQkxGRkJRVkU3UVVGRFZEdEJRVU5HTEVkQmJFUkVMRU5CTjB0WkxFTkJhVTlhT3pzN1FVRkZRV3hGTEVWQlFVRkJMRXRCUVVzc1EwRkJRM2xDTEZOQlFVNHNRMEZCWjBKdlF5eFpRVUZvUWl4SFFVRXJRaXhaUVVGWk8wRkJRM3BETEZOQlFVdFlMRmxCUVV3N1FVRkRSQ3hIUVVaRU96dEJRVWxCYkVRc1JVRkJRVUVzUzBGQlN5eERRVUZEZVVJc1UwRkJUaXhEUVVGblFubENMRmxCUVdoQ0xFZEJRU3RDTEZsQlFWazdRVUZEZWtNc1VVRkJTWFZDTEd0Q1FVRnJRaXhIUVVGSExFdEJRVXR1UlN4UlFVRk1MRU5CUVdNc1EwRkJaQ3hGUVVGcFFtOUZMRmxCUVdwQ0xFZEJRV2REZEVVc1VVRkJVU3hEUVVGRGRVVXNaVUZCVkN4RFFVRjVRa01zV1VGQmJFWTdRVUZGUVN4VFFVRkxkRVVzVVVGQlRDeERRVUZqZFVVc1IwRkJaQ3hEUVVGclFqdEJRVU5vUWtNc1RVRkJRVUVzVjBGQlZ5eEZRVUZITEVOQlFVTXNTMEZCUzBNc2FVSkJRVTRzU1VGQk1rSk9MR3RDUVVFelFpeEhRVUZuUkN4TFFVRkxOMFFzWTBGQmNrUXNSMEZCYzBVc1JVRkVjRVU3UVVGRmFFSnZSU3hOUVVGQlFTeFpRVUZaTEVWQlFVVXNTMEZCUzBRc2FVSkJRVXdzU1VGQk1FSXNRMEZCUTA0c2EwSkJRVE5DTEVkQlFXZEVMRXRCUVVzM1JDeGpRVUZ5UkN4SFFVRnpSVHRCUVVad1JTeExRVUZzUWp0QlFVbEVMRWRCVUVRN08wRkJVMEZhTEVWQlFVRkJMRXRCUVVzc1EwRkJRM2xDTEZOQlFVNHNRMEZCWjBKeFF5eG5Ra0ZCYUVJc1IwRkJiVU1zV1VGQldUdEJRVU0zUXl4VFFVRkxlRVFzVVVGQlRDeERRVUZqZFVVc1IwRkJaQ3hEUVVGclFqdEJRVU5vUWtNc1RVRkJRVUVzVjBGQlZ5eEZRVUZGTEVWQlJFYzdRVUZGYUVKRkxFMUJRVUZCTEZsQlFWa3NSVUZCUlR0QlFVWkZMRXRCUVd4Q08wRkJTVVFzUjBGTVJEczdRVUZQUVdoR0xFVkJRVUZCTEV0QlFVc3NRMEZCUTNsQ0xGTkJRVTRzUTBGQlowSlRMR05CUVdoQ0xFZEJRV2xETEZsQlFWazdRVUZETTBNc1VVRkJTU3RETEdWQlFXVXNSMEZCUjNKQ0xFMUJRVTBzUTBGQlEzTkNMRlZCUVRkQ096dEJRVU5CTEZGQlFVa3NRMEZCUTBRc1pVRkJUQ3hGUVVGelFqdEJRVUZGTzBGQlEzUkNMRlZCUVVsRkxHMUNRVUZ0UWl4SFFVRkhMMFVzVVVGQlVTeERRVUZEZFVVc1pVRkJWQ3hEUVVGNVFsTXNjVUpCUVhwQ0xFVkJRVEZDTzBGQlEwRklMRTFCUVVGQkxHVkJRV1VzUjBGQlIwVXNiVUpCUVcxQ0xFTkJRVU5GTEV0QlFYQkNMRWRCUVRSQ1F5eEpRVUZKTEVOQlFVTkRMRWRCUVV3c1EwRkJVMG9zYlVKQlFXMUNMRU5CUVVOTExFbEJRVGRDTEVOQlFUbERPMEZCUTBRN08wRkJRMFFzVTBGQlMxUXNhVUpCUVV3c1IwRkJlVUl6UlN4UlFVRlJMRU5CUVVORExFbEJRVlFzUTBGQlkyOUdMRmRCUVdRc1IwRkJORUpTTEdWQlFYSkVPMEZCUTBFc1UwRkJTM0pGTEdOQlFVd3NSMEZCYzBJc1MwRkJTemhGTEdkQ1FVRk1MRVZCUVhSQ08wRkJRMFFzUjBGU1JEczdRVUZWUVRGR0xFVkJRVUZCTEV0QlFVc3NRMEZCUTNsQ0xGTkJRVTRzUTBGQlowSlZMRmxCUVdoQ0xFZEJRU3RDTEZsQlFWazdRVUZEZWtNc1VVRkJTWGRFTEU5QlFVOHNSMEZCUjBNc1VVRkJVU3hEUVVGRkxFdEJRVXQ2Uml4TFFVRk1MRU5CUVZjd1JTeEhRVUZZTEVOQlFXVXNaVUZCWml4TFFVRnRReXhEUVVGeVF5eEZRVUY1UXl4RlFVRjZReXhEUVVGMFFqdEJRVU5CTEZOQlFVdHNSU3hsUVVGTUxFZEJRWFZDVUN4UlFVRlJMRU5CUVVORExFbEJRVlFzUTBGQlkzZEdMRXRCUVdRc1EwRkJiMEppTEZsQlFYQkNMRWxCUVc5RExFVkJRVE5FTzBGQlEwRXNVVUZCU1N4TFFVRkxSQ3hwUWtGQlZDeEZRVUUwUWl4TFFVRkxOVVVzUzBGQlRDeERRVUZYTUVVc1IwRkJXQ3hEUVVGbExHVkJRV1lzUlVGQlowTmpMRTlCUVU4c1IwRkJSeXhMUVVGTEwwVXNZMEZCTDBNN1FVRkROMElzUjBGS1JEczdRVUZOUVZvc1JVRkJRVUVzUzBGQlN5eERRVUZEZVVJc1UwRkJUaXhEUVVGblFuTkRMR05CUVdoQ0xFZEJRV2xETEZsQlFWazdRVUZETTBNc1UwRkJTelZFTEV0QlFVd3NRMEZCVnpCRkxFZEJRVmdzUTBGQlpTeGxRVUZtTEVWQlFXZERMRXRCUVV0c1JTeGxRVUZ5UXp0QlFVTkVMRWRCUmtRN08wRkJTVUZZTEVWQlFVRkJMRXRCUVVzc1EwRkJRM2xDTEZOQlFVNHNRMEZCWjBKcFJTeG5Ra0ZCYUVJc1IwRkJiVU1zV1VGQldUdEJRVUZGTzBGQlF5OURMRkZCUVVsSkxGTkJRVk1zUjBGQlJ6RkdMRkZCUVZFc1EwRkJRMmxGTEdGQlFWUXNRMEZCZFVJc1MwRkJka0lzUTBGQmFFSTdRVUZEUVhsQ0xFbEJRVUZCTEZOQlFWTXNRMEZCUTBNc1UwRkJWaXhIUVVGelFpeDVRa0ZCZEVJN1FVRkRRU3hUUVVGTE5VWXNTMEZCVEN4RFFVRlhOa1lzVFVGQldDeERRVUZyUWtZc1UwRkJiRUk3UVVGRFFTeFJRVUZKYkVZc1kwRkJZeXhIUVVGSGEwWXNVMEZCVXl4RFFVRkRNME1zVjBGQlZpeEhRVUYzUWpKRExGTkJRVk1zUTBGQlEwd3NWMEZCZGtRN1FVRkRRU3hUUVVGTGRFWXNTMEZCVEN4RFFVRlhMRU5CUVZnc1JVRkJZemhHTEZkQlFXUXNRMEZCTUVKSUxGTkJRVEZDTzBGQlEwRXNWMEZCVDJ4R0xHTkJRVkE3UVVGRFJDeEhRVkJFTEVOQk0xRlpMRU5CY1ZKYU8wRkJRMEU3T3p0QlFVVkJMRmRCUVZOelJpeE5RVUZVTEVOQlFXZENReXhOUVVGb1FpeEZRVUYzUW5oRkxHTkJRWGhDTEVWQlFYZERPMEZCUTNSRExGZEJRVThzUzBGQlMzbEZMRWxCUVV3c1EwRkJWU3haUVVGWk8wRkJRek5DTEZWQlFVbERMRXRCUVVzc1IwRkJTekZITEVOQlFVTXNRMEZCUXl4SlFVRkVMRU5CUVdZN1FVRkRRU3hWUVVGSk1rY3NTVUZCU1N4SFFVRk5SQ3hMUVVGTExFTkJRVU5ETEVsQlFVNHNRMEZCVnl4WlFVRllMRU5CUVdRN1FVRkRRU3hWUVVGSmNFY3NUMEZCVHl4SFFVRkhVQ3hEUVVGRExFTkJRVU0wUnl4TlFVRkdMRU5CUVZNc1JVRkJWQ3hGUVVGaGRrY3NTMEZCU3l4RFFVRkRjVUlzVVVGQmJrSXNSVUZCTmtKblJpeExRVUZMTEVOQlFVTkRMRWxCUVU0c1JVRkJOMElzUlVGQk1rTXNVVUZCVDBnc1RVRkJVQ3hMUVVGcFFpeFJRVUZxUWl4SlFVRTJRa0VzVFVGQmVFVXNRMEZCWkR0QlFVVkJMRlZCUVVrc1EwRkJRMGNzU1VGQlRDeEZRVUZYUkN4TFFVRkxMRU5CUVVORExFbEJRVTRzUTBGQlZ5eFpRVUZZTEVWQlFUQkNRU3hKUVVGSkxFZEJRVWNzU1VGQlNYUkhMRXRCUVVvc1EwRkJWU3hKUVVGV0xFVkJRV2RDUlN4UFFVRm9RaXhEUVVGcVF6dEJRVU5ZTEZWQlFVa3NUMEZCVDJsSExFMUJRVkFzU1VGQmFVSXNVVUZCY2tJc1JVRkJLMEpITEVsQlFVa3NRMEZCUTBnc1RVRkJSQ3hEUVVGS0xFTkJRV0Y0UlN4alFVRmlMRVZCUVM5Q0xFdEJRMHNzU1VGQlNYcENMRTlCUVU4c1EwRkJRM05DTEVsQlFWb3NSVUZCYTBJNFJTeEpRVUZKTEVOQlFVTTVSU3hKUVVGTUxFTkJRVlZITEdOQlFWWTdRVUZEZUVJc1MwRlNUU3hEUVVGUU8wRkJVMFE3TzBGQlJVUXNUVUZCU1RaRkxFZEJRVWNzUjBGQlJ6ZEhMRU5CUVVNc1EwRkJRMFVzUlVGQlJpeERRVUZMTkVjc1lVRkJaanRCUVVWQk9VY3NSVUZCUVVFc1EwRkJReXhEUVVGRFJTeEZRVUZHTEVOQlFVczBSeXhoUVVGTUxFZEJRV2xEVUN4TlFVRnFRenRCUVVOQmRrY3NSVUZCUVVFc1EwRkJReXhEUVVGRFJTeEZRVUZHTEVOQlFVczBSeXhoUVVGTUxFTkJRVzFDUXl4WFFVRnVRaXhIUVVGcFF6RkhMRXRCUVdwRExFTkJkbE5aTEVOQk1GTmFPMEZCUTBFN08wRkJSVUZNTEVWQlFVRkJMRU5CUVVNc1EwRkJRMFVzUlVGQlJpeERRVUZMTkVjc1lVRkJUQ3hEUVVGdFFrVXNWVUZCYmtJc1IwRkJaME1zV1VGQldUdEJRVU14UTJoSUxFbEJRVUZCTEVOQlFVTXNRMEZCUTBVc1JVRkJSaXhEUVVGTE5FY3NZVUZCVEN4SFFVRnhRa1FzUjBGQmNrSTdRVUZEUVN4WFFVRlBMRWxCUVZBN1FVRkRSQ3hIUVVoRUxFTkJOMU5aTEVOQmJWUmFPMEZCUTBFN096dEJRVVZCTjBjc1JVRkJRVUVzUTBGQlF5eERRVUZEVXl4UlFVRkVMRU5CUVVRc1EwRkJXVzFETEVWQlFWb3NRMEZCWlN3eVFrRkJaaXhGUVVFMFF5d3JRa0ZCTlVNc1JVRkJOa1VzVlVGQlZWUXNRMEZCVml4RlFVRmhPMEZCUTNoR0xGRkJRVWwxUlN4TFFVRkxMRWRCUVVzeFJ5eERRVUZETEVOQlFVTXNTVUZCUkN4RFFVRm1PMEZCUTBFc1VVRkJTV2xJTEVsQlFVa3NSMEZCVFZBc1MwRkJTeXhEUVVGRFVTeEpRVUZPTEVOQlFWY3NUVUZCV0N4RFFVRmtPMEZCUTBFc1VVRkJTVU1zVDBGQlR5eEhRVUZIYmtnc1EwRkJReXhEUVVGRE1FY3NTMEZCU3l4RFFVRkRVU3hKUVVGT0xFTkJRVmNzWVVGQldDeExRVUU0UWtRc1NVRkJTU3hKUVVGSlFTeEpRVUZKTEVOQlFVTkhMRTlCUVV3c1EwRkJZU3huUWtGQllpeEZRVUVyUWl4RlFVRXZRaXhEUVVGMlF5eERRVUZtTEVOQlNIZEdMRU5CUjBjN08wRkJRek5HTEZGQlFVbGFMRTFCUVUwc1IwRkJTVmNzVDBGQlR5eERRVUZEVWl4SlFVRlNMRU5CUVdFc1dVRkJZaXhKUVVFMlFpeFJRVUUzUWl4SFFVRjNRek5ITEVOQlFVTXNRMEZCUXpSSExFMUJRVVlzUTBGQlV6dEJRVUZGZWtZc1RVRkJRVUVzVFVGQlRTeEZRVUZGTEVOQlFVTXNTVUZCU1d0SExFbEJRVW9zUTBGQlUwb3NTVUZCVkN4RFFVRkVMRWxCUVcxQ1FUdEJRVUUzUWl4TFFVRlVMRVZCUVRoRFJTeFBRVUZQTEVOQlFVTlNMRWxCUVZJc1JVRkJPVU1zUlVGQk9FUkVMRXRCUVVzc1EwRkJRME1zU1VGQlRpeEZRVUU1UkN4RFFVRjBSRHRCUVVWQkxGRkJRVWxFTEV0QlFVc3NRMEZCUXpORUxFVkJRVTRzUTBGQlV5eEhRVUZVTEVOQlFVb3NSVUZCYlVKYUxFTkJRVU1zUTBGQlEzZENMR05CUVVZN1FVRkZia0ozUkN4SlFVRkJRU3hQUVVGUExFTkJRVU4wUlN4SFFVRlNMRU5CUVZrc2FVSkJRVm9zUlVGQkswSXNWVUZCVlhsRkxGTkJRVllzUlVGQmNVSTdRVUZEYkVRc1ZVRkJTVUVzVTBGQlV5eERRVUZEYUVZc2EwSkJRVllzUlVGQlNpeEZRVUZ2UXl4UFFVUmpMRU5CUTFBN08wRkJRek5ETmtVc1RVRkJRVUVzVDBGQlR5eERRVUZEZEVVc1IwRkJVaXhEUVVGWkxHMUNRVUZhTEVWQlFXbERMRmxCUVZrN1FVRkRNME0yUkN4UlFVRkJRU3hMUVVGTExFTkJRVU16UkN4RlFVRk9MRU5CUVZNc1ZVRkJWQ3hMUVVGM1FqSkVMRXRCUVVzc1EwRkJRM0JHTEU5QlFVNHNRMEZCWXl4UFFVRmtMRU5CUVhoQ08wRkJRMFFzVDBGR1JEdEJRVWRFTEV0QlRFUTdRVUZOUVdsR0xFbEJRVUZCTEUxQlFVMHNRMEZCUTJkQ0xFbEJRVkFzUTBGQldVb3NUMEZCV2l4RlFVRnhRbGdzVFVGQmNrSXNSVUZCTmtJc1NVRkJOMEk3UVVGRFJDeEhRV1pFTzBGQmFVSkVMRU5CZGxWQkxFTkJkVlZETVVjc1RVRjJWVVFzUTBGQlJEdEJRVEJWUVN4RFFVRkRMRlZCUVZWRkxFTkJRVllzUlVGQllUdEJRVU5hTEdWQlJGa3NRMEZIV2p0QlFVTkJPenRCUVVWQkxFMUJRVWt5UWl4UlFVRlJMRWRCUVVjc2IwSkJRV1k3UVVGRFFTeE5RVUZKU1N4TlFVRk5MRWRCUVVzc0swSkJRV1k3TzBGQlEwRXNUVUZCU1hsR0xGRkJRVkVzUjBGQlJ5eFRRVUZZUVN4UlFVRlhMRU5CUVZWc1NDeFBRVUZXTEVWQlFXMUNPMEZCUTJoRFRpeEpRVUZCUVN4RFFVRkRMRU5CUVVOTkxFOUJRVVFzUTBGQlJDeERRVUZYYzBNc1JVRkJXQ3hEUVVGakxIRkNRVUZrTEVWQlFYRkRMRXRCUVV0aUxFMUJRVEZETzBGQlEwUXNSMEZHUkRzN1FVRkpRWGxHTEVWQlFVRkJMRkZCUVZFc1EwRkJRMnBITEU5QlFWUXNSMEZCYlVJc1QwRkJia0k3TzBGQlJVRXNWMEZCVTJ0SExGTkJRVlFzUTBGQmJVSm1MRXRCUVc1Q0xFVkJRVEJDTzBGQlEzaENMRkZCUVVsblFpeFJRVUZSTEVkQlFVZG9RaXhMUVVGTExFTkJRVU5STEVsQlFVNHNRMEZCVnl4aFFVRllMRU5CUVdZN08wRkJSVUVzVVVGQlNTeERRVUZEVVN4UlFVRk1MRVZCUVdVN1FVRkRZa0VzVFVGQlFVRXNVVUZCVVN4SFFVRkhhRUlzUzBGQlN5eERRVUZEVVN4SlFVRk9MRU5CUVZjc1RVRkJXQ3hEUVVGWU8wRkJRMEZSTEUxQlFVRkJMRkZCUVZFc1IwRkJSMEVzVVVGQlVTeEpRVUZKTEZsQlFWbE1MRWxCUVZvc1EwRkJhVUpMTEZGQlFXcENMRU5CUVZvc1NVRkJNRU5CTEZGQlFWRXNRMEZCUTA0c1QwRkJWQ3hEUVVGcFFpeG5Ra0ZCYWtJc1JVRkJiVU1zUlVGQmJrTXNRMEZCY2tRc1EwRkdZU3hEUVVVclJUdEJRVU0zUmpzN1FVRkZSQ3hSUVVGSlR5eFBRVUZQTEVkQlFVZEVMRkZCUVZFc1NVRkJTVEZJTEVOQlFVTXNRMEZCUXpCSUxGRkJRVVFzUTBGQk0wSTdRVUZGUVN4WFFVRlBReXhQUVVGUExFbEJRVWxCTEU5QlFVOHNRMEZCUTNaRkxFMUJRVzVDTEVkQlFUUkNkVVVzVDBGQk5VSXNSMEZCYzBOcVFpeExRVUZMTEVOQlFVTjJSQ3hOUVVGT0xFVkJRVGRETzBGQlEwUTdPMEZCUlVRc1YwRkJVM2xGTEZWQlFWUXNRMEZCYjBKNlJpeERRVUZ3UWl4RlFVRjFRanRCUVVOeVFpeFJRVUZKUVN4RFFVRkRMRWxCUVVsQkxFTkJRVU1zUTBGQlF6WkNMRXRCUVVZc1MwRkJXU3hEUVVGeVFpeEZRVUYzUWp0QlFVTjRRbWhGTEVsQlFVRkJMRU5CUVVNc1EwRkJRekpDTEZGQlFVUXNRMEZCUkN4RFFVRlpNa01zVFVGQldqdEJRVU5CZEVVc1NVRkJRVUVzUTBGQlF5eERRVUZESzBJc1RVRkJSQ3hEUVVGRUxFTkJRVlV3UlN4SlFVRldMRU5CUVdVc1dVRkJXVHRCUVVONlFpeFZRVUZKUXl4TFFVRkxMRWRCUVZjeFJ5eERRVUZETEVOQlFVTXNTVUZCUkN4RFFVRnlRanRCUVVOQkxGVkJRVWt5U0N4UFFVRlBMRWRCUVZOR0xGTkJRVk1zUTBGQlEyWXNTMEZCUkN4RFFVRTNRanRCUVVOQkxGVkJRVWx5UlN4aFFVRmhMRWRCUVVjN1FVRkJSVUVzVVVGQlFVRXNZVUZCWVN4RlFVRkZPMEZCUVdwQ0xFOUJRWEJDTzBGQlJVRXNWVUZCU1N4RFFVRkRjMFlzVDBGQlR5eERRVUZEZWtVc1VVRkJVaXhEUVVGcFFpeE5RVUZxUWl4RFFVRk1MRVZCUVN0Q08wRkJSUzlDTEZWQlFVbG1MRU5CUVVNc1NVRkJTVUVzUTBGQlF5eERRVUZETUVZc1NVRkJSaXhKUVVGVkxFOUJRV1lzU1VGQk1FSXNhMEpCUVd0Q1VpeEpRVUZzUWl4RFFVRjFRbXhHTEVOQlFVTXNRMEZCUTFjc1RVRkJSaXhEUVVGVFowWXNUMEZCYUVNc1EwRkJNVUlzU1VGQmMwVTVTQ3hEUVVGRExFTkJRVU1yU0N4UlFVRkdMRU5CUVZkS0xFOUJRVThzUTBGQlF5eERRVUZFTEVOQlFXeENMRVZCUVhWQ2VFWXNRMEZCUXl4RFFVRkRWeXhOUVVGNlFpeERRVUV4UlN4RlFVRTBSenRCUVVVMVJ6WkZMRTFCUVVGQkxFOUJRVThzUTBGQlEzSkhMRTlCUVZJc1EwRkJaMEpoTEVOQlFVTXNSMEZCUjI1RExFTkJRVU1zUTBGQlEyOURMRXRCUVVZc1EwRkJVU3h2UWtGQlVpeEZRVUU0UWtNc1lVRkJPVUlzUTBGQmNFSTdRVUZGUVN4VlFVRkpSaXhEUVVGRExFTkJRVU5ITEd0Q1FVRkdMRVZCUVVvc1JVRkJORUk3UVVGRk5VSnZSU3hOUVVGQlFTeExRVUZMTEVOQlFVTlJMRWxCUVU0c1EwRkJWeXhsUVVGWUxFVkJRVFJDTEU5QlFUVkNPMEZCUTBGVExFMUJRVUZCTEU5QlFVOHNRMEZCUXpsRUxGZEJRVklzUTBGQmIwSXNUVUZCY0VJc1JVRkJORUoyUXl4UFFVRTFRaXhEUVVGdlF5eHpRa0ZCY0VNc1JVRkJORVJsTEdGQlFUVkVPMEZCUTBRc1MwRm1SRHRCUVdkQ1JEczdRVUZGUkcxR0xFVkJRVUZCTEZGQlFWRXNRMEZCUXpGR0xGTkJRVlFzUTBGQmJVSkRMRTFCUVc1Q0xFZEJRVFJDTEZWQlFWVkpMRU5CUVZZc1JVRkJZVHRCUVVOMlF5eFJRVUZKZFVVc1MwRkJTeXhIUVVGSE1VY3NRMEZCUXl4RFFVRkRMRWxCUVVRc1EwRkJZanRCUVVWQkxGRkJRVWt3Unl4TFFVRkxMRU5CUVVNelJDeEZRVUZPTEVOQlFWTXNjMEpCUVZRc1EwRkJTaXhGUVVGelF6dEJRVVYwUXl4UlFVRkpORVVzVDBGQlR5eEhRVUZKUml4VFFVRlRMRU5CUVVObUxFdEJRVVFzUTBGQmVFSTdRVUZEUVN4UlFVRkpjMElzVVVGQlVTeEhRVUZIVEN4UFFVRlBMRU5CUVVONlJTeFJRVUZTTEVOQlFXbENMRTFCUVdwQ0xFTkJRV1k3UVVGRlFUQkZMRWxCUVVGQkxGVkJRVlU3TzBGQlJWWXNVVUZCU1N4RFFVRkRTU3hSUVVGTUxFVkJRV1U3UVVGRFlpeFZRVUZKTEd0Q1FVRnJRblpJTEZGQlFWRXNRMEZCUTNWRkxHVkJRVE5DTEVsQlFUaERMRU5CUVVNeVF5eFBRVUZQTEVOQlFVTk5MRTlCUVZJc1EwRkJaMElzWVVGQmFFSXNSVUZCSzBJM1JTeE5RVUZzUml4RlFVRXdSanRCUVVONFJqdEJRVU5CY0VRc1VVRkJRVUVzUTBGQlF5eERRVUZEVXl4UlFVRlJMRU5CUVVOcFJTeGhRVUZVTEVOQlFYVkNMRXRCUVhaQ0xFTkJRVVFzUTBGQlJDeERRVU5IYWtNc1VVRkVTQ3hEUVVOWkxHMUNRVVJhTEVWQlJVZDVSaXhYUVVaSUxFTkJSV1ZzU1N4RFFVRkRMRU5CUVVNc1NVRkJSQ3hEUVVab1FpeEZRVWRITkVNc1JVRklTQ3hEUVVkTkxFOUJTRTRzUlVGSFpXZEdMRlZCU0dZN1FVRkpSRHM3UVVGRlJDeFZRVUZKZGtZc1lVRkJZU3hIUVVGSE8wRkJRVVZCTEZGQlFVRkJMR0ZCUVdFc1JVRkJSVHRCUVVGcVFpeFBRVUZ3UWp0QlFVTkJjMFlzVFVGQlFVRXNUMEZCVHl4RFFVRkRja2NzVDBGQlVpeERRVUZuUW1Fc1EwRkJReXhIUVVGSGJrTXNRMEZCUXl4RFFVRkRiME1zUzBGQlJpeERRVUZSTEc5Q1FVRlNMRVZCUVRoQ1F5eGhRVUU1UWl4RFFVRndRanRCUVVWQkxGVkJRVWxHTEVOQlFVTXNRMEZCUTBjc2EwSkJRVVlzUlVGQlNpeEZRVUUwUWp0QlFVVTFRbTlGTEUxQlFVRkJMRXRCUVVzc1EwRkRSbkJHTEU5QlJFZ3NRMEZEVnl4UFFVUllMRVZCUlVjMFJpeEpRVVpJTEVOQlJWRXNaVUZHVWl4RlFVVjVRaXhOUVVaNlFqdEJRVWxCVXl4TlFVRkJRU3hQUVVGUExFTkJRMHBSTEZkQlJFZ3NRMEZEWlN4TlFVUm1MRVZCUlVjM1J5eFBRVVpJTEVOQlJWY3NjVUpCUmxnc1JVRkZhME5sTEdGQlJteERPMEZCUjBRN08wRkJSVVFzVjBGQlR5eExRVUZRTzBGQlEwUXNSMEZzUTBRN08wRkJiME5CYlVZc1JVRkJRVUVzVVVGQlVTeERRVUZETVVZc1UwRkJWQ3hEUVVGdFFuTkhMRTlCUVc1Q0xFZEJRVFpDTEZWQlFWVnFSeXhEUVVGV0xFVkJRV0U3UVVGRGVFTXNVVUZCU1N4RFFVRkRMR2RDUVVGblFtdEdMRWxCUVdoQ0xFTkJRWEZDYkVZc1EwRkJReXhEUVVGRE5rSXNTMEZCZGtJc1EwRkJSQ3hKUVVGclF5eHJRa0ZCYTBKeFJDeEpRVUZzUWl4RFFVRjFRbXhHTEVOQlFVTXNRMEZCUTFjc1RVRkJSaXhEUVVGVFowWXNUMEZCYUVNc1EwRkJkRU1zUlVGQlowWTdRVUZGYUVZc1VVRkJTWEJDTEV0QlFVc3NSMEZCUnpGSExFTkJRVU1zUTBGQlF5eEpRVUZFTEVOQlFXSTdRVUZGUVcxRExFbEJRVUZCTEVOQlFVTXNRMEZCUTNkQ0xHTkJRVVk3UVVGRFFYaENMRWxCUVVGQkxFTkJRVU1zUTBGQlEydEhMR1ZCUVVZN1FVRkZRU3hSUVVGSk0wSXNTMEZCU3l4RFFVRkRNMFFzUlVGQlRpeERRVUZUTEhOQ1FVRlVMRU5CUVVvc1JVRkJjME03UVVGRmRFTXNVVUZCU1RSRkxFOUJRVThzUjBGQlNVWXNVMEZCVXl4RFFVRkRaaXhMUVVGRUxFTkJRWGhDTzBGQlEwRXNVVUZCU1hOQ0xGRkJRVkVzUjBGQlIwd3NUMEZCVHl4RFFVRkRla1VzVVVGQlVpeERRVUZwUWl4TlFVRnFRaXhEUVVGbU96dEJRVVZCTEZGQlFVa3NRMEZCUXpoRkxGRkJRVVFzU1VGQllUZEdMRU5CUVVNc1EwRkJRelpDTEV0QlFVWXNTVUZCVnl4RlFVRjRRaXhKUVVFNFFtZEZMRkZCUVZFc1NVRkJTVGRHTEVOQlFVTXNRMEZCUXpaQ0xFdEJRVVlzU1VGQlZ5eEZRVUY2UkN4RlFVRTJSRHRCUVVNelJDeFZRVUZKTjBJc1EwRkJReXhEUVVGRE5rSXNTMEZCUml4SlFVRlhMRVZCUVdZc1JVRkJiVUl5UkN4UFFVRlBMRU5CUVVNNVJ5eEpRVUZTTEVOQlFXRnJRaXhOUVVGaUxFVkJRWEZDVkN4UFFVRnlRaXhEUVVFMlFpeFBRVUUzUWp0QlFVTnVRaXhoUVVGUGIwWXNTMEZCU3l4RFFVRkRjRVlzVDBGQlRpeERRVUZqTEU5QlFXUXNRMEZCVUR0QlFVTkVPenRCUVVWRUxGRkJRVWxuU0N4SlFVRkpMRWRCUVVjc09FSkJRVmc3UVVGRFFTeFJRVUZKUXl4TlFVRk5MRWRCUVVkYUxFOUJRVThzUTBGQlF6bEhMRWxCUVZJc1EwRkJZU3h0UWtGQmJVSjVTQ3hKUVVGb1F5eERRVUZpTzBGQlJVRXNVVUZCU1N4RFFVRkRReXhOUVVGTkxFTkJRVU51Uml4TlFVRmFMRVZCUVc5Q08wRkJSWEJDTEZGQlFVbHZSaXhMUVVGTExFZEJRVWRFTEUxQlFVMHNRMEZCUTBNc1MwRkJVQ3hEUVVGaGNrY3NRMEZCUXl4RFFVRkRWeXhOUVVGbUxFTkJRVm83UVVGRlFTeFJRVUZKV0N4RFFVRkRMRU5CUVVNMlFpeExRVUZHTEVsQlFWY3NSVUZCV0N4SlFVRnBRbmRGTEV0QlFVc3NSMEZCUnl4RFFVRTNRaXhGUVVGblJFRXNTMEZCU3l4SFFYcENZaXhEUVhsQ2QwSTdPMEZCUTJoRkxGRkJRVWx5Unl4RFFVRkRMRU5CUVVNMlFpeExRVUZHTEVsQlFWY3NSVUZCV0N4SlFVRnBRbmRGTEV0QlFVc3NSMEZCUjBRc1RVRkJUU3hEUVVGRGJrWXNUVUZCVUN4SFFVRm5RaXhEUVVFM1F5eEZRVUZuUkc5R0xFdEJRVXNzUjBFeFFtSXNRMEV3UW5kQ096dEJRVU5vUlN4UlFVRkpMRU5CUVVNc1EwRkJRMEVzUzBGQlRpeEZRVUZuUkVFc1MwRkJTeXhIUVVGSExFTkJRVkk3UVVGRmFFUkVMRWxCUVVGQkxFMUJRVTBzUTBGQlEwVXNSVUZCVUN4RFFVRlZSQ3hMUVVGV0xFVkJRV2xDYkVnc1QwRkJha0lzUTBGQmVVSXNUMEZCZWtJN1FVRkRSQ3hIUVRsQ1JDeERRWEJHV1N4RFFYRklXanRCUVVOQk96czdRVUZGUVN4WFFVRlRhVVlzVFVGQlZDeERRVUZuUWtNc1RVRkJhRUlzUlVGQmQwSTdRVUZEZEVJc1YwRkJUeXhMUVVGTFF5eEpRVUZNTEVOQlFWVXNXVUZCV1R0QlFVTXpRaXhWUVVGSlF5eExRVUZMTEVkQlFVY3hSeXhEUVVGRExFTkJRVU1zU1VGQlJDeERRVUZpTzBGQlEwRXNWVUZCU1RKSExFbEJRVWtzUjBGQlNVUXNTMEZCU3l4RFFVRkRReXhKUVVGT0xFTkJRVmNzWlVGQldDeERRVUZhTzBGQlJVRXNWVUZCU1N4RFFVRkRRU3hKUVVGTUxFVkJRVmRFTEV0QlFVc3NRMEZCUTBNc1NVRkJUaXhEUVVGWExHVkJRVmdzUlVGQk5rSkJMRWxCUVVrc1IwRkJSeXhKUVVGSllTeFJRVUZLTEVOQlFXRXNTVUZCWWl4RFFVRndRenRCUVVOWUxGVkJRVWtzVDBGQlQyaENMRTFCUVZBc1NVRkJhVUlzVVVGQmNrSXNSVUZCSzBKSExFbEJRVWtzUTBGQlEwZ3NUVUZCUkN4RFFVRktMRU5CUVdGbExFbEJRV0lzUTBGQmEwSmlMRXRCUVd4Q08wRkJRMmhETEV0QlRrMHNRMEZCVUR0QlFVOUVPenRCUVVWRUxFMUJRVWxITEVkQlFVY3NSMEZCUnpkSExFTkJRVU1zUTBGQlEwVXNSVUZCUml4RFFVRkxkMGtzWVVGQlpqdEJRVVZCTVVrc1JVRkJRVUVzUTBGQlF5eERRVUZEUlN4RlFVRkdMRU5CUVV0M1NTeGhRVUZNTEVkQlFXbERia01zVFVGQmFrTTdRVUZEUVhaSExFVkJRVUZCTEVOQlFVTXNRMEZCUTBVc1JVRkJSaXhEUVVGTGQwa3NZVUZCVEN4RFFVRnRRak5DTEZkQlFXNUNMRWRCUVdsRFV5eFJRVUZxUXl4RFFYSkpXU3hEUVhkSldqdEJRVU5CT3p0QlFVVkJlRWdzUlVGQlFVRXNRMEZCUXl4RFFVRkRSU3hGUVVGR0xFTkJRVXQzU1N4aFFVRk1MRU5CUVcxQ01VSXNWVUZCYmtJc1IwRkJaME1zV1VGQldUdEJRVU14UTJoSUxFbEJRVUZCTEVOQlFVTXNRMEZCUTBVc1JVRkJSaXhEUVVGTGQwa3NZVUZCVEN4SFFVRnhRamRDTEVkQlFYSkNPMEZCUTBFc1YwRkJUeXhKUVVGUU8wRkJRMFFzUjBGSVJDeERRVE5KV1N4RFFXbEtXanRCUVVOQk96czdRVUZGUVRkSExFVkJRVUZCTEVOQlFVTXNRMEZCUTFNc1VVRkJSQ3hEUVVGRUxFTkJRMGR0UXl4RlFVUklMRU5CUTAwc09FSkJSRTRzUlVGRGMwTm5SaXhWUVVSMFF5eEZRVVZIYUVZc1JVRkdTQ3hEUVVWTkxEaENRVVpPTEVWQlJYTkRMR2RDUVVaMFF5eEZRVVYzUkN4VlFVRlZWQ3hEUVVGV0xFVkJRV0U3UVVGQlJVRXNTVUZCUVVFc1EwRkJReXhEUVVGRGEwY3NaVUZCUmp0QlFVRnhRaXhIUVVZMVJpeEZRVWRIZWtZc1JVRklTQ3hEUVVkTkxEaENRVWhPTEVWQlIzTkRZaXhOUVVoMFF5eEZRVWM0UTNsR0xGRkJRVkVzUTBGQlF6RkdMRk5CUVZRc1EwRkJiVUpETEUxQlNHcEZMRVZCU1VkaExFVkJTa2dzUTBGSlRTeG5RMEZLVGl4RlFVbDNRMklzVFVGS2VFTXNSVUZKWjBSNVJpeFJRVUZSTEVOQlFVTXhSaXhUUVVGVUxFTkJRVzFDYzBjc1QwRktia1VzUlVGTFIzaEdMRVZCVEVnc1EwRkxUU3huUTBGTVRpeEZRVXQzUXl4blFrRk1lRU1zUlVGTE1FUTBSU3hSUVVGUkxFTkJRVU14Uml4VFFVRlVMRU5CUVcxQ2MwY3NUMEZNTjBVN1FVRlBSQ3hEUVROS1FTeERRVEpLUTNSSkxFMUJNMHBFTEVOQlFVUWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2S2lGY2NseHVJQ29nUjJWdVpYSmhkR1ZrSUhWemFXNW5JSFJvWlNCQ2IyOTBjM1J5WVhBZ1EzVnpkRzl0YVhwbGNpQW9hSFIwY0RvdkwyZGxkR0p2YjNSemRISmhjQzVqYjIwdlkzVnpkRzl0YVhwbEx6OXBaRDFtTkdJMFl6bGpZamcxWkdZM05UZGpZVEE0WXlsY2NseHVJQ29nUTI5dVptbG5JSE5oZG1Wa0lIUnZJR052Ym1acFp5NXFjMjl1SUdGdVpDQm9kSFJ3Y3pvdkwyZHBjM1F1WjJsMGFIVmlMbU52YlM5bU5HSTBZemxqWWpnMVpHWTNOVGRqWVRBNFkxeHlYRzRnS2k5Y2NseHVhV1lnS0hSNWNHVnZaaUJxVVhWbGNua2dQVDA5SUNkMWJtUmxabWx1WldRbktTQjdYSEpjYmlBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkQ2IyOTBjM1J5WVhCY1hDZHpJRXBoZG1GVFkzSnBjSFFnY21WeGRXbHlaWE1nYWxGMVpYSjVKeWxjY2x4dWZWeHlYRzRyWm5WdVkzUnBiMjRnS0NRcElIdGNjbHh1SUNBbmRYTmxJSE4wY21samRDYzdYSEpjYmlBZ2RtRnlJSFpsY25OcGIyNGdQU0FrTG1adUxtcHhkV1Z5ZVM1emNHeHBkQ2duSUNjcFd6QmRMbk53YkdsMEtDY3VKeWxjY2x4dUlDQnBaaUFvS0habGNuTnBiMjViTUYwZ1BDQXlJQ1ltSUhabGNuTnBiMjViTVYwZ1BDQTVLU0I4ZkNBb2RtVnljMmx2Ymxzd1hTQTlQU0F4SUNZbUlIWmxjbk5wYjI1Yk1WMGdQVDBnT1NBbUppQjJaWEp6YVc5dVd6SmRJRHdnTVNrcElIdGNjbHh1SUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnblFtOXZkSE4wY21Gd1hGd25jeUJLWVhaaFUyTnlhWEIwSUhKbGNYVnBjbVZ6SUdwUmRXVnllU0IyWlhKemFXOXVJREV1T1M0eElHOXlJR2hwWjJobGNpY3BYSEpjYmlBZ2ZWeHlYRzU5S0dwUmRXVnllU2s3WEhKY2JseHlYRzR2S2lBOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQxY2NseHVJQ29nUW05dmRITjBjbUZ3T2lCdGIyUmhiQzVxY3lCMk15NHpMalZjY2x4dUlDb2dhSFIwY0RvdkwyZGxkR0p2YjNSemRISmhjQzVqYjIwdmFtRjJZWE5qY21sd2RDOGpiVzlrWVd4elhISmNiaUFxSUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFZ4eVhHNGdLaUJEYjNCNWNtbG5hSFFnTWpBeE1TMHlNREUxSUZSM2FYUjBaWElzSUVsdVl5NWNjbHh1SUNvZ1RHbGpaVzV6WldRZ2RXNWtaWElnVFVsVUlDaG9kSFJ3Y3pvdkwyZHBkR2gxWWk1amIyMHZkSGRpY3k5aWIyOTBjM1J5WVhBdllteHZZaTl0WVhOMFpYSXZURWxEUlU1VFJTbGNjbHh1SUNvZ1BUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOUlDb3ZYSEpjYmx4eVhHNWNjbHh1SzJaMWJtTjBhVzl1SUNna0tTQjdYSEpjYmlBZ0ozVnpaU0J6ZEhKcFkzUW5PMXh5WEc1Y2NseHVJQ0F2THlCTlQwUkJUQ0JEVEVGVFV5QkVSVVpKVGtsVVNVOU9YSEpjYmlBZ0x5OGdQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFZ4eVhHNWNjbHh1SUNCMllYSWdUVzlrWVd3Z1BTQm1kVzVqZEdsdmJpQW9aV3hsYldWdWRDd2diM0IwYVc5dWN5a2dlMXh5WEc0Z0lDQWdkR2hwY3k1dmNIUnBiMjV6SUNBZ0lDQWdJQ0FnSUNBZ0lEMGdiM0IwYVc5dWMxeHlYRzRnSUNBZ2RHaHBjeTRrWW05a2VTQWdJQ0FnSUNBZ0lDQWdJQ0FnSUQwZ0pDaGtiMk4xYldWdWRDNWliMlI1S1Z4eVhHNGdJQ0FnZEdocGN5NGtaV3hsYldWdWRDQWdJQ0FnSUNBZ0lDQWdJRDBnSkNobGJHVnRaVzUwS1Z4eVhHNGdJQ0FnZEdocGN5NGtaR2xoYkc5bklDQWdJQ0FnSUNBZ0lDQWdJRDBnZEdocGN5NGtaV3hsYldWdWRDNW1hVzVrS0NjdWJXOWtZV3d0WkdsaGJHOW5KeWxjY2x4dUlDQWdJSFJvYVhNdUpHSmhZMnRrY205d0lDQWdJQ0FnSUNBZ0lDQTlJRzUxYkd4Y2NseHVJQ0FnSUhSb2FYTXVhWE5UYUc5M2JpQWdJQ0FnSUNBZ0lDQWdJQ0E5SUc1MWJHeGNjbHh1SUNBZ0lIUm9hWE11YjNKcFoybHVZV3hDYjJSNVVHRmtJQ0FnSUNBOUlHNTFiR3hjY2x4dUlDQWdJSFJvYVhNdWMyTnliMnhzWW1GeVYybGtkR2dnSUNBZ0lDQTlJREJjY2x4dUlDQWdJSFJvYVhNdWFXZHViM0psUW1GamEyUnliM0JEYkdsamF5QTlJR1poYkhObFhISmNibHh5WEc0Z0lDQWdhV1lnS0hSb2FYTXViM0IwYVc5dWN5NXlaVzF2ZEdVcElIdGNjbHh1SUNBZ0lDQWdkR2hwY3k0a1pXeGxiV1Z1ZEZ4eVhHNGdJQ0FnSUNBZ0lDNW1hVzVrS0NjdWJXOWtZV3d0WTI5dWRHVnVkQ2NwWEhKY2JpQWdJQ0FnSUNBZ0xteHZZV1FvZEdocGN5NXZjSFJwYjI1ekxuSmxiVzkwWlN3Z0pDNXdjbTk0ZVNobWRXNWpkR2x2YmlBb0tTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMaVJsYkdWdFpXNTBMblJ5YVdkblpYSW9KMnh2WVdSbFpDNTNjR0pqTG0xdlpHRnNKeWxjY2x4dUlDQWdJQ0FnSUNCOUxDQjBhR2x6S1NsY2NseHVJQ0FnSUgxY2NseHVJQ0I5WEhKY2JseHlYRzRnSUUxdlpHRnNMbFpGVWxOSlQwNGdJRDBnSnpNdU15NDFKMXh5WEc1Y2NseHVJQ0JOYjJSaGJDNVVVa0ZPVTBsVVNVOU9YMFJWVWtGVVNVOU9JRDBnTXpBd1hISmNiaUFnVFc5a1lXd3VRa0ZEUzBSU1QxQmZWRkpCVGxOSlZFbFBUbDlFVlZKQlZFbFBUaUE5SURFMU1GeHlYRzVjY2x4dUlDQk5iMlJoYkM1RVJVWkJWVXhVVXlBOUlIdGNjbHh1SUNBZ0lHSmhZMnRrY205d09pQjBjblZsTEZ4eVhHNGdJQ0FnYTJWNVltOWhjbVE2SUhSeWRXVXNYSEpjYmlBZ0lDQnphRzkzT2lCMGNuVmxYSEpjYmlBZ2ZWeHlYRzVjY2x4dUlDQk5iMlJoYkM1d2NtOTBiM1I1Y0dVdWRHOW5aMnhsSUQwZ1puVnVZM1JwYjI0Z0tGOXlaV3hoZEdWa1ZHRnlaMlYwS1NCN1hISmNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXBjMU5vYjNkdUlEOGdkR2hwY3k1b2FXUmxLQ2tnT2lCMGFHbHpMbk5vYjNjb1gzSmxiR0YwWldSVVlYSm5aWFFwWEhKY2JpQWdmVnh5WEc1Y2NseHVJQ0JOYjJSaGJDNXdjbTkwYjNSNWNHVXVjMmh2ZHlBOUlHWjFibU4wYVc5dUlDaGZjbVZzWVhSbFpGUmhjbWRsZENrZ2UxeHlYRzRnSUNBZ2RtRnlJSFJvWVhRZ1BTQjBhR2x6WEhKY2JpQWdJQ0IyWVhJZ1pTQWdJQ0E5SUNRdVJYWmxiblFvSjNOb2IzY3VkM0JpWXk1dGIyUmhiQ2NzSUhzZ2NtVnNZWFJsWkZSaGNtZGxkRG9nWDNKbGJHRjBaV1JVWVhKblpYUWdmU2xjY2x4dVhISmNiaUFnSUNCMGFHbHpMaVJsYkdWdFpXNTBMblJ5YVdkblpYSW9aU2xjY2x4dVhISmNiaUFnSUNCcFppQW9kR2hwY3k1cGMxTm9iM2R1SUh4OElHVXVhWE5FWldaaGRXeDBVSEpsZG1WdWRHVmtLQ2twSUhKbGRIVnlibHh5WEc1Y2NseHVJQ0FnSUhSb2FYTXVhWE5UYUc5M2JpQTlJSFJ5ZFdWY2NseHVYSEpjYmlBZ0lDQjBhR2x6TG1Ob1pXTnJVMk55YjJ4c1ltRnlLQ2xjY2x4dUlDQWdJSFJvYVhNdWMyVjBVMk55YjJ4c1ltRnlLQ2xjY2x4dUlDQWdJSFJvYVhNdUpHSnZaSGt1WVdSa1EyeGhjM01vSjIxdlpHRnNMVzl3Wlc0bktWeHlYRzVjY2x4dUlDQWdJSFJvYVhNdVpYTmpZWEJsS0NsY2NseHVJQ0FnSUhSb2FYTXVjbVZ6YVhwbEtDbGNjbHh1WEhKY2JpQWdJQ0IwYUdsekxpUmxiR1Z0Wlc1MExtOXVLQ2RqYkdsamF5NWthWE50YVhOekxuZHdZbU11Ylc5a1lXd25MQ0FuVzJSaGRHRXRaR2x6YldsemN6MWNJbTF2WkdGc1hDSmRKeXdnSkM1d2NtOTRlU2gwYUdsekxtaHBaR1VzSUhSb2FYTXBLVnh5WEc1Y2NseHVJQ0FnSUhSb2FYTXVKR1JwWVd4dlp5NXZiaWduYlc5MWMyVmtiM2R1TG1ScGMyMXBjM011ZDNCaVl5NXRiMlJoYkNjc0lHWjFibU4wYVc5dUlDZ3BJSHRjY2x4dUlDQWdJQ0FnZEdoaGRDNGtaV3hsYldWdWRDNXZibVVvSjIxdmRYTmxkWEF1WkdsemJXbHpjeTUzY0dKakxtMXZaR0ZzSnl3Z1puVnVZM1JwYjI0Z0tHVXBJSHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9KQ2hsTG5SaGNtZGxkQ2t1YVhNb2RHaGhkQzRrWld4bGJXVnVkQ2twSUhSb1lYUXVhV2R1YjNKbFFtRmphMlJ5YjNCRGJHbGpheUE5SUhSeWRXVmNjbHh1SUNBZ0lDQWdmU2xjY2x4dUlDQWdJSDBwWEhKY2JseHlYRzRnSUNBZ2RHaHBjeTVpWVdOclpISnZjQ2htZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNBZ0lIWmhjaUIwY21GdWMybDBhVzl1SUQwZ0pDNXpkWEJ3YjNKMExuUnlZVzV6YVhScGIyNGdKaVlnZEdoaGRDNGtaV3hsYldWdWRDNW9ZWE5EYkdGemN5Z25abUZrWlNjcFhISmNibHh5WEc0Z0lDQWdJQ0JwWmlBb0lYUm9ZWFF1SkdWc1pXMWxiblF1Y0dGeVpXNTBLQ2t1YkdWdVozUm9LU0I3WEhKY2JpQWdJQ0FnSUNBZ2RHaGhkQzRrWld4bGJXVnVkQzVoY0hCbGJtUlVieWgwYUdGMExpUmliMlI1S1NBdkx5QmtiMjRuZENCdGIzWmxJRzF2WkdGc2N5QmtiMjBnY0c5emFYUnBiMjVjY2x4dUlDQWdJQ0FnZlZ4eVhHNWNjbHh1SUNBZ0lDQWdkR2hoZEM0a1pXeGxiV1Z1ZEZ4eVhHNGdJQ0FnSUNBZ0lDNXphRzkzS0NsY2NseHVJQ0FnSUNBZ0lDQXVjMk55YjJ4c1ZHOXdLREFwWEhKY2JseHlYRzRnSUNBZ0lDQjBhR0YwTG1Ga2FuVnpkRVJwWVd4dlp5Z3BYSEpjYmx4eVhHNGdJQ0FnSUNCcFppQW9kSEpoYm5OcGRHbHZiaWtnZTF4eVhHNGdJQ0FnSUNBZ0lIUm9ZWFF1SkdWc1pXMWxiblJiTUYwdWIyWm1jMlYwVjJsa2RHZ2dMeThnWm05eVkyVWdjbVZtYkc5M1hISmNiaUFnSUNBZ0lIMWNjbHh1WEhKY2JpQWdJQ0FnSUhSb1lYUXVKR1ZzWlcxbGJuUXVZV1JrUTJ4aGMzTW9KMmx1SnlsY2NseHVYSEpjYmlBZ0lDQWdJSFJvWVhRdVpXNW1iM0pqWlVadlkzVnpLQ2xjY2x4dVhISmNiaUFnSUNBZ0lIWmhjaUJsSUQwZ0pDNUZkbVZ1ZENnbmMyaHZkMjR1ZDNCaVl5NXRiMlJoYkNjc0lIc2djbVZzWVhSbFpGUmhjbWRsZERvZ1gzSmxiR0YwWldSVVlYSm5aWFFnZlNsY2NseHVYSEpjYmlBZ0lDQWdJSFJ5WVc1emFYUnBiMjRnUDF4eVhHNGdJQ0FnSUNBZ0lIUm9ZWFF1SkdScFlXeHZaeUF2THlCM1lXbDBJR1p2Y2lCdGIyUmhiQ0IwYnlCemJHbGtaU0JwYmx4eVhHNGdJQ0FnSUNBZ0lDQWdMbTl1WlNnblluTlVjbUZ1YzJsMGFXOXVSVzVrSnl3Z1puVnVZM1JwYjI0Z0tDa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR0YwTGlSbGJHVnRaVzUwTG5SeWFXZG5aWElvSjJadlkzVnpKeWt1ZEhKcFoyZGxjaWhsS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdmU2xjY2x4dUlDQWdJQ0FnSUNBZ0lDNWxiWFZzWVhSbFZISmhibk5wZEdsdmJrVnVaQ2hOYjJSaGJDNVVVa0ZPVTBsVVNVOU9YMFJWVWtGVVNVOU9LU0E2WEhKY2JpQWdJQ0FnSUNBZ2RHaGhkQzRrWld4bGJXVnVkQzUwY21sbloyVnlLQ2RtYjJOMWN5Y3BMblJ5YVdkblpYSW9aU2xjY2x4dUlDQWdJSDBwWEhKY2JpQWdmVnh5WEc1Y2NseHVJQ0JOYjJSaGJDNXdjbTkwYjNSNWNHVXVhR2xrWlNBOUlHWjFibU4wYVc5dUlDaGxLU0I3WEhKY2JpQWdJQ0JwWmlBb1pTa2daUzV3Y21WMlpXNTBSR1ZtWVhWc2RDZ3BYSEpjYmx4eVhHNGdJQ0FnWlNBOUlDUXVSWFpsYm5Rb0oyaHBaR1V1ZDNCaVl5NXRiMlJoYkNjcFhISmNibHh5WEc0Z0lDQWdkR2hwY3k0a1pXeGxiV1Z1ZEM1MGNtbG5aMlZ5S0dVcFhISmNibHh5WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbWx6VTJodmQyNGdmSHdnWlM1cGMwUmxabUYxYkhSUWNtVjJaVzUwWldRb0tTa2djbVYwZFhKdVhISmNibHh5WEc0Z0lDQWdkR2hwY3k1cGMxTm9iM2R1SUQwZ1ptRnNjMlZjY2x4dVhISmNiaUFnSUNCMGFHbHpMbVZ6WTJGd1pTZ3BYSEpjYmlBZ0lDQjBhR2x6TG5KbGMybDZaU2dwWEhKY2JseHlYRzRnSUNBZ0pDaGtiMk4xYldWdWRDa3ViMlptS0NkbWIyTjFjMmx1TG5kd1ltTXViVzlrWVd3bktWeHlYRzVjY2x4dUlDQWdJSFJvYVhNdUpHVnNaVzFsYm5SY2NseHVJQ0FnSUNBZ0xuSmxiVzkyWlVOc1lYTnpLQ2RwYmljcFhISmNiaUFnSUNBZ0lDNXZabVlvSjJOc2FXTnJMbVJwYzIxcGMzTXVkM0JpWXk1dGIyUmhiQ2NwWEhKY2JpQWdJQ0FnSUM1dlptWW9KMjF2ZFhObGRYQXVaR2x6YldsemN5NTNjR0pqTG0xdlpHRnNKeWxjY2x4dVhISmNiaUFnSUNCMGFHbHpMaVJrYVdGc2IyY3ViMlptS0NkdGIzVnpaV1J2ZDI0dVpHbHpiV2x6Y3k1M2NHSmpMbTF2WkdGc0p5bGNjbHh1WEhKY2JpQWdJQ0FrTG5OMWNIQnZjblF1ZEhKaGJuTnBkR2x2YmlBbUppQjBhR2x6TGlSbGJHVnRaVzUwTG1oaGMwTnNZWE56S0NkbVlXUmxKeWtnUDF4eVhHNGdJQ0FnSUNCMGFHbHpMaVJsYkdWdFpXNTBYSEpjYmlBZ0lDQWdJQ0FnTG05dVpTZ25Zbk5VY21GdWMybDBhVzl1Ulc1a0p5d2dKQzV3Y205NGVTaDBhR2x6TG1ocFpHVk5iMlJoYkN3Z2RHaHBjeWtwWEhKY2JpQWdJQ0FnSUNBZ0xtVnRkV3hoZEdWVWNtRnVjMmwwYVc5dVJXNWtLRTF2WkdGc0xsUlNRVTVUU1ZSSlQwNWZSRlZTUVZSSlQwNHBJRHBjY2x4dUlDQWdJQ0FnZEdocGN5NW9hV1JsVFc5a1lXd29LVnh5WEc0Z0lIMWNjbHh1WEhKY2JpQWdUVzlrWVd3dWNISnZkRzkwZVhCbExtVnVabTl5WTJWR2IyTjFjeUE5SUdaMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lDUW9aRzlqZFcxbGJuUXBYSEpjYmlBZ0lDQWdJQzV2Wm1Zb0oyWnZZM1Z6YVc0dWQzQmlZeTV0YjJSaGJDY3BJQzh2SUdkMVlYSmtJR0ZuWVdsdWMzUWdhVzVtYVc1cGRHVWdabTlqZFhNZ2JHOXZjRnh5WEc0Z0lDQWdJQ0F1YjI0b0oyWnZZM1Z6YVc0dWQzQmlZeTV0YjJSaGJDY3NJQ1F1Y0hKdmVIa29ablZ1WTNScGIyNGdLR1VwSUh0Y2NseHVJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NGtaV3hsYldWdWRGc3dYU0FoUFQwZ1pTNTBZWEpuWlhRZ0ppWWdJWFJvYVhNdUpHVnNaVzFsYm5RdWFHRnpLR1V1ZEdGeVoyVjBLUzVzWlc1bmRHZ3BJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lIUm9hWE11SkdWc1pXMWxiblF1ZEhKcFoyZGxjaWduWm05amRYTW5LVnh5WEc0Z0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ2ZTd2dkR2hwY3lrcFhISmNiaUFnZlZ4eVhHNWNjbHh1SUNCTmIyUmhiQzV3Y205MGIzUjVjR1V1WlhOallYQmxJRDBnWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ2FXWWdLSFJvYVhNdWFYTlRhRzkzYmlBbUppQjBhR2x6TG05d2RHbHZibk11YTJWNVltOWhjbVFwSUh0Y2NseHVJQ0FnSUNBZ2RHaHBjeTRrWld4bGJXVnVkQzV2YmlnbmEyVjVaRzkzYmk1a2FYTnRhWE56TG5kd1ltTXViVzlrWVd3bkxDQWtMbkJ5YjNoNUtHWjFibU4wYVc5dUlDaGxLU0I3WEhKY2JpQWdJQ0FnSUNBZ1pTNTNhR2xqYUNBOVBTQXlOeUFtSmlCMGFHbHpMbWhwWkdVb0tWeHlYRzRnSUNBZ0lDQjlMQ0IwYUdsektTbGNjbHh1SUNBZ0lIMGdaV3h6WlNCcFppQW9JWFJvYVhNdWFYTlRhRzkzYmlrZ2UxeHlYRzRnSUNBZ0lDQjBhR2x6TGlSbGJHVnRaVzUwTG05bVppZ25hMlY1Wkc5M2JpNWthWE50YVhOekxuZHdZbU11Ylc5a1lXd25LVnh5WEc0Z0lDQWdmVnh5WEc0Z0lIMWNjbHh1WEhKY2JpQWdUVzlrWVd3dWNISnZkRzkwZVhCbExuSmxjMmw2WlNBOUlHWjFibU4wYVc5dUlDZ3BJSHRjY2x4dUlDQWdJR2xtSUNoMGFHbHpMbWx6VTJodmQyNHBJSHRjY2x4dUlDQWdJQ0FnSkNoM2FXNWtiM2NwTG05dUtDZHlaWE5wZW1VdWQzQmlZeTV0YjJSaGJDY3NJQ1F1Y0hKdmVIa29kR2hwY3k1b1lXNWtiR1ZWY0dSaGRHVXNJSFJvYVhNcEtWeHlYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2NseHVJQ0FnSUNBZ0pDaDNhVzVrYjNjcExtOW1aaWduY21WemFYcGxMbmR3WW1NdWJXOWtZV3duS1Z4eVhHNGdJQ0FnZlZ4eVhHNGdJSDFjY2x4dVhISmNiaUFnVFc5a1lXd3VjSEp2ZEc5MGVYQmxMbWhwWkdWTmIyUmhiQ0E5SUdaMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lIWmhjaUIwYUdGMElEMGdkR2hwYzF4eVhHNGdJQ0FnZEdocGN5NGtaV3hsYldWdWRDNW9hV1JsS0NsY2NseHVJQ0FnSUhSb2FYTXVZbUZqYTJSeWIzQW9ablZ1WTNScGIyNGdLQ2tnZTF4eVhHNGdJQ0FnSUNCMGFHRjBMaVJpYjJSNUxuSmxiVzkyWlVOc1lYTnpLQ2R0YjJSaGJDMXZjR1Z1SnlsY2NseHVJQ0FnSUNBZ2RHaGhkQzV5WlhObGRFRmthblZ6ZEcxbGJuUnpLQ2xjY2x4dUlDQWdJQ0FnZEdoaGRDNXlaWE5sZEZOamNtOXNiR0poY2lncFhISmNiaUFnSUNBZ0lIUm9ZWFF1SkdWc1pXMWxiblF1ZEhKcFoyZGxjaWduYUdsa1pHVnVMbmR3WW1NdWJXOWtZV3duS1Z4eVhHNGdJQ0FnZlNsY2NseHVJQ0I5WEhKY2JseHlYRzRnSUUxdlpHRnNMbkJ5YjNSdmRIbHdaUzV5WlcxdmRtVkNZV05yWkhKdmNDQTlJR1oxYm1OMGFXOXVJQ2dwSUh0Y2NseHVJQ0FnSUhSb2FYTXVKR0poWTJ0a2NtOXdJQ1ltSUhSb2FYTXVKR0poWTJ0a2NtOXdMbkpsYlc5MlpTZ3BYSEpjYmlBZ0lDQjBhR2x6TGlSaVlXTnJaSEp2Y0NBOUlHNTFiR3hjY2x4dUlDQjlYSEpjYmx4eVhHNGdJRTF2WkdGc0xuQnliM1J2ZEhsd1pTNWlZV05yWkhKdmNDQTlJR1oxYm1OMGFXOXVJQ2hqWVd4c1ltRmpheWtnZTF4eVhHNGdJQ0FnZG1GeUlIUm9ZWFFnUFNCMGFHbHpYSEpjYmlBZ0lDQjJZWElnWVc1cGJXRjBaU0E5SUhSb2FYTXVKR1ZzWlcxbGJuUXVhR0Z6UTJ4aGMzTW9KMlpoWkdVbktTQS9JQ2RtWVdSbEp5QTZJQ2NuWEhKY2JseHlYRzRnSUNBZ2FXWWdLSFJvYVhNdWFYTlRhRzkzYmlBbUppQjBhR2x6TG05d2RHbHZibk11WW1GamEyUnliM0FwSUh0Y2NseHVJQ0FnSUNBZ2RtRnlJR1J2UVc1cGJXRjBaU0E5SUNRdWMzVndjRzl5ZEM1MGNtRnVjMmwwYVc5dUlDWW1JR0Z1YVcxaGRHVmNjbHh1WEhKY2JpQWdJQ0FnSUhSb2FYTXVKR0poWTJ0a2NtOXdJRDBnSkNoa2IyTjFiV1Z1ZEM1amNtVmhkR1ZGYkdWdFpXNTBLQ2RrYVhZbktTbGNjbHh1SUNBZ0lDQWdJQ0F1WVdSa1EyeGhjM01vSjIxdlpHRnNMV0poWTJ0a2NtOXdJQ2NnS3lCaGJtbHRZWFJsS1Z4eVhHNGdJQ0FnSUNBZ0lDNWhjSEJsYm1SVWJ5aDBhR2x6TGlSaWIyUjVLVnh5WEc1Y2NseHVJQ0FnSUNBZ2RHaHBjeTRrWld4bGJXVnVkQzV2YmlnblkyeHBZMnN1WkdsemJXbHpjeTUzY0dKakxtMXZaR0ZzSnl3Z0pDNXdjbTk0ZVNobWRXNWpkR2x2YmlBb1pTa2dlMXh5WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1sbmJtOXlaVUpoWTJ0a2NtOXdRMnhwWTJzcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVhV2R1YjNKbFFtRmphMlJ5YjNCRGJHbGpheUE5SUdaaGJITmxYSEpjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTVjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdhV1lnS0dVdWRHRnlaMlYwSUNFOVBTQmxMbU4xY25KbGJuUlVZWEpuWlhRcElISmxkSFZ5Ymx4eVhHNGdJQ0FnSUNBZ0lIUm9hWE11YjNCMGFXOXVjeTVpWVdOclpISnZjQ0E5UFNBbmMzUmhkR2xqSjF4eVhHNGdJQ0FnSUNBZ0lDQWdQeUIwYUdsekxpUmxiR1Z0Wlc1MFd6QmRMbVp2WTNWektDbGNjbHh1SUNBZ0lDQWdJQ0FnSURvZ2RHaHBjeTVvYVdSbEtDbGNjbHh1SUNBZ0lDQWdmU3dnZEdocGN5a3BYSEpjYmx4eVhHNGdJQ0FnSUNCcFppQW9aRzlCYm1sdFlYUmxLU0IwYUdsekxpUmlZV05yWkhKdmNGc3dYUzV2Wm1aelpYUlhhV1IwYUNBdkx5Qm1iM0pqWlNCeVpXWnNiM2RjY2x4dVhISmNiaUFnSUNBZ0lIUm9hWE11SkdKaFkydGtjbTl3TG1Ga1pFTnNZWE56S0NkcGJpY3BYSEpjYmx4eVhHNGdJQ0FnSUNCcFppQW9JV05oYkd4aVlXTnJLU0J5WlhSMWNtNWNjbHh1WEhKY2JpQWdJQ0FnSUdSdlFXNXBiV0YwWlNBL1hISmNiaUFnSUNBZ0lDQWdkR2hwY3k0a1ltRmphMlJ5YjNCY2NseHVJQ0FnSUNBZ0lDQWdJQzV2Ym1Vb0oySnpWSEpoYm5OcGRHbHZia1Z1WkNjc0lHTmhiR3hpWVdOcktWeHlYRzRnSUNBZ0lDQWdJQ0FnTG1WdGRXeGhkR1ZVY21GdWMybDBhVzl1Ulc1a0tFMXZaR0ZzTGtKQlEwdEVVazlRWDFSU1FVNVRTVlJKVDA1ZlJGVlNRVlJKVDA0cElEcGNjbHh1SUNBZ0lDQWdJQ0JqWVd4c1ltRmpheWdwWEhKY2JseHlYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDZ2hkR2hwY3k1cGMxTm9iM2R1SUNZbUlIUm9hWE11SkdKaFkydGtjbTl3S1NCN1hISmNiaUFnSUNBZ0lIUm9hWE11SkdKaFkydGtjbTl3TG5KbGJXOTJaVU5zWVhOektDZHBiaWNwWEhKY2JseHlYRzRnSUNBZ0lDQjJZWElnWTJGc2JHSmhZMnRTWlcxdmRtVWdQU0JtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNBZ0lDQWdkR2hoZEM1eVpXMXZkbVZDWVdOclpISnZjQ2dwWEhKY2JpQWdJQ0FnSUNBZ1kyRnNiR0poWTJzZ0ppWWdZMkZzYkdKaFkyc29LVnh5WEc0Z0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNRdWMzVndjRzl5ZEM1MGNtRnVjMmwwYVc5dUlDWW1JSFJvYVhNdUpHVnNaVzFsYm5RdWFHRnpRMnhoYzNNb0oyWmhaR1VuS1NBL1hISmNiaUFnSUNBZ0lDQWdkR2hwY3k0a1ltRmphMlJ5YjNCY2NseHVJQ0FnSUNBZ0lDQWdJQzV2Ym1Vb0oySnpWSEpoYm5OcGRHbHZia1Z1WkNjc0lHTmhiR3hpWVdOclVtVnRiM1psS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdMbVZ0ZFd4aGRHVlVjbUZ1YzJsMGFXOXVSVzVrS0UxdlpHRnNMa0pCUTB0RVVrOVFYMVJTUVU1VFNWUkpUMDVmUkZWU1FWUkpUMDRwSURwY2NseHVJQ0FnSUNBZ0lDQmpZV3hzWW1GamExSmxiVzkyWlNncFhISmNibHh5WEc0Z0lDQWdmU0JsYkhObElHbG1JQ2hqWVd4c1ltRmpheWtnZTF4eVhHNGdJQ0FnSUNCallXeHNZbUZqYXlncFhISmNiaUFnSUNCOVhISmNiaUFnZlZ4eVhHNWNjbHh1SUNBdkx5QjBhR1Z6WlNCbWIyeHNiM2RwYm1jZ2JXVjBhRzlrY3lCaGNtVWdkWE5sWkNCMGJ5Qm9ZVzVrYkdVZ2IzWmxjbVpzYjNkcGJtY2diVzlrWVd4elhISmNibHh5WEc0Z0lFMXZaR0ZzTG5CeWIzUnZkSGx3WlM1b1lXNWtiR1ZWY0dSaGRHVWdQU0JtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNCMGFHbHpMbUZrYW5WemRFUnBZV3h2WnlncFhISmNiaUFnZlZ4eVhHNWNjbHh1SUNCTmIyUmhiQzV3Y205MGIzUjVjR1V1WVdScWRYTjBSR2xoYkc5bklEMGdablZ1WTNScGIyNGdLQ2tnZTF4eVhHNGdJQ0FnZG1GeUlHMXZaR0ZzU1hOUGRtVnlabXh2ZDJsdVp5QTlJSFJvYVhNdUpHVnNaVzFsYm5SYk1GMHVjMk55YjJ4c1NHVnBaMmgwSUQ0Z1pHOWpkVzFsYm5RdVpHOWpkVzFsYm5SRmJHVnRaVzUwTG1Oc2FXVnVkRWhsYVdkb2RGeHlYRzVjY2x4dUlDQWdJSFJvYVhNdUpHVnNaVzFsYm5RdVkzTnpLSHRjY2x4dUlDQWdJQ0FnY0dGa1pHbHVaMHhsWm5RNklDQWhkR2hwY3k1aWIyUjVTWE5QZG1WeVpteHZkMmx1WnlBbUppQnRiMlJoYkVselQzWmxjbVpzYjNkcGJtY2dQeUIwYUdsekxuTmpjbTlzYkdKaGNsZHBaSFJvSURvZ0p5Y3NYSEpjYmlBZ0lDQWdJSEJoWkdScGJtZFNhV2RvZERvZ2RHaHBjeTVpYjJSNVNYTlBkbVZ5Wm14dmQybHVaeUFtSmlBaGJXOWtZV3hKYzA5MlpYSm1iRzkzYVc1bklEOGdkR2hwY3k1elkzSnZiR3hpWVhKWGFXUjBhQ0E2SUNjblhISmNiaUFnSUNCOUtWeHlYRzRnSUgxY2NseHVYSEpjYmlBZ1RXOWtZV3d1Y0hKdmRHOTBlWEJsTG5KbGMyVjBRV1JxZFhOMGJXVnVkSE1nUFNCbWRXNWpkR2x2YmlBb0tTQjdYSEpjYmlBZ0lDQjBhR2x6TGlSbGJHVnRaVzUwTG1OemN5aDdYSEpjYmlBZ0lDQWdJSEJoWkdScGJtZE1aV1owT2lBbkp5eGNjbHh1SUNBZ0lDQWdjR0ZrWkdsdVoxSnBaMmgwT2lBbkoxeHlYRzRnSUNBZ2ZTbGNjbHh1SUNCOVhISmNibHh5WEc0Z0lFMXZaR0ZzTG5CeWIzUnZkSGx3WlM1amFHVmphMU5qY205c2JHSmhjaUE5SUdaMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lIWmhjaUJtZFd4c1YybHVaRzkzVjJsa2RHZ2dQU0IzYVc1a2IzY3VhVzV1WlhKWGFXUjBhRnh5WEc0Z0lDQWdhV1lnS0NGbWRXeHNWMmx1Wkc5M1YybGtkR2dwSUhzZ0x5OGdkMjl5YTJGeWIzVnVaQ0JtYjNJZ2JXbHpjMmx1WnlCM2FXNWtiM2N1YVc1dVpYSlhhV1IwYUNCcGJpQkpSVGhjY2x4dUlDQWdJQ0FnZG1GeUlHUnZZM1Z0Wlc1MFJXeGxiV1Z1ZEZKbFkzUWdQU0JrYjJOMWJXVnVkQzVrYjJOMWJXVnVkRVZzWlcxbGJuUXVaMlYwUW05MWJtUnBibWREYkdsbGJuUlNaV04wS0NsY2NseHVJQ0FnSUNBZ1puVnNiRmRwYm1SdmQxZHBaSFJvSUQwZ1pHOWpkVzFsYm5SRmJHVnRaVzUwVW1WamRDNXlhV2RvZENBdElFMWhkR2d1WVdKektHUnZZM1Z0Wlc1MFJXeGxiV1Z1ZEZKbFkzUXViR1ZtZENsY2NseHVJQ0FnSUgxY2NseHVJQ0FnSUhSb2FYTXVZbTlrZVVselQzWmxjbVpzYjNkcGJtY2dQU0JrYjJOMWJXVnVkQzVpYjJSNUxtTnNhV1Z1ZEZkcFpIUm9JRHdnWm5Wc2JGZHBibVJ2ZDFkcFpIUm9YSEpjYmlBZ0lDQjBhR2x6TG5OamNtOXNiR0poY2xkcFpIUm9JRDBnZEdocGN5NXRaV0Z6ZFhKbFUyTnliMnhzWW1GeUtDbGNjbHh1SUNCOVhISmNibHh5WEc0Z0lFMXZaR0ZzTG5CeWIzUnZkSGx3WlM1elpYUlRZM0p2Ykd4aVlYSWdQU0JtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNCMllYSWdZbTlrZVZCaFpDQTlJSEJoY25ObFNXNTBLQ2gwYUdsekxpUmliMlI1TG1OemN5Z25jR0ZrWkdsdVp5MXlhV2RvZENjcElIeDhJREFwTENBeE1DbGNjbHh1SUNBZ0lIUm9hWE11YjNKcFoybHVZV3hDYjJSNVVHRmtJRDBnWkc5amRXMWxiblF1WW05a2VTNXpkSGxzWlM1d1lXUmthVzVuVW1sbmFIUWdmSHdnSnlkY2NseHVJQ0FnSUdsbUlDaDBhR2x6TG1KdlpIbEpjMDkyWlhKbWJHOTNhVzVuS1NCMGFHbHpMaVJpYjJSNUxtTnpjeWduY0dGa1pHbHVaeTF5YVdkb2RDY3NJR0p2WkhsUVlXUWdLeUIwYUdsekxuTmpjbTlzYkdKaGNsZHBaSFJvS1Z4eVhHNGdJSDFjY2x4dVhISmNiaUFnVFc5a1lXd3VjSEp2ZEc5MGVYQmxMbkpsYzJWMFUyTnliMnhzWW1GeUlEMGdablZ1WTNScGIyNGdLQ2tnZTF4eVhHNGdJQ0FnZEdocGN5NGtZbTlrZVM1amMzTW9KM0JoWkdScGJtY3RjbWxuYUhRbkxDQjBhR2x6TG05eWFXZHBibUZzUW05a2VWQmhaQ2xjY2x4dUlDQjlYSEpjYmx4eVhHNGdJRTF2WkdGc0xuQnliM1J2ZEhsd1pTNXRaV0Z6ZFhKbFUyTnliMnhzWW1GeUlEMGdablZ1WTNScGIyNGdLQ2tnZXlBdkx5QjBhSGdnZDJGc2MyaGNjbHh1SUNBZ0lIWmhjaUJ6WTNKdmJHeEVhWFlnUFNCa2IyTjFiV1Z1ZEM1amNtVmhkR1ZGYkdWdFpXNTBLQ2RrYVhZbktWeHlYRzRnSUNBZ2MyTnliMnhzUkdsMkxtTnNZWE56VG1GdFpTQTlJQ2R0YjJSaGJDMXpZM0p2Ykd4aVlYSXRiV1ZoYzNWeVpTZGNjbHh1SUNBZ0lIUm9hWE11SkdKdlpIa3VZWEJ3Wlc1a0tITmpjbTlzYkVScGRpbGNjbHh1SUNBZ0lIWmhjaUJ6WTNKdmJHeGlZWEpYYVdSMGFDQTlJSE5qY205c2JFUnBkaTV2Wm1aelpYUlhhV1IwYUNBdElITmpjbTlzYkVScGRpNWpiR2xsYm5SWGFXUjBhRnh5WEc0Z0lDQWdkR2hwY3k0a1ltOWtlVnN3WFM1eVpXMXZkbVZEYUdsc1pDaHpZM0p2Ykd4RWFYWXBYSEpjYmlBZ0lDQnlaWFIxY200Z2MyTnliMnhzWW1GeVYybGtkR2hjY2x4dUlDQjlYSEpjYmx4eVhHNWNjbHh1SUNBdkx5Qk5UMFJCVENCUVRGVkhTVTRnUkVWR1NVNUpWRWxQVGx4eVhHNGdJQzh2SUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlYSEpjYmx4eVhHNGdJR1oxYm1OMGFXOXVJRkJzZFdkcGJpaHZjSFJwYjI0c0lGOXlaV3hoZEdWa1ZHRnlaMlYwS1NCN1hISmNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWxZV05vS0daMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lDQWdkbUZ5SUNSMGFHbHpJQ0FnUFNBa0tIUm9hWE1wWEhKY2JpQWdJQ0FnSUhaaGNpQmtZWFJoSUNBZ0lEMGdKSFJvYVhNdVpHRjBZU2duZDNCaVl5NXRiMlJoYkNjcFhISmNiaUFnSUNBZ0lIWmhjaUJ2Y0hScGIyNXpJRDBnSkM1bGVIUmxibVFvZTMwc0lFMXZaR0ZzTGtSRlJrRlZURlJUTENBa2RHaHBjeTVrWVhSaEtDa3NJSFI1Y0dWdlppQnZjSFJwYjI0Z1BUMGdKMjlpYW1WamRDY2dKaVlnYjNCMGFXOXVLVnh5WEc1Y2NseHVJQ0FnSUNBZ2FXWWdLQ0ZrWVhSaEtTQWtkR2hwY3k1a1lYUmhLQ2QzY0dKakxtMXZaR0ZzSnl3Z0tHUmhkR0VnUFNCdVpYY2dUVzlrWVd3b2RHaHBjeXdnYjNCMGFXOXVjeWtwS1Z4eVhHNGdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlHOXdkR2x2YmlBOVBTQW5jM1J5YVc1bkp5a2daR0YwWVZ0dmNIUnBiMjVkS0Y5eVpXeGhkR1ZrVkdGeVoyVjBLVnh5WEc0Z0lDQWdJQ0JsYkhObElHbG1JQ2h2Y0hScGIyNXpMbk5vYjNjcElHUmhkR0V1YzJodmR5aGZjbVZzWVhSbFpGUmhjbWRsZENsY2NseHVJQ0FnSUgwcFhISmNiaUFnZlZ4eVhHNWNjbHh1SUNCMllYSWdiMnhrSUQwZ0pDNW1iaTUzY0dKalgyMTVYMjF2WkdGc1hISmNibHh5WEc0Z0lDUXVabTR1ZDNCaVkxOXRlVjl0YjJSaGJDQWdJQ0FnSUNBZ0lDQWdJQ0E5SUZCc2RXZHBibHh5WEc0Z0lDUXVabTR1ZDNCaVkxOXRlVjl0YjJSaGJDNURiMjV6ZEhKMVkzUnZjaUE5SUUxdlpHRnNYSEpjYmx4eVhHNWNjbHh1SUNBdkx5Qk5UMFJCVENCT1R5QkRUMDVHVEVsRFZGeHlYRzRnSUM4dklEMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVhISmNibHh5WEc0Z0lDUXVabTR1ZDNCaVkxOXRlVjl0YjJSaGJDNXViME52Ym1ac2FXTjBJRDBnWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ0pDNW1iaTUzY0dKalgyMTVYMjF2WkdGc0lEMGdiMnhrWEhKY2JpQWdJQ0J5WlhSMWNtNGdkR2hwYzF4eVhHNGdJSDFjY2x4dVhISmNibHh5WEc0Z0lDOHZJRTFQUkVGTUlFUkJWRUV0UVZCSlhISmNiaUFnTHk4Z1BUMDlQVDA5UFQwOVBUMDlQVDFjY2x4dVhISmNiaUFnSkNoa2IyTjFiV1Z1ZENrdWIyNG9KMk5zYVdOckxuZHdZbU11Ylc5a1lXd3VaR0YwWVMxaGNHa25MQ0FuVzJSaGRHRXRkRzluWjJ4bFBWd2lkM0JpWTE5dGVWOXRiMlJoYkZ3aVhTY3NJR1oxYm1OMGFXOXVJQ2hsS1NCN1hISmNiaUFnSUNCMllYSWdKSFJvYVhNZ0lDQTlJQ1FvZEdocGN5bGNjbHh1SUNBZ0lIWmhjaUJvY21WbUlDQWdJRDBnSkhSb2FYTXVZWFIwY2lnbmFISmxaaWNwWEhKY2JpQWdJQ0IyWVhJZ0pIUmhjbWRsZENBOUlDUW9KSFJvYVhNdVlYUjBjaWduWkdGMFlTMTBZWEpuWlhRbktTQjhmQ0FvYUhKbFppQW1KaUJvY21WbUxuSmxjR3hoWTJVb0x5NHFLRDg5STF0ZVhGeHpYU3NrS1M4c0lDY25LU2twSUM4dklITjBjbWx3SUdadmNpQnBaVGRjY2x4dUlDQWdJSFpoY2lCdmNIUnBiMjRnSUQwZ0pIUmhjbWRsZEM1a1lYUmhLQ2QzY0dKakxtMXZaR0ZzSnlrZ1B5QW5kRzluWjJ4bEp5QTZJQ1F1WlhoMFpXNWtLSHNnY21WdGIzUmxPaUFoTHlNdkxuUmxjM1FvYUhKbFppa2dKaVlnYUhKbFppQjlMQ0FrZEdGeVoyVjBMbVJoZEdFb0tTd2dKSFJvYVhNdVpHRjBZU2dwS1Z4eVhHNWNjbHh1SUNBZ0lHbG1JQ2drZEdocGN5NXBjeWduWVNjcEtTQmxMbkJ5WlhabGJuUkVaV1poZFd4MEtDbGNjbHh1WEhKY2JpQWdJQ0FrZEdGeVoyVjBMbTl1WlNnbmMyaHZkeTUzY0dKakxtMXZaR0ZzSnl3Z1puVnVZM1JwYjI0Z0tITm9iM2RGZG1WdWRDa2dlMXh5WEc0Z0lDQWdJQ0JwWmlBb2MyaHZkMFYyWlc1MExtbHpSR1ZtWVhWc2RGQnlaWFpsYm5SbFpDZ3BLU0J5WlhSMWNtNGdMeThnYjI1c2VTQnlaV2RwYzNSbGNpQm1iMk4xY3lCeVpYTjBiM0psY2lCcFppQnRiMlJoYkNCM2FXeHNJR0ZqZEhWaGJHeDVJR2RsZENCemFHOTNibHh5WEc0Z0lDQWdJQ0FrZEdGeVoyVjBMbTl1WlNnbmFHbGtaR1Z1TG5kd1ltTXViVzlrWVd3bkxDQm1kVzVqZEdsdmJpQW9LU0I3WEhKY2JpQWdJQ0FnSUNBZ0pIUm9hWE11YVhNb0p6cDJhWE5wWW14bEp5a2dKaVlnSkhSb2FYTXVkSEpwWjJkbGNpZ25abTlqZFhNbktWeHlYRzRnSUNBZ0lDQjlLVnh5WEc0Z0lDQWdmU2xjY2x4dUlDQWdJRkJzZFdkcGJpNWpZV3hzS0NSMFlYSm5aWFFzSUc5d2RHbHZiaXdnZEdocGN5bGNjbHh1SUNCOUtWeHlYRzVjY2x4dWZTaHFVWFZsY25rcE8xeHlYRzVjY2x4dVhISmNiaXRtZFc1amRHbHZiaUFvSkNrZ2UxeHlYRzRnSUNkMWMyVWdjM1J5YVdOMEp6dGNjbHh1WEhKY2JpQWdMeThnUkZKUFVFUlBWMDRnUTB4QlUxTWdSRVZHU1U1SlZFbFBUbHh5WEc0Z0lDOHZJRDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMWNjbHh1WEhKY2JpQWdkbUZ5SUdKaFkydGtjbTl3SUQwZ0p5NWtjbTl3Wkc5M2JpMWlZV05yWkhKdmNDZGNjbHh1SUNCMllYSWdkRzluWjJ4bElDQWdQU0FuVzJSaGRHRXRkRzluWjJ4bFBWd2lkM0JpWTE5a2NtOXdaRzkzYmx3aVhTZGNjbHh1SUNCMllYSWdSSEp2Y0dSdmQyNGdQU0JtZFc1amRHbHZiaUFvWld4bGJXVnVkQ2tnZTF4eVhHNGdJQ0FnSkNobGJHVnRaVzUwS1M1dmJpZ25ZMnhwWTJzdWQzQmlZeTVrY205d1pHOTNiaWNzSUhSb2FYTXVkRzluWjJ4bEtWeHlYRzRnSUgxY2NseHVYSEpjYmlBZ1JISnZjR1J2ZDI0dVZrVlNVMGxQVGlBOUlDY3pMak11TlNkY2NseHVYSEpjYmlBZ1puVnVZM1JwYjI0Z1oyVjBVR0Z5Wlc1MEtDUjBhR2x6S1NCN1hISmNiaUFnSUNCMllYSWdjMlZzWldOMGIzSWdQU0FrZEdocGN5NWhkSFJ5S0Nka1lYUmhMWFJoY21kbGRDY3BYSEpjYmx4eVhHNGdJQ0FnYVdZZ0tDRnpaV3hsWTNSdmNpa2dlMXh5WEc0Z0lDQWdJQ0J6Wld4bFkzUnZjaUE5SUNSMGFHbHpMbUYwZEhJb0oyaHlaV1luS1Z4eVhHNGdJQ0FnSUNCelpXeGxZM1J2Y2lBOUlITmxiR1ZqZEc5eUlDWW1JQzhqVzBFdFdtRXRlbDB2TG5SbGMzUW9jMlZzWldOMGIzSXBJQ1ltSUhObGJHVmpkRzl5TG5KbGNHeGhZMlVvTHk0cUtEODlJMXRlWEZ4elhTb2tLUzhzSUNjbktTQXZMeUJ6ZEhKcGNDQm1iM0lnYVdVM1hISmNiaUFnSUNCOVhISmNibHh5WEc0Z0lDQWdkbUZ5SUNSd1lYSmxiblFnUFNCelpXeGxZM1J2Y2lBbUppQWtLSE5sYkdWamRHOXlLVnh5WEc1Y2NseHVJQ0FnSUhKbGRIVnliaUFrY0dGeVpXNTBJQ1ltSUNSd1lYSmxiblF1YkdWdVozUm9JRDhnSkhCaGNtVnVkQ0E2SUNSMGFHbHpMbkJoY21WdWRDZ3BYSEpjYmlBZ2ZWeHlYRzVjY2x4dUlDQm1kVzVqZEdsdmJpQmpiR1ZoY2sxbGJuVnpLR1VwSUh0Y2NseHVJQ0FnSUdsbUlDaGxJQ1ltSUdVdWQyaHBZMmdnUFQwOUlETXBJSEpsZEhWeWJseHlYRzRnSUNBZ0pDaGlZV05yWkhKdmNDa3VjbVZ0YjNabEtDbGNjbHh1SUNBZ0lDUW9kRzluWjJ4bEtTNWxZV05vS0daMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lDQWdkbUZ5SUNSMGFHbHpJQ0FnSUNBZ0lDQWdQU0FrS0hSb2FYTXBYSEpjYmlBZ0lDQWdJSFpoY2lBa2NHRnlaVzUwSUNBZ0lDQWdJRDBnWjJWMFVHRnlaVzUwS0NSMGFHbHpLVnh5WEc0Z0lDQWdJQ0IyWVhJZ2NtVnNZWFJsWkZSaGNtZGxkQ0E5SUhzZ2NtVnNZWFJsWkZSaGNtZGxkRG9nZEdocGN5QjlYSEpjYmx4eVhHNGdJQ0FnSUNCcFppQW9JU1J3WVhKbGJuUXVhR0Z6UTJ4aGMzTW9KMjl3Wlc0bktTa2djbVYwZFhKdVhISmNibHh5WEc0Z0lDQWdJQ0JwWmlBb1pTQW1KaUJsTG5SNWNHVWdQVDBnSjJOc2FXTnJKeUFtSmlBdmFXNXdkWFI4ZEdWNGRHRnlaV0V2YVM1MFpYTjBLR1V1ZEdGeVoyVjBMblJoWjA1aGJXVXBJQ1ltSUNRdVkyOXVkR0ZwYm5Nb0pIQmhjbVZ1ZEZzd1hTd2daUzUwWVhKblpYUXBLU0J5WlhSMWNtNWNjbHh1WEhKY2JpQWdJQ0FnSUNSd1lYSmxiblF1ZEhKcFoyZGxjaWhsSUQwZ0pDNUZkbVZ1ZENnbmFHbGtaUzUzY0dKakxtUnliM0JrYjNkdUp5d2djbVZzWVhSbFpGUmhjbWRsZENrcFhISmNibHh5WEc0Z0lDQWdJQ0JwWmlBb1pTNXBjMFJsWm1GMWJIUlFjbVYyWlc1MFpXUW9LU2tnY21WMGRYSnVYSEpjYmx4eVhHNGdJQ0FnSUNBa2RHaHBjeTVoZEhSeUtDZGhjbWxoTFdWNGNHRnVaR1ZrSnl3Z0oyWmhiSE5sSnlsY2NseHVJQ0FnSUNBZ0pIQmhjbVZ1ZEM1eVpXMXZkbVZEYkdGemN5Z25iM0JsYmljcExuUnlhV2RuWlhJb0oyaHBaR1JsYmk1M2NHSmpMbVJ5YjNCa2IzZHVKeXdnY21Wc1lYUmxaRlJoY21kbGRDbGNjbHh1SUNBZ0lIMHBYSEpjYmlBZ2ZWeHlYRzVjY2x4dUlDQkVjbTl3Wkc5M2JpNXdjbTkwYjNSNWNHVXVkRzluWjJ4bElEMGdablZ1WTNScGIyNGdLR1VwSUh0Y2NseHVJQ0FnSUhaaGNpQWtkR2hwY3lBOUlDUW9kR2hwY3lsY2NseHVYSEpjYmlBZ0lDQnBaaUFvSkhSb2FYTXVhWE1vSnk1a2FYTmhZbXhsWkN3Z09tUnBjMkZpYkdWa0p5a3BJSEpsZEhWeWJseHlYRzVjY2x4dUlDQWdJSFpoY2lBa2NHRnlaVzUwSUNBOUlHZGxkRkJoY21WdWRDZ2tkR2hwY3lsY2NseHVJQ0FnSUhaaGNpQnBjMEZqZEdsMlpTQTlJQ1J3WVhKbGJuUXVhR0Z6UTJ4aGMzTW9KMjl3Wlc0bktWeHlYRzVjY2x4dUlDQWdJR05zWldGeVRXVnVkWE1vS1Z4eVhHNWNjbHh1SUNBZ0lHbG1JQ2doYVhOQlkzUnBkbVVwSUh0Y2NseHVJQ0FnSUNBZ2FXWWdLQ2R2Ym5SdmRXTm9jM1JoY25RbklHbHVJR1J2WTNWdFpXNTBMbVJ2WTNWdFpXNTBSV3hsYldWdWRDQW1KaUFoSkhCaGNtVnVkQzVqYkc5elpYTjBLQ2N1Ym1GMlltRnlMVzVoZGljcExteGxibWQwYUNrZ2UxeHlYRzRnSUNBZ0lDQWdJQzh2SUdsbUlHMXZZbWxzWlNCM1pTQjFjMlVnWVNCaVlXTnJaSEp2Y0NCaVpXTmhkWE5sSUdOc2FXTnJJR1YyWlc1MGN5QmtiMjRuZENCa1pXeGxaMkYwWlZ4eVhHNGdJQ0FnSUNBZ0lDUW9aRzlqZFcxbGJuUXVZM0psWVhSbFJXeGxiV1Z1ZENnblpHbDJKeWtwWEhKY2JpQWdJQ0FnSUNBZ0lDQXVZV1JrUTJ4aGMzTW9KMlJ5YjNCa2IzZHVMV0poWTJ0a2NtOXdKeWxjY2x4dUlDQWdJQ0FnSUNBZ0lDNXBibk5sY25SQlpuUmxjaWdrS0hSb2FYTXBLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0xtOXVLQ2RqYkdsamF5Y3NJR05zWldGeVRXVnVkWE1wWEhKY2JpQWdJQ0FnSUgxY2NseHVYSEpjYmlBZ0lDQWdJSFpoY2lCeVpXeGhkR1ZrVkdGeVoyVjBJRDBnZXlCeVpXeGhkR1ZrVkdGeVoyVjBPaUIwYUdseklIMWNjbHh1SUNBZ0lDQWdKSEJoY21WdWRDNTBjbWxuWjJWeUtHVWdQU0FrTGtWMlpXNTBLQ2R6YUc5M0xuZHdZbU11WkhKdmNHUnZkMjRuTENCeVpXeGhkR1ZrVkdGeVoyVjBLU2xjY2x4dVhISmNiaUFnSUNBZ0lHbG1JQ2hsTG1selJHVm1ZWFZzZEZCeVpYWmxiblJsWkNncEtTQnlaWFIxY201Y2NseHVYSEpjYmlBZ0lDQWdJQ1IwYUdselhISmNiaUFnSUNBZ0lDQWdMblJ5YVdkblpYSW9KMlp2WTNWekp5bGNjbHh1SUNBZ0lDQWdJQ0F1WVhSMGNpZ25ZWEpwWVMxbGVIQmhibVJsWkNjc0lDZDBjblZsSnlsY2NseHVYSEpjYmlBZ0lDQWdJQ1J3WVhKbGJuUmNjbHh1SUNBZ0lDQWdJQ0F1ZEc5bloyeGxRMnhoYzNNb0oyOXdaVzRuS1Z4eVhHNGdJQ0FnSUNBZ0lDNTBjbWxuWjJWeUtDZHphRzkzYmk1M2NHSmpMbVJ5YjNCa2IzZHVKeXdnY21Wc1lYUmxaRlJoY21kbGRDbGNjbHh1SUNBZ0lIMWNjbHh1WEhKY2JpQWdJQ0J5WlhSMWNtNGdabUZzYzJWY2NseHVJQ0I5WEhKY2JseHlYRzRnSUVSeWIzQmtiM2R1TG5CeWIzUnZkSGx3WlM1clpYbGtiM2R1SUQwZ1puVnVZM1JwYjI0Z0tHVXBJSHRjY2x4dUlDQWdJR2xtSUNnaEx5Z3pPSHcwTUh3eU4zd3pNaWt2TG5SbGMzUW9aUzUzYUdsamFDa2dmSHdnTDJsdWNIVjBmSFJsZUhSaGNtVmhMMmt1ZEdWemRDaGxMblJoY21kbGRDNTBZV2RPWVcxbEtTa2djbVYwZFhKdVhISmNibHh5WEc0Z0lDQWdkbUZ5SUNSMGFHbHpJRDBnSkNoMGFHbHpLVnh5WEc1Y2NseHVJQ0FnSUdVdWNISmxkbVZ1ZEVSbFptRjFiSFFvS1Z4eVhHNGdJQ0FnWlM1emRHOXdVSEp2Y0dGbllYUnBiMjRvS1Z4eVhHNWNjbHh1SUNBZ0lHbG1JQ2drZEdocGN5NXBjeWduTG1ScGMyRmliR1ZrTENBNlpHbHpZV0pzWldRbktTa2djbVYwZFhKdVhISmNibHh5WEc0Z0lDQWdkbUZ5SUNSd1lYSmxiblFnSUQwZ1oyVjBVR0Z5Wlc1MEtDUjBhR2x6S1Z4eVhHNGdJQ0FnZG1GeUlHbHpRV04wYVhabElEMGdKSEJoY21WdWRDNW9ZWE5EYkdGemN5Z25iM0JsYmljcFhISmNibHh5WEc0Z0lDQWdhV1lnS0NGcGMwRmpkR2wyWlNBbUppQmxMbmRvYVdOb0lDRTlJREkzSUh4OElHbHpRV04wYVhabElDWW1JR1V1ZDJocFkyZ2dQVDBnTWpjcElIdGNjbHh1SUNBZ0lDQWdhV1lnS0dVdWQyaHBZMmdnUFQwZ01qY3BJQ1J3WVhKbGJuUXVabWx1WkNoMGIyZG5iR1VwTG5SeWFXZG5aWElvSjJadlkzVnpKeWxjY2x4dUlDQWdJQ0FnY21WMGRYSnVJQ1IwYUdsekxuUnlhV2RuWlhJb0oyTnNhV05ySnlsY2NseHVJQ0FnSUgxY2NseHVYSEpjYmlBZ0lDQjJZWElnWkdWell5QTlJQ2NnYkdrNmJtOTBLQzVrYVhOaFlteGxaQ2s2ZG1semFXSnNaU0JoSjF4eVhHNGdJQ0FnZG1GeUlDUnBkR1Z0Y3lBOUlDUndZWEpsYm5RdVptbHVaQ2duTG1SeWIzQmtiM2R1TFcxbGJuVW5JQ3NnWkdWell5bGNjbHh1WEhKY2JpQWdJQ0JwWmlBb0lTUnBkR1Z0Y3k1c1pXNW5kR2dwSUhKbGRIVnlibHh5WEc1Y2NseHVJQ0FnSUhaaGNpQnBibVJsZUNBOUlDUnBkR1Z0Y3k1cGJtUmxlQ2hsTG5SaGNtZGxkQ2xjY2x4dVhISmNiaUFnSUNCcFppQW9aUzUzYUdsamFDQTlQU0F6T0NBbUppQnBibVJsZUNBK0lEQXBJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBibVJsZUMwdElDQWdJQ0FnSUNBZ0x5OGdkWEJjY2x4dUlDQWdJR2xtSUNobExuZG9hV05vSUQwOUlEUXdJQ1ltSUdsdVpHVjRJRHdnSkdsMFpXMXpMbXhsYm1kMGFDQXRJREVwSUdsdVpHVjRLeXNnSUNBZ0lDQWdJQ0F2THlCa2IzZHVYSEpjYmlBZ0lDQnBaaUFvSVg1cGJtUmxlQ2tnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwYm1SbGVDQTlJREJjY2x4dVhISmNiaUFnSUNBa2FYUmxiWE11WlhFb2FXNWtaWGdwTG5SeWFXZG5aWElvSjJadlkzVnpKeWxjY2x4dUlDQjlYSEpjYmx4eVhHNWNjbHh1SUNBdkx5QkVVazlRUkU5WFRpQlFURlZIU1U0Z1JFVkdTVTVKVkVsUFRseHlYRzRnSUM4dklEMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVhISmNibHh5WEc0Z0lHWjFibU4wYVc5dUlGQnNkV2RwYmlodmNIUnBiMjRwSUh0Y2NseHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtVmhZMmdvWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ0lDQjJZWElnSkhSb2FYTWdQU0FrS0hSb2FYTXBYSEpjYmlBZ0lDQWdJSFpoY2lCa1lYUmhJQ0E5SUNSMGFHbHpMbVJoZEdFb0ozZHdZbU11WkhKdmNHUnZkMjRuS1Z4eVhHNWNjbHh1SUNBZ0lDQWdhV1lnS0NGa1lYUmhLU0FrZEdocGN5NWtZWFJoS0NkM2NHSmpMbVJ5YjNCa2IzZHVKeXdnS0dSaGRHRWdQU0J1WlhjZ1JISnZjR1J2ZDI0b2RHaHBjeWtwS1Z4eVhHNGdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlHOXdkR2x2YmlBOVBTQW5jM1J5YVc1bkp5a2daR0YwWVZ0dmNIUnBiMjVkTG1OaGJHd29KSFJvYVhNcFhISmNiaUFnSUNCOUtWeHlYRzRnSUgxY2NseHVYSEpjYmlBZ2RtRnlJRzlzWkNBOUlDUXVabTR1ZDNCaVkxOWtjbTl3Wkc5M2JseHlYRzVjY2x4dUlDQWtMbVp1TG5kd1ltTmZaSEp2Y0dSdmQyNGdJQ0FnSUNBZ0lDQWdJQ0FnUFNCUWJIVm5hVzVjY2x4dUlDQWtMbVp1TG5kd1ltTmZaSEp2Y0dSdmQyNHVRMjl1YzNSeWRXTjBiM0lnUFNCRWNtOXdaRzkzYmx4eVhHNWNjbHh1WEhKY2JpQWdMeThnUkZKUFVFUlBWMDRnVGs4Z1EwOU9Sa3hKUTFSY2NseHVJQ0F2THlBOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBWeHlYRzVjY2x4dUlDQWtMbVp1TG5kd1ltTmZaSEp2Y0dSdmQyNHVibTlEYjI1bWJHbGpkQ0E5SUdaMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lDUXVabTR1ZDNCaVkxOWtjbTl3Wkc5M2JpQTlJRzlzWkZ4eVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhOY2NseHVJQ0I5WEhKY2JseHlYRzVjY2x4dUlDQXZMeUJCVUZCTVdTQlVUeUJUVkVGT1JFRlNSQ0JFVWs5UVJFOVhUaUJGVEVWTlJVNVVVMXh5WEc0Z0lDOHZJRDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlYSEpjYmx4eVhHNGdJQ1FvWkc5amRXMWxiblFwWEhKY2JpQWdJQ0F1YjI0b0oyTnNhV05yTG5kd1ltTXVaSEp2Y0dSdmQyNHVaR0YwWVMxaGNHa25MQ0JqYkdWaGNrMWxiblZ6S1Z4eVhHNGdJQ0FnTG05dUtDZGpiR2xqYXk1M2NHSmpMbVJ5YjNCa2IzZHVMbVJoZEdFdFlYQnBKeXdnSnk1a2NtOXdaRzkzYmlCbWIzSnRKeXdnWm5WdVkzUnBiMjRnS0dVcElIc2daUzV6ZEc5d1VISnZjR0ZuWVhScGIyNG9LU0I5S1Z4eVhHNGdJQ0FnTG05dUtDZGpiR2xqYXk1M2NHSmpMbVJ5YjNCa2IzZHVMbVJoZEdFdFlYQnBKeXdnZEc5bloyeGxMQ0JFY205d1pHOTNiaTV3Y205MGIzUjVjR1V1ZEc5bloyeGxLVnh5WEc0Z0lDQWdMbTl1S0NkclpYbGtiM2R1TG5kd1ltTXVaSEp2Y0dSdmQyNHVaR0YwWVMxaGNHa25MQ0IwYjJkbmJHVXNJRVJ5YjNCa2IzZHVMbkJ5YjNSdmRIbHdaUzVyWlhsa2IzZHVLVnh5WEc0Z0lDQWdMbTl1S0NkclpYbGtiM2R1TG5kd1ltTXVaSEp2Y0dSdmQyNHVaR0YwWVMxaGNHa25MQ0FuTG1SeWIzQmtiM2R1TFcxbGJuVW5MQ0JFY205d1pHOTNiaTV3Y205MGIzUjVjR1V1YTJWNVpHOTNiaWxjY2x4dVhISmNibjBvYWxGMVpYSjVLVHRjY2x4dUlsMHNJbVpwYkdVaU9pSmhjM05sZEhNdmJHbGljeTkxYVM5ZmIzVjBMMlJ5YjNCa2IzZHVYMjF2WkdGc0xtcHpJbjA9XG4iXSwibmFtZXMiOlsiX3R5cGVvZiIsIm9iaiIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJqUXVlcnkiLCJFcnJvciIsInZlcnNpb24iLCJmbiIsImpxdWVyeSIsInNwbGl0IiwiJCIsIk1vZGFsIiwiZWxlbWVudCIsIm9wdGlvbnMiLCJ0aGlzIiwiJGJvZHkiLCJkb2N1bWVudCIsImJvZHkiLCIkZWxlbWVudCIsIiRkaWFsb2ciLCJmaW5kIiwiJGJhY2tkcm9wIiwiaXNTaG93biIsIm9yaWdpbmFsQm9keVBhZCIsInNjcm9sbGJhcldpZHRoIiwiaWdub3JlQmFja2Ryb3BDbGljayIsInJlbW90ZSIsImxvYWQiLCJwcm94eSIsInRyaWdnZXIiLCJQbHVnaW4iLCJvcHRpb24iLCJfcmVsYXRlZFRhcmdldCIsImVhY2giLCIkdGhpcyIsImRhdGEiLCJleHRlbmQiLCJERUZBVUxUUyIsInNob3ciLCJWRVJTSU9OIiwiVFJBTlNJVElPTl9EVVJBVElPTiIsIkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04iLCJiYWNrZHJvcCIsImtleWJvYXJkIiwidG9nZ2xlIiwiaGlkZSIsInRoYXQiLCJlIiwiRXZlbnQiLCJyZWxhdGVkVGFyZ2V0IiwiaXNEZWZhdWx0UHJldmVudGVkIiwiY2hlY2tTY3JvbGxiYXIiLCJzZXRTY3JvbGxiYXIiLCJhZGRDbGFzcyIsImVzY2FwZSIsInJlc2l6ZSIsIm9uIiwib25lIiwidGFyZ2V0IiwiaXMiLCJ0cmFuc2l0aW9uIiwic3VwcG9ydCIsImhhc0NsYXNzIiwicGFyZW50IiwibGVuZ3RoIiwiYXBwZW5kVG8iLCJzY3JvbGxUb3AiLCJhZGp1c3REaWFsb2ciLCJvZmZzZXRXaWR0aCIsImVuZm9yY2VGb2N1cyIsImVtdWxhdGVUcmFuc2l0aW9uRW5kIiwicHJldmVudERlZmF1bHQiLCJvZmYiLCJyZW1vdmVDbGFzcyIsImhpZGVNb2RhbCIsImhhcyIsIndoaWNoIiwid2luZG93IiwiaGFuZGxlVXBkYXRlIiwicmVzZXRBZGp1c3RtZW50cyIsInJlc2V0U2Nyb2xsYmFyIiwicmVtb3ZlQmFja2Ryb3AiLCJyZW1vdmUiLCJjYWxsYmFjayIsImNhbGxiYWNrUmVtb3ZlIiwiYW5pbWF0ZSIsImRvQW5pbWF0ZSIsImNyZWF0ZUVsZW1lbnQiLCJjdXJyZW50VGFyZ2V0IiwiZm9jdXMiLCJtb2RhbElzT3ZlcmZsb3dpbmciLCJzY3JvbGxIZWlnaHQiLCJkb2N1bWVudEVsZW1lbnQiLCJjbGllbnRIZWlnaHQiLCJjc3MiLCJwYWRkaW5nTGVmdCIsImJvZHlJc092ZXJmbG93aW5nIiwicGFkZGluZ1JpZ2h0IiwiZG9jdW1lbnRFbGVtZW50UmVjdCIsImZ1bGxXaW5kb3dXaWR0aCIsImlubmVyV2lkdGgiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJyaWdodCIsIk1hdGgiLCJhYnMiLCJsZWZ0IiwiY2xpZW50V2lkdGgiLCJtZWFzdXJlU2Nyb2xsYmFyIiwiYm9keVBhZCIsInBhcnNlSW50Iiwic3R5bGUiLCJzY3JvbGxEaXYiLCJjbGFzc05hbWUiLCJhcHBlbmQiLCJyZW1vdmVDaGlsZCIsIm9sZCIsIndwYmNfbXlfbW9kYWwiLCJDb25zdHJ1Y3RvciIsIm5vQ29uZmxpY3QiLCJocmVmIiwiYXR0ciIsIiR0YXJnZXQiLCJyZXBsYWNlIiwidGVzdCIsInNob3dFdmVudCIsImNhbGwiLCJEcm9wZG93biIsImdldFBhcmVudCIsInNlbGVjdG9yIiwiJHBhcmVudCIsImNsZWFyTWVudXMiLCJ0eXBlIiwidGFnTmFtZSIsImNvbnRhaW5zIiwiaXNBY3RpdmUiLCJjbG9zZXN0IiwiaW5zZXJ0QWZ0ZXIiLCJ0b2dnbGVDbGFzcyIsImtleWRvd24iLCJzdG9wUHJvcGFnYXRpb24iLCIkaXRlbXMiLCJpbmRleCIsImVxIiwid3BiY19kcm9wZG93biJdLCJtYXBwaW5ncyI6ImFBRUEsU0FBU0EsUUFBUUMsR0FBa0MsT0FBT0QsUUFBVSxtQkFBcUJFLFFBQVUsaUJBQW1CQSxPQUFPQyxTQUFXLFNBQVVGLEdBQU8sY0FBY0EsR0FBUyxTQUFVQSxHQUFPLE9BQU9BLEdBQU8sbUJBQXFCQyxRQUFVRCxFQUFJRyxjQUFnQkYsUUFBVUQsSUFBUUMsT0FBT0csVUFBWSxnQkFBa0JKLElBQWdCQSxHQU16VSxHQUFzQixvQkFBWEssT0FDVCxNQUFNLElBQUlDLE1BQU0sMkNBR2pCLFdBR0MsSUFBSUMsRUFLSkYsT0FMZ0JHLEdBQUdDLE9BQU9DLE1BQU0sS0FBSyxHQUFHQSxNQUFNLEtBRTlDLEdBQUlILEVBQVEsR0FBSyxHQUFLQSxFQUFRLEdBQUssR0FBbUIsR0FBZEEsRUFBUSxJQUF5QixHQUFkQSxFQUFRLElBQVdBLEVBQVEsR0FBSyxFQUN6RixNQUFNLElBQUlELE1BQU0sa0VBTm5CLEdBaUJBLFNBQVVLLEdBSUcsU0FBUkMsRUFBdUJDLEVBQVNDLEdBQ2xDQyxLQUFLRCxRQUFVQSxFQUNmQyxLQUFLQyxNQUFRTCxFQUFFTSxTQUFTQyxNQUN4QkgsS0FBS0ksU0FBV1IsRUFBRUUsR0FDbEJFLEtBQUtLLFFBQVVMLEtBQUtJLFNBQVNFLEtBQUssaUJBQ2xDTixLQUFL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
|
1 |
+
"use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");!function(){var t=jQuery.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1==t[0]&&9==t[1]&&t[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(),function(s){function r(t,e){this.options=e,this.$body=s(document.body),this.$element=s(t),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,s.proxy(function(){this.$element.trigger("loaded.wpbc.modal")},this))}function n(i,n){return this.each(function(){var t=s(this),e=t.data("wpbc.modal"),o=s.extend({},r.DEFAULTS,t.data(),"object"==_typeof(i)&&i);e||t.data("wpbc.modal",e=new r(this,o)),"string"==typeof i?e[i](n):o.show&&e.show(n)})}r.VERSION="3.3.5",r.TRANSITION_DURATION=300,r.BACKDROP_TRANSITION_DURATION=150,r.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},r.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},r.prototype.show=function(o){var i=this,t=s.Event("show.wpbc.modal",{relatedTarget:o});this.$element.trigger(t),this.isShown||t.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.wpbc.modal",'[data-dismiss="modal"]',s.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.wpbc.modal",function(){i.$element.one("mouseup.dismiss.wpbc.modal",function(t){s(t.target).is(i.$element)&&(i.ignoreBackdropClick=!0)})}),this.backdrop(function(){var t=s.support.transition&&i.$element.hasClass("fade");i.$element.parent().length||i.$element.appendTo(i.$body),i.$element.show().scrollTop(0),i.adjustDialog(),t&&i.$element[0].offsetWidth,i.$element.addClass("in"),i.enforceFocus();var e=s.Event("shown.wpbc.modal",{relatedTarget:o});t?i.$dialog.one("bsTransitionEnd",function(){i.$element.trigger("focus").trigger(e)}).emulateTransitionEnd(r.TRANSITION_DURATION):i.$element.trigger("focus").trigger(e)}))},r.prototype.hide=function(t){t&&t.preventDefault(),t=s.Event("hide.wpbc.modal"),this.$element.trigger(t),this.isShown&&!t.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),s(document).off("focusin.wpbc.modal"),this.$element.removeClass("in").off("click.dismiss.wpbc.modal").off("mouseup.dismiss.wpbc.modal"),this.$dialog.off("mousedown.dismiss.wpbc.modal"),s.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",s.proxy(this.hideModal,this)).emulateTransitionEnd(r.TRANSITION_DURATION):this.hideModal())},r.prototype.enforceFocus=function(){s(document).off("focusin.wpbc.modal").on("focusin.wpbc.modal",s.proxy(function(t){this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},r.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.wpbc.modal",s.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.wpbc.modal")},r.prototype.resize=function(){this.isShown?s(window).on("resize.wpbc.modal",s.proxy(this.handleUpdate,this)):s(window).off("resize.wpbc.modal")},r.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.wpbc.modal")})},r.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},r.prototype.backdrop=function(t){var e,o=this,i=this.$element.hasClass("fade")?"fade":"";this.isShown&&this.options.backdrop?(e=s.support.transition&&i,this.$backdrop=s(document.createElement("div")).addClass("modal-backdrop "+i).appendTo(this.$body),this.$element.on("click.dismiss.wpbc.modal",s.proxy(function(t){this.ignoreBackdropClick?this.ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide())},this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),t&&(e?this.$backdrop.one("bsTransitionEnd",t).emulateTransitionEnd(r.BACKDROP_TRANSITION_DURATION):t())):!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e=function(){o.removeBackdrop(),t&&t()},s.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",e).emulateTransitionEnd(r.BACKDROP_TRANSITION_DURATION):e()):t&&t()},r.prototype.handleUpdate=function(){this.adjustDialog()},r.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},r.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},r.prototype.checkScrollbar=function(){var t,e=window.innerWidth;e||(e=(t=document.documentElement.getBoundingClientRect()).right-Math.abs(t.left)),this.bodyIsOverflowing=document.body.clientWidth<e,this.scrollbarWidth=this.measureScrollbar()},r.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",t+this.scrollbarWidth)},r.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},r.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var t=s.fn.wpbc_my_modal;s.fn.wpbc_my_modal=n,s.fn.wpbc_my_modal.Constructor=r,s.fn.wpbc_my_modal.noConflict=function(){return s.fn.wpbc_my_modal=t,this},s(document).on("click.wpbc.modal.data-api",'[data-toggle="wpbc_my_modal"]',function(t){var e=s(this),o=e.attr("href"),i=s(e.attr("data-target")||o&&o.replace(/.*(?=#[^\s]+$)/,"")),o=i.data("wpbc.modal")?"toggle":s.extend({remote:!/#/.test(o)&&o},i.data(),e.data());e.is("a")&&t.preventDefault(),i.one("show.wpbc.modal",function(t){t.isDefaultPrevented()||i.one("hidden.wpbc.modal",function(){e.is(":visible")&&e.trigger("focus")})}),n.call(i,o,this)})}(jQuery),function(n){function i(t){n(t).on("click.wpbc.dropdown",this.toggle)}var s='[data-toggle="wpbc_dropdown"]';function r(t){var e=t.attr("data-target"),e=(e=e||(e=t.attr("href"))&&/#[A-Za-z]/.test(e)&&e.replace(/.*(?=#[^\s]*$)/,""))&&n(e);return e&&e.length?e:t.parent()}function a(i){i&&3===i.which||(n(".dropdown-backdrop").remove(),n(s).each(function(){var t=n(this),e=r(t),o={relatedTarget:this};e.hasClass("open")&&(i&&"click"==i.type&&/input|textarea/i.test(i.target.tagName)&&n.contains(e[0],i.target)||(e.trigger(i=n.Event("hide.wpbc.dropdown",o)),i.isDefaultPrevented()||(t.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.wpbc.dropdown",o))))}))}i.VERSION="3.3.5",i.prototype.toggle=function(t){var e=n(this);if(!e.is(".disabled, :disabled")){var o=r(e),i=o.hasClass("open");if(a(),!i){"ontouchstart"in document.documentElement&&!o.closest(".navbar-nav").length&&n(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(n(this)).on("click",a);i={relatedTarget:this};if(o.trigger(t=n.Event("show.wpbc.dropdown",i)),t.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),o.toggleClass("open").trigger("shown.wpbc.dropdown",i)}return!1}},i.prototype.keydown=function(t){if(/(38|40|27|32)/.test(t.which)&&!/input|textarea/i.test(t.target.tagName)){var e=n(this);if(t.preventDefault(),t.stopPropagation(),!e.is(".disabled, :disabled")){var o=r(e),i=o.hasClass("open");if(!i&&27!=t.which||i&&27==t.which)return 27==t.which&&o.find(s).trigger("focus"),e.trigger("click");var e=" li:not(.disabled):visible a",o=o.find(".dropdown-menu"+e+",.ui_dropdown_menu"+e);o.length&&(e=o.index(t.target),38==t.which&&0<e&&e--,40==t.which&&e<o.length-1&&e++,o.eq(e=!~e?0:e).trigger("focus"))}}};var t=n.fn.wpbc_dropdown;n.fn.wpbc_dropdown=function(o){return this.each(function(){var t=n(this),e=t.data("wpbc.dropdown");e||t.data("wpbc.dropdown",e=new i(this)),"string"==typeof o&&e[o].call(t)})},n.fn.wpbc_dropdown.Constructor=i,n.fn.wpbc_dropdown.noConflict=function(){return n.fn.wpbc_dropdown=t,this},n(document).on("click.wpbc.dropdown.data-api",a).on("click.wpbc.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.wpbc.dropdown.data-api",s,i.prototype.toggle).on("keydown.wpbc.dropdown.data-api",s,i.prototype.keydown).on("keydown.wpbc.dropdown.data-api",".dropdown-menu",i.prototype.keydown).on("keydown.wpbc.dropdown.data-api",".ui_dropdown_menu",i.prototype.keydown)}(jQuery);
|
2 |
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2xpYnMvdWkvX291dC9kcm9wZG93bl9tb2RhbC5taW4uanMiLCJzb3VyY2VzIjpbImFzc2V0cy9saWJzL3VpL19vdXQvZHJvcGRvd25fbW9kYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgcmV0dXJuIF90eXBlb2YgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBcInN5bWJvbFwiID09IHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPyBmdW5jdGlvbiAob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9IDogZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gb2JqICYmIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9LCBfdHlwZW9mKG9iaik7IH1cblxuLyohXHJcbiAqIEdlbmVyYXRlZCB1c2luZyB0aGUgQm9vdHN0cmFwIEN1c3RvbWl6ZXIgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tL2N1c3RvbWl6ZS8/aWQ9ZjRiNGM5Y2I4NWRmNzU3Y2EwOGMpXHJcbiAqIENvbmZpZyBzYXZlZCB0byBjb25maWcuanNvbiBhbmQgaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZjRiNGM5Y2I4NWRmNzU3Y2EwOGNcclxuICovXG5pZiAodHlwZW9mIGpRdWVyeSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdCb290c3RyYXBcXCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5Jyk7XG59XG5cbitmdW5jdGlvbiAoJCkge1xuICAndXNlIHN0cmljdCc7XG5cbiAgdmFyIHZlcnNpb24gPSAkLmZuLmpxdWVyeS5zcGxpdCgnICcpWzBdLnNwbGl0KCcuJyk7XG5cbiAgaWYgKHZlcnNpb25bMF0gPCAyICYmIHZlcnNpb25bMV0gPCA5IHx8IHZlcnNpb25bMF0gPT0gMSAmJiB2ZXJzaW9uWzFdID09IDkgJiYgdmVyc2lvblsyXSA8IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Jvb3RzdHJhcFxcJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBqUXVlcnkgdmVyc2lvbiAxLjkuMSBvciBoaWdoZXInKTtcbiAgfVxufShqUXVlcnkpO1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqIEJvb3RzdHJhcDogbW9kYWwuanMgdjMuMy41XHJcbiAqIGh0dHA6Ly9nZXRib290c3RyYXAuY29tL2phdmFzY3JpcHQvI21vZGFsc1xyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogQ29weXJpZ2h0IDIwMTEtMjAxNSBUd2l0dGVyLCBJbmMuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXHJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4rZnVuY3Rpb24gKCQpIHtcbiAgJ3VzZSBzdHJpY3QnOyAvLyBNT0RBTCBDTEFTUyBERUZJTklUSU9OXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT1cblxuICB2YXIgTW9kYWwgPSBmdW5jdGlvbiBNb2RhbChlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLiRib2R5ID0gJChkb2N1bWVudC5ib2R5KTtcbiAgICB0aGlzLiRlbGVtZW50ID0gJChlbGVtZW50KTtcbiAgICB0aGlzLiRkaWFsb2cgPSB0aGlzLiRlbGVtZW50LmZpbmQoJy5tb2RhbC1kaWFsb2cnKTtcbiAgICB0aGlzLiRiYWNrZHJvcCA9IG51bGw7XG4gICAgdGhpcy5pc1Nob3duID0gbnVsbDtcbiAgICB0aGlzLm9yaWdpbmFsQm9keVBhZCA9IG51bGw7XG4gICAgdGhpcy5zY3JvbGxiYXJXaWR0aCA9IDA7XG4gICAgdGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnJlbW90ZSkge1xuICAgICAgdGhpcy4kZWxlbWVudC5maW5kKCcubW9kYWwtY29udGVudCcpLmxvYWQodGhpcy5vcHRpb25zLnJlbW90ZSwgJC5wcm94eShmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuJGVsZW1lbnQudHJpZ2dlcignbG9hZGVkLndwYmMubW9kYWwnKTtcbiAgICAgIH0sIHRoaXMpKTtcbiAgICB9XG4gIH07XG5cbiAgTW9kYWwuVkVSU0lPTiA9ICczLjMuNSc7XG4gIE1vZGFsLlRSQU5TSVRJT05fRFVSQVRJT04gPSAzMDA7XG4gIE1vZGFsLkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04gPSAxNTA7XG4gIE1vZGFsLkRFRkFVTFRTID0ge1xuICAgIGJhY2tkcm9wOiB0cnVlLFxuICAgIGtleWJvYXJkOiB0cnVlLFxuICAgIHNob3c6IHRydWVcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUudG9nZ2xlID0gZnVuY3Rpb24gKF9yZWxhdGVkVGFyZ2V0KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNTaG93biA/IHRoaXMuaGlkZSgpIDogdGhpcy5zaG93KF9yZWxhdGVkVGFyZ2V0KTtcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uIChfcmVsYXRlZFRhcmdldCkge1xuICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICB2YXIgZSA9ICQuRXZlbnQoJ3Nob3cud3BiYy5tb2RhbCcsIHtcbiAgICAgIHJlbGF0ZWRUYXJnZXQ6IF9yZWxhdGVkVGFyZ2V0XG4gICAgfSk7XG4gICAgdGhpcy4kZWxlbWVudC50cmlnZ2VyKGUpO1xuICAgIGlmICh0aGlzLmlzU2hvd24gfHwgZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuO1xuICAgIHRoaXMuaXNTaG93biA9IHRydWU7XG4gICAgdGhpcy5jaGVja1Njcm9sbGJhcigpO1xuICAgIHRoaXMuc2V0U2Nyb2xsYmFyKCk7XG4gICAgdGhpcy4kYm9keS5hZGRDbGFzcygnbW9kYWwtb3BlbicpO1xuICAgIHRoaXMuZXNjYXBlKCk7XG4gICAgdGhpcy5yZXNpemUoKTtcbiAgICB0aGlzLiRlbGVtZW50Lm9uKCdjbGljay5kaXNtaXNzLndwYmMubW9kYWwnLCAnW2RhdGEtZGlzbWlzcz1cIm1vZGFsXCJdJywgJC5wcm94eSh0aGlzLmhpZGUsIHRoaXMpKTtcbiAgICB0aGlzLiRkaWFsb2cub24oJ21vdXNlZG93bi5kaXNtaXNzLndwYmMubW9kYWwnLCBmdW5jdGlvbiAoKSB7XG4gICAgICB0aGF0LiRlbGVtZW50Lm9uZSgnbW91c2V1cC5kaXNtaXNzLndwYmMubW9kYWwnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICBpZiAoJChlLnRhcmdldCkuaXModGhhdC4kZWxlbWVudCkpIHRoYXQuaWdub3JlQmFja2Ryb3BDbGljayA9IHRydWU7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICB0aGlzLmJhY2tkcm9wKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciB0cmFuc2l0aW9uID0gJC5zdXBwb3J0LnRyYW5zaXRpb24gJiYgdGhhdC4kZWxlbWVudC5oYXNDbGFzcygnZmFkZScpO1xuXG4gICAgICBpZiAoIXRoYXQuJGVsZW1lbnQucGFyZW50KCkubGVuZ3RoKSB7XG4gICAgICAgIHRoYXQuJGVsZW1lbnQuYXBwZW5kVG8odGhhdC4kYm9keSk7IC8vIGRvbid0IG1vdmUgbW9kYWxzIGRvbSBwb3NpdGlvblxuICAgICAgfVxuXG4gICAgICB0aGF0LiRlbGVtZW50LnNob3coKS5zY3JvbGxUb3AoMCk7XG4gICAgICB0aGF0LmFkanVzdERpYWxvZygpO1xuXG4gICAgICBpZiAodHJhbnNpdGlvbikge1xuICAgICAgICB0aGF0LiRlbGVtZW50WzBdLm9mZnNldFdpZHRoOyAvLyBmb3JjZSByZWZsb3dcbiAgICAgIH1cblxuICAgICAgdGhhdC4kZWxlbWVudC5hZGRDbGFzcygnaW4nKTtcbiAgICAgIHRoYXQuZW5mb3JjZUZvY3VzKCk7XG4gICAgICB2YXIgZSA9ICQuRXZlbnQoJ3Nob3duLndwYmMubW9kYWwnLCB7XG4gICAgICAgIHJlbGF0ZWRUYXJnZXQ6IF9yZWxhdGVkVGFyZ2V0XG4gICAgICB9KTtcbiAgICAgIHRyYW5zaXRpb24gPyB0aGF0LiRkaWFsb2cgLy8gd2FpdCBmb3IgbW9kYWwgdG8gc2xpZGUgaW5cbiAgICAgIC5vbmUoJ2JzVHJhbnNpdGlvbkVuZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhhdC4kZWxlbWVudC50cmlnZ2VyKCdmb2N1cycpLnRyaWdnZXIoZSk7XG4gICAgICB9KS5lbXVsYXRlVHJhbnNpdGlvbkVuZChNb2RhbC5UUkFOU0lUSU9OX0RVUkFUSU9OKSA6IHRoYXQuJGVsZW1lbnQudHJpZ2dlcignZm9jdXMnKS50cmlnZ2VyKGUpO1xuICAgIH0pO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24gKGUpIHtcbiAgICBpZiAoZSkgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUgPSAkLkV2ZW50KCdoaWRlLndwYmMubW9kYWwnKTtcbiAgICB0aGlzLiRlbGVtZW50LnRyaWdnZXIoZSk7XG4gICAgaWYgKCF0aGlzLmlzU2hvd24gfHwgZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuO1xuICAgIHRoaXMuaXNTaG93biA9IGZhbHNlO1xuICAgIHRoaXMuZXNjYXBlKCk7XG4gICAgdGhpcy5yZXNpemUoKTtcbiAgICAkKGRvY3VtZW50KS5vZmYoJ2ZvY3VzaW4ud3BiYy5tb2RhbCcpO1xuICAgIHRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoJ2luJykub2ZmKCdjbGljay5kaXNtaXNzLndwYmMubW9kYWwnKS5vZmYoJ21vdXNldXAuZGlzbWlzcy53cGJjLm1vZGFsJyk7XG4gICAgdGhpcy4kZGlhbG9nLm9mZignbW91c2Vkb3duLmRpc21pc3Mud3BiYy5tb2RhbCcpO1xuICAgICQuc3VwcG9ydC50cmFuc2l0aW9uICYmIHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2ZhZGUnKSA/IHRoaXMuJGVsZW1lbnQub25lKCdic1RyYW5zaXRpb25FbmQnLCAkLnByb3h5KHRoaXMuaGlkZU1vZGFsLCB0aGlzKSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoTW9kYWwuVFJBTlNJVElPTl9EVVJBVElPTikgOiB0aGlzLmhpZGVNb2RhbCgpO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5lbmZvcmNlRm9jdXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgJChkb2N1bWVudCkub2ZmKCdmb2N1c2luLndwYmMubW9kYWwnKSAvLyBndWFyZCBhZ2FpbnN0IGluZmluaXRlIGZvY3VzIGxvb3BcbiAgICAub24oJ2ZvY3VzaW4ud3BiYy5tb2RhbCcsICQucHJveHkoZnVuY3Rpb24gKGUpIHtcbiAgICAgIGlmICh0aGlzLiRlbGVtZW50WzBdICE9PSBlLnRhcmdldCAmJiAhdGhpcy4kZWxlbWVudC5oYXMoZS50YXJnZXQpLmxlbmd0aCkge1xuICAgICAgICB0aGlzLiRlbGVtZW50LnRyaWdnZXIoJ2ZvY3VzJyk7XG4gICAgICB9XG4gICAgfSwgdGhpcykpO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5lc2NhcGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMuaXNTaG93biAmJiB0aGlzLm9wdGlvbnMua2V5Ym9hcmQpIHtcbiAgICAgIHRoaXMuJGVsZW1lbnQub24oJ2tleWRvd24uZGlzbWlzcy53cGJjLm1vZGFsJywgJC5wcm94eShmdW5jdGlvbiAoZSkge1xuICAgICAgICBlLndoaWNoID09IDI3ICYmIHRoaXMuaGlkZSgpO1xuICAgICAgfSwgdGhpcykpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNTaG93bikge1xuICAgICAgdGhpcy4kZWxlbWVudC5vZmYoJ2tleWRvd24uZGlzbWlzcy53cGJjLm1vZGFsJyk7XG4gICAgfVxuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5yZXNpemUgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMuaXNTaG93bikge1xuICAgICAgJCh3aW5kb3cpLm9uKCdyZXNpemUud3BiYy5tb2RhbCcsICQucHJveHkodGhpcy5oYW5kbGVVcGRhdGUsIHRoaXMpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgJCh3aW5kb3cpLm9mZigncmVzaXplLndwYmMubW9kYWwnKTtcbiAgICB9XG4gIH07XG5cbiAgTW9kYWwucHJvdG90eXBlLmhpZGVNb2RhbCA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgdGhpcy4kZWxlbWVudC5oaWRlKCk7XG4gICAgdGhpcy5iYWNrZHJvcChmdW5jdGlvbiAoKSB7XG4gICAgICB0aGF0LiRib2R5LnJlbW92ZUNsYXNzKCdtb2RhbC1vcGVuJyk7XG4gICAgICB0aGF0LnJlc2V0QWRqdXN0bWVudHMoKTtcbiAgICAgIHRoYXQucmVzZXRTY3JvbGxiYXIoKTtcbiAgICAgIHRoYXQuJGVsZW1lbnQudHJpZ2dlcignaGlkZGVuLndwYmMubW9kYWwnKTtcbiAgICB9KTtcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUucmVtb3ZlQmFja2Ryb3AgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy4kYmFja2Ryb3AgJiYgdGhpcy4kYmFja2Ryb3AucmVtb3ZlKCk7XG4gICAgdGhpcy4kYmFja2Ryb3AgPSBudWxsO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5iYWNrZHJvcCA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICB2YXIgYW5pbWF0ZSA9IHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2ZhZGUnKSA/ICdmYWRlJyA6ICcnO1xuXG4gICAgaWYgKHRoaXMuaXNTaG93biAmJiB0aGlzLm9wdGlvbnMuYmFja2Ryb3ApIHtcbiAgICAgIHZhciBkb0FuaW1hdGUgPSAkLnN1cHBvcnQudHJhbnNpdGlvbiAmJiBhbmltYXRlO1xuICAgICAgdGhpcy4kYmFja2Ryb3AgPSAkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKS5hZGRDbGFzcygnbW9kYWwtYmFja2Ryb3AgJyArIGFuaW1hdGUpLmFwcGVuZFRvKHRoaXMuJGJvZHkpO1xuICAgICAgdGhpcy4kZWxlbWVudC5vbignY2xpY2suZGlzbWlzcy53cGJjLm1vZGFsJywgJC5wcm94eShmdW5jdGlvbiAoZSkge1xuICAgICAgICBpZiAodGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrKSB7XG4gICAgICAgICAgdGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrID0gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGUudGFyZ2V0ICE9PSBlLmN1cnJlbnRUYXJnZXQpIHJldHVybjtcbiAgICAgICAgdGhpcy5vcHRpb25zLmJhY2tkcm9wID09ICdzdGF0aWMnID8gdGhpcy4kZWxlbWVudFswXS5mb2N1cygpIDogdGhpcy5oaWRlKCk7XG4gICAgICB9LCB0aGlzKSk7XG4gICAgICBpZiAoZG9BbmltYXRlKSB0aGlzLiRiYWNrZHJvcFswXS5vZmZzZXRXaWR0aDsgLy8gZm9yY2UgcmVmbG93XG5cbiAgICAgIHRoaXMuJGJhY2tkcm9wLmFkZENsYXNzKCdpbicpO1xuICAgICAgaWYgKCFjYWxsYmFjaykgcmV0dXJuO1xuICAgICAgZG9BbmltYXRlID8gdGhpcy4kYmFja2Ryb3Aub25lKCdic1RyYW5zaXRpb25FbmQnLCBjYWxsYmFjaykuZW11bGF0ZVRyYW5zaXRpb25FbmQoTW9kYWwuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTikgOiBjYWxsYmFjaygpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNTaG93biAmJiB0aGlzLiRiYWNrZHJvcCkge1xuICAgICAgdGhpcy4kYmFja2Ryb3AucmVtb3ZlQ2xhc3MoJ2luJyk7XG5cbiAgICAgIHZhciBjYWxsYmFja1JlbW92ZSA9IGZ1bmN0aW9uIGNhbGxiYWNrUmVtb3ZlKCkge1xuICAgICAgICB0aGF0LnJlbW92ZUJhY2tkcm9wKCk7XG4gICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKCk7XG4gICAgICB9O1xuXG4gICAgICAkLnN1cHBvcnQudHJhbnNpdGlvbiAmJiB0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCdmYWRlJykgPyB0aGlzLiRiYWNrZHJvcC5vbmUoJ2JzVHJhbnNpdGlvbkVuZCcsIGNhbGxiYWNrUmVtb3ZlKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChNb2RhbC5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OKSA6IGNhbGxiYWNrUmVtb3ZlKCk7XG4gICAgfSBlbHNlIGlmIChjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9XG4gIH07IC8vIHRoZXNlIGZvbGxvd2luZyBtZXRob2RzIGFyZSB1c2VkIHRvIGhhbmRsZSBvdmVyZmxvd2luZyBtb2RhbHNcblxuXG4gIE1vZGFsLnByb3RvdHlwZS5oYW5kbGVVcGRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5hZGp1c3REaWFsb2coKTtcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUuYWRqdXN0RGlhbG9nID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBtb2RhbElzT3ZlcmZsb3dpbmcgPSB0aGlzLiRlbGVtZW50WzBdLnNjcm9sbEhlaWdodCA+IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgdGhpcy4kZWxlbWVudC5jc3Moe1xuICAgICAgcGFkZGluZ0xlZnQ6ICF0aGlzLmJvZHlJc092ZXJmbG93aW5nICYmIG1vZGFsSXNPdmVyZmxvd2luZyA/IHRoaXMuc2Nyb2xsYmFyV2lkdGggOiAnJyxcbiAgICAgIHBhZGRpbmdSaWdodDogdGhpcy5ib2R5SXNPdmVyZmxvd2luZyAmJiAhbW9kYWxJc092ZXJmbG93aW5nID8gdGhpcy5zY3JvbGxiYXJXaWR0aCA6ICcnXG4gICAgfSk7XG4gIH07XG5cbiAgTW9kYWwucHJvdG90eXBlLnJlc2V0QWRqdXN0bWVudHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy4kZWxlbWVudC5jc3Moe1xuICAgICAgcGFkZGluZ0xlZnQ6ICcnLFxuICAgICAgcGFkZGluZ1JpZ2h0OiAnJ1xuICAgIH0pO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5jaGVja1Njcm9sbGJhciA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZnVsbFdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG5cbiAgICBpZiAoIWZ1bGxXaW5kb3dXaWR0aCkge1xuICAgICAgLy8gd29ya2Fyb3VuZCBmb3IgbWlzc2luZyB3aW5kb3cuaW5uZXJXaWR0aCBpbiBJRThcbiAgICAgIHZhciBkb2N1bWVudEVsZW1lbnRSZWN0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgZnVsbFdpbmRvd1dpZHRoID0gZG9jdW1lbnRFbGVtZW50UmVjdC5yaWdodCAtIE1hdGguYWJzKGRvY3VtZW50RWxlbWVudFJlY3QubGVmdCk7XG4gICAgfVxuXG4gICAgdGhpcy5ib2R5SXNPdmVyZmxvd2luZyA9IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggPCBmdWxsV2luZG93V2lkdGg7XG4gICAgdGhpcy5zY3JvbGxiYXJXaWR0aCA9IHRoaXMubWVhc3VyZVNjcm9sbGJhcigpO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5zZXRTY3JvbGxiYXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGJvZHlQYWQgPSBwYXJzZUludCh0aGlzLiRib2R5LmNzcygncGFkZGluZy1yaWdodCcpIHx8IDAsIDEwKTtcbiAgICB0aGlzLm9yaWdpbmFsQm9keVBhZCA9IGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0IHx8ICcnO1xuICAgIGlmICh0aGlzLmJvZHlJc092ZXJmbG93aW5nKSB0aGlzLiRib2R5LmNzcygncGFkZGluZy1yaWdodCcsIGJvZHlQYWQgKyB0aGlzLnNjcm9sbGJhcldpZHRoKTtcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUucmVzZXRTY3JvbGxiYXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy4kYm9keS5jc3MoJ3BhZGRpbmctcmlnaHQnLCB0aGlzLm9yaWdpbmFsQm9keVBhZCk7XG4gIH07XG5cbiAgTW9kYWwucHJvdG90eXBlLm1lYXN1cmVTY3JvbGxiYXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgLy8gdGh4IHdhbHNoXG4gICAgdmFyIHNjcm9sbERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHNjcm9sbERpdi5jbGFzc05hbWUgPSAnbW9kYWwtc2Nyb2xsYmFyLW1lYXN1cmUnO1xuICAgIHRoaXMuJGJvZHkuYXBwZW5kKHNjcm9sbERpdik7XG4gICAgdmFyIHNjcm9sbGJhcldpZHRoID0gc2Nyb2xsRGl2Lm9mZnNldFdpZHRoIC0gc2Nyb2xsRGl2LmNsaWVudFdpZHRoO1xuICAgIHRoaXMuJGJvZHlbMF0ucmVtb3ZlQ2hpbGQoc2Nyb2xsRGl2KTtcbiAgICByZXR1cm4gc2Nyb2xsYmFyV2lkdGg7XG4gIH07IC8vIE1PREFMIFBMVUdJTiBERUZJTklUSU9OXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09XG5cblxuICBmdW5jdGlvbiBQbHVnaW4ob3B0aW9uLCBfcmVsYXRlZFRhcmdldCkge1xuICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTtcbiAgICAgIHZhciBkYXRhID0gJHRoaXMuZGF0YSgnd3BiYy5tb2RhbCcpO1xuICAgICAgdmFyIG9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgTW9kYWwuREVGQVVMVFMsICR0aGlzLmRhdGEoKSwgX3R5cGVvZihvcHRpb24pID09ICdvYmplY3QnICYmIG9wdGlvbik7XG4gICAgICBpZiAoIWRhdGEpICR0aGlzLmRhdGEoJ3dwYmMubW9kYWwnLCBkYXRhID0gbmV3IE1vZGFsKHRoaXMsIG9wdGlvbnMpKTtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0oX3JlbGF0ZWRUYXJnZXQpO2Vsc2UgaWYgKG9wdGlvbnMuc2hvdykgZGF0YS5zaG93KF9yZWxhdGVkVGFyZ2V0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHZhciBvbGQgPSAkLmZuLndwYmNfbXlfbW9kYWw7XG4gICQuZm4ud3BiY19teV9tb2RhbCA9IFBsdWdpbjtcbiAgJC5mbi53cGJjX215X21vZGFsLkNvbnN0cnVjdG9yID0gTW9kYWw7IC8vIE1PREFMIE5PIENPTkZMSUNUXG4gIC8vID09PT09PT09PT09PT09PT09XG5cbiAgJC5mbi53cGJjX215X21vZGFsLm5vQ29uZmxpY3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgJC5mbi53cGJjX215X21vZGFsID0gb2xkO1xuICAgIHJldHVybiB0aGlzO1xuICB9OyAvLyBNT0RBTCBEQVRBLUFQSVxuICAvLyA9PT09PT09PT09PT09PVxuXG5cbiAgJChkb2N1bWVudCkub24oJ2NsaWNrLndwYmMubW9kYWwuZGF0YS1hcGknLCAnW2RhdGEtdG9nZ2xlPVwid3BiY19teV9tb2RhbFwiXScsIGZ1bmN0aW9uIChlKSB7XG4gICAgdmFyICR0aGlzID0gJCh0aGlzKTtcbiAgICB2YXIgaHJlZiA9ICR0aGlzLmF0dHIoJ2hyZWYnKTtcbiAgICB2YXIgJHRhcmdldCA9ICQoJHRoaXMuYXR0cignZGF0YS10YXJnZXQnKSB8fCBocmVmICYmIGhyZWYucmVwbGFjZSgvLiooPz0jW15cXHNdKyQpLywgJycpKTsgLy8gc3RyaXAgZm9yIGllN1xuXG4gICAgdmFyIG9wdGlvbiA9ICR0YXJnZXQuZGF0YSgnd3BiYy5tb2RhbCcpID8gJ3RvZ2dsZScgOiAkLmV4dGVuZCh7XG4gICAgICByZW1vdGU6ICEvIy8udGVzdChocmVmKSAmJiBocmVmXG4gICAgfSwgJHRhcmdldC5kYXRhKCksICR0aGlzLmRhdGEoKSk7XG4gICAgaWYgKCR0aGlzLmlzKCdhJykpIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAkdGFyZ2V0Lm9uZSgnc2hvdy53cGJjLm1vZGFsJywgZnVuY3Rpb24gKHNob3dFdmVudCkge1xuICAgICAgaWYgKHNob3dFdmVudC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuOyAvLyBvbmx5IHJlZ2lzdGVyIGZvY3VzIHJlc3RvcmVyIGlmIG1vZGFsIHdpbGwgYWN0dWFsbHkgZ2V0IHNob3duXG5cbiAgICAgICR0YXJnZXQub25lKCdoaWRkZW4ud3BiYy5tb2RhbCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJHRoaXMuaXMoJzp2aXNpYmxlJykgJiYgJHRoaXMudHJpZ2dlcignZm9jdXMnKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIFBsdWdpbi5jYWxsKCR0YXJnZXQsIG9wdGlvbiwgdGhpcyk7XG4gIH0pO1xufShqUXVlcnkpO1xuK2Z1bmN0aW9uICgkKSB7XG4gICd1c2Ugc3RyaWN0JzsgLy8gRFJPUERPV04gQ0xBU1MgREVGSU5JVElPTlxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgdmFyIGJhY2tkcm9wID0gJy5kcm9wZG93bi1iYWNrZHJvcCc7XG4gIHZhciB0b2dnbGUgPSAnW2RhdGEtdG9nZ2xlPVwid3BiY19kcm9wZG93blwiXSc7XG5cbiAgdmFyIERyb3Bkb3duID0gZnVuY3Rpb24gRHJvcGRvd24oZWxlbWVudCkge1xuICAgICQoZWxlbWVudCkub24oJ2NsaWNrLndwYmMuZHJvcGRvd24nLCB0aGlzLnRvZ2dsZSk7XG4gIH07XG5cbiAgRHJvcGRvd24uVkVSU0lPTiA9ICczLjMuNSc7XG5cbiAgZnVuY3Rpb24gZ2V0UGFyZW50KCR0aGlzKSB7XG4gICAgdmFyIHNlbGVjdG9yID0gJHRoaXMuYXR0cignZGF0YS10YXJnZXQnKTtcblxuICAgIGlmICghc2VsZWN0b3IpIHtcbiAgICAgIHNlbGVjdG9yID0gJHRoaXMuYXR0cignaHJlZicpO1xuICAgICAgc2VsZWN0b3IgPSBzZWxlY3RvciAmJiAvI1tBLVphLXpdLy50ZXN0KHNlbGVjdG9yKSAmJiBzZWxlY3Rvci5yZXBsYWNlKC8uKig/PSNbXlxcc10qJCkvLCAnJyk7IC8vIHN0cmlwIGZvciBpZTdcbiAgICB9XG5cbiAgICB2YXIgJHBhcmVudCA9IHNlbGVjdG9yICYmICQoc2VsZWN0b3IpO1xuICAgIHJldHVybiAkcGFyZW50ICYmICRwYXJlbnQubGVuZ3RoID8gJHBhcmVudCA6ICR0aGlzLnBhcmVudCgpO1xuICB9XG5cbiAgZnVuY3Rpb24gY2xlYXJNZW51cyhlKSB7XG4gICAgaWYgKGUgJiYgZS53aGljaCA9PT0gMykgcmV0dXJuO1xuICAgICQoYmFja2Ryb3ApLnJlbW92ZSgpO1xuICAgICQodG9nZ2xlKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciAkdGhpcyA9ICQodGhpcyk7XG4gICAgICB2YXIgJHBhcmVudCA9IGdldFBhcmVudCgkdGhpcyk7XG4gICAgICB2YXIgcmVsYXRlZFRhcmdldCA9IHtcbiAgICAgICAgcmVsYXRlZFRhcmdldDogdGhpc1xuICAgICAgfTtcbiAgICAgIGlmICghJHBhcmVudC5oYXNDbGFzcygnb3BlbicpKSByZXR1cm47XG4gICAgICBpZiAoZSAmJiBlLnR5cGUgPT0gJ2NsaWNrJyAmJiAvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGUudGFyZ2V0LnRhZ05hbWUpICYmICQuY29udGFpbnMoJHBhcmVudFswXSwgZS50YXJnZXQpKSByZXR1cm47XG4gICAgICAkcGFyZW50LnRyaWdnZXIoZSA9ICQuRXZlbnQoJ2hpZGUud3BiYy5kcm9wZG93bicsIHJlbGF0ZWRUYXJnZXQpKTtcbiAgICAgIGlmIChlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm47XG4gICAgICAkdGhpcy5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgICAkcGFyZW50LnJlbW92ZUNsYXNzKCdvcGVuJykudHJpZ2dlcignaGlkZGVuLndwYmMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KTtcbiAgICB9KTtcbiAgfVxuXG4gIERyb3Bkb3duLnByb3RvdHlwZS50b2dnbGUgPSBmdW5jdGlvbiAoZSkge1xuICAgIHZhciAkdGhpcyA9ICQodGhpcyk7XG4gICAgaWYgKCR0aGlzLmlzKCcuZGlzYWJsZWQsIDpkaXNhYmxlZCcpKSByZXR1cm47XG4gICAgdmFyICRwYXJlbnQgPSBnZXRQYXJlbnQoJHRoaXMpO1xuICAgIHZhciBpc0FjdGl2ZSA9ICRwYXJlbnQuaGFzQ2xhc3MoJ29wZW4nKTtcbiAgICBjbGVhck1lbnVzKCk7XG5cbiAgICBpZiAoIWlzQWN0aXZlKSB7XG4gICAgICBpZiAoJ29udG91Y2hzdGFydCcgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmICEkcGFyZW50LmNsb3Nlc3QoJy5uYXZiYXItbmF2JykubGVuZ3RoKSB7XG4gICAgICAgIC8vIGlmIG1vYmlsZSB3ZSB1c2UgYSBiYWNrZHJvcCBiZWNhdXNlIGNsaWNrIGV2ZW50cyBkb24ndCBkZWxlZ2F0ZVxuICAgICAgICAkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKS5hZGRDbGFzcygnZHJvcGRvd24tYmFja2Ryb3AnKS5pbnNlcnRBZnRlcigkKHRoaXMpKS5vbignY2xpY2snLCBjbGVhck1lbnVzKTtcbiAgICAgIH1cblxuICAgICAgdmFyIHJlbGF0ZWRUYXJnZXQgPSB7XG4gICAgICAgIHJlbGF0ZWRUYXJnZXQ6IHRoaXNcbiAgICAgIH07XG4gICAgICAkcGFyZW50LnRyaWdnZXIoZSA9ICQuRXZlbnQoJ3Nob3cud3BiYy5kcm9wZG93bicsIHJlbGF0ZWRUYXJnZXQpKTtcbiAgICAgIGlmIChlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm47XG4gICAgICAkdGhpcy50cmlnZ2VyKCdmb2N1cycpLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCAndHJ1ZScpO1xuICAgICAgJHBhcmVudC50b2dnbGVDbGFzcygnb3BlbicpLnRyaWdnZXIoJ3Nob3duLndwYmMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgRHJvcGRvd24ucHJvdG90eXBlLmtleWRvd24gPSBmdW5jdGlvbiAoZSkge1xuICAgIGlmICghLygzOHw0MHwyN3wzMikvLnRlc3QoZS53aGljaCkgfHwgL2lucHV0fHRleHRhcmVhL2kudGVzdChlLnRhcmdldC50YWdOYW1lKSkgcmV0dXJuO1xuICAgIHZhciAkdGhpcyA9ICQodGhpcyk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCR0aGlzLmlzKCcuZGlzYWJsZWQsIDpkaXNhYmxlZCcpKSByZXR1cm47XG4gICAgdmFyICRwYXJlbnQgPSBnZXRQYXJlbnQoJHRoaXMpO1xuICAgIHZhciBpc0FjdGl2ZSA9ICRwYXJlbnQuaGFzQ2xhc3MoJ29wZW4nKTtcblxuICAgIGlmICghaXNBY3RpdmUgJiYgZS53aGljaCAhPSAyNyB8fCBpc0FjdGl2ZSAmJiBlLndoaWNoID09IDI3KSB7XG4gICAgICBpZiAoZS53aGljaCA9PSAyNykgJHBhcmVudC5maW5kKHRvZ2dsZSkudHJpZ2dlcignZm9jdXMnKTtcbiAgICAgIHJldHVybiAkdGhpcy50cmlnZ2VyKCdjbGljaycpO1xuICAgIH1cblxuICAgIHZhciBkZXNjID0gJyBsaTpub3QoLmRpc2FibGVkKTp2aXNpYmxlIGEnO1xuICAgIHZhciAkaXRlbXMgPSAkcGFyZW50LmZpbmQoJy5kcm9wZG93bi1tZW51JyArIGRlc2MgKyAnLC51aV9kcm9wZG93bl9tZW51JyArIGRlc2MpO1xuICAgIGlmICghJGl0ZW1zLmxlbmd0aCkgcmV0dXJuO1xuICAgIHZhciBpbmRleCA9ICRpdGVtcy5pbmRleChlLnRhcmdldCk7XG4gICAgaWYgKGUud2hpY2ggPT0gMzggJiYgaW5kZXggPiAwKSBpbmRleC0tOyAvLyB1cFxuXG4gICAgaWYgKGUud2hpY2ggPT0gNDAgJiYgaW5kZXggPCAkaXRlbXMubGVuZ3RoIC0gMSkgaW5kZXgrKzsgLy8gZG93blxuXG4gICAgaWYgKCF+aW5kZXgpIGluZGV4ID0gMDtcbiAgICAkaXRlbXMuZXEoaW5kZXgpLnRyaWdnZXIoJ2ZvY3VzJyk7XG4gIH07IC8vIERST1BET1dOIFBMVUdJTiBERUZJTklUSU9OXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuICBmdW5jdGlvbiBQbHVnaW4ob3B0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpO1xuICAgICAgdmFyIGRhdGEgPSAkdGhpcy5kYXRhKCd3cGJjLmRyb3Bkb3duJyk7XG4gICAgICBpZiAoIWRhdGEpICR0aGlzLmRhdGEoJ3dwYmMuZHJvcGRvd24nLCBkYXRhID0gbmV3IERyb3Bkb3duKHRoaXMpKTtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0uY2FsbCgkdGhpcyk7XG4gICAgfSk7XG4gIH1cblxuICB2YXIgb2xkID0gJC5mbi53cGJjX2Ryb3Bkb3duO1xuICAkLmZuLndwYmNfZHJvcGRvd24gPSBQbHVnaW47XG4gICQuZm4ud3BiY19kcm9wZG93bi5Db25zdHJ1Y3RvciA9IERyb3Bkb3duOyAvLyBEUk9QRE9XTiBOTyBDT05GTElDVFxuICAvLyA9PT09PT09PT09PT09PT09PT09PVxuXG4gICQuZm4ud3BiY19kcm9wZG93bi5ub0NvbmZsaWN0ID0gZnVuY3Rpb24gKCkge1xuICAgICQuZm4ud3BiY19kcm9wZG93biA9IG9sZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfTsgLy8gQVBQTFkgVE8gU1RBTkRBUkQgRFJPUERPV04gRUxFTUVOVFNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4gICQoZG9jdW1lbnQpLm9uKCdjbGljay53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgY2xlYXJNZW51cykub24oJ2NsaWNrLndwYmMuZHJvcGRvd24uZGF0YS1hcGknLCAnLmRyb3Bkb3duIGZvcm0nLCBmdW5jdGlvbiAoZSkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH0pLm9uKCdjbGljay53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgdG9nZ2xlLCBEcm9wZG93bi5wcm90b3R5cGUudG9nZ2xlKS5vbigna2V5ZG93bi53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgdG9nZ2xlLCBEcm9wZG93bi5wcm90b3R5cGUua2V5ZG93bikub24oJ2tleWRvd24ud3BiYy5kcm9wZG93bi5kYXRhLWFwaScsICcuZHJvcGRvd24tbWVudScsIERyb3Bkb3duLnByb3RvdHlwZS5rZXlkb3duKS5vbigna2V5ZG93bi53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgJy51aV9kcm9wZG93bl9tZW51JywgRHJvcGRvd24ucHJvdG90eXBlLmtleWRvd24pO1xufShqUXVlcnkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJbUZ6YzJWMGN5OXNhV0p6TDNWcEwxOXpjbU12WkhKdmNHUnZkMjVmYlc5a1lXd3Vhbk1pWFN3aWJtRnRaWE1pT2xzaWFsRjFaWEo1SWl3aVJYSnliM0lpTENJa0lpd2lkbVZ5YzJsdmJpSXNJbVp1SWl3aWFuRjFaWEo1SWl3aWMzQnNhWFFpTENKTmIyUmhiQ0lzSW1Wc1pXMWxiblFpTENKdmNIUnBiMjV6SWl3aUpHSnZaSGtpTENKa2IyTjFiV1Z1ZENJc0ltSnZaSGtpTENJa1pXeGxiV1Z1ZENJc0lpUmthV0ZzYjJjaUxDSm1hVzVrSWl3aUpHSmhZMnRrY205d0lpd2lhWE5UYUc5M2JpSXNJbTl5YVdkcGJtRnNRbTlrZVZCaFpDSXNJbk5qY205c2JHSmhjbGRwWkhSb0lpd2lhV2R1YjNKbFFtRmphMlJ5YjNCRGJHbGpheUlzSW5KbGJXOTBaU0lzSW14dllXUWlMQ0p3Y205NGVTSXNJblJ5YVdkblpYSWlMQ0pXUlZKVFNVOU9JaXdpVkZKQlRsTkpWRWxQVGw5RVZWSkJWRWxQVGlJc0lrSkJRMHRFVWs5UVgxUlNRVTVUU1ZSSlQwNWZSRlZTUVZSSlQwNGlMQ0pFUlVaQlZVeFVVeUlzSW1KaFkydGtjbTl3SWl3aWEyVjVZbTloY21RaUxDSnphRzkzSWl3aWNISnZkRzkwZVhCbElpd2lkRzluWjJ4bElpd2lYM0psYkdGMFpXUlVZWEpuWlhRaUxDSm9hV1JsSWl3aWRHaGhkQ0lzSW1VaUxDSkZkbVZ1ZENJc0luSmxiR0YwWldSVVlYSm5aWFFpTENKcGMwUmxabUYxYkhSUWNtVjJaVzUwWldRaUxDSmphR1ZqYTFOamNtOXNiR0poY2lJc0luTmxkRk5qY205c2JHSmhjaUlzSW1Ga1pFTnNZWE56SWl3aVpYTmpZWEJsSWl3aWNtVnphWHBsSWl3aWIyNGlMQ0p2Ym1VaUxDSjBZWEpuWlhRaUxDSnBjeUlzSW5SeVlXNXphWFJwYjI0aUxDSnpkWEJ3YjNKMElpd2lhR0Z6UTJ4aGMzTWlMQ0p3WVhKbGJuUWlMQ0pzWlc1bmRHZ2lMQ0poY0hCbGJtUlVieUlzSW5OamNtOXNiRlJ2Y0NJc0ltRmthblZ6ZEVScFlXeHZaeUlzSW05bVpuTmxkRmRwWkhSb0lpd2laVzVtYjNKalpVWnZZM1Z6SWl3aVpXMTFiR0YwWlZSeVlXNXphWFJwYjI1RmJtUWlMQ0p3Y21WMlpXNTBSR1ZtWVhWc2RDSXNJbTltWmlJc0luSmxiVzkyWlVOc1lYTnpJaXdpYUdsa1pVMXZaR0ZzSWl3aWFHRnpJaXdpZDJocFkyZ2lMQ0ozYVc1a2IzY2lMQ0pvWVc1a2JHVlZjR1JoZEdVaUxDSnlaWE5sZEVGa2FuVnpkRzFsYm5Seklpd2ljbVZ6WlhSVFkzSnZiR3hpWVhJaUxDSnlaVzF2ZG1WQ1lXTnJaSEp2Y0NJc0luSmxiVzkyWlNJc0ltTmhiR3hpWVdOcklpd2lZVzVwYldGMFpTSXNJbVJ2UVc1cGJXRjBaU0lzSW1OeVpXRjBaVVZzWlcxbGJuUWlMQ0pqZFhKeVpXNTBWR0Z5WjJWMElpd2labTlqZFhNaUxDSmpZV3hzWW1GamExSmxiVzkyWlNJc0ltMXZaR0ZzU1hOUGRtVnlabXh2ZDJsdVp5SXNJbk5qY205c2JFaGxhV2RvZENJc0ltUnZZM1Z0Wlc1MFJXeGxiV1Z1ZENJc0ltTnNhV1Z1ZEVobGFXZG9kQ0lzSW1OemN5SXNJbkJoWkdScGJtZE1aV1owSWl3aVltOWtlVWx6VDNabGNtWnNiM2RwYm1jaUxDSndZV1JrYVc1blVtbG5hSFFpTENKbWRXeHNWMmx1Wkc5M1YybGtkR2dpTENKcGJtNWxjbGRwWkhSb0lpd2laRzlqZFcxbGJuUkZiR1Z0Wlc1MFVtVmpkQ0lzSW1kbGRFSnZkVzVrYVc1blEyeHBaVzUwVW1WamRDSXNJbkpwWjJoMElpd2lUV0YwYUNJc0ltRmljeUlzSW14bFpuUWlMQ0pqYkdsbGJuUlhhV1IwYUNJc0ltMWxZWE4xY21WVFkzSnZiR3hpWVhJaUxDSmliMlI1VUdGa0lpd2ljR0Z5YzJWSmJuUWlMQ0p6ZEhsc1pTSXNJbk5qY205c2JFUnBkaUlzSW1Oc1lYTnpUbUZ0WlNJc0ltRndjR1Z1WkNJc0luSmxiVzkyWlVOb2FXeGtJaXdpVUd4MVoybHVJaXdpYjNCMGFXOXVJaXdpWldGamFDSXNJaVIwYUdseklpd2laR0YwWVNJc0ltVjRkR1Z1WkNJc0ltOXNaQ0lzSW5kd1ltTmZiWGxmYlc5a1lXd2lMQ0pEYjI1emRISjFZM1J2Y2lJc0ltNXZRMjl1Wm14cFkzUWlMQ0pvY21WbUlpd2lZWFIwY2lJc0lpUjBZWEpuWlhRaUxDSnlaWEJzWVdObElpd2lkR1Z6ZENJc0luTm9iM2RGZG1WdWRDSXNJbU5oYkd3aUxDSkVjbTl3Wkc5M2JpSXNJbWRsZEZCaGNtVnVkQ0lzSW5ObGJHVmpkRzl5SWl3aUpIQmhjbVZ1ZENJc0ltTnNaV0Z5VFdWdWRYTWlMQ0owZVhCbElpd2lkR0ZuVG1GdFpTSXNJbU52Ym5SaGFXNXpJaXdpYVhOQlkzUnBkbVVpTENKamJHOXpaWE4wSWl3aWFXNXpaWEowUVdaMFpYSWlMQ0owYjJkbmJHVkRiR0Z6Y3lJc0ltdGxlV1J2ZDI0aUxDSnpkRzl3VUhKdmNHRm5ZWFJwYjI0aUxDSmtaWE5qSWl3aUpHbDBaVzF6SWl3aWFXNWtaWGdpTENKbGNTSXNJbmR3WW1OZlpISnZjR1J2ZDI0aVhTd2liV0Z3Y0dsdVozTWlPaUk3T3pzN1FVRkJRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEVsQlFVa3NUMEZCVDBFc1RVRkJVQ3hMUVVGclFpeFhRVUYwUWl4RlFVRnRRenRCUVVOcVF5eFJRVUZOTEVsQlFVbERMRXRCUVVvc1EwRkJWU3g1UTBGQlZpeERRVUZPTzBGQlEwUTdPMEZCUTBRc1EwRkJReXhWUVVGVlF5eERRVUZXTEVWQlFXRTdRVUZEV2pzN1FVRkRRU3hOUVVGSlF5eFBRVUZQTEVkQlFVZEVMRU5CUVVNc1EwRkJRMFVzUlVGQlJpeERRVUZMUXl4TlFVRk1MRU5CUVZsRExFdEJRVm9zUTBGQmEwSXNSMEZCYkVJc1JVRkJkVUlzUTBGQmRrSXNSVUZCTUVKQkxFdEJRVEZDTEVOQlFXZERMRWRCUVdoRExFTkJRV1E3TzBGQlEwRXNUVUZCUzBnc1QwRkJUeXhEUVVGRExFTkJRVVFzUTBGQlVDeEhRVUZoTEVOQlFXSXNTVUZCYTBKQkxFOUJRVThzUTBGQlF5eERRVUZFTEVOQlFWQXNSMEZCWVN4RFFVRm9ReXhKUVVGMVEwRXNUMEZCVHl4RFFVRkRMRU5CUVVRc1EwRkJVQ3hKUVVGakxFTkJRV1FzU1VGQmJVSkJMRTlCUVU4c1EwRkJReXhEUVVGRUxFTkJRVkFzU1VGQll5eERRVUZxUXl4SlFVRnpRMEVzVDBGQlR5eERRVUZETEVOQlFVUXNRMEZCVUN4SFFVRmhMRU5CUVRsR0xFVkJRV3RITzBGQlEyaEhMRlZCUVUwc1NVRkJTVVlzUzBGQlNpeERRVUZWTEdsRlFVRldMRU5CUVU0N1FVRkRSRHRCUVVOR0xFTkJUa0VzUTBGTlEwUXNUVUZPUkN4RFFVRkVPMEZCVVVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUjBFc1EwRkJReXhWUVVGVlJTeERRVUZXTEVWQlFXRTdRVUZEV2l4bFFVUlpMRU5CUjFvN1FVRkRRVHM3UVVGRlFTeE5RVUZKU3l4TFFVRkxMRWRCUVVjc1UwRkJVa0VzUzBGQlVTeERRVUZWUXl4UFFVRldMRVZCUVcxQ1F5eFBRVUZ1UWl4RlFVRTBRanRCUVVOMFF5eFRRVUZMUVN4UFFVRk1MRWRCUVRKQ1FTeFBRVUV6UWp0QlFVTkJMRk5CUVV0RExFdEJRVXdzUjBGQk1rSlNMRU5CUVVNc1EwRkJRMU1zVVVGQlVTeERRVUZEUXl4SlFVRldMRU5CUVRWQ08wRkJRMEVzVTBGQlMwTXNVVUZCVEN4SFFVRXlRbGdzUTBGQlF5eERRVUZEVFN4UFFVRkVMRU5CUVRWQ08wRkJRMEVzVTBGQlMwMHNUMEZCVEN4SFFVRXlRaXhMUVVGTFJDeFJRVUZNTEVOQlFXTkZMRWxCUVdRc1EwRkJiVUlzWlVGQmJrSXNRMEZCTTBJN1FVRkRRU3hUUVVGTFF5eFRRVUZNTEVkQlFUSkNMRWxCUVROQ08wRkJRMEVzVTBGQlMwTXNUMEZCVEN4SFFVRXlRaXhKUVVFelFqdEJRVU5CTEZOQlFVdERMR1ZCUVV3c1IwRkJNa0lzU1VGQk0wSTdRVUZEUVN4VFFVRkxReXhqUVVGTUxFZEJRVEpDTEVOQlFUTkNPMEZCUTBFc1UwRkJTME1zYlVKQlFVd3NSMEZCTWtJc1MwRkJNMEk3TzBGQlJVRXNVVUZCU1N4TFFVRkxXQ3hQUVVGTUxFTkJRV0ZaTEUxQlFXcENMRVZCUVhsQ08wRkJRM1pDTEZkQlFVdFNMRkZCUVV3c1EwRkRSMFVzU1VGRVNDeERRVU5STEdkQ1FVUlNMRVZCUlVkUExFbEJSa2dzUTBGRlVTeExRVUZMWWl4UFFVRk1MRU5CUVdGWkxFMUJSbkpDTEVWQlJUWkNia0lzUTBGQlF5eERRVUZEY1VJc1MwRkJSaXhEUVVGUkxGbEJRVms3UVVGRE4wTXNZVUZCUzFZc1VVRkJUQ3hEUVVGalZ5eFBRVUZrTEVOQlFYTkNMRzFDUVVGMFFqdEJRVU5FTEU5QlJqQkNMRVZCUlhoQ0xFbEJSbmRDTEVOQlJqZENPMEZCUzBRN1FVRkRSaXhIUVd4Q1JEczdRVUZ2UWtGcVFpeEZRVUZCUVN4TFFVRkxMRU5CUVVOclFpeFBRVUZPTEVkQlFXbENMRTlCUVdwQ08wRkJSVUZzUWl4RlFVRkJRU3hMUVVGTExFTkJRVU50UWl4dFFrRkJUaXhIUVVFMFFpeEhRVUUxUWp0QlFVTkJia0lzUlVGQlFVRXNTMEZCU3l4RFFVRkRiMElzTkVKQlFVNHNSMEZCY1VNc1IwRkJja003UVVGRlFYQkNMRVZCUVVGQkxFdEJRVXNzUTBGQlEzRkNMRkZCUVU0c1IwRkJhVUk3UVVGRFprTXNTVUZCUVVFc1VVRkJVU3hGUVVGRkxFbEJSRXM3UVVGRlprTXNTVUZCUVVFc1VVRkJVU3hGUVVGRkxFbEJSa3M3UVVGSFprTXNTVUZCUVVFc1NVRkJTU3hGUVVGRk8wRkJTRk1zUjBGQmFrSTdPMEZCVFVGNFFpeEZRVUZCUVN4TFFVRkxMRU5CUVVONVFpeFRRVUZPTEVOQlFXZENReXhOUVVGb1FpeEhRVUY1UWl4VlFVRlZReXhqUVVGV0xFVkJRVEJDTzBGQlEycEVMRmRCUVU4c1MwRkJTMnBDTEU5QlFVd3NSMEZCWlN4TFFVRkxhMElzU1VGQlRDeEZRVUZtTEVkQlFUWkNMRXRCUVV0S0xFbEJRVXdzUTBGQlZVY3NZMEZCVml4RFFVRndRenRCUVVORUxFZEJSa1E3TzBGQlNVRXpRaXhGUVVGQlFTeExRVUZMTEVOQlFVTjVRaXhUUVVGT0xFTkJRV2RDUkN4SlFVRm9RaXhIUVVGMVFpeFZRVUZWUnl4alFVRldMRVZCUVRCQ08wRkJReTlETEZGQlFVbEZMRWxCUVVrc1IwRkJSeXhKUVVGWU8wRkJRMEVzVVVGQlNVTXNRMEZCUXl4SFFVRk5ia01zUTBGQlF5eERRVUZEYjBNc1MwRkJSaXhEUVVGUkxHbENRVUZTTEVWQlFUSkNPMEZCUVVWRExFMUJRVUZCTEdGQlFXRXNSVUZCUlV3N1FVRkJha0lzUzBGQk0wSXNRMEZCV0R0QlFVVkJMRk5CUVV0eVFpeFJRVUZNTEVOQlFXTlhMRTlCUVdRc1EwRkJjMEpoTEVOQlFYUkNPMEZCUlVFc1VVRkJTU3hMUVVGTGNFSXNUMEZCVEN4SlFVRm5RbTlDTEVOQlFVTXNRMEZCUTBjc2EwSkJRVVlzUlVGQmNFSXNSVUZCTkVNN1FVRkZOVU1zVTBGQlMzWkNMRTlCUVV3c1IwRkJaU3hKUVVGbU8wRkJSVUVzVTBGQlMzZENMR05CUVV3N1FVRkRRU3hUUVVGTFF5eFpRVUZNTzBGQlEwRXNVMEZCUzJoRExFdEJRVXdzUTBGQlYybERMRkZCUVZnc1EwRkJiMElzV1VGQmNFSTdRVUZGUVN4VFFVRkxReXhOUVVGTU8wRkJRMEVzVTBGQlMwTXNUVUZCVER0QlFVVkJMRk5CUVV0b1F5eFJRVUZNTEVOQlFXTnBReXhGUVVGa0xFTkJRV2xDTERCQ1FVRnFRaXhGUVVFMlF5eDNRa0ZCTjBNc1JVRkJkVVUxUXl4RFFVRkRMRU5CUVVOeFFpeExRVUZHTEVOQlFWRXNTMEZCUzFrc1NVRkJZaXhGUVVGdFFpeEpRVUZ1UWl4RFFVRjJSVHRCUVVWQkxGTkJRVXR5UWl4UFFVRk1MRU5CUVdGblF5eEZRVUZpTEVOQlFXZENMRGhDUVVGb1FpeEZRVUZuUkN4WlFVRlpPMEZCUXpGRVZpeE5RVUZCUVN4SlFVRkpMRU5CUVVOMlFpeFJRVUZNTEVOQlFXTnJReXhIUVVGa0xFTkJRV3RDTERSQ1FVRnNRaXhGUVVGblJDeFZRVUZWVml4RFFVRldMRVZCUVdFN1FVRkRNMFFzV1VGQlNXNURMRU5CUVVNc1EwRkJRMjFETEVOQlFVTXNRMEZCUTFjc1RVRkJTQ3hEUVVGRUxFTkJRVmxETEVWQlFWb3NRMEZCWldJc1NVRkJTU3hEUVVGRGRrSXNVVUZCY0VJc1EwRkJTaXhGUVVGdFEzVkNMRWxCUVVrc1EwRkJRMmhDTEcxQ1FVRk1MRWRCUVRKQ0xFbEJRVE5DTzBGQlEzQkRMRTlCUmtRN1FVRkhSQ3hMUVVwRU8wRkJUVUVzVTBGQlMxTXNVVUZCVEN4RFFVRmpMRmxCUVZrN1FVRkRlRUlzVlVGQlNYRkNMRlZCUVZVc1IwRkJSMmhFTEVOQlFVTXNRMEZCUTJsRUxFOUJRVVlzUTBGQlZVUXNWVUZCVml4SlFVRjNRbVFzU1VGQlNTeERRVUZEZGtJc1VVRkJUQ3hEUVVGamRVTXNVVUZCWkN4RFFVRjFRaXhOUVVGMlFpeERRVUY2UXpzN1FVRkZRU3hWUVVGSkxFTkJRVU5vUWl4SlFVRkpMRU5CUVVOMlFpeFJRVUZNTEVOQlFXTjNReXhOUVVGa0xFZEJRWFZDUXl4TlFVRTFRaXhGUVVGdlF6dEJRVU5zUTJ4Q0xGRkJRVUZCTEVsQlFVa3NRMEZCUTNaQ0xGRkJRVXdzUTBGQll6QkRMRkZCUVdRc1EwRkJkVUp1UWl4SlFVRkpMRU5CUVVNeFFpeExRVUUxUWl4RlFVUnJReXhEUVVORE8wRkJRM0JET3p0QlFVVkVNRUlzVFVGQlFVRXNTVUZCU1N4RFFVRkRka0lzVVVGQlRDeERRVU5IYTBJc1NVRkVTQ3hIUVVWSGVVSXNVMEZHU0N4RFFVVmhMRU5CUm1JN1FVRkpRWEJDTEUxQlFVRkJMRWxCUVVrc1EwRkJRM0ZDTEZsQlFVdzdPMEZCUlVFc1ZVRkJTVkFzVlVGQlNpeEZRVUZuUWp0QlFVTmtaQ3hSUVVGQlFTeEpRVUZKTEVOQlFVTjJRaXhSUVVGTUxFTkJRV01zUTBGQlpDeEZRVUZwUWpaRExGZEJRV3BDTEVOQlJHTXNRMEZEWlR0QlFVTTVRanM3UVVGRlJIUkNMRTFCUVVGQkxFbEJRVWtzUTBGQlEzWkNMRkZCUVV3c1EwRkJZemhDTEZGQlFXUXNRMEZCZFVJc1NVRkJka0k3UVVGRlFWQXNUVUZCUVVFc1NVRkJTU3hEUVVGRGRVSXNXVUZCVER0QlFVVkJMRlZCUVVsMFFpeERRVUZETEVkQlFVZHVReXhEUVVGRExFTkJRVU52UXl4TFFVRkdMRU5CUVZFc2EwSkJRVklzUlVGQk5FSTdRVUZCUlVNc1VVRkJRVUVzWVVGQllTeEZRVUZGVER0QlFVRnFRaXhQUVVFMVFpeERRVUZTTzBGQlJVRm5RaXhOUVVGQlFTeFZRVUZWTEVkQlExSmtMRWxCUVVrc1EwRkJRM1JDTEU5QlFVd3NRMEZCWVR0QlFVRmlMRTlCUTBkcFF5eEhRVVJJTEVOQlEwOHNhVUpCUkZBc1JVRkRNRUlzV1VGQldUdEJRVU5zUTFnc1VVRkJRVUVzU1VGQlNTeERRVUZEZGtJc1VVRkJUQ3hEUVVGalZ5eFBRVUZrTEVOQlFYTkNMRTlCUVhSQ0xFVkJRU3RDUVN4UFFVRXZRaXhEUVVGMVEyRXNRMEZCZGtNN1FVRkRSQ3hQUVVoSUxFVkJTVWQxUWl4dlFrRktTQ3hEUVVsM1FuSkVMRXRCUVVzc1EwRkJRMjFDTEcxQ1FVbzVRaXhEUVVSUkxFZEJUVkpWTEVsQlFVa3NRMEZCUTNaQ0xGRkJRVXdzUTBGQlkxY3NUMEZCWkN4RFFVRnpRaXhQUVVGMFFpeEZRVUVyUWtFc1QwRkJMMElzUTBGQmRVTmhMRU5CUVhaRExFTkJUa1k3UVVGUFJDeExRVGxDUkR0QlFTdENSQ3hIUVhoRVJEczdRVUV3UkVFNVFpeEZRVUZCUVN4TFFVRkxMRU5CUVVONVFpeFRRVUZPTEVOQlFXZENSeXhKUVVGb1FpeEhRVUYxUWl4VlFVRlZSU3hEUVVGV0xFVkJRV0U3UVVGRGJFTXNVVUZCU1VFc1EwRkJTaXhGUVVGUFFTeERRVUZETEVOQlFVTjNRaXhqUVVGR08wRkJSVkI0UWl4SlFVRkJRU3hEUVVGRExFZEJRVWR1UXl4RFFVRkRMRU5CUVVOdlF5eExRVUZHTEVOQlFWRXNhVUpCUVZJc1EwRkJTanRCUVVWQkxGTkJRVXQ2UWl4UlFVRk1MRU5CUVdOWExFOUJRV1FzUTBGQmMwSmhMRU5CUVhSQ08wRkJSVUVzVVVGQlNTeERRVUZETEV0QlFVdHdRaXhQUVVGT0xFbEJRV2xDYjBJc1EwRkJReXhEUVVGRFJ5eHJRa0ZCUml4RlFVRnlRaXhGUVVFMlF6dEJRVVUzUXl4VFFVRkxka0lzVDBGQlRDeEhRVUZsTEV0QlFXWTdRVUZGUVN4VFFVRkxNa0lzVFVGQlREdEJRVU5CTEZOQlFVdERMRTFCUVV3N1FVRkZRVE5ETEVsQlFVRkJMRU5CUVVNc1EwRkJRMU1zVVVGQlJDeERRVUZFTEVOQlFWbHRSQ3hIUVVGYUxFTkJRV2RDTEc5Q1FVRm9RanRCUVVWQkxGTkJRVXRxUkN4UlFVRk1MRU5CUTBkclJDeFhRVVJJTEVOQlEyVXNTVUZFWml4RlFVVkhSQ3hIUVVaSUxFTkJSVThzTUVKQlJsQXNSVUZIUjBFc1IwRklTQ3hEUVVkUExEUkNRVWhRTzBGQlMwRXNVMEZCUzJoRUxFOUJRVXdzUTBGQllXZEVMRWRCUVdJc1EwRkJhVUlzT0VKQlFXcENPMEZCUlVFMVJDeEpRVUZCUVN4RFFVRkRMRU5CUVVOcFJDeFBRVUZHTEVOQlFWVkVMRlZCUVZZc1NVRkJkMElzUzBGQlMzSkRMRkZCUVV3c1EwRkJZM1ZETEZGQlFXUXNRMEZCZFVJc1RVRkJka0lzUTBGQmVFSXNSMEZEUlN4TFFVRkxka01zVVVGQlRDeERRVU5IYTBNc1IwRkVTQ3hEUVVOUExHbENRVVJRTEVWQlF6QkNOME1zUTBGQlF5eERRVUZEY1VJc1MwRkJSaXhEUVVGUkxFdEJRVXQ1UXl4VFFVRmlMRVZCUVhkQ0xFbEJRWGhDTEVOQlJERkNMRVZCUlVkS0xHOUNRVVpJTEVOQlJYZENja1FzUzBGQlN5eERRVUZEYlVJc2JVSkJSamxDTEVOQlJFWXNSMEZKUlN4TFFVRkxjME1zVTBGQlRDeEZRVXBHTzBGQlMwUXNSMEUxUWtRN08wRkJPRUpCZWtRc1JVRkJRVUVzUzBGQlN5eERRVUZEZVVJc1UwRkJUaXhEUVVGblFqSkNMRmxCUVdoQ0xFZEJRU3RDTEZsQlFWazdRVUZEZWtONlJDeEpRVUZCUVN4RFFVRkRMRU5CUVVOVExGRkJRVVFzUTBGQlJDeERRVU5IYlVRc1IwRkVTQ3hEUVVOUExHOUNRVVJRTEVWQlF6WkNPMEZCUkRkQ0xFdEJSVWRvUWl4RlFVWklMRU5CUlUwc2IwSkJSazRzUlVGRk5FSTFReXhEUVVGRExFTkJRVU54UWl4TFFVRkdMRU5CUVZFc1ZVRkJWV01zUTBGQlZpeEZRVUZoTzBGQlF6ZERMRlZCUVVrc1MwRkJTM2hDTEZGQlFVd3NRMEZCWXl4RFFVRmtMRTFCUVhGQ2QwSXNRMEZCUXl4RFFVRkRWeXhOUVVGMlFpeEpRVUZwUXl4RFFVRkRMRXRCUVV0dVF5eFJRVUZNTEVOQlFXTnZSQ3hIUVVGa0xFTkJRV3RDTlVJc1EwRkJReXhEUVVGRFZ5eE5RVUZ3UWl4RlFVRTBRazBzVFVGQmJFVXNSVUZCTUVVN1FVRkRlRVVzWVVGQlMzcERMRkZCUVV3c1EwRkJZMWNzVDBGQlpDeERRVUZ6UWl4UFFVRjBRanRCUVVORU8wRkJRMFlzUzBGS2VVSXNSVUZKZGtJc1NVRktkVUlzUTBGR05VSTdRVUZQUkN4SFFWSkVPenRCUVZWQmFrSXNSVUZCUVVFc1MwRkJTeXhEUVVGRGVVSXNVMEZCVGl4RFFVRm5RbGtzVFVGQmFFSXNSMEZCZVVJc1dVRkJXVHRCUVVOdVF5eFJRVUZKTEV0QlFVc3pRaXhQUVVGTUxFbEJRV2RDTEV0QlFVdFNMRTlCUVV3c1EwRkJZWEZDTEZGQlFXcERMRVZCUVRKRE8wRkJRM3BETEZkQlFVdHFRaXhSUVVGTUxFTkJRV05wUXl4RlFVRmtMRU5CUVdsQ0xEUkNRVUZxUWl4RlFVRXJRelZETEVOQlFVTXNRMEZCUTNGQ0xFdEJRVVlzUTBGQlVTeFZRVUZWWXl4RFFVRldMRVZCUVdFN1FVRkRiRVZCTEZGQlFVRkJMRU5CUVVNc1EwRkJRelpDTEV0QlFVWXNTVUZCVnl4RlFVRllMRWxCUVdsQ0xFdEJRVXN2UWl4SlFVRk1MRVZCUVdwQ08wRkJRMFFzVDBGR09FTXNSVUZGTlVNc1NVRkdORU1zUTBGQkwwTTdRVUZIUkN4TFFVcEVMRTFCU1U4c1NVRkJTU3hEUVVGRExFdEJRVXRzUWl4UFFVRldMRVZCUVcxQ08wRkJRM2hDTEZkQlFVdEtMRkZCUVV3c1EwRkJZMmxFTEVkQlFXUXNRMEZCYTBJc05FSkJRV3hDTzBGQlEwUTdRVUZEUml4SFFWSkVPenRCUVZWQmRrUXNSVUZCUVVFc1MwRkJTeXhEUVVGRGVVSXNVMEZCVGl4RFFVRm5RbUVzVFVGQmFFSXNSMEZCZVVJc1dVRkJXVHRCUVVOdVF5eFJRVUZKTEV0QlFVczFRaXhQUVVGVUxFVkJRV3RDTzBGQlEyaENaaXhOUVVGQlFTeERRVUZETEVOQlFVTnBSU3hOUVVGRUxFTkJRVVFzUTBGQlZYSkNMRVZCUVZZc1EwRkJZU3h0UWtGQllpeEZRVUZyUXpWRExFTkJRVU1zUTBGQlEzRkNMRXRCUVVZc1EwRkJVU3hMUVVGTE5rTXNXVUZCWWl4RlFVRXlRaXhKUVVFelFpeERRVUZzUXp0QlFVTkVMRXRCUmtRc1RVRkZUenRCUVVOTWJFVXNUVUZCUVVFc1EwRkJReXhEUVVGRGFVVXNUVUZCUkN4RFFVRkVMRU5CUVZWTUxFZEJRVllzUTBGQll5eHRRa0ZCWkR0QlFVTkVPMEZCUTBZc1IwRk9SRHM3UVVGUlFYWkVMRVZCUVVGQkxFdEJRVXNzUTBGQlEzbENMRk5CUVU0c1EwRkJaMEpuUXl4VFFVRm9RaXhIUVVFMFFpeFpRVUZaTzBGQlEzUkRMRkZCUVVrMVFpeEpRVUZKTEVkQlFVY3NTVUZCV0R0QlFVTkJMRk5CUVV0MlFpeFJRVUZNTEVOQlFXTnpRaXhKUVVGa08wRkJRMEVzVTBGQlMwNHNVVUZCVEN4RFFVRmpMRmxCUVZrN1FVRkRlRUpQTEUxQlFVRkJMRWxCUVVrc1EwRkJRekZDTEV0QlFVd3NRMEZCVjNGRUxGZEJRVmdzUTBGQmRVSXNXVUZCZGtJN1FVRkRRVE5DTEUxQlFVRkJMRWxCUVVrc1EwRkJRMmxETEdkQ1FVRk1PMEZCUTBGcVF5eE5RVUZCUVN4SlFVRkpMRU5CUVVOclF5eGpRVUZNTzBGQlEwRnNReXhOUVVGQlFTeEpRVUZKTEVOQlFVTjJRaXhSUVVGTUxFTkJRV05YTEU5QlFXUXNRMEZCYzBJc2JVSkJRWFJDTzBGQlEwUXNTMEZNUkR0QlFVMUVMRWRCVkVRN08wRkJWMEZxUWl4RlFVRkJRU3hMUVVGTExFTkJRVU41UWl4VFFVRk9MRU5CUVdkQ2RVTXNZMEZCYUVJc1IwRkJhVU1zV1VGQldUdEJRVU16UXl4VFFVRkxka1FzVTBGQlRDeEpRVUZyUWl4TFFVRkxRU3hUUVVGTUxFTkJRV1YzUkN4TlFVRm1MRVZCUVd4Q08wRkJRMEVzVTBGQlMzaEVMRk5CUVV3c1IwRkJhVUlzU1VGQmFrSTdRVUZEUkN4SFFVaEVPenRCUVV0QlZDeEZRVUZCUVN4TFFVRkxMRU5CUVVONVFpeFRRVUZPTEVOQlFXZENTQ3hSUVVGb1FpeEhRVUV5UWl4VlFVRlZORU1zVVVGQlZpeEZRVUZ2UWp0QlFVTTNReXhSUVVGSmNrTXNTVUZCU1N4SFFVRkhMRWxCUVZnN1FVRkRRU3hSUVVGSmMwTXNUMEZCVHl4SFFVRkhMRXRCUVVzM1JDeFJRVUZNTEVOQlFXTjFReXhSUVVGa0xFTkJRWFZDTEUxQlFYWkNMRWxCUVdsRExFMUJRV3BETEVkQlFUQkRMRVZCUVhoRU96dEJRVVZCTEZGQlFVa3NTMEZCUzI1RExFOUJRVXdzU1VGQlowSXNTMEZCUzFJc1QwRkJUQ3hEUVVGaGIwSXNVVUZCYWtNc1JVRkJNa003UVVGRGVrTXNWVUZCU1RoRExGTkJRVk1zUjBGQlIzcEZMRU5CUVVNc1EwRkJRMmxFTEU5QlFVWXNRMEZCVlVRc1ZVRkJWaXhKUVVGM1FuZENMRTlCUVhoRE8wRkJSVUVzVjBGQlN6RkVMRk5CUVV3c1IwRkJhVUprTEVOQlFVTXNRMEZCUTFNc1VVRkJVU3hEUVVGRGFVVXNZVUZCVkN4RFFVRjFRaXhMUVVGMlFpeERRVUZFTEVOQlFVUXNRMEZEWkdwRExGRkJSR01zUTBGRFRDeHZRa0ZCYjBJclFpeFBRVVJtTEVWQlJXUnVRaXhSUVVaakxFTkJSVXdzUzBGQlN6ZERMRXRCUmtFc1EwRkJha0k3UVVGSlFTeFhRVUZMUnl4UlFVRk1MRU5CUVdOcFF5eEZRVUZrTEVOQlFXbENMREJDUVVGcVFpeEZRVUUyUXpWRExFTkJRVU1zUTBGQlEzRkNMRXRCUVVZc1EwRkJVU3hWUVVGVll5eERRVUZXTEVWQlFXRTdRVUZEYUVVc1dVRkJTU3hMUVVGTGFrSXNiVUpCUVZRc1JVRkJPRUk3UVVGRE5VSXNaVUZCUzBFc2JVSkJRVXdzUjBGQk1rSXNTMEZCTTBJN1FVRkRRVHRCUVVORU96dEJRVU5FTEZsQlFVbHBRaXhEUVVGRExFTkJRVU5YTEUxQlFVWXNTMEZCWVZnc1EwRkJReXhEUVVGRGQwTXNZVUZCYmtJc1JVRkJhME03UVVGRGJFTXNZVUZCUzNCRkxFOUJRVXdzUTBGQllXOUNMRkZCUVdJc1NVRkJlVUlzVVVGQmVrSXNSMEZEU1N4TFFVRkxhRUlzVVVGQlRDeERRVUZqTEVOQlFXUXNSVUZCYVVKcFJTeExRVUZxUWl4RlFVUktMRWRCUlVrc1MwRkJTek5ETEVsQlFVd3NSVUZHU2p0QlFVZEVMRTlCVkRSRExFVkJVekZETEVsQlZEQkRMRU5CUVRkRE8wRkJWMEVzVlVGQlNYZERMRk5CUVVvc1JVRkJaU3hMUVVGTE0wUXNVMEZCVEN4RFFVRmxMRU5CUVdZc1JVRkJhMEl3UXl4WFFVRnNRaXhEUVd4Q01FSXNRMEZyUWtrN08wRkJSVGRETEZkQlFVc3hReXhUUVVGTUxFTkJRV1V5UWl4UlFVRm1MRU5CUVhkQ0xFbEJRWGhDTzBGQlJVRXNWVUZCU1N4RFFVRkRPRUlzVVVGQlRDeEZRVUZsTzBGQlJXWkZMRTFCUVVGQkxGTkJRVk1zUjBGRFVDeExRVUZMTTBRc1UwRkJUQ3hEUVVOSEswSXNSMEZFU0N4RFFVTlBMR2xDUVVSUUxFVkJRekJDTUVJc1VVRkVNVUlzUlVGRlIySXNiMEpCUmtnc1EwRkZkMEp5UkN4TFFVRkxMRU5CUVVOdlFpdzBRa0ZHT1VJc1EwRkVUeXhIUVVsUU9FTXNVVUZCVVN4RlFVcFdPMEZCVFVRc1MwRTVRa1FzVFVFNFFrOHNTVUZCU1N4RFFVRkRMRXRCUVV0NFJDeFBRVUZPTEVsQlFXbENMRXRCUVV0RUxGTkJRVEZDTEVWQlFYRkRPMEZCUXpGRExGZEJRVXRCTEZOQlFVd3NRMEZCWlN0RExGZEJRV1lzUTBGQk1rSXNTVUZCTTBJN08wRkJSVUVzVlVGQlNXZENMR05CUVdNc1IwRkJSeXhUUVVGcVFrRXNZMEZCYVVJc1IwRkJXVHRCUVVNdlFqTkRMRkZCUVVGQkxFbEJRVWtzUTBGQlEyMURMR05CUVV3N1FVRkRRVVVzVVVGQlFVRXNVVUZCVVN4SlFVRkpRU3hSUVVGUkxFVkJRWEJDTzBGQlEwUXNUMEZJUkRzN1FVRkpRWFpGTEUxQlFVRkJMRU5CUVVNc1EwRkJRMmxFTEU5QlFVWXNRMEZCVlVRc1ZVRkJWaXhKUVVGM1FpeExRVUZMY2tNc1VVRkJUQ3hEUVVGamRVTXNVVUZCWkN4RFFVRjFRaXhOUVVGMlFpeERRVUY0UWl4SFFVTkZMRXRCUVV0d1F5eFRRVUZNTEVOQlEwY3JRaXhIUVVSSUxFTkJRMDhzYVVKQlJGQXNSVUZETUVKblF5eGpRVVF4UWl4RlFVVkhia0lzYjBKQlJrZ3NRMEZGZDBKeVJDeExRVUZMTEVOQlFVTnZRaXcwUWtGR09VSXNRMEZFUml4SFFVbEZiMFFzWTBGQll5eEZRVXBvUWp0QlFVMUVMRXRCWWswc1RVRmhRU3hKUVVGSlRpeFJRVUZLTEVWQlFXTTdRVUZEYmtKQkxFMUJRVUZCTEZGQlFWRTdRVUZEVkR0QlFVTkdMRWRCYkVSRUxFTkJOMHRaTEVOQmFVOWFPenM3UVVGRlFXeEZMRVZCUVVGQkxFdEJRVXNzUTBGQlEzbENMRk5CUVU0c1EwRkJaMEp2UXl4WlFVRm9RaXhIUVVFclFpeFpRVUZaTzBGQlEzcERMRk5CUVV0WUxGbEJRVXc3UVVGRFJDeEhRVVpFT3p0QlFVbEJiRVFzUlVGQlFVRXNTMEZCU3l4RFFVRkRlVUlzVTBGQlRpeERRVUZuUW5sQ0xGbEJRV2hDTEVkQlFTdENMRmxCUVZrN1FVRkRla01zVVVGQlNYVkNMR3RDUVVGclFpeEhRVUZITEV0QlFVdHVSU3hSUVVGTUxFTkJRV01zUTBGQlpDeEZRVUZwUW05RkxGbEJRV3BDTEVkQlFXZERkRVVzVVVGQlVTeERRVUZEZFVVc1pVRkJWQ3hEUVVGNVFrTXNXVUZCYkVZN1FVRkZRU3hUUVVGTGRFVXNVVUZCVEN4RFFVRmpkVVVzUjBGQlpDeERRVUZyUWp0QlFVTm9Ra01zVFVGQlFVRXNWMEZCVnl4RlFVRkhMRU5CUVVNc1MwRkJTME1zYVVKQlFVNHNTVUZCTWtKT0xHdENRVUV6UWl4SFFVRm5SQ3hMUVVGTE4wUXNZMEZCY2tRc1IwRkJjMFVzUlVGRWNFVTdRVUZGYUVKdlJTeE5RVUZCUVN4WlFVRlpMRVZCUVVVc1MwRkJTMFFzYVVKQlFVd3NTVUZCTUVJc1EwRkJRMDRzYTBKQlFUTkNMRWRCUVdkRUxFdEJRVXMzUkN4alFVRnlSQ3hIUVVGelJUdEJRVVp3UlN4TFFVRnNRanRCUVVsRUxFZEJVRVE3TzBGQlUwRmFMRVZCUVVGQkxFdEJRVXNzUTBGQlEzbENMRk5CUVU0c1EwRkJaMEp4UXl4blFrRkJhRUlzUjBGQmJVTXNXVUZCV1R0QlFVTTNReXhUUVVGTGVFUXNVVUZCVEN4RFFVRmpkVVVzUjBGQlpDeERRVUZyUWp0QlFVTm9Ra01zVFVGQlFVRXNWMEZCVnl4RlFVRkZMRVZCUkVjN1FVRkZhRUpGTEUxQlFVRkJMRmxCUVZrc1JVRkJSVHRCUVVaRkxFdEJRV3hDTzBGQlNVUXNSMEZNUkRzN1FVRlBRV2hHTEVWQlFVRkJMRXRCUVVzc1EwRkJRM2xDTEZOQlFVNHNRMEZCWjBKVExHTkJRV2hDTEVkQlFXbERMRmxCUVZrN1FVRkRNME1zVVVGQlNTdERMR1ZCUVdVc1IwRkJSM0pDTEUxQlFVMHNRMEZCUTNOQ0xGVkJRVGRDT3p0QlFVTkJMRkZCUVVrc1EwRkJRMFFzWlVGQlRDeEZRVUZ6UWp0QlFVRkZPMEZCUTNSQ0xGVkJRVWxGTEcxQ1FVRnRRaXhIUVVGSEwwVXNVVUZCVVN4RFFVRkRkVVVzWlVGQlZDeERRVUY1UWxNc2NVSkJRWHBDTEVWQlFURkNPMEZCUTBGSUxFMUJRVUZCTEdWQlFXVXNSMEZCUjBVc2JVSkJRVzFDTEVOQlFVTkZMRXRCUVhCQ0xFZEJRVFJDUXl4SlFVRkpMRU5CUVVORExFZEJRVXdzUTBGQlUwb3NiVUpCUVcxQ0xFTkJRVU5MTEVsQlFUZENMRU5CUVRsRE8wRkJRMFE3TzBGQlEwUXNVMEZCUzFRc2FVSkJRVXdzUjBGQmVVSXpSU3hSUVVGUkxFTkJRVU5ETEVsQlFWUXNRMEZCWTI5R0xGZEJRV1FzUjBGQk5FSlNMR1ZCUVhKRU8wRkJRMEVzVTBGQlMzSkZMR05CUVV3c1IwRkJjMElzUzBGQlN6aEZMR2RDUVVGTUxFVkJRWFJDTzBGQlEwUXNSMEZTUkRzN1FVRlZRVEZHTEVWQlFVRkJMRXRCUVVzc1EwRkJRM2xDTEZOQlFVNHNRMEZCWjBKVkxGbEJRV2hDTEVkQlFTdENMRmxCUVZrN1FVRkRla01zVVVGQlNYZEVMRTlCUVU4c1IwRkJSME1zVVVGQlVTeERRVUZGTEV0QlFVdDZSaXhMUVVGTUxFTkJRVmN3UlN4SFFVRllMRU5CUVdVc1pVRkJaaXhMUVVGdFF5eERRVUZ5UXl4RlFVRjVReXhGUVVGNlF5eERRVUYwUWp0QlFVTkJMRk5CUVV0c1JTeGxRVUZNTEVkQlFYVkNVQ3hSUVVGUkxFTkJRVU5ETEVsQlFWUXNRMEZCWTNkR0xFdEJRV1FzUTBGQmIwSmlMRmxCUVhCQ0xFbEJRVzlETEVWQlFUTkVPMEZCUTBFc1VVRkJTU3hMUVVGTFJDeHBRa0ZCVkN4RlFVRTBRaXhMUVVGTE5VVXNTMEZCVEN4RFFVRlhNRVVzUjBGQldDeERRVUZsTEdWQlFXWXNSVUZCWjBOakxFOUJRVThzUjBGQlJ5eExRVUZMTDBVc1kwRkJMME03UVVGRE4wSXNSMEZLUkRzN1FVRk5RVm9zUlVGQlFVRXNTMEZCU3l4RFFVRkRlVUlzVTBGQlRpeERRVUZuUW5ORExHTkJRV2hDTEVkQlFXbERMRmxCUVZrN1FVRkRNME1zVTBGQlN6VkVMRXRCUVV3c1EwRkJWekJGTEVkQlFWZ3NRMEZCWlN4bFFVRm1MRVZCUVdkRExFdEJRVXRzUlN4bFFVRnlRenRCUVVORUxFZEJSa1E3TzBGQlNVRllMRVZCUVVGQkxFdEJRVXNzUTBGQlEzbENMRk5CUVU0c1EwRkJaMEpwUlN4blFrRkJhRUlzUjBGQmJVTXNXVUZCV1R0QlFVRkZPMEZCUXk5RExGRkJRVWxKTEZOQlFWTXNSMEZCUnpGR0xGRkJRVkVzUTBGQlEybEZMR0ZCUVZRc1EwRkJkVUlzUzBGQmRrSXNRMEZCYUVJN1FVRkRRWGxDTEVsQlFVRkJMRk5CUVZNc1EwRkJRME1zVTBGQlZpeEhRVUZ6UWl4NVFrRkJkRUk3UVVGRFFTeFRRVUZMTlVZc1MwRkJUQ3hEUVVGWE5rWXNUVUZCV0N4RFFVRnJRa1lzVTBGQmJFSTdRVUZEUVN4UlFVRkpiRVlzWTBGQll5eEhRVUZIYTBZc1UwRkJVeXhEUVVGRE0wTXNWMEZCVml4SFFVRjNRakpETEZOQlFWTXNRMEZCUTB3c1YwRkJka1E3UVVGRFFTeFRRVUZMZEVZc1MwRkJUQ3hEUVVGWExFTkJRVmdzUlVGQll6aEdMRmRCUVdRc1EwRkJNRUpJTEZOQlFURkNPMEZCUTBFc1YwRkJUMnhHTEdOQlFWQTdRVUZEUkN4SFFWQkVMRU5CTTFGWkxFTkJjVkphTzBGQlEwRTdPenRCUVVWQkxGZEJRVk56Uml4TlFVRlVMRU5CUVdkQ1F5eE5RVUZvUWl4RlFVRjNRbmhGTEdOQlFYaENMRVZCUVhkRE8wRkJRM1JETEZkQlFVOHNTMEZCUzNsRkxFbEJRVXdzUTBGQlZTeFpRVUZaTzBGQlF6TkNMRlZCUVVsRExFdEJRVXNzUjBGQlN6RkhMRU5CUVVNc1EwRkJReXhKUVVGRUxFTkJRV1k3UVVGRFFTeFZRVUZKTWtjc1NVRkJTU3hIUVVGTlJDeExRVUZMTEVOQlFVTkRMRWxCUVU0c1EwRkJWeXhaUVVGWUxFTkJRV1E3UVVGRFFTeFZRVUZKY0Vjc1QwRkJUeXhIUVVGSFVDeERRVUZETEVOQlFVTTBSeXhOUVVGR0xFTkJRVk1zUlVGQlZDeEZRVUZoZGtjc1MwRkJTeXhEUVVGRGNVSXNVVUZCYmtJc1JVRkJOa0puUml4TFFVRkxMRU5CUVVORExFbEJRVTRzUlVGQk4wSXNSVUZCTWtNc1VVRkJUMGdzVFVGQlVDeExRVUZwUWl4UlFVRnFRaXhKUVVFMlFrRXNUVUZCZUVVc1EwRkJaRHRCUVVWQkxGVkJRVWtzUTBGQlEwY3NTVUZCVEN4RlFVRlhSQ3hMUVVGTExFTkJRVU5ETEVsQlFVNHNRMEZCVnl4WlFVRllMRVZCUVRCQ1FTeEpRVUZKTEVkQlFVY3NTVUZCU1hSSExFdEJRVW9zUTBGQlZTeEpRVUZXTEVWQlFXZENSU3hQUVVGb1FpeERRVUZxUXp0QlFVTllMRlZCUVVrc1QwRkJUMmxITEUxQlFWQXNTVUZCYVVJc1VVRkJja0lzUlVGQkswSkhMRWxCUVVrc1EwRkJRMGdzVFVGQlJDeERRVUZLTEVOQlFXRjRSU3hqUVVGaUxFVkJRUzlDTEV0QlEwc3NTVUZCU1hwQ0xFOUJRVThzUTBGQlEzTkNMRWxCUVZvc1JVRkJhMEk0UlN4SlFVRkpMRU5CUVVNNVJTeEpRVUZNTEVOQlFWVkhMR05CUVZZN1FVRkRlRUlzUzBGU1RTeERRVUZRTzBGQlUwUTdPMEZCUlVRc1RVRkJTVFpGTEVkQlFVY3NSMEZCUnpkSExFTkJRVU1zUTBGQlEwVXNSVUZCUml4RFFVRkxORWNzWVVGQlpqdEJRVVZCT1Vjc1JVRkJRVUVzUTBGQlF5eERRVUZEUlN4RlFVRkdMRU5CUVVzMFJ5eGhRVUZNTEVkQlFXbERVQ3hOUVVGcVF6dEJRVU5CZGtjc1JVRkJRVUVzUTBGQlF5eERRVUZEUlN4RlFVRkdMRU5CUVVzMFJ5eGhRVUZNTEVOQlFXMUNReXhYUVVGdVFpeEhRVUZwUXpGSExFdEJRV3BETEVOQmRsTlpMRU5CTUZOYU8wRkJRMEU3TzBGQlJVRk1MRVZCUVVGQkxFTkJRVU1zUTBGQlEwVXNSVUZCUml4RFFVRkxORWNzWVVGQlRDeERRVUZ0UWtVc1ZVRkJia0lzUjBGQlowTXNXVUZCV1R0QlFVTXhRMmhJTEVsQlFVRkJMRU5CUVVNc1EwRkJRMFVzUlVGQlJpeERRVUZMTkVjc1lVRkJUQ3hIUVVGeFFrUXNSMEZCY2tJN1FVRkRRU3hYUVVGUExFbEJRVkE3UVVGRFJDeEhRVWhFTEVOQk4xTlpMRU5CYlZSYU8wRkJRMEU3T3p0QlFVVkJOMGNzUlVGQlFVRXNRMEZCUXl4RFFVRkRVeXhSUVVGRUxFTkJRVVFzUTBGQldXMURMRVZCUVZvc1EwRkJaU3d5UWtGQlppeEZRVUUwUXl3clFrRkJOVU1zUlVGQk5rVXNWVUZCVlZRc1EwRkJWaXhGUVVGaE8wRkJRM2hHTEZGQlFVbDFSU3hMUVVGTExFZEJRVXN4Unl4RFFVRkRMRU5CUVVNc1NVRkJSQ3hEUVVGbU8wRkJRMEVzVVVGQlNXbElMRWxCUVVrc1IwRkJUVkFzUzBGQlN5eERRVUZEVVN4SlFVRk9MRU5CUVZjc1RVRkJXQ3hEUVVGa08wRkJRMEVzVVVGQlNVTXNUMEZCVHl4SFFVRkhia2dzUTBGQlF5eERRVUZETUVjc1MwRkJTeXhEUVVGRFVTeEpRVUZPTEVOQlFWY3NZVUZCV0N4TFFVRTRRa1FzU1VGQlNTeEpRVUZKUVN4SlFVRkpMRU5CUVVOSExFOUJRVXdzUTBGQllTeG5Ra0ZCWWl4RlFVRXJRaXhGUVVFdlFpeERRVUYyUXl4RFFVRm1MRU5CU0hkR0xFTkJSMGM3TzBGQlF6TkdMRkZCUVVsYUxFMUJRVTBzUjBGQlNWY3NUMEZCVHl4RFFVRkRVaXhKUVVGU0xFTkJRV0VzV1VGQllpeEpRVUUyUWl4UlFVRTNRaXhIUVVGM1F6TkhMRU5CUVVNc1EwRkJRelJITEUxQlFVWXNRMEZCVXp0QlFVRkZla1lzVFVGQlFVRXNUVUZCVFN4RlFVRkZMRU5CUVVNc1NVRkJTV3RITEVsQlFVb3NRMEZCVTBvc1NVRkJWQ3hEUVVGRUxFbEJRVzFDUVR0QlFVRTNRaXhMUVVGVUxFVkJRVGhEUlN4UFFVRlBMRU5CUVVOU0xFbEJRVklzUlVGQk9VTXNSVUZCT0VSRUxFdEJRVXNzUTBGQlEwTXNTVUZCVGl4RlFVRTVSQ3hEUVVGMFJEdEJRVVZCTEZGQlFVbEVMRXRCUVVzc1EwRkJRek5FTEVWQlFVNHNRMEZCVXl4SFFVRlVMRU5CUVVvc1JVRkJiVUphTEVOQlFVTXNRMEZCUTNkQ0xHTkJRVVk3UVVGRmJrSjNSQ3hKUVVGQlFTeFBRVUZQTEVOQlFVTjBSU3hIUVVGU0xFTkJRVmtzYVVKQlFWb3NSVUZCSzBJc1ZVRkJWWGxGTEZOQlFWWXNSVUZCY1VJN1FVRkRiRVFzVlVGQlNVRXNVMEZCVXl4RFFVRkRhRVlzYTBKQlFWWXNSVUZCU2l4RlFVRnZReXhQUVVSakxFTkJRMUE3TzBGQlF6TkROa1VzVFVGQlFVRXNUMEZCVHl4RFFVRkRkRVVzUjBGQlVpeERRVUZaTEcxQ1FVRmFMRVZCUVdsRExGbEJRVms3UVVGRE0wTTJSQ3hSUVVGQlFTeExRVUZMTEVOQlFVTXpSQ3hGUVVGT0xFTkJRVk1zVlVGQlZDeExRVUYzUWpKRUxFdEJRVXNzUTBGQlEzQkdMRTlCUVU0c1EwRkJZeXhQUVVGa0xFTkJRWGhDTzBGQlEwUXNUMEZHUkR0QlFVZEVMRXRCVEVRN1FVRk5RV2xHTEVsQlFVRkJMRTFCUVUwc1EwRkJRMmRDTEVsQlFWQXNRMEZCV1Vvc1QwRkJXaXhGUVVGeFFsZ3NUVUZCY2tJc1JVRkJOa0lzU1VGQk4wSTdRVUZEUkN4SFFXWkVPMEZCYVVKRUxFTkJkbFZCTEVOQmRWVkRNVWNzVFVGMlZVUXNRMEZCUkR0QlFUQlZRU3hEUVVGRExGVkJRVlZGTEVOQlFWWXNSVUZCWVR0QlFVTmFMR1ZCUkZrc1EwRkhXanRCUVVOQk96dEJRVVZCTEUxQlFVa3lRaXhSUVVGUkxFZEJRVWNzYjBKQlFXWTdRVUZEUVN4TlFVRkpTU3hOUVVGTkxFZEJRVXNzSzBKQlFXWTdPMEZCUTBFc1RVRkJTWGxHTEZGQlFWRXNSMEZCUnl4VFFVRllRU3hSUVVGWExFTkJRVlZzU0N4UFFVRldMRVZCUVcxQ08wRkJRMmhEVGl4SlFVRkJRU3hEUVVGRExFTkJRVU5OTEU5QlFVUXNRMEZCUkN4RFFVRlhjME1zUlVGQldDeERRVUZqTEhGQ1FVRmtMRVZCUVhGRExFdEJRVXRpTEUxQlFURkRPMEZCUTBRc1IwRkdSRHM3UVVGSlFYbEdMRVZCUVVGQkxGRkJRVkVzUTBGQlEycEhMRTlCUVZRc1IwRkJiVUlzVDBGQmJrSTdPMEZCUlVFc1YwRkJVMnRITEZOQlFWUXNRMEZCYlVKbUxFdEJRVzVDTEVWQlFUQkNPMEZCUTNoQ0xGRkJRVWxuUWl4UlFVRlJMRWRCUVVkb1FpeExRVUZMTEVOQlFVTlJMRWxCUVU0c1EwRkJWeXhoUVVGWUxFTkJRV1k3TzBGQlJVRXNVVUZCU1N4RFFVRkRVU3hSUVVGTUxFVkJRV1U3UVVGRFlrRXNUVUZCUVVFc1VVRkJVU3hIUVVGSGFFSXNTMEZCU3l4RFFVRkRVU3hKUVVGT0xFTkJRVmNzVFVGQldDeERRVUZZTzBGQlEwRlJMRTFCUVVGQkxGRkJRVkVzUjBGQlIwRXNVVUZCVVN4SlFVRkpMRmxCUVZsTUxFbEJRVm9zUTBGQmFVSkxMRkZCUVdwQ0xFTkJRVm9zU1VGQk1FTkJMRkZCUVZFc1EwRkJRMDRzVDBGQlZDeERRVUZwUWl4blFrRkJha0lzUlVGQmJVTXNSVUZCYmtNc1EwRkJja1FzUTBGR1lTeERRVVVyUlR0QlFVTTNSanM3UVVGRlJDeFJRVUZKVHl4UFFVRlBMRWRCUVVkRUxGRkJRVkVzU1VGQlNURklMRU5CUVVNc1EwRkJRekJJTEZGQlFVUXNRMEZCTTBJN1FVRkZRU3hYUVVGUFF5eFBRVUZQTEVsQlFVbEJMRTlCUVU4c1EwRkJRM1pGTEUxQlFXNUNMRWRCUVRSQ2RVVXNUMEZCTlVJc1IwRkJjME5xUWl4TFFVRkxMRU5CUVVOMlJDeE5RVUZPTEVWQlFUZERPMEZCUTBRN08wRkJSVVFzVjBGQlUzbEZMRlZCUVZRc1EwRkJiMEo2Uml4RFFVRndRaXhGUVVGMVFqdEJRVU55UWl4UlFVRkpRU3hEUVVGRExFbEJRVWxCTEVOQlFVTXNRMEZCUXpaQ0xFdEJRVVlzUzBGQldTeERRVUZ5UWl4RlFVRjNRanRCUVVONFFtaEZMRWxCUVVGQkxFTkJRVU1zUTBGQlF6SkNMRkZCUVVRc1EwRkJSQ3hEUVVGWk1rTXNUVUZCV2p0QlFVTkJkRVVzU1VGQlFVRXNRMEZCUXl4RFFVRkRLMElzVFVGQlJDeERRVUZFTEVOQlFWVXdSU3hKUVVGV0xFTkJRV1VzV1VGQldUdEJRVU42UWl4VlFVRkpReXhMUVVGTExFZEJRVmN4Unl4RFFVRkRMRU5CUVVNc1NVRkJSQ3hEUVVGeVFqdEJRVU5CTEZWQlFVa3lTQ3hQUVVGUExFZEJRVk5HTEZOQlFWTXNRMEZCUTJZc1MwRkJSQ3hEUVVFM1FqdEJRVU5CTEZWQlFVbHlSU3hoUVVGaExFZEJRVWM3UVVGQlJVRXNVVUZCUVVFc1lVRkJZU3hGUVVGRk8wRkJRV3BDTEU5QlFYQkNPMEZCUlVFc1ZVRkJTU3hEUVVGRGMwWXNUMEZCVHl4RFFVRkRla1VzVVVGQlVpeERRVUZwUWl4TlFVRnFRaXhEUVVGTUxFVkJRU3RDTzBGQlJTOUNMRlZCUVVsbUxFTkJRVU1zU1VGQlNVRXNRMEZCUXl4RFFVRkRNRVlzU1VGQlJpeEpRVUZWTEU5QlFXWXNTVUZCTUVJc2EwSkJRV3RDVWl4SlFVRnNRaXhEUVVGMVFteEdMRU5CUVVNc1EwRkJRMWNzVFVGQlJpeERRVUZUWjBZc1QwRkJhRU1zUTBGQk1VSXNTVUZCYzBVNVNDeERRVUZETEVOQlFVTXJTQ3hSUVVGR0xFTkJRVmRLTEU5QlFVOHNRMEZCUXl4RFFVRkVMRU5CUVd4Q0xFVkJRWFZDZUVZc1EwRkJReXhEUVVGRFZ5eE5RVUY2UWl4RFFVRXhSU3hGUVVFMFJ6dEJRVVUxUnpaRkxFMUJRVUZCTEU5QlFVOHNRMEZCUTNKSExFOUJRVklzUTBGQlowSmhMRU5CUVVNc1IwRkJSMjVETEVOQlFVTXNRMEZCUTI5RExFdEJRVVlzUTBGQlVTeHZRa0ZCVWl4RlFVRTRRa01zWVVGQk9VSXNRMEZCY0VJN1FVRkZRU3hWUVVGSlJpeERRVUZETEVOQlFVTkhMR3RDUVVGR0xFVkJRVW9zUlVGQk5FSTdRVUZGTlVKdlJTeE5RVUZCUVN4TFFVRkxMRU5CUVVOUkxFbEJRVTRzUTBGQlZ5eGxRVUZZTEVWQlFUUkNMRTlCUVRWQ08wRkJRMEZUTEUxQlFVRkJMRTlCUVU4c1EwRkJRemxFTEZkQlFWSXNRMEZCYjBJc1RVRkJjRUlzUlVGQk5FSjJReXhQUVVFMVFpeERRVUZ2UXl4elFrRkJjRU1zUlVGQk5FUmxMR0ZCUVRWRU8wRkJRMFFzUzBGbVJEdEJRV2RDUkRzN1FVRkZSRzFHTEVWQlFVRkJMRkZCUVZFc1EwRkJRekZHTEZOQlFWUXNRMEZCYlVKRExFMUJRVzVDTEVkQlFUUkNMRlZCUVZWSkxFTkJRVllzUlVGQllUdEJRVU4yUXl4UlFVRkpkVVVzUzBGQlN5eEhRVUZITVVjc1EwRkJReXhEUVVGRExFbEJRVVFzUTBGQllqdEJRVVZCTEZGQlFVa3dSeXhMUVVGTExFTkJRVU16UkN4RlFVRk9MRU5CUVZNc2MwSkJRVlFzUTBGQlNpeEZRVUZ6UXp0QlFVVjBReXhSUVVGSk5FVXNUMEZCVHl4SFFVRkpSaXhUUVVGVExFTkJRVU5tTEV0QlFVUXNRMEZCZUVJN1FVRkRRU3hSUVVGSmMwSXNVVUZCVVN4SFFVRkhUQ3hQUVVGUExFTkJRVU42UlN4UlFVRlNMRU5CUVdsQ0xFMUJRV3BDTEVOQlFXWTdRVUZGUVRCRkxFbEJRVUZCTEZWQlFWVTdPMEZCUlZZc1VVRkJTU3hEUVVGRFNTeFJRVUZNTEVWQlFXVTdRVUZEWWl4VlFVRkpMR3RDUVVGclFuWklMRkZCUVZFc1EwRkJRM1ZGTEdWQlFUTkNMRWxCUVRoRExFTkJRVU15UXl4UFFVRlBMRU5CUVVOTkxFOUJRVklzUTBGQlowSXNZVUZCYUVJc1JVRkJLMEkzUlN4TlFVRnNSaXhGUVVFd1JqdEJRVU40Ump0QlFVTkJjRVFzVVVGQlFVRXNRMEZCUXl4RFFVRkRVeXhSUVVGUkxFTkJRVU5wUlN4aFFVRlVMRU5CUVhWQ0xFdEJRWFpDTEVOQlFVUXNRMEZCUkN4RFFVTkhha01zVVVGRVNDeERRVU5aTEcxQ1FVUmFMRVZCUlVkNVJpeFhRVVpJTEVOQlJXVnNTU3hEUVVGRExFTkJRVU1zU1VGQlJDeERRVVpvUWl4RlFVZEhORU1zUlVGSVNDeERRVWROTEU5QlNFNHNSVUZIWldkR0xGVkJTR1k3UVVGSlJEczdRVUZGUkN4VlFVRkpka1lzWVVGQllTeEhRVUZITzBGQlFVVkJMRkZCUVVGQkxHRkJRV0VzUlVGQlJUdEJRVUZxUWl4UFFVRndRanRCUVVOQmMwWXNUVUZCUVVFc1QwRkJUeXhEUVVGRGNrY3NUMEZCVWl4RFFVRm5RbUVzUTBGQlF5eEhRVUZIYmtNc1EwRkJReXhEUVVGRGIwTXNTMEZCUml4RFFVRlJMRzlDUVVGU0xFVkJRVGhDUXl4aFFVRTVRaXhEUVVGd1FqdEJRVVZCTEZWQlFVbEdMRU5CUVVNc1EwRkJRMGNzYTBKQlFVWXNSVUZCU2l4RlFVRTBRanRCUVVVMVFtOUZMRTFCUVVGQkxFdEJRVXNzUTBGRFJuQkdMRTlCUkVnc1EwRkRWeXhQUVVSWUxFVkJSVWMwUml4SlFVWklMRU5CUlZFc1pVRkdVaXhGUVVWNVFpeE5RVVo2UWp0QlFVbEJVeXhOUVVGQlFTeFBRVUZQTEVOQlEwcFJMRmRCUkVnc1EwRkRaU3hOUVVSbUxFVkJSVWMzUnl4UFFVWklMRU5CUlZjc2NVSkJSbGdzUlVGRmEwTmxMR0ZCUm14RE8wRkJSMFE3TzBGQlJVUXNWMEZCVHl4TFFVRlFPMEZCUTBRc1IwRnNRMFE3TzBGQmIwTkJiVVlzUlVGQlFVRXNVVUZCVVN4RFFVRkRNVVlzVTBGQlZDeERRVUZ0UW5OSExFOUJRVzVDTEVkQlFUWkNMRlZCUVZWcVJ5eERRVUZXTEVWQlFXRTdRVUZEZUVNc1VVRkJTU3hEUVVGRExHZENRVUZuUW10R0xFbEJRV2hDTEVOQlFYRkNiRVlzUTBGQlF5eERRVUZETmtJc1MwRkJka0lzUTBGQlJDeEpRVUZyUXl4clFrRkJhMEp4UkN4SlFVRnNRaXhEUVVGMVFteEdMRU5CUVVNc1EwRkJRMWNzVFVGQlJpeERRVUZUWjBZc1QwRkJhRU1zUTBGQmRFTXNSVUZCWjBZN1FVRkZhRVlzVVVGQlNYQkNMRXRCUVVzc1IwRkJSekZITEVOQlFVTXNRMEZCUXl4SlFVRkVMRU5CUVdJN1FVRkZRVzFETEVsQlFVRkJMRU5CUVVNc1EwRkJRM2RDTEdOQlFVWTdRVUZEUVhoQ0xFbEJRVUZCTEVOQlFVTXNRMEZCUTJ0SExHVkJRVVk3UVVGRlFTeFJRVUZKTTBJc1MwRkJTeXhEUVVGRE0wUXNSVUZCVGl4RFFVRlRMSE5DUVVGVUxFTkJRVW9zUlVGQmMwTTdRVUZGZEVNc1VVRkJTVFJGTEU5QlFVOHNSMEZCU1VZc1UwRkJVeXhEUVVGRFppeExRVUZFTEVOQlFYaENPMEZCUTBFc1VVRkJTWE5DTEZGQlFWRXNSMEZCUjB3c1QwRkJUeXhEUVVGRGVrVXNVVUZCVWl4RFFVRnBRaXhOUVVGcVFpeERRVUZtT3p0QlFVVkJMRkZCUVVrc1EwRkJRemhGTEZGQlFVUXNTVUZCWVRkR0xFTkJRVU1zUTBGQlF6WkNMRXRCUVVZc1NVRkJWeXhGUVVGNFFpeEpRVUU0UW1kRkxGRkJRVkVzU1VGQlNUZEdMRU5CUVVNc1EwRkJRelpDTEV0QlFVWXNTVUZCVnl4RlFVRjZSQ3hGUVVFMlJEdEJRVU16UkN4VlFVRkpOMElzUTBGQlF5eERRVUZETmtJc1MwRkJSaXhKUVVGWExFVkJRV1lzUlVGQmJVSXlSQ3hQUVVGUExFTkJRVU01Unl4SlFVRlNMRU5CUVdGclFpeE5RVUZpTEVWQlFYRkNWQ3hQUVVGeVFpeERRVUUyUWl4UFFVRTNRanRCUVVOdVFpeGhRVUZQYjBZc1MwRkJTeXhEUVVGRGNFWXNUMEZCVGl4RFFVRmpMRTlCUVdRc1EwRkJVRHRCUVVORU96dEJRVVZFTEZGQlFVbG5TQ3hKUVVGSkxFZEJRVWNzT0VKQlFWZzdRVUZEUVN4UlFVRkpReXhOUVVGTkxFZEJRVWRhTEU5QlFVOHNRMEZCUXpsSExFbEJRVklzUTBGQllTeHRRa0ZCYlVKNVNDeEpRVUZ1UWl4SFFVRXdRaXh2UWtGQk1VSXNSMEZCYVVSQkxFbEJRVGxFTEVOQlFXSTdRVUZGUVN4UlFVRkpMRU5CUVVORExFMUJRVTBzUTBGQlEyNUdMRTFCUVZvc1JVRkJiMEk3UVVGRmNFSXNVVUZCU1c5R0xFdEJRVXNzUjBGQlIwUXNUVUZCVFN4RFFVRkRReXhMUVVGUUxFTkJRV0Z5Unl4RFFVRkRMRU5CUVVOWExFMUJRV1lzUTBGQldqdEJRVVZCTEZGQlFVbFlMRU5CUVVNc1EwRkJRelpDTEV0QlFVWXNTVUZCVnl4RlFVRllMRWxCUVdsQ2QwVXNTMEZCU3l4SFFVRkhMRU5CUVRkQ0xFVkJRV2RFUVN4TFFVRkxMRWRCZWtKaUxFTkJlVUozUWpzN1FVRkRhRVVzVVVGQlNYSkhMRU5CUVVNc1EwRkJRelpDTEV0QlFVWXNTVUZCVnl4RlFVRllMRWxCUVdsQ2QwVXNTMEZCU3l4SFFVRkhSQ3hOUVVGTkxFTkJRVU51Uml4TlFVRlFMRWRCUVdkQ0xFTkJRVGRETEVWQlFXZEViMFlzUzBGQlN5eEhRVEZDWWl4RFFUQkNkMEk3TzBGQlEyaEZMRkZCUVVrc1EwRkJReXhEUVVGRFFTeExRVUZPTEVWQlFXZEVRU3hMUVVGTExFZEJRVWNzUTBGQlVqdEJRVVZvUkVRc1NVRkJRVUVzVFVGQlRTeERRVUZEUlN4RlFVRlFMRU5CUVZWRUxFdEJRVllzUlVGQmFVSnNTQ3hQUVVGcVFpeERRVUY1UWl4UFFVRjZRanRCUVVORUxFZEJPVUpFTEVOQmNFWlpMRU5CY1VoYU8wRkJRMEU3T3p0QlFVVkJMRmRCUVZOcFJpeE5RVUZVTEVOQlFXZENReXhOUVVGb1FpeEZRVUYzUWp0QlFVTjBRaXhYUVVGUExFdEJRVXRETEVsQlFVd3NRMEZCVlN4WlFVRlpPMEZCUXpOQ0xGVkJRVWxETEV0QlFVc3NSMEZCUnpGSExFTkJRVU1zUTBGQlF5eEpRVUZFTEVOQlFXSTdRVUZEUVN4VlFVRkpNa2NzU1VGQlNTeEhRVUZKUkN4TFFVRkxMRU5CUVVORExFbEJRVTRzUTBGQlZ5eGxRVUZZTEVOQlFWbzdRVUZGUVN4VlFVRkpMRU5CUVVOQkxFbEJRVXdzUlVGQlYwUXNTMEZCU3l4RFFVRkRReXhKUVVGT0xFTkJRVmNzWlVGQldDeEZRVUUyUWtFc1NVRkJTU3hIUVVGSExFbEJRVWxoTEZGQlFVb3NRMEZCWVN4SlFVRmlMRU5CUVhCRE8wRkJRMWdzVlVGQlNTeFBRVUZQYUVJc1RVRkJVQ3hKUVVGcFFpeFJRVUZ5UWl4RlFVRXJRa2NzU1VGQlNTeERRVUZEU0N4TlFVRkVMRU5CUVVvc1EwRkJZV1VzU1VGQllpeERRVUZyUW1Jc1MwRkJiRUk3UVVGRGFFTXNTMEZPVFN4RFFVRlFPMEZCVDBRN08wRkJSVVFzVFVGQlNVY3NSMEZCUnl4SFFVRkhOMGNzUTBGQlF5eERRVUZEUlN4RlFVRkdMRU5CUVV0M1NTeGhRVUZtTzBGQlJVRXhTU3hGUVVGQlFTeERRVUZETEVOQlFVTkZMRVZCUVVZc1EwRkJTM2RKTEdGQlFVd3NSMEZCYVVOdVF5eE5RVUZxUXp0QlFVTkJka2NzUlVGQlFVRXNRMEZCUXl4RFFVRkRSU3hGUVVGR0xFTkJRVXQzU1N4aFFVRk1MRU5CUVcxQ00wSXNWMEZCYmtJc1IwRkJhVU5UTEZGQlFXcERMRU5CY2tsWkxFTkJkMGxhTzBGQlEwRTdPMEZCUlVGNFNDeEZRVUZCUVN4RFFVRkRMRU5CUVVORkxFVkJRVVlzUTBGQlMzZEpMR0ZCUVV3c1EwRkJiVUl4UWl4VlFVRnVRaXhIUVVGblF5eFpRVUZaTzBGQlF6RkRhRWdzU1VGQlFVRXNRMEZCUXl4RFFVRkRSU3hGUVVGR0xFTkJRVXQzU1N4aFFVRk1MRWRCUVhGQ04wSXNSMEZCY2tJN1FVRkRRU3hYUVVGUExFbEJRVkE3UVVGRFJDeEhRVWhFTEVOQk0wbFpMRU5CYVVwYU8wRkJRMEU3T3p0QlFVVkJOMGNzUlVGQlFVRXNRMEZCUXl4RFFVRkRVeXhSUVVGRUxFTkJRVVFzUTBGRFIyMURMRVZCUkVnc1EwRkRUU3c0UWtGRVRpeEZRVU56UTJkR0xGVkJSSFJETEVWQlJVZG9SaXhGUVVaSUxFTkJSVTBzT0VKQlJrNHNSVUZGYzBNc1owSkJSblJETEVWQlJYZEVMRlZCUVZWVUxFTkJRVllzUlVGQllUdEJRVUZGUVN4SlFVRkJRU3hEUVVGRExFTkJRVU5yUnl4bFFVRkdPMEZCUVhGQ0xFZEJSalZHTEVWQlIwZDZSaXhGUVVoSUxFTkJSMDBzT0VKQlNFNHNSVUZIYzBOaUxFMUJTSFJETEVWQlJ6aERlVVlzVVVGQlVTeERRVUZETVVZc1UwRkJWQ3hEUVVGdFFrTXNUVUZJYWtVc1JVRkpSMkVzUlVGS1NDeERRVWxOTEdkRFFVcE9MRVZCU1hkRFlpeE5RVXA0UXl4RlFVbG5SSGxHTEZGQlFWRXNRMEZCUXpGR0xGTkJRVlFzUTBGQmJVSnpSeXhQUVVwdVJTeEZRVXRIZUVZc1JVRk1TQ3hEUVV0TkxHZERRVXhPTEVWQlMzZERMR2RDUVV4NFF5eEZRVXN3UkRSRkxGRkJRVkVzUTBGQlF6RkdMRk5CUVZRc1EwRkJiVUp6Unl4UFFVdzNSU3hGUVUxSGVFWXNSVUZPU0N4RFFVMU5MR2REUVU1T0xFVkJUWGRETEcxQ1FVNTRReXhGUVUwMlJEUkZMRkZCUVZFc1EwRkJRekZHTEZOQlFWUXNRMEZCYlVKelJ5eFBRVTVvUmp0QlFWRkVMRU5CTlVwQkxFTkJORXBEZEVrc1RVRTFTa1FzUTBGQlJDSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxSVZ4eVhHNGdLaUJIWlc1bGNtRjBaV1FnZFhOcGJtY2dkR2hsSUVKdmIzUnpkSEpoY0NCRGRYTjBiMjFwZW1WeUlDaG9kSFJ3T2k4dloyVjBZbTl2ZEhOMGNtRndMbU52YlM5amRYTjBiMjFwZW1VdlAybGtQV1kwWWpSak9XTmlPRFZrWmpjMU4yTmhNRGhqS1Z4eVhHNGdLaUJEYjI1bWFXY2djMkYyWldRZ2RHOGdZMjl1Wm1sbkxtcHpiMjRnWVc1a0lHaDBkSEJ6T2k4dloybHpkQzVuYVhSb2RXSXVZMjl0TDJZMFlqUmpPV05pT0RWa1pqYzFOMk5oTURoalhISmNiaUFxTDF4eVhHNXBaaUFvZEhsd1pXOW1JR3BSZFdWeWVTQTlQVDBnSjNWdVpHVm1hVzVsWkNjcElIdGNjbHh1SUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjBKdmIzUnpkSEpoY0Z4Y0ozTWdTbUYyWVZOamNtbHdkQ0J5WlhGMWFYSmxjeUJxVVhWbGNua25LVnh5WEc1OVhISmNiaXRtZFc1amRHbHZiaUFvSkNrZ2UxeHlYRzRnSUNkMWMyVWdjM1J5YVdOMEp6dGNjbHh1SUNCMllYSWdkbVZ5YzJsdmJpQTlJQ1F1Wm00dWFuRjFaWEo1TG5Od2JHbDBLQ2NnSnlsYk1GMHVjM0JzYVhRb0p5NG5LVnh5WEc0Z0lHbG1JQ2dvZG1WeWMybHZibHN3WFNBOElESWdKaVlnZG1WeWMybHZibHN4WFNBOElEa3BJSHg4SUNoMlpYSnphVzl1V3pCZElEMDlJREVnSmlZZ2RtVnljMmx2YmxzeFhTQTlQU0E1SUNZbUlIWmxjbk5wYjI1Yk1sMGdQQ0F4S1NrZ2UxeHlYRzRnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkQ2IyOTBjM1J5WVhCY1hDZHpJRXBoZG1GVFkzSnBjSFFnY21WeGRXbHlaWE1nYWxGMVpYSjVJSFpsY25OcGIyNGdNUzQ1TGpFZ2IzSWdhR2xuYUdWeUp5bGNjbHh1SUNCOVhISmNibjBvYWxGMVpYSjVLVHRjY2x4dVhISmNiaThxSUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFZ4eVhHNGdLaUJDYjI5MGMzUnlZWEE2SUcxdlpHRnNMbXB6SUhZekxqTXVOVnh5WEc0Z0tpQm9kSFJ3T2k4dloyVjBZbTl2ZEhOMGNtRndMbU52YlM5cVlYWmhjMk55YVhCMEx5TnRiMlJoYkhOY2NseHVJQ29nUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5WEhKY2JpQXFJRU52Y0hseWFXZG9kQ0F5TURFeExUSXdNVFVnVkhkcGRIUmxjaXdnU1c1akxseHlYRzRnS2lCTWFXTmxibk5sWkNCMWJtUmxjaUJOU1ZRZ0tHaDBkSEJ6T2k4dloybDBhSFZpTG1OdmJTOTBkMkp6TDJKdmIzUnpkSEpoY0M5aWJHOWlMMjFoYzNSbGNpOU1TVU5GVGxORktWeHlYRzRnS2lBOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwZ0tpOWNjbHh1WEhKY2JseHlYRzRyWm5WdVkzUnBiMjRnS0NRcElIdGNjbHh1SUNBbmRYTmxJSE4wY21samRDYzdYSEpjYmx4eVhHNGdJQzh2SUUxUFJFRk1JRU5NUVZOVElFUkZSa2xPU1ZSSlQwNWNjbHh1SUNBdkx5QTlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5WEhKY2JseHlYRzRnSUhaaGNpQk5iMlJoYkNBOUlHWjFibU4wYVc5dUlDaGxiR1Z0Wlc1MExDQnZjSFJwYjI1ektTQjdYSEpjYmlBZ0lDQjBhR2x6TG05d2RHbHZibk1nSUNBZ0lDQWdJQ0FnSUNBZ1BTQnZjSFJwYjI1elhISmNiaUFnSUNCMGFHbHpMaVJpYjJSNUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnUFNBa0tHUnZZM1Z0Wlc1MExtSnZaSGtwWEhKY2JpQWdJQ0IwYUdsekxpUmxiR1Z0Wlc1MElDQWdJQ0FnSUNBZ0lDQWdQU0FrS0dWc1pXMWxiblFwWEhKY2JpQWdJQ0IwYUdsekxpUmthV0ZzYjJjZ0lDQWdJQ0FnSUNBZ0lDQWdQU0IwYUdsekxpUmxiR1Z0Wlc1MExtWnBibVFvSnk1dGIyUmhiQzFrYVdGc2IyY25LVnh5WEc0Z0lDQWdkR2hwY3k0a1ltRmphMlJ5YjNBZ0lDQWdJQ0FnSUNBZ0lEMGdiblZzYkZ4eVhHNGdJQ0FnZEdocGN5NXBjMU5vYjNkdUlDQWdJQ0FnSUNBZ0lDQWdJRDBnYm5Wc2JGeHlYRzRnSUNBZ2RHaHBjeTV2Y21sbmFXNWhiRUp2WkhsUVlXUWdJQ0FnSUQwZ2JuVnNiRnh5WEc0Z0lDQWdkR2hwY3k1elkzSnZiR3hpWVhKWGFXUjBhQ0FnSUNBZ0lEMGdNRnh5WEc0Z0lDQWdkR2hwY3k1cFoyNXZjbVZDWVdOclpISnZjRU5zYVdOcklEMGdabUZzYzJWY2NseHVYSEpjYmlBZ0lDQnBaaUFvZEdocGN5NXZjSFJwYjI1ekxuSmxiVzkwWlNrZ2UxeHlYRzRnSUNBZ0lDQjBhR2x6TGlSbGJHVnRaVzUwWEhKY2JpQWdJQ0FnSUNBZ0xtWnBibVFvSnk1dGIyUmhiQzFqYjI1MFpXNTBKeWxjY2x4dUlDQWdJQ0FnSUNBdWJHOWhaQ2gwYUdsekxtOXdkR2x2Ym5NdWNtVnRiM1JsTENBa0xuQnliM2g1S0daMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVKR1ZzWlcxbGJuUXVkSEpwWjJkbGNpZ25iRzloWkdWa0xuZHdZbU11Ylc5a1lXd25LVnh5WEc0Z0lDQWdJQ0FnSUgwc0lIUm9hWE1wS1Z4eVhHNGdJQ0FnZlZ4eVhHNGdJSDFjY2x4dVhISmNiaUFnVFc5a1lXd3VWa1ZTVTBsUFRpQWdQU0FuTXk0ekxqVW5YSEpjYmx4eVhHNGdJRTF2WkdGc0xsUlNRVTVUU1ZSSlQwNWZSRlZTUVZSSlQwNGdQU0F6TURCY2NseHVJQ0JOYjJSaGJDNUNRVU5MUkZKUFVGOVVVa0ZPVTBsVVNVOU9YMFJWVWtGVVNVOU9JRDBnTVRVd1hISmNibHh5WEc0Z0lFMXZaR0ZzTGtSRlJrRlZURlJUSUQwZ2UxeHlYRzRnSUNBZ1ltRmphMlJ5YjNBNklIUnlkV1VzWEhKY2JpQWdJQ0JyWlhsaWIyRnlaRG9nZEhKMVpTeGNjbHh1SUNBZ0lITm9iM2M2SUhSeWRXVmNjbHh1SUNCOVhISmNibHh5WEc0Z0lFMXZaR0ZzTG5CeWIzUnZkSGx3WlM1MGIyZG5iR1VnUFNCbWRXNWpkR2x2YmlBb1gzSmxiR0YwWldSVVlYSm5aWFFwSUh0Y2NseHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpVMmh2ZDI0Z1B5QjBhR2x6TG1ocFpHVW9LU0E2SUhSb2FYTXVjMmh2ZHloZmNtVnNZWFJsWkZSaGNtZGxkQ2xjY2x4dUlDQjlYSEpjYmx4eVhHNGdJRTF2WkdGc0xuQnliM1J2ZEhsd1pTNXphRzkzSUQwZ1puVnVZM1JwYjI0Z0tGOXlaV3hoZEdWa1ZHRnlaMlYwS1NCN1hISmNiaUFnSUNCMllYSWdkR2hoZENBOUlIUm9hWE5jY2x4dUlDQWdJSFpoY2lCbElDQWdJRDBnSkM1RmRtVnVkQ2duYzJodmR5NTNjR0pqTG0xdlpHRnNKeXdnZXlCeVpXeGhkR1ZrVkdGeVoyVjBPaUJmY21Wc1lYUmxaRlJoY21kbGRDQjlLVnh5WEc1Y2NseHVJQ0FnSUhSb2FYTXVKR1ZzWlcxbGJuUXVkSEpwWjJkbGNpaGxLVnh5WEc1Y2NseHVJQ0FnSUdsbUlDaDBhR2x6TG1selUyaHZkMjRnZkh3Z1pTNXBjMFJsWm1GMWJIUlFjbVYyWlc1MFpXUW9LU2tnY21WMGRYSnVYSEpjYmx4eVhHNGdJQ0FnZEdocGN5NXBjMU5vYjNkdUlEMGdkSEoxWlZ4eVhHNWNjbHh1SUNBZ0lIUm9hWE11WTJobFkydFRZM0p2Ykd4aVlYSW9LVnh5WEc0Z0lDQWdkR2hwY3k1elpYUlRZM0p2Ykd4aVlYSW9LVnh5WEc0Z0lDQWdkR2hwY3k0a1ltOWtlUzVoWkdSRGJHRnpjeWduYlc5a1lXd3RiM0JsYmljcFhISmNibHh5WEc0Z0lDQWdkR2hwY3k1bGMyTmhjR1VvS1Z4eVhHNGdJQ0FnZEdocGN5NXlaWE5wZW1Vb0tWeHlYRzVjY2x4dUlDQWdJSFJvYVhNdUpHVnNaVzFsYm5RdWIyNG9KMk5zYVdOckxtUnBjMjFwYzNNdWQzQmlZeTV0YjJSaGJDY3NJQ2RiWkdGMFlTMWthWE50YVhOelBWd2liVzlrWVd4Y0lsMG5MQ0FrTG5CeWIzaDVLSFJvYVhNdWFHbGtaU3dnZEdocGN5a3BYSEpjYmx4eVhHNGdJQ0FnZEdocGN5NGtaR2xoYkc5bkxtOXVLQ2R0YjNWelpXUnZkMjR1WkdsemJXbHpjeTUzY0dKakxtMXZaR0ZzSnl3Z1puVnVZM1JwYjI0Z0tDa2dlMXh5WEc0Z0lDQWdJQ0IwYUdGMExpUmxiR1Z0Wlc1MExtOXVaU2duYlc5MWMyVjFjQzVrYVhOdGFYTnpMbmR3WW1NdWJXOWtZV3duTENCbWRXNWpkR2x2YmlBb1pTa2dlMXh5WEc0Z0lDQWdJQ0FnSUdsbUlDZ2tLR1V1ZEdGeVoyVjBLUzVwY3loMGFHRjBMaVJsYkdWdFpXNTBLU2tnZEdoaGRDNXBaMjV2Y21WQ1lXTnJaSEp2Y0VOc2FXTnJJRDBnZEhKMVpWeHlYRzRnSUNBZ0lDQjlLVnh5WEc0Z0lDQWdmU2xjY2x4dVhISmNiaUFnSUNCMGFHbHpMbUpoWTJ0a2NtOXdLR1oxYm1OMGFXOXVJQ2dwSUh0Y2NseHVJQ0FnSUNBZ2RtRnlJSFJ5WVc1emFYUnBiMjRnUFNBa0xuTjFjSEJ2Y25RdWRISmhibk5wZEdsdmJpQW1KaUIwYUdGMExpUmxiR1Z0Wlc1MExtaGhjME5zWVhOektDZG1ZV1JsSnlsY2NseHVYSEpjYmlBZ0lDQWdJR2xtSUNnaGRHaGhkQzRrWld4bGJXVnVkQzV3WVhKbGJuUW9LUzVzWlc1bmRHZ3BJSHRjY2x4dUlDQWdJQ0FnSUNCMGFHRjBMaVJsYkdWdFpXNTBMbUZ3Y0dWdVpGUnZLSFJvWVhRdUpHSnZaSGtwSUM4dklHUnZiaWQwSUcxdmRtVWdiVzlrWVd4eklHUnZiU0J3YjNOcGRHbHZibHh5WEc0Z0lDQWdJQ0I5WEhKY2JseHlYRzRnSUNBZ0lDQjBhR0YwTGlSbGJHVnRaVzUwWEhKY2JpQWdJQ0FnSUNBZ0xuTm9iM2NvS1Z4eVhHNGdJQ0FnSUNBZ0lDNXpZM0p2Ykd4VWIzQW9NQ2xjY2x4dVhISmNiaUFnSUNBZ0lIUm9ZWFF1WVdScWRYTjBSR2xoYkc5bktDbGNjbHh1WEhKY2JpQWdJQ0FnSUdsbUlDaDBjbUZ1YzJsMGFXOXVLU0I3WEhKY2JpQWdJQ0FnSUNBZ2RHaGhkQzRrWld4bGJXVnVkRnN3WFM1dlptWnpaWFJYYVdSMGFDQXZMeUJtYjNKalpTQnlaV1pzYjNkY2NseHVJQ0FnSUNBZ2ZWeHlYRzVjY2x4dUlDQWdJQ0FnZEdoaGRDNGtaV3hsYldWdWRDNWhaR1JEYkdGemN5Z25hVzRuS1Z4eVhHNWNjbHh1SUNBZ0lDQWdkR2hoZEM1bGJtWnZjbU5sUm05amRYTW9LVnh5WEc1Y2NseHVJQ0FnSUNBZ2RtRnlJR1VnUFNBa0xrVjJaVzUwS0NkemFHOTNiaTUzY0dKakxtMXZaR0ZzSnl3Z2V5QnlaV3hoZEdWa1ZHRnlaMlYwT2lCZmNtVnNZWFJsWkZSaGNtZGxkQ0I5S1Z4eVhHNWNjbHh1SUNBZ0lDQWdkSEpoYm5OcGRHbHZiaUEvWEhKY2JpQWdJQ0FnSUNBZ2RHaGhkQzRrWkdsaGJHOW5JQzh2SUhkaGFYUWdabTl5SUcxdlpHRnNJSFJ2SUhOc2FXUmxJR2x1WEhKY2JpQWdJQ0FnSUNBZ0lDQXViMjVsS0NkaWMxUnlZVzV6YVhScGIyNUZibVFuTENCbWRXNWpkR2x2YmlBb0tTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9ZWFF1SkdWc1pXMWxiblF1ZEhKcFoyZGxjaWduWm05amRYTW5LUzUwY21sbloyVnlLR1VwWEhKY2JpQWdJQ0FnSUNBZ0lDQjlLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0xtVnRkV3hoZEdWVWNtRnVjMmwwYVc5dVJXNWtLRTF2WkdGc0xsUlNRVTVUU1ZSSlQwNWZSRlZTUVZSSlQwNHBJRHBjY2x4dUlDQWdJQ0FnSUNCMGFHRjBMaVJsYkdWdFpXNTBMblJ5YVdkblpYSW9KMlp2WTNWekp5a3VkSEpwWjJkbGNpaGxLVnh5WEc0Z0lDQWdmU2xjY2x4dUlDQjlYSEpjYmx4eVhHNGdJRTF2WkdGc0xuQnliM1J2ZEhsd1pTNW9hV1JsSUQwZ1puVnVZM1JwYjI0Z0tHVXBJSHRjY2x4dUlDQWdJR2xtSUNobEtTQmxMbkJ5WlhabGJuUkVaV1poZFd4MEtDbGNjbHh1WEhKY2JpQWdJQ0JsSUQwZ0pDNUZkbVZ1ZENnbmFHbGtaUzUzY0dKakxtMXZaR0ZzSnlsY2NseHVYSEpjYmlBZ0lDQjBhR2x6TGlSbGJHVnRaVzUwTG5SeWFXZG5aWElvWlNsY2NseHVYSEpjYmlBZ0lDQnBaaUFvSVhSb2FYTXVhWE5UYUc5M2JpQjhmQ0JsTG1selJHVm1ZWFZzZEZCeVpYWmxiblJsWkNncEtTQnlaWFIxY201Y2NseHVYSEpjYmlBZ0lDQjBhR2x6TG1selUyaHZkMjRnUFNCbVlXeHpaVnh5WEc1Y2NseHVJQ0FnSUhSb2FYTXVaWE5qWVhCbEtDbGNjbHh1SUNBZ0lIUm9hWE11Y21WemFYcGxLQ2xjY2x4dVhISmNiaUFnSUNBa0tHUnZZM1Z0Wlc1MEtTNXZabVlvSjJadlkzVnphVzR1ZDNCaVl5NXRiMlJoYkNjcFhISmNibHh5WEc0Z0lDQWdkR2hwY3k0a1pXeGxiV1Z1ZEZ4eVhHNGdJQ0FnSUNBdWNtVnRiM1psUTJ4aGMzTW9KMmx1SnlsY2NseHVJQ0FnSUNBZ0xtOW1aaWduWTJ4cFkyc3VaR2x6YldsemN5NTNjR0pqTG0xdlpHRnNKeWxjY2x4dUlDQWdJQ0FnTG05bVppZ25iVzkxYzJWMWNDNWthWE50YVhOekxuZHdZbU11Ylc5a1lXd25LVnh5WEc1Y2NseHVJQ0FnSUhSb2FYTXVKR1JwWVd4dlp5NXZabVlvSjIxdmRYTmxaRzkzYmk1a2FYTnRhWE56TG5kd1ltTXViVzlrWVd3bktWeHlYRzVjY2x4dUlDQWdJQ1F1YzNWd2NHOXlkQzUwY21GdWMybDBhVzl1SUNZbUlIUm9hWE11SkdWc1pXMWxiblF1YUdGelEyeGhjM01vSjJaaFpHVW5LU0EvWEhKY2JpQWdJQ0FnSUhSb2FYTXVKR1ZzWlcxbGJuUmNjbHh1SUNBZ0lDQWdJQ0F1YjI1bEtDZGljMVJ5WVc1emFYUnBiMjVGYm1RbkxDQWtMbkJ5YjNoNUtIUm9hWE11YUdsa1pVMXZaR0ZzTENCMGFHbHpLU2xjY2x4dUlDQWdJQ0FnSUNBdVpXMTFiR0YwWlZSeVlXNXphWFJwYjI1RmJtUW9UVzlrWVd3dVZGSkJUbE5KVkVsUFRsOUVWVkpCVkVsUFRpa2dPbHh5WEc0Z0lDQWdJQ0IwYUdsekxtaHBaR1ZOYjJSaGJDZ3BYSEpjYmlBZ2ZWeHlYRzVjY2x4dUlDQk5iMlJoYkM1d2NtOTBiM1I1Y0dVdVpXNW1iM0pqWlVadlkzVnpJRDBnWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ0pDaGtiMk4xYldWdWRDbGNjbHh1SUNBZ0lDQWdMbTltWmlnblptOWpkWE5wYmk1M2NHSmpMbTF2WkdGc0p5a2dMeThnWjNWaGNtUWdZV2RoYVc1emRDQnBibVpwYm1sMFpTQm1iMk4xY3lCc2IyOXdYSEpjYmlBZ0lDQWdJQzV2YmlnblptOWpkWE5wYmk1M2NHSmpMbTF2WkdGc0p5d2dKQzV3Y205NGVTaG1kVzVqZEdsdmJpQW9aU2tnZTF4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxpUmxiR1Z0Wlc1MFd6QmRJQ0U5UFNCbExuUmhjbWRsZENBbUppQWhkR2hwY3k0a1pXeGxiV1Z1ZEM1b1lYTW9aUzUwWVhKblpYUXBMbXhsYm1kMGFDa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTRrWld4bGJXVnVkQzUwY21sbloyVnlLQ2RtYjJOMWN5Y3BYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNCOUxDQjBhR2x6S1NsY2NseHVJQ0I5WEhKY2JseHlYRzRnSUUxdlpHRnNMbkJ5YjNSdmRIbHdaUzVsYzJOaGNHVWdQU0JtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNCcFppQW9kR2hwY3k1cGMxTm9iM2R1SUNZbUlIUm9hWE11YjNCMGFXOXVjeTVyWlhsaWIyRnlaQ2tnZTF4eVhHNGdJQ0FnSUNCMGFHbHpMaVJsYkdWdFpXNTBMbTl1S0NkclpYbGtiM2R1TG1ScGMyMXBjM011ZDNCaVl5NXRiMlJoYkNjc0lDUXVjSEp2ZUhrb1puVnVZM1JwYjI0Z0tHVXBJSHRjY2x4dUlDQWdJQ0FnSUNCbExuZG9hV05vSUQwOUlESTNJQ1ltSUhSb2FYTXVhR2xrWlNncFhISmNiaUFnSUNBZ0lIMHNJSFJvYVhNcEtWeHlYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDZ2hkR2hwY3k1cGMxTm9iM2R1S1NCN1hISmNiaUFnSUNBZ0lIUm9hWE11SkdWc1pXMWxiblF1YjJabUtDZHJaWGxrYjNkdUxtUnBjMjFwYzNNdWQzQmlZeTV0YjJSaGJDY3BYSEpjYmlBZ0lDQjlYSEpjYmlBZ2ZWeHlYRzVjY2x4dUlDQk5iMlJoYkM1d2NtOTBiM1I1Y0dVdWNtVnphWHBsSUQwZ1puVnVZM1JwYjI0Z0tDa2dlMXh5WEc0Z0lDQWdhV1lnS0hSb2FYTXVhWE5UYUc5M2Jpa2dlMXh5WEc0Z0lDQWdJQ0FrS0hkcGJtUnZkeWt1YjI0b0ozSmxjMmw2WlM1M2NHSmpMbTF2WkdGc0p5d2dKQzV3Y205NGVTaDBhR2x6TG1oaGJtUnNaVlZ3WkdGMFpTd2dkR2hwY3lrcFhISmNiaUFnSUNCOUlHVnNjMlVnZTF4eVhHNGdJQ0FnSUNBa0tIZHBibVJ2ZHlrdWIyWm1LQ2R5WlhOcGVtVXVkM0JpWXk1dGIyUmhiQ2NwWEhKY2JpQWdJQ0I5WEhKY2JpQWdmVnh5WEc1Y2NseHVJQ0JOYjJSaGJDNXdjbTkwYjNSNWNHVXVhR2xrWlUxdlpHRnNJRDBnWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ2RtRnlJSFJvWVhRZ1BTQjBhR2x6WEhKY2JpQWdJQ0IwYUdsekxpUmxiR1Z0Wlc1MExtaHBaR1VvS1Z4eVhHNGdJQ0FnZEdocGN5NWlZV05yWkhKdmNDaG1kVzVqZEdsdmJpQW9LU0I3WEhKY2JpQWdJQ0FnSUhSb1lYUXVKR0p2WkhrdWNtVnRiM1psUTJ4aGMzTW9KMjF2WkdGc0xXOXdaVzRuS1Z4eVhHNGdJQ0FnSUNCMGFHRjBMbkpsYzJWMFFXUnFkWE4wYldWdWRITW9LVnh5WEc0Z0lDQWdJQ0IwYUdGMExuSmxjMlYwVTJOeWIyeHNZbUZ5S0NsY2NseHVJQ0FnSUNBZ2RHaGhkQzRrWld4bGJXVnVkQzUwY21sbloyVnlLQ2RvYVdSa1pXNHVkM0JpWXk1dGIyUmhiQ2NwWEhKY2JpQWdJQ0I5S1Z4eVhHNGdJSDFjY2x4dVhISmNiaUFnVFc5a1lXd3VjSEp2ZEc5MGVYQmxMbkpsYlc5MlpVSmhZMnRrY205d0lEMGdablZ1WTNScGIyNGdLQ2tnZTF4eVhHNGdJQ0FnZEdocGN5NGtZbUZqYTJSeWIzQWdKaVlnZEdocGN5NGtZbUZqYTJSeWIzQXVjbVZ0YjNabEtDbGNjbHh1SUNBZ0lIUm9hWE11SkdKaFkydGtjbTl3SUQwZ2JuVnNiRnh5WEc0Z0lIMWNjbHh1WEhKY2JpQWdUVzlrWVd3dWNISnZkRzkwZVhCbExtSmhZMnRrY205d0lEMGdablZ1WTNScGIyNGdLR05oYkd4aVlXTnJLU0I3WEhKY2JpQWdJQ0IyWVhJZ2RHaGhkQ0E5SUhSb2FYTmNjbHh1SUNBZ0lIWmhjaUJoYm1sdFlYUmxJRDBnZEdocGN5NGtaV3hsYldWdWRDNW9ZWE5EYkdGemN5Z25abUZrWlNjcElEOGdKMlpoWkdVbklEb2dKeWRjY2x4dVhISmNiaUFnSUNCcFppQW9kR2hwY3k1cGMxTm9iM2R1SUNZbUlIUm9hWE11YjNCMGFXOXVjeTVpWVdOclpISnZjQ2tnZTF4eVhHNGdJQ0FnSUNCMllYSWdaRzlCYm1sdFlYUmxJRDBnSkM1emRYQndiM0owTG5SeVlXNXphWFJwYjI0Z0ppWWdZVzVwYldGMFpWeHlYRzVjY2x4dUlDQWdJQ0FnZEdocGN5NGtZbUZqYTJSeWIzQWdQU0FrS0dSdlkzVnRaVzUwTG1OeVpXRjBaVVZzWlcxbGJuUW9KMlJwZGljcEtWeHlYRzRnSUNBZ0lDQWdJQzVoWkdSRGJHRnpjeWduYlc5a1lXd3RZbUZqYTJSeWIzQWdKeUFySUdGdWFXMWhkR1VwWEhKY2JpQWdJQ0FnSUNBZ0xtRndjR1Z1WkZSdktIUm9hWE11SkdKdlpIa3BYSEpjYmx4eVhHNGdJQ0FnSUNCMGFHbHpMaVJsYkdWdFpXNTBMbTl1S0NkamJHbGpheTVrYVhOdGFYTnpMbmR3WW1NdWJXOWtZV3duTENBa0xuQnliM2g1S0daMWJtTjBhVzl1SUNobEtTQjdYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE11YVdkdWIzSmxRbUZqYTJSeWIzQkRiR2xqYXlrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NXBaMjV2Y21WQ1lXTnJaSEp2Y0VOc2FXTnJJRDBnWm1Gc2MyVmNjbHh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnlibHh5WEc0Z0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQnBaaUFvWlM1MFlYSm5aWFFnSVQwOUlHVXVZM1Z5Y21WdWRGUmhjbWRsZENrZ2NtVjBkWEp1WEhKY2JpQWdJQ0FnSUNBZ2RHaHBjeTV2Y0hScGIyNXpMbUpoWTJ0a2NtOXdJRDA5SUNkemRHRjBhV01uWEhKY2JpQWdJQ0FnSUNBZ0lDQS9JSFJvYVhNdUpHVnNaVzFsYm5SYk1GMHVabTlqZFhNb0tWeHlYRzRnSUNBZ0lDQWdJQ0FnT2lCMGFHbHpMbWhwWkdVb0tWeHlYRzRnSUNBZ0lDQjlMQ0IwYUdsektTbGNjbHh1WEhKY2JpQWdJQ0FnSUdsbUlDaGtiMEZ1YVcxaGRHVXBJSFJvYVhNdUpHSmhZMnRrY205d1d6QmRMbTltWm5ObGRGZHBaSFJvSUM4dklHWnZjbU5sSUhKbFpteHZkMXh5WEc1Y2NseHVJQ0FnSUNBZ2RHaHBjeTRrWW1GamEyUnliM0F1WVdSa1EyeGhjM01vSjJsdUp5bGNjbHh1WEhKY2JpQWdJQ0FnSUdsbUlDZ2hZMkZzYkdKaFkyc3BJSEpsZEhWeWJseHlYRzVjY2x4dUlDQWdJQ0FnWkc5QmJtbHRZWFJsSUQ5Y2NseHVJQ0FnSUNBZ0lDQjBhR2x6TGlSaVlXTnJaSEp2Y0Z4eVhHNGdJQ0FnSUNBZ0lDQWdMbTl1WlNnblluTlVjbUZ1YzJsMGFXOXVSVzVrSnl3Z1kyRnNiR0poWTJzcFhISmNiaUFnSUNBZ0lDQWdJQ0F1WlcxMWJHRjBaVlJ5WVc1emFYUnBiMjVGYm1Rb1RXOWtZV3d1UWtGRFMwUlNUMUJmVkZKQlRsTkpWRWxQVGw5RVZWSkJWRWxQVGlrZ09seHlYRzRnSUNBZ0lDQWdJR05oYkd4aVlXTnJLQ2xjY2x4dVhISmNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tDRjBhR2x6TG1selUyaHZkMjRnSmlZZ2RHaHBjeTRrWW1GamEyUnliM0FwSUh0Y2NseHVJQ0FnSUNBZ2RHaHBjeTRrWW1GamEyUnliM0F1Y21WdGIzWmxRMnhoYzNNb0oybHVKeWxjY2x4dVhISmNiaUFnSUNBZ0lIWmhjaUJqWVd4c1ltRmphMUpsYlc5MlpTQTlJR1oxYm1OMGFXOXVJQ2dwSUh0Y2NseHVJQ0FnSUNBZ0lDQjBhR0YwTG5KbGJXOTJaVUpoWTJ0a2NtOXdLQ2xjY2x4dUlDQWdJQ0FnSUNCallXeHNZbUZqYXlBbUppQmpZV3hzWW1GamF5Z3BYSEpjYmlBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSkM1emRYQndiM0owTG5SeVlXNXphWFJwYjI0Z0ppWWdkR2hwY3k0a1pXeGxiV1Z1ZEM1b1lYTkRiR0Z6Y3lnblptRmtaU2NwSUQ5Y2NseHVJQ0FnSUNBZ0lDQjBhR2x6TGlSaVlXTnJaSEp2Y0Z4eVhHNGdJQ0FnSUNBZ0lDQWdMbTl1WlNnblluTlVjbUZ1YzJsMGFXOXVSVzVrSnl3Z1kyRnNiR0poWTJ0U1pXMXZkbVVwWEhKY2JpQWdJQ0FnSUNBZ0lDQXVaVzExYkdGMFpWUnlZVzV6YVhScGIyNUZibVFvVFc5a1lXd3VRa0ZEUzBSU1QxQmZWRkpCVGxOSlZFbFBUbDlFVlZKQlZFbFBUaWtnT2x4eVhHNGdJQ0FnSUNBZ0lHTmhiR3hpWVdOclVtVnRiM1psS0NsY2NseHVYSEpjYmlBZ0lDQjlJR1ZzYzJVZ2FXWWdLR05oYkd4aVlXTnJLU0I3WEhKY2JpQWdJQ0FnSUdOaGJHeGlZV05yS0NsY2NseHVJQ0FnSUgxY2NseHVJQ0I5WEhKY2JseHlYRzRnSUM4dklIUm9aWE5sSUdadmJHeHZkMmx1WnlCdFpYUm9iMlJ6SUdGeVpTQjFjMlZrSUhSdklHaGhibVJzWlNCdmRtVnlabXh2ZDJsdVp5QnRiMlJoYkhOY2NseHVYSEpjYmlBZ1RXOWtZV3d1Y0hKdmRHOTBlWEJsTG1oaGJtUnNaVlZ3WkdGMFpTQTlJR1oxYm1OMGFXOXVJQ2dwSUh0Y2NseHVJQ0FnSUhSb2FYTXVZV1JxZFhOMFJHbGhiRzluS0NsY2NseHVJQ0I5WEhKY2JseHlYRzRnSUUxdlpHRnNMbkJ5YjNSdmRIbHdaUzVoWkdwMWMzUkVhV0ZzYjJjZ1BTQm1kVzVqZEdsdmJpQW9LU0I3WEhKY2JpQWdJQ0IyWVhJZ2JXOWtZV3hKYzA5MlpYSm1iRzkzYVc1bklEMGdkR2hwY3k0a1pXeGxiV1Z1ZEZzd1hTNXpZM0p2Ykd4SVpXbG5hSFFnUGlCa2IyTjFiV1Z1ZEM1a2IyTjFiV1Z1ZEVWc1pXMWxiblF1WTJ4cFpXNTBTR1ZwWjJoMFhISmNibHh5WEc0Z0lDQWdkR2hwY3k0a1pXeGxiV1Z1ZEM1amMzTW9lMXh5WEc0Z0lDQWdJQ0J3WVdSa2FXNW5UR1ZtZERvZ0lDRjBhR2x6TG1KdlpIbEpjMDkyWlhKbWJHOTNhVzVuSUNZbUlHMXZaR0ZzU1hOUGRtVnlabXh2ZDJsdVp5QS9JSFJvYVhNdWMyTnliMnhzWW1GeVYybGtkR2dnT2lBbkp5eGNjbHh1SUNBZ0lDQWdjR0ZrWkdsdVoxSnBaMmgwT2lCMGFHbHpMbUp2WkhsSmMwOTJaWEptYkc5M2FXNW5JQ1ltSUNGdGIyUmhiRWx6VDNabGNtWnNiM2RwYm1jZ1B5QjBhR2x6TG5OamNtOXNiR0poY2xkcFpIUm9JRG9nSnlkY2NseHVJQ0FnSUgwcFhISmNiaUFnZlZ4eVhHNWNjbHh1SUNCTmIyUmhiQzV3Y205MGIzUjVjR1V1Y21WelpYUkJaR3AxYzNSdFpXNTBjeUE5SUdaMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lIUm9hWE11SkdWc1pXMWxiblF1WTNOektIdGNjbHh1SUNBZ0lDQWdjR0ZrWkdsdVoweGxablE2SUNjbkxGeHlYRzRnSUNBZ0lDQndZV1JrYVc1blVtbG5hSFE2SUNjblhISmNiaUFnSUNCOUtWeHlYRzRnSUgxY2NseHVYSEpjYmlBZ1RXOWtZV3d1Y0hKdmRHOTBlWEJsTG1Ob1pXTnJVMk55YjJ4c1ltRnlJRDBnWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ2RtRnlJR1oxYkd4WGFXNWtiM2RYYVdSMGFDQTlJSGRwYm1SdmR5NXBibTVsY2xkcFpIUm9YSEpjYmlBZ0lDQnBaaUFvSVdaMWJHeFhhVzVrYjNkWGFXUjBhQ2tnZXlBdkx5QjNiM0pyWVhKdmRXNWtJR1p2Y2lCdGFYTnphVzVuSUhkcGJtUnZkeTVwYm01bGNsZHBaSFJvSUdsdUlFbEZPRnh5WEc0Z0lDQWdJQ0IyWVhJZ1pHOWpkVzFsYm5SRmJHVnRaVzUwVW1WamRDQTlJR1J2WTNWdFpXNTBMbVJ2WTNWdFpXNTBSV3hsYldWdWRDNW5aWFJDYjNWdVpHbHVaME5zYVdWdWRGSmxZM1FvS1Z4eVhHNGdJQ0FnSUNCbWRXeHNWMmx1Wkc5M1YybGtkR2dnUFNCa2IyTjFiV1Z1ZEVWc1pXMWxiblJTWldOMExuSnBaMmgwSUMwZ1RXRjBhQzVoWW5Nb1pHOWpkVzFsYm5SRmJHVnRaVzUwVW1WamRDNXNaV1owS1Z4eVhHNGdJQ0FnZlZ4eVhHNGdJQ0FnZEdocGN5NWliMlI1U1hOUGRtVnlabXh2ZDJsdVp5QTlJR1J2WTNWdFpXNTBMbUp2WkhrdVkyeHBaVzUwVjJsa2RHZ2dQQ0JtZFd4c1YybHVaRzkzVjJsa2RHaGNjbHh1SUNBZ0lIUm9hWE11YzJOeWIyeHNZbUZ5VjJsa2RHZ2dQU0IwYUdsekxtMWxZWE4xY21WVFkzSnZiR3hpWVhJb0tWeHlYRzRnSUgxY2NseHVYSEpjYmlBZ1RXOWtZV3d1Y0hKdmRHOTBlWEJsTG5ObGRGTmpjbTlzYkdKaGNpQTlJR1oxYm1OMGFXOXVJQ2dwSUh0Y2NseHVJQ0FnSUhaaGNpQmliMlI1VUdGa0lEMGdjR0Z5YzJWSmJuUW9LSFJvYVhNdUpHSnZaSGt1WTNOektDZHdZV1JrYVc1bkxYSnBaMmgwSnlrZ2ZId2dNQ2tzSURFd0tWeHlYRzRnSUNBZ2RHaHBjeTV2Y21sbmFXNWhiRUp2WkhsUVlXUWdQU0JrYjJOMWJXVnVkQzVpYjJSNUxuTjBlV3hsTG5CaFpHUnBibWRTYVdkb2RDQjhmQ0FuSjF4eVhHNGdJQ0FnYVdZZ0tIUm9hWE11WW05a2VVbHpUM1psY21ac2IzZHBibWNwSUhSb2FYTXVKR0p2WkhrdVkzTnpLQ2R3WVdSa2FXNW5MWEpwWjJoMEp5d2dZbTlrZVZCaFpDQXJJSFJvYVhNdWMyTnliMnhzWW1GeVYybGtkR2dwWEhKY2JpQWdmVnh5WEc1Y2NseHVJQ0JOYjJSaGJDNXdjbTkwYjNSNWNHVXVjbVZ6WlhSVFkzSnZiR3hpWVhJZ1BTQm1kVzVqZEdsdmJpQW9LU0I3WEhKY2JpQWdJQ0IwYUdsekxpUmliMlI1TG1OemN5Z25jR0ZrWkdsdVp5MXlhV2RvZENjc0lIUm9hWE11YjNKcFoybHVZV3hDYjJSNVVHRmtLVnh5WEc0Z0lIMWNjbHh1WEhKY2JpQWdUVzlrWVd3dWNISnZkRzkwZVhCbExtMWxZWE4xY21WVFkzSnZiR3hpWVhJZ1BTQm1kVzVqZEdsdmJpQW9LU0I3SUM4dklIUm9lQ0IzWVd4emFGeHlYRzRnSUNBZ2RtRnlJSE5qY205c2JFUnBkaUE5SUdSdlkzVnRaVzUwTG1OeVpXRjBaVVZzWlcxbGJuUW9KMlJwZGljcFhISmNiaUFnSUNCelkzSnZiR3hFYVhZdVkyeGhjM05PWVcxbElEMGdKMjF2WkdGc0xYTmpjbTlzYkdKaGNpMXRaV0Z6ZFhKbEoxeHlYRzRnSUNBZ2RHaHBjeTRrWW05a2VTNWhjSEJsYm1Rb2MyTnliMnhzUkdsMktWeHlYRzRnSUNBZ2RtRnlJSE5qY205c2JHSmhjbGRwWkhSb0lEMGdjMk55YjJ4c1JHbDJMbTltWm5ObGRGZHBaSFJvSUMwZ2MyTnliMnhzUkdsMkxtTnNhV1Z1ZEZkcFpIUm9YSEpjYmlBZ0lDQjBhR2x6TGlSaWIyUjVXekJkTG5KbGJXOTJaVU5vYVd4a0tITmpjbTlzYkVScGRpbGNjbHh1SUNBZ0lISmxkSFZ5YmlCelkzSnZiR3hpWVhKWGFXUjBhRnh5WEc0Z0lIMWNjbHh1WEhKY2JseHlYRzRnSUM4dklFMVBSRUZNSUZCTVZVZEpUaUJFUlVaSlRrbFVTVTlPWEhKY2JpQWdMeThnUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMWNjbHh1WEhKY2JpQWdablZ1WTNScGIyNGdVR3gxWjJsdUtHOXdkR2x2Yml3Z1gzSmxiR0YwWldSVVlYSm5aWFFwSUh0Y2NseHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtVmhZMmdvWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ0lDQjJZWElnSkhSb2FYTWdJQ0E5SUNRb2RHaHBjeWxjY2x4dUlDQWdJQ0FnZG1GeUlHUmhkR0VnSUNBZ1BTQWtkR2hwY3k1a1lYUmhLQ2QzY0dKakxtMXZaR0ZzSnlsY2NseHVJQ0FnSUNBZ2RtRnlJRzl3ZEdsdmJuTWdQU0FrTG1WNGRHVnVaQ2g3ZlN3Z1RXOWtZV3d1UkVWR1FWVk1WRk1zSUNSMGFHbHpMbVJoZEdFb0tTd2dkSGx3Wlc5bUlHOXdkR2x2YmlBOVBTQW5iMkpxWldOMEp5QW1KaUJ2Y0hScGIyNHBYSEpjYmx4eVhHNGdJQ0FnSUNCcFppQW9JV1JoZEdFcElDUjBhR2x6TG1SaGRHRW9KM2R3WW1NdWJXOWtZV3duTENBb1pHRjBZU0E5SUc1bGR5Qk5iMlJoYkNoMGFHbHpMQ0J2Y0hScGIyNXpLU2twWEhKY2JpQWdJQ0FnSUdsbUlDaDBlWEJsYjJZZ2IzQjBhVzl1SUQwOUlDZHpkSEpwYm1jbktTQmtZWFJoVzI5d2RHbHZibDBvWDNKbGJHRjBaV1JVWVhKblpYUXBYSEpjYmlBZ0lDQWdJR1ZzYzJVZ2FXWWdLRzl3ZEdsdmJuTXVjMmh2ZHlrZ1pHRjBZUzV6YUc5M0tGOXlaV3hoZEdWa1ZHRnlaMlYwS1Z4eVhHNGdJQ0FnZlNsY2NseHVJQ0I5WEhKY2JseHlYRzRnSUhaaGNpQnZiR1FnUFNBa0xtWnVMbmR3WW1OZmJYbGZiVzlrWVd4Y2NseHVYSEpjYmlBZ0pDNW1iaTUzY0dKalgyMTVYMjF2WkdGc0lDQWdJQ0FnSUNBZ0lDQWdJRDBnVUd4MVoybHVYSEpjYmlBZ0pDNW1iaTUzY0dKalgyMTVYMjF2WkdGc0xrTnZibk4wY25WamRHOXlJRDBnVFc5a1lXeGNjbHh1WEhKY2JseHlYRzRnSUM4dklFMVBSRUZNSUU1UElFTlBUa1pNU1VOVVhISmNiaUFnTHk4Z1BUMDlQVDA5UFQwOVBUMDlQVDA5UFQxY2NseHVYSEpjYmlBZ0pDNW1iaTUzY0dKalgyMTVYMjF2WkdGc0xtNXZRMjl1Wm14cFkzUWdQU0JtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNBa0xtWnVMbmR3WW1OZmJYbGZiVzlrWVd3Z1BTQnZiR1JjY2x4dUlDQWdJSEpsZEhWeWJpQjBhR2x6WEhKY2JpQWdmVnh5WEc1Y2NseHVYSEpjYmlBZ0x5OGdUVTlFUVV3Z1JFRlVRUzFCVUVsY2NseHVJQ0F2THlBOVBUMDlQVDA5UFQwOVBUMDlQVnh5WEc1Y2NseHVJQ0FrS0dSdlkzVnRaVzUwS1M1dmJpZ25ZMnhwWTJzdWQzQmlZeTV0YjJSaGJDNWtZWFJoTFdGd2FTY3NJQ2RiWkdGMFlTMTBiMmRuYkdVOVhDSjNjR0pqWDIxNVgyMXZaR0ZzWENKZEp5d2dablZ1WTNScGIyNGdLR1VwSUh0Y2NseHVJQ0FnSUhaaGNpQWtkR2hwY3lBZ0lEMGdKQ2gwYUdsektWeHlYRzRnSUNBZ2RtRnlJR2h5WldZZ0lDQWdQU0FrZEdocGN5NWhkSFJ5S0Nkb2NtVm1KeWxjY2x4dUlDQWdJSFpoY2lBa2RHRnlaMlYwSUQwZ0pDZ2tkR2hwY3k1aGRIUnlLQ2RrWVhSaExYUmhjbWRsZENjcElIeDhJQ2hvY21WbUlDWW1JR2h5WldZdWNtVndiR0ZqWlNndkxpb29QejBqVzE1Y1hITmRLeVFwTHl3Z0p5Y3BLU2tnTHk4Z2MzUnlhWEFnWm05eUlHbGxOMXh5WEc0Z0lDQWdkbUZ5SUc5d2RHbHZiaUFnUFNBa2RHRnlaMlYwTG1SaGRHRW9KM2R3WW1NdWJXOWtZV3duS1NBL0lDZDBiMmRuYkdVbklEb2dKQzVsZUhSbGJtUW9leUJ5WlcxdmRHVTZJQ0V2SXk4dWRHVnpkQ2hvY21WbUtTQW1KaUJvY21WbUlIMHNJQ1IwWVhKblpYUXVaR0YwWVNncExDQWtkR2hwY3k1a1lYUmhLQ2twWEhKY2JseHlYRzRnSUNBZ2FXWWdLQ1IwYUdsekxtbHpLQ2RoSnlrcElHVXVjSEpsZG1WdWRFUmxabUYxYkhRb0tWeHlYRzVjY2x4dUlDQWdJQ1IwWVhKblpYUXViMjVsS0NkemFHOTNMbmR3WW1NdWJXOWtZV3duTENCbWRXNWpkR2x2YmlBb2MyaHZkMFYyWlc1MEtTQjdYSEpjYmlBZ0lDQWdJR2xtSUNoemFHOTNSWFpsYm5RdWFYTkVaV1poZFd4MFVISmxkbVZ1ZEdWa0tDa3BJSEpsZEhWeWJpQXZMeUJ2Ym14NUlISmxaMmx6ZEdWeUlHWnZZM1Z6SUhKbGMzUnZjbVZ5SUdsbUlHMXZaR0ZzSUhkcGJHd2dZV04wZFdGc2JIa2daMlYwSUhOb2IzZHVYSEpjYmlBZ0lDQWdJQ1IwWVhKblpYUXViMjVsS0Nkb2FXUmtaVzR1ZDNCaVl5NXRiMlJoYkNjc0lHWjFibU4wYVc5dUlDZ3BJSHRjY2x4dUlDQWdJQ0FnSUNBa2RHaHBjeTVwY3lnbk9uWnBjMmxpYkdVbktTQW1KaUFrZEdocGN5NTBjbWxuWjJWeUtDZG1iMk4xY3ljcFhISmNiaUFnSUNBZ0lIMHBYSEpjYmlBZ0lDQjlLVnh5WEc0Z0lDQWdVR3gxWjJsdUxtTmhiR3dvSkhSaGNtZGxkQ3dnYjNCMGFXOXVMQ0IwYUdsektWeHlYRzRnSUgwcFhISmNibHh5WEc1OUtHcFJkV1Z5ZVNrN1hISmNibHh5WEc1Y2NseHVLMloxYm1OMGFXOXVJQ2drS1NCN1hISmNiaUFnSjNWelpTQnpkSEpwWTNRbk8xeHlYRzVjY2x4dUlDQXZMeUJFVWs5UVJFOVhUaUJEVEVGVFV5QkVSVVpKVGtsVVNVOU9YSEpjYmlBZ0x5OGdQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBWeHlYRzVjY2x4dUlDQjJZWElnWW1GamEyUnliM0FnUFNBbkxtUnliM0JrYjNkdUxXSmhZMnRrY205d0oxeHlYRzRnSUhaaGNpQjBiMmRuYkdVZ0lDQTlJQ2RiWkdGMFlTMTBiMmRuYkdVOVhDSjNjR0pqWDJSeWIzQmtiM2R1WENKZEoxeHlYRzRnSUhaaGNpQkVjbTl3Wkc5M2JpQTlJR1oxYm1OMGFXOXVJQ2hsYkdWdFpXNTBLU0I3WEhKY2JpQWdJQ0FrS0dWc1pXMWxiblFwTG05dUtDZGpiR2xqYXk1M2NHSmpMbVJ5YjNCa2IzZHVKeXdnZEdocGN5NTBiMmRuYkdVcFhISmNiaUFnZlZ4eVhHNWNjbHh1SUNCRWNtOXdaRzkzYmk1V1JWSlRTVTlPSUQwZ0p6TXVNeTQxSjF4eVhHNWNjbHh1SUNCbWRXNWpkR2x2YmlCblpYUlFZWEpsYm5Rb0pIUm9hWE1wSUh0Y2NseHVJQ0FnSUhaaGNpQnpaV3hsWTNSdmNpQTlJQ1IwYUdsekxtRjBkSElvSjJSaGRHRXRkR0Z5WjJWMEp5bGNjbHh1WEhKY2JpQWdJQ0JwWmlBb0lYTmxiR1ZqZEc5eUtTQjdYSEpjYmlBZ0lDQWdJSE5sYkdWamRHOXlJRDBnSkhSb2FYTXVZWFIwY2lnbmFISmxaaWNwWEhKY2JpQWdJQ0FnSUhObGJHVmpkRzl5SUQwZ2MyVnNaV04wYjNJZ0ppWWdMeU5iUVMxYVlTMTZYUzh1ZEdWemRDaHpaV3hsWTNSdmNpa2dKaVlnYzJWc1pXTjBiM0l1Y21Wd2JHRmpaU2d2TGlvb1B6MGpXMTVjWEhOZEtpUXBMeXdnSnljcElDOHZJSE4wY21sd0lHWnZjaUJwWlRkY2NseHVJQ0FnSUgxY2NseHVYSEpjYmlBZ0lDQjJZWElnSkhCaGNtVnVkQ0E5SUhObGJHVmpkRzl5SUNZbUlDUW9jMlZzWldOMGIzSXBYSEpjYmx4eVhHNGdJQ0FnY21WMGRYSnVJQ1J3WVhKbGJuUWdKaVlnSkhCaGNtVnVkQzVzWlc1bmRHZ2dQeUFrY0dGeVpXNTBJRG9nSkhSb2FYTXVjR0Z5Wlc1MEtDbGNjbHh1SUNCOVhISmNibHh5WEc0Z0lHWjFibU4wYVc5dUlHTnNaV0Z5VFdWdWRYTW9aU2tnZTF4eVhHNGdJQ0FnYVdZZ0tHVWdKaVlnWlM1M2FHbGphQ0E5UFQwZ015a2djbVYwZFhKdVhISmNiaUFnSUNBa0tHSmhZMnRrY205d0tTNXlaVzF2ZG1Vb0tWeHlYRzRnSUNBZ0pDaDBiMmRuYkdVcExtVmhZMmdvWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ0lDQjJZWElnSkhSb2FYTWdJQ0FnSUNBZ0lDQTlJQ1FvZEdocGN5bGNjbHh1SUNBZ0lDQWdkbUZ5SUNSd1lYSmxiblFnSUNBZ0lDQWdQU0JuWlhSUVlYSmxiblFvSkhSb2FYTXBYSEpjYmlBZ0lDQWdJSFpoY2lCeVpXeGhkR1ZrVkdGeVoyVjBJRDBnZXlCeVpXeGhkR1ZrVkdGeVoyVjBPaUIwYUdseklIMWNjbHh1WEhKY2JpQWdJQ0FnSUdsbUlDZ2hKSEJoY21WdWRDNW9ZWE5EYkdGemN5Z25iM0JsYmljcEtTQnlaWFIxY201Y2NseHVYSEpjYmlBZ0lDQWdJR2xtSUNobElDWW1JR1V1ZEhsd1pTQTlQU0FuWTJ4cFkyc25JQ1ltSUM5cGJuQjFkSHgwWlhoMFlYSmxZUzlwTG5SbGMzUW9aUzUwWVhKblpYUXVkR0ZuVG1GdFpTa2dKaVlnSkM1amIyNTBZV2x1Y3lna2NHRnlaVzUwV3pCZExDQmxMblJoY21kbGRDa3BJSEpsZEhWeWJseHlYRzVjY2x4dUlDQWdJQ0FnSkhCaGNtVnVkQzUwY21sbloyVnlLR1VnUFNBa0xrVjJaVzUwS0Nkb2FXUmxMbmR3WW1NdVpISnZjR1J2ZDI0bkxDQnlaV3hoZEdWa1ZHRnlaMlYwS1NsY2NseHVYSEpjYmlBZ0lDQWdJR2xtSUNobExtbHpSR1ZtWVhWc2RGQnlaWFpsYm5SbFpDZ3BLU0J5WlhSMWNtNWNjbHh1WEhKY2JpQWdJQ0FnSUNSMGFHbHpMbUYwZEhJb0oyRnlhV0V0Wlhod1lXNWtaV1FuTENBblptRnNjMlVuS1Z4eVhHNGdJQ0FnSUNBa2NHRnlaVzUwTG5KbGJXOTJaVU5zWVhOektDZHZjR1Z1SnlrdWRISnBaMmRsY2lnbmFHbGtaR1Z1TG5kd1ltTXVaSEp2Y0dSdmQyNG5MQ0J5Wld4aGRHVmtWR0Z5WjJWMEtWeHlYRzRnSUNBZ2ZTbGNjbHh1SUNCOVhISmNibHh5WEc0Z0lFUnliM0JrYjNkdUxuQnliM1J2ZEhsd1pTNTBiMmRuYkdVZ1BTQm1kVzVqZEdsdmJpQW9aU2tnZTF4eVhHNGdJQ0FnZG1GeUlDUjBhR2x6SUQwZ0pDaDBhR2x6S1Z4eVhHNWNjbHh1SUNBZ0lHbG1JQ2drZEdocGN5NXBjeWduTG1ScGMyRmliR1ZrTENBNlpHbHpZV0pzWldRbktTa2djbVYwZFhKdVhISmNibHh5WEc0Z0lDQWdkbUZ5SUNSd1lYSmxiblFnSUQwZ1oyVjBVR0Z5Wlc1MEtDUjBhR2x6S1Z4eVhHNGdJQ0FnZG1GeUlHbHpRV04wYVhabElEMGdKSEJoY21WdWRDNW9ZWE5EYkdGemN5Z25iM0JsYmljcFhISmNibHh5WEc0Z0lDQWdZMnhsWVhKTlpXNTFjeWdwWEhKY2JseHlYRzRnSUNBZ2FXWWdLQ0ZwYzBGamRHbDJaU2tnZTF4eVhHNGdJQ0FnSUNCcFppQW9KMjl1ZEc5MVkyaHpkR0Z5ZENjZ2FXNGdaRzlqZFcxbGJuUXVaRzlqZFcxbGJuUkZiR1Z0Wlc1MElDWW1JQ0VrY0dGeVpXNTBMbU5zYjNObGMzUW9KeTV1WVhaaVlYSXRibUYySnlrdWJHVnVaM1JvS1NCN1hISmNiaUFnSUNBZ0lDQWdMeThnYVdZZ2JXOWlhV3hsSUhkbElIVnpaU0JoSUdKaFkydGtjbTl3SUdKbFkyRjFjMlVnWTJ4cFkyc2daWFpsYm5SeklHUnZiaWQwSUdSbGJHVm5ZWFJsWEhKY2JpQWdJQ0FnSUNBZ0pDaGtiMk4xYldWdWRDNWpjbVZoZEdWRmJHVnRaVzUwS0Nka2FYWW5LU2xjY2x4dUlDQWdJQ0FnSUNBZ0lDNWhaR1JEYkdGemN5Z25aSEp2Y0dSdmQyNHRZbUZqYTJSeWIzQW5LVnh5WEc0Z0lDQWdJQ0FnSUNBZ0xtbHVjMlZ5ZEVGbWRHVnlLQ1FvZEdocGN5a3BYSEpjYmlBZ0lDQWdJQ0FnSUNBdWIyNG9KMk5zYVdOckp5d2dZMnhsWVhKTlpXNTFjeWxjY2x4dUlDQWdJQ0FnZlZ4eVhHNWNjbHh1SUNBZ0lDQWdkbUZ5SUhKbGJHRjBaV1JVWVhKblpYUWdQU0I3SUhKbGJHRjBaV1JVWVhKblpYUTZJSFJvYVhNZ2ZWeHlYRzRnSUNBZ0lDQWtjR0Z5Wlc1MExuUnlhV2RuWlhJb1pTQTlJQ1F1UlhabGJuUW9KM05vYjNjdWQzQmlZeTVrY205d1pHOTNiaWNzSUhKbGJHRjBaV1JVWVhKblpYUXBLVnh5WEc1Y2NseHVJQ0FnSUNBZ2FXWWdLR1V1YVhORVpXWmhkV3gwVUhKbGRtVnVkR1ZrS0NrcElISmxkSFZ5Ymx4eVhHNWNjbHh1SUNBZ0lDQWdKSFJvYVhOY2NseHVJQ0FnSUNBZ0lDQXVkSEpwWjJkbGNpZ25abTlqZFhNbktWeHlYRzRnSUNBZ0lDQWdJQzVoZEhSeUtDZGhjbWxoTFdWNGNHRnVaR1ZrSnl3Z0ozUnlkV1VuS1Z4eVhHNWNjbHh1SUNBZ0lDQWdKSEJoY21WdWRGeHlYRzRnSUNBZ0lDQWdJQzUwYjJkbmJHVkRiR0Z6Y3lnbmIzQmxiaWNwWEhKY2JpQWdJQ0FnSUNBZ0xuUnlhV2RuWlhJb0ozTm9iM2R1TG5kd1ltTXVaSEp2Y0dSdmQyNG5MQ0J5Wld4aGRHVmtWR0Z5WjJWMEtWeHlYRzRnSUNBZ2ZWeHlYRzVjY2x4dUlDQWdJSEpsZEhWeWJpQm1ZV3h6WlZ4eVhHNGdJSDFjY2x4dVhISmNiaUFnUkhKdmNHUnZkMjR1Y0hKdmRHOTBlWEJsTG10bGVXUnZkMjRnUFNCbWRXNWpkR2x2YmlBb1pTa2dlMXh5WEc0Z0lDQWdhV1lnS0NFdktETTRmRFF3ZkRJM2ZETXlLUzh1ZEdWemRDaGxMbmRvYVdOb0tTQjhmQ0F2YVc1d2RYUjhkR1Y0ZEdGeVpXRXZhUzUwWlhOMEtHVXVkR0Z5WjJWMExuUmhaMDVoYldVcEtTQnlaWFIxY201Y2NseHVYSEpjYmlBZ0lDQjJZWElnSkhSb2FYTWdQU0FrS0hSb2FYTXBYSEpjYmx4eVhHNGdJQ0FnWlM1d2NtVjJaVzUwUkdWbVlYVnNkQ2dwWEhKY2JpQWdJQ0JsTG5OMGIzQlFjbTl3WVdkaGRHbHZiaWdwWEhKY2JseHlYRzRnSUNBZ2FXWWdLQ1IwYUdsekxtbHpLQ2N1WkdsellXSnNaV1FzSURwa2FYTmhZbXhsWkNjcEtTQnlaWFIxY201Y2NseHVYSEpjYmlBZ0lDQjJZWElnSkhCaGNtVnVkQ0FnUFNCblpYUlFZWEpsYm5Rb0pIUm9hWE1wWEhKY2JpQWdJQ0IyWVhJZ2FYTkJZM1JwZG1VZ1BTQWtjR0Z5Wlc1MExtaGhjME5zWVhOektDZHZjR1Z1SnlsY2NseHVYSEpjYmlBZ0lDQnBaaUFvSVdselFXTjBhWFpsSUNZbUlHVXVkMmhwWTJnZ0lUMGdNamNnZkh3Z2FYTkJZM1JwZG1VZ0ppWWdaUzUzYUdsamFDQTlQU0F5TnlrZ2UxeHlYRzRnSUNBZ0lDQnBaaUFvWlM1M2FHbGphQ0E5UFNBeU55a2dKSEJoY21WdWRDNW1hVzVrS0hSdloyZHNaU2t1ZEhKcFoyZGxjaWduWm05amRYTW5LVnh5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdKSFJvYVhNdWRISnBaMmRsY2lnblkyeHBZMnNuS1Z4eVhHNGdJQ0FnZlZ4eVhHNWNjbHh1SUNBZ0lIWmhjaUJrWlhOaklEMGdKeUJzYVRwdWIzUW9MbVJwYzJGaWJHVmtLVHAyYVhOcFlteGxJR0VuWEhKY2JpQWdJQ0IyWVhJZ0pHbDBaVzF6SUQwZ0pIQmhjbVZ1ZEM1bWFXNWtLQ2N1WkhKdmNHUnZkMjR0YldWdWRTY2dLeUJrWlhOaklDc2dKeXd1ZFdsZlpISnZjR1J2ZDI1ZmJXVnVkU2NnS3lCa1pYTmpLVnh5WEc1Y2NseHVJQ0FnSUdsbUlDZ2hKR2wwWlcxekxteGxibWQwYUNrZ2NtVjBkWEp1WEhKY2JseHlYRzRnSUNBZ2RtRnlJR2x1WkdWNElEMGdKR2wwWlcxekxtbHVaR1Y0S0dVdWRHRnlaMlYwS1Z4eVhHNWNjbHh1SUNBZ0lHbG1JQ2hsTG5kb2FXTm9JRDA5SURNNElDWW1JR2x1WkdWNElENGdNQ2tnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2x1WkdWNExTMGdJQ0FnSUNBZ0lDQXZMeUIxY0Z4eVhHNGdJQ0FnYVdZZ0tHVXVkMmhwWTJnZ1BUMGdOREFnSmlZZ2FXNWtaWGdnUENBa2FYUmxiWE11YkdWdVozUm9JQzBnTVNrZ2FXNWtaWGdyS3lBZ0lDQWdJQ0FnSUM4dklHUnZkMjVjY2x4dUlDQWdJR2xtSUNnaGZtbHVaR1Y0S1NBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsdVpHVjRJRDBnTUZ4eVhHNWNjbHh1SUNBZ0lDUnBkR1Z0Y3k1bGNTaHBibVJsZUNrdWRISnBaMmRsY2lnblptOWpkWE1uS1Z4eVhHNGdJSDFjY2x4dVhISmNibHh5WEc0Z0lDOHZJRVJTVDFCRVQxZE9JRkJNVlVkSlRpQkVSVVpKVGtsVVNVOU9YSEpjYmlBZ0x5OGdQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMWNjbHh1WEhKY2JpQWdablZ1WTNScGIyNGdVR3gxWjJsdUtHOXdkR2x2YmlrZ2UxeHlYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVaV0ZqYUNobWRXNWpkR2x2YmlBb0tTQjdYSEpjYmlBZ0lDQWdJSFpoY2lBa2RHaHBjeUE5SUNRb2RHaHBjeWxjY2x4dUlDQWdJQ0FnZG1GeUlHUmhkR0VnSUQwZ0pIUm9hWE11WkdGMFlTZ25kM0JpWXk1a2NtOXdaRzkzYmljcFhISmNibHh5WEc0Z0lDQWdJQ0JwWmlBb0lXUmhkR0VwSUNSMGFHbHpMbVJoZEdFb0ozZHdZbU11WkhKdmNHUnZkMjRuTENBb1pHRjBZU0E5SUc1bGR5QkVjbTl3Wkc5M2JpaDBhR2x6S1NrcFhISmNiaUFnSUNBZ0lHbG1JQ2gwZVhCbGIyWWdiM0IwYVc5dUlEMDlJQ2R6ZEhKcGJtY25LU0JrWVhSaFcyOXdkR2x2YmwwdVkyRnNiQ2drZEdocGN5bGNjbHh1SUNBZ0lIMHBYSEpjYmlBZ2ZWeHlYRzVjY2x4dUlDQjJZWElnYjJ4a0lEMGdKQzVtYmk1M2NHSmpYMlJ5YjNCa2IzZHVYSEpjYmx4eVhHNGdJQ1F1Wm00dWQzQmlZMTlrY205d1pHOTNiaUFnSUNBZ0lDQWdJQ0FnSUNBOUlGQnNkV2RwYmx4eVhHNGdJQ1F1Wm00dWQzQmlZMTlrY205d1pHOTNiaTVEYjI1emRISjFZM1J2Y2lBOUlFUnliM0JrYjNkdVhISmNibHh5WEc1Y2NseHVJQ0F2THlCRVVrOVFSRTlYVGlCT1R5QkRUMDVHVEVsRFZGeHlYRzRnSUM4dklEMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlYSEpjYmx4eVhHNGdJQ1F1Wm00dWQzQmlZMTlrY205d1pHOTNiaTV1YjBOdmJtWnNhV04wSUQwZ1puVnVZM1JwYjI0Z0tDa2dlMXh5WEc0Z0lDQWdKQzVtYmk1M2NHSmpYMlJ5YjNCa2IzZHVJRDBnYjJ4a1hISmNiaUFnSUNCeVpYUjFjbTRnZEdocGMxeHlYRzRnSUgxY2NseHVYSEpjYmx4eVhHNGdJQzh2SUVGUVVFeFpJRlJQSUZOVVFVNUVRVkpFSUVSU1QxQkVUMWRPSUVWTVJVMUZUbFJUWEhKY2JpQWdMeThnUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDFjY2x4dVhISmNiaUFnSkNoa2IyTjFiV1Z1ZENsY2NseHVJQ0FnSUM1dmJpZ25ZMnhwWTJzdWQzQmlZeTVrY205d1pHOTNiaTVrWVhSaExXRndhU2NzSUdOc1pXRnlUV1Z1ZFhNcFhISmNiaUFnSUNBdWIyNG9KMk5zYVdOckxuZHdZbU11WkhKdmNHUnZkMjR1WkdGMFlTMWhjR2tuTENBbkxtUnliM0JrYjNkdUlHWnZjbTBuTENCbWRXNWpkR2x2YmlBb1pTa2dleUJsTG5OMGIzQlFjbTl3WVdkaGRHbHZiaWdwSUgwcFhISmNiaUFnSUNBdWIyNG9KMk5zYVdOckxuZHdZbU11WkhKdmNHUnZkMjR1WkdGMFlTMWhjR2tuTENCMGIyZG5iR1VzSUVSeWIzQmtiM2R1TG5CeWIzUnZkSGx3WlM1MGIyZG5iR1VwWEhKY2JpQWdJQ0F1YjI0b0oydGxlV1J2ZDI0dWQzQmlZeTVrY205d1pHOTNiaTVrWVhSaExXRndhU2NzSUhSdloyZHNaU3dnUkhKdmNHUnZkMjR1Y0hKdmRHOTBlWEJsTG10bGVXUnZkMjRwWEhKY2JpQWdJQ0F1YjI0b0oydGxlV1J2ZDI0dWQzQmlZeTVrY205d1pHOTNiaTVrWVhSaExXRndhU2NzSUNjdVpISnZjR1J2ZDI0dGJXVnVkU2NzSUVSeWIzQmtiM2R1TG5CeWIzUnZkSGx3WlM1clpYbGtiM2R1S1Z4eVhHNGdJQ0FnTG05dUtDZHJaWGxrYjNkdUxuZHdZbU11WkhKdmNHUnZkMjR1WkdGMFlTMWhjR2tuTENBbkxuVnBYMlJ5YjNCa2IzZHVYMjFsYm5VbkxDQkVjbTl3Wkc5M2JpNXdjbTkwYjNSNWNHVXVhMlY1Wkc5M2JpbGNjbHh1WEhKY2JuMG9hbEYxWlhKNUtUdGNjbHh1SWwwc0ltWnBiR1VpT2lKaGMzTmxkSE12YkdsaWN5OTFhUzlmYjNWMEwyUnliM0JrYjNkdVgyMXZaR0ZzTG1wekluMD1cbiJdLCJuYW1lcyI6WyJfdHlwZW9mIiwib2JqIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSIsImpRdWVyeSIsIkVycm9yIiwidmVyc2lvbiIsImZuIiwianF1ZXJ5Iiwic3BsaXQiLCIkIiwiTW9kYWwiLCJlbGVtZW50Iiwib3B0aW9ucyIsInRoaXMiLCIkYm9keSIsImRvY3VtZW50IiwiYm9keSIsIiRlbGVtZW50IiwiJGRpYWxvZyIsImZpbmQiLCIkYmFja2Ryb3AiLCJpc1Nob3duIiwib3JpZ2luYWxCb2R5UGFkIiwic2Nyb2xsYmFyV2lkdGgiLCJpZ25vcmVCYWNrZHJvcENsaWNrIiwicmVtb3RlIiwibG9hZCIsInByb3h5IiwidHJpZ2dlciIsIlBsdWdpbiIsIm9wdGlvbiIsIl9yZWxhdGVkVGFyZ2V0IiwiZWFjaCIsIiR0aGlzIiwiZGF0YSIsImV4dGVuZCIsIkRFRkFVTFRTIiwic2hvdyIsIlZFUlNJT04iLCJUUkFOU0lUSU9OX0RVUkFUSU9OIiwiQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTiIsImJhY2tkcm9wIiwia2V5Ym9hcmQiLCJ0b2dnbGUiLCJoaWRlIiwidGhhdCIsImUiLCJFdmVudCIsInJlbGF0ZWRUYXJnZXQiLCJpc0RlZmF1bHRQcmV2ZW50ZWQiLCJjaGVja1Njcm9sbGJhciIsInNldFNjcm9sbGJhciIsImFkZENsYXNzIiwiZXNjYXBlIiwicmVzaXplIiwib24iLCJvbmUiLCJ0YXJnZXQiLCJpcyIsInRyYW5zaXRpb24iLCJzdXBwb3J0IiwiaGFzQ2xhc3MiLCJwYXJlbnQiLCJsZW5ndGgiLCJhcHBlbmRUbyIsInNjcm9sbFRvcCIsImFkanVzdERpYWxvZyIsIm9mZnNldFdpZHRoIiwiZW5mb3JjZUZvY3VzIiwiZW11bGF0ZVRyYW5zaXRpb25FbmQiLCJwcmV2ZW50RGVmYXVsdCIsIm9mZiIsInJlbW92ZUNsYXNzIiwiaGlkZU1vZGFsIiwiaGFzIiwid2hpY2giLCJ3aW5kb3ciLCJoYW5kbGVVcGRhdGUiLCJyZXNldEFkanVzdG1lbnRzIiwicmVzZXRTY3JvbGxiYXIiLCJyZW1vdmVCYWNrZHJvcCIsInJlbW92ZSIsImNhbGxiYWNrIiwiY2FsbGJhY2tSZW1vdmUiLCJhbmltYXRlIiwiZG9BbmltYXRlIiwiY3JlYXRlRWxlbWVudCIsImN1cnJlbnRUYXJnZXQiLCJmb2N1cyIsIm1vZGFsSXNPdmVyZmxvd2luZyIsInNjcm9sbEhlaWdodCIsImRvY3VtZW50RWxlbWVudCIsImNsaWVudEhlaWdodCIsImNzcyIsInBhZGRpbmdMZWZ0IiwiYm9keUlzT3ZlcmZsb3dpbmciLCJwYWRkaW5nUmlnaHQiLCJkb2N1bWVudEVsZW1lbnRSZWN0IiwiZnVsbFdpbmRvd1dpZHRoIiwiaW5uZXJXaWR0aCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsInJpZ2h0IiwiTWF0aCIsImFicyIsImxlZnQiLCJjbGllbnRXaWR0aCIsIm1lYXN1cmVTY3JvbGxiYXIiLCJib2R5UGFkIiwicGFyc2VJbnQiLCJzdHlsZSIsInNjcm9sbERpdiIsImNsYXNzTmFtZSIsImFwcGVuZCIsInJlbW92ZUNoaWxkIiwib2xkIiwid3BiY19teV9tb2RhbCIsIkNvbnN0cnVjdG9yIiwibm9Db25mbGljdCIsImhyZWYiLCJhdHRyIiwiJHRhcmdldCIsInJlcGxhY2UiLCJ0ZXN0Iiwic2hvd0V2ZW50IiwiY2FsbCIsIkRyb3Bkb3duIiwiZ2V0UGFyZW50Iiwic2VsZWN0b3IiLCIkcGFyZW50IiwiY2xlYXJNZW51cyIsInR5cGUiLCJ0YWdOYW1lIiwiY29udGFpbnMiLCJpc0FjdGl2ZSIsImNsb3Nlc3QiLCJpbnNlcnRBZnRlciIsInRvZ2dsZUNsYXNzIiwia2V5ZG93biIsInN0b3BQcm9wYWdhdGlvbiIsImRlc2MiLCIkaXRlbXMiLCJpbmRleCIsImVxIiwid3BiY19kcm9wZG93biJdLCJtYXBwaW5ncyI6ImFBRUEsU0FBU0EsUUFBUUMsR0FBa0MsT0FBT0QsUUFBVSxtQkFBcUJFLFFBQVUsaUJBQW1CQSxPQUFPQyxTQUFXLFNBQVVGLEdBQU8sY0FBY0EsR0FBUyxTQUFVQSxHQUFPLE9BQU9BLEdBQU8sbUJBQXFCQyxRQUFVRCxFQUFJRyxj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
|
assets/libs/ui/_src/dropdown_modal.js
CHANGED
@@ -455,7 +455,7 @@ if (typeof jQuery === 'undefined') {
|
|
455 |
}
|
456 |
|
457 |
var desc = ' li:not(.disabled):visible a'
|
458 |
-
var $items = $parent.find('.dropdown-menu' + desc)
|
459 |
|
460 |
if (!$items.length) return
|
461 |
|
@@ -506,5 +506,6 @@ if (typeof jQuery === 'undefined') {
|
|
506 |
.on('click.wpbc.dropdown.data-api', toggle, Dropdown.prototype.toggle)
|
507 |
.on('keydown.wpbc.dropdown.data-api', toggle, Dropdown.prototype.keydown)
|
508 |
.on('keydown.wpbc.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
|
|
|
509 |
|
510 |
}(jQuery);
|
455 |
}
|
456 |
|
457 |
var desc = ' li:not(.disabled):visible a'
|
458 |
+
var $items = $parent.find('.dropdown-menu' + desc + ',.ui_dropdown_menu' + desc)
|
459 |
|
460 |
if (!$items.length) return
|
461 |
|
506 |
.on('click.wpbc.dropdown.data-api', toggle, Dropdown.prototype.toggle)
|
507 |
.on('keydown.wpbc.dropdown.data-api', toggle, Dropdown.prototype.keydown)
|
508 |
.on('keydown.wpbc.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
|
509 |
+
.on('keydown.wpbc.dropdown.data-api', '.ui_dropdown_menu', Dropdown.prototype.keydown)
|
510 |
|
511 |
}(jQuery);
|
assets/libs/wpbc_js_print/wpbc_js_print.js
CHANGED
@@ -1,7 +1,8 @@
|
|
1 |
/*
|
2 |
-
*
|
3 |
* @desc Printing plug-in for jQuery
|
4 |
* @author Jason Day
|
|
|
5 |
*
|
6 |
* Resources (based on):
|
7 |
* - jPrintArea: http://plugins.jquery.com/project/jPrintArea
|
@@ -11,28 +12,29 @@
|
|
11 |
* Licensed under the MIT licence:
|
12 |
* http://www.opensource.org/licenses/mit-license.php
|
13 |
*
|
14 |
-
* (c) Jason Day 2015-
|
15 |
*
|
16 |
* Usage:
|
17 |
*
|
18 |
* $("#mySelector").wpbc_js_print({
|
19 |
* debug: false, // show the iframe for debugging
|
20 |
* importCSS: true, // import parent page css
|
21 |
-
* importStyle:
|
22 |
* printContainer: true, // grab outer container as well as the contents of the selector
|
23 |
* loadCSS: "path/to/my.css", // path to additional css file - use an array [] for multiple
|
24 |
* pageTitle: "", // add title to print page
|
25 |
* removeInline: false, // remove all inline styles from print elements
|
26 |
* removeInlineSelector: "body *", // custom selectors to filter inline styles. removeInline must be true
|
27 |
-
* printDelay:
|
28 |
* header: null, // prefix to html
|
29 |
* footer: null, // postfix to html
|
30 |
* base: false, // preserve the BASE tag, or accept a string for the URL
|
31 |
* formValues: true, // preserve input/form values
|
32 |
-
* canvas:
|
33 |
* doctypeString: '...', // enter a different doctype for older markup
|
34 |
* removeScripts: false, // remove script tags from print content
|
35 |
-
* copyTagClasses:
|
|
|
36 |
* beforePrintEvent: null, // callback function for printEvent in iframe
|
37 |
* beforePrint: null, // function called before iframe is filled
|
38 |
* afterPrint: null // function called before iframe is removed
|
@@ -209,6 +211,18 @@
|
|
209 |
}
|
210 |
}
|
211 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
212 |
// print header
|
213 |
appendContent($body, opt.header);
|
214 |
|
@@ -311,25 +325,26 @@
|
|
311 |
|
312 |
// defaults
|
313 |
$.fn.wpbc_js_print.defaults = {
|
314 |
-
debug: false,
|
315 |
-
importCSS: true,
|
316 |
-
importStyle:
|
317 |
-
printContainer: true,
|
318 |
-
loadCSS: "",
|
319 |
-
pageTitle: "",
|
320 |
-
removeInline: false,
|
321 |
-
removeInlineSelector: "*",
|
322 |
-
printDelay:
|
323 |
-
header: null,
|
324 |
-
footer: null,
|
325 |
-
base: false,
|
326 |
-
formValues: true,
|
327 |
-
canvas:
|
328 |
-
doctypeString: '<!DOCTYPE html>',
|
329 |
-
removeScripts: false,
|
330 |
-
copyTagClasses:
|
331 |
-
|
332 |
-
|
333 |
-
|
|
|
334 |
};
|
335 |
})(jQuery);
|
1 |
/*
|
2 |
+
* wpbc_js_print v2.0.0
|
3 |
* @desc Printing plug-in for jQuery
|
4 |
* @author Jason Day
|
5 |
+
* @author Samuel Rouse
|
6 |
*
|
7 |
* Resources (based on):
|
8 |
* - jPrintArea: http://plugins.jquery.com/project/jPrintArea
|
12 |
* Licensed under the MIT licence:
|
13 |
* http://www.opensource.org/licenses/mit-license.php
|
14 |
*
|
15 |
+
* (c) Jason Day 2015-2022
|
16 |
*
|
17 |
* Usage:
|
18 |
*
|
19 |
* $("#mySelector").wpbc_js_print({
|
20 |
* debug: false, // show the iframe for debugging
|
21 |
* importCSS: true, // import parent page css
|
22 |
+
* importStyle: true, // import style tags
|
23 |
* printContainer: true, // grab outer container as well as the contents of the selector
|
24 |
* loadCSS: "path/to/my.css", // path to additional css file - use an array [] for multiple
|
25 |
* pageTitle: "", // add title to print page
|
26 |
* removeInline: false, // remove all inline styles from print elements
|
27 |
* removeInlineSelector: "body *", // custom selectors to filter inline styles. removeInline must be true
|
28 |
+
* printDelay: 1000, // variable print delay
|
29 |
* header: null, // prefix to html
|
30 |
* footer: null, // postfix to html
|
31 |
* base: false, // preserve the BASE tag, or accept a string for the URL
|
32 |
* formValues: true, // preserve input/form values
|
33 |
+
* canvas: true, // copy canvas elements
|
34 |
* doctypeString: '...', // enter a different doctype for older markup
|
35 |
* removeScripts: false, // remove script tags from print content
|
36 |
+
* copyTagClasses: true // copy classes from the html & body tag
|
37 |
+
* copyTagStyles: true, // copy styles from html & body tag (for CSS Variables)
|
38 |
* beforePrintEvent: null, // callback function for printEvent in iframe
|
39 |
* beforePrint: null, // function called before iframe is filled
|
40 |
* afterPrint: null // function called before iframe is removed
|
211 |
}
|
212 |
}
|
213 |
|
214 |
+
// copy ':root' tag classes
|
215 |
+
tag = opt.copyTagStyles;
|
216 |
+
if (tag) {
|
217 |
+
tag = tag === true ? 'bh' : tag;
|
218 |
+
if (tag.indexOf('b') !== -1) {
|
219 |
+
$body.attr('style', $('body')[0].style.cssText);
|
220 |
+
}
|
221 |
+
if (tag.indexOf('h') !== -1) {
|
222 |
+
$doc.find('html').attr('style', pageHtml.style.cssText);
|
223 |
+
}
|
224 |
+
}
|
225 |
+
|
226 |
// print header
|
227 |
appendContent($body, opt.header);
|
228 |
|
325 |
|
326 |
// defaults
|
327 |
$.fn.wpbc_js_print.defaults = {
|
328 |
+
debug: false, // show the iframe for debugging
|
329 |
+
importCSS: true, // import parent page css
|
330 |
+
importStyle: true, // import style tags
|
331 |
+
printContainer: true, // print outer container/$.selector
|
332 |
+
loadCSS: "", // path to additional css file - use an array [] for multiple
|
333 |
+
pageTitle: "", // add title to print page
|
334 |
+
removeInline: false, // remove inline styles from print elements
|
335 |
+
removeInlineSelector: "*", // custom selectors to filter inline styles. removeInline must be true
|
336 |
+
printDelay: 1000, // variable print delay
|
337 |
+
header: null, // prefix to html
|
338 |
+
footer: null, // postfix to html
|
339 |
+
base: false, // preserve the BASE tag or accept a string for the URL
|
340 |
+
formValues: true, // preserve input/form values
|
341 |
+
canvas: true, // copy canvas content
|
342 |
+
doctypeString: '<!DOCTYPE html>', // enter a different doctype for older markup
|
343 |
+
removeScripts: false, // remove script tags from print content
|
344 |
+
copyTagClasses: true, // copy classes from the html & body tag
|
345 |
+
copyTagStyles: true, // copy styles from html & body tag (for CSS Variables)
|
346 |
+
beforePrintEvent: null, // callback function for printEvent in iframe
|
347 |
+
beforePrint: null, // function called before iframe is filled
|
348 |
+
afterPrint: null // function called before iframe is removed
|
349 |
};
|
350 |
})(jQuery);
|
core/admin/api-settings.php
CHANGED
@@ -56,10 +56,10 @@ class WPBC_Settings_API_General extends WPBC_Settings_API {
|
|
56 |
$upload_dir = wp_upload_dir();
|
57 |
//FixIn: 8.9.4.8
|
58 |
$files_in_folder = wpbc_dir_list( array( WPBC_PLUGIN_DIR . '/css/skins/', $upload_dir['basedir'].'/wpbc_skins/' ) ); // Folders where to look about calendar skins
|
59 |
-
|
60 |
foreach ( $files_in_folder as $skin_file ) { // Example: $skin_file['/css/skins/standard.css'] => 'Standard';
|
61 |
-
|
62 |
-
|
|
|
63 |
$calendar_skins_options[ $skin_file[1] ] = $skin_file[2];
|
64 |
}
|
65 |
|
@@ -183,8 +183,8 @@ class WPBC_Settings_API_General extends WPBC_Settings_API {
|
|
183 |
$files_in_folder = wpbc_dir_list( array( WPBC_PLUGIN_DIR . '/css/time_picker_skins/', $upload_dir['basedir'].'/wpbc_time_picker_skins/' ) ); // Folders where to look about Time Picker skins
|
184 |
|
185 |
foreach ( $files_in_folder as $skin_file ) { // Example: $skin_file['/css/skins/standard.css'] => 'Standard';
|
186 |
-
//FixIn: 8.9.4.8
|
187 |
-
$skin_file[1] = str_replace( array(
|
188 |
$timeslot_picker_skins_options[ $skin_file[1] ] = $skin_file[2];
|
189 |
}
|
190 |
|
56 |
$upload_dir = wp_upload_dir();
|
57 |
//FixIn: 8.9.4.8
|
58 |
$files_in_folder = wpbc_dir_list( array( WPBC_PLUGIN_DIR . '/css/skins/', $upload_dir['basedir'].'/wpbc_skins/' ) ); // Folders where to look about calendar skins
|
|
|
59 |
foreach ( $files_in_folder as $skin_file ) { // Example: $skin_file['/css/skins/standard.css'] => 'Standard';
|
60 |
+
|
61 |
+
//FixIn: 8.9.4.8 //FixIn: 9.1.2.10
|
62 |
+
$skin_file[1] = str_replace( array( WPBC_PLUGIN_DIR, WPBC_PLUGIN_URL , $upload_dir['basedir'] ), '', $skin_file[1] ); // Get relative path for calendar skin
|
63 |
$calendar_skins_options[ $skin_file[1] ] = $skin_file[2];
|
64 |
}
|
65 |
|
183 |
$files_in_folder = wpbc_dir_list( array( WPBC_PLUGIN_DIR . '/css/time_picker_skins/', $upload_dir['basedir'].'/wpbc_time_picker_skins/' ) ); // Folders where to look about Time Picker skins
|
184 |
|
185 |
foreach ( $files_in_folder as $skin_file ) { // Example: $skin_file['/css/skins/standard.css'] => 'Standard';
|
186 |
+
//FixIn: 8.9.4.8 //FixIn: 9.1.2.10
|
187 |
+
$skin_file[1] = str_replace( array( WPBC_PLUGIN_DIR, WPBC_PLUGIN_URL, $upload_dir['basedir'] ), '', $skin_file[1] ); // Get relative path for Time Picker skin
|
188 |
$timeslot_picker_skins_options[ $skin_file[1] ] = $skin_file[2];
|
189 |
}
|
190 |
|
core/admin/page-bookings.php
CHANGED
@@ -145,7 +145,12 @@ function wpbc_define_listing_page_parameters( $page_tag ) {
|
|
145 |
// Execute it only for Booking Listing & Timeline admin pages.
|
146 |
//if ( ( isset( $_GET[ 'page' ] ) ) && ( $_GET[ 'page' ] == 'wpbc' ) ) {
|
147 |
|
148 |
-
if ( wpbc_is_bookings_page() ) { // We are inside of this page. Menu item selected.
|
|
|
|
|
|
|
|
|
|
|
149 |
// Get saved filters set, (if its not set in request yet), like "tab" & "view_mode" and overload $_REQUEST
|
150 |
wpbc_set_default_saved_params_to_request_for_booking_listing( 'default' );
|
151 |
}
|
145 |
// Execute it only for Booking Listing & Timeline admin pages.
|
146 |
//if ( ( isset( $_GET[ 'page' ] ) ) && ( $_GET[ 'page' ] == 'wpbc' ) ) {
|
147 |
|
148 |
+
if ( wpbc_is_bookings_page() ) { // We are inside of this page. Menu item selected.
|
149 |
+
|
150 |
+
if ( ( isset( $_REQUEST['view_mode'] ) ) && ( 'vm_booking_listing' === $_REQUEST['view_mode'] ) ) { //FixIn: 9.2.0
|
151 |
+
return;
|
152 |
+
}
|
153 |
+
|
154 |
// Get saved filters set, (if its not set in request yet), like "tab" & "view_mode" and overload $_REQUEST
|
155 |
wpbc_set_default_saved_params_to_request_for_booking_listing( 'default' );
|
156 |
}
|
core/admin/page-email-new-visitor.php
CHANGED
@@ -704,7 +704,7 @@ class WPBC_Settings_Page_Email_NewVisitor extends WPBC_Page_Structure {
|
|
704 |
onclick="javascript: jQuery('#form_action').val('test_send'); jQuery('form#<?php echo $submit_form_name_action; ?>').trigger( 'submit' );"
|
705 |
><?php _e('Send Test Email', 'booking'); ?></a><?php
|
706 |
|
707 |
-
?><input type="submit" value="<?php
|
708 |
|
709 |
/* ?>
|
710 |
<a class="button button-secondary" href="javascript:void(0)" ><?php _e('Preview Email', 'booking'); ?></a>
|
@@ -740,7 +740,7 @@ class WPBC_Settings_Page_Email_NewVisitor extends WPBC_Page_Structure {
|
|
740 |
<div class="clear"></div>
|
741 |
</div>
|
742 |
|
743 |
-
<input type="submit" value="<?php
|
744 |
</form>
|
745 |
</span>
|
746 |
<?php
|
704 |
onclick="javascript: jQuery('#form_action').val('test_send'); jQuery('form#<?php echo $submit_form_name_action; ?>').trigger( 'submit' );"
|
705 |
><?php _e('Send Test Email', 'booking'); ?></a><?php
|
706 |
|
707 |
+
?><input type="submit" value="<?php esc_attr_e('Save Changes', 'booking'); ?>" class="button button-primary right" style="margin:0 0 5px 5px;" /><?php
|
708 |
|
709 |
/* ?>
|
710 |
<a class="button button-secondary" href="javascript:void(0)" ><?php _e('Preview Email', 'booking'); ?></a>
|
740 |
<div class="clear"></div>
|
741 |
</div>
|
742 |
|
743 |
+
<input type="submit" value="<?php esc_attr_e('Save Changes', 'booking'); ?>" class="button button-primary" />
|
744 |
</form>
|
745 |
</span>
|
746 |
<?php
|
core/admin/page-ics-general.php
CHANGED
@@ -220,15 +220,23 @@ class WPBC_API_SettingsGeneralSync extends WPBC_Settings_API {
|
|
220 |
, 'description' => ''
|
221 |
, 'group' => 'import_advanced'
|
222 |
);
|
223 |
-
//FixIn: 8.4.7.12
|
224 |
$this->fields['booking_ics_force_trash_before_import'] = array(
|
225 |
-
'type'
|
226 |
-
, 'default'
|
227 |
-
, 'title'
|
228 |
-
, '
|
229 |
-
, '
|
|
|
|
|
|
|
|
|
|
|
|
|
230 |
, 'group' => 'import_advanced'
|
231 |
-
|
|
|
|
|
232 |
////////////////////////////////////////////////////////////////////////
|
233 |
|
234 |
}
|
220 |
, 'description' => ''
|
221 |
, 'group' => 'import_advanced'
|
222 |
);
|
223 |
+
//FixIn: 8.4.7.12 //FixIn: //FixIn: 9.1.2.6
|
224 |
$this->fields['booking_ics_force_trash_before_import'] = array(
|
225 |
+
'type' => 'select'
|
226 |
+
, 'default' => 'Off'
|
227 |
+
, 'title' => __('Trash / delete all imported bookings before new import', 'booking')
|
228 |
+
, 'description' => __('Move all previously imported bookings to trash or permanently delete before new import bookings. Its can resolve issue of updating deleted and edited events in external sources. Its work only, if you are using one source (.ics feed) for importing into specific booking resource!' ,'booking')
|
229 |
+
, 'description_tag' => 'p'
|
230 |
+
, 'css' => ''
|
231 |
+
, 'options' => array (
|
232 |
+
'Off' => __('Do nothing'),
|
233 |
+
'On' => __('Trash imported bookings'),
|
234 |
+
'delete' => __('Permanently delete'),
|
235 |
+
)
|
236 |
, 'group' => 'import_advanced'
|
237 |
+
);
|
238 |
+
|
239 |
+
|
240 |
////////////////////////////////////////////////////////////////////////
|
241 |
|
242 |
}
|
core/admin/wpbc-class-listing.php
CHANGED
@@ -130,13 +130,13 @@ class WPBC_Booking_Listing_Table {
|
|
130 |
<div class="wpbc-listing-collumn col-sm-3 hide-sm text-center wpbc_column_5"><?php _e('Booking Dates', 'booking'); ?>
|
131 |
<a id="booking_dates_full"
|
132 |
onclick="javascript:jQuery('#booking_dates_full,.booking_dates_small').hide();jQuery('#booking_dates_small,.booking_dates_full').show();" href="javascript:void(0)"
|
133 |
-
title="<?php
|
134 |
style="<?php echo $this->days_column_style['short']; ?>"
|
135 |
class="tooltip_top"
|
136 |
><i class="wpbc_icn_swap_horiz" style=" margin-top: 2px;"></i></a>
|
137 |
<a id="booking_dates_small"
|
138 |
onclick="javascript:jQuery('#booking_dates_small,.booking_dates_full').hide();jQuery('#booking_dates_full,.booking_dates_small').show();" href="javascript:void(0)"
|
139 |
-
title="<?php
|
140 |
style="<?php echo $this->days_column_style['wide']; ?>"
|
141 |
class="tooltip_top"
|
142 |
><i class="wpbc_icn_compare_arrows" style=" margin-top: 2px;"></i></a>
|
@@ -299,7 +299,7 @@ class WPBC_Booking_Listing_Table {
|
|
299 |
<a href="javascript:void(0)"
|
300 |
onclick="javascript:mark_read_booking( '<?php echo $row_data[ 'id' ]; ?>', 0, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' );"
|
301 |
class="tooltip_right approve_bk_link"
|
302 |
-
title="<?php
|
303 |
><i class="wpbc_icn_visibility"></i></a>
|
304 |
</div><?php
|
305 |
|
@@ -395,19 +395,19 @@ class WPBC_Booking_Listing_Table {
|
|
395 |
?><a href="javascript:void(0)"
|
396 |
onclick="javascript:if ( wpbc_are_you_sure('<?php echo esc_js(__('Do you really want to do this ?' ,'booking')); ?>') ) trash__restore_booking( 1, <?php echo $row_data[ 'id' ]; ?>, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' , 1 );"
|
397 |
class="tooltip_top button-secondary button trash_bk_link <?php if ( $row_data['is_trash'] ) echo ' hidden_items '; ?>"
|
398 |
-
title="<?php
|
399 |
><i class="wpbc_icn_delete_outline"></i></a><?php
|
400 |
// Restore
|
401 |
?><a href="javascript:void(0)"
|
402 |
onclick="javascript:if ( wpbc_are_you_sure('<?php echo esc_js(__('Do you really want to do this ?' ,'booking')); ?>') ) trash__restore_booking( 0, <?php echo $row_data[ 'id' ]; ?>, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' , 1 );"
|
403 |
class="tooltip_top button-secondary button restore_bk_link <?php if ( ! $row_data['is_trash'] ) echo ' hidden_items '; ?>"
|
404 |
-
title="<?php
|
405 |
><i class="wpbc_icn_rotate_left"></i></a><?php
|
406 |
// Delete
|
407 |
?><a href="javascript:void(0)"
|
408 |
onclick="javascript:if ( wpbc_are_you_sure('<?php echo esc_js(__('Do you really want to delete this booking ?' ,'booking')); ?>') ) delete_booking(<?php echo $row_data[ 'id' ]; ?>, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' , 1 );"
|
409 |
class="tooltip_top button-secondary button delete_bk_link <?php if ( ! $row_data['is_trash'] ) echo ' hidden_items '; ?>"
|
410 |
-
title="<?php
|
411 |
><i class="wpbc_icn_close"></i></a><?php
|
412 |
//End FixIn: 6.1.1.10
|
413 |
|
@@ -416,14 +416,14 @@ class WPBC_Booking_Listing_Table {
|
|
416 |
?><a href="javascript:void(0)"
|
417 |
onclick="javascript:approve_unapprove_booking(<?php echo $row_data[ 'id' ]; ?>,1,<?php echo $this->user_id; ?>,'<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>',1);"
|
418 |
class="tooltip_top approve_bk_link button-secondary button <?php if ($row_data['is_approved']) echo ' hidden_items '; ?> "
|
419 |
-
title="<?php
|
420 |
><i class="wpbc_icn_check_circle_outline"></i></a><?php
|
421 |
|
422 |
// Reject
|
423 |
?><a href="javascript:void(0)"
|
424 |
onclick="javascript:if ( wpbc_are_you_sure('<?php echo esc_js(__('Do you really want to set booking as pending ?' ,'booking')); ?>') ) approve_unapprove_booking(<?php echo $row_data[ 'id' ]; ?>,0, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' , 1 );"
|
425 |
class="tooltip_top pending_bk_link button-secondary button <?php if (! $row_data['is_approved']) echo ' hidden_items '; ?> "
|
426 |
-
title="<?php
|
427 |
><i class="wpbc_icn_block"></i></a><?php
|
428 |
|
429 |
?></div><?php
|
130 |
<div class="wpbc-listing-collumn col-sm-3 hide-sm text-center wpbc_column_5"><?php _e('Booking Dates', 'booking'); ?>
|
131 |
<a id="booking_dates_full"
|
132 |
onclick="javascript:jQuery('#booking_dates_full,.booking_dates_small').hide();jQuery('#booking_dates_small,.booking_dates_full').show();" href="javascript:void(0)"
|
133 |
+
title="<?php esc_attr_e('Show ALL dates of booking' ,'booking'); ?>"
|
134 |
style="<?php echo $this->days_column_style['short']; ?>"
|
135 |
class="tooltip_top"
|
136 |
><i class="wpbc_icn_swap_horiz" style=" margin-top: 2px;"></i></a>
|
137 |
<a id="booking_dates_small"
|
138 |
onclick="javascript:jQuery('#booking_dates_small,.booking_dates_full').hide();jQuery('#booking_dates_full,.booking_dates_small').show();" href="javascript:void(0)"
|
139 |
+
title="<?php esc_attr_e('Show only check in/out dates' ,'booking'); ?>"
|
140 |
style="<?php echo $this->days_column_style['wide']; ?>"
|
141 |
class="tooltip_top"
|
142 |
><i class="wpbc_icn_compare_arrows" style=" margin-top: 2px;"></i></a>
|
299 |
<a href="javascript:void(0)"
|
300 |
onclick="javascript:mark_read_booking( '<?php echo $row_data[ 'id' ]; ?>', 0, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' );"
|
301 |
class="tooltip_right approve_bk_link"
|
302 |
+
title="<?php esc_attr_e('New booking' ,'booking'); ?>"
|
303 |
><i class="wpbc_icn_visibility"></i></a>
|
304 |
</div><?php
|
305 |
|
395 |
?><a href="javascript:void(0)"
|
396 |
onclick="javascript:if ( wpbc_are_you_sure('<?php echo esc_js(__('Do you really want to do this ?' ,'booking')); ?>') ) trash__restore_booking( 1, <?php echo $row_data[ 'id' ]; ?>, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' , 1 );"
|
397 |
class="tooltip_top button-secondary button trash_bk_link <?php if ( $row_data['is_trash'] ) echo ' hidden_items '; ?>"
|
398 |
+
title="<?php esc_attr_e('Reject - move to trash' ,'booking'); ?>"
|
399 |
><i class="wpbc_icn_delete_outline"></i></a><?php
|
400 |
// Restore
|
401 |
?><a href="javascript:void(0)"
|
402 |
onclick="javascript:if ( wpbc_are_you_sure('<?php echo esc_js(__('Do you really want to do this ?' ,'booking')); ?>') ) trash__restore_booking( 0, <?php echo $row_data[ 'id' ]; ?>, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' , 1 );"
|
403 |
class="tooltip_top button-secondary button restore_bk_link <?php if ( ! $row_data['is_trash'] ) echo ' hidden_items '; ?>"
|
404 |
+
title="<?php esc_attr_e('Restore' ,'booking'); ?>"
|
405 |
><i class="wpbc_icn_rotate_left"></i></a><?php
|
406 |
// Delete
|
407 |
?><a href="javascript:void(0)"
|
408 |
onclick="javascript:if ( wpbc_are_you_sure('<?php echo esc_js(__('Do you really want to delete this booking ?' ,'booking')); ?>') ) delete_booking(<?php echo $row_data[ 'id' ]; ?>, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' , 1 );"
|
409 |
class="tooltip_top button-secondary button delete_bk_link <?php if ( ! $row_data['is_trash'] ) echo ' hidden_items '; ?>"
|
410 |
+
title="<?php esc_attr_e('Completely Delete' ,'booking'); ?>"
|
411 |
><i class="wpbc_icn_close"></i></a><?php
|
412 |
//End FixIn: 6.1.1.10
|
413 |
|
416 |
?><a href="javascript:void(0)"
|
417 |
onclick="javascript:approve_unapprove_booking(<?php echo $row_data[ 'id' ]; ?>,1,<?php echo $this->user_id; ?>,'<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>',1);"
|
418 |
class="tooltip_top approve_bk_link button-secondary button <?php if ($row_data['is_approved']) echo ' hidden_items '; ?> "
|
419 |
+
title="<?php esc_attr_e('Approve' ,'booking'); ?>"
|
420 |
><i class="wpbc_icn_check_circle_outline"></i></a><?php
|
421 |
|
422 |
// Reject
|
423 |
?><a href="javascript:void(0)"
|
424 |
onclick="javascript:if ( wpbc_are_you_sure('<?php echo esc_js(__('Do you really want to set booking as pending ?' ,'booking')); ?>') ) approve_unapprove_booking(<?php echo $row_data[ 'id' ]; ?>,0, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' , 1 );"
|
425 |
class="tooltip_top pending_bk_link button-secondary button <?php if (! $row_data['is_approved']) echo ' hidden_items '; ?> "
|
426 |
+
title="<?php esc_attr_e('Pending' ,'booking'); ?>"
|
427 |
><i class="wpbc_icn_block"></i></a><?php
|
428 |
|
429 |
?></div><?php
|
core/admin/wpbc-toolbars.php
CHANGED
@@ -377,7 +377,7 @@ function wpbc_toolbar_is_send_emails_btn() {
|
|
377 |
<?php } ?>
|
378 |
id="is_send_email_for_pending" name="is_send_email_for_pending" class="tooltip_top"
|
379 |
title="<?php echo esc_js( __( 'Send email notification to customer after approval, cancellation or deletion of bookings', 'booking' ) ); ?>"
|
380 |
-
/><?php _e( 'Emails sending', 'booking' ) ?>
|
381 |
</label>
|
382 |
</fieldset>
|
383 |
</div>
|
@@ -462,13 +462,25 @@ function wpbc_toolbar_btn__view_mode() {
|
|
462 |
$bk_admin_url = wpbc_get_params_in_url( wpbc_get_bookings_url( false ), array('view_mode', 'wh_booking_id', 'page_num' ) );
|
463 |
|
464 |
$params = array();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
465 |
$params['btn_vm_listing'] = array(
|
466 |
'title' => ''
|
467 |
, 'hint' => array( 'title' => __('Booking Listing' ,'booking') , 'position' => 'top' )
|
468 |
, 'selected' => ( $selected_view_mode == 'vm_listing' ) ? true : false
|
469 |
, 'link' => $bk_admin_url . '&view_mode=vm_listing'
|
470 |
, 'icon' => ''
|
471 |
-
, 'font_icon' => 'wpbc-bi-collection'//'glyphicon glyphicon-align-justify'
|
472 |
);
|
473 |
|
474 |
|
@@ -486,7 +498,7 @@ function wpbc_toolbar_btn__view_mode() {
|
|
486 |
, 'font_icon' => 'wpbc-bi-calendar2-range'// 'glyphicon glyphicon-calendar'
|
487 |
);
|
488 |
|
489 |
-
?><div style="position:absolute;"><?php
|
490 |
|
491 |
wpbc_bs_vertical_buttons_group( $params );
|
492 |
|
@@ -2083,7 +2095,7 @@ sprop:
|
|
2083 |
|
2084 |
?><a href="<?php echo $link_add2gcal; ?>" target="_blank" rel="nofollow"
|
2085 |
class="tooltip_top <?php echo esc_attr( $button_attr['class'] ) ?>"
|
2086 |
-
title="<?php echo
|
2087 |
><?php
|
2088 |
if ( $button_attr['is_show_icon'] ) {
|
2089 |
?><i class="wpbc_icn_event"></i><?php //FixIn: 9.0.1.4 glyphicon icon-1x glyphicon-export
|
377 |
<?php } ?>
|
378 |
id="is_send_email_for_pending" name="is_send_email_for_pending" class="tooltip_top"
|
379 |
title="<?php echo esc_js( __( 'Send email notification to customer after approval, cancellation or deletion of bookings', 'booking' ) ); ?>"
|
380 |
+
/><?php _e( 'Emails sending', 'booking' ); ?>
|
381 |
</label>
|
382 |
</fieldset>
|
383 |
</div>
|
462 |
$bk_admin_url = wpbc_get_params_in_url( wpbc_get_bookings_url( false ), array('view_mode', 'wh_booking_id', 'page_num' ) );
|
463 |
|
464 |
$params = array();
|
465 |
+
|
466 |
+
if ( function_exists( 'wpbc_ajx_get__request_params__names_default' ) ) {
|
467 |
+
$params['btn_vm_listing_new'] = array(
|
468 |
+
'title' => ''
|
469 |
+
, 'hint' => array( 'title' => __('Booking Listing' ,'booking') , 'position' => 'top' )
|
470 |
+
, 'selected' => ( $selected_view_mode == 'vm_booking_listing' ) ? true : false
|
471 |
+
, 'link' => wpbc_get_bookings_url('booking-listing', true ) . '&view_mode=vm_booking_listing'
|
472 |
+
, 'icon' => ''
|
473 |
+
, 'font_icon' => 'wpbc-bi-collection'//'glyphicon glyphicon-align-justify'
|
474 |
+
);
|
475 |
+
}
|
476 |
+
|
477 |
$params['btn_vm_listing'] = array(
|
478 |
'title' => ''
|
479 |
, 'hint' => array( 'title' => __('Booking Listing' ,'booking') , 'position' => 'top' )
|
480 |
, 'selected' => ( $selected_view_mode == 'vm_listing' ) ? true : false
|
481 |
, 'link' => $bk_admin_url . '&view_mode=vm_listing'
|
482 |
, 'icon' => ''
|
483 |
+
, 'font_icon' => ( function_exists( 'wpbc_ajx_get__request_params__names_default' ) ) ? 'wpbc-bi-card-list' : 'wpbc-bi-collection'//'glyphicon glyphicon-align-justify'
|
484 |
);
|
485 |
|
486 |
|
498 |
, 'font_icon' => 'wpbc-bi-calendar2-range'// 'glyphicon glyphicon-calendar'
|
499 |
);
|
500 |
|
501 |
+
?><div style="position:absolute;" class="wpbc_mode_switcher"><?php
|
502 |
|
503 |
wpbc_bs_vertical_buttons_group( $params );
|
504 |
|
2095 |
|
2096 |
?><a href="<?php echo $link_add2gcal; ?>" target="_blank" rel="nofollow"
|
2097 |
class="tooltip_top <?php echo esc_attr( $button_attr['class'] ) ?>"
|
2098 |
+
title="<?php echo esc_attr( $button_attr['hint'] ); ?>"
|
2099 |
><?php
|
2100 |
if ( $button_attr['is_show_icon'] ) {
|
2101 |
?><i class="wpbc_icn_event"></i><?php //FixIn: 9.0.1.4 glyphicon icon-1x glyphicon-export
|
core/any/admin-bs-ui.php
CHANGED
@@ -1768,8 +1768,10 @@ function wpbc_bs_display_tab( $args = array() ) {
|
|
1768 |
|
1769 |
// Text
|
1770 |
|
1771 |
-
?><span class="<?php echo ( $is_icon_showed ) ? 'nav-tab-text' : ''; ?>" ><?php
|
1772 |
-
|
|
|
|
|
1773 |
echo $tab['title'];
|
1774 |
?></span><?php
|
1775 |
|
@@ -1852,133 +1854,74 @@ function wpbc_bs_javascript_tooltips() {
|
|
1852 |
?><span id="wpbc_tooltips_container"></span><?php
|
1853 |
//FixIn: 7.0.1.10
|
1854 |
?><script type="text/javascript">
|
1855 |
-
jQuery(document).ready( function(){
|
1856 |
|
1857 |
-
|
1858 |
-
|
1859 |
-
//FixIn: 9.0.1.1
|
1860 |
-
/**
|
1861 |
-
* Get Title to show in tooltip.
|
1862 |
-
* By default getting text from 'data-original-title' attribute, if not exist,
|
1863 |
-
* then checking 'title' attribute and replacing it by 'data-original-title'
|
1864 |
-
*
|
1865 |
-
* @param reference - Dom element
|
1866 |
-
* @returns string
|
1867 |
-
*/
|
1868 |
-
function wpbc_get_tippy_tooltip_title_text( reference ){
|
1869 |
-
var text2show = reference.getAttribute( 'data-original-title' );
|
1870 |
-
if ( null == text2show ){
|
1871 |
-
text2show = reference.getAttribute( 'title' );
|
1872 |
-
jQuery( reference ).attr( "data-original-title", jQuery( reference ).attr( "title" ) );
|
1873 |
-
jQuery( reference ).removeAttr( "title" );
|
1874 |
-
}
|
1875 |
-
return text2show;
|
1876 |
-
}
|
1877 |
|
1878 |
-
|
1879 |
-
content( reference ){
|
1880 |
-
return wpbc_get_tippy_tooltip_title_text( reference );
|
1881 |
-
},
|
1882 |
-
placement: 'top-start',
|
1883 |
-
} );
|
1884 |
-
wpbc_tippy( '.tooltip_bottom', {
|
1885 |
-
content( reference ){
|
1886 |
-
return wpbc_get_tippy_tooltip_title_text( reference );
|
1887 |
-
},
|
1888 |
-
placement: 'bottom-start',
|
1889 |
-
} );
|
1890 |
-
wpbc_tippy( '.tooltip_bottom', {
|
1891 |
-
content( reference ){
|
1892 |
-
return wpbc_get_tippy_tooltip_title_text( reference );
|
1893 |
-
},
|
1894 |
-
placement: 'bottom-start',
|
1895 |
-
} );
|
1896 |
-
wpbc_tippy( '.tooltip_right', {
|
1897 |
-
content( reference ){
|
1898 |
-
return wpbc_get_tippy_tooltip_title_text( reference );
|
1899 |
-
},
|
1900 |
-
placement: 'right',
|
1901 |
-
} );
|
1902 |
-
wpbc_tippy( '.tooltip_left', {
|
1903 |
-
content( reference ){
|
1904 |
-
return wpbc_get_tippy_tooltip_title_text( reference );
|
1905 |
-
},
|
1906 |
-
placement: 'left-start',
|
1907 |
-
} );
|
1908 |
-
|
1909 |
-
} else {
|
1910 |
alert( 'WPBC Error. JavaScript library "wpbc_tippy" was not defined.' );
|
|
|
1911 |
}
|
1912 |
-
|
1913 |
-
//
|
1914 |
-
|
1915 |
-
|
1916 |
-
|
1917 |
-
|
1918 |
-
|
1919 |
-
|
1920 |
-
|
1921 |
-
|
1922 |
-
|
1923 |
-
|
1924 |
-
|
1925 |
-
|
1926 |
-
|
1927 |
-
|
1928 |
-
} else {
|
1929 |
-
console.log('Warning! Booking Calendar. Its seems that you have deactivated loading of Bootstrap JS files at Booking Settings General page in Advanced section.')
|
1930 |
}
|
1931 |
-
|
1932 |
-
jQuery('.tooltip_left').tooltip( {
|
1933 |
-
animation: true
|
1934 |
-
, delay: { show: 500, hide: 100 }
|
1935 |
-
, selector: false
|
1936 |
-
, placement: 'left'
|
1937 |
-
, trigger: 'hover'
|
1938 |
-
, title: ''
|
1939 |
-
, template: '<div class="wpdevelop tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
|
1940 |
-
, container: '#wpbc_tooltips_container'
|
1941 |
-
, viewport: '#wpbody-content'
|
1942 |
-
});
|
1943 |
-
if ( 'function' === typeof( jQuery('.tooltip_top').tooltip ) )
|
1944 |
-
jQuery('.tooltip_top').tooltip( {
|
1945 |
-
animation: true
|
1946 |
-
, delay: { show: 500, hide: 100 }
|
1947 |
-
, selector: false
|
1948 |
-
, placement: 'top'
|
1949 |
-
, trigger: 'hover'
|
1950 |
-
, title: ''
|
1951 |
-
, template: '<div class="wpdevelop tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
|
1952 |
-
, container: '#wpbc_tooltips_container'
|
1953 |
-
, viewport: '#wpbody-content'
|
1954 |
-
});
|
1955 |
-
if ( 'function' === typeof( jQuery('.tooltip_bottom').tooltip ) )
|
1956 |
-
jQuery('.tooltip_bottom').tooltip( {
|
1957 |
-
animation: true
|
1958 |
-
, delay: { show: 500, hide: 100 }
|
1959 |
-
, selector: false
|
1960 |
-
, placement: 'bottom'
|
1961 |
-
, trigger: 'hover'
|
1962 |
-
, title: ''
|
1963 |
-
, template: '<div class="wpdevelop tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
|
1964 |
-
, container: '#wpbc_tooltips_container'
|
1965 |
-
, viewport: '#wpbody-content'
|
1966 |
-
});
|
1967 |
-
if ( 'function' === typeof( jQuery('.tooltip_top_slow').tooltip ) )
|
1968 |
-
jQuery('.tooltip_top_slow').tooltip( {
|
1969 |
-
animation: true
|
1970 |
-
, delay: { show: 2500, hide: 100 }
|
1971 |
-
, selector: false
|
1972 |
-
, placement: 'top'
|
1973 |
-
, trigger: 'hover'
|
1974 |
-
, title: ''
|
1975 |
-
, template: '<div class="wpdevelop tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
|
1976 |
-
, container: '#wpbc_tooltips_container'
|
1977 |
-
, viewport: '#wpbody-content'
|
1978 |
-
});
|
1979 |
}
|
1980 |
-
|
1981 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1982 |
</script><?php
|
1983 |
}
|
1984 |
|
@@ -2031,115 +1974,8 @@ function wpbc_bs_javascript_popover() {
|
|
2031 |
});
|
2032 |
}
|
2033 |
|
2034 |
-
|
2035 |
jQuery(document).ready( function(){
|
2036 |
-
//FixIn: 9.0.1.1
|
2037 |
-
wpbc_define_tippy_popover();
|
2038 |
-
//Deprecated: FixIn: 9.0.1.1.1
|
2039 |
-
/*
|
2040 |
-
if ( 'function' === typeof( jQuery(".popover_click.popover_bottom" ).popover ) ) { //FixIn: 7.0.1.2 - 2016-12-10
|
2041 |
-
jQuery('.popover_click.popover_bottom').popover( {
|
2042 |
-
placement: 'bottom' //FixIn: 7.0.1.42
|
2043 |
-
// function (context, source) {
|
2044 |
-
//
|
2045 |
-
// var position = jQuery(source).offset();
|
2046 |
-
// //var elBounding = context.getBoundingClientRect();
|
2047 |
-
// var content_heigh = jQuery(context).find('.popover-content').clone().appendTo(jQuery( '#wpbc-footer') ).height();
|
2048 |
-
// jQuery( '#wpbc-footer .popover-content').remove();
|
2049 |
-
//
|
2050 |
-
// if ( position.top < content_heigh ){
|
2051 |
-
// return "top";
|
2052 |
-
// }
|
2053 |
-
// return "bottom";
|
2054 |
-
// }
|
2055 |
-
, trigger:'manual'
|
2056 |
-
//, delay: {show: 100, hide: 8}
|
2057 |
-
, content: ''
|
2058 |
-
, template: '<div class="popover" role="tooltip"><div class="arrow"></div><div class="popover-close"><a href="javascript:void(0)" data-dismiss="popover" aria-hidden="true">×</a></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
2059 |
-
, container: '.wpbc_timeline_frame,.flex_timeline_frame' //FixIn: Flex TimeLine 1.0
|
2060 |
-
, html: 'true'
|
2061 |
-
});
|
2062 |
-
jQuery('.popover_click.popover_top').popover( {
|
2063 |
-
placement: 'top auto'
|
2064 |
-
, trigger:'manual'
|
2065 |
-
//, delay: {show: 100, hide: 8}
|
2066 |
-
, content: ''
|
2067 |
-
, template: '<div class="popover" role="tooltip"><div class="arrow"></div><div class="popover-close"><a href="javascript:void(0)" data-dismiss="popover" aria-hidden="true">×</a></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
2068 |
-
, container: '.wpbc_timeline_frame,.flex_timeline_frame' //FixIn: Flex TimeLine 1.0
|
2069 |
-
, html: 'true'
|
2070 |
-
});
|
2071 |
-
jQuery('.popover_click.popover_left').popover( {
|
2072 |
-
placement: 'left auto'
|
2073 |
-
, trigger:'manual'
|
2074 |
-
//, delay: {show: 100, hide: 8}
|
2075 |
-
, content: ''
|
2076 |
-
, template: '<div class="popover" role="tooltip"><div class="arrow"></div><div class="popover-close"><a href="javascript:void(0)" data-dismiss="popover" aria-hidden="true">×</a></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
2077 |
-
, container: '.wpbc_timeline_frame,.flex_timeline_frame' //FixIn: Flex TimeLine 1.0
|
2078 |
-
, html: 'true'
|
2079 |
-
});
|
2080 |
-
jQuery('.popover_click.popover_right').popover( {
|
2081 |
-
placement: 'right auto'
|
2082 |
-
, trigger:'manual'
|
2083 |
-
//, delay: {show: 100, hide: 8}
|
2084 |
-
, content: ''
|
2085 |
-
, template: '<div class="popover" role="tooltip"><div class="arrow"></div><div class="popover-close"><a href="javascript:void(0)" data-dismiss="popover" aria-hidden="true">×</a></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
2086 |
-
, container: '.wpbc_timeline_frame,.flex_timeline_frame' //FixIn: Flex TimeLine 1.0
|
2087 |
-
, html: 'true'
|
2088 |
-
});
|
2089 |
-
|
2090 |
-
// Close popover by clicking on X button
|
2091 |
-
jQuery(document).on("click", ".popover .popover-close a" , function(){
|
2092 |
-
jQuery(this).parents(".popover").popover('hide');
|
2093 |
-
});
|
2094 |
-
// Show or hide popover on click at target element
|
2095 |
-
jQuery(document).on("click", ".popover_click" , function(){
|
2096 |
-
jQuery(this).popover('toggle');
|
2097 |
-
|
2098 |
-
//Solving Issue: sometime, when many timelines at the page with long popover, its can overlap exist timelines, and then its does not possible to click on elements.
|
2099 |
-
jQuery('.wpbc_timeline_ajax_replace .popover.fade.bottom:not(.in)').css('left','-9000px');
|
2100 |
-
|
2101 |
-
});
|
2102 |
-
|
2103 |
-
jQuery('.popover_hover.popover_bottom').popover( {
|
2104 |
-
placement: 'bottom' //FixIn: 8.4.5.12
|
2105 |
-
, trigger:'hover'
|
2106 |
-
, delay: {show: 100, hide: 100}
|
2107 |
-
, content: ''
|
2108 |
-
, template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
2109 |
-
, container: '.wpbc_timeline_frame,.flex_timeline_frame' //FixIn: Flex TimeLine 1.0
|
2110 |
-
, html: 'true'
|
2111 |
-
});
|
2112 |
-
jQuery('.popover_hover.popover_top').popover( {
|
2113 |
-
placement: 'top auto'
|
2114 |
-
, trigger:'hover'
|
2115 |
-
, delay: {show: 100, hide: 100}
|
2116 |
-
, content: ''
|
2117 |
-
, template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
2118 |
-
, container: '.wpbc_timeline_frame,.flex_timeline_frame' //FixIn: Flex TimeLine 1.0
|
2119 |
-
, html: 'true'
|
2120 |
-
});
|
2121 |
-
jQuery('.popover_hover.popover_left').popover( {
|
2122 |
-
placement: 'left auto'
|
2123 |
-
, trigger:'hover'
|
2124 |
-
, delay: {show: 100, hide: 100}
|
2125 |
-
, content: ''
|
2126 |
-
, template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
2127 |
-
, container: '.wpbc_timeline_frame,.flex_timeline_frame' //FixIn: Flex TimeLine 1.0
|
2128 |
-
, html: 'true'
|
2129 |
-
});
|
2130 |
-
jQuery('.popover_hover.popover_right').popover( {
|
2131 |
-
placement: 'right auto'
|
2132 |
-
, trigger:'hover'
|
2133 |
-
, delay: {show: 100, hide: 100}
|
2134 |
-
, content: ''
|
2135 |
-
, template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
2136 |
-
, container: '.wpbc_timeline_frame,.flex_timeline_frame' //FixIn: Flex TimeLine 1.0
|
2137 |
-
, html: 'true'
|
2138 |
-
});
|
2139 |
-
//////////////////////////////////////////////////////////////////////
|
2140 |
-
|
2141 |
-
}
|
2142 |
-
*/
|
2143 |
});
|
2144 |
</script><?php
|
2145 |
}
|
1768 |
|
1769 |
// Text
|
1770 |
|
1771 |
+
?><span class="<?php echo ( $is_icon_showed ) ? 'nav-tab-text' : ''; ?>" ><?php
|
1772 |
+
if ( ! empty( $tab['title'] ) ) {
|
1773 |
+
echo ( $is_icon_showed ) ? ' ' : '';
|
1774 |
+
}
|
1775 |
echo $tab['title'];
|
1776 |
?></span><?php
|
1777 |
|
1854 |
?><span id="wpbc_tooltips_container"></span><?php
|
1855 |
//FixIn: 7.0.1.10
|
1856 |
?><script type="text/javascript">
|
|
|
1857 |
|
1858 |
+
function wpbc_define_tippy_tooltips( parent_class ){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1859 |
|
1860 |
+
if ( 'function' !== typeof( wpbc_tippy ) ){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1861 |
alert( 'WPBC Error. JavaScript library "wpbc_tippy" was not defined.' );
|
1862 |
+
return false;
|
1863 |
}
|
1864 |
+
|
1865 |
+
//FixIn: 9.0.1.1
|
1866 |
+
/**
|
1867 |
+
* Get Title to show in tooltip.
|
1868 |
+
* By default getting text from 'data-original-title' attribute, if not exist,
|
1869 |
+
* then checking 'title' attribute and replacing it by 'data-original-title'
|
1870 |
+
*
|
1871 |
+
* @param reference - Dom element
|
1872 |
+
* @returns string
|
1873 |
+
*/
|
1874 |
+
function wpbc_get_tippy_tooltip_title_text( reference ){
|
1875 |
+
var text2show = reference.getAttribute( 'data-original-title' );
|
1876 |
+
if ( null == text2show ){
|
1877 |
+
text2show = reference.getAttribute( 'title' );
|
1878 |
+
jQuery( reference ).attr( "data-original-title", jQuery( reference ).attr( "title" ) );
|
1879 |
+
jQuery( reference ).removeAttr( "title" );
|
|
|
|
|
1880 |
}
|
1881 |
+
return text2show;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1882 |
}
|
1883 |
+
|
1884 |
+
if ( undefined == parent_class ){
|
1885 |
+
parent_class = '';
|
1886 |
+
}
|
1887 |
+
|
1888 |
+
wpbc_tippy( parent_class + '.tooltip_top', {
|
1889 |
+
content( reference ){
|
1890 |
+
return wpbc_get_tippy_tooltip_title_text( reference );
|
1891 |
+
},
|
1892 |
+
placement: 'top-start',
|
1893 |
+
} );
|
1894 |
+
wpbc_tippy( parent_class + '.tooltip_bottom', {
|
1895 |
+
content( reference ){
|
1896 |
+
return wpbc_get_tippy_tooltip_title_text( reference );
|
1897 |
+
},
|
1898 |
+
placement: 'bottom-start',
|
1899 |
+
} );
|
1900 |
+
wpbc_tippy( parent_class + '.tooltip_bottom', {
|
1901 |
+
content( reference ){
|
1902 |
+
return wpbc_get_tippy_tooltip_title_text( reference );
|
1903 |
+
},
|
1904 |
+
placement: 'bottom-start',
|
1905 |
+
} );
|
1906 |
+
wpbc_tippy( parent_class + '.tooltip_right', {
|
1907 |
+
content( reference ){
|
1908 |
+
return wpbc_get_tippy_tooltip_title_text( reference );
|
1909 |
+
},
|
1910 |
+
placement: 'right',
|
1911 |
+
} );
|
1912 |
+
wpbc_tippy( parent_class + '.tooltip_left', {
|
1913 |
+
content( reference ){
|
1914 |
+
return wpbc_get_tippy_tooltip_title_text( reference );
|
1915 |
+
},
|
1916 |
+
placement: 'left-start',
|
1917 |
+
} );
|
1918 |
+
|
1919 |
+
return true;
|
1920 |
+
}
|
1921 |
+
|
1922 |
+
jQuery( document ).ready( function (){
|
1923 |
+
wpbc_define_tippy_tooltips( '' );
|
1924 |
+
} );
|
1925 |
</script><?php
|
1926 |
}
|
1927 |
|
1974 |
});
|
1975 |
}
|
1976 |
|
|
|
1977 |
jQuery(document).ready( function(){
|
1978 |
+
wpbc_define_tippy_popover(); //FixIn: 9.0.1.1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1979 |
});
|
1980 |
</script><?php
|
1981 |
}
|
core/any/css/admin-support.css
CHANGED
@@ -460,6 +460,9 @@ html[xmlns] .clearfix-height.hidden_items {
|
|
460 |
|
461 |
|
462 |
/* Rotate Icons for Loading ***********************************************/
|
|
|
|
|
|
|
463 |
.wpbc_icn_autorenew::before,
|
464 |
.wpbc_spin {
|
465 |
-webkit-animation: spin 2s infinite linear;
|
460 |
|
461 |
|
462 |
/* Rotate Icons for Loading ***********************************************/
|
463 |
+
.wpbc_animation_pause {
|
464 |
+
animation-play-state: paused !important;
|
465 |
+
}
|
466 |
.wpbc_icn_autorenew::before,
|
467 |
.wpbc_spin {
|
468 |
-webkit-animation: spin 2s infinite linear;
|
core/any/js/admin-support.js
CHANGED
@@ -154,71 +154,79 @@ function wpbc_admin_show_message( message, m_type, m_delay, is_append ){
|
|
154 |
jQuery('#' + unique_div_id ).animate( {opacity: 1}, m_delay ).fadeOut(500);
|
155 |
}
|
156 |
|
|
|
|
|
157 |
|
158 |
-
function wpbc_close_dropdown_selectbox( selector_id ) {
|
159 |
-
|
160 |
-
|
161 |
-
}
|
162 |
-
// Show Container depend from the selected option in dropdown list
|
163 |
-
function wpbc_show_selected_in_dropdown( selector_id, title, value ){
|
164 |
-
|
165 |
-
|
166 |
-
|
|
|
167 |
|
168 |
-
// Show Container depend from the selected Radio Option and Selectbox value in dropdown list
|
169 |
-
// Exmaple: wpbc_show_selected_in_dropdown__radio_select_option( 'wh_booking_date', 'wh_booking_date2', 'wh_booking_datedays_interval_Radios' );
|
170 |
-
function wpbc_show_selected_in_dropdown__radio_select_option( selector_id, selector_id2, radio_name ){
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
|
|
214 |
}
|
215 |
}
|
|
|
|
|
|
|
|
|
|
|
216 |
}
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
//Set status of all checkbos in one time
|
223 |
function wpbc_set_checkbox_in_table( el_stutus, el_class ){
|
224 |
jQuery('.'+el_class).attr('checked', el_stutus);
|
154 |
jQuery('#' + unique_div_id ).animate( {opacity: 1}, m_delay ).fadeOut(500);
|
155 |
}
|
156 |
|
157 |
+
/**
|
158 |
+
* Start: Dropdown BS List elements -------------------------------------------------------------------------------- */
|
159 |
|
160 |
+
function wpbc_close_dropdown_selectbox( selector_id ) {
|
161 |
+
jQuery('#' + selector_id + '_container li input[type=checkbox],#' + selector_id + '_container li input[type=radio]').prop('checked', false);
|
162 |
+
jQuery('#' + selector_id + '_container').hide();
|
163 |
+
}
|
164 |
+
// Show Container depend from the selected option in dropdown list
|
165 |
+
function wpbc_show_selected_in_dropdown( selector_id, title, value ){
|
166 |
+
jQuery('#' + selector_id + '_selector .wpbc_selected_in_dropdown').html( title );
|
167 |
+
jQuery('#' + selector_id ).val( value );
|
168 |
+
jQuery('#' + selector_id ).trigger('change');
|
169 |
+
}
|
170 |
|
171 |
+
// Show Container depend from the selected Radio Option and Selectbox value in dropdown list
|
172 |
+
// Exmaple: wpbc_show_selected_in_dropdown__radio_select_option( 'wh_booking_date', 'wh_booking_date2', 'wh_booking_datedays_interval_Radios' );
|
173 |
+
function wpbc_show_selected_in_dropdown__radio_select_option( selector_id, selector_id2, radio_name ){
|
174 |
+
|
175 |
+
// Get selected value in radio buttons
|
176 |
+
var rad_val = jQuery('input:radio[name="' + radio_name + '"]:checked').val();
|
177 |
+
|
178 |
+
if ( rad_val != 'undefined' ) {
|
179 |
+
|
180 |
+
var select_box = jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.input-group').find('select');
|
181 |
+
// Selectbox exist
|
182 |
+
if ( select_box.length > 0 ) {
|
183 |
+
// Get label near selected radiobutton and selected Tilte in selectbox
|
184 |
+
var title = jQuery('input:radio[name="' + radio_name + '"]:checked').parent().find('label').html() + ' ' +
|
185 |
+
jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.input-group').find('select option:selected').text();
|
186 |
+
// Get Value of selected option in selectbox
|
187 |
+
var value = jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.input-group').find('select option:selected').val();
|
188 |
+
// Set Title in dropdown list
|
189 |
+
jQuery('#' + selector_id + '_selector .wpbc_selected_in_dropdown').html( title );
|
190 |
+
// Set value of radio button
|
191 |
+
jQuery('#' + selector_id ).val( rad_val );
|
192 |
+
// Set value of selectbox
|
193 |
+
jQuery('#' + selector_id2 ).val( value );
|
194 |
+
} else {
|
195 |
+
// 2 Text Fields
|
196 |
+
var text_box = jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.text-group').find('input[type="text"]');
|
197 |
+
if ( text_box.length > 0 ) {
|
198 |
+
var text_divs = jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.text-group').find('.dropdown-menu-text-element');
|
199 |
+
|
200 |
+
// Check if we have 2 DIV elements with text fields
|
201 |
+
if ( text_box.length > 0 ) {
|
202 |
+
|
203 |
+
var id_list = [ selector_id, selector_id2 ];
|
204 |
+
var title = '';
|
205 |
+
//Loop our text DIV elements
|
206 |
+
jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.text-group').find('.dropdown-menu-text-element').each(function( i ) {
|
207 |
+
|
208 |
+
if ( title != '' )
|
209 |
+
title += ' - ';
|
210 |
+
title += jQuery(this).find('input[type="text"]').val();
|
211 |
+
jQuery('#' + id_list[ i ] ).val( jQuery(this).find('input[type="text"]').val() );
|
212 |
+
});
|
213 |
+
// Set Title in dropdown list
|
214 |
+
jQuery('#' + selector_id + '_selector .wpbc_selected_in_dropdown').html( title );
|
215 |
+
|
216 |
+
}
|
217 |
+
}
|
218 |
}
|
219 |
}
|
220 |
+
|
221 |
+
jQuery('#' + selector_id ).trigger( 'change' );
|
222 |
+
|
223 |
+
// Hide dropdown list
|
224 |
+
jQuery('#' + selector_id + '_container').hide();
|
225 |
}
|
226 |
+
|
227 |
+
/**
|
228 |
+
* End: Dropdown BS List elements -------------------------------------------------------------------------------- */
|
229 |
+
|
|
|
230 |
//Set status of all checkbos in one time
|
231 |
function wpbc_set_checkbox_in_table( el_stutus, el_class ){
|
232 |
jQuery('.'+el_class).attr('checked', el_stutus);
|
core/lib/wpbc-ajax.php
CHANGED
@@ -174,7 +174,7 @@ function wpbc_ajax_UPDATE_APPROVE() {
|
|
174 |
|
175 |
if (! isset($_POST["denyreason"]))
|
176 |
$_POST["denyreason"] = '';
|
177 |
-
$denyreason = stripslashes( $_POST["denyreason"] );
|
178 |
$is_send_emeils = $_POST["is_send_emeils"];
|
179 |
|
180 |
|
174 |
|
175 |
if (! isset($_POST["denyreason"]))
|
176 |
$_POST["denyreason"] = '';
|
177 |
+
$denyreason = stripslashes( $_POST["denyreason"] ); //FixIn: 7.0.1.46 - translate words like don\'t to don't
|
178 |
$is_send_emeils = $_POST["is_send_emeils"];
|
179 |
|
180 |
|
core/lib/wpdev-booking-class.php
CHANGED
@@ -25,7 +25,6 @@ class wpdev_booking {
|
|
25 |
$this->wpdev_bk_personal = false;
|
26 |
}
|
27 |
|
28 |
-
|
29 |
// User defined - hooks
|
30 |
add_action( 'wpdev_bk_add_calendar', array( &$this, 'add_calendar_action' ), 10, 2 );
|
31 |
add_action( 'wpdev_bk_add_form', array( &$this, 'add_booking_form_action' ), 10, 2 );
|
@@ -92,39 +91,28 @@ class wpdev_booking {
|
|
92 |
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
93 |
|
94 |
// Get dates
|
95 |
-
|
96 |
-
/*
|
97 |
-
$bk_type_1 = explode(',', $bk_type); $bk_type = '';
|
98 |
-
foreach ($bk_type_1 as $bkt) {
|
99 |
-
if (!empty($bkt)) { $bk_type .= $bkt . ','; }
|
100 |
-
}
|
101 |
-
$bk_type = substr($bk_type, 0, -1);
|
102 |
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
//debuge($bk_type, $additional_bk_types );
|
111 |
-
make_bk_action('check_pending_not_paid_auto_cancell_bookings', $bk_type );
|
112 |
-
|
113 |
-
if ( count($additional_bk_types)>0 ) $bk_type_additional = $bk_type .',' . implode(',', $additional_bk_types);
|
114 |
-
else $bk_type_additional = $bk_type;
|
115 |
$bk_type_additional .= ',';
|
116 |
|
117 |
$bk_type_additional = explode( ',', $bk_type_additional );
|
118 |
-
$bk_type_additional = array_unique( $bk_type_additional );
|
119 |
-
$bk_type_additional = array_filter( $bk_type_additional );
|
120 |
$bk_type_additional = implode( ',', $bk_type_additional );
|
121 |
|
122 |
global $wpdb;
|
123 |
$dates_array = $time_array = array();
|
124 |
|
125 |
-
$trash_bookings = ' AND bk.trash != 1 ';
|
126 |
-
|
127 |
-
|
128 |
|
129 |
$sql_req = "SELECT DISTINCT dt.booking_date
|
130 |
|
@@ -140,9 +128,9 @@ class wpdev_booking {
|
|
140 |
$dates_approve = $wpdb->get_results( $sql_req );
|
141 |
|
142 |
} else {
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
|
147 |
FROM {$wpdb->prefix}bookingdates as dt
|
148 |
|
@@ -152,12 +140,11 @@ class wpdev_booking {
|
|
152 |
|
153 |
WHERE dt.booking_date >= CURDATE() {$trash_bookings} AND bk.booking_type IN ($bk_type_additional)
|
154 |
|
155 |
-
". (($skip_booking_id != '') ? " AND dt.booking_id NOT IN ( "
|
156 |
|
157 |
-
ORDER BY dt.booking_date", $bk_type_additional, 'all'
|
158 |
-
|
159 |
-
|
160 |
-
$sql_req = apply_bk_filter('get_bk_dates_sql', "SELECT DISTINCT dt.booking_date
|
161 |
|
162 |
FROM {$wpdb->prefix}bookingdates as dt
|
163 |
|
@@ -167,73 +154,86 @@ class wpdev_booking {
|
|
167 |
|
168 |
WHERE dt.approved = $approved AND dt.booking_date >= CURDATE() {$trash_bookings} AND bk.booking_type IN ($bk_type_additional)
|
169 |
|
170 |
-
". (($skip_booking_id != '') ? " AND dt.booking_id NOT IN ( "
|
171 |
|
172 |
ORDER BY dt.booking_date", $bk_type_additional, $approved, $skip_booking_id );
|
173 |
-
|
174 |
-
|
|
|
|
|
|
|
175 |
}
|
176 |
|
|
|
177 |
// Make aggregation of the dates for the parent booking resources with specific capacity
|
178 |
if ( 0 ) {
|
179 |
$bk_res_aggregate = implode( ',', array_splice( $additional_bk_types, 1, 1 ) );
|
180 |
$sql_req_aggregate = "SELECT DISTINCT dt.booking_date
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
$dates_aggregate = $wpdb->get_results( $sql_req_aggregate );
|
188 |
$dates_approve = array_merge( $dates_approve, $dates_aggregate );
|
189 |
}
|
190 |
|
|
|
191 |
//FixIn: 6.1.1.18
|
192 |
$prior_check_out_date = false;
|
193 |
-
if ( ! empty( $dates_approve ) )
|
194 |
foreach ($dates_approve as $my_date) {
|
195 |
-
|
196 |
-
$blocked_days_range = array( $my_date->booking_date );
|
197 |
-
|
198 |
//if ( ! in_array( (string) $bk_type, array( '2', '3' ) ) ) // Skip these booking resources '2' and '3' from adding additional unavailable times before after the booking
|
199 |
-
|
200 |
-
|
|
|
|
|
|
|
|
|
|
|
201 |
// Define booked dates and times
|
202 |
foreach ( $blocked_days_range as $in_date) {
|
203 |
-
|
204 |
-
$my_date = explode(' ', $in_date );
|
205 |
|
206 |
-
|
207 |
-
|
|
|
|
|
208 |
|
209 |
-
|
210 |
-
|
211 |
}
|
212 |
}
|
213 |
-
|
214 |
-
|
|
|
215 |
}
|
216 |
|
217 |
// Generate booking CAPTCHA fields for booking form
|
218 |
function createCapthaContent($bk_tp) {
|
219 |
|
220 |
//FixIn: 8.8.3.5
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
|
|
230 |
|
231 |
|
232 |
$admin_uri = ltrim( str_replace( get_site_url( null, '', 'admin' ), '', admin_url('admin.php?') ), '/' ) ;
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
|
|
237 |
// Clean up dead files older than 2 minutes
|
238 |
$this->captcha_instance->cleanup(2); //FixIn: 7.0.1.67
|
239 |
//$this->captcha_instance->img_size = array( 72, 24 );
|
@@ -268,11 +268,18 @@ class wpdev_booking {
|
|
268 |
|
269 |
// Get default Booking resource
|
270 |
function get_default_type() {
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
276 |
}
|
277 |
// </editor-fold>
|
278 |
|
@@ -589,129 +596,6 @@ class wpdev_booking {
|
|
589 |
$my_form = apply_bk_filter( 'wpbc_get_free_booking_form' , $my_boook_type );
|
590 |
|
591 |
return $my_form;
|
592 |
-
/*
|
593 |
-
$booking_form_field_active1 = get_bk_option( 'booking_form_field_active1');
|
594 |
-
$booking_form_field_required1 = get_bk_option( 'booking_form_field_required1');
|
595 |
-
$booking_form_field_label1 = get_bk_option( 'booking_form_field_label1');
|
596 |
-
$booking_form_field_label1 = apply_bk_filter('wpdev_check_for_active_language', $booking_form_field_label1 );
|
597 |
-
if (function_exists('icl_translate'))
|
598 |
-
$booking_form_field_label1 = icl_translate( 'wpml_custom', 'wpbc_custom_form_field_label1', $booking_form_field_label1);
|
599 |
-
|
600 |
-
$booking_form_field_active2 = get_bk_option( 'booking_form_field_active2');
|
601 |
-
$booking_form_field_required2 = get_bk_option( 'booking_form_field_required2');
|
602 |
-
$booking_form_field_label2 = get_bk_option( 'booking_form_field_label2');
|
603 |
-
$booking_form_field_label2 = apply_bk_filter('wpdev_check_for_active_language', $booking_form_field_label2 );
|
604 |
-
if (function_exists('icl_translate'))
|
605 |
-
$booking_form_field_label2 = icl_translate( 'wpml_custom', 'wpbc_custom_form_field_label2', $booking_form_field_label2);
|
606 |
-
|
607 |
-
$booking_form_field_active3 = get_bk_option( 'booking_form_field_active3');
|
608 |
-
$booking_form_field_required3 = get_bk_option( 'booking_form_field_required3');
|
609 |
-
$booking_form_field_label3 = get_bk_option( 'booking_form_field_label3');
|
610 |
-
$booking_form_field_label3 = apply_bk_filter('wpdev_check_for_active_language', $booking_form_field_label3 );
|
611 |
-
if (function_exists('icl_translate'))
|
612 |
-
$booking_form_field_label3 = icl_translate( 'wpml_custom', 'wpbc_custom_form_field_label3', $booking_form_field_label3);
|
613 |
-
|
614 |
-
$booking_form_field_active4 = get_bk_option( 'booking_form_field_active4');
|
615 |
-
$booking_form_field_required4 = get_bk_option( 'booking_form_field_required4');
|
616 |
-
$booking_form_field_label4 = get_bk_option( 'booking_form_field_label4');
|
617 |
-
$booking_form_field_label4 = apply_bk_filter('wpdev_check_for_active_language', $booking_form_field_label4 );
|
618 |
-
if (function_exists('icl_translate'))
|
619 |
-
$booking_form_field_label4 = icl_translate( 'wpml_custom', 'wpbc_custom_form_field_label4', $booking_form_field_label4);
|
620 |
-
|
621 |
-
$booking_form_field_active5 = get_bk_option( 'booking_form_field_active5');
|
622 |
-
$booking_form_field_required5 = get_bk_option( 'booking_form_field_required5');
|
623 |
-
$booking_form_field_label5 = get_bk_option( 'booking_form_field_label5');
|
624 |
-
$booking_form_field_label5 = apply_bk_filter('wpdev_check_for_active_language', $booking_form_field_label5 );
|
625 |
-
if (function_exists('icl_translate'))
|
626 |
-
$booking_form_field_label5 = icl_translate( 'wpml_custom', 'wpbc_custom_form_field_label5', $booking_form_field_label5);
|
627 |
-
|
628 |
-
$booking_form_field_active6 = get_bk_option( 'booking_form_field_active6');
|
629 |
-
$booking_form_field_required6 = get_bk_option( 'booking_form_field_required6');
|
630 |
-
$booking_form_field_label6 = get_bk_option( 'booking_form_field_label6');
|
631 |
-
$booking_form_field_label6 = apply_bk_filter('wpdev_check_for_active_language', $booking_form_field_label6 );
|
632 |
-
if (function_exists('icl_translate'))
|
633 |
-
$booking_form_field_label6 = icl_translate( 'wpml_custom', 'wpbc_custom_form_field_label6', $booking_form_field_label6);
|
634 |
-
$booking_form_field_values6 = get_bk_option( 'booking_form_field_values6' );
|
635 |
-
|
636 |
-
$my_form = '[calendar]';
|
637 |
-
//'<div style="text-align:left;">'.
|
638 |
-
//'<p>'.__('First Name (required)' ,'booking').':<br /> <span class="wpdev-form-control-wrap name'.$my_boook_type.'"><input type="text" name="name'.$my_boook_type.'" value="" class="wpdev-validates-as-required" size="40" /></span> </p>'.
|
639 |
-
|
640 |
-
if ($booking_form_field_active1 != 'Off')
|
641 |
-
$my_form.=' <div class="form-group">
|
642 |
-
<label for="name'.$my_boook_type.'" class="control-label">'.$booking_form_field_label1.(($booking_form_field_required1=='On')?'*':'').':</label>
|
643 |
-
<div class="controls">
|
644 |
-
<input type="text" name="name'.$my_boook_type.'" id="name'.$my_boook_type.'" class="input-xlarge'.(($booking_form_field_required1=='On')?' wpdev-validates-as-required ':'').'">
|
645 |
-
</div>
|
646 |
-
</div>';
|
647 |
-
|
648 |
-
if ($booking_form_field_active2 != 'Off')
|
649 |
-
$my_form.=' <div class="form-group">
|
650 |
-
<label for="secondname'.$my_boook_type.'" class="control-label">'.$booking_form_field_label2.(($booking_form_field_required2=='On')?'*':'').':</label>
|
651 |
-
<div class="controls">
|
652 |
-
<input type="text" name="secondname'.$my_boook_type.'" id="secondname'.$my_boook_type.'" class="input-xlarge'.(($booking_form_field_required2=='On')?' wpdev-validates-as-required ':'').'">
|
653 |
-
</div>
|
654 |
-
</div>';
|
655 |
-
|
656 |
-
if ($booking_form_field_active3 != 'Off')
|
657 |
-
$my_form.=' <div class="form-group">
|
658 |
-
<label for="email'.$my_boook_type.'" class="control-label">'.$booking_form_field_label3.(($booking_form_field_required3=='On')?'*':'').':</label>
|
659 |
-
<div class="controls">
|
660 |
-
<input type="text" name="email'.$my_boook_type.'" id="email'.$my_boook_type.'" class="input-xlarge wpdev-validates-as-email'.(($booking_form_field_required3=='On')?' wpdev-validates-as-required ':'').'">
|
661 |
-
</div>
|
662 |
-
</div>';
|
663 |
-
|
664 |
-
if ($booking_form_field_active6 == 'On') {
|
665 |
-
$my_form.=' <div class="form-group">
|
666 |
-
<label for="visitors'.$my_boook_type.'" class="control-label">'.$booking_form_field_label6.(($booking_form_field_required6=='On')?'*':'').':</label>
|
667 |
-
<div class="controls">
|
668 |
-
<select name="visitors'.$my_boook_type.'" id="visitors'.$my_boook_type.'" class="input-xlarge'.(($booking_form_field_required6=='On')?' wpdev-validates-as-required ':'').'">';
|
669 |
-
|
670 |
-
//$booking_form_field_values6 = explode("\n",$booking_form_field_values6);
|
671 |
-
$booking_form_field_values6 = preg_split('/\r\n|\r|\n/', $booking_form_field_values6);
|
672 |
-
foreach ($booking_form_field_values6 as $select_option) {
|
673 |
-
$select_option = str_replace(array("'",'"'), '', $select_option);
|
674 |
-
$my_form.=' <option value="'.$select_option.'">'.$select_option.'</option>';
|
675 |
-
}
|
676 |
-
|
677 |
-
$my_form.=' </select>
|
678 |
-
<p class="help-block"></p>
|
679 |
-
</div>
|
680 |
-
</div>';
|
681 |
-
}
|
682 |
-
|
683 |
-
if ($booking_form_field_active4 != 'Off')
|
684 |
-
$my_form.=' <div class="form-group">
|
685 |
-
<label for="phone'.$my_boook_type.'" class="control-label">'.$booking_form_field_label4.(($booking_form_field_required4=='On')?'*':'').':</label>
|
686 |
-
<div class="controls">
|
687 |
-
<input type="text" name="phone'.$my_boook_type.'" id="phone'.$my_boook_type.'" class="input-xlarge'.(($booking_form_field_required4=='On')?' wpdev-validates-as-required ':'').'">
|
688 |
-
<p class="help-block"></p>
|
689 |
-
</div>
|
690 |
-
</div>';
|
691 |
-
|
692 |
-
if ($booking_form_field_active5 != 'Off')
|
693 |
-
$my_form.=' <div class="form-group">
|
694 |
-
<label for="details" class="control-label">'.$booking_form_field_label5.(($booking_form_field_required5=='On')?'*':'').':</label>
|
695 |
-
<div class="controls">
|
696 |
-
<textarea rows="3" name="details'.$my_boook_type.'" id="details'.$my_boook_type.'" class="input-xlarge'.(($booking_form_field_required5=='On')?' wpdev-validates-as-required ':'').'"></textarea>
|
697 |
-
</div>
|
698 |
-
</div>';
|
699 |
-
|
700 |
-
$my_form.=' <div class="form-group">[captcha]</div>';
|
701 |
-
|
702 |
-
$my_form.=' <button class="btn btn-default" type="button" onclick="mybooking_submit(this.form,'.$my_boook_type.',\''.wpbc_get_maybe_reloaded_booking_locale().'\');" >'.__('Send' ,'booking').'</button> ';
|
703 |
-
|
704 |
-
//.'<p>'.__('Last Name (required)' ,'booking').':<br /> <span class="wpdev-form-control-wrap secondname'.$my_boook_type.'"><input type="text" name="secondname'.$my_boook_type.'" value="" class="wpdev-validates-as-required" size="40" /></span> </p>'.
|
705 |
-
//'<p>'.__('Email (required)' ,'booking').':<br /> <span class="wpdev-form-control-wrap email'.$my_boook_type.'"><input type="text" name="email'.$my_boook_type.'" value="" class="wpdev-validates-as-email wpdev-validates-as-required" size="40" /></span> </p>'.
|
706 |
-
//'<p>'.__('Phone' ,'booking').':<br /> <span class="wpdev-form-control-wrap phone'.$my_boook_type.'"><input type="text" name="phone'.$my_boook_type.'" value="" size="40" /></span> </p>'.
|
707 |
-
//'<p>'.__('Details' ,'booking').':<br /> <span class="wpdev-form-control-wrap details'.$my_boook_type.'"><textarea name="details'.$my_boook_type.'" cols="40" rows="10"></textarea></span> </p>';
|
708 |
-
|
709 |
-
//$my_form .= '<p>[captcha]</p>';
|
710 |
-
//$my_form .= '<p><input type="button" value="'.__('Send' ,'booking').'" onclick="mybooking_submit(this.form,'.$my_boook_type.',\''.wpbc_get_maybe_reloaded_booking_locale().'\');" /></p>
|
711 |
-
// </div>';
|
712 |
-
|
713 |
-
return $my_form;
|
714 |
-
*/
|
715 |
}
|
716 |
|
717 |
// Get booking form
|
@@ -769,8 +653,7 @@ class wpdev_booking {
|
|
769 |
$bk_type = $bk_parent_br_id;
|
770 |
}
|
771 |
}
|
772 |
-
// End: 6.1.1.9
|
773 |
-
//debuge($bk_type);
|
774 |
|
775 |
$start_script_code = $this->get_script_for_calendar($bk_type, $additional_bk_types, $my_selected_dates_without_calendar, $cal_count, $start_month_calendar );
|
776 |
|
25 |
$this->wpdev_bk_personal = false;
|
26 |
}
|
27 |
|
|
|
28 |
// User defined - hooks
|
29 |
add_action( 'wpdev_bk_add_calendar', array( &$this, 'add_calendar_action' ), 10, 2 );
|
30 |
add_action( 'wpdev_bk_add_form', array( &$this, 'add_booking_form_action' ), 10, 2 );
|
91 |
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
92 |
|
93 |
// Get dates
|
94 |
+
function get_dates( $approved = 'all', $bk_type = 1, $additional_bk_types = array(), $skip_booking_id = '' ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
|
96 |
+
make_bk_action( 'check_pending_not_paid_auto_cancell_bookings', $bk_type );
|
97 |
+
|
98 |
+
if ( count( $additional_bk_types ) > 0 ) {
|
99 |
+
$bk_type_additional = $bk_type . ',' . implode( ',', $additional_bk_types );
|
100 |
+
} else {
|
101 |
+
$bk_type_additional = $bk_type;
|
102 |
+
}
|
|
|
|
|
|
|
|
|
|
|
103 |
$bk_type_additional .= ',';
|
104 |
|
105 |
$bk_type_additional = explode( ',', $bk_type_additional );
|
106 |
+
$bk_type_additional = array_unique( $bk_type_additional ); // Removes duplicate values from an array
|
107 |
+
$bk_type_additional = array_filter( $bk_type_additional ); // All entries of array equal to FALSE (0, '', '0' ) will be removed.
|
108 |
$bk_type_additional = implode( ',', $bk_type_additional );
|
109 |
|
110 |
global $wpdb;
|
111 |
$dates_array = $time_array = array();
|
112 |
|
113 |
+
$trash_bookings = ' AND bk.trash != 1 '; //FixIn: 6.1.1.10 - check also below usage of {$trash_bookings}
|
114 |
+
|
115 |
+
if ( $approved == 'admin_blank' ) {
|
116 |
|
117 |
$sql_req = "SELECT DISTINCT dt.booking_date
|
118 |
|
128 |
$dates_approve = $wpdb->get_results( $sql_req );
|
129 |
|
130 |
} else {
|
131 |
+
|
132 |
+
if ( $approved == 'all' ) {
|
133 |
+
$sql_req = apply_bk_filter( 'get_bk_dates_sql', "SELECT DISTINCT dt.booking_date
|
134 |
|
135 |
FROM {$wpdb->prefix}bookingdates as dt
|
136 |
|
140 |
|
141 |
WHERE dt.booking_date >= CURDATE() {$trash_bookings} AND bk.booking_type IN ($bk_type_additional)
|
142 |
|
143 |
+
" . ( ( $skip_booking_id != '' ) ? " AND dt.booking_id NOT IN ( " . $skip_booking_id . " ) " : "" ) . "
|
144 |
|
145 |
+
ORDER BY dt.booking_date", $bk_type_additional, 'all', $skip_booking_id );
|
146 |
+
} else {
|
147 |
+
$sql_req = apply_bk_filter( 'get_bk_dates_sql', "SELECT DISTINCT dt.booking_date
|
|
|
148 |
|
149 |
FROM {$wpdb->prefix}bookingdates as dt
|
150 |
|
154 |
|
155 |
WHERE dt.approved = $approved AND dt.booking_date >= CURDATE() {$trash_bookings} AND bk.booking_type IN ($bk_type_additional)
|
156 |
|
157 |
+
" . ( ( $skip_booking_id != '' ) ? " AND dt.booking_id NOT IN ( " . $skip_booking_id . " ) " : "" ) . "
|
158 |
|
159 |
ORDER BY dt.booking_date", $bk_type_additional, $approved, $skip_booking_id );
|
160 |
+
}
|
161 |
+
|
162 |
+
//$sql_req = str_replace( 'dt.booking_date >= CURDATE() AND', '' , $sql_req); //Show past bookings, as well
|
163 |
+
|
164 |
+
$dates_approve = apply_bk_filter('get_bk_dates', $wpdb->get_results( $sql_req ), $approved, 0,$bk_type );
|
165 |
}
|
166 |
|
167 |
+
|
168 |
// Make aggregation of the dates for the parent booking resources with specific capacity
|
169 |
if ( 0 ) {
|
170 |
$bk_res_aggregate = implode( ',', array_splice( $additional_bk_types, 1, 1 ) );
|
171 |
$sql_req_aggregate = "SELECT DISTINCT dt.booking_date
|
172 |
+
FROM {$wpdb->prefix}bookingdates as dt
|
173 |
+
INNER JOIN {$wpdb->prefix}booking as bk
|
174 |
+
ON bk.booking_id = dt.booking_id
|
175 |
+
WHERE dt.booking_date >= CURDATE() {$trash_bookings} AND bk.booking_type IN ({$bk_res_aggregate})
|
176 |
+
" . ( ( $skip_booking_id != '' ) ? " AND dt.booking_id NOT IN ( " . $skip_booking_id . " ) " : "" ) . "
|
177 |
+
ORDER BY dt.booking_date";
|
178 |
$dates_aggregate = $wpdb->get_results( $sql_req_aggregate );
|
179 |
$dates_approve = array_merge( $dates_approve, $dates_aggregate );
|
180 |
}
|
181 |
|
182 |
+
|
183 |
//FixIn: 6.1.1.18
|
184 |
$prior_check_out_date = false;
|
185 |
+
if ( ! empty( $dates_approve ) ) {
|
186 |
foreach ($dates_approve as $my_date) {
|
187 |
+
|
188 |
+
$blocked_days_range = array( $my_date->booking_date );
|
189 |
+
|
190 |
//if ( ! in_array( (string) $bk_type, array( '2', '3' ) ) ) // Skip these booking resources '2' and '3' from adding additional unavailable times before after the booking
|
191 |
+
if (
|
192 |
+
( ! class_exists( 'wpdev_bk_biz_l' ) )
|
193 |
+
|| ( ( class_exists( 'wpdev_bk_biz_l' ) ) && ( ! wpbc_is_this_parent_resource( $bk_type ) ) )
|
194 |
+
){ //FixIn: 9.1.2.7
|
195 |
+
list( $blocked_days_range, $prior_check_out_date ) = apply_filters( 'wpbc_get_extended_block_dates_filter', array( $blocked_days_range, $prior_check_out_date ) );
|
196 |
+
}
|
197 |
+
|
198 |
// Define booked dates and times
|
199 |
foreach ( $blocked_days_range as $in_date) {
|
|
|
|
|
200 |
|
201 |
+
$my_date = explode( ' ', $in_date );
|
202 |
+
|
203 |
+
$my_dt = explode( '-', $my_date[0] );
|
204 |
+
$my_tm = explode( ':', $my_date[1] );
|
205 |
|
206 |
+
array_push( $dates_array, $my_dt );
|
207 |
+
array_push( $time_array, $my_tm );
|
208 |
}
|
209 |
}
|
210 |
+
}
|
211 |
+
|
212 |
+
return array( $dates_array, $time_array );
|
213 |
}
|
214 |
|
215 |
// Generate booking CAPTCHA fields for booking form
|
216 |
function createCapthaContent($bk_tp) {
|
217 |
|
218 |
//FixIn: 8.8.3.5
|
219 |
+
if ( function_exists( 'gd_info' ) ) {
|
220 |
+
$gd_info = gd_info();
|
221 |
+
if ( isset( $gd_info['GD Version'] ) ) {
|
222 |
+
$gd_info = $gd_info['GD Version'];
|
223 |
+
} else {
|
224 |
+
$gd_info = json_encode( $gd_info );
|
225 |
+
}
|
226 |
+
} else {
|
227 |
+
return '<strong>Error!</strong> CAPTCHA requires the GD library activated in your PHP configuration. Please check more <a href="https://wpbookingcalendar.com/faq/captcha-showing-problems/">here</a>.';
|
228 |
+
}
|
229 |
|
230 |
|
231 |
$admin_uri = ltrim( str_replace( get_site_url( null, '', 'admin' ), '', admin_url('admin.php?') ), '/' ) ;
|
232 |
+
if ( ( get_bk_option( 'booking_is_use_captcha' ) !== 'On' )
|
233 |
+
|| ( strpos( $_SERVER['REQUEST_URI'], $admin_uri ) !== false )
|
234 |
+
) {
|
235 |
+
return '';
|
236 |
+
} else {
|
237 |
// Clean up dead files older than 2 minutes
|
238 |
$this->captcha_instance->cleanup(2); //FixIn: 7.0.1.67
|
239 |
//$this->captcha_instance->img_size = array( 72, 24 );
|
268 |
|
269 |
// Get default Booking resource
|
270 |
function get_default_type() {
|
271 |
+
|
272 |
+
if ( $this->wpdev_bk_personal !== false ) {
|
273 |
+
if ( ( isset( $_GET['booking_type'] ) ) && ( $_GET['booking_type'] != '' ) ) {
|
274 |
+
$bk_type = $_GET['booking_type'];
|
275 |
+
} else {
|
276 |
+
$bk_type = $this->wpdev_bk_personal->get_default_booking_resource_id();
|
277 |
+
}
|
278 |
+
} else {
|
279 |
+
$bk_type = 1;
|
280 |
+
}
|
281 |
+
|
282 |
+
return $bk_type;
|
283 |
}
|
284 |
// </editor-fold>
|
285 |
|
596 |
$my_form = apply_bk_filter( 'wpbc_get_free_booking_form' , $my_boook_type );
|
597 |
|
598 |
return $my_form;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
599 |
}
|
600 |
|
601 |
// Get booking form
|
653 |
$bk_type = $bk_parent_br_id;
|
654 |
}
|
655 |
}
|
656 |
+
// End: 6.1.1.9
|
|
|
657 |
|
658 |
$start_script_code = $this->get_script_for_calendar($bk_type, $additional_bk_types, $my_selected_dates_without_calendar, $cal_count, $start_month_calendar );
|
659 |
|
core/timeline/v2/wpbc-class-timeline_v2.php
CHANGED
@@ -2609,8 +2609,9 @@ if(1)
|
|
2609 |
|
2610 |
$this->wpbc_show_timeline( $this->dates_array, $this->bookings, $this->booking_types, $this->time_array_new );
|
2611 |
|
|
|
2612 |
?><script type="text/javascript">
|
2613 |
-
jQuery( '.flex_tl_table_loading').hide()
|
2614 |
jQuery( '.flex_tl_table' ).show();
|
2615 |
</script><?php
|
2616 |
}
|
2609 |
|
2610 |
$this->wpbc_show_timeline( $this->dates_array, $this->bookings, $this->booking_types, $this->time_array_new );
|
2611 |
|
2612 |
+
//FixIn: 9.1.2.4
|
2613 |
?><script type="text/javascript">
|
2614 |
+
jQuery( '.flex_tl_table_loading').hide();
|
2615 |
jQuery( '.flex_tl_table' ).show();
|
2616 |
</script><?php
|
2617 |
}
|
core/wpbc-activation.php
CHANGED
@@ -636,7 +636,7 @@ function wpbc_booking_activate() {
|
|
636 |
//}
|
637 |
|
638 |
$wp_queries = array();
|
639 |
-
if ( ! wpbc_is_table_exists('booking') ) { //
|
640 |
|
641 |
$simple_sql = "CREATE TABLE {$wpdb->prefix}booking (
|
642 |
booking_id bigint(20) unsigned NOT NULL auto_increment,
|
@@ -676,6 +676,11 @@ function wpbc_booking_activate() {
|
|
676 |
}
|
677 |
// End: 6.1.1.10
|
678 |
|
|
|
|
|
|
|
|
|
|
|
679 |
//FixIn: 8.7.9.1
|
680 |
if ( ! wpbc_is_table_exists('bookingdates') ) { // Check if tables not exist yet
|
681 |
$simple_sql = "CREATE TABLE {$wpdb->prefix}bookingdates (
|
636 |
//}
|
637 |
|
638 |
$wp_queries = array();
|
639 |
+
if ( ! wpbc_is_table_exists('booking') ) { // Check if tables not exist yet
|
640 |
|
641 |
$simple_sql = "CREATE TABLE {$wpdb->prefix}booking (
|
642 |
booking_id bigint(20) unsigned NOT NULL auto_increment,
|
676 |
}
|
677 |
// End: 6.1.1.10
|
678 |
|
679 |
+
//FixIn: 9.1.2.12
|
680 |
+
if ( wpbc_is_field_in_table_exists( 'booking', 'booking_options' ) == 0 ) {
|
681 |
+
$wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD booking_options TEXT AFTER booking_id";
|
682 |
+
}
|
683 |
+
|
684 |
//FixIn: 8.7.9.1
|
685 |
if ( ! wpbc_is_table_exists('bookingdates') ) { // Check if tables not exist yet
|
686 |
$simple_sql = "CREATE TABLE {$wpdb->prefix}bookingdates (
|
core/wpbc-core.php
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
16 |
|
17 |
////////////////////////////////////////////////////////////////////////////////
|
18 |
-
// Internal plugin action hooks system
|
19 |
////////////////////////////////////////////////////////////////////////////////
|
20 |
global $wpdev_bk_action, $wpdev_bk_filter;
|
21 |
|
@@ -166,4 +166,99 @@ function add_bk_option( $option, $value = '', $deprecated = '', $autoload = 'yes
|
|
166 |
if ( $u_value !== 'no-values' ) return $u_value;
|
167 |
|
168 |
return add_option( $option, $value , $deprecated , $autoload );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
169 |
}
|
15 |
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
16 |
|
17 |
////////////////////////////////////////////////////////////////////////////////
|
18 |
+
// Internal plugin action hooks system
|
19 |
////////////////////////////////////////////////////////////////////////////////
|
20 |
global $wpdev_bk_action, $wpdev_bk_filter;
|
21 |
|
166 |
if ( $u_value !== 'no-values' ) return $u_value;
|
167 |
|
168 |
return add_option( $option, $value , $deprecated , $autoload );
|
169 |
+
}
|
170 |
+
|
171 |
+
|
172 |
+
////////////////////////////////////////////////////////////////////////////////
|
173 |
+
// Booking Meta Options - 'booking_options' IN 'wp_booking' TABLE
|
174 |
+
////////////////////////////////////////////////////////////////////////////////
|
175 |
+
|
176 |
+
/**
|
177 |
+
* Update Booking Meta Option
|
178 |
+
*
|
179 |
+
* @param int $booking_id ID of the booking
|
180 |
+
* @param array $option_arr Associative array for saving into booking options
|
181 |
+
* Example 1: saving 'locale' => 'de_DE': [ 'locale' => 'de_DE' ],
|
182 |
+
* Example 2: [ 'paid' => '100.00', 'balance' => '90.00' ]
|
183 |
+
*
|
184 |
+
* @return array|object|stdClass[]|null
|
185 |
+
*/
|
186 |
+
function wpbc_save_booking_meta_option( $booking_id, $option_arr ) {
|
187 |
+
|
188 |
+
global $wpdb;
|
189 |
+
|
190 |
+
$sql_prepare = $wpdb->prepare( "SELECT booking_options FROM {$wpdb->prefix}booking WHERE booking_id = %d", (int) $booking_id );
|
191 |
+
$select_result = $wpdb->get_results( $sql_prepare );
|
192 |
+
|
193 |
+
if ( ! empty( $select_result ) ) {
|
194 |
+
|
195 |
+
$select_result = $select_result[0]->booking_options;
|
196 |
+
|
197 |
+
if ( is_null( $select_result ) ) { // NULL -> option was not defined yet for this booking row.
|
198 |
+
$exist_booking_option_arr = array();
|
199 |
+
} else {
|
200 |
+
$exist_booking_option_arr = maybe_unserialize( $select_result );
|
201 |
+
}
|
202 |
+
|
203 |
+
} else {
|
204 |
+
return false; // No booking with such ID
|
205 |
+
}
|
206 |
+
|
207 |
+
// Merge exist booking option array with new data
|
208 |
+
$new_booking_option_arr = array_merge(
|
209 |
+
$exist_booking_option_arr,
|
210 |
+
$option_arr
|
211 |
+
);
|
212 |
+
|
213 |
+
$serialized_booking_option_arr = maybe_serialize( $new_booking_option_arr );
|
214 |
+
|
215 |
+
$sql_prepare_update = $wpdb->prepare( "UPDATE {$wpdb->prefix}booking SET booking_options = %s WHERE booking_id = %d"
|
216 |
+
, $serialized_booking_option_arr
|
217 |
+
, (int) $booking_id
|
218 |
+
);
|
219 |
+
|
220 |
+
if ( false === $wpdb->query( $sql_prepare_update ) ) { // Save to DB
|
221 |
+
debuge_error( 'Error saving to DB', __FILE__, __LINE__ );
|
222 |
+
return false;
|
223 |
+
}
|
224 |
+
|
225 |
+
return true;
|
226 |
+
}
|
227 |
+
|
228 |
+
|
229 |
+
/**
|
230 |
+
* Get Booking Meta Option
|
231 |
+
*
|
232 |
+
* @param int $booking_id ID of the booking
|
233 |
+
* @param false $option_name name of booking option or false (can be skipped) to return array of options
|
234 |
+
*
|
235 |
+
* @return array|mixed|string
|
236 |
+
*/
|
237 |
+
function wpbc_get_booking_meta_option( $booking_id, $option_name = false ) {
|
238 |
+
|
239 |
+
global $wpdb;
|
240 |
+
|
241 |
+
$sql_prepare = $wpdb->prepare( "SELECT booking_options FROM {$wpdb->prefix}booking WHERE booking_id = %d", (int) $booking_id );
|
242 |
+
$select_result = $wpdb->get_results( $sql_prepare );
|
243 |
+
|
244 |
+
$exist_booking_option_arr = array();
|
245 |
+
|
246 |
+
if ( ! empty( $select_result ) ) {
|
247 |
+
|
248 |
+
$select_result = $select_result[0]->booking_options;
|
249 |
+
|
250 |
+
if ( ! is_null( $select_result ) ) { // NULL -> chekc if option was not defined for this booking row.
|
251 |
+
|
252 |
+
$exist_booking_option_arr = maybe_unserialize( $select_result );
|
253 |
+
|
254 |
+
if (
|
255 |
+
( ! empty( $option_name ) )
|
256 |
+
&& ( ! empty( $exist_booking_option_arr[ $option_name ] ) )
|
257 |
+
) {
|
258 |
+
return $exist_booking_option_arr[ $option_name ];
|
259 |
+
}
|
260 |
+
}
|
261 |
+
}
|
262 |
+
|
263 |
+
return $exist_booking_option_arr;
|
264 |
}
|
core/wpbc-css.php
CHANGED
@@ -185,10 +185,12 @@ function wpbc_get_calendar_skin_url() {
|
|
185 |
if ( file_exists( $custom_user_skin_folder . str_replace( array( WPBC_PLUGIN_URL , $custom_user_skin_url ), '', get_bk_option( 'booking_skin') ) ) ) {
|
186 |
$calendar_skin_path = $custom_user_skin_url . str_replace( array(WPBC_PLUGIN_URL, $custom_user_skin_url ), '', get_bk_option( 'booking_skin') );
|
187 |
}
|
|
|
188 |
// debuge(
|
189 |
// get_bk_option( 'booking_skin')
|
190 |
-
//
|
191 |
-
//
|
|
|
192 |
// );
|
193 |
return $calendar_skin_path;
|
194 |
}
|
185 |
if ( file_exists( $custom_user_skin_folder . str_replace( array( WPBC_PLUGIN_URL , $custom_user_skin_url ), '', get_bk_option( 'booking_skin') ) ) ) {
|
186 |
$calendar_skin_path = $custom_user_skin_url . str_replace( array(WPBC_PLUGIN_URL, $custom_user_skin_url ), '', get_bk_option( 'booking_skin') );
|
187 |
}
|
188 |
+
//debuge( wpbc_dir_list( array( WPBC_PLUGIN_DIR . '/css/skins/', $upload_dir['basedir'].'/wpbc_skins/' ) ) );
|
189 |
// debuge(
|
190 |
// get_bk_option( 'booking_skin')
|
191 |
+
// , WPBC_PLUGIN_DIR
|
192 |
+
// , WPBC_PLUGIN_URL
|
193 |
+
// , $upload_dir
|
194 |
// );
|
195 |
return $calendar_skin_path;
|
196 |
}
|
core/wpbc-emails.php
CHANGED
@@ -439,7 +439,9 @@ add_filter( 'wpbc_email_api_is_allow_send', 'wpbc_email_api_is_allow_send', 10,
|
|
439 |
* @param string $error_description - Description
|
440 |
*/
|
441 |
function wpbc_email_sending_error( $wp_error_object, $error_description = '' ) {
|
442 |
-
|
|
|
|
|
443 |
if ( empty( $error_description ) ) {
|
444 |
// $error_description = __( 'Unknown exception', 'booking' ) . '.'; // Overwrite to show error, if no description ???
|
445 |
}
|
439 |
* @param string $error_description - Description
|
440 |
*/
|
441 |
function wpbc_email_sending_error( $wp_error_object, $error_description = '' ) {
|
442 |
+
|
443 |
+
if ( ( defined( 'WPBC_AJAX_ERROR_CATCH' ) ) && ( WPBC_AJAX_ERROR_CATCH ) ) { return false; } //FixIn: 9.2.1.10
|
444 |
+
|
445 |
if ( empty( $error_description ) ) {
|
446 |
// $error_description = __( 'Unknown exception', 'booking' ) . '.'; // Overwrite to show error, if no description ???
|
447 |
}
|
core/wpbc-functions.php
CHANGED
@@ -1798,7 +1798,14 @@ $is_old = false;
|
|
1798 |
|
1799 |
}
|
1800 |
|
1801 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1802 |
function wpbc_update_number_new_bookings( $id_of_new_bookings, $is_new = '0' , $user_id = 1 ){
|
1803 |
global $wpdb;
|
1804 |
|
@@ -3246,8 +3253,8 @@ function wpbc_add_log_info( $booking_id_arr, $message ) {
|
|
3246 |
|
3247 |
$is_append = true;
|
3248 |
foreach ( $booking_id_arr as $booking_id ) {
|
3249 |
-
$date_time = date_i18n( '
|
3250 |
-
make_bk_action('wpdev_make_update_of_remark' , $booking_id , $
|
3251 |
}
|
3252 |
}
|
3253 |
|
1798 |
|
1799 |
}
|
1800 |
|
1801 |
+
/**
|
1802 |
+
* Update 'is_new' status of bookings in Database
|
1803 |
+
*
|
1804 |
+
* @param $id_of_new_bookings inr or comma seperated ID of bookings. Example: '1' | '3,5,7,9'
|
1805 |
+
* @param $is_new '0' | '1'
|
1806 |
+
* @param $user_id 'user_id'
|
1807 |
+
*
|
1808 |
+
*/
|
1809 |
function wpbc_update_number_new_bookings( $id_of_new_bookings, $is_new = '0' , $user_id = 1 ){
|
1810 |
global $wpdb;
|
1811 |
|
3253 |
|
3254 |
$is_append = true;
|
3255 |
foreach ( $booking_id_arr as $booking_id ) {
|
3256 |
+
$date_time = date_i18n( '[Y-m-d H:i] ' );
|
3257 |
+
make_bk_action('wpdev_make_update_of_remark' , $booking_id , $date_time . $message , $is_append ); //FixIn: 9.1.2.14
|
3258 |
}
|
3259 |
}
|
3260 |
|
core/wpbc-include.php
CHANGED
@@ -77,13 +77,15 @@ require_once( WPBC_PLUGIN_DIR . '/core/admin/wpbc-dashboard.php' );
|
|
77 |
|
78 |
//FixIn: 9.2.1
|
79 |
if ( 0 ) {
|
80 |
-
require_once( WPBC_PLUGIN_DIR . '/includes/
|
81 |
-
require_once( WPBC_PLUGIN_DIR . '/includes/
|
82 |
-
require_once( WPBC_PLUGIN_DIR . '/includes/
|
83 |
-
|
84 |
-
|
85 |
-
require_once( WPBC_PLUGIN_DIR . '/includes/page-
|
86 |
-
require_once( WPBC_PLUGIN_DIR . '/includes/page-
|
|
|
|
|
87 |
}
|
88 |
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
89 |
|
77 |
|
78 |
//FixIn: 9.2.1
|
79 |
if ( 0 ) {
|
80 |
+
require_once( WPBC_PLUGIN_DIR . '/includes/_toolbar_ui/toolbar_ui.php' );
|
81 |
+
require_once( WPBC_PLUGIN_DIR . '/includes/_listing_css_js/listing_ui.php' );
|
82 |
+
require_once( WPBC_PLUGIN_DIR . '/includes/_pagination/pagination.php' );
|
83 |
+
require_once( WPBC_PLUGIN_DIR . '/includes/print/bookings_print.php' );
|
84 |
+
|
85 |
+
require_once( WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__sql.php' );
|
86 |
+
require_once( WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__actions.php' );
|
87 |
+
require_once( WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__listing.php' );
|
88 |
+
require_once( WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__page.php' );
|
89 |
}
|
90 |
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
91 |
|
core/wpbc-js.php
CHANGED
@@ -199,7 +199,7 @@ function wpbc_js_load_vars( $where_to_load ) {
|
|
199 |
, 'message_verif_same_emeil' => esc_js(__('Your emails do not match' ,'booking')) // Email Addresses Do Not Match
|
200 |
, 'message_verif_selectdts' => esc_js(__('Please, select booking date(s) at Calendar.' ,'booking'))
|
201 |
, 'parent_booking_resources' => '[]'
|
202 |
-
, 'new_booking_title' => esc_js( apply_bk_filter('wpdev_check_for_active_language', get_bk_option( 'booking_title_after_reservation' ) ) )
|
203 |
, 'new_booking_title_time' => get_bk_option('booking_title_after_reservation_time')
|
204 |
, 'type_of_thank_you_message' => esc_js( get_bk_option( 'booking_type_of_thank_you_message' ) )
|
205 |
, 'thank_you_page_URL' => wpbc_make_link_absolute( apply_bk_filter('wpdev_check_for_active_language', get_bk_option( 'booking_thank_you_page_URL' ) ) )
|
@@ -311,7 +311,7 @@ if ( 0 ) {
|
|
311 |
|
312 |
if ( $where_to_load == 'admin' ) {
|
313 |
|
314 |
-
wp_enqueue_script( 'wpbc-js-print', wpbc_plugin_url( '/assets/libs/wpbc_js_print/wpbc_js_print.js' ), array( 'jquery' ) , '
|
315 |
wp_enqueue_script( 'wpbc-admin-main', wpbc_plugin_url( '/js/admin.js'), array( 'wpbc-global-vars' ), WP_BK_VERSION_NUM ); // Admin
|
316 |
wp_enqueue_script( 'wpbc-admin-support', wpbc_plugin_url( '/core/any/js/admin-support.js'), array( 'wpbc-global-vars' ), WP_BK_VERSION_NUM );
|
317 |
|
199 |
, 'message_verif_same_emeil' => esc_js(__('Your emails do not match' ,'booking')) // Email Addresses Do Not Match
|
200 |
, 'message_verif_selectdts' => esc_js(__('Please, select booking date(s) at Calendar.' ,'booking'))
|
201 |
, 'parent_booking_resources' => '[]'
|
202 |
+
, 'new_booking_title' => stripslashes( esc_js( apply_bk_filter('wpdev_check_for_active_language', get_bk_option( 'booking_title_after_reservation' ) ) ) ) //FixIn: 9.1.2.2
|
203 |
, 'new_booking_title_time' => get_bk_option('booking_title_after_reservation_time')
|
204 |
, 'type_of_thank_you_message' => esc_js( get_bk_option( 'booking_type_of_thank_you_message' ) )
|
205 |
, 'thank_you_page_URL' => wpbc_make_link_absolute( apply_bk_filter('wpdev_check_for_active_language', get_bk_option( 'booking_thank_you_page_URL' ) ) )
|
311 |
|
312 |
if ( $where_to_load == 'admin' ) {
|
313 |
|
314 |
+
wp_enqueue_script( 'wpbc-js-print', wpbc_plugin_url( '/assets/libs/wpbc_js_print/wpbc_js_print.js' ), array( 'jquery' ) , '2.0.0' ); //FixIn: 9.2.1.6 //FixIn: 9.1.2.13
|
315 |
wp_enqueue_script( 'wpbc-admin-main', wpbc_plugin_url( '/js/admin.js'), array( 'wpbc-global-vars' ), WP_BK_VERSION_NUM ); // Admin
|
316 |
wp_enqueue_script( 'wpbc-admin-support', wpbc_plugin_url( '/core/any/js/admin-support.js'), array( 'wpbc-global-vars' ), WP_BK_VERSION_NUM );
|
317 |
|
css/client.css
CHANGED
@@ -412,6 +412,9 @@ form.booking_form {
|
|
412 |
font-size:11px !important;
|
413 |
}
|
414 |
/* Rotate Icons for Loading ***********************************************/
|
|
|
|
|
|
|
415 |
.wpbc_icn_autorenew::before,
|
416 |
.wpbc_spin {
|
417 |
-webkit-animation: spin 2s infinite linear;
|
412 |
font-size:11px !important;
|
413 |
}
|
414 |
/* Rotate Icons for Loading ***********************************************/
|
415 |
+
.wpbc_animation_pause {
|
416 |
+
animation-play-state: paused !important;
|
417 |
+
}
|
418 |
.wpbc_icn_autorenew::before,
|
419 |
.wpbc_spin {
|
420 |
-webkit-animation: spin 2s infinite linear;
|
css/wpbc-gutenberg.css
CHANGED
@@ -122,6 +122,7 @@ DIV.wpbc_gb_block_shortcode_preview_wrapper.wpbc_gb_block_preview_bookingtimelin
|
|
122 |
border-top: none;
|
123 |
font-size: 0.9em;
|
124 |
font-weight: 600;
|
|
|
125 |
}
|
126 |
|
127 |
|
122 |
border-top: none;
|
123 |
font-size: 0.9em;
|
124 |
font-weight: 600;
|
125 |
+
box-sizing: border-box;
|
126 |
}
|
127 |
|
128 |
|
js/admin.js
CHANGED
@@ -225,15 +225,22 @@ function setCheckBoxInTable(el_stutus, el_class){
|
|
225 |
|
226 |
|
227 |
//FixIn: 5.4.5
|
228 |
-
|
229 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
230 |
var id_to_check = "" + booking_id;
|
231 |
-
if ( id_to_check.indexOf('|')
|
232 |
-
var selected_locale = jQuery('#locale_for_booking' + booking_id).val();
|
233 |
|
234 |
-
if (
|
235 |
wpdev_active_locale = selected_locale;
|
236 |
-
}
|
237 |
}
|
238 |
return wpdev_active_locale;
|
239 |
}
|
225 |
|
226 |
|
227 |
//FixIn: 5.4.5
|
228 |
+
/**
|
229 |
+
* Get selected Locale of booking in Booking Listing page.
|
230 |
+
*
|
231 |
+
* @param booking_id Booking ID 10
|
232 |
+
* @param wpdev_active_locale Active Locale in system 'en_US'
|
233 |
+
* @returns {string} Locale 'de_DE'
|
234 |
+
*/
|
235 |
+
function wpbc_get_selected_locale( booking_id, wpdev_active_locale ){
|
236 |
+
|
237 |
var id_to_check = "" + booking_id;
|
238 |
+
if ( -1 == id_to_check.indexOf( '|' ) ){ // Not found |
|
239 |
+
var selected_locale = jQuery( '#locale_for_booking' + booking_id ).val();
|
240 |
|
241 |
+
if ( (selected_locale != '') && (typeof (selected_locale) !== 'undefined') ){
|
242 |
wpdev_active_locale = selected_locale;
|
243 |
+
}
|
244 |
}
|
245 |
return wpdev_active_locale;
|
246 |
}
|
js/client.js
CHANGED
@@ -85,7 +85,9 @@ function init_datepick_cal(bk_type, date_approved_par, my_num_month, start_day_
|
|
85 |
}
|
86 |
|
87 |
function click_on_cal_td(){
|
88 |
-
if(typeof(
|
|
|
|
|
89 |
}
|
90 |
|
91 |
function selectDay(date) {
|
@@ -554,7 +556,7 @@ function setReservedSelectedDates( bk_type ){
|
|
554 |
jQuery( '#hided_booking_form' + bk_type ).prevAll( 'select[name="active_booking_form"]' ).hide(); //FixIn: 7.1.2.13
|
555 |
jQuery( '#hided_booking_form' + bk_type ).prevAll( 'label[for="calendar_type"]' ).hide();
|
556 |
|
557 |
-
makeScroll('#ajax_respond_insert' + bk_type);
|
558 |
|
559 |
if ((document.getElementById('gateway_payment_forms' + bk_type) != null) &&
|
560 |
(document.getElementById('gateway_payment_forms' + bk_type).innerHTML != ''))
|
85 |
}
|
86 |
|
87 |
function click_on_cal_td(){
|
88 |
+
if ( typeof (selectDayPro) == 'function' ){
|
89 |
+
selectDayPro( bk_type );
|
90 |
+
}
|
91 |
}
|
92 |
|
93 |
function selectDay(date) {
|
556 |
jQuery( '#hided_booking_form' + bk_type ).prevAll( 'select[name="active_booking_form"]' ).hide(); //FixIn: 7.1.2.13
|
557 |
jQuery( '#hided_booking_form' + bk_type ).prevAll( 'label[for="calendar_type"]' ).hide();
|
558 |
|
559 |
+
//makeScroll('#ajax_respond_insert' + bk_type); //FixIn: 9.1.2.1
|
560 |
|
561 |
if ((document.getElementById('gateway_payment_forms' + bk_type) != null) &&
|
562 |
(document.getElementById('gateway_payment_forms' + bk_type).innerHTML != ''))
|
js/datepick/jquery.datepick-ar.js
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
/* Arabic Translation for jQuery UI date picker plugin. */
|
2 |
/* Khaled Al Horani -- koko.dw@gmail.com */
|
3 |
/* خالد الحوراني -- koko.dw@gmail.com */
|
|
|
4 |
/* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */
|
5 |
(function($) {
|
6 |
$.datepick.regional['ar'] = {
|
@@ -11,8 +12,8 @@
|
|
11 |
nextText: 'التالي>', nextStatus: 'عرض الشهر القادم',
|
12 |
nextBigText: '>>', nextBigStatus: '',
|
13 |
currentText: 'اليوم', currentStatus: 'عرض الشهر الحالي',
|
14 |
-
monthNames: ['
|
15 |
-
'
|
16 |
monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
|
17 |
monthStatus: 'عرض شهر آخر', yearStatus: 'عرض سنة آخرى',
|
18 |
weekHeader: 'أسبوع', weekStatus: 'أسبوع السنة',
|
1 |
/* Arabic Translation for jQuery UI date picker plugin. */
|
2 |
/* Khaled Al Horani -- koko.dw@gmail.com */
|
3 |
/* خالد الحوراني -- koko.dw@gmail.com */
|
4 |
+
/* edit by Faisal khaled -- f.aldeini@gmail.com */
|
5 |
/* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */
|
6 |
(function($) {
|
7 |
$.datepick.regional['ar'] = {
|
12 |
nextText: 'التالي>', nextStatus: 'عرض الشهر القادم',
|
13 |
nextBigText: '>>', nextBigStatus: '',
|
14 |
currentText: 'اليوم', currentStatus: 'عرض الشهر الحالي',
|
15 |
+
monthNames: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو',
|
16 |
+
'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],
|
17 |
monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
|
18 |
monthStatus: 'عرض شهر آخر', yearStatus: 'عرض سنة آخرى',
|
19 |
weekHeader: 'أسبوع', weekStatus: 'أسبوع السنة',
|
js/wpbc_times.js
CHANGED
@@ -1104,8 +1104,12 @@ function wpbc_is_time_field_in_booking_form( resource_id, form_elements ){
|
|
1104 |
if ( typeof(wpbc_get_conditional_section_id_for_weekday) == 'function' ){
|
1105 |
var conditional_field_element_id = wpbc_get_conditional_section_id_for_weekday( td_class, bk_type );
|
1106 |
if ( conditional_field_element_id !== false ){
|
1107 |
-
time_field_to_check[ 0 ]
|
1108 |
-
|
|
|
|
|
|
|
|
|
1109 |
}
|
1110 |
}
|
1111 |
|
@@ -1234,7 +1238,6 @@ function wpbc_is_time_field_in_booking_form( resource_id, form_elements ){
|
|
1234 |
time_slot_field_name2 = conditional_field_element_id + ' ' + 'select[name="rangetime' + bk_type + '[]"]';
|
1235 |
}
|
1236 |
}
|
1237 |
-
|
1238 |
// Get rangetime element from possible conditional Seasonal section //FixIn: 8.4.5.3
|
1239 |
if ( typeof(wpbc_get_conditional_section_id_for_seasons) == 'function' ){
|
1240 |
var conditional_field_element_id2 = wpbc_get_conditional_section_id_for_seasons( td_class, bk_type );
|
@@ -1291,6 +1294,28 @@ function wpbc_is_time_field_in_booking_form( resource_id, form_elements ){
|
|
1291 |
//var is_element_exist = jQuery( time_slot_field_name+','+time_slot_field_name2 ).length; //FixIn:6.1.1.6 - Previously was this line
|
1292 |
var start_time_fields = 'select[name="starttime' + bk_type + '"]'; //FixIn:6.1.1.6
|
1293 |
var start_time_fields2 = 'select[name="starttime' + bk_type + '[]"]'; //FixIn:6.1.1.6
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1294 |
var is_element_exist = jQuery( time_slot_field_name + ',' + time_slot_field_name2 + ',' + start_time_fields + ',' + start_time_fields2 ).length; //FixIn:6.1.1.6
|
1295 |
|
1296 |
if (is_element_exist) {
|
@@ -1328,7 +1353,12 @@ function wpbc_is_time_field_in_booking_form( resource_id, form_elements ){
|
|
1328 |
var my_start_time_options = jQuery( start_time_fields + ' option,'+start_time_fields2 + ' option');
|
1329 |
|
1330 |
if ( ( my_start_time_options.length > 0 )
|
1331 |
-
&& (
|
|
|
|
|
|
|
|
|
|
|
1332 |
){ // Only if range selections exist and we are have single days selections
|
1333 |
var removed_time_slots = is_time_slot_booked_for_this_time_array( bk_type, times_array, td_class, [ start_time_fields, start_time_fields2 ] );
|
1334 |
var some_exist_time_slots = [];
|
@@ -1347,7 +1377,12 @@ function wpbc_is_time_field_in_booking_form( resource_id, form_elements ){
|
|
1347 |
|
1348 |
//Check may be its not possible to select any other time slots from the selectbox, because its already booked, sothen mark this day as booked.
|
1349 |
if ( ( my_timerange_value.length > 0 )
|
1350 |
-
&& (
|
|
|
|
|
|
|
|
|
|
|
1351 |
){ // Only if range selections exist and we are have single days selections
|
1352 |
var removed_time_slots = is_time_slot_booked_for_this_time_array( bk_type, times_array, td_class, [ time_slot_field_name, time_slot_field_name2 ] );
|
1353 |
var some_exist_time_slots = [];
|
1104 |
if ( typeof(wpbc_get_conditional_section_id_for_weekday) == 'function' ){
|
1105 |
var conditional_field_element_id = wpbc_get_conditional_section_id_for_weekday( td_class, bk_type );
|
1106 |
if ( conditional_field_element_id !== false ){
|
1107 |
+
if ( time_field_to_check[ 0 ].substr( 0, conditional_field_element_id.length ) !== conditional_field_element_id ){ //FixIn: 9.1.2.8
|
1108 |
+
time_field_to_check[ 0 ] = conditional_field_element_id + ' ' + time_field_to_check[ 0 ];
|
1109 |
+
}
|
1110 |
+
if ( time_field_to_check[ 1 ].substr( 0, conditional_field_element_id.length ) !== conditional_field_element_id ){
|
1111 |
+
time_field_to_check[ 1 ] = conditional_field_element_id + ' ' + time_field_to_check[ 1 ];
|
1112 |
+
}
|
1113 |
}
|
1114 |
}
|
1115 |
|
1238 |
time_slot_field_name2 = conditional_field_element_id + ' ' + 'select[name="rangetime' + bk_type + '[]"]';
|
1239 |
}
|
1240 |
}
|
|
|
1241 |
// Get rangetime element from possible conditional Seasonal section //FixIn: 8.4.5.3
|
1242 |
if ( typeof(wpbc_get_conditional_section_id_for_seasons) == 'function' ){
|
1243 |
var conditional_field_element_id2 = wpbc_get_conditional_section_id_for_seasons( td_class, bk_type );
|
1294 |
//var is_element_exist = jQuery( time_slot_field_name+','+time_slot_field_name2 ).length; //FixIn:6.1.1.6 - Previously was this line
|
1295 |
var start_time_fields = 'select[name="starttime' + bk_type + '"]'; //FixIn:6.1.1.6
|
1296 |
var start_time_fields2 = 'select[name="starttime' + bk_type + '[]"]'; //FixIn:6.1.1.6
|
1297 |
+
|
1298 |
+
// Get starttime element from possible conditional Weekdays section
|
1299 |
+
if( typeof( wpbc_get_conditional_section_id_for_weekday ) == 'function' ) { //FixIn: 9.1.2.8
|
1300 |
+
var conditional_field_element_id = wpbc_get_conditional_section_id_for_weekday( td_class, bk_type );
|
1301 |
+
if ( conditional_field_element_id !== false ) {
|
1302 |
+
start_time_fields = conditional_field_element_id + ' ' + 'select[name="starttime' + bk_type + '"]';
|
1303 |
+
start_time_fields2 = conditional_field_element_id + ' ' + 'select[name="starttime' + bk_type + '[]"]';
|
1304 |
+
}
|
1305 |
+
}
|
1306 |
+
// Get starttime element from possible conditional Seasonal section
|
1307 |
+
if ( typeof(wpbc_get_conditional_section_id_for_seasons) == 'function' ){
|
1308 |
+
var conditional_field_element_id2 = wpbc_get_conditional_section_id_for_seasons( td_class, bk_type );
|
1309 |
+
|
1310 |
+
if ( conditional_field_element_id2 !== false ){
|
1311 |
+
start_time_fields = conditional_field_element_id2 + ' ' + 'select[name="starttime' + bk_type + '"]';
|
1312 |
+
start_time_fields2 = conditional_field_element_id2 + ' ' + 'select[name="starttime' + bk_type + '[]"]';
|
1313 |
+
}
|
1314 |
+
}
|
1315 |
+
|
1316 |
+
|
1317 |
+
|
1318 |
+
|
1319 |
var is_element_exist = jQuery( time_slot_field_name + ',' + time_slot_field_name2 + ',' + start_time_fields + ',' + start_time_fields2 ).length; //FixIn:6.1.1.6
|
1320 |
|
1321 |
if (is_element_exist) {
|
1353 |
var my_start_time_options = jQuery( start_time_fields + ' option,'+start_time_fields2 + ' option');
|
1354 |
|
1355 |
if ( ( my_start_time_options.length > 0 )
|
1356 |
+
&& (
|
1357 |
+
( (bk_days_selection_mode == 'single') /*&& (wpbcg.time_disable_modes.indexOf( 'single' ) >= 0)*/ ) //FixIn: 9.1.2.9
|
1358 |
+
|| ( (bk_days_selection_mode == 'multiple') && (wpbcg.time_disable_modes.indexOf( 'multiple' ) >= 0) )
|
1359 |
+
|| ( (bk_days_selection_mode == 'dynamic') && (wpbcg.time_disable_modes.indexOf( 'dynamic' ) >= 0) )
|
1360 |
+
|| ( (bk_days_selection_mode == 'fixed') && (wpbcg.time_disable_modes.indexOf( 'fixed' ) >= 0) )
|
1361 |
+
)
|
1362 |
){ // Only if range selections exist and we are have single days selections
|
1363 |
var removed_time_slots = is_time_slot_booked_for_this_time_array( bk_type, times_array, td_class, [ start_time_fields, start_time_fields2 ] );
|
1364 |
var some_exist_time_slots = [];
|
1377 |
|
1378 |
//Check may be its not possible to select any other time slots from the selectbox, because its already booked, sothen mark this day as booked.
|
1379 |
if ( ( my_timerange_value.length > 0 )
|
1380 |
+
&& (
|
1381 |
+
( (bk_days_selection_mode == 'single') /*&& (wpbcg.time_disable_modes.indexOf( 'single' ) >= 0)*/ ) //FixIn: 9.1.2.9
|
1382 |
+
|| ( (bk_days_selection_mode == 'multiple') && (wpbcg.time_disable_modes.indexOf( 'multiple' ) >= 0) )
|
1383 |
+
|| ( (bk_days_selection_mode == 'dynamic') && (wpbcg.time_disable_modes.indexOf( 'dynamic' ) >= 0) )
|
1384 |
+
|| ( (bk_days_selection_mode == 'fixed') && (wpbcg.time_disable_modes.indexOf( 'fixed' ) >= 0) )
|
1385 |
+
)
|
1386 |
){ // Only if range selections exist and we are have single days selections
|
1387 |
var removed_time_slots = is_time_slot_booked_for_this_time_array( bk_type, times_array, td_class, [ time_slot_field_name, time_slot_field_name2 ] );
|
1388 |
var some_exist_time_slots = [];
|
readme.txt
CHANGED
@@ -5,11 +5,11 @@ Tags: booking calendar, booking system, availability calendar, events calendar,
|
|
5 |
Requires at least: 4.0
|
6 |
Requires PHP: 5.6
|
7 |
Tested up to: 6.0
|
8 |
-
Stable tag: 9.1.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
12 |
-
Booking Calendar -
|
13 |
|
14 |
== Description ==
|
15 |
|
@@ -230,12 +230,32 @@ Please see [Video Guides](https://wpbookingcalendar.com/help/).
|
|
230 |
13. **Time Slots**. Simple configuration of **time slots** selection in booking form.
|
231 |
|
232 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
= 9.1.1 =
|
234 |
- Changes in **all** versions:
|
235 |
* **New**. Ability to show tooltips of booked times at mobile devices. (9.2.1.5)
|
236 |
* **Under Hood** Separate section of code for '#bklnk' in search availability (9.2.1.2)
|
237 |
* **Fix**. Issue of highlighting today date in calendar, after scrolling calendar months (9.2.1.7)
|
238 |
* **Fix**. Vulnerability issue relative Deserialization and PHP object injection. (9.2.1.8)
|
|
|
239 |
- Changes in **Personal / Business Small / Business Medium / Business Large / MultiUser** versions:
|
240 |
* **Fix**. Issue of printing in MS Edge. (9.2.1.6)
|
241 |
* **Fix**. Error: "Uncaught ReferenceError: wpbc_timeline_obj is not defined" while using [visitorbookingslisting] shortcode in the emails. (9.2.1.3)
|
5 |
Requires at least: 4.0
|
6 |
Requires PHP: 5.6
|
7 |
Tested up to: 6.0
|
8 |
+
Stable tag: 9.1.2
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
12 |
+
Booking Calendar - original 1st booking plugin for WordPress. Get full day or time slot bookings & show availability in a easy to use booking system.
|
13 |
|
14 |
== Description ==
|
15 |
|
230 |
13. **Time Slots**. Simple configuration of **time slots** selection in booking form.
|
231 |
|
232 |
== Changelog ==
|
233 |
+
= 9.1.2 =
|
234 |
+
- Changes in **all** versions:
|
235 |
+
* **New**. Ability permanently delete all imported bookings before new import, instead of sending to Trash. Activate this option at the Booking > Settings > Sync > "General" page. (9.1.2.6)
|
236 |
+
* **Fix**. Double scrolling issue to "Thank you" message after submitting of the booking. (9.1.2.1)
|
237 |
+
* **Fix**. Showing slashes in "Thank you" message, if used quote symbols. (9.1.2.2)
|
238 |
+
* **Fix**. Issue of incorrectly defining path for calendar skins at some servers. (9.1.2.10)
|
239 |
+
* **Under hood**. New 'booking_options' field in booking table in Database, for saving different bookings meta data, like booking language locale, etc.. (9.1.2.12) *(Business Large, MultiUser)*
|
240 |
+
- Changes in **Personal / Business Small / Business Medium / Business Large / MultiUser** versions:
|
241 |
+
* **Improvement**. Disable using "Unavailable time before / after booking" in booking resources with specific capacity. Otherwise it generate availability issue. (9.1.2.7) *(Business Large, MultiUser)*
|
242 |
+
* **Improvement**. Ability to disabled fully booked dates in calendar, if in booking form was used "start time" fields in the conditional section. (9.1.2.8) *(Business Medium/Large, MultiUser)*
|
243 |
+
* **Improvement**. Block dates in calendar, if all time slots was booked for specific date(s), if activated this option "Disable booked time slots in multiple days selection mode" at the Booking > Settings General page in "Advanced" section. (9.1.2.9) *(Business Small/Medium/Large, MultiUser)*
|
244 |
+
* **Improvement**. Making automatic selection of custom search fields in search form after initial search. (9.1.2.11)
|
245 |
+
* **Improvement**. Updated print script to version 2.0.0 (9.1.2.13)
|
246 |
+
* **Improvement**. Save time of log note at the beginning of message (9.1.2.14)
|
247 |
+
* **Fix**. Prevent of showing '1980-01-01' in search results, after initial loading of page (if searching was not made, yet) instead of [search_check_in] and [search_check_out] shortcodes . (9.1.2.11)
|
248 |
+
* **Fix**. Showing booking resource labels with very long name, more than 80 characters. Trim such name to 80 symbols and show full booking resource name in a tooltip, when mouse over. (9.1.2.3)
|
249 |
+
* **Fix**. Uncaught TypeError: jQuery(...).hide is not a function, during cancellation of the bookings. (9.1.2.4)
|
250 |
+
* **Under hood**. Search availability enhance functionality. Ability to use shortcode like this [bookinglooking type=4 nummonths=1] instead of [booking type=4 nummonths=1] in content of the page, for ability to show this page in search availability result. Usually this trick useful, if the Booking Calendar shortcode used in side bar or meta-boxes of as widget, and we can not use it in main page content. Parameters of this [bookinglooking ... ] shortcode have to be the same as in [booking ... ] shortcode. Please check more here https://wpbookingcalendar.com/faq/shortcode-booking-form/ (9.1.2.5) *(Business Large, MultiUser)*
|
251 |
+
|
252 |
= 9.1.1 =
|
253 |
- Changes in **all** versions:
|
254 |
* **New**. Ability to show tooltips of booked times at mobile devices. (9.2.1.5)
|
255 |
* **Under Hood** Separate section of code for '#bklnk' in search availability (9.2.1.2)
|
256 |
* **Fix**. Issue of highlighting today date in calendar, after scrolling calendar months (9.2.1.7)
|
257 |
* **Fix**. Vulnerability issue relative Deserialization and PHP object injection. (9.2.1.8)
|
258 |
+
* **Under hood**. Skip showing errors of emails sending if such errors recorded for general ajax purpose. (9.2.1.10)
|
259 |
- Changes in **Personal / Business Small / Business Medium / Business Large / MultiUser** versions:
|
260 |
* **Fix**. Issue of printing in MS Edge. (9.2.1.6)
|
261 |
* **Fix**. Error: "Uncaught ReferenceError: wpbc_timeline_obj is not defined" while using [visitorbookingslisting] shortcode in the emails. (9.2.1.3)
|
wpdev-booking.php
CHANGED
@@ -7,7 +7,7 @@ Author: wpdevelop, oplugins
|
|
7 |
Author URI: https://wpbookingcalendar.com/
|
8 |
Text Domain: booking
|
9 |
Domain Path: /languages/
|
10 |
-
Version: 9.1.
|
11 |
*/
|
12 |
|
13 |
/* Copyright 2009 - 2022 www.wpbookingcalendar.com (email: info@wpbookingcalendar.com),
|
@@ -29,7 +29,7 @@ Version: 9.1.1
|
|
29 |
if ( ! defined( 'ABSPATH' ) ) die( '<h3>Direct access to this file do not allow!</h3>' ); // Exit if accessed directly
|
30 |
|
31 |
|
32 |
-
if ( ! defined( 'WP_BK_VERSION_NUM' ) ) { define( 'WP_BK_VERSION_NUM', '9.1.
|
33 |
|
34 |
////////////////////////////////////////////////////////////////////////////////
|
35 |
// PRIMARY URL CONSTANTS
|
7 |
Author URI: https://wpbookingcalendar.com/
|
8 |
Text Domain: booking
|
9 |
Domain Path: /languages/
|
10 |
+
Version: 9.1.2
|
11 |
*/
|
12 |
|
13 |
/* Copyright 2009 - 2022 www.wpbookingcalendar.com (email: info@wpbookingcalendar.com),
|
29 |
if ( ! defined( 'ABSPATH' ) ) die( '<h3>Direct access to this file do not allow!</h3>' ); // Exit if accessed directly
|
30 |
|
31 |
|
32 |
+
if ( ! defined( 'WP_BK_VERSION_NUM' ) ) { define( 'WP_BK_VERSION_NUM', '9.1.2' ); }
|
33 |
|
34 |
////////////////////////////////////////////////////////////////////////////////
|
35 |
// PRIMARY URL CONSTANTS
|