tango-app-ui-manage-stores 3.0.63-dev → 3.3.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/esm2022/lib/components/add-stores/add-stores.component.mjs +19 -5
  2. package/esm2022/lib/components/add-stores-form/add-stores-form.component.mjs +10 -11
  3. package/esm2022/lib/components/add-stores-form/store-popup/store-popup.component.mjs +3 -3
  4. package/esm2022/lib/components/create-group/create-group.component.mjs +3 -3
  5. package/esm2022/lib/components/group-delete-popup/group-delete-popup.component.mjs +3 -3
  6. package/esm2022/lib/components/group-details/group-details.component.mjs +3 -3
  7. package/esm2022/lib/components/new-create-group/new-create-group.component.mjs +5 -7
  8. package/esm2022/lib/components/tango-manage-groups/tango-manage-groups.component.mjs +3 -3
  9. package/esm2022/lib/components/tango-manage-stores/store-alert-popup/store-alert-popup.component.mjs +3 -3
  10. package/esm2022/lib/components/tango-manage-stores/tango-manage-stores.component.mjs +6 -6
  11. package/esm2022/lib/interfaces/store.interface.mjs +1 -1
  12. package/esm2022/lib/route-wrappers/edge-wrapper.module.mjs +4 -4
  13. package/esm2022/lib/services/excel.service.mjs +3 -3
  14. package/esm2022/lib/services/group.service.mjs +3 -3
  15. package/esm2022/lib/services/stores.service.mjs +3 -3
  16. package/esm2022/lib/tango-manage-stores-routing.module.mjs +4 -4
  17. package/esm2022/lib/tango-manage-stores.module.mjs +4 -4
  18. package/esm2022/lib/utils/filters/filters.component.mjs +4 -4
  19. package/fesm2022/{tango-app-ui-manage-stores-edge-wrapper.module-CFDk0tvS.mjs → tango-app-ui-manage-stores-edge-wrapper.module-fMqNK7aH.mjs} +5 -5
  20. package/fesm2022/{tango-app-ui-manage-stores-edge-wrapper.module-CFDk0tvS.mjs.map → tango-app-ui-manage-stores-edge-wrapper.module-fMqNK7aH.mjs.map} +1 -1
  21. package/fesm2022/tango-app-ui-manage-stores.mjs +76 -65
  22. package/fesm2022/tango-app-ui-manage-stores.mjs.map +1 -1
  23. package/lib/components/add-stores/add-stores.component.d.ts +1 -0
  24. package/lib/interfaces/store.interface.d.ts +4 -3
  25. package/package.json +1 -1
@@ -92,6 +92,9 @@ export class AddStoresComponent {
92
92
  state: "",
93
93
  city: "",
94
94
  pincode: "",
95
+ storeCode: data[i]?.StoreReferenceCode.toString(),
96
+ open: data[i]?.StoreOpenTime ? this.decimalToTime(Number(data[i]?.StoreOpenTime)) : '',
97
+ close: data[i]?.StoreCloseTime ? this.decimalToTime(Number(data[i]?.StoreCloseTime)) : ''
95
98
  };
96
99
  // if(placeData.address_components) {
97
100
  // for (const component of placeData.address_components) {
@@ -122,7 +125,7 @@ export class AddStoresComponent {
122
125
  processedArray.push({
123
126
  storeName: data[i].StoreName,
124
127
  storeType: { type: data[i].StoreType },
125
- // edge: { camDetails: { cameras: data[i].CameraCount } },
128
+ edge: { serverType: false },
126
129
  spocDetails: {
127
130
  name: data[i].SpocName,
128
131
  email: data[i].SpocEmail,
@@ -194,6 +197,17 @@ export class AddStoresComponent {
194
197
  $("#kt_create_account_form_account_type_personal").val("");
195
198
  }
196
199
  }
200
+ decimalToTime(decimalTime) {
201
+ const totalMinutes = Math.floor(decimalTime * 1440); // Total minutes in a day
202
+ const hours = Math.floor(totalMinutes / 60);
203
+ const minutes = totalMinutes % 60;
204
+ const seconds = Math.round((decimalTime * 86400) % 60); // Total seconds in a day
205
+ // Pad with leading zeros if necessary
206
+ const hoursString = String(hours).padStart(2, '0');
207
+ const minutesString = String(minutes).padStart(2, '0');
208
+ const secondsString = String(seconds).padStart(2, '0');
209
+ return `${hoursString}:${minutesString}:${secondsString}`;
210
+ }
197
211
  validateField(value, fieldName, row, regex) {
198
212
  if (typeof value !== "string" && typeof value !== "number") {
199
213
  return `Invalid value for ${fieldName.toLowerCase()} in row ${row + 1}`;
@@ -214,14 +228,14 @@ export class AddStoresComponent {
214
228
  }
215
229
  return null;
216
230
  }
217
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddStoresComponent, deps: [{ token: i1.StoresService }, { token: i2.ToastService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
218
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AddStoresComponent, selector: "lib-add-stores", viewQueries: [{ propertyName: "inputFile", first: true, predicate: ["inputFile"], descendants: true }], ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-body d-flex flex-center flex-column p-9\">\r\n <div class=\"mb-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <img alt=\"Pic\" src=\"./assets/tango/Icons/add-store-icon.svg\">\r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bolder mb-0 title cursor-pointer\"> Add stores </a>\r\n <div class=\"fw-bold text-gray-500 my-6\">\r\n <ul class=\"text-gray-400 fw-bold fs-6\">\r\n <li>Use the template to upload multiple stores at once.</li>\r\n <li>Download the template here -\r\n <a href=\"../../assets/files/storesUploadTemplate.xlsx\" download>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M5.83333 8.33333L10 12.5M10 12.5L14.1667 8.33333M10 12.5V2.5\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"template ms-2\">Download Template</span>\r\n </a>\r\n </li>\r\n <li>Add your data to the Template File</li>\r\n <li>Upload it below for processing</li>\r\n </ul>\r\n </div>\r\n <div class=\"d-flex flex-center flex-wrap mb-5\">\r\n <input name=\"accountType\" type=\"radio\" id=\"kt_create_account_form_account_type_personal\" value=\"personal\"\r\n class=\"btn-check\" ng-reflect-name=\"accountType\" ng-reflect-form-control-name=\"accountType\"\r\n (change)=\"onUpload($event)\"\r\n ng-reflect-value=\"personal\" type=\"file\" #inputFile />\r\n <label for=\"kt_create_account_form_account_type_personal\"\r\n class=\"btn btn-outline btn-primary bg-primary btn-outline-default rounded-3 w-50 p-4 mt-5\"><span\r\n class=\"fw-bold fs-4\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M18 12.5V15.8333C18 16.2754 17.8244 16.6993 17.5118 17.0118C17.1993 17.3244 16.7754 17.5 16.3333 17.5H4.66667C4.22464 17.5 3.80072 17.3244 3.48816 17.0118C3.17559 16.6993 3 16.2754 3 15.8333V12.5M14.6667 6.66667L10.5 2.5M10.5 2.5L6.33333 6.66667M10.5 2.5V12.5\"\r\n stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg> \r\n <span class=\"text-white mx-2\">Add Multiple Stores</span></span>\r\n </label>\r\n <p class=\"text-gray-400 fw-bold my-3\">\r\n <span class=\"line-bg \"><svg width=\"224\" height=\"2\" viewBox=\"0 0 124 2\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect y=\"0.5\" width=\"123.333\" height=\"1\" fill=\"#EAECF0\" />\r\n </svg>\r\n </span><span class=\"mx-2\">Or </span> <span class=\"line-bg \"><svg width=\"224\" height=\"2\" viewBox=\"0 0 124 2\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect y=\"0.5\" width=\"123.333\" height=\"1\" fill=\"#EAECF0\" />\r\n </svg>\r\n </span>\r\n </p>\r\n <input type=\"radio\" id=\"kt_account_team_size_select_1\" value=\"1-1\" routerLink=\"/manage/stores/add-single-store\"\r\n class=\"btn-check ng-untouched ng-pristine ng-valid\" />\r\n <label for=\"kt_account_team_size_select_1\"\r\n class=\"btn btn-outline btn-outline-default rounded-3 w-50 p-4 mt-3\">\r\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M1.18015 3.80378L1.1269 3.88695C0.568863 4.874 1.16469 6.12143 2.2363 6.26452C2.33339 6.27639 2.42373 6.28267 2.512 6.28267C3.09015 6.28267 3.60132 6.03465 3.95759 5.64792L4.51093 5.0473L5.06238 5.64965C5.41432 6.03407 5.92433 6.28267 6.50639 6.28267C7.08583 6.28267 7.59877 6.03372 7.95039 5.64965L8.50358 5.04541L9.05676 5.64965C9.40839 6.03372 9.92133 6.28267 10.5008 6.28267C11.0802 6.28267 11.5932 6.03372 11.9448 5.64965L12.498 5.04541L13.0511 5.64965C13.4028 6.03372 13.9157 6.28267 14.4952 6.28267C14.5805 6.28267 14.6736 6.27638 14.77 6.26462C15.8652 6.1153 16.463 4.80103 15.8243 3.80428C15.8242 3.80423 15.8242 3.80417 15.8242 3.80411L14.066 1.0627L14.066 1.0627L14.0651 1.06123C14.0499 1.0374 14.0124 1.01184 13.9652 1.01184H3.03581C2.98866 1.01184 2.95117 1.0374 2.93597 1.06124L2.93535 1.0622L1.18015 3.80378ZM14.1516 8.73706V11.869V12.619H13.4016H3.59943H2.84943V11.869V8.73753C2.7392 8.74573 2.62768 8.74994 2.51507 8.74994C2.47276 8.74994 2.43074 8.74931 2.389 8.74809V11.869V13.8035C2.389 14.4469 2.9229 14.988 3.59943 14.988H13.4016C14.0781 14.988 14.612 14.4469 14.612 13.8035V11.869V8.74827C14.5722 8.74937 14.5322 8.74994 14.4921 8.74994C14.3777 8.74994 14.2641 8.74559 14.1516 8.73706Z\" stroke=\"#344054\" stroke-width=\"1.5\"/>\r\n </svg>\r\n <span class=\"fw-bold fs-4 mx-2\">\r\n Add Single\r\n Store</span></label>\r\n </div>\r\n \r\n </div>\r\n", styles: [".title{color:var(--Gray-900, #101828)!important;text-align:center;font-family:Inter;font-size:20px!important;font-weight:600;line-height:30px}li{color:var(--Gray-700, #344054)!important;font-family:Inter;font-size:14px!important;font-weight:500!important;line-height:30px;list-style:decimal!important}::ng-deep .modal-content{border-radius:12px!important}.template{color:var(--Primary-700, #009BF3)!important;font-family:Inter;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}.or-condition{color:var(--Gray-700, #344054)!important;text-align:center;font-size:12px!important;font-weight:500!important;line-height:18px}\n"], dependencies: [{ kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
231
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: AddStoresComponent, deps: [{ token: i1.StoresService }, { token: i2.ToastService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
232
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: AddStoresComponent, selector: "lib-add-stores", viewQueries: [{ propertyName: "inputFile", first: true, predicate: ["inputFile"], descendants: true }], ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-body d-flex flex-center flex-column p-9\">\r\n <div class=\"mb-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <img alt=\"Pic\" src=\"./assets/tango/Icons/add-store-icon.svg\">\r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bolder mb-0 title cursor-pointer\"> Add stores </a>\r\n <div class=\"fw-bold text-gray-500 my-6\">\r\n <ul class=\"text-gray-400 fw-bold fs-6\">\r\n <li>Use the template to upload multiple stores at once.</li>\r\n <li>Download the template here -\r\n <a href=\"../../assets/files/storesUploadTemplate.xlsx\" download>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M5.83333 8.33333L10 12.5M10 12.5L14.1667 8.33333M10 12.5V2.5\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"template ms-2\">Download Template</span>\r\n </a>\r\n </li>\r\n <li>Add your data to the Template File</li>\r\n <li>Upload it below for processing</li>\r\n </ul>\r\n </div>\r\n <div class=\"d-flex flex-center flex-wrap mb-5\">\r\n <input name=\"accountType\" type=\"radio\" id=\"kt_create_account_form_account_type_personal\" value=\"personal\"\r\n class=\"btn-check\" ng-reflect-name=\"accountType\" ng-reflect-form-control-name=\"accountType\"\r\n (change)=\"onUpload($event)\"\r\n ng-reflect-value=\"personal\" type=\"file\" #inputFile />\r\n <label for=\"kt_create_account_form_account_type_personal\"\r\n class=\"btn btn-outline btn-primary bg-primary btn-outline-default rounded-3 w-50 p-4 mt-5\"><span\r\n class=\"fw-bold fs-4\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M18 12.5V15.8333C18 16.2754 17.8244 16.6993 17.5118 17.0118C17.1993 17.3244 16.7754 17.5 16.3333 17.5H4.66667C4.22464 17.5 3.80072 17.3244 3.48816 17.0118C3.17559 16.6993 3 16.2754 3 15.8333V12.5M14.6667 6.66667L10.5 2.5M10.5 2.5L6.33333 6.66667M10.5 2.5V12.5\"\r\n stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg> \r\n <span class=\"text-white mx-2\">Add Multiple Stores</span></span>\r\n </label>\r\n <p class=\"text-gray-400 fw-bold my-3\">\r\n <span class=\"line-bg \"><svg width=\"224\" height=\"2\" viewBox=\"0 0 124 2\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect y=\"0.5\" width=\"123.333\" height=\"1\" fill=\"#EAECF0\" />\r\n </svg>\r\n </span><span class=\"mx-2\">Or </span> <span class=\"line-bg \"><svg width=\"224\" height=\"2\" viewBox=\"0 0 124 2\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect y=\"0.5\" width=\"123.333\" height=\"1\" fill=\"#EAECF0\" />\r\n </svg>\r\n </span>\r\n </p>\r\n <input type=\"radio\" id=\"kt_account_team_size_select_1\" value=\"1-1\" routerLink=\"/manage/stores/add-single-store\"\r\n class=\"btn-check ng-untouched ng-pristine ng-valid\" />\r\n <label for=\"kt_account_team_size_select_1\"\r\n class=\"btn btn-outline btn-outline-default rounded-3 w-50 p-4 mt-3\">\r\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M1.18015 3.80378L1.1269 3.88695C0.568863 4.874 1.16469 6.12143 2.2363 6.26452C2.33339 6.27639 2.42373 6.28267 2.512 6.28267C3.09015 6.28267 3.60132 6.03465 3.95759 5.64792L4.51093 5.0473L5.06238 5.64965C5.41432 6.03407 5.92433 6.28267 6.50639 6.28267C7.08583 6.28267 7.59877 6.03372 7.95039 5.64965L8.50358 5.04541L9.05676 5.64965C9.40839 6.03372 9.92133 6.28267 10.5008 6.28267C11.0802 6.28267 11.5932 6.03372 11.9448 5.64965L12.498 5.04541L13.0511 5.64965C13.4028 6.03372 13.9157 6.28267 14.4952 6.28267C14.5805 6.28267 14.6736 6.27638 14.77 6.26462C15.8652 6.1153 16.463 4.80103 15.8243 3.80428C15.8242 3.80423 15.8242 3.80417 15.8242 3.80411L14.066 1.0627L14.066 1.0627L14.0651 1.06123C14.0499 1.0374 14.0124 1.01184 13.9652 1.01184H3.03581C2.98866 1.01184 2.95117 1.0374 2.93597 1.06124L2.93535 1.0622L1.18015 3.80378ZM14.1516 8.73706V11.869V12.619H13.4016H3.59943H2.84943V11.869V8.73753C2.7392 8.74573 2.62768 8.74994 2.51507 8.74994C2.47276 8.74994 2.43074 8.74931 2.389 8.74809V11.869V13.8035C2.389 14.4469 2.9229 14.988 3.59943 14.988H13.4016C14.0781 14.988 14.612 14.4469 14.612 13.8035V11.869V8.74827C14.5722 8.74937 14.5322 8.74994 14.4921 8.74994C14.3777 8.74994 14.2641 8.74559 14.1516 8.73706Z\" stroke=\"#344054\" stroke-width=\"1.5\"/>\r\n </svg>\r\n <span class=\"fw-bold fs-4 mx-2\">\r\n Add Single\r\n Store</span></label>\r\n </div>\r\n \r\n </div>\r\n", styles: [".title{color:var(--Gray-900, #101828)!important;text-align:center;font-family:Inter;font-size:20px!important;font-weight:600;line-height:30px}li{color:var(--Gray-700, #344054)!important;font-family:Inter;font-size:14px!important;font-weight:500!important;line-height:30px;list-style:decimal!important}::ng-deep .modal-content{border-radius:12px!important}.template{color:var(--Primary-700, #009BF3)!important;font-family:Inter;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}.or-condition{color:var(--Gray-700, #344054)!important;text-align:center;font-size:12px!important;font-weight:500!important;line-height:18px}\n"], dependencies: [{ kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
219
233
  }
220
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddStoresComponent, decorators: [{
234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: AddStoresComponent, decorators: [{
221
235
  type: Component,
222
236
  args: [{ selector: "lib-add-stores", template: "<div class=\"card\">\r\n <div class=\"card-body d-flex flex-center flex-column p-9\">\r\n <div class=\"mb-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <img alt=\"Pic\" src=\"./assets/tango/Icons/add-store-icon.svg\">\r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bolder mb-0 title cursor-pointer\"> Add stores </a>\r\n <div class=\"fw-bold text-gray-500 my-6\">\r\n <ul class=\"text-gray-400 fw-bold fs-6\">\r\n <li>Use the template to upload multiple stores at once.</li>\r\n <li>Download the template here -\r\n <a href=\"../../assets/files/storesUploadTemplate.xlsx\" download>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M5.83333 8.33333L10 12.5M10 12.5L14.1667 8.33333M10 12.5V2.5\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"template ms-2\">Download Template</span>\r\n </a>\r\n </li>\r\n <li>Add your data to the Template File</li>\r\n <li>Upload it below for processing</li>\r\n </ul>\r\n </div>\r\n <div class=\"d-flex flex-center flex-wrap mb-5\">\r\n <input name=\"accountType\" type=\"radio\" id=\"kt_create_account_form_account_type_personal\" value=\"personal\"\r\n class=\"btn-check\" ng-reflect-name=\"accountType\" ng-reflect-form-control-name=\"accountType\"\r\n (change)=\"onUpload($event)\"\r\n ng-reflect-value=\"personal\" type=\"file\" #inputFile />\r\n <label for=\"kt_create_account_form_account_type_personal\"\r\n class=\"btn btn-outline btn-primary bg-primary btn-outline-default rounded-3 w-50 p-4 mt-5\"><span\r\n class=\"fw-bold fs-4\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M18 12.5V15.8333C18 16.2754 17.8244 16.6993 17.5118 17.0118C17.1993 17.3244 16.7754 17.5 16.3333 17.5H4.66667C4.22464 17.5 3.80072 17.3244 3.48816 17.0118C3.17559 16.6993 3 16.2754 3 15.8333V12.5M14.6667 6.66667L10.5 2.5M10.5 2.5L6.33333 6.66667M10.5 2.5V12.5\"\r\n stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg> \r\n <span class=\"text-white mx-2\">Add Multiple Stores</span></span>\r\n </label>\r\n <p class=\"text-gray-400 fw-bold my-3\">\r\n <span class=\"line-bg \"><svg width=\"224\" height=\"2\" viewBox=\"0 0 124 2\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect y=\"0.5\" width=\"123.333\" height=\"1\" fill=\"#EAECF0\" />\r\n </svg>\r\n </span><span class=\"mx-2\">Or </span> <span class=\"line-bg \"><svg width=\"224\" height=\"2\" viewBox=\"0 0 124 2\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect y=\"0.5\" width=\"123.333\" height=\"1\" fill=\"#EAECF0\" />\r\n </svg>\r\n </span>\r\n </p>\r\n <input type=\"radio\" id=\"kt_account_team_size_select_1\" value=\"1-1\" routerLink=\"/manage/stores/add-single-store\"\r\n class=\"btn-check ng-untouched ng-pristine ng-valid\" />\r\n <label for=\"kt_account_team_size_select_1\"\r\n class=\"btn btn-outline btn-outline-default rounded-3 w-50 p-4 mt-3\">\r\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M1.18015 3.80378L1.1269 3.88695C0.568863 4.874 1.16469 6.12143 2.2363 6.26452C2.33339 6.27639 2.42373 6.28267 2.512 6.28267C3.09015 6.28267 3.60132 6.03465 3.95759 5.64792L4.51093 5.0473L5.06238 5.64965C5.41432 6.03407 5.92433 6.28267 6.50639 6.28267C7.08583 6.28267 7.59877 6.03372 7.95039 5.64965L8.50358 5.04541L9.05676 5.64965C9.40839 6.03372 9.92133 6.28267 10.5008 6.28267C11.0802 6.28267 11.5932 6.03372 11.9448 5.64965L12.498 5.04541L13.0511 5.64965C13.4028 6.03372 13.9157 6.28267 14.4952 6.28267C14.5805 6.28267 14.6736 6.27638 14.77 6.26462C15.8652 6.1153 16.463 4.80103 15.8243 3.80428C15.8242 3.80423 15.8242 3.80417 15.8242 3.80411L14.066 1.0627L14.066 1.0627L14.0651 1.06123C14.0499 1.0374 14.0124 1.01184 13.9652 1.01184H3.03581C2.98866 1.01184 2.95117 1.0374 2.93597 1.06124L2.93535 1.0622L1.18015 3.80378ZM14.1516 8.73706V11.869V12.619H13.4016H3.59943H2.84943V11.869V8.73753C2.7392 8.74573 2.62768 8.74994 2.51507 8.74994C2.47276 8.74994 2.43074 8.74931 2.389 8.74809V11.869V13.8035C2.389 14.4469 2.9229 14.988 3.59943 14.988H13.4016C14.0781 14.988 14.612 14.4469 14.612 13.8035V11.869V8.74827C14.5722 8.74937 14.5322 8.74994 14.4921 8.74994C14.3777 8.74994 14.2641 8.74559 14.1516 8.73706Z\" stroke=\"#344054\" stroke-width=\"1.5\"/>\r\n </svg>\r\n <span class=\"fw-bold fs-4 mx-2\">\r\n Add Single\r\n Store</span></label>\r\n </div>\r\n \r\n </div>\r\n", styles: [".title{color:var(--Gray-900, #101828)!important;text-align:center;font-family:Inter;font-size:20px!important;font-weight:600;line-height:30px}li{color:var(--Gray-700, #344054)!important;font-family:Inter;font-size:14px!important;font-weight:500!important;line-height:30px;list-style:decimal!important}::ng-deep .modal-content{border-radius:12px!important}.template{color:var(--Primary-700, #009BF3)!important;font-family:Inter;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}.or-condition{color:var(--Gray-700, #344054)!important;text-align:center;font-size:12px!important;font-weight:500!important;line-height:18px}\n"] }]
223
237
  }], ctorParameters: () => [{ type: i1.StoresService }, { type: i2.ToastService }, { type: i3.Router }], propDecorators: { inputFile: [{
224
238
  type: ViewChild,
225
239
  args: ["inputFile"]
226
240
  }] } });
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXN0b3Jlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc3RvcmVzL3NyYy9saWIvY29tcG9uZW50cy9hZGQtc3RvcmVzL2FkZC1zdG9yZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXN0b3Jlcy9zcmMvbGliL2NvbXBvbmVudHMvYWRkLXN0b3Jlcy9hZGQtc3RvcmVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLEVBQVksSUFBSSxFQUFFLEtBQUssRUFBYSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFheEQsTUFBTSxPQUFPLGtCQUFrQjtJQU9UO0lBQW9DO0lBQXlCO0lBTnpELFNBQVMsQ0FBYTtJQUU5QyxVQUFVLEdBQVcsa0JBQWtCLENBQUM7SUFDeEMsVUFBVSxHQUFXLDRCQUE0QixDQUFDO0lBQ2xELGNBQWMsQ0FBTTtJQUVwQixZQUFvQixZQUEyQixFQUFTLEVBQWdCLEVBQVMsTUFBYztRQUEzRSxpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQUFTLE9BQUUsR0FBRixFQUFFLENBQWM7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQzdGLElBQUksSUFBSSxHQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksSUFBSSxHQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUks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QUFxQixTQUFTLENBQUMsV0FBVyxFQUFFLFdBQVcsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO2FBQ3pFO1lBQ0QsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxPQUFPLHNCQUFzQixTQUFTLENBQUMsV0FBVyxFQUFFLFdBQ2xELEdBQUcsR0FBRyxDQUNSLEVBQUUsQ0FBQzthQUNKO1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7d0dBek9VLGtCQUFrQjs0RkFBbEIsa0JBQWtCLDhKQ2YvQiwwcktBaUVBOzs0RkRsRGEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGdCQUFnQjtrSUFLRixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCBTd2FsIGZyb20gXCJzd2VldGFsZXJ0MlwiO1xyXG5pbXBvcnQgeyBXb3JrQm9vaywgcmVhZCwgdXRpbHMsIFdvcmtTaGVldCB9IGZyb20gXCJ4bHN4XCI7XHJcbmltcG9ydCB7IFN0b3Jlc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc3RvcmVzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU3RvcmVCdWxrSXRlbSB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL3N0b3JlLmludGVyZmFjZVwiO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tIFwidGFuZ28tYXBwLXVpLXNoYXJlZFwiO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcblxyXG5kZWNsYXJlIHZhciAkOiBhbnk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItYWRkLXN0b3Jlc1wiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vYWRkLXN0b3Jlcy5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vYWRkLXN0b3Jlcy5jb21wb25lbnQuc2Nzc1wiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRkU3RvcmVzQ29tcG9uZW50IHtcclxuICBAVmlld0NoaWxkKFwiaW5wdXRGaWxlXCIpIGlucHV0RmlsZTogRWxlbWVudFJlZjtcclxuXHJcbiAgcGhvbmVSZWdleDogUmVnRXhwID0gL14oXFxkezN9KT9cXGR7MTV9JC87XHJcbiAgZW1haWxSZWdleDogUmVnRXhwID0gL15bXlxcc0BdK0BbXlxcc0BdK1xcLlteXFxzQF0rJC87XHJcbiAgJGhlYWRlckZpbHRlcnM6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZVNlcnZpY2U6IFN0b3Jlc1NlcnZpY2UscHJpdmF0ZSB0czogVG9hc3RTZXJ2aWNlLHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcclxuICAgIGxldCBkYXRhOmFueSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2hlYWRlci1maWx0ZXJzJykgfHwgJycpO1xyXG4gICAgbGV0IHVzZXI6YW55ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlci1pbmZvJykgfHwgJycpO1xyXG4gICAgdGhpcy4kaGVhZGVyRmlsdGVycyA9IGRhdGEgPyBkYXRhIDogdXNlcjtcclxuICB9XHJcblxyXG4gIG9uVXBsb2FkKGU6IGFueSkge1xyXG4gICAgbGV0IGRhdGE6IFN0b3JlQnVsa0l0ZW1bXTtcclxuICAgIGNvbnN0IHRhcmdldDogRGF0YVRyYW5zZmVyID0gPERhdGFUcmFuc2Zlcj5lLnRhcmdldDtcclxuICAgIGlmICh0YXJnZXQuZmlsZXMubGVuZ3RoID4gMSkge1xyXG4gICAgICB0aGlzLmlucHV0RmlsZS5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgIH1cclxuICAgIGlmICghIXRhcmdldC5maWxlc1swXS5uYW1lLm1hdGNoKC8oLnhsc3wueGxzeCkvKSkge1xyXG4gICAgICBjb25zdCByZWFkZXI6IEZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGJzdHI6IHN0cmluZyA9IGUudGFyZ2V0LnJlc3VsdDtcclxuICAgICAgICBjb25zdCB3YjogV29ya0Jvb2sgPSByZWFkKGJzdHIsIHsgdHlwZTogXCJiaW5hcnlcIiB9KTtcclxuICAgICAgICBjb25zdCB3c25hbWU6IHN0cmluZyA9IHdiLlNoZWV0TmFtZXNbMF07XHJcbiAgICAgICAgY29uc3Qgd3M6IFdvcmtTaGVldCA9IHdiLlNoZWV0c1t3c25hbWVdO1xyXG4gICAgICAgIGlmICh3Yi5TaGVldE5hbWVzWzBdICE9IFwiU3RvcmVEYXRhXCIpIHtcclxuICAgICAgICAgIHRoaXMudHMuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSBVcGxvYWQgdGhlIFZhbGlkIEZpbGVcIik7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICBkYXRhID0gdXRpbHMuc2hlZXRfdG9fanNvbih3cyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyh0YXJnZXQuZmlsZXNbMF0pO1xyXG5cclxuICAgICAgcmVhZGVyLm9ubG9hZGVuZCA9IGFzeW5jIChlKSA9PiB7XHJcbiAgICAgICAgbGV0IHByb2Nlc3NlZEFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgICAgIGxldCBlcnJNc2dzOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgIGxldCBwcm9taXNlcyA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgZXJyTXNncy5wdXNoKHRoaXMudmFsaWRhdGVGaWVsZChkYXRhW2ldLlN0b3JlTmFtZSwgXCJzdG9yZSBuYW1lXCIsIGkpKTtcclxuICAgICAgICAgIGVyck1zZ3MucHVzaCh0aGlzLnZhbGlkYXRlRmllbGQoZGF0YVtpXS5TdG9yZVR5cGUsIFwic3RvcmUgdHlwZVwiLCBpKSk7XHJcbiAgICAgICAgICBlcnJNc2dzLnB1c2godGhpcy52YWxpZGF0ZUZpZWxkKGRhdGFbaV0uU3BvY05hbWUsIFwic3BvYyBuYW1lXCIsIGkpKTtcclxuICAgICAgICAgIGVyck1zZ3MucHVzaChcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUZpZWxkKGRhdGFbaV0uQnVzaW5lc3NUeXBlLCBcImJ1c2luZXNzIHR5cGVcIiwgaSlcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBlcnJNc2dzLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVGaWVsZChcclxuICAgICAgICAgICAgICBkYXRhW2ldLlNwb2NFbWFpbCxcclxuICAgICAgICAgICAgICBcInNwb2MgZW1haWxcIixcclxuICAgICAgICAgICAgICBpLFxyXG4gICAgICAgICAgICAgIHRoaXMuZW1haWxSZWdleFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgZXJyTXNncy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlRmllbGQoXHJcbiAgICAgICAgICAgICAgZGF0YVtpXS5TcG9jQ29udGFjdCxcclxuICAgICAgICAgICAgICBcInNwb2MgY29udGFjdFwiLFxyXG4gICAgICAgICAgICAgIGksXHJcbiAgICAgICAgICAgICAgdGhpcy5waG9uZVJlZ2V4XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBlcnJNc2dzLnB1c2godGhpcy52YWxpZGF0ZUZpZWxkKGRhdGFbaV0uVGltZVpvbmUsIFwidGltZXpvbmVcIiwgaSkpO1xyXG4gICAgICAgICAgLy8gZXJyTXNncy5wdXNoKFxyXG4gICAgICAgICAgLy8gICB0aGlzLnZhbGlkYXRlRmllbGQoZGF0YVtpXS5DYW1lcmFDb3VudCwgXCJjYW1lcmEgY291bnRcIiwgaSlcclxuICAgICAgICAgIC8vICk7XHJcbiAgICAgICAgICAvLyBlcnJNc2dzLnB1c2godGhpcy52YWxpZGF0ZUZpZWxkKGRhdGFbaV0uTGF0aXR1ZGUsIFwibGF0aXR1ZGVcIiwgaSkpO1xyXG4gICAgICAgICAgLy8gZXJyTXNncy5wdXNoKHRoaXMudmFsaWRhdGVGaWVsZChkYXRhW2ldLkxvbmdpdHVkZSwgXCJsb25naXR1ZGVcIiwgaSkpO1xyXG5cclxuICAgICAgICAgIGVyck1zZ3MgPSBlcnJNc2dzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKTtcclxuICAgICAgICAgIGlmIChlcnJNc2dzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgbGV0IGVycm9ycyA9IGVyck1zZ3Muam9pbihcIjxicj5cIik7XHJcbiAgICAgICAgICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgICAgICAgaWNvbjogXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgIGh0bWw6IGVycm9ycyxcclxuICAgICAgICAgICAgICBjdXN0b21DbGFzczoge1xyXG4gICAgICAgICAgICAgICAgaHRtbENvbnRhaW5lcjogXCJlcnJvci1odG1sY29udGFpbmVyLWNsYXNzXCIsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBoZWlnaHRBdXRvOiBmYWxzZSxcclxuICAgICAgICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcclxuICAgICAgICAgICAgICBzaG93Q29uZmlybUJ1dHRvbjogdHJ1ZSxcclxuICAgICAgICAgICAgICBjb25maXJtQnV0dG9uQ29sb3I6IFwiIzAwOUVGN1wiLFxyXG4gICAgICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIk9LXCIsXHJcbiAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4ge30pO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYoIWRhdGFbaV0uTGF0aXR1ZGUpIHtcclxuICAgICAgICAgICAgZGF0YVtpXS5MYXRpdHVkZSA9ICcwJztcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZighZGF0YVtpXS5Mb25naXR1ZGUpIHtcclxuICAgICAgICAgICAgZGF0YVtpXS5Mb25naXR1ZGUgPSAnMCc7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuc3RvcmVTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5nZXRBZGRyZXNzKE51bWJlcihkYXRhW2ldLkxhdGl0dWRlKSwgTnVtYmVyKGRhdGFbaV0uTG9uZ2l0dWRlKSlcclxuICAgICAgICAgICAgLnRoZW4oKHBsYWNlRGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgbGV0IHN0b3JlUHJvZmlsZTogYW55ID0ge1xyXG4gICAgICAgICAgICAgICAgYWRkcmVzczogXCJcIixcclxuICAgICAgICAgICAgICAgIGNvdW50cnk6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICBzdGF0ZTogXCJcIixcclxuICAgICAgICAgICAgICAgIGNpdHk6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICBwaW5jb2RlOiBcIlwiLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgLy8gaWYocGxhY2VEYXRhLmFkZHJlc3NfY29tcG9uZW50cykge1xyXG4gICAgICAgICAgICAgIC8vICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgcGxhY2VEYXRhLmFkZHJlc3NfY29tcG9uZW50cykge1xyXG4gICAgICAgICAgICAgIC8vICAgICBjb25zdCB0eXBlcyA9IGNvbXBvbmVudC50eXBlcztcclxuICAgICAgICAgICAgICAvLyAgICAgaWYgKHR5cGVzLmluY2x1ZGVzKFwibG9jYWxpdHlcIikpIHtcclxuICAgICAgICAgICAgICAvLyAgICAgICBzdG9yZVByb2ZpbGUuY2l0eSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgICAgICAgLy8gICAgIH0gZWxzZSBpZiAodHlwZXMuaW5jbHVkZXMoXCJhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzFcIikpIHtcclxuICAgICAgICAgICAgICAvLyAgICAgICBzdG9yZVByb2ZpbGUuc3RhdGUgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgICAgICAgIC8vICAgICB9IGVsc2UgaWYgKHR5cGVzLmluY2x1ZGVzKFwiY291bnRyeVwiKSkge1xyXG4gICAgICAgICAgICAgIC8vICAgICAgIHN0b3JlUHJvZmlsZS5jb3VudHJ5ID0gY29tcG9uZW50LmxvbmdfbmFtZTtcclxuICAgICAgICAgICAgICAvLyAgICAgfSBlbHNlIGlmICh0eXBlcy5pbmNsdWRlcyhcInBvc3RhbF9jb2RlXCIpKSB7XHJcbiAgICAgICAgICAgICAgLy8gICAgICAgc3RvcmVQcm9maWxlLnBpbmNvZGUgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgICAgICAgIC8vICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgICAgIC8vICAgICAgIHR5cGVzLmluY2x1ZGVzKFwicHJlbWlzZVwiKSB8fFxyXG4gICAgICAgICAgICAgIC8vICAgICAgIHR5cGVzLmluY2x1ZGVzKFwic3VibG9jYWxpdHlfbGV2ZWxfMlwiKSB8fFxyXG4gICAgICAgICAgICAgIC8vICAgICAgIHR5cGVzLmluY2x1ZGVzKFwic3VibG9jYWxpdHlfbGV2ZWxfMVwiKVxyXG4gICAgICAgICAgICAgIC8vICAgICApIHtcclxuICAgICAgICAgICAgICAvLyAgICAgICBpZiAoY29tcG9uZW50LmxvbmdfbmFtZSkge1xyXG4gICAgICAgICAgICAgIC8vICAgICAgICAgc3RvcmVQcm9maWxlLmFkZHJlc3MgKz0gY29tcG9uZW50LmxvbmdfbmFtZSArIFwiLFwiO1xyXG4gICAgICAgICAgICAgIC8vICAgICAgIH1cclxuICAgICAgICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgICAgICAgIC8vICAgfVxyXG4gICAgICAgICAgICAgIC8vICAgaWYgKHN0b3JlUHJvZmlsZS5hZGRyZXNzKSB7XHJcbiAgICAgICAgICAgICAgLy8gICAgIHN0b3JlUHJvZmlsZS5hZGRyZXNzID0gc3RvcmVQcm9maWxlLmFkZHJlc3Muc2xpY2UoMCwgLTEpO1xyXG4gICAgICAgICAgICAgIC8vICAgfVxyXG4gICAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgICBkYXRhW2ldW1wic3RvcmVQcm9maWxlXCJdID0gc3RvcmVQcm9maWxlO1xyXG4gICAgICAgICAgICAgIHByb2Nlc3NlZEFycmF5LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgc3RvcmVOYW1lOiBkYXRhW2ldLlN0b3JlTmFtZSxcclxuICAgICAgICAgICAgICAgIHN0b3JlVHlwZTogeyB0eXBlOiBkYXRhW2ldLlN0b3JlVHlwZSB9LFxyXG4gICAgICAgICAgICAgICAgLy8gZWRnZTogeyBjYW1EZXRhaWxzOiB7IGNhbWVyYXM6IGRhdGFbaV0uQ2FtZXJhQ291bnQgfSB9LFxyXG4gICAgICAgICAgICAgICAgc3BvY0RldGFpbHM6IHtcclxuICAgICAgICAgICAgICAgICAgbmFtZTogZGF0YVtpXS5TcG9jTmFtZSxcclxuICAgICAgICAgICAgICAgICAgZW1haWw6IGRhdGFbaV0uU3BvY0VtYWlsLFxyXG4gICAgICAgICAgICAgICAgICBjb250YWN0OiBkYXRhW2ldLlNwb2NDb250YWN0LnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgc3RvcmVQcm9maWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgIC4uLmRhdGFbaV0uc3RvcmVQcm9maWxlLFxyXG4gICAgICAgICAgICAgICAgICAuLi57IHRpbWVab25lOiBkYXRhW2ldLlRpbWVab25lIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYnVzaW5lc3NUeXBlOiBkYXRhW2ldLkJ1c2luZXNzVHlwZSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLy8gLmNhdGNoKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAvLyAgIHRoaXMudHMuZ2V0RXJyb3JUb2FzdChcclxuICAgICAgICAgICAgLy8gICAgIGBQbGVhc2UgVXBsb2FkIHRoZSBGaWxlIHdpdGggVmFsaWQgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSBpbiByb3cgJHtcclxuICAgICAgICAgICAgLy8gICAgICAgaSArIDFcclxuICAgICAgICAgICAgLy8gICAgIH1gXHJcbiAgICAgICAgICAgIC8vICAgKTtcclxuICAgICAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBQcm9taXNlLmFsbChwcm9taXNlcylcclxuICAgICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZVNlcnZpY2VcclxuICAgICAgICAgICAgICAuc3RvcmVCdWxrVXBsb2FkKHtcclxuICAgICAgICAgICAgICAgIHN0b3JlczogcHJvY2Vzc2VkQXJyYXksXHJcbiAgICAgICAgICAgICAgICBjbGllbnRJZDogdGhpcy4kaGVhZGVyRmlsdGVycz8uY2xpZW50ID8gdGhpcy4kaGVhZGVyRmlsdGVycz8uY2xpZW50IDp0aGlzLiRoZWFkZXJGaWx0ZXJzPy5jbGllbnRJZCxcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50cy5nZXRTdWNjZXNzVG9hc3QoXCJTdG9yZXMgaGF2ZSBiZWVuIHVwbG9hZGVkIFN1Y2Nlc3NmdWxseSFcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYocmVzLmRhdGEuc3RvcmVzICYmIHJlcy5kYXRhLnN0b3Jlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGxldCBidWxrVGlja2V0c0JvZHk6IGFueSA9IHJlcy5kYXRhLnN0b3Jlcy5tYXAoKHN0b3JlSWQ6YW55KT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlSWQ6IHN0b3JlSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpc3N1ZVR5cGU6IFwiaW5zdGFsbGF0aW9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVTZXJ2aWNlLmJ1bGtJbmZyYVRpY2tldChidWxrVGlja2V0c0JvZHkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQ6KHJlczphbnkpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYocmVzICYmIHJlcy5jb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRzLmdldFN1Y2Nlc3NUb2FzdCgnU3RvcmUgSW5zdGFsbGF0aW9uIFRpY2tldHMgY3JlYXRlZCBzdWNjZXNzZnVsbHkhJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvbWFuYWdlL3N0b3Jlc1wiXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjooZXJyOmFueSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoZXJyLmVycm9yLmVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChlcnJvci5jb2RlID09IDQwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHMuZ2V0RXJyb3JUb2FzdChlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KGVycm9yLmVycm9yLmVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAvLyAuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAvLyAgIHRoaXMudHMuZ2V0RXJyb3JUb2FzdChcIlVuYWJsZSB0byBjcmVhdGUgc3RvcmVzIVwiKTtcclxuICAgICAgICAgIC8vIH0pO1xyXG4gICAgICB9O1xyXG4gICAgICAkKFwiI2t0X2NyZWF0ZV9hY2NvdW50X2Zvcm1fYWNjb3VudF90eXBlX3BlcnNvbmFsXCIpLnZhbChcIlwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlRmllbGQoXHJcbiAgICB2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCB8IG51bWJlcixcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nLFxyXG4gICAgcm93OiBudW1iZXIsXHJcbiAgICByZWdleD86IFJlZ0V4cFxyXG4gICk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIiAmJiB0eXBlb2YgdmFsdWUgIT09IFwibnVtYmVyXCIpIHtcclxuICAgICAgcmV0dXJuIGBJbnZhbGlkIHZhbHVlIGZvciAke2ZpZWxkTmFtZS50b0xvd2VyQ2FzZSgpfSBpbiByb3cgJHtyb3cgKyAxfWA7XHJcbiAgICB9XHJcbiAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSBgcGxlYXNlIGVudGVyIHRoZSAke2ZpZWxkTmFtZVxyXG4gICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAucmVwbGFjZSgvXFxiXFx3L2csIChsKSA9PiBsLnRvVXBwZXJDYXNlKCkpfWA7XHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBgUGxlYXNlIGVudGVyICR7ZmllbGROYW1lLnRvTG93ZXJDYXNlKCl9IGluIHJvdyAke3JvdyArIDF9YDtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICBpZiAodmFsdWUudHJpbSgpID09PSBkZWZhdWx0VmFsdWUudHJpbSgpKSB7XHJcbiAgICAgICAgcmV0dXJuIGBJbnZhbGlkIHZhbHVlIGZvciAke2ZpZWxkTmFtZS50b0xvd2VyQ2FzZSgpfSBpbiByb3cgJHtyb3cgKyAxfWA7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHJlZ2V4ICYmICFyZWdleC50ZXN0KHZhbHVlLnRyaW0oKSkpIHtcclxuICAgICAgICByZXR1cm4gYFBsZWFzZSBlbnRlciB2YWxpZCAke2ZpZWxkTmFtZS50b0xvd2VyQ2FzZSgpfSBpbiByb3cgJHtcclxuICAgICAgICAgIHJvdyArIDFcclxuICAgICAgICB9YDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXggZmxleC1jZW50ZXIgZmxleC1jb2x1bW4gcC05XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWItNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3ltYm9sIHN5bWJvbC03NXB4IHN5bWJvbC1jaXJjbGVcIj5cclxuICAgICAgICA8aW1nIGFsdD1cIlBpY1wiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL2FkZC1zdG9yZS1pY29uLnN2Z1wiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGEgY2xhc3M9XCJmcy00IHRleHQtZ3JheS04MDAgdGV4dC1ob3Zlci1wcmltYXJ5IGZ3LWJvbGRlciBtYi0wIHRpdGxlIGN1cnNvci1wb2ludGVyXCI+IEFkZCBzdG9yZXMgPC9hPlxyXG4gICAgPGRpdiBjbGFzcz1cImZ3LWJvbGQgdGV4dC1ncmF5LTUwMCBteS02XCI+XHJcbiAgICAgIDx1bCBjbGFzcz1cInRleHQtZ3JheS00MDAgZnctYm9sZCBmcy02XCI+XHJcbiAgICAgICAgPGxpPlVzZSB0aGUgdGVtcGxhdGUgdG8gdXBsb2FkIG11bHRpcGxlIHN0b3JlcyBhdCBvbmNlLjwvbGk+XHJcbiAgICAgICAgPGxpPkRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBoZXJlIC1cclxuICAgICAgICAgIDxhIGhyZWY9XCIuLi8uLi9hc3NldHMvZmlsZXMvc3RvcmVzVXBsb2FkVGVtcGxhdGUueGxzeFwiIGRvd25sb2FkPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xNy41IDEyLjVWMTUuODMzM0MxNy41IDE2LjI3NTQgMTcuMzI0NCAxNi42OTkzIDE3LjAxMTggMTcuMDExOEMxNi42OTkzIDE3LjMyNDQgMTYuMjc1NCAxNy41IDE1LjgzMzMgMTcuNUg0LjE2NjY3QzMuNzI0NjQgMTcuNSAzLjMwMDcyIDE3LjMyNDQgMi45ODgxNiAxNy4wMTE4QzIuNjc1NTkgMTYuNjk5MyAyLjUgMTYuMjc1NCAyLjUgMTUuODMzM1YxMi41TTUuODMzMzMgOC4zMzMzM0wxMCAxMi41TTEwIDEyLjVMMTQuMTY2NyA4LjMzMzMzTTEwIDEyLjVWMi41XCJcclxuICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGVtcGxhdGUgbXMtMlwiPkRvd25sb2FkIFRlbXBsYXRlPC9zcGFuPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGxpPkFkZCB5b3VyIGRhdGEgdG8gdGhlIFRlbXBsYXRlIEZpbGU8L2xpPlxyXG4gICAgICAgIDxsaT5VcGxvYWQgaXQgYmVsb3cgZm9yIHByb2Nlc3Npbmc8L2xpPlxyXG4gICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY2VudGVyIGZsZXgtd3JhcCBtYi01XCI+XHJcbiAgICAgIDxpbnB1dCBuYW1lPVwiYWNjb3VudFR5cGVcIiB0eXBlPVwicmFkaW9cIiBpZD1cImt0X2NyZWF0ZV9hY2NvdW50X2Zvcm1fYWNjb3VudF90eXBlX3BlcnNvbmFsXCIgdmFsdWU9XCJwZXJzb25hbFwiXHJcbiAgICAgICAgY2xhc3M9XCJidG4tY2hlY2tcIiBuZy1yZWZsZWN0LW5hbWU9XCJhY2NvdW50VHlwZVwiIG5nLXJlZmxlY3QtZm9ybS1jb250cm9sLW5hbWU9XCJhY2NvdW50VHlwZVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJvblVwbG9hZCgkZXZlbnQpXCJcclxuICAgICAgICBuZy1yZWZsZWN0LXZhbHVlPVwicGVyc29uYWxcIiB0eXBlPVwiZmlsZVwiICNpbnB1dEZpbGUgLz5cclxuICAgICAgPGxhYmVsIGZvcj1cImt0X2NyZWF0ZV9hY2NvdW50X2Zvcm1fYWNjb3VudF90eXBlX3BlcnNvbmFsXCJcclxuICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBidG4tcHJpbWFyeSBiZy1wcmltYXJ5IGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHctNTAgcC00IG10LTVcIj48c3BhblxyXG4gICAgICAgICAgY2xhc3M9XCJmdy1ib2xkIGZzLTRcIj5cclxuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjEgMjBcIlxyXG4gICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNMTggMTIuNVYxNS44MzMzQzE4IDE2LjI3NTQgMTcuODI0NCAxNi42OTkzIDE3LjUxMTggMTcuMDExOEMxNy4xOTkzIDE3LjMyNDQgMTYuNzc1NCAxNy41IDE2LjMzMzMgMTcuNUg0LjY2NjY3QzQuMjI0NjQgMTcuNSAzLjgwMDcyIDE3LjMyNDQgMy40ODgxNiAxNy4wMTE4QzMuMTc1NTkgMTYuNjk5MyAzIDE2LjI3NTQgMyAxNS44MzMzVjEyLjVNMTQuNjY2NyA2LjY2NjY3TDEwLjUgMi41TTEwLjUgMi41TDYuMzMzMzMgNi42NjY2N00xMC41IDIuNVYxMi41XCJcclxuICAgICAgICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgPC9zdmc+IFxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXdoaXRlIG14LTJcIj5BZGQgTXVsdGlwbGUgU3RvcmVzPC9zcGFuPjwvc3Bhbj5cclxuICAgICAgPC9sYWJlbD5cclxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWdyYXktNDAwIGZ3LWJvbGQgbXktM1wiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibGluZS1iZyBcIj48c3ZnIHdpZHRoPVwiMjI0XCIgaGVpZ2h0PVwiMlwiIHZpZXdCb3g9XCIwIDAgMTI0IDJcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgPHJlY3QgeT1cIjAuNVwiIHdpZHRoPVwiMTIzLjMzM1wiIGhlaWdodD1cIjFcIiBmaWxsPVwiI0VBRUNGMFwiIC8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L3NwYW4+PHNwYW4gY2xhc3M9XCJteC0yXCI+T3IgPC9zcGFuPiA8c3BhbiBjbGFzcz1cImxpbmUtYmcgXCI+PHN2ZyB3aWR0aD1cIjIyNFwiIGhlaWdodD1cIjJcIiB2aWV3Qm94PVwiMCAwIDEyNCAyXCJcclxuICAgICAgICAgICAgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgIDxyZWN0IHk9XCIwLjVcIiB3aWR0aD1cIjEyMy4zMzNcIiBoZWlnaHQ9XCIxXCIgZmlsbD1cIiNFQUVDRjBcIiAvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L3A+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBpZD1cImt0X2FjY291bnRfdGVhbV9zaXplX3NlbGVjdF8xXCIgdmFsdWU9XCIxLTFcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9zdG9yZXMvYWRkLXNpbmdsZS1zdG9yZVwiXHJcbiAgICAgICAgY2xhc3M9XCJidG4tY2hlY2sgbmctdW50b3VjaGVkIG5nLXByaXN0aW5lIG5nLXZhbGlkXCIgLz5cclxuICAgICAgPGxhYmVsIGZvcj1cImt0X2FjY291bnRfdGVhbV9zaXplX3NlbGVjdF8xXCJcclxuICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB3LTUwIHAtNCBtdC0zXCI+XHJcbiAgICAgICAgPHN2ZyB3aWR0aD1cIjE3XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE3IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICA8cGF0aCBkPVwiTTEuMTgwMTUgMy44MDM3OEwxLjEyNjkgMy44ODY5NUMwLjU2ODg2MyA0Ljg3NCAxLjE2NDY5IDYuMTIxNDMgMi4yMzYzIDYuMjY0NTJDMi4zMzMzOSA2LjI3NjM5IDIuNDIzNzMgNi4yODI2NyAyLjUxMiA2LjI4MjY3QzMuMDkwMTUgNi4yODI2NyAzLjYwMTMyIDYuMDM0NjUgMy45NTc1OSA1LjY0NzkyTDQuNTEwOTMgNS4wNDczTDUuMDYyMzggNS42NDk2NUM1LjQxNDMyIDYuMDM0MDcgNS45MjQzMyA2LjI4MjY3IDYuNTA2MzkgNi4yODI2N0M3LjA4NTgzIDYuMjgyNjcgNy41OTg3NyA2LjAzMzcyIDcuOTUwMzkgNS42NDk2NUw4LjUwMzU4IDUuMDQ1NDFMOS4wNTY3NiA1LjY0OTY1QzkuNDA4MzkgNi4wMzM3MiA5LjkyMTMzIDYuMjgyNjcgMTAuNTAwOCA2LjI4MjY3QzExLjA4MDIgNi4yODI2NyAxMS41OTMyIDYuMDMzNzIgMTEuOTQ0OCA1LjY0OTY1TDEyLjQ5OCA1LjA0NTQxTDEzLjA1MTEgNS42NDk2NUMxMy40MDI4IDYuMDMzNzIgMTMuOTE1NyA2LjI4MjY3IDE0LjQ5NTIgNi4yODI2N0MxNC41ODA1IDYuMjgyNjcgMTQuNjczNiA2LjI3NjM4IDE0Ljc3IDYuMjY0NjJDMTUuODY1MiA2LjExNTMgMTYuNDYzIDQuODAxMDMgMTUuODI0MyAzLjgwNDI4QzE1LjgyNDIgMy44MDQyMyAxNS44MjQyIDMuODA0MTcgMTUuODI0MiAzLjgwNDExTDE0LjA2NiAxLjA2MjdMMTQuMDY2IDEuMDYyN0wxNC4wNjUxIDEuMDYxMjNDMTQuMDQ5OSAxLjAzNzQgMTQuMDEyNCAxLjAxMTg0IDEzLjk2NTIgMS4wMTE4NEgzLjAzNTgxQzIuOTg4NjYgMS4wMTE4NCAyLjk1MTE3IDEuMDM3NCAyLjkzNTk3IDEuMDYxMjRMMi45MzUzNSAxLjA2MjJMMS4xODAxNSAzLjgwMzc4Wk0xNC4xNTE2IDguNzM3MDZWMTEuODY5VjEyLjYxOUgxMy40MDE2SDMuNTk5NDNIMi44NDk0M1YxMS44NjlWOC43Mzc1M0MyLjczOTIgOC43NDU3MyAyLjYyNzY4IDguNzQ5OTQgMi41MTUwNyA4Ljc0OTk0QzIuNDcyNzYgOC43NDk5NCAyLjQzMDc0IDguNzQ5MzEgMi4zODkgOC43NDgwOVYxMS44NjlWMTMuODAzNUMyLjM4OSAxNC40NDY5IDIuOTIyOSAxNC45ODggMy41OTk0MyAxNC45ODhIMTMuNDAxNkMxNC4wNzgxIDE0Ljk4OCAxNC42MTIgMTQuNDQ2OSAxNC42MTIgMTMuODAzNVYxMS44NjlWOC43NDgyN0MxNC41NzIyIDguNzQ5MzcgMTQuNTMyMiA4Ljc0OTk0IDE0LjQ5MjEgOC43NDk5NEMxNC4zNzc3IDguNzQ5OTQgMTQuMjY0MSA4Ljc0NTU5IDE0LjE1MTYgOC43MzcwNlpcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1ib2xkIGZzLTQgbXgtMlwiPlxyXG4gICAgICAgICAgICBBZGQgU2luZ2xlXHJcbiAgICAgICAgICBTdG9yZTwvc3Bhbj48L2xhYmVsPlxyXG4gICAgPC9kaXY+XHJcbiAgXHJcbiAgPC9kaXY+XHJcbiJdfQ==
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXN0b3Jlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc3RvcmVzL3NyYy9saWIvY29tcG9uZW50cy9hZGQtc3RvcmVzL2FkZC1zdG9yZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXN0b3Jlcy9zcmMvbGliL2NvbXBvbmVudHMvYWRkLXN0b3Jlcy9hZGQtc3RvcmVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLEVBQVksSUFBSSxFQUFFLEtBQUssRUFBYSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFheEQsTUFBTSxPQUFPLGtCQUFrQjtJQU9UO0lBQW9DO0lBQXlCO0lBTnpELFNBQVMsQ0FBYTtJQUU5QyxVQUFVLEdBQVcsa0JBQWtCLENBQUM7SUFDeEMsVUFBVSxHQUFXLDRCQUE0QixDQUFDO0lBQ2xELGNBQWMsQ0FBTTtJQUVwQixZQUFvQixZQUEyQixFQUFTLEVBQWdCLEVBQVMsTUFBYztRQUEzRSxpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQUFTLE9BQUUsR0FBRixFQUFFLENBQWM7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQzdGLElBQUksSUFBSSxHQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksSUFBSSxHQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUks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QztTQUNwRTtRQUNELElBQUksT0FBTyxLQUFLLElBQUksUUFBUSxFQUFFO1lBQzVCLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDeEMsT0FBTyxxQkFBcUIsU0FBUyxDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQzthQUN6RTtZQUNELElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRTtnQkFDdEMsT0FBTyxzQkFBc0IsU0FBUyxDQUFDLFdBQVcsRUFBRSxXQUNsRCxHQUFHLEdBQUcsQ0FDUixFQUFFLENBQUM7YUFDSjtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO3dHQXhQVSxrQkFBa0I7NEZBQWxCLGtCQUFrQiw4SkNmL0IsMHJLQWlFQTs7NEZEbERhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxnQkFBZ0I7a0lBS0YsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgU3dhbCBmcm9tIFwic3dlZXRhbGVydDJcIjtcclxuaW1wb3J0IHsgV29ya0Jvb2ssIHJlYWQsIHV0aWxzLCBXb3JrU2hlZXQgfSBmcm9tIFwieGxzeFwiO1xyXG5pbXBvcnQgeyBTdG9yZXNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3N0b3Jlcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN0b3JlQnVsa0l0ZW0gfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9zdG9yZS5pbnRlcmZhY2VcIjtcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1zaGFyZWRcIjtcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuZGVjbGFyZSB2YXIgJDogYW55O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwibGliLWFkZC1zdG9yZXNcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2FkZC1zdG9yZXMuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL2FkZC1zdG9yZXMuY29tcG9uZW50LnNjc3NcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZFN0b3Jlc0NvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZChcImlucHV0RmlsZVwiKSBpbnB1dEZpbGU6IEVsZW1lbnRSZWY7XHJcblxyXG4gIHBob25lUmVnZXg6IFJlZ0V4cCA9IC9eKFxcZHszfSk/XFxkezE1fSQvO1xyXG4gIGVtYWlsUmVnZXg6IFJlZ0V4cCA9IC9eW15cXHNAXStAW15cXHNAXStcXC5bXlxcc0BdKyQvO1xyXG4gICRoZWFkZXJGaWx0ZXJzOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmVTZXJ2aWNlOiBTdG9yZXNTZXJ2aWNlLHByaXZhdGUgdHM6IFRvYXN0U2VydmljZSxwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XHJcbiAgICBsZXQgZGF0YTphbnkgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdoZWFkZXItZmlsdGVycycpIHx8ICcnKTtcclxuICAgIGxldCB1c2VyOmFueSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXItaW5mbycpIHx8ICcnKTtcclxuICAgIHRoaXMuJGhlYWRlckZpbHRlcnMgPSBkYXRhID8gZGF0YSA6IHVzZXI7XHJcbiAgfVxyXG5cclxuICBvblVwbG9hZChlOiBhbnkpIHtcclxuICAgIGxldCBkYXRhOiBTdG9yZUJ1bGtJdGVtW107XHJcbiAgICBjb25zdCB0YXJnZXQ6IERhdGFUcmFuc2ZlciA9IDxEYXRhVHJhbnNmZXI+ZS50YXJnZXQ7XHJcbiAgICBpZiAodGFyZ2V0LmZpbGVzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgdGhpcy5pbnB1dEZpbGUubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICB9XHJcbiAgICBpZiAoISF0YXJnZXQuZmlsZXNbMF0ubmFtZS5tYXRjaCgvKC54bHN8Lnhsc3gpLykpIHtcclxuICAgICAgY29uc3QgcmVhZGVyOiBGaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgICAgY29uc3Qgd2I6IFdvcmtCb29rID0gcmVhZChic3RyLCB7IHR5cGU6IFwiYmluYXJ5XCIgfSk7XHJcbiAgICAgICAgY29uc3Qgd3NuYW1lOiBzdHJpbmcgPSB3Yi5TaGVldE5hbWVzWzBdO1xyXG4gICAgICAgIGNvbnN0IHdzOiBXb3JrU2hlZXQgPSB3Yi5TaGVldHNbd3NuYW1lXTtcclxuICAgICAgICBpZiAod2IuU2hlZXROYW1lc1swXSAhPSBcIlN0b3JlRGF0YVwiKSB7XHJcbiAgICAgICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoXCJQbGVhc2UgVXBsb2FkIHRoZSBWYWxpZCBGaWxlXCIpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZGF0YSA9IHV0aWxzLnNoZWV0X3RvX2pzb24od3MpO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuXHJcbiAgICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcodGFyZ2V0LmZpbGVzWzBdKTtcclxuXHJcbiAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSBhc3luYyAoZSkgPT4ge1xyXG4gICAgICAgIGxldCBwcm9jZXNzZWRBcnJheTogYW55W10gPSBbXTtcclxuICAgICAgICBsZXQgZXJyTXNnczogYW55W10gPSBbXTtcclxuICAgICAgICBsZXQgcHJvbWlzZXMgPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGVyck1zZ3MucHVzaCh0aGlzLnZhbGlkYXRlRmllbGQoZGF0YVtpXS5TdG9yZU5hbWUsIFwic3RvcmUgbmFtZVwiLCBpKSk7XHJcbiAgICAgICAgICBlcnJNc2dzLnB1c2godGhpcy52YWxpZGF0ZUZpZWxkKGRhdGFbaV0uU3RvcmVUeXBlLCBcInN0b3JlIHR5cGVcIiwgaSkpO1xyXG4gICAgICAgICAgZXJyTXNncy5wdXNoKHRoaXMudmFsaWRhdGVGaWVsZChkYXRhW2ldLlNwb2NOYW1lLCBcInNwb2MgbmFtZVwiLCBpKSk7XHJcbiAgICAgICAgICBlcnJNc2dzLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVGaWVsZChkYXRhW2ldLkJ1c2luZXNzVHlwZSwgXCJidXNpbmVzcyB0eXBlXCIsIGkpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgZXJyTXNncy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlRmllbGQoXHJcbiAgICAgICAgICAgICAgZGF0YVtpXS5TcG9jRW1haWwsXHJcbiAgICAgICAgICAgICAgXCJzcG9jIGVtYWlsXCIsXHJcbiAgICAgICAgICAgICAgaSxcclxuICAgICAgICAgICAgICB0aGlzLmVtYWlsUmVnZXhcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGVyck1zZ3MucHVzaChcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUZpZWxkKFxyXG4gICAgICAgICAgICAgIGRhdGFbaV0uU3BvY0NvbnRhY3QsXHJcbiAgICAgICAgICAgICAgXCJzcG9jIGNvbnRhY3RcIixcclxuICAgICAgICAgICAgICBpLFxyXG4gICAgICAgICAgICAgIHRoaXMucGhvbmVSZWdleFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgZXJyTXNncy5wdXNoKHRoaXMudmFsaWRhdGVGaWVsZChkYXRhW2ldLlRpbWVab25lLCBcInRpbWV6b25lXCIsIGkpKTtcclxuICAgICAgICAgIC8vIGVyck1zZ3MucHVzaChcclxuICAgICAgICAgIC8vICAgdGhpcy52YWxpZGF0ZUZpZWxkKGRhdGFbaV0uQ2FtZXJhQ291bnQsIFwiY2FtZXJhIGNvdW50XCIsIGkpXHJcbiAgICAgICAgICAvLyApO1xyXG4gICAgICAgICAgLy8gZXJyTXNncy5wdXNoKHRoaXMudmFsaWRhdGVGaWVsZChkYXRhW2ldLkxhdGl0dWRlLCBcImxhdGl0dWRlXCIsIGkpKTtcclxuICAgICAgICAgIC8vIGVyck1zZ3MucHVzaCh0aGlzLnZhbGlkYXRlRmllbGQoZGF0YVtpXS5Mb25naXR1ZGUsIFwibG9uZ2l0dWRlXCIsIGkpKTtcclxuXHJcbiAgICAgICAgICBlcnJNc2dzID0gZXJyTXNncy5maWx0ZXIoKHgpID0+IHggIT0gbnVsbCk7XHJcbiAgICAgICAgICBpZiAoZXJyTXNncy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGxldCBlcnJvcnMgPSBlcnJNc2dzLmpvaW4oXCI8YnI+XCIpO1xyXG4gICAgICAgICAgICBTd2FsLmZpcmUoe1xyXG4gICAgICAgICAgICAgIGljb246IFwiZXJyb3JcIixcclxuICAgICAgICAgICAgICBodG1sOiBlcnJvcnMsXHJcbiAgICAgICAgICAgICAgY3VzdG9tQ2xhc3M6IHtcclxuICAgICAgICAgICAgICAgIGh0bWxDb250YWluZXI6IFwiZXJyb3ItaHRtbGNvbnRhaW5lci1jbGFzc1wiLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgaGVpZ2h0QXV0bzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgc2hvd0NvbmZpcm1CdXR0b246IHRydWUsXHJcbiAgICAgICAgICAgICAgY29uZmlybUJ1dHRvbkNvbG9yOiBcIiMwMDlFRjdcIixcclxuICAgICAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCJPS1wiLFxyXG4gICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHt9KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmKCFkYXRhW2ldLkxhdGl0dWRlKSB7XHJcbiAgICAgICAgICAgIGRhdGFbaV0uTGF0aXR1ZGUgPSAnMCc7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYoIWRhdGFbaV0uTG9uZ2l0dWRlKSB7XHJcbiAgICAgICAgICAgIGRhdGFbaV0uTG9uZ2l0dWRlID0gJzAnO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLnN0b3JlU2VydmljZVxyXG4gICAgICAgICAgICAuZ2V0QWRkcmVzcyhOdW1iZXIoZGF0YVtpXS5MYXRpdHVkZSksIE51bWJlcihkYXRhW2ldLkxvbmdpdHVkZSkpXHJcbiAgICAgICAgICAgIC50aGVuKChwbGFjZURhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCBzdG9yZVByb2ZpbGU6IGFueSA9IHtcclxuICAgICAgICAgICAgICAgIGFkZHJlc3M6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICBjb3VudHJ5OiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgc3RhdGU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICBjaXR5OiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgcGluY29kZTogXCJcIixcclxuICAgICAgICAgICAgICAgIHN0b3JlQ29kZTpkYXRhW2ldPy5TdG9yZVJlZmVyZW5jZUNvZGUudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICAgIG9wZW46ZGF0YVtpXT8uU3RvcmVPcGVuVGltZSA/IHRoaXMuZGVjaW1hbFRvVGltZShOdW1iZXIoZGF0YVtpXT8uU3RvcmVPcGVuVGltZSkpIDonJyxcclxuICAgICAgICAgICAgICAgIGNsb3NlOmRhdGFbaV0/LlN0b3JlQ2xvc2VUaW1lID8gdGhpcy5kZWNpbWFsVG9UaW1lKE51bWJlcihkYXRhW2ldPy5TdG9yZUNsb3NlVGltZSkpIDonJ1xyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgLy8gaWYocGxhY2VEYXRhLmFkZHJlc3NfY29tcG9uZW50cykge1xyXG4gICAgICAgICAgICAgIC8vICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgcGxhY2VEYXRhLmFkZHJlc3NfY29tcG9uZW50cykge1xyXG4gICAgICAgICAgICAgIC8vICAgICBjb25zdCB0eXBlcyA9IGNvbXBvbmVudC50eXBlcztcclxuICAgICAgICAgICAgICAvLyAgICAgaWYgKHR5cGVzLmluY2x1ZGVzKFwibG9jYWxpdHlcIikpIHtcclxuICAgICAgICAgICAgICAvLyAgICAgICBzdG9yZVByb2ZpbGUuY2l0eSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgICAgICAgLy8gICAgIH0gZWxzZSBpZiAodHlwZXMuaW5jbHVkZXMoXCJhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzFcIikpIHtcclxuICAgICAgICAgICAgICAvLyAgICAgICBzdG9yZVByb2ZpbGUuc3RhdGUgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgICAgICAgIC8vICAgICB9IGVsc2UgaWYgKHR5cGVzLmluY2x1ZGVzKFwiY291bnRyeVwiKSkge1xyXG4gICAgICAgICAgICAgIC8vICAgICAgIHN0b3JlUHJvZmlsZS5jb3VudHJ5ID0gY29tcG9uZW50LmxvbmdfbmFtZTtcclxuICAgICAgICAgICAgICAvLyAgICAgfSBlbHNlIGlmICh0eXBlcy5pbmNsdWRlcyhcInBvc3RhbF9jb2RlXCIpKSB7XHJcbiAgICAgICAgICAgICAgLy8gICAgICAgc3RvcmVQcm9maWxlLnBpbmNvZGUgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgICAgICAgIC8vICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgICAgIC8vICAgICAgIHR5cGVzLmluY2x1ZGVzKFwicHJlbWlzZVwiKSB8fFxyXG4gICAgICAgICAgICAgIC8vICAgICAgIHR5cGVzLmluY2x1ZGVzKFwic3VibG9jYWxpdHlfbGV2ZWxfMlwiKSB8fFxyXG4gICAgICAgICAgICAgIC8vICAgICAgIHR5cGVzLmluY2x1ZGVzKFwic3VibG9jYWxpdHlfbGV2ZWxfMVwiKVxyXG4gICAgICAgICAgICAgIC8vICAgICApIHtcclxuICAgICAgICAgICAgICAvLyAgICAgICBpZiAoY29tcG9uZW50LmxvbmdfbmFtZSkge1xyXG4gICAgICAgICAgICAgIC8vICAgICAgICAgc3RvcmVQcm9maWxlLmFkZHJlc3MgKz0gY29tcG9uZW50LmxvbmdfbmFtZSArIFwiLFwiO1xyXG4gICAgICAgICAgICAgIC8vICAgICAgIH1cclxuICAgICAgICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgICAgICAgIC8vICAgfVxyXG4gICAgICAgICAgICAgIC8vICAgaWYgKHN0b3JlUHJvZmlsZS5hZGRyZXNzKSB7XHJcbiAgICAgICAgICAgICAgLy8gICAgIHN0b3JlUHJvZmlsZS5hZGRyZXNzID0gc3RvcmVQcm9maWxlLmFkZHJlc3Muc2xpY2UoMCwgLTEpO1xyXG4gICAgICAgICAgICAgIC8vICAgfVxyXG4gICAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgICBkYXRhW2ldW1wic3RvcmVQcm9maWxlXCJdID0gc3RvcmVQcm9maWxlO1xyXG4gICAgICAgICAgICAgIHByb2Nlc3NlZEFycmF5LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgc3RvcmVOYW1lOiBkYXRhW2ldLlN0b3JlTmFtZSxcclxuICAgICAgICAgICAgICAgIHN0b3JlVHlwZTogeyB0eXBlOiBkYXRhW2ldLlN0b3JlVHlwZSB9LFxyXG4gICAgICAgICAgICAgICAgZWRnZTogeyBzZXJ2ZXJUeXBlOmZhbHNlfSxcclxuICAgICAgICAgICAgICAgIHNwb2NEZXRhaWxzOiB7XHJcbiAgICAgICAgICAgICAgICAgIG5hbWU6IGRhdGFbaV0uU3BvY05hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGVtYWlsOiBkYXRhW2ldLlNwb2NFbWFpbCxcclxuICAgICAgICAgICAgICAgICAgY29udGFjdDogZGF0YVtpXS5TcG9jQ29udGFjdC50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHN0b3JlUHJvZmlsZToge1xyXG4gICAgICAgICAgICAgICAgICAuLi5kYXRhW2ldLnN0b3JlUHJvZmlsZSxcclxuICAgICAgICAgICAgICAgICAgLi4ueyB0aW1lWm9uZTogZGF0YVtpXS5UaW1lWm9uZSB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGJ1c2luZXNzVHlwZTogZGF0YVtpXS5CdXNpbmVzc1R5cGUsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC8vIC5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgLy8gICB0aGlzLnRzLmdldEVycm9yVG9hc3QoXHJcbiAgICAgICAgICAgIC8vICAgICBgUGxlYXNlIFVwbG9hZCB0aGUgRmlsZSB3aXRoIFZhbGlkIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgaW4gcm93ICR7XHJcbiAgICAgICAgICAgIC8vICAgICAgIGkgKyAxXHJcbiAgICAgICAgICAgIC8vICAgICB9YFxyXG4gICAgICAgICAgICAvLyAgICk7XHJcbiAgICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgUHJvbWlzZS5hbGwocHJvbWlzZXMpXHJcbiAgICAgICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgLnN0b3JlQnVsa1VwbG9hZCh7XHJcbiAgICAgICAgICAgICAgICBzdG9yZXM6IHByb2Nlc3NlZEFycmF5LFxyXG4gICAgICAgICAgICAgICAgY2xpZW50SWQ6IHRoaXMuJGhlYWRlckZpbHRlcnM/LmNsaWVudCA/IHRoaXMuJGhlYWRlckZpbHRlcnM/LmNsaWVudCA6dGhpcy4kaGVhZGVyRmlsdGVycz8uY2xpZW50SWQsXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHMuZ2V0U3VjY2Vzc1RvYXN0KFwiU3RvcmVzIGhhdmUgYmVlbiB1cGxvYWRlZCBTdWNjZXNzZnVsbHkhXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHJlcy5kYXRhLnN0b3JlcyAmJiByZXMuZGF0YS5zdG9yZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgYnVsa1RpY2tldHNCb2R5OiBhbnkgPSByZXMuZGF0YS5zdG9yZXMubWFwKChzdG9yZUlkOmFueSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZUlkOiBzdG9yZUlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIERhdGU6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zcGxpdChcIlRcIilbMF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNzdWVUeXBlOiBcImluc3RhbGxhdGlvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlU2VydmljZS5idWxrSW5mcmFUaWNrZXQoYnVsa1RpY2tldHNCb2R5KS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0OihyZXM6YW55KT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHJlcyAmJiByZXMuY29kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cy5nZXRTdWNjZXNzVG9hc3QoJ1N0b3JlIEluc3RhbGxhdGlvbiBUaWNrZXRzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5IScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiL21hbmFnZS9zdG9yZXNcIl0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6KGVycjphbnkpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KGVyci5lcnJvci5lcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoZXJyb3IuY29kZSA9PSA0MDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHMuZ2V0RXJyb3JUb2FzdChlcnJvci5lcnJvci5lcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLy8gLmNhdGNoKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgLy8gICB0aGlzLnRzLmdldEVycm9yVG9hc3QoXCJVbmFibGUgdG8gY3JlYXRlIHN0b3JlcyFcIik7XHJcbiAgICAgICAgICAvLyB9KTtcclxuICAgICAgfTtcclxuICAgICAgJChcIiNrdF9jcmVhdGVfYWNjb3VudF9mb3JtX2FjY291bnRfdHlwZV9wZXJzb25hbFwiKS52YWwoXCJcIik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRlY2ltYWxUb1RpbWUoZGVjaW1hbFRpbWU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBjb25zdCB0b3RhbE1pbnV0ZXMgPSBNYXRoLmZsb29yKGRlY2ltYWxUaW1lICogMTQ0MCk7IC8vIFRvdGFsIG1pbnV0ZXMgaW4gYSBkYXlcclxuICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcih0b3RhbE1pbnV0ZXMgLyA2MCk7XHJcbiAgICBjb25zdCBtaW51dGVzID0gdG90YWxNaW51dGVzICUgNjA7XHJcbiAgICBjb25zdCBzZWNvbmRzID0gTWF0aC5yb3VuZCgoZGVjaW1hbFRpbWUgKiA4NjQwMCkgJSA2MCk7IC8vIFRvdGFsIHNlY29uZHMgaW4gYSBkYXlcclxuICBcclxuICAgIC8vIFBhZCB3aXRoIGxlYWRpbmcgemVyb3MgaWYgbmVjZXNzYXJ5XHJcbiAgICBjb25zdCBob3Vyc1N0cmluZyA9IFN0cmluZyhob3VycykucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIGNvbnN0IG1pbnV0ZXNTdHJpbmcgPSBTdHJpbmcobWludXRlcykucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIGNvbnN0IHNlY29uZHNTdHJpbmcgPSBTdHJpbmcoc2Vjb25kcykucGFkU3RhcnQoMiwgJzAnKTtcclxuICBcclxuICAgIHJldHVybiBgJHtob3Vyc1N0cmluZ306JHttaW51dGVzU3RyaW5nfToke3NlY29uZHNTdHJpbmd9YDtcclxuICB9XHJcbiAgdmFsaWRhdGVGaWVsZChcclxuICAgIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsIHwgbnVtYmVyLFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcsXHJcbiAgICByb3c6IG51bWJlcixcclxuICAgIHJlZ2V4PzogUmVnRXhwXHJcbiAgKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInN0cmluZ1wiICYmIHR5cGVvZiB2YWx1ZSAhPT0gXCJudW1iZXJcIikge1xyXG4gICAgICByZXR1cm4gYEludmFsaWQgdmFsdWUgZm9yICR7ZmllbGROYW1lLnRvTG93ZXJDYXNlKCl9IGluIHJvdyAke3JvdyArIDF9YDtcclxuICAgIH1cclxuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IGBwbGVhc2UgZW50ZXIgdGhlICR7ZmllbGROYW1lXHJcbiAgICAgIC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgIC5yZXBsYWNlKC9cXGJcXHcvZywgKGwpID0+IGwudG9VcHBlckNhc2UoKSl9YDtcclxuICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgcmV0dXJuIGBQbGVhc2UgZW50ZXIgJHtmaWVsZE5hbWUudG9Mb3dlckNhc2UoKX0gaW4gcm93ICR7cm93ICsgMX1gO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgIGlmICh2YWx1ZS50cmltKCkgPT09IGRlZmF1bHRWYWx1ZS50cmltKCkpIHtcclxuICAgICAgICByZXR1cm4gYEludmFsaWQgdmFsdWUgZm9yICR7ZmllbGROYW1lLnRvTG93ZXJDYXNlKCl9IGluIHJvdyAke3JvdyArIDF9YDtcclxuICAgICAgfVxyXG4gICAgICBpZiAocmVnZXggJiYgIXJlZ2V4LnRlc3QodmFsdWUudHJpbSgpKSkge1xyXG4gICAgICAgIHJldHVybiBgUGxlYXNlIGVudGVyIHZhbGlkICR7ZmllbGROYW1lLnRvTG93ZXJDYXNlKCl9IGluIHJvdyAke1xyXG4gICAgICAgICAgcm93ICsgMVxyXG4gICAgICAgIH1gO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBmbGV4LWNlbnRlciBmbGV4LWNvbHVtbiBwLTlcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYi01XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzeW1ib2wgc3ltYm9sLTc1cHggc3ltYm9sLWNpcmNsZVwiPlxyXG4gICAgICAgIDxpbWcgYWx0PVwiUGljXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvYWRkLXN0b3JlLWljb24uc3ZnXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YSBjbGFzcz1cImZzLTQgdGV4dC1ncmF5LTgwMCB0ZXh0LWhvdmVyLXByaW1hcnkgZnctYm9sZGVyIG1iLTAgdGl0bGUgY3Vyc29yLXBvaW50ZXJcIj4gQWRkIHN0b3JlcyA8L2E+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNTAwIG15LTZcIj5cclxuICAgICAgPHVsIGNsYXNzPVwidGV4dC1ncmF5LTQwMCBmdy1ib2xkIGZzLTZcIj5cclxuICAgICAgICA8bGk+VXNlIHRoZSB0ZW1wbGF0ZSB0byB1cGxvYWQgbXVsdGlwbGUgc3RvcmVzIGF0IG9uY2UuPC9saT5cclxuICAgICAgICA8bGk+RG93bmxvYWQgdGhlIHRlbXBsYXRlIGhlcmUgLVxyXG4gICAgICAgICAgPGEgaHJlZj1cIi4uLy4uL2Fzc2V0cy9maWxlcy9zdG9yZXNVcGxvYWRUZW1wbGF0ZS54bHN4XCIgZG93bmxvYWQ+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPVwiTTE3LjUgMTIuNVYxNS44MzMzQzE3LjUgMTYuMjc1NCAxNy4zMjQ0IDE2LjY5OTMgMTcuMDExOCAxNy4wMTE4QzE2LjY5OTMgMTcuMzI0NCAxNi4yNzU0IDE3LjUgMTUuODMzMyAxNy41SDQuMTY2NjdDMy43MjQ2NCAxNy41IDMuMzAwNzIgMTcuMzI0NCAyLjk4ODE2IDE3LjAxMThDMi42NzU1OSAxNi42OTkzIDIuNSAxNi4yNzU0IDIuNSAxNS44MzMzVjEyLjVNNS44MzMzMyA4LjMzMzMzTDEwIDEyLjVNMTAgMTIuNUwxNC4xNjY3IDguMzMzMzNNMTAgMTIuNVYyLjVcIlxyXG4gICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZW1wbGF0ZSBtcy0yXCI+RG93bmxvYWQgVGVtcGxhdGU8L3NwYW4+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGk+QWRkIHlvdXIgZGF0YSB0byB0aGUgVGVtcGxhdGUgRmlsZTwvbGk+XHJcbiAgICAgICAgPGxpPlVwbG9hZCBpdCBiZWxvdyBmb3IgcHJvY2Vzc2luZzwvbGk+XHJcbiAgICAgIDwvdWw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jZW50ZXIgZmxleC13cmFwIG1iLTVcIj5cclxuICAgICAgPGlucHV0IG5hbWU9XCJhY2NvdW50VHlwZVwiIHR5cGU9XCJyYWRpb1wiIGlkPVwia3RfY3JlYXRlX2FjY291bnRfZm9ybV9hY2NvdW50X3R5cGVfcGVyc29uYWxcIiB2YWx1ZT1cInBlcnNvbmFsXCJcclxuICAgICAgICBjbGFzcz1cImJ0bi1jaGVja1wiIG5nLXJlZmxlY3QtbmFtZT1cImFjY291bnRUeXBlXCIgbmctcmVmbGVjdC1mb3JtLWNvbnRyb2wtbmFtZT1cImFjY291bnRUeXBlXCJcclxuICAgICAgICAoY2hhbmdlKT1cIm9uVXBsb2FkKCRldmVudClcIlxyXG4gICAgICAgIG5nLXJlZmxlY3QtdmFsdWU9XCJwZXJzb25hbFwiIHR5cGU9XCJmaWxlXCIgI2lucHV0RmlsZSAvPlxyXG4gICAgICA8bGFiZWwgZm9yPVwia3RfY3JlYXRlX2FjY291bnRfZm9ybV9hY2NvdW50X3R5cGVfcGVyc29uYWxcIlxyXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIGJ0bi1wcmltYXJ5IGJnLXByaW1hcnkgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdy01MCBwLTQgbXQtNVwiPjxzcGFuXHJcbiAgICAgICAgICBjbGFzcz1cImZ3LWJvbGQgZnMtNFwiPlxyXG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMSAyMFwiXHJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0xOCAxMi41VjE1LjgzMzNDMTggMTYuMjc1NCAxNy44MjQ0IDE2LjY5OTMgMTcuNTExOCAxNy4wMTE4QzE3LjE5OTMgMTcuMzI0NCAxNi43NzU0IDE3LjUgMTYuMzMzMyAxNy41SDQuNjY2NjdDNC4yMjQ2NCAxNy41IDMuODAwNzIgMTcuMzI0NCAzLjQ4ODE2IDE3LjAxMThDMy4xNzU1OSAxNi42OTkzIDMgMTYuMjc1NCAzIDE1LjgzMzNWMTIuNU0xNC42NjY3IDYuNjY2NjdMMTAuNSAyLjVNMTAuNSAyLjVMNi4zMzMzMyA2LjY2NjY3TTEwLjUgMi41VjEyLjVcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICA8L3N2Zz4gXHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtd2hpdGUgbXgtMlwiPkFkZCBNdWx0aXBsZSBTdG9yZXM8L3NwYW4+PC9zcGFuPlxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgICA8cCBjbGFzcz1cInRleHQtZ3JheS00MDAgZnctYm9sZCBteS0zXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJsaW5lLWJnIFwiPjxzdmcgd2lkdGg9XCIyMjRcIiBoZWlnaHQ9XCIyXCIgdmlld0JveD1cIjAgMCAxMjQgMlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICA8cmVjdCB5PVwiMC41XCIgd2lkdGg9XCIxMjMuMzMzXCIgaGVpZ2h0PVwiMVwiIGZpbGw9XCIjRUFFQ0YwXCIgLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz1cIm14LTJcIj5PciA8L3NwYW4+IDxzcGFuIGNsYXNzPVwibGluZS1iZyBcIj48c3ZnIHdpZHRoPVwiMjI0XCIgaGVpZ2h0PVwiMlwiIHZpZXdCb3g9XCIwIDAgMTI0IDJcIlxyXG4gICAgICAgICAgICBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgPHJlY3QgeT1cIjAuNVwiIHdpZHRoPVwiMTIzLjMzM1wiIGhlaWdodD1cIjFcIiBmaWxsPVwiI0VBRUNGMFwiIC8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvcD5cclxuICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzFcIiB2YWx1ZT1cIjEtMVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3N0b3Jlcy9hZGQtc2luZ2xlLXN0b3JlXCJcclxuICAgICAgICBjbGFzcz1cImJ0bi1jaGVjayBuZy11bnRvdWNoZWQgbmctcHJpc3RpbmUgbmctdmFsaWRcIiAvPlxyXG4gICAgICA8bGFiZWwgZm9yPVwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzFcIlxyXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHctNTAgcC00IG10LTNcIj5cclxuICAgICAgICA8c3ZnIHdpZHRoPVwiMTdcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTcgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgIDxwYXRoIGQ9XCJNMS4xODAxNSAzLjgwMzc4TDEuMTI2OSAzLjg4Njk1QzAuNTY4ODYzIDQuODc0IDEuMTY0NjkgNi4xMjE0MyAyLjIzNjMgNi4yNjQ1MkMyLjMzMzM5IDYuMjc2MzkgMi40MjM3MyA2LjI4MjY3IDIuNTEyIDYuMjgyNjdDMy4wOTAxNSA2LjI4MjY3IDMuNjAxMzIgNi4wMzQ2NSAzLjk1NzU5IDUuNjQ3OTJMNC41MTA5MyA1LjA0NzNMNS4wNjIzOCA1LjY0OTY1QzUuNDE0MzIgNi4wMzQwNyA1LjkyNDMzIDYuMjgyNjcgNi41MDYzOSA2LjI4MjY3QzcuMDg1ODMgNi4yODI2NyA3LjU5ODc3IDYuMDMzNzIgNy45NTAzOSA1LjY0OTY1TDguNTAzNTggNS4wNDU0MUw5LjA1Njc2IDUuNjQ5NjVDOS40MDgzOSA2LjAzMzcyIDkuOTIxMzMgNi4yODI2NyAxMC41MDA4IDYuMjgyNjdDMTEuMDgwMiA2LjI4MjY3IDExLjU5MzIgNi4wMzM3MiAxMS45NDQ4IDUuNjQ5NjVMMTIuNDk4IDUuMDQ1NDFMMTMuMDUxMSA1LjY0OTY1QzEzLjQwMjggNi4wMzM3MiAxMy45MTU3IDYuMjgyNjcgMTQuNDk1MiA2LjI4MjY3QzE0LjU4MDUgNi4yODI2NyAxNC42NzM2IDYuMjc2MzggMTQuNzcgNi4yNjQ2MkMxNS44NjUyIDYuMTE1MyAxNi40NjMgNC44MDEwMyAxNS44MjQzIDMuODA0MjhDMTUuODI0MiAzLjgwNDIzIDE1LjgyNDIgMy44MDQxNyAxNS44MjQyIDMuODA0MTFMMTQuMDY2IDEuMDYyN0wxNC4wNjYgMS4wNjI3TDE0LjA2NTEgMS4wNjEyM0MxNC4wNDk5IDEuMDM3NCAxNC4wMTI0IDEuMDExODQgMTMuOTY1MiAxLjAxMTg0SDMuMDM1ODFDMi45ODg2NiAxLjAxMTg0IDIuOTUxMTcgMS4wMzc0IDIuOTM1OTcgMS4wNjEyNEwyLjkzNTM1IDEuMDYyMkwxLjE4MDE1IDMuODAzNzhaTTE0LjE1MTYgOC43MzcwNlYxMS44NjlWMTIuNjE5SDEzLjQwMTZIMy41OTk0M0gyLjg0OTQzVjExLjg2OVY4LjczNzUzQzIuNzM5MiA4Ljc0NTczIDIuNjI3NjggOC43NDk5NCAyLjUxNTA3IDguNzQ5OTRDMi40NzI3NiA4Ljc0OTk0IDIuNDMwNzQgOC43NDkzMSAyLjM4OSA4Ljc0ODA5VjExLjg2OVYxMy44MDM1QzIuMzg5IDE0LjQ0NjkgMi45MjI5IDE0Ljk4OCAzLjU5OTQzIDE0Ljk4OEgxMy40MDE2QzE0LjA3ODEgMTQuOTg4IDE0LjYxMiAxNC40NDY5IDE0LjYxMiAxMy44MDM1VjExLjg2OVY4Ljc0ODI3QzE0LjU3MjIgOC43NDkzNyAxNC41MzIyIDguNzQ5OTQgMTQuNDkyMSA4Ljc0OTk0QzE0LjM3NzcgOC43NDk5NCAxNC4yNjQxIDguNzQ1NTkgMTQuMTUxNiA4LjczNzA2WlwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjVcIi8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LWJvbGQgZnMtNCBteC0yXCI+XHJcbiAgICAgICAgICAgIEFkZCBTaW5nbGVcclxuICAgICAgICAgIFN0b3JlPC9zcGFuPjwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuICBcclxuICA8L2Rpdj5cclxuIl19