vcomply-workflow-engine 0.2.0 → 0.2.1
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/bundles/vcomply-workflow-engine.umd.js +3 -2
- package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
- package/esm2015/lib/workflow-risk/workflow-risk.component.js +2 -2
- package/esm2015/lib/workflow-services/log-issue.service.js +3 -2
- package/fesm2015/vcomply-workflow-engine.js +3 -2
- package/fesm2015/vcomply-workflow-engine.js.map +1 -1
- package/lib/add-multiple-responsibility/add-multiple-responsibility.component.d.ts +0 -5
- package/lib/add-multiple-risk/add-multiple-risk.component.d.ts +0 -5
- package/lib/confirmation-alert/confirmation-alert.component.d.ts +0 -5
- package/lib/create-documents/create-documents.component.d.ts +0 -5
- package/lib/formgroup/cs-checkbox/cs-checkbox.component.d.ts +0 -5
- package/lib/formgroup/cs-radio/cs-radio.component.d.ts +0 -5
- package/lib/formgroup/cs-radio-group/cs-radio-group.component.d.ts +0 -5
- package/lib/formgroup/cs-select/cs-select.component.d.ts +0 -5
- package/lib/formgroup/cs-switch/cs-switch.component.d.ts +0 -5
- package/lib/formgroup/formgroup.module.d.ts +0 -14
- package/lib/formgroup/pipes/pascal.pipe.d.ts +0 -5
- package/lib/formgroup/select/cs-option/cs-option.component.d.ts +0 -5
- package/lib/formgroup/select/cs-select/cs-select.component.d.ts +0 -5
- package/lib/formgroup/select/select.module.d.ts +0 -11
- package/lib/formgroup/select/select.service.d.ts +0 -4
- package/lib/log-an-issue/log-an-issue.component.d.ts +0 -5
- package/lib/more-option/more-option.component.d.ts +0 -5
- package/lib/pipes/data-type.pipe.d.ts +0 -5
- package/lib/pipes/list-mapper.pipe.d.ts +0 -5
- package/lib/pipes/search.pipe.d.ts +0 -5
- package/lib/pipes/space-breaker.pipe.d.ts +0 -5
- package/lib/pipes/uncategorized-filter.pipe.d.ts +0 -5
- package/lib/pipes/user-filter.pipe.d.ts +0 -5
- package/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-list/assessment-list.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-list/service/assessment.service.d.ts +0 -4
- package/lib/sharedComponents/assessment-preview/assessment-preview.module.d.ts +0 -24
- package/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-preview/date-time/date-time.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-preview/device/device.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-preview/page-header/page-header.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-preview/preview/preview.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-preview/select-question/select-question.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.d.ts +0 -5
- package/lib/sharedComponents/assessment-preview/welcome/welcome.component.d.ts +0 -5
- package/lib/sharedComponents/audit-category-list/audit-category-list.component.d.ts +0 -5
- package/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.d.ts +0 -5
- package/lib/sharedComponents/bulk-view/bulk-view.component.d.ts +0 -5
- package/lib/sharedComponents/category-list/category-list.component.d.ts +0 -5
- package/lib/sharedComponents/category-multiselect/category-multi-select.component.d.ts +0 -5
- package/lib/sharedComponents/checkbox-list/checkbox-list.component.d.ts +0 -5
- package/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.d.ts +0 -5
- package/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.d.ts +0 -5
- package/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.d.ts +0 -5
- package/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.d.ts +0 -5
- package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.d.ts +0 -5
- package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.d.ts +0 -5
- package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.d.ts +0 -5
- package/lib/sharedComponents/directive/autofocus.directive.d.ts +0 -5
- package/lib/sharedComponents/directive/conditional-focus.directive.d.ts +0 -5
- package/lib/sharedComponents/directive/drag-drop.directive.d.ts +0 -5
- package/lib/sharedComponents/directive/scroll-in-view.directive.d.ts +0 -5
- package/lib/sharedComponents/document-section/document-section.component.d.ts +0 -5
- package/lib/sharedComponents/floating-bar/floating-bar.component.d.ts +0 -5
- package/lib/sharedComponents/format-and-evidence/format-and-evidence.component.d.ts +0 -5
- package/lib/sharedComponents/framework-list/framework-list.component.d.ts +0 -5
- package/lib/sharedComponents/framework-list/parent-table/parent-table.component.d.ts +0 -5
- package/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.d.ts +0 -5
- package/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.d.ts +0 -5
- package/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.d.ts +0 -5
- package/lib/sharedComponents/frequency/frequency-container/frequency-container.component.d.ts +0 -5
- package/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.d.ts +0 -5
- package/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.d.ts +0 -5
- package/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.d.ts +0 -5
- package/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.d.ts +0 -5
- package/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.d.ts +0 -5
- package/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.d.ts +0 -5
- package/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.d.ts +0 -5
- package/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.d.ts +0 -5
- package/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.d.ts +0 -5
- package/lib/sharedComponents/frequency/frequency-random/frequency-random.component.d.ts +0 -5
- package/lib/sharedComponents/frequency/frequency-top/frequency-top.component.d.ts +0 -5
- package/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.d.ts +0 -5
- package/lib/sharedComponents/frequency/frequency.service.d.ts +0 -4
- package/lib/sharedComponents/group-users-list/group-users-list.component.d.ts +0 -5
- package/lib/sharedComponents/list-loader/list-loader.component.d.ts +0 -5
- package/lib/sharedComponents/no-data/no-data.component.d.ts +0 -5
- package/lib/sharedComponents/no-data/no-data.module.d.ts +0 -8
- package/lib/sharedComponents/owner-list/owner-list.component.d.ts +0 -5
- package/lib/sharedComponents/pipes/array-filter.pipe.d.ts +0 -5
- package/lib/sharedComponents/pipes/filterPipe.d.ts +0 -5
- package/lib/sharedComponents/pipes/short-merge.pipe.d.ts +0 -5
- package/lib/sharedComponents/pipes/within-data.pipe.d.ts +0 -5
- package/lib/sharedComponents/radio-list/radio-list.component.d.ts +0 -5
- package/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.d.ts +0 -5
- package/lib/sharedComponents/radio-list-with-pagination/radio-list.component.d.ts +0 -5
- package/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.d.ts +0 -5
- package/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.d.ts +0 -5
- package/lib/sharedComponents/review-frequency/review-frequency.component.d.ts +0 -5
- package/lib/sharedComponents/risk-classification/risk-classification.component.d.ts +0 -5
- package/lib/sharedComponents/users-radio-list/users-radio-list.component.d.ts +0 -5
- package/lib/sharedComponents/v-loader/loader/loader.component.d.ts +0 -5
- package/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.d.ts +0 -5
- package/lib/sharedComponents/v-loader/v-loader.module.d.ts +0 -9
- package/lib/ui-kit/click-outside/click-outside.directive.d.ts +0 -5
- package/lib/ui-kit/click-outside/click-outside.module.d.ts +0 -8
- package/lib/ui-kit/format-html.pipe.d.ts +0 -5
- package/lib/ui-kit/line-loader/line-loader.component.d.ts +0 -5
- package/lib/ui-kit/line-loader/line-loader.module.d.ts +0 -8
- package/lib/ui-kit/pagination/pagination/pagination.component.d.ts +0 -5
- package/lib/ui-kit/pagination/pagination.module.d.ts +0 -9
- package/lib/ui-kit/popover/popover-event.directive.d.ts +0 -5
- package/lib/ui-kit/popover/popover-longpress.directive.d.ts +0 -5
- package/lib/ui-kit/popover/popover.component.d.ts +0 -5
- package/lib/ui-kit/popover/popover.directive.d.ts +0 -5
- package/lib/ui-kit/popover/popover.module.d.ts +0 -11
- package/lib/ui-kit/popover/popover.service.d.ts +0 -4
- package/lib/ui-kit/popover-hover/popover-hover.component.d.ts +0 -5
- package/lib/ui-kit/popover-hover/popover-hover.directive.d.ts +0 -5
- package/lib/ui-kit/popover-hover/popover-hover.module.d.ts +0 -9
- package/lib/ui-kit/popover-hover/popover-hover.service.d.ts +0 -4
- package/lib/ui-kit/smiley-dialog/smiley-dialog.component.d.ts +0 -5
- package/lib/ui-kit/smiley-dialog/smiley-dialog.module.d.ts +0 -8
- package/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.d.ts +0 -5
- package/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.module.d.ts +0 -8
- package/lib/ui-kit/snack-bar/snack-bar.component.d.ts +0 -5
- package/lib/ui-kit/snack-bar/snack-bar.module.d.ts +0 -8
- package/lib/ui-kit/snack-bar/snack-bar.service.d.ts +0 -4
- package/lib/ui-kit/tooltip/tooltip.directive.d.ts +0 -5
- package/lib/ui-kit/tooltip/tooltip.module.d.ts +0 -8
- package/lib/workflow-assessment/workflow-assessment.component.d.ts +0 -5
- package/lib/workflow-compliance/workflow-compliance.component.d.ts +0 -5
- package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +0 -5
- package/lib/workflow-engine.module.d.ts +0 -102
- package/lib/workflow-engine.service.d.ts +0 -4
- package/lib/workflow-pagination/workflow-pagination.component.d.ts +0 -5
- package/lib/workflow-policy/workflow-policy.component.d.ts +0 -5
- package/lib/workflow-risk/workflow-risk.component.d.ts +0 -5
- package/lib/workflow-services/add-risk.service.d.ts +0 -4
- package/lib/workflow-services/assessment.service.d.ts +0 -4
- package/lib/workflow-services/auth.service.d.ts +0 -4
- package/lib/workflow-services/frequency.service.d.ts +0 -4
- package/lib/workflow-services/log-issue.service.d.ts +0 -4
- package/lib/workflow-services/policy.service.d.ts +0 -4
- package/lib/workflow-services/responsibility.service.d.ts +0 -4
- package/lib/workflow-services/token-decoder.service.d.ts +0 -4
- package/lib/workflow-services/ui-kit.service.d.ts +0 -4
- package/lib/workflow-survey-form/workflow-survey-form.component.d.ts +0 -5
- package/package.json +2 -8
- package/vcomply-workflow-engine.d.ts +0 -2
- package/lib/formgroup/select/cs-option/cs-option.component.d.ts.__ivy_ngcc_bak +0 -15
- package/lib/formgroup/select/cs-option/cs-option.component.d.ts.map +0 -1
- package/lib/formgroup/select/cs-select/cs-select.component.d.ts.__ivy_ngcc_bak +0 -34
- package/lib/formgroup/select/cs-select/cs-select.component.d.ts.map +0 -1
- package/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.d.ts.__ivy_ngcc_bak +0 -35
- package/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.d.ts.map +0 -1
- package/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.d.ts.__ivy_ngcc_bak +0 -8
- package/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.d.ts.map +0 -1
- package/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.d.ts.__ivy_ngcc_bak +0 -38
- package/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.d.ts.map +0 -1
- package/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.d.ts.__ivy_ngcc_bak +0 -37
- package/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.d.ts.map +0 -1
- package/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.d.ts.__ivy_ngcc_bak +0 -35
- package/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.d.ts.map +0 -1
- package/lib/sharedComponents/frequency/frequency-container/frequency-container.component.d.ts.__ivy_ngcc_bak +0 -29
- package/lib/sharedComponents/frequency/frequency-container/frequency-container.component.d.ts.map +0 -1
- package/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.d.ts.__ivy_ngcc_bak +0 -30
- package/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.d.ts.map +0 -1
- package/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.d.ts.__ivy_ngcc_bak +0 -33
- package/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.d.ts.map +0 -1
- package/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.d.ts.__ivy_ngcc_bak +0 -29
- package/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.d.ts.map +0 -1
- package/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.d.ts.__ivy_ngcc_bak +0 -32
- package/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.d.ts.map +0 -1
- package/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.d.ts.__ivy_ngcc_bak +0 -19
- package/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.d.ts.map +0 -1
- package/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.d.ts.__ivy_ngcc_bak +0 -32
- package/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.d.ts.map +0 -1
- package/lib/sharedComponents/frequency/frequency-random/frequency-random.component.d.ts.__ivy_ngcc_bak +0 -59
- package/lib/sharedComponents/frequency/frequency-random/frequency-random.component.d.ts.map +0 -1
- package/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.d.ts.__ivy_ngcc_bak +0 -32
- package/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.d.ts.map +0 -1
|
@@ -591,7 +591,7 @@ export class WorkflowRiskComponent {
|
|
|
591
591
|
rating_arr: [],
|
|
592
592
|
member_id: this.memberId,
|
|
593
593
|
organisation_id: this.organizationId,
|
|
594
|
-
risk_progress_flag: 1,
|
|
594
|
+
risk_progress_flag: (this.mode === 'EDIT') ? this.editDetails.risk_progress_flag : 1,
|
|
595
595
|
IfAssessmentDone: (this.mode == 'EDIT') ? this.editDetails.IfAssessmentDone : 0,
|
|
596
596
|
workshop_id: (this.mode == 'EDIT') ? this.editDetails.workshop_id : 0,
|
|
597
597
|
complete_assessment: 0,
|
|
@@ -777,4 +777,4 @@ WorkflowRiskComponent.propDecorators = {
|
|
|
777
777
|
hideElementsFromMoreOptions: [{ type: Output }],
|
|
778
778
|
openedFrom: [{ type: Input }]
|
|
779
779
|
};
|
|
780
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctcmlzay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1yaXNrL3dvcmtmbG93LXJpc2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUEyQixNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRW5DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUduRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFTbkUsTUFBTSxPQUFPLHFCQUFxQjtJQWlHaEMsWUFDVSxXQUEyQixFQUMzQixXQUF3QixFQUN4QixZQUEwQixFQUN6QixRQUF3QixFQUNyQixNQUF1QjtRQUozQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFuR25DLDhCQUF5QixHQUFRLEVBQUUsQ0FBQztRQUNwQyxrQ0FBNkIsR0FBUSxFQUFFLENBQUM7UUFDeEMsc0JBQWlCLEdBQVEsRUFBRSxDQUFDO1FBQzVCLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFDckIsMEJBQXFCLEdBQVEsRUFBRSxDQUFDO1FBRWhDLGtCQUFhLEdBQUcsaUJBQWlCLENBQUM7UUFF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O1FBQ2pCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsSUFBSSxNQUFNLEVBQUU7WUFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsR0FBRyxFQUFFLENBQUM7U0FDOUM7SUFDSCxDQUFDOzs7WUFuekJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixzLzRCQUE2Qzs7YUFJOUM7OztZQVZRLGNBQWM7WUFDZCxXQUFXO1lBQ1gsWUFBWTtZQUhaLGVBQWU7WUFIZixjQUFjLHVCQXFIbEIsUUFBUTs7O21CQXRGVixLQUFLO3FCQUNMLEtBQUs7OEJBQ0wsS0FBSztpQ0FDTCxLQUFLO2tDQUNMLEtBQUs7b0NBQ0wsTUFBTTs0QkFDTixNQUFNOzZCQUNOLE1BQU07NEJBQ04sTUFBTTtnQ0FDTixNQUFNOzBCQUNOLE1BQU07MENBQ04sTUFBTTt5QkFDUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGhyb3dTdG10IH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xyXG5pbXBvcnQgeyBUSElTX0VYUFIgfSBmcm9tICdAYW5ndWxhci9jb21waWxlci9zcmMvb3V0cHV0L291dHB1dF9hc3QnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgRWRpdG9yQ29uZmlnIH0gZnJvbSAndmNvbXBseS1lZGl0b3InO1xyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9ucyB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb25zJztcclxuaW1wb3J0IHsgQ2F0ZWdvcnlMaXN0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jYXRlZ29yeUxpc3QnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25BbGVydCB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29uZmlybWF0aW9uLWFsZXJ0JztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEFkZFJpc2tTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvYWRkLXJpc2suc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVWlLaXRTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvdWkta2l0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtd29ya2Zsb3ctcmlzaycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtmbG93LXJpc2suY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3dvcmtmbG93LXJpc2suY29tcG9uZW50Lmxlc3MnLCAnLi4vZm9ybXMubGVzcyddLFxyXG4gIC8vIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmtmbG93Umlza0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3Q6IGFueSA9IFtdO1xyXG4gIHNlbGVjdGVkUmVzcG9uc2liaWxpdHlDZW50ZXJzOiBhbnkgPSBbXTtcclxuICBtaXRpZ2F0aW9uRGV0YWlsczogYW55ID0gW107XHJcbiAgb3duZXJzTGlzdDogYW55ID0gW107XHJcbiAgbm9uUmVtb3ZhYmxlVXNlcnNMaXN0OiBhbnkgPSBbXTtcclxuICBlZGl0RGV0YWlscyE6IGFueTtcclxuICBzbWlsZXlNZXNzYWdlID0gYFlvdSdyZSBBbGwgU2V0IWA7XHJcbiAgcmlza0RhdGEgITphbnk7XHJcbiAgYWN0aW9uQnV0dG9ucyA9IFtcclxuICAgIHsgYnV0dG9uVGV4dDogJ0FkZCBNb3JlIFJpc2tzJywgY2xhc3M6ICd3aGl0ZS1idG4nLCBpZDogJ2FkZE1vcmUnIH0sXHJcbiAgICB7IGJ1dHRvblRleHQ6ICdWaWV3IFJpc2snLCBjbGFzczogJ2JsdWUtYnRuJywgaWQ6ICd2aWV3Umlza3MnIH0sXHJcbiAgXTtcclxuICBzaWRlU2VsZWN0b3JFbGVtZW50czogYW55ID0gWydyYycsICdvd25lcicsICdvdmVyc2VlcicsICdjYXRlZ29yeSddO1xyXG4gIHNob3dTbWlsZXkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBtb2RlID0gJ0VESVQnO1xyXG4gIEBJbnB1dCgpIHJpc2tJZCA9ICcnO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRSaXNrVHlwZSA9ICdOT1JNQUwnXHJcbiAgQElucHV0KCkgbW92ZVRvUmVnaXN0ZXJNb2RlID0gJydcclxuICBASW5wdXQoKSBzZWNvbmRhcnlPcGVuUG9ydGFsID0gJyc7XHJcbiAgQE91dHB1dCgpIHNob3dDb25maXJtYXRpb25BbGVydCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcGlja2VyQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcG9wdWxhdGVPcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlV29ya2Zsb3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGRpc2Nvbm5lY3RSZWZyZXNoID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSByZWZyZXNoRm9ybSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5ASW5wdXQoKSBvcGVuZWRGcm9tID0gJydcclxuICBzY3JvbGxUb0JvdHRvbSA9IGZhbHNlO1xyXG4gIGNhdGVnb3J5TGlzdDogQ2F0ZWdvcnlMaXN0ID0ge1xyXG4gICAgc3RyYXRlZ2ljOiB7XHJcbiAgICAgIG5hbWU6ICdTVFJBVEVHSUMnLFxyXG4gICAgICBkYXRhOiBbXVxyXG4gICAgfSxcclxuICAgIG9wZXJhdGlvbmFsOiB7XHJcbiAgICAgIG5hbWU6ICdPUEVSQVRJT05BTCcsXHJcbiAgICAgIGRhdGE6IFtdXHJcbiAgICB9LFxyXG4gICAgY29tcGxpYW5jZToge1xyXG4gICAgICBuYW1lOiAnQ09NUExJQU5DRScsXHJcbiAgICAgIGRhdGE6IFtdXHJcbiAgICB9LFxyXG4gICAgb3RoZXJzOiB7XHJcbiAgICAgIG5hbWU6ICdPVEhFUlMnLFxyXG4gICAgICBkYXRhOiBbXVxyXG4gICAgfSxcclxuICB9O1xyXG4gIG92ZXJzZWVyc0xpc3Q6IGFueSA9IFtdO1xyXG4gIGFkbWluc0xpc3Q6IGFueSA9IFtdO1xyXG4gIG92ZXJzZWVyc0lkTGlzdDogYW55ID0gW107XHJcbiAgdGltZXpvbmUhOiBzdHJpbmc7XHJcbiAgZGF0ZSE6IERhdGU7XHJcbiAgcmlza05hbWVGb2N1cyA9IGZhbHNlO1xyXG4gIGFzc2Vzc21lbnRGb2N1cyA9IGZhbHNlO1xyXG4gIHJpc2tUeXBlQ2hhbmdlQWxsb3dlZCA9IGZhbHNlO1xyXG5cclxuXHJcbiAgcmlza0Zvcm06IGFueSA9IHtcclxuICAgIHJpc2tUeXBlIDonTk9STUFMJyxcclxuICAgIHRpdGxlOiAnJyxcclxuICAgIGRlc2NyaXB0aW9uOiAnJyxcclxuICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3Q6IFtdLFxyXG4gICAgb3duZXJzTGlzdDogW10sXHJcbiAgICBjYXRlZ29yeToge1xyXG4gICAgICB0eXBlOiAnc3RyYXRlZ2ljJyxcclxuICAgICAgc2VsZWN0ZWRDYXRlZ29yeTogJycsXHJcbiAgICB9LFxyXG4gICAgY2F0ZWdvcnlDdXN0b21UYWdzOiBbXSxcclxuICAgIG92ZXJzZWVyc0xpc3Q6IFtdLFxyXG4gICAgbWl0aWdhdGlvbjogMCxcclxuICAgIGFzc2Vzc21lbnRfZGVhZGxpbmVfZGF5czogMCxcclxuICAgIGhlYWRfaWRzOiBbXSxcclxuICAgIGFkZE92ZXJzZWVyOiBmYWxzZSxcclxuICAgIGFkZE1pdGlnYXRpb246IGZhbHNlLFxyXG4gICAgYWRkTWl0aWdhdGlvblBsYW46ZmFsc2UsXHJcbiAgICBtaXRpZ2F0aW9uRGVzY3JpcHRpb25QbGFuOiAnJyxcclxuICB9O1xyXG4gIGFwaVVybCA9ICcnO1xyXG4gIG1lbWJlcklkID0gMDtcclxuICBvcmdhbml6YXRpb25JZCA9IDA7XHJcblxyXG5cclxuICB1c2Vyc0xpc3RMb2FkZWQgPSBmYWxzZTtcclxuICBhZG1pbnNMaXN0TG9hZGVkID0gZmFsc2U7XHJcbiAgY2F0ZWdvcnlMaXN0TG9hZGVkID0gZmFsc2U7XHJcbiAgcmNMaXN0TG9hZGVkID0gZmFsc2U7XHJcblxyXG4gIHN1Ym1pdHRlZCA9IGZhbHNlO1xyXG5cclxuXHJcbiAgc2V0dGluZ3NJbmZvICE6IGFueTtcclxuXHJcbiAgbG9hZGVyID0gZmFsc2U7XHJcbi8vXHJcbmFjdGl2ZVNlbGVjdG9yID0gJyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByaXNrU2VydmljZTogQWRkUmlza1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgdWlLaXRTZXJ2aWNlOiBVaUtpdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlICBzbmFja0JhcjpTbmFja0JhclNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9uc1xyXG5cclxuICApIHtcclxuICAgIC8vIGlmIChjb25maWcpIHtcclxuICAgIC8vICAgdGhpcy5hcGlVcmwgPSBjb25maWcuYXBpVXJsO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy50aW1lem9uZSA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0VXNlclRpbWVab25lKCk7XHJcblxyXG4gIH1cclxuICBkZXNjcmlwdGlvbjogRWRpdG9yQ29uZmlnID0ge1xyXG4gICAgbW9kZTogJ3ByaW1lJyxcclxuICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcclxuICAgIGxpbms6IHRydWUsXHJcbiAgICBwbGFjZWhvbGRlcjogJ0Rlc2NyaWJlIHRoZSByaXNrJyxcclxuICB9O1xyXG5cclxuICBtaXRpZ2F0aW9uRGVzY3JpcHRpb25QbGFuOiBFZGl0b3JDb25maWcgPSB7XHJcbiAgICBtb2RlOiAncHJpbWUnLFxyXG4gICAgY29sb3JQYWxldHRlOiB0cnVlLFxyXG4gICAgbGluazogdHJ1ZSxcclxuICAgIHBsYWNlaG9sZGVyOiAnRGVzY3JpYmUgdGhlIHJlY29tbWVuZGVkIG1pdGlnYXRpb24gUGxhbnMnXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKVxyXG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy5nZXRBZG1pbnNMaXN0KCk7XHJcbiAgICB0aGlzLmdldFJDTGlzdCgpO1xyXG4gICAgdGhpcy5nZXRPd25lcnNMaXN0KCk7XHJcbiAgICB0aGlzLmdldENhdGVnb3J5TGlzdCgpO1xyXG4gICAgdGhpcy5nZXRTZXR0aW5nc0luZm8oKTtcclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdDUkVBVEUnKSB7XHJcbiAgICAgIHRoaXMub3JnYW5pemF0aW9uSWQgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldE9yZ2FuaXphdGlvbklkKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm1lbWJlcklkID0gdGhpcy5hdXRoU2VydmljZS5nZXRNZW1iZXJJZCgpO1xyXG4gICAgY29uc29sZS5sb2coXCJtZW1iZXIgaWQgb2YgbG9nZ2VkIGluIHVzZXJcIiwgdGhpcy5tZW1iZXJJZClcclxuICAgIGlmKHRoaXMuc2Vjb25kYXJ5T3BlblBvcnRhbCAhPT0gJ09USEVSJyAmJiB0aGlzLm1vZGUgIT09ICdFRElUJyl7XHJcbiAgICAgIHRoaXMubm9uUmVtb3ZhYmxlVXNlcnNMaXN0LnB1c2godGhpcy5tZW1iZXJJZCk7XHJcbiAgICB9XHJcbiBcclxuXHJcbiAgICB0aGlzLmNoZWNrV2hldGhlckFsbExpc3RzTG9hZGVkKCk7XHJcbiAgICBpZih0aGlzLm9wZW5lZEZyb20gPT09ICdSRVBPUlRFRF9SSVNLJyl7XHJcbiAgICAgIHRoaXMucmlza0Zvcm0ucmlza1R5cGUgPSAnUkVQT1JURUQnO1xyXG4gICAgICB0aGlzLnJpc2tUeXBlQ2hhbmdlQWxsb3dlZCA9IGZhbHNlO1xyXG4gICAgfWVsc2UgaWYodGhpcy5vcGVuZWRGcm9tID09PSAnTU9WRV9UT19SRUdJU1RFUicpe1xyXG4gICAgICB0aGlzLnJpc2tGb3JtLnJpc2tUeXBlID0gJ05PUk1BTCc7XHJcbiAgICAgIHRoaXMucmlza1R5cGVDaGFuZ2VBbGxvd2VkID0gZmFsc2U7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5zZXRSaXNrVHlwZUJhc2VkT25TdWJzY3JpcHRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBzZXRSaXNrVHlwZUJhc2VkT25TdWJzY3JpcHRpb24oKXtcclxuICAgIGlmKHRoaXMub3BlbmVkRnJvbSA9PT0gJ1JFUE9SVEVEX1JJU0snKXtcclxuICAgICAgdGhpcy5yaXNrRm9ybS5yaXNrVHlwZSA9ICdSRVBPUlRFRCc7XHJcbiAgICB9XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldFVzZXJJbmZvKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczphbnkpID0+IHtcclxuICAgICAgICBpZihyZXMgJiYgcmVzPy5wZXJtaXNzaW9uKXtcclxuICAgICAgICAgIGNvbnN0IHBlcm1pc3Npb24gPSBKU09OLnBhcnNlKHJlcz8ucGVybWlzc2lvbilcclxuICAgICAgICAgIGlmKHRoaXMuYXV0aFNlcnZpY2U/LmlzQWRtaW4oKSB8fCB0aGlzLmF1dGhTZXJ2aWNlPy5pc0tleUFkbWluKCkpe1xyXG4gICAgICAgICAgICB0aGlzLnJpc2tUeXBlQ2hhbmdlQWxsb3dlZCA9IHRydWU7XHJcbiAgICAgICAgICB9ZWxzZSBpZih0aGlzLmF1dGhTZXJ2aWNlLmlzTWFuYWdlcigpKXtcclxuICAgICAgICAgICAgaWYocGVybWlzc2lvbj8uTVJJU0sgPT09IDEpe1xyXG4gICAgICAgICAgICAgIHRoaXMucmlza1R5cGVDaGFuZ2VBbGxvd2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgdGhpcy5yaXNrVHlwZUNoYW5nZUFsbG93ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLnJpc2tGb3JtLnJpc2tUeXBlPSdSRVBPUlRFRCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1lbHNlIGlmKHRoaXMuYXV0aFNlcnZpY2UuaXNVc2VyKCkpe1xyXG4gICAgICAgICAgICB0aGlzLnJpc2tUeXBlQ2hhbmdlQWxsb3dlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnJpc2tGb3JtLnJpc2tUeXBlPSdSRVBPUlRFRCc7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5yaXNrVHlwZUNoYW5nZUFsbG93ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5yaXNrRm9ybS5yaXNrVHlwZT0nUkVQT1JURUQnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYocmVzICYmIHJlcz8ucm9sZUFjdGlvbnMpe1xyXG4gICAgICAgICAgY29uc3QgbW9kdWxlSW5kZXggPSByZXMucm9sZUFjdGlvbnMuZmluZEluZGV4KChlbGVtZW50OmFueSk9PmVsZW1lbnQubW9kdWxlTmFtZT09IFwicmlza1wiKTtcclxuICAgICAgICAgIGNvbnN0IHJpc2tQZXJtaXNzaW9ucyA9IHJlcy5yb2xlQWN0aW9uc1ttb2R1bGVJbmRleF0uc3ViTW9kdWxlWzFdLnBlcm1pc3Npb25zO1xyXG4gICAgICAgICAgcmlza1Blcm1pc3Npb25zLmZvckVhY2goKHBlcm1pc3Npb246YW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmKHBlcm1pc3Npb24ubmFtZSA9PSdtYW5hZ2Ugcmlza3MnICYmIHBlcm1pc3Npb24uZW5hYmxlKXtcclxuICAgICAgICAgICAgICB0aGlzLnJpc2tUeXBlQ2hhbmdlQWxsb3dlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5yaXNrRm9ybS5yaXNrVHlwZT0nTk9STUFMJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0aGlzLm1vZGUgPT09ICdFRElUJyl7XHJcbiAgICAgICAgICB0aGlzLnJpc2tGb3JtLnJpc2tUeXBlID0gJ05PUk1BTCc7XHJcbiAgICAgICAgICB0aGlzLnJpc2tUeXBlQ2hhbmdlQWxsb3dlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlUmlzayh0eXBlOnN0cmluZyl7XHJcbiAgICAgIHRoaXMucmlza0Zvcm0gPSB7Li4udGhpcy5yaXNrRm9ybSwuLi57cmlza1R5cGU6dHlwZX19XHJcbiAgICAgIHRoaXMuc2V0UG9wdXBCdXR0b25zKCk7XHJcbiAgICAgIGlmKHR5cGUgPT09J1JFUE9SVEVEJyl7XHJcbiAgICAgICAgdGhpcy5yaXNrRm9ybS5hc3Nlc3NtZW50X2RlYWRsaW5lX2RheXMgPSAwO1xyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgc2V0UG9wdXBCdXR0b25zKCl7XHJcbiAgICBpZih0aGlzLnJpc2tGb3JtLnJpc2tUeXBlID09PSAnUkVQT1JURUQnKXtcclxuICAgICAgdGhpcy5hY3Rpb25CdXR0b25zID0gW1xyXG4gICAgICAgIHsgYnV0dG9uVGV4dDogJ0FkZCBNb3JlIFJpc2tzJywgY2xhc3M6ICd3aGl0ZS1idG4nLCBpZDogJ2FkZE1vcmUnIH0sXHJcbiAgICAgICAgeyBidXR0b25UZXh0OiAnVmlldyBSZXBvcnRlZCBSaXNrcycsIGNsYXNzOiAnYmx1ZS1idG4nLCBpZDogJ21hbmFnZVJlcG9ydGVkUmlzaycgfSxcclxuICAgICAgXTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmFjdGlvbkJ1dHRvbnMgPSBbXHJcbiAgICAgICAgeyBidXR0b25UZXh0OiAnQWRkIE1vcmUgUmlza3MnLCBjbGFzczogJ3doaXRlLWJ0bicsIGlkOiAnYWRkTW9yZScgfSxcclxuICAgICAgICB7IGJ1dHRvblRleHQ6ICdWaWV3IFJpc2snLCBjbGFzczogJ2JsdWUtYnRuJywgaWQ6ICd2aWV3Umlza3MnIH0sXHJcbiAgICAgIF07XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFJpc2tEZXRhaWxzKHJpc2tJZDogYW55KSB7XHJcblxyXG4gICAgdGhpcy5yaXNrU2VydmljZS5nZXRSaXNrRGV0YWlsKHJpc2tJZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmVkaXREZXRhaWxzID0gY2xvbmVEZWVwKHJlcyk7XHJcbiAgICAgIHRoaXMucmlza0Zvcm0udGl0bGUgPSByZXMudGl0bGU7XHJcbiAgICAgIGlmKHRoaXMub3BlbmVkRnJvbSA9PT0gJ01PVkVfVE9fUkVHSVNURVInKXtcclxuICAgICAgICB0aGlzLnJpc2tGb3JtLnJpc2tUeXBlID0gJ05PUk1BTCc7XHJcbiAgICAgICAgdGhpcy5yaXNrVHlwZUNoYW5nZUFsbG93ZWQgPSBmYWxzZTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5yaXNrRm9ybS5yaXNrVHlwZSA9IHJlcz8ucmlza190eXBlPz8nUkVQT1JURUQnXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMucmlza0Zvcm0uZGVzY3JpcHRpb24gPSByZXMuZGVzY3JpcHRpb247XHJcbiAgICAgIHRoaXMucmlza0Zvcm0ucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdCA9IHRoaXMuc2V0TGlzdCh0aGlzLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QsIHJlcy5yY19pZCwgJ2l0ZW1faWQnKTtcclxuICAgICAgdGhpcy5yaXNrRm9ybS5vd25lcnNMaXN0ID0gdGhpcy5zZXRMaXN0KHRoaXMub3duZXJzTGlzdCwgcmVzLm93bmVyLCAnbWVtYmVyX2lkJyk7XHJcbiAgICAgIHRoaXMucmlza0Zvcm0ubWl0aWdhdGlvbkRlc2NyaXB0aW9uUGxhbiA9IHJlcy5taXRpZ2F0aW9uRGVzY3JpcHRpb25QbGFuO1xyXG4gICAgICBjb25zdCB0eXBlID0gdGhpcy5zZXRDYXRlZ29yeVR5cGUocmVzLmNhdGVnb3J5X3R5cGVbMF0pO1xyXG4gICAgICBjb25zdCBjYXRlZ29yeUluZGV4ID0gdGhpcy5jYXRlZ29yeUxpc3RbdHlwZV0/LmRhdGEuZmluZEluZGV4KChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQuY2F0ZWdvcnlfaWQgPT0gcmVzLmNhdGVnb3J5WzBdKTtcclxuICAgICAgaWYgKGNhdGVnb3J5SW5kZXggIT0gLTEpIHtcclxuICAgICAgICB0aGlzLnJpc2tGb3JtLmNhdGVnb3J5ID0ge1xyXG4gICAgICAgICAgdHlwZSxcclxuICAgICAgICAgIHNlbGVjdGVkQ2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcnlMaXN0W3R5cGVdPy5kYXRhW2NhdGVnb3J5SW5kZXhdLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5yaXNrRm9ybS5jYXRlZ29yeUN1c3RvbVRhZ3MgPSByZXMuY2F0ZWdvcnlfY3VzdG9tX3RhZztcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5yaXNrRm9ybS5vdmVyc2VlcnNMaXN0ID0gdGhpcy5zZXRMaXN0KHRoaXMub3duZXJzTGlzdCwgcmVzLm1hbmFnZV9vdmVyc2lnaHQsICdtZW1iZXJfaWQnKTtcclxuICAgICAgdGhpcy5yaXNrRm9ybS5taXRpZ2F0aW9uID0gcmVzLm1pdGlnYXRpb247XHJcbiAgICAgIHRoaXMucmlza0Zvcm0uYXNzZXNzbWVudF9kZWFkbGluZV9kYXlzID0gcmVzLmFzc2Vzc21lbnRfZGVhZGxpbmVfZGF5cztcclxuICAgICAgdGhpcy5yaXNrRm9ybS5hZGRPdmVyc2VlciA9IChyZXMubWFuYWdlX292ZXJzaWdodC5sZW5ndGggPiAwKSA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgdGhpcy5yaXNrRm9ybS5hZGRNaXRpZ2F0aW9uID0gKHJlcy5taXRpZ2F0aW9uKSA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgdGhpcy5tZW1iZXJJZCA9IHJlcy5tZW1iZXJfaWQ7XHJcbiAgICAgIHRoaXMub3JnYW5pemF0aW9uSWQgPSByZXMub3JnYW5pc2F0aW9uX2lkO1xyXG4gICAgICB0aGlzLnJpc2tGb3JtLmhlYWRfaWRzID0gcmVzPy5oZWFkX2lkcyA/IHJlcz8uaGVhZF9pZHMgOltdO1xyXG4gICAgICB0aGlzLnJpc2tGb3JtLm1pdGlnYXRpb25EZXNjcmlwdGlvblBsYW4gPSByZXM/Lm1pdGlnYXRpb25fcGxhbl9yZWNvbW1lbmRhdGlvbiA/PyAnJztcclxuICAgICAgdGhpcy5yaXNrRm9ybS5hZGRNaXRpZ2F0aW9uUGxhbiAgPSByZXM/Lm1pdGlnYXRpb25fcGxhbl9yZWNvbW1lbmRhdGlvbi50cmltKCk/Lmxlbmd0aCA/IHRydWU6ZmFsc2U7XHJcbiAgICAgIGlmIChyZXMuYXNzZXNzbWVudF9kYXRlX3RpbWVzdGFtcCkge1xyXG4gICAgICAgIHRoaXMuZGF0ZSA9IG5ldyBEYXRlKHJlcy5hc3Nlc3NtZW50X2RhdGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChyZXMuSWZBc3Nlc3NtZW50RG9uZSA+IDApIHtcclxuICAgICAgICByZXMuYWxsX293bmVyX2Fyci5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmFzc2Vzc21lbnRfZG9uZSA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5ub25SZW1vdmFibGVVc2Vyc0xpc3QucHVzaChlbGVtZW50Lm1lbWJlcl9pZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYodGhpcy5zZWNvbmRhcnlPcGVuUG9ydGFsID09PSAnT1RIRVInICYmIHRoaXMubW9kZSA9PT0gJ0VESVQnKXtcclxuICAgICAgICB0aGlzLm5vblJlbW92YWJsZVVzZXJzTGlzdCA9IEFycmF5LmZyb20obmV3IFNldDxhbnlbXT4oWy4uLnRoaXMubm9uUmVtb3ZhYmxlVXNlcnNMaXN0LC4uLnJlcz8ub3duZXJdKSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYodGhpcy5zZWNvbmRhcnlPcGVuUG9ydGFsICE9PSAnT1RIRVInICYmIHRoaXMubW9kZSA9PT0gJ0VESVQnKXtcclxuICAgICAgICB0aGlzLm5vblJlbW92YWJsZVVzZXJzTGlzdCA9IEFycmF5LmZyb20obmV3IFNldDxhbnlbXT4oWy4uLnRoaXMubm9uUmVtb3ZhYmxlVXNlcnNMaXN0LC4uLlt0aGlzLmF1dGhTZXJ2aWNlLmdldE1lbWJlcklkKCldXSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHJlcz8ucmlza190eXBlID09PSAnTk9STUFMJyl7XHJcbiAgICAgICAgdGhpcy5ub25SZW1vdmFibGVVc2Vyc0xpc3QgPSBBcnJheS5mcm9tKG5ldyBTZXQ8YW55W10+KFsuLi50aGlzLm5vblJlbW92YWJsZVVzZXJzTGlzdCwuLi5bdGhpcy5hdXRoU2VydmljZS5nZXRNZW1iZXJJZCgpXV0pKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XHJcbiAgICB9LCBlcnIgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcG9wdWxhdGVPcHRpb25hbEZpZWxkcygpe1xyXG4gICAgY29uc3QgYWN0aXZhdGVkT3B0aW9ucyA9IFtdO1xyXG4gICAgaWYgKHRoaXMucmlza0Zvcm0uYWRkTWl0aWdhdGlvbil7YWN0aXZhdGVkT3B0aW9ucy5wdXNoKCdNSVRJR0FUSU9OJyk7fVxyXG4gICAgaWYgKHRoaXMucmlza0Zvcm0uYWRkT3ZlcnNlZXIpe2FjdGl2YXRlZE9wdGlvbnMucHVzaCgnT1ZFUlNFRVInKTt9XHJcbiAgICBpZih0aGlzLnJpc2tGb3JtLmFkZE1pdGlnYXRpb25QbGFuKXthY3RpdmF0ZWRPcHRpb25zLnB1c2goJ01JVElHQVRJT05fUExBTicpfVxyXG4gICAgdGhpcy5wb3B1bGF0ZU9wdGlvbi5lbWl0KGFjdGl2YXRlZE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2F0ZWdvcnlUeXBlKHR5cGU6IGFueSkge1xyXG4gICAgaWYgKHR5cGUgPT09IDEpIHtcclxuICAgICAgcmV0dXJuICdzdHJhdGVnaWMnO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAyKSB7XHJcbiAgICAgIHJldHVybiAnb3BlcmF0aW9uYWwnO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAzKSB7XHJcbiAgICAgIHJldHVybiAnY29tcGxpYW5jZSc7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09IDApIHtcclxuICAgICAgcmV0dXJuICdvdGhlcnMnO1xyXG4gICAgfSBlbHNlIHsgcmV0dXJuICdzdHJhdGVnaWMnOyB9XHJcbiAgfVxyXG4gIGdldFJDTGlzdCgpIHtcclxuICAgIGNvbnN0IHJjQXJyYXk6IGFueVtdID0gW107XHJcbiAgICB0aGlzLnJpc2tTZXJ2aWNlLmdldFJlc3BvbnNpYmlsaXR5Q2VudGVyTGlzdChyY0FycmF5KS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0ID0gcmVzO1xyXG4gICAgICB0aGlzLnJjTGlzdExvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgfSwgZXJyID0+IHtcclxuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICB0aGlzLnJjTGlzdExvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRDYXRlZ29yeUxpc3QoKSB7XHJcbiAgICB0aGlzLnJpc2tTZXJ2aWNlLmdldENhdGVnb3J5TGlzdCgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5jYXRlZ29yeUxpc3Quc3RyYXRlZ2ljLmRhdGEgPSByZXMuc3RyYXRlZ2ljX2FycjtcclxuICAgICAgdGhpcy5jYXRlZ29yeUxpc3Qub3BlcmF0aW9uYWwuZGF0YSA9IHJlcy5vcGVyYXRpb25hbF9hcnI7XHJcbiAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0LmNvbXBsaWFuY2UuZGF0YSA9IHJlcy5jb21wbGlhbmNlX2FycjtcclxuICAgICAgdGhpcy5jYXRlZ29yeUxpc3Qub3RoZXJzLmRhdGEgPSByZXMub3RoZXJzX2FycjtcclxuICAgICAgdGhpcy5jYXRlZ29yeUxpc3RMb2FkZWQgPSB0cnVlO1xyXG5cclxuICAgIH0sIGVyciA9PiB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgICAgdGhpcy5jYXRlZ29yeUxpc3RMb2FkZWQgPSB0cnVlO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldE93bmVyc0xpc3QoKSB7XHJcbiAgICB0aGlzLnJpc2tTZXJ2aWNlLmdldE9yZ2FuaXphdGlvblVzZXJzKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLm93bmVyc0xpc3QgPSByZXM7XHJcblxyXG4gICAgICB0aGlzLnVzZXJzTGlzdExvYWRlZCA9IHRydWU7XHJcbiAgICAgIGNvbnN0IGluZGV4OiBudW1iZXIgPSByZXMuZmluZEluZGV4KCh1c2VyOiBhbnkpID0+IHVzZXIubWVtYmVyX2lkID09PSB0aGlzLm1lbWJlcklkKTtcclxuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gIGlmKHRoaXMuc2Vjb25kYXJ5T3BlblBvcnRhbCAhPT0gJ09USEVSJyAmJiB0aGlzLm1vZGUgIT09ICdFRElUJyl7XHJcbiAgICB0aGlzLnJpc2tGb3JtLm93bmVyc0xpc3QucHVzaChyZXNbaW5kZXhdKTtcclxuICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICB9LCBlcnIgPT4ge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XHJcbiAgICAgIHRoaXMudXNlcnNMaXN0TG9hZGVkID0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBnZXRBZG1pbnNMaXN0KCkge1xyXG4gICAgdGhpcy5yaXNrU2VydmljZS5nZXRBZG1pbktleUFkbWluTGlzdCgpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLmFkbWluc0xpc3QgPSByZXM7XHJcbiAgICAgIHRoaXMuYWRtaW5zTGlzdExvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgfSwgZXJyID0+IHtcclxuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICB0aGlzLmFkbWluc0xpc3RMb2FkZWQgPSB0cnVlO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2V0dGluZ3NJbmZvKCkge1xyXG5cclxuICAgIHRoaXMucmlza1NlcnZpY2UuZ2V0Umlza1NldHRpbmdEZXRhaWxzKCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3NJbmZvID0gcmVzO1xyXG4gICAgICB0aGlzLmhpZGVPcHRpb25hbEZpZWxkcyhyZXMpO1xyXG4gICAgICB0aGlzLm1pdGlnYXRpb25EZXRhaWxzID0gcmVzPy5yaXNrX21pdGlnYXRpb25fcHJpb3JpdHk/Lm1pdGlnYXRpb25fZGF0YTtcclxuICAgICAgbGV0IGRlZmF1bHRNaXRpZ2F0aW9uID0gIHRoaXMubWl0aWdhdGlvbkRldGFpbHM/LmZpbHRlcigoZWxlOmFueSkgPT4gZWxlPy5taXRpZ2F0aW9uX25hbWUgPT09IFwiTE9XXCIpO1xyXG4gICAgICBpZihkZWZhdWx0TWl0aWdhdGlvbj8ubGVuZ3RoKXtcclxuICAgICAgICB0aGlzLnJpc2tGb3JtLm1pdGlnYXRpb24gPSBkZWZhdWx0TWl0aWdhdGlvblswXT8ubWl0aWdhdGlvbl9pZDtcclxuICAgICAgfVxyXG5cclxuICAgIH0sIGVyciA9PiB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGhpZGVPcHRpb25hbEZpZWxkcyhyZXM6YW55KXtcclxuICAgIGlmKHJlcz8ucmlza19hdXRvbWF0aW9uX2VuYWJsZSA9PT0gMSl7XHJcbiAgICAgIHRoaXMuaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zLmVtaXQoWydNSVRJR0FUSU9OJ10pO1xyXG4gICAgfVxyXG4gICAgICAgXHJcbiAgfVxyXG5cclxuXHJcbiAgY2hlY2tXaGV0aGVyQWxsTGlzdHNMb2FkZWQoKSB7XHJcbiAgICBpZiAodGhpcy5yY0xpc3RMb2FkZWQgJiYgdGhpcy51c2Vyc0xpc3RMb2FkZWQgJiYgdGhpcy5hZG1pbnNMaXN0TG9hZGVkICYmIHRoaXMuY2F0ZWdvcnlMaXN0TG9hZGVkKSB7XHJcblxyXG4gICAgICB0aGlzLnNldE92ZXJzZWVyc0xpc3QoKTtcclxuICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgICAgdGhpcy5nZXRSaXNrRGV0YWlscyh0aGlzLnJpc2tJZCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG5cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGVja1doZXRoZXJBbGxMaXN0c0xvYWRlZCgpO1xyXG4gICAgICB9LCAzMDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0T3ZlcnNlZXJzTGlzdCgpIHtcclxuXHJcbiAgICBsZXQgaWRzOiBhbnkgPSBbXTtcclxuICAgIGxldCByY093bmVySWRzOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IHVzZXJzID0gY2xvbmVEZWVwKHRoaXMucmlza0Zvcm0ub3duZXJzTGlzdCk7XHJcbiAgICBjb25zdCByZXNwb25zaWJpbGl0eUNlbnRlcnMgPSBjbG9uZURlZXAodGhpcy5yaXNrRm9ybS5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0KTtcclxuICAgIGNvbnN0IGFkbWlucyA9IGNsb25lRGVlcCh0aGlzLmFkbWluc0xpc3QpO1xyXG4gICAgY29uc3QgYWxsVXNlcnMgPSBjbG9uZURlZXAodGhpcy5vd25lcnNMaXN0KTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGFsbFVzZXJzLCB0aGlzLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QpXHJcbiAgICB1c2Vycy5mb3JFYWNoKCh1c2VyOiBhbnkpID0+IHtcclxuICAgICAgaWRzLnB1c2godXNlci5tZW1iZXJfaWQpO1xyXG4gICAgfSk7XHJcbiAgICBhZG1pbnMuZm9yRWFjaCgodXNlcjogYW55KSA9PiB7XHJcbiAgICAgIGlkcy5wdXNoKHVzZXIubWVtYmVyX2lkKTtcclxuICAgIH0pO1xyXG4gICAgcmVzcG9uc2liaWxpdHlDZW50ZXJzLmZvckVhY2goKHJjOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgYXJ5ID0gWy4uLnJjLm93bmVyLCAuLi5yYy5wYXJlbnRfb3duZXJzXTtcclxuICAgICAgaWRzID0gWy4uLmlkcywgLi4uYXJ5XTtcclxuICAgICAgcmNPd25lcklkcyA9IFsuLi5yY093bmVySWRzLCAuLi5hcnldO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWRzID0gWy4uLm5ldyBTZXQoaWRzKV07XHJcbiAgICByY093bmVySWRzID0gWy4uLm5ldyBTZXQocmNPd25lcklkcyldO1xyXG4gICAgdGhpcy5yaXNrRm9ybS5oZWFkX2lkcyA9IHJjT3duZXJJZHM7XHJcbiAgICB0aGlzLm92ZXJzZWVyc0xpc3QgPSBhbGxVc2Vycy5maWx0ZXIoKHVzZXI6IGFueSkgPT4gIWlkcy5pbmNsdWRlcyh1c2VyLm1lbWJlcl9pZCkpO1xyXG4gICAgdGhpcy5yaXNrRm9ybS5vdmVyc2VlcnNMaXN0ID0gdGhpcy5yaXNrRm9ybS5vdmVyc2VlcnNMaXN0LmZpbHRlcigodXNlcjogYW55KSA9PiAhaWRzLmluY2x1ZGVzKHVzZXIubWVtYmVyX2lkKSk7XHJcbiAgfVxyXG5cclxuICBhY3RpdmF0ZVNlbGVjdG9yKHR5cGU6IGFueSwgZXZlbnQ6IGJvb2xlYW4pe1xyXG4gICAgdGhpcy5hY3RpdmVTZWxlY3RvciA9IGV2ZW50ID8gdHlwZSA6ICcnO1xyXG4gICAgaWYgKFsncmMnLCAnb3duZXInLCAnb3ZlcnNlZXInLCAnY2F0ZWdvcnknXS5pbmNsdWRlcyh0eXBlKSl7XHJcbiAgICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBhY3RpdmVEZXNlbGVjdG9yKCl7XHJcbiAgICB0aGlzLmFjdGl2ZVNlbGVjdG9yID0gJyc7XHJcbiAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdChmYWxzZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcmVtb3ZlKHR5cGU6IGFueSwgZXZlbnQ6IGFueSkge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ3JjJzpcclxuICAgICAgICBjb25zdCByY0luZGV4ID0gdGhpcy5yaXNrRm9ybS5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0LmZpbmRJbmRleCgocmM6IGFueSkgPT4gcmMucmNfaWQgPT0gZXZlbnQucmNfaWQpO1xyXG4gICAgICAgIHRoaXMucmlza0Zvcm0ucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdC5zcGxpY2UocmNJbmRleCwgMSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ293bmVyJzpcclxuICAgICAgICBjb25zdCBvd25lckluZGV4ID0gdGhpcy5yaXNrRm9ybS5vd25lcnNMaXN0LmZpbmRJbmRleCgob3duZXI6IGFueSkgPT4gb3duZXIubWVtYmVyX2lkID09IGV2ZW50Lm1lbWJlcl9pZCk7XHJcbiAgICAgICAgdGhpcy5yaXNrRm9ybS5vd25lcnNMaXN0LnNwbGljZShvd25lckluZGV4LCAxKTtcclxuICAgICAgICB0aGlzLnNldE92ZXJzZWVyc0xpc3QoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnb3ZlcnNlZXInOlxyXG4gICAgICAgIGNvbnN0IG92ZXJzZWVySW5kZXggPSB0aGlzLnJpc2tGb3JtLm92ZXJzZWVyc0xpc3QuZmluZEluZGV4KChvdmVyc2VlcjogYW55KSA9PiBvdmVyc2Vlci5tZW1iZXJfaWQgPT0gZXZlbnQubWVtYmVyX2lkKTtcclxuICAgICAgICB0aGlzLnJpc2tGb3JtLm92ZXJzZWVyc0xpc3Quc3BsaWNlKG92ZXJzZWVySW5kZXgsIDEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjYXRlZ29yeSc6XHJcbiAgICAgICAgdGhpcy5yaXNrRm9ybS5jYXRlZ29yeSA9IHtcclxuICAgICAgICAgIHR5cGU6ICdzdHJhdGVnaWMnLFxyXG4gICAgICAgICAgc2VsZWN0ZWRDYXRlZ29yeTogJydcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMucmlza0Zvcm0uY2F0ZWdvcnlDdXN0b21UYWdzID0gW107XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgc2F2ZVNlbGVjdGVkUkNMaXN0KHJjSWRzOiBhbnkpIHtcclxuICAgIHRoaXMuYWN0aXZlRGVzZWxlY3RvcigpO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRSQyA9IHRoaXMuc2V0TGlzdCh0aGlzLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QsIHJjSWRzLCAnaXRlbV9pZCcpO1xyXG4gICAgdGhpcy5yaXNrRm9ybS5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0ID0gc2VsZWN0ZWRSQztcclxuICAgIHRoaXMuc2V0T3ZlcnNlZXJzTGlzdCgpO1xyXG4gICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZVNlbGVjdGVkQ2F0ZWdvcnkoY2F0ZWdvcnk6IGFueSkge1xyXG4gICAgdGhpcy5hY3RpdmVEZXNlbGVjdG9yKCk7XHJcbiAgICB0aGlzLnJpc2tGb3JtLmNhdGVnb3J5ID0gY2F0ZWdvcnk7XHJcbiAgICBjb25zdCBjdXN0b21UYWdzOiBhbnkgPSBbXTtcclxuICAgIGNhdGVnb3J5LnNlbGVjdGVkQ2F0ZWdvcnkuY3VzdG9tX3RhZy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgdGFnID0ge1xyXG4gICAgICAgIGN1c3RvbV90YWdfbmFtZTogZWxlbWVudC50YWdOYW1lLFxyXG4gICAgICAgIGN1c3RvbV90YWdfdmFsdWU6ICcnXHJcbiAgICAgIH07XHJcbiAgICAgIGN1c3RvbVRhZ3MucHVzaCh0YWcpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnJpc2tGb3JtLmNhdGVnb3J5Q3VzdG9tVGFncyA9IGN1c3RvbVRhZ3M7XHJcbiAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBzYXZlU2VsZWN0ZWRPd25lcnNMaXN0KGlkczogYW55KSB7XHJcbiAgICB0aGlzLmFjdGl2ZURlc2VsZWN0b3IoKTtcclxuICAgIGNvbnN0IHNlbGVjdGVkT3duZXJzID0gdGhpcy5zZXRMaXN0KHRoaXMub3duZXJzTGlzdCwgaWRzLCAnbWVtYmVyX2lkJyk7XHJcbiAgICB0aGlzLnJpc2tGb3JtLm93bmVyc0xpc3QgPSBzZWxlY3RlZE93bmVycztcclxuICAgIHRoaXMuc2V0T3ZlcnNlZXJzTGlzdCgpO1xyXG4gICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZVNlbGVjdGVkT3ZlcnNlZXJzTGlzdChpZHM6IGFueSkge1xyXG4gICAgdGhpcy5hY3RpdmVEZXNlbGVjdG9yKCk7XHJcbiAgICBjb25zdCBzZWxlY3RlZE92ZXJzZWVycyA9IHRoaXMuc2V0TGlzdCh0aGlzLm92ZXJzZWVyc0xpc3QsIGlkcywgJ21lbWJlcl9pZCcpO1xyXG4gICAgdGhpcy5yaXNrRm9ybS5vdmVyc2VlcnNMaXN0ID0gc2VsZWN0ZWRPdmVyc2VlcnM7XHJcbiAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdChmYWxzZSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGNoYW5nZVJpc2tBc3Nlc3NtZW50KG5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgc3dpdGNoIChuYW1lKSB7XHJcbiAgICAgIGNhc2UgJ3N1YnRyYWN0JzpcclxuICAgICAgICBpZiAodGhpcy5yaXNrRm9ybS5hc3Nlc3NtZW50X2RlYWRsaW5lX2RheXMgPiAxKSB7XHJcbiAgICAgICAgICB0aGlzLnJpc2tGb3JtLmFzc2Vzc21lbnRfZGVhZGxpbmVfZGF5cyAtPSAxO1xyXG4gICAgICAgICAgdGhpcy5zZXREYXRlKHRoaXMucmlza0Zvcm0uYXNzZXNzbWVudF9kZWFkbGluZV9kYXlzKTtcclxuICAgICAgICAgIC8vIHRoaXMucmlza0Fzc2Vzc21lbnREZWFkbGluZURhdGUgPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2FkZCc6XHJcbiAgICAgICAgdGhpcy5yaXNrRm9ybS5hc3Nlc3NtZW50X2RlYWRsaW5lX2RheXMgKz0gMTtcclxuICAgICAgICB0aGlzLnNldERhdGUodGhpcy5yaXNrRm9ybS5hc3Nlc3NtZW50X2RlYWRsaW5lX2RheXMpO1xyXG4gICAgICAgIC8vIHRoaXMucmlza0Fzc2Vzc21lbnREZWFkbGluZURhdGUgPSAnJztcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICB9XHJcbiAgfVxyXG4gIHNldERhdGUoZGF5czogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAoZGF5cyA+PSAwKSB7XHJcbiAgICAgIGNvbnN0IG1pbGlzZWNvbmRzID0gZGF5cyAqIDg2NDAwICogMTAwMDtcclxuICAgICAgY29uc3QgZDogbnVtYmVyID0gbmV3IERhdGUoXHJcbiAgICAgICAgbmV3IERhdGUoRGF0ZS5ub3coKSkudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywge1xyXG4gICAgICAgICAgdGltZVpvbmU6IHRoaXMudGltZXpvbmUsXHJcbiAgICAgICAgfSlcclxuICAgICAgKS5nZXRUaW1lKCk7XHJcbiAgICAgIHRoaXMuZGF0ZSA9IG5ldyBEYXRlKGQgKyBtaWxpc2Vjb25kcyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoYW5nZVJpc2tBc3Nlc3NtZW50RGVhZGxpbmUoZXZlbnQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKCFpc05hTihldmVudCkpIHtcclxuICAgICAgdGhpcy5zZXREYXRlKGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcbiAgc2V0TGlzdChsaXN0OiBhbnlbXSwgaWRzOiBhbnlbXSwga2V5OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGRhdGE6IGFueSA9IFtdO1xyXG4gICAgbGlzdC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgaWYgKGlkcy5pbmNsdWRlcyhlbGVtZW50W2tleV0pKSB7XHJcbiAgICAgICAgZGF0YS5wdXNoKGVsZW1lbnQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuSWRzKGxpc3Q6IGFueVtdLCBrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIGxpc3QubWFwKGVsZSA9PiB7IGlmIChlbGVba2V5XSkgeyByZXR1cm4gZWxlW2tleV07IH0gfSk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXRSaXNrKCkge1xyXG4gICAgdGhpcy5zZXRQb3B1cEJ1dHRvbnMoKTtcclxuICAgIGNvbnN0IHZhbGlkID0gdGhpcy52YWxpZGF0ZVJpc2soKTtcclxuICAgIGlmICghdmFsaWQpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm1vZGUgPT09ICdFRElUJyAmJiB0aGlzLmVkaXREZXRhaWxzLklmQXNzZXNzbWVudERvbmUgPiAwKSB7XHJcbiAgICAgIGNvbnN0IHByZXZSQ0FyciA9IHRoaXMuZWRpdERldGFpbHMucmNfaWQ7XHJcbiAgICAgIGNvbnN0IGN1cnJSQ0FyciA9IHRoaXMucmV0dXJuSWRzKHRoaXMucmlza0Zvcm0ucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdCwgJ3JjX2lkJyk7XHJcbiAgICAgIGlmIChwcmV2UkNBcnIubGVuZ3RoID09PSBjdXJyUkNBcnIubGVuZ3RoICYmIHByZXZSQ0Fyci5zb3J0KCkuZXZlcnkoKHZhbHVlOiBhbnksIGluZGV4OiBhbnkpID0+IHZhbHVlID09PSBjdXJyUkNBcnIuc29ydCgpW2luZGV4XSkpIHtcclxuICAgICAgICB0aGlzLmNyZWF0ZVJpc2sodGhpcy5yaXNrRm9ybSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgY29uZmlybWF0aW9uRGV0YWlsczogQ29uZmlybWF0aW9uQWxlcnQgPSB7XHJcbiAgICAgICAgICBpc1Zpc2libGU6IHRydWUsXHJcbiAgICAgICAgICBtZXNzYWdlOiBgVGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlcihzKSBhc3NvY2lhdGVkIHdpdGggdGhpcyByaXNrIGhhdmUgYmVlbiBtb2RpZmllZC5cclxuICAgICAgICAgICAgICAgVGhpcyBoYXMgY2F1c2VkIHRoZSByaXNrIHRvIG1vdmUgdG8gdGhlIFwiSWRlbnRpZmllZCAmIEFzc2Vzc2VkXCIgc3RhdGUgYW5kIGEgbmV3IHJpc2sgbGlmZWN5Y2xlIGZvciB0aGlzIHJpc2sgaXMgdG8gYmVnaW4uYCxcclxuICAgICAgICAgIGFjdGlvbjogJ0VESVRfUklTSycsXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnNob3dDb25maXJtYXRpb25BbGVydC5lbWl0KGNvbmZpcm1hdGlvbkRldGFpbHMpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNyZWF0ZVJpc2sodGhpcy5yaXNrRm9ybSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgYWRkTW9yZUluZm8oZXZlbnQ6IGFueSkge1xyXG4gICAgc3dpdGNoIChldmVudC5uYW1lKSB7XHJcbiAgICAgIGNhc2UgJ1Jpc2sgT3ZlcnNlZXInOlxyXG4gICAgICAgIHRoaXMucmlza0Zvcm0uYWRkT3ZlcnNlZXIgPSBldmVudD8uY2hlY2tlZDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnUmlzayBNaXRpZ2F0aW9uIFByaW9yaXR5JzpcclxuICAgICAgICB0aGlzLnJpc2tGb3JtLmFkZE1pdGlnYXRpb24gPSBldmVudD8uY2hlY2tlZDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnUmVjb21tZW5kZWQgTWl0aWdhdGlvbiBQbGFucyc6XHJcbiAgICAgICAgdGhpcy5yaXNrRm9ybS5hZGRNaXRpZ2F0aW9uUGxhbiA9IGV2ZW50Py5jaGVja2VkO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zY3JvbGxUb0JvdHRvbSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZVJpc2soKSB7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICBjb25zdCBldmVudCA9IHRoaXMucmlza0Zvcm0udGl0bGU7XHJcbiAgICBjb25zdCByZSA9IC8mbmJzcDt8PGJyPi9nO1xyXG4gICAgdGhpcy5yaXNrRm9ybS50aXRsZSA9IGV2ZW50LnJlcGxhY2UocmUsICcnKS50cmltKCk7XHJcbiAgICBpZiAoIXRoaXMucmlza0Zvcm0udGl0bGUgfHwgdGhpcy5yaXNrRm9ybS5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0Lmxlbmd0aCA9PSAwXHJcbiAgICAgIHx8IHRoaXMucmlza0Zvcm0ub3duZXJzTGlzdC5sZW5ndGggPT0gMCB8fFxyXG4gICAgICAoKCF0aGlzLnNldHRpbmdzSW5mby5hc3Nlc3NtZW50X2RlYWRsaW5lX2VuYWJsZSkgJiYgKHRoaXMucmlza0Zvcm0/LmFzc2Vzc21lbnRfZGVhZGxpbmVfZGF5cyA8IDEpICYmIHRoaXMucmlza0Zvcm0/LnJpc2tUeXBlICE9PSAnUkVQT1JURUQnKSB8fFxyXG4gICAgICAodGhpcy5yaXNrRm9ybS5yaXNrVHlwZSA9PT0nUkVQT1JURUQnICYmICF0aGlzLnJpc2tGb3JtPy5kZXNjcmlwdGlvbj8udHJpbSgpPy5sZW5ndGgpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlUmlzayhyaXNrRm9ybTogYW55KSB7XHJcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgdGl0bGU6IHJpc2tGb3JtLnRpdGxlLFxyXG4gICAgICBkZXNjcmlwdGlvbjogcmlza0Zvcm0uZGVzY3JpcHRpb24sXHJcbiAgICAgIGNhdGVnb3J5X2N1c3RvbV90YWc6IHJpc2tGb3JtLmNhdGVnb3J5Q3VzdG9tVGFncyxcclxuICAgICAgYXNzZXNzbWVudF9kZWFkbGluZV9lbmFibGU6IHRoaXMuc2V0dGluZ3NJbmZvLmFzc2Vzc21lbnRfZGVhZGxpbmVfZW5hYmxlLFxyXG4gICAgICBvd25lcjogdGhpcy5yZXR1cm5JZHMocmlza0Zvcm0ub3duZXJzTGlzdCwgJ21lbWJlcl9pZCcpLFxyXG4gICAgICBjYXRlZ29yeTogKHJpc2tGb3JtLmNhdGVnb3J5Py5zZWxlY3RlZENhdGVnb3J5Py5jYXRlZ29yeV9pZCkgPyBbcmlza0Zvcm0uY2F0ZWdvcnkuc2VsZWN0ZWRDYXRlZ29yeS5jYXRlZ29yeV9pZF0gOiBbXSxcclxuICAgICAgbWFuYWdlX292ZXJzaWdodDogcmlza0Zvcm0uYWRkT3ZlcnNlZXIgPyB0aGlzLnJldHVybklkcyhyaXNrRm9ybS5vdmVyc2VlcnNMaXN0LCAnbWVtYmVyX2lkJykgOiBbXSxcclxuICAgICAgcmNfaWQ6IHRoaXMucmV0dXJuSWRzKHJpc2tGb3JtLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QsICdpdGVtX2lkJyksXHJcbiAgICAgIGhlYWRfaWRzOiByaXNrRm9ybS5oZWFkX2lkcyxcclxuICAgICAgcmF0aW5nX2FycjogW10sXHJcbiAgICAgIG1lbWJlcl9pZDogdGhpcy5tZW1iZXJJZCxcclxuICAgICAgb3JnYW5pc2F0aW9uX2lkOiB0aGlzLm9yZ2FuaXphdGlvbklkLFxyXG4gICAgICByaXNrX3Byb2dyZXNzX2ZsYWc6IDEsXHJcbiAgICAgIElmQXNzZXNzbWVudERvbmU6ICh0aGlzLm1vZGUgPT0gJ0VESVQnKSA/IHRoaXMuZWRpdERldGFpbHMuSWZBc3Nlc3NtZW50RG9uZSA6IDAsXHJcbiAgICAgIHdvcmtzaG9wX2lkOiAodGhpcy5tb2RlID09ICdFRElUJykgPyB0aGlzLmVkaXREZXRhaWxzLndvcmtzaG9wX2lkIDogMCxcclxuICAgICAgY29tcGxldGVfYXNzZXNzbWVudDogMCxcclxuICAgICAgbWl0aWdhdGlvbjogKHJpc2tGb3JtLmFkZE1pdGlnYXRpb24pID8gcmlza0Zvcm0ubWl0aWdhdGlvbiA6IDAsXHJcbiAgICAgIHdlaWdodGFnZV9lbmFibGU6IHRoaXMuc2V0dGluZ3NJbmZvLndlaWdodGFnZV9lbmFibGUsXHJcbiAgICAgIHRyZWF0bWVudF90eXBlOiB0aGlzLnNldHRpbmdzSW5mby50cmVhdG1lbnRfY3JpdGVyaWEsXHJcbiAgICAgIHdlaWdodGFnZV9kZXRhaWxzOiB0aGlzLnNldHRpbmdzSW5mby53ZWlnaHRhZ2VfZGV0YWlscyxcclxuICAgICAgd2VpZ2h0YWdlX3NldF9ieTogdGhpcy5zZXR0aW5nc0luZm8ud2VpZ2h0YWdlX3NldF9ieSxcclxuICAgICAgd2VpZ2h0YWdlX3N0cjogW1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3NJbmZvLndlaWdodGFnZV9kZXRhaWxzLmltcGFjdC52YWx1ZSxcclxuICAgICAgICB0aGlzLnNldHRpbmdzSW5mby53ZWlnaHRhZ2VfZGV0YWlscy5saWtlbGlob29kLnZhbHVlLFxyXG4gICAgICAgIHRoaXMuc2V0dGluZ3NJbmZvLndlaWdodGFnZV9kZXRhaWxzLnZlbG9jaXR5LnZhbHVlLFxyXG4gICAgICAgIHRoaXMuc2V0dGluZ3NJbmZvLndlaWdodGFnZV9kZXRhaWxzLnZ1bG5lcmFiaWxpdHkudmFsdWUsXHJcbiAgICAgIF0sXHJcbiAgICAgIGFzc2Vzc21lbnRfZGVhZGxpbmVfc2V0X2J5OiB0aGlzLnNldHRpbmdzSW5mby5hc3Nlc3NtZW50X2RlYWRsaW5lX3NldF9ieSxcclxuICAgICAgYXNzZXNzbWVudF9kZWFkbGluZV9kYXlzOiAodGhpcy5zZXR0aW5nc0luZm8uYXNzZXNzbWVudF9kZWFkbGluZV9lbmFibGUpID8gdGhpcy5zZXR0aW5nc0luZm8uYXNzZXNzbWVudF9kZWFkbGluZV9kYXlzIDogcmlza0Zvcm0uYXNzZXNzbWVudF9kZWFkbGluZV9kYXlzLFxyXG4gICAgICByaXNrX3R5cGU6dGhpcy5yaXNrRm9ybT8ucmlza1R5cGUgPz8gJ05PUk1BTCcsXHJcbiAgICAgIG1pdGlnYXRpb25fcGxhbl9yZWNvbW1lbmRhdGlvbjp0aGlzLnJpc2tGb3JtPy5hZGRNaXRpZ2F0aW9uUGxhbiA/IHRoaXMucmlza0Zvcm0/Lm1pdGlnYXRpb25EZXNjcmlwdGlvblBsYW4gPz8nJyA6JydcclxuXHJcblxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLm1vZGUgPT0gJ0NSRUFURScpIHtcclxuICAgICAgdGhpcy5yaXNrU2VydmljZS5hZGRSaXNrKHBheWxvYWQpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhyZXMpO1xyXG4gICAgICAgIHRoaXMucmlza0RhdGEgPSByZXM7XHJcbiAgICAgICAgdGhpcy5yaXNrSWQgPSByZXMuX2lkO1xyXG4gICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSB0cnVlO1xyXG5cclxuICAgICAvLyAgIHRoaXMucmVzZXRGb3JtKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdygnT09QUyEgU29tZXRoaW5nIHdlbnQgd3JvbmcgYW5kIHRoZSBwYWdlIGNvdWxkIG5vdCBiZSBsb2FkZWQuIENvdWxkIHlvdSBwbGVhc2UgdHJ5IG9uZSBtb3JlIHRpbWU/Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubW9kZSA9PSAnRURJVCcgJiYgdGhpcy5vcGVuZWRGcm9tICE9PSAnTU9WRV9UT19SRUdJU1RFUicpIHtcclxuICAgICAgdGhpcy5zbWlsZXlNZXNzYWdlID0gYFRoZSByaXNrIGhhcyBiZWVuIG1vZGlmaWVkLmA7XHJcbiAgICAgIHRoaXMucmlza1NlcnZpY2UudXBkYXRlUmlzayh0aGlzLnJpc2tJZCwgcGF5bG9hZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMucmlza0RhdGEgPSByZXM7XHJcbiAgICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcblxyXG4gICAgICB9LFxyXG4gICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLnNob3coJ09PUFMhIFNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCB0aGUgcGFnZSBjb3VsZCBub3QgYmUgbG9hZGVkLiBDb3VsZCB5b3UgcGxlYXNlIHRyeSBvbmUgbW9yZSB0aW1lPycpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZih0aGlzLm9wZW5lZEZyb20gPT09ICdNT1ZFX1RPX1JFR0lTVEVSJyl7XHJcbiAgICAgIHRoaXMuY2xvc2VXb3JrZmxvdy5lbWl0KHtldnQ6e2FjdGlvbjonTU9WRV9UT19SRUdJU1RFUicscGF5bG9hZH0sIGNvbmZpcm0gOiBmYWxzZX0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHJlc2V0Rm9ybSgpIHtcclxuICAgIHRoaXMuc2Nyb2xsVG9Cb3R0b20gPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5yaXNrRm9ybSA9IHtcclxuICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICBkZXNjcmlwdGlvbjogJycsXHJcbiAgICAgIHJpc2tUeXBlOnRoaXMucmlza0Zvcm0/LnJpc2tUeXBlLFxyXG4gICAgICBhZGRNaXRpZ2F0aW9uUGxhbjpmYWxzZSxcclxuICAgICAgbWl0aWdhdGlvbkRlc2NyaXB0aW9uUGxhbjogJycsXHJcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3Q6IFtdLFxyXG4gICAgICBvd25lcnNMaXN0OiBbXSxcclxuICAgICAgY2F0ZWdvcnk6IHtcclxuICAgICAgICB0eXBlOiAnc3RyYXRlZ2ljJyxcclxuICAgICAgICBzZWxlY3RlZENhdGVnb3J5OiAnJyxcclxuICAgICAgfSxcclxuICAgICAgY2F0ZWdvcnlDdXN0b21UYWdzOiBbXSxcclxuICAgICAgb3ZlcnNlZXJzTGlzdDogW10sXHJcbiAgICAgIG1pdGlnYXRpb246IDAsXHJcbiAgICAgIGFzc2Vzc21lbnRfZGVhZGxpbmVfZGF5czogMCxcclxuICAgICAgaGVhZF9pZHM6IFtdLFxyXG4gICAgICBhZGRPdmVyc2VlcjogZmFsc2UsXHJcbiAgICAgIGFkZE1pdGlnYXRpb246IGZhbHNlXHJcbiAgICB9O1xyXG4gICAgdGhpcy5ub25SZW1vdmFibGVVc2Vyc0xpc3QgPSBbXTtcclxuICAgIHRoaXMub3JnYW5pemF0aW9uSWQgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldE9yZ2FuaXphdGlvbklkKCk7XHJcbiAgICB0aGlzLm1lbWJlcklkID0gdGhpcy5hdXRoU2VydmljZS5nZXRNZW1iZXJJZCgpO1xyXG4gICAgdGhpcy5ub25SZW1vdmFibGVVc2Vyc0xpc3QucHVzaCh0aGlzLm1lbWJlcklkKTtcclxuICAgIHRoaXMuZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5yZWZyZXNoRm9ybS5lbWl0KHRydWUpO1xyXG5cclxuICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xyXG4gICAgdGhpcy5nZXRPd25lcnNMaXN0KCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgYWN0aW9uKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHN3aXRjaCAoZXZlbnQpIHtcclxuICAgICAgY2FzZSAnYWRkTW9yZSc6XHJcbiAgICAgICAgdGhpcy5yZXNldEZvcm0oKTtcclxuICAgICAgICB0aGlzLnBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndmlld1Jpc2tzJzpcclxuICAgICAgICB0aGlzLnZpZXdSaXNrcygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdtYW5hZ2VSZXBvcnRlZFJpc2snOlxyXG4gICAgICAgIHRoaXMucmVkaXJlY3RUb1JlcG9ydGVkKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZVNtaWxleShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcclxuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSBmYWxzZTtcclxuICAgIHRoaXMuY2xvc2VXb3JrZmxvdy5lbWl0KHtldnQ6dGhpcy5yaXNrRGF0YSwgY29uZmlybSA6IGZhbHNlfSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHZpZXdSaXNrcygpOiB2b2lkIHtcclxuIHRoaXMuZGlzY29ubmVjdFJlZnJlc2guZW1pdChmYWxzZSk7XHJcbiAgICBsZXQgdXJsOiBzdHJpbmc7XHJcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcclxuICAgICAgdXJsID0gJ2h0dHA6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB1cmwgPSAnaHR0cHM6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ob3N0LnN0YXJ0c1dpdGgoJ2xvY2FsaG9zdCcpKSB7XHJcbiAgICAgIHVybCArPSAnL21hbmFnZS1yaXNrLycgKyB0aGlzLnJpc2tJZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHVybCArPSAnL3Jpc2svbWFuYWdlLXJpc2svJyArIHRoaXMucmlza0lkO1xyXG4gICAgfVxyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgICAvL3RoaXMucmVzZXRGb3JtKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcmVkaXJlY3RUb1JlcG9ydGVkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcclxuICAgICAgIGxldCB1cmw6IHN0cmluZztcclxuICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdC5zdGFydHNXaXRoKCdsb2NhbGhvc3QnKSkge1xyXG4gICAgICAgICB1cmwgPSAnaHR0cDovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdDtcclxuICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgIHVybCA9ICdodHRwczovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdDtcclxuICAgICAgIH1cclxuXHJcbiAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcclxuICAgICAgICAgdXJsICs9ICcvcmVwb3J0ZWQtcmlzay8nO1xyXG4gICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgdXJsICs9ICcvcmlzay9yZXBvcnRlZC1yaXNrLyc7XHJcbiAgICAgICB9XHJcbiAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcclxuICAgICAgIC8vdGhpcy5yZXNldEZvcm0oKTtcclxuICAgICB9XHJcbiAgY2hlY2tEZXNjcmlwdGlvbigpIHtcclxuICAgIGlmKHRoaXMucmlza0Zvcm0uZGVzY3JpcHRpb24gPT0gJzxicj4nKSB7XHJcbiAgICAgIHRoaXMucmlza0Zvcm0uZGVzY3JpcHRpb24gPSAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrTWl0aWdhdGlvblBsYW4oKSB7XHJcbiAgICBpZiAodGhpcy5yaXNrRm9ybS5taXRpZ2F0aW9uRGVzY3JpcHRpb25QbGFuID09ICc8YnI+Jykge1xyXG4gICAgICB0aGlzLnJpc2tGb3JtLm1pdGlnYXRpb25EZXNjcmlwdGlvblBsYW4gPSAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
780
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctcmlzay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1yaXNrL3dvcmtmbG93LXJpc2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUEyQixNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRW5DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUduRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFTbkUsTUFBTSxPQUFPLHFCQUFxQjtJQWlHaEMsWUFDVSxXQUEyQixFQUMzQixXQUF3QixFQUN4QixZQUEwQixFQUN6QixRQUF3QixFQUNyQixNQUF1QjtRQUozQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFuR25DLDhCQUF5QixHQUFRLEVBQUUsQ0FBQztRQUNwQyxrQ0FBNkIsR0FBUSxFQUFFLENBQUM7UUFDeEMsc0JBQWlCLEdBQVEsRUFBRSxDQUFDO1FBQzVCLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFDckIsMEJBQXFCLEdBQVEsRUFBRSxDQUFDO1FBRWhDLGtCQUFhLEdBQUcsaUJBQWlCLENBQUM7UUFF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QUFXLElBQUksTUFBTSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztTQUNoQztJQUNILENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLHlCQUF5QixJQUFJLE1BQU0sRUFBRTtZQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLHlCQUF5QixHQUFHLEVBQUUsQ0FBQztTQUM5QztJQUNILENBQUM7OztZQW56QkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLHMvNEJBQTZDOzthQUk5Qzs7O1lBVlEsY0FBYztZQUNkLFdBQVc7WUFDWCxZQUFZO1lBSFosZUFBZTtZQUhmLGNBQWMsdUJBcUhsQixRQUFROzs7bUJBdEZWLEtBQUs7cUJBQ0wsS0FBSzs4QkFDTCxLQUFLO2lDQUNMLEtBQUs7a0NBQ0wsS0FBSztvQ0FDTCxNQUFNOzRCQUNOLE1BQU07NkJBQ04sTUFBTTs0QkFDTixNQUFNO2dDQUNOLE1BQU07MEJBQ04sTUFBTTswQ0FDTixNQUFNO3lCQUNSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaHJvd1N0bXQgfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XHJcbmltcG9ydCB7IFRISVNfRVhQUiB9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyL3NyYy9vdXRwdXQvb3V0cHV0X2FzdCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBFZGl0b3JDb25maWcgfSBmcm9tICd2Y29tcGx5LWVkaXRvcic7XHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbnMnO1xyXG5pbXBvcnQgeyBDYXRlZ29yeUxpc3QgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NhdGVnb3J5TGlzdCc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvbkFsZXJ0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb25maXJtYXRpb24tYWxlcnQnO1xyXG5pbXBvcnQgeyBTbmFja0JhclNlcnZpY2UgfSBmcm9tICcuLi91aS1raXQvc25hY2stYmFyL3NuYWNrLWJhci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWRkUmlza1NlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy9hZGQtcmlzay5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVaUtpdFNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy91aS1raXQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC13b3JrZmxvdy1yaXNrJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vd29ya2Zsb3ctcmlzay5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd29ya2Zsb3ctcmlzay5jb21wb25lbnQubGVzcycsICcuLi9mb3Jtcy5sZXNzJ10sXHJcbiAgLy8gY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dSaXNrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdDogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnM6IGFueSA9IFtdO1xyXG4gIG1pdGlnYXRpb25EZXRhaWxzOiBhbnkgPSBbXTtcclxuICBvd25lcnNMaXN0OiBhbnkgPSBbXTtcclxuICBub25SZW1vdmFibGVVc2Vyc0xpc3Q6IGFueSA9IFtdO1xyXG4gIGVkaXREZXRhaWxzITogYW55O1xyXG4gIHNtaWxleU1lc3NhZ2UgPSBgWW91J3JlIEFsbCBTZXQhYDtcclxuICByaXNrRGF0YSAhOmFueTtcclxuICBhY3Rpb25CdXR0b25zID0gW1xyXG4gICAgeyBidXR0b25UZXh0OiAnQWRkIE1vcmUgUmlza3MnLCBjbGFzczogJ3doaXRlLWJ0bicsIGlkOiAnYWRkTW9yZScgfSxcclxuICAgIHsgYnV0dG9uVGV4dDogJ1ZpZXcgUmlzaycsIGNsYXNzOiAnYmx1ZS1idG4nLCBpZDogJ3ZpZXdSaXNrcycgfSxcclxuICBdO1xyXG4gIHNpZGVTZWxlY3RvckVsZW1lbnRzOiBhbnkgPSBbJ3JjJywgJ293bmVyJywgJ292ZXJzZWVyJywgJ2NhdGVnb3J5J107XHJcbiAgc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1vZGUgPSAnRURJVCc7XHJcbiAgQElucHV0KCkgcmlza0lkID0gJyc7XHJcbiAgQElucHV0KCkgZGVmYXVsdFJpc2tUeXBlID0gJ05PUk1BTCdcclxuICBASW5wdXQoKSBtb3ZlVG9SZWdpc3Rlck1vZGUgPSAnJ1xyXG4gIEBJbnB1dCgpIHNlY29uZGFyeU9wZW5Qb3J0YWwgPSAnJztcclxuICBAT3V0cHV0KCkgc2hvd0NvbmZpcm1hdGlvbkFsZXJ0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBwaWNrZXJDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBwb3B1bGF0ZU9wdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xvc2VXb3JrZmxvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZGlzY29ubmVjdFJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHJlZnJlc2hGb3JtID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbkBJbnB1dCgpIG9wZW5lZEZyb20gPSAnJ1xyXG4gIHNjcm9sbFRvQm90dG9tID0gZmFsc2U7XHJcbiAgY2F0ZWdvcnlMaXN0OiBDYXRlZ29yeUxpc3QgPSB7XHJcbiAgICBzdHJhdGVnaWM6IHtcclxuICAgICAgbmFtZTogJ1NUUkFURUdJQycsXHJcbiAgICAgIGRhdGE6IFtdXHJcbiAgICB9LFxyXG4gICAgb3BlcmF0aW9uYWw6IHtcclxuICAgICAgbmFtZTogJ09QRVJBVElPTkFMJyxcclxuICAgICAgZGF0YTogW11cclxuICAgIH0sXHJcbiAgICBjb21wbGlhbmNlOiB7XHJcbiAgICAgIG5hbWU6ICdDT01QTElBTkNFJyxcclxuICAgICAgZGF0YTogW11cclxuICAgIH0sXHJcbiAgICBvdGhlcnM6IHtcclxuICAgICAgbmFtZTogJ09USEVSUycsXHJcbiAgICAgIGRhdGE6IFtdXHJcbiAgICB9LFxyXG4gIH07XHJcbiAgb3ZlcnNlZXJzTGlzdDogYW55ID0gW107XHJcbiAgYWRtaW5zTGlzdDogYW55ID0gW107XHJcbiAgb3ZlcnNlZXJzSWRMaXN0OiBhbnkgPSBbXTtcclxuICB0aW1lem9uZSE6IHN0cmluZztcclxuICBkYXRlITogRGF0ZTtcclxuICByaXNrTmFtZUZvY3VzID0gZmFsc2U7XHJcbiAgYXNzZXNzbWVudEZvY3VzID0gZmFsc2U7XHJcbiAgcmlza1R5cGVDaGFuZ2VBbGxvd2VkID0gZmFsc2U7XHJcblxyXG5cclxuICByaXNrRm9ybTogYW55ID0ge1xyXG4gICAgcmlza1R5cGUgOidOT1JNQUwnLFxyXG4gICAgdGl0bGU6ICcnLFxyXG4gICAgZGVzY3JpcHRpb246ICcnLFxyXG4gICAgcmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdDogW10sXHJcbiAgICBvd25lcnNMaXN0OiBbXSxcclxuICAgIGNhdGVnb3J5OiB7XHJcbiAgICAgIHR5cGU6ICdzdHJhdGVnaWMnLFxyXG4gICAgICBzZWxlY3RlZENhdGVnb3J5OiAnJyxcclxuICAgIH0sXHJcbiAgICBjYXRlZ29yeUN1c3RvbVRhZ3M6IFtdLFxyXG4gICAgb3ZlcnNlZXJzTGlzdDogW10sXHJcbiAgICBtaXRpZ2F0aW9uOiAwLFxyXG4gICAgYXNzZXNzbWVudF9kZWFkbGluZV9kYXlzOiAwLFxyXG4gICAgaGVhZF9pZHM6IFtdLFxyXG4gICAgYWRkT3ZlcnNlZXI6IGZhbHNlLFxyXG4gICAgYWRkTWl0aWdhdGlvbjogZmFsc2UsXHJcbiAgICBhZGRNaXRpZ2F0aW9uUGxhbjpmYWxzZSxcclxuICAgIG1pdGlnYXRpb25EZXNjcmlwdGlvblBsYW46ICcnLFxyXG4gIH07XHJcbiAgYXBpVXJsID0gJyc7XHJcbiAgbWVtYmVySWQgPSAwO1xyXG4gIG9yZ2FuaXphdGlvbklkID0gMDtcclxuXHJcblxyXG4gIHVzZXJzTGlzdExvYWRlZCA9IGZhbHNlO1xyXG4gIGFkbWluc0xpc3RMb2FkZWQgPSBmYWxzZTtcclxuICBjYXRlZ29yeUxpc3RMb2FkZWQgPSBmYWxzZTtcclxuICByY0xpc3RMb2FkZWQgPSBmYWxzZTtcclxuXHJcbiAgc3VibWl0dGVkID0gZmFsc2U7XHJcblxyXG5cclxuICBzZXR0aW5nc0luZm8gITogYW55O1xyXG5cclxuICBsb2FkZXIgPSBmYWxzZTtcclxuLy9cclxuYWN0aXZlU2VsZWN0b3IgPSAnJztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJpc2tTZXJ2aWNlOiBBZGRSaXNrU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1aUtpdFNlcnZpY2U6IFVpS2l0U2VydmljZSxcclxuICAgIHByaXZhdGUgIHNuYWNrQmFyOlNuYWNrQmFyU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zXHJcblxyXG4gICkge1xyXG4gICAgLy8gaWYgKGNvbmZpZykge1xyXG4gICAgLy8gICB0aGlzLmFwaVVybCA9IGNvbmZpZy5hcGlVcmw7XHJcbiAgICAvLyB9XHJcbiAgICB0aGlzLnRpbWV6b25lID0gdGhpcy5hdXRoU2VydmljZS5nZXRVc2VyVGltZVpvbmUoKTtcclxuXHJcbiAgfVxyXG4gIGRlc2NyaXB0aW9uOiBFZGl0b3JDb25maWcgPSB7XHJcbiAgICBtb2RlOiAncHJpbWUnLFxyXG4gICAgY29sb3JQYWxldHRlOiB0cnVlLFxyXG4gICAgbGluazogdHJ1ZSxcclxuICAgIHBsYWNlaG9sZGVyOiAnRGVzY3JpYmUgdGhlIHJpc2snLFxyXG4gIH07XHJcblxyXG4gIG1pdGlnYXRpb25EZXNjcmlwdGlvblBsYW46IEVkaXRvckNvbmZpZyA9IHtcclxuICAgIG1vZGU6ICdwcmltZScsXHJcbiAgICBjb2xvclBhbGV0dGU6IHRydWUsXHJcbiAgICBsaW5rOiB0cnVlLFxyXG4gICAgcGxhY2Vob2xkZXI6ICdEZXNjcmliZSB0aGUgcmVjb21tZW5kZWQgbWl0aWdhdGlvbiBQbGFucydcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQoZmFsc2UpXHJcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLmdldEFkbWluc0xpc3QoKTtcclxuICAgIHRoaXMuZ2V0UkNMaXN0KCk7XHJcbiAgICB0aGlzLmdldE93bmVyc0xpc3QoKTtcclxuICAgIHRoaXMuZ2V0Q2F0ZWdvcnlMaXN0KCk7XHJcbiAgICB0aGlzLmdldFNldHRpbmdzSW5mbygpO1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0NSRUFURScpIHtcclxuICAgICAgdGhpcy5vcmdhbml6YXRpb25JZCA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uSWQoKTtcclxuICAgIH1cclxuICAgIHRoaXMubWVtYmVySWQgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldE1lbWJlcklkKCk7XHJcbiAgICBjb25zb2xlLmxvZyhcIm1lbWJlciBpZCBvZiBsb2dnZWQgaW4gdXNlclwiLCB0aGlzLm1lbWJlcklkKVxyXG4gICAgaWYodGhpcy5zZWNvbmRhcnlPcGVuUG9ydGFsICE9PSAnT1RIRVInICYmIHRoaXMubW9kZSAhPT0gJ0VESVQnKXtcclxuICAgICAgdGhpcy5ub25SZW1vdmFibGVVc2Vyc0xpc3QucHVzaCh0aGlzLm1lbWJlcklkKTtcclxuICAgIH1cclxuIFxyXG5cclxuICAgIHRoaXMuY2hlY2tXaGV0aGVyQWxsTGlzdHNMb2FkZWQoKTtcclxuICAgIGlmKHRoaXMub3BlbmVkRnJvbSA9PT0gJ1JFUE9SVEVEX1JJU0snKXtcclxuICAgICAgdGhpcy5yaXNrRm9ybS5yaXNrVHlwZSA9ICdSRVBPUlRFRCc7XHJcbiAgICAgIHRoaXMucmlza1R5cGVDaGFuZ2VBbGxvd2VkID0gZmFsc2U7XHJcbiAgICB9ZWxzZSBpZih0aGlzLm9wZW5lZEZyb20gPT09ICdNT1ZFX1RPX1JFR0lTVEVSJyl7XHJcbiAgICAgIHRoaXMucmlza0Zvcm0ucmlza1R5cGUgPSAnTk9STUFMJztcclxuICAgICAgdGhpcy5yaXNrVHlwZUNoYW5nZUFsbG93ZWQgPSBmYWxzZTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLnNldFJpc2tUeXBlQmFzZWRPblN1YnNjcmlwdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHNldFJpc2tUeXBlQmFzZWRPblN1YnNjcmlwdGlvbigpe1xyXG4gICAgaWYodGhpcy5vcGVuZWRGcm9tID09PSAnUkVQT1JURURfUklTSycpe1xyXG4gICAgICB0aGlzLnJpc2tGb3JtLnJpc2tUeXBlID0gJ1JFUE9SVEVEJztcclxuICAgIH1cclxuICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0VXNlckluZm8oKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOmFueSkgPT4ge1xyXG4gICAgICAgIGlmKHJlcyAmJiByZXM/LnBlcm1pc3Npb24pe1xyXG4gICAgICAgICAgY29uc3QgcGVybWlzc2lvbiA9IEpTT04ucGFyc2UocmVzPy5wZXJtaXNzaW9uKVxyXG4gICAgICAgICAgaWYodGhpcy5hdXRoU2VydmljZT8uaXNBZG1pbigpIHx8IHRoaXMuYXV0aFNlcnZpY2U/LmlzS2V5QWRtaW4oKSl7XHJcbiAgICAgICAgICAgIHRoaXMucmlza1R5cGVDaGFuZ2VBbGxvd2VkID0gdHJ1ZTtcclxuICAgICAgICAgIH1lbHNlIGlmKHRoaXMuYXV0aFNlcnZpY2UuaXNNYW5hZ2VyKCkpe1xyXG4gICAgICAgICAgICBpZihwZXJtaXNzaW9uPy5NUklTSyA9PT0gMSl7XHJcbiAgICAgICAgICAgICAgdGhpcy5yaXNrVHlwZUNoYW5nZUFsbG93ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICB0aGlzLnJpc2tUeXBlQ2hhbmdlQWxsb3dlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMucmlza0Zvcm0ucmlza1R5cGU9J1JFUE9SVEVEJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfWVsc2UgaWYodGhpcy5hdXRoU2VydmljZS5pc1VzZXIoKSl7XHJcbiAgICAgICAgICAgIHRoaXMucmlza1R5cGVDaGFuZ2VBbGxvd2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMucmlza0Zvcm0ucmlza1R5cGU9J1JFUE9SVEVEJztcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLnJpc2tUeXBlQ2hhbmdlQWxsb3dlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnJpc2tGb3JtLnJpc2tUeXBlPSdSRVBPUlRFRCc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZihyZXMgJiYgcmVzPy5yb2xlQWN0aW9ucyl7XHJcbiAgICAgICAgICBjb25zdCBtb2R1bGVJbmRleCA9IHJlcy5yb2xlQWN0aW9ucy5maW5kSW5kZXgoKGVsZW1lbnQ6YW55KT0+ZWxlbWVudC5tb2R1bGVOYW1lPT0gXCJyaXNrXCIpO1xyXG4gICAgICAgICAgY29uc3Qgcmlza1Blcm1pc3Npb25zID0gcmVzLnJvbGVBY3Rpb25zW21vZHVsZUluZGV4XS5zdWJNb2R1bGVbMV0ucGVybWlzc2lvbnM7XHJcbiAgICAgICAgICByaXNrUGVybWlzc2lvbnMuZm9yRWFjaCgocGVybWlzc2lvbjphbnkpID0+IHtcclxuICAgICAgICAgICAgaWYocGVybWlzc2lvbi5uYW1lID09J21hbmFnZSByaXNrcycgJiYgcGVybWlzc2lvbi5lbmFibGUpe1xyXG4gICAgICAgICAgICAgIHRoaXMucmlza1R5cGVDaGFuZ2VBbGxvd2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnJpc2tGb3JtLnJpc2tUeXBlPSdOT1JNQUwnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHRoaXMubW9kZSA9PT0gJ0VESVQnKXtcclxuICAgICAgICAgIHRoaXMucmlza0Zvcm0ucmlza1R5cGUgPSAnTk9STUFMJztcclxuICAgICAgICAgIHRoaXMucmlza1R5cGVDaGFuZ2VBbGxvd2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBjaGFuZ2VSaXNrKHR5cGU6c3RyaW5nKXtcclxuICAgICAgdGhpcy5yaXNrRm9ybSA9IHsuLi50aGlzLnJpc2tGb3JtLC4uLntyaXNrVHlwZTp0eXBlfX1cclxuICAgICAgdGhpcy5zZXRQb3B1cEJ1dHRvbnMoKTtcclxuICAgICAgaWYodHlwZSA9PT0nUkVQT1JURUQnKXtcclxuICAgICAgICB0aGlzLnJpc2tGb3JtLmFzc2Vzc21lbnRfZGVhZGxpbmVfZGF5cyA9IDA7XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG5cclxuICBzZXRQb3B1cEJ1dHRvbnMoKXtcclxuICAgIGlmKHRoaXMucmlza0Zvcm0ucmlza1R5cGUgPT09ICdSRVBPUlRFRCcpe1xyXG4gICAgICB0aGlzLmFjdGlvbkJ1dHRvbnMgPSBbXHJcbiAgICAgICAgeyBidXR0b25UZXh0OiAnQWRkIE1vcmUgUmlza3MnLCBjbGFzczogJ3doaXRlLWJ0bicsIGlkOiAnYWRkTW9yZScgfSxcclxuICAgICAgICB7IGJ1dHRvblRleHQ6ICdWaWV3IFJlcG9ydGVkIFJpc2tzJywgY2xhc3M6ICdibHVlLWJ0bicsIGlkOiAnbWFuYWdlUmVwb3J0ZWRSaXNrJyB9LFxyXG4gICAgICBdO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuYWN0aW9uQnV0dG9ucyA9IFtcclxuICAgICAgICB7IGJ1dHRvblRleHQ6ICdBZGQgTW9yZSBSaXNrcycsIGNsYXNzOiAnd2hpdGUtYnRuJywgaWQ6ICdhZGRNb3JlJyB9LFxyXG4gICAgICAgIHsgYnV0dG9uVGV4dDogJ1ZpZXcgUmlzaycsIGNsYXNzOiAnYmx1ZS1idG4nLCBpZDogJ3ZpZXdSaXNrcycgfSxcclxuICAgICAgXTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0Umlza0RldGFpbHMocmlza0lkOiBhbnkpIHtcclxuXHJcbiAgICB0aGlzLnJpc2tTZXJ2aWNlLmdldFJpc2tEZXRhaWwocmlza0lkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZWRpdERldGFpbHMgPSBjbG9uZURlZXAocmVzKTtcclxuICAgICAgdGhpcy5yaXNrRm9ybS50aXRsZSA9IHJlcy50aXRsZTtcclxuICAgICAgaWYodGhpcy5vcGVuZWRGcm9tID09PSAnTU9WRV9UT19SRUdJU1RFUicpe1xyXG4gICAgICAgIHRoaXMucmlza0Zvcm0ucmlza1R5cGUgPSAnTk9STUFMJztcclxuICAgICAgICB0aGlzLnJpc2tUeXBlQ2hhbmdlQWxsb3dlZCA9IGZhbHNlO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLnJpc2tGb3JtLnJpc2tUeXBlID0gcmVzPy5yaXNrX3R5cGU/PydSRVBPUlRFRCdcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5yaXNrRm9ybS5kZXNjcmlwdGlvbiA9IHJlcy5kZXNjcmlwdGlvbjtcclxuICAgICAgdGhpcy5yaXNrRm9ybS5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0ID0gdGhpcy5zZXRMaXN0KHRoaXMucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdCwgcmVzLnJjX2lkLCAnaXRlbV9pZCcpO1xyXG4gICAgICB0aGlzLnJpc2tGb3JtLm93bmVyc0xpc3QgPSB0aGlzLnNldExpc3QodGhpcy5vd25lcnNMaXN0LCByZXMub3duZXIsICdtZW1iZXJfaWQnKTtcclxuICAgICAgdGhpcy5yaXNrRm9ybS5taXRpZ2F0aW9uRGVzY3JpcHRpb25QbGFuID0gcmVzLm1pdGlnYXRpb25EZXNjcmlwdGlvblBsYW47XHJcbiAgICAgIGNvbnN0IHR5cGUgPSB0aGlzLnNldENhdGVnb3J5VHlwZShyZXMuY2F0ZWdvcnlfdHlwZVswXSk7XHJcbiAgICAgIGNvbnN0IGNhdGVnb3J5SW5kZXggPSB0aGlzLmNhdGVnb3J5TGlzdFt0eXBlXT8uZGF0YS5maW5kSW5kZXgoKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudC5jYXRlZ29yeV9pZCA9PSByZXMuY2F0ZWdvcnlbMF0pO1xyXG4gICAgICBpZiAoY2F0ZWdvcnlJbmRleCAhPSAtMSkge1xyXG4gICAgICAgIHRoaXMucmlza0Zvcm0uY2F0ZWdvcnkgPSB7XHJcbiAgICAgICAgICB0eXBlLFxyXG4gICAgICAgICAgc2VsZWN0ZWRDYXRlZ29yeTogdGhpcy5jYXRlZ29yeUxpc3RbdHlwZV0/LmRhdGFbY2F0ZWdvcnlJbmRleF0sXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnJpc2tGb3JtLmNhdGVnb3J5Q3VzdG9tVGFncyA9IHJlcy5jYXRlZ29yeV9jdXN0b21fdGFnO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnJpc2tGb3JtLm92ZXJzZWVyc0xpc3QgPSB0aGlzLnNldExpc3QodGhpcy5vd25lcnNMaXN0LCByZXMubWFuYWdlX292ZXJzaWdodCwgJ21lbWJlcl9pZCcpO1xyXG4gICAgICB0aGlzLnJpc2tGb3JtLm1pdGlnYXRpb24gPSByZXMubWl0aWdhdGlvbjtcclxuICAgICAgdGhpcy5yaXNrRm9ybS5hc3Nlc3NtZW50X2RlYWRsaW5lX2RheXMgPSByZXMuYXNzZXNzbWVudF9kZWFkbGluZV9kYXlzO1xyXG4gICAgICB0aGlzLnJpc2tGb3JtLmFkZE92ZXJzZWVyID0gKHJlcy5tYW5hZ2Vfb3ZlcnNpZ2h0Lmxlbmd0aCA+IDApID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICB0aGlzLnJpc2tGb3JtLmFkZE1pdGlnYXRpb24gPSAocmVzLm1pdGlnYXRpb24pID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICB0aGlzLm1lbWJlcklkID0gcmVzLm1lbWJlcl9pZDtcclxuICAgICAgdGhpcy5vcmdhbml6YXRpb25JZCA9IHJlcy5vcmdhbmlzYXRpb25faWQ7XHJcbiAgICAgIHRoaXMucmlza0Zvcm0uaGVhZF9pZHMgPSByZXM/LmhlYWRfaWRzID8gcmVzPy5oZWFkX2lkcyA6W107XHJcbiAgICAgIHRoaXMucmlza0Zvcm0ubWl0aWdhdGlvbkRlc2NyaXB0aW9uUGxhbiA9IHJlcz8ubWl0aWdhdGlvbl9wbGFuX3JlY29tbWVuZGF0aW9uID8/ICcnO1xyXG4gICAgICB0aGlzLnJpc2tGb3JtLmFkZE1pdGlnYXRpb25QbGFuICA9IHJlcz8ubWl0aWdhdGlvbl9wbGFuX3JlY29tbWVuZGF0aW9uLnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZTpmYWxzZTtcclxuICAgICAgaWYgKHJlcy5hc3Nlc3NtZW50X2RhdGVfdGltZXN0YW1wKSB7XHJcbiAgICAgICAgdGhpcy5kYXRlID0gbmV3IERhdGUocmVzLmFzc2Vzc21lbnRfZGF0ZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHJlcy5JZkFzc2Vzc21lbnREb25lID4gMCkge1xyXG4gICAgICAgIHJlcy5hbGxfb3duZXJfYXJyLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuYXNzZXNzbWVudF9kb25lID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLm5vblJlbW92YWJsZVVzZXJzTGlzdC5wdXNoKGVsZW1lbnQubWVtYmVyX2lkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBpZih0aGlzLnNlY29uZGFyeU9wZW5Qb3J0YWwgPT09ICdPVEhFUicgJiYgdGhpcy5tb2RlID09PSAnRURJVCcpe1xyXG4gICAgICAgIHRoaXMubm9uUmVtb3ZhYmxlVXNlcnNMaXN0ID0gQXJyYXkuZnJvbShuZXcgU2V0PGFueVtdPihbLi4udGhpcy5ub25SZW1vdmFibGVVc2Vyc0xpc3QsLi4ucmVzPy5vd25lcl0pKTtcclxuICAgICAgfVxyXG4gICAgICBpZih0aGlzLnNlY29uZGFyeU9wZW5Qb3J0YWwgIT09ICdPVEhFUicgJiYgdGhpcy5tb2RlID09PSAnRURJVCcpe1xyXG4gICAgICAgIHRoaXMubm9uUmVtb3ZhYmxlVXNlcnNMaXN0ID0gQXJyYXkuZnJvbShuZXcgU2V0PGFueVtdPihbLi4udGhpcy5ub25SZW1vdmFibGVVc2Vyc0xpc3QsLi4uW3RoaXMuYXV0aFNlcnZpY2UuZ2V0TWVtYmVySWQoKV1dKSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYocmVzPy5yaXNrX3R5cGUgPT09ICdOT1JNQUwnKXtcclxuICAgICAgICB0aGlzLm5vblJlbW92YWJsZVVzZXJzTGlzdCA9IEFycmF5LmZyb20obmV3IFNldDxhbnlbXT4oWy4uLnRoaXMubm9uUmVtb3ZhYmxlVXNlcnNMaXN0LC4uLlt0aGlzLmF1dGhTZXJ2aWNlLmdldE1lbWJlcklkKCldXSkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKTtcclxuICAgIH0sIGVyciA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCl7XHJcbiAgICBjb25zdCBhY3RpdmF0ZWRPcHRpb25zID0gW107XHJcbiAgICBpZiAodGhpcy5yaXNrRm9ybS5hZGRNaXRpZ2F0aW9uKXthY3RpdmF0ZWRPcHRpb25zLnB1c2goJ01JVElHQVRJT04nKTt9XHJcbiAgICBpZiAodGhpcy5yaXNrRm9ybS5hZGRPdmVyc2Vlcil7YWN0aXZhdGVkT3B0aW9ucy5wdXNoKCdPVkVSU0VFUicpO31cclxuICAgIGlmKHRoaXMucmlza0Zvcm0uYWRkTWl0aWdhdGlvblBsYW4pe2FjdGl2YXRlZE9wdGlvbnMucHVzaCgnTUlUSUdBVElPTl9QTEFOJyl9XHJcbiAgICB0aGlzLnBvcHVsYXRlT3B0aW9uLmVtaXQoYWN0aXZhdGVkT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBzZXRDYXRlZ29yeVR5cGUodHlwZTogYW55KSB7XHJcbiAgICBpZiAodHlwZSA9PT0gMSkge1xyXG4gICAgICByZXR1cm4gJ3N0cmF0ZWdpYyc7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09IDIpIHtcclxuICAgICAgcmV0dXJuICdvcGVyYXRpb25hbCc7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09IDMpIHtcclxuICAgICAgcmV0dXJuICdjb21wbGlhbmNlJztcclxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gJ290aGVycyc7XHJcbiAgICB9IGVsc2UgeyByZXR1cm4gJ3N0cmF0ZWdpYyc7IH1cclxuICB9XHJcbiAgZ2V0UkNMaXN0KCkge1xyXG4gICAgY29uc3QgcmNBcnJheTogYW55W10gPSBbXTtcclxuICAgIHRoaXMucmlza1NlcnZpY2UuZ2V0UmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0KHJjQXJyYXkpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QgPSByZXM7XHJcbiAgICAgIHRoaXMucmNMaXN0TG9hZGVkID0gdHJ1ZTtcclxuXHJcbiAgICB9LCBlcnIgPT4ge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XHJcbiAgICAgIHRoaXMucmNMaXN0TG9hZGVkID0gdHJ1ZTtcclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldENhdGVnb3J5TGlzdCgpIHtcclxuICAgIHRoaXMucmlza1NlcnZpY2UuZ2V0Q2F0ZWdvcnlMaXN0KCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdC5zdHJhdGVnaWMuZGF0YSA9IHJlcy5zdHJhdGVnaWNfYXJyO1xyXG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdC5vcGVyYXRpb25hbC5kYXRhID0gcmVzLm9wZXJhdGlvbmFsX2FycjtcclxuICAgICAgdGhpcy5jYXRlZ29yeUxpc3QuY29tcGxpYW5jZS5kYXRhID0gcmVzLmNvbXBsaWFuY2VfYXJyO1xyXG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdC5vdGhlcnMuZGF0YSA9IHJlcy5vdGhlcnNfYXJyO1xyXG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdExvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgfSwgZXJyID0+IHtcclxuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdExvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0T3duZXJzTGlzdCgpIHtcclxuICAgIHRoaXMucmlza1NlcnZpY2UuZ2V0T3JnYW5pemF0aW9uVXNlcnMoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMub3duZXJzTGlzdCA9IHJlcztcclxuXHJcbiAgICAgIHRoaXMudXNlcnNMaXN0TG9hZGVkID0gdHJ1ZTtcclxuICAgICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHJlcy5maW5kSW5kZXgoKHVzZXI6IGFueSkgPT4gdXNlci5tZW1iZXJfaWQgPT09IHRoaXMubWVtYmVySWQpO1xyXG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgaWYodGhpcy5zZWNvbmRhcnlPcGVuUG9ydGFsICE9PSAnT1RIRVInICYmIHRoaXMubW9kZSAhPT0gJ0VESVQnKXtcclxuICAgIHRoaXMucmlza0Zvcm0ub3duZXJzTGlzdC5wdXNoKHJlc1tpbmRleF0pO1xyXG4gIH1cclxuICAgICAgfVxyXG5cclxuICAgIH0sIGVyciA9PiB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgICAgdGhpcy51c2Vyc0xpc3RMb2FkZWQgPSB0cnVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldEFkbWluc0xpc3QoKSB7XHJcbiAgICB0aGlzLnJpc2tTZXJ2aWNlLmdldEFkbWluS2V5QWRtaW5MaXN0KCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuYWRtaW5zTGlzdCA9IHJlcztcclxuICAgICAgdGhpcy5hZG1pbnNMaXN0TG9hZGVkID0gdHJ1ZTtcclxuXHJcbiAgICB9LCBlcnIgPT4ge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XHJcbiAgICAgIHRoaXMuYWRtaW5zTGlzdExvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTZXR0aW5nc0luZm8oKSB7XHJcblxyXG4gICAgdGhpcy5yaXNrU2VydmljZS5nZXRSaXNrU2V0dGluZ0RldGFpbHMoKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5zZXR0aW5nc0luZm8gPSByZXM7XHJcbiAgICAgIHRoaXMuaGlkZU9wdGlvbmFsRmllbGRzKHJlcyk7XHJcbiAgICAgIHRoaXMubWl0aWdhdGlvbkRldGFpbHMgPSByZXM/LnJpc2tfbWl0aWdhdGlvbl9wcmlvcml0eT8ubWl0aWdhdGlvbl9kYXRhO1xyXG4gICAgICBsZXQgZGVmYXVsdE1pdGlnYXRpb24gPSAgdGhpcy5taXRpZ2F0aW9uRGV0YWlscz8uZmlsdGVyKChlbGU6YW55KSA9PiBlbGU/Lm1pdGlnYXRpb25fbmFtZSA9PT0gXCJMT1dcIik7XHJcbiAgICAgIGlmKGRlZmF1bHRNaXRpZ2F0aW9uPy5sZW5ndGgpe1xyXG4gICAgICAgIHRoaXMucmlza0Zvcm0ubWl0aWdhdGlvbiA9IGRlZmF1bHRNaXRpZ2F0aW9uWzBdPy5taXRpZ2F0aW9uX2lkO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSwgZXJyID0+IHtcclxuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgaGlkZU9wdGlvbmFsRmllbGRzKHJlczphbnkpe1xyXG4gICAgaWYocmVzPy5yaXNrX2F1dG9tYXRpb25fZW5hYmxlID09PSAxKXtcclxuICAgICAgdGhpcy5oaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMuZW1pdChbJ01JVElHQVRJT04nXSk7XHJcbiAgICB9XHJcbiAgICAgICBcclxuICB9XHJcblxyXG5cclxuICBjaGVja1doZXRoZXJBbGxMaXN0c0xvYWRlZCgpIHtcclxuICAgIGlmICh0aGlzLnJjTGlzdExvYWRlZCAmJiB0aGlzLnVzZXJzTGlzdExvYWRlZCAmJiB0aGlzLmFkbWluc0xpc3RMb2FkZWQgJiYgdGhpcy5jYXRlZ29yeUxpc3RMb2FkZWQpIHtcclxuXHJcbiAgICAgIHRoaXMuc2V0T3ZlcnNlZXJzTGlzdCgpO1xyXG4gICAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcclxuICAgICAgICB0aGlzLmdldFJpc2tEZXRhaWxzKHRoaXMucmlza0lkKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcblxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmNoZWNrV2hldGhlckFsbExpc3RzTG9hZGVkKCk7XHJcbiAgICAgIH0sIDMwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRPdmVyc2VlcnNMaXN0KCkge1xyXG5cclxuICAgIGxldCBpZHM6IGFueSA9IFtdO1xyXG4gICAgbGV0IHJjT3duZXJJZHM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgdXNlcnMgPSBjbG9uZURlZXAodGhpcy5yaXNrRm9ybS5vd25lcnNMaXN0KTtcclxuICAgIGNvbnN0IHJlc3BvbnNpYmlsaXR5Q2VudGVycyA9IGNsb25lRGVlcCh0aGlzLnJpc2tGb3JtLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QpO1xyXG4gICAgY29uc3QgYWRtaW5zID0gY2xvbmVEZWVwKHRoaXMuYWRtaW5zTGlzdCk7XHJcbiAgICBjb25zdCBhbGxVc2VycyA9IGNsb25lRGVlcCh0aGlzLm93bmVyc0xpc3QpO1xyXG4gICAgLy8gY29uc29sZS5sb2coYWxsVXNlcnMsIHRoaXMucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdClcclxuICAgIHVzZXJzLmZvckVhY2goKHVzZXI6IGFueSkgPT4ge1xyXG4gICAgICBpZHMucHVzaCh1c2VyLm1lbWJlcl9pZCk7XHJcbiAgICB9KTtcclxuICAgIGFkbWlucy5mb3JFYWNoKCh1c2VyOiBhbnkpID0+IHtcclxuICAgICAgaWRzLnB1c2godXNlci5tZW1iZXJfaWQpO1xyXG4gICAgfSk7XHJcbiAgICByZXNwb25zaWJpbGl0eUNlbnRlcnMuZm9yRWFjaCgocmM6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBhcnkgPSBbLi4ucmMub3duZXIsIC4uLnJjLnBhcmVudF9vd25lcnNdO1xyXG4gICAgICBpZHMgPSBbLi4uaWRzLCAuLi5hcnldO1xyXG4gICAgICByY093bmVySWRzID0gWy4uLnJjT3duZXJJZHMsIC4uLmFyeV07XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZHMgPSBbLi4ubmV3IFNldChpZHMpXTtcclxuICAgIHJjT3duZXJJZHMgPSBbLi4ubmV3IFNldChyY093bmVySWRzKV07XHJcbiAgICB0aGlzLnJpc2tGb3JtLmhlYWRfaWRzID0gcmNPd25lcklkcztcclxuICAgIHRoaXMub3ZlcnNlZXJzTGlzdCA9IGFsbFVzZXJzLmZpbHRlcigodXNlcjogYW55KSA9PiAhaWRzLmluY2x1ZGVzKHVzZXIubWVtYmVyX2lkKSk7XHJcbiAgICB0aGlzLnJpc2tGb3JtLm92ZXJzZWVyc0xpc3QgPSB0aGlzLnJpc2tGb3JtLm92ZXJzZWVyc0xpc3QuZmlsdGVyKCh1c2VyOiBhbnkpID0+ICFpZHMuaW5jbHVkZXModXNlci5tZW1iZXJfaWQpKTtcclxuICB9XHJcblxyXG4gIGFjdGl2YXRlU2VsZWN0b3IodHlwZTogYW55LCBldmVudDogYm9vbGVhbil7XHJcbiAgICB0aGlzLmFjdGl2ZVNlbGVjdG9yID0gZXZlbnQgPyB0eXBlIDogJyc7XHJcbiAgICBpZiAoWydyYycsICdvd25lcicsICdvdmVyc2VlcicsICdjYXRlZ29yeSddLmluY2x1ZGVzKHR5cGUpKXtcclxuICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQoZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGFjdGl2ZURlc2VsZWN0b3IoKXtcclxuICAgIHRoaXMuYWN0aXZlU2VsZWN0b3IgPSAnJztcclxuICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuICB9XHJcblxyXG5cclxuICByZW1vdmUodHlwZTogYW55LCBldmVudDogYW55KSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAncmMnOlxyXG4gICAgICAgIGNvbnN0IHJjSW5kZXggPSB0aGlzLnJpc2tGb3JtLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QuZmluZEluZGV4KChyYzogYW55KSA9PiByYy5yY19pZCA9PSBldmVudC5yY19pZCk7XHJcbiAgICAgICAgdGhpcy5yaXNrRm9ybS5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0LnNwbGljZShyY0luZGV4LCAxKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnb3duZXInOlxyXG4gICAgICAgIGNvbnN0IG93bmVySW5kZXggPSB0aGlzLnJpc2tGb3JtLm93bmVyc0xpc3QuZmluZEluZGV4KChvd25lcjogYW55KSA9PiBvd25lci5tZW1iZXJfaWQgPT0gZXZlbnQubWVtYmVyX2lkKTtcclxuICAgICAgICB0aGlzLnJpc2tGb3JtLm93bmVyc0xpc3Quc3BsaWNlKG93bmVySW5kZXgsIDEpO1xyXG4gICAgICAgIHRoaXMuc2V0T3ZlcnNlZXJzTGlzdCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdvdmVyc2Vlcic6XHJcbiAgICAgICAgY29uc3Qgb3ZlcnNlZXJJbmRleCA9IHRoaXMucmlza0Zvcm0ub3ZlcnNlZXJzTGlzdC5maW5kSW5kZXgoKG92ZXJzZWVyOiBhbnkpID0+IG92ZXJzZWVyLm1lbWJlcl9pZCA9PSBldmVudC5tZW1iZXJfaWQpO1xyXG4gICAgICAgIHRoaXMucmlza0Zvcm0ub3ZlcnNlZXJzTGlzdC5zcGxpY2Uob3ZlcnNlZXJJbmRleCwgMSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2NhdGVnb3J5JzpcclxuICAgICAgICB0aGlzLnJpc2tGb3JtLmNhdGVnb3J5ID0ge1xyXG4gICAgICAgICAgdHlwZTogJ3N0cmF0ZWdpYycsXHJcbiAgICAgICAgICBzZWxlY3RlZENhdGVnb3J5OiAnJ1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5yaXNrRm9ybS5jYXRlZ29yeUN1c3RvbVRhZ3MgPSBbXTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBzYXZlU2VsZWN0ZWRSQ0xpc3QocmNJZHM6IGFueSkge1xyXG4gICAgdGhpcy5hY3RpdmVEZXNlbGVjdG9yKCk7XHJcbiAgICBjb25zdCBzZWxlY3RlZFJDID0gdGhpcy5zZXRMaXN0KHRoaXMucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdCwgcmNJZHMsICdpdGVtX2lkJyk7XHJcbiAgICB0aGlzLnJpc2tGb3JtLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QgPSBzZWxlY3RlZFJDO1xyXG4gICAgdGhpcy5zZXRPdmVyc2VlcnNMaXN0KCk7XHJcbiAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBzYXZlU2VsZWN0ZWRDYXRlZ29yeShjYXRlZ29yeTogYW55KSB7XHJcbiAgICB0aGlzLmFjdGl2ZURlc2VsZWN0b3IoKTtcclxuICAgIHRoaXMucmlza0Zvcm0uY2F0ZWdvcnkgPSBjYXRlZ29yeTtcclxuICAgIGNvbnN0IGN1c3RvbVRhZ3M6IGFueSA9IFtdO1xyXG4gICAgY2F0ZWdvcnkuc2VsZWN0ZWRDYXRlZ29yeS5jdXN0b21fdGFnLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB0YWcgPSB7XHJcbiAgICAgICAgY3VzdG9tX3RhZ19uYW1lOiBlbGVtZW50LnRhZ05hbWUsXHJcbiAgICAgICAgY3VzdG9tX3RhZ192YWx1ZTogJydcclxuICAgICAgfTtcclxuICAgICAgY3VzdG9tVGFncy5wdXNoKHRhZyk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucmlza0Zvcm0uY2F0ZWdvcnlDdXN0b21UYWdzID0gY3VzdG9tVGFncztcclxuICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHNhdmVTZWxlY3RlZE93bmVyc0xpc3QoaWRzOiBhbnkpIHtcclxuICAgIHRoaXMuYWN0aXZlRGVzZWxlY3RvcigpO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRPd25lcnMgPSB0aGlzLnNldExpc3QodGhpcy5vd25lcnNMaXN0LCBpZHMsICdtZW1iZXJfaWQnKTtcclxuICAgIHRoaXMucmlza0Zvcm0ub3duZXJzTGlzdCA9IHNlbGVjdGVkT3duZXJzO1xyXG4gICAgdGhpcy5zZXRPdmVyc2VlcnNMaXN0KCk7XHJcbiAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBzYXZlU2VsZWN0ZWRPdmVyc2VlcnNMaXN0KGlkczogYW55KSB7XHJcbiAgICB0aGlzLmFjdGl2ZURlc2VsZWN0b3IoKTtcclxuICAgIGNvbnN0IHNlbGVjdGVkT3ZlcnNlZXJzID0gdGhpcy5zZXRMaXN0KHRoaXMub3ZlcnNlZXJzTGlzdCwgaWRzLCAnbWVtYmVyX2lkJyk7XHJcbiAgICB0aGlzLnJpc2tGb3JtLm92ZXJzZWVyc0xpc3QgPSBzZWxlY3RlZE92ZXJzZWVycztcclxuICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgY2hhbmdlUmlza0Fzc2Vzc21lbnQobmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKG5hbWUpIHtcclxuICAgICAgY2FzZSAnc3VidHJhY3QnOlxyXG4gICAgICAgIGlmICh0aGlzLnJpc2tGb3JtLmFzc2Vzc21lbnRfZGVhZGxpbmVfZGF5cyA+IDEpIHtcclxuICAgICAgICAgIHRoaXMucmlza0Zvcm0uYXNzZXNzbWVudF9kZWFkbGluZV9kYXlzIC09IDE7XHJcbiAgICAgICAgICB0aGlzLnNldERhdGUodGhpcy5yaXNrRm9ybS5hc3Nlc3NtZW50X2RlYWRsaW5lX2RheXMpO1xyXG4gICAgICAgICAgLy8gdGhpcy5yaXNrQXNzZXNzbWVudERlYWRsaW5lRGF0ZSA9ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYWRkJzpcclxuICAgICAgICB0aGlzLnJpc2tGb3JtLmFzc2Vzc21lbnRfZGVhZGxpbmVfZGF5cyArPSAxO1xyXG4gICAgICAgIHRoaXMuc2V0RGF0ZSh0aGlzLnJpc2tGb3JtLmFzc2Vzc21lbnRfZGVhZGxpbmVfZGF5cyk7XHJcbiAgICAgICAgLy8gdGhpcy5yaXNrQXNzZXNzbWVudERlYWRsaW5lRGF0ZSA9ICcnO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgIH1cclxuICB9XHJcbiAgc2V0RGF0ZShkYXlzOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmIChkYXlzID49IDApIHtcclxuICAgICAgY29uc3QgbWlsaXNlY29uZHMgPSBkYXlzICogODY0MDAgKiAxMDAwO1xyXG4gICAgICBjb25zdCBkOiBudW1iZXIgPSBuZXcgRGF0ZShcclxuICAgICAgICBuZXcgRGF0ZShEYXRlLm5vdygpKS50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7XHJcbiAgICAgICAgICB0aW1lWm9uZTogdGhpcy50aW1lem9uZSxcclxuICAgICAgICB9KVxyXG4gICAgICApLmdldFRpbWUoKTtcclxuICAgICAgdGhpcy5kYXRlID0gbmV3IERhdGUoZCArIG1pbGlzZWNvbmRzKTtcclxuICAgIH1cclxuICB9XHJcbiAgY2hhbmdlUmlza0Fzc2Vzc21lbnREZWFkbGluZShldmVudDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAoIWlzTmFOKGV2ZW50KSkge1xyXG4gICAgICB0aGlzLnNldERhdGUoZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZXRMaXN0KGxpc3Q6IGFueVtdLCBpZHM6IGFueVtdLCBrZXk6IHN0cmluZykge1xyXG4gICAgY29uc3QgZGF0YTogYW55ID0gW107XHJcbiAgICBsaXN0LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoaWRzLmluY2x1ZGVzKGVsZW1lbnRba2V5XSkpIHtcclxuICAgICAgICBkYXRhLnB1c2goZWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGRhdGE7XHJcbiAgfVxyXG5cclxuICByZXR1cm5JZHMobGlzdDogYW55W10sIGtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gbGlzdC5tYXAoZWxlID0+IHsgaWYgKGVsZVtrZXldKSB7IHJldHVybiBlbGVba2V5XTsgfSB9KTtcclxuICB9XHJcblxyXG4gIHN1Ym1pdFJpc2soKSB7XHJcbiAgICB0aGlzLnNldFBvcHVwQnV0dG9ucygpO1xyXG4gICAgY29uc3QgdmFsaWQgPSB0aGlzLnZhbGlkYXRlUmlzaygpO1xyXG4gICAgaWYgKCF2YWxpZCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnICYmIHRoaXMuZWRpdERldGFpbHMuSWZBc3Nlc3NtZW50RG9uZSA+IDApIHtcclxuICAgICAgY29uc3QgcHJldlJDQXJyID0gdGhpcy5lZGl0RGV0YWlscy5yY19pZDtcclxuICAgICAgY29uc3QgY3VyclJDQXJyID0gdGhpcy5yZXR1cm5JZHModGhpcy5yaXNrRm9ybS5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0LCAncmNfaWQnKTtcclxuICAgICAgaWYgKHByZXZSQ0Fyci5sZW5ndGggPT09IGN1cnJSQ0Fyci5sZW5ndGggJiYgcHJldlJDQXJyLnNvcnQoKS5ldmVyeSgodmFsdWU6IGFueSwgaW5kZXg6IGFueSkgPT4gdmFsdWUgPT09IGN1cnJSQ0Fyci5zb3J0KClbaW5kZXhdKSkge1xyXG4gICAgICAgIHRoaXMuY3JlYXRlUmlzayh0aGlzLnJpc2tGb3JtKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBjb25maXJtYXRpb25EZXRhaWxzOiBDb25maXJtYXRpb25BbGVydCA9IHtcclxuICAgICAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICAgIG1lc3NhZ2U6IGBUaGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyKHMpIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJpc2sgaGF2ZSBiZWVuIG1vZGlmaWVkLlxyXG4gICAgICAgICAgICAgICBUaGlzIGhhcyBjYXVzZWQgdGhlIHJpc2sgdG8gbW92ZSB0byB0aGUgXCJJZGVudGlmaWVkICYgQXNzZXNzZWRcIiBzdGF0ZSBhbmQgYSBuZXcgcmlzayBsaWZlY3ljbGUgZm9yIHRoaXMgcmlzayBpcyB0byBiZWdpbi5gLFxyXG4gICAgICAgICAgYWN0aW9uOiAnRURJVF9SSVNLJyxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbkFsZXJ0LmVtaXQoY29uZmlybWF0aW9uRGV0YWlscyk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3JlYXRlUmlzayh0aGlzLnJpc2tGb3JtKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBhZGRNb3JlSW5mbyhldmVudDogYW55KSB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50Lm5hbWUpIHtcclxuICAgICAgY2FzZSAnUmlzayBPdmVyc2Vlcic6XHJcbiAgICAgICAgdGhpcy5yaXNrRm9ybS5hZGRPdmVyc2VlciA9IGV2ZW50Py5jaGVja2VkO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdSaXNrIE1pdGlnYXRpb24gUHJpb3JpdHknOlxyXG4gICAgICAgIHRoaXMucmlza0Zvcm0uYWRkTWl0aWdhdGlvbiA9IGV2ZW50Py5jaGVja2VkO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdSZWNvbW1lbmRlZCBNaXRpZ2F0aW9uIFBsYW5zJzpcclxuICAgICAgICB0aGlzLnJpc2tGb3JtLmFkZE1pdGlnYXRpb25QbGFuID0gZXZlbnQ/LmNoZWNrZWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNjcm9sbFRvQm90dG9tID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlUmlzaygpIHtcclxuICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcclxuICAgIGNvbnN0IGV2ZW50ID0gdGhpcy5yaXNrRm9ybS50aXRsZTtcclxuICAgIGNvbnN0IHJlID0gLyZuYnNwO3w8YnI+L2c7XHJcbiAgICB0aGlzLnJpc2tGb3JtLnRpdGxlID0gZXZlbnQucmVwbGFjZShyZSwgJycpLnRyaW0oKTtcclxuICAgIGlmICghdGhpcy5yaXNrRm9ybS50aXRsZSB8fCB0aGlzLnJpc2tGb3JtLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QubGVuZ3RoID09IDBcclxuICAgICAgfHwgdGhpcy5yaXNrRm9ybS5vd25lcnNMaXN0Lmxlbmd0aCA9PSAwIHx8XHJcbiAgICAgICgoIXRoaXMuc2V0dGluZ3NJbmZvLmFzc2Vzc21lbnRfZGVhZGxpbmVfZW5hYmxlKSAmJiAodGhpcy5yaXNrRm9ybT8uYXNzZXNzbWVudF9kZWFkbGluZV9kYXlzIDwgMSkgJiYgdGhpcy5yaXNrRm9ybT8ucmlza1R5cGUgIT09ICdSRVBPUlRFRCcpIHx8XHJcbiAgICAgICh0aGlzLnJpc2tGb3JtLnJpc2tUeXBlID09PSdSRVBPUlRFRCcgJiYgIXRoaXMucmlza0Zvcm0/LmRlc2NyaXB0aW9uPy50cmltKCk/Lmxlbmd0aCkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVSaXNrKHJpc2tGb3JtOiBhbnkpIHtcclxuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICB0aXRsZTogcmlza0Zvcm0udGl0bGUsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiByaXNrRm9ybS5kZXNjcmlwdGlvbixcclxuICAgICAgY2F0ZWdvcnlfY3VzdG9tX3RhZzogcmlza0Zvcm0uY2F0ZWdvcnlDdXN0b21UYWdzLFxyXG4gICAgICBhc3Nlc3NtZW50X2RlYWRsaW5lX2VuYWJsZTogdGhpcy5zZXR0aW5nc0luZm8uYXNzZXNzbWVudF9kZWFkbGluZV9lbmFibGUsXHJcbiAgICAgIG93bmVyOiB0aGlzLnJldHVybklkcyhyaXNrRm9ybS5vd25lcnNMaXN0LCAnbWVtYmVyX2lkJyksXHJcbiAgICAgIGNhdGVnb3J5OiAocmlza0Zvcm0uY2F0ZWdvcnk/LnNlbGVjdGVkQ2F0ZWdvcnk/LmNhdGVnb3J5X2lkKSA/IFtyaXNrRm9ybS5jYXRlZ29yeS5zZWxlY3RlZENhdGVnb3J5LmNhdGVnb3J5X2lkXSA6IFtdLFxyXG4gICAgICBtYW5hZ2Vfb3ZlcnNpZ2h0OiByaXNrRm9ybS5hZGRPdmVyc2VlciA/IHRoaXMucmV0dXJuSWRzKHJpc2tGb3JtLm92ZXJzZWVyc0xpc3QsICdtZW1iZXJfaWQnKSA6IFtdLFxyXG4gICAgICByY19pZDogdGhpcy5yZXR1cm5JZHMocmlza0Zvcm0ucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdCwgJ2l0ZW1faWQnKSxcclxuICAgICAgaGVhZF9pZHM6IHJpc2tGb3JtLmhlYWRfaWRzLFxyXG4gICAgICByYXRpbmdfYXJyOiBbXSxcclxuICAgICAgbWVtYmVyX2lkOiB0aGlzLm1lbWJlcklkLFxyXG4gICAgICBvcmdhbmlzYXRpb25faWQ6IHRoaXMub3JnYW5pemF0aW9uSWQsXHJcbiAgICAgIHJpc2tfcHJvZ3Jlc3NfZmxhZzogKHRoaXMubW9kZSA9PT0gJ0VESVQnKSA/IHRoaXMuZWRpdERldGFpbHMucmlza19wcm9ncmVzc19mbGFnIDogMSxcclxuICAgICAgSWZBc3Nlc3NtZW50RG9uZTogKHRoaXMubW9kZSA9PSAnRURJVCcpID8gdGhpcy5lZGl0RGV0YWlscy5JZkFzc2Vzc21lbnREb25lIDogMCxcclxuICAgICAgd29ya3Nob3BfaWQ6ICh0aGlzLm1vZGUgPT0gJ0VESVQnKSA/IHRoaXMuZWRpdERldGFpbHMud29ya3Nob3BfaWQgOiAwLFxyXG4gICAgICBjb21wbGV0ZV9hc3Nlc3NtZW50OiAwLFxyXG4gICAgICBtaXRpZ2F0aW9uOiAocmlza0Zvcm0uYWRkTWl0aWdhdGlvbikgPyByaXNrRm9ybS5taXRpZ2F0aW9uIDogMCxcclxuICAgICAgd2VpZ2h0YWdlX2VuYWJsZTogdGhpcy5zZXR0aW5nc0luZm8ud2VpZ2h0YWdlX2VuYWJsZSxcclxuICAgICAgdHJlYXRtZW50X3R5cGU6IHRoaXMuc2V0dGluZ3NJbmZvLnRyZWF0bWVudF9jcml0ZXJpYSxcclxuICAgICAgd2VpZ2h0YWdlX2RldGFpbHM6IHRoaXMuc2V0dGluZ3NJbmZvLndlaWdodGFnZV9kZXRhaWxzLFxyXG4gICAgICB3ZWlnaHRhZ2Vfc2V0X2J5OiB0aGlzLnNldHRpbmdzSW5mby53ZWlnaHRhZ2Vfc2V0X2J5LFxyXG4gICAgICB3ZWlnaHRhZ2Vfc3RyOiBbXHJcbiAgICAgICAgdGhpcy5zZXR0aW5nc0luZm8ud2VpZ2h0YWdlX2RldGFpbHMuaW1wYWN0LnZhbHVlLFxyXG4gICAgICAgIHRoaXMuc2V0dGluZ3NJbmZvLndlaWdodGFnZV9kZXRhaWxzLmxpa2VsaWhvb2QudmFsdWUsXHJcbiAgICAgICAgdGhpcy5zZXR0aW5nc0luZm8ud2VpZ2h0YWdlX2RldGFpbHMudmVsb2NpdHkudmFsdWUsXHJcbiAgICAgICAgdGhpcy5zZXR0aW5nc0luZm8ud2VpZ2h0YWdlX2RldGFpbHMudnVsbmVyYWJpbGl0eS52YWx1ZSxcclxuICAgICAgXSxcclxuICAgICAgYXNzZXNzbWVudF9kZWFkbGluZV9zZXRfYnk6IHRoaXMuc2V0dGluZ3NJbmZvLmFzc2Vzc21lbnRfZGVhZGxpbmVfc2V0X2J5LFxyXG4gICAgICBhc3Nlc3NtZW50X2RlYWRsaW5lX2RheXM6ICh0aGlzLnNldHRpbmdzSW5mby5hc3Nlc3NtZW50X2RlYWRsaW5lX2VuYWJsZSkgPyB0aGlzLnNldHRpbmdzSW5mby5hc3Nlc3NtZW50X2RlYWRsaW5lX2RheXMgOiByaXNrRm9ybS5hc3Nlc3NtZW50X2RlYWRsaW5lX2RheXMsXHJcbiAgICAgIHJpc2tfdHlwZTp0aGlzLnJpc2tGb3JtPy5yaXNrVHlwZSA/PyAnTk9STUFMJyxcclxuICAgICAgbWl0aWdhdGlvbl9wbGFuX3JlY29tbWVuZGF0aW9uOnRoaXMucmlza0Zvcm0/LmFkZE1pdGlnYXRpb25QbGFuID8gdGhpcy5yaXNrRm9ybT8ubWl0aWdhdGlvbkRlc2NyaXB0aW9uUGxhbiA/PycnIDonJ1xyXG5cclxuXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PSAnQ1JFQVRFJykge1xyXG4gICAgICB0aGlzLnJpc2tTZXJ2aWNlLmFkZFJpc2socGF5bG9hZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHJlcyk7XHJcbiAgICAgICAgdGhpcy5yaXNrRGF0YSA9IHJlcztcclxuICAgICAgICB0aGlzLnJpc2tJZCA9IHJlcy5faWQ7XHJcbiAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IHRydWU7XHJcblxyXG4gICAgIC8vICAgdGhpcy5yZXNldEZvcm0oKTtcclxuICAgICAgfSxcclxuICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zbmFja0Jhci5zaG93KCdPT1BTISBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgdGhlIHBhZ2UgY291bGQgbm90IGJlIGxvYWRlZC4gQ291bGQgeW91IHBsZWFzZSB0cnkgb25lIG1vcmUgdGltZT8nKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tb2RlID09ICdFRElUJyAmJiB0aGlzLm9wZW5lZEZyb20gIT09ICdNT1ZFX1RPX1JFR0lTVEVSJykge1xyXG4gICAgICB0aGlzLnNtaWxleU1lc3NhZ2UgPSBgVGhlIHJpc2sgaGFzIGJlZW4gbW9kaWZpZWQuYDtcclxuICAgICAgdGhpcy5yaXNrU2VydmljZS51cGRhdGVSaXNrKHRoaXMucmlza0lkLCBwYXlsb2FkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5yaXNrRGF0YSA9IHJlcztcclxuICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuXHJcbiAgICAgIH0sXHJcbiAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdygnT09QUyEgU29tZXRoaW5nIHdlbnQgd3JvbmcgYW5kIHRoZSBwYWdlIGNvdWxkIG5vdCBiZSBsb2FkZWQuIENvdWxkIHlvdSBwbGVhc2UgdHJ5IG9uZSBtb3JlIHRpbWU/Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKHRoaXMub3BlbmVkRnJvbSA9PT0gJ01PVkVfVE9fUkVHSVNURVInKXtcclxuICAgICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoe2V2dDp7YWN0aW9uOidNT1ZFX1RPX1JFR0lTVEVSJyxwYXlsb2FkfSwgY29uZmlybSA6IGZhbHNlfSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcmVzZXRGb3JtKCkge1xyXG4gICAgdGhpcy5zY3JvbGxUb0JvdHRvbSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gZmFsc2U7XHJcbiAgICB0aGlzLnJpc2tGb3JtID0ge1xyXG4gICAgICB0aXRsZTogJycsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgcmlza1R5cGU6dGhpcy5yaXNrRm9ybT8ucmlza1R5cGUsXHJcbiAgICAgIGFkZE1pdGlnYXRpb25QbGFuOmZhbHNlLFxyXG4gICAgICBtaXRpZ2F0aW9uRGVzY3JpcHRpb25QbGFuOiAnJyxcclxuICAgICAgcmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdDogW10sXHJcbiAgICAgIG93bmVyc0xpc3Q6IFtdLFxyXG4gICAgICBjYXRlZ29yeToge1xyXG4gICAgICAgIHR5cGU6ICdzdHJhdGVnaWMnLFxyXG4gICAgICAgIHNlbGVjdGVkQ2F0ZWdvcnk6ICcnLFxyXG4gICAgICB9LFxyXG4gICAgICBjYXRlZ29yeUN1c3RvbVRhZ3M6IFtdLFxyXG4gICAgICBvdmVyc2VlcnNMaXN0OiBbXSxcclxuICAgICAgbWl0aWdhdGlvbjogMCxcclxuICAgICAgYXNzZXNzbWVudF9kZWFkbGluZV9kYXlzOiAwLFxyXG4gICAgICBoZWFkX2lkczogW10sXHJcbiAgICAgIGFkZE92ZXJzZWVyOiBmYWxzZSxcclxuICAgICAgYWRkTWl0aWdhdGlvbjogZmFsc2VcclxuICAgIH07XHJcbiAgICB0aGlzLm5vblJlbW92YWJsZVVzZXJzTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5vcmdhbml6YXRpb25JZCA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uSWQoKTtcclxuICAgIHRoaXMubWVtYmVySWQgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldE1lbWJlcklkKCk7XHJcbiAgICB0aGlzLm5vblJlbW92YWJsZVVzZXJzTGlzdC5wdXNoKHRoaXMubWVtYmVySWQpO1xyXG4gICAgdGhpcy5kYXRlID0gbmV3IERhdGUoKTtcclxuICAgIHRoaXMuc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnJlZnJlc2hGb3JtLmVtaXQodHJ1ZSk7XHJcblxyXG4gICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XHJcbiAgICB0aGlzLmdldE93bmVyc0xpc3QoKTtcclxuICB9XHJcblxyXG5cclxuICBhY3Rpb24oZXZlbnQ6IHN0cmluZykge1xyXG4gICAgc3dpdGNoIChldmVudCkge1xyXG4gICAgICBjYXNlICdhZGRNb3JlJzpcclxuICAgICAgICB0aGlzLnJlc2V0Rm9ybSgpO1xyXG4gICAgICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd2aWV3Umlza3MnOlxyXG4gICAgICAgIHRoaXMudmlld1Jpc2tzKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ21hbmFnZVJlcG9ydGVkUmlzayc6XHJcbiAgICAgICAgdGhpcy5yZWRpcmVjdFRvUmVwb3J0ZWQoKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlU21pbGV5KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoe2V2dDp0aGlzLnJpc2tEYXRhLCBjb25maXJtIDogZmFsc2V9KTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgdmlld1Jpc2tzKCk6IHZvaWQge1xyXG4gdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcclxuICAgIGxldCB1cmw6IHN0cmluZztcclxuICAgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdC5zdGFydHNXaXRoKCdsb2NhbGhvc3QnKSkge1xyXG4gICAgICB1cmwgPSAnaHR0cDovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHVybCA9ICdodHRwczovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcclxuICAgICAgdXJsICs9ICcvbWFuYWdlLXJpc2svJyArIHRoaXMucmlza0lkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdXJsICs9ICcvcmlzay9tYW5hZ2Utcmlzay8nICsgdGhpcy5yaXNrSWQ7XHJcbiAgICB9XHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcclxuICAgIC8vdGhpcy5yZXNldEZvcm0oKTtcclxuICB9XHJcblxyXG5cclxuICByZWRpcmVjdFRvUmVwb3J0ZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2Nvbm5lY3RSZWZyZXNoLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgbGV0IHVybDogc3RyaW5nO1xyXG4gICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ob3N0LnN0YXJ0c1dpdGgoJ2xvY2FsaG9zdCcpKSB7XHJcbiAgICAgICAgIHVybCA9ICdodHRwOi8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0O1xyXG4gICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgdXJsID0gJ2h0dHBzOi8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0O1xyXG4gICAgICAgfVxyXG5cclxuICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdC5zdGFydHNXaXRoKCdsb2NhbGhvc3QnKSkge1xyXG4gICAgICAgICB1cmwgKz0gJy9yZXBvcnRlZC1yaXNrLyc7XHJcbiAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICB1cmwgKz0gJy9yaXNrL3JlcG9ydGVkLXJpc2svJztcclxuICAgICAgIH1cclxuICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gICAgICAgLy90aGlzLnJlc2V0Rm9ybSgpO1xyXG4gICAgIH1cclxuICBjaGVja0Rlc2NyaXB0aW9uKCkge1xyXG4gICAgaWYodGhpcy5yaXNrRm9ybS5kZXNjcmlwdGlvbiA9PSAnPGJyPicpIHtcclxuICAgICAgdGhpcy5yaXNrRm9ybS5kZXNjcmlwdGlvbiA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tNaXRpZ2F0aW9uUGxhbigpIHtcclxuICAgIGlmICh0aGlzLnJpc2tGb3JtLm1pdGlnYXRpb25EZXNjcmlwdGlvblBsYW4gPT0gJzxicj4nKSB7XHJcbiAgICAgIHRoaXMucmlza0Zvcm0ubWl0aWdhdGlvbkRlc2NyaXB0aW9uUGxhbiA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -41,8 +41,9 @@ export class LogIssueService {
|
|
|
41
41
|
getIssueCategories() {
|
|
42
42
|
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
43
43
|
return this.http
|
|
44
|
-
.get(this.env.assurance + 'Issue/Category/
|
|
44
|
+
.get(this.env.assurance + 'Issue/Category/CatList?categories=true', { headers })
|
|
45
45
|
.pipe(retry(2));
|
|
46
|
+
//https://devapi.v-comply.com/Assurance/Issue/Category/CatList/1?isBusinessCycle=true&categories=true
|
|
46
47
|
}
|
|
47
48
|
getResponsibilityCenterList() {
|
|
48
49
|
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
@@ -237,4 +238,4 @@ LogIssueService.ctorParameters = () => [
|
|
|
237
238
|
{ type: AuthService },
|
|
238
239
|
{ type: Configurations, decorators: [{ type: Optional }] }
|
|
239
240
|
];
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWlzc3VlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1zZXJ2aWNlcy9sb2ctaXNzdWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFNN0MsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFBb0IsSUFBZ0IsRUFBVSxXQUF3QixFQUFjLE1BQXVCO1FBQXZGLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQW1NdkUsNEJBQXVCLEdBQUcsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUN6QyxJQUFHLE1BQU0sRUFBQztnQkFDUixNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqRyxNQUFNLEVBQUUsR0FBRyxNQUFNLEtBQUssSUFBSSxDQUFDO2dCQUMzQixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUU3QyxPQUFPLEdBQUcsQ0FBQyxH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QUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUYsQ0FBQzs7OztZQTlQRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVRRLFVBQVU7WUFJVixXQUFXO1lBRFgsY0FBYyx1QkFTb0QsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXAsIHJldHJ5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9ucyB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb25zJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9nSXNzdWVTZXJ2aWNlIHtcclxuICBlbnYgITogYW55O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zKSB7XHJcbiAgICBpZiAoY29uZmlnKSB7XHJcbiAgICAgIHRoaXMuZW52ID0gY29uZmlnLmVudkNvbmZpZztcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0SXNzdWVUeXBlcygpe1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdpc3N1ZVR5cGVMaXN0Jywge2hlYWRlcnN9KVxyXG4gICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3JnUGVvcGxlKCl7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgLmdldDxhbnlbXT4odGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ3Blb3BsZScsIHtoZWFkZXJzfSlcclxuICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGdldElzc3VlQ2F0ZWdvcmllcygpe1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgIC5nZXQ8YW55W10+KHRoaXMuZW52LmFzc3VyYW5jZSArICdJc3N1ZS9DYXRlZ29yeS9MaXN0Jywge2hlYWRlcnN9KVxyXG4gICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuICBnZXRSZXNwb25zaWJpbGl0eUNlbnRlckxpc3QoKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAncmVzcG9uc2liaWxpdHlDZW50ZXJUcmVlJywgeyBoZWFkZXJzIH0pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuICBjcmVhdGVJc3N1ZShwYXlsb2FkOiBhbnkpe1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmVudi5hc3N1cmFuY2UrJ0lzc3VlJywgcGF5bG9hZCwge2hlYWRlcnN9KS5waXBlKFxyXG4gICAgcmV0cnkoMilcclxuICAgICk7XHJcbiAgfVxyXG4gIHVwZGF0ZUlzc3VlKHBheWxvYWQ6IGFueSxpc3N1ZUlkOiBzdHJpbmcpe1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuZW52LmFzc3VyYW5jZSsnSXNzdWUvJytpc3N1ZUlkLCBwYXlsb2FkLCB7aGVhZGVyc30pLnBpcGUoXHJcbiAgICByZXRyeSgyKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldENvbnRyb2xSaXNrKGF1ZGl0UGxhbklkOnN0cmluZywgdHlwZTpzdHJpbmcpe1xyXG4vLyAgICAgR2V0IExpbmtlZCBBdWRpdCBQbGFuIFJlc3BvbnNpYmlsaXRpZXMgYnkgQXVkaXRfUGxhbl9JZFxyXG4vLyBVUkw6IGh0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9yZXNwb25zaWJpbGl0aWVzLz9tb2RlPW1hbmFnZV9hdWRpdF9wbGFuX3Jlc3BvbnNpYmlsaXRpZXMmaWQ9NjEwYjMyOTE0NGM4MWEwMDA5Y2JiNTk4IE1ldGhvZDogR0VUXHJcblxyXG5cclxuXHJcbi8vIEdldCBMaW5rZWQgQXVkaXQgUGxhbiBSaXNrIGJ5IEF1ZGl0X1BsYW5fSWRcclxuLy8gVVJMOiBodHRwczovL2RldmFwaS52LWNvbXBseS5jb20vcmlzay8/bW9kZT1yaXNrL21hbmFnZV9hdWRpdF9wbGFuX3Jpc2smaWQ9NjEwYjMyOTE0NGM4MWEwMDA5Y2JiNTk4XHJcbi8vIE1ldGhvZDogR0VUXHJcbmNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgaWYodHlwZSA9PT0gJ1JFU1BPTlNJQklMSVRZJyl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4odGhpcy5lbnYucmVzcG9uc2liaWxpdGllc0dldCsnbWFuYWdlX2F1ZGl0X3BsYW5fcmVzcG9uc2liaWxpdGllcyZpZD0nK2F1ZGl0UGxhbklkLHtoZWFkZXJzfSkucGlwZShcclxuICAgICAgbWFwKChpdGVtczphbnkpID0+e1xyXG4gICAgICAgICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW06YW55KT0+KHtcclxuICAgICAgICAgICAgIGl0ZW1JZDogaXRlbT8ucmVwb3J0X2lkLFxyXG4gICAgICAgICAgICAgaXRlbUNvbnRyb2xJZCA6aXRlbT8uY29udHJvbF9pZCxcclxuICAgICAgICAgICAgIGl0ZW1Db250cm9sTmFtZSA6IGl0ZW0/LnJlcG9ydF9uYW1lLFxyXG4gICAgICAgICAgICAgaXRlbVR5cGUgOiAnUkVTUE9OU0lCSUxJVFknXHJcbiAgICAgICAgICAgfSlcclxuICAgICAgICAgICApXHJcbiAgICAgIH1cclxuICAgICAgKVxyXG4gICAgKVxyXG4gIH1lbHNlIGlmKHR5cGUgPT09ICdSSVNLJyl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4odGhpcy5lbnYucmlzaysncmlzay9tYW5hZ2VfYXVkaXRfcGxhbl9yaXNrJmlkPScrYXVkaXRQbGFuSWQse2hlYWRlcnN9KS5waXBlKFxyXG4gICAgICBtYXAoKGl0ZW1zOmFueSkgPT57XHJcbiAgICAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbTphbnkpPT4oe1xyXG4gICAgICAgICAgICAgaXRlbUlkOiBpdGVtPy5yaXNrX2lkLFxyXG4gICAgICAgICAgICAgaXRlbUNvbnRyb2xJZCA6aXRlbT8ucmlza19jb250cm9sX2lkLFxyXG4gICAgICAgICAgICAgaXRlbUNvbnRyb2xOYW1lIDogaXRlbT8udGl0bGUsXHJcbiAgICAgICAgICAgICBpdGVtVHlwZSA6ICdSSVNLJ1xyXG4gICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgKVxyXG4gICAgICB9XHJcbiAgICAgIClcclxuICAgIClcclxuICB9ZWxzZXtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgdmFsaWRhdGUoaXNzdWVEYXRhOiBhbnksIG9wZW5lZEZyb206IGFueSxpc1JDTWFuZGF0b3J5OmFueSl7XHJcbiAgICBjb25zdCBlcnJvcnMgPSBbXTtcclxuICAgIGlmICghaXNzdWVEYXRhLmlzc3VlTmFtZSAgfHwgaXNzdWVEYXRhLmlzc3VlTmFtZS50cmltKCkubGVuZ3RoID09PSAwICl7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZU5hbWUnKTtcclxuICAgIH1cclxuICAgIGlmIChpc3N1ZURhdGEuaXNzdWVSQy5sZW5ndGggPT09IDAgJiYgaXNSQ01hbmRhdG9yeSl7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZVJDJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNzdWVEYXRhLmVudHJ1c3RUby5sZW5ndGggPT09IDAgKXtcclxuICAgICAgZXJyb3JzLnB1c2goJ2VudHJ1c3RUbycpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKXtcclxuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlRHVlRGF0ZScpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzc3VlRGF0YS5pc3N1ZVJlY29tbWVuZGF0aW9uLnJlcGxhY2UoLyZuYnNwOy9nLCAnJykucmVwbGFjZSgvXFw8YnJcXHMqW1xcL10/Pi9naSwgJycpLnRyaW0oKS5sZW5ndGggPT09IDAgKXtcclxuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlUmVjb21tZW5kYXRpb24nKTtcclxuICAgIH1cclxuICAgIHJldHVybiBlcnJvcnM7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVBheWxvYWQoaXNzdWVEYXRhOiBhbnksIG9wdGlvbkZpZWxkc1N0YXR1czogYW55KXtcclxuICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpO1xyXG4gICAgY29uc3QgZGF0ZVNwbGl0ID0gW3NlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpLCBzZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEsIHNlbGVjdGVkRGF0ZS5nZXREYXRlKCldO1xyXG4gICAgY29uc3QgdGltZTogYW55ID0gdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKS5zcGxpdCgnOicpO1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGRhdGVTcGxpdFswXSwgZGF0ZVNwbGl0WzFdIC0gMSxkYXRlU3BsaXRbMl0sIHRpbWVbMF0sIHRpbWVbMV0sIDApO1xyXG5cclxuICAgIGNvbnN0IGNyZWF0ZUlzc3VlOiBhbnkgPSB7XHJcbiAgICAgIGlzc3VlX2Rlc2NyaXB0aW9uX2F0dGFjaG1lbnRzOiBpc3N1ZURhdGE/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHMsXHJcbiAgICAgIGFzc29jaWF0ZWRfcmlzazogb3B0aW9uRmllbGRzU3RhdHVzLkFTU09DSUFURURfUklTS1MgPyBpc3N1ZURhdGEuaXNzdWVBc3NvY2lhdGVkUmlzazonJyxcclxuICAgICAgaXNzdWVfbmFtZTogaXNzdWVEYXRhLmlzc3VlTmFtZSxcclxuICAgICAgcmVwb3J0X2lkOiAnMCcsXHJcbiAgICAgIGlzc3VlX2Rlc2NyaXB0aW9uOiBpc3N1ZURhdGEuaXNzdWVEZXNjcmlwdGlvbixcclxuICAgICAgaXNzdWVfdHlwZTogb3B0aW9uRmllbGRzU3RhdHVzLklTU1VFX1RZUEUgPyB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVUeXBlLCAnaXNzdWVfaWQnKS50b1N0cmluZygpIDogJycsXHJcbiAgICAgIGV4Y2VwdGlvbl90eXBlOiBvcHRpb25GaWVsZHNTdGF0dXMuRVhDRVBUSU9OX1RZUEUgPyBpc3N1ZURhdGEuZXhjZXB0aW9uVHlwZS50b1N0cmluZygpIDogJycsXHJcbiAgICAgIHJpc2tfY2xhc3M6IGlzc3VlRGF0YS5pc3N1ZVJpc2tSYXRpbmcudG9TdHJpbmcoKSA/PyAnJyxcclxuICAgICAgcHJpb3JpdHk6IG9wdGlvbkZpZWxkc1N0YXR1cy5QUklPUklUWSA/ICBpc3N1ZURhdGEuaXNzdWVQcmlvcml0eS50b1N0cmluZygpIDogJycsXHJcbiAgICAgIGlzc3VlX2NhdGVnb3J5X2lkOiB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVDYXRlZ29yeSwgJ2NhdGVnb3J5X2lkJykgPz8gMCxcclxuICAgICAgcmVjb21tZW5kYXRpb246IGlzc3VlRGF0YS5pc3N1ZVJlY29tbWVuZGF0aW9uLFxyXG4gICAgICBlbnRydXN0ZWRfdG86IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5lbnRydXN0VG8sICdlbXBsb3llZV9pZCcpID8/IDAsXHJcbiAgICAgIGlzc3VlX2RhdGU6IGRhdGVTcGxpdFswXSArICctJyArIGRhdGVTcGxpdFsxXSArICctJyArIGRhdGVTcGxpdFsyXSArICcgJyArIHRoaXMuY29udmVydEZyb20xMlRvMjRGb3JtYXQoaXNzdWVEYXRhLmlzc3VlRHVlVGltZSksXHJcbiAgICAgIGZhaWxlZF90aW1lOiB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWUpLFxyXG4gICAgICBpc3N1ZV9kdWVfZGF0ZTogZGF0ZVNwbGl0WzBdICsgJy0nICsgZGF0ZVNwbGl0WzFdICsgJy0nICsgZGF0ZVNwbGl0WzJdICsgJyAnICsgdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKSxcclxuICAgICAgZ3JjX2FyZWE6ICcnLFxyXG4gICAgICBjY19lbXBsb3llZV9lbWFpbDogb3B0aW9uRmllbGRzU3RhdHVzLk9WRVJTSUdIVCA/IHRoaXMuYXJyYXlUb0lEc0R0cmluZyhpc3N1ZURhdGEuaXNzdWVDQ1VzZXJzLCAnZW1wbG95ZWVfZW1haWwnKSA6ICcnLFxyXG4gICAgICBmYWlsdXJlX2NjX2VtcGxveWVlX2VtYWlsOiBvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUID8gdGhpcy5hcnJheVRvSURzRHRyaW5nKGlzc3VlRGF0YS5mYWlsdXJlQ0NVc2VycywgJ2VtcGxveWVlX2VtYWlsJykgOiAnJyxcclxuICAgICAgY3VzdG9tX3RhZ192YWx1ZTogJycsXHJcbiAgICAgIGlzc3VlX3Jlc29sdmVfdGltZXN0YW1wOiAoZGF0ZS5nZXRUaW1lKCkgLyAxMDAwKS50b1N0cmluZygpLFxyXG4gICAgICBldmlkZW5jZV91cGxvYWRfZmxhZzogb3B0aW9uRmllbGRzU3RhdHVzLkVWSURFTkNFID8gKGlzc3VlRGF0YS5ldmlkZW5jZVJlcXVpcmVkID8gJzEnIDogJzAnICkgIDogJzAnLFxyXG4gICAgfTtcclxuICAgIGlmIChpc3N1ZURhdGEuaXNzdWVSQy5sZW5ndGgpe1xyXG4gICAgICBjcmVhdGVJc3N1ZS5yY19pZCA9IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZVJDLCAncmNfaWQnKSA/PyAwO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjcmVhdGVJc3N1ZTtcclxuICB9XHJcblxyXG5cclxuICBwYXlsb2FkQnVpbGRlcihpc3N1ZURhdGE6YW55LG9wdGlvbkZpZWxkc1N0YXR1czphbnkpe1xyXG4gICBjb25zb2xlLmxvZyhpc3N1ZURhdGEpO1xyXG4gICBjb25zdCBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZShpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKTtcclxuICAgY29uc3QgZGF0ZVNwbGl0ID0gW3NlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpLCBzZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEsIHNlbGVjdGVkRGF0ZS5nZXREYXRlKCldO1xyXG4gICBjb25zdCBwYXlsb2FkICA6YW55ID0ge1xyXG4gICAgIGRlc2NyaXB0aW9uIDogW10sXHJcbiAgICAgYXNzb2NpYXRlZF9yaXNrIDogW10sXHJcbiAgICAgcmVjb21tZW5kYXRpb246W11cclxuICAgfTtcclxuICAgcGF5bG9hZC50aXRsZSA9IGlzc3VlRGF0YS5pc3N1ZU5hbWU/PycnO1xyXG4gICBwYXlsb2FkLnJjX2lkID0gaXNzdWVEYXRhLmlzc3VlUkMubGVuZ3RoID8gdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmlzc3VlUkMsICdyY19pZCcpIDogbnVsbDtcclxuICAgcGF5bG9hZC5jYXRlZ29yeV9pZCA9IGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5Lmxlbmd0aCA/IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5LCAnY2F0ZWdvcnlfaWQnKSA6IG51bGw7XHJcbiAgIHBheWxvYWQuZGVzY3JpcHRpb25bMF0gPSB7XHJcbiAgICAgdGV4dDppc3N1ZURhdGEuaXNzdWVEZXNjcmlwdGlvbiA/PyAnJyxcclxuICAgICBhdHRhY2htZW50czppc3N1ZURhdGE/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHMubGVuZ3RoID8gaXNzdWVEYXRhPy5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzOltdXHJcbiAgIH1cclxuICAgcGF5bG9hZC5leGNlcHRpb25fdHlwZSA9IG9wdGlvbkZpZWxkc1N0YXR1cy5FWENFUFRJT05fVFlQRSA/IE51bWJlcihpc3N1ZURhdGEuZXhjZXB0aW9uVHlwZSkgOiBudWxsO1xyXG4gICBwYXlsb2FkLnJpc2tfY2xhc3MgPSBpc3N1ZURhdGEuaXNzdWVSaXNrUmF0aW5nID8/IG51bGw7XHJcbiAgIHBheWxvYWQucHJpb3JpdHkgPSBvcHRpb25GaWVsZHNTdGF0dXMuUFJJT1JJVFkgPyAgTnVtYmVyKGlzc3VlRGF0YS5pc3N1ZVByaW9yaXR5KSA6IG51bGw7XHJcbiAgIHBheWxvYWQuYXNzaWduZWVfaWQgPSBpc3N1ZURhdGEuZW50cnVzdFRvID8gdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmVudHJ1c3RUbywgJ215X21lbWJlcl9pZCcpIDogbnVsbDtcclxuICAgcGF5bG9hZC5hc3NvY2lhdGVkX3Jpc2tbMF09e1xyXG4gICAgIHRleHQ6IG9wdGlvbkZpZWxkc1N0YXR1cy5BU1NPQ0lBVEVEX1JJU0tTID8gaXNzdWVEYXRhLmlzc3VlQXNzb2NpYXRlZFJpc2s6JycsXHJcbiAgICAgYXR0YWNobWVudHM6W11cclxuICAgfVxyXG4gICBwYXlsb2FkLnJlY29tbWVuZGF0aW9uWzBdID17XHJcbiAgICB0ZXh0OiBpc3N1ZURhdGEuaXNzdWVSZWNvbW1lbmRhdGlvbj8/JycsXHJcbiAgICBhdHRhY2htZW50czppc3N1ZURhdGE/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzLmxlbmd0aCA/IGlzc3VlRGF0YT8ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM6W11cclxuICAgfVxyXG4gICBwYXlsb2FkLmV2aWRlbmNlID0ge2V2aWRlbmNlX2ZsYWc6IG9wdGlvbkZpZWxkc1N0YXR1cy5FVklERU5DRSA/IChpc3N1ZURhdGEuZXZpZGVuY2VSZXF1aXJlZCA/IDEgOiAwICkgIDogMCB9XHJcbiAgIHBheWxvYWQuZnJlcXVlbmN5X2RldGFpbHMgPSB7XHJcbiAgICBmcmVxdWVuY3lfdGltZTogdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKT8/JycsXHJcbiAgICBmcmVxdWVuY3lfZGF0ZTogIGRhdGVTcGxpdFswXSArICctJyArIChkYXRlU3BsaXRbMV0gPCAxMCA/ICcwJyArIGRhdGVTcGxpdFsxXTogZGF0ZVNwbGl0WzFdKSArICctJyArIChkYXRlU3BsaXRbMl08MTA/ICcwJyArIGRhdGVTcGxpdFsyXTpkYXRlU3BsaXRbMl0pXHJcbiAgIH1cclxuICAgcGF5bG9hZC5vdmVyc2VlciA9IHtcclxuICAgIGNjX2VtYWlsOiBvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUID8oaXNzdWVEYXRhLmlzc3VlQ0NVc2Vycy5sZW5ndGg/IGlzc3VlRGF0YS5pc3N1ZUNDVXNlcnMubWFwKCh4OmFueSkgPT4ge3JldHVybiB7IG1lbWJlcl9pZDogeC5teV9tZW1iZXJfaWQgPz8gMCAsIGFsZXJ0X2VuYWJsZTogMX19KTpbXSkgOltdLFxyXG4gICAgZmFpbHVyZV9jY19lbWFpbDpvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUID8oaXNzdWVEYXRhLmZhaWx1cmVDQ1VzZXJzLmxlbmd0aD8gaXNzdWVEYXRhLmZhaWx1cmVDQ1VzZXJzLm1hcCgoeDphbnkpID0+IHtyZXR1cm4geyBtZW1iZXJfaWQ6IHgubXlfbWVtYmVyX2lkPz8gMCAsIGFsZXJ0X2VuYWJsZTogMX19KTpbXSkgOltdXHJcbiAgIH1cclxuICAgcGF5bG9hZC5jdXN0b21fdGFncyA9IGlzc3VlRGF0YT8uaXNzdWVDdXN0b21UYWc7XHJcbiAgIGNvbnNvbGUubG9nKHBheWxvYWQpXHJcbiAgIHJldHVybiBwYXlsb2FkO1xyXG4gIH1cclxuXHJcbiAgYXJyYXlUb0lkKGFycmF5OiBhbnksIGtleTogYW55KXtcclxuIGlmIChhcnJheS5sZW5ndGggPT09IDApe3JldHVybiAnJzsgfVxyXG4gZWxzZSB7XHJcbiAgIHJldHVybiBhcnJheVswXVtrZXldO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiBjb252ZXJ0RnJvbTEyVG8yNEZvcm1hdCA9ICh0aW1lMTI6IGFueSkgPT4ge1xyXG4gIGlmKHRpbWUxMil7XHJcbiAgICBjb25zdCBbc0hvdXJzLCBtaW51dGVzLCBwZXJpb2RdID0gdGltZTEyLm1hdGNoKC8oWzAtOV17MSwyfSk6KFswLTldezJ9KSAoYW18cG18QU18UE0pLykuc2xpY2UoMSk7XHJcbiAgICBjb25zdCBQTSA9IHBlcmlvZCA9PT0gJ1BNJztcclxuICAgIGNvbnN0IGhvdXJzID0gKCtzSG91cnMgJSAxMikgKyAoUE0gPyAxMiA6IDApO1xyXG5cclxuICAgIHJldHVybiBgJHsoJzAnICsgaG91cnMpLnNsaWNlKC0yKX06JHttaW51dGVzfTowMGA7XHJcbiAgfWVsc2V7XHJcbiAgICByZXR1cm4gJzIzOjU5OjAwJztcclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuY29udmVydEZyb20yNFRvMTJGb3JtYXQgKHRpbWU6YW55KSB7XHJcbiAgY29uc3QgaGhtbSA9IHRpbWUuc3BsaXQoJzonKTtcclxuICB0aW1lID0gYCR7aGhtbVswXX06JHtoaG1tWzFdfWA7XHJcbiAgLy8gQ2hlY2sgY29ycmVjdCB0aW1lIGZvcm1hdCBhbmQgc3BsaXQgaW50byBjb21wb25lbnRzXHJcbiAgdGltZSA9IHRpbWUudG9TdHJpbmcoKS5tYXRjaCAoL14oWzAxXVxcZHwyWzAtM10pKDopKFswLTVdXFxkKSg6WzAtNV1cXGQpPyQvKSB8fCBbdGltZV07XHJcblxyXG4gIGlmICh0aW1lLmxlbmd0aCA+IDEpIHsgLy8gSWYgdGltZSBmb3JtYXQgY29ycmVjdFxyXG4gICAgdGltZSA9IHRpbWUuc2xpY2UgKDEpOyAgLy8gUmVtb3ZlIGZ1bGwgc3RyaW5nIG1hdGNoIHZhbHVlXHJcbiAgICB0aW1lWzVdID0gK3RpbWVbMF0gPCAxMiA/ICcgQU0nIDogJyBQTSc7IC8vIFNldCBBTS9QTVxyXG4gICAgdGltZVswXSA9ICt0aW1lWzBdICUgMTIgfHwgMTI7IC8vIEFkanVzdCBob3Vyc1xyXG4gIH1cclxuICByZXR1cm4gdGltZS5qb2luICgnJyk7IC8vIHJldHVybiBhZGp1c3RlZCB0aW1lIG9yIG9yaWdpbmFsIHN0cmluZ1xyXG59XHJcblxyXG5hcnJheVRvSURzRHRyaW5nKGFycmF5OiBhbnksIGlkZW50aWZpZXJLZXk6IGFueSl7XHJcbiBjb25zdCBsaXN0ID0gYXJyYXkubWFwKChlbDogYW55KSA9PiB7XHJcbiAgICByZXR1cm4gZWxbaWRlbnRpZmllcktleV07IH1cclxuICAgICk7XHJcbiByZXR1cm4gbGlzdC5qb2luKCk7XHJcbn1cclxuXHJcblxyXG5cclxuICAvKipcclxuICAgKiBVcGxvYWRzIHRoZSBnaXZlbiBmaWxlIHRvIHNlcnZlclxyXG4gICAqIEBwYXJhbSBwYXlsb2FkIHBheWxvYWQgRmlsZSBkYXRhIHRvIGJlIHVwbG9hZGVkXHJcbiAgICogQHBhcmFtIHBhdGggcGF0aCBQYXRoIG9mIGZpbGUgdG8gYmUgdXBsb2FkZWRcclxuICAgKiBAcmV0dXJucyByZXNwb25zZSBhZnRlciB1cGxvYWRpbmcgYSBmaWxlXHJcbiAgICovXHJcbiAgIHVwbG9hZEZpbGVzKHBheWxvYWQ6IGFueSwgcGF0aDogYW55KSB7XHJcbiAgICAvLyB7XHJcbiAgICAvLyAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG4gICAgLy8gICBvYnNlcnZlOiAnZXZlbnRzJ31cclxuICAgIGNvbnN0IE9SR19QQVRIID0gYG8vJHtwYXRofWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5lbnYuZmlsZVVwbG9hZEVuZFBvaW50ICsgT1JHX1BBVEggICsgJyZuZ3N3LWJ5cGFzcz10cnVlJywgcGF5bG9hZCk7XHJcbiAgfVxyXG5cclxuICBnZXRJc3N1ZURldGFpbHMoaXNzdWVJZDogc3RyaW5nKXtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudi5hc3N1cmFuY2UrJ0lzc3VlL0VkaXQvJytpc3N1ZUlkLHtoZWFkZXJzfSkucGlwZShyZXRyeSgzKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWlzc3VlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1zZXJ2aWNlcy9sb2ctaXNzdWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFNN0MsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFBb0IsSUFBZ0IsRUFBVSxXQUF3QixFQUFjLE1BQXVCO1FBQXZGLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQW9NdkUsNEJBQXVCLEdBQUcsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUN6QyxJQUFHLE1BQU0sRUFBQztnQkFDUixNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqRyxNQUFNLEVBQUUsR0FBRyxNQUFNLEtBQUssSUFBSSxDQUFDO2dCQUMzQixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUU3QyxPQUFPLEdBQUcsQ0FBQyxH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QyxFQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7Ozs7WUEvUEYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFUUSxVQUFVO1lBSVYsV0FBVztZQURYLGNBQWMsdUJBU29ELFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFwLCByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi9jb25maWd1cmF0aW9ucyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ0lzc3VlU2VydmljZSB7XHJcbiAgZW52ICE6IGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9ucykge1xyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICB0aGlzLmVudiA9IGNvbmZpZy5lbnZDb25maWc7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGdldElzc3VlVHlwZXMoKXtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5vcmdhbml6YXRpb25HZXQgKyAnaXNzdWVUeXBlTGlzdCcsIHtoZWFkZXJzfSlcclxuICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGdldE9yZ1Blb3BsZSgpe1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdwZW9wbGUnLCB7aGVhZGVyc30pXHJcbiAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRJc3N1ZUNhdGVnb3JpZXMoKXtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5hc3N1cmFuY2UgKyAnSXNzdWUvQ2F0ZWdvcnkvQ2F0TGlzdD9jYXRlZ29yaWVzPXRydWUnLCB7aGVhZGVyc30pXHJcbiAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgICAvL2h0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9Bc3N1cmFuY2UvSXNzdWUvQ2F0ZWdvcnkvQ2F0TGlzdC8xP2lzQnVzaW5lc3NDeWNsZT10cnVlJmNhdGVnb3JpZXM9dHJ1ZVxyXG4gIH1cclxuICBnZXRSZXNwb25zaWJpbGl0eUNlbnRlckxpc3QoKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAncmVzcG9uc2liaWxpdHlDZW50ZXJUcmVlJywgeyBoZWFkZXJzIH0pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuICBjcmVhdGVJc3N1ZShwYXlsb2FkOiBhbnkpe1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmVudi5hc3N1cmFuY2UrJ0lzc3VlJywgcGF5bG9hZCwge2hlYWRlcnN9KS5waXBlKFxyXG4gICAgcmV0cnkoMilcclxuICAgICk7XHJcbiAgfVxyXG4gIHVwZGF0ZUlzc3VlKHBheWxvYWQ6IGFueSxpc3N1ZUlkOiBzdHJpbmcpe1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuZW52LmFzc3VyYW5jZSsnSXNzdWUvJytpc3N1ZUlkLCBwYXlsb2FkLCB7aGVhZGVyc30pLnBpcGUoXHJcbiAgICByZXRyeSgyKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldENvbnRyb2xSaXNrKGF1ZGl0UGxhbklkOnN0cmluZywgdHlwZTpzdHJpbmcpe1xyXG4vLyAgICAgR2V0IExpbmtlZCBBdWRpdCBQbGFuIFJlc3BvbnNpYmlsaXRpZXMgYnkgQXVkaXRfUGxhbl9JZFxyXG4vLyBVUkw6IGh0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9yZXNwb25zaWJpbGl0aWVzLz9tb2RlPW1hbmFnZV9hdWRpdF9wbGFuX3Jlc3BvbnNpYmlsaXRpZXMmaWQ9NjEwYjMyOTE0NGM4MWEwMDA5Y2JiNTk4IE1ldGhvZDogR0VUXHJcblxyXG5cclxuXHJcbi8vIEdldCBMaW5rZWQgQXVkaXQgUGxhbiBSaXNrIGJ5IEF1ZGl0X1BsYW5fSWRcclxuLy8gVVJMOiBodHRwczovL2RldmFwaS52LWNvbXBseS5jb20vcmlzay8/bW9kZT1yaXNrL21hbmFnZV9hdWRpdF9wbGFuX3Jpc2smaWQ9NjEwYjMyOTE0NGM4MWEwMDA5Y2JiNTk4XHJcbi8vIE1ldGhvZDogR0VUXHJcbmNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgaWYodHlwZSA9PT0gJ1JFU1BPTlNJQklMSVRZJyl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4odGhpcy5lbnYucmVzcG9uc2liaWxpdGllc0dldCsnbWFuYWdlX2F1ZGl0X3BsYW5fcmVzcG9uc2liaWxpdGllcyZpZD0nK2F1ZGl0UGxhbklkLHtoZWFkZXJzfSkucGlwZShcclxuICAgICAgbWFwKChpdGVtczphbnkpID0+e1xyXG4gICAgICAgICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW06YW55KT0+KHtcclxuICAgICAgICAgICAgIGl0ZW1JZDogaXRlbT8ucmVwb3J0X2lkLFxyXG4gICAgICAgICAgICAgaXRlbUNvbnRyb2xJZCA6aXRlbT8uY29udHJvbF9pZCxcclxuICAgICAgICAgICAgIGl0ZW1Db250cm9sTmFtZSA6IGl0ZW0/LnJlcG9ydF9uYW1lLFxyXG4gICAgICAgICAgICAgaXRlbVR5cGUgOiAnUkVTUE9OU0lCSUxJVFknXHJcbiAgICAgICAgICAgfSlcclxuICAgICAgICAgICApXHJcbiAgICAgIH1cclxuICAgICAgKVxyXG4gICAgKVxyXG4gIH1lbHNlIGlmKHR5cGUgPT09ICdSSVNLJyl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4odGhpcy5lbnYucmlzaysncmlzay9tYW5hZ2VfYXVkaXRfcGxhbl9yaXNrJmlkPScrYXVkaXRQbGFuSWQse2hlYWRlcnN9KS5waXBlKFxyXG4gICAgICBtYXAoKGl0ZW1zOmFueSkgPT57XHJcbiAgICAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbTphbnkpPT4oe1xyXG4gICAgICAgICAgICAgaXRlbUlkOiBpdGVtPy5yaXNrX2lkLFxyXG4gICAgICAgICAgICAgaXRlbUNvbnRyb2xJZCA6aXRlbT8ucmlza19jb250cm9sX2lkLFxyXG4gICAgICAgICAgICAgaXRlbUNvbnRyb2xOYW1lIDogaXRlbT8udGl0bGUsXHJcbiAgICAgICAgICAgICBpdGVtVHlwZSA6ICdSSVNLJ1xyXG4gICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgKVxyXG4gICAgICB9XHJcbiAgICAgIClcclxuICAgIClcclxuICB9ZWxzZXtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgdmFsaWRhdGUoaXNzdWVEYXRhOiBhbnksIG9wZW5lZEZyb206IGFueSxpc1JDTWFuZGF0b3J5OmFueSl7XHJcbiAgICBjb25zdCBlcnJvcnMgPSBbXTtcclxuICAgIGlmICghaXNzdWVEYXRhLmlzc3VlTmFtZSAgfHwgaXNzdWVEYXRhLmlzc3VlTmFtZS50cmltKCkubGVuZ3RoID09PSAwICl7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZU5hbWUnKTtcclxuICAgIH1cclxuICAgIGlmIChpc3N1ZURhdGEuaXNzdWVSQy5sZW5ndGggPT09IDAgJiYgaXNSQ01hbmRhdG9yeSl7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZVJDJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNzdWVEYXRhLmVudHJ1c3RUby5sZW5ndGggPT09IDAgKXtcclxuICAgICAgZXJyb3JzLnB1c2goJ2VudHJ1c3RUbycpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKXtcclxuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlRHVlRGF0ZScpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzc3VlRGF0YS5pc3N1ZVJlY29tbWVuZGF0aW9uLnJlcGxhY2UoLyZuYnNwOy9nLCAnJykucmVwbGFjZSgvXFw8YnJcXHMqW1xcL10/Pi9naSwgJycpLnRyaW0oKS5sZW5ndGggPT09IDAgKXtcclxuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlUmVjb21tZW5kYXRpb24nKTtcclxuICAgIH1cclxuICAgIHJldHVybiBlcnJvcnM7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVBheWxvYWQoaXNzdWVEYXRhOiBhbnksIG9wdGlvbkZpZWxkc1N0YXR1czogYW55KXtcclxuICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpO1xyXG4gICAgY29uc3QgZGF0ZVNwbGl0ID0gW3NlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpLCBzZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEsIHNlbGVjdGVkRGF0ZS5nZXREYXRlKCldO1xyXG4gICAgY29uc3QgdGltZTogYW55ID0gdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKS5zcGxpdCgnOicpO1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGRhdGVTcGxpdFswXSwgZGF0ZVNwbGl0WzFdIC0gMSxkYXRlU3BsaXRbMl0sIHRpbWVbMF0sIHRpbWVbMV0sIDApO1xyXG5cclxuICAgIGNvbnN0IGNyZWF0ZUlzc3VlOiBhbnkgPSB7XHJcbiAgICAgIGlzc3VlX2Rlc2NyaXB0aW9uX2F0dGFjaG1lbnRzOiBpc3N1ZURhdGE/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHMsXHJcbiAgICAgIGFzc29jaWF0ZWRfcmlzazogb3B0aW9uRmllbGRzU3RhdHVzLkFTU09DSUFURURfUklTS1MgPyBpc3N1ZURhdGEuaXNzdWVBc3NvY2lhdGVkUmlzazonJyxcclxuICAgICAgaXNzdWVfbmFtZTogaXNzdWVEYXRhLmlzc3VlTmFtZSxcclxuICAgICAgcmVwb3J0X2lkOiAnMCcsXHJcbiAgICAgIGlzc3VlX2Rlc2NyaXB0aW9uOiBpc3N1ZURhdGEuaXNzdWVEZXNjcmlwdGlvbixcclxuICAgICAgaXNzdWVfdHlwZTogb3B0aW9uRmllbGRzU3RhdHVzLklTU1VFX1RZUEUgPyB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVUeXBlLCAnaXNzdWVfaWQnKS50b1N0cmluZygpIDogJycsXHJcbiAgICAgIGV4Y2VwdGlvbl90eXBlOiBvcHRpb25GaWVsZHNTdGF0dXMuRVhDRVBUSU9OX1RZUEUgPyBpc3N1ZURhdGEuZXhjZXB0aW9uVHlwZS50b1N0cmluZygpIDogJycsXHJcbiAgICAgIHJpc2tfY2xhc3M6IGlzc3VlRGF0YS5pc3N1ZVJpc2tSYXRpbmcudG9TdHJpbmcoKSA/PyAnJyxcclxuICAgICAgcHJpb3JpdHk6IG9wdGlvbkZpZWxkc1N0YXR1cy5QUklPUklUWSA/ICBpc3N1ZURhdGEuaXNzdWVQcmlvcml0eS50b1N0cmluZygpIDogJycsXHJcbiAgICAgIGlzc3VlX2NhdGVnb3J5X2lkOiB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVDYXRlZ29yeSwgJ2NhdGVnb3J5X2lkJykgPz8gMCxcclxuICAgICAgcmVjb21tZW5kYXRpb246IGlzc3VlRGF0YS5pc3N1ZVJlY29tbWVuZGF0aW9uLFxyXG4gICAgICBlbnRydXN0ZWRfdG86IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5lbnRydXN0VG8sICdlbXBsb3llZV9pZCcpID8/IDAsXHJcbiAgICAgIGlzc3VlX2RhdGU6IGRhdGVTcGxpdFswXSArICctJyArIGRhdGVTcGxpdFsxXSArICctJyArIGRhdGVTcGxpdFsyXSArICcgJyArIHRoaXMuY29udmVydEZyb20xMlRvMjRGb3JtYXQoaXNzdWVEYXRhLmlzc3VlRHVlVGltZSksXHJcbiAgICAgIGZhaWxlZF90aW1lOiB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWUpLFxyXG4gICAgICBpc3N1ZV9kdWVfZGF0ZTogZGF0ZVNwbGl0WzBdICsgJy0nICsgZGF0ZVNwbGl0WzFdICsgJy0nICsgZGF0ZVNwbGl0WzJdICsgJyAnICsgdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKSxcclxuICAgICAgZ3JjX2FyZWE6ICcnLFxyXG4gICAgICBjY19lbXBsb3llZV9lbWFpbDogb3B0aW9uRmllbGRzU3RhdHVzLk9WRVJTSUdIVCA/IHRoaXMuYXJyYXlUb0lEc0R0cmluZyhpc3N1ZURhdGEuaXNzdWVDQ1VzZXJzLCAnZW1wbG95ZWVfZW1haWwnKSA6ICcnLFxyXG4gICAgICBmYWlsdXJlX2NjX2VtcGxveWVlX2VtYWlsOiBvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUID8gdGhpcy5hcnJheVRvSURzRHRyaW5nKGlzc3VlRGF0YS5mYWlsdXJlQ0NVc2VycywgJ2VtcGxveWVlX2VtYWlsJykgOiAnJyxcclxuICAgICAgY3VzdG9tX3RhZ192YWx1ZTogJycsXHJcbiAgICAgIGlzc3VlX3Jlc29sdmVfdGltZXN0YW1wOiAoZGF0ZS5nZXRUaW1lKCkgLyAxMDAwKS50b1N0cmluZygpLFxyXG4gICAgICBldmlkZW5jZV91cGxvYWRfZmxhZzogb3B0aW9uRmllbGRzU3RhdHVzLkVWSURFTkNFID8gKGlzc3VlRGF0YS5ldmlkZW5jZVJlcXVpcmVkID8gJzEnIDogJzAnICkgIDogJzAnLFxyXG4gICAgfTtcclxuICAgIGlmIChpc3N1ZURhdGEuaXNzdWVSQy5sZW5ndGgpe1xyXG4gICAgICBjcmVhdGVJc3N1ZS5yY19pZCA9IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZVJDLCAncmNfaWQnKSA/PyAwO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjcmVhdGVJc3N1ZTtcclxuICB9XHJcblxyXG5cclxuICBwYXlsb2FkQnVpbGRlcihpc3N1ZURhdGE6YW55LG9wdGlvbkZpZWxkc1N0YXR1czphbnkpe1xyXG4gICBjb25zb2xlLmxvZyhpc3N1ZURhdGEpO1xyXG4gICBjb25zdCBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZShpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKTtcclxuICAgY29uc3QgZGF0ZVNwbGl0ID0gW3NlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpLCBzZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEsIHNlbGVjdGVkRGF0ZS5nZXREYXRlKCldO1xyXG4gICBjb25zdCBwYXlsb2FkICA6YW55ID0ge1xyXG4gICAgIGRlc2NyaXB0aW9uIDogW10sXHJcbiAgICAgYXNzb2NpYXRlZF9yaXNrIDogW10sXHJcbiAgICAgcmVjb21tZW5kYXRpb246W11cclxuICAgfTtcclxuICAgcGF5bG9hZC50aXRsZSA9IGlzc3VlRGF0YS5pc3N1ZU5hbWU/PycnO1xyXG4gICBwYXlsb2FkLnJjX2lkID0gaXNzdWVEYXRhLmlzc3VlUkMubGVuZ3RoID8gdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmlzc3VlUkMsICdyY19pZCcpIDogbnVsbDtcclxuICAgcGF5bG9hZC5jYXRlZ29yeV9pZCA9IGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5Lmxlbmd0aCA/IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5LCAnY2F0ZWdvcnlfaWQnKSA6IG51bGw7XHJcbiAgIHBheWxvYWQuZGVzY3JpcHRpb25bMF0gPSB7XHJcbiAgICAgdGV4dDppc3N1ZURhdGEuaXNzdWVEZXNjcmlwdGlvbiA/PyAnJyxcclxuICAgICBhdHRhY2htZW50czppc3N1ZURhdGE/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHMubGVuZ3RoID8gaXNzdWVEYXRhPy5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzOltdXHJcbiAgIH1cclxuICAgcGF5bG9hZC5leGNlcHRpb25fdHlwZSA9IG9wdGlvbkZpZWxkc1N0YXR1cy5FWENFUFRJT05fVFlQRSA/IE51bWJlcihpc3N1ZURhdGEuZXhjZXB0aW9uVHlwZSkgOiBudWxsO1xyXG4gICBwYXlsb2FkLnJpc2tfY2xhc3MgPSBpc3N1ZURhdGEuaXNzdWVSaXNrUmF0aW5nID8/IG51bGw7XHJcbiAgIHBheWxvYWQucHJpb3JpdHkgPSBvcHRpb25GaWVsZHNTdGF0dXMuUFJJT1JJVFkgPyAgTnVtYmVyKGlzc3VlRGF0YS5pc3N1ZVByaW9yaXR5KSA6IG51bGw7XHJcbiAgIHBheWxvYWQuYXNzaWduZWVfaWQgPSBpc3N1ZURhdGEuZW50cnVzdFRvID8gdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmVudHJ1c3RUbywgJ215X21lbWJlcl9pZCcpIDogbnVsbDtcclxuICAgcGF5bG9hZC5hc3NvY2lhdGVkX3Jpc2tbMF09e1xyXG4gICAgIHRleHQ6IG9wdGlvbkZpZWxkc1N0YXR1cy5BU1NPQ0lBVEVEX1JJU0tTID8gaXNzdWVEYXRhLmlzc3VlQXNzb2NpYXRlZFJpc2s6JycsXHJcbiAgICAgYXR0YWNobWVudHM6W11cclxuICAgfVxyXG4gICBwYXlsb2FkLnJlY29tbWVuZGF0aW9uWzBdID17XHJcbiAgICB0ZXh0OiBpc3N1ZURhdGEuaXNzdWVSZWNvbW1lbmRhdGlvbj8/JycsXHJcbiAgICBhdHRhY2htZW50czppc3N1ZURhdGE/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzLmxlbmd0aCA/IGlzc3VlRGF0YT8ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM6W11cclxuICAgfVxyXG4gICBwYXlsb2FkLmV2aWRlbmNlID0ge2V2aWRlbmNlX2ZsYWc6IG9wdGlvbkZpZWxkc1N0YXR1cy5FVklERU5DRSA/IChpc3N1ZURhdGEuZXZpZGVuY2VSZXF1aXJlZCA/IDEgOiAwICkgIDogMCB9XHJcbiAgIHBheWxvYWQuZnJlcXVlbmN5X2RldGFpbHMgPSB7XHJcbiAgICBmcmVxdWVuY3lfdGltZTogdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKT8/JycsXHJcbiAgICBmcmVxdWVuY3lfZGF0ZTogIGRhdGVTcGxpdFswXSArICctJyArIChkYXRlU3BsaXRbMV0gPCAxMCA/ICcwJyArIGRhdGVTcGxpdFsxXTogZGF0ZVNwbGl0WzFdKSArICctJyArIChkYXRlU3BsaXRbMl08MTA/ICcwJyArIGRhdGVTcGxpdFsyXTpkYXRlU3BsaXRbMl0pXHJcbiAgIH1cclxuICAgcGF5bG9hZC5vdmVyc2VlciA9IHtcclxuICAgIGNjX2VtYWlsOiBvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUID8oaXNzdWVEYXRhLmlzc3VlQ0NVc2Vycy5sZW5ndGg/IGlzc3VlRGF0YS5pc3N1ZUNDVXNlcnMubWFwKCh4OmFueSkgPT4ge3JldHVybiB7IG1lbWJlcl9pZDogeC5teV9tZW1iZXJfaWQgPz8gMCAsIGFsZXJ0X2VuYWJsZTogMX19KTpbXSkgOltdLFxyXG4gICAgZmFpbHVyZV9jY19lbWFpbDpvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUID8oaXNzdWVEYXRhLmZhaWx1cmVDQ1VzZXJzLmxlbmd0aD8gaXNzdWVEYXRhLmZhaWx1cmVDQ1VzZXJzLm1hcCgoeDphbnkpID0+IHtyZXR1cm4geyBtZW1iZXJfaWQ6IHgubXlfbWVtYmVyX2lkPz8gMCAsIGFsZXJ0X2VuYWJsZTogMX19KTpbXSkgOltdXHJcbiAgIH1cclxuICAgcGF5bG9hZC5jdXN0b21fdGFncyA9IGlzc3VlRGF0YT8uaXNzdWVDdXN0b21UYWc7XHJcbiAgIGNvbnNvbGUubG9nKHBheWxvYWQpXHJcbiAgIHJldHVybiBwYXlsb2FkO1xyXG4gIH1cclxuXHJcbiAgYXJyYXlUb0lkKGFycmF5OiBhbnksIGtleTogYW55KXtcclxuIGlmIChhcnJheS5sZW5ndGggPT09IDApe3JldHVybiAnJzsgfVxyXG4gZWxzZSB7XHJcbiAgIHJldHVybiBhcnJheVswXVtrZXldO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiBjb252ZXJ0RnJvbTEyVG8yNEZvcm1hdCA9ICh0aW1lMTI6IGFueSkgPT4ge1xyXG4gIGlmKHRpbWUxMil7XHJcbiAgICBjb25zdCBbc0hvdXJzLCBtaW51dGVzLCBwZXJpb2RdID0gdGltZTEyLm1hdGNoKC8oWzAtOV17MSwyfSk6KFswLTldezJ9KSAoYW18cG18QU18UE0pLykuc2xpY2UoMSk7XHJcbiAgICBjb25zdCBQTSA9IHBlcmlvZCA9PT0gJ1BNJztcclxuICAgIGNvbnN0IGhvdXJzID0gKCtzSG91cnMgJSAxMikgKyAoUE0gPyAxMiA6IDApO1xyXG5cclxuICAgIHJldHVybiBgJHsoJzAnICsgaG91cnMpLnNsaWNlKC0yKX06JHttaW51dGVzfTowMGA7XHJcbiAgfWVsc2V7XHJcbiAgICByZXR1cm4gJzIzOjU5OjAwJztcclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuY29udmVydEZyb20yNFRvMTJGb3JtYXQgKHRpbWU6YW55KSB7XHJcbiAgY29uc3QgaGhtbSA9IHRpbWUuc3BsaXQoJzonKTtcclxuICB0aW1lID0gYCR7aGhtbVswXX06JHtoaG1tWzFdfWA7XHJcbiAgLy8gQ2hlY2sgY29ycmVjdCB0aW1lIGZvcm1hdCBhbmQgc3BsaXQgaW50byBjb21wb25lbnRzXHJcbiAgdGltZSA9IHRpbWUudG9TdHJpbmcoKS5tYXRjaCAoL14oWzAxXVxcZHwyWzAtM10pKDopKFswLTVdXFxkKSg6WzAtNV1cXGQpPyQvKSB8fCBbdGltZV07XHJcblxyXG4gIGlmICh0aW1lLmxlbmd0aCA+IDEpIHsgLy8gSWYgdGltZSBmb3JtYXQgY29ycmVjdFxyXG4gICAgdGltZSA9IHRpbWUuc2xpY2UgKDEpOyAgLy8gUmVtb3ZlIGZ1bGwgc3RyaW5nIG1hdGNoIHZhbHVlXHJcbiAgICB0aW1lWzVdID0gK3RpbWVbMF0gPCAxMiA/ICcgQU0nIDogJyBQTSc7IC8vIFNldCBBTS9QTVxyXG4gICAgdGltZVswXSA9ICt0aW1lWzBdICUgMTIgfHwgMTI7IC8vIEFkanVzdCBob3Vyc1xyXG4gIH1cclxuICByZXR1cm4gdGltZS5qb2luICgnJyk7IC8vIHJldHVybiBhZGp1c3RlZCB0aW1lIG9yIG9yaWdpbmFsIHN0cmluZ1xyXG59XHJcblxyXG5hcnJheVRvSURzRHRyaW5nKGFycmF5OiBhbnksIGlkZW50aWZpZXJLZXk6IGFueSl7XHJcbiBjb25zdCBsaXN0ID0gYXJyYXkubWFwKChlbDogYW55KSA9PiB7XHJcbiAgICByZXR1cm4gZWxbaWRlbnRpZmllcktleV07IH1cclxuICAgICk7XHJcbiByZXR1cm4gbGlzdC5qb2luKCk7XHJcbn1cclxuXHJcblxyXG5cclxuICAvKipcclxuICAgKiBVcGxvYWRzIHRoZSBnaXZlbiBmaWxlIHRvIHNlcnZlclxyXG4gICAqIEBwYXJhbSBwYXlsb2FkIHBheWxvYWQgRmlsZSBkYXRhIHRvIGJlIHVwbG9hZGVkXHJcbiAgICogQHBhcmFtIHBhdGggcGF0aCBQYXRoIG9mIGZpbGUgdG8gYmUgdXBsb2FkZWRcclxuICAgKiBAcmV0dXJucyByZXNwb25zZSBhZnRlciB1cGxvYWRpbmcgYSBmaWxlXHJcbiAgICovXHJcbiAgIHVwbG9hZEZpbGVzKHBheWxvYWQ6IGFueSwgcGF0aDogYW55KSB7XHJcbiAgICAvLyB7XHJcbiAgICAvLyAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG4gICAgLy8gICBvYnNlcnZlOiAnZXZlbnRzJ31cclxuICAgIGNvbnN0IE9SR19QQVRIID0gYG8vJHtwYXRofWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5lbnYuZmlsZVVwbG9hZEVuZFBvaW50ICsgT1JHX1BBVEggICsgJyZuZ3N3LWJ5cGFzcz10cnVlJywgcGF5bG9hZCk7XHJcbiAgfVxyXG5cclxuICBnZXRJc3N1ZURldGFpbHMoaXNzdWVJZDogc3RyaW5nKXtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudi5hc3N1cmFuY2UrJ0lzc3VlL0VkaXQvJytpc3N1ZUlkLHtoZWFkZXJzfSkucGlwZShyZXRyeSgzKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1386,7 +1386,7 @@ class WorkflowRiskComponent {
|
|
|
1386
1386
|
rating_arr: [],
|
|
1387
1387
|
member_id: this.memberId,
|
|
1388
1388
|
organisation_id: this.organizationId,
|
|
1389
|
-
risk_progress_flag: 1,
|
|
1389
|
+
risk_progress_flag: (this.mode === 'EDIT') ? this.editDetails.risk_progress_flag : 1,
|
|
1390
1390
|
IfAssessmentDone: (this.mode == 'EDIT') ? this.editDetails.IfAssessmentDone : 0,
|
|
1391
1391
|
workshop_id: (this.mode == 'EDIT') ? this.editDetails.workshop_id : 0,
|
|
1392
1392
|
complete_assessment: 0,
|
|
@@ -11448,8 +11448,9 @@ class LogIssueService {
|
|
|
11448
11448
|
getIssueCategories() {
|
|
11449
11449
|
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
11450
11450
|
return this.http
|
|
11451
|
-
.get(this.env.assurance + 'Issue/Category/
|
|
11451
|
+
.get(this.env.assurance + 'Issue/Category/CatList?categories=true', { headers })
|
|
11452
11452
|
.pipe(retry(2));
|
|
11453
|
+
//https://devapi.v-comply.com/Assurance/Issue/Category/CatList/1?isBusinessCycle=true&categories=true
|
|
11453
11454
|
}
|
|
11454
11455
|
getResponsibilityCenterList() {
|
|
11455
11456
|
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|