PluginProbe
Booking Calendar / 11.9
Booking Calendar v11.9
11.9 11.8.4 11.8.3 11.8.2 11.8.1 11.8 11.7 11.6.1 11.6 11.5 11.4.3 11.4.2 11.4.1 11.4 11.3 11.2.1 11.2 11.1 11.0 10.15.7 10.15.6 10.1.3 10.10 10.10.1 10.10.2 All 205 releases
booking / includes / page-bookings / _out / bookings__hooks.js

bookings__hooks.js in Booking Calendar 11.9, at includes/page-bookings/_out/bookings__hooks.js

155 lines 26.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 "use strict";
2
3 /**
4 * Define HTML ui Hooks: on KeyUp | Change | -> Sort Order & Number Items / Page
5 * * We are chnaged it once, because such elements always the same
6 */
7 function wpbc_ajx_booking_define_ui_hooks_once() {
8 //------------------------------------------------------------------------------------------------------------------
9 // Booked dates
10 //------------------------------------------------------------------------------------------------------------------
11 jQuery('#wh_booking_date').on('change', function (event) {
12 var changed_value = JSON.parse(jQuery('#wh_booking_date').val());
13 wpbc_ajx_booking_send_search_request_with_params({
14 'wh_booking_date': changed_value,
15 'page_num': 1,
16 // Frontend selected elements (saving for future use, after F5)
17 'ui_wh_booking_date_radio': jQuery('input[name="ui_wh_booking_date_radio"]:checked').val(),
18 'ui_wh_booking_date_next': jQuery('#ui_wh_booking_date_next').val(),
19 'ui_wh_booking_date_prior': jQuery('#ui_wh_booking_date_prior').val(),
20 'ui_wh_booking_date_checkin': jQuery('#ui_wh_booking_date_checkin').val(),
21 'ui_wh_booking_date_checkout': jQuery('#ui_wh_booking_date_checkout').val()
22 });
23 });
24
25 //------------------------------------------------------------------------------------------------------------------
26 // Approved | Pending | All
27 //------------------------------------------------------------------------------------------------------------------
28 jQuery('#wh_approved').on('change', function (event) {
29 var changed_value = jQuery('#wh_approved').val();
30 changed_value = JSON.parse(changed_value);
31 wpbc_ajx_booking_send_search_request_with_params({
32 'wh_approved': changed_value[0],
33 'page_num': 1
34 });
35 });
36
37 //------------------------------------------------------------------------------------------------------------------
38 // Keywords
39 //------------------------------------------------------------------------------------------------------------------
40 jQuery('#wpbc_search_field').on("keyup", function (event) {
41 if (13 !== event.which) {
42 wpbc_ajx_booking_searching_after_few_seconds('#wpbc_search_field'); // Searching after 1.5 seconds after Key Up
43 } else {
44 wpbc_ajx_booking_searching_after_few_seconds('#wpbc_search_field', 0); // Immediate search
45 }
46 });
47
48 //------------------------------------------------------------------------------------------------------------------
49 // Existing | Trash | Any
50 //------------------------------------------------------------------------------------------------------------------
51 jQuery('#wh_trash').on('change', function (event) {
52 var changed_value = JSON.parse(jQuery('#wh_trash').val());
53 wpbc_ajx_booking_send_search_request_with_params({
54 'wh_trash': changed_value[0],
55 'page_num': 1
56 });
57 });
58
59 //------------------------------------------------------------------------------------------------------------------
60 // All bookings | New bookings
61 //------------------------------------------------------------------------------------------------------------------
62 jQuery('#wh_what_bookings').on('change', function (event) {
63 var changed_value = JSON.parse(jQuery('#wh_what_bookings').val());
64 wpbc_ajx_booking_send_search_request_with_params({
65 'wh_what_bookings': changed_value[0],
66 'page_num': 1
67 });
68 });
69
70 //------------------------------------------------------------------------------------------------------------------
71 // "Creation Date" of bookings
72 //------------------------------------------------------------------------------------------------------------------
73 jQuery('#wh_modification_date').on('change', function (event) {
74 var changed_value = JSON.parse(jQuery('#wh_modification_date').val());
75 wpbc_ajx_booking_send_search_request_with_params({
76 'wh_modification_date': changed_value,
77 'page_num': 1,
78 // Frontend selected elements (saving for future use, after F5)
79 'ui_wh_modification_date_radio': jQuery('input[name="ui_wh_modification_date_radio"]:checked').val(),
80 'ui_wh_modification_date_prior': jQuery('#ui_wh_modification_date_prior').val(),
81 'ui_wh_modification_date_checkin': jQuery('#ui_wh_modification_date_checkin').val(),
82 'ui_wh_modification_date_checkout': jQuery('#ui_wh_modification_date_checkout').val()
83 });
84 });
85
86 //------------------------------------------------------------------------------------------------------------------
87 // Payment Status
88 //------------------------------------------------------------------------------------------------------------------
89 jQuery('#wh_pay_status').on('change', function (event) {
90 var changed_value = JSON.parse(jQuery('#wh_pay_status').val());
91 wpbc_ajx_booking_send_search_request_with_params({
92 'wh_pay_status': changed_value,
93 'page_num': 1,
94 // Frontend selected elements (saving for future use, after F5)
95 'ui_wh_pay_status_radio': undefined === jQuery('input[name="ui_wh_pay_status_radio"]:checked').val() ? '' : jQuery('input[name="ui_wh_pay_status_radio"]:checked').val(),
96 'ui_wh_pay_status_custom': jQuery('#ui_wh_pay_status_custom').val()
97 });
98 });
99
100 //------------------------------------------------------------------------------------------------------------------
101 // Min Cost
102 //------------------------------------------------------------------------------------------------------------------
103 jQuery('#wh_cost').on('change', function (event) {
104 var changed_value = jQuery('#wh_cost').val();
105 wpbc_ajx_booking_send_search_request_with_params({
106 'wh_cost': changed_value,
107 'page_num': 1
108 });
109 });
110
111 //------------------------------------------------------------------------------------------------------------------
112 // Max Cost
113 //------------------------------------------------------------------------------------------------------------------
114 jQuery('#wh_cost2').on('change', function (event) {
115 var changed_value = jQuery('#wh_cost2').val();
116 wpbc_ajx_booking_send_search_request_with_params({
117 'wh_cost2': changed_value,
118 'page_num': 1
119 });
120 });
121
122 //------------------------------------------------------------------------------------------------------------------
123 // Reusable Chosen listing filters, such as Booking resources/Providers and Appointment Services.
124 //------------------------------------------------------------------------------------------------------------------
125 jQuery('select[data-wpbc-listing-filter-param]').on('change', function () {
126 var listing_filter_param = jQuery(this).attr('data-wpbc-listing-filter-param');
127 var changed_value;
128 var request_updates;
129 if (!listing_filter_param) {
130 return;
131 }
132 changed_value = 'function' === typeof window.wpbc_ui_chosen_filter_get_request_value ? window.wpbc_ui_chosen_filter_get_request_value(this) : jQuery(this).val();
133 request_updates = {
134 'page_num': 1
135 };
136 request_updates[listing_filter_param] = changed_value;
137 wpbc_ajx_booking_send_search_request_with_params(request_updates);
138 });
139
140 //------------------------------------------------------------------------------------------------------------------
141 // Sorting
142 //------------------------------------------------------------------------------------------------------------------
143 jQuery('#wh_sort').on('change', function (event) {
144 var changed_value = jQuery('#wh_sort').val();
145 changed_value = JSON.parse(changed_value);
146 wpbc_ajx_booking_send_search_request_with_params({
147 'wh_sort': changed_value[0]
148 });
149 });
150 }
151 jQuery(document).ready(function () {
152 wpbc_ajx_booking_define_ui_hooks_once();
153 });
154 //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jbHVkZXMvcGFnZS1ib29raW5ncy9fb3V0L2Jvb2tpbmdzX19ob29rcy5qcyIsIm5hbWVzIjpbIndwYmNfYWp4X2Jvb2tpbmdfZGVmaW5lX3VpX2hvb2tzX29uY2UiLCJqUXVlcnkiLCJvbiIsImV2ZW50IiwiY2hhbmdlZF92YWx1ZSIsIkpTT04iLCJwYXJzZSIsInZhbCIsIndwYmNfYWp4X2Jvb2tpbmdfc2VuZF9zZWFyY2hfcmVxdWVzdF93aXRoX3BhcmFtcyIsIndoaWNoIiwid3BiY19hanhfYm9va2luZ19zZWFyY2hpbmdfYWZ0ZXJfZmV3X3NlY29uZHMiLCJ1bmRlZmluZWQiLCJsaXN0aW5nX2ZpbHRlcl9wYXJhbSIsImF0dHIiLCJyZXF1ZXN0X3VwZGF0ZXMiLCJ3aW5kb3ciLCJ3cGJjX3VpX2Nob3Nlbl9maWx0ZXJfZ2V0X3JlcXVlc3RfdmFsdWUiLCJkb2N1bWVudCIsInJlYWR5Il0sInNvdXJjZXMiOlsiaW5jbHVkZXMvcGFnZS1ib29raW5ncy9fc3JjL2Jvb2tpbmdzX19ob29rcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbi8qKlxyXG4gKiBEZWZpbmUgSFRNTCB1aSBIb29rczogb24gS2V5VXAgfCBDaGFuZ2UgfCAtPiBTb3J0IE9yZGVyICYgTnVtYmVyIEl0ZW1zIC8gUGFnZVxyXG4gKiAqIFdlIGFyZSBjaG5hZ2VkIGl0IG9uY2UsIGJlY2F1c2Ugc3VjaCAgZWxlbWVudHMgYWx3YXlzIHRoZSBzYW1lXHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX2FqeF9ib29raW5nX2RlZmluZV91aV9ob29rc19vbmNlKCl7XHJcblxyXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0Ly8gQm9va2VkIGRhdGVzXHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRqUXVlcnkoICcjd2hfYm9va2luZ19kYXRlJyApLm9uKCAnY2hhbmdlJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcblxyXG5cdFx0dmFyIGNoYW5nZWRfdmFsdWUgPSBKU09OLnBhcnNlKCBqUXVlcnkoICcjd2hfYm9va2luZ19kYXRlJyApLnZhbCgpICk7XHJcblxyXG5cdFx0d3BiY19hanhfYm9va2luZ19zZW5kX3NlYXJjaF9yZXF1ZXN0X3dpdGhfcGFyYW1zKCB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd3aF9ib29raW5nX2RhdGUnOiBjaGFuZ2VkX3ZhbHVlLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQncGFnZV9udW0nICAgICAgIDogMSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gRnJvbnRlbmQgc2VsZWN0ZWQgZWxlbWVudHMgKHNhdmluZyBmb3IgZnV0dXJlIHVzZSwgYWZ0ZXIgRjUpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd1aV93aF9ib29raW5nX2RhdGVfcmFkaW8nICAgOiBqUXVlcnkoICdpbnB1dFtuYW1lPVwidWlfd2hfYm9va2luZ19kYXRlX3JhZGlvXCJdOmNoZWNrZWQnICkudmFsKCksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd1aV93aF9ib29raW5nX2RhdGVfbmV4dCcgICAgOiBqUXVlcnkoICcjdWlfd2hfYm9va2luZ19kYXRlX25leHQnICkudmFsKCksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd1aV93aF9ib29raW5nX2RhdGVfcHJpb3InICAgOiBqUXVlcnkoICcjdWlfd2hfYm9va2luZ19kYXRlX3ByaW9yJyApLnZhbCgpLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQndWlfd2hfYm9va2luZ19kYXRlX2NoZWNraW4nIDogalF1ZXJ5KCAnI3VpX3doX2Jvb2tpbmdfZGF0ZV9jaGVja2luJyApLnZhbCgpLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQndWlfd2hfYm9va2luZ19kYXRlX2NoZWNrb3V0JzogalF1ZXJ5KCAnI3VpX3doX2Jvb2tpbmdfZGF0ZV9jaGVja291dCcgKS52YWwoKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSApO1xyXG5cdH0gKTtcclxuXHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHQvLyBBcHByb3ZlZCB8IFBlbmRpbmcgfCBBbGxcclxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdGpRdWVyeSggJyN3aF9hcHByb3ZlZCcgKS5vbiggJ2NoYW5nZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG5cclxuXHRcdHZhciBjaGFuZ2VkX3ZhbHVlID0galF1ZXJ5KCAnI3doX2FwcHJvdmVkJyApLnZhbCgpO1xyXG5cclxuXHRcdGNoYW5nZWRfdmFsdWUgPSBKU09OLnBhcnNlKCBjaGFuZ2VkX3ZhbHVlICk7XHJcblxyXG5cdFx0d3BiY19hanhfYm9va2luZ19zZW5kX3NlYXJjaF9yZXF1ZXN0X3dpdGhfcGFyYW1zKCB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd3aF9hcHByb3ZlZCc6IGNoYW5nZWRfdmFsdWVbIDAgXSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3BhZ2VfbnVtJyAgIDogMVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSApO1xyXG5cdH0gKTtcclxuXHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHQvLyBLZXl3b3Jkc1xyXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0alF1ZXJ5KCAnI3dwYmNfc2VhcmNoX2ZpZWxkJyApLm9uKCBcImtleXVwXCIsIGZ1bmN0aW9uICggZXZlbnQgKXtcclxuXHRcdGlmICggMTMgIT09IGV2ZW50LndoaWNoICl7XHJcblx0XHRcdHdwYmNfYWp4X2Jvb2tpbmdfc2VhcmNoaW5nX2FmdGVyX2Zld19zZWNvbmRzKCAnI3dwYmNfc2VhcmNoX2ZpZWxkJyApO1x0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gU2VhcmNoaW5nIGFmdGVyIDEuNSBzZWNvbmRzIGFmdGVyIEtleSBVcFxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0d3BiY19hanhfYm9va2luZ19zZWFyY2hpbmdfYWZ0ZXJfZmV3X3NlY29uZHMoICcjd3BiY19zZWFyY2hfZmllbGQnLCAwICk7XHRcdFx0XHRcdFx0XHRcdFx0Ly8gSW1tZWRpYXRlIHNlYXJjaFxyXG5cdFx0fVxyXG5cdH0gKTtcclxuXHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHQvLyBFeGlzdGluZyB8IFRyYXNoIHwgQW55XHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRqUXVlcnkoICcjd2hfdHJhc2gnICkub24oICdjaGFuZ2UnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuXHJcblx0XHR2YXIgY2hhbmdlZF92YWx1ZSA9IEpTT04ucGFyc2UoIGpRdWVyeSggJyN3aF90cmFzaCcgKS52YWwoKSApO1xyXG5cclxuXHRcdHdwYmNfYWp4X2Jvb2tpbmdfc2VuZF9zZWFyY2hfcmVxdWVzdF93aXRoX3BhcmFtcygge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnd2hfdHJhc2gnOiBjaGFuZ2VkX3ZhbHVlWyAwIF0sXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdwYWdlX251bSc6IDFcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gKTtcclxuXHR9ICk7XHJcblxyXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0Ly8gQWxsIGJvb2tpbmdzIHwgTmV3IGJvb2tpbmdzXHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRqUXVlcnkoICcjd2hfd2hhdF9ib29raW5ncycgKS5vbiggJ2NoYW5nZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG5cclxuXHRcdHZhciBjaGFuZ2VkX3ZhbHVlID0gSlNPTi5wYXJzZSggalF1ZXJ5KCAnI3doX3doYXRfYm9va2luZ3MnICkudmFsKCkgKTtcclxuXHJcblx0XHR3cGJjX2FqeF9ib29raW5nX3NlbmRfc2VhcmNoX3JlcXVlc3Rfd2l0aF9wYXJhbXMoIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3doX3doYXRfYm9va2luZ3MnOiBjaGFuZ2VkX3ZhbHVlWyAwIF0sXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdwYWdlX251bSc6IDFcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gKTtcclxuXHR9ICk7XHJcblxyXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0Ly8gXCJDcmVhdGlvbiBEYXRlXCIgICBvZiBib29raW5nc1xyXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0alF1ZXJ5KCAnI3doX21vZGlmaWNhdGlvbl9kYXRlJyApLm9uKCAnY2hhbmdlJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcblxyXG5cdFx0dmFyIGNoYW5nZWRfdmFsdWUgPSBKU09OLnBhcnNlKCBqUXVlcnkoICcjd2hfbW9kaWZpY2F0aW9uX2RhdGUnICkudmFsKCkgKTtcclxuXHJcblx0XHR3cGJjX2FqeF9ib29raW5nX3NlbmRfc2VhcmNoX3JlcXVlc3Rfd2l0aF9wYXJhbXMoIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3doX21vZGlmaWNhdGlvbl9kYXRlJzogY2hhbmdlZF92YWx1ZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3BhZ2VfbnVtJyAgICAgICA6IDEsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIEZyb250ZW5kIHNlbGVjdGVkIGVsZW1lbnRzIChzYXZpbmcgZm9yIGZ1dHVyZSB1c2UsIGFmdGVyIEY1KVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQndWlfd2hfbW9kaWZpY2F0aW9uX2RhdGVfcmFkaW8nICAgOiBqUXVlcnkoICdpbnB1dFtuYW1lPVwidWlfd2hfbW9kaWZpY2F0aW9uX2RhdGVfcmFkaW9cIl06Y2hlY2tlZCcgKS52YWwoKSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3VpX3doX21vZGlmaWNhdGlvbl9kYXRlX3ByaW9yJyAgIDogalF1ZXJ5KCAnI3VpX3doX21vZGlmaWNhdGlvbl9kYXRlX3ByaW9yJyApLnZhbCgpLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQndWlfd2hfbW9kaWZpY2F0aW9uX2RhdGVfY2hlY2tpbicgOiBqUXVlcnkoICcjdWlfd2hfbW9kaWZpY2F0aW9uX2RhdGVfY2hlY2tpbicgKS52YWwoKSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3VpX3doX21vZGlmaWNhdGlvbl9kYXRlX2NoZWNrb3V0JzogalF1ZXJ5KCAnI3VpX3doX21vZGlmaWNhdGlvbl9kYXRlX2NoZWNrb3V0JyApLnZhbCgpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9ICk7XHJcblx0fSApO1xyXG5cclxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdC8vIFBheW1lbnQgU3RhdHVzXHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRqUXVlcnkoICcjd2hfcGF5X3N0YXR1cycgKS5vbiggJ2NoYW5nZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG5cclxuXHRcdHZhciBjaGFuZ2VkX3ZhbHVlID0gSlNPTi5wYXJzZSggalF1ZXJ5KCAnI3doX3BheV9zdGF0dXMnICkudmFsKCkgKTtcclxuXHJcblx0XHR3cGJjX2FqeF9ib29raW5nX3NlbmRfc2VhcmNoX3JlcXVlc3Rfd2l0aF9wYXJhbXMoIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3doX3BheV9zdGF0dXMnOiBjaGFuZ2VkX3ZhbHVlLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQncGFnZV9udW0nICAgICAgIDogMSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gRnJvbnRlbmQgc2VsZWN0ZWQgZWxlbWVudHMgKHNhdmluZyBmb3IgZnV0dXJlIHVzZSwgYWZ0ZXIgRjUpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd1aV93aF9wYXlfc3RhdHVzX3JhZGlvJyA6ICggKCB1bmRlZmluZWQgPT09IGpRdWVyeSggJ2lucHV0W25hbWU9XCJ1aV93aF9wYXlfc3RhdHVzX3JhZGlvXCJdOmNoZWNrZWQnICkudmFsKCkgKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PyAnJ1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0OiBqUXVlcnkoICdpbnB1dFtuYW1lPVwidWlfd2hfcGF5X3N0YXR1c19yYWRpb1wiXTpjaGVja2VkJyApLnZhbCgpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgICksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd1aV93aF9wYXlfc3RhdHVzX2N1c3RvbSc6IGpRdWVyeSggJyN1aV93aF9wYXlfc3RhdHVzX2N1c3RvbScgKS52YWwoKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSApO1xyXG5cclxuXHJcblx0fSApO1xyXG5cclxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdC8vIE1pbiBDb3N0XHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHRqUXVlcnkoICcjd2hfY29zdCcgKS5vbiggJ2NoYW5nZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG5cclxuXHRcdHZhciBjaGFuZ2VkX3ZhbHVlID0galF1ZXJ5KCAnI3doX2Nvc3QnICkudmFsKCk7XHJcblxyXG5cdFx0d3BiY19hanhfYm9va2luZ19zZW5kX3NlYXJjaF9yZXF1ZXN0X3dpdGhfcGFyYW1zKCB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCd3aF9jb3N0JyA6IGNoYW5nZWRfdmFsdWUsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCdwYWdlX251bSc6IDFcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gKTtcclxuXHR9ICk7XHJcblxyXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblx0Ly8gTWF4IENvc3RcclxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdGpRdWVyeSggJyN3aF9jb3N0MicgKS5vbiggJ2NoYW5nZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG5cclxuXHRcdHZhciBjaGFuZ2VkX3ZhbHVlID0galF1ZXJ5KCAnI3doX2Nvc3QyJyApLnZhbCgpO1xyXG5cclxuXHRcdHdwYmNfYWp4X2Jvb2tpbmdfc2VuZF9zZWFyY2hfcmVxdWVzdF93aXRoX3BhcmFtcygge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnd2hfY29zdDInIDogY2hhbmdlZF92YWx1ZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0J3BhZ2VfbnVtJzogMVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSApO1xyXG5cdH0gKTtcclxuXHJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Ly8gUmV1c2FibGUgQ2hvc2VuIGxpc3RpbmcgZmlsdGVycywgc3VjaCBhcyBCb29raW5nIHJlc291cmNlcy9Qcm92aWRlcnMgYW5kIEFwcG9pbnRtZW50IFNlcnZpY2VzLlxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRqUXVlcnkoICdzZWxlY3RbZGF0YS13cGJjLWxpc3RpbmctZmlsdGVyLXBhcmFtXScgKS5vbiggJ2NoYW5nZScsIGZ1bmN0aW9uKCl7XG5cblx0XHR2YXIgbGlzdGluZ19maWx0ZXJfcGFyYW0gPSBqUXVlcnkoIHRoaXMgKS5hdHRyKCAnZGF0YS13cGJjLWxpc3RpbmctZmlsdGVyLXBhcmFtJyApO1xuXHRcdHZhciBjaGFuZ2VkX3ZhbHVlO1xuXHRcdHZhciByZXF1ZXN0X3VwZGF0ZXM7XG5cblx0XHRpZiAoICEgbGlzdGluZ19maWx0ZXJfcGFyYW0gKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y2hhbmdlZF92YWx1ZSA9ICggJ2Z1bmN0aW9uJyA9PT0gdHlwZW9mIHdpbmRvdy53cGJjX3VpX2Nob3Nlbl9maWx0ZXJfZ2V0X3JlcXVlc3RfdmFsdWUgKVxuXHRcdFx0PyB3aW5kb3cud3BiY191aV9jaG9zZW5fZmlsdGVyX2dldF9yZXF1ZXN0X3ZhbHVlKCB0aGlzIClcblx0XHRcdDogalF1ZXJ5KCB0aGlzICkudmFsKCk7XG5cdFx0cmVxdWVzdF91cGRhdGVzID0ge1xuXHRcdFx0J3BhZ2VfbnVtJzogMVxuXHRcdH07XG5cdFx0cmVxdWVzdF91cGRhdGVzWyBsaXN0aW5nX2ZpbHRlcl9wYXJhbSBdID0gY2hhbmdlZF92YWx1ZTtcblxuXHRcdHdwYmNfYWp4X2Jvb2tpbmdfc2VuZF9zZWFyY2hfcmVxdWVzdF93aXRoX3BhcmFtcyggcmVxdWVzdF91cGRhdGVzICk7XG5cdH0gKTtcblxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdC8vIFNvcnRpbmdcclxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cdGpRdWVyeSggJyN3aF9zb3J0JyApLm9uKCAnY2hhbmdlJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcblxyXG5cdFx0dmFyIGNoYW5nZWRfdmFsdWUgPSBqUXVlcnkoICcjd2hfc29ydCcgKS52YWwoKTtcclxuXHJcblx0XHRjaGFuZ2VkX3ZhbHVlID0gSlNPTi5wYXJzZSggY2hhbmdlZF92YWx1ZSApO1xyXG5cclxuXHRcdHdwYmNfYWp4X2Jvb2tpbmdfc2VuZF9zZWFyY2hfcmVxdWVzdF93aXRoX3BhcmFtcygge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQnd2hfc29ydCc6IGNoYW5nZWRfdmFsdWVbIDAgXVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSApO1xyXG5cdH0gKTtcclxuXHJcbn1cclxuXHJcbmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtcclxuXHR3cGJjX2FqeF9ib29raW5nX2RlZmluZV91aV9ob29rc19vbmNlKCk7XHJcbn0pO1xyXG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBRVo7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxxQ0FBcUNBLENBQUEsRUFBRTtFQUUvQztFQUNBO0VBQ0E7RUFDQUMsTUFBTSxDQUFFLGtCQUFtQixDQUFDLENBQUNDLEVBQUUsQ0FBRSxRQUFRLEVBQUUsVUFBVUMsS0FBSyxFQUFFO0lBRTNELElBQUlDLGFBQWEsR0FBR0MsSUFBSSxDQUFDQyxLQUFLLENBQUVMLE1BQU0sQ0FBRSxrQkFBbUIsQ0FBQyxDQUFDTSxHQUFHLENBQUMsQ0FBRSxDQUFDO0lBRXBFQyxnREFBZ0QsQ0FBRTtNQUNyQyxpQkFBaUIsRUFBRUosYUFBYTtNQUNoQyxVQUFVLEVBQVMsQ0FBQztNQUNwQjtNQUNBLDBCQUEwQixFQUFLSCxNQUFNLENBQUUsZ0RBQWlELENBQUMsQ0FBQ00sR0FBRyxDQUFDLENBQUM7TUFDL0YseUJBQXlCLEVBQU1OLE1BQU0sQ0FBRSwwQkFBMkIsQ0FBQyxDQUFDTSxHQUFHLENBQUMsQ0FBQztNQUN6RSwwQkFBMEIsRUFBS04sTUFBTSxDQUFFLDJCQUE0QixDQUFDLENBQUNNLEdBQUcsQ0FBQyxDQUFDO01BQzFFLDRCQUE0QixFQUFHTixNQUFNLENBQUUsNkJBQThCLENBQUMsQ0FBQ00sR0FBRyxDQUFDLENBQUM7TUFDNUUsNkJBQTZCLEVBQUVOLE1BQU0sQ0FBRSw4QkFBK0IsQ0FBQyxDQUFDTSxHQUFHLENBQUM7SUFDN0UsQ0FBRSxDQUFDO0VBQ2hCLENBQUUsQ0FBQzs7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
155