@ieeesa-npm/dashboard 0.0.1 → 0.0.3

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 (38) hide show
  1. package/esm2022/lib/assets/constants.json +23 -6
  2. package/esm2022/lib/assets/dashboard-mock.mjs +5 -1
  3. package/esm2022/lib/assets/dashboard-route-paths.mock.mjs +7 -5
  4. package/esm2022/lib/components/event-group-card/event-group-card.component.mjs +168 -31
  5. package/esm2022/lib/components/meeting-attendance-row/meeting-attendance-row.component.mjs +25 -24
  6. package/esm2022/lib/components/upcoming-meetings-events/upcoming-meetings-events.component.mjs +103 -5
  7. package/esm2022/lib/components/welcome-header/dashboard-welcome-header.component.mjs +3 -3
  8. package/esm2022/lib/components/your-groups/your-groups.component.mjs +264 -118
  9. package/esm2022/lib/dashboard.component.mjs +54 -14
  10. package/esm2022/lib/models/event-meeting-list-item.model.mjs +2 -0
  11. package/esm2022/lib/models/event-meeting-list-payload.model.mjs +8 -0
  12. package/esm2022/lib/models/group-row.model.mjs +1 -1
  13. package/esm2022/lib/models/meeting-row.model.mjs +1 -1
  14. package/esm2022/lib/models/my-groups-view.model.mjs +2 -0
  15. package/esm2022/lib/models/upcoming-event.model.mjs +13 -2
  16. package/esm2022/lib/services/dashboard.service.mjs +229 -35
  17. package/esm2022/lib/utils/date-format.util.mjs +110 -0
  18. package/esm2022/lib/utils/event-meeting-mapper.util.mjs +96 -0
  19. package/esm2022/public-api.mjs +3 -1
  20. package/fesm2022/ieeesa-npm-dashboard.mjs +1300 -444
  21. package/fesm2022/ieeesa-npm-dashboard.mjs.map +1 -1
  22. package/lib/components/event-group-card/event-group-card.component.d.ts +100 -132
  23. package/lib/components/meeting-attendance-row/meeting-attendance-row.component.d.ts +8 -132
  24. package/lib/components/member-level-badge/member-level-badge.component.d.ts +19 -3
  25. package/lib/components/upcoming-meetings-events/upcoming-meetings-events.component.d.ts +63 -126
  26. package/lib/components/your-groups/your-groups.component.d.ts +158 -51
  27. package/lib/dashboard.component.d.ts +48 -10
  28. package/lib/models/event-meeting-list-item.model.d.ts +107 -0
  29. package/lib/models/event-meeting-list-payload.model.d.ts +40 -0
  30. package/lib/models/group-row.model.d.ts +25 -0
  31. package/lib/models/meeting-row.model.d.ts +18 -2
  32. package/lib/models/my-groups-view.model.d.ts +56 -0
  33. package/lib/models/upcoming-event.model.d.ts +40 -2
  34. package/lib/services/dashboard.service.d.ts +97 -14
  35. package/lib/utils/date-format.util.d.ts +60 -0
  36. package/lib/utils/event-meeting-mapper.util.d.ts +50 -0
  37. package/package.json +1 -1
  38. package/public-api.d.ts +2 -0
@@ -1,10 +1,10 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
3
- import { DateTime } from 'luxon';
4
3
  import { AttendanceState } from '../../models/attendance-state.model';
5
4
  import { DateFormats } from '../../assets/date-formats';
6
5
  import { AttendanceAction, resolveAttendanceAction, } from '../../utils/attendance-action.util';
7
- import * as constants from '../../assets/constants.json';
6
+ import { formatEpoch } from '../../utils/date-format.util';
7
+ import * as screenTexts from '../../assets/constants.json';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@angular/common";
10
10
  /**
@@ -23,7 +23,8 @@ import * as i1 from "@angular/common";
23
23
  */
24
24
  export class MeetingAttendanceRowComponent {
25
25
  constructor() {
26
- this.constants = constants;
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
+ this.constants = screenTexts;
27
28
  /** The current attendance state controlling label/indicator and action. */
28
29
  this.attendanceState = AttendanceState.NOT_ATTENDING;
29
30
  /** Whether an attendance action for this meeting is awaiting resolution. */
@@ -33,6 +34,12 @@ export class MeetingAttendanceRowComponent {
33
34
  canLogAttendance: false,
34
35
  canLeaveMeeting: false,
35
36
  };
37
+ /**
38
+ * Renders the leaner "standalone meeting" variant used by standalone-meeting
39
+ * cards (the group/location and status live on the parent card, so the row
40
+ * only shows the TIME & TIMEZONE block and the attendance + View actions).
41
+ */
42
+ this.compact = false;
36
43
  /** Emits the meeting id when the meeting-name link is activated (Req 7.4). */
37
44
  this.openMeeting = new EventEmitter();
38
45
  /** Emits the meeting id to request logging attendance (Req 7.7). */
@@ -99,7 +106,8 @@ export class MeetingAttendanceRowComponent {
99
106
  * @memberof MeetingAttendanceRowComponent
100
107
  */
101
108
  get formattedDate() {
102
- return this.formatIso(this.meeting?.meetingDate, DateFormats.displayFormat);
109
+ const value = this.meeting?.startDateTime ?? this.meeting?.meetingDate;
110
+ return formatEpoch(value, DateFormats.displayFormat, this.meeting?.timezone);
103
111
  }
104
112
  /**
105
113
  * Formats the meeting time + timezone for display using luxon (Req 7.3).
@@ -109,9 +117,15 @@ export class MeetingAttendanceRowComponent {
109
117
  * @memberof MeetingAttendanceRowComponent
110
118
  */
111
119
  get formattedTime() {
112
- const time = this.formatIso(this.meeting?.meetingTime, DateFormats.timeMeridiemFormat);
113
120
  const timezone = this.meeting?.timezone ?? '';
114
- return timezone ? `${time} ${timezone}` : time;
121
+ const startValue = this.meeting?.startDateTime ?? this.meeting?.meetingTime;
122
+ const start = formatEpoch(startValue, DateFormats.timeMeridiemFormat, timezone);
123
+ const end = formatEpoch(this.meeting?.endDateTime, DateFormats.timeMeridiemFormat, timezone);
124
+ const range = end ? `${start} – ${end}` : start;
125
+ if (!range) {
126
+ return '';
127
+ }
128
+ return timezone ? `${range} ${timezone}` : range;
115
129
  }
116
130
  /**
117
131
  * Handles activation of the attendance action button. Delegates to the pure
@@ -142,27 +156,12 @@ export class MeetingAttendanceRowComponent {
142
156
  }
143
157
  this.openMeeting.emit(this.meeting.meetingId);
144
158
  }
145
- /**
146
- * Parses an ISO string with luxon and formats it with the supplied token,
147
- * returning the raw value unchanged when it is missing or unparseable.
148
- * @param {string | undefined} isoValue - The ISO date/time string.
149
- * @param {string} format - The luxon format token.
150
- * @return {string} The formatted value or the raw/empty fallback.
151
- * @memberof MeetingAttendanceRowComponent
152
- */
153
- formatIso(isoValue, format) {
154
- if (!isoValue) {
155
- return '';
156
- }
157
- const parsed = DateTime.fromISO(isoValue, { setZone: true });
158
- return parsed.isValid ? parsed.toFormat(format) : isoValue;
159
- }
160
159
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MeetingAttendanceRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
161
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MeetingAttendanceRowComponent, isStandalone: true, selector: "ieeesa-meeting-attendance-row", inputs: { meeting: "meeting", attendanceState: "attendanceState", isInFlight: "isInFlight", permissions: "permissions" }, outputs: { openMeeting: "openMeeting", logAttendance: "logAttendance", leaveMeeting: "leaveMeeting" }, ngImport: i0, template: "<div class=\"ieeesa-meeting-attendance-row\">\r\n <div class=\"ieeesa-meeting-attendance-row__details\">\r\n <!-- Meeting-name link (emits openMeeting; non-actionable when id missing). -->\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-meeting-attendance-row__name-link\"\r\n [disabled]=\"!isActionable\"\r\n [attr.aria-label]=\"constants?.meetingRow?.ariaLabel?.meetingNameLink ?? 'View meeting details'\"\r\n (click)=\"onOpenMeeting()\"\r\n >\r\n {{ meeting?.meetingName }}\r\n </button>\r\n\r\n <dl class=\"ieeesa-meeting-attendance-row__meta\">\r\n <div class=\"ieeesa-meeting-attendance-row__meta-item\">\r\n <dt class=\"ieeesa-meeting-attendance-row__meta-term\">\r\n {{ constants?.groupsSection?.columns?.group ?? 'Group' }}\r\n </dt>\r\n <dd class=\"ieeesa-meeting-attendance-row__meta-value\">\r\n {{ resolveFieldValue(meeting?.groupOrCommittee) }}\r\n </dd>\r\n </div>\r\n\r\n <div class=\"ieeesa-meeting-attendance-row__meta-item\">\r\n <dt class=\"ieeesa-meeting-attendance-row__meta-term\">\r\n {{ constants?.groupsSection?.columns?.affiliation ?? 'Location' }}\r\n </dt>\r\n <dd class=\"ieeesa-meeting-attendance-row__meta-value\">\r\n {{ resolveFieldValue(meeting?.roomOrLocation) }}\r\n </dd>\r\n </div>\r\n\r\n <div class=\"ieeesa-meeting-attendance-row__meta-item\">\r\n <dt class=\"ieeesa-meeting-attendance-row__meta-term\">Date</dt>\r\n <dd class=\"ieeesa-meeting-attendance-row__meta-value\">\r\n {{ formattedDate }}\r\n </dd>\r\n </div>\r\n\r\n <div class=\"ieeesa-meeting-attendance-row__meta-item\">\r\n <dt class=\"ieeesa-meeting-attendance-row__meta-term\">Time</dt>\r\n <dd class=\"ieeesa-meeting-attendance-row__meta-value\">\r\n {{ formattedTime }}\r\n </dd>\r\n </div>\r\n </dl>\r\n </div>\r\n\r\n <div class=\"ieeesa-meeting-attendance-row__actions\">\r\n <!-- Currently-attending indicator shown only in the attending state. -->\r\n <span\r\n *ngIf=\"isCurrentlyAttending\"\r\n class=\"ieeesa-meeting-attendance-row__attending-indicator\"\r\n >\r\n {{ constants?.meetingRow?.currentlyAttendingIndicator ?? 'Currently Attending' }}\r\n </span>\r\n\r\n <!-- Log-attendance button: shown in the log state with the permission. -->\r\n <button\r\n *ngIf=\"showLogAttendanceButton\"\r\n type=\"button\"\r\n class=\"ieeesa-meeting-attendance-row__action-button ieeesa-meeting-attendance-row__action-button--log\"\r\n [disabled]=\"isInFlight || !isActionable\"\r\n [attr.aria-label]=\"constants?.meetingRow?.ariaLabel?.logAttendance ?? 'Log attendance for this meeting'\"\r\n (click)=\"onAttendanceAction()\"\r\n >\r\n {{ constants?.meetingRow?.logAttendanceLabel ?? 'Log Attendance' }}\r\n </button>\r\n\r\n <!-- Leave-meeting button: shown in the attending state with the permission. -->\r\n <button\r\n *ngIf=\"showLeaveMeetingButton\"\r\n type=\"button\"\r\n class=\"ieeesa-meeting-attendance-row__action-button ieeesa-meeting-attendance-row__action-button--leave\"\r\n [disabled]=\"isInFlight || !isActionable\"\r\n [attr.aria-label]=\"constants?.meetingRow?.ariaLabel?.leaveMeeting ?? 'Leave this meeting'\"\r\n (click)=\"onAttendanceAction()\"\r\n >\r\n {{ constants?.meetingRow?.leaveMeetingLabel ?? 'Leave Meeting' }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-meeting-attendance-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid #d7d6d6}.ieeesa-meeting-attendance-row__details{display:flex;flex-direction:column;gap:8px;min-width:0}.ieeesa-meeting-attendance-row__name-link{padding:0;border:0;background:none;text-align:left;text-decoration:underline;color:#00629b;cursor:pointer}.ieeesa-meeting-attendance-row__name-link:disabled{color:#939094;text-decoration:none;cursor:default}.ieeesa-meeting-attendance-row__meta{display:flex;flex-wrap:wrap;gap:4px 24px;margin:0}.ieeesa-meeting-attendance-row__meta-item{display:flex;flex-direction:column;gap:4px}.ieeesa-meeting-attendance-row__meta-term{margin:0;font-size:.75rem;color:#939094}.ieeesa-meeting-attendance-row__meta-value{margin:0;font-size:.875rem;color:#000}.ieeesa-meeting-attendance-row__actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.ieeesa-meeting-attendance-row__attending-indicator{display:inline-flex;align-items:center;padding:4px 12px;border-radius:16px;font-size:.8125rem;color:#00629b;background-color:#f0f5f9}.ieeesa-meeting-attendance-row__action-button{padding:8px 16px;border-radius:4px;font-size:.875rem;cursor:pointer}.ieeesa-meeting-attendance-row__action-button--log{border:1px solid #00629b;background-color:#00629b;color:#fff}.ieeesa-meeting-attendance-row__action-button--leave{border:1px solid #00629b;background-color:#fff;color:#00629b}.ieeesa-meeting-attendance-row__action-button:disabled{border-color:#939094;background-color:#939094;color:#fff;cursor:default}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
160
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MeetingAttendanceRowComponent, isStandalone: true, selector: "ieeesa-meeting-attendance-row", inputs: { meeting: "meeting", attendanceState: "attendanceState", isInFlight: "isInFlight", permissions: "permissions", compact: "compact" }, outputs: { openMeeting: "openMeeting", logAttendance: "logAttendance", leaveMeeting: "leaveMeeting" }, ngImport: i0, template: "<div\r\n class=\"ieeesa-meeting-attendance-row\"\r\n [class.ieeesa-meeting-attendance-row--compact]=\"compact\"\r\n>\r\n <!-- Meeting name + group/location (hidden in the compact standalone variant). -->\r\n <div class=\"ieeesa-meeting-attendance-row__name-col\">\r\n <ng-container *ngIf=\"!compact\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-meeting-attendance-row__name-link\"\r\n [disabled]=\"!isActionable\"\r\n [attr.aria-label]=\"constants.meetingRow.ariaLabel.meetingNameLink\"\r\n (click)=\"onOpenMeeting()\"\r\n >\r\n {{ meeting.meetingName }}\r\n </button>\r\n\r\n <p class=\"ieeesa-meeting-attendance-row__subtitle\">\r\n {{ resolveFieldValue(meeting.groupOrCommittee) }}<ng-container\r\n *ngIf=\"meeting.roomOrLocation\"\r\n > &middot; {{ meeting.roomOrLocation }}</ng-container>\r\n </p>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- MEETING DATE column. -->\r\n <dl class=\"ieeesa-meeting-attendance-row__col ieeesa-meeting-attendance-row__col--date\">\r\n <dt class=\"ieeesa-meeting-attendance-row__col-label\">\r\n {{ constants.eventGroupCard.meetingDateLabel }}\r\n </dt>\r\n <dd class=\"ieeesa-meeting-attendance-row__col-value\">\r\n {{ formattedDate }}\r\n </dd>\r\n </dl>\r\n\r\n <!-- TIME & TIMEZONE column. -->\r\n <dl class=\"ieeesa-meeting-attendance-row__col ieeesa-meeting-attendance-row__col--time\">\r\n <dt class=\"ieeesa-meeting-attendance-row__col-label\">\r\n {{ constants.meetingRow.timeTimezoneLabel }}\r\n </dt>\r\n <dd class=\"ieeesa-meeting-attendance-row__col-value\">\r\n {{ formattedTime }}\r\n </dd>\r\n </dl>\r\n\r\n <!-- Attendance indicator + actions column. -->\r\n <div class=\"ieeesa-meeting-attendance-row__actions\">\r\n <!-- Currently-attending pill shown only in the attending state. -->\r\n <span\r\n *ngIf=\"isCurrentlyAttending\"\r\n class=\"ieeesa-meeting-attendance-row__attending-pill\"\r\n >\r\n <span class=\"ieeesa-meeting-attendance-row__attending-dot\" aria-hidden=\"true\"></span>\r\n {{ constants.meetingRow.currentlyAttendingIndicator }}\r\n </span>\r\n\r\n <!-- Log-attendance button: shown in the log state with the permission. -->\r\n <button\r\n *ngIf=\"showLogAttendanceButton\"\r\n type=\"button\"\r\n class=\"ieeesa-meeting-attendance-row__action-button ieeesa-meeting-attendance-row__action-button--log\"\r\n [disabled]=\"isInFlight || !isActionable\"\r\n [attr.aria-label]=\"constants.meetingRow.ariaLabel.logAttendance\"\r\n (click)=\"onAttendanceAction()\"\r\n >\r\n {{ constants.meetingRow.logAttendanceLabel }}\r\n </button>\r\n\r\n <!-- Leave-meeting button: shown in the attending state with the permission. -->\r\n <button\r\n *ngIf=\"showLeaveMeetingButton\"\r\n type=\"button\"\r\n class=\"ieeesa-meeting-attendance-row__action-button ieeesa-meeting-attendance-row__action-button--leave\"\r\n [disabled]=\"isInFlight || !isActionable\"\r\n [attr.aria-label]=\"constants.meetingRow.ariaLabel.leaveMeeting\"\r\n (click)=\"onAttendanceAction()\"\r\n >\r\n {{ constants.meetingRow.leaveMeetingLabel }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-meeting-attendance-row{display:grid;grid-template-columns:minmax(220px,2fr) minmax(120px,1fr) minmax(180px,1.2fr) auto;align-items:center;column-gap:24px;min-height:72px;padding:16px 20px;background-color:#fff;font-family:Calibri Regular}.ieeesa-meeting-attendance-row__name-col{display:flex;flex-direction:column;gap:4px;min-width:0}.ieeesa-meeting-attendance-row__name-link{padding:0;border:0;background:none;text-align:left;text-decoration:underline;font-family:Calibri Bold;font-size:1rem;line-height:20px;color:#00629b;cursor:pointer}.ieeesa-meeting-attendance-row__name-link:disabled{color:#939094;text-decoration:none;cursor:default}.ieeesa-meeting-attendance-row__subtitle{margin:0;font-size:.875rem;line-height:18px;color:#333436}.ieeesa-meeting-attendance-row__col{display:flex;flex-direction:column;gap:4px;margin:0;min-width:0}.ieeesa-meeting-attendance-row__col-label{font-family:Calibri Bold;font-size:.75rem;letter-spacing:.03125em;text-transform:uppercase;color:#939094}.ieeesa-meeting-attendance-row__col-value{margin:0;font-size:.875rem;line-height:18px;color:#333436}.ieeesa-meeting-attendance-row__actions{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-shrink:0}.ieeesa-meeting-attendance-row__attending-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:16px;white-space:nowrap;font-size:.8125rem;color:#1a7f37;background-color:#e8f5ec}.ieeesa-meeting-attendance-row__attending-dot{width:8px;height:8px;border-radius:50%;background-color:#1a7f37}.ieeesa-meeting-attendance-row__action-button{min-width:146px;padding:10px 16px;border-radius:4px;font-family:Calibri Bold;font-size:.875rem;cursor:pointer}.ieeesa-meeting-attendance-row__action-button--log{border:1px solid #00629b;background-color:#00629b;color:#fff}.ieeesa-meeting-attendance-row__action-button--leave{border:1px solid #00629b;background-color:#fff;color:#00629b}.ieeesa-meeting-attendance-row__action-button:disabled{border-color:#939094;background-color:#939094;color:#fff;cursor:default}.ieeesa-meeting-attendance-row:not(.ieeesa-meeting-attendance-row--compact)+.ieeesa-meeting-attendance-row:not(.ieeesa-meeting-attendance-row--compact){border-top:1px solid #d7d6d6}.ieeesa-meeting-attendance-row--compact{grid-template-columns:minmax(180px,1.2fr) auto;padding:0;min-height:0}.ieeesa-meeting-attendance-row--compact .ieeesa-meeting-attendance-row__col--date{display:none}@media (max-width: 767px){.ieeesa-meeting-attendance-row{grid-template-columns:1fr;row-gap:12px}.ieeesa-meeting-attendance-row__actions{justify-content:flex-start}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
162
161
  }
163
162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MeetingAttendanceRowComponent, decorators: [{
164
163
  type: Component,
165
- args: [{ selector: 'ieeesa-meeting-attendance-row', standalone: true, imports: [CommonModule], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-meeting-attendance-row\">\r\n <div class=\"ieeesa-meeting-attendance-row__details\">\r\n <!-- Meeting-name link (emits openMeeting; non-actionable when id missing). -->\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-meeting-attendance-row__name-link\"\r\n [disabled]=\"!isActionable\"\r\n [attr.aria-label]=\"constants?.meetingRow?.ariaLabel?.meetingNameLink ?? 'View meeting details'\"\r\n (click)=\"onOpenMeeting()\"\r\n >\r\n {{ meeting?.meetingName }}\r\n </button>\r\n\r\n <dl class=\"ieeesa-meeting-attendance-row__meta\">\r\n <div class=\"ieeesa-meeting-attendance-row__meta-item\">\r\n <dt class=\"ieeesa-meeting-attendance-row__meta-term\">\r\n {{ constants?.groupsSection?.columns?.group ?? 'Group' }}\r\n </dt>\r\n <dd class=\"ieeesa-meeting-attendance-row__meta-value\">\r\n {{ resolveFieldValue(meeting?.groupOrCommittee) }}\r\n </dd>\r\n </div>\r\n\r\n <div class=\"ieeesa-meeting-attendance-row__meta-item\">\r\n <dt class=\"ieeesa-meeting-attendance-row__meta-term\">\r\n {{ constants?.groupsSection?.columns?.affiliation ?? 'Location' }}\r\n </dt>\r\n <dd class=\"ieeesa-meeting-attendance-row__meta-value\">\r\n {{ resolveFieldValue(meeting?.roomOrLocation) }}\r\n </dd>\r\n </div>\r\n\r\n <div class=\"ieeesa-meeting-attendance-row__meta-item\">\r\n <dt class=\"ieeesa-meeting-attendance-row__meta-term\">Date</dt>\r\n <dd class=\"ieeesa-meeting-attendance-row__meta-value\">\r\n {{ formattedDate }}\r\n </dd>\r\n </div>\r\n\r\n <div class=\"ieeesa-meeting-attendance-row__meta-item\">\r\n <dt class=\"ieeesa-meeting-attendance-row__meta-term\">Time</dt>\r\n <dd class=\"ieeesa-meeting-attendance-row__meta-value\">\r\n {{ formattedTime }}\r\n </dd>\r\n </div>\r\n </dl>\r\n </div>\r\n\r\n <div class=\"ieeesa-meeting-attendance-row__actions\">\r\n <!-- Currently-attending indicator shown only in the attending state. -->\r\n <span\r\n *ngIf=\"isCurrentlyAttending\"\r\n class=\"ieeesa-meeting-attendance-row__attending-indicator\"\r\n >\r\n {{ constants?.meetingRow?.currentlyAttendingIndicator ?? 'Currently Attending' }}\r\n </span>\r\n\r\n <!-- Log-attendance button: shown in the log state with the permission. -->\r\n <button\r\n *ngIf=\"showLogAttendanceButton\"\r\n type=\"button\"\r\n class=\"ieeesa-meeting-attendance-row__action-button ieeesa-meeting-attendance-row__action-button--log\"\r\n [disabled]=\"isInFlight || !isActionable\"\r\n [attr.aria-label]=\"constants?.meetingRow?.ariaLabel?.logAttendance ?? 'Log attendance for this meeting'\"\r\n (click)=\"onAttendanceAction()\"\r\n >\r\n {{ constants?.meetingRow?.logAttendanceLabel ?? 'Log Attendance' }}\r\n </button>\r\n\r\n <!-- Leave-meeting button: shown in the attending state with the permission. -->\r\n <button\r\n *ngIf=\"showLeaveMeetingButton\"\r\n type=\"button\"\r\n class=\"ieeesa-meeting-attendance-row__action-button ieeesa-meeting-attendance-row__action-button--leave\"\r\n [disabled]=\"isInFlight || !isActionable\"\r\n [attr.aria-label]=\"constants?.meetingRow?.ariaLabel?.leaveMeeting ?? 'Leave this meeting'\"\r\n (click)=\"onAttendanceAction()\"\r\n >\r\n {{ constants?.meetingRow?.leaveMeetingLabel ?? 'Leave Meeting' }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-meeting-attendance-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid #d7d6d6}.ieeesa-meeting-attendance-row__details{display:flex;flex-direction:column;gap:8px;min-width:0}.ieeesa-meeting-attendance-row__name-link{padding:0;border:0;background:none;text-align:left;text-decoration:underline;color:#00629b;cursor:pointer}.ieeesa-meeting-attendance-row__name-link:disabled{color:#939094;text-decoration:none;cursor:default}.ieeesa-meeting-attendance-row__meta{display:flex;flex-wrap:wrap;gap:4px 24px;margin:0}.ieeesa-meeting-attendance-row__meta-item{display:flex;flex-direction:column;gap:4px}.ieeesa-meeting-attendance-row__meta-term{margin:0;font-size:.75rem;color:#939094}.ieeesa-meeting-attendance-row__meta-value{margin:0;font-size:.875rem;color:#000}.ieeesa-meeting-attendance-row__actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.ieeesa-meeting-attendance-row__attending-indicator{display:inline-flex;align-items:center;padding:4px 12px;border-radius:16px;font-size:.8125rem;color:#00629b;background-color:#f0f5f9}.ieeesa-meeting-attendance-row__action-button{padding:8px 16px;border-radius:4px;font-size:.875rem;cursor:pointer}.ieeesa-meeting-attendance-row__action-button--log{border:1px solid #00629b;background-color:#00629b;color:#fff}.ieeesa-meeting-attendance-row__action-button--leave{border:1px solid #00629b;background-color:#fff;color:#00629b}.ieeesa-meeting-attendance-row__action-button:disabled{border-color:#939094;background-color:#939094;color:#fff;cursor:default}\n"] }]
164
+ args: [{ selector: 'ieeesa-meeting-attendance-row', standalone: true, imports: [CommonModule], encapsulation: ViewEncapsulation.None, template: "<div\r\n class=\"ieeesa-meeting-attendance-row\"\r\n [class.ieeesa-meeting-attendance-row--compact]=\"compact\"\r\n>\r\n <!-- Meeting name + group/location (hidden in the compact standalone variant). -->\r\n <div class=\"ieeesa-meeting-attendance-row__name-col\">\r\n <ng-container *ngIf=\"!compact\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-meeting-attendance-row__name-link\"\r\n [disabled]=\"!isActionable\"\r\n [attr.aria-label]=\"constants.meetingRow.ariaLabel.meetingNameLink\"\r\n (click)=\"onOpenMeeting()\"\r\n >\r\n {{ meeting.meetingName }}\r\n </button>\r\n\r\n <p class=\"ieeesa-meeting-attendance-row__subtitle\">\r\n {{ resolveFieldValue(meeting.groupOrCommittee) }}<ng-container\r\n *ngIf=\"meeting.roomOrLocation\"\r\n > &middot; {{ meeting.roomOrLocation }}</ng-container>\r\n </p>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- MEETING DATE column. -->\r\n <dl class=\"ieeesa-meeting-attendance-row__col ieeesa-meeting-attendance-row__col--date\">\r\n <dt class=\"ieeesa-meeting-attendance-row__col-label\">\r\n {{ constants.eventGroupCard.meetingDateLabel }}\r\n </dt>\r\n <dd class=\"ieeesa-meeting-attendance-row__col-value\">\r\n {{ formattedDate }}\r\n </dd>\r\n </dl>\r\n\r\n <!-- TIME & TIMEZONE column. -->\r\n <dl class=\"ieeesa-meeting-attendance-row__col ieeesa-meeting-attendance-row__col--time\">\r\n <dt class=\"ieeesa-meeting-attendance-row__col-label\">\r\n {{ constants.meetingRow.timeTimezoneLabel }}\r\n </dt>\r\n <dd class=\"ieeesa-meeting-attendance-row__col-value\">\r\n {{ formattedTime }}\r\n </dd>\r\n </dl>\r\n\r\n <!-- Attendance indicator + actions column. -->\r\n <div class=\"ieeesa-meeting-attendance-row__actions\">\r\n <!-- Currently-attending pill shown only in the attending state. -->\r\n <span\r\n *ngIf=\"isCurrentlyAttending\"\r\n class=\"ieeesa-meeting-attendance-row__attending-pill\"\r\n >\r\n <span class=\"ieeesa-meeting-attendance-row__attending-dot\" aria-hidden=\"true\"></span>\r\n {{ constants.meetingRow.currentlyAttendingIndicator }}\r\n </span>\r\n\r\n <!-- Log-attendance button: shown in the log state with the permission. -->\r\n <button\r\n *ngIf=\"showLogAttendanceButton\"\r\n type=\"button\"\r\n class=\"ieeesa-meeting-attendance-row__action-button ieeesa-meeting-attendance-row__action-button--log\"\r\n [disabled]=\"isInFlight || !isActionable\"\r\n [attr.aria-label]=\"constants.meetingRow.ariaLabel.logAttendance\"\r\n (click)=\"onAttendanceAction()\"\r\n >\r\n {{ constants.meetingRow.logAttendanceLabel }}\r\n </button>\r\n\r\n <!-- Leave-meeting button: shown in the attending state with the permission. -->\r\n <button\r\n *ngIf=\"showLeaveMeetingButton\"\r\n type=\"button\"\r\n class=\"ieeesa-meeting-attendance-row__action-button ieeesa-meeting-attendance-row__action-button--leave\"\r\n [disabled]=\"isInFlight || !isActionable\"\r\n [attr.aria-label]=\"constants.meetingRow.ariaLabel.leaveMeeting\"\r\n (click)=\"onAttendanceAction()\"\r\n >\r\n {{ constants.meetingRow.leaveMeetingLabel }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-meeting-attendance-row{display:grid;grid-template-columns:minmax(220px,2fr) minmax(120px,1fr) minmax(180px,1.2fr) auto;align-items:center;column-gap:24px;min-height:72px;padding:16px 20px;background-color:#fff;font-family:Calibri Regular}.ieeesa-meeting-attendance-row__name-col{display:flex;flex-direction:column;gap:4px;min-width:0}.ieeesa-meeting-attendance-row__name-link{padding:0;border:0;background:none;text-align:left;text-decoration:underline;font-family:Calibri Bold;font-size:1rem;line-height:20px;color:#00629b;cursor:pointer}.ieeesa-meeting-attendance-row__name-link:disabled{color:#939094;text-decoration:none;cursor:default}.ieeesa-meeting-attendance-row__subtitle{margin:0;font-size:.875rem;line-height:18px;color:#333436}.ieeesa-meeting-attendance-row__col{display:flex;flex-direction:column;gap:4px;margin:0;min-width:0}.ieeesa-meeting-attendance-row__col-label{font-family:Calibri Bold;font-size:.75rem;letter-spacing:.03125em;text-transform:uppercase;color:#939094}.ieeesa-meeting-attendance-row__col-value{margin:0;font-size:.875rem;line-height:18px;color:#333436}.ieeesa-meeting-attendance-row__actions{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-shrink:0}.ieeesa-meeting-attendance-row__attending-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:16px;white-space:nowrap;font-size:.8125rem;color:#1a7f37;background-color:#e8f5ec}.ieeesa-meeting-attendance-row__attending-dot{width:8px;height:8px;border-radius:50%;background-color:#1a7f37}.ieeesa-meeting-attendance-row__action-button{min-width:146px;padding:10px 16px;border-radius:4px;font-family:Calibri Bold;font-size:.875rem;cursor:pointer}.ieeesa-meeting-attendance-row__action-button--log{border:1px solid #00629b;background-color:#00629b;color:#fff}.ieeesa-meeting-attendance-row__action-button--leave{border:1px solid #00629b;background-color:#fff;color:#00629b}.ieeesa-meeting-attendance-row__action-button:disabled{border-color:#939094;background-color:#939094;color:#fff;cursor:default}.ieeesa-meeting-attendance-row:not(.ieeesa-meeting-attendance-row--compact)+.ieeesa-meeting-attendance-row:not(.ieeesa-meeting-attendance-row--compact){border-top:1px solid #d7d6d6}.ieeesa-meeting-attendance-row--compact{grid-template-columns:minmax(180px,1.2fr) auto;padding:0;min-height:0}.ieeesa-meeting-attendance-row--compact .ieeesa-meeting-attendance-row__col--date{display:none}@media (max-width: 767px){.ieeesa-meeting-attendance-row{grid-template-columns:1fr;row-gap:12px}.ieeesa-meeting-attendance-row__actions{justify-content:flex-start}}\n"] }]
166
165
  }], propDecorators: { meeting: [{
167
166
  type: Input
168
167
  }], attendanceState: [{
@@ -171,6 +170,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
171
170
  type: Input
172
171
  }], permissions: [{
173
172
  type: Input
173
+ }], compact: [{
174
+ type: Input
174
175
  }], openMeeting: [{
175
176
  type: Output
176
177
  }], logAttendance: [{
@@ -178,4 +179,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
178
179
  }], leaveMeeting: [{
179
180
  type: Output
180
181
  }] } });
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVldGluZy1hdHRlbmRhbmNlLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9jb21wb25lbnRzL21lZXRpbmctYXR0ZW5kYW5jZS1yb3cvbWVldGluZy1hdHRlbmRhbmNlLXJvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9jb21wb25lbnRzL21lZXRpbmctYXR0ZW5kYW5jZS1yb3cvbWVldGluZy1hdHRlbmRhbmNlLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEdBQ3hCLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxLQUFLLFNBQVMsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBRXpEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFVSCxNQUFNLE9BQU8sNkJBQTZCO0lBVDFDO1FBVUUsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUt0QiwyRUFBMkU7UUFDbEUsb0JBQWUsR0FBb0IsZUFBZSxDQUFDLGFBQWEsQ0FBQztRQUUxRSw0RUFBNEU7UUFDbkUsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUU1QiwwRUFBMEU7UUFDakUsZ0JBQVcsR0FBZ0M7WUFDbEQs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QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNLLFNBQVMsQ0FBQyxRQUE0QixFQUFFLE1BQWM7UUFDNUQsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzdELE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQzdELENBQUM7K0dBbktVLDZCQUE2QjttR0FBN0IsNkJBQTZCLDBUQzFDMUMseStHQWtGQSw0MVVEN0NZLFlBQVk7OzRGQUtYLDZCQUE2QjtrQkFUekMsU0FBUzsrQkFFRSwrQkFBK0IsY0FDN0IsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLGlCQUdSLGlCQUFpQixDQUFDLElBQUk7OEJBTTVCLE9BQU87c0JBQWYsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFNSSxXQUFXO3NCQUFwQixNQUFNO2dCQUdHLGFBQWE7c0JBQXRCLE1BQU07Z0JBR0csWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nO1xyXG5pbXBvcnQgeyBBdHRlbmRhbmNlQWN0aW9uUGVybWlzc2lvbnMgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXR0ZW5kYW5jZS1hY3Rpb24tcGVybWlzc2lvbnMubW9kZWwnO1xyXG5pbXBvcnQgeyBBdHRlbmRhbmNlU3RhdGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXR0ZW5kYW5jZS1zdGF0ZS5tb2RlbCc7XHJcbmltcG9ydCB7IE1lZXRpbmdSb3cgfSBmcm9tICcuLi8uLi9tb2RlbHMvbWVldGluZy1yb3cubW9kZWwnO1xyXG5pbXBvcnQgeyBEYXRlRm9ybWF0cyB9IGZyb20gJy4uLy4uL2Fzc2V0cy9kYXRlLWZvcm1hdHMnO1xyXG5pbXBvcnQge1xyXG4gIEF0dGVuZGFuY2VBY3Rpb24sXHJcbiAgcmVzb2x2ZUF0dGVuZGFuY2VBY3Rpb24sXHJcbn0gZnJvbSAnLi4vLi4vdXRpbHMvYXR0ZW5kYW5jZS1hY3Rpb24udXRpbCc7XHJcbmltcG9ydCAqIGFzIGNvbnN0YW50cyBmcm9tICcuLi8uLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5cclxuLyoqXHJcbiAqIE1lZXRpbmdfQXR0ZW5kYW5jZV9Sb3cgcmVuZGVycyBhIHNpbmdsZSBtZWV0aW5nIHdpdGhpbiBhbiBldmVudC1ncm91cCBjYXJkOlxyXG4gKiB0aGUgbWVldGluZy1uYW1lIGxpbmssIGdyb3VwL2NvbW1pdHRlZSwgcm9vbS9sb2NhdGlvbiwgZGF0ZSwgYW5kXHJcbiAqIHRpbWUrdGltZXpvbmUgKGFsbCBsdXhvbi1mb3JtYXR0ZWQpLCB0b2dldGhlciB3aXRoIHRoZSBhdHRlbmRhbmNlIGFjdGlvblxyXG4gKiBidXR0b24gdGhhdCBkcml2ZXMgdGhlIHBlci1tZWV0aW5nIGF0dGVuZGFuY2Ugc3RhdGUgbWFjaGluZS5cclxuICpcclxuICogVGhlIGNvbXBvbmVudCBpcyBwdXJlbHkgcHJlc2VudGF0aW9uYWwg4oCUIGl0IGVtaXRzIG5hdmlnYXRpb24gYW5kIGF0dGVuZGFuY2VcclxuICogaW50ZW50cyB2aWEgYEBPdXRwdXQoKWAgYW5kIG5ldmVyIHBlcmZvcm1zIG5hdmlnYXRpb24gb3IgSFRUUCBpdHNlbGYuIFRoZVxyXG4gKiBhY3Rpb24gYnV0dG9uIGRlbGVnYXRlcyB0byB0aGUgcHVyZSBgcmVzb2x2ZUF0dGVuZGFuY2VBY3Rpb25gIGhhbmRsZXIgc28gdGhlXHJcbiAqIGVtaXQvZ3VhcmQgbG9naWMgaXMgc2hhcmVkIHdpdGggdGhlIHByb3BlcnR5LXRlc3RlZCBjb3JlIChQcm9wZXJ0eSAxKSwgYW5kIHRoZVxyXG4gKiBkaXNwbGF5ZWQgc3RhdGUgb25seSBhZHZhbmNlcyB3aGVuIHRoZSBob3N0IHVwZGF0ZXMgYGF0dGVuZGFuY2VTdGF0ZWAuXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIE1lZXRpbmdBdHRlbmRhbmNlUm93Q29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3cnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21lZXRpbmctYXR0ZW5kYW5jZS1yb3cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21lZXRpbmctYXR0ZW5kYW5jZS1yb3cuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVldGluZ0F0dGVuZGFuY2VSb3dDb21wb25lbnQge1xyXG4gIGNvbnN0YW50cyA9IGNvbnN0YW50cztcclxuXHJcbiAgLyoqIFRoZSBtZWV0aW5nIHJlbmRlcmVkIGJ5IHRoaXMgcm93LiAqL1xyXG4gIEBJbnB1dCgpIG1lZXRpbmchOiBNZWV0aW5nUm93O1xyXG5cclxuICAvKiogVGhlIGN1cnJlbnQgYXR0ZW5kYW5jZSBzdGF0ZSBjb250cm9sbGluZyBsYWJlbC9pbmRpY2F0b3IgYW5kIGFjdGlvbi4gKi9cclxuICBASW5wdXQoKSBhdHRlbmRhbmNlU3RhdGU6IEF0dGVuZGFuY2VTdGF0ZSA9IEF0dGVuZGFuY2VTdGF0ZS5OT1RfQVRURU5ESU5HO1xyXG5cclxuICAvKiogV2hldGhlciBhbiBhdHRlbmRhbmNlIGFjdGlvbiBmb3IgdGhpcyBtZWV0aW5nIGlzIGF3YWl0aW5nIHJlc29sdXRpb24uICovXHJcbiAgQElucHV0KCkgaXNJbkZsaWdodCA9IGZhbHNlO1xyXG5cclxuICAvKiogSG9zdCBwZXJtaXNzaW9ucyBnYXRpbmcgdGhlIGxvZy1hdHRlbmRhbmNlIC8gbGVhdmUtbWVldGluZyBidXR0b25zLiAqL1xyXG4gIEBJbnB1dCgpIHBlcm1pc3Npb25zOiBBdHRlbmRhbmNlQWN0aW9uUGVybWlzc2lvbnMgPSB7XHJcbiAgICBjYW5Mb2dBdHRlbmRhbmNlOiBmYWxzZSxcclxuICAgIGNhbkxlYXZlTWVldGluZzogZmFsc2UsXHJcbiAgfTtcclxuXHJcbiAgLyoqIEVtaXRzIHRoZSBtZWV0aW5nIGlkIHdoZW4gdGhlIG1lZXRpbmctbmFtZSBsaW5rIGlzIGFjdGl2YXRlZCAoUmVxIDcuNCkuICovXHJcbiAgQE91dHB1dCgpIG9wZW5NZWV0aW5nID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKiBFbWl0cyB0aGUgbWVldGluZyBpZCB0byByZXF1ZXN0IGxvZ2dpbmcgYXR0ZW5kYW5jZSAoUmVxIDcuNykuICovXHJcbiAgQE91dHB1dCgpIGxvZ0F0dGVuZGFuY2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqIEVtaXRzIHRoZSBtZWV0aW5nIGlkIHRvIHJlcXVlc3QgbGVhdmluZyB0aGUgbWVldGluZyAoUmVxIDcuOCkuICovXHJcbiAgQE91dHB1dCgpIGxlYXZlTWVldGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAvKiogRXhwb3NlIHRoZSBlbnVtIHRvIHRoZSB0ZW1wbGF0ZSBmb3Igc3RhdGUgY29tcGFyaXNvbnMuICovXHJcbiAgcmVhZG9ubHkgQXR0ZW5kYW5jZVN0YXRlID0gQXR0ZW5kYW5jZVN0YXRlO1xyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoaXMgcm93IGlzIGFjdGlvbmFibGUg4oCUIGEgbm9uLWVtcHR5IGBtZWV0aW5nSWRgIGlzIHJlcXVpcmVkIGZvciB0aGVcclxuICAgKiBtZWV0aW5nLW5hbWUgbGluayBhbmQgYWN0aW9uIGJ1dHRvbiB0byBlbWl0IGFueXRoaW5nIChSZXEgNy4xMCkuXHJcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSB3aGVuIHRoZSByb3cgaGFzIGEgdXNhYmxlIG1lZXRpbmcgaWQuXHJcbiAgICogQG1lbWJlcm9mIE1lZXRpbmdBdHRlbmRhbmNlUm93Q29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0IGlzQWN0aW9uYWJsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMubWVldGluZz8ubWVldGluZ0lkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0aGUgcm93IGlzIGluIHRoZSBjdXJyZW50bHktYXR0ZW5kaW5nIHN0YXRlLCB3aGljaCBzaG93cyB0aGVcclxuICAgKiBjdXJyZW50bHktYXR0ZW5kaW5nIGluZGljYXRvciBhbmQgdGhlIGxlYXZlLW1lZXRpbmcgYWN0aW9uIChSZXEgNy41KS5cclxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIHdoZW4gdGhlIGF0dGVuZGFuY2Ugc3RhdGUgaXMgYENVUlJFTlRMWV9BVFRFTkRJTkdgLlxyXG4gICAqIEBtZW1iZXJvZiBNZWV0aW5nQXR0ZW5kYW5jZVJvd0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCBpc0N1cnJlbnRseUF0dGVuZGluZygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmF0dGVuZGFuY2VTdGF0ZSA9PT0gQXR0ZW5kYW5jZVN0YXRlLkNVUlJFTlRMWV9BVFRFTkRJTkc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoZSBsb2ctYXR0ZW5kYW5jZSBidXR0b24gc2hvdWxkIGJlIHNob3duOiBvbmx5IHdoZW4gdGhlIHJvdyBpcyBpblxyXG4gICAqIHRoZSBsb2cgc3RhdGUgKG5vdCBjdXJyZW50bHkgYXR0ZW5kaW5nKSBhbmQgdGhlIGhvc3QgZ3JhbnRzXHJcbiAgICogYGNhbkxvZ0F0dGVuZGFuY2VgIChSZXEgNy42LCAxMi4xKS5cclxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIHdoZW4gdGhlIGxvZy1hdHRlbmRhbmNlIGJ1dHRvbiBpcyB2aXNpYmxlLlxyXG4gICAqIEBtZW1iZXJvZiBNZWV0aW5nQXR0ZW5kYW5jZVJvd0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCBzaG93TG9nQXR0ZW5kYW5jZUJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5pc0N1cnJlbnRseUF0dGVuZGluZyAmJiAhIXRoaXMucGVybWlzc2lvbnM/LmNhbkxvZ0F0dGVuZGFuY2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoZSBsZWF2ZS1tZWV0aW5nIGJ1dHRvbiBzaG91bGQgYmUgc2hvd246IG9ubHkgd2hlbiB0aGUgcm93IGlzIGluXHJcbiAgICogdGhlIGN1cnJlbnRseS1hdHRlbmRpbmcgc3RhdGUgYW5kIHRoZSBob3N0IGdyYW50cyBgY2FuTGVhdmVNZWV0aW5nYFxyXG4gICAqIChSZXEgNy41LCAxMi4yKS5cclxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIHdoZW4gdGhlIGxlYXZlLW1lZXRpbmcgYnV0dG9uIGlzIHZpc2libGUuXHJcbiAgICogQG1lbWJlcm9mIE1lZXRpbmdBdHRlbmRhbmNlUm93Q29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0IHNob3dMZWF2ZU1lZXRpbmdCdXR0b24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0N1cnJlbnRseUF0dGVuZGluZyAmJiAhIXRoaXMucGVybWlzc2lvbnM/LmNhbkxlYXZlTWVldGluZztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc29sdmVzIGEgZ3JvdXAtb3ItY29tbWl0dGVlIC8gcm9vbS1vci1sb2NhdGlvbiBmaWVsZCB2YWx1ZSwgc3Vic3RpdHV0aW5nXHJcbiAgICogdGhlIGVtcHR5LWZpZWxkIHBsYWNlaG9sZGVyIGZyb20gYGNvbnN0YW50cy5qc29uYCB3aGVuIHRoZSB2YWx1ZSBpcyBlbXB0eSBvclxyXG4gICAqIHVuZGVmaW5lZCAoUmVxIDcuMikuXHJcbiAgICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IHZhbHVlIC0gVGhlIHJhdyBmaWVsZCB2YWx1ZSBmcm9tIHRoZSBtZWV0aW5nLlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIHZhbHVlIHRvIGRpc3BsYXksIG9yIHRoZSBlbXB0eS1maWVsZCBwbGFjZWhvbGRlci5cclxuICAgKiBAbWVtYmVyb2YgTWVldGluZ0F0dGVuZGFuY2VSb3dDb21wb25lbnRcclxuICAgKi9cclxuICByZXNvbHZlRmllbGRWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHBsYWNlaG9sZGVyID1cclxuICAgICAgdGhpcy5jb25zdGFudHM/Lm1lZXRpbmdSb3c/LmVtcHR5RmllbGRQbGFjZWhvbGRlciA/PyAn4oCUJztcclxuICAgIHJldHVybiB2YWx1ZSAmJiB2YWx1ZS50cmltKCkubGVuZ3RoID4gMCA/IHZhbHVlIDogcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGb3JtYXRzIHRoZSBtZWV0aW5nIGRhdGUgZm9yIGRpc3BsYXkgdXNpbmcgdGhlIHNoYXJlZCBsdXhvbiBkaXNwbGF5IGZvcm1hdFxyXG4gICAqIChSZXEgNy4zKS4gRmFsbHMgYmFjayB0byB0aGUgcmF3IHZhbHVlIHdoZW4gaXQgY2Fubm90IGJlIHBhcnNlZC5cclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBmb3JtYXR0ZWQgbWVldGluZyBkYXRlLlxyXG4gICAqIEBtZW1iZXJvZiBNZWV0aW5nQXR0ZW5kYW5jZVJvd0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCBmb3JtYXR0ZWREYXRlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtYXRJc28odGhpcy5tZWV0aW5nPy5tZWV0aW5nRGF0ZSwgRGF0ZUZvcm1hdHMuZGlzcGxheUZvcm1hdCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGb3JtYXRzIHRoZSBtZWV0aW5nIHRpbWUgKyB0aW1lem9uZSBmb3IgZGlzcGxheSB1c2luZyBsdXhvbiAoUmVxIDcuMykuXHJcbiAgICogVGhlIHRpbWV6b25lIGFiYnJldmlhdGlvbiBmcm9tIHRoZSBtZWV0aW5nIG1vZGVsIGlzIGFwcGVuZGVkIHRvIHRoZSBwYXJzZWRcclxuICAgKiB0aW1lLiBGYWxscyBiYWNrIHRvIHRoZSByYXcgdmFsdWUgd2hlbiBpdCBjYW5ub3QgYmUgcGFyc2VkLlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGZvcm1hdHRlZCBtZWV0aW5nIHRpbWUgd2l0aCB0aW1lem9uZS5cclxuICAgKiBAbWVtYmVyb2YgTWVldGluZ0F0dGVuZGFuY2VSb3dDb21wb25lbnRcclxuICAgKi9cclxuICBnZXQgZm9ybWF0dGVkVGltZSgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdGltZSA9IHRoaXMuZm9ybWF0SXNvKFxyXG4gICAgICB0aGlzLm1lZXRpbmc/Lm1lZXRpbmdUaW1lLFxyXG4gICAgICBEYXRlRm9ybWF0cy50aW1lTWVyaWRpZW1Gb3JtYXRcclxuICAgICk7XHJcbiAgICBjb25zdCB0aW1lem9uZSA9IHRoaXMubWVldGluZz8udGltZXpvbmUgPz8gJyc7XHJcbiAgICByZXR1cm4gdGltZXpvbmUgPyBgJHt0aW1lfSAke3RpbWV6b25lfWAgOiB0aW1lO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBhY3RpdmF0aW9uIG9mIHRoZSBhdHRlbmRhbmNlIGFjdGlvbiBidXR0b24uIERlbGVnYXRlcyB0byB0aGUgcHVyZVxyXG4gICAqIGByZXNvbHZlQXR0ZW5kYW5jZUFjdGlvbmAgaGFuZGxlciBhbmQgZW1pdHMgZXhhY3RseSBvbmUgZXZlbnQgYmFzZWQgb24gdGhlXHJcbiAgICogcmVzb2x2ZWQgYWN0aW9uOiBgbG9nQXR0ZW5kYW5jZWAgZm9yIGBMT0dfQVRURU5EQU5DRWAsIGBsZWF2ZU1lZXRpbmdgIGZvclxyXG4gICAqIGBMRUFWRV9NRUVUSU5HYCwgYW5kIG5vdGhpbmcgZm9yIGBOT05FYCAoZW1wdHkgaWQgb3IgaW4tZmxpZ2h0KVxyXG4gICAqIChSZXEgNy43LCA3LjgsIDcuOSwgNy4xMCwgMTMuNikuXHJcbiAgICogQG1lbWJlcm9mIE1lZXRpbmdBdHRlbmRhbmNlUm93Q29tcG9uZW50XHJcbiAgICovXHJcbiAgb25BdHRlbmRhbmNlQWN0aW9uKCk6IHZvaWQge1xyXG4gICAgY29uc3QgYWN0aW9uID0gcmVzb2x2ZUF0dGVuZGFuY2VBY3Rpb24oXHJcbiAgICAgIHRoaXMuYXR0ZW5kYW5jZVN0YXRlLFxyXG4gICAgICB0aGlzLmlzSW5GbGlnaHQsXHJcbiAgICAgIHRoaXMubWVldGluZz8ubWVldGluZ0lkXHJcbiAgICApO1xyXG5cclxuICAgIGlmIChhY3Rpb24gPT09IEF0dGVuZGFuY2VBY3Rpb24uTE9HX0FUVEVOREFOQ0UpIHtcclxuICAgICAgdGhpcy5sb2dBdHRlbmRhbmNlLmVtaXQodGhpcy5tZWV0aW5nLm1lZXRpbmdJZCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYWN0aW9uID09PSBBdHRlbmRhbmNlQWN0aW9uLkxFQVZFX01FRVRJTkcpIHtcclxuICAgICAgdGhpcy5sZWF2ZU1lZXRpbmcuZW1pdCh0aGlzLm1lZXRpbmcubWVldGluZ0lkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgYWN0aXZhdGlvbiBvZiB0aGUgbWVldGluZy1uYW1lIGxpbmsuIEVtaXRzIHRoZSBtZWV0aW5nIGlkIG9ubHkgd2hlblxyXG4gICAqIHRoZSByb3cgaXMgYWN0aW9uYWJsZSAobm9uLWVtcHR5IG1lZXRpbmcgaWQpIChSZXEgNy40LCA3LjEwKS5cclxuICAgKiBAbWVtYmVyb2YgTWVldGluZ0F0dGVuZGFuY2VSb3dDb21wb25lbnRcclxuICAgKi9cclxuICBvbk9wZW5NZWV0aW5nKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzQWN0aW9uYWJsZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLm9wZW5NZWV0aW5nLmVtaXQodGhpcy5tZWV0aW5nLm1lZXRpbmdJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQYXJzZXMgYW4gSVNPIHN0cmluZyB3aXRoIGx1eG9uIGFuZCBmb3JtYXRzIGl0IHdpdGggdGhlIHN1cHBsaWVkIHRva2VuLFxyXG4gICAqIHJldHVybmluZyB0aGUgcmF3IHZhbHVlIHVuY2hhbmdlZCB3aGVuIGl0IGlzIG1pc3Npbmcgb3IgdW5wYXJzZWFibGUuXHJcbiAgICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IGlzb1ZhbHVlIC0gVGhlIElTTyBkYXRlL3RpbWUgc3RyaW5nLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtYXQgLSBUaGUgbHV4b24gZm9ybWF0IHRva2VuLlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGZvcm1hdHRlZCB2YWx1ZSBvciB0aGUgcmF3L2VtcHR5IGZhbGxiYWNrLlxyXG4gICAqIEBtZW1iZXJvZiBNZWV0aW5nQXR0ZW5kYW5jZVJvd0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZm9ybWF0SXNvKGlzb1ZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQsIGZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICghaXNvVmFsdWUpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFyc2VkID0gRGF0ZVRpbWUuZnJvbUlTTyhpc29WYWx1ZSwgeyBzZXRab25lOiB0cnVlIH0pO1xyXG4gICAgcmV0dXJuIHBhcnNlZC5pc1ZhbGlkID8gcGFyc2VkLnRvRm9ybWF0KGZvcm1hdCkgOiBpc29WYWx1ZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImllZWVzYS1tZWV0aW5nLWF0dGVuZGFuY2Utcm93XCI+XHJcbiAgPGRpdiBjbGFzcz1cImllZWVzYS1tZWV0aW5nLWF0dGVuZGFuY2Utcm93X19kZXRhaWxzXCI+XHJcbiAgICA8IS0tIE1lZXRpbmctbmFtZSBsaW5rIChlbWl0cyBvcGVuTWVldGluZzsgbm9uLWFjdGlvbmFibGUgd2hlbiBpZCBtaXNzaW5nKS4gLS0+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS1tZWV0aW5nLWF0dGVuZGFuY2Utcm93X19uYW1lLWxpbmtcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiIWlzQWN0aW9uYWJsZVwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzPy5tZWV0aW5nUm93Py5hcmlhTGFiZWw/Lm1lZXRpbmdOYW1lTGluayA/PyAnVmlldyBtZWV0aW5nIGRldGFpbHMnXCJcclxuICAgICAgKGNsaWNrKT1cIm9uT3Blbk1lZXRpbmcoKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IG1lZXRpbmc/Lm1lZXRpbmdOYW1lIH19XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8ZGwgY2xhc3M9XCJpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fbWV0YVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX21ldGEtaXRlbVwiPlxyXG4gICAgICAgIDxkdCBjbGFzcz1cImllZWVzYS1tZWV0aW5nLWF0dGVuZGFuY2Utcm93X19tZXRhLXRlcm1cIj5cclxuICAgICAgICAgIHt7IGNvbnN0YW50cz8uZ3JvdXBzU2VjdGlvbj8uY29sdW1ucz8uZ3JvdXAgPz8gJ0dyb3VwJyB9fVxyXG4gICAgICAgIDwvZHQ+XHJcbiAgICAgICAgPGRkIGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX21ldGEtdmFsdWVcIj5cclxuICAgICAgICAgIHt7IHJlc29sdmVGaWVsZFZhbHVlKG1lZXRpbmc/Lmdyb3VwT3JDb21taXR0ZWUpIH19XHJcbiAgICAgICAgPC9kZD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX21ldGEtaXRlbVwiPlxyXG4gICAgICAgIDxkdCBjbGFzcz1cImllZWVzYS1tZWV0aW5nLWF0dGVuZGFuY2Utcm93X19tZXRhLXRlcm1cIj5cclxuICAgICAgICAgIHt7IGNvbnN0YW50cz8uZ3JvdXBzU2VjdGlvbj8uY29sdW1ucz8uYWZmaWxpYXRpb24gPz8gJ0xvY2F0aW9uJyB9fVxyXG4gICAgICAgIDwvZHQ+XHJcbiAgICAgICAgPGRkIGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX21ldGEtdmFsdWVcIj5cclxuICAgICAgICAgIHt7IHJlc29sdmVGaWVsZFZhbHVlKG1lZXRpbmc/LnJvb21PckxvY2F0aW9uKSB9fVxyXG4gICAgICAgIDwvZGQ+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImllZWVzYS1tZWV0aW5nLWF0dGVuZGFuY2Utcm93X19tZXRhLWl0ZW1cIj5cclxuICAgICAgICA8ZHQgY2xhc3M9XCJpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fbWV0YS10ZXJtXCI+RGF0ZTwvZHQ+XHJcbiAgICAgICAgPGRkIGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX21ldGEtdmFsdWVcIj5cclxuICAgICAgICAgIHt7IGZvcm1hdHRlZERhdGUgfX1cclxuICAgICAgICA8L2RkPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fbWV0YS1pdGVtXCI+XHJcbiAgICAgICAgPGR0IGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX21ldGEtdGVybVwiPlRpbWU8L2R0PlxyXG4gICAgICAgIDxkZCBjbGFzcz1cImllZWVzYS1tZWV0aW5nLWF0dGVuZGFuY2Utcm93X19tZXRhLXZhbHVlXCI+XHJcbiAgICAgICAgICB7eyBmb3JtYXR0ZWRUaW1lIH19XHJcbiAgICAgICAgPC9kZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2RsPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX2FjdGlvbnNcIj5cclxuICAgIDwhLS0gQ3VycmVudGx5LWF0dGVuZGluZyBpbmRpY2F0b3Igc2hvd24gb25seSBpbiB0aGUgYXR0ZW5kaW5nIHN0YXRlLiAtLT5cclxuICAgIDxzcGFuXHJcbiAgICAgICpuZ0lmPVwiaXNDdXJyZW50bHlBdHRlbmRpbmdcIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS1tZWV0aW5nLWF0dGVuZGFuY2Utcm93X19hdHRlbmRpbmctaW5kaWNhdG9yXCJcclxuICAgID5cclxuICAgICAge3sgY29uc3RhbnRzPy5tZWV0aW5nUm93Py5jdXJyZW50bHlBdHRlbmRpbmdJbmRpY2F0b3IgPz8gJ0N1cnJlbnRseSBBdHRlbmRpbmcnIH19XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPCEtLSBMb2ctYXR0ZW5kYW5jZSBidXR0b246IHNob3duIGluIHRoZSBsb2cgc3RhdGUgd2l0aCB0aGUgcGVybWlzc2lvbi4gLS0+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICpuZ0lmPVwic2hvd0xvZ0F0dGVuZGFuY2VCdXR0b25cIlxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fYWN0aW9uLWJ1dHRvbiBpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fYWN0aW9uLWJ1dHRvbi0tbG9nXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImlzSW5GbGlnaHQgfHwgIWlzQWN0aW9uYWJsZVwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzPy5tZWV0aW5nUm93Py5hcmlhTGFiZWw/LmxvZ0F0dGVuZGFuY2UgPz8gJ0xvZyBhdHRlbmRhbmNlIGZvciB0aGlzIG1lZXRpbmcnXCJcclxuICAgICAgKGNsaWNrKT1cIm9uQXR0ZW5kYW5jZUFjdGlvbigpXCJcclxuICAgID5cclxuICAgICAge3sgY29uc3RhbnRzPy5tZWV0aW5nUm93Py5sb2dBdHRlbmRhbmNlTGFiZWwgPz8gJ0xvZyBBdHRlbmRhbmNlJyB9fVxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPCEtLSBMZWF2ZS1tZWV0aW5nIGJ1dHRvbjogc2hvd24gaW4gdGhlIGF0dGVuZGluZyBzdGF0ZSB3aXRoIHRoZSBwZXJtaXNzaW9uLiAtLT5cclxuICAgIDxidXR0b25cclxuICAgICAgKm5nSWY9XCJzaG93TGVhdmVNZWV0aW5nQnV0dG9uXCJcclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX2FjdGlvbi1idXR0b24gaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX2FjdGlvbi1idXR0b24tLWxlYXZlXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImlzSW5GbGlnaHQgfHwgIWlzQWN0aW9uYWJsZVwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzPy5tZWV0aW5nUm93Py5hcmlhTGFiZWw/LmxlYXZlTWVldGluZyA/PyAnTGVhdmUgdGhpcyBtZWV0aW5nJ1wiXHJcbiAgICAgIChjbGljayk9XCJvbkF0dGVuZGFuY2VBY3Rpb24oKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IGNvbnN0YW50cz8ubWVldGluZ1Jvdz8ubGVhdmVNZWV0aW5nTGFiZWwgPz8gJ0xlYXZlIE1lZXRpbmcnIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVldGluZy1hdHRlbmRhbmNlLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9jb21wb25lbnRzL21lZXRpbmctYXR0ZW5kYW5jZS1yb3cvbWVldGluZy1hdHRlbmRhbmNlLXJvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9jb21wb25lbnRzL21lZXRpbmctYXR0ZW5kYW5jZS1yb3cvbWVldGluZy1hdHRlbmRhbmNlLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLHVCQUF1QixHQUN4QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEtBQUssV0FBVyxNQUFNLDZCQUE2QixDQUFDOzs7QUFFM0Q7Ozs7Ozs7Ozs7Ozs7R0FhRztBQVVILE1BQU0sT0FBTyw2QkFBNkI7SUFUMUM7UUFVRSw4REFBOEQ7UUFDOUQsY0FBUyxHQUFRLFdBQVcsQ0FBQztRQUs3QiwyRUFBMkU7UUFDbEUsb0JBQWUsR0FBb0IsZUFBZSxDQUFDLGFBQWEsQ0FBQztRQUUxRSw0RUFBNEU7UUFDbkUsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUU1QiwwRUFBMEU7UUFDakUsZ0JB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aW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXR0ZW5kYW5jZUFjdGlvblBlcm1pc3Npb25zIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2F0dGVuZGFuY2UtYWN0aW9uLXBlcm1pc3Npb25zLm1vZGVsJztcclxuaW1wb3J0IHsgQXR0ZW5kYW5jZVN0YXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2F0dGVuZGFuY2Utc3RhdGUubW9kZWwnO1xyXG5pbXBvcnQgeyBNZWV0aW5nUm93IH0gZnJvbSAnLi4vLi4vbW9kZWxzL21lZXRpbmctcm93Lm1vZGVsJztcclxuaW1wb3J0IHsgRGF0ZUZvcm1hdHMgfSBmcm9tICcuLi8uLi9hc3NldHMvZGF0ZS1mb3JtYXRzJztcclxuaW1wb3J0IHtcclxuICBBdHRlbmRhbmNlQWN0aW9uLFxyXG4gIHJlc29sdmVBdHRlbmRhbmNlQWN0aW9uLFxyXG59IGZyb20gJy4uLy4uL3V0aWxzL2F0dGVuZGFuY2UtYWN0aW9uLnV0aWwnO1xyXG5pbXBvcnQgeyBmb3JtYXRFcG9jaCB9IGZyb20gJy4uLy4uL3V0aWxzL2RhdGUtZm9ybWF0LnV0aWwnO1xyXG5pbXBvcnQgKiBhcyBzY3JlZW5UZXh0cyBmcm9tICcuLi8uLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5cclxuLyoqXHJcbiAqIE1lZXRpbmdfQXR0ZW5kYW5jZV9Sb3cgcmVuZGVycyBhIHNpbmdsZSBtZWV0aW5nIHdpdGhpbiBhbiBldmVudC1ncm91cCBjYXJkOlxyXG4gKiB0aGUgbWVldGluZy1uYW1lIGxpbmssIGdyb3VwL2NvbW1pdHRlZSwgcm9vbS9sb2NhdGlvbiwgZGF0ZSwgYW5kXHJcbiAqIHRpbWUrdGltZXpvbmUgKGFsbCBsdXhvbi1mb3JtYXR0ZWQpLCB0b2dldGhlciB3aXRoIHRoZSBhdHRlbmRhbmNlIGFjdGlvblxyXG4gKiBidXR0b24gdGhhdCBkcml2ZXMgdGhlIHBlci1tZWV0aW5nIGF0dGVuZGFuY2Ugc3RhdGUgbWFjaGluZS5cclxuICpcclxuICogVGhlIGNvbXBvbmVudCBpcyBwdXJlbHkgcHJlc2VudGF0aW9uYWwg4oCUIGl0IGVtaXRzIG5hdmlnYXRpb24gYW5kIGF0dGVuZGFuY2VcclxuICogaW50ZW50cyB2aWEgYEBPdXRwdXQoKWAgYW5kIG5ldmVyIHBlcmZvcm1zIG5hdmlnYXRpb24gb3IgSFRUUCBpdHNlbGYuIFRoZVxyXG4gKiBhY3Rpb24gYnV0dG9uIGRlbGVnYXRlcyB0byB0aGUgcHVyZSBgcmVzb2x2ZUF0dGVuZGFuY2VBY3Rpb25gIGhhbmRsZXIgc28gdGhlXHJcbiAqIGVtaXQvZ3VhcmQgbG9naWMgaXMgc2hhcmVkIHdpdGggdGhlIHByb3BlcnR5LXRlc3RlZCBjb3JlIChQcm9wZXJ0eSAxKSwgYW5kIHRoZVxyXG4gKiBkaXNwbGF5ZWQgc3RhdGUgb25seSBhZHZhbmNlcyB3aGVuIHRoZSBob3N0IHVwZGF0ZXMgYGF0dGVuZGFuY2VTdGF0ZWAuXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIE1lZXRpbmdBdHRlbmRhbmNlUm93Q29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3cnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21lZXRpbmctYXR0ZW5kYW5jZS1yb3cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21lZXRpbmctYXR0ZW5kYW5jZS1yb3cuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVldGluZ0F0dGVuZGFuY2VSb3dDb21wb25lbnQge1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBzY3JlZW5UZXh0cztcclxuXHJcbiAgLyoqIFRoZSBtZWV0aW5nIHJlbmRlcmVkIGJ5IHRoaXMgcm93LiAqL1xyXG4gIEBJbnB1dCgpIG1lZXRpbmchOiBNZWV0aW5nUm93O1xyXG5cclxuICAvKiogVGhlIGN1cnJlbnQgYXR0ZW5kYW5jZSBzdGF0ZSBjb250cm9sbGluZyBsYWJlbC9pbmRpY2F0b3IgYW5kIGFjdGlvbi4gKi9cclxuICBASW5wdXQoKSBhdHRlbmRhbmNlU3RhdGU6IEF0dGVuZGFuY2VTdGF0ZSA9IEF0dGVuZGFuY2VTdGF0ZS5OT1RfQVRURU5ESU5HO1xyXG5cclxuICAvKiogV2hldGhlciBhbiBhdHRlbmRhbmNlIGFjdGlvbiBmb3IgdGhpcyBtZWV0aW5nIGlzIGF3YWl0aW5nIHJlc29sdXRpb24uICovXHJcbiAgQElucHV0KCkgaXNJbkZsaWdodCA9IGZhbHNlO1xyXG5cclxuICAvKiogSG9zdCBwZXJtaXNzaW9ucyBnYXRpbmcgdGhlIGxvZy1hdHRlbmRhbmNlIC8gbGVhdmUtbWVldGluZyBidXR0b25zLiAqL1xyXG4gIEBJbnB1dCgpIHBlcm1pc3Npb25zOiBBdHRlbmRhbmNlQWN0aW9uUGVybWlzc2lvbnMgPSB7XHJcbiAgICBjYW5Mb2dBdHRlbmRhbmNlOiBmYWxzZSxcclxuICAgIGNhbkxlYXZlTWVldGluZzogZmFsc2UsXHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVuZGVycyB0aGUgbGVhbmVyIFwic3RhbmRhbG9uZSBtZWV0aW5nXCIgdmFyaWFudCB1c2VkIGJ5IHN0YW5kYWxvbmUtbWVldGluZ1xyXG4gICAqIGNhcmRzICh0aGUgZ3JvdXAvbG9jYXRpb24gYW5kIHN0YXR1cyBsaXZlIG9uIHRoZSBwYXJlbnQgY2FyZCwgc28gdGhlIHJvd1xyXG4gICAqIG9ubHkgc2hvd3MgdGhlIFRJTUUgJiBUSU1FWk9ORSBibG9jayBhbmQgdGhlIGF0dGVuZGFuY2UgKyBWaWV3IGFjdGlvbnMpLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbXBhY3QgPSBmYWxzZTtcclxuXHJcbiAgLyoqIEVtaXRzIHRoZSBtZWV0aW5nIGlkIHdoZW4gdGhlIG1lZXRpbmctbmFtZSBsaW5rIGlzIGFjdGl2YXRlZCAoUmVxIDcuNCkuICovXHJcbiAgQE91dHB1dCgpIG9wZW5NZWV0aW5nID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKiBFbWl0cyB0aGUgbWVldGluZyBpZCB0byByZXF1ZXN0IGxvZ2dpbmcgYXR0ZW5kYW5jZSAoUmVxIDcuNykuICovXHJcbiAgQE91dHB1dCgpIGxvZ0F0dGVuZGFuY2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqIEVtaXRzIHRoZSBtZWV0aW5nIGlkIHRvIHJlcXVlc3QgbGVhdmluZyB0aGUgbWVldGluZyAoUmVxIDcuOCkuICovXHJcbiAgQE91dHB1dCgpIGxlYXZlTWVldGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAvKiogRXhwb3NlIHRoZSBlbnVtIHRvIHRoZSB0ZW1wbGF0ZSBmb3Igc3RhdGUgY29tcGFyaXNvbnMuICovXHJcbiAgcmVhZG9ubHkgQXR0ZW5kYW5jZVN0YXRlID0gQXR0ZW5kYW5jZVN0YXRlO1xyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoaXMgcm93IGlzIGFjdGlvbmFibGUg4oCUIGEgbm9uLWVtcHR5IGBtZWV0aW5nSWRgIGlzIHJlcXVpcmVkIGZvciB0aGVcclxuICAgKiBtZWV0aW5nLW5hbWUgbGluayBhbmQgYWN0aW9uIGJ1dHRvbiB0byBlbWl0IGFueXRoaW5nIChSZXEgNy4xMCkuXHJcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSB3aGVuIHRoZSByb3cgaGFzIGEgdXNhYmxlIG1lZXRpbmcgaWQuXHJcbiAgICogQG1lbWJlcm9mIE1lZXRpbmdBdHRlbmRhbmNlUm93Q29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0IGlzQWN0aW9uYWJsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMubWVldGluZz8ubWVldGluZ0lkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0aGUgcm93IGlzIGluIHRoZSBjdXJyZW50bHktYXR0ZW5kaW5nIHN0YXRlLCB3aGljaCBzaG93cyB0aGVcclxuICAgKiBjdXJyZW50bHktYXR0ZW5kaW5nIGluZGljYXRvciBhbmQgdGhlIGxlYXZlLW1lZXRpbmcgYWN0aW9uIChSZXEgNy41KS5cclxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIHdoZW4gdGhlIGF0dGVuZGFuY2Ugc3RhdGUgaXMgYENVUlJFTlRMWV9BVFRFTkRJTkdgLlxyXG4gICAqIEBtZW1iZXJvZiBNZWV0aW5nQXR0ZW5kYW5jZVJvd0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCBpc0N1cnJlbnRseUF0dGVuZGluZygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmF0dGVuZGFuY2VTdGF0ZSA9PT0gQXR0ZW5kYW5jZVN0YXRlLkNVUlJFTlRMWV9BVFRFTkRJTkc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoZSBsb2ctYXR0ZW5kYW5jZSBidXR0b24gc2hvdWxkIGJlIHNob3duOiBvbmx5IHdoZW4gdGhlIHJvdyBpcyBpblxyXG4gICAqIHRoZSBsb2cgc3RhdGUgKG5vdCBjdXJyZW50bHkgYXR0ZW5kaW5nKSBhbmQgdGhlIGhvc3QgZ3JhbnRzXHJcbiAgICogYGNhbkxvZ0F0dGVuZGFuY2VgIChSZXEgNy42LCAxMi4xKS5cclxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIHdoZW4gdGhlIGxvZy1hdHRlbmRhbmNlIGJ1dHRvbiBpcyB2aXNpYmxlLlxyXG4gICAqIEBtZW1iZXJvZiBNZWV0aW5nQXR0ZW5kYW5jZVJvd0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCBzaG93TG9nQXR0ZW5kYW5jZUJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5pc0N1cnJlbnRseUF0dGVuZGluZyAmJiAhIXRoaXMucGVybWlzc2lvbnM/LmNhbkxvZ0F0dGVuZGFuY2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoZSBsZWF2ZS1tZWV0aW5nIGJ1dHRvbiBzaG91bGQgYmUgc2hvd246IG9ubHkgd2hlbiB0aGUgcm93IGlzIGluXHJcbiAgICogdGhlIGN1cnJlbnRseS1hdHRlbmRpbmcgc3RhdGUgYW5kIHRoZSBob3N0IGdyYW50cyBgY2FuTGVhdmVNZWV0aW5nYFxyXG4gICAqIChSZXEgNy41LCAxMi4yKS5cclxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIHdoZW4gdGhlIGxlYXZlLW1lZXRpbmcgYnV0dG9uIGlzIHZpc2libGUuXHJcbiAgICogQG1lbWJlcm9mIE1lZXRpbmdBdHRlbmRhbmNlUm93Q29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0IHNob3dMZWF2ZU1lZXRpbmdCdXR0b24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0N1cnJlbnRseUF0dGVuZGluZyAmJiAhIXRoaXMucGVybWlzc2lvbnM/LmNhbkxlYXZlTWVldGluZztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc29sdmVzIGEgZ3JvdXAtb3ItY29tbWl0dGVlIC8gcm9vbS1vci1sb2NhdGlvbiBmaWVsZCB2YWx1ZSwgc3Vic3RpdHV0aW5nXHJcbiAgICogdGhlIGVtcHR5LWZpZWxkIHBsYWNlaG9sZGVyIGZyb20gYGNvbnN0YW50cy5qc29uYCB3aGVuIHRoZSB2YWx1ZSBpcyBlbXB0eSBvclxyXG4gICAqIHVuZGVmaW5lZCAoUmVxIDcuMikuXHJcbiAgICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IHZhbHVlIC0gVGhlIHJhdyBmaWVsZCB2YWx1ZSBmcm9tIHRoZSBtZWV0aW5nLlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIHZhbHVlIHRvIGRpc3BsYXksIG9yIHRoZSBlbXB0eS1maWVsZCBwbGFjZWhvbGRlci5cclxuICAgKiBAbWVtYmVyb2YgTWVldGluZ0F0dGVuZGFuY2VSb3dDb21wb25lbnRcclxuICAgKi9cclxuICByZXNvbHZlRmllbGRWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHBsYWNlaG9sZGVyID1cclxuICAgICAgdGhpcy5jb25zdGFudHM/Lm1lZXRpbmdSb3c/LmVtcHR5RmllbGRQbGFjZWhvbGRlciA/PyAn4oCUJztcclxuICAgIHJldHVybiB2YWx1ZSAmJiB2YWx1ZS50cmltKCkubGVuZ3RoID4gMCA/IHZhbHVlIDogcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGb3JtYXRzIHRoZSBtZWV0aW5nIGRhdGUgZm9yIGRpc3BsYXkgdXNpbmcgdGhlIHNoYXJlZCBsdXhvbiBkaXNwbGF5IGZvcm1hdFxyXG4gICAqIChSZXEgNy4zKS4gRmFsbHMgYmFjayB0byB0aGUgcmF3IHZhbHVlIHdoZW4gaXQgY2Fubm90IGJlIHBhcnNlZC5cclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBmb3JtYXR0ZWQgbWVldGluZyBkYXRlLlxyXG4gICAqIEBtZW1iZXJvZiBNZWV0aW5nQXR0ZW5kYW5jZVJvd0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCBmb3JtYXR0ZWREYXRlKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB2YWx1ZSA9XHJcbiAgICAgIHRoaXMubWVldGluZz8uc3RhcnREYXRlVGltZSA/PyB0aGlzLm1lZXRpbmc/Lm1lZXRpbmdEYXRlO1xyXG4gICAgcmV0dXJuIGZvcm1hdEVwb2NoKFxyXG4gICAgICB2YWx1ZSxcclxuICAgICAgRGF0ZUZvcm1hdHMuZGlzcGxheUZvcm1hdCxcclxuICAgICAgdGhpcy5tZWV0aW5nPy50aW1lem9uZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcm1hdHMgdGhlIG1lZXRpbmcgdGltZSArIHRpbWV6b25lIGZvciBkaXNwbGF5IHVzaW5nIGx1eG9uIChSZXEgNy4zKS5cclxuICAgKiBUaGUgdGltZXpvbmUgYWJicmV2aWF0aW9uIGZyb20gdGhlIG1lZXRpbmcgbW9kZWwgaXMgYXBwZW5kZWQgdG8gdGhlIHBhcnNlZFxyXG4gICAqIHRpbWUuIEZhbGxzIGJhY2sgdG8gdGhlIHJhdyB2YWx1ZSB3aGVuIGl0IGNhbm5vdCBiZSBwYXJzZWQuXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgZm9ybWF0dGVkIG1lZXRpbmcgdGltZSB3aXRoIHRpbWV6b25lLlxyXG4gICAqIEBtZW1iZXJvZiBNZWV0aW5nQXR0ZW5kYW5jZVJvd0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCBmb3JtYXR0ZWRUaW1lKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB0aW1lem9uZSA9IHRoaXMubWVldGluZz8udGltZXpvbmUgPz8gJyc7XHJcbiAgICBjb25zdCBzdGFydFZhbHVlID1cclxuICAgICAgdGhpcy5tZWV0aW5nPy5zdGFydERhdGVUaW1lID8/IHRoaXMubWVldGluZz8ubWVldGluZ1RpbWU7XHJcbiAgICBjb25zdCBzdGFydCA9IGZvcm1hdEVwb2NoKFxyXG4gICAgICBzdGFydFZhbHVlLFxyXG4gICAgICBEYXRlRm9ybWF0cy50aW1lTWVyaWRpZW1Gb3JtYXQsXHJcbiAgICAgIHRpbWV6b25lXHJcbiAgICApO1xyXG4gICAgY29uc3QgZW5kID0gZm9ybWF0RXBvY2goXHJcbiAgICAgIHRoaXMubWVldGluZz8uZW5kRGF0ZVRpbWUsXHJcbiAgICAgIERhdGVGb3JtYXRzLnRpbWVNZXJpZGllbUZvcm1hdCxcclxuICAgICAgdGltZXpvbmVcclxuICAgICk7XHJcbiAgICBjb25zdCByYW5nZSA9IGVuZCA/IGAke3N0YXJ0fSDigJMgJHtlbmR9YCA6IHN0YXJ0O1xyXG4gICAgaWYgKCFyYW5nZSkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGltZXpvbmUgPyBgJHtyYW5nZX0gJHt0aW1lem9uZX1gIDogcmFuZ2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGFjdGl2YXRpb24gb2YgdGhlIGF0dGVuZGFuY2UgYWN0aW9uIGJ1dHRvbi4gRGVsZWdhdGVzIHRvIHRoZSBwdXJlXHJcbiAgICogYHJlc29sdmVBdHRlbmRhbmNlQWN0aW9uYCBoYW5kbGVyIGFuZCBlbWl0cyBleGFjdGx5IG9uZSBldmVudCBiYXNlZCBvbiB0aGVcclxuICAgKiByZXNvbHZlZCBhY3Rpb246IGBsb2dBdHRlbmRhbmNlYCBmb3IgYExPR19BVFRFTkRBTkNFYCwgYGxlYXZlTWVldGluZ2AgZm9yXHJcbiAgICogYExFQVZFX01FRVRJTkdgLCBhbmQgbm90aGluZyBmb3IgYE5PTkVgIChlbXB0eSBpZCBvciBpbi1mbGlnaHQpXHJcbiAgICogKFJlcSA3LjcsIDcuOCwgNy45LCA3LjEwLCAxMy42KS5cclxuICAgKiBAbWVtYmVyb2YgTWVldGluZ0F0dGVuZGFuY2VSb3dDb21wb25lbnRcclxuICAgKi9cclxuICBvbkF0dGVuZGFuY2VBY3Rpb24oKTogdm9pZCB7XHJcbiAgICBjb25zdCBhY3Rpb24gPSByZXNvbHZlQXR0ZW5kYW5jZUFjdGlvbihcclxuICAgICAgdGhpcy5hdHRlbmRhbmNlU3RhdGUsXHJcbiAgICAgIHRoaXMuaXNJbkZsaWdodCxcclxuICAgICAgdGhpcy5tZWV0aW5nPy5tZWV0aW5nSWRcclxuICAgICk7XHJcblxyXG4gICAgaWYgKGFjdGlvbiA9PT0gQXR0ZW5kYW5jZUFjdGlvbi5MT0dfQVRURU5EQU5DRSkge1xyXG4gICAgICB0aGlzLmxvZ0F0dGVuZGFuY2UuZW1pdCh0aGlzLm1lZXRpbmcubWVldGluZ0lkKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChhY3Rpb24gPT09IEF0dGVuZGFuY2VBY3Rpb24uTEVBVkVfTUVFVElORykge1xyXG4gICAgICB0aGlzLmxlYXZlTWVldGluZy5lbWl0KHRoaXMubWVldGluZy5tZWV0aW5nSWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBhY3RpdmF0aW9uIG9mIHRoZSBtZWV0aW5nLW5hbWUgbGluay4gRW1pdHMgdGhlIG1lZXRpbmcgaWQgb25seSB3aGVuXHJcbiAgICogdGhlIHJvdyBpcyBhY3Rpb25hYmxlIChub24tZW1wdHkgbWVldGluZyBpZCkgKFJlcSA3LjQsIDcuMTApLlxyXG4gICAqIEBtZW1iZXJvZiBNZWV0aW5nQXR0ZW5kYW5jZVJvd0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uT3Blbk1lZXRpbmcoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNBY3Rpb25hYmxlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMub3Blbk1lZXRpbmcuZW1pdCh0aGlzLm1lZXRpbmcubWVldGluZ0lkKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dcIlxyXG4gIFtjbGFzcy5pZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvdy0tY29tcGFjdF09XCJjb21wYWN0XCJcclxuPlxyXG4gIDwhLS0gTWVldGluZyBuYW1lICsgZ3JvdXAvbG9jYXRpb24gKGhpZGRlbiBpbiB0aGUgY29tcGFjdCBzdGFuZGFsb25lIHZhcmlhbnQpLiAtLT5cclxuICA8ZGl2IGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX25hbWUtY29sXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbXBhY3RcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX25hbWUtbGlua1wiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0FjdGlvbmFibGVcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzLm1lZXRpbmdSb3cuYXJpYUxhYmVsLm1lZXRpbmdOYW1lTGlua1wiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uT3Blbk1lZXRpbmcoKVwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBtZWV0aW5nLm1lZXRpbmdOYW1lIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPHAgY2xhc3M9XCJpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fc3VidGl0bGVcIj5cclxuICAgICAgICB7eyByZXNvbHZlRmllbGRWYWx1ZShtZWV0aW5nLmdyb3VwT3JDb21taXR0ZWUpIH19PG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nSWY9XCJtZWV0aW5nLnJvb21PckxvY2F0aW9uXCJcclxuICAgICAgICA+ICZtaWRkb3Q7IHt7IG1lZXRpbmcucm9vbU9yTG9jYXRpb24gfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9wPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gTUVFVElORyBEQVRFIGNvbHVtbi4gLS0+XHJcbiAgPGRsIGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX2NvbCBpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fY29sLS1kYXRlXCI+XHJcbiAgICA8ZHQgY2xhc3M9XCJpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fY29sLWxhYmVsXCI+XHJcbiAgICAgIHt7IGNvbnN0YW50cy5ldmVudEdyb3VwQ2FyZC5tZWV0aW5nRGF0ZUxhYmVsIH19XHJcbiAgICA8L2R0PlxyXG4gICAgPGRkIGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX2NvbC12YWx1ZVwiPlxyXG4gICAgICB7eyBmb3JtYXR0ZWREYXRlIH19XHJcbiAgICA8L2RkPlxyXG4gIDwvZGw+XHJcblxyXG4gIDwhLS0gVElNRSAmIFRJTUVaT05FIGNvbHVtbi4gLS0+XHJcbiAgPGRsIGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX2NvbCBpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fY29sLS10aW1lXCI+XHJcbiAgICA8ZHQgY2xhc3M9XCJpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fY29sLWxhYmVsXCI+XHJcbiAgICAgIHt7IGNvbnN0YW50cy5tZWV0aW5nUm93LnRpbWVUaW1lem9uZUxhYmVsIH19XHJcbiAgICA8L2R0PlxyXG4gICAgPGRkIGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX2NvbC12YWx1ZVwiPlxyXG4gICAgICB7eyBmb3JtYXR0ZWRUaW1lIH19XHJcbiAgICA8L2RkPlxyXG4gIDwvZGw+XHJcblxyXG4gIDwhLS0gQXR0ZW5kYW5jZSBpbmRpY2F0b3IgKyBhY3Rpb25zIGNvbHVtbi4gLS0+XHJcbiAgPGRpdiBjbGFzcz1cImllZWVzYS1tZWV0aW5nLWF0dGVuZGFuY2Utcm93X19hY3Rpb25zXCI+XHJcbiAgICA8IS0tIEN1cnJlbnRseS1hdHRlbmRpbmcgcGlsbCBzaG93biBvbmx5IGluIHRoZSBhdHRlbmRpbmcgc3RhdGUuIC0tPlxyXG4gICAgPHNwYW5cclxuICAgICAgKm5nSWY9XCJpc0N1cnJlbnRseUF0dGVuZGluZ1wiXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLW1lZXRpbmctYXR0ZW5kYW5jZS1yb3dfX2F0dGVuZGluZy1waWxsXCJcclxuICAgID5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fYXR0ZW5kaW5nLWRvdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cclxuICAgICAge3sgY29uc3RhbnRzLm1lZXRpbmdSb3cuY3VycmVudGx5QXR0ZW5kaW5nSW5kaWNhdG9yIH19XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPCEtLSBMb2ctYXR0ZW5kYW5jZSBidXR0b246IHNob3duIGluIHRoZSBsb2cgc3RhdGUgd2l0aCB0aGUgcGVybWlzc2lvbi4gLS0+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICpuZ0lmPVwic2hvd0xvZ0F0dGVuZGFuY2VCdXR0b25cIlxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fYWN0aW9uLWJ1dHRvbiBpZWVlc2EtbWVldGluZy1hdHRlbmRhbmNlLXJvd19fYWN0aW9uLWJ1dHRvbi0tbG9nXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImlzSW5GbGlnaHQgfHwgIWlzQWN0aW9uYWJsZVwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzLm1lZXRpbmdSb3cuYXJpYUxhYmVsLmxvZ0F0dGVuZGFuY2VcIlxyXG4gICAgICAoY2xpY2spPVwib25BdHRlbmRhbmNlQWN0aW9uKClcIlxyXG4gICAgPlxyXG4gICAgICB7eyBjb25zdGFudHMubWVldGluZ1Jvdy5sb2dBdHRlbmRhbmNlTGFiZWwgfX1cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDwhLS0gTGVhdmUtbWVldGluZyBidXR0b246IHNob3duIGluIHRoZSBhdHRlbmRpbmcgc3RhdGUgd2l0aCB0aGUgcGVybWlzc2lvbi4gLS0+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICpuZ0lmPVwic2hvd0xlYXZlTWVldGluZ0J1dHRvblwiXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS1tZWV0aW5nLWF0dGVuZGFuY2Utcm93X19hY3Rpb24tYnV0dG9uIGllZWVzYS1tZWV0aW5nLWF0dGVuZGFuY2Utcm93X19hY3Rpb24tYnV0dG9uLS1sZWF2ZVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJpc0luRmxpZ2h0IHx8ICFpc0FjdGlvbmFibGVcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNvbnN0YW50cy5tZWV0aW5nUm93LmFyaWFMYWJlbC5sZWF2ZU1lZXRpbmdcIlxyXG4gICAgICAoY2xpY2spPVwib25BdHRlbmRhbmNlQWN0aW9uKClcIlxyXG4gICAgPlxyXG4gICAgICB7eyBjb25zdGFudHMubWVldGluZ1Jvdy5sZWF2ZU1lZXRpbmdMYWJlbCB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=