tango-app-ui-ticket-user 3.0.5-dev → 3.0.7-dev

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 (24) hide show
  1. package/esm2022/lib/components/contact-details/contact-details.component.mjs +24 -10
  2. package/esm2022/lib/components/edge-cameraview/edge-cameraview.component.mjs +16 -12
  3. package/esm2022/lib/components/edgeapp-log/edgeapp-log.component.mjs +25 -12
  4. package/esm2022/lib/components/edit-details/edit-details.component.mjs +22 -14
  5. package/esm2022/lib/components/infratickets/infratickets.component.mjs +7 -14
  6. package/esm2022/lib/components/installation/installation.component.mjs +37 -12
  7. package/esm2022/lib/components/store-activity/store-activity.component.mjs +24 -4
  8. package/esm2022/lib/components/store-info/store-info.component.mjs +53 -29
  9. package/esm2022/lib/components/takeremote/takeremote.component.mjs +13 -11
  10. package/esm2022/lib/components/tickets/tickets.component.mjs +40 -23
  11. package/esm2022/lib/services/ticket-infra.service.mjs +5 -2
  12. package/fesm2022/tango-app-ui-ticket-user.mjs +258 -139
  13. package/fesm2022/tango-app-ui-ticket-user.mjs.map +1 -1
  14. package/lib/components/contact-details/contact-details.component.d.ts +3 -1
  15. package/lib/components/edgeapp-log/edgeapp-log.component.d.ts +7 -1
  16. package/lib/components/edit-details/edit-details.component.d.ts +4 -1
  17. package/lib/components/infratickets/infratickets.component.d.ts +1 -2
  18. package/lib/components/installation/installation.component.d.ts +7 -3
  19. package/lib/components/store-activity/store-activity.component.d.ts +3 -1
  20. package/lib/components/store-info/store-info.component.d.ts +11 -3
  21. package/lib/components/takeremote/takeremote.component.d.ts +5 -2
  22. package/lib/components/tickets/tickets.component.d.ts +3 -1
  23. package/lib/services/ticket-infra.service.d.ts +1 -0
  24. package/package.json +1 -1
@@ -4,25 +4,28 @@ import * as i0 from "@angular/core";
4
4
  import * as i1 from "@ng-bootstrap/ng-bootstrap";
5
5
  import * as i2 from "../../services/ticket-infra.service";
6
6
  import * as i3 from "tango-app-ui-shared";
7
- import * as i4 from "@angular/common";
7
+ import * as i4 from "tango-app-ui-global";
8
+ import * as i5 from "@angular/common";
8
9
  export class ContactDetailsComponent {
9
10
  modalService;
10
11
  activeModal;
11
12
  service;
12
13
  cd;
13
14
  toast;
15
+ gs;
14
16
  confirmationModal;
15
17
  modalRef;
16
18
  spocDetials;
17
19
  limit = 10;
18
20
  offset = 1;
19
21
  value;
20
- constructor(modalService, activeModal, service, cd, toast) {
22
+ constructor(modalService, activeModal, service, cd, toast, gs) {
21
23
  this.modalService = modalService;
22
24
  this.activeModal = activeModal;
23
25
  this.service = service;
24
26
  this.cd = cd;
25
27
  this.toast = toast;
28
+ this.gs = gs;
26
29
  }
27
30
  ngOnInit() {
28
31
  console.log('value', this.value);
@@ -49,17 +52,25 @@ export class ContactDetailsComponent {
49
52
  this.activeModal.close();
50
53
  }
51
54
  addContact() {
55
+ let obj = {
56
+ edit: false,
57
+ id: this.value.storeId
58
+ };
52
59
  const modalRef = this.modalService.open(EditDetailsComponent, {
53
60
  centered: true, size: 'md'
54
61
  });
62
+ modalRef.componentInstance.data = obj;
55
63
  modalRef.result.then((result) => {
56
64
  if (result) {
57
- console.log(result);
65
+ if (result == 'close') {
66
+ this.activeModal.close();
67
+ }
58
68
  }
59
69
  });
60
70
  }
61
71
  editOpen(data) {
62
72
  let obj = {
73
+ edit: true,
63
74
  spocId: data.spocId,
64
75
  id: data.storeId,
65
76
  name: data.spocName,
@@ -67,10 +78,13 @@ export class ContactDetailsComponent {
67
78
  contact: data.spocNumber,
68
79
  country: data.spocCountry
69
80
  };
70
- console.log('obj', obj);
71
81
  const modalRef = this.modalService.open(EditDetailsComponent, { centered: true, size: 'md' });
72
82
  modalRef.componentInstance.data = obj;
73
- modalRef.result.then((result) => { });
83
+ modalRef.result.then((result) => {
84
+ if (result == 'close') {
85
+ this.activeModal.close();
86
+ }
87
+ });
74
88
  }
75
89
  deleteContact(data) {
76
90
  const modalRef = this.modalService.open(this.confirmationModal, { centered: true });
@@ -94,16 +108,16 @@ export class ContactDetailsComponent {
94
108
  this.activeModal.close();
95
109
  this.toast.getErrorToast('Contact has been Deleted Successfully');
96
110
  }
97
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ContactDetailsComponent, deps: [{ token: i1.NgbModal }, { token: i1.NgbActiveModal }, { token: i2.TicketsService }, { token: i0.ChangeDetectorRef }, { token: i3.ToastService }], target: i0.ɵɵFactoryTarget.Component });
98
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: ContactDetailsComponent, selector: "lib-contact-details", inputs: { value: "value" }, viewQueries: [{ propertyName: "confirmationModal", first: true, predicate: ["confirmationModal"], descendants: true }], ngImport: i0, template: "<div class=\"card p-0\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label header mb-2\">{{value?.storeName ? value?.storeName:'--'}} Contacts</span>\r\n <span class=\"sub-header mb-2\">{{spocDetials?.length ? spocDetials?.length : 0 }} contacts </span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\"> \r\n <button type=\"button\" (click)=\"addContact()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val py-2 px-10\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M9.99935 4.16669V15.8334M4.16602 10H15.8327\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">Add</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body pt-0 mh-60vh\">\r\n <div class=\"d-flex justify-content-between align-items-center pt-5\" *ngFor=\"let obj of spocDetials;let i=index;\">\r\n <div class=\"d-flex\">\r\n <div class=\" position-relative\">\r\n <div class=\"d-flex align-items-centre msgprofile justify-content-centre\">\r\n <img class=\"\" src='https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Mnx8c3RvcmV8ZW58MHx8MHx8fDA%3D'>\r\n </div>\r\n <input class=\"bg-primary position-absolute bottom-0 end-0 w-10px h-10px rounded-4 border border-none\" type=\"fill\">\r\n </div>\r\n <div class=\"d-grid mx-3\">\r\n <span class=\"headingtext fw-bold-600\"> {{obj?.spocName ?obj?.spocName:'--'}} </span>\r\n <span class=\"sub-header fw-bold-400\">{{obj?.spocEmail ? obj?.spocEmail:'--'}}</span>\r\n </div>\r\n </div>\r\n <div class=\"contact fw-semibold\">\r\n <span>{{obj?.spocNumber ? obj?.spocNumber:'--'}}</span>\r\n </div>\r\n <div class=\"d-flex justify-content-between\">\r\n <span (click)=\"editOpen(obj)\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_4023_60762)\">\r\n <path d=\"M9.16602 3.33332H3.33268C2.89065 3.33332 2.46673 3.50891 2.15417 3.82147C1.84161 4.13403 1.66602 4.55796 1.66602 4.99999V16.6667C1.66602 17.1087 1.84161 17.5326 2.15417 17.8452C2.46673 18.1577 2.89065 18.3333 3.33268 18.3333H14.9993C15.4414 18.3333 15.8653 18.1577 16.1779 17.8452C16.4904 17.5326 16.666 17.1087 16.666 16.6667V10.8333M15.416 2.08332C15.7475 1.7518 16.1972 1.56555 16.666 1.56555C17.1349 1.56555 17.5845 1.7518 17.916 2.08332C18.2475 2.41484 18.4338 2.86448 18.4338 3.33332C18.4338 3.80216 18.2475 4.2518 17.916 4.58332L9.99935 12.5L6.66602 13.3333L7.49935 9.99999L15.416 2.08332Z\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_4023_60762\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <div (click)=\"deleteContact(obj)\" class=\"ms-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M2.5 5.00002H4.16667M4.16667 5.00002H17.5M4.16667 5.00002V16.6667C4.16667 17.1087 4.34226 17.5326 4.65482 17.8452C4.96738 18.1578 5.39131 18.3334 5.83333 18.3334H14.1667C14.6087 18.3334 15.0326 18.1578 15.3452 17.8452C15.6577 17.5326 15.8333 17.1087 15.8333 16.6667V5.00002H4.16667ZM6.66667 5.00002V3.33335C6.66667 2.89133 6.84226 2.4674 7.15482 2.15484C7.46738 1.84228 7.89131 1.66669 8.33333 1.66669H11.6667C12.1087 1.66669 12.5326 1.84228 12.8452 2.15484C13.1577 2.4674 13.3333 2.89133 13.3333 3.33335V5.00002\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body pt-0\">\r\n <button (click)=\"accept()\" class=\"btn btn-default btn-primary mt-5 w-100\">\r\n Okay\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #confirmationModal let-modal>\r\n <div class=\"p-8\">\r\n <div class=\"\">\r\n <img src=\"./assets/tango/Images/dangerIcon.png\">\r\n </div>\r\n <div class=\" mt-5\">\r\n <span class=\"header fw-bold-600\">Are you ready sure?</span>\r\n <div class=\"mt-3 sub-header fw-bold-400\">Are you sure you want to delete the user globally?</div>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-outline w-50 me-2\" (click)=\"modal.dismiss()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-danger w-50 ms-2\" (click)=\"closeModal(); modal.close()\">Delete</button>\r\n </div>\r\n </div>\r\n </ng-template>", styles: [".header{color:var(--Gray-900, #101828)!important;font-size:18px!important;line-height:28px!important}.sub-header{color:var(--Gray-500, #667085)!important;font-size:14px!important;line-height:20px}.contact{color:var(--Gray-500, #667085)!important;font-size:12px!important;line-height:18px}.fw-bold-400{font-weight:400!important}.fw-bold-600{font-weight:600!important}.msgprofile{width:40px!important;height:40px!important;border-radius:200px;overflow:hidden}.swal2-popup.swal2-toast.swal2-show,.swal2-toast{background-color:#0ff!important;border-left:2px solid red!important}.mh-60vh{max-height:60vh!important;overflow:auto!important}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
111
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ContactDetailsComponent, deps: [{ token: i1.NgbModal }, { token: i1.NgbActiveModal }, { token: i2.TicketsService }, { token: i0.ChangeDetectorRef }, { token: i3.ToastService }, { token: i4.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
112
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: ContactDetailsComponent, selector: "lib-contact-details", inputs: { value: "value" }, viewQueries: [{ propertyName: "confirmationModal", first: true, predicate: ["confirmationModal"], descendants: true }], ngImport: i0, template: "<div class=\"card p-0\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label header mb-2\">{{value?.storeName ? value?.storeName:'--'}} Contacts</span>\r\n <span class=\"sub-header mb-2\">{{spocDetials?.length ? spocDetials?.length : 0 }} contacts </span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\"> \r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isEdit\" type=\"button\" (click)=\"addContact()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val py-2 px-10\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M9.99935 4.16669V15.8334M4.16602 10H15.8327\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">Add</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body pt-0 mh-60vh\">\r\n <div class=\"d-flex justify-content-between align-items-center pt-5\" *ngFor=\"let obj of spocDetials;let i=index;\">\r\n <div class=\"d-flex\">\r\n <div class=\" position-relative\">\r\n <div class=\"d-flex align-items-centre msgprofile justify-content-centre\">\r\n <img class=\"\" src=\"./assets/tango/Images/userProfile.svg\">\r\n </div>\r\n <!-- <input class=\"bg-primary position-absolute bottom-0 end-0 w-10px h-10px rounded-4 border border-none\" type=\"fill\"> -->\r\n </div>\r\n <div class=\"d-grid mx-3\">\r\n <span class=\"headingtext fw-bold-600\"> {{obj?.spocName ?obj?.spocName:'--'}} </span>\r\n <span class=\"sub-header ellipse fw-bold-400\">{{obj?.spocEmail ? obj?.spocEmail:'--'}}</span>\r\n </div>\r\n </div>\r\n <div class=\"contact fw-semibold\">\r\n <span>{{obj?.spocNumber ? obj?.spocNumber:'--'}}</span>\r\n </div>\r\n <div class=\"d-flex justify-content-between\">\r\n <span *ngIf=\"(gs.userAccess | async)?.manage_tickets_isEdit\" (click)=\"editOpen(obj)\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_4023_60762)\">\r\n <path d=\"M9.16602 3.33332H3.33268C2.89065 3.33332 2.46673 3.50891 2.15417 3.82147C1.84161 4.13403 1.66602 4.55796 1.66602 4.99999V16.6667C1.66602 17.1087 1.84161 17.5326 2.15417 17.8452C2.46673 18.1577 2.89065 18.3333 3.33268 18.3333H14.9993C15.4414 18.3333 15.8653 18.1577 16.1779 17.8452C16.4904 17.5326 16.666 17.1087 16.666 16.6667V10.8333M15.416 2.08332C15.7475 1.7518 16.1972 1.56555 16.666 1.56555C17.1349 1.56555 17.5845 1.7518 17.916 2.08332C18.2475 2.41484 18.4338 2.86448 18.4338 3.33332C18.4338 3.80216 18.2475 4.2518 17.916 4.58332L9.99935 12.5L6.66602 13.3333L7.49935 9.99999L15.416 2.08332Z\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_4023_60762\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_tickets_isDelete\" (click)=\"deleteContact(obj)\" class=\"ms-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M2.5 5.00002H4.16667M4.16667 5.00002H17.5M4.16667 5.00002V16.6667C4.16667 17.1087 4.34226 17.5326 4.65482 17.8452C4.96738 18.1578 5.39131 18.3334 5.83333 18.3334H14.1667C14.6087 18.3334 15.0326 18.1578 15.3452 17.8452C15.6577 17.5326 15.8333 17.1087 15.8333 16.6667V5.00002H4.16667ZM6.66667 5.00002V3.33335C6.66667 2.89133 6.84226 2.4674 7.15482 2.15484C7.46738 1.84228 7.89131 1.66669 8.33333 1.66669H11.6667C12.1087 1.66669 12.5326 1.84228 12.8452 2.15484C13.1577 2.4674 13.3333 2.89133 13.3333 3.33335V5.00002\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body pt-0\">\r\n <button (click)=\"accept()\" class=\"btn btn-default btn-primary mt-5 w-100\">\r\n Okay\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #confirmationModal let-modal>\r\n <div class=\"p-8\">\r\n <div class=\"\">\r\n <img src=\"./assets/tango/Images/dangerIcon.png\">\r\n </div>\r\n <div class=\" mt-5\">\r\n <span class=\"header fw-bold-600\">Are you ready sure?</span>\r\n <div class=\"mt-3 sub-header fw-bold-400\">Are you sure you want to delete the user globally?</div>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-outline w-50 me-2\" (click)=\"modal.dismiss()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-danger w-50 ms-2\" (click)=\"closeModal(); modal.close()\">Delete</button>\r\n </div>\r\n </div>\r\n </ng-template>", styles: [".header{color:var(--Gray-900, #101828)!important;font-size:18px!important;line-height:28px!important}.sub-header{color:var(--Gray-500, #667085)!important;font-size:14px!important;line-height:20px}.contact{color:var(--Gray-500, #667085)!important;font-size:12px!important;line-height:18px}.fw-bold-400{font-weight:400!important}.fw-bold-600{font-weight:600!important}.msgprofile{width:40px!important;height:40px!important;border-radius:200px;overflow:hidden}.swal2-popup.swal2-toast.swal2-show,.swal2-toast{background-color:#0ff!important;border-left:2px solid red!important}.mh-60vh{max-height:60vh!important;overflow:auto!important}.ellipse{width:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] });
99
113
  }
100
114
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ContactDetailsComponent, decorators: [{
101
115
  type: Component,
102
- args: [{ selector: 'lib-contact-details', template: "<div class=\"card p-0\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label header mb-2\">{{value?.storeName ? value?.storeName:'--'}} Contacts</span>\r\n <span class=\"sub-header mb-2\">{{spocDetials?.length ? spocDetials?.length : 0 }} contacts </span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\"> \r\n <button type=\"button\" (click)=\"addContact()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val py-2 px-10\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M9.99935 4.16669V15.8334M4.16602 10H15.8327\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">Add</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body pt-0 mh-60vh\">\r\n <div class=\"d-flex justify-content-between align-items-center pt-5\" *ngFor=\"let obj of spocDetials;let i=index;\">\r\n <div class=\"d-flex\">\r\n <div class=\" position-relative\">\r\n <div class=\"d-flex align-items-centre msgprofile justify-content-centre\">\r\n <img class=\"\" src='https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Mnx8c3RvcmV8ZW58MHx8MHx8fDA%3D'>\r\n </div>\r\n <input class=\"bg-primary position-absolute bottom-0 end-0 w-10px h-10px rounded-4 border border-none\" type=\"fill\">\r\n </div>\r\n <div class=\"d-grid mx-3\">\r\n <span class=\"headingtext fw-bold-600\"> {{obj?.spocName ?obj?.spocName:'--'}} </span>\r\n <span class=\"sub-header fw-bold-400\">{{obj?.spocEmail ? obj?.spocEmail:'--'}}</span>\r\n </div>\r\n </div>\r\n <div class=\"contact fw-semibold\">\r\n <span>{{obj?.spocNumber ? obj?.spocNumber:'--'}}</span>\r\n </div>\r\n <div class=\"d-flex justify-content-between\">\r\n <span (click)=\"editOpen(obj)\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_4023_60762)\">\r\n <path d=\"M9.16602 3.33332H3.33268C2.89065 3.33332 2.46673 3.50891 2.15417 3.82147C1.84161 4.13403 1.66602 4.55796 1.66602 4.99999V16.6667C1.66602 17.1087 1.84161 17.5326 2.15417 17.8452C2.46673 18.1577 2.89065 18.3333 3.33268 18.3333H14.9993C15.4414 18.3333 15.8653 18.1577 16.1779 17.8452C16.4904 17.5326 16.666 17.1087 16.666 16.6667V10.8333M15.416 2.08332C15.7475 1.7518 16.1972 1.56555 16.666 1.56555C17.1349 1.56555 17.5845 1.7518 17.916 2.08332C18.2475 2.41484 18.4338 2.86448 18.4338 3.33332C18.4338 3.80216 18.2475 4.2518 17.916 4.58332L9.99935 12.5L6.66602 13.3333L7.49935 9.99999L15.416 2.08332Z\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_4023_60762\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <div (click)=\"deleteContact(obj)\" class=\"ms-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M2.5 5.00002H4.16667M4.16667 5.00002H17.5M4.16667 5.00002V16.6667C4.16667 17.1087 4.34226 17.5326 4.65482 17.8452C4.96738 18.1578 5.39131 18.3334 5.83333 18.3334H14.1667C14.6087 18.3334 15.0326 18.1578 15.3452 17.8452C15.6577 17.5326 15.8333 17.1087 15.8333 16.6667V5.00002H4.16667ZM6.66667 5.00002V3.33335C6.66667 2.89133 6.84226 2.4674 7.15482 2.15484C7.46738 1.84228 7.89131 1.66669 8.33333 1.66669H11.6667C12.1087 1.66669 12.5326 1.84228 12.8452 2.15484C13.1577 2.4674 13.3333 2.89133 13.3333 3.33335V5.00002\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body pt-0\">\r\n <button (click)=\"accept()\" class=\"btn btn-default btn-primary mt-5 w-100\">\r\n Okay\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #confirmationModal let-modal>\r\n <div class=\"p-8\">\r\n <div class=\"\">\r\n <img src=\"./assets/tango/Images/dangerIcon.png\">\r\n </div>\r\n <div class=\" mt-5\">\r\n <span class=\"header fw-bold-600\">Are you ready sure?</span>\r\n <div class=\"mt-3 sub-header fw-bold-400\">Are you sure you want to delete the user globally?</div>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-outline w-50 me-2\" (click)=\"modal.dismiss()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-danger w-50 ms-2\" (click)=\"closeModal(); modal.close()\">Delete</button>\r\n </div>\r\n </div>\r\n </ng-template>", styles: [".header{color:var(--Gray-900, #101828)!important;font-size:18px!important;line-height:28px!important}.sub-header{color:var(--Gray-500, #667085)!important;font-size:14px!important;line-height:20px}.contact{color:var(--Gray-500, #667085)!important;font-size:12px!important;line-height:18px}.fw-bold-400{font-weight:400!important}.fw-bold-600{font-weight:600!important}.msgprofile{width:40px!important;height:40px!important;border-radius:200px;overflow:hidden}.swal2-popup.swal2-toast.swal2-show,.swal2-toast{background-color:#0ff!important;border-left:2px solid red!important}.mh-60vh{max-height:60vh!important;overflow:auto!important}\n"] }]
103
- }], ctorParameters: () => [{ type: i1.NgbModal }, { type: i1.NgbActiveModal }, { type: i2.TicketsService }, { type: i0.ChangeDetectorRef }, { type: i3.ToastService }], propDecorators: { confirmationModal: [{
116
+ args: [{ selector: 'lib-contact-details', template: "<div class=\"card p-0\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label header mb-2\">{{value?.storeName ? value?.storeName:'--'}} Contacts</span>\r\n <span class=\"sub-header mb-2\">{{spocDetials?.length ? spocDetials?.length : 0 }} contacts </span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\"> \r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isEdit\" type=\"button\" (click)=\"addContact()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val py-2 px-10\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M9.99935 4.16669V15.8334M4.16602 10H15.8327\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">Add</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body pt-0 mh-60vh\">\r\n <div class=\"d-flex justify-content-between align-items-center pt-5\" *ngFor=\"let obj of spocDetials;let i=index;\">\r\n <div class=\"d-flex\">\r\n <div class=\" position-relative\">\r\n <div class=\"d-flex align-items-centre msgprofile justify-content-centre\">\r\n <img class=\"\" src=\"./assets/tango/Images/userProfile.svg\">\r\n </div>\r\n <!-- <input class=\"bg-primary position-absolute bottom-0 end-0 w-10px h-10px rounded-4 border border-none\" type=\"fill\"> -->\r\n </div>\r\n <div class=\"d-grid mx-3\">\r\n <span class=\"headingtext fw-bold-600\"> {{obj?.spocName ?obj?.spocName:'--'}} </span>\r\n <span class=\"sub-header ellipse fw-bold-400\">{{obj?.spocEmail ? obj?.spocEmail:'--'}}</span>\r\n </div>\r\n </div>\r\n <div class=\"contact fw-semibold\">\r\n <span>{{obj?.spocNumber ? obj?.spocNumber:'--'}}</span>\r\n </div>\r\n <div class=\"d-flex justify-content-between\">\r\n <span *ngIf=\"(gs.userAccess | async)?.manage_tickets_isEdit\" (click)=\"editOpen(obj)\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_4023_60762)\">\r\n <path d=\"M9.16602 3.33332H3.33268C2.89065 3.33332 2.46673 3.50891 2.15417 3.82147C1.84161 4.13403 1.66602 4.55796 1.66602 4.99999V16.6667C1.66602 17.1087 1.84161 17.5326 2.15417 17.8452C2.46673 18.1577 2.89065 18.3333 3.33268 18.3333H14.9993C15.4414 18.3333 15.8653 18.1577 16.1779 17.8452C16.4904 17.5326 16.666 17.1087 16.666 16.6667V10.8333M15.416 2.08332C15.7475 1.7518 16.1972 1.56555 16.666 1.56555C17.1349 1.56555 17.5845 1.7518 17.916 2.08332C18.2475 2.41484 18.4338 2.86448 18.4338 3.33332C18.4338 3.80216 18.2475 4.2518 17.916 4.58332L9.99935 12.5L6.66602 13.3333L7.49935 9.99999L15.416 2.08332Z\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_4023_60762\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_tickets_isDelete\" (click)=\"deleteContact(obj)\" class=\"ms-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M2.5 5.00002H4.16667M4.16667 5.00002H17.5M4.16667 5.00002V16.6667C4.16667 17.1087 4.34226 17.5326 4.65482 17.8452C4.96738 18.1578 5.39131 18.3334 5.83333 18.3334H14.1667C14.6087 18.3334 15.0326 18.1578 15.3452 17.8452C15.6577 17.5326 15.8333 17.1087 15.8333 16.6667V5.00002H4.16667ZM6.66667 5.00002V3.33335C6.66667 2.89133 6.84226 2.4674 7.15482 2.15484C7.46738 1.84228 7.89131 1.66669 8.33333 1.66669H11.6667C12.1087 1.66669 12.5326 1.84228 12.8452 2.15484C13.1577 2.4674 13.3333 2.89133 13.3333 3.33335V5.00002\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body pt-0\">\r\n <button (click)=\"accept()\" class=\"btn btn-default btn-primary mt-5 w-100\">\r\n Okay\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #confirmationModal let-modal>\r\n <div class=\"p-8\">\r\n <div class=\"\">\r\n <img src=\"./assets/tango/Images/dangerIcon.png\">\r\n </div>\r\n <div class=\" mt-5\">\r\n <span class=\"header fw-bold-600\">Are you ready sure?</span>\r\n <div class=\"mt-3 sub-header fw-bold-400\">Are you sure you want to delete the user globally?</div>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-outline w-50 me-2\" (click)=\"modal.dismiss()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-danger w-50 ms-2\" (click)=\"closeModal(); modal.close()\">Delete</button>\r\n </div>\r\n </div>\r\n </ng-template>", styles: [".header{color:var(--Gray-900, #101828)!important;font-size:18px!important;line-height:28px!important}.sub-header{color:var(--Gray-500, #667085)!important;font-size:14px!important;line-height:20px}.contact{color:var(--Gray-500, #667085)!important;font-size:12px!important;line-height:18px}.fw-bold-400{font-weight:400!important}.fw-bold-600{font-weight:600!important}.msgprofile{width:40px!important;height:40px!important;border-radius:200px;overflow:hidden}.swal2-popup.swal2-toast.swal2-show,.swal2-toast{background-color:#0ff!important;border-left:2px solid red!important}.mh-60vh{max-height:60vh!important;overflow:auto!important}.ellipse{width:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
117
+ }], ctorParameters: () => [{ type: i1.NgbModal }, { type: i1.NgbActiveModal }, { type: i2.TicketsService }, { type: i0.ChangeDetectorRef }, { type: i3.ToastService }, { type: i4.GlobalStateService }], propDecorators: { confirmationModal: [{
104
118
  type: ViewChild,
105
119
  args: ['confirmationModal']
106
120
  }], value: [{
107
121
  type: Input
108
122
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9jb250YWN0LWRldGFpbHMvY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9jb250YWN0LWRldGFpbHMvY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFVLFNBQVMsRUFBQyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7OztBQVU5RSxNQUFNLE9BQU8sdUJBQXVCO0lBU2hCO0lBQStCO0lBQ3pDO0lBQStCO0lBQTZCO0lBUnBDLGlCQUFpQixDQUFNO0lBQ3ZELFFBQVEsQ0FBMEI7SUFDbEMsV0FBVyxDQUFNO0lBQ2pCLEtBQUssR0FBRSxFQUFFLENBQUM7SUFDVixNQUFNLEdBQUMsQ0FBQyxDQUFDO0lBQ0EsS0FBSyxDQUFLO0lBRXJCLFlBQW9CLFlBQXNCLEVBQVMsV0FBMkIsRUFDcEUsT0FBc0IsRUFBUyxFQUFvQixFQUFTLEtBQWtCO1FBRHBFLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQ3BFLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFBUyxPQUFFLEdBQUYsRUFBRSxDQUFrQjtRQUFTLFVBQUssR0FBTCxLQUFLLENBQWE7SUFFeEYsQ0FBQztJQUNELFFBQVE7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDL0IsSUFBSSxDQUFDLFVB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QyxJQUFJLElBQUksR0FBRyxFQUFDO3dCQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7cUJBQ3hDO3lCQUFJO3dCQUNILElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtxQkFDdEM7Z0JBQ0gsQ0FBQztnQkFDRCxLQUFLLEVBQUMsQ0FBQyxHQUFHLEVBQUMsRUFBRTtvQkFDWCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQ3JDLENBQUM7YUFDRixDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFBO0lBRW5FLENBQUM7dUdBdkZZLHVCQUF1QjsyRkFBdkIsdUJBQXVCLCtNQ1pwQyxnaUxBd0VnQjs7MkZENURILHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7a01BTUMsaUJBQWlCO3NCQUFoRCxTQUFTO3VCQUFDLG1CQUFtQjtnQkFLckIsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwsTmdiQWN0aXZlTW9kYWwsTmdiTW9kYWxSZWYgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IEVkaXREZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi4vZWRpdC1kZXRhaWxzL2VkaXQtZGV0YWlscy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUaWNrZXRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpY2tldC1pbmZyYS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY29udGFjdC1kZXRhaWxzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udGFjdERldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBAVmlld0NoaWxkKCdjb25maXJtYXRpb25Nb2RhbCcpIGNvbmZpcm1hdGlvbk1vZGFsOiBhbnk7XHJcbiAgbW9kYWxSZWY6IE5nYk1vZGFsUmVmIHwgdW5kZWZpbmVkO1xyXG4gIHNwb2NEZXRpYWxzOiBhbnk7XHJcbiAgbGltaXQgPTEwO1xyXG4gIG9mZnNldD0xO1xyXG4gIEBJbnB1dCgpIHZhbHVlOmFueTtcclxuXHJcbmNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxwcml2YXRlIGFjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCxcclxuICBwcml2YXRlIHNlcnZpY2U6VGlja2V0c1NlcnZpY2UscHJpdmF0ZSBjZDpDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIHRvYXN0OlRvYXN0U2VydmljZSl7XHJcblxyXG59XHJcbm5nT25Jbml0KCk6IHZvaWQge1xyXG4gIGNvbnNvbGUubG9nKCd2YWx1ZScsdGhpcy52YWx1ZSlcclxuICB0aGlzLmdldFNwb2NMb2coKTtcclxufVxyXG5nZXRTcG9jTG9nKCkge1xyXG4gIGxldCBvYmogPXtcclxuICAgICAgXCJzdG9yZUlkXCI6IFt0aGlzLnZhbHVlLnN0b3JlSWRdLFxyXG4gICAgICBcImNsaWVudElkXCI6IHRoaXMudmFsdWUuY2xpZW50SWQsXHJcbiAgICAgIFwibGltaXRcIjogdGhpcy5saW1pdCxcclxuICAgICAgXCJvZmZzZXRcIjogdGhpcy5vZmZzZXRcclxuICB9XHJcbiAgdGhpcy5zZXJ2aWNlLmdldFNwb2NMb2dEYXRhKG9iaikuc3Vic2NyaWJlKHtcclxuICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc3BvY0RldGlhbHMgPSByZXM/LmRhdGE/LmRhdGE7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3RoaXMuc3BvY0RldGlhbHMnLHRoaXMuc3BvY0RldGlhbHMpXHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9LFxyXG4gICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG5cclxuICAgIH0sXHJcbiAgfSk7XHJcbn1cclxuYWNjZXB0KCl7XHJcbiAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgpO1xyXG59XHJcblxyXG5hZGRDb250YWN0KCl7XHJcbiAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEVkaXREZXRhaWxzQ29tcG9uZW50LHtcclxuICAgIGNlbnRlcmVkOnRydWUsc2l6ZTonbWQnXHJcbiAgfSlcclxuICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcblxyXG5lZGl0T3BlbihkYXRhOmFueSl7XHJcbiAgbGV0IG9iaiA9IHtcclxuICAgIHNwb2NJZDpkYXRhLnNwb2NJZCxcclxuICAgIGlkOmRhdGEuc3RvcmVJZCxcclxuICAgIG5hbWU6IGRhdGEuc3BvY05hbWUsXHJcbiAgICBlbWFpbDogZGF0YS5zcG9jRW1haWwsXHJcbiAgICBjb250YWN0OmRhdGEuc3BvY051bWJlcixcclxuICAgIGNvdW50cnk6ZGF0YS5zcG9jQ291bnRyeVxyXG4gIH1cclxuICBjb25zb2xlLmxvZygnb2JqJyxvYmopXHJcbiAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEVkaXREZXRhaWxzQ29tcG9uZW50LHsgY2VudGVyZWQ6dHJ1ZSxzaXplOidtZCd9KTtcclxuICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gb2JqO1xyXG4gIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHt9KTtcclxufVxyXG5cclxuZGVsZXRlQ29udGFjdChkYXRhOmFueSl7XHJcbiAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMuY29uZmlybWF0aW9uTW9kYWwsIHsgY2VudGVyZWQ6IHRydWUgfSk7XHJcbiAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmRlbGV0ZVNwb2MoZGF0YS5zdG9yZUlkLHtzcG9jSWQgOiBkYXRhLnNwb2NJZH0pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6KHJlczphbnkpPT57XHJcbiAgICAgICAgaWYocmVzICYmIHJlcy5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChyZXMubWVzc2FnZSlcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChyZXMubWVzc2FnZSlcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOihlcnIpPT4ge1xyXG4gICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnIuRXJyb3IpXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG4gIH0pO1xyXG59XHJcbmNsb3NlTW9kYWwoKXtcclxuICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCk7XHJcbiAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdDb250YWN0IGhhcyBiZWVuIERlbGV0ZWQgU3VjY2Vzc2Z1bGx5JylcclxuXHJcbn1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmQgcC0wXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtM1wiPlxyXG4gICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJkLWxhYmVsIGhlYWRlciBtYi0yXCI+e3t2YWx1ZT8uc3RvcmVOYW1lID8gdmFsdWU/LnN0b3JlTmFtZTonLS0nfX0gQ29udGFjdHM8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLWhlYWRlciBtYi0yXCI+e3tzcG9jRGV0aWFscz8ubGVuZ3RoID8gc3BvY0RldGlhbHM/Lmxlbmd0aCA6IDAgfX0gY29udGFjdHMgPC9zcGFuPlxyXG4gICAgICAgIDwvaDM+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+ICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZENvbnRhY3QoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IG14LTIgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbCBweS0yIHB4LTEwXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTkuOTk5MzUgNC4xNjY2OVYxNS44MzM0TTQuMTY2MDIgMTBIMTUuODMyN1wiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PHNwYW4gY2xhc3M9XCJtcy0yXCI+QWRkPC9zcGFuPiA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwdC0wIG1oLTYwdmhcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBwdC01XCIgKm5nRm9yPVwibGV0IG9iaiBvZiBzcG9jRGV0aWFscztsZXQgaT1pbmRleDtcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudHJlIG1zZ3Byb2ZpbGUganVzdGlmeS1jb250ZW50LWNlbnRyZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiXCIgc3JjPSdodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTQ0MTk4NjMwMDkxNy02NDY3NGJkNjAwZDg/dz01MDAmYXV0bz1mb3JtYXQmZml0PWNyb3AmcT02MCZpeGxpYj1yYi00LjAuMyZpeGlkPU0zd3hNakEzZkRCOE1IeHpaV0Z5WTJoOE1ueDhjM1J2Y21WOFpXNThNSHg4TUh4OGZEQSUzRCc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiYmctcHJpbWFyeSBwb3NpdGlvbi1hYnNvbHV0ZSBib3R0b20tMCBlbmQtMCB3LTEwcHggaC0xMHB4IHJvdW5kZWQtNCBib3JkZXIgYm9yZGVyLW5vbmVcIiB0eXBlPVwiZmlsbFwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1ncmlkIG14LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRpbmd0ZXh0IGZ3LWJvbGQtNjAwXCI+IHt7b2JqPy5zcG9jTmFtZSA/b2JqPy5zcG9jTmFtZTonLS0nfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLWhlYWRlciBmdy1ib2xkLTQwMFwiPnt7b2JqPy5zcG9jRW1haWwgPyBvYmo/LnNwb2NFbWFpbDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWN0IGZ3LXNlbWlib2xkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57e29iaj8uc3BvY051bWJlciA/IG9iaj8uc3BvY051bWJlcjonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwiZWRpdE9wZW4ob2JqKVwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfNDAyM182MDc2MilcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTkuMTY2MDIgMy4zMzMzMkgzLjMzMjY4QzIuODkwNjUgMy4zMzMzMiAyLjQ2NjczIDMuNTA4OTEgMi4xNTQxNyAzLjgyMTQ3QzEuODQxNjEgNC4xMzQwMyAxLjY2NjAyIDQuNTU3OTYgMS42NjYwMiA0Ljk5OTk5VjE2LjY2NjdDMS42NjYwMiAxNy4xMDg3IDEuODQxNjEgMTcuNTMyNiAyLjE1NDE3IDE3Ljg0NTJDMi40NjY3MyAxOC4xNTc3IDIuODkwNjUgMTguMzMzMyAzLjMzMjY4IDE4LjMzMzNIMTQuOTk5M0MxNS40NDE0IDE4LjMzMzMgMTUuODY1MyAxOC4xNTc3IDE2LjE3NzkgMTcuODQ1MkMxNi40OTA0IDE3LjUzMjYgMTYuNjY2IDE3LjEwODcgMTYuNjY2IDE2LjY2NjdWMTAuODMzM00xNS40MTYgMi4wODMzMkMxNS43NDc1IDEuNzUxOCAxNi4xOTcyIDEuNTY1NTUgMTYuNjY2IDEuNTY1NTVDMTcuMTM0OSAxLjU2NTU1IDE3LjU4NDUgMS43NTE4IDE3LjkxNiAyLjA4MzMyQzE4LjI0NzUgMi40MTQ4NCAxOC40MzM4IDIuODY0NDggMTguNDMzOCAzLjMzMzMyQzE4LjQzMzggMy44MDIxNiAxOC4yNDc1IDQuMjUxOCAxNy45MTYgNC41ODMzMkw5Ljk5OTM1IDEyLjVMNi42NjYwMiAxMy4zMzMzTDcuNDk5MzUgOS45OTk5OUwxNS40MTYgMi4wODMzMlpcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfNDAyM182MDc2MlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJkZWxldGVDb250YWN0KG9iailcIiBjbGFzcz1cIm1zLTVcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIuNSA1LjAwMDAySDQuMTY2NjdNNC4xNjY2NyA1LjAwMDAySDE3LjVNNC4xNjY2NyA1LjAwMDAyVjE2LjY2NjdDNC4xNjY2NyAxNy4xMDg3IDQuMzQyMjYgMTcuNTMyNiA0LjY1NDgyIDE3Ljg0NTJDNC45NjczOCAxOC4xNTc4IDUuMzkxMzEgMTguMzMzNCA1LjgzMzMzIDE4LjMzMzRIMTQuMTY2N0MxNC42MDg3IDE4LjMzMzQgMTUuMDMyNiAxOC4xNTc4IDE1LjM0NTIgMTcuODQ1MkMxNS42NTc3IDE3LjUzMjYgMTUuODMzMyAxNy4xMDg3IDE1LjgzMzMgMTYuNjY2N1Y1LjAwMDAySDQuMTY2NjdaTTYuNjY2NjcgNS4wMDAwMlYzLjMzMzM1QzYuNjY2NjcgMi44OTEzMyA2Ljg0MjI2IDIuNDY3NCA3LjE1NDgyIDIuMTU0ODRDNy40NjczOCAxLjg0MjI4IDcuODkxMzEgMS42NjY2OSA4LjMzMzMzIDEuNjY2NjlIMTEuNjY2N0MxMi4xMDg3IDEuNjY2NjkgMTIuNTMyNiAxLjg0MjI4IDEyLjg0NTIgMi4xNTQ4NEMxMy4xNTc3IDIuNDY3NCAxMy4zMzMzIDIuODkxMzMgMTMuMzMzMyAzLjMzMzM1VjUuMDAwMDJcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHQtMFwiPlxyXG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFjY2VwdCgpXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXByaW1hcnkgbXQtNSB3LTEwMFwiPlxyXG4gICAgICAgICAgICBPa2F5XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbmZpcm1hdGlvbk1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJwLThcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy9kYW5nZXJJY29uLnBuZ1wiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCIgbXQtNVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlciBmdy1ib2xkLTYwMFwiPkFyZSB5b3UgcmVhZHkgc3VyZT88L3NwYW4+XHJcbiAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTMgc3ViLWhlYWRlciBmdy1ib2xkLTQwMFwiPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIHVzZXIgZ2xvYmFsbHk/PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0xMFwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLW91dGxpbmUgdy01MCBtZS0yXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRhbmdlciB3LTUwIG1zLTJcIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpOyBtb2RhbC5jbG9zZSgpXCI+RGVsZXRlPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPiJdfQ==
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9jb250YWN0LWRldGFpbHMvY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9jb250YWN0LWRldGFpbHMvY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFVLFNBQVMsRUFBQyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7QUFXOUUsTUFBTSxPQUFPLHVCQUF1QjtJQVNoQjtJQUErQjtJQUN6QztJQUErQjtJQUE2QjtJQUEwQjtJQVI5RCxpQkFBaUIsQ0FBTTtJQUN2RCxRQUFRLENBQTBCO0lBQ2xDLFdBQVcsQ0FBTTtJQUNqQixLQUFLLEdBQUUsRUFBRSxDQUFDO0lBQ1YsTUFBTSxHQUFDLENBQUMsQ0FBQztJQUNBLEtBQUssQ0FBSztJQUVyQixZQUFvQixZQUFzQixFQUFTLFdBQTJCLEVBQ3BFLE9BQXNCLEVBQVMsRUFBb0IsRUFBUyxLQUFrQixFQUFRLEVBQXFCO1FBRGpHLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQ3BFLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFBUyxPQUFFLEdBQUYsRUFBRSxDQUFrQjtRQUFTLFVBQUssR0FBTCxLQUFLLENBQWE7UUFBUSxPQUFFLEdBQUYsRUFBRSxDQUFtQjtJQUVySCxDQUFDO0lBQ0QsUUFBUTtRQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFD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UmVmLCBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsLE5nYkFjdGl2ZU1vZGFsLE5nYk1vZGFsUmVmIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBFZGl0RGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4uL2VkaXQtZGV0YWlscy9lZGl0LWRldGFpbHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGlja2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQtaW5mcmEuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jb250YWN0LWRldGFpbHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250YWN0LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jb250YWN0LWRldGFpbHMuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb250YWN0RGV0YWlsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NvbmZpcm1hdGlvbk1vZGFsJykgY29uZmlybWF0aW9uTW9kYWw6IGFueTtcclxuICBtb2RhbFJlZjogTmdiTW9kYWxSZWYgfCB1bmRlZmluZWQ7XHJcbiAgc3BvY0RldGlhbHM6IGFueTtcclxuICBsaW1pdCA9MTA7XHJcbiAgb2Zmc2V0PTE7XHJcbiAgQElucHV0KCkgdmFsdWU6YW55O1xyXG5cclxuY29uc3RydWN0b3IocHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLHByaXZhdGUgYWN0aXZlTW9kYWw6IE5nYkFjdGl2ZU1vZGFsLFxyXG4gIHByaXZhdGUgc2VydmljZTpUaWNrZXRzU2VydmljZSxwcml2YXRlIGNkOkNoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgdG9hc3Q6VG9hc3RTZXJ2aWNlLHB1YmxpYyBnczpHbG9iYWxTdGF0ZVNlcnZpY2Upe1xyXG5cclxufVxyXG5uZ09uSW5pdCgpOiB2b2lkIHtcclxuICBjb25zb2xlLmxvZygndmFsdWUnLHRoaXMudmFsdWUpXHJcbiAgdGhpcy5nZXRTcG9jTG9nKCk7XHJcbn1cclxuZ2V0U3BvY0xvZygpIHtcclxuICBsZXQgb2JqID17XHJcbiAgICAgIFwic3RvcmVJZFwiOiBbdGhpcy52YWx1ZS5zdG9yZUlkXSxcclxuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLnZhbHVlLmNsaWVudElkLFxyXG4gICAgICBcImxpbWl0XCI6IHRoaXMubGltaXQsXHJcbiAgICAgIFwib2Zmc2V0XCI6IHRoaXMub2Zmc2V0XHJcbiAgfVxyXG4gIHRoaXMuc2VydmljZS5nZXRTcG9jTG9nRGF0YShvYmopLnN1YnNjcmliZSh7XHJcbiAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnNwb2NEZXRpYWxzID0gcmVzPy5kYXRhPy5kYXRhO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnNwb2NEZXRpYWxzJyx0aGlzLnNwb2NEZXRpYWxzKVxyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSxcclxuICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuXHJcbiAgICB9LFxyXG4gIH0pO1xyXG59XHJcbmFjY2VwdCgpe1xyXG4gIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoKTtcclxufVxyXG5cclxuYWRkQ29udGFjdCgpe1xyXG4gIGxldCBvYmogPSAge1xyXG4gICAgZWRpdCA6IGZhbHNlLFxyXG4gICAgaWQgOiB0aGlzLnZhbHVlLnN0b3JlSWRcclxuICB9XHJcbiAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEVkaXREZXRhaWxzQ29tcG9uZW50LHtcclxuICAgIGNlbnRlcmVkOnRydWUsc2l6ZTonbWQnXHJcbiAgfSlcclxuICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gb2JqO1xyXG4gIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgaWYocmVzdWx0ID09ICdjbG9zZScpe1xyXG4gICAgICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5cclxuZWRpdE9wZW4oZGF0YTphbnkpe1xyXG4gIGxldCBvYmogPSB7XHJcbiAgICBlZGl0IDogdHJ1ZSxcclxuICAgIHNwb2NJZDpkYXRhLnNwb2NJZCxcclxuICAgIGlkOmRhdGEuc3RvcmVJZCxcclxuICAgIG5hbWU6IGRhdGEuc3BvY05hbWUsXHJcbiAgICBlbWFpbDogZGF0YS5zcG9jRW1haWwsXHJcbiAgICBjb250YWN0OmRhdGEuc3BvY051bWJlcixcclxuICAgIGNvdW50cnk6ZGF0YS5zcG9jQ291bnRyeVxyXG4gIH1cclxuICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oRWRpdERldGFpbHNDb21wb25lbnQseyBjZW50ZXJlZDp0cnVlLHNpemU6J21kJ30pO1xyXG4gIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBvYmo7XHJcbiAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgaWYocmVzdWx0ID09ICdjbG9zZScpe1xyXG4gICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmRlbGV0ZUNvbnRhY3QoZGF0YTphbnkpe1xyXG4gIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbmZpcm1hdGlvbk1vZGFsLCB7IGNlbnRlcmVkOiB0cnVlIH0pO1xyXG4gIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgIHRoaXMuc2VydmljZS5kZWxldGVTcG9jKGRhdGEuc3RvcmVJZCx7c3BvY0lkIDogZGF0YS5zcG9jSWR9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OihyZXM6YW55KT0+e1xyXG4gICAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QocmVzLm1lc3NhZ2UpXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QocmVzLm1lc3NhZ2UpXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjooZXJyKT0+IHtcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyLkVycm9yKVxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9KTtcclxufVxyXG5jbG9zZU1vZGFsKCl7XHJcbiAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgpO1xyXG4gIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnQ29udGFjdCBoYXMgYmVlbiBEZWxldGVkIFN1Y2Nlc3NmdWxseScpXHJcblxyXG59XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkIHAtMFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTNcIj5cclxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbCBoZWFkZXIgbWItMlwiPnt7dmFsdWU/LnN0b3JlTmFtZSA/IHZhbHVlPy5zdG9yZU5hbWU6Jy0tJ319IENvbnRhY3RzPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi1oZWFkZXIgbWItMlwiPnt7c3BvY0RldGlhbHM/Lmxlbmd0aCA/IHNwb2NEZXRpYWxzPy5sZW5ndGggOiAwIH19IGNvbnRhY3RzIDwvc3Bhbj5cclxuICAgICAgICA8L2gzPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPiAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8ubWFuYWdlX3RpY2tldHNfaXNFZGl0XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJhZGRDb250YWN0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWwgcHktMiBweC0xMFwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05Ljk5OTM1IDQuMTY2NjlWMTUuODMzNE00LjE2NjAyIDEwSDE1LjgzMjdcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwibXMtMlwiPkFkZDwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHQtMCBtaC02MHZoXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgcHQtNVwiICpuZ0Zvcj1cImxldCBvYmogb2Ygc3BvY0RldGlhbHM7bGV0IGk9aW5kZXg7XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRyZSBtc2dwcm9maWxlIGp1c3RpZnktY29udGVudC1jZW50cmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy91c2VyUHJvZmlsZS5zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxpbnB1dCBjbGFzcz1cImJnLXByaW1hcnkgcG9zaXRpb24tYWJzb2x1dGUgYm90dG9tLTAgZW5kLTAgdy0xMHB4IGgtMTBweCByb3VuZGVkLTQgYm9yZGVyIGJvcmRlci1ub25lXCIgdHlwZT1cImZpbGxcIj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWdyaWQgbXgtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGluZ3RleHQgZnctYm9sZC02MDBcIj4ge3tvYmo/LnNwb2NOYW1lID9vYmo/LnNwb2NOYW1lOictLSd9fSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItaGVhZGVyIGVsbGlwc2UgZnctYm9sZC00MDBcIj57e29iaj8uc3BvY0VtYWlsID8gb2JqPy5zcG9jRW1haWw6Jy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFjdCBmdy1zZW1pYm9sZFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3tvYmo/LnNwb2NOdW1iZXIgPyBvYmo/LnNwb2NOdW1iZXI6Jy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8ubWFuYWdlX3RpY2tldHNfaXNFZGl0XCIgKGNsaWNrKT1cImVkaXRPcGVuKG9iailcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzQwMjNfNjA3NjIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05LjE2NjAyIDMuMzMzMzJIMy4zMzI2OEMyLjg5MDY1IDMuMzMzMzIgMi40NjY3MyAzLjUwODkxIDIuMTU0MTcgMy44MjE0N0MxLjg0MTYxIDQuMTM0MDMgMS42NjYwMiA0LjU1Nzk2IDEuNjY2MDIgNC45OTk5OVYxNi42NjY3QzEuNjY2MDIgMTcuMTA4NyAxLjg0MTYxIDE3LjUzMjYgMi4xNTQxNyAxNy44NDUyQzIuNDY2NzMgMTguMTU3NyAyLjg5MDY1IDE4LjMzMzMgMy4zMzI2OCAxOC4zMzMzSDE0Ljk5OTNDMTUuNDQxNCAxOC4zMzMzIDE1Ljg2NTMgMTguMTU3NyAxNi4xNzc5IDE3Ljg0NTJDMTYuNDkwNCAxNy41MzI2IDE2LjY2NiAxNy4xMDg3IDE2LjY2NiAxNi42NjY3VjEwLjgzMzNNMTUuNDE2IDIuMDgzMzJDMTUuNzQ3NSAxLjc1MTggMTYuMTk3MiAxLjU2NTU1IDE2LjY2NiAxLjU2NTU1QzE3LjEzNDkgMS41NjU1NSAxNy41ODQ1IDEuNzUxOCAxNy45MTYgMi4wODMzMkMxOC4yNDc1IDIuNDE0ODQgMTguNDMzOCAyLjg2NDQ4IDE4LjQzMzggMy4zMzMzMkMxOC40MzM4IDMuODAyMTYgMTguMjQ3NSA0LjI1MTggMTcuOTE2IDQuNTgzMzJMOS45OTkzNSAxMi41TDYuNjY2MDIgMTMuMzMzM0w3LjQ5OTM1IDkuOTk5OTlMMTUuNDE2IDIuMDgzMzJaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzQwMjNfNjA3NjJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfdGlja2V0c19pc0RlbGV0ZVwiIChjbGljayk9XCJkZWxldGVDb250YWN0KG9iailcIiBjbGFzcz1cIm1zLTVcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIuNSA1LjAwMDAySDQuMTY2NjdNNC4xNjY2NyA1LjAwMDAySDE3LjVNNC4xNjY2NyA1LjAwMDAyVjE2LjY2NjdDNC4xNjY2NyAxNy4xMDg3IDQuMzQyMjYgMTcuNTMyNiA0LjY1NDgyIDE3Ljg0NTJDNC45NjczOCAxOC4xNTc4IDUuMzkxMzEgMTguMzMzNCA1LjgzMzMzIDE4LjMzMzRIMTQuMTY2N0MxNC42MDg3IDE4LjMzMzQgMTUuMDMyNiAxOC4xNTc4IDE1LjM0NTIgMTcuODQ1MkMxNS42NTc3IDE3LjUzMjYgMTUuODMzMyAxNy4xMDg3IDE1LjgzMzMgMTYuNjY2N1Y1LjAwMDAySDQuMTY2NjdaTTYuNjY2NjcgNS4wMDAwMlYzLjMzMzM1QzYuNjY2NjcgMi44OTEzMyA2Ljg0MjI2IDIuNDY3NCA3LjE1NDgyIDIuMTU0ODRDNy40NjczOCAxLjg0MjI4IDcuODkxMzEgMS42NjY2OSA4LjMzMzMzIDEuNjY2NjlIMTEuNjY2N0MxMi4xMDg3IDEuNjY2NjkgMTIuNTMyNiAxLjg0MjI4IDEyLjg0NTIgMi4xNTQ4NEMxMy4xNTc3IDIuNDY3NCAxMy4zMzMzIDIuODkxMzMgMTMuMzMzMyAzLjMzMzM1VjUuMDAwMDJcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHQtMFwiPlxyXG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFjY2VwdCgpXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXByaW1hcnkgbXQtNSB3LTEwMFwiPlxyXG4gICAgICAgICAgICBPa2F5XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbmZpcm1hdGlvbk1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJwLThcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy9kYW5nZXJJY29uLnBuZ1wiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCIgbXQtNVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlciBmdy1ib2xkLTYwMFwiPkFyZSB5b3UgcmVhZHkgc3VyZT88L3NwYW4+XHJcbiAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTMgc3ViLWhlYWRlciBmdy1ib2xkLTQwMFwiPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIHVzZXIgZ2xvYmFsbHk/PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0xMFwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLW91dGxpbmUgdy01MCBtZS0yXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRhbmdlciB3LTUwIG1zLTJcIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpOyBtb2RhbC5jbG9zZSgpXCI+RGVsZXRlPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPiJdfQ==
@@ -33,18 +33,10 @@ export class EdgeCameraviewComponent {
33
33
  next: (res) => {
34
34
  if (res && res?.code == 200) {
35
35
  this.viewEdgeAppLogList = res?.data;
36
- this.loading = false;
37
- this.noData = false;
38
36
  this.cd.detectChanges();
39
37
  }
40
- else {
41
- this.loading = false;
42
- this.noData = true;
43
- }
44
38
  },
45
39
  error: (err) => {
46
- this.loading = false;
47
- this.noData = true;
48
40
  }
49
41
  });
50
42
  }
@@ -55,17 +47,29 @@ export class EdgeCameraviewComponent {
55
47
  };
56
48
  this.infraService.getCameraImages(data).subscribe({
57
49
  next: (res) => {
58
- this.CameraDetails = res?.data;
50
+ if (res && res.code == 200) {
51
+ this.CameraDetails = res?.data;
52
+ this.loading = false;
53
+ this.noData = false;
54
+ }
55
+ else {
56
+ this.loading = false;
57
+ this.noData = true;
58
+ }
59
+ },
60
+ error: (err) => {
61
+ this.loading = false;
62
+ this.noData = true;
59
63
  },
60
64
  });
61
65
  }
62
66
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EdgeCameraviewComponent, deps: [{ token: i1.TicketsService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
63
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EdgeCameraviewComponent, selector: "lib-edge-cameraview", inputs: { value: "value" }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-header flex-column border-0\">\r\n <img class=\"mt-5 msgprofile\" src=\"./assets/tango/Images/edgeapp icon.svg\">\r\n <div class=\"card-title flex-column\">\r\n <span class=\"card-label\">LKST -09-133 Store Infrastructure</span>\r\n <span class=\"sub-title\">Based on date : {{currentDate | date:'dd-MM-yy'}} </span>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData\">\r\n <span class=\"heading mb-5 fw-semibold\">Edge App Status - {{viewEdgeAppLogList?.appStatus ? viewEdgeAppLogList?.appStatus :'--'}}</span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Login Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appStartTime ? viewEdgeAppLogList?.appStartTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Close Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appQuitTime ? viewEdgeAppLogList?.appQuitTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Crash Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.AppCrashtime ? viewEdgeAppLogList?.AppCrashtime :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">System Check </span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">System Idle</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.screenStatus ?viewEdgeAppLogList?.screenStatus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Anitvirus</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.antiVirus ?viewEdgeAppLogList?.antiVirus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Files Pushed</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.filesPushed ?viewEdgeAppLogList?.filesPushed :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">Camera Check</span>\r\n <div class=\"row\">\r\n <div *ngFor=\"let details of CameraDetails\" class=\"col-sm-6 mt-10\">\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-9\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"w-10px h-10px border-0 rounded-3 bg-success me-2\"></div><span *ngIf=\"details?.cameraNumber\">{{details?.cameraNumber}}</span>\r\n <span *ngIf=\"details?.cameraName\" class=\"badge badge-light-primary text-primary ms-2\">{{details?.cameraName | titlecase}} Camera</span>\r\n </div>\r\n <div class=\"streamdate fw-semibold\"><span>{{details?.streamName}}</span></div>\r\n </div>\r\n </div>\r\n \r\n <img class=\"w-100 mh-200px rounded-3 mt-3\" [src]='details?.thumbnailImage'>\r\n <div class=\"mt-3 d-flex justify-content-between\">\r\n <span *ngIf=\"details?.captureAt\" class=\"streamdate fw-semibold\">Date Added : {{details?.captureAt | customDateFormat}}</span>\r\n <span *ngIf=\"details?.timeElapsed\" class=\"streamdate fw-semibold\">Frame Rate : {{details?.timeElapsed}} Sec</span>\r\n </div>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <ng-container *ngIf=\"loading\" >\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [".card-label{font-size:18px!important;line-height:28px!important}.sub-title{font-size:14px;font-weight:400;line-height:20px;color:var(--Gray-500, #667085)}.card-view .title{color:var(--Gray-900, #101828);font-size:20px;line-height:30px}.card-view .sub-title{color:var(--Gray-700, #344054);font-size:14px;line-height:20px}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.streamdate{color:var(--Gray-400, #98A2B3);font-size:12px;line-height:18px}.heading{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: i3.CustomDateFormatPipe, name: "customDateFormat" }] });
67
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EdgeCameraviewComponent, selector: "lib-edge-cameraview", inputs: { value: "value" }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-header flex-column border-0\">\r\n <img class=\"mt-5 msgprofile\" src=\"./assets/tango/Images/edgeapp icon.svg\">\r\n <div class=\"card-title flex-column\">\r\n <span class=\"card-label\">LKST -09-133 Store Infrastructure</span>\r\n <span class=\"sub-title\">Based on date : {{currentDate | date:'dd-MM-yy'}} </span>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData\">\r\n <span class=\"heading mb-5 fw-semibold\">Edge App Status - {{viewEdgeAppLogList?.appStatus ? viewEdgeAppLogList?.appStatus :'--'}}</span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Login Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appStartTime ? viewEdgeAppLogList?.appStartTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Close Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appQuitTime ? viewEdgeAppLogList?.appQuitTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Crash Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.AppCrashtime ? viewEdgeAppLogList?.AppCrashtime :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">System Check </span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">System Idle</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.screenStatus ?viewEdgeAppLogList?.screenStatus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Anitvirus</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.antiVirus ?viewEdgeAppLogList?.antiVirus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Files Pushed</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.filesPushed ?viewEdgeAppLogList?.filesPushed :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">Camera Check</span>\r\n <div class=\"row\">\r\n <div *ngFor=\"let details of CameraDetails\" class=\"col-sm-6 mt-10\">\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-9\">\r\n <div class=\"d-flex align-items-center\">\r\n <div [ngClass]=\"(details?.isActivated && details.isUp) ? 'bg-success':'bg-danger'\" class=\"w-10px h-10px border-0 rounded-3 me-2\"></div><span *ngIf=\"details?.cameraNumber\">{{details?.cameraNumber}}</span>\r\n <span *ngIf=\"details?.cameraName\" class=\"badge badge-light-primary text-primary ms-2\">{{details?.cameraName | titlecase}} Camera</span>\r\n </div>\r\n <div class=\"streamdate fw-semibold\"><span>{{details?.streamName}}</span></div>\r\n </div>\r\n </div>\r\n \r\n <img class=\"w-100 mh-200px rounded-3 mt-3\" src='{{details?.thumbnailImage}}'>\r\n <div class=\"mt-3 d-flex justify-content-between\">\r\n <span *ngIf=\"details?.captureAt\" class=\"streamdate fw-semibold\">Date Added : {{details?.captureAt | customDateFormat}}</span>\r\n <span *ngIf=\"details?.timeElapsed\" class=\"streamdate fw-semibold\">Frame Rate : {{details?.timeElapsed}} Sec</span>\r\n </div>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <ng-container *ngIf=\"loading\" >\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData || !CameraDetails.length\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [".card-label{font-size:18px!important;line-height:28px!important}.sub-title{font-size:14px;font-weight:400;line-height:20px;color:var(--Gray-500, #667085)}.card-view .title{color:var(--Gray-900, #101828);font-size:20px;line-height:30px}.card-view .sub-title{color:var(--Gray-700, #344054);font-size:14px;line-height:20px}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.streamdate{color:var(--Gray-400, #98A2B3);font-size:12px;line-height:18px}.heading{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: i3.CustomDateFormatPipe, name: "customDateFormat" }] });
64
68
  }
65
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EdgeCameraviewComponent, decorators: [{
66
70
  type: Component,
67
- args: [{ selector: 'lib-edge-cameraview', template: "<div class=\"card\">\r\n <div class=\"card-header flex-column border-0\">\r\n <img class=\"mt-5 msgprofile\" src=\"./assets/tango/Images/edgeapp icon.svg\">\r\n <div class=\"card-title flex-column\">\r\n <span class=\"card-label\">LKST -09-133 Store Infrastructure</span>\r\n <span class=\"sub-title\">Based on date : {{currentDate | date:'dd-MM-yy'}} </span>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData\">\r\n <span class=\"heading mb-5 fw-semibold\">Edge App Status - {{viewEdgeAppLogList?.appStatus ? viewEdgeAppLogList?.appStatus :'--'}}</span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Login Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appStartTime ? viewEdgeAppLogList?.appStartTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Close Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appQuitTime ? viewEdgeAppLogList?.appQuitTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Crash Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.AppCrashtime ? viewEdgeAppLogList?.AppCrashtime :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">System Check </span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">System Idle</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.screenStatus ?viewEdgeAppLogList?.screenStatus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Anitvirus</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.antiVirus ?viewEdgeAppLogList?.antiVirus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Files Pushed</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.filesPushed ?viewEdgeAppLogList?.filesPushed :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">Camera Check</span>\r\n <div class=\"row\">\r\n <div *ngFor=\"let details of CameraDetails\" class=\"col-sm-6 mt-10\">\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-9\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"w-10px h-10px border-0 rounded-3 bg-success me-2\"></div><span *ngIf=\"details?.cameraNumber\">{{details?.cameraNumber}}</span>\r\n <span *ngIf=\"details?.cameraName\" class=\"badge badge-light-primary text-primary ms-2\">{{details?.cameraName | titlecase}} Camera</span>\r\n </div>\r\n <div class=\"streamdate fw-semibold\"><span>{{details?.streamName}}</span></div>\r\n </div>\r\n </div>\r\n \r\n <img class=\"w-100 mh-200px rounded-3 mt-3\" [src]='details?.thumbnailImage'>\r\n <div class=\"mt-3 d-flex justify-content-between\">\r\n <span *ngIf=\"details?.captureAt\" class=\"streamdate fw-semibold\">Date Added : {{details?.captureAt | customDateFormat}}</span>\r\n <span *ngIf=\"details?.timeElapsed\" class=\"streamdate fw-semibold\">Frame Rate : {{details?.timeElapsed}} Sec</span>\r\n </div>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <ng-container *ngIf=\"loading\" >\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [".card-label{font-size:18px!important;line-height:28px!important}.sub-title{font-size:14px;font-weight:400;line-height:20px;color:var(--Gray-500, #667085)}.card-view .title{color:var(--Gray-900, #101828);font-size:20px;line-height:30px}.card-view .sub-title{color:var(--Gray-700, #344054);font-size:14px;line-height:20px}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.streamdate{color:var(--Gray-400, #98A2B3);font-size:12px;line-height:18px}.heading{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"] }]
71
+ args: [{ selector: 'lib-edge-cameraview', template: "<div class=\"card\">\r\n <div class=\"card-header flex-column border-0\">\r\n <img class=\"mt-5 msgprofile\" src=\"./assets/tango/Images/edgeapp icon.svg\">\r\n <div class=\"card-title flex-column\">\r\n <span class=\"card-label\">LKST -09-133 Store Infrastructure</span>\r\n <span class=\"sub-title\">Based on date : {{currentDate | date:'dd-MM-yy'}} </span>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData\">\r\n <span class=\"heading mb-5 fw-semibold\">Edge App Status - {{viewEdgeAppLogList?.appStatus ? viewEdgeAppLogList?.appStatus :'--'}}</span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Login Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appStartTime ? viewEdgeAppLogList?.appStartTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Close Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appQuitTime ? viewEdgeAppLogList?.appQuitTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Crash Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.AppCrashtime ? viewEdgeAppLogList?.AppCrashtime :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">System Check </span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">System Idle</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.screenStatus ?viewEdgeAppLogList?.screenStatus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Anitvirus</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.antiVirus ?viewEdgeAppLogList?.antiVirus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Files Pushed</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.filesPushed ?viewEdgeAppLogList?.filesPushed :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">Camera Check</span>\r\n <div class=\"row\">\r\n <div *ngFor=\"let details of CameraDetails\" class=\"col-sm-6 mt-10\">\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-9\">\r\n <div class=\"d-flex align-items-center\">\r\n <div [ngClass]=\"(details?.isActivated && details.isUp) ? 'bg-success':'bg-danger'\" class=\"w-10px h-10px border-0 rounded-3 me-2\"></div><span *ngIf=\"details?.cameraNumber\">{{details?.cameraNumber}}</span>\r\n <span *ngIf=\"details?.cameraName\" class=\"badge badge-light-primary text-primary ms-2\">{{details?.cameraName | titlecase}} Camera</span>\r\n </div>\r\n <div class=\"streamdate fw-semibold\"><span>{{details?.streamName}}</span></div>\r\n </div>\r\n </div>\r\n \r\n <img class=\"w-100 mh-200px rounded-3 mt-3\" src='{{details?.thumbnailImage}}'>\r\n <div class=\"mt-3 d-flex justify-content-between\">\r\n <span *ngIf=\"details?.captureAt\" class=\"streamdate fw-semibold\">Date Added : {{details?.captureAt | customDateFormat}}</span>\r\n <span *ngIf=\"details?.timeElapsed\" class=\"streamdate fw-semibold\">Frame Rate : {{details?.timeElapsed}} Sec</span>\r\n </div>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <ng-container *ngIf=\"loading\" >\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData || !CameraDetails.length\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [".card-label{font-size:18px!important;line-height:28px!important}.sub-title{font-size:14px;font-weight:400;line-height:20px;color:var(--Gray-500, #667085)}.card-view .title{color:var(--Gray-900, #101828);font-size:20px;line-height:30px}.card-view .sub-title{color:var(--Gray-700, #344054);font-size:14px;line-height:20px}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.streamdate{color:var(--Gray-400, #98A2B3);font-size:12px;line-height:18px}.heading{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"] }]
68
72
  }], ctorParameters: () => [{ type: i1.TicketsService }, { type: i0.ChangeDetectorRef }], propDecorators: { value: [{
69
73
  type: Input
70
74
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGdlLWNhbWVyYXZpZXcvZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGdlLWNhbWVyYXZpZXcvZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRNUUsTUFBTSxPQUFPLHVCQUF1QjtJQVFkO0lBQXNDO0lBUDFELE9BQU8sR0FBWSxJQUFJLENBQUM7SUFDeEIsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUN4QixrQkFBa0IsQ0FBTTtJQUN4QixXQUFXLENBQU87SUFDVCxLQUFLLENBQU07SUFDcEIsYUFBYSxDQUFNO0lBRW5CLFlBQW9CLFlBQTRCLEVBQVUsRUFBcUI7UUFBM0QsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7SUFHL0UsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVwQixJQUFJLEdBQUcsR0FBRztZQUNSLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU87WUFDNUIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckMsQ0FBQTtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM5QyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO29CQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztvQkFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUE7aUJBQ3hCO3FCQUFNO29CQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztpQkFDcEI7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxHQUFHO1lBQ1QsT0FBTyxFQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTztZQUM3QixvQkFBb0I7U0FDckIsQ0FBQTtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNoRCxJQUFJLEVBQUMsQ0FBQyxHQUFPLEVBQUMsRUFBRTtnQkFDZCxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUM7WUFDakMsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUNKLENBQUM7dUdBeERVLHVCQUF1QjsyRkFBdkIsdUJBQXVCLHVGQ1JwQywrdUxBa0dBOzsyRkQxRmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjttSEFTdEIsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUaWNrZXRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpY2tldC1pbmZyYS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWVkZ2UtY2FtZXJhdmlldycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VkZ2UtY2FtZXJhdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2VkZ2UtY2FtZXJhdmlldy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEVkZ2VDYW1lcmF2aWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBsb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBub0RhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB2aWV3RWRnZUFwcExvZ0xpc3Q6IGFueTtcclxuICBjdXJyZW50RGF0ZTogRGF0ZTtcclxuICBASW5wdXQoKSB2YWx1ZTogYW55O1xyXG4gIENhbWVyYURldGFpbHM6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmZyYVNlcnZpY2U6IFRpY2tldHNTZXJ2aWNlLCBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG5cclxuXHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRWaWV3RWRnZUFwcExvZygpO1xyXG4gICAgdGhpcy5nZXRDYW1lcmFJbWFnZXMoKTtcclxuICAgIHRoaXMuY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIH1cclxuICBnZXRWaWV3RWRnZUFwcExvZygpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG5cclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIHN0b3JlSWQ6IHRoaXMudmFsdWU/LnN0b3JlSWQsXHJcbiAgICAgIGZyb206IHRoaXMudmFsdWU/LnN0YXJ0VGltZS5zbGljZSgwLCAtMiksXHJcbiAgICAgIHRvOiB0aGlzLnZhbHVlPy5lbmRUaW1lLnNsaWNlKDAsIC0yKVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5mcmFTZXJ2aWNlLnZpZXdlZGdlQXBwTG9nKG9iaikuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXM/LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLnZpZXdFZGdlQXBwTG9nTGlzdCA9IHJlcz8uZGF0YTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRDYW1lcmFJbWFnZXMoKXtcclxuICAgIGxldCBkYXRhID0ge1xyXG4gICAgICBzdG9yZUlkIDogdGhpcy52YWx1ZT8uc3RvcmVJZFxyXG4gICAgICAvLyBzdG9yZUlkOlwiMjAxLTEyOVwiXHJcbiAgICB9XHJcbiAgICB0aGlzLmluZnJhU2VydmljZS5nZXRDYW1lcmFJbWFnZXMoZGF0YSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDoocmVzOmFueSk9PiB7XHJcbiAgICAgICAgdGhpcy5DYW1lcmFEZXRhaWxzID0gcmVzPy5kYXRhO1xyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgZmxleC1jb2x1bW4gYm9yZGVyLTBcIj5cclxuICAgICAgICA8aW1nIGNsYXNzPVwibXQtNSBtc2dwcm9maWxlXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL2VkZ2VhcHAgaWNvbi5zdmdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbFwiPkxLU1QgLTA5LTEzMyBTdG9yZSBJbmZyYXN0cnVjdHVyZTwvc3Bhbj5cclxuICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZVwiPkJhc2VkIG9uIGRhdGUgOiB7e2N1cnJlbnREYXRlIHwgZGF0ZTonZGQtTU0teXknfX0gPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFsb2FkaW5nICYmICFub0RhdGFcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkaW5nIG1iLTUgZnctc2VtaWJvbGRcIj5FZGdlIEFwcCBTdGF0dXMgLSB7e3ZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwU3RhdHVzID8gdmlld0VkZ2VBcHBMb2dMaXN0Py5hcHBTdGF0dXMgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheSBib3JkZXItMSByb3VuZGVkLTMgdy0xMDAgcHgtMTAgcHktMyBtdC0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5BcHAgTG9naW4gVGltZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e3ZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwU3RhcnRUaW1lID8gdmlld0VkZ2VBcHBMb2dMaXN0Py5hcHBTdGFydFRpbWUgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXZpZXcgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZVwiPkFwcCBDbG9zZSBUaW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7dmlld0VkZ2VBcHBMb2dMaXN0Py5hcHBRdWl0VGltZSA/IHZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwUXVpdFRpbWUgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXZpZXcgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZVwiPkFwcCBDcmFzaCBUaW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7dmlld0VkZ2VBcHBMb2dMaXN0Py5BcHBDcmFzaHRpbWUgPyB2aWV3RWRnZUFwcExvZ0xpc3Q/LkFwcENyYXNodGltZSA6Jy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFsb2FkaW5nICYmICFub0RhdGFcIiBjbGFzcz1cIm10LTEwXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGluZyBtYi01IGZ3LXNlbWlib2xkXCI+U3lzdGVtIENoZWNrIDwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheSBib3JkZXItMSByb3VuZGVkLTMgdy0xMDAgcHgtMTAgcHktMyBtdC0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5TeXN0ZW0gSWRsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e3ZpZXdFZGdlQXBwTG9nTGlzdD8uc2NyZWVuU3RhdHVzID92aWV3RWRnZUFwcExvZ0xpc3Q/LnNjcmVlblN0YXR1cyA6Jy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdmlldyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLXRpdGxlXCI+QW5pdHZpcnVzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7dmlld0VkZ2VBcHBMb2dMaXN0Py5hbnRpVmlydXMgP3ZpZXdFZGdlQXBwTG9nTGlzdD8uYW50aVZpcnVzIDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5GaWxlcyBQdXNoZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+e3t2aWV3RWRnZUFwcExvZ0xpc3Q/LmZpbGVzUHVzaGVkID92aWV3RWRnZUFwcExvZ0xpc3Q/LmZpbGVzUHVzaGVkIDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgIW5vRGF0YVwiIGNsYXNzPVwibXQtMTBcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkaW5nIG1iLTUgZnctc2VtaWJvbGRcIj5DYW1lcmEgQ2hlY2s8L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGV0YWlscyBvZiBDYW1lcmFEZXRhaWxzXCIgY2xhc3M9XCJjb2wtc20tNiBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwcHggaC0xMHB4IGJvcmRlci0wIHJvdW5kZWQtMyBiZy1zdWNjZXNzIG1lLTJcIj48L2Rpdj48c3BhbiAqbmdJZj1cImRldGFpbHM/LmNhbWVyYU51bWJlclwiPnt7ZGV0YWlscz8uY2FtZXJhTnVtYmVyfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGV0YWlscz8uY2FtZXJhTmFtZVwiIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSB0ZXh0LXByaW1hcnkgbXMtMlwiPnt7ZGV0YWlscz8uY2FtZXJhTmFtZSB8IHRpdGxlY2FzZX19IENhbWVyYTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyZWFtZGF0ZSBmdy1zZW1pYm9sZFwiPjxzcGFuPnt7ZGV0YWlscz8uc3RyZWFtTmFtZX19PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ3LTEwMCBtaC0yMDBweCByb3VuZGVkLTMgbXQtM1wiIFtzcmNdPSdkZXRhaWxzPy50aHVtYm5haWxJbWFnZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTMgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGV0YWlscz8uY2FwdHVyZUF0XCIgY2xhc3M9XCJzdHJlYW1kYXRlIGZ3LXNlbWlib2xkXCI+RGF0ZSBBZGRlZCA6IHt7ZGV0YWlscz8uY2FwdHVyZUF0IHwgY3VzdG9tRGF0ZUZvcm1hdH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRldGFpbHM/LnRpbWVFbGFwc2VkXCIgY2xhc3M9XCJzdHJlYW1kYXRlIGZ3LXNlbWlib2xkXCI+RnJhbWUgUmF0ZSA6IHt7ZGV0YWlscz8udGltZUVsYXBzZWR9fSBTZWM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nXCIgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGxvYWRlciAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vRGF0YVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyYyB3LTI1XCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGdlLWNhbWVyYXZpZXcvZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGdlLWNhbWVyYXZpZXcvZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRNUUsTUFBTSxPQUFPLHVCQUF1QjtJQVFkO0lBQXNDO0lBUDFELE9BQU8sR0FBWSxJQUFJLENBQUM7SUFDeEIsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUN4QixrQkFBa0IsQ0FBTTtJQUN4QixXQUFXLENBQU87SUFDVCxLQUFLLENBQU07SUFDcEIsYUFBYSxDQUFNO0lBRW5CLFlBQW9CLFlBQTRCLEVBQVUsRUFBcUI7UUFBM0QsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7SUFHL0UsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVwQixJQUFJLEdBQUcsR0FBRztZQUNSLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU87WUFDNUIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckMsQ0FBQTtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM5QyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO29CQUNwQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFBO2lCQUN4QjtZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUVmLENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxHQUFHO1lBQ1QsT0FBTyxFQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTztZQUM3QixvQkFBb0I7U0FDckIsQ0FBQTtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNoRCxJQUFJLEVBQUMsQ0FBQyxHQUFPLEVBQUMsRUFBRTtnQkFDZCxJQUFHLEdBQUcsSUFBRyxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBQztvQkFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO29CQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztvQkFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7aUJBQ3JCO3FCQUFJO29CQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztpQkFDcEI7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFDLENBQUMsR0FBRyxFQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO3VHQTdEVSx1QkFBdUI7MkZBQXZCLHVCQUF1Qix1RkNScEMsaXpMQWtHQTs7MkZEMUZhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7bUhBU3RCLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGlja2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQtaW5mcmEuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1lZGdlLWNhbWVyYXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGdlLWNhbWVyYXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9lZGdlLWNhbWVyYXZpZXcuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGdlQ2FtZXJhdmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgbm9EYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmlld0VkZ2VBcHBMb2dMaXN0OiBhbnk7XHJcbiAgY3VycmVudERhdGU6IERhdGU7XHJcbiAgQElucHV0KCkgdmFsdWU6IGFueTtcclxuICBDYW1lcmFEZXRhaWxzOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5mcmFTZXJ2aWNlOiBUaWNrZXRzU2VydmljZSwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuXHJcblxyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0Vmlld0VkZ2VBcHBMb2coKTtcclxuICAgIHRoaXMuZ2V0Q2FtZXJhSW1hZ2VzKCk7XHJcbiAgICB0aGlzLmN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuICB9XHJcbiAgZ2V0Vmlld0VkZ2VBcHBMb2coKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuXHJcbiAgICBsZXQgb2JqID0ge1xyXG4gICAgICBzdG9yZUlkOiB0aGlzLnZhbHVlPy5zdG9yZUlkLFxyXG4gICAgICBmcm9tOiB0aGlzLnZhbHVlPy5zdGFydFRpbWUuc2xpY2UoMCwgLTIpLFxyXG4gICAgICB0bzogdGhpcy52YWx1ZT8uZW5kVGltZS5zbGljZSgwLCAtMilcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluZnJhU2VydmljZS52aWV3ZWRnZUFwcExvZyhvYmopLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy52aWV3RWRnZUFwcExvZ0xpc3QgPSByZXM/LmRhdGE7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRDYW1lcmFJbWFnZXMoKXtcclxuICAgIGxldCBkYXRhID0ge1xyXG4gICAgICBzdG9yZUlkIDogdGhpcy52YWx1ZT8uc3RvcmVJZFxyXG4gICAgICAvLyBzdG9yZUlkOlwiMjAxLTEyOVwiXHJcbiAgICB9XHJcbiAgICB0aGlzLmluZnJhU2VydmljZS5nZXRDYW1lcmFJbWFnZXMoZGF0YSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDoocmVzOmFueSk9PiB7XHJcbiAgICAgICAgaWYocmVzJiYgcmVzLmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgIHRoaXMuQ2FtZXJhRGV0YWlscyA9IHJlcz8uZGF0YTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6KGVycik9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgZmxleC1jb2x1bW4gYm9yZGVyLTBcIj5cclxuICAgICAgICA8aW1nIGNsYXNzPVwibXQtNSBtc2dwcm9maWxlXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL2VkZ2VhcHAgaWNvbi5zdmdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbFwiPkxLU1QgLTA5LTEzMyBTdG9yZSBJbmZyYXN0cnVjdHVyZTwvc3Bhbj5cclxuICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZVwiPkJhc2VkIG9uIGRhdGUgOiB7e2N1cnJlbnREYXRlIHwgZGF0ZTonZGQtTU0teXknfX0gPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFsb2FkaW5nICYmICFub0RhdGFcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkaW5nIG1iLTUgZnctc2VtaWJvbGRcIj5FZGdlIEFwcCBTdGF0dXMgLSB7e3ZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwU3RhdHVzID8gdmlld0VkZ2VBcHBMb2dMaXN0Py5hcHBTdGF0dXMgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheSBib3JkZXItMSByb3VuZGVkLTMgdy0xMDAgcHgtMTAgcHktMyBtdC0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5BcHAgTG9naW4gVGltZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e3ZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwU3RhcnRUaW1lID8gdmlld0VkZ2VBcHBMb2dMaXN0Py5hcHBTdGFydFRpbWUgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXZpZXcgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZVwiPkFwcCBDbG9zZSBUaW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7dmlld0VkZ2VBcHBMb2dMaXN0Py5hcHBRdWl0VGltZSA/IHZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwUXVpdFRpbWUgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXZpZXcgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZVwiPkFwcCBDcmFzaCBUaW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7dmlld0VkZ2VBcHBMb2dMaXN0Py5BcHBDcmFzaHRpbWUgPyB2aWV3RWRnZUFwcExvZ0xpc3Q/LkFwcENyYXNodGltZSA6Jy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTEwXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGluZyBtYi01IGZ3LXNlbWlib2xkXCI+U3lzdGVtIENoZWNrIDwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheSBib3JkZXItMSByb3VuZGVkLTMgdy0xMDAgcHgtMTAgcHktMyBtdC0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5TeXN0ZW0gSWRsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e3ZpZXdFZGdlQXBwTG9nTGlzdD8uc2NyZWVuU3RhdHVzID92aWV3RWRnZUFwcExvZ0xpc3Q/LnNjcmVlblN0YXR1cyA6Jy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdmlldyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLXRpdGxlXCI+QW5pdHZpcnVzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7dmlld0VkZ2VBcHBMb2dMaXN0Py5hbnRpVmlydXMgP3ZpZXdFZGdlQXBwTG9nTGlzdD8uYW50aVZpcnVzIDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5GaWxlcyBQdXNoZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+e3t2aWV3RWRnZUFwcExvZ0xpc3Q/LmZpbGVzUHVzaGVkID92aWV3RWRnZUFwcExvZ0xpc3Q/LmZpbGVzUHVzaGVkIDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgIW5vRGF0YVwiIGNsYXNzPVwibXQtMTBcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkaW5nIG1iLTUgZnctc2VtaWJvbGRcIj5DYW1lcmEgQ2hlY2s8L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGV0YWlscyBvZiBDYW1lcmFEZXRhaWxzXCIgY2xhc3M9XCJjb2wtc20tNiBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiKGRldGFpbHM/LmlzQWN0aXZhdGVkICYmIGRldGFpbHMuaXNVcCkgPyAnYmctc3VjY2Vzcyc6J2JnLWRhbmdlcidcIiBjbGFzcz1cInctMTBweCBoLTEwcHggYm9yZGVyLTAgcm91bmRlZC0zIG1lLTJcIj48L2Rpdj48c3BhbiAqbmdJZj1cImRldGFpbHM/LmNhbWVyYU51bWJlclwiPnt7ZGV0YWlscz8uY2FtZXJhTnVtYmVyfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGV0YWlscz8uY2FtZXJhTmFtZVwiIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSB0ZXh0LXByaW1hcnkgbXMtMlwiPnt7ZGV0YWlscz8uY2FtZXJhTmFtZSB8IHRpdGxlY2FzZX19IENhbWVyYTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyZWFtZGF0ZSBmdy1zZW1pYm9sZFwiPjxzcGFuPnt7ZGV0YWlscz8uc3RyZWFtTmFtZX19PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ3LTEwMCBtaC0yMDBweCByb3VuZGVkLTMgbXQtM1wiIHNyYz0ne3tkZXRhaWxzPy50aHVtYm5haWxJbWFnZX19Jz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkZXRhaWxzPy5jYXB0dXJlQXRcIiBjbGFzcz1cInN0cmVhbWRhdGUgZnctc2VtaWJvbGRcIj5EYXRlIEFkZGVkIDoge3tkZXRhaWxzPy5jYXB0dXJlQXQgfCBjdXN0b21EYXRlRm9ybWF0fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGV0YWlscz8udGltZUVsYXBzZWRcIiBjbGFzcz1cInN0cmVhbWRhdGUgZnctc2VtaWJvbGRcIj5GcmFtZSBSYXRlIDoge3tkZXRhaWxzPy50aW1lRWxhcHNlZH19IFNlYzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdcIiA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm9EYXRhIHx8ICFDYW1lcmFEZXRhaWxzLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyYyB3LTI1XCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=