@saritasa/crm-delmar-core-sdk 0.0.261 → 0.0.263
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/README.md +2 -2
- package/fesm2022/saritasa-crm-delmar-core-sdk.mjs +142 -152
- package/fesm2022/saritasa-crm-delmar-core-sdk.mjs.map +1 -1
- package/model/jira-instance.dto.d.ts +8 -0
- package/model/models.d.ts +1 -0
- package/model/simple-jira-instance-request.dto.d.ts +1 -0
- package/model/simple-jira-instance.dto.d.ts +3 -0
- package/model/simple-jira-task.dto.d.ts +21 -0
- package/model/simple-project-request.dto.d.ts +1 -0
- package/model/simple-project.dto.d.ts +3 -0
- package/model/simple-task.dto.d.ts +3 -0
- package/model/task.dto.d.ts +3 -0
- package/package.json +2 -4
- package/esm2022/api/api.mjs +0 -187
- package/esm2022/api/branch-periods-api.service.mjs +0 -294
- package/esm2022/api/branch-periods-api.serviceInterface.mjs +0 -2
- package/esm2022/api/branches-api.service.mjs +0 -391
- package/esm2022/api/branches-api.serviceInterface.mjs +0 -2
- package/esm2022/api/client-notes-api.service.mjs +0 -299
- package/esm2022/api/client-notes-api.serviceInterface.mjs +0 -2
- package/esm2022/api/clients-api.service.mjs +0 -684
- package/esm2022/api/clients-api.serviceInterface.mjs +0 -2
- package/esm2022/api/components-api.service.mjs +0 -224
- package/esm2022/api/components-api.serviceInterface.mjs +0 -2
- package/esm2022/api/departments-api.service.mjs +0 -391
- package/esm2022/api/departments-api.serviceInterface.mjs +0 -2
- package/esm2022/api/dismissal-reasons-api.service.mjs +0 -304
- package/esm2022/api/dismissal-reasons-api.serviceInterface.mjs +0 -2
- package/esm2022/api/export-client-notes-api.service.mjs +0 -251
- package/esm2022/api/export-client-notes-api.serviceInterface.mjs +0 -2
- package/esm2022/api/export-clients-api.service.mjs +0 -387
- package/esm2022/api/export-clients-api.serviceInterface.mjs +0 -2
- package/esm2022/api/export-job-reports-departments-api.service.mjs +0 -293
- package/esm2022/api/export-job-reports-departments-api.serviceInterface.mjs +0 -2
- package/esm2022/api/export-job-reports-users-api.service.mjs +0 -293
- package/esm2022/api/export-job-reports-users-api.serviceInterface.mjs +0 -2
- package/esm2022/api/export-jobs-api.service.mjs +0 -289
- package/esm2022/api/export-jobs-api.serviceInterface.mjs +0 -2
- package/esm2022/api/export-project-notes-api.service.mjs +0 -249
- package/esm2022/api/export-project-notes-api.serviceInterface.mjs +0 -2
- package/esm2022/api/export-project-resources-api.service.mjs +0 -271
- package/esm2022/api/export-project-resources-api.serviceInterface.mjs +0 -2
- package/esm2022/api/export-projects-api.service.mjs +0 -263
- package/esm2022/api/export-projects-api.serviceInterface.mjs +0 -2
- package/esm2022/api/export-tasks-api.service.mjs +0 -295
- package/esm2022/api/export-tasks-api.serviceInterface.mjs +0 -2
- package/esm2022/api/export-user-periods-api.service.mjs +0 -281
- package/esm2022/api/export-user-periods-api.serviceInterface.mjs +0 -2
- package/esm2022/api/export-users-api.service.mjs +0 -279
- package/esm2022/api/export-users-api.serviceInterface.mjs +0 -2
- package/esm2022/api/jira-client-api.service.mjs +0 -92
- package/esm2022/api/jira-client-api.serviceInterface.mjs +0 -2
- package/esm2022/api/jira-instances-api.service.mjs +0 -125
- package/esm2022/api/jira-instances-api.serviceInterface.mjs +0 -2
- package/esm2022/api/jobs-api.service.mjs +0 -973
- package/esm2022/api/jobs-api.serviceInterface.mjs +0 -2
- package/esm2022/api/locations-api.service.mjs +0 -294
- package/esm2022/api/locations-api.serviceInterface.mjs +0 -2
- package/esm2022/api/notifications-api.service.mjs +0 -309
- package/esm2022/api/notifications-api.serviceInterface.mjs +0 -2
- package/esm2022/api/permission-data-api.service.mjs +0 -76
- package/esm2022/api/permission-data-api.serviceInterface.mjs +0 -2
- package/esm2022/api/profile-api.service.mjs +0 -126
- package/esm2022/api/profile-api.serviceInterface.mjs +0 -2
- package/esm2022/api/project-notes-api.service.mjs +0 -297
- package/esm2022/api/project-notes-api.serviceInterface.mjs +0 -2
- package/esm2022/api/project-priorities-api.service.mjs +0 -151
- package/esm2022/api/project-priorities-api.serviceInterface.mjs +0 -2
- package/esm2022/api/project-resources-api.service.mjs +0 -322
- package/esm2022/api/project-resources-api.serviceInterface.mjs +0 -2
- package/esm2022/api/projects-api.service.mjs +0 -436
- package/esm2022/api/projects-api.serviceInterface.mjs +0 -2
- package/esm2022/api/roles-api.service.mjs +0 -294
- package/esm2022/api/roles-api.serviceInterface.mjs +0 -2
- package/esm2022/api/s3-api.service.mjs +0 -92
- package/esm2022/api/s3-api.serviceInterface.mjs +0 -2
- package/esm2022/api/search-periods-api.service.mjs +0 -125
- package/esm2022/api/search-periods-api.serviceInterface.mjs +0 -2
- package/esm2022/api/sprints-api.service.mjs +0 -224
- package/esm2022/api/sprints-api.serviceInterface.mjs +0 -2
- package/esm2022/api/sso-api.service.mjs +0 -180
- package/esm2022/api/sso-api.serviceInterface.mjs +0 -2
- package/esm2022/api/tasks-api.service.mjs +0 -560
- package/esm2022/api/tasks-api.serviceInterface.mjs +0 -2
- package/esm2022/api/token-api.service.mjs +0 -136
- package/esm2022/api/token-api.serviceInterface.mjs +0 -2
- package/esm2022/api/user-capacities-api.service.mjs +0 -254
- package/esm2022/api/user-capacities-api.serviceInterface.mjs +0 -2
- package/esm2022/api/user-logins-api.service.mjs +0 -237
- package/esm2022/api/user-logins-api.serviceInterface.mjs +0 -2
- package/esm2022/api/user-periods-api.service.mjs +0 -422
- package/esm2022/api/user-periods-api.serviceInterface.mjs +0 -2
- package/esm2022/api/user-scores-api.service.mjs +0 -284
- package/esm2022/api/user-scores-api.serviceInterface.mjs +0 -2
- package/esm2022/api/user-timezone-setting-api.service.mjs +0 -127
- package/esm2022/api/user-timezone-setting-api.serviceInterface.mjs +0 -2
- package/esm2022/api/user-timezones-api.service.mjs +0 -143
- package/esm2022/api/user-timezones-api.serviceInterface.mjs +0 -2
- package/esm2022/api/users-api.service.mjs +0 -404
- package/esm2022/api/users-api.serviceInterface.mjs +0 -2
- package/esm2022/api/vendors-api.service.mjs +0 -284
- package/esm2022/api/vendors-api.serviceInterface.mjs +0 -2
- package/esm2022/api/who-am-i-api.service.mjs +0 -76
- package/esm2022/api/who-am-i-api.serviceInterface.mjs +0 -2
- package/esm2022/api/work-types-api.service.mjs +0 -308
- package/esm2022/api/work-types-api.serviceInterface.mjs +0 -2
- package/esm2022/api.base.service.mjs +0 -68
- package/esm2022/api.module.mjs +0 -40
- package/esm2022/configuration.mjs +0 -148
- package/esm2022/encoder.mjs +0 -19
- package/esm2022/index.mjs +0 -7
- package/esm2022/model/billable-chart.dto.mjs +0 -2
- package/esm2022/model/billing-frequency-enum.dto.mjs +0 -23
- package/esm2022/model/billing-method-enum.dto.mjs +0 -20
- package/esm2022/model/billing-type-enum.dto.mjs +0 -20
- package/esm2022/model/branch-change-state-request.dto.mjs +0 -11
- package/esm2022/model/branch-period-request.dto.mjs +0 -2
- package/esm2022/model/branch-period-type-enum.dto.mjs +0 -18
- package/esm2022/model/branch-period.dto.mjs +0 -2
- package/esm2022/model/branch-periods-create-branch-error-component.dto.mjs +0 -21
- package/esm2022/model/branch-periods-create-description-error-component.dto.mjs +0 -21
- package/esm2022/model/branch-periods-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/branch-periods-create-error.dto.mjs +0 -2
- package/esm2022/model/branch-periods-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/branch-periods-create-period-end-error-component.dto.mjs +0 -20
- package/esm2022/model/branch-periods-create-period-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/branch-periods-create-period-start-error-component.dto.mjs +0 -20
- package/esm2022/model/branch-periods-create-title-error-component.dto.mjs +0 -24
- package/esm2022/model/branch-periods-create-type-error-component.dto.mjs +0 -20
- package/esm2022/model/branch-periods-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/branch-periods-destroy-error-response400.dto.mjs +0 -2
- package/esm2022/model/branch-periods-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/branch-periods-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/branch-periods-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/branch-periods-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/branch-periods-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/branch-periods-list-error.dto.mjs +0 -2
- package/esm2022/model/branch-periods-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/branch-periods-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/branch-periods-list-period-overlap-error-component.dto.mjs +0 -19
- package/esm2022/model/branch-periods-list-type-error-component.dto.mjs +0 -18
- package/esm2022/model/branch-periods-list-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/branch-periods-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/branch-periods-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/branch-periods-update-branch-error-component.dto.mjs +0 -21
- package/esm2022/model/branch-periods-update-description-error-component.dto.mjs +0 -21
- package/esm2022/model/branch-periods-update-error-response400.dto.mjs +0 -2
- package/esm2022/model/branch-periods-update-error.dto.mjs +0 -2
- package/esm2022/model/branch-periods-update-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/branch-periods-update-period-end-error-component.dto.mjs +0 -20
- package/esm2022/model/branch-periods-update-period-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/branch-periods-update-period-start-error-component.dto.mjs +0 -20
- package/esm2022/model/branch-periods-update-title-error-component.dto.mjs +0 -24
- package/esm2022/model/branch-periods-update-type-error-component.dto.mjs +0 -20
- package/esm2022/model/branch-periods-update-validation-error.dto.mjs +0 -2
- package/esm2022/model/branch-request.dto.mjs +0 -11
- package/esm2022/model/branch-user-stats.dto.mjs +0 -11
- package/esm2022/model/branch.dto.mjs +0 -2
- package/esm2022/model/branches-change-active-status-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/branches-change-active-status-create-error.dto.mjs +0 -2
- package/esm2022/model/branches-change-active-status-create-is-active-error-component.dto.mjs +0 -19
- package/esm2022/model/branches-change-active-status-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/branches-change-active-status-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/branches-create-address1-error-component.dto.mjs +0 -22
- package/esm2022/model/branches-create-address2-error-component.dto.mjs +0 -22
- package/esm2022/model/branches-create-ceo-error-component.dto.mjs +0 -19
- package/esm2022/model/branches-create-code-error-component.dto.mjs +0 -25
- package/esm2022/model/branches-create-country-error-component.dto.mjs +0 -22
- package/esm2022/model/branches-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/branches-create-error.dto.mjs +0 -2
- package/esm2022/model/branches-create-hr-email-error-component.dto.mjs +0 -22
- package/esm2022/model/branches-create-icon-error-component.dto.mjs +0 -21
- package/esm2022/model/branches-create-is-oversea-error-component.dto.mjs +0 -20
- package/esm2022/model/branches-create-is-vacation-file-required-error-component.dto.mjs +0 -20
- package/esm2022/model/branches-create-name-error-component.dto.mjs +0 -25
- package/esm2022/model/branches-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/branches-create-postal-code-error-component.dto.mjs +0 -22
- package/esm2022/model/branches-create-state-error-component.dto.mjs +0 -22
- package/esm2022/model/branches-create-timezone-error-component.dto.mjs +0 -22
- package/esm2022/model/branches-create-vacation-days-count-error-component.dto.mjs +0 -23
- package/esm2022/model/branches-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/branches-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/branches-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/branches-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/branches-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/branches-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/branches-list-error.dto.mjs +0 -2
- package/esm2022/model/branches-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/branches-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/branches-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/branches-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/branches-update-address1-error-component.dto.mjs +0 -22
- package/esm2022/model/branches-update-address2-error-component.dto.mjs +0 -22
- package/esm2022/model/branches-update-ceo-error-component.dto.mjs +0 -19
- package/esm2022/model/branches-update-code-error-component.dto.mjs +0 -25
- package/esm2022/model/branches-update-country-error-component.dto.mjs +0 -22
- package/esm2022/model/branches-update-error-response400.dto.mjs +0 -2
- package/esm2022/model/branches-update-error.dto.mjs +0 -2
- package/esm2022/model/branches-update-hr-email-error-component.dto.mjs +0 -22
- package/esm2022/model/branches-update-icon-error-component.dto.mjs +0 -21
- package/esm2022/model/branches-update-is-oversea-error-component.dto.mjs +0 -20
- package/esm2022/model/branches-update-is-vacation-file-required-error-component.dto.mjs +0 -20
- package/esm2022/model/branches-update-name-error-component.dto.mjs +0 -25
- package/esm2022/model/branches-update-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/branches-update-postal-code-error-component.dto.mjs +0 -22
- package/esm2022/model/branches-update-state-error-component.dto.mjs +0 -22
- package/esm2022/model/branches-update-timezone-error-component.dto.mjs +0 -22
- package/esm2022/model/branches-update-vacation-days-count-error-component.dto.mjs +0 -23
- package/esm2022/model/branches-update-validation-error.dto.mjs +0 -2
- package/esm2022/model/branches-users-stats-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/branches-users-stats-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/branches-users-stats-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/branches-users-stats-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/branches-users-stats-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/branches-users-stats-list-error.dto.mjs +0 -2
- package/esm2022/model/branches-users-stats-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/branches-users-stats-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/branches-users-stats-list-users-search-error-component.dto.mjs +0 -18
- package/esm2022/model/branches-users-stats-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/client-error-enum.dto.mjs +0 -17
- package/esm2022/model/client-note-request.dto.mjs +0 -2
- package/esm2022/model/client-note-resource-create-export-job-request.dto.mjs +0 -2
- package/esm2022/model/client-note.dto.mjs +0 -2
- package/esm2022/model/client-notes-create-client-error-component.dto.mjs +0 -19
- package/esm2022/model/client-notes-create-description-error-component.dto.mjs +0 -23
- package/esm2022/model/client-notes-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/client-notes-create-error.dto.mjs +0 -2
- package/esm2022/model/client-notes-create-files-index-file-error-component.dto.mjs +0 -23
- package/esm2022/model/client-notes-create-files-index-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/client-notes-create-files-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/client-notes-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/client-notes-create-project-error-component.dto.mjs +0 -19
- package/esm2022/model/client-notes-create-title-error-component.dto.mjs +0 -24
- package/esm2022/model/client-notes-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/client-notes-destroy-error-response400.dto.mjs +0 -2
- package/esm2022/model/client-notes-list-client-in-error-component.dto.mjs +0 -19
- package/esm2022/model/client-notes-list-created-by-error-component.dto.mjs +0 -18
- package/esm2022/model/client-notes-list-created-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/client-notes-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/client-notes-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/client-notes-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/client-notes-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/client-notes-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/client-notes-list-error.dto.mjs +0 -2
- package/esm2022/model/client-notes-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/client-notes-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/client-notes-list-project-in-error-component.dto.mjs +0 -18
- package/esm2022/model/client-notes-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/client-notes-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/client-notes-update-description-error-component.dto.mjs +0 -23
- package/esm2022/model/client-notes-update-error-response400.dto.mjs +0 -2
- package/esm2022/model/client-notes-update-error.dto.mjs +0 -2
- package/esm2022/model/client-notes-update-files-index-file-error-component.dto.mjs +0 -23
- package/esm2022/model/client-notes-update-files-index-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/client-notes-update-files-indexid-error-component.dto.mjs +0 -20
- package/esm2022/model/client-notes-update-files-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/client-notes-update-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/client-notes-update-project-error-component.dto.mjs +0 -19
- package/esm2022/model/client-notes-update-title-error-component.dto.mjs +0 -24
- package/esm2022/model/client-notes-update-validation-error.dto.mjs +0 -2
- package/esm2022/model/client-project-note-file-request.dto.mjs +0 -11
- package/esm2022/model/client-project-note-file.dto.mjs +0 -11
- package/esm2022/model/client-request.dto.mjs +0 -2
- package/esm2022/model/client-resource-create-export-job-request.dto.mjs +0 -2
- package/esm2022/model/client-serializer-with-month-stats.dto.mjs +0 -11
- package/esm2022/model/client-serializer-with-stats.dto.mjs +0 -2
- package/esm2022/model/client-status-enum.dto.mjs +0 -19
- package/esm2022/model/client.dto.mjs +0 -2
- package/esm2022/model/clients-create-account-manager-error-component.dto.mjs +0 -21
- package/esm2022/model/clients-create-address1-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-address2-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-billing-address1-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-billing-address2-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-billing-city-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-billing-country-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-billing-method-error-component.dto.mjs +0 -20
- package/esm2022/model/clients-create-billing-name-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-billing-notes-error-component.dto.mjs +0 -23
- package/esm2022/model/clients-create-billing-state-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-billing-zip-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-city-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-contacts-data-index-alternative-contact-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-contacts-data-index-email-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-contacts-data-index-first-name-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-contacts-data-index-job-title-error-component.dto.mjs +0 -22
- package/esm2022/model/clients-create-contacts-data-index-last-name-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-contacts-data-index-middle-name-error-component.dto.mjs +0 -22
- package/esm2022/model/clients-create-contacts-data-index-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/clients-create-contacts-data-index-phone-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-contacts-data-indexid-error-component.dto.mjs +0 -20
- package/esm2022/model/clients-create-contacts-data-indexis-primary-error-component.dto.mjs +0 -20
- package/esm2022/model/clients-create-contacts-data-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/clients-create-contract-until-error-component.dto.mjs +0 -19
- package/esm2022/model/clients-create-country-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/clients-create-error.dto.mjs +0 -2
- package/esm2022/model/clients-create-is-billable-error-component.dto.mjs +0 -20
- package/esm2022/model/clients-create-name-error-component.dto.mjs +0 -25
- package/esm2022/model/clients-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/clients-create-notes-error-component.dto.mjs +0 -23
- package/esm2022/model/clients-create-payment-recipient-name-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-qb-client-id-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-state-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-status-error-component.dto.mjs +0 -20
- package/esm2022/model/clients-create-time-limit-per-month-error-component.dto.mjs +0 -21
- package/esm2022/model/clients-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/clients-create-website-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-zip-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-create-zoho-account-id-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-list-account-manager-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-account-manager-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-address1-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-address1-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-address2-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-address2-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-billing-address1-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-billing-address1-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-billing-address2-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-billing-address2-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-billing-city-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-billing-city-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-billing-country-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-billing-country-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-billing-method-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-billing-method-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-billing-notes-contains-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-billing-notes-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-billing-notes-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-billing-state-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-billing-state-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-billing-zip-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-billing-zip-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-city-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-city-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-contract-until-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-contract-until-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-country-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-country-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-created-by-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-created-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/clients-list-error.dto.mjs +0 -2
- package/esm2022/model/clients-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/clients-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/clients-list-notes-contains-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-notes-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-notes-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-payment-recipient-name-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-payment-recipient-name-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-qb-client-id-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-qb-client-id-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-state-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-state-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-status-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-status-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-time-limit-per-month-gte-error-component.dto.mjs +0 -19
- package/esm2022/model/clients-list-time-limit-per-month-lte-error-component.dto.mjs +0 -19
- package/esm2022/model/clients-list-updated-by-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-updated-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/clients-list-website-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-website-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-zip-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-zip-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-zoho-account-id-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-list-zoho-account-id-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/clients-update-account-manager-error-component.dto.mjs +0 -21
- package/esm2022/model/clients-update-address1-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-address2-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-billing-address1-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-billing-address2-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-billing-city-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-billing-country-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-billing-method-error-component.dto.mjs +0 -20
- package/esm2022/model/clients-update-billing-name-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-billing-notes-error-component.dto.mjs +0 -23
- package/esm2022/model/clients-update-billing-state-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-billing-zip-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-city-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-contacts-data-index-alternative-contact-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-contacts-data-index-email-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-contacts-data-index-first-name-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-contacts-data-index-job-title-error-component.dto.mjs +0 -22
- package/esm2022/model/clients-update-contacts-data-index-last-name-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-contacts-data-index-middle-name-error-component.dto.mjs +0 -22
- package/esm2022/model/clients-update-contacts-data-index-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/clients-update-contacts-data-index-phone-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-contacts-data-indexid-error-component.dto.mjs +0 -20
- package/esm2022/model/clients-update-contacts-data-indexis-primary-error-component.dto.mjs +0 -20
- package/esm2022/model/clients-update-contacts-data-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/clients-update-contract-until-error-component.dto.mjs +0 -19
- package/esm2022/model/clients-update-country-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-error-response400.dto.mjs +0 -2
- package/esm2022/model/clients-update-error.dto.mjs +0 -2
- package/esm2022/model/clients-update-is-billable-error-component.dto.mjs +0 -20
- package/esm2022/model/clients-update-name-error-component.dto.mjs +0 -25
- package/esm2022/model/clients-update-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/clients-update-notes-error-component.dto.mjs +0 -23
- package/esm2022/model/clients-update-payment-recipient-name-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-qb-client-id-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-state-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-status-error-component.dto.mjs +0 -20
- package/esm2022/model/clients-update-time-limit-per-month-error-component.dto.mjs +0 -21
- package/esm2022/model/clients-update-validation-error.dto.mjs +0 -2
- package/esm2022/model/clients-update-website-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-zip-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-update-zoho-account-id-error-component.dto.mjs +0 -24
- package/esm2022/model/clients-with-month-stats-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/clients-with-stats-list-account-manager-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-account-manager-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-address1-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-address1-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-address2-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-address2-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-billing-address1-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-billing-address1-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-billing-address2-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-billing-address2-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-billing-city-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-billing-city-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-billing-country-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-billing-country-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-billing-method-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-billing-method-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-billing-notes-contains-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-billing-notes-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-billing-notes-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-billing-state-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-billing-state-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-billing-zip-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-billing-zip-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-city-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-city-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-contract-until-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-contract-until-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-country-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-country-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-created-by-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-created-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/clients-with-stats-list-error.dto.mjs +0 -2
- package/esm2022/model/clients-with-stats-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/clients-with-stats-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/clients-with-stats-list-notes-contains-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-notes-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-notes-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-payment-recipient-name-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-payment-recipient-name-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-qb-client-id-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-qb-client-id-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-state-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-state-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-status-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-status-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-time-limit-per-month-gte-error-component.dto.mjs +0 -19
- package/esm2022/model/clients-with-stats-list-time-limit-per-month-lte-error-component.dto.mjs +0 -19
- package/esm2022/model/clients-with-stats-list-updated-by-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-updated-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/clients-with-stats-list-website-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-website-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-zip-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-zip-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-zoho-account-id-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-list-zoho-account-id-in-error-component.dto.mjs +0 -18
- package/esm2022/model/clients-with-stats-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/component-job-hourly-report.dto.mjs +0 -11
- package/esm2022/model/component.dto.mjs +0 -11
- package/esm2022/model/components-job-hourly-reports-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/components-job-hourly-reports-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/components-job-hourly-reports-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/components-job-hourly-reports-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/components-job-hourly-reports-list-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/components-job-hourly-reports-list-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/components-job-hourly-reports-list-department-in-error-component.dto.mjs +0 -19
- package/esm2022/model/components-job-hourly-reports-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/components-job-hourly-reports-list-error.dto.mjs +0 -2
- package/esm2022/model/components-job-hourly-reports-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/components-job-hourly-reports-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/components-job-hourly-reports-list-project-error-component.dto.mjs +0 -18
- package/esm2022/model/components-job-hourly-reports-list-project-in-error-component.dto.mjs +0 -18
- package/esm2022/model/components-job-hourly-reports-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/components-job-hourly-reports-list-work-type-in-error-component.dto.mjs +0 -19
- package/esm2022/model/components-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/components-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/components-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/components-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/components-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/components-list-error.dto.mjs +0 -2
- package/esm2022/model/components-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/components-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/components-list-project-error-component.dto.mjs +0 -18
- package/esm2022/model/components-list-project-in-error-component.dto.mjs +0 -18
- package/esm2022/model/components-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/components-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/config-enum.dto.mjs +0 -21
- package/esm2022/model/create-jira-project-request.dto.mjs +0 -11
- package/esm2022/model/create-jira-project.dto.mjs +0 -11
- package/esm2022/model/date-range-field-request.dto.mjs +0 -11
- package/esm2022/model/date-range-field.dto.mjs +0 -11
- package/esm2022/model/debug-login-request.dto.mjs +0 -11
- package/esm2022/model/department-change-state-request.dto.mjs +0 -11
- package/esm2022/model/department-job-hourly-report.dto.mjs +0 -11
- package/esm2022/model/department-request.dto.mjs +0 -11
- package/esm2022/model/department.dto.mjs +0 -2
- package/esm2022/model/departments-change-active-status-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/departments-change-active-status-create-error.dto.mjs +0 -2
- package/esm2022/model/departments-change-active-status-create-is-active-error-component.dto.mjs +0 -19
- package/esm2022/model/departments-change-active-status-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/departments-change-active-status-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/departments-create-color-error-component.dto.mjs +0 -23
- package/esm2022/model/departments-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/departments-create-error.dto.mjs +0 -2
- package/esm2022/model/departments-create-name-error-component.dto.mjs +0 -25
- package/esm2022/model/departments-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/departments-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/departments-create-work-types-error-component.dto.mjs +0 -22
- package/esm2022/model/departments-job-hourly-reports-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/departments-job-hourly-reports-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/departments-job-hourly-reports-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/departments-job-hourly-reports-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/departments-job-hourly-reports-list-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/departments-job-hourly-reports-list-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/departments-job-hourly-reports-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/departments-job-hourly-reports-list-error.dto.mjs +0 -2
- package/esm2022/model/departments-job-hourly-reports-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/departments-job-hourly-reports-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/departments-job-hourly-reports-list-name-error-component.dto.mjs +0 -18
- package/esm2022/model/departments-job-hourly-reports-list-name-in-error-component.dto.mjs +0 -18
- package/esm2022/model/departments-job-hourly-reports-list-project-in-error-component.dto.mjs +0 -19
- package/esm2022/model/departments-job-hourly-reports-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/departments-job-hourly-reports-list-work-type-in-error-component.dto.mjs +0 -19
- package/esm2022/model/departments-job-hourly-reports-list-work-types-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/departments-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/departments-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/departments-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/departments-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/departments-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/departments-list-error.dto.mjs +0 -2
- package/esm2022/model/departments-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/departments-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/departments-list-name-error-component.dto.mjs +0 -18
- package/esm2022/model/departments-list-name-in-error-component.dto.mjs +0 -18
- package/esm2022/model/departments-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/departments-list-work-types-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/departments-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/departments-update-color-error-component.dto.mjs +0 -23
- package/esm2022/model/departments-update-error-response400.dto.mjs +0 -2
- package/esm2022/model/departments-update-error.dto.mjs +0 -2
- package/esm2022/model/departments-update-name-error-component.dto.mjs +0 -25
- package/esm2022/model/departments-update-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/departments-update-validation-error.dto.mjs +0 -2
- package/esm2022/model/departments-update-work-types-error-component.dto.mjs +0 -22
- package/esm2022/model/dismissal-reason-change-state-request.dto.mjs +0 -11
- package/esm2022/model/dismissal-reason-request.dto.mjs +0 -11
- package/esm2022/model/dismissal-reason.dto.mjs +0 -11
- package/esm2022/model/dismissal-reasons-change-active-status-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/dismissal-reasons-change-active-status-create-error.dto.mjs +0 -2
- package/esm2022/model/dismissal-reasons-change-active-status-create-is-active-error-component.dto.mjs +0 -19
- package/esm2022/model/dismissal-reasons-change-active-status-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/dismissal-reasons-change-active-status-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/dismissal-reasons-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/dismissal-reasons-create-error.dto.mjs +0 -2
- package/esm2022/model/dismissal-reasons-create-is-active-error-component.dto.mjs +0 -19
- package/esm2022/model/dismissal-reasons-create-name-error-component.dto.mjs +0 -25
- package/esm2022/model/dismissal-reasons-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/dismissal-reasons-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/dismissal-reasons-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/dismissal-reasons-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/dismissal-reasons-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/dismissal-reasons-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/dismissal-reasons-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/dismissal-reasons-list-error.dto.mjs +0 -2
- package/esm2022/model/dismissal-reasons-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/dismissal-reasons-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/dismissal-reasons-list-name-error-component.dto.mjs +0 -18
- package/esm2022/model/dismissal-reasons-list-name-in-error-component.dto.mjs +0 -18
- package/esm2022/model/dismissal-reasons-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/dismissal-reasons-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/dismissal-reasons-update-error-response400.dto.mjs +0 -2
- package/esm2022/model/dismissal-reasons-update-error.dto.mjs +0 -2
- package/esm2022/model/dismissal-reasons-update-is-active-error-component.dto.mjs +0 -19
- package/esm2022/model/dismissal-reasons-update-name-error-component.dto.mjs +0 -25
- package/esm2022/model/dismissal-reasons-update-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/dismissal-reasons-update-validation-error.dto.mjs +0 -2
- package/esm2022/model/error-code401-enum.dto.mjs +0 -18
- package/esm2022/model/error-code403-enum.dto.mjs +0 -17
- package/esm2022/model/error-code404-enum.dto.mjs +0 -17
- package/esm2022/model/error-code405-enum.dto.mjs +0 -17
- package/esm2022/model/error-code406-enum.dto.mjs +0 -17
- package/esm2022/model/error-code415-enum.dto.mjs +0 -17
- package/esm2022/model/error-code500-enum.dto.mjs +0 -17
- package/esm2022/model/error-response401.dto.mjs +0 -2
- package/esm2022/model/error-response403.dto.mjs +0 -2
- package/esm2022/model/error-response404.dto.mjs +0 -2
- package/esm2022/model/error-response405.dto.mjs +0 -2
- package/esm2022/model/error-response406.dto.mjs +0 -2
- package/esm2022/model/error-response415.dto.mjs +0 -2
- package/esm2022/model/error-response500.dto.mjs +0 -2
- package/esm2022/model/error401.dto.mjs +0 -2
- package/esm2022/model/error403.dto.mjs +0 -2
- package/esm2022/model/error404.dto.mjs +0 -2
- package/esm2022/model/error405.dto.mjs +0 -2
- package/esm2022/model/error406.dto.mjs +0 -2
- package/esm2022/model/error415.dto.mjs +0 -2
- package/esm2022/model/error500.dto.mjs +0 -2
- package/esm2022/model/export-client-notes-cancel-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-client-notes-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-client-notes-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-client-notes-start-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-client-notes-start-create-error.dto.mjs +0 -2
- package/esm2022/model/export-client-notes-start-create-file-format-error-component.dto.mjs +0 -20
- package/esm2022/model/export-client-notes-start-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/export-client-notes-start-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/export-clients-cancel-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-clients-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-clients-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-clients-start-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-clients-start-create-error.dto.mjs +0 -2
- package/esm2022/model/export-clients-start-create-file-format-error-component.dto.mjs +0 -20
- package/esm2022/model/export-clients-start-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/export-clients-start-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/export-job-reports-departments-cancel-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-job-reports-departments-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-job-reports-departments-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-job-reports-departments-start-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-job-reports-departments-start-create-error.dto.mjs +0 -2
- package/esm2022/model/export-job-reports-departments-start-create-file-format-error-component.dto.mjs +0 -20
- package/esm2022/model/export-job-reports-departments-start-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/export-job-reports-departments-start-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/export-job-reports-users-cancel-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-job-reports-users-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-job-reports-users-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-job-reports-users-start-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-job-reports-users-start-create-error.dto.mjs +0 -2
- package/esm2022/model/export-job-reports-users-start-create-file-format-error-component.dto.mjs +0 -20
- package/esm2022/model/export-job-reports-users-start-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/export-job-reports-users-start-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/export-job.dto.mjs +0 -2
- package/esm2022/model/export-jobs-cancel-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-jobs-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-jobs-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-jobs-start-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-jobs-start-create-error.dto.mjs +0 -2
- package/esm2022/model/export-jobs-start-create-file-format-error-component.dto.mjs +0 -20
- package/esm2022/model/export-jobs-start-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/export-jobs-start-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/export-progress.dto.mjs +0 -2
- package/esm2022/model/export-project-notes-cancel-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-project-notes-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-project-notes-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-project-notes-start-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-project-notes-start-create-error.dto.mjs +0 -2
- package/esm2022/model/export-project-notes-start-create-file-format-error-component.dto.mjs +0 -20
- package/esm2022/model/export-project-notes-start-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/export-project-notes-start-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/export-project-resources-cancel-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-project-resources-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-project-resources-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-project-resources-start-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-project-resources-start-create-error.dto.mjs +0 -2
- package/esm2022/model/export-project-resources-start-create-file-format-error-component.dto.mjs +0 -20
- package/esm2022/model/export-project-resources-start-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/export-project-resources-start-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/export-projects-cancel-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-projects-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-projects-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-projects-start-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-projects-start-create-error.dto.mjs +0 -2
- package/esm2022/model/export-projects-start-create-file-format-error-component.dto.mjs +0 -20
- package/esm2022/model/export-projects-start-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/export-projects-start-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/export-status-enum.dto.mjs +0 -21
- package/esm2022/model/export-tasks-cancel-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-tasks-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-tasks-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-tasks-start-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-tasks-start-create-error.dto.mjs +0 -2
- package/esm2022/model/export-tasks-start-create-file-format-error-component.dto.mjs +0 -20
- package/esm2022/model/export-tasks-start-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/export-tasks-start-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/export-user-periods-cancel-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-user-periods-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-user-periods-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-user-periods-start-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-user-periods-start-create-error.dto.mjs +0 -2
- package/esm2022/model/export-user-periods-start-create-file-format-error-component.dto.mjs +0 -20
- package/esm2022/model/export-user-periods-start-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/export-user-periods-start-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/export-users-cancel-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-users-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-users-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-users-start-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/export-users-start-create-error.dto.mjs +0 -2
- package/esm2022/model/export-users-start-create-file-format-error-component.dto.mjs +0 -20
- package/esm2022/model/export-users-start-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/export-users-start-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/file-format-enum.dto.mjs +0 -19
- package/esm2022/model/jira-client-create-project-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/jira-client-create-project-create-error.dto.mjs +0 -2
- package/esm2022/model/jira-client-create-project-create-instance-error-component.dto.mjs +0 -21
- package/esm2022/model/jira-client-create-project-create-lead-error-component.dto.mjs +0 -23
- package/esm2022/model/jira-client-create-project-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/jira-client-create-project-create-project-name-error-component.dto.mjs +0 -23
- package/esm2022/model/jira-client-create-project-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/jira-instance.dto.mjs +0 -11
- package/esm2022/model/jira-instances-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/jira-instances-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/job-report-data.dto.mjs +0 -2
- package/esm2022/model/job-report-department-data.dto.mjs +0 -11
- package/esm2022/model/job-report-department.dto.mjs +0 -2
- package/esm2022/model/job-report-hourly.dto.mjs +0 -2
- package/esm2022/model/job-report-user.dto.mjs +0 -2
- package/esm2022/model/job-resource-create-export-job-request.dto.mjs +0 -2
- package/esm2022/model/job-stats.dto.mjs +0 -11
- package/esm2022/model/job-type-enum.dto.mjs +0 -25
- package/esm2022/model/job.dto.mjs +0 -2
- package/esm2022/model/jobs-billable-chart-list-billed-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-billable-chart-list-branch-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-billable-chart-list-created-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-billable-chart-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-billable-chart-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-billable-chart-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-billable-chart-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-billable-chart-list-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-billable-chart-list-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-billable-chart-list-department-id-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-billable-chart-list-department-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-billable-chart-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/jobs-billable-chart-list-error.dto.mjs +0 -2
- package/esm2022/model/jobs-billable-chart-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-billable-chart-list-task-component-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-billable-chart-list-task-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-billable-chart-list-task-project-client-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-billable-chart-list-task-project-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-billable-chart-list-task-sprint-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-billable-chart-list-time-span-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-billable-chart-list-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-billable-chart-list-updated-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-billable-chart-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/jobs-billable-chart-list-work-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-list-billed-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-list-branch-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-list-created-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-list-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-list-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-list-department-id-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-list-department-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/jobs-list-error.dto.mjs +0 -2
- package/esm2022/model/jobs-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-list-task-component-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-list-task-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-list-task-project-client-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-list-task-project-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-list-task-sprint-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-list-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-list-updated-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/jobs-list-work-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-oversea-chart-list-billed-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-oversea-chart-list-branch-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-oversea-chart-list-created-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-oversea-chart-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-oversea-chart-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-oversea-chart-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-oversea-chart-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-oversea-chart-list-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-oversea-chart-list-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-oversea-chart-list-department-id-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-oversea-chart-list-department-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-oversea-chart-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/jobs-oversea-chart-list-error.dto.mjs +0 -2
- package/esm2022/model/jobs-oversea-chart-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-oversea-chart-list-task-component-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-oversea-chart-list-task-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-oversea-chart-list-task-project-client-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-oversea-chart-list-task-project-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-oversea-chart-list-task-sprint-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-oversea-chart-list-time-span-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-oversea-chart-list-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-oversea-chart-list-updated-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-oversea-chart-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/jobs-oversea-chart-list-work-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-production-chart-list-billed-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-production-chart-list-branch-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-production-chart-list-created-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-production-chart-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-production-chart-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-production-chart-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-production-chart-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-production-chart-list-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-production-chart-list-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-production-chart-list-department-id-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-production-chart-list-department-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-production-chart-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/jobs-production-chart-list-error.dto.mjs +0 -2
- package/esm2022/model/jobs-production-chart-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-production-chart-list-task-component-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-production-chart-list-task-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-production-chart-list-task-project-client-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-production-chart-list-task-project-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-production-chart-list-task-sprint-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-production-chart-list-time-span-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-production-chart-list-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-production-chart-list-updated-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-production-chart-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/jobs-production-chart-list-work-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-departments-list-billed-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-departments-list-branch-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-departments-list-created-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-departments-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-departments-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-departments-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-departments-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-departments-list-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-departments-list-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-departments-list-department-id-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-report-departments-list-department-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-report-departments-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/jobs-report-departments-list-error.dto.mjs +0 -2
- package/esm2022/model/jobs-report-departments-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-report-departments-list-ordering-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-departments-list-task-component-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-departments-list-task-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-departments-list-task-project-client-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-departments-list-task-project-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-departments-list-task-sprint-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-departments-list-time-span-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-departments-list-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-departments-list-updated-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-departments-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/jobs-report-departments-list-work-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-hourly-list-billed-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-hourly-list-branch-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-hourly-list-created-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-hourly-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-hourly-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-hourly-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-hourly-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-hourly-list-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-hourly-list-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-hourly-list-department-id-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-report-hourly-list-department-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-report-hourly-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/jobs-report-hourly-list-error.dto.mjs +0 -2
- package/esm2022/model/jobs-report-hourly-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-report-hourly-list-task-component-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-hourly-list-task-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-hourly-list-task-project-client-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-hourly-list-task-project-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-hourly-list-task-sprint-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-hourly-list-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-hourly-list-updated-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-hourly-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/jobs-report-hourly-list-work-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-users-list-billed-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-users-list-branch-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-users-list-created-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-users-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-users-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-users-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-users-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-users-list-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-users-list-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-users-list-department-id-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-report-users-list-department-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-report-users-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/jobs-report-users-list-error.dto.mjs +0 -2
- package/esm2022/model/jobs-report-users-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-report-users-list-ordering-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-users-list-task-component-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-users-list-task-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-users-list-task-project-client-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-users-list-task-project-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-users-list-task-sprint-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-users-list-time-span-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-users-list-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-users-list-updated-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-report-users-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/jobs-report-users-list-work-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/jobs-stats-retrieve-billed-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-stats-retrieve-branch-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-stats-retrieve-created-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-stats-retrieve-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-stats-retrieve-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-stats-retrieve-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-stats-retrieve-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-stats-retrieve-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-stats-retrieve-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-stats-retrieve-department-id-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-stats-retrieve-department-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-stats-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/jobs-stats-retrieve-error.dto.mjs +0 -2
- package/esm2022/model/jobs-stats-retrieve-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/jobs-stats-retrieve-task-component-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-stats-retrieve-task-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-stats-retrieve-task-project-client-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-stats-retrieve-task-project-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-stats-retrieve-task-sprint-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-stats-retrieve-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-stats-retrieve-updated-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/jobs-stats-retrieve-validation-error.dto.mjs +0 -2
- package/esm2022/model/jobs-stats-retrieve-work-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/location-request.dto.mjs +0 -11
- package/esm2022/model/location.dto.mjs +0 -11
- package/esm2022/model/locations-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/locations-create-error.dto.mjs +0 -2
- package/esm2022/model/locations-create-icon-error-component.dto.mjs +0 -21
- package/esm2022/model/locations-create-name-error-component.dto.mjs +0 -24
- package/esm2022/model/locations-create-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/locations-create-timezone-error-component.dto.mjs +0 -24
- package/esm2022/model/locations-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/locations-destroy-error-response400.dto.mjs +0 -2
- package/esm2022/model/locations-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/locations-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/locations-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/locations-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/locations-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/locations-list-error.dto.mjs +0 -2
- package/esm2022/model/locations-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/locations-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/locations-list-name-error-component.dto.mjs +0 -18
- package/esm2022/model/locations-list-name-in-error-component.dto.mjs +0 -18
- package/esm2022/model/locations-list-timezone-error-component.dto.mjs +0 -18
- package/esm2022/model/locations-list-timezone-in-error-component.dto.mjs +0 -18
- package/esm2022/model/locations-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/locations-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/locations-update-error-response400.dto.mjs +0 -2
- package/esm2022/model/locations-update-error.dto.mjs +0 -2
- package/esm2022/model/locations-update-icon-error-component.dto.mjs +0 -21
- package/esm2022/model/locations-update-name-error-component.dto.mjs +0 -24
- package/esm2022/model/locations-update-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/locations-update-timezone-error-component.dto.mjs +0 -24
- package/esm2022/model/locations-update-validation-error.dto.mjs +0 -2
- package/esm2022/model/login-open-id-request.dto.mjs +0 -11
- package/esm2022/model/models.mjs +0 -1812
- package/esm2022/model/notification-data.dto.mjs +0 -2
- package/esm2022/model/notification-payload.dto.mjs +0 -2
- package/esm2022/model/notification-type-enum.dto.mjs +0 -33
- package/esm2022/model/notification.dto.mjs +0 -2
- package/esm2022/model/notifications-delete-all-destroy-error-response400.dto.mjs +0 -2
- package/esm2022/model/notifications-destroy-error-response400.dto.mjs +0 -2
- package/esm2022/model/notifications-list-created-gt-error-component.dto.mjs +0 -18
- package/esm2022/model/notifications-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/notifications-list-created-lt-error-component.dto.mjs +0 -18
- package/esm2022/model/notifications-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/notifications-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/notifications-list-error.dto.mjs +0 -2
- package/esm2022/model/notifications-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/notifications-list-id-gt-error-component.dto.mjs +0 -19
- package/esm2022/model/notifications-list-id-gte-error-component.dto.mjs +0 -19
- package/esm2022/model/notifications-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/notifications-list-id-lt-error-component.dto.mjs +0 -19
- package/esm2022/model/notifications-list-id-lte-error-component.dto.mjs +0 -19
- package/esm2022/model/notifications-list-type-error-component.dto.mjs +0 -18
- package/esm2022/model/notifications-list-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/notifications-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/notifications-read-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/notifications-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/notifications-unread-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/notify-data-department.dto.mjs +0 -11
- package/esm2022/model/notify-data-user-period.dto.mjs +0 -2
- package/esm2022/model/notify-data-user-score.dto.mjs +0 -2
- package/esm2022/model/notify-data-user.dto.mjs +0 -2
- package/esm2022/model/open-id-code-exchange-request.dto.mjs +0 -11
- package/esm2022/model/open-id-redirect.dto.mjs +0 -11
- package/esm2022/model/oversea-chart.dto.mjs +0 -2
- package/esm2022/model/paginated-branch-list.dto.mjs +0 -2
- package/esm2022/model/paginated-branch-period-list.dto.mjs +0 -2
- package/esm2022/model/paginated-branch-user-stats-list.dto.mjs +0 -2
- package/esm2022/model/paginated-client-list.dto.mjs +0 -2
- package/esm2022/model/paginated-client-note-list.dto.mjs +0 -2
- package/esm2022/model/paginated-client-serializer-with-stats-list.dto.mjs +0 -2
- package/esm2022/model/paginated-component-job-hourly-report-list.dto.mjs +0 -2
- package/esm2022/model/paginated-component-list.dto.mjs +0 -2
- package/esm2022/model/paginated-department-job-hourly-report-list.dto.mjs +0 -2
- package/esm2022/model/paginated-department-list.dto.mjs +0 -2
- package/esm2022/model/paginated-dismissal-reason-list.dto.mjs +0 -2
- package/esm2022/model/paginated-export-job-list.dto.mjs +0 -2
- package/esm2022/model/paginated-jira-instance-list.dto.mjs +0 -2
- package/esm2022/model/paginated-job-list.dto.mjs +0 -2
- package/esm2022/model/paginated-job-report-hourly-list.dto.mjs +0 -2
- package/esm2022/model/paginated-location-list.dto.mjs +0 -2
- package/esm2022/model/paginated-notification-list.dto.mjs +0 -2
- package/esm2022/model/paginated-project-list.dto.mjs +0 -2
- package/esm2022/model/paginated-project-note-list.dto.mjs +0 -2
- package/esm2022/model/paginated-project-resource-list.dto.mjs +0 -2
- package/esm2022/model/paginated-project-serializer-with-stats-list.dto.mjs +0 -2
- package/esm2022/model/paginated-role-list.dto.mjs +0 -2
- package/esm2022/model/paginated-simple-project-priority-list.dto.mjs +0 -2
- package/esm2022/model/paginated-simple-vendor-list.dto.mjs +0 -2
- package/esm2022/model/paginated-sprint-job-hourly-report-list.dto.mjs +0 -2
- package/esm2022/model/paginated-sprint-list.dto.mjs +0 -2
- package/esm2022/model/paginated-task-job-hourly-report-list.dto.mjs +0 -2
- package/esm2022/model/paginated-task-list.dto.mjs +0 -2
- package/esm2022/model/paginated-user-capacity-list.dto.mjs +0 -2
- package/esm2022/model/paginated-user-list.dto.mjs +0 -2
- package/esm2022/model/paginated-user-login-list.dto.mjs +0 -2
- package/esm2022/model/paginated-user-period-list.dto.mjs +0 -2
- package/esm2022/model/paginated-user-score-list.dto.mjs +0 -2
- package/esm2022/model/paginated-user-sum-capacity-list.dto.mjs +0 -2
- package/esm2022/model/paginated-user-timezone-list.dto.mjs +0 -2
- package/esm2022/model/paginated-work-type-list.dto.mjs +0 -2
- package/esm2022/model/parse-error-code-enum.dto.mjs +0 -17
- package/esm2022/model/parse-error-response.dto.mjs +0 -2
- package/esm2022/model/parse-error.dto.mjs +0 -2
- package/esm2022/model/period-model-enum.dto.mjs +0 -19
- package/esm2022/model/period-type-enum.dto.mjs +0 -25
- package/esm2022/model/period-user.dto.mjs +0 -2
- package/esm2022/model/period.dto.mjs +0 -2
- package/esm2022/model/permission-data-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/permission-data-request.dto.mjs +0 -2
- package/esm2022/model/permission-data.dto.mjs +0 -2
- package/esm2022/model/permission-enum.dto.mjs +0 -24
- package/esm2022/model/permission-group-enum.dto.mjs +0 -19
- package/esm2022/model/priority-enum.dto.mjs +0 -21
- package/esm2022/model/production-chart-point.dto.mjs +0 -2
- package/esm2022/model/production-chart.dto.mjs +0 -2
- package/esm2022/model/profile-request.dto.mjs +0 -11
- package/esm2022/model/profile-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/profile-update-avatar-error-component.dto.mjs +0 -21
- package/esm2022/model/profile-update-birthday-error-component.dto.mjs +0 -19
- package/esm2022/model/profile-update-created-by-error-component.dto.mjs +0 -19
- package/esm2022/model/profile-update-error-response400.dto.mjs +0 -2
- package/esm2022/model/profile-update-error.dto.mjs +0 -2
- package/esm2022/model/profile-update-first-name-error-component.dto.mjs +0 -24
- package/esm2022/model/profile-update-github-username-error-component.dto.mjs +0 -22
- package/esm2022/model/profile-update-home-phone-error-component.dto.mjs +0 -22
- package/esm2022/model/profile-update-last-name-error-component.dto.mjs +0 -24
- package/esm2022/model/profile-update-location-error-component.dto.mjs +0 -19
- package/esm2022/model/profile-update-middle-name-error-component.dto.mjs +0 -22
- package/esm2022/model/profile-update-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/profile-update-office-phone-error-component.dto.mjs +0 -22
- package/esm2022/model/profile-update-personal-email-error-component.dto.mjs +0 -22
- package/esm2022/model/profile-update-personal-phone-error-component.dto.mjs +0 -22
- package/esm2022/model/profile-update-skype-error-component.dto.mjs +0 -22
- package/esm2022/model/profile-update-slack-id-error-component.dto.mjs +0 -22
- package/esm2022/model/profile-update-timezone-error-component.dto.mjs +0 -22
- package/esm2022/model/profile-update-updated-by-error-component.dto.mjs +0 -19
- package/esm2022/model/profile-update-validation-error.dto.mjs +0 -2
- package/esm2022/model/profile.dto.mjs +0 -2
- package/esm2022/model/progress-info.dto.mjs +0 -11
- package/esm2022/model/project-note-request.dto.mjs +0 -2
- package/esm2022/model/project-note-resource-create-export-job-request.dto.mjs +0 -2
- package/esm2022/model/project-note.dto.mjs +0 -2
- package/esm2022/model/project-notes-create-description-error-component.dto.mjs +0 -23
- package/esm2022/model/project-notes-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/project-notes-create-error.dto.mjs +0 -2
- package/esm2022/model/project-notes-create-files-index-file-error-component.dto.mjs +0 -23
- package/esm2022/model/project-notes-create-files-index-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/project-notes-create-files-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/project-notes-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/project-notes-create-project-error-component.dto.mjs +0 -20
- package/esm2022/model/project-notes-create-title-error-component.dto.mjs +0 -24
- package/esm2022/model/project-notes-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/project-notes-destroy-error-response400.dto.mjs +0 -2
- package/esm2022/model/project-notes-list-created-by-error-component.dto.mjs +0 -18
- package/esm2022/model/project-notes-list-created-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/project-notes-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/project-notes-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/project-notes-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/project-notes-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/project-notes-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/project-notes-list-error.dto.mjs +0 -2
- package/esm2022/model/project-notes-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/project-notes-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/project-notes-list-project-error-component.dto.mjs +0 -18
- package/esm2022/model/project-notes-list-project-in-error-component.dto.mjs +0 -18
- package/esm2022/model/project-notes-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/project-notes-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/project-notes-update-description-error-component.dto.mjs +0 -23
- package/esm2022/model/project-notes-update-error-response400.dto.mjs +0 -2
- package/esm2022/model/project-notes-update-error.dto.mjs +0 -2
- package/esm2022/model/project-notes-update-files-index-file-error-component.dto.mjs +0 -23
- package/esm2022/model/project-notes-update-files-index-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/project-notes-update-files-indexid-error-component.dto.mjs +0 -20
- package/esm2022/model/project-notes-update-files-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/project-notes-update-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/project-notes-update-title-error-component.dto.mjs +0 -24
- package/esm2022/model/project-notes-update-validation-error.dto.mjs +0 -2
- package/esm2022/model/project-priorities-list-color-error-component.dto.mjs +0 -18
- package/esm2022/model/project-priorities-list-color-in-error-component.dto.mjs +0 -18
- package/esm2022/model/project-priorities-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/project-priorities-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/project-priorities-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/project-priorities-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/project-priorities-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/project-priorities-list-error.dto.mjs +0 -2
- package/esm2022/model/project-priorities-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/project-priorities-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/project-priorities-list-name-error-component.dto.mjs +0 -18
- package/esm2022/model/project-priorities-list-name-in-error-component.dto.mjs +0 -18
- package/esm2022/model/project-priorities-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/project-priorities-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/project-request.dto.mjs +0 -2
- package/esm2022/model/project-resource-create-export-job-request.dto.mjs +0 -2
- package/esm2022/model/project-resource-request.dto.mjs +0 -11
- package/esm2022/model/project-resource-resource-create-export-job-request.dto.mjs +0 -2
- package/esm2022/model/project-resource-update-request.dto.mjs +0 -11
- package/esm2022/model/project-resource-update.dto.mjs +0 -2
- package/esm2022/model/project-resource.dto.mjs +0 -2
- package/esm2022/model/project-resources-create-batch-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/project-resources-create-batch-create-error.dto.mjs +0 -2
- package/esm2022/model/project-resources-create-batch-create-index-non-field-errors-error-component.dto.mjs +0 -21
- package/esm2022/model/project-resources-create-batch-create-index-project-error-component.dto.mjs +0 -21
- package/esm2022/model/project-resources-create-batch-create-index-user-error-component.dto.mjs +0 -21
- package/esm2022/model/project-resources-create-batch-create-index-work-type-error-component.dto.mjs +0 -21
- package/esm2022/model/project-resources-create-batch-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/project-resources-create-batch-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/project-resources-destroy-batch-destroy-error-response400.dto.mjs +0 -2
- package/esm2022/model/project-resources-destroy-batch-destroy-error.dto.mjs +0 -2
- package/esm2022/model/project-resources-destroy-batch-destroy-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/project-resources-destroy-batch-destroy-validation-error.dto.mjs +0 -2
- package/esm2022/model/project-resources-list-created-by-error-component.dto.mjs +0 -18
- package/esm2022/model/project-resources-list-created-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/project-resources-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/project-resources-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/project-resources-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/project-resources-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/project-resources-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/project-resources-list-error.dto.mjs +0 -2
- package/esm2022/model/project-resources-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/project-resources-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/project-resources-list-project-error-component.dto.mjs +0 -18
- package/esm2022/model/project-resources-list-project-in-error-component.dto.mjs +0 -18
- package/esm2022/model/project-resources-list-updated-by-error-component.dto.mjs +0 -18
- package/esm2022/model/project-resources-list-updated-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/project-resources-list-user-error-component.dto.mjs +0 -18
- package/esm2022/model/project-resources-list-user-in-error-component.dto.mjs +0 -18
- package/esm2022/model/project-resources-list-user-status-error-component.dto.mjs +0 -18
- package/esm2022/model/project-resources-list-user-status-in-error-component.dto.mjs +0 -18
- package/esm2022/model/project-resources-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/project-resources-list-work-type-error-component.dto.mjs +0 -18
- package/esm2022/model/project-resources-list-work-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/project-resources-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/project-resources-update-error-response400.dto.mjs +0 -2
- package/esm2022/model/project-resources-update-error.dto.mjs +0 -2
- package/esm2022/model/project-resources-update-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/project-resources-update-validation-error.dto.mjs +0 -2
- package/esm2022/model/project-resources-update-work-type-error-component.dto.mjs +0 -21
- package/esm2022/model/project-serializer-with-month-stats.dto.mjs +0 -11
- package/esm2022/model/project-serializer-with-stats.dto.mjs +0 -2
- package/esm2022/model/project-status-enum.dto.mjs +0 -23
- package/esm2022/model/project.dto.mjs +0 -2
- package/esm2022/model/projects-create-actual-end-date-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-create-actual-site-error-component.dto.mjs +0 -22
- package/esm2022/model/projects-create-billing-frequency-error-component.dto.mjs +0 -20
- package/esm2022/model/projects-create-billing-type-error-component.dto.mjs +0 -20
- package/esm2022/model/projects-create-client-contact-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-create-client-error-component.dto.mjs +0 -21
- package/esm2022/model/projects-create-dev-site-error-component.dto.mjs +0 -22
- package/esm2022/model/projects-create-development-start-date-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-create-environment-code-error-component.dto.mjs +0 -24
- package/esm2022/model/projects-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/projects-create-error.dto.mjs +0 -2
- package/esm2022/model/projects-create-is-billable-error-component.dto.mjs +0 -20
- package/esm2022/model/projects-create-is-development-started-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-create-is-utilized-error-component.dto.mjs +0 -20
- package/esm2022/model/projects-create-jira-link-instance-error-component.dto.mjs +0 -21
- package/esm2022/model/projects-create-jira-link-key-error-component.dto.mjs +0 -24
- package/esm2022/model/projects-create-jira-link-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-create-name-error-component.dto.mjs +0 -23
- package/esm2022/model/projects-create-nickname-error-component.dto.mjs +0 -24
- package/esm2022/model/projects-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-create-notes-error-component.dto.mjs +0 -21
- package/esm2022/model/projects-create-priority-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-create-project-managers-error-component.dto.mjs +0 -22
- package/esm2022/model/projects-create-proposed-end-date-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-create-qa-manager-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-create-start-date-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-create-status-error-component.dto.mjs +0 -20
- package/esm2022/model/projects-create-tech-manager-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-create-time-limit-error-component.dto.mjs +0 -21
- package/esm2022/model/projects-create-time-limit-per-month-error-component.dto.mjs +0 -21
- package/esm2022/model/projects-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/projects-create-zoho-id-error-component.dto.mjs +0 -22
- package/esm2022/model/projects-list-client-contact-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-list-client-contact-in-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-list-client-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-list-client-in-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/projects-list-error.dto.mjs +0 -2
- package/esm2022/model/projects-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-list-project-managers-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-list-status-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-list-status-in-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/projects-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/projects-update-actual-end-date-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-update-actual-site-error-component.dto.mjs +0 -22
- package/esm2022/model/projects-update-billing-frequency-error-component.dto.mjs +0 -20
- package/esm2022/model/projects-update-billing-type-error-component.dto.mjs +0 -20
- package/esm2022/model/projects-update-client-contact-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-update-client-error-component.dto.mjs +0 -21
- package/esm2022/model/projects-update-dev-site-error-component.dto.mjs +0 -22
- package/esm2022/model/projects-update-development-start-date-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-update-environment-code-error-component.dto.mjs +0 -24
- package/esm2022/model/projects-update-error-response400.dto.mjs +0 -2
- package/esm2022/model/projects-update-error.dto.mjs +0 -2
- package/esm2022/model/projects-update-is-billable-error-component.dto.mjs +0 -20
- package/esm2022/model/projects-update-is-development-started-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-update-is-utilized-error-component.dto.mjs +0 -20
- package/esm2022/model/projects-update-jira-link-instance-error-component.dto.mjs +0 -21
- package/esm2022/model/projects-update-jira-link-key-error-component.dto.mjs +0 -24
- package/esm2022/model/projects-update-jira-link-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-update-name-error-component.dto.mjs +0 -23
- package/esm2022/model/projects-update-nickname-error-component.dto.mjs +0 -24
- package/esm2022/model/projects-update-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-update-notes-error-component.dto.mjs +0 -21
- package/esm2022/model/projects-update-priority-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-update-project-managers-error-component.dto.mjs +0 -22
- package/esm2022/model/projects-update-proposed-end-date-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-update-qa-manager-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-update-start-date-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-update-status-error-component.dto.mjs +0 -20
- package/esm2022/model/projects-update-tech-manager-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-update-time-limit-error-component.dto.mjs +0 -21
- package/esm2022/model/projects-update-time-limit-per-month-error-component.dto.mjs +0 -21
- package/esm2022/model/projects-update-validation-error.dto.mjs +0 -2
- package/esm2022/model/projects-update-zoho-id-error-component.dto.mjs +0 -22
- package/esm2022/model/projects-with-month-stats-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/projects-with-stats-list-client-contact-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-with-stats-list-client-contact-in-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-with-stats-list-client-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-with-stats-list-client-in-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-with-stats-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-with-stats-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-with-stats-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-with-stats-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-with-stats-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/projects-with-stats-list-error.dto.mjs +0 -2
- package/esm2022/model/projects-with-stats-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-with-stats-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-with-stats-list-project-managers-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/projects-with-stats-list-status-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-with-stats-list-status-in-error-component.dto.mjs +0 -18
- package/esm2022/model/projects-with-stats-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/projects-with-stats-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/report-by-departments-resource-create-export-job-request.dto.mjs +0 -2
- package/esm2022/model/report-by-users-resource-create-export-job-request.dto.mjs +0 -2
- package/esm2022/model/role-edit-permission-request.dto.mjs +0 -2
- package/esm2022/model/role-edit-permission.dto.mjs +0 -2
- package/esm2022/model/role-request.dto.mjs +0 -2
- package/esm2022/model/role.dto.mjs +0 -2
- package/esm2022/model/roles-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/roles-create-error.dto.mjs +0 -2
- package/esm2022/model/roles-create-name-error-component.dto.mjs +0 -25
- package/esm2022/model/roles-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/roles-create-permissions-index-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/roles-create-permissions-index-permission-error-component.dto.mjs +0 -20
- package/esm2022/model/roles-create-permissions-index-scope-error-component.dto.mjs +0 -20
- package/esm2022/model/roles-create-permissions-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/roles-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/roles-destroy-error-response400.dto.mjs +0 -2
- package/esm2022/model/roles-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/roles-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/roles-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/roles-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/roles-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/roles-list-error.dto.mjs +0 -2
- package/esm2022/model/roles-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/roles-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/roles-list-permissions-permission-error-component.dto.mjs +0 -18
- package/esm2022/model/roles-list-permissions-permission-in-error-component.dto.mjs +0 -18
- package/esm2022/model/roles-list-permissions-scope-error-component.dto.mjs +0 -18
- package/esm2022/model/roles-list-permissions-scope-in-error-component.dto.mjs +0 -18
- package/esm2022/model/roles-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/roles-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/roles-update-error-response400.dto.mjs +0 -2
- package/esm2022/model/roles-update-error.dto.mjs +0 -2
- package/esm2022/model/roles-update-name-error-component.dto.mjs +0 -25
- package/esm2022/model/roles-update-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/roles-update-permissions-index-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/roles-update-permissions-index-permission-error-component.dto.mjs +0 -20
- package/esm2022/model/roles-update-permissions-index-scope-error-component.dto.mjs +0 -20
- package/esm2022/model/roles-update-permissions-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/roles-update-validation-error.dto.mjs +0 -2
- package/esm2022/model/s3-get-params-create-config-error-component.dto.mjs +0 -20
- package/esm2022/model/s3-get-params-create-content-length-error-component.dto.mjs +0 -21
- package/esm2022/model/s3-get-params-create-content-type-error-component.dto.mjs +0 -23
- package/esm2022/model/s3-get-params-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/s3-get-params-create-error.dto.mjs +0 -2
- package/esm2022/model/s3-get-params-create-filename-error-component.dto.mjs +0 -23
- package/esm2022/model/s3-get-params-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/s3-get-params-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/s3-params.dto.mjs +0 -11
- package/esm2022/model/s3-request-params-request.dto.mjs +0 -2
- package/esm2022/model/s3-upload.dto.mjs +0 -2
- package/esm2022/model/scope-enum.dto.mjs +0 -21
- package/esm2022/model/search-periods-list-branch-in-error-component.dto.mjs +0 -18
- package/esm2022/model/search-periods-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/search-periods-list-error.dto.mjs +0 -2
- package/esm2022/model/search-periods-list-period-overlap-error-component.dto.mjs +0 -20
- package/esm2022/model/search-periods-list-status-in-error-component.dto.mjs +0 -18
- package/esm2022/model/search-periods-list-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/search-periods-list-user-branch-in-error-component.dto.mjs +0 -18
- package/esm2022/model/search-periods-list-user-department-in-error-component.dto.mjs +0 -18
- package/esm2022/model/search-periods-list-user-in-error-component.dto.mjs +0 -18
- package/esm2022/model/search-periods-list-user-status-in-error-component.dto.mjs +0 -18
- package/esm2022/model/search-periods-list-user-supervisees-in-error-component.dto.mjs +0 -18
- package/esm2022/model/search-periods-list-user-supervisors-in-error-component.dto.mjs +0 -18
- package/esm2022/model/search-periods-list-user-work-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/search-periods-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/server-error-enum.dto.mjs +0 -17
- package/esm2022/model/simple-branch-request.dto.mjs +0 -11
- package/esm2022/model/simple-branch.dto.mjs +0 -11
- package/esm2022/model/simple-client-contact-request.dto.mjs +0 -11
- package/esm2022/model/simple-client-contact.dto.mjs +0 -11
- package/esm2022/model/simple-client-request.dto.mjs +0 -11
- package/esm2022/model/simple-client.dto.mjs +0 -11
- package/esm2022/model/simple-component.dto.mjs +0 -11
- package/esm2022/model/simple-department-request.dto.mjs +0 -11
- package/esm2022/model/simple-department.dto.mjs +0 -11
- package/esm2022/model/simple-jira-instance-request.dto.mjs +0 -11
- package/esm2022/model/simple-jira-instance.dto.mjs +0 -11
- package/esm2022/model/simple-jira-project-request.dto.mjs +0 -11
- package/esm2022/model/simple-jira-project.dto.mjs +0 -2
- package/esm2022/model/simple-location-request.dto.mjs +0 -11
- package/esm2022/model/simple-location.dto.mjs +0 -11
- package/esm2022/model/simple-project-priority-request.dto.mjs +0 -11
- package/esm2022/model/simple-project-priority.dto.mjs +0 -11
- package/esm2022/model/simple-project-request.dto.mjs +0 -11
- package/esm2022/model/simple-project.dto.mjs +0 -11
- package/esm2022/model/simple-role-request.dto.mjs +0 -11
- package/esm2022/model/simple-role.dto.mjs +0 -11
- package/esm2022/model/simple-sprint.dto.mjs +0 -11
- package/esm2022/model/simple-task.dto.mjs +0 -2
- package/esm2022/model/simple-user-period-approver-request.dto.mjs +0 -2
- package/esm2022/model/simple-user-period-approver.dto.mjs +0 -2
- package/esm2022/model/simple-user-request.dto.mjs +0 -11
- package/esm2022/model/simple-user.dto.mjs +0 -2
- package/esm2022/model/simple-vendor-request.dto.mjs +0 -11
- package/esm2022/model/simple-vendor.dto.mjs +0 -11
- package/esm2022/model/simple-work-type-request.dto.mjs +0 -11
- package/esm2022/model/simple-work-type.dto.mjs +0 -11
- package/esm2022/model/sprint-job-hourly-report.dto.mjs +0 -11
- package/esm2022/model/sprint.dto.mjs +0 -11
- package/esm2022/model/sprints-job-hourly-reports-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/sprints-job-hourly-reports-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/sprints-job-hourly-reports-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/sprints-job-hourly-reports-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/sprints-job-hourly-reports-list-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/sprints-job-hourly-reports-list-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/sprints-job-hourly-reports-list-department-in-error-component.dto.mjs +0 -19
- package/esm2022/model/sprints-job-hourly-reports-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/sprints-job-hourly-reports-list-error.dto.mjs +0 -2
- package/esm2022/model/sprints-job-hourly-reports-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/sprints-job-hourly-reports-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/sprints-job-hourly-reports-list-project-error-component.dto.mjs +0 -18
- package/esm2022/model/sprints-job-hourly-reports-list-project-in-error-component.dto.mjs +0 -18
- package/esm2022/model/sprints-job-hourly-reports-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/sprints-job-hourly-reports-list-work-type-in-error-component.dto.mjs +0 -19
- package/esm2022/model/sprints-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/sprints-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/sprints-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/sprints-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/sprints-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/sprints-list-error.dto.mjs +0 -2
- package/esm2022/model/sprints-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/sprints-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/sprints-list-project-error-component.dto.mjs +0 -18
- package/esm2022/model/sprints-list-project-in-error-component.dto.mjs +0 -18
- package/esm2022/model/sprints-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/sprints-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/sso-code-exchange-create-code-error-component.dto.mjs +0 -23
- package/esm2022/model/sso-code-exchange-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/sso-code-exchange-create-error.dto.mjs +0 -2
- package/esm2022/model/sso-code-exchange-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/sso-code-exchange-create-redirect-uri-error-component.dto.mjs +0 -22
- package/esm2022/model/sso-code-exchange-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/sso-debug-create-email-error-component.dto.mjs +0 -23
- package/esm2022/model/sso-debug-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/sso-debug-create-error.dto.mjs +0 -2
- package/esm2022/model/sso-debug-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/sso-debug-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/sso-start-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/sso-start-create-error.dto.mjs +0 -2
- package/esm2022/model/sso-start-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/sso-start-create-redirect-uri-error-component.dto.mjs +0 -22
- package/esm2022/model/sso-start-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/state-enum.dto.mjs +0 -24
- package/esm2022/model/task-job-hourly-report.dto.mjs +0 -2
- package/esm2022/model/task-resource-create-export-job-request.dto.mjs +0 -2
- package/esm2022/model/task-stats.dto.mjs +0 -11
- package/esm2022/model/task-statuses.dto.mjs +0 -11
- package/esm2022/model/task.dto.mjs +0 -2
- package/esm2022/model/tasks-job-hourly-reports-list-assignee-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-assignee-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-component-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-component-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-created-by-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-created-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-department-in-error-component.dto.mjs +0 -19
- package/esm2022/model/tasks-job-hourly-reports-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/tasks-job-hourly-reports-list-error.dto.mjs +0 -2
- package/esm2022/model/tasks-job-hourly-reports-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/tasks-job-hourly-reports-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/tasks-job-hourly-reports-list-priority-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-priority-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-project-client-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-project-client-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-project-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-project-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-sprint-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-sprint-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-status-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-status-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-updated-by-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-updated-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-job-hourly-reports-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/tasks-job-hourly-reports-list-work-type-in-error-component.dto.mjs +0 -19
- package/esm2022/model/tasks-list-assignee-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-assignee-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-component-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-component-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-created-by-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-created-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/tasks-list-error.dto.mjs +0 -2
- package/esm2022/model/tasks-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/tasks-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/tasks-list-priority-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-priority-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-project-client-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-project-client-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-project-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-project-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-sprint-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-sprint-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-status-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-status-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-updated-by-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-updated-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/tasks-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/tasks-stats-retrieve-assignee-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-assignee-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-component-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-component-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-created-by-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-created-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/tasks-stats-retrieve-error.dto.mjs +0 -2
- package/esm2022/model/tasks-stats-retrieve-id-error-component.dto.mjs +0 -19
- package/esm2022/model/tasks-stats-retrieve-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/tasks-stats-retrieve-priority-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-priority-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-project-client-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-project-client-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-project-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-project-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-sprint-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-sprint-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-status-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-status-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-updated-by-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-updated-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-stats-retrieve-validation-error.dto.mjs +0 -2
- package/esm2022/model/tasks-statuses-retrieve-assignee-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-assignee-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-component-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-component-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-created-by-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-created-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/tasks-statuses-retrieve-error.dto.mjs +0 -2
- package/esm2022/model/tasks-statuses-retrieve-id-error-component.dto.mjs +0 -19
- package/esm2022/model/tasks-statuses-retrieve-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/tasks-statuses-retrieve-priority-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-priority-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-project-client-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-project-client-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-project-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-project-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-sprint-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-sprint-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-status-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-status-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-updated-by-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-updated-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/tasks-statuses-retrieve-validation-error.dto.mjs +0 -2
- package/esm2022/model/token-obtain-pair.dto.mjs +0 -11
- package/esm2022/model/token-refresh-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/token-refresh-create-error.dto.mjs +0 -2
- package/esm2022/model/token-refresh-create-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/token-refresh-create-refresh-error-component.dto.mjs +0 -23
- package/esm2022/model/token-refresh-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/token-refresh-request.dto.mjs +0 -11
- package/esm2022/model/token-refresh.dto.mjs +0 -11
- package/esm2022/model/token-verify-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/token-verify-create-error.dto.mjs +0 -2
- package/esm2022/model/token-verify-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/token-verify-create-token-error-component.dto.mjs +0 -23
- package/esm2022/model/token-verify-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/token-verify-request.dto.mjs +0 -11
- package/esm2022/model/update-client-note-request.dto.mjs +0 -2
- package/esm2022/model/update-client-project-note-file-request.dto.mjs +0 -11
- package/esm2022/model/update-project-note-request.dto.mjs +0 -2
- package/esm2022/model/user-capacities-calculate-capacity-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-capacities-get-period-capacity-list-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-capacities-get-period-capacity-list-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-capacities-get-period-capacity-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-capacities-get-period-capacity-list-error.dto.mjs +0 -2
- package/esm2022/model/user-capacities-get-period-capacity-list-object-ids-error-component.dto.mjs +0 -19
- package/esm2022/model/user-capacities-get-period-capacity-list-period-type-error-component.dto.mjs +0 -19
- package/esm2022/model/user-capacities-get-period-capacity-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/user-capacities-list-branch-id-error-component.dto.mjs +0 -19
- package/esm2022/model/user-capacities-list-branch-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/user-capacities-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-capacities-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-capacities-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-capacities-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-capacities-list-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-capacities-list-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-capacities-list-department-id-error-component.dto.mjs +0 -19
- package/esm2022/model/user-capacities-list-department-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/user-capacities-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-capacities-list-error.dto.mjs +0 -2
- package/esm2022/model/user-capacities-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/user-capacities-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/user-capacities-list-user-id-error-component.dto.mjs +0 -19
- package/esm2022/model/user-capacities-list-user-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/user-capacities-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/user-capacities-list-work-type-id-error-component.dto.mjs +0 -19
- package/esm2022/model/user-capacities-list-work-type-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/user-capacities-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-capacity.dto.mjs +0 -11
- package/esm2022/model/user-login-request.dto.mjs +0 -11
- package/esm2022/model/user-login.dto.mjs +0 -2
- package/esm2022/model/user-logins-list-branch-error-component.dto.mjs +0 -18
- package/esm2022/model/user-logins-list-branch-in-error-component.dto.mjs +0 -18
- package/esm2022/model/user-logins-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-logins-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-logins-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-logins-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-logins-list-department-error-component.dto.mjs +0 -18
- package/esm2022/model/user-logins-list-department-in-error-component.dto.mjs +0 -18
- package/esm2022/model/user-logins-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-logins-list-error.dto.mjs +0 -2
- package/esm2022/model/user-logins-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/user-logins-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/user-logins-list-role-error-component.dto.mjs +0 -18
- package/esm2022/model/user-logins-list-role-in-error-component.dto.mjs +0 -18
- package/esm2022/model/user-logins-list-status-error-component.dto.mjs +0 -18
- package/esm2022/model/user-logins-list-status-in-error-component.dto.mjs +0 -18
- package/esm2022/model/user-logins-list-supervisees-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/user-logins-list-supervisors-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/user-logins-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/user-logins-list-work-type-error-component.dto.mjs +0 -18
- package/esm2022/model/user-logins-list-work-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/user-logins-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-logins-update-email-error-component.dto.mjs +0 -25
- package/esm2022/model/user-logins-update-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-logins-update-error.dto.mjs +0 -2
- package/esm2022/model/user-logins-update-is-staff-error-component.dto.mjs +0 -19
- package/esm2022/model/user-logins-update-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/user-logins-update-role-error-component.dto.mjs +0 -19
- package/esm2022/model/user-logins-update-validation-error.dto.mjs +0 -2
- package/esm2022/model/user-period-for-stats.dto.mjs +0 -2
- package/esm2022/model/user-period-payload.dto.mjs +0 -2
- package/esm2022/model/user-period-request.dto.mjs +0 -2
- package/esm2022/model/user-period-resource-create-export-job-request.dto.mjs +0 -2
- package/esm2022/model/user-period-review-request-request.dto.mjs +0 -2
- package/esm2022/model/user-period-review-request-status-enum.dto.mjs +0 -18
- package/esm2022/model/user-period-statistic.dto.mjs +0 -2
- package/esm2022/model/user-period-status-enum.dto.mjs +0 -19
- package/esm2022/model/user-period-total-stats.dto.mjs +0 -11
- package/esm2022/model/user-period-type-enum.dto.mjs +0 -22
- package/esm2022/model/user-period-year-data.dto.mjs +0 -2
- package/esm2022/model/user-period.dto.mjs +0 -2
- package/esm2022/model/user-periods-create-description-error-component.dto.mjs +0 -21
- package/esm2022/model/user-periods-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-periods-create-error.dto.mjs +0 -2
- package/esm2022/model/user-periods-create-file-error-component.dto.mjs +0 -21
- package/esm2022/model/user-periods-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/user-periods-create-period-end-error-component.dto.mjs +0 -20
- package/esm2022/model/user-periods-create-period-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/user-periods-create-period-start-error-component.dto.mjs +0 -20
- package/esm2022/model/user-periods-create-type-error-component.dto.mjs +0 -20
- package/esm2022/model/user-periods-create-user-error-component.dto.mjs +0 -21
- package/esm2022/model/user-periods-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/user-periods-destroy-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-periods-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-periods-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-periods-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-periods-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-periods-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-periods-list-error.dto.mjs +0 -2
- package/esm2022/model/user-periods-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/user-periods-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/user-periods-list-period-overlap-error-component.dto.mjs +0 -19
- package/esm2022/model/user-periods-list-status-error-component.dto.mjs +0 -18
- package/esm2022/model/user-periods-list-status-in-error-component.dto.mjs +0 -18
- package/esm2022/model/user-periods-list-type-error-component.dto.mjs +0 -18
- package/esm2022/model/user-periods-list-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/user-periods-list-user-branch-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/user-periods-list-user-department-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/user-periods-list-user-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/user-periods-list-user-status-error-component.dto.mjs +0 -18
- package/esm2022/model/user-periods-list-user-status-in-error-component.dto.mjs +0 -18
- package/esm2022/model/user-periods-list-user-supervisees-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/user-periods-list-user-supervisors-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/user-periods-list-user-work-type-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/user-periods-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/user-periods-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-periods-review-request-create-comment-error-component.dto.mjs +0 -23
- package/esm2022/model/user-periods-review-request-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-periods-review-request-create-error.dto.mjs +0 -2
- package/esm2022/model/user-periods-review-request-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/user-periods-review-request-create-status-error-component.dto.mjs +0 -20
- package/esm2022/model/user-periods-review-request-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/user-periods-stats-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-periods-stats-retrieve-error.dto.mjs +0 -2
- package/esm2022/model/user-periods-stats-retrieve-user-error-component.dto.mjs +0 -18
- package/esm2022/model/user-periods-stats-retrieve-validation-error.dto.mjs +0 -2
- package/esm2022/model/user-periods-update-description-error-component.dto.mjs +0 -21
- package/esm2022/model/user-periods-update-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-periods-update-error.dto.mjs +0 -2
- package/esm2022/model/user-periods-update-file-error-component.dto.mjs +0 -21
- package/esm2022/model/user-periods-update-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/user-periods-update-period-end-error-component.dto.mjs +0 -20
- package/esm2022/model/user-periods-update-period-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/user-periods-update-period-start-error-component.dto.mjs +0 -20
- package/esm2022/model/user-periods-update-type-error-component.dto.mjs +0 -20
- package/esm2022/model/user-periods-update-user-error-component.dto.mjs +0 -21
- package/esm2022/model/user-periods-update-validation-error.dto.mjs +0 -2
- package/esm2022/model/user-request.dto.mjs +0 -2
- package/esm2022/model/user-resource-create-export-job-request.dto.mjs +0 -2
- package/esm2022/model/user-score-payload.dto.mjs +0 -2
- package/esm2022/model/user-score-request.dto.mjs +0 -11
- package/esm2022/model/user-score.dto.mjs +0 -2
- package/esm2022/model/user-scores-create-comment-error-component.dto.mjs +0 -23
- package/esm2022/model/user-scores-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-scores-create-error.dto.mjs +0 -2
- package/esm2022/model/user-scores-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/user-scores-create-receiver-error-component.dto.mjs +0 -21
- package/esm2022/model/user-scores-create-score-error-component.dto.mjs +0 -24
- package/esm2022/model/user-scores-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/user-scores-list-comment-icontains-error-component.dto.mjs +0 -18
- package/esm2022/model/user-scores-list-created-by-error-component.dto.mjs +0 -18
- package/esm2022/model/user-scores-list-created-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/user-scores-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-scores-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-scores-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-scores-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-scores-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-scores-list-error.dto.mjs +0 -2
- package/esm2022/model/user-scores-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/user-scores-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/user-scores-list-receiver-error-component.dto.mjs +0 -18
- package/esm2022/model/user-scores-list-receiver-in-error-component.dto.mjs +0 -18
- package/esm2022/model/user-scores-list-score-error-component.dto.mjs +0 -19
- package/esm2022/model/user-scores-list-score-in-error-component.dto.mjs +0 -19
- package/esm2022/model/user-scores-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/user-scores-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-scores-total-score-retrieve-comment-icontains-error-component.dto.mjs +0 -18
- package/esm2022/model/user-scores-total-score-retrieve-created-by-error-component.dto.mjs +0 -18
- package/esm2022/model/user-scores-total-score-retrieve-created-by-in-error-component.dto.mjs +0 -18
- package/esm2022/model/user-scores-total-score-retrieve-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-scores-total-score-retrieve-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-scores-total-score-retrieve-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-scores-total-score-retrieve-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/user-scores-total-score-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-scores-total-score-retrieve-error.dto.mjs +0 -2
- package/esm2022/model/user-scores-total-score-retrieve-id-error-component.dto.mjs +0 -19
- package/esm2022/model/user-scores-total-score-retrieve-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/user-scores-total-score-retrieve-receiver-error-component.dto.mjs +0 -18
- package/esm2022/model/user-scores-total-score-retrieve-receiver-in-error-component.dto.mjs +0 -18
- package/esm2022/model/user-scores-total-score-retrieve-score-error-component.dto.mjs +0 -19
- package/esm2022/model/user-scores-total-score-retrieve-score-in-error-component.dto.mjs +0 -19
- package/esm2022/model/user-scores-total-score-retrieve-validation-error.dto.mjs +0 -2
- package/esm2022/model/user-status-enum.dto.mjs +0 -19
- package/esm2022/model/user-sum-capacity.dto.mjs +0 -11
- package/esm2022/model/user-timezone-request.dto.mjs +0 -11
- package/esm2022/model/user-timezone-setting-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-timezone-setting-create-error.dto.mjs +0 -2
- package/esm2022/model/user-timezone-setting-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/user-timezone-setting-create-ordering-error-component.dto.mjs +0 -20
- package/esm2022/model/user-timezone-setting-create-use12-format-error-component.dto.mjs +0 -20
- package/esm2022/model/user-timezone-setting-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/user-timezone-setting-ordering-enum.dto.mjs +0 -20
- package/esm2022/model/user-timezone-setting-request.dto.mjs +0 -2
- package/esm2022/model/user-timezone-setting-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-timezone-setting.dto.mjs +0 -2
- package/esm2022/model/user-timezone.dto.mjs +0 -11
- package/esm2022/model/user-timezones-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-timezones-save-all-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/user-timezones-save-all-create-error.dto.mjs +0 -2
- package/esm2022/model/user-timezones-save-all-create-index-name-error-component.dto.mjs +0 -24
- package/esm2022/model/user-timezones-save-all-create-index-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/user-timezones-save-all-create-index-timezone-error-component.dto.mjs +0 -24
- package/esm2022/model/user-timezones-save-all-create-non-field-errors-error-component.dto.mjs +0 -20
- package/esm2022/model/user-timezones-save-all-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/user-total-score.dto.mjs +0 -11
- package/esm2022/model/user.dto.mjs +0 -2
- package/esm2022/model/users-create-avatar-error-component.dto.mjs +0 -21
- package/esm2022/model/users-create-birthday-error-component.dto.mjs +0 -19
- package/esm2022/model/users-create-branch-error-component.dto.mjs +0 -21
- package/esm2022/model/users-create-created-by-error-component.dto.mjs +0 -19
- package/esm2022/model/users-create-department-error-component.dto.mjs +0 -21
- package/esm2022/model/users-create-dismissal-reasons-error-component.dto.mjs +0 -22
- package/esm2022/model/users-create-email-error-component.dto.mjs +0 -25
- package/esm2022/model/users-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/users-create-error.dto.mjs +0 -2
- package/esm2022/model/users-create-first-name-error-component.dto.mjs +0 -24
- package/esm2022/model/users-create-first-working-day-by-contract-error-component.dto.mjs +0 -19
- package/esm2022/model/users-create-first-working-day-error-component.dto.mjs +0 -19
- package/esm2022/model/users-create-github-username-error-component.dto.mjs +0 -22
- package/esm2022/model/users-create-home-phone-error-component.dto.mjs +0 -22
- package/esm2022/model/users-create-is-intern-error-component.dto.mjs +0 -20
- package/esm2022/model/users-create-is-part-time-error-component.dto.mjs +0 -20
- package/esm2022/model/users-create-is-trainee-error-component.dto.mjs +0 -20
- package/esm2022/model/users-create-jira-account-id-error-component.dto.mjs +0 -23
- package/esm2022/model/users-create-last-name-error-component.dto.mjs +0 -24
- package/esm2022/model/users-create-last-working-day-error-component.dto.mjs +0 -19
- package/esm2022/model/users-create-location-error-component.dto.mjs +0 -20
- package/esm2022/model/users-create-middle-name-error-component.dto.mjs +0 -22
- package/esm2022/model/users-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/users-create-office-phone-error-component.dto.mjs +0 -22
- package/esm2022/model/users-create-onsite-error-component.dto.mjs +0 -20
- package/esm2022/model/users-create-personal-email-error-component.dto.mjs +0 -22
- package/esm2022/model/users-create-personal-phone-error-component.dto.mjs +0 -22
- package/esm2022/model/users-create-recruited-by-error-component.dto.mjs +0 -19
- package/esm2022/model/users-create-role-error-component.dto.mjs +0 -19
- package/esm2022/model/users-create-skype-error-component.dto.mjs +0 -22
- package/esm2022/model/users-create-slack-id-error-component.dto.mjs +0 -22
- package/esm2022/model/users-create-status-error-component.dto.mjs +0 -20
- package/esm2022/model/users-create-supervisees-error-component.dto.mjs +0 -22
- package/esm2022/model/users-create-supervisors-error-component.dto.mjs +0 -22
- package/esm2022/model/users-create-timezone-error-component.dto.mjs +0 -22
- package/esm2022/model/users-create-updated-by-error-component.dto.mjs +0 -19
- package/esm2022/model/users-create-utilization-percent-error-component.dto.mjs +0 -23
- package/esm2022/model/users-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/users-create-vendor-error-component.dto.mjs +0 -19
- package/esm2022/model/users-create-work-type-error-component.dto.mjs +0 -21
- package/esm2022/model/users-list-branch-error-component.dto.mjs +0 -18
- package/esm2022/model/users-list-branch-in-error-component.dto.mjs +0 -18
- package/esm2022/model/users-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/users-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/users-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/users-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/users-list-department-error-component.dto.mjs +0 -18
- package/esm2022/model/users-list-department-in-error-component.dto.mjs +0 -18
- package/esm2022/model/users-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/users-list-error.dto.mjs +0 -2
- package/esm2022/model/users-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/users-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/users-list-role-error-component.dto.mjs +0 -18
- package/esm2022/model/users-list-role-in-error-component.dto.mjs +0 -18
- package/esm2022/model/users-list-status-error-component.dto.mjs +0 -18
- package/esm2022/model/users-list-status-in-error-component.dto.mjs +0 -18
- package/esm2022/model/users-list-supervisees-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/users-list-supervisors-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/users-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/users-list-work-type-error-component.dto.mjs +0 -18
- package/esm2022/model/users-list-work-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/users-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/users-update-avatar-error-component.dto.mjs +0 -21
- package/esm2022/model/users-update-birthday-error-component.dto.mjs +0 -19
- package/esm2022/model/users-update-branch-error-component.dto.mjs +0 -21
- package/esm2022/model/users-update-created-by-error-component.dto.mjs +0 -19
- package/esm2022/model/users-update-department-error-component.dto.mjs +0 -21
- package/esm2022/model/users-update-dismissal-reasons-error-component.dto.mjs +0 -22
- package/esm2022/model/users-update-email-error-component.dto.mjs +0 -25
- package/esm2022/model/users-update-error-response400.dto.mjs +0 -2
- package/esm2022/model/users-update-error.dto.mjs +0 -2
- package/esm2022/model/users-update-first-name-error-component.dto.mjs +0 -24
- package/esm2022/model/users-update-first-working-day-by-contract-error-component.dto.mjs +0 -19
- package/esm2022/model/users-update-first-working-day-error-component.dto.mjs +0 -19
- package/esm2022/model/users-update-github-username-error-component.dto.mjs +0 -22
- package/esm2022/model/users-update-home-phone-error-component.dto.mjs +0 -22
- package/esm2022/model/users-update-is-intern-error-component.dto.mjs +0 -20
- package/esm2022/model/users-update-is-part-time-error-component.dto.mjs +0 -20
- package/esm2022/model/users-update-is-trainee-error-component.dto.mjs +0 -20
- package/esm2022/model/users-update-jira-account-id-error-component.dto.mjs +0 -23
- package/esm2022/model/users-update-last-name-error-component.dto.mjs +0 -24
- package/esm2022/model/users-update-last-working-day-error-component.dto.mjs +0 -19
- package/esm2022/model/users-update-location-error-component.dto.mjs +0 -20
- package/esm2022/model/users-update-middle-name-error-component.dto.mjs +0 -22
- package/esm2022/model/users-update-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/users-update-office-phone-error-component.dto.mjs +0 -22
- package/esm2022/model/users-update-onsite-error-component.dto.mjs +0 -20
- package/esm2022/model/users-update-personal-email-error-component.dto.mjs +0 -22
- package/esm2022/model/users-update-personal-phone-error-component.dto.mjs +0 -22
- package/esm2022/model/users-update-recruited-by-error-component.dto.mjs +0 -19
- package/esm2022/model/users-update-role-error-component.dto.mjs +0 -19
- package/esm2022/model/users-update-skype-error-component.dto.mjs +0 -22
- package/esm2022/model/users-update-slack-id-error-component.dto.mjs +0 -22
- package/esm2022/model/users-update-status-error-component.dto.mjs +0 -20
- package/esm2022/model/users-update-supervisees-error-component.dto.mjs +0 -22
- package/esm2022/model/users-update-supervisors-error-component.dto.mjs +0 -22
- package/esm2022/model/users-update-timezone-error-component.dto.mjs +0 -22
- package/esm2022/model/users-update-updated-by-error-component.dto.mjs +0 -19
- package/esm2022/model/users-update-utilization-percent-error-component.dto.mjs +0 -23
- package/esm2022/model/users-update-validation-error.dto.mjs +0 -2
- package/esm2022/model/users-update-vendor-error-component.dto.mjs +0 -19
- package/esm2022/model/users-update-work-type-error-component.dto.mjs +0 -21
- package/esm2022/model/users-utilization-chart-list-branch-error-component.dto.mjs +0 -18
- package/esm2022/model/users-utilization-chart-list-branch-in-error-component.dto.mjs +0 -18
- package/esm2022/model/users-utilization-chart-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/users-utilization-chart-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/users-utilization-chart-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/users-utilization-chart-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/users-utilization-chart-list-date-gte-error-component.dto.mjs +0 -19
- package/esm2022/model/users-utilization-chart-list-date-lte-error-component.dto.mjs +0 -19
- package/esm2022/model/users-utilization-chart-list-department-error-component.dto.mjs +0 -18
- package/esm2022/model/users-utilization-chart-list-department-in-error-component.dto.mjs +0 -18
- package/esm2022/model/users-utilization-chart-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/users-utilization-chart-list-error.dto.mjs +0 -2
- package/esm2022/model/users-utilization-chart-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/users-utilization-chart-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/users-utilization-chart-list-is-total-error-component.dto.mjs +0 -18
- package/esm2022/model/users-utilization-chart-list-role-error-component.dto.mjs +0 -18
- package/esm2022/model/users-utilization-chart-list-role-in-error-component.dto.mjs +0 -18
- package/esm2022/model/users-utilization-chart-list-status-error-component.dto.mjs +0 -18
- package/esm2022/model/users-utilization-chart-list-status-in-error-component.dto.mjs +0 -18
- package/esm2022/model/users-utilization-chart-list-supervisees-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/users-utilization-chart-list-supervisors-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/users-utilization-chart-list-time-span-error-component.dto.mjs +0 -19
- package/esm2022/model/users-utilization-chart-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/users-utilization-chart-list-work-type-error-component.dto.mjs +0 -18
- package/esm2022/model/users-utilization-chart-list-work-type-in-error-component.dto.mjs +0 -18
- package/esm2022/model/utilization-chart-point.dto.mjs +0 -2
- package/esm2022/model/validation-error-enum.dto.mjs +0 -17
- package/esm2022/model/vendors-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/vendors-create-error.dto.mjs +0 -2
- package/esm2022/model/vendors-create-name-error-component.dto.mjs +0 -25
- package/esm2022/model/vendors-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/vendors-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/vendors-destroy-error-response400.dto.mjs +0 -2
- package/esm2022/model/vendors-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/vendors-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/vendors-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/vendors-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/vendors-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/vendors-list-error.dto.mjs +0 -2
- package/esm2022/model/vendors-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/vendors-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/vendors-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/vendors-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/vendors-update-error-response400.dto.mjs +0 -2
- package/esm2022/model/vendors-update-error.dto.mjs +0 -2
- package/esm2022/model/vendors-update-name-error-component.dto.mjs +0 -25
- package/esm2022/model/vendors-update-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/vendors-update-validation-error.dto.mjs +0 -2
- package/esm2022/model/who-am-i-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/who-am-i.dto.mjs +0 -2
- package/esm2022/model/work-type-change-state-request.dto.mjs +0 -11
- package/esm2022/model/work-type-request.dto.mjs +0 -11
- package/esm2022/model/work-type.dto.mjs +0 -2
- package/esm2022/model/work-types-change-active-status-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/work-types-change-active-status-create-error.dto.mjs +0 -2
- package/esm2022/model/work-types-change-active-status-create-is-active-error-component.dto.mjs +0 -19
- package/esm2022/model/work-types-change-active-status-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/work-types-change-active-status-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/work-types-create-department-error-component.dto.mjs +0 -19
- package/esm2022/model/work-types-create-error-response400.dto.mjs +0 -2
- package/esm2022/model/work-types-create-error.dto.mjs +0 -2
- package/esm2022/model/work-types-create-name-error-component.dto.mjs +0 -25
- package/esm2022/model/work-types-create-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/work-types-create-parent-error-component.dto.mjs +0 -19
- package/esm2022/model/work-types-create-validation-error.dto.mjs +0 -2
- package/esm2022/model/work-types-list-created-date-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/work-types-list-created-date-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/work-types-list-created-gte-error-component.dto.mjs +0 -18
- package/esm2022/model/work-types-list-created-lte-error-component.dto.mjs +0 -18
- package/esm2022/model/work-types-list-department-error-component.dto.mjs +0 -18
- package/esm2022/model/work-types-list-department-in-error-component.dto.mjs +0 -18
- package/esm2022/model/work-types-list-error-response400.dto.mjs +0 -2
- package/esm2022/model/work-types-list-error.dto.mjs +0 -2
- package/esm2022/model/work-types-list-id-error-component.dto.mjs +0 -19
- package/esm2022/model/work-types-list-id-in-error-component.dto.mjs +0 -19
- package/esm2022/model/work-types-list-parent-error-component.dto.mjs +0 -18
- package/esm2022/model/work-types-list-parent-in-error-component.dto.mjs +0 -18
- package/esm2022/model/work-types-list-validation-error.dto.mjs +0 -2
- package/esm2022/model/work-types-retrieve-error-response400.dto.mjs +0 -2
- package/esm2022/model/work-types-update-department-error-component.dto.mjs +0 -19
- package/esm2022/model/work-types-update-error-response400.dto.mjs +0 -2
- package/esm2022/model/work-types-update-error.dto.mjs +0 -2
- package/esm2022/model/work-types-update-name-error-component.dto.mjs +0 -25
- package/esm2022/model/work-types-update-non-field-errors-error-component.dto.mjs +0 -19
- package/esm2022/model/work-types-update-parent-error-component.dto.mjs +0 -19
- package/esm2022/model/work-types-update-validation-error.dto.mjs +0 -2
- package/esm2022/model/writable-client-contact-request.dto.mjs +0 -11
- package/esm2022/model/writable-client-contact.dto.mjs +0 -11
- package/esm2022/param.mjs +0 -2
- package/esm2022/saritasa-crm-delmar-core-sdk.mjs +0 -5
- package/esm2022/variables.mjs +0 -9
|
@@ -1,973 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Delmar Api
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
7
|
-
* https://openapi-generator.tech
|
|
8
|
-
* Do not edit the class manually.
|
|
9
|
-
*/
|
|
10
|
-
/* tslint:disable:no-unused-variable member-ordering */
|
|
11
|
-
import { Inject, Injectable, Optional } from "@angular/core";
|
|
12
|
-
import { HttpParams, HttpContext, } from "@angular/common/http";
|
|
13
|
-
// @ts-ignore
|
|
14
|
-
import { BASE_PATH, COLLECTION_FORMATS } from "../variables";
|
|
15
|
-
import { BaseService } from "../api.base.service";
|
|
16
|
-
import * as i0 from "@angular/core";
|
|
17
|
-
import * as i1 from "@angular/common/http";
|
|
18
|
-
import * as i2 from "../configuration";
|
|
19
|
-
export class JobsApiService extends BaseService {
|
|
20
|
-
httpClient;
|
|
21
|
-
constructor(httpClient, basePath, configuration) {
|
|
22
|
-
super(basePath, configuration);
|
|
23
|
-
this.httpClient = httpClient;
|
|
24
|
-
}
|
|
25
|
-
jobsBillableChartList(requestParameters, observe = "body", reportProgress = false, options) {
|
|
26
|
-
const timeSpan = requestParameters?.timeSpan;
|
|
27
|
-
if (timeSpan === null || timeSpan === undefined) {
|
|
28
|
-
throw new Error("Required parameter timeSpan was null or undefined when calling jobsBillableChartList.");
|
|
29
|
-
}
|
|
30
|
-
const billedByIn = requestParameters?.billedByIn;
|
|
31
|
-
const branchIn = requestParameters?.branchIn;
|
|
32
|
-
const createdDateGte = requestParameters?.createdDateGte;
|
|
33
|
-
const createdDateLte = requestParameters?.createdDateLte;
|
|
34
|
-
const createdGte = requestParameters?.createdGte;
|
|
35
|
-
const createdLte = requestParameters?.createdLte;
|
|
36
|
-
const createdByIn = requestParameters?.createdByIn;
|
|
37
|
-
const dateGte = requestParameters?.dateGte;
|
|
38
|
-
const dateLte = requestParameters?.dateLte;
|
|
39
|
-
const departmentId = requestParameters?.departmentId;
|
|
40
|
-
const departmentIdIn = requestParameters?.departmentIdIn;
|
|
41
|
-
const idIn = requestParameters?.idIn;
|
|
42
|
-
const isBillable = requestParameters?.isBillable;
|
|
43
|
-
const search = requestParameters?.search;
|
|
44
|
-
const taskComponentIn = requestParameters?.taskComponentIn;
|
|
45
|
-
const taskIn = requestParameters?.taskIn;
|
|
46
|
-
const taskProjectClientIn = requestParameters?.taskProjectClientIn;
|
|
47
|
-
const taskProjectIn = requestParameters?.taskProjectIn;
|
|
48
|
-
const taskSprintIn = requestParameters?.taskSprintIn;
|
|
49
|
-
const typeIn = requestParameters?.typeIn;
|
|
50
|
-
const updatedByIn = requestParameters?.updatedByIn;
|
|
51
|
-
const workTypeIn = requestParameters?.workTypeIn;
|
|
52
|
-
let localVarQueryParameters = new HttpParams({ encoder: this.encoder });
|
|
53
|
-
if (billedByIn) {
|
|
54
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...billedByIn].join(COLLECTION_FORMATS["csv"]), "billed_by__in");
|
|
55
|
-
}
|
|
56
|
-
if (branchIn) {
|
|
57
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...branchIn].join(COLLECTION_FORMATS["csv"]), "branch__in");
|
|
58
|
-
}
|
|
59
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdDateGte, "created__date__gte");
|
|
60
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdDateLte, "created__date__lte");
|
|
61
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdGte, "created__gte");
|
|
62
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdLte, "created__lte");
|
|
63
|
-
if (createdByIn) {
|
|
64
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...createdByIn].join(COLLECTION_FORMATS["csv"]), "created_by__in");
|
|
65
|
-
}
|
|
66
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, dateGte, "date__gte");
|
|
67
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, dateLte, "date__lte");
|
|
68
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, departmentId, "department_id");
|
|
69
|
-
if (departmentIdIn) {
|
|
70
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...departmentIdIn].join(COLLECTION_FORMATS["csv"]), "department_id__in");
|
|
71
|
-
}
|
|
72
|
-
if (idIn) {
|
|
73
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...idIn].join(COLLECTION_FORMATS["csv"]), "id__in");
|
|
74
|
-
}
|
|
75
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, isBillable, "is_billable");
|
|
76
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, search, "search");
|
|
77
|
-
if (taskComponentIn) {
|
|
78
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskComponentIn].join(COLLECTION_FORMATS["csv"]), "task__component__in");
|
|
79
|
-
}
|
|
80
|
-
if (taskIn) {
|
|
81
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskIn].join(COLLECTION_FORMATS["csv"]), "task__in");
|
|
82
|
-
}
|
|
83
|
-
if (taskProjectClientIn) {
|
|
84
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskProjectClientIn].join(COLLECTION_FORMATS["csv"]), "task__project__client__in");
|
|
85
|
-
}
|
|
86
|
-
if (taskProjectIn) {
|
|
87
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskProjectIn].join(COLLECTION_FORMATS["csv"]), "task__project__in");
|
|
88
|
-
}
|
|
89
|
-
if (taskSprintIn) {
|
|
90
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskSprintIn].join(COLLECTION_FORMATS["csv"]), "task__sprint__in");
|
|
91
|
-
}
|
|
92
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, timeSpan, "time_span");
|
|
93
|
-
if (typeIn) {
|
|
94
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...typeIn].join(COLLECTION_FORMATS["csv"]), "type__in");
|
|
95
|
-
}
|
|
96
|
-
if (updatedByIn) {
|
|
97
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...updatedByIn].join(COLLECTION_FORMATS["csv"]), "updated_by__in");
|
|
98
|
-
}
|
|
99
|
-
if (workTypeIn) {
|
|
100
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...workTypeIn].join(COLLECTION_FORMATS["csv"]), "work_type__in");
|
|
101
|
-
}
|
|
102
|
-
let localVarHeaders = this.defaultHeaders;
|
|
103
|
-
// authentication (cookieAuth) required
|
|
104
|
-
// authentication (jwtAuth) required
|
|
105
|
-
localVarHeaders = this.configuration.addCredentialToHeaders("jwtAuth", "Authorization", localVarHeaders, "Bearer ");
|
|
106
|
-
const localVarHttpHeaderAcceptSelected = options?.httpHeaderAccept ??
|
|
107
|
-
this.configuration.selectHeaderAccept(["application/json"]);
|
|
108
|
-
if (localVarHttpHeaderAcceptSelected !== undefined) {
|
|
109
|
-
localVarHeaders = localVarHeaders.set("Accept", localVarHttpHeaderAcceptSelected);
|
|
110
|
-
}
|
|
111
|
-
const localVarHttpContext = options?.context ?? new HttpContext();
|
|
112
|
-
const localVarTransferCache = options?.transferCache ?? true;
|
|
113
|
-
let responseType_ = "json";
|
|
114
|
-
if (localVarHttpHeaderAcceptSelected) {
|
|
115
|
-
if (localVarHttpHeaderAcceptSelected.startsWith("text")) {
|
|
116
|
-
responseType_ = "text";
|
|
117
|
-
}
|
|
118
|
-
else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
|
|
119
|
-
responseType_ = "json";
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
responseType_ = "blob";
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
let localVarPath = `/api/v1/jobs/billable-chart/`;
|
|
126
|
-
return this.httpClient.request("get", `${this.configuration.basePath}${localVarPath}`, {
|
|
127
|
-
context: localVarHttpContext,
|
|
128
|
-
params: localVarQueryParameters,
|
|
129
|
-
responseType: responseType_,
|
|
130
|
-
withCredentials: this.configuration.withCredentials,
|
|
131
|
-
headers: localVarHeaders,
|
|
132
|
-
observe: observe,
|
|
133
|
-
transferCache: localVarTransferCache,
|
|
134
|
-
reportProgress: reportProgress,
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
jobsList(requestParameters, observe = "body", reportProgress = false, options) {
|
|
138
|
-
const billedByIn = requestParameters?.billedByIn;
|
|
139
|
-
const branchIn = requestParameters?.branchIn;
|
|
140
|
-
const createdDateGte = requestParameters?.createdDateGte;
|
|
141
|
-
const createdDateLte = requestParameters?.createdDateLte;
|
|
142
|
-
const createdGte = requestParameters?.createdGte;
|
|
143
|
-
const createdLte = requestParameters?.createdLte;
|
|
144
|
-
const createdByIn = requestParameters?.createdByIn;
|
|
145
|
-
const dateGte = requestParameters?.dateGte;
|
|
146
|
-
const dateLte = requestParameters?.dateLte;
|
|
147
|
-
const departmentId = requestParameters?.departmentId;
|
|
148
|
-
const departmentIdIn = requestParameters?.departmentIdIn;
|
|
149
|
-
const idIn = requestParameters?.idIn;
|
|
150
|
-
const isBillable = requestParameters?.isBillable;
|
|
151
|
-
const limit = requestParameters?.limit;
|
|
152
|
-
const offset = requestParameters?.offset;
|
|
153
|
-
const ordering = requestParameters?.ordering;
|
|
154
|
-
const search = requestParameters?.search;
|
|
155
|
-
const taskComponentIn = requestParameters?.taskComponentIn;
|
|
156
|
-
const taskIn = requestParameters?.taskIn;
|
|
157
|
-
const taskProjectClientIn = requestParameters?.taskProjectClientIn;
|
|
158
|
-
const taskProjectIn = requestParameters?.taskProjectIn;
|
|
159
|
-
const taskSprintIn = requestParameters?.taskSprintIn;
|
|
160
|
-
const typeIn = requestParameters?.typeIn;
|
|
161
|
-
const updatedByIn = requestParameters?.updatedByIn;
|
|
162
|
-
const workTypeIn = requestParameters?.workTypeIn;
|
|
163
|
-
let localVarQueryParameters = new HttpParams({ encoder: this.encoder });
|
|
164
|
-
if (billedByIn) {
|
|
165
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...billedByIn].join(COLLECTION_FORMATS["csv"]), "billed_by__in");
|
|
166
|
-
}
|
|
167
|
-
if (branchIn) {
|
|
168
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...branchIn].join(COLLECTION_FORMATS["csv"]), "branch__in");
|
|
169
|
-
}
|
|
170
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdDateGte, "created__date__gte");
|
|
171
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdDateLte, "created__date__lte");
|
|
172
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdGte, "created__gte");
|
|
173
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdLte, "created__lte");
|
|
174
|
-
if (createdByIn) {
|
|
175
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...createdByIn].join(COLLECTION_FORMATS["csv"]), "created_by__in");
|
|
176
|
-
}
|
|
177
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, dateGte, "date__gte");
|
|
178
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, dateLte, "date__lte");
|
|
179
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, departmentId, "department_id");
|
|
180
|
-
if (departmentIdIn) {
|
|
181
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...departmentIdIn].join(COLLECTION_FORMATS["csv"]), "department_id__in");
|
|
182
|
-
}
|
|
183
|
-
if (idIn) {
|
|
184
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...idIn].join(COLLECTION_FORMATS["csv"]), "id__in");
|
|
185
|
-
}
|
|
186
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, isBillable, "is_billable");
|
|
187
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, limit, "limit");
|
|
188
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, offset, "offset");
|
|
189
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, ordering, "ordering");
|
|
190
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, search, "search");
|
|
191
|
-
if (taskComponentIn) {
|
|
192
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskComponentIn].join(COLLECTION_FORMATS["csv"]), "task__component__in");
|
|
193
|
-
}
|
|
194
|
-
if (taskIn) {
|
|
195
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskIn].join(COLLECTION_FORMATS["csv"]), "task__in");
|
|
196
|
-
}
|
|
197
|
-
if (taskProjectClientIn) {
|
|
198
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskProjectClientIn].join(COLLECTION_FORMATS["csv"]), "task__project__client__in");
|
|
199
|
-
}
|
|
200
|
-
if (taskProjectIn) {
|
|
201
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskProjectIn].join(COLLECTION_FORMATS["csv"]), "task__project__in");
|
|
202
|
-
}
|
|
203
|
-
if (taskSprintIn) {
|
|
204
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskSprintIn].join(COLLECTION_FORMATS["csv"]), "task__sprint__in");
|
|
205
|
-
}
|
|
206
|
-
if (typeIn) {
|
|
207
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...typeIn].join(COLLECTION_FORMATS["csv"]), "type__in");
|
|
208
|
-
}
|
|
209
|
-
if (updatedByIn) {
|
|
210
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...updatedByIn].join(COLLECTION_FORMATS["csv"]), "updated_by__in");
|
|
211
|
-
}
|
|
212
|
-
if (workTypeIn) {
|
|
213
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...workTypeIn].join(COLLECTION_FORMATS["csv"]), "work_type__in");
|
|
214
|
-
}
|
|
215
|
-
let localVarHeaders = this.defaultHeaders;
|
|
216
|
-
// authentication (cookieAuth) required
|
|
217
|
-
// authentication (jwtAuth) required
|
|
218
|
-
localVarHeaders = this.configuration.addCredentialToHeaders("jwtAuth", "Authorization", localVarHeaders, "Bearer ");
|
|
219
|
-
const localVarHttpHeaderAcceptSelected = options?.httpHeaderAccept ??
|
|
220
|
-
this.configuration.selectHeaderAccept(["application/json"]);
|
|
221
|
-
if (localVarHttpHeaderAcceptSelected !== undefined) {
|
|
222
|
-
localVarHeaders = localVarHeaders.set("Accept", localVarHttpHeaderAcceptSelected);
|
|
223
|
-
}
|
|
224
|
-
const localVarHttpContext = options?.context ?? new HttpContext();
|
|
225
|
-
const localVarTransferCache = options?.transferCache ?? true;
|
|
226
|
-
let responseType_ = "json";
|
|
227
|
-
if (localVarHttpHeaderAcceptSelected) {
|
|
228
|
-
if (localVarHttpHeaderAcceptSelected.startsWith("text")) {
|
|
229
|
-
responseType_ = "text";
|
|
230
|
-
}
|
|
231
|
-
else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
|
|
232
|
-
responseType_ = "json";
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
responseType_ = "blob";
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
let localVarPath = `/api/v1/jobs/`;
|
|
239
|
-
return this.httpClient.request("get", `${this.configuration.basePath}${localVarPath}`, {
|
|
240
|
-
context: localVarHttpContext,
|
|
241
|
-
params: localVarQueryParameters,
|
|
242
|
-
responseType: responseType_,
|
|
243
|
-
withCredentials: this.configuration.withCredentials,
|
|
244
|
-
headers: localVarHeaders,
|
|
245
|
-
observe: observe,
|
|
246
|
-
transferCache: localVarTransferCache,
|
|
247
|
-
reportProgress: reportProgress,
|
|
248
|
-
});
|
|
249
|
-
}
|
|
250
|
-
jobsOverseaChartList(requestParameters, observe = "body", reportProgress = false, options) {
|
|
251
|
-
const timeSpan = requestParameters?.timeSpan;
|
|
252
|
-
if (timeSpan === null || timeSpan === undefined) {
|
|
253
|
-
throw new Error("Required parameter timeSpan was null or undefined when calling jobsOverseaChartList.");
|
|
254
|
-
}
|
|
255
|
-
const billedByIn = requestParameters?.billedByIn;
|
|
256
|
-
const branchIn = requestParameters?.branchIn;
|
|
257
|
-
const createdDateGte = requestParameters?.createdDateGte;
|
|
258
|
-
const createdDateLte = requestParameters?.createdDateLte;
|
|
259
|
-
const createdGte = requestParameters?.createdGte;
|
|
260
|
-
const createdLte = requestParameters?.createdLte;
|
|
261
|
-
const createdByIn = requestParameters?.createdByIn;
|
|
262
|
-
const dateGte = requestParameters?.dateGte;
|
|
263
|
-
const dateLte = requestParameters?.dateLte;
|
|
264
|
-
const departmentId = requestParameters?.departmentId;
|
|
265
|
-
const departmentIdIn = requestParameters?.departmentIdIn;
|
|
266
|
-
const idIn = requestParameters?.idIn;
|
|
267
|
-
const isBillable = requestParameters?.isBillable;
|
|
268
|
-
const search = requestParameters?.search;
|
|
269
|
-
const taskComponentIn = requestParameters?.taskComponentIn;
|
|
270
|
-
const taskIn = requestParameters?.taskIn;
|
|
271
|
-
const taskProjectClientIn = requestParameters?.taskProjectClientIn;
|
|
272
|
-
const taskProjectIn = requestParameters?.taskProjectIn;
|
|
273
|
-
const taskSprintIn = requestParameters?.taskSprintIn;
|
|
274
|
-
const typeIn = requestParameters?.typeIn;
|
|
275
|
-
const updatedByIn = requestParameters?.updatedByIn;
|
|
276
|
-
const workTypeIn = requestParameters?.workTypeIn;
|
|
277
|
-
let localVarQueryParameters = new HttpParams({ encoder: this.encoder });
|
|
278
|
-
if (billedByIn) {
|
|
279
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...billedByIn].join(COLLECTION_FORMATS["csv"]), "billed_by__in");
|
|
280
|
-
}
|
|
281
|
-
if (branchIn) {
|
|
282
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...branchIn].join(COLLECTION_FORMATS["csv"]), "branch__in");
|
|
283
|
-
}
|
|
284
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdDateGte, "created__date__gte");
|
|
285
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdDateLte, "created__date__lte");
|
|
286
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdGte, "created__gte");
|
|
287
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdLte, "created__lte");
|
|
288
|
-
if (createdByIn) {
|
|
289
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...createdByIn].join(COLLECTION_FORMATS["csv"]), "created_by__in");
|
|
290
|
-
}
|
|
291
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, dateGte, "date__gte");
|
|
292
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, dateLte, "date__lte");
|
|
293
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, departmentId, "department_id");
|
|
294
|
-
if (departmentIdIn) {
|
|
295
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...departmentIdIn].join(COLLECTION_FORMATS["csv"]), "department_id__in");
|
|
296
|
-
}
|
|
297
|
-
if (idIn) {
|
|
298
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...idIn].join(COLLECTION_FORMATS["csv"]), "id__in");
|
|
299
|
-
}
|
|
300
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, isBillable, "is_billable");
|
|
301
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, search, "search");
|
|
302
|
-
if (taskComponentIn) {
|
|
303
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskComponentIn].join(COLLECTION_FORMATS["csv"]), "task__component__in");
|
|
304
|
-
}
|
|
305
|
-
if (taskIn) {
|
|
306
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskIn].join(COLLECTION_FORMATS["csv"]), "task__in");
|
|
307
|
-
}
|
|
308
|
-
if (taskProjectClientIn) {
|
|
309
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskProjectClientIn].join(COLLECTION_FORMATS["csv"]), "task__project__client__in");
|
|
310
|
-
}
|
|
311
|
-
if (taskProjectIn) {
|
|
312
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskProjectIn].join(COLLECTION_FORMATS["csv"]), "task__project__in");
|
|
313
|
-
}
|
|
314
|
-
if (taskSprintIn) {
|
|
315
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskSprintIn].join(COLLECTION_FORMATS["csv"]), "task__sprint__in");
|
|
316
|
-
}
|
|
317
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, timeSpan, "time_span");
|
|
318
|
-
if (typeIn) {
|
|
319
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...typeIn].join(COLLECTION_FORMATS["csv"]), "type__in");
|
|
320
|
-
}
|
|
321
|
-
if (updatedByIn) {
|
|
322
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...updatedByIn].join(COLLECTION_FORMATS["csv"]), "updated_by__in");
|
|
323
|
-
}
|
|
324
|
-
if (workTypeIn) {
|
|
325
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...workTypeIn].join(COLLECTION_FORMATS["csv"]), "work_type__in");
|
|
326
|
-
}
|
|
327
|
-
let localVarHeaders = this.defaultHeaders;
|
|
328
|
-
// authentication (cookieAuth) required
|
|
329
|
-
// authentication (jwtAuth) required
|
|
330
|
-
localVarHeaders = this.configuration.addCredentialToHeaders("jwtAuth", "Authorization", localVarHeaders, "Bearer ");
|
|
331
|
-
const localVarHttpHeaderAcceptSelected = options?.httpHeaderAccept ??
|
|
332
|
-
this.configuration.selectHeaderAccept(["application/json"]);
|
|
333
|
-
if (localVarHttpHeaderAcceptSelected !== undefined) {
|
|
334
|
-
localVarHeaders = localVarHeaders.set("Accept", localVarHttpHeaderAcceptSelected);
|
|
335
|
-
}
|
|
336
|
-
const localVarHttpContext = options?.context ?? new HttpContext();
|
|
337
|
-
const localVarTransferCache = options?.transferCache ?? true;
|
|
338
|
-
let responseType_ = "json";
|
|
339
|
-
if (localVarHttpHeaderAcceptSelected) {
|
|
340
|
-
if (localVarHttpHeaderAcceptSelected.startsWith("text")) {
|
|
341
|
-
responseType_ = "text";
|
|
342
|
-
}
|
|
343
|
-
else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
|
|
344
|
-
responseType_ = "json";
|
|
345
|
-
}
|
|
346
|
-
else {
|
|
347
|
-
responseType_ = "blob";
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
let localVarPath = `/api/v1/jobs/oversea-chart/`;
|
|
351
|
-
return this.httpClient.request("get", `${this.configuration.basePath}${localVarPath}`, {
|
|
352
|
-
context: localVarHttpContext,
|
|
353
|
-
params: localVarQueryParameters,
|
|
354
|
-
responseType: responseType_,
|
|
355
|
-
withCredentials: this.configuration.withCredentials,
|
|
356
|
-
headers: localVarHeaders,
|
|
357
|
-
observe: observe,
|
|
358
|
-
transferCache: localVarTransferCache,
|
|
359
|
-
reportProgress: reportProgress,
|
|
360
|
-
});
|
|
361
|
-
}
|
|
362
|
-
jobsProductionChartList(requestParameters, observe = "body", reportProgress = false, options) {
|
|
363
|
-
const timeSpan = requestParameters?.timeSpan;
|
|
364
|
-
if (timeSpan === null || timeSpan === undefined) {
|
|
365
|
-
throw new Error("Required parameter timeSpan was null or undefined when calling jobsProductionChartList.");
|
|
366
|
-
}
|
|
367
|
-
const billedByIn = requestParameters?.billedByIn;
|
|
368
|
-
const branchIn = requestParameters?.branchIn;
|
|
369
|
-
const createdDateGte = requestParameters?.createdDateGte;
|
|
370
|
-
const createdDateLte = requestParameters?.createdDateLte;
|
|
371
|
-
const createdGte = requestParameters?.createdGte;
|
|
372
|
-
const createdLte = requestParameters?.createdLte;
|
|
373
|
-
const createdByIn = requestParameters?.createdByIn;
|
|
374
|
-
const dateGte = requestParameters?.dateGte;
|
|
375
|
-
const dateLte = requestParameters?.dateLte;
|
|
376
|
-
const departmentId = requestParameters?.departmentId;
|
|
377
|
-
const departmentIdIn = requestParameters?.departmentIdIn;
|
|
378
|
-
const idIn = requestParameters?.idIn;
|
|
379
|
-
const isBillable = requestParameters?.isBillable;
|
|
380
|
-
const search = requestParameters?.search;
|
|
381
|
-
const taskComponentIn = requestParameters?.taskComponentIn;
|
|
382
|
-
const taskIn = requestParameters?.taskIn;
|
|
383
|
-
const taskProjectClientIn = requestParameters?.taskProjectClientIn;
|
|
384
|
-
const taskProjectIn = requestParameters?.taskProjectIn;
|
|
385
|
-
const taskSprintIn = requestParameters?.taskSprintIn;
|
|
386
|
-
const typeIn = requestParameters?.typeIn;
|
|
387
|
-
const updatedByIn = requestParameters?.updatedByIn;
|
|
388
|
-
const workTypeIn = requestParameters?.workTypeIn;
|
|
389
|
-
let localVarQueryParameters = new HttpParams({ encoder: this.encoder });
|
|
390
|
-
if (billedByIn) {
|
|
391
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...billedByIn].join(COLLECTION_FORMATS["csv"]), "billed_by__in");
|
|
392
|
-
}
|
|
393
|
-
if (branchIn) {
|
|
394
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...branchIn].join(COLLECTION_FORMATS["csv"]), "branch__in");
|
|
395
|
-
}
|
|
396
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdDateGte, "created__date__gte");
|
|
397
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdDateLte, "created__date__lte");
|
|
398
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdGte, "created__gte");
|
|
399
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdLte, "created__lte");
|
|
400
|
-
if (createdByIn) {
|
|
401
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...createdByIn].join(COLLECTION_FORMATS["csv"]), "created_by__in");
|
|
402
|
-
}
|
|
403
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, dateGte, "date__gte");
|
|
404
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, dateLte, "date__lte");
|
|
405
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, departmentId, "department_id");
|
|
406
|
-
if (departmentIdIn) {
|
|
407
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...departmentIdIn].join(COLLECTION_FORMATS["csv"]), "department_id__in");
|
|
408
|
-
}
|
|
409
|
-
if (idIn) {
|
|
410
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...idIn].join(COLLECTION_FORMATS["csv"]), "id__in");
|
|
411
|
-
}
|
|
412
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, isBillable, "is_billable");
|
|
413
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, search, "search");
|
|
414
|
-
if (taskComponentIn) {
|
|
415
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskComponentIn].join(COLLECTION_FORMATS["csv"]), "task__component__in");
|
|
416
|
-
}
|
|
417
|
-
if (taskIn) {
|
|
418
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskIn].join(COLLECTION_FORMATS["csv"]), "task__in");
|
|
419
|
-
}
|
|
420
|
-
if (taskProjectClientIn) {
|
|
421
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskProjectClientIn].join(COLLECTION_FORMATS["csv"]), "task__project__client__in");
|
|
422
|
-
}
|
|
423
|
-
if (taskProjectIn) {
|
|
424
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskProjectIn].join(COLLECTION_FORMATS["csv"]), "task__project__in");
|
|
425
|
-
}
|
|
426
|
-
if (taskSprintIn) {
|
|
427
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskSprintIn].join(COLLECTION_FORMATS["csv"]), "task__sprint__in");
|
|
428
|
-
}
|
|
429
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, timeSpan, "time_span");
|
|
430
|
-
if (typeIn) {
|
|
431
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...typeIn].join(COLLECTION_FORMATS["csv"]), "type__in");
|
|
432
|
-
}
|
|
433
|
-
if (updatedByIn) {
|
|
434
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...updatedByIn].join(COLLECTION_FORMATS["csv"]), "updated_by__in");
|
|
435
|
-
}
|
|
436
|
-
if (workTypeIn) {
|
|
437
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...workTypeIn].join(COLLECTION_FORMATS["csv"]), "work_type__in");
|
|
438
|
-
}
|
|
439
|
-
let localVarHeaders = this.defaultHeaders;
|
|
440
|
-
// authentication (cookieAuth) required
|
|
441
|
-
// authentication (jwtAuth) required
|
|
442
|
-
localVarHeaders = this.configuration.addCredentialToHeaders("jwtAuth", "Authorization", localVarHeaders, "Bearer ");
|
|
443
|
-
const localVarHttpHeaderAcceptSelected = options?.httpHeaderAccept ??
|
|
444
|
-
this.configuration.selectHeaderAccept(["application/json"]);
|
|
445
|
-
if (localVarHttpHeaderAcceptSelected !== undefined) {
|
|
446
|
-
localVarHeaders = localVarHeaders.set("Accept", localVarHttpHeaderAcceptSelected);
|
|
447
|
-
}
|
|
448
|
-
const localVarHttpContext = options?.context ?? new HttpContext();
|
|
449
|
-
const localVarTransferCache = options?.transferCache ?? true;
|
|
450
|
-
let responseType_ = "json";
|
|
451
|
-
if (localVarHttpHeaderAcceptSelected) {
|
|
452
|
-
if (localVarHttpHeaderAcceptSelected.startsWith("text")) {
|
|
453
|
-
responseType_ = "text";
|
|
454
|
-
}
|
|
455
|
-
else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
|
|
456
|
-
responseType_ = "json";
|
|
457
|
-
}
|
|
458
|
-
else {
|
|
459
|
-
responseType_ = "blob";
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
let localVarPath = `/api/v1/jobs/production-chart/`;
|
|
463
|
-
return this.httpClient.request("get", `${this.configuration.basePath}${localVarPath}`, {
|
|
464
|
-
context: localVarHttpContext,
|
|
465
|
-
params: localVarQueryParameters,
|
|
466
|
-
responseType: responseType_,
|
|
467
|
-
withCredentials: this.configuration.withCredentials,
|
|
468
|
-
headers: localVarHeaders,
|
|
469
|
-
observe: observe,
|
|
470
|
-
transferCache: localVarTransferCache,
|
|
471
|
-
reportProgress: reportProgress,
|
|
472
|
-
});
|
|
473
|
-
}
|
|
474
|
-
jobsReportDepartmentsList(requestParameters, observe = "body", reportProgress = false, options) {
|
|
475
|
-
const billedByIn = requestParameters?.billedByIn;
|
|
476
|
-
const branchIn = requestParameters?.branchIn;
|
|
477
|
-
const createdDateGte = requestParameters?.createdDateGte;
|
|
478
|
-
const createdDateLte = requestParameters?.createdDateLte;
|
|
479
|
-
const createdGte = requestParameters?.createdGte;
|
|
480
|
-
const createdLte = requestParameters?.createdLte;
|
|
481
|
-
const createdByIn = requestParameters?.createdByIn;
|
|
482
|
-
const dateGte = requestParameters?.dateGte;
|
|
483
|
-
const dateLte = requestParameters?.dateLte;
|
|
484
|
-
const departmentId = requestParameters?.departmentId;
|
|
485
|
-
const departmentIdIn = requestParameters?.departmentIdIn;
|
|
486
|
-
const idIn = requestParameters?.idIn;
|
|
487
|
-
const isBillable = requestParameters?.isBillable;
|
|
488
|
-
const ordering = requestParameters?.ordering;
|
|
489
|
-
const search = requestParameters?.search;
|
|
490
|
-
const taskComponentIn = requestParameters?.taskComponentIn;
|
|
491
|
-
const taskIn = requestParameters?.taskIn;
|
|
492
|
-
const taskProjectClientIn = requestParameters?.taskProjectClientIn;
|
|
493
|
-
const taskProjectIn = requestParameters?.taskProjectIn;
|
|
494
|
-
const taskSprintIn = requestParameters?.taskSprintIn;
|
|
495
|
-
const timeSpan = requestParameters?.timeSpan;
|
|
496
|
-
const typeIn = requestParameters?.typeIn;
|
|
497
|
-
const updatedByIn = requestParameters?.updatedByIn;
|
|
498
|
-
const workTypeIn = requestParameters?.workTypeIn;
|
|
499
|
-
let localVarQueryParameters = new HttpParams({ encoder: this.encoder });
|
|
500
|
-
if (billedByIn) {
|
|
501
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...billedByIn].join(COLLECTION_FORMATS["csv"]), "billed_by__in");
|
|
502
|
-
}
|
|
503
|
-
if (branchIn) {
|
|
504
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...branchIn].join(COLLECTION_FORMATS["csv"]), "branch__in");
|
|
505
|
-
}
|
|
506
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdDateGte, "created__date__gte");
|
|
507
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdDateLte, "created__date__lte");
|
|
508
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdGte, "created__gte");
|
|
509
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdLte, "created__lte");
|
|
510
|
-
if (createdByIn) {
|
|
511
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...createdByIn].join(COLLECTION_FORMATS["csv"]), "created_by__in");
|
|
512
|
-
}
|
|
513
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, dateGte, "date__gte");
|
|
514
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, dateLte, "date__lte");
|
|
515
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, departmentId, "department_id");
|
|
516
|
-
if (departmentIdIn) {
|
|
517
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...departmentIdIn].join(COLLECTION_FORMATS["csv"]), "department_id__in");
|
|
518
|
-
}
|
|
519
|
-
if (idIn) {
|
|
520
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...idIn].join(COLLECTION_FORMATS["csv"]), "id__in");
|
|
521
|
-
}
|
|
522
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, isBillable, "is_billable");
|
|
523
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, ordering, "ordering");
|
|
524
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, search, "search");
|
|
525
|
-
if (taskComponentIn) {
|
|
526
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskComponentIn].join(COLLECTION_FORMATS["csv"]), "task__component__in");
|
|
527
|
-
}
|
|
528
|
-
if (taskIn) {
|
|
529
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskIn].join(COLLECTION_FORMATS["csv"]), "task__in");
|
|
530
|
-
}
|
|
531
|
-
if (taskProjectClientIn) {
|
|
532
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskProjectClientIn].join(COLLECTION_FORMATS["csv"]), "task__project__client__in");
|
|
533
|
-
}
|
|
534
|
-
if (taskProjectIn) {
|
|
535
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskProjectIn].join(COLLECTION_FORMATS["csv"]), "task__project__in");
|
|
536
|
-
}
|
|
537
|
-
if (taskSprintIn) {
|
|
538
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskSprintIn].join(COLLECTION_FORMATS["csv"]), "task__sprint__in");
|
|
539
|
-
}
|
|
540
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, timeSpan, "time_span");
|
|
541
|
-
if (typeIn) {
|
|
542
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...typeIn].join(COLLECTION_FORMATS["csv"]), "type__in");
|
|
543
|
-
}
|
|
544
|
-
if (updatedByIn) {
|
|
545
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...updatedByIn].join(COLLECTION_FORMATS["csv"]), "updated_by__in");
|
|
546
|
-
}
|
|
547
|
-
if (workTypeIn) {
|
|
548
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...workTypeIn].join(COLLECTION_FORMATS["csv"]), "work_type__in");
|
|
549
|
-
}
|
|
550
|
-
let localVarHeaders = this.defaultHeaders;
|
|
551
|
-
// authentication (cookieAuth) required
|
|
552
|
-
// authentication (jwtAuth) required
|
|
553
|
-
localVarHeaders = this.configuration.addCredentialToHeaders("jwtAuth", "Authorization", localVarHeaders, "Bearer ");
|
|
554
|
-
const localVarHttpHeaderAcceptSelected = options?.httpHeaderAccept ??
|
|
555
|
-
this.configuration.selectHeaderAccept(["application/json"]);
|
|
556
|
-
if (localVarHttpHeaderAcceptSelected !== undefined) {
|
|
557
|
-
localVarHeaders = localVarHeaders.set("Accept", localVarHttpHeaderAcceptSelected);
|
|
558
|
-
}
|
|
559
|
-
const localVarHttpContext = options?.context ?? new HttpContext();
|
|
560
|
-
const localVarTransferCache = options?.transferCache ?? true;
|
|
561
|
-
let responseType_ = "json";
|
|
562
|
-
if (localVarHttpHeaderAcceptSelected) {
|
|
563
|
-
if (localVarHttpHeaderAcceptSelected.startsWith("text")) {
|
|
564
|
-
responseType_ = "text";
|
|
565
|
-
}
|
|
566
|
-
else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
|
|
567
|
-
responseType_ = "json";
|
|
568
|
-
}
|
|
569
|
-
else {
|
|
570
|
-
responseType_ = "blob";
|
|
571
|
-
}
|
|
572
|
-
}
|
|
573
|
-
let localVarPath = `/api/v1/jobs/report-departments/`;
|
|
574
|
-
return this.httpClient.request("get", `${this.configuration.basePath}${localVarPath}`, {
|
|
575
|
-
context: localVarHttpContext,
|
|
576
|
-
params: localVarQueryParameters,
|
|
577
|
-
responseType: responseType_,
|
|
578
|
-
withCredentials: this.configuration.withCredentials,
|
|
579
|
-
headers: localVarHeaders,
|
|
580
|
-
observe: observe,
|
|
581
|
-
transferCache: localVarTransferCache,
|
|
582
|
-
reportProgress: reportProgress,
|
|
583
|
-
});
|
|
584
|
-
}
|
|
585
|
-
jobsReportHourlyList(requestParameters, observe = "body", reportProgress = false, options) {
|
|
586
|
-
const billedByIn = requestParameters?.billedByIn;
|
|
587
|
-
const branchIn = requestParameters?.branchIn;
|
|
588
|
-
const createdDateGte = requestParameters?.createdDateGte;
|
|
589
|
-
const createdDateLte = requestParameters?.createdDateLte;
|
|
590
|
-
const createdGte = requestParameters?.createdGte;
|
|
591
|
-
const createdLte = requestParameters?.createdLte;
|
|
592
|
-
const createdByIn = requestParameters?.createdByIn;
|
|
593
|
-
const dateGte = requestParameters?.dateGte;
|
|
594
|
-
const dateLte = requestParameters?.dateLte;
|
|
595
|
-
const departmentId = requestParameters?.departmentId;
|
|
596
|
-
const departmentIdIn = requestParameters?.departmentIdIn;
|
|
597
|
-
const idIn = requestParameters?.idIn;
|
|
598
|
-
const isBillable = requestParameters?.isBillable;
|
|
599
|
-
const limit = requestParameters?.limit;
|
|
600
|
-
const offset = requestParameters?.offset;
|
|
601
|
-
const ordering = requestParameters?.ordering;
|
|
602
|
-
const search = requestParameters?.search;
|
|
603
|
-
const taskComponentIn = requestParameters?.taskComponentIn;
|
|
604
|
-
const taskIn = requestParameters?.taskIn;
|
|
605
|
-
const taskProjectClientIn = requestParameters?.taskProjectClientIn;
|
|
606
|
-
const taskProjectIn = requestParameters?.taskProjectIn;
|
|
607
|
-
const taskSprintIn = requestParameters?.taskSprintIn;
|
|
608
|
-
const typeIn = requestParameters?.typeIn;
|
|
609
|
-
const updatedByIn = requestParameters?.updatedByIn;
|
|
610
|
-
const workTypeIn = requestParameters?.workTypeIn;
|
|
611
|
-
let localVarQueryParameters = new HttpParams({ encoder: this.encoder });
|
|
612
|
-
if (billedByIn) {
|
|
613
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...billedByIn].join(COLLECTION_FORMATS["csv"]), "billed_by__in");
|
|
614
|
-
}
|
|
615
|
-
if (branchIn) {
|
|
616
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...branchIn].join(COLLECTION_FORMATS["csv"]), "branch__in");
|
|
617
|
-
}
|
|
618
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdDateGte, "created__date__gte");
|
|
619
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdDateLte, "created__date__lte");
|
|
620
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdGte, "created__gte");
|
|
621
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdLte, "created__lte");
|
|
622
|
-
if (createdByIn) {
|
|
623
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...createdByIn].join(COLLECTION_FORMATS["csv"]), "created_by__in");
|
|
624
|
-
}
|
|
625
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, dateGte, "date__gte");
|
|
626
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, dateLte, "date__lte");
|
|
627
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, departmentId, "department_id");
|
|
628
|
-
if (departmentIdIn) {
|
|
629
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...departmentIdIn].join(COLLECTION_FORMATS["csv"]), "department_id__in");
|
|
630
|
-
}
|
|
631
|
-
if (idIn) {
|
|
632
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...idIn].join(COLLECTION_FORMATS["csv"]), "id__in");
|
|
633
|
-
}
|
|
634
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, isBillable, "is_billable");
|
|
635
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, limit, "limit");
|
|
636
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, offset, "offset");
|
|
637
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, ordering, "ordering");
|
|
638
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, search, "search");
|
|
639
|
-
if (taskComponentIn) {
|
|
640
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskComponentIn].join(COLLECTION_FORMATS["csv"]), "task__component__in");
|
|
641
|
-
}
|
|
642
|
-
if (taskIn) {
|
|
643
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskIn].join(COLLECTION_FORMATS["csv"]), "task__in");
|
|
644
|
-
}
|
|
645
|
-
if (taskProjectClientIn) {
|
|
646
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskProjectClientIn].join(COLLECTION_FORMATS["csv"]), "task__project__client__in");
|
|
647
|
-
}
|
|
648
|
-
if (taskProjectIn) {
|
|
649
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskProjectIn].join(COLLECTION_FORMATS["csv"]), "task__project__in");
|
|
650
|
-
}
|
|
651
|
-
if (taskSprintIn) {
|
|
652
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskSprintIn].join(COLLECTION_FORMATS["csv"]), "task__sprint__in");
|
|
653
|
-
}
|
|
654
|
-
if (typeIn) {
|
|
655
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...typeIn].join(COLLECTION_FORMATS["csv"]), "type__in");
|
|
656
|
-
}
|
|
657
|
-
if (updatedByIn) {
|
|
658
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...updatedByIn].join(COLLECTION_FORMATS["csv"]), "updated_by__in");
|
|
659
|
-
}
|
|
660
|
-
if (workTypeIn) {
|
|
661
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...workTypeIn].join(COLLECTION_FORMATS["csv"]), "work_type__in");
|
|
662
|
-
}
|
|
663
|
-
let localVarHeaders = this.defaultHeaders;
|
|
664
|
-
// authentication (cookieAuth) required
|
|
665
|
-
// authentication (jwtAuth) required
|
|
666
|
-
localVarHeaders = this.configuration.addCredentialToHeaders("jwtAuth", "Authorization", localVarHeaders, "Bearer ");
|
|
667
|
-
const localVarHttpHeaderAcceptSelected = options?.httpHeaderAccept ??
|
|
668
|
-
this.configuration.selectHeaderAccept(["application/json"]);
|
|
669
|
-
if (localVarHttpHeaderAcceptSelected !== undefined) {
|
|
670
|
-
localVarHeaders = localVarHeaders.set("Accept", localVarHttpHeaderAcceptSelected);
|
|
671
|
-
}
|
|
672
|
-
const localVarHttpContext = options?.context ?? new HttpContext();
|
|
673
|
-
const localVarTransferCache = options?.transferCache ?? true;
|
|
674
|
-
let responseType_ = "json";
|
|
675
|
-
if (localVarHttpHeaderAcceptSelected) {
|
|
676
|
-
if (localVarHttpHeaderAcceptSelected.startsWith("text")) {
|
|
677
|
-
responseType_ = "text";
|
|
678
|
-
}
|
|
679
|
-
else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
|
|
680
|
-
responseType_ = "json";
|
|
681
|
-
}
|
|
682
|
-
else {
|
|
683
|
-
responseType_ = "blob";
|
|
684
|
-
}
|
|
685
|
-
}
|
|
686
|
-
let localVarPath = `/api/v1/jobs/report-hourly/`;
|
|
687
|
-
return this.httpClient.request("get", `${this.configuration.basePath}${localVarPath}`, {
|
|
688
|
-
context: localVarHttpContext,
|
|
689
|
-
params: localVarQueryParameters,
|
|
690
|
-
responseType: responseType_,
|
|
691
|
-
withCredentials: this.configuration.withCredentials,
|
|
692
|
-
headers: localVarHeaders,
|
|
693
|
-
observe: observe,
|
|
694
|
-
transferCache: localVarTransferCache,
|
|
695
|
-
reportProgress: reportProgress,
|
|
696
|
-
});
|
|
697
|
-
}
|
|
698
|
-
jobsReportUsersList(requestParameters, observe = "body", reportProgress = false, options) {
|
|
699
|
-
const billedByIn = requestParameters?.billedByIn;
|
|
700
|
-
const branchIn = requestParameters?.branchIn;
|
|
701
|
-
const createdDateGte = requestParameters?.createdDateGte;
|
|
702
|
-
const createdDateLte = requestParameters?.createdDateLte;
|
|
703
|
-
const createdGte = requestParameters?.createdGte;
|
|
704
|
-
const createdLte = requestParameters?.createdLte;
|
|
705
|
-
const createdByIn = requestParameters?.createdByIn;
|
|
706
|
-
const dateGte = requestParameters?.dateGte;
|
|
707
|
-
const dateLte = requestParameters?.dateLte;
|
|
708
|
-
const departmentId = requestParameters?.departmentId;
|
|
709
|
-
const departmentIdIn = requestParameters?.departmentIdIn;
|
|
710
|
-
const idIn = requestParameters?.idIn;
|
|
711
|
-
const isBillable = requestParameters?.isBillable;
|
|
712
|
-
const ordering = requestParameters?.ordering;
|
|
713
|
-
const search = requestParameters?.search;
|
|
714
|
-
const taskComponentIn = requestParameters?.taskComponentIn;
|
|
715
|
-
const taskIn = requestParameters?.taskIn;
|
|
716
|
-
const taskProjectClientIn = requestParameters?.taskProjectClientIn;
|
|
717
|
-
const taskProjectIn = requestParameters?.taskProjectIn;
|
|
718
|
-
const taskSprintIn = requestParameters?.taskSprintIn;
|
|
719
|
-
const timeSpan = requestParameters?.timeSpan;
|
|
720
|
-
const typeIn = requestParameters?.typeIn;
|
|
721
|
-
const updatedByIn = requestParameters?.updatedByIn;
|
|
722
|
-
const workTypeIn = requestParameters?.workTypeIn;
|
|
723
|
-
let localVarQueryParameters = new HttpParams({ encoder: this.encoder });
|
|
724
|
-
if (billedByIn) {
|
|
725
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...billedByIn].join(COLLECTION_FORMATS["csv"]), "billed_by__in");
|
|
726
|
-
}
|
|
727
|
-
if (branchIn) {
|
|
728
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...branchIn].join(COLLECTION_FORMATS["csv"]), "branch__in");
|
|
729
|
-
}
|
|
730
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdDateGte, "created__date__gte");
|
|
731
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdDateLte, "created__date__lte");
|
|
732
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdGte, "created__gte");
|
|
733
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdLte, "created__lte");
|
|
734
|
-
if (createdByIn) {
|
|
735
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...createdByIn].join(COLLECTION_FORMATS["csv"]), "created_by__in");
|
|
736
|
-
}
|
|
737
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, dateGte, "date__gte");
|
|
738
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, dateLte, "date__lte");
|
|
739
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, departmentId, "department_id");
|
|
740
|
-
if (departmentIdIn) {
|
|
741
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...departmentIdIn].join(COLLECTION_FORMATS["csv"]), "department_id__in");
|
|
742
|
-
}
|
|
743
|
-
if (idIn) {
|
|
744
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...idIn].join(COLLECTION_FORMATS["csv"]), "id__in");
|
|
745
|
-
}
|
|
746
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, isBillable, "is_billable");
|
|
747
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, ordering, "ordering");
|
|
748
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, search, "search");
|
|
749
|
-
if (taskComponentIn) {
|
|
750
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskComponentIn].join(COLLECTION_FORMATS["csv"]), "task__component__in");
|
|
751
|
-
}
|
|
752
|
-
if (taskIn) {
|
|
753
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskIn].join(COLLECTION_FORMATS["csv"]), "task__in");
|
|
754
|
-
}
|
|
755
|
-
if (taskProjectClientIn) {
|
|
756
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskProjectClientIn].join(COLLECTION_FORMATS["csv"]), "task__project__client__in");
|
|
757
|
-
}
|
|
758
|
-
if (taskProjectIn) {
|
|
759
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskProjectIn].join(COLLECTION_FORMATS["csv"]), "task__project__in");
|
|
760
|
-
}
|
|
761
|
-
if (taskSprintIn) {
|
|
762
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskSprintIn].join(COLLECTION_FORMATS["csv"]), "task__sprint__in");
|
|
763
|
-
}
|
|
764
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, timeSpan, "time_span");
|
|
765
|
-
if (typeIn) {
|
|
766
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...typeIn].join(COLLECTION_FORMATS["csv"]), "type__in");
|
|
767
|
-
}
|
|
768
|
-
if (updatedByIn) {
|
|
769
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...updatedByIn].join(COLLECTION_FORMATS["csv"]), "updated_by__in");
|
|
770
|
-
}
|
|
771
|
-
if (workTypeIn) {
|
|
772
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...workTypeIn].join(COLLECTION_FORMATS["csv"]), "work_type__in");
|
|
773
|
-
}
|
|
774
|
-
let localVarHeaders = this.defaultHeaders;
|
|
775
|
-
// authentication (cookieAuth) required
|
|
776
|
-
// authentication (jwtAuth) required
|
|
777
|
-
localVarHeaders = this.configuration.addCredentialToHeaders("jwtAuth", "Authorization", localVarHeaders, "Bearer ");
|
|
778
|
-
const localVarHttpHeaderAcceptSelected = options?.httpHeaderAccept ??
|
|
779
|
-
this.configuration.selectHeaderAccept(["application/json"]);
|
|
780
|
-
if (localVarHttpHeaderAcceptSelected !== undefined) {
|
|
781
|
-
localVarHeaders = localVarHeaders.set("Accept", localVarHttpHeaderAcceptSelected);
|
|
782
|
-
}
|
|
783
|
-
const localVarHttpContext = options?.context ?? new HttpContext();
|
|
784
|
-
const localVarTransferCache = options?.transferCache ?? true;
|
|
785
|
-
let responseType_ = "json";
|
|
786
|
-
if (localVarHttpHeaderAcceptSelected) {
|
|
787
|
-
if (localVarHttpHeaderAcceptSelected.startsWith("text")) {
|
|
788
|
-
responseType_ = "text";
|
|
789
|
-
}
|
|
790
|
-
else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
|
|
791
|
-
responseType_ = "json";
|
|
792
|
-
}
|
|
793
|
-
else {
|
|
794
|
-
responseType_ = "blob";
|
|
795
|
-
}
|
|
796
|
-
}
|
|
797
|
-
let localVarPath = `/api/v1/jobs/report-users/`;
|
|
798
|
-
return this.httpClient.request("get", `${this.configuration.basePath}${localVarPath}`, {
|
|
799
|
-
context: localVarHttpContext,
|
|
800
|
-
params: localVarQueryParameters,
|
|
801
|
-
responseType: responseType_,
|
|
802
|
-
withCredentials: this.configuration.withCredentials,
|
|
803
|
-
headers: localVarHeaders,
|
|
804
|
-
observe: observe,
|
|
805
|
-
transferCache: localVarTransferCache,
|
|
806
|
-
reportProgress: reportProgress,
|
|
807
|
-
});
|
|
808
|
-
}
|
|
809
|
-
jobsRetrieve(requestParameters, observe = "body", reportProgress = false, options) {
|
|
810
|
-
const id = requestParameters?.id;
|
|
811
|
-
if (id === null || id === undefined) {
|
|
812
|
-
throw new Error("Required parameter id was null or undefined when calling jobsRetrieve.");
|
|
813
|
-
}
|
|
814
|
-
let localVarHeaders = this.defaultHeaders;
|
|
815
|
-
// authentication (cookieAuth) required
|
|
816
|
-
// authentication (jwtAuth) required
|
|
817
|
-
localVarHeaders = this.configuration.addCredentialToHeaders("jwtAuth", "Authorization", localVarHeaders, "Bearer ");
|
|
818
|
-
const localVarHttpHeaderAcceptSelected = options?.httpHeaderAccept ??
|
|
819
|
-
this.configuration.selectHeaderAccept(["application/json"]);
|
|
820
|
-
if (localVarHttpHeaderAcceptSelected !== undefined) {
|
|
821
|
-
localVarHeaders = localVarHeaders.set("Accept", localVarHttpHeaderAcceptSelected);
|
|
822
|
-
}
|
|
823
|
-
const localVarHttpContext = options?.context ?? new HttpContext();
|
|
824
|
-
const localVarTransferCache = options?.transferCache ?? true;
|
|
825
|
-
let responseType_ = "json";
|
|
826
|
-
if (localVarHttpHeaderAcceptSelected) {
|
|
827
|
-
if (localVarHttpHeaderAcceptSelected.startsWith("text")) {
|
|
828
|
-
responseType_ = "text";
|
|
829
|
-
}
|
|
830
|
-
else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
|
|
831
|
-
responseType_ = "json";
|
|
832
|
-
}
|
|
833
|
-
else {
|
|
834
|
-
responseType_ = "blob";
|
|
835
|
-
}
|
|
836
|
-
}
|
|
837
|
-
let localVarPath = `/api/v1/jobs/${this.configuration.encodeParam({ name: "id", value: id, in: "path", style: "simple", explode: false, dataType: "number", dataFormat: undefined })}/`;
|
|
838
|
-
return this.httpClient.request("get", `${this.configuration.basePath}${localVarPath}`, {
|
|
839
|
-
context: localVarHttpContext,
|
|
840
|
-
responseType: responseType_,
|
|
841
|
-
withCredentials: this.configuration.withCredentials,
|
|
842
|
-
headers: localVarHeaders,
|
|
843
|
-
observe: observe,
|
|
844
|
-
transferCache: localVarTransferCache,
|
|
845
|
-
reportProgress: reportProgress,
|
|
846
|
-
});
|
|
847
|
-
}
|
|
848
|
-
jobsStatsRetrieve(requestParameters, observe = "body", reportProgress = false, options) {
|
|
849
|
-
const billedByIn = requestParameters?.billedByIn;
|
|
850
|
-
const branchIn = requestParameters?.branchIn;
|
|
851
|
-
const createdDateGte = requestParameters?.createdDateGte;
|
|
852
|
-
const createdDateLte = requestParameters?.createdDateLte;
|
|
853
|
-
const createdGte = requestParameters?.createdGte;
|
|
854
|
-
const createdLte = requestParameters?.createdLte;
|
|
855
|
-
const createdByIn = requestParameters?.createdByIn;
|
|
856
|
-
const dateGte = requestParameters?.dateGte;
|
|
857
|
-
const dateLte = requestParameters?.dateLte;
|
|
858
|
-
const departmentId = requestParameters?.departmentId;
|
|
859
|
-
const departmentIdIn = requestParameters?.departmentIdIn;
|
|
860
|
-
const idIn = requestParameters?.idIn;
|
|
861
|
-
const isBillable = requestParameters?.isBillable;
|
|
862
|
-
const ordering = requestParameters?.ordering;
|
|
863
|
-
const search = requestParameters?.search;
|
|
864
|
-
const taskComponentIn = requestParameters?.taskComponentIn;
|
|
865
|
-
const taskIn = requestParameters?.taskIn;
|
|
866
|
-
const taskProjectClientIn = requestParameters?.taskProjectClientIn;
|
|
867
|
-
const taskProjectIn = requestParameters?.taskProjectIn;
|
|
868
|
-
const taskSprintIn = requestParameters?.taskSprintIn;
|
|
869
|
-
const typeIn = requestParameters?.typeIn;
|
|
870
|
-
const updatedByIn = requestParameters?.updatedByIn;
|
|
871
|
-
const workTypeIn = requestParameters?.workTypeIn;
|
|
872
|
-
let localVarQueryParameters = new HttpParams({ encoder: this.encoder });
|
|
873
|
-
if (billedByIn) {
|
|
874
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...billedByIn].join(COLLECTION_FORMATS["csv"]), "billed_by__in");
|
|
875
|
-
}
|
|
876
|
-
if (branchIn) {
|
|
877
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...branchIn].join(COLLECTION_FORMATS["csv"]), "branch__in");
|
|
878
|
-
}
|
|
879
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdDateGte, "created__date__gte");
|
|
880
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdDateLte, "created__date__lte");
|
|
881
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdGte, "created__gte");
|
|
882
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, createdLte, "created__lte");
|
|
883
|
-
if (createdByIn) {
|
|
884
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...createdByIn].join(COLLECTION_FORMATS["csv"]), "created_by__in");
|
|
885
|
-
}
|
|
886
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, dateGte, "date__gte");
|
|
887
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, dateLte, "date__lte");
|
|
888
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, departmentId, "department_id");
|
|
889
|
-
if (departmentIdIn) {
|
|
890
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...departmentIdIn].join(COLLECTION_FORMATS["csv"]), "department_id__in");
|
|
891
|
-
}
|
|
892
|
-
if (idIn) {
|
|
893
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...idIn].join(COLLECTION_FORMATS["csv"]), "id__in");
|
|
894
|
-
}
|
|
895
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, isBillable, "is_billable");
|
|
896
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, ordering, "ordering");
|
|
897
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, search, "search");
|
|
898
|
-
if (taskComponentIn) {
|
|
899
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskComponentIn].join(COLLECTION_FORMATS["csv"]), "task__component__in");
|
|
900
|
-
}
|
|
901
|
-
if (taskIn) {
|
|
902
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskIn].join(COLLECTION_FORMATS["csv"]), "task__in");
|
|
903
|
-
}
|
|
904
|
-
if (taskProjectClientIn) {
|
|
905
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskProjectClientIn].join(COLLECTION_FORMATS["csv"]), "task__project__client__in");
|
|
906
|
-
}
|
|
907
|
-
if (taskProjectIn) {
|
|
908
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskProjectIn].join(COLLECTION_FORMATS["csv"]), "task__project__in");
|
|
909
|
-
}
|
|
910
|
-
if (taskSprintIn) {
|
|
911
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...taskSprintIn].join(COLLECTION_FORMATS["csv"]), "task__sprint__in");
|
|
912
|
-
}
|
|
913
|
-
if (typeIn) {
|
|
914
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...typeIn].join(COLLECTION_FORMATS["csv"]), "type__in");
|
|
915
|
-
}
|
|
916
|
-
if (updatedByIn) {
|
|
917
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...updatedByIn].join(COLLECTION_FORMATS["csv"]), "updated_by__in");
|
|
918
|
-
}
|
|
919
|
-
if (workTypeIn) {
|
|
920
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, [...workTypeIn].join(COLLECTION_FORMATS["csv"]), "work_type__in");
|
|
921
|
-
}
|
|
922
|
-
let localVarHeaders = this.defaultHeaders;
|
|
923
|
-
// authentication (cookieAuth) required
|
|
924
|
-
// authentication (jwtAuth) required
|
|
925
|
-
localVarHeaders = this.configuration.addCredentialToHeaders("jwtAuth", "Authorization", localVarHeaders, "Bearer ");
|
|
926
|
-
const localVarHttpHeaderAcceptSelected = options?.httpHeaderAccept ??
|
|
927
|
-
this.configuration.selectHeaderAccept(["application/json"]);
|
|
928
|
-
if (localVarHttpHeaderAcceptSelected !== undefined) {
|
|
929
|
-
localVarHeaders = localVarHeaders.set("Accept", localVarHttpHeaderAcceptSelected);
|
|
930
|
-
}
|
|
931
|
-
const localVarHttpContext = options?.context ?? new HttpContext();
|
|
932
|
-
const localVarTransferCache = options?.transferCache ?? true;
|
|
933
|
-
let responseType_ = "json";
|
|
934
|
-
if (localVarHttpHeaderAcceptSelected) {
|
|
935
|
-
if (localVarHttpHeaderAcceptSelected.startsWith("text")) {
|
|
936
|
-
responseType_ = "text";
|
|
937
|
-
}
|
|
938
|
-
else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
|
|
939
|
-
responseType_ = "json";
|
|
940
|
-
}
|
|
941
|
-
else {
|
|
942
|
-
responseType_ = "blob";
|
|
943
|
-
}
|
|
944
|
-
}
|
|
945
|
-
let localVarPath = `/api/v1/jobs/stats/`;
|
|
946
|
-
return this.httpClient.request("get", `${this.configuration.basePath}${localVarPath}`, {
|
|
947
|
-
context: localVarHttpContext,
|
|
948
|
-
params: localVarQueryParameters,
|
|
949
|
-
responseType: responseType_,
|
|
950
|
-
withCredentials: this.configuration.withCredentials,
|
|
951
|
-
headers: localVarHeaders,
|
|
952
|
-
observe: observe,
|
|
953
|
-
transferCache: localVarTransferCache,
|
|
954
|
-
reportProgress: reportProgress,
|
|
955
|
-
});
|
|
956
|
-
}
|
|
957
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: JobsApiService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: i2.Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
958
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: JobsApiService, providedIn: "root" });
|
|
959
|
-
}
|
|
960
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: JobsApiService, decorators: [{
|
|
961
|
-
type: Injectable,
|
|
962
|
-
args: [{
|
|
963
|
-
providedIn: "root",
|
|
964
|
-
}]
|
|
965
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
|
966
|
-
type: Optional
|
|
967
|
-
}, {
|
|
968
|
-
type: Inject,
|
|
969
|
-
args: [BASE_PATH]
|
|
970
|
-
}] }, { type: i2.Configuration, decorators: [{
|
|
971
|
-
type: Optional
|
|
972
|
-
}] }] });
|
|
973
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9icy1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FwaS9qb2JzLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBQ0gsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBR0wsVUFBVSxFQUlWLFdBQVcsR0FDWixNQUFNLHNCQUFzQixDQUFDO0FBcUQ5QixhQUFhO0FBQ2IsT0FBTyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFpQmxELE1BQU0sT0FBTyxjQUNYLFNBQVEsV0FBVztJQUlQO0lBRFosWUFDWSxVQUFzQixFQUNELFFBQTJCLEVBQzlDLGFBQTZCO1FBRXpDLEtBQUssQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFKckIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUtsQyxDQUFDO0lBc0NNLHFCQUFxQixDQUMxQixpQkFBcUQsRUFDckQsVUFBZSxNQUFNLEVBQ3JCLGlCQUEwQixLQUFLLEVBQy9CLE9BSUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxpQkFBaUIsRUFBRSxRQUFRLENBQUM7UUFDN0MsSUFBSSxRQUFRLEtBQUssSUFBSSxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoRCxNQUFNLElBQUksS0FBSyxDQUNiLHVGQUF1RixDQUN4RixDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLGlCQUFpQixFQUFFLFVBQVUsQ0FBQztRQUNqRCxNQUFNLFFBQVEsR0FBRyxpQkFBaUIsRUFBRSxRQUFRLENBQUM7UUFDN0MsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLEVBQUUsY0FBYyxDQUFDO1FBQ3pELE1BQU0sY0FB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QUFFLENBQUM7Z0JBQ3hELGFBQWEsR0FBRyxNQUFNLENBQUM7WUFDekIsQ0FBQztpQkFBTSxJQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLGdDQUFnQyxDQUFDLEVBQy9ELENBQUM7Z0JBQ0QsYUFBYSxHQUFHLE1BQU0sQ0FBQztZQUN6QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sYUFBYSxHQUFHLE1BQU0sQ0FBQztZQUN6QixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksWUFBWSxHQUFHLHFCQUFxQixDQUFDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQzVCLEtBQUssRUFDTCxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLFlBQVksRUFBRSxFQUMvQztZQUNFLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsTUFBTSxFQUFFLHVCQUF1QjtZQUMvQixZQUFZLEVBQU8sYUFBYTtZQUNoQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlO1lBQ25ELE9BQU8sRUFBRSxlQUFlO1lBQ3hCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLGFBQWEsRUFBRSxxQkFBcUI7WUFDcEMsY0FBYyxFQUFFLGNBQWM7U0FDL0IsQ0FDRixDQUFDO0lBQ0osQ0FBQzt3R0ExeEVVLGNBQWMsNENBTUgsU0FBUzs0R0FOcEIsY0FBYyxjQUZiLE1BQU07OzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFPSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFNBQVM7OzBCQUM1QixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWxtYXIgQXBpXG4gKlxuICpcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpLlxuICogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cbi8qIHRzbGludDpkaXNhYmxlOm5vLXVudXNlZC12YXJpYWJsZSBtZW1iZXItb3JkZXJpbmcgKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBIdHRwQ2xpZW50LFxuICBIdHRwSGVhZGVycyxcbiAgSHR0cFBhcmFtcyxcbiAgSHR0cFJlc3BvbnNlLFxuICBIdHRwRXZlbnQsXG4gIEh0dHBQYXJhbWV0ZXJDb2RlYyxcbiAgSHR0cENvbnRleHQsXG59IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgQ3VzdG9tSHR0cFBhcmFtZXRlckNvZGVjIH0gZnJvbSBcIi4uL2VuY29kZXJcIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuXG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBCaWxsYWJsZUNoYXJ0RHRvIH0gZnJvbSBcIi4uL21vZGVsL2JpbGxhYmxlLWNoYXJ0LmR0b1wiO1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgRXJyb3JSZXNwb25zZTQwMUR0byB9IGZyb20gXCIuLi9tb2RlbC9lcnJvci1yZXNwb25zZTQwMS5kdG9cIjtcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEVycm9yUmVzcG9uc2U0MDREdG8gfSBmcm9tIFwiLi4vbW9kZWwvZXJyb3ItcmVzcG9uc2U0MDQuZHRvXCI7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBFcnJvclJlc3BvbnNlNDA1RHRvIH0gZnJvbSBcIi4uL21vZGVsL2Vycm9yLXJlc3BvbnNlNDA1LmR0b1wiO1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgRXJyb3JSZXNwb25zZTQwNkR0byB9IGZyb20gXCIuLi9tb2RlbC9lcnJvci1yZXNwb25zZTQwNi5kdG9cIjtcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEVycm9yUmVzcG9uc2U0MTVEdG8gfSBmcm9tIFwiLi4vbW9kZWwvZXJyb3ItcmVzcG9uc2U0MTUuZHRvXCI7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBFcnJvclJlc3BvbnNlNTAwRHRvIH0gZnJvbSBcIi4uL21vZGVsL2Vycm9yLXJlc3BvbnNlNTAwLmR0b1wiO1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgSm9iRHRvIH0gZnJvbSBcIi4uL21vZGVsL2pvYi5kdG9cIjtcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEpvYlJlcG9ydERlcGFydG1lbnREdG8gfSBmcm9tIFwiLi4vbW9kZWwvam9iLXJlcG9ydC1kZXBhcnRtZW50LmR0b1wiO1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgSm9iUmVwb3J0VXNlckR0byB9IGZyb20gXCIuLi9tb2RlbC9qb2ItcmVwb3J0LXVzZXIuZHRvXCI7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBKb2JTdGF0c0R0byB9IGZyb20gXCIuLi9tb2RlbC9qb2Itc3RhdHMuZHRvXCI7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBKb2JzQmlsbGFibGVDaGFydExpc3RFcnJvclJlc3BvbnNlNDAwRHRvIH0gZnJvbSBcIi4uL21vZGVsL2pvYnMtYmlsbGFibGUtY2hhcnQtbGlzdC1lcnJvci1yZXNwb25zZTQwMC5kdG9cIjtcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEpvYnNMaXN0RXJyb3JSZXNwb25zZTQwMER0byB9IGZyb20gXCIuLi9tb2RlbC9qb2JzLWxpc3QtZXJyb3ItcmVzcG9uc2U0MDAuZHRvXCI7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBKb2JzT3ZlcnNlYUNoYXJ0TGlzdEVycm9yUmVzcG9uc2U0MDBEdG8gfSBmcm9tIFwiLi4vbW9kZWwvam9icy1vdmVyc2VhLWNoYXJ0LWxpc3QtZXJyb3ItcmVzcG9uc2U0MDAuZHRvXCI7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBKb2JzUHJvZHVjdGlvbkNoYXJ0TGlzdEVycm9yUmVzcG9uc2U0MDBEdG8gfSBmcm9tIFwiLi4vbW9kZWwvam9icy1wcm9kdWN0aW9uLWNoYXJ0LWxpc3QtZXJyb3ItcmVzcG9uc2U0MDAuZHRvXCI7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBKb2JzUmVwb3J0RGVwYXJ0bWVudHNMaXN0RXJyb3JSZXNwb25zZTQwMER0byB9IGZyb20gXCIuLi9tb2RlbC9qb2JzLXJlcG9ydC1kZXBhcnRtZW50cy1saXN0LWVycm9yLXJlc3BvbnNlNDAwLmR0b1wiO1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgSm9ic1JlcG9ydEhvdXJseUxpc3RFcnJvclJlc3BvbnNlNDAwRHRvIH0gZnJvbSBcIi4uL21vZGVsL2pvYnMtcmVwb3J0LWhvdXJseS1saXN0LWVycm9yLXJlc3BvbnNlNDAwLmR0b1wiO1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgSm9ic1JlcG9ydFVzZXJzTGlzdEVycm9yUmVzcG9uc2U0MDBEdG8gfSBmcm9tIFwiLi4vbW9kZWwvam9icy1yZXBvcnQtdXNlcnMtbGlzdC1lcnJvci1yZXNwb25zZTQwMC5kdG9cIjtcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEpvYnNSZXRyaWV2ZUVycm9yUmVzcG9uc2U0MDBEdG8gfSBmcm9tIFwiLi4vbW9kZWwvam9icy1yZXRyaWV2ZS1lcnJvci1yZXNwb25zZTQwMC5kdG9cIjtcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEpvYnNTdGF0c1JldHJpZXZlRXJyb3JSZXNwb25zZTQwMER0byB9IGZyb20gXCIuLi9tb2RlbC9qb2JzLXN0YXRzLXJldHJpZXZlLWVycm9yLXJlc3BvbnNlNDAwLmR0b1wiO1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgT3ZlcnNlYUNoYXJ0RHRvIH0gZnJvbSBcIi4uL21vZGVsL292ZXJzZWEtY2hhcnQuZHRvXCI7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBQYWdpbmF0ZWRKb2JMaXN0RHRvIH0gZnJvbSBcIi4uL21vZGVsL3BhZ2luYXRlZC1qb2ItbGlzdC5kdG9cIjtcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IFBhZ2luYXRlZEpvYlJlcG9ydEhvdXJseUxpc3REdG8gfSBmcm9tIFwiLi4vbW9kZWwvcGFnaW5hdGVkLWpvYi1yZXBvcnQtaG91cmx5LWxpc3QuZHRvXCI7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBQcm9kdWN0aW9uQ2hhcnREdG8gfSBmcm9tIFwiLi4vbW9kZWwvcHJvZHVjdGlvbi1jaGFydC5kdG9cIjtcblxuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgQkFTRV9QQVRILCBDT0xMRUNUSU9OX0ZPUk1BVFMgfSBmcm9tIFwiLi4vdmFyaWFibGVzXCI7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4uL2NvbmZpZ3VyYXRpb25cIjtcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSBcIi4uL2FwaS5iYXNlLnNlcnZpY2VcIjtcbmltcG9ydCB7XG4gIEpvYnNBcGlTZXJ2aWNlSW50ZXJmYWNlLFxuICBKb2JzQmlsbGFibGVDaGFydExpc3RSZXF1ZXN0UGFyYW1zLFxuICBKb2JzTGlzdFJlcXVlc3RQYXJhbXMsXG4gIEpvYnNPdmVyc2VhQ2hhcnRMaXN0UmVxdWVzdFBhcmFtcyxcbiAgSm9ic1Byb2R1Y3Rpb25DaGFydExpc3RSZXF1ZXN0UGFyYW1zLFxuICBKb2JzUmVwb3J0RGVwYXJ0bWVudHNMaXN0UmVxdWVzdFBhcmFtcyxcbiAgSm9ic1JlcG9ydEhvdXJseUxpc3RSZXF1ZXN0UGFyYW1zLFxuICBKb2JzUmVwb3J0VXNlcnNMaXN0UmVxdWVzdFBhcmFtcyxcbiAgSm9ic1JldHJpZXZlUmVxdWVzdFBhcmFtcyxcbiAgSm9ic1N0YXRzUmV0cmlldmVSZXF1ZXN0UGFyYW1zLFxufSBmcm9tIFwiLi9qb2JzLWFwaS5zZXJ2aWNlSW50ZXJmYWNlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXG59KVxuZXhwb3J0IGNsYXNzIEpvYnNBcGlTZXJ2aWNlXG4gIGV4dGVuZHMgQmFzZVNlcnZpY2VcbiAgaW1wbGVtZW50cyBKb2JzQXBpU2VydmljZUludGVyZmFjZVxue1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEJBU0VfUEFUSCkgYmFzZVBhdGg6IHN0cmluZyB8IHN0cmluZ1tdLFxuICAgIEBPcHRpb25hbCgpIGNvbmZpZ3VyYXRpb24/OiBDb25maWd1cmF0aW9uLFxuICApIHtcbiAgICBzdXBlcihiYXNlUGF0aCwgY29uZmlndXJhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGJpbGxhYmxlIGNoYXJ0LiAgSXQgd2lsbCByZXR1cm4gYmlsbGFibGUsIHVuYmlsbGFibGUgYW5kIHRvdGFsIGJpbGxlZCB0aW1lIGZvciBlYWNoIHRpbWUgc3Bhbi5cbiAgICogQHBhcmFtIHJlcXVlc3RQYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICovXG4gIHB1YmxpYyBqb2JzQmlsbGFibGVDaGFydExpc3QoXG4gICAgcmVxdWVzdFBhcmFtZXRlcnM6IEpvYnNCaWxsYWJsZUNoYXJ0TGlzdFJlcXVlc3RQYXJhbXMsXG4gICAgb2JzZXJ2ZT86IFwiYm9keVwiLFxuICAgIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbixcbiAgICBvcHRpb25zPzoge1xuICAgICAgaHR0cEhlYWRlckFjY2VwdD86IFwiYXBwbGljYXRpb24vanNvblwiO1xuICAgICAgY29udGV4dD86IEh0dHBDb250ZXh0O1xuICAgICAgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW47XG4gICAgfSxcbiAgKTogT2JzZXJ2YWJsZTxBcnJheTxCaWxsYWJsZUNoYXJ0RHRvPj47XG4gIHB1YmxpYyBqb2JzQmlsbGFibGVDaGFydExpc3QoXG4gICAgcmVxdWVzdFBhcmFtZXRlcnM6IEpvYnNCaWxsYWJsZUNoYXJ0TGlzdFJlcXVlc3RQYXJhbXMsXG4gICAgb2JzZXJ2ZT86IFwicmVzcG9uc2VcIixcbiAgICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGh0dHBIZWFkZXJBY2NlcHQ/OiBcImFwcGxpY2F0aW9uL2pzb25cIjtcbiAgICAgIGNvbnRleHQ/OiBIdHRwQ29udGV4dDtcbiAgICAgIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFuO1xuICAgIH0sXG4gICk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEFycmF5PEJpbGxhYmxlQ2hhcnREdG8+Pj47XG4gIHB1YmxpYyBqb2JzQmlsbGFibGVDaGFydExpc3QoXG4gICAgcmVxdWVzdFBhcmFtZXRlcnM6IEpvYnNCaWxsYWJsZUNoYXJ0TGlzdFJlcXVlc3RQYXJhbXMsXG4gICAgb2JzZXJ2ZT86IFwiZXZlbnRzXCIsXG4gICAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBodHRwSGVhZGVyQWNjZXB0PzogXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgICBjb250ZXh0PzogSHR0cENvbnRleHQ7XG4gICAgICB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbjtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxBcnJheTxCaWxsYWJsZUNoYXJ0RHRvPj4+O1xuICBwdWJsaWMgam9ic0JpbGxhYmxlQ2hhcnRMaXN0KFxuICAgIHJlcXVlc3RQYXJhbWV0ZXJzOiBKb2JzQmlsbGFibGVDaGFydExpc3RSZXF1ZXN0UGFyYW1zLFxuICAgIG9ic2VydmU6IGFueSA9IFwiYm9keVwiLFxuICAgIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGh0dHBIZWFkZXJBY2NlcHQ/OiBcImFwcGxpY2F0aW9uL2pzb25cIjtcbiAgICAgIGNvbnRleHQ/OiBIdHRwQ29udGV4dDtcbiAgICAgIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFuO1xuICAgIH0sXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdGltZVNwYW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udGltZVNwYW47XG4gICAgaWYgKHRpbWVTcGFuID09PSBudWxsIHx8IHRpbWVTcGFuID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJSZXF1aXJlZCBwYXJhbWV0ZXIgdGltZVNwYW4gd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBqb2JzQmlsbGFibGVDaGFydExpc3QuXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBiaWxsZWRCeUluID0gcmVxdWVzdFBhcmFtZXRlcnM/LmJpbGxlZEJ5SW47XG4gICAgY29uc3QgYnJhbmNoSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8uYnJhbmNoSW47XG4gICAgY29uc3QgY3JlYXRlZERhdGVHdGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uY3JlYXRlZERhdGVHdGU7XG4gICAgY29uc3QgY3JlYXRlZERhdGVMdGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uY3JlYXRlZERhdGVMdGU7XG4gICAgY29uc3QgY3JlYXRlZEd0ZSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5jcmVhdGVkR3RlO1xuICAgIGNvbnN0IGNyZWF0ZWRMdGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uY3JlYXRlZEx0ZTtcbiAgICBjb25zdCBjcmVhdGVkQnlJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5jcmVhdGVkQnlJbjtcbiAgICBjb25zdCBkYXRlR3RlID0gcmVxdWVzdFBhcmFtZXRlcnM/LmRhdGVHdGU7XG4gICAgY29uc3QgZGF0ZUx0ZSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5kYXRlTHRlO1xuICAgIGNvbnN0IGRlcGFydG1lbnRJZCA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5kZXBhcnRtZW50SWQ7XG4gICAgY29uc3QgZGVwYXJ0bWVudElkSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8uZGVwYXJ0bWVudElkSW47XG4gICAgY29uc3QgaWRJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5pZEluO1xuICAgIGNvbnN0IGlzQmlsbGFibGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uaXNCaWxsYWJsZTtcbiAgICBjb25zdCBzZWFyY2ggPSByZXF1ZXN0UGFyYW1ldGVycz8uc2VhcmNoO1xuICAgIGNvbnN0IHRhc2tDb21wb25lbnRJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy50YXNrQ29tcG9uZW50SW47XG4gICAgY29uc3QgdGFza0luID0gcmVxdWVzdFBhcmFtZXRlcnM/LnRhc2tJbjtcbiAgICBjb25zdCB0YXNrUHJvamVjdENsaWVudEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnRhc2tQcm9qZWN0Q2xpZW50SW47XG4gICAgY29uc3QgdGFza1Byb2plY3RJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy50YXNrUHJvamVjdEluO1xuICAgIGNvbnN0IHRhc2tTcHJpbnRJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy50YXNrU3ByaW50SW47XG4gICAgY29uc3QgdHlwZUluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnR5cGVJbjtcbiAgICBjb25zdCB1cGRhdGVkQnlJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy51cGRhdGVkQnlJbjtcbiAgICBjb25zdCB3b3JrVHlwZUluID0gcmVxdWVzdFBhcmFtZXRlcnM/LndvcmtUeXBlSW47XG5cbiAgICBsZXQgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcyh7IGVuY29kZXI6IHRoaXMuZW5jb2RlciB9KTtcbiAgICBpZiAoYmlsbGVkQnlJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi5iaWxsZWRCeUluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwiYmlsbGVkX2J5X19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKGJyYW5jaEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLmJyYW5jaEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwiYnJhbmNoX19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5jcmVhdGVkRGF0ZUd0ZSxcbiAgICAgIFwiY3JlYXRlZF9fZGF0ZV9fZ3RlXCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmNyZWF0ZWREYXRlTHRlLFxuICAgICAgXCJjcmVhdGVkX19kYXRlX19sdGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+Y3JlYXRlZEd0ZSxcbiAgICAgIFwiY3JlYXRlZF9fZ3RlXCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmNyZWF0ZWRMdGUsXG4gICAgICBcImNyZWF0ZWRfX2x0ZVwiLFxuICAgICk7XG4gICAgaWYgKGNyZWF0ZWRCeUluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLmNyZWF0ZWRCeUluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwiY3JlYXRlZF9ieV9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+ZGF0ZUd0ZSxcbiAgICAgIFwiZGF0ZV9fZ3RlXCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmRhdGVMdGUsXG4gICAgICBcImRhdGVfX2x0ZVwiLFxuICAgICk7XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5kZXBhcnRtZW50SWQsXG4gICAgICBcImRlcGFydG1lbnRfaWRcIixcbiAgICApO1xuICAgIGlmIChkZXBhcnRtZW50SWRJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi5kZXBhcnRtZW50SWRJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcImRlcGFydG1lbnRfaWRfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoaWRJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi5pZEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwiaWRfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmlzQmlsbGFibGUsXG4gICAgICBcImlzX2JpbGxhYmxlXCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PnNlYXJjaCxcbiAgICAgIFwic2VhcmNoXCIsXG4gICAgKTtcbiAgICBpZiAodGFza0NvbXBvbmVudEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnRhc2tDb21wb25lbnRJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInRhc2tfX2NvbXBvbmVudF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0YXNrSW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4udGFza0luXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidGFza19faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0YXNrUHJvamVjdENsaWVudEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnRhc2tQcm9qZWN0Q2xpZW50SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJ0YXNrX19wcm9qZWN0X19jbGllbnRfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGFza1Byb2plY3RJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi50YXNrUHJvamVjdEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidGFza19fcHJvamVjdF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0YXNrU3ByaW50SW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4udGFza1NwcmludEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidGFza19fc3ByaW50X19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT50aW1lU3BhbixcbiAgICAgIFwidGltZV9zcGFuXCIsXG4gICAgKTtcbiAgICBpZiAodHlwZUluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnR5cGVJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInR5cGVfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodXBkYXRlZEJ5SW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4udXBkYXRlZEJ5SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJ1cGRhdGVkX2J5X19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHdvcmtUeXBlSW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4ud29ya1R5cGVJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcIndvcmtfdHlwZV9faW5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IGxvY2FsVmFySGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG5cbiAgICAvLyBhdXRoZW50aWNhdGlvbiAoY29va2llQXV0aCkgcmVxdWlyZWRcblxuICAgIC8vIGF1dGhlbnRpY2F0aW9uIChqd3RBdXRoKSByZXF1aXJlZFxuICAgIGxvY2FsVmFySGVhZGVycyA9IHRoaXMuY29uZmlndXJhdGlvbi5hZGRDcmVkZW50aWFsVG9IZWFkZXJzKFxuICAgICAgXCJqd3RBdXRoXCIsXG4gICAgICBcIkF1dGhvcml6YXRpb25cIixcbiAgICAgIGxvY2FsVmFySGVhZGVycyxcbiAgICAgIFwiQmVhcmVyIFwiLFxuICAgICk7XG5cbiAgICBjb25zdCBsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID1cbiAgICAgIG9wdGlvbnM/Lmh0dHBIZWFkZXJBY2NlcHQgPz9cbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoW1wiYXBwbGljYXRpb24vanNvblwiXSk7XG4gICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGxvY2FsVmFySGVhZGVycyA9IGxvY2FsVmFySGVhZGVycy5zZXQoXG4gICAgICAgIFwiQWNjZXB0XCIsXG4gICAgICAgIGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2NhbFZhckh0dHBDb250ZXh0OiBIdHRwQ29udGV4dCA9XG4gICAgICBvcHRpb25zPy5jb250ZXh0ID8/IG5ldyBIdHRwQ29udGV4dCgpO1xuXG4gICAgY29uc3QgbG9jYWxWYXJUcmFuc2ZlckNhY2hlOiBib29sZWFuID0gb3B0aW9ucz8udHJhbnNmZXJDYWNoZSA/PyB0cnVlO1xuXG4gICAgbGV0IHJlc3BvbnNlVHlwZV86IFwidGV4dFwiIHwgXCJqc29uXCIgfCBcImJsb2JcIiA9IFwianNvblwiO1xuICAgIGlmIChsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCkge1xuICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkLnN0YXJ0c1dpdGgoXCJ0ZXh0XCIpKSB7XG4gICAgICAgIHJlc3BvbnNlVHlwZV8gPSBcInRleHRcIjtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5pc0pzb25NaW1lKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKVxuICAgICAgKSB7XG4gICAgICAgIHJlc3BvbnNlVHlwZV8gPSBcImpzb25cIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3BvbnNlVHlwZV8gPSBcImJsb2JcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgbG9jYWxWYXJQYXRoID0gYC9hcGkvdjEvam9icy9iaWxsYWJsZS1jaGFydC9gO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxBcnJheTxCaWxsYWJsZUNoYXJ0RHRvPj4oXG4gICAgICBcImdldFwiLFxuICAgICAgYCR7dGhpcy5jb25maWd1cmF0aW9uLmJhc2VQYXRofSR7bG9jYWxWYXJQYXRofWAsXG4gICAgICB7XG4gICAgICAgIGNvbnRleHQ6IGxvY2FsVmFySHR0cENvbnRleHQsXG4gICAgICAgIHBhcmFtczogbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIHJlc3BvbnNlVHlwZTogPGFueT5yZXNwb25zZVR5cGVfLFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgIGhlYWRlcnM6IGxvY2FsVmFySGVhZGVycyxcbiAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgdHJhbnNmZXJDYWNoZTogbG9jYWxWYXJUcmFuc2ZlckNhY2hlLFxuICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3MsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQXBpIHZpZXdzZXQgZm9yIEpvYiBtb2RlbC5cbiAgICogQHBhcmFtIHJlcXVlc3RQYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICovXG4gIHB1YmxpYyBqb2JzTGlzdChcbiAgICByZXF1ZXN0UGFyYW1ldGVycz86IEpvYnNMaXN0UmVxdWVzdFBhcmFtcyxcbiAgICBvYnNlcnZlPzogXCJib2R5XCIsXG4gICAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBodHRwSGVhZGVyQWNjZXB0PzogXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgICBjb250ZXh0PzogSHR0cENvbnRleHQ7XG4gICAgICB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbjtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPFBhZ2luYXRlZEpvYkxpc3REdG8+O1xuICBwdWJsaWMgam9ic0xpc3QoXG4gICAgcmVxdWVzdFBhcmFtZXRlcnM/OiBKb2JzTGlzdFJlcXVlc3RQYXJhbXMsXG4gICAgb2JzZXJ2ZT86IFwicmVzcG9uc2VcIixcbiAgICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGh0dHBIZWFkZXJBY2NlcHQ/OiBcImFwcGxpY2F0aW9uL2pzb25cIjtcbiAgICAgIGNvbnRleHQ/OiBIdHRwQ29udGV4dDtcbiAgICAgIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFuO1xuICAgIH0sXG4gICk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPFBhZ2luYXRlZEpvYkxpc3REdG8+PjtcbiAgcHVibGljIGpvYnNMaXN0KFxuICAgIHJlcXVlc3RQYXJhbWV0ZXJzPzogSm9ic0xpc3RSZXF1ZXN0UGFyYW1zLFxuICAgIG9ic2VydmU/OiBcImV2ZW50c1wiLFxuICAgIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbixcbiAgICBvcHRpb25zPzoge1xuICAgICAgaHR0cEhlYWRlckFjY2VwdD86IFwiYXBwbGljYXRpb24vanNvblwiO1xuICAgICAgY29udGV4dD86IEh0dHBDb250ZXh0O1xuICAgICAgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW47XG4gICAgfSxcbiAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8UGFnaW5hdGVkSm9iTGlzdER0bz4+O1xuICBwdWJsaWMgam9ic0xpc3QoXG4gICAgcmVxdWVzdFBhcmFtZXRlcnM/OiBKb2JzTGlzdFJlcXVlc3RQYXJhbXMsXG4gICAgb2JzZXJ2ZTogYW55ID0gXCJib2R5XCIsXG4gICAgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBvcHRpb25zPzoge1xuICAgICAgaHR0cEhlYWRlckFjY2VwdD86IFwiYXBwbGljYXRpb24vanNvblwiO1xuICAgICAgY29udGV4dD86IEh0dHBDb250ZXh0O1xuICAgICAgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW47XG4gICAgfSxcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBiaWxsZWRCeUluID0gcmVxdWVzdFBhcmFtZXRlcnM/LmJpbGxlZEJ5SW47XG4gICAgY29uc3QgYnJhbmNoSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8uYnJhbmNoSW47XG4gICAgY29uc3QgY3JlYXRlZERhdGVHdGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uY3JlYXRlZERhdGVHdGU7XG4gICAgY29uc3QgY3JlYXRlZERhdGVMdGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uY3JlYXRlZERhdGVMdGU7XG4gICAgY29uc3QgY3JlYXRlZEd0ZSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5jcmVhdGVkR3RlO1xuICAgIGNvbnN0IGNyZWF0ZWRMdGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uY3JlYXRlZEx0ZTtcbiAgICBjb25zdCBjcmVhdGVkQnlJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5jcmVhdGVkQnlJbjtcbiAgICBjb25zdCBkYXRlR3RlID0gcmVxdWVzdFBhcmFtZXRlcnM/LmRhdGVHdGU7XG4gICAgY29uc3QgZGF0ZUx0ZSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5kYXRlTHRlO1xuICAgIGNvbnN0IGRlcGFydG1lbnRJZCA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5kZXBhcnRtZW50SWQ7XG4gICAgY29uc3QgZGVwYXJ0bWVudElkSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8uZGVwYXJ0bWVudElkSW47XG4gICAgY29uc3QgaWRJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5pZEluO1xuICAgIGNvbnN0IGlzQmlsbGFibGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uaXNCaWxsYWJsZTtcbiAgICBjb25zdCBsaW1pdCA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5saW1pdDtcbiAgICBjb25zdCBvZmZzZXQgPSByZXF1ZXN0UGFyYW1ldGVycz8ub2Zmc2V0O1xuICAgIGNvbnN0IG9yZGVyaW5nID0gcmVxdWVzdFBhcmFtZXRlcnM/Lm9yZGVyaW5nO1xuICAgIGNvbnN0IHNlYXJjaCA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5zZWFyY2g7XG4gICAgY29uc3QgdGFza0NvbXBvbmVudEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnRhc2tDb21wb25lbnRJbjtcbiAgICBjb25zdCB0YXNrSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udGFza0luO1xuICAgIGNvbnN0IHRhc2tQcm9qZWN0Q2xpZW50SW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udGFza1Byb2plY3RDbGllbnRJbjtcbiAgICBjb25zdCB0YXNrUHJvamVjdEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnRhc2tQcm9qZWN0SW47XG4gICAgY29uc3QgdGFza1NwcmludEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnRhc2tTcHJpbnRJbjtcbiAgICBjb25zdCB0eXBlSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udHlwZUluO1xuICAgIGNvbnN0IHVwZGF0ZWRCeUluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnVwZGF0ZWRCeUluO1xuICAgIGNvbnN0IHdvcmtUeXBlSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8ud29ya1R5cGVJbjtcblxuICAgIGxldCBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKHsgZW5jb2RlcjogdGhpcy5lbmNvZGVyIH0pO1xuICAgIGlmIChiaWxsZWRCeUluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLmJpbGxlZEJ5SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJiaWxsZWRfYnlfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoYnJhbmNoSW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4uYnJhbmNoSW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJicmFuY2hfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmNyZWF0ZWREYXRlR3RlLFxuICAgICAgXCJjcmVhdGVkX19kYXRlX19ndGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+Y3JlYXRlZERhdGVMdGUsXG4gICAgICBcImNyZWF0ZWRfX2RhdGVfX2x0ZVwiLFxuICAgICk7XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5jcmVhdGVkR3RlLFxuICAgICAgXCJjcmVhdGVkX19ndGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+Y3JlYXRlZEx0ZSxcbiAgICAgIFwiY3JlYXRlZF9fbHRlXCIsXG4gICAgKTtcbiAgICBpZiAoY3JlYXRlZEJ5SW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4uY3JlYXRlZEJ5SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJjcmVhdGVkX2J5X19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5kYXRlR3RlLFxuICAgICAgXCJkYXRlX19ndGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+ZGF0ZUx0ZSxcbiAgICAgIFwiZGF0ZV9fbHRlXCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmRlcGFydG1lbnRJZCxcbiAgICAgIFwiZGVwYXJ0bWVudF9pZFwiLFxuICAgICk7XG4gICAgaWYgKGRlcGFydG1lbnRJZEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLmRlcGFydG1lbnRJZEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwiZGVwYXJ0bWVudF9pZF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChpZEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLmlkSW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJpZF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+aXNCaWxsYWJsZSxcbiAgICAgIFwiaXNfYmlsbGFibGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+bGltaXQsXG4gICAgICBcImxpbWl0XCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55Pm9mZnNldCxcbiAgICAgIFwib2Zmc2V0XCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55Pm9yZGVyaW5nLFxuICAgICAgXCJvcmRlcmluZ1wiLFxuICAgICk7XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5zZWFyY2gsXG4gICAgICBcInNlYXJjaFwiLFxuICAgICk7XG4gICAgaWYgKHRhc2tDb21wb25lbnRJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi50YXNrQ29tcG9uZW50SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJ0YXNrX19jb21wb25lbnRfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGFza0luKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnRhc2tJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInRhc2tfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGFza1Byb2plY3RDbGllbnRJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi50YXNrUHJvamVjdENsaWVudEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidGFza19fcHJvamVjdF9fY2xpZW50X19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRhc2tQcm9qZWN0SW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4udGFza1Byb2plY3RJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInRhc2tfX3Byb2plY3RfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGFza1NwcmludEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnRhc2tTcHJpbnRJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInRhc2tfX3NwcmludF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0eXBlSW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4udHlwZUluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidHlwZV9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh1cGRhdGVkQnlJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi51cGRhdGVkQnlJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInVwZGF0ZWRfYnlfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAod29ya1R5cGVJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi53b3JrVHlwZUluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwid29ya190eXBlX19pblwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgbG9jYWxWYXJIZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgIC8vIGF1dGhlbnRpY2F0aW9uIChjb29raWVBdXRoKSByZXF1aXJlZFxuXG4gICAgLy8gYXV0aGVudGljYXRpb24gKGp3dEF1dGgpIHJlcXVpcmVkXG4gICAgbG9jYWxWYXJIZWFkZXJzID0gdGhpcy5jb25maWd1cmF0aW9uLmFkZENyZWRlbnRpYWxUb0hlYWRlcnMoXG4gICAgICBcImp3dEF1dGhcIixcbiAgICAgIFwiQXV0aG9yaXphdGlvblwiLFxuICAgICAgbG9jYWxWYXJIZWFkZXJzLFxuICAgICAgXCJCZWFyZXIgXCIsXG4gICAgKTtcblxuICAgIGNvbnN0IGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPVxuICAgICAgb3B0aW9ucz8uaHR0cEhlYWRlckFjY2VwdCA/P1xuICAgICAgdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChbXCJhcHBsaWNhdGlvbi9qc29uXCJdKTtcbiAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgbG9jYWxWYXJIZWFkZXJzID0gbG9jYWxWYXJIZWFkZXJzLnNldChcbiAgICAgICAgXCJBY2NlcHRcIixcbiAgICAgICAgbG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGxvY2FsVmFySHR0cENvbnRleHQ6IEh0dHBDb250ZXh0ID1cbiAgICAgIG9wdGlvbnM/LmNvbnRleHQgPz8gbmV3IEh0dHBDb250ZXh0KCk7XG5cbiAgICBjb25zdCBsb2NhbFZhclRyYW5zZmVyQ2FjaGU6IGJvb2xlYW4gPSBvcHRpb25zPy50cmFuc2ZlckNhY2hlID8/IHRydWU7XG5cbiAgICBsZXQgcmVzcG9uc2VUeXBlXzogXCJ0ZXh0XCIgfCBcImpzb25cIiB8IFwiYmxvYlwiID0gXCJqc29uXCI7XG4gICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKSB7XG4gICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQuc3RhcnRzV2l0aChcInRleHRcIikpIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlXyA9IFwidGV4dFwiO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uLmlzSnNvbk1pbWUobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpXG4gICAgICApIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlXyA9IFwianNvblwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlXyA9IFwiYmxvYlwiO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBsb2NhbFZhclBhdGggPSBgL2FwaS92MS9qb2JzL2A7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5yZXF1ZXN0PFBhZ2luYXRlZEpvYkxpc3REdG8+KFxuICAgICAgXCJnZXRcIixcbiAgICAgIGAke3RoaXMuY29uZmlndXJhdGlvbi5iYXNlUGF0aH0ke2xvY2FsVmFyUGF0aH1gLFxuICAgICAge1xuICAgICAgICBjb250ZXh0OiBsb2NhbFZhckh0dHBDb250ZXh0LFxuICAgICAgICBwYXJhbXM6IGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICByZXNwb25zZVR5cGU6IDxhbnk+cmVzcG9uc2VUeXBlXyxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICBoZWFkZXJzOiBsb2NhbFZhckhlYWRlcnMsXG4gICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgIHRyYW5zZmVyQ2FjaGU6IGxvY2FsVmFyVHJhbnNmZXJDYWNoZSxcbiAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBvdmVyc2VhIGNoYXJ0LiAgSXQgd2lsbCByZXR1cm4gb3ZlcnNlYSwgbm9uX292ZXJzZWEgYW5kIHRvdGFsIGJpbGxlZCB0aW1lIGZvciBlYWNoIHRpbWUgc3Bhbi5cbiAgICogQHBhcmFtIHJlcXVlc3RQYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICovXG4gIHB1YmxpYyBqb2JzT3ZlcnNlYUNoYXJ0TGlzdChcbiAgICByZXF1ZXN0UGFyYW1ldGVyczogSm9ic092ZXJzZWFDaGFydExpc3RSZXF1ZXN0UGFyYW1zLFxuICAgIG9ic2VydmU/OiBcImJvZHlcIixcbiAgICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGh0dHBIZWFkZXJBY2NlcHQ/OiBcImFwcGxpY2F0aW9uL2pzb25cIjtcbiAgICAgIGNvbnRleHQ/OiBIdHRwQ29udGV4dDtcbiAgICAgIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFuO1xuICAgIH0sXG4gICk6IE9ic2VydmFibGU8QXJyYXk8T3ZlcnNlYUNoYXJ0RHRvPj47XG4gIHB1YmxpYyBqb2JzT3ZlcnNlYUNoYXJ0TGlzdChcbiAgICByZXF1ZXN0UGFyYW1ldGVyczogSm9ic092ZXJzZWFDaGFydExpc3RSZXF1ZXN0UGFyYW1zLFxuICAgIG9ic2VydmU/OiBcInJlc3BvbnNlXCIsXG4gICAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBodHRwSGVhZGVyQWNjZXB0PzogXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgICBjb250ZXh0PzogSHR0cENvbnRleHQ7XG4gICAgICB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbjtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBcnJheTxPdmVyc2VhQ2hhcnREdG8+Pj47XG4gIHB1YmxpYyBqb2JzT3ZlcnNlYUNoYXJ0TGlzdChcbiAgICByZXF1ZXN0UGFyYW1ldGVyczogSm9ic092ZXJzZWFDaGFydExpc3RSZXF1ZXN0UGFyYW1zLFxuICAgIG9ic2VydmU/OiBcImV2ZW50c1wiLFxuICAgIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbixcbiAgICBvcHRpb25zPzoge1xuICAgICAgaHR0cEhlYWRlckFjY2VwdD86IFwiYXBwbGljYXRpb24vanNvblwiO1xuICAgICAgY29udGV4dD86IEh0dHBDb250ZXh0O1xuICAgICAgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW47XG4gICAgfSxcbiAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXJyYXk8T3ZlcnNlYUNoYXJ0RHRvPj4+O1xuICBwdWJsaWMgam9ic092ZXJzZWFDaGFydExpc3QoXG4gICAgcmVxdWVzdFBhcmFtZXRlcnM6IEpvYnNPdmVyc2VhQ2hhcnRMaXN0UmVxdWVzdFBhcmFtcyxcbiAgICBvYnNlcnZlOiBhbnkgPSBcImJvZHlcIixcbiAgICByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBodHRwSGVhZGVyQWNjZXB0PzogXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgICBjb250ZXh0PzogSHR0cENvbnRleHQ7XG4gICAgICB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbjtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHRpbWVTcGFuID0gcmVxdWVzdFBhcmFtZXRlcnM/LnRpbWVTcGFuO1xuICAgIGlmICh0aW1lU3BhbiA9PT0gbnVsbCB8fCB0aW1lU3BhbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiUmVxdWlyZWQgcGFyYW1ldGVyIHRpbWVTcGFuIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgam9ic092ZXJzZWFDaGFydExpc3QuXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBiaWxsZWRCeUluID0gcmVxdWVzdFBhcmFtZXRlcnM/LmJpbGxlZEJ5SW47XG4gICAgY29uc3QgYnJhbmNoSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8uYnJhbmNoSW47XG4gICAgY29uc3QgY3JlYXRlZERhdGVHdGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uY3JlYXRlZERhdGVHdGU7XG4gICAgY29uc3QgY3JlYXRlZERhdGVMdGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uY3JlYXRlZERhdGVMdGU7XG4gICAgY29uc3QgY3JlYXRlZEd0ZSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5jcmVhdGVkR3RlO1xuICAgIGNvbnN0IGNyZWF0ZWRMdGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uY3JlYXRlZEx0ZTtcbiAgICBjb25zdCBjcmVhdGVkQnlJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5jcmVhdGVkQnlJbjtcbiAgICBjb25zdCBkYXRlR3RlID0gcmVxdWVzdFBhcmFtZXRlcnM/LmRhdGVHdGU7XG4gICAgY29uc3QgZGF0ZUx0ZSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5kYXRlTHRlO1xuICAgIGNvbnN0IGRlcGFydG1lbnRJZCA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5kZXBhcnRtZW50SWQ7XG4gICAgY29uc3QgZGVwYXJ0bWVudElkSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8uZGVwYXJ0bWVudElkSW47XG4gICAgY29uc3QgaWRJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5pZEluO1xuICAgIGNvbnN0IGlzQmlsbGFibGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uaXNCaWxsYWJsZTtcbiAgICBjb25zdCBzZWFyY2ggPSByZXF1ZXN0UGFyYW1ldGVycz8uc2VhcmNoO1xuICAgIGNvbnN0IHRhc2tDb21wb25lbnRJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy50YXNrQ29tcG9uZW50SW47XG4gICAgY29uc3QgdGFza0luID0gcmVxdWVzdFBhcmFtZXRlcnM/LnRhc2tJbjtcbiAgICBjb25zdCB0YXNrUHJvamVjdENsaWVudEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnRhc2tQcm9qZWN0Q2xpZW50SW47XG4gICAgY29uc3QgdGFza1Byb2plY3RJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy50YXNrUHJvamVjdEluO1xuICAgIGNvbnN0IHRhc2tTcHJpbnRJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy50YXNrU3ByaW50SW47XG4gICAgY29uc3QgdHlwZUluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnR5cGVJbjtcbiAgICBjb25zdCB1cGRhdGVkQnlJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy51cGRhdGVkQnlJbjtcbiAgICBjb25zdCB3b3JrVHlwZUluID0gcmVxdWVzdFBhcmFtZXRlcnM/LndvcmtUeXBlSW47XG5cbiAgICBsZXQgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcyh7IGVuY29kZXI6IHRoaXMuZW5jb2RlciB9KTtcbiAgICBpZiAoYmlsbGVkQnlJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi5iaWxsZWRCeUluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwiYmlsbGVkX2J5X19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKGJyYW5jaEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLmJyYW5jaEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwiYnJhbmNoX19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5jcmVhdGVkRGF0ZUd0ZSxcbiAgICAgIFwiY3JlYXRlZF9fZGF0ZV9fZ3RlXCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmNyZWF0ZWREYXRlTHRlLFxuICAgICAgXCJjcmVhdGVkX19kYXRlX19sdGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+Y3JlYXRlZEd0ZSxcbiAgICAgIFwiY3JlYXRlZF9fZ3RlXCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmNyZWF0ZWRMdGUsXG4gICAgICBcImNyZWF0ZWRfX2x0ZVwiLFxuICAgICk7XG4gICAgaWYgKGNyZWF0ZWRCeUluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLmNyZWF0ZWRCeUluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwiY3JlYXRlZF9ieV9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+ZGF0ZUd0ZSxcbiAgICAgIFwiZGF0ZV9fZ3RlXCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmRhdGVMdGUsXG4gICAgICBcImRhdGVfX2x0ZVwiLFxuICAgICk7XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5kZXBhcnRtZW50SWQsXG4gICAgICBcImRlcGFydG1lbnRfaWRcIixcbiAgICApO1xuICAgIGlmIChkZXBhcnRtZW50SWRJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi5kZXBhcnRtZW50SWRJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcImRlcGFydG1lbnRfaWRfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoaWRJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi5pZEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwiaWRfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmlzQmlsbGFibGUsXG4gICAgICBcImlzX2JpbGxhYmxlXCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PnNlYXJjaCxcbiAgICAgIFwic2VhcmNoXCIsXG4gICAgKTtcbiAgICBpZiAodGFza0NvbXBvbmVudEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnRhc2tDb21wb25lbnRJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInRhc2tfX2NvbXBvbmVudF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0YXNrSW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4udGFza0luXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidGFza19faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0YXNrUHJvamVjdENsaWVudEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnRhc2tQcm9qZWN0Q2xpZW50SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJ0YXNrX19wcm9qZWN0X19jbGllbnRfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGFza1Byb2plY3RJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi50YXNrUHJvamVjdEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidGFza19fcHJvamVjdF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0YXNrU3ByaW50SW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4udGFza1NwcmludEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidGFza19fc3ByaW50X19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT50aW1lU3BhbixcbiAgICAgIFwidGltZV9zcGFuXCIsXG4gICAgKTtcbiAgICBpZiAodHlwZUluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnR5cGVJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInR5cGVfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodXBkYXRlZEJ5SW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4udXBkYXRlZEJ5SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJ1cGRhdGVkX2J5X19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHdvcmtUeXBlSW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4ud29ya1R5cGVJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcIndvcmtfdHlwZV9faW5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IGxvY2FsVmFySGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG5cbiAgICAvLyBhdXRoZW50aWNhdGlvbiAoY29va2llQXV0aCkgcmVxdWlyZWRcblxuICAgIC8vIGF1dGhlbnRpY2F0aW9uIChqd3RBdXRoKSByZXF1aXJlZFxuICAgIGxvY2FsVmFySGVhZGVycyA9IHRoaXMuY29uZmlndXJhdGlvbi5hZGRDcmVkZW50aWFsVG9IZWFkZXJzKFxuICAgICAgXCJqd3RBdXRoXCIsXG4gICAgICBcIkF1dGhvcml6YXRpb25cIixcbiAgICAgIGxvY2FsVmFySGVhZGVycyxcbiAgICAgIFwiQmVhcmVyIFwiLFxuICAgICk7XG5cbiAgICBjb25zdCBsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID1cbiAgICAgIG9wdGlvbnM/Lmh0dHBIZWFkZXJBY2NlcHQgPz9cbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoW1wiYXBwbGljYXRpb24vanNvblwiXSk7XG4gICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGxvY2FsVmFySGVhZGVycyA9IGxvY2FsVmFySGVhZGVycy5zZXQoXG4gICAgICAgIFwiQWNjZXB0XCIsXG4gICAgICAgIGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2NhbFZhckh0dHBDb250ZXh0OiBIdHRwQ29udGV4dCA9XG4gICAgICBvcHRpb25zPy5jb250ZXh0ID8/IG5ldyBIdHRwQ29udGV4dCgpO1xuXG4gICAgY29uc3QgbG9jYWxWYXJUcmFuc2ZlckNhY2hlOiBib29sZWFuID0gb3B0aW9ucz8udHJhbnNmZXJDYWNoZSA/PyB0cnVlO1xuXG4gICAgbGV0IHJlc3BvbnNlVHlwZV86IFwidGV4dFwiIHwgXCJqc29uXCIgfCBcImJsb2JcIiA9IFwianNvblwiO1xuICAgIGlmIChsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCkge1xuICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkLnN0YXJ0c1dpdGgoXCJ0ZXh0XCIpKSB7XG4gICAgICAgIHJlc3BvbnNlVHlwZV8gPSBcInRleHRcIjtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5pc0pzb25NaW1lKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKVxuICAgICAgKSB7XG4gICAgICAgIHJlc3BvbnNlVHlwZV8gPSBcImpzb25cIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3BvbnNlVHlwZV8gPSBcImJsb2JcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgbG9jYWxWYXJQYXRoID0gYC9hcGkvdjEvam9icy9vdmVyc2VhLWNoYXJ0L2A7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5yZXF1ZXN0PEFycmF5PE92ZXJzZWFDaGFydER0bz4+KFxuICAgICAgXCJnZXRcIixcbiAgICAgIGAke3RoaXMuY29uZmlndXJhdGlvbi5iYXNlUGF0aH0ke2xvY2FsVmFyUGF0aH1gLFxuICAgICAge1xuICAgICAgICBjb250ZXh0OiBsb2NhbFZhckh0dHBDb250ZXh0LFxuICAgICAgICBwYXJhbXM6IGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICByZXNwb25zZVR5cGU6IDxhbnk+cmVzcG9uc2VUeXBlXyxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICBoZWFkZXJzOiBsb2NhbFZhckhlYWRlcnMsXG4gICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgIHRyYW5zZmVyQ2FjaGU6IGxvY2FsVmFyVHJhbnNmZXJDYWNoZSxcbiAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBwcm9kdWN0aW9uIGNoYXJ0LiAgSXQgd2lsbCByZXR1cm4gYmlsbGFibGUsIHVuYmlsbGFibGUgYW5kIHRvdGFsIGJpbGxlZCB0aW1lIGZvciBwcm9qZWN0cyBmb3IgZWFjaCB0aW1lIHNwYW4uXG4gICAqIEBwYXJhbSByZXF1ZXN0UGFyYW1ldGVyc1xuICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAqL1xuICBwdWJsaWMgam9ic1Byb2R1Y3Rpb25DaGFydExpc3QoXG4gICAgcmVxdWVzdFBhcmFtZXRlcnM6IEpvYnNQcm9kdWN0aW9uQ2hhcnRMaXN0UmVxdWVzdFBhcmFtcyxcbiAgICBvYnNlcnZlPzogXCJib2R5XCIsXG4gICAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBodHRwSGVhZGVyQWNjZXB0PzogXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgICBjb250ZXh0PzogSHR0cENvbnRleHQ7XG4gICAgICB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbjtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPEFycmF5PFByb2R1Y3Rpb25DaGFydER0bz4+O1xuICBwdWJsaWMgam9ic1Byb2R1Y3Rpb25DaGFydExpc3QoXG4gICAgcmVxdWVzdFBhcmFtZXRlcnM6IEpvYnNQcm9kdWN0aW9uQ2hhcnRMaXN0UmVxdWVzdFBhcmFtcyxcbiAgICBvYnNlcnZlPzogXCJyZXNwb25zZVwiLFxuICAgIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbixcbiAgICBvcHRpb25zPzoge1xuICAgICAgaHR0cEhlYWRlckFjY2VwdD86IFwiYXBwbGljYXRpb24vanNvblwiO1xuICAgICAgY29udGV4dD86IEh0dHBDb250ZXh0O1xuICAgICAgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW47XG4gICAgfSxcbiAgKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXJyYXk8UHJvZHVjdGlvbkNoYXJ0RHRvPj4+O1xuICBwdWJsaWMgam9ic1Byb2R1Y3Rpb25DaGFydExpc3QoXG4gICAgcmVxdWVzdFBhcmFtZXRlcnM6IEpvYnNQcm9kdWN0aW9uQ2hhcnRMaXN0UmVxdWVzdFBhcmFtcyxcbiAgICBvYnNlcnZlPzogXCJldmVudHNcIixcbiAgICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGh0dHBIZWFkZXJBY2NlcHQ/OiBcImFwcGxpY2F0aW9uL2pzb25cIjtcbiAgICAgIGNvbnRleHQ/OiBIdHRwQ29udGV4dDtcbiAgICAgIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFuO1xuICAgIH0sXG4gICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PEFycmF5PFByb2R1Y3Rpb25DaGFydER0bz4+PjtcbiAgcHVibGljIGpvYnNQcm9kdWN0aW9uQ2hhcnRMaXN0KFxuICAgIHJlcXVlc3RQYXJhbWV0ZXJzOiBKb2JzUHJvZHVjdGlvbkNoYXJ0TGlzdFJlcXVlc3RQYXJhbXMsXG4gICAgb2JzZXJ2ZTogYW55ID0gXCJib2R5XCIsXG4gICAgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBvcHRpb25zPzoge1xuICAgICAgaHR0cEhlYWRlckFjY2VwdD86IFwiYXBwbGljYXRpb24vanNvblwiO1xuICAgICAgY29udGV4dD86IEh0dHBDb250ZXh0O1xuICAgICAgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW47XG4gICAgfSxcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCB0aW1lU3BhbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy50aW1lU3BhbjtcbiAgICBpZiAodGltZVNwYW4gPT09IG51bGwgfHwgdGltZVNwYW4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlJlcXVpcmVkIHBhcmFtZXRlciB0aW1lU3BhbiB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGpvYnNQcm9kdWN0aW9uQ2hhcnRMaXN0LlwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgYmlsbGVkQnlJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5iaWxsZWRCeUluO1xuICAgIGNvbnN0IGJyYW5jaEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LmJyYW5jaEluO1xuICAgIGNvbnN0IGNyZWF0ZWREYXRlR3RlID0gcmVxdWVzdFBhcmFtZXRlcnM/LmNyZWF0ZWREYXRlR3RlO1xuICAgIGNvbnN0IGNyZWF0ZWREYXRlTHRlID0gcmVxdWVzdFBhcmFtZXRlcnM/LmNyZWF0ZWREYXRlTHRlO1xuICAgIGNvbnN0IGNyZWF0ZWRHdGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uY3JlYXRlZEd0ZTtcbiAgICBjb25zdCBjcmVhdGVkTHRlID0gcmVxdWVzdFBhcmFtZXRlcnM/LmNyZWF0ZWRMdGU7XG4gICAgY29uc3QgY3JlYXRlZEJ5SW4gPSByZXF1ZXN0UGFyYW1ldGVycz8uY3JlYXRlZEJ5SW47XG4gICAgY29uc3QgZGF0ZUd0ZSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5kYXRlR3RlO1xuICAgIGNvbnN0IGRhdGVMdGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uZGF0ZUx0ZTtcbiAgICBjb25zdCBkZXBhcnRtZW50SWQgPSByZXF1ZXN0UGFyYW1ldGVycz8uZGVwYXJ0bWVudElkO1xuICAgIGNvbnN0IGRlcGFydG1lbnRJZEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LmRlcGFydG1lbnRJZEluO1xuICAgIGNvbnN0IGlkSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8uaWRJbjtcbiAgICBjb25zdCBpc0JpbGxhYmxlID0gcmVxdWVzdFBhcmFtZXRlcnM/LmlzQmlsbGFibGU7XG4gICAgY29uc3Qgc2VhcmNoID0gcmVxdWVzdFBhcmFtZXRlcnM/LnNlYXJjaDtcbiAgICBjb25zdCB0YXNrQ29tcG9uZW50SW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udGFza0NvbXBvbmVudEluO1xuICAgIGNvbnN0IHRhc2tJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy50YXNrSW47XG4gICAgY29uc3QgdGFza1Byb2plY3RDbGllbnRJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy50YXNrUHJvamVjdENsaWVudEluO1xuICAgIGNvbnN0IHRhc2tQcm9qZWN0SW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udGFza1Byb2plY3RJbjtcbiAgICBjb25zdCB0YXNrU3ByaW50SW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udGFza1NwcmludEluO1xuICAgIGNvbnN0IHR5cGVJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy50eXBlSW47XG4gICAgY29uc3QgdXBkYXRlZEJ5SW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udXBkYXRlZEJ5SW47XG4gICAgY29uc3Qgd29ya1R5cGVJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy53b3JrVHlwZUluO1xuXG4gICAgbGV0IGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoeyBlbmNvZGVyOiB0aGlzLmVuY29kZXIgfSk7XG4gICAgaWYgKGJpbGxlZEJ5SW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4uYmlsbGVkQnlJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcImJpbGxlZF9ieV9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChicmFuY2hJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi5icmFuY2hJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcImJyYW5jaF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+Y3JlYXRlZERhdGVHdGUsXG4gICAgICBcImNyZWF0ZWRfX2RhdGVfX2d0ZVwiLFxuICAgICk7XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5jcmVhdGVkRGF0ZUx0ZSxcbiAgICAgIFwiY3JlYXRlZF9fZGF0ZV9fbHRlXCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmNyZWF0ZWRHdGUsXG4gICAgICBcImNyZWF0ZWRfX2d0ZVwiLFxuICAgICk7XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5jcmVhdGVkTHRlLFxuICAgICAgXCJjcmVhdGVkX19sdGVcIixcbiAgICApO1xuICAgIGlmIChjcmVhdGVkQnlJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi5jcmVhdGVkQnlJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcImNyZWF0ZWRfYnlfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmRhdGVHdGUsXG4gICAgICBcImRhdGVfX2d0ZVwiLFxuICAgICk7XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5kYXRlTHRlLFxuICAgICAgXCJkYXRlX19sdGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+ZGVwYXJ0bWVudElkLFxuICAgICAgXCJkZXBhcnRtZW50X2lkXCIsXG4gICAgKTtcbiAgICBpZiAoZGVwYXJ0bWVudElkSW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4uZGVwYXJ0bWVudElkSW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJkZXBhcnRtZW50X2lkX19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKGlkSW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4uaWRJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcImlkX19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5pc0JpbGxhYmxlLFxuICAgICAgXCJpc19iaWxsYWJsZVwiLFxuICAgICk7XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5zZWFyY2gsXG4gICAgICBcInNlYXJjaFwiLFxuICAgICk7XG4gICAgaWYgKHRhc2tDb21wb25lbnRJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi50YXNrQ29tcG9uZW50SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJ0YXNrX19jb21wb25lbnRfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGFza0luKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnRhc2tJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInRhc2tfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGFza1Byb2plY3RDbGllbnRJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi50YXNrUHJvamVjdENsaWVudEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidGFza19fcHJvamVjdF9fY2xpZW50X19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRhc2tQcm9qZWN0SW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4udGFza1Byb2plY3RJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInRhc2tfX3Byb2plY3RfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGFza1NwcmludEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnRhc2tTcHJpbnRJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInRhc2tfX3NwcmludF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+dGltZVNwYW4sXG4gICAgICBcInRpbWVfc3BhblwiLFxuICAgICk7XG4gICAgaWYgKHR5cGVJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi50eXBlSW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJ0eXBlX19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHVwZGF0ZWRCeUluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnVwZGF0ZWRCeUluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidXBkYXRlZF9ieV9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh3b3JrVHlwZUluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLndvcmtUeXBlSW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJ3b3JrX3R5cGVfX2luXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBsb2NhbFZhckhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuXG4gICAgLy8gYXV0aGVudGljYXRpb24gKGNvb2tpZUF1dGgpIHJlcXVpcmVkXG5cbiAgICAvLyBhdXRoZW50aWNhdGlvbiAoand0QXV0aCkgcmVxdWlyZWRcbiAgICBsb2NhbFZhckhlYWRlcnMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uYWRkQ3JlZGVudGlhbFRvSGVhZGVycyhcbiAgICAgIFwiand0QXV0aFwiLFxuICAgICAgXCJBdXRob3JpemF0aW9uXCIsXG4gICAgICBsb2NhbFZhckhlYWRlcnMsXG4gICAgICBcIkJlYXJlciBcIixcbiAgICApO1xuXG4gICAgY29uc3QgbG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9XG4gICAgICBvcHRpb25zPy5odHRwSGVhZGVyQWNjZXB0ID8/XG4gICAgICB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KFtcImFwcGxpY2F0aW9uL2pzb25cIl0pO1xuICAgIGlmIChsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBsb2NhbFZhckhlYWRlcnMgPSBsb2NhbFZhckhlYWRlcnMuc2V0KFxuICAgICAgICBcIkFjY2VwdFwiLFxuICAgICAgICBsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgbG9jYWxWYXJIdHRwQ29udGV4dDogSHR0cENvbnRleHQgPVxuICAgICAgb3B0aW9ucz8uY29udGV4dCA/PyBuZXcgSHR0cENvbnRleHQoKTtcblxuICAgIGNvbnN0IGxvY2FsVmFyVHJhbnNmZXJDYWNoZTogYm9vbGVhbiA9IG9wdGlvbnM/LnRyYW5zZmVyQ2FjaGUgPz8gdHJ1ZTtcblxuICAgIGxldCByZXNwb25zZVR5cGVfOiBcInRleHRcIiB8IFwianNvblwiIHwgXCJibG9iXCIgPSBcImpzb25cIjtcbiAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpIHtcbiAgICAgIGlmIChsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZC5zdGFydHNXaXRoKFwidGV4dFwiKSkge1xuICAgICAgICByZXNwb25zZVR5cGVfID0gXCJ0ZXh0XCI7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24uaXNKc29uTWltZShsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZClcbiAgICAgICkge1xuICAgICAgICByZXNwb25zZVR5cGVfID0gXCJqc29uXCI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNwb25zZVR5cGVfID0gXCJibG9iXCI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IGxvY2FsVmFyUGF0aCA9IGAvYXBpL3YxL2pvYnMvcHJvZHVjdGlvbi1jaGFydC9gO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxBcnJheTxQcm9kdWN0aW9uQ2hhcnREdG8+PihcbiAgICAgIFwiZ2V0XCIsXG4gICAgICBgJHt0aGlzLmNvbmZpZ3VyYXRpb24uYmFzZVBhdGh9JHtsb2NhbFZhclBhdGh9YCxcbiAgICAgIHtcbiAgICAgICAgY29udGV4dDogbG9jYWxWYXJIdHRwQ29udGV4dCxcbiAgICAgICAgcGFyYW1zOiBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiA8YW55PnJlc3BvbnNlVHlwZV8sXG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgaGVhZGVyczogbG9jYWxWYXJIZWFkZXJzLFxuICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICB0cmFuc2ZlckNhY2hlOiBsb2NhbFZhclRyYW5zZmVyQ2FjaGUsXG4gICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzcyxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcmVwb3J0IGZvciBkZXBhcnRtZW50cy5cbiAgICogQHBhcmFtIHJlcXVlc3RQYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICovXG4gIHB1YmxpYyBqb2JzUmVwb3J0RGVwYXJ0bWVudHNMaXN0KFxuICAgIHJlcXVlc3RQYXJhbWV0ZXJzPzogSm9ic1JlcG9ydERlcGFydG1lbnRzTGlzdFJlcXVlc3RQYXJhbXMsXG4gICAgb2JzZXJ2ZT86IFwiYm9keVwiLFxuICAgIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbixcbiAgICBvcHRpb25zPzoge1xuICAgICAgaHR0cEhlYWRlckFjY2VwdD86IFwiYXBwbGljYXRpb24vanNvblwiO1xuICAgICAgY29udGV4dD86IEh0dHBDb250ZXh0O1xuICAgICAgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW47XG4gICAgfSxcbiAgKTogT2JzZXJ2YWJsZTxBcnJheTxKb2JSZXBvcnREZXBhcnRtZW50RHRvPj47XG4gIHB1YmxpYyBqb2JzUmVwb3J0RGVwYXJ0bWVudHNMaXN0KFxuICAgIHJlcXVlc3RQYXJhbWV0ZXJzPzogSm9ic1JlcG9ydERlcGFydG1lbnRzTGlzdFJlcXVlc3RQYXJhbXMsXG4gICAgb2JzZXJ2ZT86IFwicmVzcG9uc2VcIixcbiAgICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGh0dHBIZWFkZXJBY2NlcHQ/OiBcImFwcGxpY2F0aW9uL2pzb25cIjtcbiAgICAgIGNvbnRleHQ/OiBIdHRwQ29udGV4dDtcbiAgICAgIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFuO1xuICAgIH0sXG4gICk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEFycmF5PEpvYlJlcG9ydERlcGFydG1lbnREdG8+Pj47XG4gIHB1YmxpYyBqb2JzUmVwb3J0RGVwYXJ0bWVudHNMaXN0KFxuICAgIHJlcXVlc3RQYXJhbWV0ZXJzPzogSm9ic1JlcG9ydERlcGFydG1lbnRzTGlzdFJlcXVlc3RQYXJhbXMsXG4gICAgb2JzZXJ2ZT86IFwiZXZlbnRzXCIsXG4gICAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBodHRwSGVhZGVyQWNjZXB0PzogXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgICBjb250ZXh0PzogSHR0cENvbnRleHQ7XG4gICAgICB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbjtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxBcnJheTxKb2JSZXBvcnREZXBhcnRtZW50RHRvPj4+O1xuICBwdWJsaWMgam9ic1JlcG9ydERlcGFydG1lbnRzTGlzdChcbiAgICByZXF1ZXN0UGFyYW1ldGVycz86IEpvYnNSZXBvcnREZXBhcnRtZW50c0xpc3RSZXF1ZXN0UGFyYW1zLFxuICAgIG9ic2VydmU6IGFueSA9IFwiYm9keVwiLFxuICAgIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGh0dHBIZWFkZXJBY2NlcHQ/OiBcImFwcGxpY2F0aW9uL2pzb25cIjtcbiAgICAgIGNvbnRleHQ/OiBIdHRwQ29udGV4dDtcbiAgICAgIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFuO1xuICAgIH0sXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgYmlsbGVkQnlJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5iaWxsZWRCeUluO1xuICAgIGNvbnN0IGJyYW5jaEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LmJyYW5jaEluO1xuICAgIGNvbnN0IGNyZWF0ZWREYXRlR3RlID0gcmVxdWVzdFBhcmFtZXRlcnM/LmNyZWF0ZWREYXRlR3RlO1xuICAgIGNvbnN0IGNyZWF0ZWREYXRlTHRlID0gcmVxdWVzdFBhcmFtZXRlcnM/LmNyZWF0ZWREYXRlTHRlO1xuICAgIGNvbnN0IGNyZWF0ZWRHdGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uY3JlYXRlZEd0ZTtcbiAgICBjb25zdCBjcmVhdGVkTHRlID0gcmVxdWVzdFBhcmFtZXRlcnM/LmNyZWF0ZWRMdGU7XG4gICAgY29uc3QgY3JlYXRlZEJ5SW4gPSByZXF1ZXN0UGFyYW1ldGVycz8uY3JlYXRlZEJ5SW47XG4gICAgY29uc3QgZGF0ZUd0ZSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5kYXRlR3RlO1xuICAgIGNvbnN0IGRhdGVMdGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uZGF0ZUx0ZTtcbiAgICBjb25zdCBkZXBhcnRtZW50SWQgPSByZXF1ZXN0UGFyYW1ldGVycz8uZGVwYXJ0bWVudElkO1xuICAgIGNvbnN0IGRlcGFydG1lbnRJZEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LmRlcGFydG1lbnRJZEluO1xuICAgIGNvbnN0IGlkSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8uaWRJbjtcbiAgICBjb25zdCBpc0JpbGxhYmxlID0gcmVxdWVzdFBhcmFtZXRlcnM/LmlzQmlsbGFibGU7XG4gICAgY29uc3Qgb3JkZXJpbmcgPSByZXF1ZXN0UGFyYW1ldGVycz8ub3JkZXJpbmc7XG4gICAgY29uc3Qgc2VhcmNoID0gcmVxdWVzdFBhcmFtZXRlcnM/LnNlYXJjaDtcbiAgICBjb25zdCB0YXNrQ29tcG9uZW50SW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udGFza0NvbXBvbmVudEluO1xuICAgIGNvbnN0IHRhc2tJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy50YXNrSW47XG4gICAgY29uc3QgdGFza1Byb2plY3RDbGllbnRJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy50YXNrUHJvamVjdENsaWVudEluO1xuICAgIGNvbnN0IHRhc2tQcm9qZWN0SW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udGFza1Byb2plY3RJbjtcbiAgICBjb25zdCB0YXNrU3ByaW50SW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udGFza1NwcmludEluO1xuICAgIGNvbnN0IHRpbWVTcGFuID0gcmVxdWVzdFBhcmFtZXRlcnM/LnRpbWVTcGFuO1xuICAgIGNvbnN0IHR5cGVJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy50eXBlSW47XG4gICAgY29uc3QgdXBkYXRlZEJ5SW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udXBkYXRlZEJ5SW47XG4gICAgY29uc3Qgd29ya1R5cGVJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy53b3JrVHlwZUluO1xuXG4gICAgbGV0IGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoeyBlbmNvZGVyOiB0aGlzLmVuY29kZXIgfSk7XG4gICAgaWYgKGJpbGxlZEJ5SW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4uYmlsbGVkQnlJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcImJpbGxlZF9ieV9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChicmFuY2hJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi5icmFuY2hJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcImJyYW5jaF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+Y3JlYXRlZERhdGVHdGUsXG4gICAgICBcImNyZWF0ZWRfX2RhdGVfX2d0ZVwiLFxuICAgICk7XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5jcmVhdGVkRGF0ZUx0ZSxcbiAgICAgIFwiY3JlYXRlZF9fZGF0ZV9fbHRlXCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmNyZWF0ZWRHdGUsXG4gICAgICBcImNyZWF0ZWRfX2d0ZVwiLFxuICAgICk7XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5jcmVhdGVkTHRlLFxuICAgICAgXCJjcmVhdGVkX19sdGVcIixcbiAgICApO1xuICAgIGlmIChjcmVhdGVkQnlJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi5jcmVhdGVkQnlJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcImNyZWF0ZWRfYnlfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmRhdGVHdGUsXG4gICAgICBcImRhdGVfX2d0ZVwiLFxuICAgICk7XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5kYXRlTHRlLFxuICAgICAgXCJkYXRlX19sdGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+ZGVwYXJ0bWVudElkLFxuICAgICAgXCJkZXBhcnRtZW50X2lkXCIsXG4gICAgKTtcbiAgICBpZiAoZGVwYXJ0bWVudElkSW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4uZGVwYXJ0bWVudElkSW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJkZXBhcnRtZW50X2lkX19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKGlkSW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4uaWRJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcImlkX19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5pc0JpbGxhYmxlLFxuICAgICAgXCJpc19iaWxsYWJsZVwiLFxuICAgICk7XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5vcmRlcmluZyxcbiAgICAgIFwib3JkZXJpbmdcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+c2VhcmNoLFxuICAgICAgXCJzZWFyY2hcIixcbiAgICApO1xuICAgIGlmICh0YXNrQ29tcG9uZW50SW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4udGFza0NvbXBvbmVudEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidGFza19fY29tcG9uZW50X19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRhc2tJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi50YXNrSW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJ0YXNrX19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRhc2tQcm9qZWN0Q2xpZW50SW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4udGFza1Byb2plY3RDbGllbnRJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInRhc2tfX3Byb2plY3RfX2NsaWVudF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0YXNrUHJvamVjdEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnRhc2tQcm9qZWN0SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJ0YXNrX19wcm9qZWN0X19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRhc2tTcHJpbnRJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi50YXNrU3ByaW50SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJ0YXNrX19zcHJpbnRfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PnRpbWVTcGFuLFxuICAgICAgXCJ0aW1lX3NwYW5cIixcbiAgICApO1xuICAgIGlmICh0eXBlSW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4udHlwZUluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidHlwZV9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh1cGRhdGVkQnlJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi51cGRhdGVkQnlJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInVwZGF0ZWRfYnlfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAod29ya1R5cGVJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi53b3JrVHlwZUluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwid29ya190eXBlX19pblwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgbG9jYWxWYXJIZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgIC8vIGF1dGhlbnRpY2F0aW9uIChjb29raWVBdXRoKSByZXF1aXJlZFxuXG4gICAgLy8gYXV0aGVudGljYXRpb24gKGp3dEF1dGgpIHJlcXVpcmVkXG4gICAgbG9jYWxWYXJIZWFkZXJzID0gdGhpcy5jb25maWd1cmF0aW9uLmFkZENyZWRlbnRpYWxUb0hlYWRlcnMoXG4gICAgICBcImp3dEF1dGhcIixcbiAgICAgIFwiQXV0aG9yaXphdGlvblwiLFxuICAgICAgbG9jYWxWYXJIZWFkZXJzLFxuICAgICAgXCJCZWFyZXIgXCIsXG4gICAgKTtcblxuICAgIGNvbnN0IGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPVxuICAgICAgb3B0aW9ucz8uaHR0cEhlYWRlckFjY2VwdCA/P1xuICAgICAgdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChbXCJhcHBsaWNhdGlvbi9qc29uXCJdKTtcbiAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgbG9jYWxWYXJIZWFkZXJzID0gbG9jYWxWYXJIZWFkZXJzLnNldChcbiAgICAgICAgXCJBY2NlcHRcIixcbiAgICAgICAgbG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGxvY2FsVmFySHR0cENvbnRleHQ6IEh0dHBDb250ZXh0ID1cbiAgICAgIG9wdGlvbnM/LmNvbnRleHQgPz8gbmV3IEh0dHBDb250ZXh0KCk7XG5cbiAgICBjb25zdCBsb2NhbFZhclRyYW5zZmVyQ2FjaGU6IGJvb2xlYW4gPSBvcHRpb25zPy50cmFuc2ZlckNhY2hlID8/IHRydWU7XG5cbiAgICBsZXQgcmVzcG9uc2VUeXBlXzogXCJ0ZXh0XCIgfCBcImpzb25cIiB8IFwiYmxvYlwiID0gXCJqc29uXCI7XG4gICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKSB7XG4gICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQuc3RhcnRzV2l0aChcInRleHRcIikpIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlXyA9IFwidGV4dFwiO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uLmlzSnNvbk1pbWUobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpXG4gICAgICApIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlXyA9IFwianNvblwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlXyA9IFwiYmxvYlwiO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBsb2NhbFZhclBhdGggPSBgL2FwaS92MS9qb2JzL3JlcG9ydC1kZXBhcnRtZW50cy9gO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxBcnJheTxKb2JSZXBvcnREZXBhcnRtZW50RHRvPj4oXG4gICAgICBcImdldFwiLFxuICAgICAgYCR7dGhpcy5jb25maWd1cmF0aW9uLmJhc2VQYXRofSR7bG9jYWxWYXJQYXRofWAsXG4gICAgICB7XG4gICAgICAgIGNvbnRleHQ6IGxvY2FsVmFySHR0cENvbnRleHQsXG4gICAgICAgIHBhcmFtczogbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIHJlc3BvbnNlVHlwZTogPGFueT5yZXNwb25zZVR5cGVfLFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgIGhlYWRlcnM6IGxvY2FsVmFySGVhZGVycyxcbiAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgdHJhbnNmZXJDYWNoZTogbG9jYWxWYXJUcmFuc2ZlckNhY2hlLFxuICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3MsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGhvdXJseSByZXBvcnQgb2Ygam9icy4gIEpvYnMgYXJlIGdyb3VwZWQgYnkgZGF5cywgc28gZWFjaCBwYWdlIGlzIGEgbGlzdCBvZiBkYXlzLiBNYXggaXMgMTAgZGF5cy5cbiAgICogQHBhcmFtIHJlcXVlc3RQYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICovXG4gIHB1YmxpYyBqb2JzUmVwb3J0SG91cmx5TGlzdChcbiAgICByZXF1ZXN0UGFyYW1ldGVycz86IEpvYnNSZXBvcnRIb3VybHlMaXN0UmVxdWVzdFBhcmFtcyxcbiAgICBvYnNlcnZlPzogXCJib2R5XCIsXG4gICAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBodHRwSGVhZGVyQWNjZXB0PzogXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgICBjb250ZXh0PzogSHR0cENvbnRleHQ7XG4gICAgICB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbjtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPFBhZ2luYXRlZEpvYlJlcG9ydEhvdXJseUxpc3REdG8+O1xuICBwdWJsaWMgam9ic1JlcG9ydEhvdXJseUxpc3QoXG4gICAgcmVxdWVzdFBhcmFtZXRlcnM/OiBKb2JzUmVwb3J0SG91cmx5TGlzdFJlcXVlc3RQYXJhbXMsXG4gICAgb2JzZXJ2ZT86IFwicmVzcG9uc2VcIixcbiAgICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGh0dHBIZWFkZXJBY2NlcHQ/OiBcImFwcGxpY2F0aW9uL2pzb25cIjtcbiAgICAgIGNvbnRleHQ/OiBIdHRwQ29udGV4dDtcbiAgICAgIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFuO1xuICAgIH0sXG4gICk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPFBhZ2luYXRlZEpvYlJlcG9ydEhvdXJseUxpc3REdG8+PjtcbiAgcHVibGljIGpvYnNSZXBvcnRIb3VybHlMaXN0KFxuICAgIHJlcXVlc3RQYXJhbWV0ZXJzPzogSm9ic1JlcG9ydEhvdXJseUxpc3RSZXF1ZXN0UGFyYW1zLFxuICAgIG9ic2VydmU/OiBcImV2ZW50c1wiLFxuICAgIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbixcbiAgICBvcHRpb25zPzoge1xuICAgICAgaHR0cEhlYWRlckFjY2VwdD86IFwiYXBwbGljYXRpb24vanNvblwiO1xuICAgICAgY29udGV4dD86IEh0dHBDb250ZXh0O1xuICAgICAgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW47XG4gICAgfSxcbiAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8UGFnaW5hdGVkSm9iUmVwb3J0SG91cmx5TGlzdER0bz4+O1xuICBwdWJsaWMgam9ic1JlcG9ydEhvdXJseUxpc3QoXG4gICAgcmVxdWVzdFBhcmFtZXRlcnM/OiBKb2JzUmVwb3J0SG91cmx5TGlzdFJlcXVlc3RQYXJhbXMsXG4gICAgb2JzZXJ2ZTogYW55ID0gXCJib2R5XCIsXG4gICAgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBvcHRpb25zPzoge1xuICAgICAgaHR0cEhlYWRlckFjY2VwdD86IFwiYXBwbGljYXRpb24vanNvblwiO1xuICAgICAgY29udGV4dD86IEh0dHBDb250ZXh0O1xuICAgICAgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW47XG4gICAgfSxcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBiaWxsZWRCeUluID0gcmVxdWVzdFBhcmFtZXRlcnM/LmJpbGxlZEJ5SW47XG4gICAgY29uc3QgYnJhbmNoSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8uYnJhbmNoSW47XG4gICAgY29uc3QgY3JlYXRlZERhdGVHdGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uY3JlYXRlZERhdGVHdGU7XG4gICAgY29uc3QgY3JlYXRlZERhdGVMdGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uY3JlYXRlZERhdGVMdGU7XG4gICAgY29uc3QgY3JlYXRlZEd0ZSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5jcmVhdGVkR3RlO1xuICAgIGNvbnN0IGNyZWF0ZWRMdGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uY3JlYXRlZEx0ZTtcbiAgICBjb25zdCBjcmVhdGVkQnlJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5jcmVhdGVkQnlJbjtcbiAgICBjb25zdCBkYXRlR3RlID0gcmVxdWVzdFBhcmFtZXRlcnM/LmRhdGVHdGU7XG4gICAgY29uc3QgZGF0ZUx0ZSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5kYXRlTHRlO1xuICAgIGNvbnN0IGRlcGFydG1lbnRJZCA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5kZXBhcnRtZW50SWQ7XG4gICAgY29uc3QgZGVwYXJ0bWVudElkSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8uZGVwYXJ0bWVudElkSW47XG4gICAgY29uc3QgaWRJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5pZEluO1xuICAgIGNvbnN0IGlzQmlsbGFibGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uaXNCaWxsYWJsZTtcbiAgICBjb25zdCBsaW1pdCA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5saW1pdDtcbiAgICBjb25zdCBvZmZzZXQgPSByZXF1ZXN0UGFyYW1ldGVycz8ub2Zmc2V0O1xuICAgIGNvbnN0IG9yZGVyaW5nID0gcmVxdWVzdFBhcmFtZXRlcnM/Lm9yZGVyaW5nO1xuICAgIGNvbnN0IHNlYXJjaCA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5zZWFyY2g7XG4gICAgY29uc3QgdGFza0NvbXBvbmVudEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnRhc2tDb21wb25lbnRJbjtcbiAgICBjb25zdCB0YXNrSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udGFza0luO1xuICAgIGNvbnN0IHRhc2tQcm9qZWN0Q2xpZW50SW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udGFza1Byb2plY3RDbGllbnRJbjtcbiAgICBjb25zdCB0YXNrUHJvamVjdEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnRhc2tQcm9qZWN0SW47XG4gICAgY29uc3QgdGFza1NwcmludEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnRhc2tTcHJpbnRJbjtcbiAgICBjb25zdCB0eXBlSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udHlwZUluO1xuICAgIGNvbnN0IHVwZGF0ZWRCeUluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnVwZGF0ZWRCeUluO1xuICAgIGNvbnN0IHdvcmtUeXBlSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8ud29ya1R5cGVJbjtcblxuICAgIGxldCBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKHsgZW5jb2RlcjogdGhpcy5lbmNvZGVyIH0pO1xuICAgIGlmIChiaWxsZWRCeUluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLmJpbGxlZEJ5SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJiaWxsZWRfYnlfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoYnJhbmNoSW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4uYnJhbmNoSW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJicmFuY2hfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmNyZWF0ZWREYXRlR3RlLFxuICAgICAgXCJjcmVhdGVkX19kYXRlX19ndGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+Y3JlYXRlZERhdGVMdGUsXG4gICAgICBcImNyZWF0ZWRfX2RhdGVfX2x0ZVwiLFxuICAgICk7XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5jcmVhdGVkR3RlLFxuICAgICAgXCJjcmVhdGVkX19ndGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+Y3JlYXRlZEx0ZSxcbiAgICAgIFwiY3JlYXRlZF9fbHRlXCIsXG4gICAgKTtcbiAgICBpZiAoY3JlYXRlZEJ5SW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4uY3JlYXRlZEJ5SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJjcmVhdGVkX2J5X19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5kYXRlR3RlLFxuICAgICAgXCJkYXRlX19ndGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+ZGF0ZUx0ZSxcbiAgICAgIFwiZGF0ZV9fbHRlXCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmRlcGFydG1lbnRJZCxcbiAgICAgIFwiZGVwYXJ0bWVudF9pZFwiLFxuICAgICk7XG4gICAgaWYgKGRlcGFydG1lbnRJZEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLmRlcGFydG1lbnRJZEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwiZGVwYXJ0bWVudF9pZF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChpZEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLmlkSW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJpZF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+aXNCaWxsYWJsZSxcbiAgICAgIFwiaXNfYmlsbGFibGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+bGltaXQsXG4gICAgICBcImxpbWl0XCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55Pm9mZnNldCxcbiAgICAgIFwib2Zmc2V0XCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55Pm9yZGVyaW5nLFxuICAgICAgXCJvcmRlcmluZ1wiLFxuICAgICk7XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5zZWFyY2gsXG4gICAgICBcInNlYXJjaFwiLFxuICAgICk7XG4gICAgaWYgKHRhc2tDb21wb25lbnRJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi50YXNrQ29tcG9uZW50SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJ0YXNrX19jb21wb25lbnRfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGFza0luKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnRhc2tJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInRhc2tfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGFza1Byb2plY3RDbGllbnRJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi50YXNrUHJvamVjdENsaWVudEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidGFza19fcHJvamVjdF9fY2xpZW50X19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRhc2tQcm9qZWN0SW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4udGFza1Byb2plY3RJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInRhc2tfX3Byb2plY3RfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGFza1NwcmludEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnRhc2tTcHJpbnRJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInRhc2tfX3NwcmludF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0eXBlSW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4udHlwZUluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidHlwZV9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh1cGRhdGVkQnlJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi51cGRhdGVkQnlJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInVwZGF0ZWRfYnlfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAod29ya1R5cGVJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi53b3JrVHlwZUluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwid29ya190eXBlX19pblwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgbG9jYWxWYXJIZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgIC8vIGF1dGhlbnRpY2F0aW9uIChjb29raWVBdXRoKSByZXF1aXJlZFxuXG4gICAgLy8gYXV0aGVudGljYXRpb24gKGp3dEF1dGgpIHJlcXVpcmVkXG4gICAgbG9jYWxWYXJIZWFkZXJzID0gdGhpcy5jb25maWd1cmF0aW9uLmFkZENyZWRlbnRpYWxUb0hlYWRlcnMoXG4gICAgICBcImp3dEF1dGhcIixcbiAgICAgIFwiQXV0aG9yaXphdGlvblwiLFxuICAgICAgbG9jYWxWYXJIZWFkZXJzLFxuICAgICAgXCJCZWFyZXIgXCIsXG4gICAgKTtcblxuICAgIGNvbnN0IGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPVxuICAgICAgb3B0aW9ucz8uaHR0cEhlYWRlckFjY2VwdCA/P1xuICAgICAgdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChbXCJhcHBsaWNhdGlvbi9qc29uXCJdKTtcbiAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgbG9jYWxWYXJIZWFkZXJzID0gbG9jYWxWYXJIZWFkZXJzLnNldChcbiAgICAgICAgXCJBY2NlcHRcIixcbiAgICAgICAgbG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGxvY2FsVmFySHR0cENvbnRleHQ6IEh0dHBDb250ZXh0ID1cbiAgICAgIG9wdGlvbnM/LmNvbnRleHQgPz8gbmV3IEh0dHBDb250ZXh0KCk7XG5cbiAgICBjb25zdCBsb2NhbFZhclRyYW5zZmVyQ2FjaGU6IGJvb2xlYW4gPSBvcHRpb25zPy50cmFuc2ZlckNhY2hlID8/IHRydWU7XG5cbiAgICBsZXQgcmVzcG9uc2VUeXBlXzogXCJ0ZXh0XCIgfCBcImpzb25cIiB8IFwiYmxvYlwiID0gXCJqc29uXCI7XG4gICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKSB7XG4gICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQuc3RhcnRzV2l0aChcInRleHRcIikpIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlXyA9IFwidGV4dFwiO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uLmlzSnNvbk1pbWUobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpXG4gICAgICApIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlXyA9IFwianNvblwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlXyA9IFwiYmxvYlwiO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBsb2NhbFZhclBhdGggPSBgL2FwaS92MS9qb2JzL3JlcG9ydC1ob3VybHkvYDtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8UGFnaW5hdGVkSm9iUmVwb3J0SG91cmx5TGlzdER0bz4oXG4gICAgICBcImdldFwiLFxuICAgICAgYCR7dGhpcy5jb25maWd1cmF0aW9uLmJhc2VQYXRofSR7bG9jYWxWYXJQYXRofWAsXG4gICAgICB7XG4gICAgICAgIGNvbnRleHQ6IGxvY2FsVmFySHR0cENvbnRleHQsXG4gICAgICAgIHBhcmFtczogbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIHJlc3BvbnNlVHlwZTogPGFueT5yZXNwb25zZVR5cGVfLFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgIGhlYWRlcnM6IGxvY2FsVmFySGVhZGVycyxcbiAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgdHJhbnNmZXJDYWNoZTogbG9jYWxWYXJUcmFuc2ZlckNhY2hlLFxuICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3MsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHJlcG9ydCBmb3IgdXNlcnMuXG4gICAqIEBwYXJhbSByZXF1ZXN0UGFyYW1ldGVyc1xuICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAqL1xuICBwdWJsaWMgam9ic1JlcG9ydFVzZXJzTGlzdChcbiAgICByZXF1ZXN0UGFyYW1ldGVycz86IEpvYnNSZXBvcnRVc2Vyc0xpc3RSZXF1ZXN0UGFyYW1zLFxuICAgIG9ic2VydmU/OiBcImJvZHlcIixcbiAgICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGh0dHBIZWFkZXJBY2NlcHQ/OiBcImFwcGxpY2F0aW9uL2pzb25cIjtcbiAgICAgIGNvbnRleHQ/OiBIdHRwQ29udGV4dDtcbiAgICAgIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFuO1xuICAgIH0sXG4gICk6IE9ic2VydmFibGU8QXJyYXk8Sm9iUmVwb3J0VXNlckR0bz4+O1xuICBwdWJsaWMgam9ic1JlcG9ydFVzZXJzTGlzdChcbiAgICByZXF1ZXN0UGFyYW1ldGVycz86IEpvYnNSZXBvcnRVc2Vyc0xpc3RSZXF1ZXN0UGFyYW1zLFxuICAgIG9ic2VydmU/OiBcInJlc3BvbnNlXCIsXG4gICAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBodHRwSGVhZGVyQWNjZXB0PzogXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgICBjb250ZXh0PzogSHR0cENvbnRleHQ7XG4gICAgICB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbjtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBcnJheTxKb2JSZXBvcnRVc2VyRHRvPj4+O1xuICBwdWJsaWMgam9ic1JlcG9ydFVzZXJzTGlzdChcbiAgICByZXF1ZXN0UGFyYW1ldGVycz86IEpvYnNSZXBvcnRVc2Vyc0xpc3RSZXF1ZXN0UGFyYW1zLFxuICAgIG9ic2VydmU/OiBcImV2ZW50c1wiLFxuICAgIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbixcbiAgICBvcHRpb25zPzoge1xuICAgICAgaHR0cEhlYWRlckFjY2VwdD86IFwiYXBwbGljYXRpb24vanNvblwiO1xuICAgICAgY29udGV4dD86IEh0dHBDb250ZXh0O1xuICAgICAgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW47XG4gICAgfSxcbiAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXJyYXk8Sm9iUmVwb3J0VXNlckR0bz4+PjtcbiAgcHVibGljIGpvYnNSZXBvcnRVc2Vyc0xpc3QoXG4gICAgcmVxdWVzdFBhcmFtZXRlcnM/OiBKb2JzUmVwb3J0VXNlcnNMaXN0UmVxdWVzdFBhcmFtcyxcbiAgICBvYnNlcnZlOiBhbnkgPSBcImJvZHlcIixcbiAgICByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBodHRwSGVhZGVyQWNjZXB0PzogXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgICBjb250ZXh0PzogSHR0cENvbnRleHQ7XG4gICAgICB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbjtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGJpbGxlZEJ5SW4gPSByZXF1ZXN0UGFyYW1ldGVycz8uYmlsbGVkQnlJbjtcbiAgICBjb25zdCBicmFuY2hJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5icmFuY2hJbjtcbiAgICBjb25zdCBjcmVhdGVkRGF0ZUd0ZSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5jcmVhdGVkRGF0ZUd0ZTtcbiAgICBjb25zdCBjcmVhdGVkRGF0ZUx0ZSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5jcmVhdGVkRGF0ZUx0ZTtcbiAgICBjb25zdCBjcmVhdGVkR3RlID0gcmVxdWVzdFBhcmFtZXRlcnM/LmNyZWF0ZWRHdGU7XG4gICAgY29uc3QgY3JlYXRlZEx0ZSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5jcmVhdGVkTHRlO1xuICAgIGNvbnN0IGNyZWF0ZWRCeUluID0gcmVxdWVzdFBhcmFtZXRlcnM/LmNyZWF0ZWRCeUluO1xuICAgIGNvbnN0IGRhdGVHdGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uZGF0ZUd0ZTtcbiAgICBjb25zdCBkYXRlTHRlID0gcmVxdWVzdFBhcmFtZXRlcnM/LmRhdGVMdGU7XG4gICAgY29uc3QgZGVwYXJ0bWVudElkID0gcmVxdWVzdFBhcmFtZXRlcnM/LmRlcGFydG1lbnRJZDtcbiAgICBjb25zdCBkZXBhcnRtZW50SWRJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5kZXBhcnRtZW50SWRJbjtcbiAgICBjb25zdCBpZEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LmlkSW47XG4gICAgY29uc3QgaXNCaWxsYWJsZSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5pc0JpbGxhYmxlO1xuICAgIGNvbnN0IG9yZGVyaW5nID0gcmVxdWVzdFBhcmFtZXRlcnM/Lm9yZGVyaW5nO1xuICAgIGNvbnN0IHNlYXJjaCA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5zZWFyY2g7XG4gICAgY29uc3QgdGFza0NvbXBvbmVudEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnRhc2tDb21wb25lbnRJbjtcbiAgICBjb25zdCB0YXNrSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udGFza0luO1xuICAgIGNvbnN0IHRhc2tQcm9qZWN0Q2xpZW50SW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udGFza1Byb2plY3RDbGllbnRJbjtcbiAgICBjb25zdCB0YXNrUHJvamVjdEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnRhc2tQcm9qZWN0SW47XG4gICAgY29uc3QgdGFza1NwcmludEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnRhc2tTcHJpbnRJbjtcbiAgICBjb25zdCB0aW1lU3BhbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy50aW1lU3BhbjtcbiAgICBjb25zdCB0eXBlSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udHlwZUluO1xuICAgIGNvbnN0IHVwZGF0ZWRCeUluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnVwZGF0ZWRCeUluO1xuICAgIGNvbnN0IHdvcmtUeXBlSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8ud29ya1R5cGVJbjtcblxuICAgIGxldCBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKHsgZW5jb2RlcjogdGhpcy5lbmNvZGVyIH0pO1xuICAgIGlmIChiaWxsZWRCeUluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLmJpbGxlZEJ5SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJiaWxsZWRfYnlfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoYnJhbmNoSW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4uYnJhbmNoSW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJicmFuY2hfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmNyZWF0ZWREYXRlR3RlLFxuICAgICAgXCJjcmVhdGVkX19kYXRlX19ndGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+Y3JlYXRlZERhdGVMdGUsXG4gICAgICBcImNyZWF0ZWRfX2RhdGVfX2x0ZVwiLFxuICAgICk7XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5jcmVhdGVkR3RlLFxuICAgICAgXCJjcmVhdGVkX19ndGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+Y3JlYXRlZEx0ZSxcbiAgICAgIFwiY3JlYXRlZF9fbHRlXCIsXG4gICAgKTtcbiAgICBpZiAoY3JlYXRlZEJ5SW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4uY3JlYXRlZEJ5SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJjcmVhdGVkX2J5X19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5kYXRlR3RlLFxuICAgICAgXCJkYXRlX19ndGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+ZGF0ZUx0ZSxcbiAgICAgIFwiZGF0ZV9fbHRlXCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmRlcGFydG1lbnRJZCxcbiAgICAgIFwiZGVwYXJ0bWVudF9pZFwiLFxuICAgICk7XG4gICAgaWYgKGRlcGFydG1lbnRJZEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLmRlcGFydG1lbnRJZEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwiZGVwYXJ0bWVudF9pZF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChpZEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLmlkSW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJpZF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+aXNCaWxsYWJsZSxcbiAgICAgIFwiaXNfYmlsbGFibGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+b3JkZXJpbmcsXG4gICAgICBcIm9yZGVyaW5nXCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PnNlYXJjaCxcbiAgICAgIFwic2VhcmNoXCIsXG4gICAgKTtcbiAgICBpZiAodGFza0NvbXBvbmVudEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnRhc2tDb21wb25lbnRJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInRhc2tfX2NvbXBvbmVudF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0YXNrSW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4udGFza0luXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidGFza19faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0YXNrUHJvamVjdENsaWVudEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnRhc2tQcm9qZWN0Q2xpZW50SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJ0YXNrX19wcm9qZWN0X19jbGllbnRfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGFza1Byb2plY3RJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi50YXNrUHJvamVjdEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidGFza19fcHJvamVjdF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0YXNrU3ByaW50SW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4udGFza1NwcmludEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidGFza19fc3ByaW50X19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT50aW1lU3BhbixcbiAgICAgIFwidGltZV9zcGFuXCIsXG4gICAgKTtcbiAgICBpZiAodHlwZUluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnR5cGVJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInR5cGVfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodXBkYXRlZEJ5SW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4udXBkYXRlZEJ5SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJ1cGRhdGVkX2J5X19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHdvcmtUeXBlSW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4ud29ya1R5cGVJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcIndvcmtfdHlwZV9faW5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IGxvY2FsVmFySGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG5cbiAgICAvLyBhdXRoZW50aWNhdGlvbiAoY29va2llQXV0aCkgcmVxdWlyZWRcblxuICAgIC8vIGF1dGhlbnRpY2F0aW9uIChqd3RBdXRoKSByZXF1aXJlZFxuICAgIGxvY2FsVmFySGVhZGVycyA9IHRoaXMuY29uZmlndXJhdGlvbi5hZGRDcmVkZW50aWFsVG9IZWFkZXJzKFxuICAgICAgXCJqd3RBdXRoXCIsXG4gICAgICBcIkF1dGhvcml6YXRpb25cIixcbiAgICAgIGxvY2FsVmFySGVhZGVycyxcbiAgICAgIFwiQmVhcmVyIFwiLFxuICAgICk7XG5cbiAgICBjb25zdCBsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID1cbiAgICAgIG9wdGlvbnM/Lmh0dHBIZWFkZXJBY2NlcHQgPz9cbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoW1wiYXBwbGljYXRpb24vanNvblwiXSk7XG4gICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGxvY2FsVmFySGVhZGVycyA9IGxvY2FsVmFySGVhZGVycy5zZXQoXG4gICAgICAgIFwiQWNjZXB0XCIsXG4gICAgICAgIGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2NhbFZhckh0dHBDb250ZXh0OiBIdHRwQ29udGV4dCA9XG4gICAgICBvcHRpb25zPy5jb250ZXh0ID8/IG5ldyBIdHRwQ29udGV4dCgpO1xuXG4gICAgY29uc3QgbG9jYWxWYXJUcmFuc2ZlckNhY2hlOiBib29sZWFuID0gb3B0aW9ucz8udHJhbnNmZXJDYWNoZSA/PyB0cnVlO1xuXG4gICAgbGV0IHJlc3BvbnNlVHlwZV86IFwidGV4dFwiIHwgXCJqc29uXCIgfCBcImJsb2JcIiA9IFwianNvblwiO1xuICAgIGlmIChsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCkge1xuICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkLnN0YXJ0c1dpdGgoXCJ0ZXh0XCIpKSB7XG4gICAgICAgIHJlc3BvbnNlVHlwZV8gPSBcInRleHRcIjtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5pc0pzb25NaW1lKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKVxuICAgICAgKSB7XG4gICAgICAgIHJlc3BvbnNlVHlwZV8gPSBcImpzb25cIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3BvbnNlVHlwZV8gPSBcImJsb2JcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgbG9jYWxWYXJQYXRoID0gYC9hcGkvdjEvam9icy9yZXBvcnQtdXNlcnMvYDtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8QXJyYXk8Sm9iUmVwb3J0VXNlckR0bz4+KFxuICAgICAgXCJnZXRcIixcbiAgICAgIGAke3RoaXMuY29uZmlndXJhdGlvbi5iYXNlUGF0aH0ke2xvY2FsVmFyUGF0aH1gLFxuICAgICAge1xuICAgICAgICBjb250ZXh0OiBsb2NhbFZhckh0dHBDb250ZXh0LFxuICAgICAgICBwYXJhbXM6IGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICByZXNwb25zZVR5cGU6IDxhbnk+cmVzcG9uc2VUeXBlXyxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICBoZWFkZXJzOiBsb2NhbFZhckhlYWRlcnMsXG4gICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgIHRyYW5zZmVyQ2FjaGU6IGxvY2FsVmFyVHJhbnNmZXJDYWNoZSxcbiAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwaSB2aWV3c2V0IGZvciBKb2IgbW9kZWwuXG4gICAqIEBwYXJhbSByZXF1ZXN0UGFyYW1ldGVyc1xuICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAqL1xuICBwdWJsaWMgam9ic1JldHJpZXZlKFxuICAgIHJlcXVlc3RQYXJhbWV0ZXJzOiBKb2JzUmV0cmlldmVSZXF1ZXN0UGFyYW1zLFxuICAgIG9ic2VydmU/OiBcImJvZHlcIixcbiAgICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGh0dHBIZWFkZXJBY2NlcHQ/OiBcImFwcGxpY2F0aW9uL2pzb25cIjtcbiAgICAgIGNvbnRleHQ/OiBIdHRwQ29udGV4dDtcbiAgICAgIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFuO1xuICAgIH0sXG4gICk6IE9ic2VydmFibGU8Sm9iRHRvPjtcbiAgcHVibGljIGpvYnNSZXRyaWV2ZShcbiAgICByZXF1ZXN0UGFyYW1ldGVyczogSm9ic1JldHJpZXZlUmVxdWVzdFBhcmFtcyxcbiAgICBvYnNlcnZlPzogXCJyZXNwb25zZVwiLFxuICAgIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbixcbiAgICBvcHRpb25zPzoge1xuICAgICAgaHR0cEhlYWRlckFjY2VwdD86IFwiYXBwbGljYXRpb24vanNvblwiO1xuICAgICAgY29udGV4dD86IEh0dHBDb250ZXh0O1xuICAgICAgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW47XG4gICAgfSxcbiAgKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8Sm9iRHRvPj47XG4gIHB1YmxpYyBqb2JzUmV0cmlldmUoXG4gICAgcmVxdWVzdFBhcmFtZXRlcnM6IEpvYnNSZXRyaWV2ZVJlcXVlc3RQYXJhbXMsXG4gICAgb2JzZXJ2ZT86IFwiZXZlbnRzXCIsXG4gICAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBodHRwSGVhZGVyQWNjZXB0PzogXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgICBjb250ZXh0PzogSHR0cENvbnRleHQ7XG4gICAgICB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbjtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxKb2JEdG8+PjtcbiAgcHVibGljIGpvYnNSZXRyaWV2ZShcbiAgICByZXF1ZXN0UGFyYW1ldGVyczogSm9ic1JldHJpZXZlUmVxdWVzdFBhcmFtcyxcbiAgICBvYnNlcnZlOiBhbnkgPSBcImJvZHlcIixcbiAgICByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBodHRwSGVhZGVyQWNjZXB0PzogXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgICBjb250ZXh0PzogSHR0cENvbnRleHQ7XG4gICAgICB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbjtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGlkID0gcmVxdWVzdFBhcmFtZXRlcnM/LmlkO1xuICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiUmVxdWlyZWQgcGFyYW1ldGVyIGlkIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgam9ic1JldHJpZXZlLlwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgbG9jYWxWYXJIZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgIC8vIGF1dGhlbnRpY2F0aW9uIChjb29raWVBdXRoKSByZXF1aXJlZFxuXG4gICAgLy8gYXV0aGVudGljYXRpb24gKGp3dEF1dGgpIHJlcXVpcmVkXG4gICAgbG9jYWxWYXJIZWFkZXJzID0gdGhpcy5jb25maWd1cmF0aW9uLmFkZENyZWRlbnRpYWxUb0hlYWRlcnMoXG4gICAgICBcImp3dEF1dGhcIixcbiAgICAgIFwiQXV0aG9yaXphdGlvblwiLFxuICAgICAgbG9jYWxWYXJIZWFkZXJzLFxuICAgICAgXCJCZWFyZXIgXCIsXG4gICAgKTtcblxuICAgIGNvbnN0IGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPVxuICAgICAgb3B0aW9ucz8uaHR0cEhlYWRlckFjY2VwdCA/P1xuICAgICAgdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChbXCJhcHBsaWNhdGlvbi9qc29uXCJdKTtcbiAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgbG9jYWxWYXJIZWFkZXJzID0gbG9jYWxWYXJIZWFkZXJzLnNldChcbiAgICAgICAgXCJBY2NlcHRcIixcbiAgICAgICAgbG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGxvY2FsVmFySHR0cENvbnRleHQ6IEh0dHBDb250ZXh0ID1cbiAgICAgIG9wdGlvbnM/LmNvbnRleHQgPz8gbmV3IEh0dHBDb250ZXh0KCk7XG5cbiAgICBjb25zdCBsb2NhbFZhclRyYW5zZmVyQ2FjaGU6IGJvb2xlYW4gPSBvcHRpb25zPy50cmFuc2ZlckNhY2hlID8/IHRydWU7XG5cbiAgICBsZXQgcmVzcG9uc2VUeXBlXzogXCJ0ZXh0XCIgfCBcImpzb25cIiB8IFwiYmxvYlwiID0gXCJqc29uXCI7XG4gICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKSB7XG4gICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQuc3RhcnRzV2l0aChcInRleHRcIikpIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlXyA9IFwidGV4dFwiO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uLmlzSnNvbk1pbWUobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpXG4gICAgICApIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlXyA9IFwianNvblwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlXyA9IFwiYmxvYlwiO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBsb2NhbFZhclBhdGggPSBgL2FwaS92MS9qb2JzLyR7dGhpcy5jb25maWd1cmF0aW9uLmVuY29kZVBhcmFtKHsgbmFtZTogXCJpZFwiLCB2YWx1ZTogaWQsIGluOiBcInBhdGhcIiwgc3R5bGU6IFwic2ltcGxlXCIsIGV4cGxvZGU6IGZhbHNlLCBkYXRhVHlwZTogXCJudW1iZXJcIiwgZGF0YUZvcm1hdDogdW5kZWZpbmVkIH0pfS9gO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxKb2JEdG8+KFxuICAgICAgXCJnZXRcIixcbiAgICAgIGAke3RoaXMuY29uZmlndXJhdGlvbi5iYXNlUGF0aH0ke2xvY2FsVmFyUGF0aH1gLFxuICAgICAge1xuICAgICAgICBjb250ZXh0OiBsb2NhbFZhckh0dHBDb250ZXh0LFxuICAgICAgICByZXNwb25zZVR5cGU6IDxhbnk+cmVzcG9uc2VUeXBlXyxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICBoZWFkZXJzOiBsb2NhbFZhckhlYWRlcnMsXG4gICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgIHRyYW5zZmVyQ2FjaGU6IGxvY2FsVmFyVHJhbnNmZXJDYWNoZSxcbiAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBzdGF0cyBvZiBqb2JzLlxuICAgKiBAcGFyYW0gcmVxdWVzdFBhcmFtZXRlcnNcbiAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgKi9cbiAgcHVibGljIGpvYnNTdGF0c1JldHJpZXZlKFxuICAgIHJlcXVlc3RQYXJhbWV0ZXJzPzogSm9ic1N0YXRzUmV0cmlldmVSZXF1ZXN0UGFyYW1zLFxuICAgIG9ic2VydmU/OiBcImJvZHlcIixcbiAgICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGh0dHBIZWFkZXJBY2NlcHQ/OiBcImFwcGxpY2F0aW9uL2pzb25cIjtcbiAgICAgIGNvbnRleHQ/OiBIdHRwQ29udGV4dDtcbiAgICAgIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFuO1xuICAgIH0sXG4gICk6IE9ic2VydmFibGU8Sm9iU3RhdHNEdG8+O1xuICBwdWJsaWMgam9ic1N0YXRzUmV0cmlldmUoXG4gICAgcmVxdWVzdFBhcmFtZXRlcnM/OiBKb2JzU3RhdHNSZXRyaWV2ZVJlcXVlc3RQYXJhbXMsXG4gICAgb2JzZXJ2ZT86IFwicmVzcG9uc2VcIixcbiAgICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGh0dHBIZWFkZXJBY2NlcHQ/OiBcImFwcGxpY2F0aW9uL2pzb25cIjtcbiAgICAgIGNvbnRleHQ/OiBIdHRwQ29udGV4dDtcbiAgICAgIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFuO1xuICAgIH0sXG4gICk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEpvYlN0YXRzRHRvPj47XG4gIHB1YmxpYyBqb2JzU3RhdHNSZXRyaWV2ZShcbiAgICByZXF1ZXN0UGFyYW1ldGVycz86IEpvYnNTdGF0c1JldHJpZXZlUmVxdWVzdFBhcmFtcyxcbiAgICBvYnNlcnZlPzogXCJldmVudHNcIixcbiAgICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGh0dHBIZWFkZXJBY2NlcHQ/OiBcImFwcGxpY2F0aW9uL2pzb25cIjtcbiAgICAgIGNvbnRleHQ/OiBIdHRwQ29udGV4dDtcbiAgICAgIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFuO1xuICAgIH0sXG4gICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PEpvYlN0YXRzRHRvPj47XG4gIHB1YmxpYyBqb2JzU3RhdHNSZXRyaWV2ZShcbiAgICByZXF1ZXN0UGFyYW1ldGVycz86IEpvYnNTdGF0c1JldHJpZXZlUmVxdWVzdFBhcmFtcyxcbiAgICBvYnNlcnZlOiBhbnkgPSBcImJvZHlcIixcbiAgICByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBodHRwSGVhZGVyQWNjZXB0PzogXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgICBjb250ZXh0PzogSHR0cENvbnRleHQ7XG4gICAgICB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbjtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGJpbGxlZEJ5SW4gPSByZXF1ZXN0UGFyYW1ldGVycz8uYmlsbGVkQnlJbjtcbiAgICBjb25zdCBicmFuY2hJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5icmFuY2hJbjtcbiAgICBjb25zdCBjcmVhdGVkRGF0ZUd0ZSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5jcmVhdGVkRGF0ZUd0ZTtcbiAgICBjb25zdCBjcmVhdGVkRGF0ZUx0ZSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5jcmVhdGVkRGF0ZUx0ZTtcbiAgICBjb25zdCBjcmVhdGVkR3RlID0gcmVxdWVzdFBhcmFtZXRlcnM/LmNyZWF0ZWRHdGU7XG4gICAgY29uc3QgY3JlYXRlZEx0ZSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5jcmVhdGVkTHRlO1xuICAgIGNvbnN0IGNyZWF0ZWRCeUluID0gcmVxdWVzdFBhcmFtZXRlcnM/LmNyZWF0ZWRCeUluO1xuICAgIGNvbnN0IGRhdGVHdGUgPSByZXF1ZXN0UGFyYW1ldGVycz8uZGF0ZUd0ZTtcbiAgICBjb25zdCBkYXRlTHRlID0gcmVxdWVzdFBhcmFtZXRlcnM/LmRhdGVMdGU7XG4gICAgY29uc3QgZGVwYXJ0bWVudElkID0gcmVxdWVzdFBhcmFtZXRlcnM/LmRlcGFydG1lbnRJZDtcbiAgICBjb25zdCBkZXBhcnRtZW50SWRJbiA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5kZXBhcnRtZW50SWRJbjtcbiAgICBjb25zdCBpZEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LmlkSW47XG4gICAgY29uc3QgaXNCaWxsYWJsZSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5pc0JpbGxhYmxlO1xuICAgIGNvbnN0IG9yZGVyaW5nID0gcmVxdWVzdFBhcmFtZXRlcnM/Lm9yZGVyaW5nO1xuICAgIGNvbnN0IHNlYXJjaCA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5zZWFyY2g7XG4gICAgY29uc3QgdGFza0NvbXBvbmVudEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnRhc2tDb21wb25lbnRJbjtcbiAgICBjb25zdCB0YXNrSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udGFza0luO1xuICAgIGNvbnN0IHRhc2tQcm9qZWN0Q2xpZW50SW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udGFza1Byb2plY3RDbGllbnRJbjtcbiAgICBjb25zdCB0YXNrUHJvamVjdEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnRhc2tQcm9qZWN0SW47XG4gICAgY29uc3QgdGFza1NwcmludEluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnRhc2tTcHJpbnRJbjtcbiAgICBjb25zdCB0eXBlSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8udHlwZUluO1xuICAgIGNvbnN0IHVwZGF0ZWRCeUluID0gcmVxdWVzdFBhcmFtZXRlcnM/LnVwZGF0ZWRCeUluO1xuICAgIGNvbnN0IHdvcmtUeXBlSW4gPSByZXF1ZXN0UGFyYW1ldGVycz8ud29ya1R5cGVJbjtcblxuICAgIGxldCBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKHsgZW5jb2RlcjogdGhpcy5lbmNvZGVyIH0pO1xuICAgIGlmIChiaWxsZWRCeUluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLmJpbGxlZEJ5SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJiaWxsZWRfYnlfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoYnJhbmNoSW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4uYnJhbmNoSW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJicmFuY2hfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmNyZWF0ZWREYXRlR3RlLFxuICAgICAgXCJjcmVhdGVkX19kYXRlX19ndGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+Y3JlYXRlZERhdGVMdGUsXG4gICAgICBcImNyZWF0ZWRfX2RhdGVfX2x0ZVwiLFxuICAgICk7XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5jcmVhdGVkR3RlLFxuICAgICAgXCJjcmVhdGVkX19ndGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+Y3JlYXRlZEx0ZSxcbiAgICAgIFwiY3JlYXRlZF9fbHRlXCIsXG4gICAgKTtcbiAgICBpZiAoY3JlYXRlZEJ5SW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4uY3JlYXRlZEJ5SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJjcmVhdGVkX2J5X19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgPGFueT5kYXRlR3RlLFxuICAgICAgXCJkYXRlX19ndGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+ZGF0ZUx0ZSxcbiAgICAgIFwiZGF0ZV9fbHRlXCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PmRlcGFydG1lbnRJZCxcbiAgICAgIFwiZGVwYXJ0bWVudF9pZFwiLFxuICAgICk7XG4gICAgaWYgKGRlcGFydG1lbnRJZEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLmRlcGFydG1lbnRJZEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwiZGVwYXJ0bWVudF9pZF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChpZEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLmlkSW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJpZF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+aXNCaWxsYWJsZSxcbiAgICAgIFwiaXNfYmlsbGFibGVcIixcbiAgICApO1xuICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgIDxhbnk+b3JkZXJpbmcsXG4gICAgICBcIm9yZGVyaW5nXCIsXG4gICAgKTtcbiAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICA8YW55PnNlYXJjaCxcbiAgICAgIFwic2VhcmNoXCIsXG4gICAgKTtcbiAgICBpZiAodGFza0NvbXBvbmVudEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnRhc2tDb21wb25lbnRJbl0uam9pbihDT0xMRUNUSU9OX0ZPUk1BVFNbXCJjc3ZcIl0pLFxuICAgICAgICBcInRhc2tfX2NvbXBvbmVudF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0YXNrSW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4udGFza0luXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidGFza19faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0YXNrUHJvamVjdENsaWVudEluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnRhc2tQcm9qZWN0Q2xpZW50SW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJ0YXNrX19wcm9qZWN0X19jbGllbnRfX2luXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGFza1Byb2plY3RJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi50YXNrUHJvamVjdEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidGFza19fcHJvamVjdF9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0YXNrU3ByaW50SW4pIHtcbiAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMoXG4gICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICBbLi4udGFza1NwcmludEluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidGFza19fc3ByaW50X19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHR5cGVJbikge1xuICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhcbiAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgIFsuLi50eXBlSW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJ0eXBlX19pblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHVwZGF0ZWRCeUluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLnVwZGF0ZWRCeUluXS5qb2luKENPTExFQ1RJT05fRk9STUFUU1tcImNzdlwiXSksXG4gICAgICAgIFwidXBkYXRlZF9ieV9faW5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh3b3JrVHlwZUluKSB7XG4gICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKFxuICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgWy4uLndvcmtUeXBlSW5dLmpvaW4oQ09MTEVDVElPTl9GT1JNQVRTW1wiY3N2XCJdKSxcbiAgICAgICAgXCJ3b3JrX3R5cGVfX2luXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBsb2NhbFZhckhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuXG4gICAgLy8gYXV0aGVudGljYXRpb24gKGNvb2tpZUF1dGgpIHJlcXVpcmVkXG5cbiAgICAvLyBhdXRoZW50aWNhdGlvbiAoand0QXV0aCkgcmVxdWlyZWRcbiAgICBsb2NhbFZhckhlYWRlcnMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uYWRkQ3JlZGVudGlhbFRvSGVhZGVycyhcbiAgICAgIFwiand0QXV0aFwiLFxuICAgICAgXCJBdXRob3JpemF0aW9uXCIsXG4gICAgICBsb2NhbFZhckhlYWRlcnMsXG4gICAgICBcIkJlYXJlciBcIixcbiAgICApO1xuXG4gICAgY29uc3QgbG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9XG4gICAgICBvcHRpb25zPy5odHRwSGVhZGVyQWNjZXB0ID8/XG4gICAgICB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KFtcImFwcGxpY2F0aW9uL2pzb25cIl0pO1xuICAgIGlmIChsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBsb2NhbFZhckhlYWRlcnMgPSBsb2NhbFZhckhlYWRlcnMuc2V0KFxuICAgICAgICBcIkFjY2VwdFwiLFxuICAgICAgICBsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgbG9jYWxWYXJIdHRwQ29udGV4dDogSHR0cENvbnRleHQgPVxuICAgICAgb3B0aW9ucz8uY29udGV4dCA/PyBuZXcgSHR0cENvbnRleHQoKTtcblxuICAgIGNvbnN0IGxvY2FsVmFyVHJhbnNmZXJDYWNoZTogYm9vbGVhbiA9IG9wdGlvbnM/LnRyYW5zZmVyQ2FjaGUgPz8gdHJ1ZTtcblxuICAgIGxldCByZXNwb25zZVR5cGVfOiBcInRleHRcIiB8IFwianNvblwiIHwgXCJibG9iXCIgPSBcImpzb25cIjtcbiAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpIHtcbiAgICAgIGlmIChsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZC5zdGFydHNXaXRoKFwidGV4dFwiKSkge1xuICAgICAgICByZXNwb25zZVR5cGVfID0gXCJ0ZXh0XCI7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24uaXNKc29uTWltZShsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZClcbiAgICAgICkge1xuICAgICAgICByZXNwb25zZVR5cGVfID0gXCJqc29uXCI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNwb25zZVR5cGVfID0gXCJibG9iXCI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IGxvY2FsVmFyUGF0aCA9IGAvYXBpL3YxL2pvYnMvc3RhdHMvYDtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8Sm9iU3RhdHNEdG8+KFxuICAgICAgXCJnZXRcIixcbiAgICAgIGAke3RoaXMuY29uZmlndXJhdGlvbi5iYXNlUGF0aH0ke2xvY2FsVmFyUGF0aH1gLFxuICAgICAge1xuICAgICAgICBjb250ZXh0OiBsb2NhbFZhckh0dHBDb250ZXh0LFxuICAgICAgICBwYXJhbXM6IGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICByZXNwb25zZVR5cGU6IDxhbnk+cmVzcG9uc2VUeXBlXyxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICBoZWFkZXJzOiBsb2NhbFZhckhlYWRlcnMsXG4gICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgIHRyYW5zZmVyQ2FjaGU6IGxvY2FsVmFyVHJhbnNmZXJDYWNoZSxcbiAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzLFxuICAgICAgfSxcbiAgICApO1xuICB9XG59XG4iXX0=
|