vcomply-workflow-engine 6.1.2 → 6.1.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.
- package/esm2022/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.mjs +7 -34
- package/esm2022/lib/constants/api.constants.mjs +6 -1
- package/esm2022/lib/constants/assets.constants.mjs +1 -2
- package/esm2022/lib/interfaces/frequency.interface.mjs +2 -0
- package/esm2022/lib/interfaces/iframe-type.mjs +7 -0
- package/esm2022/lib/interfaces/responsibilty.interface.mjs +1 -1
- package/esm2022/lib/more-option/more-option.component.mjs +26 -191
- package/esm2022/lib/report-a-case/services/report-a-case.service.mjs +3 -2
- package/esm2022/lib/report-a-case/workflow-case/workflow-case.component.mjs +4 -7
- package/esm2022/lib/services/common.service.mjs +40 -1
- package/esm2022/lib/services/iframe.service.mjs +14 -1
- package/esm2022/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.mjs +3 -6
- package/esm2022/lib/sharedComponents/category-list-selection/category-list-selection/category-list-selection.component.mjs +7 -7
- package/esm2022/lib/sharedComponents/category-list-selection/category-list-selection.module.mjs +27 -4
- package/esm2022/lib/sharedComponents/format-and-evidence/format-and-evidence.component.mjs +10 -21
- package/esm2022/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.mjs +5 -1
- package/esm2022/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.mjs +5 -1
- package/esm2022/lib/sharedComponents/frequency/frequency-container/frequency-container.component.mjs +5 -5
- package/esm2022/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.mjs +2 -1
- package/esm2022/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.mjs +6 -2
- package/esm2022/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +3 -2
- package/esm2022/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.mjs +3 -1
- package/esm2022/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.mjs +5 -1
- package/esm2022/lib/sharedComponents/frequency/frequency-random/frequency-random.component.mjs +9 -2
- package/esm2022/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.mjs +4 -2
- package/esm2022/lib/sharedComponents/frequency/frequency.service.mjs +267 -5
- package/esm2022/lib/sharedComponents/group-users-list/group-users-list.component.mjs +5 -2
- package/esm2022/lib/sharedComponents/link-responsibility/link-responsibility.component.mjs +48 -16
- package/esm2022/lib/sharedComponents/link-responsibility/link-responsibility.module.mjs +8 -4
- package/esm2022/lib/sharedComponents/list-container/list-container.component.mjs +52 -0
- package/esm2022/lib/sharedComponents/program-list/constant.mjs +27 -0
- package/esm2022/lib/sharedComponents/program-list/interfaces/data-source.interface.mjs +2 -0
- package/esm2022/lib/sharedComponents/program-list/interfaces/list-item.interface.mjs +2 -0
- package/esm2022/lib/sharedComponents/program-list/pipes/check-selected-items.pipes.mjs +23 -0
- package/esm2022/lib/sharedComponents/program-list/program-list/program-list.component.mjs +273 -0
- package/esm2022/lib/sharedComponents/program-list/program-list.module.mjs +51 -0
- package/esm2022/lib/sharedComponents/program-list/services/list-utils.service.mjs +27 -0
- package/esm2022/lib/sharedComponents/program-list/services/program-list-api.service.mjs +32 -0
- package/esm2022/lib/ui-kit/loaders/loaders.module.mjs +24 -0
- package/esm2022/lib/ui-kit/loaders/table-loader/table-loader.component.mjs +19 -0
- package/esm2022/lib/workflow/grc-object/grc-object-container/grc-object-container.component.mjs +45 -17
- package/esm2022/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.mjs +13 -10
- package/esm2022/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.mjs +62 -35
- package/esm2022/lib/workflow/shared/services/grc.service.mjs +15 -2
- package/esm2022/lib/workflow/shared/workflow-pipes/get-user-details.pipe.mjs +26 -0
- package/esm2022/lib/workflow/shared/workflow-pipes/workflow-pipes.module.mjs +8 -3
- package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +294 -453
- package/esm2022/lib/workflow-engine-container/api-constants.mjs +3 -2
- package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +32 -53
- package/esm2022/lib/workflow-engine.module.mjs +11 -16
- package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +46 -29
- package/esm2022/lib/workflow-program/constants.mjs +3 -11
- package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/pipes/tooltip-message.pipe.mjs +1 -7
- package/esm2022/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.mjs +13 -11
- package/esm2022/lib/workflow-program/workflow-program.component.mjs +340 -311
- package/esm2022/lib/workflow-services/policy.service.mjs +8 -9
- package/esm2022/lib/workflow-services/programs.service.mjs +26 -114
- package/esm2022/lib/workflow-services/responsibility.service.mjs +60 -56
- package/fesm2022/vcomply-workflow-engine.mjs +5848 -5338
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.d.ts +0 -1
- package/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.d.ts +0 -3
- package/lib/add-multiple-risk/add-multiple-risk.component.d.ts +0 -1
- package/lib/constants/api.constants.d.ts +5 -0
- package/lib/constants/assets.constants.d.ts +0 -1
- package/lib/interfaces/frequency.interface.d.ts +37 -0
- package/lib/interfaces/iframe-type.d.ts +5 -0
- package/lib/interfaces/responsibilty.interface.d.ts +13 -13
- package/lib/log-an-issue/log-an-issue.component.d.ts +0 -1
- package/lib/more-option/more-option.component.d.ts +0 -1
- package/lib/report-a-case/components/assignee/assignee.component.d.ts +0 -1
- package/lib/report-a-case/components/case-assignees/case-assignees.component.d.ts +0 -1
- package/lib/report-a-case/components/case-category/case-category.component.d.ts +0 -1
- package/lib/report-a-case/components/case-details/case-details.component.d.ts +0 -1
- package/lib/report-a-case/components/case-owners/case-owners.component.d.ts +0 -1
- package/lib/report-a-case/components/case-priority/case-priority.component.d.ts +0 -1
- package/lib/report-a-case/components/case-resolution-deadline/case-resolution-deadline.component.d.ts +0 -1
- package/lib/report-a-case/components/case-type-dropdown/case-dropdown.component.d.ts +0 -1
- package/lib/report-a-case/components/due-date/due-date.component.d.ts +0 -1
- package/lib/report-a-case/components/field-holder/field-holder.component.d.ts +0 -1
- package/lib/report-a-case/components/linked assessment/linked-assessment.component.d.ts +0 -1
- package/lib/report-a-case/components/linked-responsibilities/linked-responsibilities.component.d.ts +0 -1
- package/lib/report-a-case/components/rc-details/rc-details.component.d.ts +0 -1
- package/lib/report-a-case/components/report-date/report-date.component.d.ts +0 -1
- package/lib/report-a-case/workflow-case/workflow-case.component.d.ts +0 -1
- package/lib/services/common.service.d.ts +28 -0
- package/lib/services/iframe.service.d.ts +6 -0
- package/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/logic/logic.component.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.d.ts +0 -1
- package/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.d.ts +0 -1
- package/lib/sharedComponents/assessment-list/assessment-list.component.d.ts +0 -1
- package/lib/sharedComponents/audit-category-list/audit-category-list.component.d.ts +0 -1
- package/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.d.ts +0 -6
- package/lib/sharedComponents/category-list/category-list.component.d.ts +0 -1
- package/lib/sharedComponents/category-list-selection/category-list-selection/category-list-selection.component.d.ts +0 -1
- package/lib/sharedComponents/category-list-selection/category-list-selection.module.d.ts +5 -5
- package/lib/sharedComponents/category-multiselect/category-multi-select.component.d.ts +0 -1
- package/lib/sharedComponents/checkbox-list/checkbox-list.component.d.ts +0 -1
- package/lib/sharedComponents/format-and-evidence/format-and-evidence.component.d.ts +1 -5
- package/lib/sharedComponents/framework-list/framework-list.component.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-random/frequency-random.component.d.ts +1 -0
- package/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency.service.d.ts +92 -2
- package/lib/sharedComponents/group-users-list/group-users-list.component.d.ts +0 -1
- package/lib/sharedComponents/link-program/link-program/link-program.component.d.ts +0 -1
- package/lib/sharedComponents/link-responsibility/link-responsibility.component.d.ts +2 -1
- package/lib/sharedComponents/link-responsibility/link-responsibility.module.d.ts +2 -1
- package/lib/sharedComponents/list-container/list-container.component.d.ts +9 -0
- package/lib/sharedComponents/owner-list/owner-list.component.d.ts +0 -1
- package/lib/sharedComponents/policy-access/policy-access.component.d.ts +0 -1
- package/lib/sharedComponents/program-list/constant.d.ts +20 -0
- package/lib/sharedComponents/program-list/interfaces/data-source.interface.d.ts +4 -0
- package/lib/sharedComponents/program-list/interfaces/list-item.interface.d.ts +5 -0
- package/lib/sharedComponents/program-list/pipes/check-selected-items.pipes.d.ts +7 -0
- package/lib/sharedComponents/program-list/program-list/program-list.component.d.ts +126 -0
- package/lib/sharedComponents/program-list/program-list.module.d.ts +15 -0
- package/lib/sharedComponents/program-list/services/list-utils.service.d.ts +7 -0
- package/lib/sharedComponents/program-list/services/program-list-api.service.d.ts +14 -0
- package/lib/sharedComponents/program-listing/program-listing.component.d.ts +0 -1
- package/lib/sharedComponents/radio-list/radio-list.component.d.ts +0 -1
- package/lib/sharedComponents/radio-list-with-pagination/radio-list.component.d.ts +0 -1
- package/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.d.ts +0 -1
- package/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.d.ts +0 -1
- package/lib/sharedComponents/review-frequency/review-frequency.component.d.ts +0 -1
- package/lib/sharedComponents/roles-list/roles-list.component.d.ts +0 -1
- package/lib/sharedComponents/select-approvers/select-approvers.component.d.ts +0 -1
- package/lib/sharedComponents/users-radio-list/users-radio-list.component.d.ts +0 -1
- package/lib/ui-kit/loaders/loaders.module.d.ts +8 -0
- package/lib/ui-kit/loaders/table-loader/table-loader.component.d.ts +9 -0
- package/lib/ui-kit/pagination/pagination/pagination.component.d.ts +0 -1
- package/lib/workflow/grc-object/grc-object-container/grc-object-container.component.d.ts +5 -1
- package/lib/workflow/shared/components/attributes/attributes-checkbox/attributes-checkbox.component.d.ts +0 -1
- package/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.d.ts +3 -1
- package/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.d.ts +6 -2
- package/lib/workflow/shared/services/grc.service.d.ts +1 -0
- package/lib/workflow/shared/workflow-pipes/get-user-details.pipe.d.ts +7 -0
- package/lib/workflow/shared/workflow-pipes/workflow-pipes.module.d.ts +3 -2
- package/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.d.ts +0 -1
- package/lib/workflow-assessment/workflow-assessment.component.d.ts +0 -1
- package/lib/workflow-compliance/workflow-compliance.component.d.ts +32 -11
- package/lib/workflow-engine-container/api-constants.d.ts +1 -0
- package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +5 -2
- package/lib/workflow-engine.module.d.ts +3 -2
- package/lib/workflow-policy/workflow-policy.component.d.ts +9 -1
- package/lib/workflow-program/constants.d.ts +0 -3
- package/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.d.ts +0 -1
- package/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.d.ts +0 -1
- package/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.d.ts +0 -1
- package/lib/workflow-program/create-program-ui/role-list/role-list.component.d.ts +0 -1
- package/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.d.ts +0 -1
- package/lib/workflow-program/workflow-program.component.d.ts +9 -11
- package/lib/workflow-risk/workflow-risk.component.d.ts +1 -2
- package/lib/workflow-services/policy.service.d.ts +1 -1
- package/lib/workflow-services/programs.service.d.ts +13 -54
- package/lib/workflow-services/responsibility.service.d.ts +17 -4
- package/lib/workflow-survey-form/workflow-survey-form.component.d.ts +0 -1
- package/package.json +1 -1
- package/esm2022/lib/constants/policy.constant.mjs +0 -6
- package/esm2022/lib/constants/regix.constants.mjs +0 -4
- package/esm2022/lib/constants/responsibility.mjs +0 -8
- package/esm2022/lib/interfaces/policy.interface.mjs +0 -2
- package/esm2022/lib/sharedComponents/pipes/risk-class.pipe.mjs +0 -19
- package/lib/constants/policy.constant.d.ts +0 -2
- package/lib/constants/regix.constants.d.ts +0 -3
- package/lib/constants/responsibility.d.ts +0 -7
- package/lib/interfaces/policy.interface.d.ts +0 -5
- package/lib/sharedComponents/pipes/risk-class.pipe.d.ts +0 -7
|
@@ -18,10 +18,10 @@ export const CONSTANTS = {
|
|
|
18
18
|
min: new Date().getDate().toString(),
|
|
19
19
|
},
|
|
20
20
|
description: {
|
|
21
|
-
mode: '
|
|
21
|
+
mode: 'basic',
|
|
22
22
|
colorPalette: true,
|
|
23
23
|
link: true,
|
|
24
|
-
file:
|
|
24
|
+
file: false,
|
|
25
25
|
id: 'description',
|
|
26
26
|
placeholder: 'Add a description for this Program',
|
|
27
27
|
},
|
|
@@ -48,12 +48,4 @@ export const CONSTANTS = {
|
|
|
48
48
|
ASSIGNEES: false,
|
|
49
49
|
},
|
|
50
50
|
};
|
|
51
|
-
|
|
52
|
-
<br>
|
|
53
|
-
This role is ideal for users who need to work on specific tasks but shouldn't see the entire program’s contents.
|
|
54
|
-
<br>
|
|
55
|
-
<br>
|
|
56
|
-
<em>Example:</em> In an AML (Anti-Money Laundering) program, the Finance lead added as a collaborator will only see responsibilities related to financial reporting or audits they are linked to, not those owned by Legal or Compliance.`;
|
|
57
|
-
export const COLLABORATOR_PLACEHODLER = `Select users that can collaborate in this Program`;
|
|
58
|
-
export const COLLABORATOR_TOOLTIP_TEXT = `This user has already been selected as a Program Owner.`;
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctcHJvZ3JhbS9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3ZCLFlBQVksRUFBRTtRQUNaLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ2xDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ2hDLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7UUFDeEMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7S0FDOUI7SUFDRCxzQkFBc0IsRUFBRTtRQUN0QixFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO1FBQ2xELEVBQUUsS0FBSyxFQUFFLHdCQUF3QixFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtLQUM3RDtJQUNELFVBQVUsRUFBRTtRQUNWLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLE1BQU0sRUFBRSxhQUFhO1FBQ3JCLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtLQUNyQztJQUNELFdBQVcsRUFBRTtRQUNYLElBQUksRUFBRSxPQUFPO1FBQ2IsWUFBWSxFQUFFLElBQUk7UUFDbEIsSUFBSSxFQUFFLElBQUk7UUFDVixJQUFJLEVBQUUsSUFBSTtRQUNWLEVBQUUsRUFBRSxhQUFhO1FBQ2pCLFdBQVcsRUFBRSxvQ0FBb0M7S0FDbEQ7SUFFRCxTQUFTLEVBQUU7UUFDVCxJQUFJLEVBQUUsT0FBTztRQUNiLFlBQVksRUFBRSxJQUFJO1FBQ2xCLElBQUksRUFBRSxJQUFJO1FBQ1YsSUFBSSxFQUFFLEtBQUs7UUFDWCxFQUFFLEVBQUUsV0FBVztRQUNmLFdBQVcsRUFBRSx3Q0FBd0M7S0FDdEQ7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixRQUFRLEVBQUUsS0FBSztRQUNmLFFBQVEsRUFBRSxLQUFLO1FBQ2YsVUFBVSxFQUFFLEtBQUs7UUFDakIsZ0JBQWdCLEVBQUUsS0FBSztRQUN2QixhQUFhLEVBQUUsS0FBSztRQUNwQixpQkFBaUIsRUFBRSxLQUFLO1FBQ3hCLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLEVBQUUsRUFBRSxLQUFLO1FBQ1QsS0FBSyxFQUFFLEtBQUs7UUFDWixNQUFNLEVBQUUsS0FBSztRQUNiLFFBQVEsRUFBRSxLQUFLO1FBQ2YsU0FBUyxFQUFFLEtBQUs7S0FDakI7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUU7Ozs7O2tQQUsrTSxDQUFDO0FBRW5QLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLG1EQUFtRCxDQUFBO0FBRTNGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLHlEQUF5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENPTlNUQU5UUyA9IHtcbiAgY2F0ZWdvcnlUeXBlOiBbXG4gICAgeyBsYWJlbDogJ1JFR1VMQVRJT05TJywgdmFsdWU6IDEgfSxcbiAgICB7IGxhYmVsOiAnU1RBTkRBUkRTJywgdmFsdWU6IDIgfSxcbiAgICB7IGxhYmVsOiAnSU5URVJOQUwgQ09OVFJPTFMnLCB2YWx1ZTogMyB9LFxuICAgIHsgbGFiZWw6ICdPVEhFUlMnLCB2YWx1ZTogMCB9LFxuICBdLFxuICBwZXJmb3JtYW5jZUNhbGN1bGF0aW9uOiBbXG4gICAgeyBsYWJlbDogJ1BBU1QgRVZFTlRTIE9OTFknLCB2YWx1ZTogJ1BBU1RfRVZFTlQnIH0sXG4gICAgeyBsYWJlbDogJ1BBU1QgJiBVUENPTUlORyBFVkVOVFMnLCB2YWx1ZTogJ1VQQ09NSU5HX0VWRU5UJyB9LFxuICBdLFxuICBkYXRlQ29uZmlnOiB7XG4gICAgZGlzYWJsZUtleXByZXNzOiB0cnVlLFxuICAgIGZvcm1hdDogJ0REIE1NTSBZWVlZJyxcbiAgICB1blNlbGVjdE9uQ2xpY2s6IHRydWUsXG4gICAgb3Blbk9uQ2xpY2s6IGZhbHNlLFxuICAgIG9wZW5PbkZvY3VzOiBmYWxzZSxcbiAgICBtaW46IG5ldyBEYXRlKCkuZ2V0RGF0ZSgpLnRvU3RyaW5nKCksXG4gIH0sXG4gIGRlc2NyaXB0aW9uOiB7XG4gICAgbW9kZTogJ3ByaW1lJyxcbiAgICBjb2xvclBhbGV0dGU6IHRydWUsXG4gICAgbGluazogdHJ1ZSxcbiAgICBmaWxlOiB0cnVlLFxuICAgIGlkOiAnZGVzY3JpcHRpb24nLFxuICAgIHBsYWNlaG9sZGVyOiAnQWRkIGEgZGVzY3JpcHRpb24gZm9yIHRoaXMgUHJvZ3JhbScsXG4gIH0sXG5cbiAgb2JqZWN0aXZlOiB7XG4gICAgbW9kZTogJ3ByaW1lJyxcbiAgICBjb2xvclBhbGV0dGU6IHRydWUsXG4gICAgbGluazogdHJ1ZSxcbiAgICBmaWxlOiBmYWxzZSxcbiAgICBpZDogJ29iamVjdGl2ZScsXG4gICAgcGxhY2Vob2xkZXI6ICdXaGF0IGlzIHRoZSBvYmplY3RpdmUgb2YgdGhpcyBwcm9ncmFtPycsXG4gIH0sXG4gIGFkZGl0aW9uYWxPcHRpb246IHtcbiAgICBSRVZJRVdFUjogZmFsc2UsXG4gICAgT1ZFUlNFRVI6IGZhbHNlLFxuICAgIEFTU0VTU01FTlQ6IGZhbHNlLFxuICAgIEZPUk1BVEVfRVZJREVOQ0U6IGZhbHNlLFxuICAgIENVU1RPTV9GSUVMRFM6IGZhbHNlLFxuICAgIFBST0dSQU1fRlJFUVVFTkNZOiBmYWxzZSxcbiAgICBTQ09QRV9DSEFOR0VTOiBmYWxzZSxcbiAgICBSQzogZmFsc2UsXG4gICAgUk9MRVM6IGZhbHNlLFxuICAgIE9XTkVSUzogZmFsc2UsXG4gICAgQVBQUk9WRVI6IGZhbHNlLFxuICAgIEFTU0lHTkVFUzogZmFsc2UsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgQ09MTEFCT1JBVE9SX1RPT0xUSVAgPWA8c3Ryb25nPkNvbGxhYm9yYXRvcnM8L3N0cm9uZz4gY2FuIG9ubHkgYWNjZXNzIHJlc3BvbnNpYmlsaXRpZXMgaW4gdGhpcyBwcm9ncmFtIHdoZXJlIHRoZXkgYXJlIGRpcmVjdGx5IGludm9sdmVkLCBzdWNoIGFzIGNyZWF0b3IsIHJldmlld2VyLCBhc3NpZ25vciwgb3ZlcnNpZ2h0IHVzZXIsIG9yIGNvbGxhYm9yYXRvci48YnI+XG4gICAgICAgIDxicj5cbiAgICAgICAgVGhpcyByb2xlIGlzIGlkZWFsIGZvciB1c2VycyB3aG8gbmVlZCB0byB3b3JrIG9uIHNwZWNpZmljIHRhc2tzIGJ1dCBzaG91bGRuJ3Qgc2VlIHRoZSBlbnRpcmUgcHJvZ3JhbeKAmXMgY29udGVudHMuXG4gICAgICAgIDxicj5cbiAgICAgICAgPGJyPlxuICAgICAgICA8ZW0+RXhhbXBsZTo8L2VtPiBJbiBhbiBBTUwgKEFudGktTW9uZXkgTGF1bmRlcmluZykgcHJvZ3JhbSwgdGhlIEZpbmFuY2UgbGVhZCBhZGRlZCBhcyBhIGNvbGxhYm9yYXRvciB3aWxsIG9ubHkgc2VlIHJlc3BvbnNpYmlsaXRpZXMgcmVsYXRlZCB0byBmaW5hbmNpYWwgcmVwb3J0aW5nIG9yIGF1ZGl0cyB0aGV5IGFyZSBsaW5rZWQgdG8sIG5vdCB0aG9zZSBvd25lZCBieSBMZWdhbCBvciBDb21wbGlhbmNlLmA7XG5cbmV4cG9ydCBjb25zdCBDT0xMQUJPUkFUT1JfUExBQ0VIT0RMRVIgPSBgU2VsZWN0IHVzZXJzIHRoYXQgY2FuIGNvbGxhYm9yYXRlIGluIHRoaXMgUHJvZ3JhbWBcblxuZXhwb3J0IGNvbnN0IENPTExBQk9SQVRPUl9UT09MVElQX1RFWFQgPSBgVGhpcyB1c2VyIGhhcyBhbHJlYWR5IGJlZW4gc2VsZWN0ZWQgYXMgYSBQcm9ncmFtIE93bmVyLmA7Il19
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctcHJvZ3JhbS9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3ZCLFlBQVksRUFBRTtRQUNaLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ2xDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ2hDLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7UUFDeEMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7S0FDOUI7SUFDRCxzQkFBc0IsRUFBRTtRQUN0QixFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO1FBQ2xELEVBQUUsS0FBSyxFQUFFLHdCQUF3QixFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtLQUM3RDtJQUNELFVBQVUsRUFBRTtRQUNWLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLE1BQU0sRUFBRSxhQUFhO1FBQ3JCLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtLQUNyQztJQUNELFdBQVcsRUFBRTtRQUNYLElBQUksRUFBRSxPQUFPO1FBQ2IsWUFBWSxFQUFFLElBQUk7UUFDbEIsSUFBSSxFQUFFLElBQUk7UUFDVixJQUFJLEVBQUUsS0FBSztRQUNYLEVBQUUsRUFBRSxhQUFhO1FBQ2pCLFdBQVcsRUFBRSxvQ0FBb0M7S0FDbEQ7SUFFRCxTQUFTLEVBQUU7UUFDVCxJQUFJLEVBQUUsT0FBTztRQUNiLFlBQVksRUFBRSxJQUFJO1FBQ2xCLElBQUksRUFBRSxJQUFJO1FBQ1YsSUFBSSxFQUFFLEtBQUs7UUFDWCxFQUFFLEVBQUUsV0FBVztRQUNmLFdBQVcsRUFBRSx3Q0FBd0M7S0FDdEQ7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixRQUFRLEVBQUUsS0FBSztRQUNmLFFBQVEsRUFBRSxLQUFLO1FBQ2YsVUFBVSxFQUFFLEtBQUs7UUFDakIsZ0JBQWdCLEVBQUUsS0FBSztRQUN2QixhQUFhLEVBQUUsS0FBSztRQUNwQixpQkFBaUIsRUFBRSxLQUFLO1FBQ3hCLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLEVBQUUsRUFBRSxLQUFLO1FBQ1QsS0FBSyxFQUFFLEtBQUs7UUFDWixNQUFNLEVBQUUsS0FBSztRQUNiLFFBQVEsRUFBRSxLQUFLO1FBQ2YsU0FBUyxFQUFFLEtBQUs7S0FDakI7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENPTlNUQU5UUyA9IHtcbiAgY2F0ZWdvcnlUeXBlOiBbXG4gICAgeyBsYWJlbDogJ1JFR1VMQVRJT05TJywgdmFsdWU6IDEgfSxcbiAgICB7IGxhYmVsOiAnU1RBTkRBUkRTJywgdmFsdWU6IDIgfSxcbiAgICB7IGxhYmVsOiAnSU5URVJOQUwgQ09OVFJPTFMnLCB2YWx1ZTogMyB9LFxuICAgIHsgbGFiZWw6ICdPVEhFUlMnLCB2YWx1ZTogMCB9LFxuICBdLFxuICBwZXJmb3JtYW5jZUNhbGN1bGF0aW9uOiBbXG4gICAgeyBsYWJlbDogJ1BBU1QgRVZFTlRTIE9OTFknLCB2YWx1ZTogJ1BBU1RfRVZFTlQnIH0sXG4gICAgeyBsYWJlbDogJ1BBU1QgJiBVUENPTUlORyBFVkVOVFMnLCB2YWx1ZTogJ1VQQ09NSU5HX0VWRU5UJyB9LFxuICBdLFxuICBkYXRlQ29uZmlnOiB7XG4gICAgZGlzYWJsZUtleXByZXNzOiB0cnVlLFxuICAgIGZvcm1hdDogJ0REIE1NTSBZWVlZJyxcbiAgICB1blNlbGVjdE9uQ2xpY2s6IHRydWUsXG4gICAgb3Blbk9uQ2xpY2s6IGZhbHNlLFxuICAgIG9wZW5PbkZvY3VzOiBmYWxzZSxcbiAgICBtaW46IG5ldyBEYXRlKCkuZ2V0RGF0ZSgpLnRvU3RyaW5nKCksXG4gIH0sXG4gIGRlc2NyaXB0aW9uOiB7XG4gICAgbW9kZTogJ2Jhc2ljJyxcbiAgICBjb2xvclBhbGV0dGU6IHRydWUsXG4gICAgbGluazogdHJ1ZSxcbiAgICBmaWxlOiBmYWxzZSxcbiAgICBpZDogJ2Rlc2NyaXB0aW9uJyxcbiAgICBwbGFjZWhvbGRlcjogJ0FkZCBhIGRlc2NyaXB0aW9uIGZvciB0aGlzIFByb2dyYW0nLFxuICB9LFxuXG4gIG9iamVjdGl2ZToge1xuICAgIG1vZGU6ICdwcmltZScsXG4gICAgY29sb3JQYWxldHRlOiB0cnVlLFxuICAgIGxpbms6IHRydWUsXG4gICAgZmlsZTogZmFsc2UsXG4gICAgaWQ6ICdvYmplY3RpdmUnLFxuICAgIHBsYWNlaG9sZGVyOiAnV2hhdCBpcyB0aGUgb2JqZWN0aXZlIG9mIHRoaXMgcHJvZ3JhbT8nLFxuICB9LFxuICBhZGRpdGlvbmFsT3B0aW9uOiB7XG4gICAgUkVWSUVXRVI6IGZhbHNlLFxuICAgIE9WRVJTRUVSOiBmYWxzZSxcbiAgICBBU1NFU1NNRU5UOiBmYWxzZSxcbiAgICBGT1JNQVRFX0VWSURFTkNFOiBmYWxzZSxcbiAgICBDVVNUT01fRklFTERTOiBmYWxzZSxcbiAgICBQUk9HUkFNX0ZSRVFVRU5DWTogZmFsc2UsXG4gICAgU0NPUEVfQ0hBTkdFUzogZmFsc2UsXG4gICAgUkM6IGZhbHNlLFxuICAgIFJPTEVTOiBmYWxzZSxcbiAgICBPV05FUlM6IGZhbHNlLFxuICAgIEFQUFJPVkVSOiBmYWxzZSxcbiAgICBBU1NJR05FRVM6IGZhbHNlLFxuICB9LFxufTtcbiJdfQ==
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Pipe } from '@angular/core';
|
|
2
|
-
import { COLLABORATOR_TOOLTIP_TEXT } from '../../../constants';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
3
|
export class TooltipMessagePipe {
|
|
5
4
|
transform(value, ...args) {
|
|
@@ -52,11 +51,6 @@ export class TooltipMessagePipe {
|
|
|
52
51
|
return "This user is already selected as the assignor for this " + openedFrom + '.';
|
|
53
52
|
}
|
|
54
53
|
return currentUser?.member_email ?? currentUser?.employee_email;
|
|
55
|
-
case "collaborator":
|
|
56
|
-
if (isDisabled) {
|
|
57
|
-
return COLLABORATOR_TOOLTIP_TEXT;
|
|
58
|
-
}
|
|
59
|
-
return currentUser?.member_email ?? currentUser?.employee_email;
|
|
60
54
|
default:
|
|
61
55
|
return isDisabled ? "" : currentUser?.member_email ?? currentUser?.employee_email;
|
|
62
56
|
}
|
|
@@ -71,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
71
65
|
name: 'tooltipMessage'
|
|
72
66
|
}]
|
|
73
67
|
}] });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1tZXNzYWdlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1wcm9ncmFtL2NyZWF0ZS1wcm9ncmFtLXVpL2RlZmluZS1mcmFtZXdvcmstbGlzdGluZy9waXBlcy90b29sdGlwLW1lc3NhZ2UucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLGtCQUFrQjtJQUU3QixTQUFTLENBQUMsS0FBVSxFQUFFLEdBQUcsSUFBVztRQUNsQyxJQUFJLGtCQUFrQixHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxXQUFXLEdBQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksV0FBVyxHQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixJQUFJLFVBQVUsR0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVDLElBQUksV0FBVyxHQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDOUMsSUFBSSxTQUFTLEdBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUNyRCxJQUFJLFVBQVUsR0FBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMs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Q0FBQyxJQUFJLFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQztvQkFDekcsT0FBTyxzRUFBc0UsR0FBRyxVQUFVLEdBQUcsR0FBRyxDQUFDO2lCQUNsRztnQkFDRCxJQUFHLFVBQVUsRUFBRSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQztvQkFDaEQsT0FBTyx5REFBeUQsR0FBRyxVQUFVLEdBQUcsR0FBRyxDQUFDO2lCQUNyRjtnQkFDRCxPQUFPLFdBQVcsRUFBRSxZQUFZLElBQUksV0FBVyxFQUFFLGNBQWMsQ0FBQztZQUNsRTtnQkFDRSxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsWUFBWSxJQUFJLFdBQVcsRUFBRSxjQUFjLENBQUM7U0FDckY7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7K0dBcERVLGtCQUFrQjs2R0FBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUg5QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxnQkFBZ0I7aUJBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICd0b29sdGlwTWVzc2FnZSdcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcE1lc3NhZ2VQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIC4uLmFyZ3M6IGFueVtdKTogdW5rbm93biB7XG4gICAgbGV0IHJlc3BvbnNpYmlsaXR5VHlwZSA9IGFyZ3NbMF07XG4gICAgbGV0IGN1cnJlbnRVc2VyID0gdmFsdWU7XG4gICAgbGV0IHJldmlld2VySWRzOmFueSA9IGFyZ3NbMV07XG4gICAgbGV0IG92ZXJzZWVySWRzOmFueSA9IGFyZ3NbMl07XG4gICAgbGV0IGFzc2lnbm9ySWQ6YW55ID0gYXJnc1szXSA/IGFyZ3NbM10gOiBbXTtcbiAgICBsZXQgYXNzaWduZWVJZHMgOmFueSA9IGFyZ3NbNF0gPyBhcmdzWzRdIDogW107XG4gICAgbGV0IG1lbWJlcl9pZCA6YW55ID0gYXJnc1s1XSA/IGFyZ3NbNV0gOiAnbWVtYmVyX2lkJztcbiAgICBsZXQgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGFyZ3NbNl0gPyBhcmdzWzZdIDogZmFsc2U7XG4gICAgbGV0IG9wZW5lZEZyb20gID0gYXJnc1s3XSA/J1Byb2dyYW0nOidyZXNwb25zaWJpbGl0eSc7ICAgIFxuICAgIHN3aXRjaChyZXNwb25zaWJpbGl0eVR5cGUpIHtcbiAgICAgIGNhc2UgXCJBc3NpZ25lZVwiOlxuICAgICAgICBpZihyZXZpZXdlcklkcz8uaW5jbHVkZXMoY3VycmVudFVzZXI/LlttZW1iZXJfaWRdKSYmICFhc3NpZ25vcklkPy5pbmNsdWRlcyhjdXJyZW50VXNlcj8uW21lbWJlcl9pZF0pKXtcbiAgICAgICAgICByZXR1cm4gXCJUaGlzIHVzZXIgaXMgYWxyZWFkeSBzZWxlY3RlZCBhcyB0aGUgcmV2aWV3ZXIgZm9yIHRoaXMgXCIgKyBvcGVuZWRGcm9tICsgJy4nO1xuICAgICAgICB9ZWxzZSBpZihhc3NpZ25vcklkPy5pbmNsdWRlcyhjdXJyZW50VXNlcj8uW21lbWJlcl9pZF0pICYmIHJldmlld2VySWRzPy5pbmNsdWRlcyhjdXJyZW50VXNlcj8uW21lbWJlcl9pZF0pKXtcbiAgICAgICAgICByZXR1cm4gXCJUaGlzIHVzZXIgaXMgYWxyZWFkeSBzZWxlY3RlZCBhcyB0aGUgYXNzaWdub3IgYW5kIHJldmlld2VyIGZvciB0aGlzIFwiICsgb3BlbmVkRnJvbSArICcuJztcbiAgICAgICAgfVxuICAgICAgICBpZihvdmVyc2Vlcklkcz8uaW5jbHVkZXMoY3VycmVudFVzZXI/LlttZW1iZXJfaWRdKSl7XG4gICAgICAgICAgcmV0dXJuIFwiVGhpcyB1c2VyIGlzIGFscmVhZHkgc2VsZWN0ZWQgYXMgdGhlIG92ZXJzaWdodCBmb3IgdGhpcyBcIiArIG9wZW5lZEZyb20gKyAnLic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGN1cnJlbnRVc2VyPy5tZW1iZXJfZW1haWwgPz8gY3VycmVudFVzZXI/LmVtcGxveWVlX2VtYWlsO1xuICAgICAgY2FzZSBcIlJldmlld2VyXCI6XG4gICAgICAgIGlmKGFzc2lnbmVlSWRzPy5pbmNsdWRlcyhjdXJyZW50VXNlcj8uW21lbWJlcl9pZF0pICYmICFhc3NpZ25vcklkPy5pbmNsdWRlcyhjdXJyZW50VXNlcj8uW21lbWJlcl9pZF0pKXtcbiAgICAgICAgICByZXR1cm4gXCJUaGlzIHVzZXIgaXMgYWxyZWFkeSBzZWxlY3RlZCBhcyB0aGUgYXNzaWduZWUgZm9yIHRoaXMgXCIgKyBvcGVuZWRGcm9tICsgJy4nO1xuICAgICAgICB9IGVsc2UgaWYoYXNzaWdub3JJZD8uaW5jbHVkZXMoY3VycmVudFVzZXI/LlttZW1iZXJfaWRdKSAmJiBhc3NpZ25lZUlkcz8uaW5jbHVkZXMoY3VycmVudFVzZXI/LlttZW1iZXJfaWRdKSl7XG4gICAgICAgICAgcmV0dXJuIFwiVGhpcyB1c2VyIGlzIGFscmVhZHkgc2VsZWN0ZWQgYXMgdGhlIGFzc2lnbm9yIGFuZCBhc3NpZ25lZSBmb3IgdGhpcyBcIiArIG9wZW5lZEZyb20gKyAnLidcbiAgICAgICAgfVxuICAgICAgICBpZihvdmVyc2Vlcklkcz8uaW5jbHVkZXMoY3VycmVudFVzZXI/LlttZW1iZXJfaWRdKSl7XG4gICAgICAgICAgcmV0dXJuIFwiVGhpcyB1c2VyIGlzIGFscmVhZHkgc2VsZWN0ZWQgYXMgdGhlIG92ZXJzaWdodCBmb3IgdGhpcyBcIiArIG9wZW5lZEZyb20gKyAnLic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGN1cnJlbnRVc2VyPy5tZW1iZXJfZW1haWwgPz8gY3VycmVudFVzZXI/LmVtcGxveWVlX2VtYWlsO1xuICAgICAgY2FzZSBcIk92ZXJzZWVyXCI6XG4gICAgICAgIGlmKGFzc2lnbmVlSWRzPy5pbmNsdWRlcyhjdXJyZW50VXNlcj8uW21lbWJlcl9pZF0pICYmICFhc3NpZ25vcklkPy5pbmNsdWRlcyhjdXJyZW50VXNlcj8uW21lbWJlcl9pZF0pKXtcbiAgICAgICAgICByZXR1cm4gXCJUaGlzIHVzZXIgaXMgYWxyZWFkeSBzZWxlY3RlZCBhcyB0aGUgYXNzaWduZWUgZm9yIHRoaXMgXCIgKyBvcGVuZWRGcm9tICsgJy4nO1xuICAgICAgICB9IGVsc2UgaWYoYXNzaWdub3JJZD8uaW5jbHVkZXMoY3VycmVudFVzZXI/LlttZW1iZXJfaWRdKSAmJiBhc3NpZ25lZUlkcz8uaW5jbHVkZXMoY3VycmVudFVzZXI/LlttZW1iZXJfaWRdKSl7XG4gICAgICAgICAgcmV0dXJuIFwiVGhpcyB1c2VyIGlzIGFscmVhZHkgc2VsZWN0ZWQgYXMgdGhlIGFzc2lnbm9yIGFuZCBhc3NpZ25lZSBmb3IgdGhpcyBcIiArIG9wZW5lZEZyb20gKyAnLic7XG4gICAgICAgIH1cbiAgICAgICAgaWYocmV2aWV3ZXJJZHM/LmluY2x1ZGVzKGN1cnJlbnRVc2VyPy5bbWVtYmVyX2lkXSkmJiAhYXNzaWdub3JJZD8uaW5jbHVkZXMoY3VycmVudFVzZXI/LlttZW1iZXJfaWRdKSl7XG4gICAgICAgICAgcmV0dXJuIFwiVGhpcyB1c2VyIGlzIGFscmVhZHkgc2VsZWN0ZWQgYXMgdGhlIHJldmlld2VyIGZvciB0aGlzIFwiICsgb3BlbmVkRnJvbSArICcuJztcbiAgICAgICAgfWVsc2UgaWYoYXNzaWdub3JJZD8uaW5jbHVkZXMoY3VycmVudFVzZXI/LlttZW1iZXJfaWRdKSAmJiByZXZpZXdlcklkcz8uaW5jbHVkZXMoY3VycmVudFVzZXI/LlttZW1iZXJfaWRdKSl7XG4gICAgICAgICAgcmV0dXJuIFwiVGhpcyB1c2VyIGlzIGFscmVhZHkgc2VsZWN0ZWQgYXMgdGhlIGFzc2lnbm9yIGFuZCByZXZpZXdlciBmb3IgdGhpcyBcIiArIG9wZW5lZEZyb20gKyAnLic7XG4gICAgICAgIH1cbiAgICAgICAgaWYoYXNzaWdub3JJZD8uaW5jbHVkZXMoY3VycmVudFVzZXI/LlttZW1iZXJfaWRdKSl7XG4gICAgICAgICAgcmV0dXJuIFwiVGhpcyB1c2VyIGlzIGFscmVhZHkgc2VsZWN0ZWQgYXMgdGhlIGFzc2lnbm9yIGZvciB0aGlzIFwiICsgb3BlbmVkRnJvbSArICcuJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3VycmVudFVzZXI/Lm1lbWJlcl9lbWFpbCA/PyBjdXJyZW50VXNlcj8uZW1wbG95ZWVfZW1haWw7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gaXNEaXNhYmxlZCA/IFwiXCIgOiBjdXJyZW50VXNlcj8ubWVtYmVyX2VtYWlsID8/IGN1cnJlbnRVc2VyPy5lbXBsb3llZV9lbWFpbDtcbiAgICB9XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxufVxuIl19
|
package/esm2022/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.mjs
CHANGED
|
@@ -132,15 +132,20 @@ export class UserGroupListComponent {
|
|
|
132
132
|
this.allUserSelectedStatus();
|
|
133
133
|
}
|
|
134
134
|
selectAllUser(evt) {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
this.
|
|
135
|
+
if (this.fromResponsibility) {
|
|
136
|
+
this.nonDisabledUsers = this.disableUsers();
|
|
137
|
+
}
|
|
138
|
+
if (evt?.target?.checked === true) {
|
|
139
|
+
this.selectedUsers = this.fromResponsibility
|
|
140
|
+
? this.nonDisabledUsers
|
|
141
|
+
: this.usersList;
|
|
142
|
+
this.selectedUserIds = this.fromResponsibility
|
|
143
|
+
? this.nonDisabledUsers.map((ele) => ele?.member_id)
|
|
144
|
+
: this.usersList.map((ele) => ele?.member_id);
|
|
140
145
|
}
|
|
141
146
|
else {
|
|
142
|
-
this.selectedUsers = this.usersList.filter((
|
|
143
|
-
this.selectedUserIds = this.selectedUsers.map((
|
|
147
|
+
this.selectedUsers = this.usersList.filter((ele) => this.nonRemovableUserIds.includes(ele?.member_id));
|
|
148
|
+
this.selectedUserIds = this.selectedUsers.map((ele) => ele?.member_id);
|
|
144
149
|
}
|
|
145
150
|
this.allUserSelectedStatus();
|
|
146
151
|
}
|
|
@@ -330,9 +335,6 @@ export class UserGroupListComponent {
|
|
|
330
335
|
this.reviewerIds?.includes(user?.member_id) ||
|
|
331
336
|
this.assigneeIds?.includes(user?.member_id)));
|
|
332
337
|
break;
|
|
333
|
-
case 'collaborator':
|
|
334
|
-
this.nonDisabledUsers = this.usersList.filter((user) => !(this.disabledIds?.includes(user?.member_id)));
|
|
335
|
-
break;
|
|
336
338
|
default:
|
|
337
339
|
}
|
|
338
340
|
return this.nonDisabledUsers;
|
|
@@ -432,4 +434,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
432
434
|
type: Input,
|
|
433
435
|
args: ['selectedGroups']
|
|
434
436
|
}] } });
|
|
435
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ncm91cC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXByb2dyYW0vY3JlYXRlLXByb2dyYW0tdWkvdXNlci1ncm91cC1saXN0L3VzZXItZ3JvdXAtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1wcm9ncmFtL2NyZWF0ZS1wcm9ncmFtLXVpL3VzZXItZ3JvdXAtbGlzdC91c2VyLWdyb3VwLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQU83RCxNQUFNLE9BQU8sc0JBQXNCO0lBMkJqQyxJQUFhLFlBQVksQ0FBQyxLQUE2QztRQUNyRSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUE0QkQsSUFBdUIsV0FBVyxDQUFDLEtBQVU7UUFDM0MsSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLHFCQUFx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c0JBQXBCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ08sWUFBWTtzQkFBeEIsS0FBSztnQkFHRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUVFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFNRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBVUcsT0FBTztzQkFBZixLQUFLO2dCQUVpQixXQUFXO3NCQUFqQyxLQUFLO3VCQUFDLFVBQVU7Z0JBU1csZUFBZTtzQkFBMUMsS0FBSzt1QkFBQyxlQUFlO2dCQWdCYSx1QkFBdUI7c0JBQXpELEtBQUs7dUJBQUMsc0JBQXNCO2dCQVNwQixRQUFRO3NCQUFoQixLQUFLO2dCQTBCa0IsWUFBWTtzQkFBbkMsS0FBSzt1QkFBQyxXQUFXO2dCQVNXLGdCQUFnQjtzQkFBNUMsS0FBSzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWFyY2hQaXBlIH0gZnJvbSAnLi4vcGlwZXMvc2VhcmNoLnBpcGUnO1xuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2Fzc2V0cy5jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1c2VyLWdyb3VwLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1ncm91cC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1ncm91cC1saXN0LmNvbXBvbmVudC5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJHcm91cExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBBU1NFVFMgPSBBU1NFVFM7XG4gIEBPdXRwdXQoKSBzYXZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBncm91cEVuYWJsZWQhOiBmYWxzZTtcbiAgQElucHV0KCkgcGFuZWxUaXRsZSA9ICdTZWxlY3QgVXNlcihzKSc7XG4gIEBJbnB1dCgpIHNpbmdsZVNlbGVjdCA9IGZhbHNlO1xuICBASW5wdXQoKSBzZWxlY3RlZFJldmlld2VyID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZlYXR1cmVmbGFnID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJldmlld2VyV29ya2Zsb3dUeXBlOiBzdHJpbmcgPSAnU0VRVUVOVElBTCc7XG4gIEBPdXRwdXQoKSByZXZpZXdlcldvcmtmbG93VHlwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgbW9kZTogc3RyaW5nID0gJ0NSRUFURSc7XG4gIEBJbnB1dCgpIGZpZWxkVHlwZSA9ICcnO1xuICBzZWFyY2hLZXkgPSAnJztcbiAgaXNQYWdpbmF0aW9uOiBhbnk7XG4gIGFwcHJvdmFsV29ya2Zsb3dUeXBlOiAnQU5ZT05FJyB8ICdST1VORFJPQklOJyB8ICdTRVFVRU5USUFMJyA9ICdTRVFVRU5USUFMJztcbiAgdXNlcnNMaXN0OiBhbnkgPSBbXTtcbiAgZ3JvdXBzTGlzdDogYW55ID0gW107XG4gIEBJbnB1dCgpIGZyb21SZXNwb25zaWJpbGl0eTogYW55O1xuICBASW5wdXQoKSBhc3NpZ25vcklkOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBhc3NpZ25lZUlkczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgcmV2aWV3ZXJJZHM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIG92ZXJzZWVySWRzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBGcm9tUHJvZ3JhbSA9IGZhbHNlO1xuICBASW5wdXQoKSB1c2VyTGlzdEluZm8hOiBhbnk7XG4gIEBJbnB1dCgpIGdyb3VwTGlzdEluZm8hOiBhbnk7XG4gIEBJbnB1dCgpIGZyb21BcHByb3ZhbFdvcmtmbG93OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNldCBhcHByb3ZhbFR5cGUodmFsdWU6ICdBTllPTkUnIHwgJ1JPVU5EUk9CSU4nIHwgJ1NFUVVFTlRJQUwnKSB7XG4gICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93VHlwZSA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpIHNob3dGdXR1cmVVc2Vyc1N3aXRjaDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBmdXR1cmVVc2Vyc1dpbGxTZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaXNBbGxEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0dyb3VwVGFiU2hvdzogYm9vbGVhbiA9IHRydWU7XG5cbiAgQE91dHB1dCgpIGZldGNoVXNlckRhdGEgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KCkgZGlzYWJsZWRJZHM6IGFueSA9IFtdO1xuICBASW5wdXQoKSBub25SZW1vdmFibGVVc2VySWRzOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgYWxsVXNlclNlbGVjdGVkRGlzYWJsZWQgPSBmYWxzZTtcbiAgc2VsZWN0ZWRVc2VyczogYW55ID0gW107XG4gIHNlbGVjdGVkVXNlcklkczogYW55ID0gW107XG4gIGFsbFVzZXJzSWRzOiBhbnkgPSBbXTtcbiAgYWxsVXNlclNlbGVjdGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbm9uUmVtb3ZhYmxlR3JvdXBJZHM6IGFueSA9IFtdO1xuICBzZWxlY3RlZEdyb3VwczogYW55ID0gW107XG4gIHNlbGVjdGVkR3JvdXBJZHM6IGFueSA9IFtdO1xuICBhbGxHcm91cHNJZHM6IGFueSA9IFtdO1xuICBhbGxHcm91cFNlbGVjdGVkID0gZmFsc2U7XG4gIGFsbEdyb3VwU2VsZWN0ZWREaXNhYmxlZCA9IGZhbHNlO1xuICBzZWFyY2hQaXBlID0gbmV3IFNlYXJjaFBpcGUoKTtcblxuICB1c2VyQ3VycmVudFBhZ2UgPSAxO1xuICBncm91cEN1cnJlbnRQYWdlID0gMTtcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBub25EaXNhYmxlZFVzZXJzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoJ3VzZXJsaXN0Jykgc2V0IHNldFVzZXJMaXN0KHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgJiYgdmFsdWU/Lmxlbmd0aCkge1xuICAgICAgdGhpcy51c2Vyc0xpc3QgPSBbLi4udmFsdWVdO1xuICAgICAgdGhpcy5hbGxVc2Vyc0lkcyA9IHRoaXMudXNlcnNMaXN0Lm1hcCgoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkKTtcbiAgICAgIHRoaXMuYWxsVXNlclNlbGVjdGVkU3RhdHVzKCk7XG4gICAgICB0aGlzLnNldFVzZXJMaXN0SW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnc2VsZWN0ZWRVc2VycycpIHNldCBzZXRTZWxlY3RlZFVzZXIodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZT8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChcbiAgICAgICAgWy4uLnRoaXMuc2VsZWN0ZWRVc2VycywgLi4udmFsdWVdLFxuICAgICAgICAnbWVtYmVyX2lkJ1xuICAgICAgKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VySWRzID0gdGhpcy5zZWxlY3RlZFVzZXJzLm1hcChcbiAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZFxuICAgICAgKTtcbiAgICAgIHRoaXMuYWxsVXNlclNlbGVjdGVkU3RhdHVzKCk7XG4gICAgICB0aGlzLnNldFVzZXJMaXN0SW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIGRlZmF1bHRTZWxlY3RlZFVzZXJzOiBhbnkgPSBbXTtcbiAgZGVmYXVsdFNlbGVjdGVkVXNlcklkczogYW55ID0gW107XG4gIEBJbnB1dCgnZGVmYXVsdFNlbGVjdGVkVXNlcnMnKSBzZXQgc2V0RGVmYXVsdFNlbGVjdGVkVXNlcnModmFsdWU6IGFueSkge1xuICAgIHRoaXMuZGVmYXVsdFNlbGVjdGVkVXNlcnMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChcbiAgICAgIFsuLi50aGlzLmRlZmF1bHRTZWxlY3RlZFVzZXJzLCAuLi52YWx1ZV0sXG4gICAgICAnbWVtYmVyX2lkJ1xuICAgICk7XG4gICAgdGhpcy5kZWZhdWx0U2VsZWN0ZWRVc2VySWRzID0gdGhpcy5kZWZhdWx0U2VsZWN0ZWRVc2Vycy5tYXAoXG4gICAgICAoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkXG4gICAgKTtcbiAgfVxuICBASW5wdXQoKSB1c2VyVHlwZTogc3RyaW5nID0gJ2Fzc2lnbmVlcyc7XG4gIHNob3dDb25maXJtYXRpb24gPSBmYWxzZTtcblxuICBzZXRVc2VyTGlzdEluaXQoKSB7XG4gICAgaWYgKHRoaXMudXNlckN1cnJlbnRQYWdlID09PSAxKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRVc2VycztcbiAgICAgIGNvbnN0IG90aGVyVXNlciA9IHRoaXMudXNlcnNMaXN0LmZpbHRlcihcbiAgICAgICAgKGVsZTogYW55KSA9PiAhdGhpcy5zZWxlY3RlZFVzZXJJZHMuaW5jbHVkZXMoZWxlPy5tZW1iZXJfaWQpXG4gICAgICApO1xuICAgICAgdGhpcy51c2Vyc0xpc3QgPSB0aGlzLnVuaXF1ZUJ5UHJvcChcbiAgICAgICAgWy4uLnNlbGVjdGVkPy5zb3J0KCksIC4uLm90aGVyVXNlcj8uc29ydCgpXSxcbiAgICAgICAgJ21lbWJlcl9pZCdcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIGFsbFVzZXJTZWxlY3RlZFN0YXR1cygpIHtcbiAgICB0aGlzLmFsbFVzZXJTZWxlY3RlZCA9XG4gICAgICB0aGlzLmFsbFVzZXJzSWRzLnNvcnQoKS50b1N0cmluZygpID09PVxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJJZHMuc29ydCgpPy50b1N0cmluZygpO1xuICAgIHRoaXMuYWxsVXNlclNlbGVjdGVkRGlzYWJsZWQgPVxuICAgICAgdGhpcy5hbGxVc2Vyc0lkcy5zb3J0KCkudG9TdHJpbmcoKSA9PT1cbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VySWRzLnNvcnQoKT8udG9TdHJpbmcoKSAmJlxuICAgICAgdGhpcy5hbGxVc2Vyc0lkcy5zb3J0KCkudG9TdHJpbmcoKSA9PT1cbiAgICAgIHRoaXMubm9uUmVtb3ZhYmxlVXNlcklkcy5zb3J0KCk/LnRvU3RyaW5nKCk7XG4gIH1cblxuICBASW5wdXQoJ2dyb3VwTGlzdCcpIHNldCBzZXRHcm91cExpc3QodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZT8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmdyb3Vwc0xpc3QgPSBbLi4udmFsdWVdO1xuICAgICAgdGhpcy5hbGxHcm91cHNJZHMgPSB0aGlzLmdyb3Vwc0xpc3QubWFwKChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCk7XG4gICAgICB0aGlzLmFsbEdyb3VwU2VsZWN0ZWRTdGF0dXMoKTtcbiAgICAgIHRoaXMuc2V0R3JvdXBMaXN0SW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnc2VsZWN0ZWRHcm91cHMnKSBzZXQgc2V0U2VsZWN0ZWRHcm91cCh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IHRoaXMudW5pcXVlQnlQcm9wKFxuICAgICAgWy4uLnRoaXMuc2VsZWN0ZWRHcm91cHMsIC4uLnZhbHVlXSxcbiAgICAgICdncm91cF9pZCdcbiAgICApO1xuICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IHRoaXMuc2VsZWN0ZWRHcm91cHMubWFwKFxuICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkXG4gICAgKTtcbiAgICB0aGlzLmFsbEdyb3VwU2VsZWN0ZWRTdGF0dXMoKTtcbiAgICB0aGlzLnNldEdyb3VwTGlzdEluaXQoKTtcbiAgfVxuXG4gIHNldEdyb3VwTGlzdEluaXQoKSB7XG4gICAgaWYgKHRoaXMudXNlckN1cnJlbnRQYWdlID09PSAxKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRHcm91cHM7XG4gICAgICBjb25zdCBvdGhlckdyb3VwID0gdGhpcy5ncm91cHNMaXN0LmZpbHRlcihcbiAgICAgICAgKGVsZTogYW55KSA9PiAhdGhpcy5zZWxlY3RlZEdyb3VwSWRzLmluY2x1ZGVzKGVsZT8uZ3JvdXBfaWQpXG4gICAgICApO1xuICAgICAgdGhpcy5ncm91cHNMaXN0ID0gdGhpcy51bmlxdWVCeVByb3AoXG4gICAgICAgIFsuLi5zZWxlY3RlZD8uc29ydCgpLCAuLi5vdGhlckdyb3VwPy5zb3J0KCldLFxuICAgICAgICAnZ3JvdXBfaWQnXG4gICAgICApO1xuICAgIH1cbiAgfVxuICBhbGxHcm91cFNlbGVjdGVkU3RhdHVzKCkge1xuICAgIHRoaXMuYWxsR3JvdXBTZWxlY3RlZCA9XG4gICAgICB0aGlzLmFsbEdyb3Vwc0lkcz8uc29ydCgpPy50b1N0cmluZygpID09PVxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzPy5zb3J0KCk/LnRvU3RyaW5nKCk7XG4gICAgdGhpcy5hbGxHcm91cFNlbGVjdGVkRGlzYWJsZWQgPVxuICAgICAgdGhpcy5hbGxHcm91cHNJZHMuc29ydCgpLnRvU3RyaW5nKCkgPT09XG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBJZHMuc29ydCgpPy50b1N0cmluZygpICYmXG4gICAgICB0aGlzLmFsbEdyb3Vwc0lkcy5zb3J0KCkudG9TdHJpbmcoKSA9PT1cbiAgICAgIHRoaXMubm9uUmVtb3ZhYmxlR3JvdXBJZHMuc29ydCgpPy50b1N0cmluZygpO1xuICB9XG5cbiAgdXNlclBhZ2VDaGFuZ2UocGFnZTogYW55KSB7XG4gICAgdGhpcy51c2VyQ3VycmVudFBhZ2UgPSBwYWdlO1xuICAgIHRoaXMuZmV0Y2hVc2VyRGF0YS5lbWl0KHsgcGFnZSwgc2VhcmNoS2V5OiB0aGlzLnNlYXJjaEtleSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAjIyMjIERlc2NyaXB0aW9uXG4gICAqIFNlbGVjdHMgaXRlbSBvciBkZXNlbGVjdCBhIGl0bWVcbiAgICogQHBhcmFtIGV2dFxuICAgKiBAcGFyYW0gcGF5bG9hZFxuICAgKi9cbiAgc2VsZWN0SXRlbShldnQ6IGFueSwgcGF5bG9hZDogYW55KSB7XG4gICAgZXZ0Py50YXJnZXQ/LmNoZWNrZWQgPT09IHRydWVcbiAgICAgID8gdGhpcy5tYW5pcHVsYXRlU2VsZWN0ZWRVc2VyKCdBREQnLCBwYXlsb2FkKVxuICAgICAgOiB0aGlzLm1hbmlwdWxhdGVTZWxlY3RlZFVzZXIoJ0RFTEVURScsIHBheWxvYWQpO1xuICB9XG5cbiAgc2VsZWN0SXRlbVJhZGlvKGV2dDogYW55LCBwYXlsb2FkOiBhbnkpIHtcbiAgICBpZiAoZXZ0Py50YXJnZXQ/LmNoZWNrZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IFtdO1xuICAgICAgdGhpcy5tYW5pcHVsYXRlU2VsZWN0ZWRVc2VyKCdBREQnLCBwYXlsb2FkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIyMjIyBEZXNjcmlwdGlvblxuICAgKlxuICAgKiBNYW5pcHVsYXRlcyBzZWxlY3RlZCBpdGVtcyBpbiByb2xlIGxpc3RcbiAgICogQHBhcmFtIGFjdGlvbiA6J0FERCcgfCAnREVMRVRFJ1xuICAgKiBAcGFyYW0gcGF5bG9hZFxuICAgKi9cbiAgbWFuaXB1bGF0ZVNlbGVjdGVkVXNlcihhY3Rpb246ICdBREQnIHwgJ0RFTEVURScsIHBheWxvYWQ6IGFueSkge1xuICAgIGlmIChhY3Rpb24gPT09ICdBREQnKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChcbiAgICAgICAgWy4uLnRoaXMuc2VsZWN0ZWRVc2VycywgLi4uW3BheWxvYWRdXSxcbiAgICAgICAgJ21lbWJlcl9pZCdcbiAgICAgICk7XG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcklkcyA9IHRoaXMuc2VsZWN0ZWRVc2Vycy5tYXAoXG4gICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWRcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChhY3Rpb24gPT09ICdERUxFVEUnKSB7XG4gICAgICBsZXQgaW5kZXggPSB0aGlzLnNlbGVjdGVkVXNlcnMuZmluZEluZGV4KFxuICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkID09PSBwYXlsb2FkPy5tZW1iZXJfaWRcbiAgICAgICk7XG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLnNlbGVjdGVkVXNlcnMuZmlsdGVyKFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQgIT09IHBheWxvYWQ/Lm1lbWJlcl9pZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVXNlcklkcyA9IHRoaXMuc2VsZWN0ZWRVc2VySWRzLmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZSAhPT0gcGF5bG9hZD8ubWVtYmVyX2lkXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYWxsVXNlclNlbGVjdGVkU3RhdHVzKCk7XG4gIH1cbiAgc2VsZWN0QWxsVXNlcihldnQ6IGFueSkge1xuICAgIGNvbnN0IGlzQ2hlY2tlZCA9IGV2dD8udGFyZ2V0Py5jaGVja2VkID09PSB0cnVlO1xuICAgIGNvbnN0IHNvdXJjZVVzZXJzID0gdGhpcy5mcm9tUmVzcG9uc2liaWxpdHkgPyB0aGlzLmRpc2FibGVVc2VycygpIDogdGhpcy51c2Vyc0xpc3Q7XG4gICAgXG4gICAgaWYgKGlzQ2hlY2tlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gc291cmNlVXNlcnM7XG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcklkcyA9IHRoaXMuc2VsZWN0ZWRVc2Vycy5tYXAoKHVzZXI6IHsgbWVtYmVyX2lkOiBzdHJpbmcgfCBudW1iZXIgfSkgPT4gdXNlcj8ubWVtYmVyX2lkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gdGhpcy51c2Vyc0xpc3QuZmlsdGVyKCh1c2VyOiB7IG1lbWJlcl9pZDogc3RyaW5nIHwgbnVtYmVyIH0pID0+IFxuICAgICAgICB0aGlzLm5vblJlbW92YWJsZVVzZXJJZHMuaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKVxuICAgICAgKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VySWRzID0gdGhpcy5zZWxlY3RlZFVzZXJzLm1hcCgodXNlcjogeyBtZW1iZXJfaWQ6IHN0cmluZyB8IG51bWJlciB9KSA9PiB1c2VyPy5tZW1iZXJfaWQpO1xuICAgIH1cbiAgICBcbiAgICB0aGlzLmFsbFVzZXJTZWxlY3RlZFN0YXR1cygpO1xuICB9XG5cbiAgLyoqXG4gICAqICMjIyMgRGVzY3JpcHRpb25cbiAgICogU2VsZWN0cyBpdGVtIG9yIGRlc2VsZWN0IGEgaXRtZVxuICAgKiBAcGFyYW0gZXZ0XG4gICAqIEBwYXJhbSBwYXlsb2FkXG4gICAqL1xuICBzZWxlY3RHcm91cChldnQ6IGFueSwgcGF5bG9hZDogYW55KSB7XG4gICAgZXZ0Py50YXJnZXQ/LmNoZWNrZWQgPT09IHRydWVcbiAgICAgID8gdGhpcy5tYW5pcHVsYXRlU2VsZWN0ZWRHcm91cCgnQUREJywgcGF5bG9hZClcbiAgICAgIDogdGhpcy5tYW5pcHVsYXRlU2VsZWN0ZWRHcm91cCgnREVMRVRFJywgcGF5bG9hZCk7XG4gIH1cblxuICAvKipcbiAgICogIyMjIyBEZXNjcmlwdGlvblxuICAgKlxuICAgKiBNYW5pcHVsYXRlcyBzZWxlY3RlZCBpdGVtcyBpbiByb2xlIGxpc3RcbiAgICogQHBhcmFtIGFjdGlvbiA6J0FERCcgfCAnREVMRVRFJ1xuICAgKiBAcGFyYW0gcGF5bG9hZFxuICAgKi9cbiAgbWFuaXB1bGF0ZVNlbGVjdGVkR3JvdXAoYWN0aW9uOiAnQUREJyB8ICdERUxFVEUnLCBwYXlsb2FkOiBhbnkpIHtcbiAgICBpZiAoYWN0aW9uID09PSAnQUREJykge1xuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IHRoaXMudW5pcXVlQnlQcm9wKFxuICAgICAgICBbLi4udGhpcy5zZWxlY3RlZEdyb3VwcywgLi4uW3BheWxvYWRdXSxcbiAgICAgICAgJ2dyb3VwX2lkJ1xuICAgICAgKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IHRoaXMuc2VsZWN0ZWRHcm91cHMubWFwKFxuICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWRcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChhY3Rpb24gPT09ICdERUxFVEUnKSB7XG4gICAgICBsZXQgaW5kZXggPSB0aGlzLnNlbGVjdGVkR3JvdXBzLmZpbmRJbmRleChcbiAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkID09PSBwYXlsb2FkPy5ncm91cF9pZFxuICAgICAgKTtcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cHMgPSB0aGlzLnNlbGVjdGVkR3JvdXBzLmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQgIT09IHBheWxvYWQ/Lmdyb3VwX2lkXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IHRoaXMuc2VsZWN0ZWRHcm91cElkcy5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGUgIT09IHBheWxvYWQ/Lmdyb3VwX2lkXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYWxsR3JvdXBTZWxlY3RlZFN0YXR1cygpO1xuICB9XG4gIHNlbGVjdEFsbEdyb3VwKGV2dDogYW55KSB7XG4gICAgY29uc3QgZ3JvdXBEYXRhID0gdGhpcy5zZWFyY2hQaXBlLnRyYW5zZm9ybShcbiAgICAgIHRoaXMuZ3JvdXBzTGlzdCxcbiAgICAgIHRoaXMuc2VhcmNoS2V5LFxuICAgICAgJ2dyb3VwX25hbWUnXG4gICAgKTtcbiAgICBpZiAoZXZ0Py50YXJnZXQ/LmNoZWNrZWQgPT09IHRydWUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cHMgPSBncm91cERhdGE7XG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBJZHMgPSBncm91cERhdGEubWFwKChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cHMgPSB0aGlzLmdyb3Vwc0xpc3QuZmlsdGVyKChlbGU6IGFueSkgPT5cbiAgICAgICAgdGhpcy5ub25SZW1vdmFibGVHcm91cElkcy5pbmNsdWRlcyhlbGU/Lmdyb3VwX2lkKVxuICAgICAgKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IHRoaXMuc2VsZWN0ZWRHcm91cHMubWFwKFxuICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWRcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuYWxsR3JvdXBTZWxlY3RlZFN0YXR1cygpO1xuICB9XG5cbiAgYW5pbWF0aW9uID0gdHJ1ZTtcbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBsZXQgZGlzYWJsZWRJZHMgPSBbLi4udGhpcy5kaXNhYmxlZElkcywgLi4udGhpcy5ub25SZW1vdmFibGVVc2VySWRzXTtcbiAgICB0aGlzLmRpc2FibGVkSWRzID0gWy4uLm5ldyBTZXQoZGlzYWJsZWRJZHMpXTtcbiAgICB0aGlzLnBhZ2luYXRpb25WaXNpYmxlKCk7XG4gICAgdGhpcy5hbmltYXRpb24gPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcbiAgICB9LCAzMDApO1xuICB9XG4gIGN1cnJlbnRUYWIgPSAnVVNFUic7XG4gIHN3aXRjaFRhYih0YWI6IHN0cmluZykge1xuICAgIHRoaXMuY3VycmVudFRhYiA9IHRhYjtcbiAgICB0aGlzLnNlYXJjaEtleSA9ICcnO1xuICB9XG5cbiAgc2F2ZUxpc3QoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5kZWZhdWx0U2VsZWN0ZWRVc2VySWRzICYmXG4gICAgICB0aGlzLmRlZmF1bHRTZWxlY3RlZFVzZXJJZHM/Lmxlbmd0aCAmJlxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJJZHMgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VySWRzPy5sZW5ndGhcbiAgICApIHtcbiAgICAgIHRoaXMuZGVmYXVsdFNlbGVjdGVkVXNlcklkcz8uZm9yRWFjaCgoaWQ6IG51bWJlcik6IGFueSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZFVzZXJJZHM/LmluY2x1ZGVzKGlkKSkge1xuICAgICAgICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3dDb25maXJtYXRpb24gPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnNob3dDb25maXJtYXRpb24pXG4gICAgICB0aGlzLnNhdmUuZW1pdCh7XG4gICAgICAgIHVzZXJzOiB0aGlzLnNlbGVjdGVkVXNlcnMsXG4gICAgICAgIGdyb3VwczogdGhpcy5zZWxlY3RlZEdyb3VwcyxcbiAgICAgICAgZnV0dXJlVXNlcnNXaWxsU2VsZWN0OiB0aGlzLmZ1dHVyZVVzZXJzV2lsbFNlbGVjdCxcbiAgICAgIH0pO1xuICB9XG5cbiAgY29uZmlybUFjdGlvbihldnQ6ICdZRVMnIHwgJ05PJykge1xuICAgIGlmIChldnQgPT09ICdZRVMnKSB7XG4gICAgICB0aGlzLnNhdmUuZW1pdCh7XG4gICAgICAgIHVzZXJzOiB0aGlzLnNlbGVjdGVkVXNlcnMsXG4gICAgICAgIGdyb3VwczogdGhpcy5zZWxlY3RlZEdyb3VwcyxcbiAgICAgICAgZnV0dXJlVXNlcnNXaWxsU2VsZWN0OiB0aGlzLmZ1dHVyZVVzZXJzV2lsbFNlbGVjdCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoZXZ0ID09PSAnTk8nKSB7XG4gICAgICB0aGlzLnNob3dDb25maXJtYXRpb24gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBjbG9zZUxpc3QoKSB7XG4gICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xuICB9XG5cbiAgLy9cblxuICAvKipcbiAgICogIyMjIyBEZXNjcmlwdGlvblxuICAgKlxuICAgKiBSZXR1cm5zIHRoZSB1bmlxdWUgYXJyYXkgb2Ygb2JqZWN0IGJhc2VkIG9uIHVuaXF1ZSBrZXlcbiAgICogQHBhcmFtIGFycmF5XG4gICAqIEBwYXJhbSBrZXlcbiAgICogQHJldHVybnNcbiAgICovXG4gIHVuaXF1ZUJ5UHJvcChhcnJheTogYW55LCBrZXk6IHN0cmluZykge1xuICAgIHJldHVybiBBcnJheS5mcm9tKFxuICAgICAgYXJyYXlcbiAgICAgICAgLnJlZHVjZShcbiAgICAgICAgICAoYWNjOiBhbnksIGl0ZW06IGFueSkgPT4gKFxuICAgICAgICAgICAgaXRlbSAmJiBpdGVtW2tleV0gJiYgYWNjLnNldChpdGVtW2tleV0sIGl0ZW0pLCBhY2NcbiAgICAgICAgICApLFxuICAgICAgICAgIG5ldyBNYXAoKVxuICAgICAgICApXG4gICAgICAgIC52YWx1ZXMoKVxuICAgICk7XG4gIH1cblxuICBwYWdpbmF0aW9uVmlzaWJsZSgpIHtcbiAgICBpZiAodGhpcy51c2VyTGlzdEluZm8/LnRvdGFsX3BhZ2VzID4gMSkge1xuICAgICAgdGhpcy5pc1BhZ2luYXRpb24gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzUGFnaW5hdGlvbiA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICB3b3JrZmxvd1R5cGVDaGFuZ2VkKGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnJldmlld2VyV29ya2Zsb3dUeXBlID0gZXZlbnQ7XG4gICAgdGhpcy5yZXZpZXdlcldvcmtmbG93VHlwZUNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIGRpc2FibGVVc2VycygpIHtcbiAgICBzd2l0Y2ggKHRoaXMuZnJvbVJlc3BvbnNpYmlsaXR5KSB7XG4gICAgICBjYXNlICdBc3NpZ25lZSc6XG4gICAgICAgIHRoaXMubm9uRGlzYWJsZWRVc2VycyA9IHRoaXMudXNlcnNMaXN0LmZpbHRlcihcbiAgICAgICAgICAodXNlcjogYW55KSA9PlxuICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgdGhpcy5yZXZpZXdlcklkcz8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKSB8fFxuICAgICAgICAgICAgICB0aGlzLm92ZXJzZWVySWRzPy5pbmNsdWRlcyh1c2VyPy5tZW1iZXJfaWQpXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUmV2aWV3ZXInOlxuICAgICAgICB0aGlzLm5vbkRpc2FibGVkVXNlcnMgPSB0aGlzLnVzZXJzTGlzdC5maWx0ZXIoXG4gICAgICAgICAgKHVzZXI6IGFueSkgPT5cbiAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgIHRoaXMub3ZlcnNlZXJJZHM/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZCkgfHxcbiAgICAgICAgICAgICAgdGhpcy5hc3NpZ25lZUlkcz8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ092ZXJzZWVyJzpcbiAgICAgICAgdGhpcy5ub25EaXNhYmxlZFVzZXJzID0gdGhpcy51c2Vyc0xpc3QuZmlsdGVyKFxuICAgICAgICAgICh1c2VyOiBhbnkpID0+XG4gICAgICAgICAgICAhKFxuICAgICAgICAgICAgICB0aGlzLmFzc2lnbm9ySWQ/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZCkgfHxcbiAgICAgICAgICAgICAgdGhpcy5yZXZpZXdlcklkcz8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKSB8fFxuICAgICAgICAgICAgICB0aGlzLmFzc2lnbmVlSWRzPy5pbmNsdWRlcyh1c2VyPy5tZW1iZXJfaWQpXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdjb2xsYWJvcmF0b3InOlxuICAgICAgICAgIHRoaXMubm9uRGlzYWJsZWRVc2VycyA9IHRoaXMudXNlcnNMaXN0LmZpbHRlcihcbiAgICAgICAgICAgICh1c2VyOiBhbnkpID0+XG4gICAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZElkcz8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5ub25EaXNhYmxlZFVzZXJzO1xuICB9XG5cbiAgc2V0QWxsVXNlcnNTZWxlY3RlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5mdXR1cmVVc2Vyc1dpbGxTZWxlY3QgPSBldmVudDtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IFtdO1xuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IFtdO1xuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJJZHMgPSBbXTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IFtdO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInVzZXItZ3JvdXAtbGlzdFwiIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiPlxuICA8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1saXN0LWhlYWRcIj5cbiAgICA8aDMgY2xhc3M9XCJ1c2VyLWdyb3VwLWxpc3QtdGl0bGVcIj57eyBwYW5lbFRpdGxlIH19PC9oMz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLWxpc3QtYm9keVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLWxpc3QtYm9keS1pbm5lclwiPlxuICAgICAgPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwibG9hZGluZ1wiPjwvYXBwLWxvYWRlci1pbmxpbmU+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidXNlci1ncm91cC1saXN0LXRhYiB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1tYi0yXCJcbiAgICAgICAgKm5nSWY9XCJncm91cEVuYWJsZWRcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJzd2l0Y2hUYWIoJ1VTRVInKVwiXG4gICAgICAgICAgICBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNjAwIHZ4LXBhcmFncmFwaC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wYi0yIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJjdXJyZW50VGFiID09PSAnVVNFUidcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIFVTRVJTXG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cInZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LW1sLTIgdngtbGgtNFwiXG4gICAgICAgICAgICAgID57e1xuICAgICAgICAgICAgICAgIHNlYXJjaEtleT8ubGVuZ3RoICYmIGN1cnJlbnRUYWIgPT09IFwiVVNFUlwiXG4gICAgICAgICAgICAgICAgICA/ICh1c2Vyc0xpc3QgfCBmaWx0ZXIgOiBzZWFyY2hLZXkpPy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgIDogdXNlcnNMaXN0Py5sZW5ndGggfHwgdXNlckxpc3RJbmZvPy50b3RhbF9pdGVtc1xuICAgICAgICAgICAgICB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiaXNHcm91cFRhYlNob3dcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInN3aXRjaFRhYignR1JPVVAnKVwiXG4gICAgICAgICAgICBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNjAwIHZ4LXBhcmFncmFwaC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wYi0yIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJjdXJyZW50VGFiID09PSAnR1JPVVAnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBmZWF0dXJlZmxhZyA/IFwiVVNFUiBHUk9VUFNcIiA6IFwiR1JPVVBTXCIgfX1cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwidngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbWwtMiB2eC1saC00XCJcbiAgICAgICAgICAgICAgPnt7XG4gICAgICAgICAgICAgICAgc2VhcmNoS2V5Py5sZW5ndGggJiYgY3VycmVudFRhYiA9PT0gXCJHUk9VUFwiXG4gICAgICAgICAgICAgICAgICA/IChncm91cHNMaXN0IHwgc2VhcmNoIDogc2VhcmNoS2V5IDogXCJncm91cF9uYW1lXCIpPy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgIDogZ3JvdXBzTGlzdD8ubGVuZ3RoIHx8IGdyb3VwTGlzdEluZm8/LnRvdGFsX2l0ZW1zXG4gICAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImZ1dHVyZS11c2VyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIlxuICAgICAgICAgICpuZ0lmPVwic2hvd0Z1dHVyZVVzZXJzU3dpdGNoXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZVwiPlxuICAgICAgICAgICAgVmlzaWJsZSB0byBBbGwgQ3VycmVudCAmIEZ1dHVyZSBVc2Vyc1xuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cImljb25zIGluZm8gdngtZnMtMTIgdngtdHh0LWJsdWUgdngtbWwtMSB2eC1tci0xXCJcbiAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAnSWYgc2VsZWN0ZWQsIHRoaXMgcG9saWN5IHdpbGwgYmUgdmlzaWJsZSB0byBhbGwgdXNlcnMgdGhhdCBhcmUgY3VycmVudGx5IGFjdGl2ZSBpbiB5b3VyIFZDb21wbHkgYWNjb3VudCBhbmQgdXNlcnMgdGhhdCBtaWdodCBiZSBhZGRlZCBpbiB0aGUgZnV0dXJlLidcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIlxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgID4mI3hlOTFmOzwvaVxuICAgICAgICAgID5cbiAgICAgICAgICA8YXBwLWNzLXN3aXRjaFxuICAgICAgICAgICAgW25nVmFsdWVdPVwiZnV0dXJlVXNlcnNXaWxsU2VsZWN0XCJcbiAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cInNldEFsbFVzZXJzU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvYXBwLWNzLXN3aXRjaD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1ibG9jayB2eC1tYi0yXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBiOzwvaT5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgKm5nSWY9XCIhZmVhdHVyZWZsYWdcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoS2V5XCJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e1xuICAgICAgICAgICAgY3VycmVudFRhYiA9PT0gJ1VTRVInID8gJ1NlYXJjaCBVc2VyJyA6ICdTZWFyY2ggR3JvdXAnXG4gICAgICAgICAgfX1cIlxuICAgICAgICAvPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAqbmdJZj1cImZlYXR1cmVmbGFnXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaEtleVwiXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3tcbiAgICAgICAgICAgIGN1cnJlbnRUYWIgPT09ICdVU0VSJyA/ICdTZWFyY2ggVXNlcicgOiAnU2VhcmNoIFVzZXIgR3JvdXAnXG4gICAgICAgICAgfX1cIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50VGFiID09PSAnVVNFUicgJiYgIWxvYWRpbmdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVzZXJzTGlzdCB8IGZpbHRlciA6IHNlYXJjaEtleSBhcyB1c2Vyc1wiPlxuICAgICAgICAgIDx2dWktcGFnaW5hdGlvblxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgdXNlckxpc3RJbmZvPy50b3RhbF9wYWdlcyA+IDEgJiZcbiAgICAgICAgICAgICAgdXNlcnNMaXN0Py5sZW5ndGggIT09IHVzZXJMaXN0SW5mbz8udG90YWxfaXRlbXNcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbY3VycmVudFBhZ2VdPVwidXNlckN1cnJlbnRQYWdlXCJcbiAgICAgICAgICAgIFt0b3RhbFBhZ2VdPVwidXNlckxpc3RJbmZvPy50b3RhbF9wYWdlc1wiXG4gICAgICAgICAgICAocGFnZUNoYW5nZWQpPVwidXNlclBhZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvdnVpLXBhZ2luYXRpb24+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLWdyb3VwLWxpc3QtbWlkXCJcbiAgICAgICAgICAgIFtjbGFzcy53aXRoLXBhZ2luYXRpb25dPVwiaXNQYWdpbmF0aW9uXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXNlcnM/Lmxlbmd0aCA+IDA7IGVsc2Ugbm91c2VyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWxpc3Qtc2VsZWN0IHZ4LW1iLTJcIj5cbiAgICAgICAgICAgICAgICA8dnVpLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIiFzaW5nbGVTZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgI3VzZXJcbiAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImFsbFVzZXJTZWxlY3RlZCB8fCBmdXR1cmVVc2Vyc1dpbGxTZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgICAgICAgICAgICBhbGxVc2VyU2VsZWN0ZWREaXNhYmxlZCB8fFxuICAgICAgICAgICAgICAgICAgICBmdXR1cmVVc2Vyc1dpbGxTZWxlY3QgfHxcbiAgICAgICAgICAgICAgICAgICAgaXNBbGxEaXNhYmxlZFxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2VsZWN0QWxsVXNlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidXNlci1uYW1lIHZ4LWZzLTEyIHZ4LWZ3LTYwMCB2eC1sYWJlbC10eHQgdngtdHQtbm9uZVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7ICF1c2VyPy5jaGVja2VkID8gXCJTZWxlY3QgQWxsXCIgOiBcIkRlc2VsZWN0IEFsbFwiIH19XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3Z1aS1jaGVja2JveD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWxpc3QtaXRlbVwiPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInZ4LW0tMCB2eC1wLTAgdngtZC1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB1c2VyIG9mIHVzZXJzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidngtbWItM1wiXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhc2luZ2xlU2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0b29sdGlwTWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZnJvbVJlc3BvbnNpYmlsaXR5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByZXZpZXdlcklkc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogb3ZlcnNlZXJJZHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGFzc2lnbm9ySWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGFzc2lnbmVlSWRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnbWVtYmVyX2lkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZGlzYWJsZWRJZHM/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEZyb21Qcm9ncmFtXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPHZ1aS1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RJdGVtKCRldmVudCwgdXNlcilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZElkcz8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICBmdXR1cmVVc2Vyc1dpbGxTZWxlY3QgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBbGxEaXNhYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFVzZXJJZHM/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZnV0dXJlVXNlcnNXaWxsU2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjxkaXYgY2xhc3M9XCJ1c2VyLW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdXNlcj8ubWVtYmVyX25hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvdnVpLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJ2eC1tYi0zXCIgKm5nSWY9XCJzaW5nbGVTZWxlY3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCIncmFkaW8tc2VsZWN0b3InXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2VsZWN0SXRlbVJhZGlvKCRldmVudCwgdXNlcilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiJ3J4LWNhdGVnb3J5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZFVzZXJJZHM/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwidXNlcj8ubWVtYmVyX2VtYWlsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyB1c2VyPy5tZW1iZXJfbmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm91c2VyPlxuICAgICAgICAgICAgICA8YXBwLW5vLWRhdGFcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFsb2FkaW5nXCJcbiAgICAgICAgICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiQVNTRVRTLnNlYXJjaF9kYXRhXCJcbiAgICAgICAgICAgICAgICBbbm9EYXRhVGV4dF09XCJcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEtleT8ubGVuZ3RoID4gMCA/ICdObyBtYXRjaCBmb3VuZC4nIDogJ05vIFVzZXJzIGZvdW5kLidcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+PC9hcHAtbm8tZGF0YT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50VGFiID09PSAnR1JPVVAnXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cImdyb3Vwc0xpc3QgfCBzZWFyY2ggOiBzZWFyY2hLZXkgOiAnZ3JvdXBfbmFtZScgYXMgZ3JvdXBzXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidXNlci1ncm91cC1saXN0LW1pZFwiXG4gICAgICAgICAgICBbY2xhc3Mud2l0aC1wYWdpbmF0aW9uXT1cImlzUGFnaW5hdGlvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdyb3Vwcz8ubGVuZ3RoID4gMDsgZWxzZSBub2dyb3VwXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWxpc3Qtc2VsZWN0IHZ4LW1iLTJcIj5cbiAgICAgICAgICAgICAgICA8dnVpLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAjZ3JvdXBcbiAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImFsbEdyb3VwU2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFsbEdyb3VwU2VsZWN0ZWREaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNlbGVjdEFsbEdyb3VwKCRldmVudClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLW5hbWUgdngtZnMtMTIgdngtZnctNjAwIHZ4LWxhYmVsLXR4dCB2eC10dC1ub25lXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgIWdyb3VwPy5jaGVja2VkID8gXCJTZWxlY3QgQWxsXCIgOiBcIkRlc2VsZWN0IEFsbFwiIH19XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3Z1aS1jaGVja2JveD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWxpc3QtaXRlbVwiPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInZ4LW0tMCB2eC1wLTAgdngtZC1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJ2eC1tYi0zXCIgKm5nRm9yPVwibGV0IGdyb3VwIG9mIGdyb3Vwc1wiPlxuICAgICAgICAgICAgICAgICAgICA8dnVpLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RHcm91cCgkZXZlbnQsIGdyb3VwKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9uUmVtb3ZhYmxlR3JvdXBJZHM/LmluY2x1ZGVzKGdyb3VwPy5ncm91cF9pZClcbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkR3JvdXBJZHM/LmluY2x1ZGVzKGdyb3VwPy5ncm91cF9pZClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLW5hbWUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC13LTEwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJncm91cD8uZ3JvdXBfbmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLW5hbWVcIj57eyBncm91cD8uZ3JvdXBfbmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudGVyIHZ4LWZzLTkgdngtZnctNjAwIHZ4LXBsLTEgdngtcHItMSB2eC1saC0zIHZ4LXR0LXVwcGVyY2FzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID57eyBncm91cD8ubWVtYmVyX2NvdW50IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdyb3VwPy5tZW1iZXJfY291bnQgPiAxID8gXCJVU0VSU1wiIDogXCJVU0VSXCIgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC92dWktY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vZ3JvdXA+XG4gICAgICAgICAgICAgIDxhcHAtbm8tZGF0YVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWxvYWRpbmdcIlxuICAgICAgICAgICAgICAgIFtub0RhdGFJbWFnZV09XCJBU1NFVFMuc2VhcmNoX2RhdGFcIlxuICAgICAgICAgICAgICAgIFtub0RhdGFUZXh0XT1cIlxuICAgICAgICAgICAgICAgICAgc2VhcmNoS2V5Py5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgICAgID8gJ05vIG1hdGNoIGZvdW5kLidcbiAgICAgICAgICAgICAgICAgICAgOiAnTm8gZGF0YSB0byBkaXNwbGF5LidcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+PC9hcHAtbm8tZGF0YT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1saXN0LWZvb3RlclwiPlxuICAgICAgPHZ1aS1mbG9hdGluZy1iYXJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAoIXNpbmdsZVNlbGVjdCB8fCAoIXNpbmdsZVNlbGVjdCAmJiBzZWxlY3RlZFJldmlld2VyKSkgJiYgIWxvYWRpbmdcbiAgICAgICAgXCJcbiAgICAgICAgKGNsb3NlRXZlbnQpPVwic2F2ZUxpc3QoKVwiXG4gICAgICAgIChjbG9zZUxpc3QpPVwiY2xvc2VMaXN0KClcIlxuICAgICAgICAod29ya2Zsb3dUeXBlQ2hhbmdlZCk9XCJ3b3JrZmxvd1R5cGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICBbc2VsZWN0ZWRXb3JrZmxvd109XCJyZXZpZXdlcldvcmtmbG93VHlwZVwiXG4gICAgICAgIFtzaG93V29ya2Zsb3ddPVwic2VsZWN0ZWRSZXZpZXdlclwiXG4gICAgICAgIFtncm91cFNlbGVjdGVkXT1cInNlbGVjdGVkR3JvdXBzXCJcbiAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgIFtuZXh0RGlzYWJsZWRdPVwiZnJvbUFwcHJvdmFsV29ya2Zsb3cgJiYgc2VsZWN0ZWRVc2Vycz8ubGVuZ3RoID09PSAwXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFncm91cEVuYWJsZWRcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTIgdngtbXItMlwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBzZWxlY3RlZFVzZXJzPy5zbGljZSgwLCAxKTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAqbmdJZj1cIiFub25SZW1vdmFibGVVc2VySWRzPy5pbmNsdWRlcyhlbGVtZW50Py5tZW1iZXJfaWQpXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEl0ZW0oeyB0YXJnZXQ6IHsgY2hlY2tlZDogZmFsc2UgfSB9LCBlbGVtZW50KVwiXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIGZyb21BcHByb3ZhbFdvcmtmbG93ICYmXG4gICAgICAgICAgICAgICAgYXBwcm92YWxXb3JrZmxvd1R5cGUudG9Mb3dlckNhc2UoKSA9PT0gJ3NlcXVlbnRpYWwnXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwid29ya2Zsb3dMYXZlbCB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGwtMSB2eC1wci0xIHZ4LWxoLTQgdngtbXItMSB2eC10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IDEgPT0gc2VsZWN0ZWRVc2Vycz8ubGVuZ3RoID8gXCJGaW5hbFwiIDogMSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImVsZW1lbnQ/Lm1lbWJlcl9uYW1lXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgID57eyBlbGVtZW50Py5tZW1iZXJfbmFtZSB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkVXNlcnM/Lmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTQgZ3JlZW5CZ1wiXG4gICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImdyb3VwRGlzYWJsZS5wb3BvdmVyKClcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgK3t7IHNlbGVjdGVkVXNlcnM/LnNsaWNlKDEpPy5sZW5ndGggfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcFwiICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIHNlbGVjdGVkVXNlcnM/LnNsaWNlKDAsMSk7bGV0IGkgPSBpbmRleFwiPjxpICpuZ0lmPVwiIW5vblJlbW92YWJsZVVzZXJJZHM/LmluY2x1ZGVzKGVsZW1lbnQ/Lm1lbWJlcl9pZClcIiAoY2xpY2spPVwic2VsZWN0SXRlbSh7dGFyZ2V0OntjaGVja2VkOmZhbHNlfX0sZWxlbWVudClcIiBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+IDxzcGFuPnt7ZWxlbWVudD8ubWVtYmVyX25hbWV9fTwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXJcIiAqbmdJZj1cInNlbGVjdGVkVXNlcnM/Lmxlbmd0aD4xXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwiZ3JvdXBEaXNhYmxlLnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIj4re3tzZWxlY3RlZFVzZXJzPy5zbGljZSgxKT8ubGVuZ3RofX08L2Rpdj4gLS0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ1c2VyLWdyb3VwLWNoaXBcIlxuICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRVc2Vycz8ubGVuZ3RoICYmIGdyb3VwRW5hYmxlZFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zc1wiXG4gICAgICAgICAgICAqbmdJZj1cIiFub25SZW1vdmFibGVVc2VySWRzPy5pbmNsdWRlcyhzZWxlY3RlZFVzZXJzWzBdPy5tZW1iZXJfaWQpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgc2VsZWN0SXRlbSh7IHRhcmdldDogeyBjaGVja2VkOiBmYWxzZSB9IH0sIHNlbGVjdGVkVXNlcnNbMF0pXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLW5hbWVcIj57eyBzZWxlY3RlZFVzZXJzWzBdPy5tZW1iZXJfbmFtZSB9fTwvZGl2PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cEVuYWJsZWRcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudGVyXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZFVzZXJzPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAoY2xpY2spPVwidXNlckNvdW50LnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAre3sgc2VsZWN0ZWRVc2Vycz8ubGVuZ3RoIC0gMSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZSB1c2VyR3JvdXAtbmFtZVwiPlxuICAgICAgICAgIDwhLS0ge3tzZWxlY3RlZEdyb3VwcyAmJiBzZWxlY3RlZEdyb3Vwcz8ubGVuZ3RoID4gMCA/JyAmICc6Jyd9fSAtLT5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXJHcm91cC10ZXh0XCIgKm5nSWY9XCJzZWxlY3RlZFVzZXJzPy5sZW5ndGggPT09IDFcIlxuICAgICAgICAgICAgPlVzZXIge3sgc2VsZWN0ZWRHcm91cHM/Lmxlbmd0aCA+IDAgPyBcIiAmIFwiIDogXCIgc2VsZWN0ZWRcIiB9fTwvc3BhblxuICAgICAgICAgID5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXJHcm91cC10ZXh0XCIgKm5nSWY9XCJzZWxlY3RlZFVzZXJzPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgID5Vc2VycyB7eyBzZWxlY3RlZEdyb3Vwcz8ubGVuZ3RoID4gMCA/IFwiICYgXCIgOiBcInNlbGVjdGVkXCIgfX08L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLWNoaXBcIiAqbmdJZj1cInNlbGVjdGVkR3JvdXBzPy5sZW5ndGhcIj5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zc1wiXG4gICAgICAgICAgICAqbmdJZj1cIiFub25SZW1vdmFibGVHcm91cElkcz8uaW5jbHVkZXMoc2VsZWN0ZWRHcm91cHNbMF0/Lmdyb3VwX2lkKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgIHNlbGVjdEdyb3VwKHsgdGFyZ2V0OiB7IGNoZWNrZWQ6IGZhbHNlIH0gfSwgc2VsZWN0ZWRHcm91cHNbMF0pXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLW5hbWVcIj57eyBzZWxlY3RlZEdyb3Vwc1swXT8uZ3JvdXBfbmFtZSB9fTwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY291bnRlciBncm91cFwiXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkR3JvdXBzPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgIChjbGljayk9XCJncm91cENvdW50LnBvcG92ZXIoKVwiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICAre3sgc2VsZWN0ZWRHcm91cHM/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lIHVzZXJHcm91cC1uYW1lXCI+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZEdyb3Vwcz8ubGVuZ3RoID09PSAxXCI+e3tcbiAgICAgICAgICAgIGZlYXR1cmVmbGFnID8gXCJVc2VyIEdyb3VwIHNlbGVjdGVkXCIgOiBcIkdyb3VwIHNlbGVjdGVkXCJcbiAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkR3JvdXBzPy5sZW5ndGggPiAxXCI+e3tcbiAgICAgICAgICAgIGZlYXR1cmVmbGFnID8gXCJVc2VyIEdyb3VwcyBzZWxlY3RlZFwiIDogXCJHcm91cHMgc2VsZWN0ZWRcIlxuICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YXBwLXBvcG92ZXIgI3VzZXJDb3VudCBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBzZWxlY3RlZFVzZXJzIHwgc2xpY2UgOiAxOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIW5vblJlbW92YWJsZVVzZXJJZHM/LmluY2x1ZGVzKGVsZW1lbnQ/Lm1lbWJlcl9pZClcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdEl0ZW0oeyB0YXJnZXQ6IHsgY2hlY2tlZDogZmFsc2UgfSB9LCBlbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgZWxlbWVudD8ubWVtYmVyX25hbWUgfX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYXBwLXBvcG92ZXI+XG5cbiAgICAgICAgPGFwcC1wb3BvdmVyICNncm91cERpc2FibGUgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIHNlbGVjdGVkVXNlcnMuc2xpY2UoMSk7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFub25SZW1vdmFibGVVc2VySWRzPy5pbmNsdWRlcyhlbGVtZW50Py5tZW1iZXJfaWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RJdGVtKHsgdGFyZ2V0OiB7IGNoZWNrZWQ6IGZhbHNlIH0gfSwgZWxlbWVudClcbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZyb21BcHByb3ZhbFdvcmtmbG93ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZhbFdvcmtmbG93VHlwZS50b0xvd2VyQ2FzZSgpID09PSAnc2VxdWVudGlhbCdcbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwid29ya2Zsb3dMYXZlbCB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGwtMSB2eC1wci0xIHZ4LWxoLTQgdngtbXItMSB2eC10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICBpICsgMSA9PT0gc2VsZWN0ZWRVc2Vycz8ubGVuZ3RoIC0gMSA/IFwiRmluYWxcIiA6IGkgKyAyXG4gICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBlbGVtZW50Py5tZW1iZXJfbmFtZSB9fVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hcHAtcG9wb3Zlcj5cblxuICAgICAgICA8YXBwLXBvcG92ZXIgI2dyb3VwQ291bnQgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICBsZXQgZWxlbWVudCBvZiBzZWxlY3RlZEdyb3VwcyB8IHNsaWNlIDogMTtcbiAgICAgICAgICAgICAgICAgIGxldCBpID0gaW5kZXhcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhbm9uUmVtb3ZhYmxlR3JvdXBJZHM/LmluY2x1ZGVzKGVsZW1lbnQ/Lmdyb3VwX2lkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0R3JvdXAoeyB0YXJnZXQ6IHsgY2hlY2tlZDogZmFsc2UgfSB9LCBlbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgZWxlbWVudD8uZ3JvdXBfbmFtZSB9fVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgIDwvdnVpLWZsb2F0aW5nLWJhcj5cbiAgICAgIDx2dWktZmxvYXRpbmctYmFyXG4gICAgICAgICpuZ0lmPVwic2luZ2xlU2VsZWN0ICYmICFsb2FkaW5nXCJcbiAgICAgICAgKGNsb3NlRXZlbnQpPVwic2F2ZUxpc3QoKVwiXG4gICAgICAgIChjbG9zZUxpc3QpPVwiY2xvc2VMaXN0KClcIlxuICAgICAgICBbbmV4dERpc2FibGVkXT1cImZyb21BcHByb3ZhbFdvcmtmbG93ICYmIHNlbGVjdGVkVXNlcnM/Lmxlbmd0aCA9PT0gMFwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwXCIgKm5nSWY9XCJzZWxlY3RlZFVzZXJzPy5sZW5ndGhcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICBzZWxlY3RJdGVtKHsgdGFyZ2V0OiB7IGNoZWNrZWQ6IGZhbHNlIH0gfSwgc2VsZWN0ZWRVc2Vyc1swXSlcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+IHt7IHNlbGVjdGVkVXNlcnNbMF0/Lm1lbWJlcl9uYW1lIH19PC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdnVpLWZsb2F0aW5nLWJhcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInVzZXItZ3JvdXAtbGlzdC1jb25maXJtYXRpb25cIiAqbmdJZj1cInNob3dDb25maXJtYXRpb25cIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29uZmlybWF0aW9uLXRvcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImljb24tYmxvY2tcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkzMDs8L2k+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiPlxuICAgICAgICBUaGlzIGFjdGlvbiB3aWxsIHJlc2V0IHRoZSBkZWZhdWx0IHt7IHVzZXJUeXBlIH19IHNlbGVjdGVkIGZvciB0aGVcbiAgICAgICAgUHJvZ3JhbS5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb25maXJtYXRpb24tYm90dG9tXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZVwiPkFyZSB5b3Ugc3VyZSB5b3Ugd291bGQgbGlrZSB0byBwcm9jZWVkPzwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1ncm91cFwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibm8tYnRuXCIgKGNsaWNrKT1cImNvbmZpcm1BY3Rpb24oJ05PJylcIj5OTzwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwieWVzLWJ0blwiIChjbGljayk9XCJjb25maXJtQWN0aW9uKCdZRVMnKVwiPllFUzwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
437
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ncm91cC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXByb2dyYW0vY3JlYXRlLXByb2dyYW0tdWkvdXNlci1ncm91cC1saXN0L3VzZXItZ3JvdXAtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1wcm9ncmFtL2NyZWF0ZS1wcm9ncmFtLXVpL3VzZXItZ3JvdXAtbGlzdC91c2VyLWdyb3VwLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQU83RCxNQUFNLE9BQU8sc0JBQXNCO0lBMkJqQyxJQUFhLFlBQVksQ0FBQyxLQUE2QztRQUNyRSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUE0QkQsSUFBdUIsV0FBVyxDQUFDLEtBQVU7UUFDM0MsSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLHFCQUFx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S0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ08sWUFBWTtzQkFBeEIsS0FBSztnQkFHRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUVFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFNRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBVUcsT0FBTztzQkFBZixLQUFLO2dCQUVpQixXQUFXO3NCQUFqQyxLQUFLO3VCQUFDLFVBQVU7Z0JBU1csZUFBZTtzQkFBMUMsS0FBSzt1QkFBQyxlQUFlO2dCQWdCYSx1QkFBdUI7c0JBQXpELEtBQUs7dUJBQUMsc0JBQXNCO2dCQVNwQixRQUFRO3NCQUFoQixLQUFLO2dCQTBCa0IsWUFBWTtzQkFBbkMsS0FBSzt1QkFBQyxXQUFXO2dCQVNXLGdCQUFnQjtzQkFBNUMsS0FBSzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWFyY2hQaXBlIH0gZnJvbSAnLi4vcGlwZXMvc2VhcmNoLnBpcGUnO1xuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2Fzc2V0cy5jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1c2VyLWdyb3VwLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1ncm91cC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1ncm91cC1saXN0LmNvbXBvbmVudC5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJHcm91cExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBBU1NFVFMgPSBBU1NFVFM7XG4gIEBPdXRwdXQoKSBzYXZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBncm91cEVuYWJsZWQhOiBmYWxzZTtcbiAgQElucHV0KCkgcGFuZWxUaXRsZSA9ICdTZWxlY3QgVXNlcihzKSc7XG4gIEBJbnB1dCgpIHNpbmdsZVNlbGVjdCA9IGZhbHNlO1xuICBASW5wdXQoKSBzZWxlY3RlZFJldmlld2VyID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZlYXR1cmVmbGFnID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJldmlld2VyV29ya2Zsb3dUeXBlOiBzdHJpbmcgPSAnU0VRVUVOVElBTCc7XG4gIEBPdXRwdXQoKSByZXZpZXdlcldvcmtmbG93VHlwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgbW9kZTogc3RyaW5nID0gJ0NSRUFURSc7XG4gIEBJbnB1dCgpIGZpZWxkVHlwZSA9ICcnO1xuICBzZWFyY2hLZXkgPSAnJztcbiAgaXNQYWdpbmF0aW9uOiBhbnk7XG4gIGFwcHJvdmFsV29ya2Zsb3dUeXBlOiAnQU5ZT05FJyB8ICdST1VORFJPQklOJyB8ICdTRVFVRU5USUFMJyA9ICdTRVFVRU5USUFMJztcbiAgdXNlcnNMaXN0OiBhbnkgPSBbXTtcbiAgZ3JvdXBzTGlzdDogYW55ID0gW107XG4gIEBJbnB1dCgpIGZyb21SZXNwb25zaWJpbGl0eTogYW55O1xuICBASW5wdXQoKSBhc3NpZ25vcklkOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBhc3NpZ25lZUlkczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgcmV2aWV3ZXJJZHM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIG92ZXJzZWVySWRzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBGcm9tUHJvZ3JhbSA9IGZhbHNlO1xuICBASW5wdXQoKSB1c2VyTGlzdEluZm8hOiBhbnk7XG4gIEBJbnB1dCgpIGdyb3VwTGlzdEluZm8hOiBhbnk7XG4gIEBJbnB1dCgpIGZyb21BcHByb3ZhbFdvcmtmbG93OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNldCBhcHByb3ZhbFR5cGUodmFsdWU6ICdBTllPTkUnIHwgJ1JPVU5EUk9CSU4nIHwgJ1NFUVVFTlRJQUwnKSB7XG4gICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93VHlwZSA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpIHNob3dGdXR1cmVVc2Vyc1N3aXRjaDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBmdXR1cmVVc2Vyc1dpbGxTZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaXNBbGxEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0dyb3VwVGFiU2hvdzogYm9vbGVhbiA9IHRydWU7XG5cbiAgQE91dHB1dCgpIGZldGNoVXNlckRhdGEgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KCkgZGlzYWJsZWRJZHM6IGFueSA9IFtdO1xuICBASW5wdXQoKSBub25SZW1vdmFibGVVc2VySWRzOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgYWxsVXNlclNlbGVjdGVkRGlzYWJsZWQgPSBmYWxzZTtcbiAgc2VsZWN0ZWRVc2VyczogYW55ID0gW107XG4gIHNlbGVjdGVkVXNlcklkczogYW55ID0gW107XG4gIGFsbFVzZXJzSWRzOiBhbnkgPSBbXTtcbiAgYWxsVXNlclNlbGVjdGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbm9uUmVtb3ZhYmxlR3JvdXBJZHM6IGFueSA9IFtdO1xuICBzZWxlY3RlZEdyb3VwczogYW55ID0gW107XG4gIHNlbGVjdGVkR3JvdXBJZHM6IGFueSA9IFtdO1xuICBhbGxHcm91cHNJZHM6IGFueSA9IFtdO1xuICBhbGxHcm91cFNlbGVjdGVkID0gZmFsc2U7XG4gIGFsbEdyb3VwU2VsZWN0ZWREaXNhYmxlZCA9IGZhbHNlO1xuICBzZWFyY2hQaXBlID0gbmV3IFNlYXJjaFBpcGUoKTtcblxuICB1c2VyQ3VycmVudFBhZ2UgPSAxO1xuICBncm91cEN1cnJlbnRQYWdlID0gMTtcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBub25EaXNhYmxlZFVzZXJzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoJ3VzZXJsaXN0Jykgc2V0IHNldFVzZXJMaXN0KHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgJiYgdmFsdWU/Lmxlbmd0aCkge1xuICAgICAgdGhpcy51c2Vyc0xpc3QgPSBbLi4udmFsdWVdO1xuICAgICAgdGhpcy5hbGxVc2Vyc0lkcyA9IHRoaXMudXNlcnNMaXN0Lm1hcCgoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkKTtcbiAgICAgIHRoaXMuYWxsVXNlclNlbGVjdGVkU3RhdHVzKCk7XG4gICAgICB0aGlzLnNldFVzZXJMaXN0SW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnc2VsZWN0ZWRVc2VycycpIHNldCBzZXRTZWxlY3RlZFVzZXIodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZT8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChcbiAgICAgICAgWy4uLnRoaXMuc2VsZWN0ZWRVc2VycywgLi4udmFsdWVdLFxuICAgICAgICAnbWVtYmVyX2lkJ1xuICAgICAgKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VySWRzID0gdGhpcy5zZWxlY3RlZFVzZXJzLm1hcChcbiAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZFxuICAgICAgKTtcbiAgICAgIHRoaXMuYWxsVXNlclNlbGVjdGVkU3RhdHVzKCk7XG4gICAgICB0aGlzLnNldFVzZXJMaXN0SW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIGRlZmF1bHRTZWxlY3RlZFVzZXJzOiBhbnkgPSBbXTtcbiAgZGVmYXVsdFNlbGVjdGVkVXNlcklkczogYW55ID0gW107XG4gIEBJbnB1dCgnZGVmYXVsdFNlbGVjdGVkVXNlcnMnKSBzZXQgc2V0RGVmYXVsdFNlbGVjdGVkVXNlcnModmFsdWU6IGFueSkge1xuICAgIHRoaXMuZGVmYXVsdFNlbGVjdGVkVXNlcnMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChcbiAgICAgIFsuLi50aGlzLmRlZmF1bHRTZWxlY3RlZFVzZXJzLCAuLi52YWx1ZV0sXG4gICAgICAnbWVtYmVyX2lkJ1xuICAgICk7XG4gICAgdGhpcy5kZWZhdWx0U2VsZWN0ZWRVc2VySWRzID0gdGhpcy5kZWZhdWx0U2VsZWN0ZWRVc2Vycy5tYXAoXG4gICAgICAoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkXG4gICAgKTtcbiAgfVxuICBASW5wdXQoKSB1c2VyVHlwZTogc3RyaW5nID0gJ2Fzc2lnbmVlcyc7XG4gIHNob3dDb25maXJtYXRpb24gPSBmYWxzZTtcblxuICBzZXRVc2VyTGlzdEluaXQoKSB7XG4gICAgaWYgKHRoaXMudXNlckN1cnJlbnRQYWdlID09PSAxKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRVc2VycztcbiAgICAgIGNvbnN0IG90aGVyVXNlciA9IHRoaXMudXNlcnNMaXN0LmZpbHRlcihcbiAgICAgICAgKGVsZTogYW55KSA9PiAhdGhpcy5zZWxlY3RlZFVzZXJJZHMuaW5jbHVkZXMoZWxlPy5tZW1iZXJfaWQpXG4gICAgICApO1xuICAgICAgdGhpcy51c2Vyc0xpc3QgPSB0aGlzLnVuaXF1ZUJ5UHJvcChcbiAgICAgICAgWy4uLnNlbGVjdGVkPy5zb3J0KCksIC4uLm90aGVyVXNlcj8uc29ydCgpXSxcbiAgICAgICAgJ21lbWJlcl9pZCdcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIGFsbFVzZXJTZWxlY3RlZFN0YXR1cygpIHtcbiAgICB0aGlzLmFsbFVzZXJTZWxlY3RlZCA9XG4gICAgICB0aGlzLmFsbFVzZXJzSWRzLnNvcnQoKS50b1N0cmluZygpID09PVxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJJZHMuc29ydCgpPy50b1N0cmluZygpO1xuICAgIHRoaXMuYWxsVXNlclNlbGVjdGVkRGlzYWJsZWQgPVxuICAgICAgdGhpcy5hbGxVc2Vyc0lkcy5zb3J0KCkudG9TdHJpbmcoKSA9PT1cbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VySWRzLnNvcnQoKT8udG9TdHJpbmcoKSAmJlxuICAgICAgdGhpcy5hbGxVc2Vyc0lkcy5zb3J0KCkudG9TdHJpbmcoKSA9PT1cbiAgICAgIHRoaXMubm9uUmVtb3ZhYmxlVXNlcklkcy5zb3J0KCk/LnRvU3RyaW5nKCk7XG4gIH1cblxuICBASW5wdXQoJ2dyb3VwTGlzdCcpIHNldCBzZXRHcm91cExpc3QodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZT8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmdyb3Vwc0xpc3QgPSBbLi4udmFsdWVdO1xuICAgICAgdGhpcy5hbGxHcm91cHNJZHMgPSB0aGlzLmdyb3Vwc0xpc3QubWFwKChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCk7XG4gICAgICB0aGlzLmFsbEdyb3VwU2VsZWN0ZWRTdGF0dXMoKTtcbiAgICAgIHRoaXMuc2V0R3JvdXBMaXN0SW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnc2VsZWN0ZWRHcm91cHMnKSBzZXQgc2V0U2VsZWN0ZWRHcm91cCh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IHRoaXMudW5pcXVlQnlQcm9wKFxuICAgICAgWy4uLnRoaXMuc2VsZWN0ZWRHcm91cHMsIC4uLnZhbHVlXSxcbiAgICAgICdncm91cF9pZCdcbiAgICApO1xuICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IHRoaXMuc2VsZWN0ZWRHcm91cHMubWFwKFxuICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkXG4gICAgKTtcbiAgICB0aGlzLmFsbEdyb3VwU2VsZWN0ZWRTdGF0dXMoKTtcbiAgICB0aGlzLnNldEdyb3VwTGlzdEluaXQoKTtcbiAgfVxuXG4gIHNldEdyb3VwTGlzdEluaXQoKSB7XG4gICAgaWYgKHRoaXMudXNlckN1cnJlbnRQYWdlID09PSAxKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRHcm91cHM7XG4gICAgICBjb25zdCBvdGhlckdyb3VwID0gdGhpcy5ncm91cHNMaXN0LmZpbHRlcihcbiAgICAgICAgKGVsZTogYW55KSA9PiAhdGhpcy5zZWxlY3RlZEdyb3VwSWRzLmluY2x1ZGVzKGVsZT8uZ3JvdXBfaWQpXG4gICAgICApO1xuICAgICAgdGhpcy5ncm91cHNMaXN0ID0gdGhpcy51bmlxdWVCeVByb3AoXG4gICAgICAgIFsuLi5zZWxlY3RlZD8uc29ydCgpLCAuLi5vdGhlckdyb3VwPy5zb3J0KCldLFxuICAgICAgICAnZ3JvdXBfaWQnXG4gICAgICApO1xuICAgIH1cbiAgfVxuICBhbGxHcm91cFNlbGVjdGVkU3RhdHVzKCkge1xuICAgIHRoaXMuYWxsR3JvdXBTZWxlY3RlZCA9XG4gICAgICB0aGlzLmFsbEdyb3Vwc0lkcz8uc29ydCgpPy50b1N0cmluZygpID09PVxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzPy5zb3J0KCk/LnRvU3RyaW5nKCk7XG4gICAgdGhpcy5hbGxHcm91cFNlbGVjdGVkRGlzYWJsZWQgPVxuICAgICAgdGhpcy5hbGxHcm91cHNJZHMuc29ydCgpLnRvU3RyaW5nKCkgPT09XG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBJZHMuc29ydCgpPy50b1N0cmluZygpICYmXG4gICAgICB0aGlzLmFsbEdyb3Vwc0lkcy5zb3J0KCkudG9TdHJpbmcoKSA9PT1cbiAgICAgIHRoaXMubm9uUmVtb3ZhYmxlR3JvdXBJZHMuc29ydCgpPy50b1N0cmluZygpO1xuICB9XG5cbiAgdXNlclBhZ2VDaGFuZ2UocGFnZTogYW55KSB7XG4gICAgdGhpcy51c2VyQ3VycmVudFBhZ2UgPSBwYWdlO1xuICAgIHRoaXMuZmV0Y2hVc2VyRGF0YS5lbWl0KHsgcGFnZSwgc2VhcmNoS2V5OiB0aGlzLnNlYXJjaEtleSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAjIyMjIERlc2NyaXB0aW9uXG4gICAqIFNlbGVjdHMgaXRlbSBvciBkZXNlbGVjdCBhIGl0bWVcbiAgICogQHBhcmFtIGV2dFxuICAgKiBAcGFyYW0gcGF5bG9hZFxuICAgKi9cbiAgc2VsZWN0SXRlbShldnQ6IGFueSwgcGF5bG9hZDogYW55KSB7XG4gICAgZXZ0Py50YXJnZXQ/LmNoZWNrZWQgPT09IHRydWVcbiAgICAgID8gdGhpcy5tYW5pcHVsYXRlU2VsZWN0ZWRVc2VyKCdBREQnLCBwYXlsb2FkKVxuICAgICAgOiB0aGlzLm1hbmlwdWxhdGVTZWxlY3RlZFVzZXIoJ0RFTEVURScsIHBheWxvYWQpO1xuICB9XG5cbiAgc2VsZWN0SXRlbVJhZGlvKGV2dDogYW55LCBwYXlsb2FkOiBhbnkpIHtcbiAgICBpZiAoZXZ0Py50YXJnZXQ/LmNoZWNrZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IFtdO1xuICAgICAgdGhpcy5tYW5pcHVsYXRlU2VsZWN0ZWRVc2VyKCdBREQnLCBwYXlsb2FkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIyMjIyBEZXNjcmlwdGlvblxuICAgKlxuICAgKiBNYW5pcHVsYXRlcyBzZWxlY3RlZCBpdGVtcyBpbiByb2xlIGxpc3RcbiAgICogQHBhcmFtIGFjdGlvbiA6J0FERCcgfCAnREVMRVRFJ1xuICAgKiBAcGFyYW0gcGF5bG9hZFxuICAgKi9cbiAgbWFuaXB1bGF0ZVNlbGVjdGVkVXNlcihhY3Rpb246ICdBREQnIHwgJ0RFTEVURScsIHBheWxvYWQ6IGFueSkge1xuICAgIGlmIChhY3Rpb24gPT09ICdBREQnKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChcbiAgICAgICAgWy4uLnRoaXMuc2VsZWN0ZWRVc2VycywgLi4uW3BheWxvYWRdXSxcbiAgICAgICAgJ21lbWJlcl9pZCdcbiAgICAgICk7XG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcklkcyA9IHRoaXMuc2VsZWN0ZWRVc2Vycy5tYXAoXG4gICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWRcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChhY3Rpb24gPT09ICdERUxFVEUnKSB7XG4gICAgICBsZXQgaW5kZXggPSB0aGlzLnNlbGVjdGVkVXNlcnMuZmluZEluZGV4KFxuICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkID09PSBwYXlsb2FkPy5tZW1iZXJfaWRcbiAgICAgICk7XG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLnNlbGVjdGVkVXNlcnMuZmlsdGVyKFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQgIT09IHBheWxvYWQ/Lm1lbWJlcl9pZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVXNlcklkcyA9IHRoaXMuc2VsZWN0ZWRVc2VySWRzLmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZSAhPT0gcGF5bG9hZD8ubWVtYmVyX2lkXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYWxsVXNlclNlbGVjdGVkU3RhdHVzKCk7XG4gIH1cbiAgc2VsZWN0QWxsVXNlcihldnQ6IGFueSkge1xuICAgIGlmICh0aGlzLmZyb21SZXNwb25zaWJpbGl0eSkge1xuICAgICAgdGhpcy5ub25EaXNhYmxlZFVzZXJzID0gdGhpcy5kaXNhYmxlVXNlcnMoKTtcbiAgICB9XG4gICAgaWYgKGV2dD8udGFyZ2V0Py5jaGVja2VkID09PSB0cnVlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB0aGlzLmZyb21SZXNwb25zaWJpbGl0eVxuICAgICAgICA/IHRoaXMubm9uRGlzYWJsZWRVc2Vyc1xuICAgICAgICA6IHRoaXMudXNlcnNMaXN0O1xuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJJZHMgPSB0aGlzLmZyb21SZXNwb25zaWJpbGl0eVxuICAgICAgICA/IHRoaXMubm9uRGlzYWJsZWRVc2Vycy5tYXAoKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZClcbiAgICAgICAgOiB0aGlzLnVzZXJzTGlzdC5tYXAoKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IHRoaXMudXNlcnNMaXN0LmZpbHRlcigoZWxlOiBhbnkpID0+XG4gICAgICAgIHRoaXMubm9uUmVtb3ZhYmxlVXNlcklkcy5pbmNsdWRlcyhlbGU/Lm1lbWJlcl9pZClcbiAgICAgICk7XG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcklkcyA9IHRoaXMuc2VsZWN0ZWRVc2Vycy5tYXAoXG4gICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWRcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuYWxsVXNlclNlbGVjdGVkU3RhdHVzKCk7XG4gIH1cblxuICAvKipcbiAgICogIyMjIyBEZXNjcmlwdGlvblxuICAgKiBTZWxlY3RzIGl0ZW0gb3IgZGVzZWxlY3QgYSBpdG1lXG4gICAqIEBwYXJhbSBldnRcbiAgICogQHBhcmFtIHBheWxvYWRcbiAgICovXG4gIHNlbGVjdEdyb3VwKGV2dDogYW55LCBwYXlsb2FkOiBhbnkpIHtcbiAgICBldnQ/LnRhcmdldD8uY2hlY2tlZCA9PT0gdHJ1ZVxuICAgICAgPyB0aGlzLm1hbmlwdWxhdGVTZWxlY3RlZEdyb3VwKCdBREQnLCBwYXlsb2FkKVxuICAgICAgOiB0aGlzLm1hbmlwdWxhdGVTZWxlY3RlZEdyb3VwKCdERUxFVEUnLCBwYXlsb2FkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAjIyMjIERlc2NyaXB0aW9uXG4gICAqXG4gICAqIE1hbmlwdWxhdGVzIHNlbGVjdGVkIGl0ZW1zIGluIHJvbGUgbGlzdFxuICAgKiBAcGFyYW0gYWN0aW9uIDonQUREJyB8ICdERUxFVEUnXG4gICAqIEBwYXJhbSBwYXlsb2FkXG4gICAqL1xuICBtYW5pcHVsYXRlU2VsZWN0ZWRHcm91cChhY3Rpb246ICdBREQnIHwgJ0RFTEVURScsIHBheWxvYWQ6IGFueSkge1xuICAgIGlmIChhY3Rpb24gPT09ICdBREQnKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBzID0gdGhpcy51bmlxdWVCeVByb3AoXG4gICAgICAgIFsuLi50aGlzLnNlbGVjdGVkR3JvdXBzLCAuLi5bcGF5bG9hZF1dLFxuICAgICAgICAnZ3JvdXBfaWQnXG4gICAgICApO1xuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzID0gdGhpcy5zZWxlY3RlZEdyb3Vwcy5tYXAoXG4gICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGFjdGlvbiA9PT0gJ0RFTEVURScpIHtcbiAgICAgIGxldCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRHcm91cHMuZmluZEluZGV4KFxuICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQgPT09IHBheWxvYWQ/Lmdyb3VwX2lkXG4gICAgICApO1xuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IHRoaXMuc2VsZWN0ZWRHcm91cHMuZmlsdGVyKFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCAhPT0gcGF5bG9hZD8uZ3JvdXBfaWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzID0gdGhpcy5zZWxlY3RlZEdyb3VwSWRzLmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZSAhPT0gcGF5bG9hZD8uZ3JvdXBfaWRcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5hbGxHcm91cFNlbGVjdGVkU3RhdHVzKCk7XG4gIH1cbiAgc2VsZWN0QWxsR3JvdXAoZXZ0OiBhbnkpIHtcbiAgICBjb25zdCBncm91cERhdGEgPSB0aGlzLnNlYXJjaFBpcGUudHJhbnNmb3JtKFxuICAgICAgdGhpcy5ncm91cHNMaXN0LFxuICAgICAgdGhpcy5zZWFyY2hLZXksXG4gICAgICAnZ3JvdXBfbmFtZSdcbiAgICApO1xuICAgIGlmIChldnQ/LnRhcmdldD8uY2hlY2tlZCA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IGdyb3VwRGF0YTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IGdyb3VwRGF0YS5tYXAoKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IHRoaXMuZ3JvdXBzTGlzdC5maWx0ZXIoKGVsZTogYW55KSA9PlxuICAgICAgICB0aGlzLm5vblJlbW92YWJsZUdyb3VwSWRzLmluY2x1ZGVzKGVsZT8uZ3JvdXBfaWQpXG4gICAgICApO1xuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzID0gdGhpcy5zZWxlY3RlZEdyb3Vwcy5tYXAoXG4gICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5hbGxHcm91cFNlbGVjdGVkU3RhdHVzKCk7XG4gIH1cblxuICBhbmltYXRpb24gPSB0cnVlO1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGxldCBkaXNhYmxlZElkcyA9IFsuLi50aGlzLmRpc2FibGVkSWRzLCAuLi50aGlzLm5vblJlbW92YWJsZVVzZXJJZHNdO1xuICAgIHRoaXMuZGlzYWJsZWRJZHMgPSBbLi4ubmV3IFNldChkaXNhYmxlZElkcyldO1xuICAgIHRoaXMucGFnaW5hdGlvblZpc2libGUoKTtcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xuICAgIH0sIDMwMCk7XG4gIH1cbiAgY3VycmVudFRhYiA9ICdVU0VSJztcbiAgc3dpdGNoVGFiKHRhYjogc3RyaW5nKSB7XG4gICAgdGhpcy5jdXJyZW50VGFiID0gdGFiO1xuICAgIHRoaXMuc2VhcmNoS2V5ID0gJyc7XG4gIH1cblxuICBzYXZlTGlzdCgpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmRlZmF1bHRTZWxlY3RlZFVzZXJJZHMgJiZcbiAgICAgIHRoaXMuZGVmYXVsdFNlbGVjdGVkVXNlcklkcz8ubGVuZ3RoICYmXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcklkcyAmJlxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJJZHM/Lmxlbmd0aFxuICAgICkge1xuICAgICAgdGhpcy5kZWZhdWx0U2VsZWN0ZWRVc2VySWRzPy5mb3JFYWNoKChpZDogbnVtYmVyKTogYW55ID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkVXNlcklkcz8uaW5jbHVkZXMoaWQpKSB7XG4gICAgICAgICAgdGhpcy5zaG93Q29uZmlybWF0aW9uID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbiA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuc2hvd0NvbmZpcm1hdGlvbilcbiAgICAgIHRoaXMuc2F2ZS5lbWl0KHtcbiAgICAgICAgdXNlcnM6IHRoaXMuc2VsZWN0ZWRVc2VycyxcbiAgICAgICAgZ3JvdXBzOiB0aGlzLnNlbGVjdGVkR3JvdXBzLFxuICAgICAgICBmdXR1cmVVc2Vyc1dpbGxTZWxlY3Q6IHRoaXMuZnV0dXJlVXNlcnNXaWxsU2VsZWN0LFxuICAgICAgfSk7XG4gIH1cblxuICBjb25maXJtQWN0aW9uKGV2dDogJ1lFUycgfCAnTk8nKSB7XG4gICAgaWYgKGV2dCA9PT0gJ1lFUycpIHtcbiAgICAgIHRoaXMuc2F2ZS5lbWl0KHtcbiAgICAgICAgdXNlcnM6IHRoaXMuc2VsZWN0ZWRVc2VycyxcbiAgICAgICAgZ3JvdXBzOiB0aGlzLnNlbGVjdGVkR3JvdXBzLFxuICAgICAgICBmdXR1cmVVc2Vyc1dpbGxTZWxlY3Q6IHRoaXMuZnV0dXJlVXNlcnNXaWxsU2VsZWN0LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChldnQgPT09ICdOTycpIHtcbiAgICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbiA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlTGlzdCgpIHtcbiAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XG4gIH1cblxuICAvL1xuXG4gIC8qKlxuICAgKiAjIyMjIERlc2NyaXB0aW9uXG4gICAqXG4gICAqIFJldHVybnMgdGhlIHVuaXF1ZSBhcnJheSBvZiBvYmplY3QgYmFzZWQgb24gdW5pcXVlIGtleVxuICAgKiBAcGFyYW0gYXJyYXlcbiAgICogQHBhcmFtIGtleVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgdW5pcXVlQnlQcm9wKGFycmF5OiBhbnksIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICBhcnJheVxuICAgICAgICAucmVkdWNlKFxuICAgICAgICAgIChhY2M6IGFueSwgaXRlbTogYW55KSA9PiAoXG4gICAgICAgICAgICBpdGVtICYmIGl0ZW1ba2V5XSAmJiBhY2Muc2V0KGl0ZW1ba2V5XSwgaXRlbSksIGFjY1xuICAgICAgICAgICksXG4gICAgICAgICAgbmV3IE1hcCgpXG4gICAgICAgIClcbiAgICAgICAgLnZhbHVlcygpXG4gICAgKTtcbiAgfVxuXG4gIHBhZ2luYXRpb25WaXNpYmxlKCkge1xuICAgIGlmICh0aGlzLnVzZXJMaXN0SW5mbz8udG90YWxfcGFnZXMgPiAxKSB7XG4gICAgICB0aGlzLmlzUGFnaW5hdGlvbiA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNQYWdpbmF0aW9uID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIHdvcmtmbG93VHlwZUNoYW5nZWQoZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMucmV2aWV3ZXJXb3JrZmxvd1R5cGUgPSBldmVudDtcbiAgICB0aGlzLnJldmlld2VyV29ya2Zsb3dUeXBlQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgZGlzYWJsZVVzZXJzKCkge1xuICAgIHN3aXRjaCAodGhpcy5mcm9tUmVzcG9uc2liaWxpdHkpIHtcbiAgICAgIGNhc2UgJ0Fzc2lnbmVlJzpcbiAgICAgICAgdGhpcy5ub25EaXNhYmxlZFVzZXJzID0gdGhpcy51c2Vyc0xpc3QuZmlsdGVyKFxuICAgICAgICAgICh1c2VyOiBhbnkpID0+XG4gICAgICAgICAgICAhKFxuICAgICAgICAgICAgICB0aGlzLnJldmlld2VySWRzPy5pbmNsdWRlcyh1c2VyPy5tZW1iZXJfaWQpIHx8XG4gICAgICAgICAgICAgIHRoaXMub3ZlcnNlZXJJZHM/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdSZXZpZXdlcic6XG4gICAgICAgIHRoaXMubm9uRGlzYWJsZWRVc2VycyA9IHRoaXMudXNlcnNMaXN0LmZpbHRlcihcbiAgICAgICAgICAodXNlcjogYW55KSA9PlxuICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgdGhpcy5vdmVyc2Vlcklkcz8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKSB8fFxuICAgICAgICAgICAgICB0aGlzLmFzc2lnbmVlSWRzPy5pbmNsdWRlcyh1c2VyPy5tZW1iZXJfaWQpXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnT3ZlcnNlZXInOlxuICAgICAgICB0aGlzLm5vbkRpc2FibGVkVXNlcnMgPSB0aGlzLnVzZXJzTGlzdC5maWx0ZXIoXG4gICAgICAgICAgKHVzZXI6IGFueSkgPT5cbiAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgIHRoaXMuYXNzaWdub3JJZD8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKSB8fFxuICAgICAgICAgICAgICB0aGlzLnJldmlld2VySWRzPy5pbmNsdWRlcyh1c2VyPy5tZW1iZXJfaWQpIHx8XG4gICAgICAgICAgICAgIHRoaXMuYXNzaWduZWVJZHM/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5ub25EaXNhYmxlZFVzZXJzO1xuICB9XG5cbiAgc2V0QWxsVXNlcnNTZWxlY3RlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5mdXR1cmVVc2Vyc1dpbGxTZWxlY3QgPSBldmVudDtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IFtdO1xuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IFtdO1xuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJJZHMgPSBbXTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IFtdO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInVzZXItZ3JvdXAtbGlzdFwiIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiPlxuICA8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1saXN0LWhlYWRcIj5cbiAgICA8aDMgY2xhc3M9XCJ1c2VyLWdyb3VwLWxpc3QtdGl0bGVcIj57eyBwYW5lbFRpdGxlIH19PC9oMz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLWxpc3QtYm9keVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLWxpc3QtYm9keS1pbm5lclwiPlxuICAgICAgPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwibG9hZGluZ1wiPjwvYXBwLWxvYWRlci1pbmxpbmU+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidXNlci1ncm91cC1saXN0LXRhYiB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1tYi0yXCJcbiAgICAgICAgKm5nSWY9XCJncm91cEVuYWJsZWRcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJzd2l0Y2hUYWIoJ1VTRVInKVwiXG4gICAgICAgICAgICBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNjAwIHZ4LXBhcmFncmFwaC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wYi0yIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJjdXJyZW50VGFiID09PSAnVVNFUidcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIFVTRVJTXG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cInZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LW1sLTIgdngtbGgtNFwiXG4gICAgICAgICAgICAgID57e1xuICAgICAgICAgICAgICAgIHNlYXJjaEtleT8ubGVuZ3RoICYmIGN1cnJlbnRUYWIgPT09IFwiVVNFUlwiXG4gICAgICAgICAgICAgICAgICA/ICh1c2Vyc0xpc3QgfCBmaWx0ZXIgOiBzZWFyY2hLZXkpPy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgIDogdXNlcnNMaXN0Py5sZW5ndGggfHwgdXNlckxpc3RJbmZvPy50b3RhbF9pdGVtc1xuICAgICAgICAgICAgICB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiaXNHcm91cFRhYlNob3dcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInN3aXRjaFRhYignR1JPVVAnKVwiXG4gICAgICAgICAgICBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNjAwIHZ4LXBhcmFncmFwaC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wYi0yIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJjdXJyZW50VGFiID09PSAnR1JPVVAnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBmZWF0dXJlZmxhZyA/IFwiVVNFUiBHUk9VUFNcIiA6IFwiR1JPVVBTXCIgfX1cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwidngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbWwtMiB2eC1saC00XCJcbiAgICAgICAgICAgICAgPnt7XG4gICAgICAgICAgICAgICAgc2VhcmNoS2V5Py5sZW5ndGggJiYgY3VycmVudFRhYiA9PT0gXCJHUk9VUFwiXG4gICAgICAgICAgICAgICAgICA/IChncm91cHNMaXN0IHwgc2VhcmNoIDogc2VhcmNoS2V5IDogXCJncm91cF9uYW1lXCIpPy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgIDogZ3JvdXBzTGlzdD8ubGVuZ3RoIHx8IGdyb3VwTGlzdEluZm8/LnRvdGFsX2l0ZW1zXG4gICAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImZ1dHVyZS11c2VyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIlxuICAgICAgICAgICpuZ0lmPVwic2hvd0Z1dHVyZVVzZXJzU3dpdGNoXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZVwiPlxuICAgICAgICAgICAgVmlzaWJsZSB0byBBbGwgQ3VycmVudCAmIEZ1dHVyZSBVc2Vyc1xuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cImljb25zIGluZm8gdngtZnMtMTIgdngtdHh0LWJsdWUgdngtbWwtMSB2eC1tci0xXCJcbiAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAnSWYgc2VsZWN0ZWQsIHRoaXMgcG9saWN5IHdpbGwgYmUgdmlzaWJsZSB0byBhbGwgdXNlcnMgdGhhdCBhcmUgY3VycmVudGx5IGFjdGl2ZSBpbiB5b3VyIFZDb21wbHkgYWNjb3VudCBhbmQgdXNlcnMgdGhhdCBtaWdodCBiZSBhZGRlZCBpbiB0aGUgZnV0dXJlLidcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIlxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgID4mI3hlOTFmOzwvaVxuICAgICAgICAgID5cbiAgICAgICAgICA8YXBwLWNzLXN3aXRjaFxuICAgICAgICAgICAgW25nVmFsdWVdPVwiZnV0dXJlVXNlcnNXaWxsU2VsZWN0XCJcbiAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cInNldEFsbFVzZXJzU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvYXBwLWNzLXN3aXRjaD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1ibG9jayB2eC1tYi0yXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBiOzwvaT5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgKm5nSWY9XCIhZmVhdHVyZWZsYWdcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoS2V5XCJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e1xuICAgICAgICAgICAgY3VycmVudFRhYiA9PT0gJ1VTRVInID8gJ1NlYXJjaCBVc2VyJyA6ICdTZWFyY2ggR3JvdXAnXG4gICAgICAgICAgfX1cIlxuICAgICAgICAvPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAqbmdJZj1cImZlYXR1cmVmbGFnXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaEtleVwiXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3tcbiAgICAgICAgICAgIGN1cnJlbnRUYWIgPT09ICdVU0VSJyA/ICdTZWFyY2ggVXNlcicgOiAnU2VhcmNoIFVzZXIgR3JvdXAnXG4gICAgICAgICAgfX1cIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50VGFiID09PSAnVVNFUicgJiYgIWxvYWRpbmdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVzZXJzTGlzdCB8IGZpbHRlciA6IHNlYXJjaEtleSBhcyB1c2Vyc1wiPlxuICAgICAgICAgIDx2dWktcGFnaW5hdGlvblxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgdXNlckxpc3RJbmZvPy50b3RhbF9wYWdlcyA+IDEgJiZcbiAgICAgICAgICAgICAgdXNlcnNMaXN0Py5sZW5ndGggIT09IHVzZXJMaXN0SW5mbz8udG90YWxfaXRlbXNcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbY3VycmVudFBhZ2VdPVwidXNlckN1cnJlbnRQYWdlXCJcbiAgICAgICAgICAgIFt0b3RhbFBhZ2VdPVwidXNlckxpc3RJbmZvPy50b3RhbF9wYWdlc1wiXG4gICAgICAgICAgICAocGFnZUNoYW5nZWQpPVwidXNlclBhZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvdnVpLXBhZ2luYXRpb24+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLWdyb3VwLWxpc3QtbWlkXCJcbiAgICAgICAgICAgIFtjbGFzcy53aXRoLXBhZ2luYXRpb25dPVwiaXNQYWdpbmF0aW9uXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXNlcnM/Lmxlbmd0aCA+IDA7IGVsc2Ugbm91c2VyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWxpc3Qtc2VsZWN0IHZ4LW1iLTJcIj5cbiAgICAgICAgICAgICAgICA8dnVpLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIiFzaW5nbGVTZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgI3VzZXJcbiAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImFsbFVzZXJTZWxlY3RlZCB8fCBmdXR1cmVVc2Vyc1dpbGxTZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgICAgICAgICAgICBhbGxVc2VyU2VsZWN0ZWREaXNhYmxlZCB8fFxuICAgICAgICAgICAgICAgICAgICBmdXR1cmVVc2Vyc1dpbGxTZWxlY3QgfHxcbiAgICAgICAgICAgICAgICAgICAgaXNBbGxEaXNhYmxlZFxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2VsZWN0QWxsVXNlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidXNlci1uYW1lIHZ4LWZzLTEyIHZ4LWZ3LTYwMCB2eC1sYWJlbC10eHQgdngtdHQtbm9uZVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7ICF1c2VyPy5jaGVja2VkID8gXCJTZWxlY3QgQWxsXCIgOiBcIkRlc2VsZWN0IEFsbFwiIH19XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3Z1aS1jaGVja2JveD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWxpc3QtaXRlbVwiPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInZ4LW0tMCB2eC1wLTAgdngtZC1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB1c2VyIG9mIHVzZXJzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidngtbWItM1wiXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhc2luZ2xlU2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0b29sdGlwTWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZnJvbVJlc3BvbnNpYmlsaXR5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByZXZpZXdlcklkc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogb3ZlcnNlZXJJZHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGFzc2lnbm9ySWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGFzc2lnbmVlSWRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnbWVtYmVyX2lkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZGlzYWJsZWRJZHM/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEZyb21Qcm9ncmFtXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPHZ1aS1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RJdGVtKCRldmVudCwgdXNlcilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZElkcz8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICBmdXR1cmVVc2Vyc1dpbGxTZWxlY3QgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBbGxEaXNhYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFVzZXJJZHM/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZnV0dXJlVXNlcnNXaWxsU2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjxkaXYgY2xhc3M9XCJ1c2VyLW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdXNlcj8ubWVtYmVyX25hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvdnVpLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJ2eC1tYi0zXCIgKm5nSWY9XCJzaW5nbGVTZWxlY3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCIncmFkaW8tc2VsZWN0b3InXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2VsZWN0SXRlbVJhZGlvKCRldmVudCwgdXNlcilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiJ3J4LWNhdGVnb3J5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZFVzZXJJZHM/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwidXNlcj8ubWVtYmVyX2VtYWlsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyB1c2VyPy5tZW1iZXJfbmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm91c2VyPlxuICAgICAgICAgICAgICA8YXBwLW5vLWRhdGFcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFsb2FkaW5nXCJcbiAgICAgICAgICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiQVNTRVRTLnNlYXJjaF9kYXRhXCJcbiAgICAgICAgICAgICAgICBbbm9EYXRhVGV4dF09XCJcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEtleT8ubGVuZ3RoID4gMCA/ICdObyBtYXRjaCBmb3VuZC4nIDogJ05vIFVzZXJzIGZvdW5kLidcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+PC9hcHAtbm8tZGF0YT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50VGFiID09PSAnR1JPVVAnXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cImdyb3Vwc0xpc3QgfCBzZWFyY2ggOiBzZWFyY2hLZXkgOiAnZ3JvdXBfbmFtZScgYXMgZ3JvdXBzXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidXNlci1ncm91cC1saXN0LW1pZFwiXG4gICAgICAgICAgICBbY2xhc3Mud2l0aC1wYWdpbmF0aW9uXT1cImlzUGFnaW5hdGlvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdyb3Vwcz8ubGVuZ3RoID4gMDsgZWxzZSBub2dyb3VwXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWxpc3Qtc2VsZWN0IHZ4LW1iLTJcIj5cbiAgICAgICAgICAgICAgICA8dnVpLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAjZ3JvdXBcbiAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImFsbEdyb3VwU2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFsbEdyb3VwU2VsZWN0ZWREaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNlbGVjdEFsbEdyb3VwKCRldmVudClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLW5hbWUgdngtZnMtMTIgdngtZnctNjAwIHZ4LWxhYmVsLXR4dCB2eC10dC1ub25lXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgIWdyb3VwPy5jaGVja2VkID8gXCJTZWxlY3QgQWxsXCIgOiBcIkRlc2VsZWN0IEFsbFwiIH19XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3Z1aS1jaGVja2JveD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWxpc3QtaXRlbVwiPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInZ4LW0tMCB2eC1wLTAgdngtZC1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJ2eC1tYi0zXCIgKm5nRm9yPVwibGV0IGdyb3VwIG9mIGdyb3Vwc1wiPlxuICAgICAgICAgICAgICAgICAgICA8dnVpLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RHcm91cCgkZXZlbnQsIGdyb3VwKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9uUmVtb3ZhYmxlR3JvdXBJZHM/LmluY2x1ZGVzKGdyb3VwPy5ncm91cF9pZClcbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkR3JvdXBJZHM/LmluY2x1ZGVzKGdyb3VwPy5ncm91cF9pZClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLW5hbWUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC13LTEwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJncm91cD8uZ3JvdXBfbmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLW5hbWVcIj57eyBncm91cD8uZ3JvdXBfbmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudGVyIHZ4LWZzLTkgdngtZnctNjAwIHZ4LXBsLTEgdngtcHItMSB2eC1saC0zIHZ4LXR0LXVwcGVyY2FzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID57eyBncm91cD8ubWVtYmVyX2NvdW50IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdyb3VwPy5tZW1iZXJfY291bnQgPiAxID8gXCJVU0VSU1wiIDogXCJVU0VSXCIgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC92dWktY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vZ3JvdXA+XG4gICAgICAgICAgICAgIDxhcHAtbm8tZGF0YVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWxvYWRpbmdcIlxuICAgICAgICAgICAgICAgIFtub0RhdGFJbWFnZV09XCJBU1NFVFMuc2VhcmNoX2RhdGFcIlxuICAgICAgICAgICAgICAgIFtub0RhdGFUZXh0XT1cIlxuICAgICAgICAgICAgICAgICAgc2VhcmNoS2V5Py5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgICAgID8gJ05vIG1hdGNoIGZvdW5kLidcbiAgICAgICAgICAgICAgICAgICAgOiAnTm8gZGF0YSB0byBkaXNwbGF5LidcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+PC9hcHAtbm8tZGF0YT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1saXN0LWZvb3RlclwiPlxuICAgICAgPHZ1aS1mbG9hdGluZy1iYXJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAoIXNpbmdsZVNlbGVjdCB8fCAoIXNpbmdsZVNlbGVjdCAmJiBzZWxlY3RlZFJldmlld2VyKSkgJiYgIWxvYWRpbmdcbiAgICAgICAgXCJcbiAgICAgICAgKGNsb3NlRXZlbnQpPVwic2F2ZUxpc3QoKVwiXG4gICAgICAgIChjbG9zZUxpc3QpPVwiY2xvc2VMaXN0KClcIlxuICAgICAgICAod29ya2Zsb3dUeXBlQ2hhbmdlZCk9XCJ3b3JrZmxvd1R5cGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICBbc2VsZWN0ZWRXb3JrZmxvd109XCJyZXZpZXdlcldvcmtmbG93VHlwZVwiXG4gICAgICAgIFtzaG93V29ya2Zsb3ddPVwic2VsZWN0ZWRSZXZpZXdlclwiXG4gICAgICAgIFtncm91cFNlbGVjdGVkXT1cInNlbGVjdGVkR3JvdXBzXCJcbiAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgIFtuZXh0RGlzYWJsZWRdPVwiZnJvbUFwcHJvdmFsV29ya2Zsb3cgJiYgc2VsZWN0ZWRVc2Vycz8ubGVuZ3RoID09PSAwXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFncm91cEVuYWJsZWRcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTIgdngtbXItMlwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBzZWxlY3RlZFVzZXJzPy5zbGljZSgwLCAxKTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAqbmdJZj1cIiFub25SZW1vdmFibGVVc2VySWRzPy5pbmNsdWRlcyhlbGVtZW50Py5tZW1iZXJfaWQpXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEl0ZW0oeyB0YXJnZXQ6IHsgY2hlY2tlZDogZmFsc2UgfSB9LCBlbGVtZW50KVwiXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIGZyb21BcHByb3ZhbFdvcmtmbG93ICYmXG4gICAgICAgICAgICAgICAgYXBwcm92YWxXb3JrZmxvd1R5cGUudG9Mb3dlckNhc2UoKSA9PT0gJ3NlcXVlbnRpYWwnXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwid29ya2Zsb3dMYXZlbCB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGwtMSB2eC1wci0xIHZ4LWxoLTQgdngtbXItMSB2eC10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IDEgPT0gc2VsZWN0ZWRVc2Vycz8ubGVuZ3RoID8gXCJGaW5hbFwiIDogMSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImVsZW1lbnQ/Lm1lbWJlcl9uYW1lXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgID57eyBlbGVtZW50Py5tZW1iZXJfbmFtZSB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkVXNlcnM/Lmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTQgZ3JlZW5CZ1wiXG4gICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImdyb3VwRGlzYWJsZS5wb3BvdmVyKClcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgK3t7IHNlbGVjdGVkVXNlcnM/LnNsaWNlKDEpPy5sZW5ndGggfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcFwiICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIHNlbGVjdGVkVXNlcnM/LnNsaWNlKDAsMSk7bGV0IGkgPSBpbmRleFwiPjxpICpuZ0lmPVwiIW5vblJlbW92YWJsZVVzZXJJZHM/LmluY2x1ZGVzKGVsZW1lbnQ/Lm1lbWJlcl9pZClcIiAoY2xpY2spPVwic2VsZWN0SXRlbSh7dGFyZ2V0OntjaGVja2VkOmZhbHNlfX0sZWxlbWVudClcIiBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+IDxzcGFuPnt7ZWxlbWVudD8ubWVtYmVyX25hbWV9fTwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXJcIiAqbmdJZj1cInNlbGVjdGVkVXNlcnM/Lmxlbmd0aD4xXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwiZ3JvdXBEaXNhYmxlLnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIj4re3tzZWxlY3RlZFVzZXJzPy5zbGljZSgxKT8ubGVuZ3RofX08L2Rpdj4gLS0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ1c2VyLWdyb3VwLWNoaXBcIlxuICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRVc2Vycz8ubGVuZ3RoICYmIGdyb3VwRW5hYmxlZFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zc1wiXG4gICAgICAgICAgICAqbmdJZj1cIiFub25SZW1vdmFibGVVc2VySWRzPy5pbmNsdWRlcyhzZWxlY3RlZFVzZXJzWzBdPy5tZW1iZXJfaWQpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgc2VsZWN0SXRlbSh7IHRhcmdldDogeyBjaGVja2VkOiBmYWxzZSB9IH0sIHNlbGVjdGVkVXNlcnNbMF0pXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLW5hbWVcIj57eyBzZWxlY3RlZFVzZXJzWzBdPy5tZW1iZXJfbmFtZSB9fTwvZGl2PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cEVuYWJsZWRcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudGVyXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZFVzZXJzPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAoY2xpY2spPVwidXNlckNvdW50LnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAre3sgc2VsZWN0ZWRVc2Vycz8ubGVuZ3RoIC0gMSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZSB1c2VyR3JvdXAtbmFtZVwiPlxuICAgICAgICAgIDwhLS0ge3tzZWxlY3RlZEdyb3VwcyAmJiBzZWxlY3RlZEdyb3Vwcz8ubGVuZ3RoID4gMCA/JyAmICc6Jyd9fSAtLT5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXJHcm91cC10ZXh0XCIgKm5nSWY9XCJzZWxlY3RlZFVzZXJzPy5sZW5ndGggPT09IDFcIlxuICAgICAgICAgICAgPlVzZXIge3sgc2VsZWN0ZWRHcm91cHM/Lmxlbmd0aCA+IDAgPyBcIiAmIFwiIDogXCIgc2VsZWN0ZWRcIiB9fTwvc3BhblxuICAgICAgICAgID5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXJHcm91cC10ZXh0XCIgKm5nSWY9XCJzZWxlY3RlZFVzZXJzPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgID5Vc2VycyB7eyBzZWxlY3RlZEdyb3Vwcz8ubGVuZ3RoID4gMCA/IFwiICYgXCIgOiBcInNlbGVjdGVkXCIgfX08L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLWNoaXBcIiAqbmdJZj1cInNlbGVjdGVkR3JvdXBzPy5sZW5ndGhcIj5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zc1wiXG4gICAgICAgICAgICAqbmdJZj1cIiFub25SZW1vdmFibGVHcm91cElkcz8uaW5jbHVkZXMoc2VsZWN0ZWRHcm91cHNbMF0/Lmdyb3VwX2lkKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgIHNlbGVjdEdyb3VwKHsgdGFyZ2V0OiB7IGNoZWNrZWQ6IGZhbHNlIH0gfSwgc2VsZWN0ZWRHcm91cHNbMF0pXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLW5hbWVcIj57eyBzZWxlY3RlZEdyb3Vwc1swXT8uZ3JvdXBfbmFtZSB9fTwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY291bnRlciBncm91cFwiXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkR3JvdXBzPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgIChjbGljayk9XCJncm91cENvdW50LnBvcG92ZXIoKVwiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICAre3sgc2VsZWN0ZWRHcm91cHM/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lIHVzZXJHcm91cC1uYW1lXCI+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZEdyb3Vwcz8ubGVuZ3RoID09PSAxXCI+e3tcbiAgICAgICAgICAgIGZlYXR1cmVmbGFnID8gXCJVc2VyIEdyb3VwIHNlbGVjdGVkXCIgOiBcIkdyb3VwIHNlbGVjdGVkXCJcbiAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkR3JvdXBzPy5sZW5ndGggPiAxXCI+e3tcbiAgICAgICAgICAgIGZlYXR1cmVmbGFnID8gXCJVc2VyIEdyb3VwcyBzZWxlY3RlZFwiIDogXCJHcm91cHMgc2VsZWN0ZWRcIlxuICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YXBwLXBvcG92ZXIgI3VzZXJDb3VudCBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBzZWxlY3RlZFVzZXJzIHwgc2xpY2UgOiAxOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIW5vblJlbW92YWJsZVVzZXJJZHM/LmluY2x1ZGVzKGVsZW1lbnQ/Lm1lbWJlcl9pZClcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdEl0ZW0oeyB0YXJnZXQ6IHsgY2hlY2tlZDogZmFsc2UgfSB9LCBlbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgZWxlbWVudD8ubWVtYmVyX25hbWUgfX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYXBwLXBvcG92ZXI+XG5cbiAgICAgICAgPGFwcC1wb3BvdmVyICNncm91cERpc2FibGUgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIHNlbGVjdGVkVXNlcnMuc2xpY2UoMSk7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFub25SZW1vdmFibGVVc2VySWRzPy5pbmNsdWRlcyhlbGVtZW50Py5tZW1iZXJfaWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RJdGVtKHsgdGFyZ2V0OiB7IGNoZWNrZWQ6IGZhbHNlIH0gfSwgZWxlbWVudClcbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZyb21BcHByb3ZhbFdvcmtmbG93ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZhbFdvcmtmbG93VHlwZS50b0xvd2VyQ2FzZSgpID09PSAnc2VxdWVudGlhbCdcbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwid29ya2Zsb3dMYXZlbCB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGwtMSB2eC1wci0xIHZ4LWxoLTQgdngtbXItMSB2eC10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICBpICsgMSA9PT0gc2VsZWN0ZWRVc2Vycz8ubGVuZ3RoIC0gMSA/IFwiRmluYWxcIiA6IGkgKyAyXG4gICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBlbGVtZW50Py5tZW1iZXJfbmFtZSB9fVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hcHAtcG9wb3Zlcj5cblxuICAgICAgICA8YXBwLXBvcG92ZXIgI2dyb3VwQ291bnQgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICBsZXQgZWxlbWVudCBvZiBzZWxlY3RlZEdyb3VwcyB8IHNsaWNlIDogMTtcbiAgICAgICAgICAgICAgICAgIGxldCBpID0gaW5kZXhcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhbm9uUmVtb3ZhYmxlR3JvdXBJZHM/LmluY2x1ZGVzKGVsZW1lbnQ/Lmdyb3VwX2lkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0R3JvdXAoeyB0YXJnZXQ6IHsgY2hlY2tlZDogZmFsc2UgfSB9LCBlbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgZWxlbWVudD8uZ3JvdXBfbmFtZSB9fVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgIDwvdnVpLWZsb2F0aW5nLWJhcj5cbiAgICAgIDx2dWktZmxvYXRpbmctYmFyXG4gICAgICAgICpuZ0lmPVwic2luZ2xlU2VsZWN0ICYmICFsb2FkaW5nXCJcbiAgICAgICAgKGNsb3NlRXZlbnQpPVwic2F2ZUxpc3QoKVwiXG4gICAgICAgIChjbG9zZUxpc3QpPVwiY2xvc2VMaXN0KClcIlxuICAgICAgICBbbmV4dERpc2FibGVkXT1cImZyb21BcHByb3ZhbFdvcmtmbG93ICYmIHNlbGVjdGVkVXNlcnM/Lmxlbmd0aCA9PT0gMFwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwXCIgKm5nSWY9XCJzZWxlY3RlZFVzZXJzPy5sZW5ndGhcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICBzZWxlY3RJdGVtKHsgdGFyZ2V0OiB7IGNoZWNrZWQ6IGZhbHNlIH0gfSwgc2VsZWN0ZWRVc2Vyc1swXSlcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+IHt7IHNlbGVjdGVkVXNlcnNbMF0/Lm1lbWJlcl9uYW1lIH19PC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdnVpLWZsb2F0aW5nLWJhcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInVzZXItZ3JvdXAtbGlzdC1jb25maXJtYXRpb25cIiAqbmdJZj1cInNob3dDb25maXJtYXRpb25cIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29uZmlybWF0aW9uLXRvcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImljb24tYmxvY2tcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkzMDs8L2k+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiPlxuICAgICAgICBUaGlzIGFjdGlvbiB3aWxsIHJlc2V0IHRoZSBkZWZhdWx0IHt7IHVzZXJUeXBlIH19IHNlbGVjdGVkIGZvciB0aGVcbiAgICAgICAgUHJvZ3JhbS5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb25maXJtYXRpb24tYm90dG9tXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZVwiPkFyZSB5b3Ugc3VyZSB5b3Ugd291bGQgbGlrZSB0byBwcm9jZWVkPzwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1ncm91cFwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibm8tYnRuXCIgKGNsaWNrKT1cImNvbmZpcm1BY3Rpb24oJ05PJylcIj5OTzwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwieWVzLWJ0blwiIChjbGljayk9XCJjb25maXJtQWN0aW9uKCdZRVMnKVwiPllFUzwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|