@senior-gestao-pessoas/hcm-contract-employee-history 5.6.0 → 5.6.2-develop-92def2d6
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/senior-gestao-pessoas-hcm-contract-employee-history.umd.js +1 -1
- package/bundles/senior-gestao-pessoas-hcm-contract-employee-history.umd.js.map +1 -1
- package/bundles/senior-gestao-pessoas-hcm-contract-employee-history.umd.min.js +1 -1
- package/bundles/senior-gestao-pessoas-hcm-contract-employee-history.umd.min.js.map +1 -1
- package/esm2015/lib/employee-dependent/list/employee-dependent-list.component.js +2 -2
- package/esm5/lib/employee-dependent/list/employee-dependent-list.component.js +2 -2
- package/fesm2015/senior-gestao-pessoas-hcm-contract-employee-history.js +1 -1
- package/fesm2015/senior-gestao-pessoas-hcm-contract-employee-history.js.map +1 -1
- package/fesm5/senior-gestao-pessoas-hcm-contract-employee-history.js +1 -1
- package/fesm5/senior-gestao-pessoas-hcm-contract-employee-history.js.map +1 -1
- package/package.json +1 -1
- package/senior-gestao-pessoas-hcm-contract-employee-history.metadata.json +1 -1
|
@@ -342,9 +342,9 @@ EmployeeDependentListComponent = __decorate([
|
|
|
342
342
|
Component({
|
|
343
343
|
// tslint:disable-next-line:component-selector
|
|
344
344
|
selector: "fnd-employee-dependent",
|
|
345
|
-
template: "<p-panel *sLoadingState=\"loading\">\n <p-tabView styleClass=\"form-group\" *sLoadingState=\"loading\" >\n <p-tabPanel *ngIf=\"!_admissionDraftId\"\n [header]=\"'hcm_contract.employment_contract.employee_dependent_title_header' | translate\">\n <div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <button id=\"add-button\" type=\"button\" pButton [label]=\"'hcm_contract.employment_contract.add_employee_dependent' | translate\"\n title=\"{{'hcm_contract.employment_contract.add_employee_dependent' | translate}} (Alt + Shift + N)\"\n *ngIf=\"permissions.incluir\" (click)=\"onAddDependent()\"></button>\n <s-button id=\"other-actions-button\"\n [label]=\"'hcm_contract.employment_contract.other_actions' | translate\"\n [model]=\"getOtherActions()\"\n priority=\"secondary\"\n [disabled]=\"false\" [auxiliary]=\"false\"\n *ngIf=\"hasPermissionToSeeExclusions()\">\n </s-button>\n </div>\n </div>\n <s-empty-state\n *ngIf=\"serverError\"\n iconClass=\"fa fa-exclamation-triangle\"\n title=\"{{'hcm_contract.employment_contract.error_server_title' | translate}}\"\n primaryActionLabel=\"{{'hcm_contract.employment_contract.error_server_try_again' | translate}}\"\n (primaryAction)=\"resetGrid()\" description=\"{{'hcm_contract.employment_contract.error_server_description' | translate}}\"></s-empty-state>\n <s-empty-state *ngIf=\"!this.gridData?.length && !serverError\" [title]=\"'hcm_contract.employment_contract.employee_dependent_empty_state_title' | translate\"\n [showPrimaryAction]=\"this.permissions.incluir\" [primaryActionLabel]=\"'hcm_contract.employment_contract.add_employee_dependent' | translate\"\n (primaryAction)=\"onAddDependent()\" [description]=\"'hcm_contract.employment_contract.employee_dependent_empty_state_description' | translate\"\n [showSecondaryAction]=\"permissions.incluir\" [showSecondaryAction]=\"hasPermissionToSeeExclusions()\"\n [secondaryActionLabel]=\"'hcm_contract.employment_contract.see_exclusions' | translate\"\n (secondaryAction)=\"openRecordExclusions()\">\n </s-empty-state>\n <div [attr.data-hidden]=\"!gridData?.length || serverError\">\n\n <p-table #employeeDependentTable [value]=\"gridData\" [columns]=\"gridColumns\" dataKey=\"id\" [lazy]=\"true\"\n [scrollable]=\"true\" [resizableColumns]=\"true\" sortMode=\"multiple\" [paginator]=\"true\"\n [totalRecords]=\"totalRecords\" [multiSortMeta]=\"getSortField()\" [first]=\"getRowIndex()\"\n [rows]=\"getPageSize()\" [rowsPerPageOptions]=\"[10, 20, 50, 100]\"\n (onLazyLoad)=\"onGridChange($event)\">\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col *ngFor=\"let col of columns\">\n </colgroup>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" [pSortableColumn]=\"col.field\"\n pResizableColumn>\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{col.header}}</span>\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n </div>\n </th>\n <th pResizableColumn scope=\"col\" *ngIf=\"this.permissions.excluir\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{'hcm_contract.employment_contract.actions' |\n translate}}</span>\n </div>\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData let-columns>\n <tr [pSelectableRow]=\"rowData\">\n <td>\n <span>{{\"\" + (getProp(rowData, 'dependent.codPes'))}}</span>\n </td>\n <td>\n <span>{{\"\" + (getProp(rowData, 'dependent.nomPes')|| ('hcm_contract.employment_contract.list_grid_empty_field' | translate))}}</span>\n </td>\n <td>\n <div [ngSwitch]=\"getProp(rowData, 'dependent.graPde') || ('hcm_contract.employment_contract.list_grid_empty_field' | translate)\">\n <span *ngSwitchCase=\"'SON'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_SON\" | translate}}</span>\n <span *ngSwitchCase=\"'SPOUSE'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_SPOUSE\" | translate}}</span>\n <span *ngSwitchCase=\"'FATHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_FATHER\" | translate}}</span>\n <span *ngSwitchCase=\"'GRANDFATHER_GRANDMOTHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GRANDFATHER_GRANDMOTHER\" | translate}}</span>\n <span *ngSwitchCase=\"'GREAT_GRANDFATHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GREAT_GRANDFATHER\" | translate}}</span>\n <span *ngSwitchCase=\"'NEPHEW'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_NEPHEW\" | translate}}</span>\n <span *ngSwitchCase=\"'UNCLE'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_UNCLE\" | translate}}</span>\n <span *ngSwitchCase=\"'GRANDSON'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GRANDSON\" | translate}}</span>\n <span *ngSwitchCase=\"'FATHER_IN_LAW'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_FATHER_IN_LAW\" | translate}}</span>\n <span *ngSwitchCase=\"'SON_IN_LAW_DAOUGHTER_IN_LAW'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_SON_IN_LAW_DAOUGHTER_IN_LAW\" | translate}}</span>\n <span *ngSwitchCase=\"'STEPSON'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_STEPSON\" | translate}}</span>\n <span *ngSwitchCase=\"'BROTHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_BROTHER\" | translate}}</span>\n <span *ngSwitchCase=\"'ADOPTED_CHILD'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_ADOPTED_CHILD\" | translate}}</span>\n <span *ngSwitchCase=\"'PENSIONERS'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_PENSIONERS\" | translate}}</span>\n <span *ngSwitchCase=\"'COMPANION'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_COMPANION\" | translate}}</span>\n <span *ngSwitchCase=\"'GUARDIANSHIP'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GUARDIANSHIP\" | translate}}</span>\n <span *ngSwitchCase=\"'MINOR_UNDER_GUARD'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_MINOR_UNDER_GUARD\" | translate}}</span>\n <span *ngSwitchCase=\"'STEPMOTHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_STEPMOTHER\" | translate}}</span>\n <span *ngSwitchCase=\"'STEPFATHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_STEPFATHER\" | translate}}</span>\n <span *ngSwitchCase=\"'TUTOR'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_TUTOR\" | translate}}</span>\n <span *ngSwitchCase=\"'EX_EXPOSED'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_EX_EXPOSED\" | translate}}</span>\n <span *ngSwitchCase=\"'GREAT_GRANDSON'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GREAT_GRANDSON\" | translate}}</span>\n <span *ngSwitchCase=\"'EX_PARTNER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_EX_PARTNER\" | translate}}</span>\n <span *ngSwitchCase=\"'CONCUBINE'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_CONCUBINE\" | translate}}</span>\n <span *ngSwitchCase=\"'CURATORSHIP'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_CURATORSHIP\" | translate}}</span>\n <span *ngSwitchCase=\"'SOCIOAFFECTIVE'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_SOCIOAFFECTIVE\" | translate}}</span>\n <span *ngSwitchCase=\"'FATHER_MOTHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_FATHER_MOTHER\" | translate}}</span>\n <span *ngSwitchCase=\"'OTHERS'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_OTHERS\" | translate}}</span>\n <span *ngSwitchDefault>{{ \"hcm_contract.employment_contract.list_grid_empty_field\" | translate}}</span>\n </div>\n </td>\n <td>\n <span>{{\"\" + (getProp(rowData, 'dependent.intNet')|| ('hcm_contract.employment_contract.list_grid_empty_field' | translate))}}</span>\n </td>\n <td>\n <span>{{\"\" + (getProp(rowData, 'dependent.fonPes')|| ('hcm_contract.employment_contract.list_grid_empty_field' | translate))}}</span>\n </td>\n <td class=\"txt-center\" tabindex=\"0\" *ngIf=\"this.permissions.editar && this.permissions.excluir\">\n <s-button label=\"{{'hcm_contract.employment_contract.admission_generic_actions' | translate}}\"\n priority=\"default\" [model]=\"getActions(rowData)\" [disabled]=\"false\" [auxiliary]=\"true\"></s-button>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\">\n <span\n [translate]=\"'hcm_contract.employment_contract.total_records'\"\n [translateParams]=\"{value: totalRecords}\">\n </span>\n </ng-template>\n </p-table>\n </div>\n </p-tabPanel>\n <p-tabPanel\n [header]=\"'hcm_contract.employment_contract.employee_dependent_draft_title_header' | translate\">\n <app-dependent-list-draft\n (addButtonClicked)=\"onAddDependent()\"\n [employeeId]=\"_employeeId\"\n [closeSideBar]=\"closeSideBar\"\n [admissionDraftId]=\"_admissionDraftId\"\n (onEdit)=\"onEditDraft($event)\">\n </app-dependent-list-draft>\n </p-tabPanel>\n </p-tabView>\n</p-panel>\n<p-dialog header=\"{{ 'hcm_contract.employment_contract.employee_dependent_register_method_title' | translate }}\"\n[draggable]=\"false\" [modal]=\"true\"\n[(visible)]=\"showDialog\" [closable]=\"false\">\n <form class=\"ui-fluid\" [formGroup]=\"formGroup\">\n <div class=\"radio-buttons required ui-lg-12\" style=\"margin-bottom: 20px;\">\n <label id=\"registerMethod\">{{ 'hcm_contract.employment_contract.employee_dependent_register_method_label' | translate }}</label>\n <div><p-radioButton name=\"registerMethod\" formControlName=\"registerMethod\"\n value=\"newRegister\"\n label=\"{{ 'hcm_contract.employment_contract.employee_dependent_register_method_create_data' | translate}}\"></p-radioButton></div>\n <div><p-radioButton\n name=\"registerMethod\" formControlName=\"registerMethod\"\n value=\"existing\"\n label=\"{{ 'hcm_contract.employment_contract.employee_dependent_register_method_existing_data' | translate}}\"></p-radioButton></div>\n <s-control-errors\n id=\"er-registerMethod\"\n [control]=\"formGroup.get('registerMethod')\"\n [errorMessages]=\"{\n required: 'hcm_contract.employment_contract.admission_generic_field_validator_required' | translate\n }\"\n ></s-control-errors>\n </div>\n\n <div class=\"ui-lg-12\">\n <div class=\"person-label\">\n <label for=\"personLabel\">{{'hcm_contract.employment_contract.data_person_id_lookup_title' | translate}}</label>\n <span\n id=\"personLabel\"\n class=\"fa fa-info-circle\"\n [pTooltip]=\"'hcm_contract.employment_contract.employee_dependent_tooltip_person' | translate\">\n </span>\n </div>\n <div class=\"{{personClass}}\">\n <fnd-person-lookup [formGroup]=\"formGroup\" [locale]=\"localeConfig\"></fnd-person-lookup>\n <s-control-errors\n id=\"er-person\"\n [control]=\"formGroup.get('person')\"\n [errorMessages]=\"{\n required: 'hcm_contract.employment_contract.admission_generic_field_validator_required' | translate\n }\"\n ></s-control-errors>\n </div>\n </div>\n </form>\n <p-footer>\n <s-button\n [label]=\"'hcm_contract.employment_contract.employee_dependent_next' | translate\"\n priority=\"primary\" (onClick)=\"sendToForm()\">\n </s-button>\n <s-button\n [label]=\"'hcm_contract.employment_contract.cancel' | translate\"\n priority=\"secondary\"\n (onClick)=\"onCancel()\">\n </s-button>\n </p-footer>\n</p-dialog>\n<p-confirmDialog></p-confirmDialog>\n<fnd-employee-dependent-form [employeeId]=\"_employeeId\" [admissionDraft]=\"_admissionDraftId\" [closeSideBar]=\"closeSideBar\"></fnd-employee-dependent-form>\n<s-exclusion-details></s-exclusion-details>\n",
|
|
345
|
+
template: "<p-panel *sLoadingState=\"loading\">\n <p-tabView styleClass=\"form-group\" *sLoadingState=\"loading\" >\n <p-tabPanel *ngIf=\"!_admissionDraftId\"\n [header]=\"'hcm_contract.employment_contract.employee_dependent_title_header' | translate\">\n <div class=\"ui-g\" *ngIf=\"this.gridData?.length\">\n <div class=\"ui-g-12\">\n <button id=\"add-button\" type=\"button\" pButton [label]=\"'hcm_contract.employment_contract.add_employee_dependent' | translate\"\n title=\"{{'hcm_contract.employment_contract.add_employee_dependent' | translate}} (Alt + Shift + N)\"\n *ngIf=\"permissions.incluir\" (click)=\"onAddDependent()\"></button>\n <s-button id=\"other-actions-button\"\n [label]=\"'hcm_contract.employment_contract.other_actions' | translate\"\n [model]=\"getOtherActions()\"\n priority=\"secondary\"\n [disabled]=\"false\" [auxiliary]=\"false\"\n *ngIf=\"hasPermissionToSeeExclusions()\">\n </s-button>\n </div>\n </div>\n <s-empty-state *ngIf=\"!this.gridData?.length\" [title]=\"'hcm_contract.employment_contract.employee_dependent_empty_state_title' | translate\"\n [showPrimaryAction]=\"this.permissions.incluir\" [primaryActionLabel]=\"'hcm_contract.employment_contract.add_employee_dependent' | translate\"\n (primaryAction)=\"onAddDependent()\" [description]=\"'hcm_contract.employment_contract.employee_dependent_empty_state_description' | translate\"\n [showSecondaryAction]=\"permissions.incluir\" [showSecondaryAction]=\"hasPermissionToSeeExclusions()\"\n [secondaryActionLabel]=\"'hcm_contract.employment_contract.see_exclusions' | translate\"\n (secondaryAction)=\"openRecordExclusions()\">\n </s-empty-state>\n <div [attr.data-hidden]=\"!gridData?.length || serverError\">\n\n <p-table #employeeDependentTable [value]=\"gridData\" [columns]=\"gridColumns\" dataKey=\"id\" [lazy]=\"true\"\n [scrollable]=\"true\" [resizableColumns]=\"true\" sortMode=\"multiple\" [paginator]=\"true\"\n [totalRecords]=\"totalRecords\" [multiSortMeta]=\"getSortField()\" [first]=\"getRowIndex()\"\n [rows]=\"getPageSize()\" [rowsPerPageOptions]=\"[10, 20, 50, 100]\"\n (onLazyLoad)=\"onGridChange($event)\">\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col *ngFor=\"let col of columns\">\n </colgroup>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" [pSortableColumn]=\"col.field\"\n pResizableColumn>\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{col.header}}</span>\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n </div>\n </th>\n <th pResizableColumn scope=\"col\" *ngIf=\"this.permissions.excluir\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{'hcm_contract.employment_contract.actions' |\n translate}}</span>\n </div>\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData let-columns>\n <tr [pSelectableRow]=\"rowData\">\n <td>\n <span>{{\"\" + (getProp(rowData, 'dependent.codPes'))}}</span>\n </td>\n <td>\n <span>{{\"\" + (getProp(rowData, 'dependent.nomPes')|| ('hcm_contract.employment_contract.list_grid_empty_field' | translate))}}</span>\n </td>\n <td>\n <div [ngSwitch]=\"getProp(rowData, 'dependent.graPde') || ('hcm_contract.employment_contract.list_grid_empty_field' | translate)\">\n <span *ngSwitchCase=\"'SON'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_SON\" | translate}}</span>\n <span *ngSwitchCase=\"'SPOUSE'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_SPOUSE\" | translate}}</span>\n <span *ngSwitchCase=\"'FATHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_FATHER\" | translate}}</span>\n <span *ngSwitchCase=\"'GRANDFATHER_GRANDMOTHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GRANDFATHER_GRANDMOTHER\" | translate}}</span>\n <span *ngSwitchCase=\"'GREAT_GRANDFATHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GREAT_GRANDFATHER\" | translate}}</span>\n <span *ngSwitchCase=\"'NEPHEW'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_NEPHEW\" | translate}}</span>\n <span *ngSwitchCase=\"'UNCLE'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_UNCLE\" | translate}}</span>\n <span *ngSwitchCase=\"'GRANDSON'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GRANDSON\" | translate}}</span>\n <span *ngSwitchCase=\"'FATHER_IN_LAW'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_FATHER_IN_LAW\" | translate}}</span>\n <span *ngSwitchCase=\"'SON_IN_LAW_DAOUGHTER_IN_LAW'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_SON_IN_LAW_DAOUGHTER_IN_LAW\" | translate}}</span>\n <span *ngSwitchCase=\"'STEPSON'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_STEPSON\" | translate}}</span>\n <span *ngSwitchCase=\"'BROTHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_BROTHER\" | translate}}</span>\n <span *ngSwitchCase=\"'ADOPTED_CHILD'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_ADOPTED_CHILD\" | translate}}</span>\n <span *ngSwitchCase=\"'PENSIONERS'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_PENSIONERS\" | translate}}</span>\n <span *ngSwitchCase=\"'COMPANION'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_COMPANION\" | translate}}</span>\n <span *ngSwitchCase=\"'GUARDIANSHIP'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GUARDIANSHIP\" | translate}}</span>\n <span *ngSwitchCase=\"'MINOR_UNDER_GUARD'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_MINOR_UNDER_GUARD\" | translate}}</span>\n <span *ngSwitchCase=\"'STEPMOTHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_STEPMOTHER\" | translate}}</span>\n <span *ngSwitchCase=\"'STEPFATHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_STEPFATHER\" | translate}}</span>\n <span *ngSwitchCase=\"'TUTOR'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_TUTOR\" | translate}}</span>\n <span *ngSwitchCase=\"'EX_EXPOSED'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_EX_EXPOSED\" | translate}}</span>\n <span *ngSwitchCase=\"'GREAT_GRANDSON'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GREAT_GRANDSON\" | translate}}</span>\n <span *ngSwitchCase=\"'EX_PARTNER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_EX_PARTNER\" | translate}}</span>\n <span *ngSwitchCase=\"'CONCUBINE'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_CONCUBINE\" | translate}}</span>\n <span *ngSwitchCase=\"'CURATORSHIP'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_CURATORSHIP\" | translate}}</span>\n <span *ngSwitchCase=\"'SOCIOAFFECTIVE'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_SOCIOAFFECTIVE\" | translate}}</span>\n <span *ngSwitchCase=\"'FATHER_MOTHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_FATHER_MOTHER\" | translate}}</span>\n <span *ngSwitchCase=\"'OTHERS'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_OTHERS\" | translate}}</span>\n <span *ngSwitchDefault>{{ \"hcm_contract.employment_contract.list_grid_empty_field\" | translate}}</span>\n </div>\n </td>\n <td>\n <span>{{\"\" + (getProp(rowData, 'dependent.intNet')|| ('hcm_contract.employment_contract.list_grid_empty_field' | translate))}}</span>\n </td>\n <td>\n <span>{{\"\" + (getProp(rowData, 'dependent.fonPes')|| ('hcm_contract.employment_contract.list_grid_empty_field' | translate))}}</span>\n </td>\n <td class=\"txt-center\" tabindex=\"0\" *ngIf=\"this.permissions.editar && this.permissions.excluir\">\n <s-button label=\"{{'hcm_contract.employment_contract.admission_generic_actions' | translate}}\"\n priority=\"default\" [model]=\"getActions(rowData)\" [disabled]=\"false\" [auxiliary]=\"true\"></s-button>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\">\n <span\n [translate]=\"'hcm_contract.employment_contract.total_records'\"\n [translateParams]=\"{value: totalRecords}\">\n </span>\n </ng-template>\n </p-table>\n </div>\n </p-tabPanel>\n <p-tabPanel\n [header]=\"'hcm_contract.employment_contract.employee_dependent_draft_title_header' | translate\">\n <app-dependent-list-draft\n (addButtonClicked)=\"onAddDependent()\"\n [employeeId]=\"_employeeId\"\n [closeSideBar]=\"closeSideBar\"\n [admissionDraftId]=\"_admissionDraftId\"\n (onEdit)=\"onEditDraft($event)\">\n </app-dependent-list-draft>\n </p-tabPanel>\n </p-tabView>\n</p-panel>\n<p-dialog header=\"{{ 'hcm_contract.employment_contract.employee_dependent_register_method_title' | translate }}\"\n[draggable]=\"false\" [modal]=\"true\"\n[(visible)]=\"showDialog\" [closable]=\"false\">\n <form class=\"ui-fluid\" [formGroup]=\"formGroup\">\n <div class=\"radio-buttons required ui-lg-12\" style=\"margin-bottom: 20px;\">\n <label id=\"registerMethod\">{{ 'hcm_contract.employment_contract.employee_dependent_register_method_label' | translate }}</label>\n <div><p-radioButton name=\"registerMethod\" formControlName=\"registerMethod\"\n value=\"newRegister\"\n label=\"{{ 'hcm_contract.employment_contract.employee_dependent_register_method_create_data' | translate}}\"></p-radioButton></div>\n <div><p-radioButton\n name=\"registerMethod\" formControlName=\"registerMethod\"\n value=\"existing\"\n label=\"{{ 'hcm_contract.employment_contract.employee_dependent_register_method_existing_data' | translate}}\"></p-radioButton></div>\n <s-control-errors\n id=\"er-registerMethod\"\n [control]=\"formGroup.get('registerMethod')\"\n [errorMessages]=\"{\n required: 'hcm_contract.employment_contract.admission_generic_field_validator_required' | translate\n }\"\n ></s-control-errors>\n </div>\n\n <div class=\"ui-lg-12\">\n <div class=\"person-label\">\n <label for=\"personLabel\">{{'hcm_contract.employment_contract.data_person_id_lookup_title' | translate}}</label>\n <span\n id=\"personLabel\"\n class=\"fa fa-info-circle\"\n [pTooltip]=\"'hcm_contract.employment_contract.employee_dependent_tooltip_person' | translate\">\n </span>\n </div>\n <div class=\"{{personClass}}\">\n <fnd-person-lookup [formGroup]=\"formGroup\" [locale]=\"localeConfig\"></fnd-person-lookup>\n <s-control-errors\n id=\"er-person\"\n [control]=\"formGroup.get('person')\"\n [errorMessages]=\"{\n required: 'hcm_contract.employment_contract.admission_generic_field_validator_required' | translate\n }\"\n ></s-control-errors>\n </div>\n </div>\n </form>\n <p-footer>\n <s-button\n [label]=\"'hcm_contract.employment_contract.employee_dependent_next' | translate\"\n priority=\"primary\" (onClick)=\"sendToForm()\">\n </s-button>\n <s-button\n [label]=\"'hcm_contract.employment_contract.cancel' | translate\"\n priority=\"secondary\"\n (onClick)=\"onCancel()\">\n </s-button>\n </p-footer>\n</p-dialog>\n<p-confirmDialog></p-confirmDialog>\n<fnd-employee-dependent-form [employeeId]=\"_employeeId\" [admissionDraft]=\"_admissionDraftId\" [closeSideBar]=\"closeSideBar\"></fnd-employee-dependent-form>\n<s-exclusion-details></s-exclusion-details>\n",
|
|
346
346
|
styles: [".radio-buttons{display:flex;flex-direction:column;gap:6px}.person-label{display:flex;gap:5px;align-items:center}"]
|
|
347
347
|
})
|
|
348
348
|
], EmployeeDependentListComponent);
|
|
349
349
|
export { EmployeeDependentListComponent };
|
|
350
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtZGVwZW5kZW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9oY20tY29udHJhY3QtZW1wbG95ZWUtaGlzdG9yeS8iLCJzb3VyY2VzIjpbImxpYi9lbXBsb3llZS1kZXBlbmRlbnQvbGlzdC9lbXBsb3llZS1kZXBlbmRlbnQtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDL0QsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFDbEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTNGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdGQUFnRixDQUFDO0FBQzFILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsdUJBQXVCLEVB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LEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDOzZEQUNuQztBQTVCWCw4QkFBOEI7SUFOMUMsU0FBUyxDQUFDO1FBQ1AsOENBQThDO1FBQzlDLFFBQVEsRUFBRSx3QkFBd0I7UUFDbEMsNjNlQUF1RDs7S0FFMUQsQ0FBQztHQUNXLDhCQUE4QixDQXlXMUM7U0F6V1ksOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHNcIjtcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSBcIm1vbWVudFwiO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTGF6eUxvYWRFdmVudCwgTWVudUl0ZW0sIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gXCJwcmltZW5nL3RhYmxlXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgZmluYWxpemUsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgRW1wbG95ZWVEZXBlbmRlbnRMaXN0RHRvIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZW50aXRpZXMvZW1wbG95ZWUtZGVwZW5kZW50LWNvcmUvZW1wbG95ZWUtZGVwZW5kZW50LWNvcmUtZHRvXCI7XG5pbXBvcnQgeyBFbXBsb3llZURlcGVuZGVudFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9lbnRpdGllcy9lbXBsb3llZS1kZXBlbmRlbnQtY29yZS9lbXBsb3llZS1kZXBlbmRlbnQtY29yZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBGb2N1c1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2ZvY3VzL2ZvY3VzLnNlcnZpY2VcIjtcbmltcG9ydCB7IExpc3RQYXJhbXMgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2VudGl0eS1zZXJ2aWNlXCI7XG5pbXBvcnQgeyBQYWdpbmF0b3JTdG9yYWdlU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvc3RvcmFnZS9wYWdpbmF0b3Itc3RvcmFnZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBzZXRWYWxpZGF0b3IgfSBmcm9tIFwiLi4vLi4vdXRpbHMvaGVscGVyc1wiO1xuXG5jb25zdCBtb21lbnQgPSBtb21lbnRfO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6IFwiZm5kLWVtcGxveWVlLWRlcGVuZGVudFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZW1wbG95ZWUtZGVwZW5kZW50LWxpc3QuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vZW1wbG95ZWUtZGVwZW5kZW50LWxpc3QuY29tcG9uZW50LmNzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgRW1wbG95ZWVEZXBlbmRlbnRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQge1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGVtcGxveWVlSWQoaWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9lbXBsb3llZUlkID0gaWQ7XG4gICAgICAgIHRoaXMudXBkYXRlR3JpZCgpO1xuICAgIH1cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgYWRtaXNzaW9uRHJhZnRJZChpZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2FkbWlzc2lvbkRyYWZ0SWQgPSBpZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgX2VtcGxveWVlSWQ6IHN0cmluZztcbiAgICBwdWJsaWMgX2FkbWlzc2lvbkRyYWZ0SWQ6IHN0cmluZztcbiAgICBwdWJsaWMgY2xvc2VTaWRlQmFyID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICAgIHB1YmxpYyBwZXJzb25JZDtcbiAgICBwdWJsaWMgZ3JpZERhdGE6IGFueVtdO1xuICAgIHB1YmxpYyBncmlkQ29sdW1uczogYW55W107XG4gICAgcHVibGljIGZpbHRlckZpZWxkcyA9IFtdO1xuXG4gICAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcbiAgICBwdWJsaWMgc2VydmVyRXJyb3IgPSBmYWxzZTtcbiAgICBwdWJsaWMgc2hvd0RpYWxvZyA9IGZhbHNlO1xuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgICBwdWJsaWMgbG9jYWxlQ29uZmlnOiBhbnkgPSB7fTtcbiAgICBwdWJsaWMgcGVyc29uQ2xhc3MgPSBcIlwiO1xuXG4gICAgQFZpZXdDaGlsZChcImVtcGxveWVlRGVwZW5kZW50VGFibGVcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIHRhYmxlOiBUYWJsZTtcblxuICAgIHB1YmxpYyBwZXJtaXNzaW9uczogYW55ID0ge307XG4gICAgcHVibGljIGFsbFBlcm1pc3Npb25zOiBhbnkgPSB7IH07XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICAgIHB1YmxpYyBjdXJyZW50TGlzdFBhcmFtczogYW55ID0geyBwYWdlOiAwLCBzaXplOiAxMCwgc29ydDogW10sIGZpbHRlckRhdGE6IHt9IH07XG4gICAgcHVibGljIHRvdGFsUmVjb3JkcyA9IDA7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBmb2N1c1NlcnZpY2U6IEZvY3VzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBwYWdpbmF0b3JTdG9yYWdlU2VydmljZTogUGFnaW5hdG9yU3RvcmFnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlOiBFbXBsb3llZURlcGVuZGVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXG4gICAgKSB7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVGb3JtR3JvdXAoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVWYWx1ZXNJbkZvcm1BbmRFdmVudHMoKTtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5kYXRhLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB0aGlzLm9uUm91dGVEYXRhQ2hhbmdlKGRhdGEpKTtcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IHRoaXMuZ2V0R3JpZENvbHVtbnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUZvcm1Hcm91cCgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgIHBlcnNvbjogW3sgdmFsdWU6IG51bGwsIGRpc2FibGVkOiB0cnVlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxuICAgICAgICAgICAgcmVnaXN0ZXJNZXRob2Q6IFt7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Sb3V0ZURhdGFDaGFuZ2UoZGF0YTogYW55KSB7XG4gICAgICAgIHRoaXMubG9jYWxlQ29uZmlnID0gZGF0YS5sb2NhbGVDb25maWc7XG4gICAgICAgIHRoaXMuYWxsUGVybWlzc2lvbnMgPSBkYXRhLmFsbFBlcm1pc3Npb25zO1xuICAgICAgICB0aGlzLnBlcm1pc3Npb25zID0gZGF0YS5hbGxQZXJtaXNzaW9ucz8uZW1wbG95ZWVEZXBlbmRlbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEdyaWRDb2x1bW5zKCk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogXCJkZXBlbmRlbnQuY29kUGVzXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZV8wMDFfcGVzX2NvZF9wZXNcIiksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZpZWxkOiBcImRlcGVuZGVudC5ub21QZXNcIixcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lXzAwMV9wZXNfbm9tX3Blc1wiKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGQ6IFwiZGVwZW5kZW50LmdyYVBhclwiLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudF9saXN0X2tpbnNoaXBcIiksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZpZWxkOiBcImRlcGVuZGVudC5pbnROZXRcIixcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfbGlzdF9lbWFpbFwiKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogXCJkZXBlbmRlbnQuZm9uUGVzXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X2xpc3RfcGhvbmVOdW1iZXJcIiksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3Vic2NyaWJlVmFsdWVzSW5Gb3JtQW5kRXZlbnRzKCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJyZWdpc3Rlck1ldGhvZFwiKS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB0aGlzLm9uUmVnaXN0ZXJNZXRob2QodmFsdWUpKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwicGVyc29uXCIpLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMucGVyc29uSWQgPSB2YWx1ZT8uaWQpO1xuICAgICAgICB0aGlzLmNsb3NlU2lkZUJhclxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICAgICAgZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAodmFsdWUpID0+ICEhdmFsdWUpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVHcmlkKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25SZWdpc3Rlck1ldGhvZCh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcInBlcnNvblwiKS5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgaWYgKHZhbHVlID09PSBcIm5ld1JlZ2lzdGVyXCIpIHtcbiAgICAgICAgICAgIHNldFZhbGlkYXRvcih0aGlzLmZvcm1Hcm91cCwgXCJwZXJzb25cIiwgW10pO1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwicGVyc29uXCIpLmRpc2FibGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFZhbGlkYXRvcih0aGlzLmZvcm1Hcm91cCwgXCJwZXJzb25cIiwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgICAgIHRoaXMucGVyc29uQ2xhc3MgPSBcInJlcXVpcmVkXCI7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJwZXJzb25cIikuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U29ydEZpZWxkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zb3J0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQYWdlU2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExpc3RQYXJhbXMuc2l6ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Um93SW5kZXgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnBhZ2UgKiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNpemU7XG4gICAgfVxuXG4gICAgcHVibGljIG9uR3JpZENoYW5nZShldmVudDogTGF6eUxvYWRFdmVudCkge1xuICAgICAgICBjb25zdCBzaXplID0gZXZlbnQucm93cztcbiAgICAgICAgY29uc3QgcGFnZSA9IGV2ZW50LmZpcnN0IC8gc2l6ZTtcbiAgICAgICAgY29uc3Qgc29ydCA9IGV2ZW50Lm11bHRpU29ydE1ldGE7XG5cbiAgICAgICAgaWYgKHNpemUgIT09IDEwIHx8IHBhZ2UgIT09IDAgfHwgc29ydD8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3JTdG9yYWdlU2VydmljZS5zdG9yZVBhZ2luYXRvcihcIkFubm90YXRpb25IaXN0b3J5TGlzdENvbXBvbmVudFBhZ2luYXRvclwiLCB7IHBhZ2UsIHNpemUsIHNvcnQgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVHcmlkKHsgcGFnZSwgc2l6ZSwgc29ydCB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRHcmlkKGxpc3RQYXJhbXM/OiBMaXN0UGFyYW1zKSB7XG4gICAgICAgIGlmIChsaXN0UGFyYW1zKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zID0geyAuLi50aGlzLmN1cnJlbnRMaXN0UGFyYW1zLCAuLi5saXN0UGFyYW1zIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcyA9IHsgLi4udGhpcy5jdXJyZW50TGlzdFBhcmFtcywgcGFnZTogMCwgc29ydDogW10gfTtcbiAgICAgICAgdGhpcy50YWJsZS5yZXNldCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlR3JpZChsaXN0UGFyYW1zOiBMaXN0UGFyYW1zID0ge30pIHtcbiAgICAgICAgaWYgKCF0aGlzLl9lbXBsb3llZUlkKSB7XG4gICAgICAgICAgICB0aGlzLnNlcnZlckVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuY3VycmVudExpc3RQYXJhbXMgPSB7IC4uLnRoaXMuY3VycmVudExpc3RQYXJhbXMsIC4uLmxpc3RQYXJhbXMgfTtcbiAgICAgICAgY29uc3QgeyBwYWdlLCBzaXplLCBmaWx0ZXJEYXRhIH0gPSB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zO1xuICAgICAgICBsZXQgeyBzb3J0IH0gPSB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zO1xuXG4gICAgICAgIGxldCBmaWx0ZXJRdWVyeSA9IHRoaXMuZmlsdGVyRmllbGRzXG4gICAgICAgICAgICAuZmlsdGVyKCh7IG5hbWUgfSkgPT4gISFmaWx0ZXJEYXRhW25hbWVdKVxuICAgICAgICAgICAgLm1hcCgoeyBuYW1lLCB0eXBlLCBtdWx0aXBsZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBmaWx0ZXJEYXRhW25hbWVdO1xuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZX0gZXEgJHt2YWx1ZX1gO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gRmllbGRUeXBlLkRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWV9IGVxICcke21vbWVudCh2YWx1ZSkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKX0nYDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IEZpZWxkVHlwZS5UaW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lfSBlcSAnJHttb21lbnQodmFsdWUpLmZvcm1hdChcIkhIOm1tOnNzXCIpfSdgO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gRmllbGRUeXBlLkRhdGVUaW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lfSBlcSAnJHttb21lbnQodmFsdWUpLmZvcm1hdCgpfSdgO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gRmllbGRUeXBlLlN0cmluZykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYGNvbnRhaW5pbmcodXBwZXIoJHtuYW1lfSksIHVwcGVyKCcke3ZhbHVlLnJlcGxhY2UoLycvZywgXCJcXFxcJ1wiKX0nKSlgO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gRmllbGRUeXBlLkVudW0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RW51bVF1ZXJ5KG5hbWUsIHZhbHVlLCBtdWx0aXBsZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBGaWVsZFR5cGUuTG9va3VwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lfSBlcSAnJHt2YWx1ZS5pZH0nYDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZX0gZXEgJyR7dmFsdWV9J2A7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKFwiIGFuZCBcIik7XG5cbiAgICAgICAgY29uc3QgZW1wbG95ZWVGaWx0ZXIgPSBgZW1wbG95ZWUuaWQgZXEgJyR7dGhpcy5fZW1wbG95ZWVJZH0nYDtcbiAgICAgICAgZmlsdGVyUXVlcnkgPSBmaWx0ZXJRdWVyeSA/IGAoJHtmaWx0ZXJRdWVyeX0pIGFuZCAoJHtlbXBsb3llZUZpbHRlcn0pYCA6IGVtcGxveWVlRmlsdGVyO1xuICAgICAgICBjb25zdCBkaXNwbGF5RmllbGRzID0gW1wiZW1wbG95ZWUucGVyc29uLipcIiwgXCJkZXBlbmRlbnQuKlwiXTtcbiAgICAgICAgaWYgKCFzb3J0KSB7XG4gICAgICAgICAgICBzb3J0ID0gW3sgZmllbGQ6IFwibGFzdE1vZGlmaWVkRGF0ZVwiLCBvcmRlcjogLTEgfV07XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVtcGxveWVlRGVwZW5kZW50U2VydmljZVxuICAgICAgICAgICAgLmxpc3QoeyBwYWdlLCBzaXplLCBzb3J0LCBmaWx0ZXJRdWVyeSwgZGlzcGxheUZpZWxkcyB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5zdGF0dXMgPj0gNTAwICYmIGVyci5zdGF0dXMgPCA2MDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmVyRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgobGlzdDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGxpc3QuY29udGVudHM7XG4gICAgICAgICAgICAgICAgdGhpcy50b3RhbFJlY29yZHMgPSBsaXN0LnRvdGFsRWxlbWVudHM7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXJ2ZXJFcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFByb3Aob2JqOiBhbnksIHBhdGg6IGFueSkge1xuICAgICAgICByZXR1cm4gcGF0aC5zcGxpdChcIi5cIikucmVkdWNlKChyZXN1bHQ6IGFueSwgcHJvcDogYW55KSA9PiAocmVzdWx0W3Byb3BdID09PSB1bmRlZmluZWQgPyBcIlwiIDogcmVzdWx0W3Byb3BdKSwgb2JqKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEVudW1RdWVyeShuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnksIG11bHRpcGxlOiBib29sZWFuKSB7XG4gICAgICAgIHJldHVybiBtdWx0aXBsZSA/IGAoJHt2YWx1ZS5tYXAoKHNlbGVjdGVkOiBhbnkpID0+IGAke25hbWV9IGVxICcke3NlbGVjdGVkfSdgKS5qb2luKFwiIG9yIFwiKX0pYCA6IGAke25hbWV9IGVxICcke3ZhbHVlfSdgO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVBbGxGb3JtRmllbGRzKGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZCk7XG4gICAgICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoY29udHJvbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZm9jdXNTZXJ2aWNlLmZvY3VzRmlyc3RJbnZhbGlkSW5wdXQoKTtcbiAgICAgICAgLyp7Q0E6Rk9DVVNfRklSU1RfSU5WQUxJRDpTVEFSVH0qL1xuICAgICAgICAvKntDQTpGT0NVU19GSVJTVF9JTlZBTElEOkVORH0qL1xuICAgIH1cblxuICAgIHB1YmxpYyBzZW5kVG9Gb3JtKCkge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyh0aGlzLmZvcm1Hcm91cCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNob3dEaWFsb2cgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLmVtcGxveWVlRGVwZW5kZW50U2VydmljZS5zZXRPcGVuU2lkZUJhckFuZFN0YXJ0Rm9ybSh7XG4gICAgICAgICAgICAgICAgZGVwZW5kZW50SWQ6IG51bGwsXG4gICAgICAgICAgICAgICAgcGVyc29uSWQ6IHRoaXMucGVyc29uSWQsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNhbmNlbCgpIHtcbiAgICAgICAgdGhpcy5zaG93RGlhbG9nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQWRkRGVwZW5kZW50KCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCgpO1xuICAgICAgICB0aGlzLm9uUmVnaXN0ZXJNZXRob2QoXCJuZXdSZWdpc3RlclwiKTtcbiAgICAgICAgdGhpcy5zaG93RGlhbG9nID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uRGVsZXRlKHJvdzogRW1wbG95ZWVEZXBlbmRlbnRMaXN0RHRvKSB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLmRlbGV0ZShyb3cuaWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgICAgIHNldmVyaXR5OiBcImluZm9cIixcbiAgICAgICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmRlbGV0ZWRfbWVzc2FnZV90aXRsZVwiKSxcbiAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZXhjbHVzaW9uX3Byb2Nlc3Nfc3RhcnRlZF9tZXNzYWdlX2NvbnRlbnRcIiksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVHcmlkKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkVkaXQocm93OiBFbXBsb3llZURlcGVuZGVudExpc3REdG8pIHtcbiAgICAgICAgdGhpcy5wZXJzb25JZCA9IHJvdz8uZGVwZW5kZW50Py5pZDtcbiAgICAgICAgdGhpcy5lbXBsb3llZURlcGVuZGVudFNlcnZpY2Uuc2V0T3BlblNpZGVCYXJBbmRTdGFydEZvcm0oe1xuICAgICAgICAgICAgZGVwZW5kZW50SWQ6IHJvdz8uaWQsXG4gICAgICAgICAgICBwZXJzb25JZDogdGhpcy5wZXJzb25JZCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRWRpdERyYWZ0KGRyYWZ0SWQ6IGFueSkge1xuICAgICAgICB0aGlzLmVtcGxveWVlRGVwZW5kZW50U2VydmljZS5zZXRPcGVuU2lkZUJhckFuZFN0YXJ0Rm9ybSh7XG4gICAgICAgICAgICBkZXBlbmRlbnREcmFmdElkOiBkcmFmdElkXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBY3Rpb25zKHJvd3M6IGFueSk6IE1lbnVJdGVtW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiBcIjFcIixcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVkaXRcIiksXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRWRpdChyb3dzKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogXCIyXCIsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5sb2dpY2FsX2RlbGV0ZVwiKSxcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZGVsZXRlX2NvbmZpcm1hdGlvbl9tZXNzYWdlXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0TGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZ2VuZXJpY19ub1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdExhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2dlbmVyaWNfeWVzXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2RlbGV0ZV9jb25maXJtYXRpb25fdGl0bGVcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRGVsZXRlKHJvd3MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5SZWNvcmRFeGNsdXNpb25zKCkge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcbiAgICAgICAgICAgIFtcImRlcGVuZGVudHNcIiwgXCJleGNsdXNpb25zLWxpc3RcIl0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5TmFtZTogXCJlbXBsb3llZURlcGVuZGVudFwiLFxuICAgICAgICAgICAgICAgICAgICBlbnRpdHlEZXNjcmlwdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudFwiKSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc1Blcm1pc3Npb25Ub1NlZUV4Y2x1c2lvbnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFsbFBlcm1pc3Npb25zLmV4Y2x1c2lvblByb2Nlc3NTdGVwLnZpc3VhbGl6YXIgJiYgdGhpcy5hbGxQZXJtaXNzaW9ucy5leGNsdXNpb25Qcm9jZXNzU3RlcEdyb3VwLnZpc3VhbGl6YXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE90aGVyQWN0aW9ucygpOiBNZW51SXRlbVtdIHtcbiAgICAgICAgY29uc3Qgb3RoZXJBY3Rpb25zOiBNZW51SXRlbVtdID0gW107XG5cbiAgICAgICAgaWYgKHRoaXMuaGFzUGVybWlzc2lvblRvU2VlRXhjbHVzaW9ucygpKSB7XG4gICAgICAgICAgICBvdGhlckFjdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgaWQ6IFwidmlldy1leGNsdXNpb25zXCIsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5zZWVfZXhjbHVzaW9uc1wiKSxcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB7IHRoaXMub3BlblJlY29yZEV4Y2x1c2lvbnMoKX1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG90aGVyQWN0aW9ucztcbiAgICB9XG5cbn1cbiJdfQ==
|
|
350
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtZGVwZW5kZW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9oY20tY29udHJhY3QtZW1wbG95ZWUtaGlzdG9yeS8iLCJzb3VyY2VzIjpbImxpYi9lbXBsb3llZS1kZXBlbmRlbnQvbGlzdC9lbXBsb3llZS1kZXBlbmRlbnQtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDL0QsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFDbEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTNGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdGQUFnRixDQUFDO0FBQzFILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsdUJBQXVCLEVB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LEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDOzZEQUNuQztBQTVCWCw4QkFBOEI7SUFOMUMsU0FBUyxDQUFDO1FBQ1AsOENBQThDO1FBQzlDLFFBQVEsRUFBRSx3QkFBd0I7UUFDbEMsKzVkQUF1RDs7S0FFMUQsQ0FBQztHQUNXLDhCQUE4QixDQXlXMUM7U0F6V1ksOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHNcIjtcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSBcIm1vbWVudFwiO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTGF6eUxvYWRFdmVudCwgTWVudUl0ZW0sIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gXCJwcmltZW5nL3RhYmxlXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgZmluYWxpemUsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgRW1wbG95ZWVEZXBlbmRlbnRMaXN0RHRvIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZW50aXRpZXMvZW1wbG95ZWUtZGVwZW5kZW50LWNvcmUvZW1wbG95ZWUtZGVwZW5kZW50LWNvcmUtZHRvXCI7XG5pbXBvcnQgeyBFbXBsb3llZURlcGVuZGVudFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9lbnRpdGllcy9lbXBsb3llZS1kZXBlbmRlbnQtY29yZS9lbXBsb3llZS1kZXBlbmRlbnQtY29yZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBGb2N1c1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2ZvY3VzL2ZvY3VzLnNlcnZpY2VcIjtcbmltcG9ydCB7IExpc3RQYXJhbXMgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2VudGl0eS1zZXJ2aWNlXCI7XG5pbXBvcnQgeyBQYWdpbmF0b3JTdG9yYWdlU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvc3RvcmFnZS9wYWdpbmF0b3Itc3RvcmFnZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBzZXRWYWxpZGF0b3IgfSBmcm9tIFwiLi4vLi4vdXRpbHMvaGVscGVyc1wiO1xuXG5jb25zdCBtb21lbnQgPSBtb21lbnRfO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6IFwiZm5kLWVtcGxveWVlLWRlcGVuZGVudFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZW1wbG95ZWUtZGVwZW5kZW50LWxpc3QuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vZW1wbG95ZWUtZGVwZW5kZW50LWxpc3QuY29tcG9uZW50LmNzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgRW1wbG95ZWVEZXBlbmRlbnRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQge1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGVtcGxveWVlSWQoaWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9lbXBsb3llZUlkID0gaWQ7XG4gICAgICAgIHRoaXMudXBkYXRlR3JpZCgpO1xuICAgIH1cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgYWRtaXNzaW9uRHJhZnRJZChpZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2FkbWlzc2lvbkRyYWZ0SWQgPSBpZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgX2VtcGxveWVlSWQ6IHN0cmluZztcbiAgICBwdWJsaWMgX2FkbWlzc2lvbkRyYWZ0SWQ6IHN0cmluZztcbiAgICBwdWJsaWMgY2xvc2VTaWRlQmFyID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICAgIHB1YmxpYyBwZXJzb25JZDtcbiAgICBwdWJsaWMgZ3JpZERhdGE6IGFueVtdO1xuICAgIHB1YmxpYyBncmlkQ29sdW1uczogYW55W107XG4gICAgcHVibGljIGZpbHRlckZpZWxkcyA9IFtdO1xuXG4gICAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcbiAgICBwdWJsaWMgc2VydmVyRXJyb3IgPSBmYWxzZTtcbiAgICBwdWJsaWMgc2hvd0RpYWxvZyA9IGZhbHNlO1xuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgICBwdWJsaWMgbG9jYWxlQ29uZmlnOiBhbnkgPSB7fTtcbiAgICBwdWJsaWMgcGVyc29uQ2xhc3MgPSBcIlwiO1xuXG4gICAgQFZpZXdDaGlsZChcImVtcGxveWVlRGVwZW5kZW50VGFibGVcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIHRhYmxlOiBUYWJsZTtcblxuICAgIHB1YmxpYyBwZXJtaXNzaW9uczogYW55ID0ge307XG4gICAgcHVibGljIGFsbFBlcm1pc3Npb25zOiBhbnkgPSB7IH07XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICAgIHB1YmxpYyBjdXJyZW50TGlzdFBhcmFtczogYW55ID0geyBwYWdlOiAwLCBzaXplOiAxMCwgc29ydDogW10sIGZpbHRlckRhdGE6IHt9IH07XG4gICAgcHVibGljIHRvdGFsUmVjb3JkcyA9IDA7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBmb2N1c1NlcnZpY2U6IEZvY3VzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBwYWdpbmF0b3JTdG9yYWdlU2VydmljZTogUGFnaW5hdG9yU3RvcmFnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlOiBFbXBsb3llZURlcGVuZGVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXG4gICAgKSB7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVGb3JtR3JvdXAoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVWYWx1ZXNJbkZvcm1BbmRFdmVudHMoKTtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5kYXRhLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB0aGlzLm9uUm91dGVEYXRhQ2hhbmdlKGRhdGEpKTtcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IHRoaXMuZ2V0R3JpZENvbHVtbnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUZvcm1Hcm91cCgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgIHBlcnNvbjogW3sgdmFsdWU6IG51bGwsIGRpc2FibGVkOiB0cnVlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxuICAgICAgICAgICAgcmVnaXN0ZXJNZXRob2Q6IFt7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Sb3V0ZURhdGFDaGFuZ2UoZGF0YTogYW55KSB7XG4gICAgICAgIHRoaXMubG9jYWxlQ29uZmlnID0gZGF0YS5sb2NhbGVDb25maWc7XG4gICAgICAgIHRoaXMuYWxsUGVybWlzc2lvbnMgPSBkYXRhLmFsbFBlcm1pc3Npb25zO1xuICAgICAgICB0aGlzLnBlcm1pc3Npb25zID0gZGF0YS5hbGxQZXJtaXNzaW9ucz8uZW1wbG95ZWVEZXBlbmRlbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEdyaWRDb2x1bW5zKCk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogXCJkZXBlbmRlbnQuY29kUGVzXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZV8wMDFfcGVzX2NvZF9wZXNcIiksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZpZWxkOiBcImRlcGVuZGVudC5ub21QZXNcIixcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lXzAwMV9wZXNfbm9tX3Blc1wiKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGQ6IFwiZGVwZW5kZW50LmdyYVBhclwiLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudF9saXN0X2tpbnNoaXBcIiksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZpZWxkOiBcImRlcGVuZGVudC5pbnROZXRcIixcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfbGlzdF9lbWFpbFwiKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogXCJkZXBlbmRlbnQuZm9uUGVzXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X2xpc3RfcGhvbmVOdW1iZXJcIiksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3Vic2NyaWJlVmFsdWVzSW5Gb3JtQW5kRXZlbnRzKCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJyZWdpc3Rlck1ldGhvZFwiKS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB0aGlzLm9uUmVnaXN0ZXJNZXRob2QodmFsdWUpKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwicGVyc29uXCIpLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMucGVyc29uSWQgPSB2YWx1ZT8uaWQpO1xuICAgICAgICB0aGlzLmNsb3NlU2lkZUJhclxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICAgICAgZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAodmFsdWUpID0+ICEhdmFsdWUpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVHcmlkKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25SZWdpc3Rlck1ldGhvZCh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcInBlcnNvblwiKS5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgaWYgKHZhbHVlID09PSBcIm5ld1JlZ2lzdGVyXCIpIHtcbiAgICAgICAgICAgIHNldFZhbGlkYXRvcih0aGlzLmZvcm1Hcm91cCwgXCJwZXJzb25cIiwgW10pO1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwicGVyc29uXCIpLmRpc2FibGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFZhbGlkYXRvcih0aGlzLmZvcm1Hcm91cCwgXCJwZXJzb25cIiwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgICAgIHRoaXMucGVyc29uQ2xhc3MgPSBcInJlcXVpcmVkXCI7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJwZXJzb25cIikuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U29ydEZpZWxkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zb3J0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQYWdlU2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExpc3RQYXJhbXMuc2l6ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Um93SW5kZXgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnBhZ2UgKiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNpemU7XG4gICAgfVxuXG4gICAgcHVibGljIG9uR3JpZENoYW5nZShldmVudDogTGF6eUxvYWRFdmVudCkge1xuICAgICAgICBjb25zdCBzaXplID0gZXZlbnQucm93cztcbiAgICAgICAgY29uc3QgcGFnZSA9IGV2ZW50LmZpcnN0IC8gc2l6ZTtcbiAgICAgICAgY29uc3Qgc29ydCA9IGV2ZW50Lm11bHRpU29ydE1ldGE7XG5cbiAgICAgICAgaWYgKHNpemUgIT09IDEwIHx8IHBhZ2UgIT09IDAgfHwgc29ydD8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3JTdG9yYWdlU2VydmljZS5zdG9yZVBhZ2luYXRvcihcIkFubm90YXRpb25IaXN0b3J5TGlzdENvbXBvbmVudFBhZ2luYXRvclwiLCB7IHBhZ2UsIHNpemUsIHNvcnQgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVHcmlkKHsgcGFnZSwgc2l6ZSwgc29ydCB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRHcmlkKGxpc3RQYXJhbXM/OiBMaXN0UGFyYW1zKSB7XG4gICAgICAgIGlmIChsaXN0UGFyYW1zKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zID0geyAuLi50aGlzLmN1cnJlbnRMaXN0UGFyYW1zLCAuLi5saXN0UGFyYW1zIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcyA9IHsgLi4udGhpcy5jdXJyZW50TGlzdFBhcmFtcywgcGFnZTogMCwgc29ydDogW10gfTtcbiAgICAgICAgdGhpcy50YWJsZS5yZXNldCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlR3JpZChsaXN0UGFyYW1zOiBMaXN0UGFyYW1zID0ge30pIHtcbiAgICAgICAgaWYgKCF0aGlzLl9lbXBsb3llZUlkKSB7XG4gICAgICAgICAgICB0aGlzLnNlcnZlckVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuY3VycmVudExpc3RQYXJhbXMgPSB7IC4uLnRoaXMuY3VycmVudExpc3RQYXJhbXMsIC4uLmxpc3RQYXJhbXMgfTtcbiAgICAgICAgY29uc3QgeyBwYWdlLCBzaXplLCBmaWx0ZXJEYXRhIH0gPSB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zO1xuICAgICAgICBsZXQgeyBzb3J0IH0gPSB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zO1xuXG4gICAgICAgIGxldCBmaWx0ZXJRdWVyeSA9IHRoaXMuZmlsdGVyRmllbGRzXG4gICAgICAgICAgICAuZmlsdGVyKCh7IG5hbWUgfSkgPT4gISFmaWx0ZXJEYXRhW25hbWVdKVxuICAgICAgICAgICAgLm1hcCgoeyBuYW1lLCB0eXBlLCBtdWx0aXBsZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBmaWx0ZXJEYXRhW25hbWVdO1xuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZX0gZXEgJHt2YWx1ZX1gO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gRmllbGRUeXBlLkRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWV9IGVxICcke21vbWVudCh2YWx1ZSkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKX0nYDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IEZpZWxkVHlwZS5UaW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lfSBlcSAnJHttb21lbnQodmFsdWUpLmZvcm1hdChcIkhIOm1tOnNzXCIpfSdgO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gRmllbGRUeXBlLkRhdGVUaW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lfSBlcSAnJHttb21lbnQodmFsdWUpLmZvcm1hdCgpfSdgO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gRmllbGRUeXBlLlN0cmluZykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYGNvbnRhaW5pbmcodXBwZXIoJHtuYW1lfSksIHVwcGVyKCcke3ZhbHVlLnJlcGxhY2UoLycvZywgXCJcXFxcJ1wiKX0nKSlgO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gRmllbGRUeXBlLkVudW0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RW51bVF1ZXJ5KG5hbWUsIHZhbHVlLCBtdWx0aXBsZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBGaWVsZFR5cGUuTG9va3VwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lfSBlcSAnJHt2YWx1ZS5pZH0nYDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZX0gZXEgJyR7dmFsdWV9J2A7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKFwiIGFuZCBcIik7XG5cbiAgICAgICAgY29uc3QgZW1wbG95ZWVGaWx0ZXIgPSBgZW1wbG95ZWUuaWQgZXEgJyR7dGhpcy5fZW1wbG95ZWVJZH0nYDtcbiAgICAgICAgZmlsdGVyUXVlcnkgPSBmaWx0ZXJRdWVyeSA/IGAoJHtmaWx0ZXJRdWVyeX0pIGFuZCAoJHtlbXBsb3llZUZpbHRlcn0pYCA6IGVtcGxveWVlRmlsdGVyO1xuICAgICAgICBjb25zdCBkaXNwbGF5RmllbGRzID0gW1wiZW1wbG95ZWUucGVyc29uLipcIiwgXCJkZXBlbmRlbnQuKlwiXTtcbiAgICAgICAgaWYgKCFzb3J0KSB7XG4gICAgICAgICAgICBzb3J0ID0gW3sgZmllbGQ6IFwibGFzdE1vZGlmaWVkRGF0ZVwiLCBvcmRlcjogLTEgfV07XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVtcGxveWVlRGVwZW5kZW50U2VydmljZVxuICAgICAgICAgICAgLmxpc3QoeyBwYWdlLCBzaXplLCBzb3J0LCBmaWx0ZXJRdWVyeSwgZGlzcGxheUZpZWxkcyB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5zdGF0dXMgPj0gNTAwICYmIGVyci5zdGF0dXMgPCA2MDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmVyRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgobGlzdDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGxpc3QuY29udGVudHM7XG4gICAgICAgICAgICAgICAgdGhpcy50b3RhbFJlY29yZHMgPSBsaXN0LnRvdGFsRWxlbWVudHM7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXJ2ZXJFcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFByb3Aob2JqOiBhbnksIHBhdGg6IGFueSkge1xuICAgICAgICByZXR1cm4gcGF0aC5zcGxpdChcIi5cIikucmVkdWNlKChyZXN1bHQ6IGFueSwgcHJvcDogYW55KSA9PiAocmVzdWx0W3Byb3BdID09PSB1bmRlZmluZWQgPyBcIlwiIDogcmVzdWx0W3Byb3BdKSwgb2JqKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEVudW1RdWVyeShuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnksIG11bHRpcGxlOiBib29sZWFuKSB7XG4gICAgICAgIHJldHVybiBtdWx0aXBsZSA/IGAoJHt2YWx1ZS5tYXAoKHNlbGVjdGVkOiBhbnkpID0+IGAke25hbWV9IGVxICcke3NlbGVjdGVkfSdgKS5qb2luKFwiIG9yIFwiKX0pYCA6IGAke25hbWV9IGVxICcke3ZhbHVlfSdgO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVBbGxGb3JtRmllbGRzKGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZCk7XG4gICAgICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoY29udHJvbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZm9jdXNTZXJ2aWNlLmZvY3VzRmlyc3RJbnZhbGlkSW5wdXQoKTtcbiAgICAgICAgLyp7Q0E6Rk9DVVNfRklSU1RfSU5WQUxJRDpTVEFSVH0qL1xuICAgICAgICAvKntDQTpGT0NVU19GSVJTVF9JTlZBTElEOkVORH0qL1xuICAgIH1cblxuICAgIHB1YmxpYyBzZW5kVG9Gb3JtKCkge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyh0aGlzLmZvcm1Hcm91cCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNob3dEaWFsb2cgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLmVtcGxveWVlRGVwZW5kZW50U2VydmljZS5zZXRPcGVuU2lkZUJhckFuZFN0YXJ0Rm9ybSh7XG4gICAgICAgICAgICAgICAgZGVwZW5kZW50SWQ6IG51bGwsXG4gICAgICAgICAgICAgICAgcGVyc29uSWQ6IHRoaXMucGVyc29uSWQsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNhbmNlbCgpIHtcbiAgICAgICAgdGhpcy5zaG93RGlhbG9nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQWRkRGVwZW5kZW50KCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCgpO1xuICAgICAgICB0aGlzLm9uUmVnaXN0ZXJNZXRob2QoXCJuZXdSZWdpc3RlclwiKTtcbiAgICAgICAgdGhpcy5zaG93RGlhbG9nID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uRGVsZXRlKHJvdzogRW1wbG95ZWVEZXBlbmRlbnRMaXN0RHRvKSB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLmRlbGV0ZShyb3cuaWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgICAgIHNldmVyaXR5OiBcImluZm9cIixcbiAgICAgICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmRlbGV0ZWRfbWVzc2FnZV90aXRsZVwiKSxcbiAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZXhjbHVzaW9uX3Byb2Nlc3Nfc3RhcnRlZF9tZXNzYWdlX2NvbnRlbnRcIiksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVHcmlkKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkVkaXQocm93OiBFbXBsb3llZURlcGVuZGVudExpc3REdG8pIHtcbiAgICAgICAgdGhpcy5wZXJzb25JZCA9IHJvdz8uZGVwZW5kZW50Py5pZDtcbiAgICAgICAgdGhpcy5lbXBsb3llZURlcGVuZGVudFNlcnZpY2Uuc2V0T3BlblNpZGVCYXJBbmRTdGFydEZvcm0oe1xuICAgICAgICAgICAgZGVwZW5kZW50SWQ6IHJvdz8uaWQsXG4gICAgICAgICAgICBwZXJzb25JZDogdGhpcy5wZXJzb25JZCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRWRpdERyYWZ0KGRyYWZ0SWQ6IGFueSkge1xuICAgICAgICB0aGlzLmVtcGxveWVlRGVwZW5kZW50U2VydmljZS5zZXRPcGVuU2lkZUJhckFuZFN0YXJ0Rm9ybSh7XG4gICAgICAgICAgICBkZXBlbmRlbnREcmFmdElkOiBkcmFmdElkXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBY3Rpb25zKHJvd3M6IGFueSk6IE1lbnVJdGVtW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiBcIjFcIixcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVkaXRcIiksXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRWRpdChyb3dzKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogXCIyXCIsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5sb2dpY2FsX2RlbGV0ZVwiKSxcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZGVsZXRlX2NvbmZpcm1hdGlvbl9tZXNzYWdlXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0TGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZ2VuZXJpY19ub1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdExhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2dlbmVyaWNfeWVzXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2RlbGV0ZV9jb25maXJtYXRpb25fdGl0bGVcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRGVsZXRlKHJvd3MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5SZWNvcmRFeGNsdXNpb25zKCkge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcbiAgICAgICAgICAgIFtcImRlcGVuZGVudHNcIiwgXCJleGNsdXNpb25zLWxpc3RcIl0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5TmFtZTogXCJlbXBsb3llZURlcGVuZGVudFwiLFxuICAgICAgICAgICAgICAgICAgICBlbnRpdHlEZXNjcmlwdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudFwiKSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc1Blcm1pc3Npb25Ub1NlZUV4Y2x1c2lvbnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFsbFBlcm1pc3Npb25zLmV4Y2x1c2lvblByb2Nlc3NTdGVwLnZpc3VhbGl6YXIgJiYgdGhpcy5hbGxQZXJtaXNzaW9ucy5leGNsdXNpb25Qcm9jZXNzU3RlcEdyb3VwLnZpc3VhbGl6YXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE90aGVyQWN0aW9ucygpOiBNZW51SXRlbVtdIHtcbiAgICAgICAgY29uc3Qgb3RoZXJBY3Rpb25zOiBNZW51SXRlbVtdID0gW107XG5cbiAgICAgICAgaWYgKHRoaXMuaGFzUGVybWlzc2lvblRvU2VlRXhjbHVzaW9ucygpKSB7XG4gICAgICAgICAgICBvdGhlckFjdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgaWQ6IFwidmlldy1leGNsdXNpb25zXCIsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5zZWVfZXhjbHVzaW9uc1wiKSxcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB7IHRoaXMub3BlblJlY29yZEV4Y2x1c2lvbnMoKX1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG90aGVyQWN0aW9ucztcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -361,11 +361,11 @@ var EmployeeDependentListComponent = /** @class */ (function () {
|
|
|
361
361
|
Component({
|
|
362
362
|
// tslint:disable-next-line:component-selector
|
|
363
363
|
selector: "fnd-employee-dependent",
|
|
364
|
-
template: "<p-panel *sLoadingState=\"loading\">\n <p-tabView styleClass=\"form-group\" *sLoadingState=\"loading\" >\n <p-tabPanel *ngIf=\"!_admissionDraftId\"\n [header]=\"'hcm_contract.employment_contract.employee_dependent_title_header' | translate\">\n <div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <button id=\"add-button\" type=\"button\" pButton [label]=\"'hcm_contract.employment_contract.add_employee_dependent' | translate\"\n title=\"{{'hcm_contract.employment_contract.add_employee_dependent' | translate}} (Alt + Shift + N)\"\n *ngIf=\"permissions.incluir\" (click)=\"onAddDependent()\"></button>\n <s-button id=\"other-actions-button\"\n [label]=\"'hcm_contract.employment_contract.other_actions' | translate\"\n [model]=\"getOtherActions()\"\n priority=\"secondary\"\n [disabled]=\"false\" [auxiliary]=\"false\"\n *ngIf=\"hasPermissionToSeeExclusions()\">\n </s-button>\n </div>\n </div>\n <s-empty-state\n *ngIf=\"serverError\"\n iconClass=\"fa fa-exclamation-triangle\"\n title=\"{{'hcm_contract.employment_contract.error_server_title' | translate}}\"\n primaryActionLabel=\"{{'hcm_contract.employment_contract.error_server_try_again' | translate}}\"\n (primaryAction)=\"resetGrid()\" description=\"{{'hcm_contract.employment_contract.error_server_description' | translate}}\"></s-empty-state>\n <s-empty-state *ngIf=\"!this.gridData?.length && !serverError\" [title]=\"'hcm_contract.employment_contract.employee_dependent_empty_state_title' | translate\"\n [showPrimaryAction]=\"this.permissions.incluir\" [primaryActionLabel]=\"'hcm_contract.employment_contract.add_employee_dependent' | translate\"\n (primaryAction)=\"onAddDependent()\" [description]=\"'hcm_contract.employment_contract.employee_dependent_empty_state_description' | translate\"\n [showSecondaryAction]=\"permissions.incluir\" [showSecondaryAction]=\"hasPermissionToSeeExclusions()\"\n [secondaryActionLabel]=\"'hcm_contract.employment_contract.see_exclusions' | translate\"\n (secondaryAction)=\"openRecordExclusions()\">\n </s-empty-state>\n <div [attr.data-hidden]=\"!gridData?.length || serverError\">\n\n <p-table #employeeDependentTable [value]=\"gridData\" [columns]=\"gridColumns\" dataKey=\"id\" [lazy]=\"true\"\n [scrollable]=\"true\" [resizableColumns]=\"true\" sortMode=\"multiple\" [paginator]=\"true\"\n [totalRecords]=\"totalRecords\" [multiSortMeta]=\"getSortField()\" [first]=\"getRowIndex()\"\n [rows]=\"getPageSize()\" [rowsPerPageOptions]=\"[10, 20, 50, 100]\"\n (onLazyLoad)=\"onGridChange($event)\">\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col *ngFor=\"let col of columns\">\n </colgroup>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" [pSortableColumn]=\"col.field\"\n pResizableColumn>\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{col.header}}</span>\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n </div>\n </th>\n <th pResizableColumn scope=\"col\" *ngIf=\"this.permissions.excluir\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{'hcm_contract.employment_contract.actions' |\n translate}}</span>\n </div>\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData let-columns>\n <tr [pSelectableRow]=\"rowData\">\n <td>\n <span>{{\"\" + (getProp(rowData, 'dependent.codPes'))}}</span>\n </td>\n <td>\n <span>{{\"\" + (getProp(rowData, 'dependent.nomPes')|| ('hcm_contract.employment_contract.list_grid_empty_field' | translate))}}</span>\n </td>\n <td>\n <div [ngSwitch]=\"getProp(rowData, 'dependent.graPde') || ('hcm_contract.employment_contract.list_grid_empty_field' | translate)\">\n <span *ngSwitchCase=\"'SON'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_SON\" | translate}}</span>\n <span *ngSwitchCase=\"'SPOUSE'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_SPOUSE\" | translate}}</span>\n <span *ngSwitchCase=\"'FATHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_FATHER\" | translate}}</span>\n <span *ngSwitchCase=\"'GRANDFATHER_GRANDMOTHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GRANDFATHER_GRANDMOTHER\" | translate}}</span>\n <span *ngSwitchCase=\"'GREAT_GRANDFATHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GREAT_GRANDFATHER\" | translate}}</span>\n <span *ngSwitchCase=\"'NEPHEW'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_NEPHEW\" | translate}}</span>\n <span *ngSwitchCase=\"'UNCLE'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_UNCLE\" | translate}}</span>\n <span *ngSwitchCase=\"'GRANDSON'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GRANDSON\" | translate}}</span>\n <span *ngSwitchCase=\"'FATHER_IN_LAW'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_FATHER_IN_LAW\" | translate}}</span>\n <span *ngSwitchCase=\"'SON_IN_LAW_DAOUGHTER_IN_LAW'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_SON_IN_LAW_DAOUGHTER_IN_LAW\" | translate}}</span>\n <span *ngSwitchCase=\"'STEPSON'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_STEPSON\" | translate}}</span>\n <span *ngSwitchCase=\"'BROTHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_BROTHER\" | translate}}</span>\n <span *ngSwitchCase=\"'ADOPTED_CHILD'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_ADOPTED_CHILD\" | translate}}</span>\n <span *ngSwitchCase=\"'PENSIONERS'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_PENSIONERS\" | translate}}</span>\n <span *ngSwitchCase=\"'COMPANION'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_COMPANION\" | translate}}</span>\n <span *ngSwitchCase=\"'GUARDIANSHIP'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GUARDIANSHIP\" | translate}}</span>\n <span *ngSwitchCase=\"'MINOR_UNDER_GUARD'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_MINOR_UNDER_GUARD\" | translate}}</span>\n <span *ngSwitchCase=\"'STEPMOTHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_STEPMOTHER\" | translate}}</span>\n <span *ngSwitchCase=\"'STEPFATHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_STEPFATHER\" | translate}}</span>\n <span *ngSwitchCase=\"'TUTOR'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_TUTOR\" | translate}}</span>\n <span *ngSwitchCase=\"'EX_EXPOSED'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_EX_EXPOSED\" | translate}}</span>\n <span *ngSwitchCase=\"'GREAT_GRANDSON'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GREAT_GRANDSON\" | translate}}</span>\n <span *ngSwitchCase=\"'EX_PARTNER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_EX_PARTNER\" | translate}}</span>\n <span *ngSwitchCase=\"'CONCUBINE'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_CONCUBINE\" | translate}}</span>\n <span *ngSwitchCase=\"'CURATORSHIP'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_CURATORSHIP\" | translate}}</span>\n <span *ngSwitchCase=\"'SOCIOAFFECTIVE'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_SOCIOAFFECTIVE\" | translate}}</span>\n <span *ngSwitchCase=\"'FATHER_MOTHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_FATHER_MOTHER\" | translate}}</span>\n <span *ngSwitchCase=\"'OTHERS'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_OTHERS\" | translate}}</span>\n <span *ngSwitchDefault>{{ \"hcm_contract.employment_contract.list_grid_empty_field\" | translate}}</span>\n </div>\n </td>\n <td>\n <span>{{\"\" + (getProp(rowData, 'dependent.intNet')|| ('hcm_contract.employment_contract.list_grid_empty_field' | translate))}}</span>\n </td>\n <td>\n <span>{{\"\" + (getProp(rowData, 'dependent.fonPes')|| ('hcm_contract.employment_contract.list_grid_empty_field' | translate))}}</span>\n </td>\n <td class=\"txt-center\" tabindex=\"0\" *ngIf=\"this.permissions.editar && this.permissions.excluir\">\n <s-button label=\"{{'hcm_contract.employment_contract.admission_generic_actions' | translate}}\"\n priority=\"default\" [model]=\"getActions(rowData)\" [disabled]=\"false\" [auxiliary]=\"true\"></s-button>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\">\n <span\n [translate]=\"'hcm_contract.employment_contract.total_records'\"\n [translateParams]=\"{value: totalRecords}\">\n </span>\n </ng-template>\n </p-table>\n </div>\n </p-tabPanel>\n <p-tabPanel\n [header]=\"'hcm_contract.employment_contract.employee_dependent_draft_title_header' | translate\">\n <app-dependent-list-draft\n (addButtonClicked)=\"onAddDependent()\"\n [employeeId]=\"_employeeId\"\n [closeSideBar]=\"closeSideBar\"\n [admissionDraftId]=\"_admissionDraftId\"\n (onEdit)=\"onEditDraft($event)\">\n </app-dependent-list-draft>\n </p-tabPanel>\n </p-tabView>\n</p-panel>\n<p-dialog header=\"{{ 'hcm_contract.employment_contract.employee_dependent_register_method_title' | translate }}\"\n[draggable]=\"false\" [modal]=\"true\"\n[(visible)]=\"showDialog\" [closable]=\"false\">\n <form class=\"ui-fluid\" [formGroup]=\"formGroup\">\n <div class=\"radio-buttons required ui-lg-12\" style=\"margin-bottom: 20px;\">\n <label id=\"registerMethod\">{{ 'hcm_contract.employment_contract.employee_dependent_register_method_label' | translate }}</label>\n <div><p-radioButton name=\"registerMethod\" formControlName=\"registerMethod\"\n value=\"newRegister\"\n label=\"{{ 'hcm_contract.employment_contract.employee_dependent_register_method_create_data' | translate}}\"></p-radioButton></div>\n <div><p-radioButton\n name=\"registerMethod\" formControlName=\"registerMethod\"\n value=\"existing\"\n label=\"{{ 'hcm_contract.employment_contract.employee_dependent_register_method_existing_data' | translate}}\"></p-radioButton></div>\n <s-control-errors\n id=\"er-registerMethod\"\n [control]=\"formGroup.get('registerMethod')\"\n [errorMessages]=\"{\n required: 'hcm_contract.employment_contract.admission_generic_field_validator_required' | translate\n }\"\n ></s-control-errors>\n </div>\n\n <div class=\"ui-lg-12\">\n <div class=\"person-label\">\n <label for=\"personLabel\">{{'hcm_contract.employment_contract.data_person_id_lookup_title' | translate}}</label>\n <span\n id=\"personLabel\"\n class=\"fa fa-info-circle\"\n [pTooltip]=\"'hcm_contract.employment_contract.employee_dependent_tooltip_person' | translate\">\n </span>\n </div>\n <div class=\"{{personClass}}\">\n <fnd-person-lookup [formGroup]=\"formGroup\" [locale]=\"localeConfig\"></fnd-person-lookup>\n <s-control-errors\n id=\"er-person\"\n [control]=\"formGroup.get('person')\"\n [errorMessages]=\"{\n required: 'hcm_contract.employment_contract.admission_generic_field_validator_required' | translate\n }\"\n ></s-control-errors>\n </div>\n </div>\n </form>\n <p-footer>\n <s-button\n [label]=\"'hcm_contract.employment_contract.employee_dependent_next' | translate\"\n priority=\"primary\" (onClick)=\"sendToForm()\">\n </s-button>\n <s-button\n [label]=\"'hcm_contract.employment_contract.cancel' | translate\"\n priority=\"secondary\"\n (onClick)=\"onCancel()\">\n </s-button>\n </p-footer>\n</p-dialog>\n<p-confirmDialog></p-confirmDialog>\n<fnd-employee-dependent-form [employeeId]=\"_employeeId\" [admissionDraft]=\"_admissionDraftId\" [closeSideBar]=\"closeSideBar\"></fnd-employee-dependent-form>\n<s-exclusion-details></s-exclusion-details>\n",
|
|
364
|
+
template: "<p-panel *sLoadingState=\"loading\">\n <p-tabView styleClass=\"form-group\" *sLoadingState=\"loading\" >\n <p-tabPanel *ngIf=\"!_admissionDraftId\"\n [header]=\"'hcm_contract.employment_contract.employee_dependent_title_header' | translate\">\n <div class=\"ui-g\" *ngIf=\"this.gridData?.length\">\n <div class=\"ui-g-12\">\n <button id=\"add-button\" type=\"button\" pButton [label]=\"'hcm_contract.employment_contract.add_employee_dependent' | translate\"\n title=\"{{'hcm_contract.employment_contract.add_employee_dependent' | translate}} (Alt + Shift + N)\"\n *ngIf=\"permissions.incluir\" (click)=\"onAddDependent()\"></button>\n <s-button id=\"other-actions-button\"\n [label]=\"'hcm_contract.employment_contract.other_actions' | translate\"\n [model]=\"getOtherActions()\"\n priority=\"secondary\"\n [disabled]=\"false\" [auxiliary]=\"false\"\n *ngIf=\"hasPermissionToSeeExclusions()\">\n </s-button>\n </div>\n </div>\n <s-empty-state *ngIf=\"!this.gridData?.length\" [title]=\"'hcm_contract.employment_contract.employee_dependent_empty_state_title' | translate\"\n [showPrimaryAction]=\"this.permissions.incluir\" [primaryActionLabel]=\"'hcm_contract.employment_contract.add_employee_dependent' | translate\"\n (primaryAction)=\"onAddDependent()\" [description]=\"'hcm_contract.employment_contract.employee_dependent_empty_state_description' | translate\"\n [showSecondaryAction]=\"permissions.incluir\" [showSecondaryAction]=\"hasPermissionToSeeExclusions()\"\n [secondaryActionLabel]=\"'hcm_contract.employment_contract.see_exclusions' | translate\"\n (secondaryAction)=\"openRecordExclusions()\">\n </s-empty-state>\n <div [attr.data-hidden]=\"!gridData?.length || serverError\">\n\n <p-table #employeeDependentTable [value]=\"gridData\" [columns]=\"gridColumns\" dataKey=\"id\" [lazy]=\"true\"\n [scrollable]=\"true\" [resizableColumns]=\"true\" sortMode=\"multiple\" [paginator]=\"true\"\n [totalRecords]=\"totalRecords\" [multiSortMeta]=\"getSortField()\" [first]=\"getRowIndex()\"\n [rows]=\"getPageSize()\" [rowsPerPageOptions]=\"[10, 20, 50, 100]\"\n (onLazyLoad)=\"onGridChange($event)\">\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col *ngFor=\"let col of columns\">\n </colgroup>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" [pSortableColumn]=\"col.field\"\n pResizableColumn>\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{col.header}}</span>\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n </div>\n </th>\n <th pResizableColumn scope=\"col\" *ngIf=\"this.permissions.excluir\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{'hcm_contract.employment_contract.actions' |\n translate}}</span>\n </div>\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData let-columns>\n <tr [pSelectableRow]=\"rowData\">\n <td>\n <span>{{\"\" + (getProp(rowData, 'dependent.codPes'))}}</span>\n </td>\n <td>\n <span>{{\"\" + (getProp(rowData, 'dependent.nomPes')|| ('hcm_contract.employment_contract.list_grid_empty_field' | translate))}}</span>\n </td>\n <td>\n <div [ngSwitch]=\"getProp(rowData, 'dependent.graPde') || ('hcm_contract.employment_contract.list_grid_empty_field' | translate)\">\n <span *ngSwitchCase=\"'SON'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_SON\" | translate}}</span>\n <span *ngSwitchCase=\"'SPOUSE'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_SPOUSE\" | translate}}</span>\n <span *ngSwitchCase=\"'FATHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_FATHER\" | translate}}</span>\n <span *ngSwitchCase=\"'GRANDFATHER_GRANDMOTHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GRANDFATHER_GRANDMOTHER\" | translate}}</span>\n <span *ngSwitchCase=\"'GREAT_GRANDFATHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GREAT_GRANDFATHER\" | translate}}</span>\n <span *ngSwitchCase=\"'NEPHEW'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_NEPHEW\" | translate}}</span>\n <span *ngSwitchCase=\"'UNCLE'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_UNCLE\" | translate}}</span>\n <span *ngSwitchCase=\"'GRANDSON'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GRANDSON\" | translate}}</span>\n <span *ngSwitchCase=\"'FATHER_IN_LAW'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_FATHER_IN_LAW\" | translate}}</span>\n <span *ngSwitchCase=\"'SON_IN_LAW_DAOUGHTER_IN_LAW'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_SON_IN_LAW_DAOUGHTER_IN_LAW\" | translate}}</span>\n <span *ngSwitchCase=\"'STEPSON'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_STEPSON\" | translate}}</span>\n <span *ngSwitchCase=\"'BROTHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_BROTHER\" | translate}}</span>\n <span *ngSwitchCase=\"'ADOPTED_CHILD'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_ADOPTED_CHILD\" | translate}}</span>\n <span *ngSwitchCase=\"'PENSIONERS'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_PENSIONERS\" | translate}}</span>\n <span *ngSwitchCase=\"'COMPANION'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_COMPANION\" | translate}}</span>\n <span *ngSwitchCase=\"'GUARDIANSHIP'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GUARDIANSHIP\" | translate}}</span>\n <span *ngSwitchCase=\"'MINOR_UNDER_GUARD'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_MINOR_UNDER_GUARD\" | translate}}</span>\n <span *ngSwitchCase=\"'STEPMOTHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_STEPMOTHER\" | translate}}</span>\n <span *ngSwitchCase=\"'STEPFATHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_STEPFATHER\" | translate}}</span>\n <span *ngSwitchCase=\"'TUTOR'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_TUTOR\" | translate}}</span>\n <span *ngSwitchCase=\"'EX_EXPOSED'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_EX_EXPOSED\" | translate}}</span>\n <span *ngSwitchCase=\"'GREAT_GRANDSON'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_GREAT_GRANDSON\" | translate}}</span>\n <span *ngSwitchCase=\"'EX_PARTNER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_EX_PARTNER\" | translate}}</span>\n <span *ngSwitchCase=\"'CONCUBINE'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_CONCUBINE\" | translate}}</span>\n <span *ngSwitchCase=\"'CURATORSHIP'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_CURATORSHIP\" | translate}}</span>\n <span *ngSwitchCase=\"'SOCIOAFFECTIVE'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_SOCIOAFFECTIVE\" | translate}}</span>\n <span *ngSwitchCase=\"'FATHER_MOTHER'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_FATHER_MOTHER\" | translate}}</span>\n <span *ngSwitchCase=\"'OTHERS'\">{{ \"hcm_contract.employment_contract.employee_dependent_kinship_degree_OTHERS\" | translate}}</span>\n <span *ngSwitchDefault>{{ \"hcm_contract.employment_contract.list_grid_empty_field\" | translate}}</span>\n </div>\n </td>\n <td>\n <span>{{\"\" + (getProp(rowData, 'dependent.intNet')|| ('hcm_contract.employment_contract.list_grid_empty_field' | translate))}}</span>\n </td>\n <td>\n <span>{{\"\" + (getProp(rowData, 'dependent.fonPes')|| ('hcm_contract.employment_contract.list_grid_empty_field' | translate))}}</span>\n </td>\n <td class=\"txt-center\" tabindex=\"0\" *ngIf=\"this.permissions.editar && this.permissions.excluir\">\n <s-button label=\"{{'hcm_contract.employment_contract.admission_generic_actions' | translate}}\"\n priority=\"default\" [model]=\"getActions(rowData)\" [disabled]=\"false\" [auxiliary]=\"true\"></s-button>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\">\n <span\n [translate]=\"'hcm_contract.employment_contract.total_records'\"\n [translateParams]=\"{value: totalRecords}\">\n </span>\n </ng-template>\n </p-table>\n </div>\n </p-tabPanel>\n <p-tabPanel\n [header]=\"'hcm_contract.employment_contract.employee_dependent_draft_title_header' | translate\">\n <app-dependent-list-draft\n (addButtonClicked)=\"onAddDependent()\"\n [employeeId]=\"_employeeId\"\n [closeSideBar]=\"closeSideBar\"\n [admissionDraftId]=\"_admissionDraftId\"\n (onEdit)=\"onEditDraft($event)\">\n </app-dependent-list-draft>\n </p-tabPanel>\n </p-tabView>\n</p-panel>\n<p-dialog header=\"{{ 'hcm_contract.employment_contract.employee_dependent_register_method_title' | translate }}\"\n[draggable]=\"false\" [modal]=\"true\"\n[(visible)]=\"showDialog\" [closable]=\"false\">\n <form class=\"ui-fluid\" [formGroup]=\"formGroup\">\n <div class=\"radio-buttons required ui-lg-12\" style=\"margin-bottom: 20px;\">\n <label id=\"registerMethod\">{{ 'hcm_contract.employment_contract.employee_dependent_register_method_label' | translate }}</label>\n <div><p-radioButton name=\"registerMethod\" formControlName=\"registerMethod\"\n value=\"newRegister\"\n label=\"{{ 'hcm_contract.employment_contract.employee_dependent_register_method_create_data' | translate}}\"></p-radioButton></div>\n <div><p-radioButton\n name=\"registerMethod\" formControlName=\"registerMethod\"\n value=\"existing\"\n label=\"{{ 'hcm_contract.employment_contract.employee_dependent_register_method_existing_data' | translate}}\"></p-radioButton></div>\n <s-control-errors\n id=\"er-registerMethod\"\n [control]=\"formGroup.get('registerMethod')\"\n [errorMessages]=\"{\n required: 'hcm_contract.employment_contract.admission_generic_field_validator_required' | translate\n }\"\n ></s-control-errors>\n </div>\n\n <div class=\"ui-lg-12\">\n <div class=\"person-label\">\n <label for=\"personLabel\">{{'hcm_contract.employment_contract.data_person_id_lookup_title' | translate}}</label>\n <span\n id=\"personLabel\"\n class=\"fa fa-info-circle\"\n [pTooltip]=\"'hcm_contract.employment_contract.employee_dependent_tooltip_person' | translate\">\n </span>\n </div>\n <div class=\"{{personClass}}\">\n <fnd-person-lookup [formGroup]=\"formGroup\" [locale]=\"localeConfig\"></fnd-person-lookup>\n <s-control-errors\n id=\"er-person\"\n [control]=\"formGroup.get('person')\"\n [errorMessages]=\"{\n required: 'hcm_contract.employment_contract.admission_generic_field_validator_required' | translate\n }\"\n ></s-control-errors>\n </div>\n </div>\n </form>\n <p-footer>\n <s-button\n [label]=\"'hcm_contract.employment_contract.employee_dependent_next' | translate\"\n priority=\"primary\" (onClick)=\"sendToForm()\">\n </s-button>\n <s-button\n [label]=\"'hcm_contract.employment_contract.cancel' | translate\"\n priority=\"secondary\"\n (onClick)=\"onCancel()\">\n </s-button>\n </p-footer>\n</p-dialog>\n<p-confirmDialog></p-confirmDialog>\n<fnd-employee-dependent-form [employeeId]=\"_employeeId\" [admissionDraft]=\"_admissionDraftId\" [closeSideBar]=\"closeSideBar\"></fnd-employee-dependent-form>\n<s-exclusion-details></s-exclusion-details>\n",
|
|
365
365
|
styles: [".radio-buttons{display:flex;flex-direction:column;gap:6px}.person-label{display:flex;gap:5px;align-items:center}"]
|
|
366
366
|
})
|
|
367
367
|
], EmployeeDependentListComponent);
|
|
368
368
|
return EmployeeDependentListComponent;
|
|
369
369
|
}());
|
|
370
370
|
export { EmployeeDependentListComponent };
|
|
371
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtZGVwZW5kZW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9oY20tY29udHJhY3QtZW1wbG95ZWUtaGlzdG9yeS8iLCJzb3VyY2VzIjpbImxpYi9lbXBsb3llZS1kZXBlbmRlbnQvbGlzdC9lbXBsb3llZS1kZXBlbmRlbnQtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDL0QsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFDbEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTNGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdGQUFnRixDQUFDO0FBQzFILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsdUJBQXVCLEVB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QUFXO2dCQUNDLGlCQUFpQjtnQkFDbkIsWUFBWTtnQkFDRCx1QkFBdUI7Z0JBQ3RCLHdCQUF3QjtnQkFDbEMsY0FBYztnQkFDQSxtQkFBbUI7Z0JBQ3hCLGNBQWM7Z0JBQzdCLE1BQU07O0lBNUM1QjtRQURDLEtBQUssRUFBRTtvRUFJUDtJQUVEO1FBREMsS0FBSyxFQUFFOzBFQUdQO0lBa0JEO1FBREMsU0FBUyxDQUFDLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO2lFQUNuQztJQTVCWCw4QkFBOEI7UUFOMUMsU0FBUyxDQUFDO1lBQ1AsOENBQThDO1lBQzlDLFFBQVEsRUFBRSx3QkFBd0I7WUFDbEMsNjNlQUF1RDs7U0FFMUQsQ0FBQztPQUNXLDhCQUE4QixDQXlXMUM7SUFBRCxxQ0FBQztDQUFBLEFBeldELElBeVdDO1NBeldZLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0NoZWNrZWQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzXCI7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gXCJtb21lbnRcIjtcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIExhenlMb2FkRXZlbnQsIE1lbnVJdGVtLCBNZXNzYWdlU2VydmljZSB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tIFwicHJpbWVuZy90YWJsZVwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIGZpbmFsaXplLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IEVtcGxveWVlRGVwZW5kZW50TGlzdER0byB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2VudGl0aWVzL2VtcGxveWVlLWRlcGVuZGVudC1jb3JlL2VtcGxveWVlLWRlcGVuZGVudC1jb3JlLWR0b1wiO1xuaW1wb3J0IHsgRW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZW50aXRpZXMvZW1wbG95ZWUtZGVwZW5kZW50LWNvcmUvZW1wbG95ZWUtZGVwZW5kZW50LWNvcmUuc2VydmljZVwiO1xuaW1wb3J0IHsgRm9jdXNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9mb2N1cy9mb2N1cy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBMaXN0UGFyYW1zIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9lbnRpdHktc2VydmljZVwiO1xuaW1wb3J0IHsgUGFnaW5hdG9yU3RvcmFnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3N0b3JhZ2UvcGFnaW5hdG9yLXN0b3JhZ2Uuc2VydmljZVwiO1xuaW1wb3J0IHsgc2V0VmFsaWRhdG9yIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2hlbHBlcnNcIjtcblxuY29uc3QgbW9tZW50ID0gbW9tZW50XztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiBcImZuZC1lbXBsb3llZS1kZXBlbmRlbnRcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2VtcGxveWVlLWRlcGVuZGVudC1saXN0LmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2VtcGxveWVlLWRlcGVuZGVudC1saXN0LmNvbXBvbmVudC5jc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIEVtcGxveWVlRGVwZW5kZW50TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkIHtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBlbXBsb3llZUlkKGlkOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fZW1wbG95ZWVJZCA9IGlkO1xuICAgICAgICB0aGlzLnVwZGF0ZUdyaWQoKTtcbiAgICB9XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGFkbWlzc2lvbkRyYWZ0SWQoaWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9hZG1pc3Npb25EcmFmdElkID0gaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIF9lbXBsb3llZUlkOiBzdHJpbmc7XG4gICAgcHVibGljIF9hZG1pc3Npb25EcmFmdElkOiBzdHJpbmc7XG4gICAgcHVibGljIGNsb3NlU2lkZUJhciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBwdWJsaWMgcGVyc29uSWQ7XG4gICAgcHVibGljIGdyaWREYXRhOiBhbnlbXTtcbiAgICBwdWJsaWMgZ3JpZENvbHVtbnM6IGFueVtdO1xuICAgIHB1YmxpYyBmaWx0ZXJGaWVsZHMgPSBbXTtcblxuICAgIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG4gICAgcHVibGljIHNlcnZlckVycm9yID0gZmFsc2U7XG4gICAgcHVibGljIHNob3dEaWFsb2cgPSBmYWxzZTtcbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gICAgcHVibGljIGxvY2FsZUNvbmZpZzogYW55ID0ge307XG4gICAgcHVibGljIHBlcnNvbkNsYXNzID0gXCJcIjtcblxuICAgIEBWaWV3Q2hpbGQoXCJlbXBsb3llZURlcGVuZGVudFRhYmxlXCIsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyB0YWJsZTogVGFibGU7XG5cbiAgICBwdWJsaWMgcGVybWlzc2lvbnM6IGFueSA9IHt9O1xuICAgIHB1YmxpYyBhbGxQZXJtaXNzaW9uczogYW55ID0geyB9O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcbiAgICBwdWJsaWMgY3VycmVudExpc3RQYXJhbXM6IGFueSA9IHsgcGFnZTogMCwgc2l6ZTogMTAsIHNvcnQ6IFtdLCBmaWx0ZXJEYXRhOiB7fSB9O1xuICAgIHB1YmxpYyB0b3RhbFJlY29yZHMgPSAwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgZm9jdXNTZXJ2aWNlOiBGb2N1c1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcGFnaW5hdG9yU3RvcmFnZVNlcnZpY2U6IFBhZ2luYXRvclN0b3JhZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVtcGxveWVlRGVwZW5kZW50U2VydmljZTogRW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLFxuICAgICkge1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3JlYXRlRm9ybUdyb3VwKCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlVmFsdWVzSW5Gb3JtQW5kRXZlbnRzKCk7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVkUm91dGUuZGF0YS5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4gdGhpcy5vblJvdXRlRGF0YUNoYW5nZShkYXRhKSk7XG4gICAgICAgIHRoaXMuZ3JpZENvbHVtbnMgPSB0aGlzLmdldEdyaWRDb2x1bW5zKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVGb3JtR3JvdXAoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICBwZXJzb246IFt7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogdHJ1ZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcbiAgICAgICAgICAgIHJlZ2lzdGVyTWV0aG9kOiBbeyB2YWx1ZTogbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUm91dGVEYXRhQ2hhbmdlKGRhdGE6IGFueSkge1xuICAgICAgICB0aGlzLmxvY2FsZUNvbmZpZyA9IGRhdGEubG9jYWxlQ29uZmlnO1xuICAgICAgICB0aGlzLmFsbFBlcm1pc3Npb25zID0gZGF0YS5hbGxQZXJtaXNzaW9ucztcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IGRhdGEuYWxsUGVybWlzc2lvbnM/LmVtcGxveWVlRGVwZW5kZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRHcmlkQ29sdW1ucygpOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGQ6IFwiZGVwZW5kZW50LmNvZFBlc1wiLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVfMDAxX3Blc19jb2RfcGVzXCIpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogXCJkZXBlbmRlbnQubm9tUGVzXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZV8wMDFfcGVzX25vbV9wZXNcIiksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZpZWxkOiBcImRlcGVuZGVudC5ncmFQYXJcIixcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfbGlzdF9raW5zaGlwXCIpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogXCJkZXBlbmRlbnQuaW50TmV0XCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X2xpc3RfZW1haWxcIilcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGQ6IFwiZGVwZW5kZW50LmZvblBlc1wiLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudF9saXN0X3Bob25lTnVtYmVyXCIpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmliZVZhbHVlc0luRm9ybUFuZEV2ZW50cygpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwicmVnaXN0ZXJNZXRob2RcIikudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5vblJlZ2lzdGVyTWV0aG9kKHZhbHVlKSk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcInBlcnNvblwiKS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB0aGlzLnBlcnNvbklkID0gdmFsdWU/LmlkKTtcbiAgICAgICAgdGhpcy5jbG9zZVNpZGVCYXJcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgKHZhbHVlKSA9PiAhIXZhbHVlKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlR3JpZCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUmVnaXN0ZXJNZXRob2QodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJwZXJzb25cIikuc2V0VmFsdWUobnVsbCk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gXCJuZXdSZWdpc3RlclwiKSB7XG4gICAgICAgICAgICBzZXRWYWxpZGF0b3IodGhpcy5mb3JtR3JvdXAsIFwicGVyc29uXCIsIFtdKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcInBlcnNvblwiKS5kaXNhYmxlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRWYWxpZGF0b3IodGhpcy5mb3JtR3JvdXAsIFwicGVyc29uXCIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICAgICAgICB0aGlzLnBlcnNvbkNsYXNzID0gXCJyZXF1aXJlZFwiO1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwicGVyc29uXCIpLmVuYWJsZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNvcnRGaWVsZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFnZVNpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNpemU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJvd0luZGV4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5wYWdlICogdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zaXplO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkdyaWRDaGFuZ2UoZXZlbnQ6IExhenlMb2FkRXZlbnQpIHtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IGV2ZW50LnJvd3M7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSBldmVudC5maXJzdCAvIHNpemU7XG4gICAgICAgIGNvbnN0IHNvcnQgPSBldmVudC5tdWx0aVNvcnRNZXRhO1xuXG4gICAgICAgIGlmIChzaXplICE9PSAxMCB8fCBwYWdlICE9PSAwIHx8IHNvcnQ/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yU3RvcmFnZVNlcnZpY2Uuc3RvcmVQYWdpbmF0b3IoXCJBbm5vdGF0aW9uSGlzdG9yeUxpc3RDb21wb25lbnRQYWdpbmF0b3JcIiwgeyBwYWdlLCBzaXplLCBzb3J0IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlR3JpZCh7IHBhZ2UsIHNpemUsIHNvcnQgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0R3JpZChsaXN0UGFyYW1zPzogTGlzdFBhcmFtcykge1xuICAgICAgICBpZiAobGlzdFBhcmFtcykge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcyA9IHsgLi4udGhpcy5jdXJyZW50TGlzdFBhcmFtcywgLi4ubGlzdFBhcmFtcyB9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudExpc3RQYXJhbXMgPSB7IC4uLnRoaXMuY3VycmVudExpc3RQYXJhbXMsIHBhZ2U6IDAsIHNvcnQ6IFtdIH07XG4gICAgICAgIHRoaXMudGFibGUucmVzZXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUdyaWQobGlzdFBhcmFtczogTGlzdFBhcmFtcyA9IHt9KSB7XG4gICAgICAgIGlmICghdGhpcy5fZW1wbG95ZWVJZCkge1xuICAgICAgICAgICAgdGhpcy5zZXJ2ZXJFcnJvciA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zID0geyAuLi50aGlzLmN1cnJlbnRMaXN0UGFyYW1zLCAuLi5saXN0UGFyYW1zIH07XG4gICAgICAgIGNvbnN0IHsgcGFnZSwgc2l6ZSwgZmlsdGVyRGF0YSB9ID0gdGhpcy5jdXJyZW50TGlzdFBhcmFtcztcbiAgICAgICAgbGV0IHsgc29ydCB9ID0gdGhpcy5jdXJyZW50TGlzdFBhcmFtcztcblxuICAgICAgICBsZXQgZmlsdGVyUXVlcnkgPSB0aGlzLmZpbHRlckZpZWxkc1xuICAgICAgICAgICAgLmZpbHRlcigoeyBuYW1lIH0pID0+ICEhZmlsdGVyRGF0YVtuYW1lXSlcbiAgICAgICAgICAgIC5tYXAoKHsgbmFtZSwgdHlwZSwgbXVsdGlwbGUgfSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZmlsdGVyRGF0YVtuYW1lXTtcblxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWV9IGVxICR7dmFsdWV9YDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IEZpZWxkVHlwZS5EYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lfSBlcSAnJHttb21lbnQodmFsdWUpLmZvcm1hdChcIllZWVktTU0tRERcIil9J2A7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBGaWVsZFR5cGUuVGltZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZX0gZXEgJyR7bW9tZW50KHZhbHVlKS5mb3JtYXQoXCJISDptbTpzc1wiKX0nYDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IEZpZWxkVHlwZS5EYXRlVGltZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZX0gZXEgJyR7bW9tZW50KHZhbHVlKS5mb3JtYXQoKX0nYDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IEZpZWxkVHlwZS5TdHJpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBjb250YWluaW5nKHVwcGVyKCR7bmFtZX0pLCB1cHBlcignJHt2YWx1ZS5yZXBsYWNlKC8nL2csIFwiXFxcXCdcIil9JykpYDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IEZpZWxkVHlwZS5FbnVtKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVudW1RdWVyeShuYW1lLCB2YWx1ZSwgbXVsdGlwbGUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gRmllbGRUeXBlLkxvb2t1cCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZX0gZXEgJyR7dmFsdWUuaWR9J2A7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWV9IGVxICcke3ZhbHVlfSdgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbihcIiBhbmQgXCIpO1xuXG4gICAgICAgIGNvbnN0IGVtcGxveWVlRmlsdGVyID0gYGVtcGxveWVlLmlkIGVxICcke3RoaXMuX2VtcGxveWVlSWR9J2A7XG4gICAgICAgIGZpbHRlclF1ZXJ5ID0gZmlsdGVyUXVlcnkgPyBgKCR7ZmlsdGVyUXVlcnl9KSBhbmQgKCR7ZW1wbG95ZWVGaWx0ZXJ9KWAgOiBlbXBsb3llZUZpbHRlcjtcbiAgICAgICAgY29uc3QgZGlzcGxheUZpZWxkcyA9IFtcImVtcGxveWVlLnBlcnNvbi4qXCIsIFwiZGVwZW5kZW50LipcIl07XG4gICAgICAgIGlmICghc29ydCkge1xuICAgICAgICAgICAgc29ydCA9IFt7IGZpZWxkOiBcImxhc3RNb2RpZmllZERhdGVcIiwgb3JkZXI6IC0xIH1dO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5lbXBsb3llZURlcGVuZGVudFNlcnZpY2VcbiAgICAgICAgICAgIC5saXN0KHsgcGFnZSwgc2l6ZSwgc29ydCwgZmlsdGVyUXVlcnksIGRpc3BsYXlGaWVsZHMgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuc3RhdHVzID49IDUwMCAmJiBlcnIuc3RhdHVzIDwgNjAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZlckVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxpc3Q6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEgPSBsaXN0LmNvbnRlbnRzO1xuICAgICAgICAgICAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gbGlzdC50b3RhbEVsZW1lbnRzO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VydmVyRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQcm9wKG9iajogYW55LCBwYXRoOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHBhdGguc3BsaXQoXCIuXCIpLnJlZHVjZSgocmVzdWx0OiBhbnksIHByb3A6IGFueSkgPT4gKHJlc3VsdFtwcm9wXSA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IHJlc3VsdFtwcm9wXSksIG9iaik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRFbnVtUXVlcnkobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55LCBtdWx0aXBsZTogYm9vbGVhbikge1xuICAgICAgICByZXR1cm4gbXVsdGlwbGUgPyBgKCR7dmFsdWUubWFwKChzZWxlY3RlZDogYW55KSA9PiBgJHtuYW1lfSBlcSAnJHtzZWxlY3RlZH0nYCkuam9pbihcIiBvciBcIil9KWAgOiBgJHtuYW1lfSBlcSAnJHt2YWx1ZX0nYDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xuICAgICAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKGNvbnRyb2wpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZvY3VzU2VydmljZS5mb2N1c0ZpcnN0SW52YWxpZElucHV0KCk7XG4gICAgICAgIC8qe0NBOkZPQ1VTX0ZJUlNUX0lOVkFMSUQ6U1RBUlR9Ki9cbiAgICAgICAgLyp7Q0E6Rk9DVVNfRklSU1RfSU5WQUxJRDpFTkR9Ki9cbiAgICB9XG5cbiAgICBwdWJsaWMgc2VuZFRvRm9ybSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHModGhpcy5mb3JtR3JvdXApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zaG93RGlhbG9nID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5lbXBsb3llZURlcGVuZGVudFNlcnZpY2Uuc2V0T3BlblNpZGVCYXJBbmRTdGFydEZvcm0oe1xuICAgICAgICAgICAgICAgIGRlcGVuZGVudElkOiBudWxsLFxuICAgICAgICAgICAgICAgIHBlcnNvbklkOiB0aGlzLnBlcnNvbklkLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DYW5jZWwoKSB7XG4gICAgICAgIHRoaXMuc2hvd0RpYWxvZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkFkZERlcGVuZGVudCgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICAgICAgdGhpcy5vblJlZ2lzdGVyTWV0aG9kKFwibmV3UmVnaXN0ZXJcIik7XG4gICAgICAgIHRoaXMuc2hvd0RpYWxvZyA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkRlbGV0ZShyb3c6IEVtcGxveWVlRGVwZW5kZW50TGlzdER0bykge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmVtcGxveWVlRGVwZW5kZW50U2VydmljZS5kZWxldGUocm93LmlkKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgICAgICBzZXZlcml0eTogXCJpbmZvXCIsXG4gICAgICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5kZWxldGVkX21lc3NhZ2VfdGl0bGVcIiksXG4gICAgICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmV4Y2x1c2lvbl9wcm9jZXNzX3N0YXJ0ZWRfbWVzc2FnZV9jb250ZW50XCIpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlR3JpZCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5jbG9zZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25FZGl0KHJvdzogRW1wbG95ZWVEZXBlbmRlbnRMaXN0RHRvKSB7XG4gICAgICAgIHRoaXMucGVyc29uSWQgPSByb3c/LmRlcGVuZGVudD8uaWQ7XG4gICAgICAgIHRoaXMuZW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLnNldE9wZW5TaWRlQmFyQW5kU3RhcnRGb3JtKHtcbiAgICAgICAgICAgIGRlcGVuZGVudElkOiByb3c/LmlkLFxuICAgICAgICAgICAgcGVyc29uSWQ6IHRoaXMucGVyc29uSWQsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkVkaXREcmFmdChkcmFmdElkOiBhbnkpIHtcbiAgICAgICAgdGhpcy5lbXBsb3llZURlcGVuZGVudFNlcnZpY2Uuc2V0T3BlblNpZGVCYXJBbmRTdGFydEZvcm0oe1xuICAgICAgICAgICAgZGVwZW5kZW50RHJhZnRJZDogZHJhZnRJZFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QWN0aW9ucyhyb3dzOiBhbnkpOiBNZW51SXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogXCIxXCIsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lZGl0XCIpLFxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkVkaXQocm93cyk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6IFwiMlwiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QubG9naWNhbF9kZWxldGVcIiksXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2RlbGV0ZV9jb25maXJtYXRpb25fbWVzc2FnZVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdExhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2dlbmVyaWNfbm9cIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHRMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9nZW5lcmljX3llc1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9kZWxldGVfY29uZmlybWF0aW9uX3RpdGxlXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXB0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkRlbGV0ZShyb3dzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuUmVjb3JkRXhjbHVzaW9ucygpIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoXG4gICAgICAgICAgICBbXCJkZXBlbmRlbnRzXCIsIFwiZXhjbHVzaW9ucy1saXN0XCJdLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgIGVudGl0eU5hbWU6IFwiZW1wbG95ZWVEZXBlbmRlbnRcIixcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5RGVzY3JpcHRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRcIiksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNQZXJtaXNzaW9uVG9TZWVFeGNsdXNpb25zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hbGxQZXJtaXNzaW9ucy5leGNsdXNpb25Qcm9jZXNzU3RlcC52aXN1YWxpemFyICYmIHRoaXMuYWxsUGVybWlzc2lvbnMuZXhjbHVzaW9uUHJvY2Vzc1N0ZXBHcm91cC52aXN1YWxpemFyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRPdGhlckFjdGlvbnMoKTogTWVudUl0ZW1bXSB7XG4gICAgICAgIGNvbnN0IG90aGVyQWN0aW9uczogTWVudUl0ZW1bXSA9IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLmhhc1Blcm1pc3Npb25Ub1NlZUV4Y2x1c2lvbnMoKSkge1xuICAgICAgICAgICAgb3RoZXJBY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiBcInZpZXctZXhjbHVzaW9uc1wiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3Quc2VlX2V4Y2x1c2lvbnNcIiksXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4geyB0aGlzLm9wZW5SZWNvcmRFeGNsdXNpb25zKCl9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvdGhlckFjdGlvbnM7XG4gICAgfVxuXG59XG4iXX0=
|
|
371
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtZGVwZW5kZW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9oY20tY29udHJhY3QtZW1wbG95ZWUtaGlzdG9yeS8iLCJzb3VyY2VzIjpbImxpYi9lbXBsb3llZS1kZXBlbmRlbnQvbGlzdC9lbXBsb3llZS1kZXBlbmRlbnQtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDL0QsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFDbEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTNGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdGQUFnRixDQUFDO0FBQzFILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbkQsSUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO0FBUXZCO0lBcUNJLHdDQUNZLFNBQTJCLEVBQzNCLEVBQWUsRUFDTixLQUF3QixFQUNqQyxZQUEwQixFQUMxQix1QkFBZ0QsRUFDaEQsd0JBQWtELEVBQ2xELGNBQThCLEVBQ3JCLG1CQUF3QyxFQUN4QyxjQUE4QixFQUNyQyxNQUFjO1FBVGhCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDTixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ3JCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ3JDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFqQ3JCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUkzQyxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUVsQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbkIsaUJBQVksR0FBUSxFQUFFLENBQUM7UUFDdkIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFLakIsZ0JBQVcsR0FBUSxFQUFFLENBQUM7UUFDdEIsbUJBQWMsR0FBUSxFQUFHLENBQUM7UUFFaEIsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3hDLHNCQUFpQixHQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3pFLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO0lBY3hCLENBQUM7SUE5Q0Qsc0JBQVcsc0RBQVU7YUFBckIsVUFBc0IsRUFBVTtZQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdEIsQ0FBQzs7O09BQUE7SUFFRCxzQkFBVyw0REFBZ0I7YUFBM0IsVUFBNEIsRUFBVTtZQUNsQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLENBQUM7OztPQUFBO0lBeUNELDJEQUFrQixHQUFsQjtRQUNJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGlEQUFRLEdBQVI7UUFBQSxpQkFLQztRQUpHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFDLElBQVMsSUFBSyxPQUFBLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBNUIsQ0FBNEIsQ0FBQyxDQUFDO1FBQ3BILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFTyx3REFBZSxHQUF2QjtRQUNJLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDM0IsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pFLGNBQWMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUMxRSxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsb0RBQVcsR0FBWDtRQUNJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sMERBQWlCLEdBQXhCLFVBQXlCLElBQVM7O1FBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDMUMsSUFBSSxDQUFDLFdBQVcsU0FBRyxJQUFJLENBQUMsY0FBYywwQ0FBRSxpQkFBaUIsQ0FBQztJQUM5RCxDQUFDO0lBRU0sdURBQWMsR0FBckI7UUFDSSxPQUFPO1lBQ0g7Z0JBQ0ksS0FBSyxFQUFFLGtCQUFrQjtnQkFDekIsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLG9EQUFvRCxDQUFDO2FBQ3ZGO1lBQ0Q7Z0JBQ0ksS0FBSyxFQUFFLGtCQUFrQjtnQkFDekIsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLG9EQUFvRCxDQUFDO2FBQ3ZGO1lBQ0Q7Z0JBQ0ksS0FBSyxFQUFFLGtCQUFrQjtnQkFDekIsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGtFQUFrRSxDQUFDO2FBQ3JHO1lBQ0Q7Z0JBQ0ksS0FBSyxFQUFFLGtCQUFrQjtnQkFDekIsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGdFQUFnRSxDQUFDO2FBQ25HO1lBQ0Q7Z0JBQ0ksS0FBSyxFQUFFLGtCQUFrQjtnQkFDekIsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHNFQUFzRSxDQUFDO2FBQ3pHO1NBQ0osQ0FBQztJQUNOLENBQUM7SUFFTyx1RUFBOEIsR0FBdEM7UUFBQSxpQkFjQztRQWJHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ2hGLFNBQVMsQ0FBQyxVQUFDLEtBQUssSUFBSyxPQUFBLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBNUIsQ0FBNEIsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUN4RSxTQUFTLENBQUMsVUFBQyxLQUFLLElBQUssT0FBQSxLQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxFQUFFLEVBQXpCLENBQXlCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsWUFBWTthQUNaLElBQUksQ0FDRCxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUM3QixNQUFNLENBQ0YsVUFBQyxLQUFLLElBQUssT0FBQSxDQUFDLENBQUMsS0FBSyxFQUFQLENBQU8sQ0FBQyxDQUMxQjthQUNBLFNBQVMsQ0FBQztZQUNQLEtBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTSx5REFBZ0IsR0FBdkIsVUFBd0IsS0FBVTtRQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsSUFBSSxLQUFLLEtBQUssYUFBYSxFQUFFO1lBQ3pCLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUMxQzthQUFNO1lBQ0gsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7WUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDekM7SUFDTCxDQUFDO0lBRU0scURBQVksR0FBbkI7UUFDSSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQUVNLG9EQUFXLEdBQWxCO1FBQ0ksT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxvREFBVyxHQUFsQjtRQUNJLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO0lBQ3JFLENBQUM7SUFFTSxxREFBWSxHQUFuQixVQUFvQixLQUFvQjtRQUNwQyxJQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLElBQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFFakMsSUFBSSxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsTUFBTSxJQUFHLENBQUMsRUFBRTtZQUMvQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDLHlDQUF5QyxFQUFFLEVBQUUsSUFBSSxNQUFBLEVBQUUsSUFBSSxNQUFBLEVBQUUsSUFBSSxNQUFBLEVBQUUsQ0FBQyxDQUFDO1NBQ2hIO1FBRUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxNQUFBLEVBQUUsSUFBSSxNQUFBLEVBQUUsSUFBSSxNQUFBLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTSxrREFBUyxHQUFoQixVQUFpQixVQUF1QjtRQUNwQyxJQUFJLFVBQVUsRUFBRTtZQUNaLElBQUksQ0FBQyxpQkFBaUIseUJBQVEsSUFBSSxDQUFDLGlCQUFpQixHQUFLLFVBQVUsQ0FBRSxDQUFDO1NBQ3pFO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQix5QkFBUSxJQUFJLENBQUMsaUJBQWlCLEtBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFFLENBQUM7UUFDMUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sbURBQVUsR0FBbEIsVUFBbUIsVUFBMkI7UUFBOUMsaUJBOERDO1FBOURrQiwyQkFBQSxFQUFBLGVBQTJCO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIseUJBQVEsSUFBSSxDQUFDLGlCQUFpQixHQUFLLFVBQVUsQ0FBRSxDQUFDO1FBQ2hFLElBQUEsMkJBQW1ELEVBQWpELGNBQUksRUFBRSxjQUFJLEVBQUUsMEJBQXFDLENBQUM7UUFDcEQsSUFBQSxrQ0FBSSxDQUE0QjtRQUV0QyxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWTthQUM5QixNQUFNLENBQUMsVUFBQyxFQUFRO2dCQUFOLGNBQUk7WUFBTyxPQUFBLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQWxCLENBQWtCLENBQUM7YUFDeEMsR0FBRyxDQUFDLFVBQUMsRUFBd0I7Z0JBQXRCLGNBQUksRUFBRSxjQUFJLEVBQUUsc0JBQVE7WUFDeEIsSUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRS9CLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO2dCQUMzQixPQUFVLElBQUksWUFBTyxLQUFPLENBQUM7YUFDaEM7aUJBQU0sSUFBSSxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUksRUFBRTtnQkFDaEMsT0FBVSxJQUFJLGFBQVEsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBRyxDQUFDO2FBQy9EO2lCQUFNLElBQUksSUFBSSxLQUFLLFNBQVMsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2hDLE9BQVUsSUFBSSxhQUFRLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQUcsQ0FBQzthQUM3RDtpQkFBTSxJQUFJLElBQUksS0FBSyxTQUFTLENBQUMsUUFBUSxFQUFFO2dCQUNwQyxPQUFVLElBQUksYUFBUSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQUcsQ0FBQzthQUNuRDtpQkFBTSxJQUFJLElBQUksS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFFO2dCQUNsQyxPQUFPLHNCQUFvQixJQUFJLGtCQUFhLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxRQUFLLENBQUM7YUFDL0U7aUJBQU0sSUFBSSxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUksRUFBRTtnQkFDaEMsT0FBTyxLQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDbkQ7aUJBQU0sSUFBSSxJQUFJLEtBQUssU0FBUyxDQUFDLE1BQU0sRUFBRTtnQkFDbEMsT0FBVSxJQUFJLGFBQVEsS0FBSyxDQUFDLEVBQUUsTUFBRyxDQUFDO2FBQ3JDO2lCQUFNO2dCQUNILE9BQVUsSUFBSSxhQUFRLEtBQUssTUFBRyxDQUFDO2FBQ2xDO1FBQ0wsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5CLElBQU0sY0FBYyxHQUFHLHFCQUFtQixJQUFJLENBQUMsV0FBVyxNQUFHLENBQUM7UUFDOUQsV0FBVyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBSSxXQUFXLGVBQVUsY0FBYyxNQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztRQUN4RixJQUFNLGFBQWEsR0FBRyxDQUFDLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxJQUFJLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3JEO1FBRUQsSUFBSSxDQUFDLHdCQUF3QjthQUN4QixJQUFJLENBQUMsRUFBRSxJQUFJLE1BQUEsRUFBRSxJQUFJLE1BQUEsRUFBRSxJQUFJLE1BQUEsRUFBRSxXQUFXLGFBQUEsRUFBRSxhQUFhLGVBQUEsRUFBRSxDQUFDO2FBQ3RELElBQUksQ0FDRCxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUM3QixVQUFVLENBQUMsVUFBQyxHQUFRO1lBQ2hCLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ3ZDLEtBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQzNCO1lBQ0QsTUFBTSxHQUFHLENBQUM7UUFDZCxDQUFDLENBQUMsRUFDRixRQUFRLENBQUM7WUFDTCxLQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FDTDthQUNBLFNBQVMsQ0FBQyxVQUFDLElBQVM7WUFDakIsS0FBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzlCLEtBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUN2QyxLQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTSxnREFBTyxHQUFkLFVBQWUsR0FBUSxFQUFFLElBQVM7UUFDOUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFDLE1BQVcsRUFBRSxJQUFTLElBQUssT0FBQSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQWhELENBQWdELEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckgsQ0FBQztJQUVPLHFEQUFZLEdBQXBCLFVBQXFCLElBQVksRUFBRSxLQUFVLEVBQUUsUUFBaUI7UUFDNUQsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFDLFFBQWEsSUFBSyxPQUFHLElBQUksYUFBUSxRQUFRLE1BQUcsRUFBMUIsQ0FBMEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBRyxDQUFDLENBQUMsQ0FBSSxJQUFJLGFBQVEsS0FBSyxNQUFHLENBQUM7SUFDN0gsQ0FBQztJQUVPLDhEQUFxQixHQUE3QixVQUE4QixTQUFvQjtRQUFsRCxpQkFhQztRQVpHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFBLEtBQUs7WUFDekMsSUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxJQUFJLE9BQU8sWUFBWSxXQUFXLEVBQUU7Z0JBQ2hDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUMzQztpQkFBTSxJQUFJLE9BQU8sWUFBWSxTQUFTLEVBQUU7Z0JBQ3JDLEtBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN2QztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzNDLGtDQUFrQztRQUNsQyxnQ0FBZ0M7SUFDcEMsQ0FBQztJQUVNLG1EQUFVLEdBQWpCO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNyRDtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBRXhCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQywwQkFBMEIsQ0FBQztZQUNqRCxXQUFXLEVBQUUsSUFBSTtZQUNqQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDOUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGlEQUFRLEdBQWY7UUFDSSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRU0sdURBQWMsR0FBckI7UUFDSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRU8saURBQVEsR0FBaEIsVUFBaUIsR0FBNkI7UUFBOUMsaUJBWUM7UUFYRyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7YUFDdkMsU0FBUyxDQUFDO1lBQ1AsS0FBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7Z0JBQ3BCLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixPQUFPLEVBQUUsS0FBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsd0RBQXdELENBQUM7Z0JBQ3pGLE1BQU0sRUFBRSxLQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyw0RUFBNEUsQ0FBQzthQUMvRyxDQUFDLENBQUM7WUFDSCxLQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVPLCtDQUFNLEdBQWQsVUFBZSxHQUE2Qjs7UUFDeEMsSUFBSSxDQUFDLFFBQVEsU0FBRyxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsU0FBUywwQ0FBRSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLDBCQUEwQixDQUFDO1lBQ3JELFdBQVcsRUFBRSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsRUFBRTtZQUNwQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDMUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLG9EQUFXLEdBQWxCLFVBQW1CLE9BQVk7UUFDM0IsSUFBSSxDQUFDLHdCQUF3QixDQUFDLDBCQUEwQixDQUFDO1lBQ3JELGdCQUFnQixFQUFFLE9BQU87U0FDNUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLG1EQUFVLEdBQWpCLFVBQWtCLElBQVM7UUFBM0IsaUJBeUJDO1FBeEJHLE9BQU87WUFDSDtnQkFDSSxFQUFFLEVBQUUsR0FBRztnQkFDUCxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsdUNBQXVDLENBQUM7Z0JBQ3RFLE9BQU8sRUFBRTtvQkFDTCxLQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN0QixDQUFDO2FBQ0o7WUFDRDtnQkFDSSxFQUFFLEVBQUUsR0FBRztnQkFDUCxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsaURBQWlELENBQUM7Z0JBQ2hGLE9BQU8sRUFBRTtvQkFDTCxLQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDO3dCQUM3QixPQUFPLEVBQUUsS0FBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsd0VBQXdFLENBQUM7d0JBQ3pHLFdBQVcsRUFBRSxLQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx1REFBdUQsQ0FBQzt3QkFDNUYsV0FBVyxFQUFFLEtBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHdEQUF3RCxDQUFDO3dCQUM3RixNQUFNLEVBQUUsS0FBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsc0VBQXNFLENBQUM7d0JBQ3RHLE1BQU0sRUFBRTs0QkFDSixLQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUN4QixDQUFDO3FCQUNKLENBQUMsQ0FBQztnQkFDUCxDQUFDO2FBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVNLDZEQUFvQixHQUEzQjtRQUNJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUNoQixDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxFQUNqQztZQUNJLFdBQVcsRUFBRTtnQkFDVCxVQUFVLEVBQUUsbUJBQW1CO2dCQUMvQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxxREFBcUQsQ0FBQzthQUNuRztTQUNKLENBQ0osQ0FBQztJQUNOLENBQUM7SUFFTSxxRUFBNEIsR0FBbkM7UUFDSSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsVUFBVSxDQUFDO0lBQzNILENBQUM7SUFFTSx3REFBZSxHQUF0QjtRQUFBLGlCQVlDO1FBWEcsSUFBTSxZQUFZLEdBQWUsRUFBRSxDQUFDO1FBRXBDLElBQUksSUFBSSxDQUFDLDRCQUE0QixFQUFFLEVBQUU7WUFDckMsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDZCxFQUFFLEVBQUUsaUJBQWlCO2dCQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsaURBQWlELENBQUM7Z0JBQ2hGLE9BQU8sRUFBRSxjQUFRLEtBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFBLENBQUEsQ0FBQzthQUNoRCxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7O2dCQWpVc0IsZ0JBQWdCO2dCQUN2QixXQUFXO2dCQUNDLGlCQUFpQjtnQkFDbkIsWUFBWTtnQkFDRCx1QkFBdUI7Z0JBQ3RCLHdCQUF3QjtnQkFDbEMsY0FBYztnQkFDQSxtQkFBbUI7Z0JBQ3hCLGNBQWM7Z0JBQzdCLE1BQU07O0lBNUM1QjtRQURDLEtBQUssRUFBRTtvRUFJUDtJQUVEO1FBREMsS0FBSyxFQUFFOzBFQUdQO0lBa0JEO1FBREMsU0FBUyxDQUFDLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO2lFQUNuQztJQTVCWCw4QkFBOEI7UUFOMUMsU0FBUyxDQUFDO1lBQ1AsOENBQThDO1lBQzlDLFFBQVEsRUFBRSx3QkFBd0I7WUFDbEMsKzVkQUF1RDs7U0FFMUQsQ0FBQztPQUNXLDhCQUE4QixDQXlXMUM7SUFBRCxxQ0FBQztDQUFBLEFBeldELElBeVdDO1NBeldZLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0NoZWNrZWQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzXCI7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gXCJtb21lbnRcIjtcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIExhenlMb2FkRXZlbnQsIE1lbnVJdGVtLCBNZXNzYWdlU2VydmljZSB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tIFwicHJpbWVuZy90YWJsZVwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIGZpbmFsaXplLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IEVtcGxveWVlRGVwZW5kZW50TGlzdER0byB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2VudGl0aWVzL2VtcGxveWVlLWRlcGVuZGVudC1jb3JlL2VtcGxveWVlLWRlcGVuZGVudC1jb3JlLWR0b1wiO1xuaW1wb3J0IHsgRW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZW50aXRpZXMvZW1wbG95ZWUtZGVwZW5kZW50LWNvcmUvZW1wbG95ZWUtZGVwZW5kZW50LWNvcmUuc2VydmljZVwiO1xuaW1wb3J0IHsgRm9jdXNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9mb2N1cy9mb2N1cy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBMaXN0UGFyYW1zIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9lbnRpdHktc2VydmljZVwiO1xuaW1wb3J0IHsgUGFnaW5hdG9yU3RvcmFnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3N0b3JhZ2UvcGFnaW5hdG9yLXN0b3JhZ2Uuc2VydmljZVwiO1xuaW1wb3J0IHsgc2V0VmFsaWRhdG9yIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2hlbHBlcnNcIjtcblxuY29uc3QgbW9tZW50ID0gbW9tZW50XztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiBcImZuZC1lbXBsb3llZS1kZXBlbmRlbnRcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2VtcGxveWVlLWRlcGVuZGVudC1saXN0LmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2VtcGxveWVlLWRlcGVuZGVudC1saXN0LmNvbXBvbmVudC5jc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIEVtcGxveWVlRGVwZW5kZW50TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkIHtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBlbXBsb3llZUlkKGlkOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fZW1wbG95ZWVJZCA9IGlkO1xuICAgICAgICB0aGlzLnVwZGF0ZUdyaWQoKTtcbiAgICB9XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGFkbWlzc2lvbkRyYWZ0SWQoaWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9hZG1pc3Npb25EcmFmdElkID0gaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIF9lbXBsb3llZUlkOiBzdHJpbmc7XG4gICAgcHVibGljIF9hZG1pc3Npb25EcmFmdElkOiBzdHJpbmc7XG4gICAgcHVibGljIGNsb3NlU2lkZUJhciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBwdWJsaWMgcGVyc29uSWQ7XG4gICAgcHVibGljIGdyaWREYXRhOiBhbnlbXTtcbiAgICBwdWJsaWMgZ3JpZENvbHVtbnM6IGFueVtdO1xuICAgIHB1YmxpYyBmaWx0ZXJGaWVsZHMgPSBbXTtcblxuICAgIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG4gICAgcHVibGljIHNlcnZlckVycm9yID0gZmFsc2U7XG4gICAgcHVibGljIHNob3dEaWFsb2cgPSBmYWxzZTtcbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gICAgcHVibGljIGxvY2FsZUNvbmZpZzogYW55ID0ge307XG4gICAgcHVibGljIHBlcnNvbkNsYXNzID0gXCJcIjtcblxuICAgIEBWaWV3Q2hpbGQoXCJlbXBsb3llZURlcGVuZGVudFRhYmxlXCIsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyB0YWJsZTogVGFibGU7XG5cbiAgICBwdWJsaWMgcGVybWlzc2lvbnM6IGFueSA9IHt9O1xuICAgIHB1YmxpYyBhbGxQZXJtaXNzaW9uczogYW55ID0geyB9O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcbiAgICBwdWJsaWMgY3VycmVudExpc3RQYXJhbXM6IGFueSA9IHsgcGFnZTogMCwgc2l6ZTogMTAsIHNvcnQ6IFtdLCBmaWx0ZXJEYXRhOiB7fSB9O1xuICAgIHB1YmxpYyB0b3RhbFJlY29yZHMgPSAwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgZm9jdXNTZXJ2aWNlOiBGb2N1c1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcGFnaW5hdG9yU3RvcmFnZVNlcnZpY2U6IFBhZ2luYXRvclN0b3JhZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVtcGxveWVlRGVwZW5kZW50U2VydmljZTogRW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLFxuICAgICkge1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3JlYXRlRm9ybUdyb3VwKCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlVmFsdWVzSW5Gb3JtQW5kRXZlbnRzKCk7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVkUm91dGUuZGF0YS5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4gdGhpcy5vblJvdXRlRGF0YUNoYW5nZShkYXRhKSk7XG4gICAgICAgIHRoaXMuZ3JpZENvbHVtbnMgPSB0aGlzLmdldEdyaWRDb2x1bW5zKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVGb3JtR3JvdXAoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICBwZXJzb246IFt7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogdHJ1ZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcbiAgICAgICAgICAgIHJlZ2lzdGVyTWV0aG9kOiBbeyB2YWx1ZTogbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUm91dGVEYXRhQ2hhbmdlKGRhdGE6IGFueSkge1xuICAgICAgICB0aGlzLmxvY2FsZUNvbmZpZyA9IGRhdGEubG9jYWxlQ29uZmlnO1xuICAgICAgICB0aGlzLmFsbFBlcm1pc3Npb25zID0gZGF0YS5hbGxQZXJtaXNzaW9ucztcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IGRhdGEuYWxsUGVybWlzc2lvbnM/LmVtcGxveWVlRGVwZW5kZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRHcmlkQ29sdW1ucygpOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGQ6IFwiZGVwZW5kZW50LmNvZFBlc1wiLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVfMDAxX3Blc19jb2RfcGVzXCIpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogXCJkZXBlbmRlbnQubm9tUGVzXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZV8wMDFfcGVzX25vbV9wZXNcIiksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZpZWxkOiBcImRlcGVuZGVudC5ncmFQYXJcIixcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfbGlzdF9raW5zaGlwXCIpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogXCJkZXBlbmRlbnQuaW50TmV0XCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X2xpc3RfZW1haWxcIilcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGQ6IFwiZGVwZW5kZW50LmZvblBlc1wiLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudF9saXN0X3Bob25lTnVtYmVyXCIpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmliZVZhbHVlc0luRm9ybUFuZEV2ZW50cygpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwicmVnaXN0ZXJNZXRob2RcIikudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5vblJlZ2lzdGVyTWV0aG9kKHZhbHVlKSk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcInBlcnNvblwiKS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB0aGlzLnBlcnNvbklkID0gdmFsdWU/LmlkKTtcbiAgICAgICAgdGhpcy5jbG9zZVNpZGVCYXJcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgKHZhbHVlKSA9PiAhIXZhbHVlKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlR3JpZCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUmVnaXN0ZXJNZXRob2QodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJwZXJzb25cIikuc2V0VmFsdWUobnVsbCk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gXCJuZXdSZWdpc3RlclwiKSB7XG4gICAgICAgICAgICBzZXRWYWxpZGF0b3IodGhpcy5mb3JtR3JvdXAsIFwicGVyc29uXCIsIFtdKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcInBlcnNvblwiKS5kaXNhYmxlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRWYWxpZGF0b3IodGhpcy5mb3JtR3JvdXAsIFwicGVyc29uXCIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICAgICAgICB0aGlzLnBlcnNvbkNsYXNzID0gXCJyZXF1aXJlZFwiO1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwicGVyc29uXCIpLmVuYWJsZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNvcnRGaWVsZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFnZVNpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNpemU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJvd0luZGV4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5wYWdlICogdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zaXplO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkdyaWRDaGFuZ2UoZXZlbnQ6IExhenlMb2FkRXZlbnQpIHtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IGV2ZW50LnJvd3M7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSBldmVudC5maXJzdCAvIHNpemU7XG4gICAgICAgIGNvbnN0IHNvcnQgPSBldmVudC5tdWx0aVNvcnRNZXRhO1xuXG4gICAgICAgIGlmIChzaXplICE9PSAxMCB8fCBwYWdlICE9PSAwIHx8IHNvcnQ/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yU3RvcmFnZVNlcnZpY2Uuc3RvcmVQYWdpbmF0b3IoXCJBbm5vdGF0aW9uSGlzdG9yeUxpc3RDb21wb25lbnRQYWdpbmF0b3JcIiwgeyBwYWdlLCBzaXplLCBzb3J0IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlR3JpZCh7IHBhZ2UsIHNpemUsIHNvcnQgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0R3JpZChsaXN0UGFyYW1zPzogTGlzdFBhcmFtcykge1xuICAgICAgICBpZiAobGlzdFBhcmFtcykge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcyA9IHsgLi4udGhpcy5jdXJyZW50TGlzdFBhcmFtcywgLi4ubGlzdFBhcmFtcyB9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudExpc3RQYXJhbXMgPSB7IC4uLnRoaXMuY3VycmVudExpc3RQYXJhbXMsIHBhZ2U6IDAsIHNvcnQ6IFtdIH07XG4gICAgICAgIHRoaXMudGFibGUucmVzZXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUdyaWQobGlzdFBhcmFtczogTGlzdFBhcmFtcyA9IHt9KSB7XG4gICAgICAgIGlmICghdGhpcy5fZW1wbG95ZWVJZCkge1xuICAgICAgICAgICAgdGhpcy5zZXJ2ZXJFcnJvciA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zID0geyAuLi50aGlzLmN1cnJlbnRMaXN0UGFyYW1zLCAuLi5saXN0UGFyYW1zIH07XG4gICAgICAgIGNvbnN0IHsgcGFnZSwgc2l6ZSwgZmlsdGVyRGF0YSB9ID0gdGhpcy5jdXJyZW50TGlzdFBhcmFtcztcbiAgICAgICAgbGV0IHsgc29ydCB9ID0gdGhpcy5jdXJyZW50TGlzdFBhcmFtcztcblxuICAgICAgICBsZXQgZmlsdGVyUXVlcnkgPSB0aGlzLmZpbHRlckZpZWxkc1xuICAgICAgICAgICAgLmZpbHRlcigoeyBuYW1lIH0pID0+ICEhZmlsdGVyRGF0YVtuYW1lXSlcbiAgICAgICAgICAgIC5tYXAoKHsgbmFtZSwgdHlwZSwgbXVsdGlwbGUgfSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZmlsdGVyRGF0YVtuYW1lXTtcblxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWV9IGVxICR7dmFsdWV9YDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IEZpZWxkVHlwZS5EYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lfSBlcSAnJHttb21lbnQodmFsdWUpLmZvcm1hdChcIllZWVktTU0tRERcIil9J2A7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBGaWVsZFR5cGUuVGltZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZX0gZXEgJyR7bW9tZW50KHZhbHVlKS5mb3JtYXQoXCJISDptbTpzc1wiKX0nYDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IEZpZWxkVHlwZS5EYXRlVGltZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZX0gZXEgJyR7bW9tZW50KHZhbHVlKS5mb3JtYXQoKX0nYDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IEZpZWxkVHlwZS5TdHJpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBjb250YWluaW5nKHVwcGVyKCR7bmFtZX0pLCB1cHBlcignJHt2YWx1ZS5yZXBsYWNlKC8nL2csIFwiXFxcXCdcIil9JykpYDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IEZpZWxkVHlwZS5FbnVtKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVudW1RdWVyeShuYW1lLCB2YWx1ZSwgbXVsdGlwbGUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gRmllbGRUeXBlLkxvb2t1cCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZX0gZXEgJyR7dmFsdWUuaWR9J2A7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWV9IGVxICcke3ZhbHVlfSdgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbihcIiBhbmQgXCIpO1xuXG4gICAgICAgIGNvbnN0IGVtcGxveWVlRmlsdGVyID0gYGVtcGxveWVlLmlkIGVxICcke3RoaXMuX2VtcGxveWVlSWR9J2A7XG4gICAgICAgIGZpbHRlclF1ZXJ5ID0gZmlsdGVyUXVlcnkgPyBgKCR7ZmlsdGVyUXVlcnl9KSBhbmQgKCR7ZW1wbG95ZWVGaWx0ZXJ9KWAgOiBlbXBsb3llZUZpbHRlcjtcbiAgICAgICAgY29uc3QgZGlzcGxheUZpZWxkcyA9IFtcImVtcGxveWVlLnBlcnNvbi4qXCIsIFwiZGVwZW5kZW50LipcIl07XG4gICAgICAgIGlmICghc29ydCkge1xuICAgICAgICAgICAgc29ydCA9IFt7IGZpZWxkOiBcImxhc3RNb2RpZmllZERhdGVcIiwgb3JkZXI6IC0xIH1dO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5lbXBsb3llZURlcGVuZGVudFNlcnZpY2VcbiAgICAgICAgICAgIC5saXN0KHsgcGFnZSwgc2l6ZSwgc29ydCwgZmlsdGVyUXVlcnksIGRpc3BsYXlGaWVsZHMgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuc3RhdHVzID49IDUwMCAmJiBlcnIuc3RhdHVzIDwgNjAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZlckVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxpc3Q6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEgPSBsaXN0LmNvbnRlbnRzO1xuICAgICAgICAgICAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gbGlzdC50b3RhbEVsZW1lbnRzO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VydmVyRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQcm9wKG9iajogYW55LCBwYXRoOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHBhdGguc3BsaXQoXCIuXCIpLnJlZHVjZSgocmVzdWx0OiBhbnksIHByb3A6IGFueSkgPT4gKHJlc3VsdFtwcm9wXSA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IHJlc3VsdFtwcm9wXSksIG9iaik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRFbnVtUXVlcnkobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55LCBtdWx0aXBsZTogYm9vbGVhbikge1xuICAgICAgICByZXR1cm4gbXVsdGlwbGUgPyBgKCR7dmFsdWUubWFwKChzZWxlY3RlZDogYW55KSA9PiBgJHtuYW1lfSBlcSAnJHtzZWxlY3RlZH0nYCkuam9pbihcIiBvciBcIil9KWAgOiBgJHtuYW1lfSBlcSAnJHt2YWx1ZX0nYDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xuICAgICAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKGNvbnRyb2wpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZvY3VzU2VydmljZS5mb2N1c0ZpcnN0SW52YWxpZElucHV0KCk7XG4gICAgICAgIC8qe0NBOkZPQ1VTX0ZJUlNUX0lOVkFMSUQ6U1RBUlR9Ki9cbiAgICAgICAgLyp7Q0E6Rk9DVVNfRklSU1RfSU5WQUxJRDpFTkR9Ki9cbiAgICB9XG5cbiAgICBwdWJsaWMgc2VuZFRvRm9ybSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHModGhpcy5mb3JtR3JvdXApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zaG93RGlhbG9nID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5lbXBsb3llZURlcGVuZGVudFNlcnZpY2Uuc2V0T3BlblNpZGVCYXJBbmRTdGFydEZvcm0oe1xuICAgICAgICAgICAgICAgIGRlcGVuZGVudElkOiBudWxsLFxuICAgICAgICAgICAgICAgIHBlcnNvbklkOiB0aGlzLnBlcnNvbklkLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DYW5jZWwoKSB7XG4gICAgICAgIHRoaXMuc2hvd0RpYWxvZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkFkZERlcGVuZGVudCgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICAgICAgdGhpcy5vblJlZ2lzdGVyTWV0aG9kKFwibmV3UmVnaXN0ZXJcIik7XG4gICAgICAgIHRoaXMuc2hvd0RpYWxvZyA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkRlbGV0ZShyb3c6IEVtcGxveWVlRGVwZW5kZW50TGlzdER0bykge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmVtcGxveWVlRGVwZW5kZW50U2VydmljZS5kZWxldGUocm93LmlkKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgICAgICBzZXZlcml0eTogXCJpbmZvXCIsXG4gICAgICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5kZWxldGVkX21lc3NhZ2VfdGl0bGVcIiksXG4gICAgICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmV4Y2x1c2lvbl9wcm9jZXNzX3N0YXJ0ZWRfbWVzc2FnZV9jb250ZW50XCIpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlR3JpZCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5jbG9zZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25FZGl0KHJvdzogRW1wbG95ZWVEZXBlbmRlbnRMaXN0RHRvKSB7XG4gICAgICAgIHRoaXMucGVyc29uSWQgPSByb3c/LmRlcGVuZGVudD8uaWQ7XG4gICAgICAgIHRoaXMuZW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLnNldE9wZW5TaWRlQmFyQW5kU3RhcnRGb3JtKHtcbiAgICAgICAgICAgIGRlcGVuZGVudElkOiByb3c/LmlkLFxuICAgICAgICAgICAgcGVyc29uSWQ6IHRoaXMucGVyc29uSWQsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkVkaXREcmFmdChkcmFmdElkOiBhbnkpIHtcbiAgICAgICAgdGhpcy5lbXBsb3llZURlcGVuZGVudFNlcnZpY2Uuc2V0T3BlblNpZGVCYXJBbmRTdGFydEZvcm0oe1xuICAgICAgICAgICAgZGVwZW5kZW50RHJhZnRJZDogZHJhZnRJZFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QWN0aW9ucyhyb3dzOiBhbnkpOiBNZW51SXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogXCIxXCIsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lZGl0XCIpLFxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkVkaXQocm93cyk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6IFwiMlwiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QubG9naWNhbF9kZWxldGVcIiksXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2RlbGV0ZV9jb25maXJtYXRpb25fbWVzc2FnZVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdExhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2dlbmVyaWNfbm9cIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHRMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9nZW5lcmljX3llc1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9kZWxldGVfY29uZmlybWF0aW9uX3RpdGxlXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXB0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkRlbGV0ZShyb3dzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuUmVjb3JkRXhjbHVzaW9ucygpIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoXG4gICAgICAgICAgICBbXCJkZXBlbmRlbnRzXCIsIFwiZXhjbHVzaW9ucy1saXN0XCJdLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgIGVudGl0eU5hbWU6IFwiZW1wbG95ZWVEZXBlbmRlbnRcIixcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5RGVzY3JpcHRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRcIiksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNQZXJtaXNzaW9uVG9TZWVFeGNsdXNpb25zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hbGxQZXJtaXNzaW9ucy5leGNsdXNpb25Qcm9jZXNzU3RlcC52aXN1YWxpemFyICYmIHRoaXMuYWxsUGVybWlzc2lvbnMuZXhjbHVzaW9uUHJvY2Vzc1N0ZXBHcm91cC52aXN1YWxpemFyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRPdGhlckFjdGlvbnMoKTogTWVudUl0ZW1bXSB7XG4gICAgICAgIGNvbnN0IG90aGVyQWN0aW9uczogTWVudUl0ZW1bXSA9IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLmhhc1Blcm1pc3Npb25Ub1NlZUV4Y2x1c2lvbnMoKSkge1xuICAgICAgICAgICAgb3RoZXJBY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiBcInZpZXctZXhjbHVzaW9uc1wiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3Quc2VlX2V4Y2x1c2lvbnNcIiksXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4geyB0aGlzLm9wZW5SZWNvcmRFeGNsdXNpb25zKCl9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvdGhlckFjdGlvbnM7XG4gICAgfVxuXG59XG4iXX0=
|