@po-ui/ng-templates 16.0.0-next.2 → 16.1.0
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 +19 -19
- package/esm2022/lib/components/components.module.mjs +1 -1
- package/esm2022/lib/components/index.mjs +1 -1
- package/esm2022/lib/components/po-modal-password-recovery/enums/po-modal-password-recovery-modal-content.enum.mjs +1 -1
- package/esm2022/lib/components/po-modal-password-recovery/enums/po-modal-password-recovery-type.enum.mjs +1 -1
- package/esm2022/lib/components/po-modal-password-recovery/index.mjs +1 -1
- package/esm2022/lib/components/po-modal-password-recovery/interfaces/po-modal-password-recovery.interface.mjs +1 -1
- package/esm2022/lib/components/po-modal-password-recovery/literals/i18n/po-modal-password-recovery-literals.mjs +5 -5
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery-base.component.mjs +1 -1
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery-error-message/po-modal-password-recovery-error-message.component.mjs +2 -2
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery.component.mjs +2 -2
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery.module.mjs +1 -1
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery.service.mjs +1 -1
- package/esm2022/lib/components/po-page-background/index.mjs +1 -1
- package/esm2022/lib/components/po-page-background/po-page-background.component.mjs +2 -2
- package/esm2022/lib/components/po-page-background/po-page-background.module.mjs +1 -1
- package/esm2022/lib/components/po-page-blocked-user/enums/po-page-blocked-user-reason.enum.mjs +1 -1
- package/esm2022/lib/components/po-page-blocked-user/index.mjs +1 -1
- package/esm2022/lib/components/po-page-blocked-user/interfaces/po-page-blocked-user-reason-params.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-blocked-user/literals/i18n/po-page-blocked-user-literals.mjs +6 -6
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-base.component.mjs +1 -1
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-contacts/po-page-blocked-user-contacts.component.mjs +2 -2
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-reason/po-page-blocked-user-reason.component.mjs +2 -2
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user.component.mjs +2 -2
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user.module.mjs +1 -1
- package/esm2022/lib/components/po-page-change-password/index.mjs +1 -1
- package/esm2022/lib/components/po-page-change-password/interfaces/po-page-change-password-recovery.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-change-password/interfaces/po-page-change-password-requirement.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-change-password/interfaces/po-page-change-password.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-change-password/literals/i18n/po-page-change-password-literals.mjs +1 -1
- package/esm2022/lib/components/po-page-change-password/po-page-change-password-base.component.mjs +1 -1
- package/esm2022/lib/components/po-page-change-password/po-page-change-password.component.mjs +2 -2
- package/esm2022/lib/components/po-page-change-password/po-page-change-password.module.mjs +1 -1
- package/esm2022/lib/components/po-page-change-password/po-page-change-password.service.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/index.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-actions.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-back.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-edit.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-remove.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-field.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-metadata.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-options.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/po-page-dynamic-detail-actions.service.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.component.mjs +2 -2
- package/esm2022/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.module.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/index.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-actions.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-cancel.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-save-new.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-save.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-field.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-literals.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-metadata.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-options.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/po-page-dynamic-edit-actions.service.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.component.mjs +2 -2
- package/esm2022/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.module.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-search/index.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-base.component.mjs +6 -9
- package/esm2022/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-literals.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter.component.mjs +2 -2
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search-base.component.mjs +8 -18
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search-filters.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search-literals.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search-options.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search.component.mjs +2 -2
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search.module.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/index.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-actions.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-detail.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-duplicate.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-edit.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-new.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-remove-all.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-remove.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-action.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-table-action.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-field.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-filters.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-metadata.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-options.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-list-base.component.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table-actions.service.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table-literals.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.mjs +14 -29
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table.module.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/index.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/interfaces/po-job-scheduler-internal.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/interfaces/po-job-scheduler.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-base.component.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-execution/po-page-job-scheduler-execution.component.mjs +2 -2
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-internal.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-literals.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-lookup.service.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/index.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-job-scheduler-parameters-template/index.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-job-scheduler-parameters-template/po-job-scheduler-parameters-template.directive.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-page-job-scheduler-parameters.component.mjs +2 -2
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-summary/po-page-job-scheduler-summary.component.mjs +2 -2
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler.component.mjs +2 -2
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler.module.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler.service.mjs +1 -1
- package/esm2022/lib/components/po-page-login/enums/po-page-login-authentication-type.enum.mjs +1 -1
- package/esm2022/lib/components/po-page-login/index.mjs +1 -1
- package/esm2022/lib/components/po-page-login/interfaces/po-page-login-custom-field.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-login/interfaces/po-page-login-literals.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-login/interfaces/po-page-login-recovery.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-login/interfaces/po-page-login.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-login/po-page-login-base.component.mjs +5 -5
- package/esm2022/lib/components/po-page-login/po-page-login-popover/po-page-login-popover.component.mjs +2 -2
- package/esm2022/lib/components/po-page-login/po-page-login.component.mjs +2 -2
- package/esm2022/lib/components/po-page-login/po-page-login.module.mjs +1 -1
- package/esm2022/lib/components/po-page-login/po-page-login.service.mjs +1 -1
- package/esm2022/lib/index.mjs +1 -1
- package/esm2022/lib/po-templates.module.mjs +1 -1
- package/esm2022/lib/services/index.mjs +1 -1
- package/esm2022/lib/services/po-page-customization/index.mjs +1 -1
- package/esm2022/lib/services/po-page-customization/po-page-customization.module.mjs +1 -1
- package/esm2022/lib/services/po-page-customization/po-page-customization.service.mjs +1 -1
- package/esm2022/lib/services/po-page-customization/po-page-dynamic-options.interface.mjs +1 -1
- package/esm2022/lib/services/po-page-dynamic/index.mjs +1 -1
- package/esm2022/lib/services/po-page-dynamic/po-page-dynamic-literals.interface.mjs +1 -1
- package/esm2022/lib/services/po-page-dynamic/po-page-dynamic.module.mjs +1 -1
- package/esm2022/lib/services/po-page-dynamic/po-page-dynamic.service.mjs +1 -1
- package/esm2022/lib/services/services.module.mjs +1 -1
- package/esm2022/lib/utils/util.mjs +1 -1
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/po-ui-ng-templates.mjs +107 -135
- package/fesm2022/po-ui-ng-templates.mjs.map +1 -1
- package/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-base.component.d.ts +3 -2
- package/lib/components/po-page-dynamic-search/po-page-dynamic-search-base.component.d.ts +6 -3
- package/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.d.ts +14 -9
- package/package.json +4 -4
- package/po-ui-ng-templates-16.1.0.tgz +0 -0
- package/schematics/README.md +14 -14
- package/schematics/collection.json +50 -50
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-add/schema.json +16 -16
- package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +14 -14
- package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-blocked-user/schema.json +67 -67
- package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +14 -14
- package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-change-password/schema.json +67 -67
- package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
- package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +23 -23
- package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-dynamic-detail/schema.json +67 -67
- package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
- package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +23 -23
- package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-dynamic-edit/schema.json +67 -67
- package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
- package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +28 -28
- package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-dynamic-search/schema.json +67 -67
- package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
- package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +21 -21
- package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-dynamic-table/schema.json +67 -67
- package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +3 -3
- package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +17 -17
- package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-job-scheduler/schema.json +67 -67
- package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +14 -14
- package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-login/schema.json +67 -67
- package/po-ui-ng-templates-16.0.0-next.2.tgz +0 -0
|
@@ -425,4 +425,4 @@ export function sortArrayOfObjects(items, key, isAscendingOrder) {
|
|
|
425
425
|
}
|
|
426
426
|
});
|
|
427
427
|
}
|
|
428
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvbGliL3V0aWxzL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRTs7R0FFRztBQUNILE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsK0NBQStDO0lBQy9DLE9BQU8sU0FBUyxDQUFDLFFBQVEsSUFBSSxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDekQsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QjtJQUNyQyxNQUFNLFFBQVEsR0FBRyxDQUFDLGtCQUFrQixFQUFFLElBQUksZUFBZSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUV6RixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNqQyxPQUFPLGVBQWUsQ0FBQztLQUN4QjtJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsR0FBUTtJQUN2QyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtRQUMzQixHQUFHLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9CLE9BQU8sR0FBRyxLQUFLLE1BQU0sSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxFQUFFLENBQUM7S0FDckQ7SUFFRCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtRQUMzQixPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUM7S0FDbEI7SUFFRCxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFV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QkFBZ0IsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztTQUMxRDtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgcG9Mb2NhbGVzLCBwb0xvY2FsZURlZmF1bHQgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XHJcblxyXG4vKipcclxuICogUmV0b3JuYSBvIGlkaW9tYSBhdHVhbCBkbyBuYXZlZ2Fkb3JcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRCcm93c2VyTGFuZ3VhZ2UoKTogc3RyaW5nIHtcclxuICAvLyBuYXZpZ2F0b3IudXNlckxhbmd1YWdlIGlzIHRoZSB2YWx1ZSBmb3IgSUUxMFxyXG4gIHJldHVybiBuYXZpZ2F0b3IubGFuZ3VhZ2UgfHwgbmF2aWdhdG9yWyd1c2VyTGFuZ3VhZ2UnXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldG9ybmEgbyBpZGlvbWEgZG8gbmF2ZWdhZG9yLCBjb20gc29tZW50ZSBhcyBkdWFzIHByaW1laXJhcyBsZXRyYXMuIFBvciBleGVtcGxvOiBcInB0XCIgb3UgXCJlc1wiLlxyXG4gKlxyXG4gKiBDYXNvIG8gdmFsb3IgcmV0b3JuYWRvIHBlbG8gbmF2ZWdhZG9yIG7Do28gZXN0aXZlciBkZW50cm8gZG9zIGlkaW9tYXMgc3Vwb3J0YWRvcyBwZWxvIFBPLFxyXG4gKiBzZXLDoSByZXRvcm5hZG8gYSBsaW5ndWFnZW0gcGFkcsOjbyAocG9Mb2NhbGVEZWZhdWx0KS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRTaG9ydEJyb3dzZXJMYW5ndWFnZSgpOiBzdHJpbmcge1xyXG4gIGNvbnN0IGxhbmd1YWdlID0gKGdldEJyb3dzZXJMYW5ndWFnZSgpIHx8IHBvTG9jYWxlRGVmYXVsdCkudG9Mb3dlckNhc2UoKS5zdWJzdHJpbmcoMCwgMik7XHJcblxyXG4gIGlmICghcG9Mb2NhbGVzLmluY2x1ZGVzKGxhbmd1YWdlKSkge1xyXG4gICAgcmV0dXJuIHBvTG9jYWxlRGVmYXVsdDtcclxuICB9XHJcblxyXG4gIHJldHVybiBsYW5ndWFnZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0Jvb2xlYW4odmFsOiBhbnkpOiBib29sZWFuIHtcclxuICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcclxuICAgIHZhbCA9IHZhbC50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcclxuICAgIHJldHVybiB2YWwgPT09ICd0cnVlJyB8fCB2YWwgPT09ICdvbicgfHwgdmFsID09PSAnJztcclxuICB9XHJcblxyXG4gIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xyXG4gICAgcmV0dXJuIHZhbCA9PT0gMTtcclxuICB9XHJcblxyXG4gIHJldHVybiAhIXZhbDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0ludCh2YWx1ZTogYW55LCB2YWx1ZURlZmF1bHQ/OiBhbnkpOiBudW1iZXIge1xyXG4gIGNvbnN0IHZhbGlkTnVtYmVyID0gcGFyc2VJbnQodmFsdWUsIDEwKTtcclxuICBjb25zdCB2YWxpZERlZmF1bHRWYWx1ZSA9IHBhcnNlSW50KHZhbHVlRGVmYXVsdCwgMTApO1xyXG4gIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHZhbGlkRGVmYXVsdFZhbHVlIHx8IHZhbGlkRGVmYXVsdFZhbHVlID09PSAwID8gdmFsaWREZWZhdWx0VmFsdWUgOiB1bmRlZmluZWQ7XHJcblxyXG4gIHJldHVybiB2YWxpZE51bWJlciB8fCB2YWxpZE51bWJlciA9PT0gMCA/IHZhbGlkTnVtYmVyIDogZGVmYXVsdFZhbHVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNUeXBlb2Yob2JqZWN0OiBhbnksIHR5cGU6IGFueSkge1xyXG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSB0eXBlO1xyXG59XHJcblxyXG4vKipcclxuICpcclxuICogQHBhcmFtIGZuIEZ1bsOnw6NvIHF1ZSBzZXLDoSBleGVjdXRhZGEgZGVudHJvIGRvIGNvbnRleHRvLiBQb2RlbmRvIHNlciBvIG5vbWUgZGEgZnVuw6fDo29cclxuICogb3UgYSByZWZlcsOqbmNpYSBkYSBtZXNtYS5cclxuICpcclxuICogQHBhcmFtIGNvbnRleHQgQ29udGV4dG8gZG8gcXVhbCBhIGZ1bsOnw6NvIHNlcsOhIGV4ZWN1dGFkYS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjYWxsRnVuY3Rpb24oZm46IGFueSwgY29udGV4dDogYW55LCBwYXJhbT8pOiB2b2lkIHtcclxuICBpZiAoaXNUeXBlb2YoZm4sICdmdW5jdGlvbicpKSB7XHJcbiAgICBmbi5jYWxsKGNvbnRleHQsIHBhcmFtKTtcclxuICB9IGVsc2Uge1xyXG4gICAgY29udGV4dFtmbl0ocGFyYW0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRJc29Ub0RhdGUodmFsdWU6IHN0cmluZywgc3RhcnQ6IGJvb2xlYW4sIGVuZDogYm9vbGVhbikge1xyXG4gIGlmICh2YWx1ZSkge1xyXG4gICAgY29uc3QgZGF5ID0gcGFyc2VJbnQodmFsdWUuc3Vic3RyaW5nKDgsIDEwKSwgMTApO1xyXG4gICAgY29uc3QgbW9udGggPSBwYXJzZUludCh2YWx1ZS5zdWJzdHJpbmcoNSwgNyksIDEwKTtcclxuICAgIGNvbnN0IHllYXIgPSBwYXJzZUludCh2YWx1ZS5zdWJzdHJpbmcoMCwgNCksIDEwKTtcclxuICAgIGlmIChzdGFydCkge1xyXG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXksIDAsIDAsIDApO1xyXG5cclxuICAgICAgc2V0WWVhckZyb20wVG8xMDAoZGF0ZSwgeWVhcik7XHJcblxyXG4gICAgICByZXR1cm4gZGF0ZTtcclxuICAgIH0gZWxzZSBpZiAoZW5kKSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSwgMjMsIDU5LCA1OSk7XHJcblxyXG4gICAgICBzZXRZZWFyRnJvbTBUbzEwMChkYXRlLCB5ZWFyKTtcclxuXHJcbiAgICAgIHJldHVybiBkYXRlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgbWlsbGlzZWNvbmRzID0gRGF0ZS5wYXJzZSh2YWx1ZSk7XHJcbiAgICAgIGNvbnN0IHRpbWV6b25lID0gbmV3IERhdGUoKS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDA7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZShtaWxsaXNlY29uZHMgKyB0aW1lem9uZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29udmVydERhdGVUb0lTT0V4dGVuZGVkKGRhdGU6IERhdGUsIHRpbWU/OiBzdHJpbmcpIHtcclxuICBpZiAoZGF0ZSkge1xyXG4gICAgY29uc3QgZ2V0TW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG4gICAgY29uc3QgZGF5ID0gZGF0ZS5nZXREYXRlKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0RGF0ZSgpIDogZGF0ZS5nZXREYXRlKCk7XHJcbiAgICBjb25zdCBtb250aCA9IGdldE1vbnRoIDwgMTAgPyAnMCcgKyBnZXRNb250aCA6IGdldE1vbnRoO1xyXG4gICAgY29uc3QgeWVhciA9IGZvcm1hdFllYXIoZGF0ZS5nZXRGdWxsWWVhcigpKTtcclxuXHJcbiAgICBjb25zdCBkYXRlU3RyaW5nID0gZGF0ZS50b1N0cmluZygpO1xyXG5cclxuICAgIGlmICh0aW1lKSB7XHJcbiAgICAgIHJldHVybiB5ZWFyICsgJy0nICsgbW9udGggKyAnLScgKyBkYXkgKyB0aW1lO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICB5ZWFyICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIG1vbnRoICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIGRheSArXHJcbiAgICAgICAgJ1QnICtcclxuICAgICAgICBkYXRlU3RyaW5nLnN1YnN0cmluZygxNiwgMjQpICtcclxuICAgICAgICBkYXRlU3RyaW5nLnN1YnN0cmluZygyOCwgMzEpICtcclxuICAgICAgICAnOicgK1xyXG4gICAgICAgIGRhdGVTdHJpbmcuc3Vic3RyaW5nKDMxLCAzMylcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogVHJhbnNmb3JtYSBvIGFubyBlbSB1bWEgc3RyaW5nIG5vIGZvcm1hdG8geXl5eSBlIGNhc28gbyBhbm8gc2VqYSBtZW5vciBxdWUgMTAwMCBwcmVlbmNoZSBjb20gemVyb3MgYSBlc3F1ZXJkYS5cclxuICpcclxuICogQHBhcmFtIHllYXIgQW5vXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0WWVhcih5ZWFyOiBudW1iZXIpIHtcclxuICBpZiAoeWVhciA+PSAxMDAwKSB7XHJcbiAgICByZXR1cm4geWVhci50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcbiAgaWYgKHllYXIgPiA5OSAmJiB5ZWFyIDwgMTAwMCkge1xyXG4gICAgcmV0dXJuIGAwJHt5ZWFyfWA7XHJcbiAgfVxyXG5cclxuICBpZiAoeWVhciA+IDkgJiYgeWVhciA8IDEwMCkge1xyXG4gICAgcmV0dXJuIGAwMCR7eWVhcn1gO1xyXG4gIH1cclxuXHJcbiAgaWYgKHllYXIgPj0gMCAmJiB5ZWFyIDwgMTApIHtcclxuICAgIHJldHVybiBgMDAwJHt5ZWFyfWA7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNFcXVhbHModmFsdWUsIGNvbXBhcmVkVmFsdWUpIHtcclxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpID09PSBKU09OLnN0cmluZ2lmeShjb21wYXJlZFZhbHVlKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENhc28gbyBhbm8gb3JpZ2luYWwgZGEgZGF0YSBzZWphIGVudHJlIDAgZSAxMDAgYXRyaWJ1aSBlc3NlIHZhbG9yIGFvIGFubywgcG9pcyBvIGBuZXcgRGF0ZWAgZG8gamF2YXNjcmlwdCB0cmFuc2Zvcm1hIG8gYW5vIHBhcmEgMTkwWC5cclxuICpcclxuICogQHBhcmFtIGRhdGUgRGF0YVxyXG4gKiBAcGFyYW0geWVhciBBbm8gb3JpZ2luYWxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRZZWFyRnJvbTBUbzEwMChkYXRlOiBEYXRlLCB5ZWFyOiBudW1iZXIpIHtcclxuICBpZiAoeWVhciA+PSAwICYmIHllYXIgPCAxMDApIHtcclxuICAgIGRhdGUuc2V0RnVsbFllYXIoeWVhcik7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc29ydE9wdGlvbnNCeVByb3BlcnR5KG9wdGlvbnM6IEFycmF5PGFueT4sIHByb3BlcnR5OiBzdHJpbmcpIHtcclxuICBvcHRpb25zLnNvcnQoKG9wdGlvbkEsIG9wdGlvbkIpID0+IHtcclxuICAgIG9wdGlvbkEgPSBvcHRpb25BW3Byb3BlcnR5XS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBvcHRpb25CID0gb3B0aW9uQltwcm9wZXJ0eV0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgIGlmIChvcHRpb25BIDwgb3B0aW9uQikge1xyXG4gICAgICByZXR1cm4gLTE7XHJcbiAgICB9XHJcbiAgICBpZiAob3B0aW9uQSA+IG9wdGlvbkIpIHtcclxuICAgICAgcmV0dXJuIDE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gMDtcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUR1cGxpY2F0ZWRPcHRpb25zKGxpc3Q6IEFycmF5PGFueT4pIHtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgIGlmIChpID09PSAwKSB7XHJcbiAgICAgIGNvbnRpbnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChsaXN0LmZpbmRJbmRleChvcCA9PiBvcC52YWx1ZSA9PT0gbGlzdFtpXS52YWx1ZSkgIT09IGkpIHtcclxuICAgICAgbGlzdC5zcGxpY2UoaSwgMSk7XHJcbiAgICAgIGktLTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVVbmRlZmluZWRBbmROdWxsT3B0aW9ucyhsaXN0OiBBcnJheTxhbnk+KSB7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICBpZiAobGlzdFtpXS52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGxpc3RbaV0udmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgbGlzdC5zcGxpY2UoaSwgMSk7XHJcbiAgICAgIGktLTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZFZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICByZXR1cm4gKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09ICcnKSB8fCB2YWx1ZSA9PT0gZmFsc2U7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0V4dGVybmFsTGluayh1cmwpOiBib29sZWFuIHtcclxuICByZXR1cm4gdXJsID8gdXJsLnN0YXJ0c1dpdGgoJ2h0dHAnKSA6IGZhbHNlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gb3BlbkV4dGVybmFsTGluayh1cmwpOiB2b2lkIHtcclxuICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1hdHRlZExpbmsobGluazogc3RyaW5nKTogc3RyaW5nIHtcclxuICBsZXQgZm9ybWF0dGVkTGluayA9ICcnO1xyXG4gIC8vIFJldGlyYSB0b2RvcyBvcyBwb250b3Mgbm8gY29tZcOnbyBkYSBVUkwuXHJcbiAgaWYgKGxpbmspIHtcclxuICAgIGZvcm1hdHRlZExpbmsgPSBsaW5rLnJlcGxhY2UoL14oXFwuKSsvZywgJycpO1xyXG4gIH1cclxuICAvLyBWZXJpZmljYSBzZSBmb2kgdXRpbGl6YWRvIHVtYSByb3RhIHF1ZSBuw6NvIGNvbWVjZSBjb20gYmFycmEuXHJcbiAgaWYgKCFmb3JtYXR0ZWRMaW5rLnN0YXJ0c1dpdGgoJy8nKSkge1xyXG4gICAgZm9ybWF0dGVkTGluayA9ICcvJy5jb25jYXQoZm9ybWF0dGVkTGluayk7XHJcbiAgfVxyXG4gIHJldHVybiBmb3JtYXR0ZWRMaW5rO1xyXG59XHJcblxyXG4vKipcclxuICogTcOpdG9kbyByZXNwb25zw6F2ZWwgcG9yIG9yZGVuYXIgZG9pcyB2YWxvcmVzLlxyXG4gKlxyXG4gKiBAcGFyYW0gbGVmdFNpZGUgUHJpbWVpcm8gdmFsb3IgYSBzZXIgY29tcGFyYWRvLlxyXG4gKiBAcGFyYW0gcmlnaHRTaWRlIFNlZ3VuZG8gdmFsb3IgYSBzZXIgY29tcGFyYWRvLlxyXG4gKiBAcGFyYW0gYXNjZW5kaW5nIERldGVybWluYSBzZSBzZXLDoSBlbSBvcmRlbSBhc2NlbmRlbnRlIG91IGRlc2NlbmRlbnRlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNvcnRWYWx1ZXMobGVmdFNpZGU6IHN0cmluZywgcmlnaHRTaWRlOiBzdHJpbmcsIGFzY2VuZGluZzogYm9vbGVhbiA9IHRydWUpOiBudW1iZXIge1xyXG4gIGlmIChhc2NlbmRpbmcpIHtcclxuICAgIGlmIChsZWZ0U2lkZSA8IHJpZ2h0U2lkZSkge1xyXG4gICAgICByZXR1cm4gLTE7XHJcbiAgICB9IGVsc2UgaWYgKGxlZnRTaWRlID4gcmlnaHRTaWRlKSB7XHJcbiAgICAgIHJldHVybiAxO1xyXG4gICAgfVxyXG4gIH0gZWxzZSBpZiAoYXNjZW5kaW5nID09PSBmYWxzZSkge1xyXG4gICAgaWYgKGxlZnRTaWRlIDwgcmlnaHRTaWRlKSB7XHJcbiAgICAgIHJldHVybiAxO1xyXG4gICAgfSBlbHNlIGlmIChsZWZ0U2lkZSA+IHJpZ2h0U2lkZSkge1xyXG4gICAgICByZXR1cm4gLTE7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiAwO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVEYXRlUmFuZ2UoZGF0ZTogRGF0ZSwgZGF0ZVN0YXJ0OiBEYXRlLCBkYXRlRW5kOiBEYXRlKSB7XHJcbiAgaWYgKGRhdGVTdGFydCAmJiBkYXRlRW5kKSB7XHJcbiAgICByZXR1cm4gZGF0ZSA+PSBkYXRlU3RhcnQgJiYgZGF0ZSA8PSBkYXRlRW5kO1xyXG4gIH0gZWxzZSBpZiAoZGF0ZVN0YXJ0ICYmICFkYXRlRW5kKSB7XHJcbiAgICByZXR1cm4gZGF0ZSA+PSBkYXRlU3RhcnQ7XHJcbiAgfSBlbHNlIGlmICghZGF0ZVN0YXJ0ICYmIGRhdGVFbmQpIHtcclxuICAgIHJldHVybiBkYXRlIDw9IGRhdGVFbmQ7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNhcGl0YWxpemVGaXJzdExldHRlcih0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIHJldHVybiBgJHt0ZXh0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7dGV4dC5zbGljZSgxKX1gO1xyXG59XHJcblxyXG4vKipcclxuICogTWFwZWlhIHVtIG5vdm8gYXJyYXkgYXBlbmFzIGNvbSBhcyBwcm9wcmllZGFkZXMgZGVmaW5pZGFzIHBlbG8gZGVzZW52b2x2ZWRvciBiYXNlYWRvIGVtIHVtIGFycmF5IGRlXHJcbiAqIG9yaWdlbS5cclxuICpcclxuICogRXhlbXBsbzpcclxuICpcclxuICogYGBgXHJcbiAqIGNvbnN0IHBlb3BsZSA9IFtcclxuICogIHsgaWQ6IDEsIG5hbWU6ICdGdWxhbm8nLCBiaXJ0aGRhdGU6ICcxOTgwLTExLTAxJywgZ2VucmU6ICdNYWxlJywgY2l0eTogJ1PDo28gUGF1bG8nLCBkZXBlbmRlbnRzOiAyIH0sXHJcbiAqICB7IGlkOiAyLCBuYW1lOiAnQmVsdHJhbm8nLCBiaXJ0aGRhdGU6ICcxOTk3LTAxLTIxJywgZ2VucmU6ICdGZW1hbGUnLCBjaXR5OiAnSm9pbnZpbGxlJywgZGVwZW5kZW50czogMCB9LFxyXG4gKiAgeyBpZDogMywgbmFtZTogJ1NpY2xhbm8nLCBiaXJ0aGRhdGU6ICcxOTk1LTA3LTE1JywgZ2VucmU6ICdNYWxlJywgY2l0eTogJ0pvaW52aWxsZScsIGRlcGVuZGVudHM6IDAgfVxyXG4gKiBdO1xyXG4gKlxyXG4gKiBjb25zdCBwcm9wZXJ0aWVzID0gWydpZCcsICduYW1lJ107XHJcbiAqXHJcbiAqIGNvbnN0IGlkQW5kTmFtZSA9IG1hcEFycmF5QnlQcm9wZXJ0aWVzKHBlb3BsZSwgcHJvcGVydGllcyk7XHJcbiAqXHJcbiAqIGNvbnNvbGUubG9nKGlkQW5kTmFtZSk7IC8vIFt7IGlkOiAxLCBuYW1lOiAnRnVsYW5vJyB9LCB7IGlkOiAyLCBuYW1lOiAnQmVsdHJhbm8nIH0sIHsgaWQ6IDMsIG5hbWU6ICdTaWNsYW5vJyB9XVxyXG4gKiBgYGBcclxuICpcclxuICogVW0gb3V0cm8gdXNvIHBhcmEgbyBtw6l0b2RvIMOpIFwicGFyZWFyXCIgdG9kb3Mgb3Mgb2JqZXRvcyBkbyBhcnJheSBjb20gYXMgbWVzbWFzIHByb3ByaWVkYWRlcy5cclxuICpcclxuICogYGBgXHJcbiAqIGNvbnN0IGN1c3RvbWVycyA9IFtcclxuICogIHsgaWQ6IDEsIG5hbWU6ICdGdWxhbm8nLCBjaXR5OiAnU8OjbyBQYXVsbycsIGRlcGVuZGVudHM6IDIgfSwgLy8gc2VtIGdlbnJlXHJcbiAqICB7IGlkOiAyLCBuYW1lOiAnQmVsdHJhbm8nLCBnZW5yZTogJ0ZlbWFsZScsIGNpdHk6ICdKb2ludmlsbGUnIH0sIC8vIHNlbSBkZXBlbmRlbnRzXHJcbiAqICB7IGlkOiAzLCBuYW1lOiAnU2ljbGFubycsIGdlbnJlOiAnTWFsZScsIGNpdHk6ICdKb2ludmlsbGUnLCBkZXBlbmRlbnRzOiAwIH1cclxuICogXTtcclxuICogY29uc3QgcHJvcGVydGllcyA9IFsnaWQnLCAnbmFtZScsICdjaXR5JywgJ2dlbnJlJywgJ2RlcGVuZGVudHMnXTtcclxuICpcclxuICogY29uc3QgcGF0dGVybiA9IG1hcEFycmF5QnlQcm9wZXJ0aWVzKGN1c3RvbWVycywgcHJvcGVydGllcyk7XHJcbiAqIGNvbnNvbGUubG9nKHBhdHRlcm4pO1xyXG4gKlxyXG4gKiAvLyBbXHJcbiAqIC8vICAgeyBpZDogMSwgbmFtZTogJ0Z1bGFubycsIGNpdHk6ICdTw6NvIFBhdWxvJywgZ2VucmU6IHVuZGVmaW5lZCwgZGVwZW5kZW50czogMiB9LFxyXG4gKiAvLyAgIHsgaWQ6IDIsIG5hbWU6ICdCZWx0cmFubycsIGNpdHk6ICdKb2ludmlsbGUnLCBnZW5yZTogJ0ZlbWFsZScsIGRlcGVuZGVudHM6IHVuZGVmaW5lZCB9LFxyXG4gKiAvLyAgIHsgaWQ6IDMsIG5hbWU6ICdTaWNsYW5vJywgY2l0eTogJ0pvaW52aWxsZScsIGdlbnJlOiAnTWFsZScsIGRlcGVuZGVudHM6IDAgfVxyXG4gKiAvLyBdXHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAcGFyYW0gaXRlbXMge0FycmF5PGFueT59IEFycmF5IGRlIGl0ZW1zIG9yaWdpbmFsLlxyXG4gKiBAcGFyYW0gcHJvcGVydGllcyB7QXJyYXk8c3RyaW5nPn0gQXJyYXkgZGUgc3RyaW5nIGNvbSBhIGxpc3RhIGRlIHByb3ByaWVkYWRlcyBxdWUgZGV2ZW0gc2VyIHJldG9ybmFkYXMuXHJcbiAqXHJcbiAqIEByZXR1cm5zIEFycmF5PGFueT5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBtYXBBcnJheUJ5UHJvcGVydGllcyhpdGVtczogQXJyYXk8YW55PiA9IFtdLCBwcm9wZXJ0aWVzOiBBcnJheTxzdHJpbmc+ID0gW10pOiBBcnJheTxhbnk+IHtcclxuICByZXR1cm4gaXRlbXMubWFwKGl0ZW0gPT4gbWFwT2JqZWN0QnlQcm9wZXJ0aWVzKGl0ZW0sIHByb3BlcnRpZXMpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIE1hcGVpYSB1bSBub3ZvIG9iamV0byBhcGVuYXMgY29tIGFzIHByb3ByaWVkYWRlcyBkZWZpbmlkYXMgcGVsbyBkZXNlbnZvbHZlZG9yLlxyXG4gKlxyXG4gKiBFeGVtcGxvOlxyXG4gKlxyXG4gKiBgYGBcclxuICogY29uc3QgcGVyc29uID0geyBpZDogMSwgbmFtZTogJ0Z1bGFubycsIGJpcnRoZGF0ZTogJzE5ODAtMTEtMDEnLCBnZW5yZTogJ01hbGUnLCBjaXR5OiAnU8OjbyBQYXVsbycsIGRlcGVuZGVudHM6IDIgfTtcclxuICpcclxuICogY29uc3QgcHJvcGVydGllcyA9IFsnaWQnLCAnbmFtZSddO1xyXG4gKlxyXG4gKiBjb25zdCBpZEFuZE5hbWUgPSBtYXBPYmplY3RCeVByb3BlcnRpZXMocGVyc29uLCBwcm9wZXJ0aWVzKTtcclxuICpcclxuICogY29uc29sZS5sb2coaWRBbmROYW1lKTsgLy8geyBpZDogMSwgbmFtZTogJ0Z1bGFubycgfVxyXG4gKiBgYGBcclxuICpcclxuICogQHBhcmFtIG9iamVjdCB7QXJyYXk8YW55Pn0gQXJyYXkgZGUgaXRlbXMgb3JpZ2luYWwuXHJcbiAqIEBwYXJhbSBwcm9wZXJ0aWVzIHtBcnJheTxzdHJpbmc+fSBBcnJheSBkZSBzdHJpbmcgY29tIGEgbGlzdGEgZGUgcHJvcHJpZWRhZGVzIHF1ZSBkZXZlbSBzZXIgcmV0b3JuYWRhcy5cclxuICpcclxuICogQHJldHVybnMgQXJyYXk8YW55PlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1hcE9iamVjdEJ5UHJvcGVydGllcyhvYmplY3Q6IGFueSA9IHt9LCBwcm9wZXJ0aWVzOiBBcnJheTxzdHJpbmc+ID0gW10pIHtcclxuICBjb25zdCBnZXRTZWxlY3RlZFByb3BlcnRpZXMgPSAoc2VsZWN0ZWRQcm9wZXJ0aWVzLCBwcm9wZXJ0eSkgPT4gKHtcclxuICAgIC4uLnNlbGVjdGVkUHJvcGVydGllcyxcclxuICAgIFtwcm9wZXJ0eV06IG9iamVjdFtwcm9wZXJ0eV1cclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIHByb3BlcnRpZXMucmVkdWNlKGdldFNlbGVjdGVkUHJvcGVydGllcywge30pO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0b3JuYSBvcyB2YWxvcmVzIGRlIHVtIG9iamV0byBkZW50cm8gZGUgdW0gYXJyYXkuXHJcbiAqXHJcbiAqID4gU2ltdWxhIG8gT2JqZWN0LnZhbHVlcyhvYmopLCBvIG1lc21vIGRldmUgc2VyIHJlbW92aWRvIGFzc2ltIHF1ZSBhIHZlcnPDo28gdHlwZXNjcml0IGZvciBhdHVhbGl6YWRhLlxyXG4gKlxyXG4gKiBAcGFyYW0gb2JqZWN0IE9iamV0byBkZSBvbmRlIHNlcsOhIHBlZ28gb3MgdmFsb3Jlcy5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZXNGcm9tT2JqZWN0KG9iamVjdDogYW55ID0ge30pOiBBcnJheTxhbnk+IHtcclxuICByZXR1cm4gT2JqZWN0LmtleXMob2JqZWN0KS5tYXAocHJvcGVydHkgPT4gb2JqZWN0W3Byb3BlcnR5XSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBhZGljaW9uYSAwIG5vIHRlbXBvIGluZm9ybWFkbywgY2FzbyBtZW5vciBxIDEwXHJcbiAqXHJcbiAqIEBwYXJhbSB0aW1lXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYWRkWmVybyh0aW1lOiBudW1iZXIpIHtcclxuICBpZiAoIXRpbWUpIHtcclxuICAgIHJldHVybiAnMDAnO1xyXG4gIH1cclxuXHJcbiAgaWYgKHRpbWUgPCAxMCkge1xyXG4gICAgcmV0dXJuIGAwJHt0aW1lfWA7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gdGltZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSBkbyBvYmpldG8gYXMgcHJvcHJpZWRhZGVzIGVzcGVjaWZpY2FkYXMuXHJcbiAqXHJcbiAqIEV4ZW1wbG86XHJcbiAqXHJcbiAqIGBgYFxyXG4gKiBrZXk6IFsnaWQnLCAnY3BmJ11cclxuICogbmV3SXRlbVZhbHVlOiB7IGlkOiAnMTIzJywgY3BmOiAnNDU2JywgbmFtZTogJ1Rlc3QnIH1cclxuICogUmVzdWx0YWRvOiB7IG5hbWU6ICdUZXN0JyB9XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAcGFyYW0ga2V5cyBsaXN0YSBkZSBwcm9wcmllZGFkZXMgcGFyYSBzZXIgcmVtb3ZpZGEgZG8gb2JqZXRvLlxyXG4gKiBAcGFyYW0gbmV3SXRlbVZhbHVlIG9iamV0byBxdWUgc2UgZGVzZWphIHJlbW92ZXIgYXMgcHJvcHJpZWRhZGVzLlxyXG4gKiBAcmV0dXJucyBvYmpldG8gc2VtIGFzIHByb3ByaWVkYWRlcyBlc3BlY2lmaWNhZGFzLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUtleXNQcm9wZXJ0aWVzKGtleXM6IEFycmF5PGFueT4sIG5ld0l0ZW1WYWx1ZTogYW55KSB7XHJcbiAga2V5cy5mb3JFYWNoKGtleSA9PiBkZWxldGUgbmV3SXRlbVZhbHVlW2tleV0pO1xyXG4gIHJldHVybiBuZXdJdGVtVmFsdWU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgb2JqZXRvcyBkdXBsaWNhZG9zLlxyXG4gKlxyXG4gKiBFeGVtcGxvOlxyXG4gKlxyXG4gKiBgYGBcclxuICogaXRlbTogW3tjb3VudHJ5OiAnamFwYW8nfSwge2NvdW50cnk6ICdicmFzaWwnfSAsIHtjb3VudHJ5OiAnY2hpbmEnfV1cclxuICogaXRlbTI6IFt7Y291bnRyeTogJ2NoaWxlJ30sIHtjb3VudHJ5OiAnYnJhc2lsJ30sIHtjb3VudHJ5OiAnY2FuYWRhJ31dXHJcbiAqIGtleTogJ2NvdW50cnknXHJcbiAqIFJlc3VsdGFkbzpcclxuICogICAgaXRlbTIgPSBbe2NvdW50cnk6ICdjaGlsZSd9LCB7Y291bnRyeTogJ2NhbmFkYSd9IF1cclxuICogYGBgXHJcbiAqXHJcbiAqIEBwYXJhbSBpdGVtIGxpc3RhIGNvbXBhcmFkYS5cclxuICogQHBhcmFtIGl0ZW0yIGxpc3RhIHBhcmEgcmVtb3ZlciBpdGVtcyBkdXBsaWNhZG9zLlxyXG4gKiBAcGFyYW0ga2V5IHByb3ByaWVkYWRlIHF1ZSBzZXLDoSB1dGlsaXphZGEgcGFyYSByZWFsaXphciBhIGNvbXBhcmHDp8Ojby5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVEdXBsaWNhdGVJdGVtcyhpdGVtLCBpdGVtMiwga2V5KSB7XHJcbiAgY29uc3QgdW5pcXVlVmFsdWVzID0gbmV3IFNldChpdGVtLm1hcChlbnRyeSA9PiBlbnRyeVtrZXldKSk7XHJcbiAgaXRlbTIuc3BsaWNlKDAsIGl0ZW0yLmxlbmd0aCwgLi4uaXRlbTIuZmlsdGVyKGVudHJ5ID0+ICF1bmlxdWVWYWx1ZXMuaGFzKGVudHJ5W2tleV0pKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZWNlYmUgZG9pcyBhcnJheXMgZGUgb2JqZXRvcyBlIHJlbW92ZSBvcyBpdGVucyBkdXBsaWNhZG9zIHV0aWxpemFuZG8gdW1hIHByb3ByaWVkYWRlKGtleSkgcGFyYSBjb21wYXJhw6fDo28uXHJcbiAqXHJcbiAqIEV4ZW1wbG86XHJcbiAqXHJcbiAqIGBgYFxyXG4gKiBpdGVtOiBbe2NvdW50cnk6ICdqYXBhbyd9LCB7Y291bnRyeTogJ2JyYXNpbCd9ICwge2NvdW50cnk6ICdjaGluYSd9XVxyXG4gKiBpdGVtMjogW3tjb3VudHJ5OiAnY2hpbGUnfSwge2NvdW50cnk6ICdicmFzaWwnfSwge2NvdW50cnk6ICdjYW5hZGEnfV1cclxuICoga2V5OiAnW2NvdW50cnldJ1xyXG4gKiBSZXN1bHRhZG8gZG8gcmV0b3JubzpcclxuICogICAgW3tjb3VudHJ5OiAnY2hpbGUnfSwge2NvdW50cnk6ICdjYW5hZGEnfSwge2NvdW50cnk6ICdqYXBhbyd9LCB7Y291bnRyeTogJ2NoaW5hJ31dXHJcbiAqIGBgYFxyXG4gKlxyXG4gKlxyXG4gKiBAcGFyYW0gaXRlbSA6IHByaW1laXJhIGxpc3RhIGRlIGl0ZW5zLlxyXG4gKiBAcGFyYW0gaXRlbTIgOiBzZWd1bmRhIGxpc3RhIGRlIGl0ZW5zLlxyXG4gKiBAcGFyYW0ga2V5IDogdW0gYXJyYXkgZGUgcHJvcHJpZWRhZGVzIHF1ZSB2w6NvIHNlciB1dGlsaXphZGFzIHBhcmEgYSBjb21wYXJhw6fDo28uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRHVwbGljYXRlSXRlbXNXaXRoQXJyYXlLZXkoaXRlbSwgaXRlbTIsIGtleXMpIHtcclxuICBjb25zdCBuZXdLZXkgPSBrZXlzLmxlbmd0aCA/IGtleXMgOiBbJ2lkJ107XHJcblxyXG4gIGNvbnN0IGNvbWJpbmVkQXJyYXkgPSBpdGVtLmNvbmNhdChpdGVtMik7XHJcbiAgcmV0dXJuIGNvbWJpbmVkQXJyYXkuZmlsdGVyKFxyXG4gICAgKG9iaiwgaW5kZXgpID0+IGluZGV4ID09PSBjb21iaW5lZEFycmF5LmZpbmRJbmRleChpbm5lck9iaiA9PiBuZXdLZXkuZXZlcnkoa2V5ID0+IGlubmVyT2JqW2tleV0gPT09IG9ialtrZXldKSlcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogUmVjZWJlIHVtIGFycmF5IGRlIG9iamV0b3MgcGFyYSBvcmRlbmHDp8OjbyB1dGlsaXphbmRvIGNoYXZlIGNvbW8gY29tcGFyYXRpdm8gZVxyXG4gKiBzZSBhIG9yZGVyIMOpIGNyZXNjZW50ZSh0cnVlKSBvdSBkZXNjcmVzY2VudGUoZmFsc2UpXHJcbiAqXHJcbiAqIEV4ZW1wbG86XHJcbiAqXHJcbiAqIGBgYFxyXG4gKiBpdGVtczogW3tjb3VudHJ5OiAnamFwYW8nfSwge2NvdW50cnk6ICdicmFzaWwnfSAsIHtjb3VudHJ5OiAnY2hpbmEnfV1cclxuICoga2V5OiAnY291bnRyeSdcclxuICogaXNBc2NlbmRpbmdPcmRlcjogdHJ1ZVxyXG4gKiBSZXN1bHRhZG8gZG8gcmV0b3JubzpcclxuICogICAgW3tjb3VudHJ5OiAnYnJhc2lsJ30sIHtjb3VudHJ5OiAnY2hpbmEnfSAsIHtjb3VudHJ5OiAnamFwYW8nfV1cclxuICogYGBgXHJcbiAqXHJcbiAqXHJcbiAqIEBwYXJhbSBpdGVtcyA6IGxpc3RhIGRlIGl0ZW5zLlxyXG4gKiBAcGFyYW0ga2V5IDogcHJvcHJpZWRhZGUgdXRpbGl6YWRhIG5hIGNvbXBhcmHDp8Ojby5cclxuICogQHBhcmFtIGlzQXNjZW5kaW5nT3JkZXIgOiBvcmRlbmHDp8OjbyBjcmVzY2VudGUgb3UgZGVzY3Jlc2NlbnRlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNvcnRBcnJheU9mT2JqZWN0cyhpdGVtcywga2V5LCBpc0FzY2VuZGluZ09yZGVyKSB7XHJcbiAgcmV0dXJuIGl0ZW1zLnNvcnQoKGEsIGIpID0+IHtcclxuICAgIGNvbnN0IHZhbHVlQSA9IGFba2V5XTtcclxuICAgIGNvbnN0IHZhbHVlQiA9IGJba2V5XTtcclxuXHJcbiAgICBpZiAodHlwZW9mIHZhbHVlQSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIHZhbHVlQiA9PT0gJ251bWJlcicpIHtcclxuICAgICAgcmV0dXJuIGlzQXNjZW5kaW5nT3JkZXIgPyB2YWx1ZUEgLSB2YWx1ZUIgOiB2YWx1ZUIgLSB2YWx1ZUE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBjb21wYXJlUmVzdWx0ID0gdmFsdWVBLnRvU3RyaW5nKCkubG9jYWxlQ29tcGFyZSh2YWx1ZUIudG9TdHJpbmcoKSk7XHJcbiAgICAgIHJldHVybiBpc0FzY2VuZGluZ09yZGVyID8gY29tcGFyZVJlc3VsdCA6IC1jb21wYXJlUmVzdWx0O1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcbiJdfQ==
|
|
428
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvbGliL3V0aWxzL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRTs7R0FFRztBQUNILE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsK0NBQStDO0lBQy9DLE9BQU8sU0FBUyxDQUFDLFFBQVEsSUFBSSxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDekQsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QjtJQUNyQyxNQUFNLFFBQVEsR0FBRyxDQUFDLGtCQUFrQixFQUFFLElBQUksZUFBZSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUV6RixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNqQyxPQUFPLGVBQWUsQ0FBQztLQUN4QjtJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsR0FBUTtJQUN2QyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtRQUMzQixHQUFHLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9CLE9BQU8sR0FBRyxLQUFLLE1BQU0sSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxFQUFFLENBQUM7S0FDckQ7SUFFRCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtRQUMzQixPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUM7S0FDbEI7SUFFRCxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFV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QkFBZ0IsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztTQUMxRDtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHBvTG9jYWxlcywgcG9Mb2NhbGVEZWZhdWx0IH0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xuXG4vKipcbiAqIFJldG9ybmEgbyBpZGlvbWEgYXR1YWwgZG8gbmF2ZWdhZG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRCcm93c2VyTGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgLy8gbmF2aWdhdG9yLnVzZXJMYW5ndWFnZSBpcyB0aGUgdmFsdWUgZm9yIElFMTBcbiAgcmV0dXJuIG5hdmlnYXRvci5sYW5ndWFnZSB8fCBuYXZpZ2F0b3JbJ3VzZXJMYW5ndWFnZSddO1xufVxuXG4vKipcbiAqIFJldG9ybmEgbyBpZGlvbWEgZG8gbmF2ZWdhZG9yLCBjb20gc29tZW50ZSBhcyBkdWFzIHByaW1laXJhcyBsZXRyYXMuIFBvciBleGVtcGxvOiBcInB0XCIgb3UgXCJlc1wiLlxuICpcbiAqIENhc28gbyB2YWxvciByZXRvcm5hZG8gcGVsbyBuYXZlZ2Fkb3IgbsOjbyBlc3RpdmVyIGRlbnRybyBkb3MgaWRpb21hcyBzdXBvcnRhZG9zIHBlbG8gUE8sXG4gKiBzZXLDoSByZXRvcm5hZG8gYSBsaW5ndWFnZW0gcGFkcsOjbyAocG9Mb2NhbGVEZWZhdWx0KS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNob3J0QnJvd3Nlckxhbmd1YWdlKCk6IHN0cmluZyB7XG4gIGNvbnN0IGxhbmd1YWdlID0gKGdldEJyb3dzZXJMYW5ndWFnZSgpIHx8IHBvTG9jYWxlRGVmYXVsdCkudG9Mb3dlckNhc2UoKS5zdWJzdHJpbmcoMCwgMik7XG5cbiAgaWYgKCFwb0xvY2FsZXMuaW5jbHVkZXMobGFuZ3VhZ2UpKSB7XG4gICAgcmV0dXJuIHBvTG9jYWxlRGVmYXVsdDtcbiAgfVxuXG4gIHJldHVybiBsYW5ndWFnZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0Jvb2xlYW4odmFsOiBhbnkpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFsID0gdmFsLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xuICAgIHJldHVybiB2YWwgPT09ICd0cnVlJyB8fCB2YWwgPT09ICdvbicgfHwgdmFsID09PSAnJztcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWwgPT09IDE7XG4gIH1cblxuICByZXR1cm4gISF2YWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9JbnQodmFsdWU6IGFueSwgdmFsdWVEZWZhdWx0PzogYW55KTogbnVtYmVyIHtcbiAgY29uc3QgdmFsaWROdW1iZXIgPSBwYXJzZUludCh2YWx1ZSwgMTApO1xuICBjb25zdCB2YWxpZERlZmF1bHRWYWx1ZSA9IHBhcnNlSW50KHZhbHVlRGVmYXVsdCwgMTApO1xuICBjb25zdCBkZWZhdWx0VmFsdWUgPSB2YWxpZERlZmF1bHRWYWx1ZSB8fCB2YWxpZERlZmF1bHRWYWx1ZSA9PT0gMCA/IHZhbGlkRGVmYXVsdFZhbHVlIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiB2YWxpZE51bWJlciB8fCB2YWxpZE51bWJlciA9PT0gMCA/IHZhbGlkTnVtYmVyIDogZGVmYXVsdFZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUeXBlb2Yob2JqZWN0OiBhbnksIHR5cGU6IGFueSkge1xuICByZXR1cm4gdHlwZW9mIG9iamVjdCA9PT0gdHlwZTtcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIGZuIEZ1bsOnw6NvIHF1ZSBzZXLDoSBleGVjdXRhZGEgZGVudHJvIGRvIGNvbnRleHRvLiBQb2RlbmRvIHNlciBvIG5vbWUgZGEgZnVuw6fDo29cbiAqIG91IGEgcmVmZXLDqm5jaWEgZGEgbWVzbWEuXG4gKlxuICogQHBhcmFtIGNvbnRleHQgQ29udGV4dG8gZG8gcXVhbCBhIGZ1bsOnw6NvIHNlcsOhIGV4ZWN1dGFkYS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGxGdW5jdGlvbihmbjogYW55LCBjb250ZXh0OiBhbnksIHBhcmFtPyk6IHZvaWQge1xuICBpZiAoaXNUeXBlb2YoZm4sICdmdW5jdGlvbicpKSB7XG4gICAgZm4uY2FsbChjb250ZXh0LCBwYXJhbSk7XG4gIH0gZWxzZSB7XG4gICAgY29udGV4dFtmbl0ocGFyYW0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0SXNvVG9EYXRlKHZhbHVlOiBzdHJpbmcsIHN0YXJ0OiBib29sZWFuLCBlbmQ6IGJvb2xlYW4pIHtcbiAgaWYgKHZhbHVlKSB7XG4gICAgY29uc3QgZGF5ID0gcGFyc2VJbnQodmFsdWUuc3Vic3RyaW5nKDgsIDEwKSwgMTApO1xuICAgIGNvbnN0IG1vbnRoID0gcGFyc2VJbnQodmFsdWUuc3Vic3RyaW5nKDUsIDcpLCAxMCk7XG4gICAgY29uc3QgeWVhciA9IHBhcnNlSW50KHZhbHVlLnN1YnN0cmluZygwLCA0KSwgMTApO1xuICAgIGlmIChzdGFydCkge1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5LCAwLCAwLCAwKTtcblxuICAgICAgc2V0WWVhckZyb20wVG8xMDAoZGF0ZSwgeWVhcik7XG5cbiAgICAgIHJldHVybiBkYXRlO1xuICAgIH0gZWxzZSBpZiAoZW5kKSB7XG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXksIDIzLCA1OSwgNTkpO1xuXG4gICAgICBzZXRZZWFyRnJvbTBUbzEwMChkYXRlLCB5ZWFyKTtcblxuICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1pbGxpc2Vjb25kcyA9IERhdGUucGFyc2UodmFsdWUpO1xuICAgICAgY29uc3QgdGltZXpvbmUgPSBuZXcgRGF0ZSgpLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMDtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShtaWxsaXNlY29uZHMgKyB0aW1lem9uZSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RGF0ZVRvSVNPRXh0ZW5kZWQoZGF0ZTogRGF0ZSwgdGltZT86IHN0cmluZykge1xuICBpZiAoZGF0ZSkge1xuICAgIGNvbnN0IGdldE1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgMTtcbiAgICBjb25zdCBkYXkgPSBkYXRlLmdldERhdGUoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXREYXRlKCkgOiBkYXRlLmdldERhdGUoKTtcbiAgICBjb25zdCBtb250aCA9IGdldE1vbnRoIDwgMTAgPyAnMCcgKyBnZXRNb250aCA6IGdldE1vbnRoO1xuICAgIGNvbnN0IHllYXIgPSBmb3JtYXRZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSk7XG5cbiAgICBjb25zdCBkYXRlU3RyaW5nID0gZGF0ZS50b1N0cmluZygpO1xuXG4gICAgaWYgKHRpbWUpIHtcbiAgICAgIHJldHVybiB5ZWFyICsgJy0nICsgbW9udGggKyAnLScgKyBkYXkgKyB0aW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB5ZWFyICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgbW9udGggK1xuICAgICAgICAnLScgK1xuICAgICAgICBkYXkgK1xuICAgICAgICAnVCcgK1xuICAgICAgICBkYXRlU3RyaW5nLnN1YnN0cmluZygxNiwgMjQpICtcbiAgICAgICAgZGF0ZVN0cmluZy5zdWJzdHJpbmcoMjgsIDMxKSArXG4gICAgICAgICc6JyArXG4gICAgICAgIGRhdGVTdHJpbmcuc3Vic3RyaW5nKDMxLCAzMylcbiAgICAgICk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbi8qKlxuICogVHJhbnNmb3JtYSBvIGFubyBlbSB1bWEgc3RyaW5nIG5vIGZvcm1hdG8geXl5eSBlIGNhc28gbyBhbm8gc2VqYSBtZW5vciBxdWUgMTAwMCBwcmVlbmNoZSBjb20gemVyb3MgYSBlc3F1ZXJkYS5cbiAqXG4gKiBAcGFyYW0geWVhciBBbm9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFllYXIoeWVhcjogbnVtYmVyKSB7XG4gIGlmICh5ZWFyID49IDEwMDApIHtcbiAgICByZXR1cm4geWVhci50b1N0cmluZygpO1xuICB9XG5cbiAgaWYgKHllYXIgPiA5OSAmJiB5ZWFyIDwgMTAwMCkge1xuICAgIHJldHVybiBgMCR7eWVhcn1gO1xuICB9XG5cbiAgaWYgKHllYXIgPiA5ICYmIHllYXIgPCAxMDApIHtcbiAgICByZXR1cm4gYDAwJHt5ZWFyfWA7XG4gIH1cblxuICBpZiAoeWVhciA+PSAwICYmIHllYXIgPCAxMCkge1xuICAgIHJldHVybiBgMDAwJHt5ZWFyfWA7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRXF1YWxzKHZhbHVlLCBjb21wYXJlZFZhbHVlKSB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgPT09IEpTT04uc3RyaW5naWZ5KGNvbXBhcmVkVmFsdWUpO1xufVxuXG4vKipcbiAqIENhc28gbyBhbm8gb3JpZ2luYWwgZGEgZGF0YSBzZWphIGVudHJlIDAgZSAxMDAgYXRyaWJ1aSBlc3NlIHZhbG9yIGFvIGFubywgcG9pcyBvIGBuZXcgRGF0ZWAgZG8gamF2YXNjcmlwdCB0cmFuc2Zvcm1hIG8gYW5vIHBhcmEgMTkwWC5cbiAqXG4gKiBAcGFyYW0gZGF0ZSBEYXRhXG4gKiBAcGFyYW0geWVhciBBbm8gb3JpZ2luYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldFllYXJGcm9tMFRvMTAwKGRhdGU6IERhdGUsIHllYXI6IG51bWJlcikge1xuICBpZiAoeWVhciA+PSAwICYmIHllYXIgPCAxMDApIHtcbiAgICBkYXRlLnNldEZ1bGxZZWFyKHllYXIpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3J0T3B0aW9uc0J5UHJvcGVydHkob3B0aW9uczogQXJyYXk8YW55PiwgcHJvcGVydHk6IHN0cmluZykge1xuICBvcHRpb25zLnNvcnQoKG9wdGlvbkEsIG9wdGlvbkIpID0+IHtcbiAgICBvcHRpb25BID0gb3B0aW9uQVtwcm9wZXJ0eV0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuICAgIG9wdGlvbkIgPSBvcHRpb25CW3Byb3BlcnR5XS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAob3B0aW9uQSA8IG9wdGlvbkIpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbkEgPiBvcHRpb25CKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRHVwbGljYXRlZE9wdGlvbnMobGlzdDogQXJyYXk8YW55Pikge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKGxpc3QuZmluZEluZGV4KG9wID0+IG9wLnZhbHVlID09PSBsaXN0W2ldLnZhbHVlKSAhPT0gaSkge1xuICAgICAgbGlzdC5zcGxpY2UoaSwgMSk7XG4gICAgICBpLS07XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVVbmRlZmluZWRBbmROdWxsT3B0aW9ucyhsaXN0OiBBcnJheTxhbnk+KSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChsaXN0W2ldLnZhbHVlID09PSB1bmRlZmluZWQgfHwgbGlzdFtpXS52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgbGlzdC5zcGxpY2UoaSwgMSk7XG4gICAgICBpLS07XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZFZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgcmV0dXJuICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSAnJykgfHwgdmFsdWUgPT09IGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFeHRlcm5hbExpbmsodXJsKTogYm9vbGVhbiB7XG4gIHJldHVybiB1cmwgPyB1cmwuc3RhcnRzV2l0aCgnaHR0cCcpIDogZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvcGVuRXh0ZXJuYWxMaW5rKHVybCk6IHZvaWQge1xuICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1hdHRlZExpbmsobGluazogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IGZvcm1hdHRlZExpbmsgPSAnJztcbiAgLy8gUmV0aXJhIHRvZG9zIG9zIHBvbnRvcyBubyBjb21lw6dvIGRhIFVSTC5cbiAgaWYgKGxpbmspIHtcbiAgICBmb3JtYXR0ZWRMaW5rID0gbGluay5yZXBsYWNlKC9eKFxcLikrL2csICcnKTtcbiAgfVxuICAvLyBWZXJpZmljYSBzZSBmb2kgdXRpbGl6YWRvIHVtYSByb3RhIHF1ZSBuw6NvIGNvbWVjZSBjb20gYmFycmEuXG4gIGlmICghZm9ybWF0dGVkTGluay5zdGFydHNXaXRoKCcvJykpIHtcbiAgICBmb3JtYXR0ZWRMaW5rID0gJy8nLmNvbmNhdChmb3JtYXR0ZWRMaW5rKTtcbiAgfVxuICByZXR1cm4gZm9ybWF0dGVkTGluaztcbn1cblxuLyoqXG4gKiBNw6l0b2RvIHJlc3BvbnPDoXZlbCBwb3Igb3JkZW5hciBkb2lzIHZhbG9yZXMuXG4gKlxuICogQHBhcmFtIGxlZnRTaWRlIFByaW1laXJvIHZhbG9yIGEgc2VyIGNvbXBhcmFkby5cbiAqIEBwYXJhbSByaWdodFNpZGUgU2VndW5kbyB2YWxvciBhIHNlciBjb21wYXJhZG8uXG4gKiBAcGFyYW0gYXNjZW5kaW5nIERldGVybWluYSBzZSBzZXLDoSBlbSBvcmRlbSBhc2NlbmRlbnRlIG91IGRlc2NlbmRlbnRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc29ydFZhbHVlcyhsZWZ0U2lkZTogc3RyaW5nLCByaWdodFNpZGU6IHN0cmluZywgYXNjZW5kaW5nOiBib29sZWFuID0gdHJ1ZSk6IG51bWJlciB7XG4gIGlmIChhc2NlbmRpbmcpIHtcbiAgICBpZiAobGVmdFNpZGUgPCByaWdodFNpZGUpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9IGVsc2UgaWYgKGxlZnRTaWRlID4gcmlnaHRTaWRlKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoYXNjZW5kaW5nID09PSBmYWxzZSkge1xuICAgIGlmIChsZWZ0U2lkZSA8IHJpZ2h0U2lkZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChsZWZ0U2lkZSA+IHJpZ2h0U2lkZSkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgfVxuICByZXR1cm4gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRGF0ZVJhbmdlKGRhdGU6IERhdGUsIGRhdGVTdGFydDogRGF0ZSwgZGF0ZUVuZDogRGF0ZSkge1xuICBpZiAoZGF0ZVN0YXJ0ICYmIGRhdGVFbmQpIHtcbiAgICByZXR1cm4gZGF0ZSA+PSBkYXRlU3RhcnQgJiYgZGF0ZSA8PSBkYXRlRW5kO1xuICB9IGVsc2UgaWYgKGRhdGVTdGFydCAmJiAhZGF0ZUVuZCkge1xuICAgIHJldHVybiBkYXRlID49IGRhdGVTdGFydDtcbiAgfSBlbHNlIGlmICghZGF0ZVN0YXJ0ICYmIGRhdGVFbmQpIHtcbiAgICByZXR1cm4gZGF0ZSA8PSBkYXRlRW5kO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3RleHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHt0ZXh0LnNsaWNlKDEpfWA7XG59XG5cbi8qKlxuICogTWFwZWlhIHVtIG5vdm8gYXJyYXkgYXBlbmFzIGNvbSBhcyBwcm9wcmllZGFkZXMgZGVmaW5pZGFzIHBlbG8gZGVzZW52b2x2ZWRvciBiYXNlYWRvIGVtIHVtIGFycmF5IGRlXG4gKiBvcmlnZW0uXG4gKlxuICogRXhlbXBsbzpcbiAqXG4gKiBgYGBcbiAqIGNvbnN0IHBlb3BsZSA9IFtcbiAqICB7IGlkOiAxLCBuYW1lOiAnRnVsYW5vJywgYmlydGhkYXRlOiAnMTk4MC0xMS0wMScsIGdlbnJlOiAnTWFsZScsIGNpdHk6ICdTw6NvIFBhdWxvJywgZGVwZW5kZW50czogMiB9LFxuICogIHsgaWQ6IDIsIG5hbWU6ICdCZWx0cmFubycsIGJpcnRoZGF0ZTogJzE5OTctMDEtMjEnLCBnZW5yZTogJ0ZlbWFsZScsIGNpdHk6ICdKb2ludmlsbGUnLCBkZXBlbmRlbnRzOiAwIH0sXG4gKiAgeyBpZDogMywgbmFtZTogJ1NpY2xhbm8nLCBiaXJ0aGRhdGU6ICcxOTk1LTA3LTE1JywgZ2VucmU6ICdNYWxlJywgY2l0eTogJ0pvaW52aWxsZScsIGRlcGVuZGVudHM6IDAgfVxuICogXTtcbiAqXG4gKiBjb25zdCBwcm9wZXJ0aWVzID0gWydpZCcsICduYW1lJ107XG4gKlxuICogY29uc3QgaWRBbmROYW1lID0gbWFwQXJyYXlCeVByb3BlcnRpZXMocGVvcGxlLCBwcm9wZXJ0aWVzKTtcbiAqXG4gKiBjb25zb2xlLmxvZyhpZEFuZE5hbWUpOyAvLyBbeyBpZDogMSwgbmFtZTogJ0Z1bGFubycgfSwgeyBpZDogMiwgbmFtZTogJ0JlbHRyYW5vJyB9LCB7IGlkOiAzLCBuYW1lOiAnU2ljbGFubycgfV1cbiAqIGBgYFxuICpcbiAqIFVtIG91dHJvIHVzbyBwYXJhIG8gbcOpdG9kbyDDqSBcInBhcmVhclwiIHRvZG9zIG9zIG9iamV0b3MgZG8gYXJyYXkgY29tIGFzIG1lc21hcyBwcm9wcmllZGFkZXMuXG4gKlxuICogYGBgXG4gKiBjb25zdCBjdXN0b21lcnMgPSBbXG4gKiAgeyBpZDogMSwgbmFtZTogJ0Z1bGFubycsIGNpdHk6ICdTw6NvIFBhdWxvJywgZGVwZW5kZW50czogMiB9LCAvLyBzZW0gZ2VucmVcbiAqICB7IGlkOiAyLCBuYW1lOiAnQmVsdHJhbm8nLCBnZW5yZTogJ0ZlbWFsZScsIGNpdHk6ICdKb2ludmlsbGUnIH0sIC8vIHNlbSBkZXBlbmRlbnRzXG4gKiAgeyBpZDogMywgbmFtZTogJ1NpY2xhbm8nLCBnZW5yZTogJ01hbGUnLCBjaXR5OiAnSm9pbnZpbGxlJywgZGVwZW5kZW50czogMCB9XG4gKiBdO1xuICogY29uc3QgcHJvcGVydGllcyA9IFsnaWQnLCAnbmFtZScsICdjaXR5JywgJ2dlbnJlJywgJ2RlcGVuZGVudHMnXTtcbiAqXG4gKiBjb25zdCBwYXR0ZXJuID0gbWFwQXJyYXlCeVByb3BlcnRpZXMoY3VzdG9tZXJzLCBwcm9wZXJ0aWVzKTtcbiAqIGNvbnNvbGUubG9nKHBhdHRlcm4pO1xuICpcbiAqIC8vIFtcbiAqIC8vICAgeyBpZDogMSwgbmFtZTogJ0Z1bGFubycsIGNpdHk6ICdTw6NvIFBhdWxvJywgZ2VucmU6IHVuZGVmaW5lZCwgZGVwZW5kZW50czogMiB9LFxuICogLy8gICB7IGlkOiAyLCBuYW1lOiAnQmVsdHJhbm8nLCBjaXR5OiAnSm9pbnZpbGxlJywgZ2VucmU6ICdGZW1hbGUnLCBkZXBlbmRlbnRzOiB1bmRlZmluZWQgfSxcbiAqIC8vICAgeyBpZDogMywgbmFtZTogJ1NpY2xhbm8nLCBjaXR5OiAnSm9pbnZpbGxlJywgZ2VucmU6ICdNYWxlJywgZGVwZW5kZW50czogMCB9XG4gKiAvLyBdXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gaXRlbXMge0FycmF5PGFueT59IEFycmF5IGRlIGl0ZW1zIG9yaWdpbmFsLlxuICogQHBhcmFtIHByb3BlcnRpZXMge0FycmF5PHN0cmluZz59IEFycmF5IGRlIHN0cmluZyBjb20gYSBsaXN0YSBkZSBwcm9wcmllZGFkZXMgcXVlIGRldmVtIHNlciByZXRvcm5hZGFzLlxuICpcbiAqIEByZXR1cm5zIEFycmF5PGFueT5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcEFycmF5QnlQcm9wZXJ0aWVzKGl0ZW1zOiBBcnJheTxhbnk+ID0gW10sIHByb3BlcnRpZXM6IEFycmF5PHN0cmluZz4gPSBbXSk6IEFycmF5PGFueT4ge1xuICByZXR1cm4gaXRlbXMubWFwKGl0ZW0gPT4gbWFwT2JqZWN0QnlQcm9wZXJ0aWVzKGl0ZW0sIHByb3BlcnRpZXMpKTtcbn1cblxuLyoqXG4gKiBNYXBlaWEgdW0gbm92byBvYmpldG8gYXBlbmFzIGNvbSBhcyBwcm9wcmllZGFkZXMgZGVmaW5pZGFzIHBlbG8gZGVzZW52b2x2ZWRvci5cbiAqXG4gKiBFeGVtcGxvOlxuICpcbiAqIGBgYFxuICogY29uc3QgcGVyc29uID0geyBpZDogMSwgbmFtZTogJ0Z1bGFubycsIGJpcnRoZGF0ZTogJzE5ODAtMTEtMDEnLCBnZW5yZTogJ01hbGUnLCBjaXR5OiAnU8OjbyBQYXVsbycsIGRlcGVuZGVudHM6IDIgfTtcbiAqXG4gKiBjb25zdCBwcm9wZXJ0aWVzID0gWydpZCcsICduYW1lJ107XG4gKlxuICogY29uc3QgaWRBbmROYW1lID0gbWFwT2JqZWN0QnlQcm9wZXJ0aWVzKHBlcnNvbiwgcHJvcGVydGllcyk7XG4gKlxuICogY29uc29sZS5sb2coaWRBbmROYW1lKTsgLy8geyBpZDogMSwgbmFtZTogJ0Z1bGFubycgfVxuICogYGBgXG4gKlxuICogQHBhcmFtIG9iamVjdCB7QXJyYXk8YW55Pn0gQXJyYXkgZGUgaXRlbXMgb3JpZ2luYWwuXG4gKiBAcGFyYW0gcHJvcGVydGllcyB7QXJyYXk8c3RyaW5nPn0gQXJyYXkgZGUgc3RyaW5nIGNvbSBhIGxpc3RhIGRlIHByb3ByaWVkYWRlcyBxdWUgZGV2ZW0gc2VyIHJldG9ybmFkYXMuXG4gKlxuICogQHJldHVybnMgQXJyYXk8YW55PlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFwT2JqZWN0QnlQcm9wZXJ0aWVzKG9iamVjdDogYW55ID0ge30sIHByb3BlcnRpZXM6IEFycmF5PHN0cmluZz4gPSBbXSkge1xuICBjb25zdCBnZXRTZWxlY3RlZFByb3BlcnRpZXMgPSAoc2VsZWN0ZWRQcm9wZXJ0aWVzLCBwcm9wZXJ0eSkgPT4gKHtcbiAgICAuLi5zZWxlY3RlZFByb3BlcnRpZXMsXG4gICAgW3Byb3BlcnR5XTogb2JqZWN0W3Byb3BlcnR5XVxuICB9KTtcblxuICByZXR1cm4gcHJvcGVydGllcy5yZWR1Y2UoZ2V0U2VsZWN0ZWRQcm9wZXJ0aWVzLCB7fSk7XG59XG5cbi8qKlxuICogUmV0b3JuYSBvcyB2YWxvcmVzIGRlIHVtIG9iamV0byBkZW50cm8gZGUgdW0gYXJyYXkuXG4gKlxuICogPiBTaW11bGEgbyBPYmplY3QudmFsdWVzKG9iaiksIG8gbWVzbW8gZGV2ZSBzZXIgcmVtb3ZpZG8gYXNzaW0gcXVlIGEgdmVyc8OjbyB0eXBlc2NyaXQgZm9yIGF0dWFsaXphZGEuXG4gKlxuICogQHBhcmFtIG9iamVjdCBPYmpldG8gZGUgb25kZSBzZXLDoSBwZWdvIG9zIHZhbG9yZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZXNGcm9tT2JqZWN0KG9iamVjdDogYW55ID0ge30pOiBBcnJheTxhbnk+IHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG9iamVjdCkubWFwKHByb3BlcnR5ID0+IG9iamVjdFtwcm9wZXJ0eV0pO1xufVxuXG4vKipcbiAqIGFkaWNpb25hIDAgbm8gdGVtcG8gaW5mb3JtYWRvLCBjYXNvIG1lbm9yIHEgMTBcbiAqXG4gKiBAcGFyYW0gdGltZVxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkWmVybyh0aW1lOiBudW1iZXIpIHtcbiAgaWYgKCF0aW1lKSB7XG4gICAgcmV0dXJuICcwMCc7XG4gIH1cblxuICBpZiAodGltZSA8IDEwKSB7XG4gICAgcmV0dXJuIGAwJHt0aW1lfWA7XG4gIH1cblxuICByZXR1cm4gdGltZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgZG8gb2JqZXRvIGFzIHByb3ByaWVkYWRlcyBlc3BlY2lmaWNhZGFzLlxuICpcbiAqIEV4ZW1wbG86XG4gKlxuICogYGBgXG4gKiBrZXk6IFsnaWQnLCAnY3BmJ11cbiAqIG5ld0l0ZW1WYWx1ZTogeyBpZDogJzEyMycsIGNwZjogJzQ1NicsIG5hbWU6ICdUZXN0JyB9XG4gKiBSZXN1bHRhZG86IHsgbmFtZTogJ1Rlc3QnIH1cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBrZXlzIGxpc3RhIGRlIHByb3ByaWVkYWRlcyBwYXJhIHNlciByZW1vdmlkYSBkbyBvYmpldG8uXG4gKiBAcGFyYW0gbmV3SXRlbVZhbHVlIG9iamV0byBxdWUgc2UgZGVzZWphIHJlbW92ZXIgYXMgcHJvcHJpZWRhZGVzLlxuICogQHJldHVybnMgb2JqZXRvIHNlbSBhcyBwcm9wcmllZGFkZXMgZXNwZWNpZmljYWRhcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUtleXNQcm9wZXJ0aWVzKGtleXM6IEFycmF5PGFueT4sIG5ld0l0ZW1WYWx1ZTogYW55KSB7XG4gIGtleXMuZm9yRWFjaChrZXkgPT4gZGVsZXRlIG5ld0l0ZW1WYWx1ZVtrZXldKTtcbiAgcmV0dXJuIG5ld0l0ZW1WYWx1ZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgb2JqZXRvcyBkdXBsaWNhZG9zLlxuICpcbiAqIEV4ZW1wbG86XG4gKlxuICogYGBgXG4gKiBpdGVtOiBbe2NvdW50cnk6ICdqYXBhbyd9LCB7Y291bnRyeTogJ2JyYXNpbCd9ICwge2NvdW50cnk6ICdjaGluYSd9XVxuICogaXRlbTI6IFt7Y291bnRyeTogJ2NoaWxlJ30sIHtjb3VudHJ5OiAnYnJhc2lsJ30sIHtjb3VudHJ5OiAnY2FuYWRhJ31dXG4gKiBrZXk6ICdjb3VudHJ5J1xuICogUmVzdWx0YWRvOlxuICogICAgaXRlbTIgPSBbe2NvdW50cnk6ICdjaGlsZSd9LCB7Y291bnRyeTogJ2NhbmFkYSd9IF1cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBpdGVtIGxpc3RhIGNvbXBhcmFkYS5cbiAqIEBwYXJhbSBpdGVtMiBsaXN0YSBwYXJhIHJlbW92ZXIgaXRlbXMgZHVwbGljYWRvcy5cbiAqIEBwYXJhbSBrZXkgcHJvcHJpZWRhZGUgcXVlIHNlcsOhIHV0aWxpemFkYSBwYXJhIHJlYWxpemFyIGEgY29tcGFyYcOnw6NvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRHVwbGljYXRlSXRlbXMoaXRlbSwgaXRlbTIsIGtleSkge1xuICBjb25zdCB1bmlxdWVWYWx1ZXMgPSBuZXcgU2V0KGl0ZW0ubWFwKGVudHJ5ID0+IGVudHJ5W2tleV0pKTtcbiAgaXRlbTIuc3BsaWNlKDAsIGl0ZW0yLmxlbmd0aCwgLi4uaXRlbTIuZmlsdGVyKGVudHJ5ID0+ICF1bmlxdWVWYWx1ZXMuaGFzKGVudHJ5W2tleV0pKSk7XG59XG5cbi8qKlxuICogUmVjZWJlIGRvaXMgYXJyYXlzIGRlIG9iamV0b3MgZSByZW1vdmUgb3MgaXRlbnMgZHVwbGljYWRvcyB1dGlsaXphbmRvIHVtYSBwcm9wcmllZGFkZShrZXkpIHBhcmEgY29tcGFyYcOnw6NvLlxuICpcbiAqIEV4ZW1wbG86XG4gKlxuICogYGBgXG4gKiBpdGVtOiBbe2NvdW50cnk6ICdqYXBhbyd9LCB7Y291bnRyeTogJ2JyYXNpbCd9ICwge2NvdW50cnk6ICdjaGluYSd9XVxuICogaXRlbTI6IFt7Y291bnRyeTogJ2NoaWxlJ30sIHtjb3VudHJ5OiAnYnJhc2lsJ30sIHtjb3VudHJ5OiAnY2FuYWRhJ31dXG4gKiBrZXk6ICdbY291bnRyeV0nXG4gKiBSZXN1bHRhZG8gZG8gcmV0b3JubzpcbiAqICAgIFt7Y291bnRyeTogJ2NoaWxlJ30sIHtjb3VudHJ5OiAnY2FuYWRhJ30sIHtjb3VudHJ5OiAnamFwYW8nfSwge2NvdW50cnk6ICdjaGluYSd9XVxuICogYGBgXG4gKlxuICpcbiAqIEBwYXJhbSBpdGVtIDogcHJpbWVpcmEgbGlzdGEgZGUgaXRlbnMuXG4gKiBAcGFyYW0gaXRlbTIgOiBzZWd1bmRhIGxpc3RhIGRlIGl0ZW5zLlxuICogQHBhcmFtIGtleSA6IHVtIGFycmF5IGRlIHByb3ByaWVkYWRlcyBxdWUgdsOjbyBzZXIgdXRpbGl6YWRhcyBwYXJhIGEgY29tcGFyYcOnw6NvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRHVwbGljYXRlSXRlbXNXaXRoQXJyYXlLZXkoaXRlbSwgaXRlbTIsIGtleXMpIHtcbiAgY29uc3QgbmV3S2V5ID0ga2V5cy5sZW5ndGggPyBrZXlzIDogWydpZCddO1xuXG4gIGNvbnN0IGNvbWJpbmVkQXJyYXkgPSBpdGVtLmNvbmNhdChpdGVtMik7XG4gIHJldHVybiBjb21iaW5lZEFycmF5LmZpbHRlcihcbiAgICAob2JqLCBpbmRleCkgPT4gaW5kZXggPT09IGNvbWJpbmVkQXJyYXkuZmluZEluZGV4KGlubmVyT2JqID0+IG5ld0tleS5ldmVyeShrZXkgPT4gaW5uZXJPYmpba2V5XSA9PT0gb2JqW2tleV0pKVxuICApO1xufVxuXG4vKipcbiAqIFJlY2ViZSB1bSBhcnJheSBkZSBvYmpldG9zIHBhcmEgb3JkZW5hw6fDo28gdXRpbGl6YW5kbyBjaGF2ZSBjb21vIGNvbXBhcmF0aXZvIGVcbiAqIHNlIGEgb3JkZXIgw6kgY3Jlc2NlbnRlKHRydWUpIG91IGRlc2NyZXNjZW50ZShmYWxzZSlcbiAqXG4gKiBFeGVtcGxvOlxuICpcbiAqIGBgYFxuICogaXRlbXM6IFt7Y291bnRyeTogJ2phcGFvJ30sIHtjb3VudHJ5OiAnYnJhc2lsJ30gLCB7Y291bnRyeTogJ2NoaW5hJ31dXG4gKiBrZXk6ICdjb3VudHJ5J1xuICogaXNBc2NlbmRpbmdPcmRlcjogdHJ1ZVxuICogUmVzdWx0YWRvIGRvIHJldG9ybm86XG4gKiAgICBbe2NvdW50cnk6ICdicmFzaWwnfSwge2NvdW50cnk6ICdjaGluYSd9ICwge2NvdW50cnk6ICdqYXBhbyd9XVxuICogYGBgXG4gKlxuICpcbiAqIEBwYXJhbSBpdGVtcyA6IGxpc3RhIGRlIGl0ZW5zLlxuICogQHBhcmFtIGtleSA6IHByb3ByaWVkYWRlIHV0aWxpemFkYSBuYSBjb21wYXJhw6fDo28uXG4gKiBAcGFyYW0gaXNBc2NlbmRpbmdPcmRlciA6IG9yZGVuYcOnw6NvIGNyZXNjZW50ZSBvdSBkZXNjcmVzY2VudGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb3J0QXJyYXlPZk9iamVjdHMoaXRlbXMsIGtleSwgaXNBc2NlbmRpbmdPcmRlcikge1xuICByZXR1cm4gaXRlbXMuc29ydCgoYSwgYikgPT4ge1xuICAgIGNvbnN0IHZhbHVlQSA9IGFba2V5XTtcbiAgICBjb25zdCB2YWx1ZUIgPSBiW2tleV07XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlQSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIHZhbHVlQiA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBpc0FzY2VuZGluZ09yZGVyID8gdmFsdWVBIC0gdmFsdWVCIDogdmFsdWVCIC0gdmFsdWVBO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjb21wYXJlUmVzdWx0ID0gdmFsdWVBLnRvU3RyaW5nKCkubG9jYWxlQ29tcGFyZSh2YWx1ZUIudG9TdHJpbmcoKSk7XG4gICAgICByZXR1cm4gaXNBc2NlbmRpbmdPcmRlciA/IGNvbXBhcmVSZXN1bHQgOiAtY29tcGFyZVJlc3VsdDtcbiAgICB9XG4gIH0pO1xufVxuIl19
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './lib/index';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2luZGV4JztcbiJdfQ==
|