@hmcts/ccd-case-ui-toolkit 7.2.23-multiple-followup → 7.2.23-srt-rc2

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.
Files changed (131) hide show
  1. package/esm2022/lib/app.config.mjs +1 -2
  2. package/esm2022/lib/components/form/date-input/date-input.component.mjs +56 -19
  3. package/esm2022/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +3 -3
  4. package/esm2022/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.mjs +1 -1
  5. package/esm2022/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +6 -2
  6. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +9 -5
  7. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +9 -5
  8. package/esm2022/lib/shared/components/case-header/case-header.component.mjs +5 -5
  9. package/esm2022/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.mjs +9 -4
  10. package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +16 -3
  11. package/esm2022/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +20 -13
  12. package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.mjs +13 -9
  13. package/esm2022/lib/shared/components/case-viewer/services/event-trigger.resolver.mjs +4 -2
  14. package/esm2022/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.mjs +9 -5
  15. package/esm2022/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.mjs +9 -5
  16. package/esm2022/lib/shared/components/event-start/components/task-assigned/task-assigned.component.mjs +9 -5
  17. package/esm2022/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.mjs +9 -5
  18. package/esm2022/lib/shared/components/event-start/event-guard/event-start.guard.mjs +3 -3
  19. package/esm2022/lib/shared/components/event-start/services/event-start-state-machine.service.mjs +6 -6
  20. package/esm2022/lib/shared/components/palette/collection/read-collection-field.component.mjs +13 -10
  21. package/esm2022/lib/shared/components/palette/complex/read-complex-field-table.component.mjs +8 -8
  22. package/esm2022/lib/shared/components/palette/date/read-date-field.component.mjs +4 -4
  23. package/esm2022/lib/shared/components/palette/datetime-picker/datetime-picker.component.mjs +41 -10
  24. package/esm2022/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +2 -2
  25. package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.mjs +7 -7
  26. package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.mjs +7 -7
  27. package/esm2022/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +2 -2
  28. package/esm2022/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.mjs +3 -3
  29. package/esm2022/lib/shared/components/palette/number/write-number-field.component.mjs +3 -3
  30. package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-raw.component.mjs +21 -25
  31. package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-table.component.mjs +21 -25
  32. package/esm2022/lib/shared/components/palette/palette.module.mjs +12 -3
  33. package/esm2022/lib/shared/components/palette/query-management/components/close-query/close-query.component.mjs +3 -3
  34. package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +26 -15
  35. package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +6 -2
  36. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +50 -180
  37. package/esm2022/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.mjs +22 -18
  38. package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +2 -2
  39. package/esm2022/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +2 -2
  40. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +59 -6
  41. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +44 -11
  42. package/esm2022/lib/shared/components/palette/query-management/constants/query-management.constants.mjs +7 -0
  43. package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +32 -14
  44. package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +4 -4
  45. package/esm2022/lib/shared/components/palette/query-management/services/index.mjs +2 -1
  46. package/esm2022/lib/shared/components/palette/query-management/services/query-management.service.mjs +179 -0
  47. package/esm2022/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +5 -5
  48. package/esm2022/lib/shared/components/palette/utils/field-label.pipe.mjs +11 -3
  49. package/esm2022/lib/shared/components/search-result/search-result.component.mjs +1 -1
  50. package/esm2022/lib/shared/directives/index.mjs +2 -1
  51. package/esm2022/lib/shared/directives/welsh-translated-markdown/index.mjs +3 -0
  52. package/esm2022/lib/shared/directives/welsh-translated-markdown/welsh-translated-markdown.directive.mjs +104 -0
  53. package/esm2022/lib/shared/directives/welsh-translated-markdown/welsh-translated-markdown.module.mjs +21 -0
  54. package/esm2022/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.mjs +2 -3
  55. package/esm2022/lib/shared/services/draft/draft.service.mjs +2 -2
  56. package/esm2022/lib/shared/services/form/field-type-sanitiser.mjs +38 -3
  57. package/esm2022/lib/shared/services/form/form-value.service.mjs +24 -1
  58. package/esm2022/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.mjs +7 -8
  59. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +1287 -818
  60. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  61. package/lib/app.config.d.ts +0 -1
  62. package/lib/app.config.d.ts.map +1 -1
  63. package/lib/components/form/date-input/date-input.component.d.ts +4 -0
  64. package/lib/components/form/date-input/date-input.component.d.ts.map +1 -1
  65. package/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.d.ts.map +1 -1
  66. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  67. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.d.ts +2 -0
  68. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.d.ts.map +1 -1
  69. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts +2 -0
  70. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts.map +1 -1
  71. package/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.d.ts +2 -0
  72. package/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.d.ts.map +1 -1
  73. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts +1 -0
  74. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  75. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  76. package/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.d.ts +2 -0
  77. package/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.d.ts.map +1 -1
  78. package/lib/shared/components/case-viewer/services/event-trigger.resolver.d.ts.map +1 -1
  79. package/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.d.ts +2 -0
  80. package/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.d.ts.map +1 -1
  81. package/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.d.ts +2 -0
  82. package/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.d.ts.map +1 -1
  83. package/lib/shared/components/event-start/components/task-assigned/task-assigned.component.d.ts +2 -0
  84. package/lib/shared/components/event-start/components/task-assigned/task-assigned.component.d.ts.map +1 -1
  85. package/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.d.ts +2 -0
  86. package/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.d.ts.map +1 -1
  87. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts +2 -2
  88. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts.map +1 -1
  89. package/lib/shared/components/event-start/services/event-start-state-machine.service.d.ts.map +1 -1
  90. package/lib/shared/components/palette/collection/read-collection-field.component.d.ts +3 -1
  91. package/lib/shared/components/palette/collection/read-collection-field.component.d.ts.map +1 -1
  92. package/lib/shared/components/palette/date/read-date-field.component.d.ts.map +1 -1
  93. package/lib/shared/components/palette/datetime-picker/datetime-picker.component.d.ts +2 -0
  94. package/lib/shared/components/palette/datetime-picker/datetime-picker.component.d.ts.map +1 -1
  95. package/lib/shared/components/palette/palette.module.d.ts +18 -17
  96. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  97. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts +2 -0
  98. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts.map +1 -1
  99. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +15 -13
  100. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -1
  101. package/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.d.ts +2 -0
  102. package/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.d.ts.map +1 -1
  103. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +24 -3
  104. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +1 -1
  105. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +12 -3
  106. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts.map +1 -1
  107. package/lib/shared/components/palette/query-management/constants/query-management.constants.d.ts +7 -0
  108. package/lib/shared/components/palette/query-management/constants/query-management.constants.d.ts.map +1 -0
  109. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts.map +1 -1
  110. package/lib/shared/components/palette/query-management/services/index.d.ts +1 -0
  111. package/lib/shared/components/palette/query-management/services/index.d.ts.map +1 -1
  112. package/lib/shared/components/palette/query-management/services/query-management.service.d.ts +21 -0
  113. package/lib/shared/components/palette/query-management/services/query-management.service.d.ts.map +1 -0
  114. package/lib/shared/components/palette/utils/field-label.pipe.d.ts +1 -0
  115. package/lib/shared/components/palette/utils/field-label.pipe.d.ts.map +1 -1
  116. package/lib/shared/components/search-result/search-result.component.d.ts.map +1 -1
  117. package/lib/shared/directives/index.d.ts +1 -0
  118. package/lib/shared/directives/index.d.ts.map +1 -1
  119. package/lib/shared/directives/welsh-translated-markdown/index.d.ts +3 -0
  120. package/lib/shared/directives/welsh-translated-markdown/index.d.ts.map +1 -0
  121. package/lib/shared/directives/welsh-translated-markdown/welsh-translated-markdown.directive.d.ts +76 -0
  122. package/lib/shared/directives/welsh-translated-markdown/welsh-translated-markdown.directive.d.ts.map +1 -0
  123. package/lib/shared/directives/welsh-translated-markdown/welsh-translated-markdown.module.d.ts +8 -0
  124. package/lib/shared/directives/welsh-translated-markdown/welsh-translated-markdown.module.d.ts.map +1 -0
  125. package/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.d.ts.map +1 -1
  126. package/lib/shared/services/form/field-type-sanitiser.d.ts +5 -0
  127. package/lib/shared/services/form/field-type-sanitiser.d.ts.map +1 -1
  128. package/lib/shared/services/form/form-value.service.d.ts +1 -0
  129. package/lib/shared/services/form/form-value.service.d.ts.map +1 -1
  130. package/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.d.ts.map +1 -1
  131. package/package.json +1 -1
@@ -95,6 +95,5 @@ export class CaseEditorConfig {
95
95
  icp_jurisdictions;
96
96
  events_to_hide;
97
97
  enable_service_specific_multi_followups;
98
- multiple_follow_up_enabled;
99
98
  }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9hcHAuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBCQUEwQjtBQTBCMUIsTUFBTSxPQUFnQixpQkFBaUI7SUFrQ3JDOzs7O09BSUc7SUFDSSx3QkFBd0I7UUFDN0IsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQU9NLGlCQUFpQjtRQUN0QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTSx1QkFBdUI7UUFDNUIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVNLGdDQUFnQztRQUNyQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU0seUNBQXlDO1FBQzlDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTSxvQkFBb0I7UUFDekIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUMxQyxPQUFPLEtBQUssQ0FBQzthQUNWLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUM7WUFDbkQsT0FBTyxTQUFTLENBQUM7YUFDZCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ2hELE9BQU8sTUFBTSxDQUFDO2FBQ1gsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUNoRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBUU0sMkJBQTJCO1FBQ2hDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FPRjtBQUNELE1BQU0sT0FBTyxnQkFBZ0I7SUFDcEIsT0FBTyxDQUFTO0lBQ2hCLGFBQWEsQ0FBUztJQUN0Qix1QkFBdUIsQ0FBUztJQUNoQywwQkFBMEIsQ0FBUztJQUNuQyxPQUFPLENBQVM7SUFDaEIsa0NBQWtDLENBQVU7SUFDNUMsb0NBQW9DLENBQVM7SUFDN0Msc0JBQXNCLENBQVM7SUFDL0IsU0FBUyxDQUFTO0lBQ2xCLGdCQUFnQixDQUFTO0lBQ3pCLG1CQUFtQixDQUFTO0lBQzVCLDhCQUE4QixDQUFTO0lBQ3ZDLGNBQWMsQ0FBUztJQUN2QixrQkFBa0IsQ0FBUztJQUMzQixZQUFZLENBQVM7SUFDckIsaUJBQWlCLENBQVM7SUFDMUIsa0NBQWtDLENBQVM7SUFDM0MsNkJBQTZCLENBQVM7SUFDdEMsY0FBYyxDQUFTO0lBQ3ZCLHVCQUF1QixDQUFXO0lBQ2xDLHdDQUF3QyxDQUFTO0lBQ2pELFlBQVksQ0FBUztJQUNyQiw4QkFBOEIsQ0FBUztJQUN2QyxpQkFBaUIsQ0FBUztJQUVqQzs7O09BR0c7SUFDSSx3QkFBd0IsQ0FBVTtJQUNsQyxvQkFBb0IsQ0FBUztJQUM3QixPQUFPLENBQVM7SUFDaEIsY0FBYyxDQUFTO0lBQ3ZCLHVCQUF1QixDQUFTO0lBQ2hDLGlCQUFpQixDQUFTO0lBQzFCLGlCQUFpQixDQUFPO0lBQ3hCLHNCQUFzQixDQUFXO0lBQ2pDLGlDQUFpQyxDQVN0QztJQUVLLHFDQUFxQyxDQVUxQztJQUVLLG9CQUFvQixDQUFVO0lBQzlCLDRCQUE0QixDQUFVO0lBQ3RDLFdBQVcsQ0FBUztJQUNwQixnQkFBZ0IsQ0FBUztJQUN6QixrQkFBa0IsQ0FBUztJQUMzQiw0QkFBNEIsQ0FBUztJQUNyQyxpQkFBaUIsQ0FBUztJQUMxQiwwQkFBMEIsQ0FBUztJQUNuQyxzQkFBc0IsQ0FBUztJQUMvQix1QkFBdUIsQ0FBUztJQUNoQyxpQ0FBaUMsQ0FBVTtJQUMzQyxXQUFXLENBQVU7SUFDckIsaUJBQWlCLENBQVc7SUFDNUIsY0FBYyxDQUFXO0lBQ3pCLHVDQUF1QyxDQUFXO0lBQ2xELDBCQUEwQixDQUFVO0NBQzVDIiwic291cmNlc0NvbnRlbnQiOlsiLyogaXN0YW5idWwgaWdub3JlIGZpbGUgKi9cblxuLy8gdHNsaW50OmRpc2FibGU6dmFyaWFibGUtbmFtZVxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NNYW5hZ2VtZW50QmFzaWNWaWV3TW9ja01vZGVsIHtcbiAgYWN0aXZlPzogYm9vbGVhbjtcbiAgYmFzaWNGaWVsZHM/OiB7XG4gICAgY2FzZU5hbWVIbWN0c0ludGVybmFsPzogc3RyaW5nLFxuICAgIGNhc2VNYW5hZ2VtZW50TG9jYXRpb24/OiB7XG4gICAgICBiYXNlTG9jYXRpb24/OiBudW1iZXJcbiAgICB9XG4gIH07XG4gIGFjY2Vzc1Byb2Nlc3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZXNzTWFuYWdlbWVudFJlcXVlc3RSZXZpZXdNb2NrTW9kZWwge1xuICBhY3RpdmU/OiBib29sZWFuO1xuICBkZXRhaWxzPzoge1xuICAgIGNhc2VOYW1lOiBzdHJpbmc7XG4gICAgY2FzZVJlZmVyZW5jZTogc3RyaW5nO1xuICAgIGRhdGVTdWJtaXR0ZWQ6IHN0cmluZztcbiAgICByZXF1ZXN0RnJvbTogc3RyaW5nO1xuICAgIHJlYXNvbkZvckNhc2VBY2Nlc3M6IHN0cmluZztcbiAgfTtcbiAgYWNjZXNzUHJvY2Vzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0QXBwQ29uZmlnIHtcbiAgcHVibGljIGFic3RyYWN0IGxvYWQoKTogUHJvbWlzZTx2b2lkPjtcbiAgcHVibGljIGFic3RyYWN0IGdldExvZ2luVXJsKCk6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGdldEFwaVVybCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRDYXNlRGF0YVVybCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREb2N1bWVudE1hbmFnZW1lbnRVcmwoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RG9jdW1lbnRNYW5hZ2VtZW50VXJsVjIoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RG9jdW1lbnRTZWN1cmVNb2RlKCk6IGJvb2xlYW47XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRDZGFtRXhjbHVzaW9uTGlzdCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREb2N1bWVudFNlY3VyZU1vZGVDYXNlVHlwZUV4Y2x1c2lvbnMoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0UmVtb3RlRG9jdW1lbnRNYW5hZ2VtZW50VXJsKCk6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGdldEhyc1VybCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRSZW1vdGVIcnNVcmwoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0QW5ub3RhdGlvbkFwaVVybCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRQb3N0Y29kZUxvb2t1cFVybCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRPQXV0aDJDbGllbnRJZCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRQYXltZW50c1VybCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRQYXlCdWxrU2NhbkJhc2VVcmwoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0Q3JlYXRlT3JVcGRhdGVEcmFmdHNVcmwoY3RpZDogc3RyaW5nKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0Vmlld09yRGVsZXRlRHJhZnRzVXJsKGRpZDogc3RyaW5nKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0QWN0aXZpdHlVcmwoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0QWN0aXZpdHlOZXhQb2xsUmVxdWVzdE1zKCk6IG51bWJlcjtcbiAgcHVibGljIGFic3RyYWN0IGdldEFjdGl2aXR5UmV0cnkoKTogbnVtYmVyO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0VGltZW91dHNGb3JDYXNlUmV0cmlldmFsKCk6IG51bWJlcltdO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0VGltZW91dHNDYXNlUmV0cmlldmFsQXJ0aWZpY2lhbERlbGF5KCk6IG51bWJlcjtcbiAgcHVibGljIGFic3RyYWN0IGdldEFjdGl2aXR5QmF0Y2hDb2xsZWN0aW9uRGVsYXlNcygpOiBudW1iZXI7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRBY3Rpdml0eU1heFJlcXVlc3RQZXJCYXRjaCgpOiBudW1iZXI7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRDYXNlSGlzdG9yeVVybChjYXNlSWQ6IHN0cmluZywgZXZlbnRJZDogc3RyaW5nKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0UHJpbnRTZXJ2aWNlVXJsKCk6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGdldEljcEVuYWJsZSgpOiBib29sZWFuO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0SWNwSnVyaXNkaWN0aW9ucygpOiBzdHJpbmdbXTtcbiAgcHVibGljIGFic3RyYWN0IGxvZ01lc3NhZ2UobG9nTWVzc2FnZTogc3RyaW5nKTogdm9pZDtcbiAgcHVibGljIGFic3RyYWN0IGdldEVuYWJsZVNlcnZpY2VTcGVjaWZpY011bHRpRm9sbG93dXBzKCk6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBEdW1teSB2ZXJzaW9uIHJlcGxhY2luZyBkZXByZWNhdGVkIGBnZXRSZW1vdGVQcmludFNlcnZpY2VVcmwoKWAsIHRvIGJlIHJlbW92ZWQgaW4gbmV4dCBtYWpvciByZWxlYXNlXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIEByZXR1cm5zIGB1bmRlZmluZWRgXG4gICAqL1xuICBwdWJsaWMgZ2V0UmVtb3RlUHJpbnRTZXJ2aWNlVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRQYWdpbmF0aW9uUGFnZVNpemUoKTogbnVtYmVyO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0QmFubmVyc1VybCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRQcmRVcmwoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0Q2FjaGVUaW1lT3V0KCk6IG51bWJlcjtcbiAgcHVibGljIGFic3RyYWN0IGdldFdvcmtBbGxvY2F0aW9uQXBpVXJsKCk6IHN0cmluZztcbiAgcHVibGljIGdldFVzZXJJbmZvQXBpVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRXQVNlcnZpY2VDb25maWcoKTogYW55IHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGdldEFjY2Vzc01hbmFnZW1lbnRNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWNjZXNzTWFuYWdlbWVudEJhc2ljVmlld01vY2soKTogQWNjZXNzTWFuYWdlbWVudEJhc2ljVmlld01vY2tNb2RlbCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBY2Nlc3NNYW5hZ2VtZW50UmVxdWVzdFJldmlld01vY2tNb2RlbCgpOiBBY2Nlc3NNYW5hZ2VtZW50UmVxdWVzdFJldmlld01vY2tNb2RlbCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMb2NhdGlvblJlZkFwaVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0RW52aXJvbm1lbnQoKSB7XG4gICAgaWYgKHRoaXMuZ2V0QWN0aXZpdHlVcmwoKT8uaW5jbHVkZXMoJy5hYXQuJykpXG4gICAgICByZXR1cm4gJ2FhdCc7XG4gICAgZWxzZSBpZiAodGhpcy5nZXRBY3Rpdml0eVVybCgpPy5pbmNsdWRlcygnLnByZXZpZXcuJykpXG4gICAgICByZXR1cm4gJ3ByZXZpZXcnO1xuICAgIGVsc2UgaWYgKHRoaXMuZ2V0QWN0aXZpdHlVcmwoKT8uaW5jbHVkZXMoJy5kZW1vLicpKVxuICAgICAgcmV0dXJuICdkZW1vJztcbiAgICBlbHNlIGlmICh0aGlzLmdldEFjdGl2aXR5VXJsKCk/LmluY2x1ZGVzKCcuaXRoYy4nKSlcbiAgICAgIHJldHVybiAnaXRoYyc7XG4gICAgcmV0dXJuICdwcm9kJztcbiAgfVxuXG5cbiAgcHVibGljIGFic3RyYWN0IGdldFJlZnVuZHNVcmwoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0Tm90aWZpY2F0aW9uVXJsKCk6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGdldFBheW1lbnRSZXR1cm5VcmwoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0Q2F0ZWdvcmllc0FuZERvY3VtZW50c1VybCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREb2N1bWVudERhdGFVcmwoKTogc3RyaW5nO1xuICBwdWJsaWMgZ2V0Q2FtUm9sZUFzc2lnbm1lbnRzQXBpVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRDYXNlRmxhZ3NSZWZkYXRhQXBpVXJsKCk6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGdldFJEQ29tbW9uRGF0YUFwaVVybCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRDYXNlRGF0YVN0b3JlQXBpVXJsKCk6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGdldEV2ZW50c1RvSGlkZSgpOiBzdHJpbmdbXTtcbiAgcHVibGljIGFic3RyYWN0IGdldEVuYWJsZUNhc2VGaWxlVmlld1ZlcnNpb24xXzEoKTogYm9vbGVhbjtcbn1cbmV4cG9ydCBjbGFzcyBDYXNlRWRpdG9yQ29uZmlnIHtcbiAgcHVibGljIGFwaV91cmw6IHN0cmluZztcbiAgcHVibGljIGNhc2VfZGF0YV91cmw6IHN0cmluZztcbiAgcHVibGljIGRvY3VtZW50X21hbmFnZW1lbnRfdXJsOiBzdHJpbmc7XG4gIHB1YmxpYyBkb2N1bWVudF9tYW5hZ2VtZW50X3VybF92Mjogc3RyaW5nO1xuICBwdWJsaWMgaHJzX3VybDogc3RyaW5nO1xuICBwdWJsaWMgZG9jdW1lbnRfbWFuYWdlbWVudF9zZWN1cmVfZW5hYmxlZDogYm9vbGVhbjtcbiAgcHVibGljIGRvY3VtZW50U2VjdXJlTW9kZUNhc2VUeXBlRXhjbHVzaW9uczogc3RyaW5nO1xuICBwdWJsaWMgbWNfY2RhbV9leGNsdXNpb25fbGlzdDogc3RyaW5nO1xuICBwdWJsaWMgbG9naW5fdXJsOiBzdHJpbmc7XG4gIHB1YmxpYyBvYXV0aDJfY2xpZW50X2lkOiBzdHJpbmc7XG4gIHB1YmxpYyBwb3N0Y29kZV9sb29rdXBfdXJsOiBzdHJpbmc7XG4gIHB1YmxpYyByZW1vdGVfZG9jdW1lbnRfbWFuYWdlbWVudF91cmw6IHN0cmluZztcbiAgcHVibGljIHJlbW90ZV9ocnNfdXJsOiBzdHJpbmc7XG4gIHB1YmxpYyBhbm5vdGF0aW9uX2FwaV91cmw6IHN0cmluZztcbiAgcHVibGljIHBheW1lbnRzX3VybDogc3RyaW5nO1xuICBwdWJsaWMgcGF5X2J1bGtfc2Nhbl91cmw6IHN0cmluZztcbiAgcHVibGljIGFjdGl2aXR5X2JhdGNoX2NvbGxlY3Rpb25fZGVsYXlfbXM6IG51bWJlcjtcbiAgcHVibGljIGFjdGl2aXR5X25leHRfcG9sbF9yZXF1ZXN0X21zOiBudW1iZXI7XG4gIHB1YmxpYyBhY3Rpdml0eV9yZXRyeTogbnVtYmVyO1xuICBwdWJsaWMgdGltZW91dHNfY2FzZV9yZXRyaWV2YWw6IG51bWJlcltdO1xuICBwdWJsaWMgdGltZW91dHNfY2FzZV9yZXRyaWV2YWxfYXJ0aWZpY2lhbF9kZWxheTogbnVtYmVyO1xuICBwdWJsaWMgYWN0aXZpdHlfdXJsOiBzdHJpbmc7XG4gIHB1YmxpYyBhY3Rpdml0eV9tYXhfcmVxdWVzdF9wZXJfYmF0Y2g6IG51bWJlcjtcbiAgcHVibGljIHByaW50X3NlcnZpY2VfdXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHJlbW90ZV9wcmludF9zZXJ2aWNlX3VybCBtYXJrZWQgYXMgb3B0aW9uYWwgc2luY2UgZGVwcmVjYXRpb24sIGFoZWFkIG9mIHJlbW92YWwgaW4gbmV4dCBtYWpvciByZWxlYXNlXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBwdWJsaWMgcmVtb3RlX3ByaW50X3NlcnZpY2VfdXJsPzogc3RyaW5nO1xuICBwdWJsaWMgcGFnaW5hdGlvbl9wYWdlX3NpemU6IG51bWJlcjtcbiAgcHVibGljIHByZF91cmw6IHN0cmluZztcbiAgcHVibGljIGNhY2hlX3RpbWVfb3V0OiBudW1iZXI7XG4gIHB1YmxpYyB3b3JrX2FsbG9jYXRpb25fYXBpX3VybDogc3RyaW5nO1xuICBwdWJsaWMgdXNlcl9pbmZvX2FwaV91cmw6IHN0cmluZztcbiAgcHVibGljIHdhX3NlcnZpY2VfY29uZmlnPzogYW55O1xuICBwdWJsaWMgYWNjZXNzX21hbmFnZW1lbnRfbW9kZT86IGJvb2xlYW47XG4gIHB1YmxpYyBhY2Nlc3NfbWFuYWdlbWVudF9iYXNpY192aWV3X21vY2s/OiB7XG4gICAgYWN0aXZlPzogYm9vbGVhbixcbiAgICBiYXNpY0ZpZWxkcz86IHtcbiAgICAgIGNhc2VOYW1lSG1jdHNJbnRlcm5hbD86IHN0cmluZyxcbiAgICAgIGNhc2VNYW5hZ2VtZW50TG9jYXRpb24/OiB7XG4gICAgICAgIGJhc2VMb2NhdGlvbj86IG51bWJlclxuICAgICAgfVxuICAgIH0sXG4gICAgYWNjZXNzUHJvY2Vzcz86IHN0cmluZ1xuICB9O1xuXG4gIHB1YmxpYyBhY2Nlc3NfbWFuYWdlbWVudF9yZXF1ZXN0X3Jldmlld19tb2NrPzoge1xuICAgIGFjdGl2ZT86IGJvb2xlYW47XG4gICAgZGV0YWlscz86IHtcbiAgICAgIGNhc2VOYW1lOiBzdHJpbmc7XG4gICAgICBjYXNlUmVmZXJlbmNlOiBzdHJpbmc7XG4gICAgICBkYXRlU3VibWl0dGVkOiBzdHJpbmc7XG4gICAgICByZXF1ZXN0RnJvbTogc3RyaW5nO1xuICAgICAgcmVhc29uRm9yQ2FzZUFjY2Vzczogc3RyaW5nO1xuICAgIH07XG4gICAgYWNjZXNzUHJvY2Vzcz86IHN0cmluZztcbiAgfTtcblxuICBwdWJsaWMgbG9jYXRpb25fcmVmX2FwaV91cmw/OiBzdHJpbmc7XG4gIHB1YmxpYyBjYW1fcm9sZV9hc3NpZ25tZW50c19hcGlfdXJsPzogc3RyaW5nO1xuICBwdWJsaWMgcmVmdW5kc191cmw6IHN0cmluZztcbiAgcHVibGljIG5vdGlmaWNhdGlvbl91cmw6IHN0cmluZztcbiAgcHVibGljIHBheW1lbnRfcmV0dXJuX3VybDogc3RyaW5nO1xuICBwdWJsaWMgY2F0ZWdvcmllc19hbmRfZG9jdW1lbnRzX3VybDogc3RyaW5nO1xuICBwdWJsaWMgZG9jdW1lbnRfZGF0YV91cmw6IHN0cmluZztcbiAgcHVibGljIGNhc2VfZmxhZ3NfcmVmZGF0YV9hcGlfdXJsOiBzdHJpbmc7XG4gIHB1YmxpYyByZF9jb21tb25fZGF0YV9hcGlfdXJsOiBzdHJpbmc7XG4gIHB1YmxpYyBjYXNlX2RhdGFfc3RvcmVfYXBpX3VybDogc3RyaW5nO1xuICBwdWJsaWMgZW5hYmxlX2Nhc2VfZmlsZV92aWV3X3ZlcnNpb25fMV8xOiBib29sZWFuO1xuICBwdWJsaWMgaWNwX2VuYWJsZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBpY3BfanVyaXNkaWN0aW9uczogc3RyaW5nW107XG4gIHB1YmxpYyBldmVudHNfdG9faGlkZTogc3RyaW5nW107XG4gIHB1YmxpYyBlbmFibGVfc2VydmljZV9zcGVjaWZpY19tdWx0aV9mb2xsb3d1cHM6IHN0cmluZ1tdO1xuICBwdWJsaWMgbXVsdGlwbGVfZm9sbG93X3VwX2VuYWJsZWQ6IGJvb2xlYW47XG59XG4iXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9hcHAuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBCQUEwQjtBQTBCMUIsTUFBTSxPQUFnQixpQkFBaUI7SUFrQ3JDOzs7O09BSUc7SUFDSSx3QkFBd0I7UUFDN0IsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQU9NLGlCQUFpQjtRQUN0QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTSx1QkFBdUI7UUFDNUIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVNLGdDQUFnQztRQUNyQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU0seUNBQXlDO1FBQzlDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTSxvQkFBb0I7UUFDekIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUMxQyxPQUFPLEtBQUssQ0FBQzthQUNWLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUM7WUFDbkQsT0FBTyxTQUFTLENBQUM7YUFDZCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ2hELE9BQU8sTUFBTSxDQUFDO2FBQ1gsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUNoRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBUU0sMkJBQTJCO1FBQ2hDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FPRjtBQUNELE1BQU0sT0FBTyxnQkFBZ0I7SUFDcEIsT0FBTyxDQUFTO0lBQ2hCLGFBQWEsQ0FBUztJQUN0Qix1QkFBdUIsQ0FBUztJQUNoQywwQkFBMEIsQ0FBUztJQUNuQyxPQUFPLENBQVM7SUFDaEIsa0NBQWtDLENBQVU7SUFDNUMsb0NBQW9DLENBQVM7SUFDN0Msc0JBQXNCLENBQVM7SUFDL0IsU0FBUyxDQUFTO0lBQ2xCLGdCQUFnQixDQUFTO0lBQ3pCLG1CQUFtQixDQUFTO0lBQzVCLDhCQUE4QixDQUFTO0lBQ3ZDLGNBQWMsQ0FBUztJQUN2QixrQkFBa0IsQ0FBUztJQUMzQixZQUFZLENBQVM7SUFDckIsaUJBQWlCLENBQVM7SUFDMUIsa0NBQWtDLENBQVM7SUFDM0MsNkJBQTZCLENBQVM7SUFDdEMsY0FBYyxDQUFTO0lBQ3ZCLHVCQUF1QixDQUFXO0lBQ2xDLHdDQUF3QyxDQUFTO0lBQ2pELFlBQVksQ0FBUztJQUNyQiw4QkFBOEIsQ0FBUztJQUN2QyxpQkFBaUIsQ0FBUztJQUVqQzs7O09BR0c7SUFDSSx3QkFBd0IsQ0FBVTtJQUNsQyxvQkFBb0IsQ0FBUztJQUM3QixPQUFPLENBQVM7SUFDaEIsY0FBYyxDQUFTO0lBQ3ZCLHVCQUF1QixDQUFTO0lBQ2hDLGlCQUFpQixDQUFTO0lBQzFCLGlCQUFpQixDQUFPO0lBQ3hCLHNCQUFzQixDQUFXO0lBQ2pDLGlDQUFpQyxDQVN0QztJQUVLLHFDQUFxQyxDQVUxQztJQUVLLG9CQUFvQixDQUFVO0lBQzlCLDRCQUE0QixDQUFVO0lBQ3RDLFdBQVcsQ0FBUztJQUNwQixnQkFBZ0IsQ0FBUztJQUN6QixrQkFBa0IsQ0FBUztJQUMzQiw0QkFBNEIsQ0FBUztJQUNyQyxpQkFBaUIsQ0FBUztJQUMxQiwwQkFBMEIsQ0FBUztJQUNuQyxzQkFBc0IsQ0FBUztJQUMvQix1QkFBdUIsQ0FBUztJQUNoQyxpQ0FBaUMsQ0FBVTtJQUMzQyxXQUFXLENBQVU7SUFDckIsaUJBQWlCLENBQVc7SUFDNUIsY0FBYyxDQUFXO0lBQ3pCLHVDQUF1QyxDQUFXO0NBQzFEIiwic291cmNlc0NvbnRlbnQiOlsiLyogaXN0YW5idWwgaWdub3JlIGZpbGUgKi9cblxuLy8gdHNsaW50OmRpc2FibGU6dmFyaWFibGUtbmFtZVxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NNYW5hZ2VtZW50QmFzaWNWaWV3TW9ja01vZGVsIHtcbiAgYWN0aXZlPzogYm9vbGVhbjtcbiAgYmFzaWNGaWVsZHM/OiB7XG4gICAgY2FzZU5hbWVIbWN0c0ludGVybmFsPzogc3RyaW5nLFxuICAgIGNhc2VNYW5hZ2VtZW50TG9jYXRpb24/OiB7XG4gICAgICBiYXNlTG9jYXRpb24/OiBudW1iZXJcbiAgICB9XG4gIH07XG4gIGFjY2Vzc1Byb2Nlc3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZXNzTWFuYWdlbWVudFJlcXVlc3RSZXZpZXdNb2NrTW9kZWwge1xuICBhY3RpdmU/OiBib29sZWFuO1xuICBkZXRhaWxzPzoge1xuICAgIGNhc2VOYW1lOiBzdHJpbmc7XG4gICAgY2FzZVJlZmVyZW5jZTogc3RyaW5nO1xuICAgIGRhdGVTdWJtaXR0ZWQ6IHN0cmluZztcbiAgICByZXF1ZXN0RnJvbTogc3RyaW5nO1xuICAgIHJlYXNvbkZvckNhc2VBY2Nlc3M6IHN0cmluZztcbiAgfTtcbiAgYWNjZXNzUHJvY2Vzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0QXBwQ29uZmlnIHtcbiAgcHVibGljIGFic3RyYWN0IGxvYWQoKTogUHJvbWlzZTx2b2lkPjtcbiAgcHVibGljIGFic3RyYWN0IGdldExvZ2luVXJsKCk6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGdldEFwaVVybCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRDYXNlRGF0YVVybCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREb2N1bWVudE1hbmFnZW1lbnRVcmwoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RG9jdW1lbnRNYW5hZ2VtZW50VXJsVjIoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RG9jdW1lbnRTZWN1cmVNb2RlKCk6IGJvb2xlYW47XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRDZGFtRXhjbHVzaW9uTGlzdCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREb2N1bWVudFNlY3VyZU1vZGVDYXNlVHlwZUV4Y2x1c2lvbnMoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0UmVtb3RlRG9jdW1lbnRNYW5hZ2VtZW50VXJsKCk6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGdldEhyc1VybCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRSZW1vdGVIcnNVcmwoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0QW5ub3RhdGlvbkFwaVVybCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRQb3N0Y29kZUxvb2t1cFVybCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRPQXV0aDJDbGllbnRJZCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRQYXltZW50c1VybCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRQYXlCdWxrU2NhbkJhc2VVcmwoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0Q3JlYXRlT3JVcGRhdGVEcmFmdHNVcmwoY3RpZDogc3RyaW5nKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0Vmlld09yRGVsZXRlRHJhZnRzVXJsKGRpZDogc3RyaW5nKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0QWN0aXZpdHlVcmwoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0QWN0aXZpdHlOZXhQb2xsUmVxdWVzdE1zKCk6IG51bWJlcjtcbiAgcHVibGljIGFic3RyYWN0IGdldEFjdGl2aXR5UmV0cnkoKTogbnVtYmVyO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0VGltZW91dHNGb3JDYXNlUmV0cmlldmFsKCk6IG51bWJlcltdO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0VGltZW91dHNDYXNlUmV0cmlldmFsQXJ0aWZpY2lhbERlbGF5KCk6IG51bWJlcjtcbiAgcHVibGljIGFic3RyYWN0IGdldEFjdGl2aXR5QmF0Y2hDb2xsZWN0aW9uRGVsYXlNcygpOiBudW1iZXI7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRBY3Rpdml0eU1heFJlcXVlc3RQZXJCYXRjaCgpOiBudW1iZXI7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRDYXNlSGlzdG9yeVVybChjYXNlSWQ6IHN0cmluZywgZXZlbnRJZDogc3RyaW5nKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0UHJpbnRTZXJ2aWNlVXJsKCk6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGdldEljcEVuYWJsZSgpOiBib29sZWFuO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0SWNwSnVyaXNkaWN0aW9ucygpOiBzdHJpbmdbXTtcbiAgcHVibGljIGFic3RyYWN0IGxvZ01lc3NhZ2UobG9nTWVzc2FnZTogc3RyaW5nKTogdm9pZDtcbiAgcHVibGljIGFic3RyYWN0IGdldEVuYWJsZVNlcnZpY2VTcGVjaWZpY011bHRpRm9sbG93dXBzKCk6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBEdW1teSB2ZXJzaW9uIHJlcGxhY2luZyBkZXByZWNhdGVkIGBnZXRSZW1vdGVQcmludFNlcnZpY2VVcmwoKWAsIHRvIGJlIHJlbW92ZWQgaW4gbmV4dCBtYWpvciByZWxlYXNlXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIEByZXR1cm5zIGB1bmRlZmluZWRgXG4gICAqL1xuICBwdWJsaWMgZ2V0UmVtb3RlUHJpbnRTZXJ2aWNlVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRQYWdpbmF0aW9uUGFnZVNpemUoKTogbnVtYmVyO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0QmFubmVyc1VybCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRQcmRVcmwoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0Q2FjaGVUaW1lT3V0KCk6IG51bWJlcjtcbiAgcHVibGljIGFic3RyYWN0IGdldFdvcmtBbGxvY2F0aW9uQXBpVXJsKCk6IHN0cmluZztcbiAgcHVibGljIGdldFVzZXJJbmZvQXBpVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRXQVNlcnZpY2VDb25maWcoKTogYW55IHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGdldEFjY2Vzc01hbmFnZW1lbnRNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWNjZXNzTWFuYWdlbWVudEJhc2ljVmlld01vY2soKTogQWNjZXNzTWFuYWdlbWVudEJhc2ljVmlld01vY2tNb2RlbCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBY2Nlc3NNYW5hZ2VtZW50UmVxdWVzdFJldmlld01vY2tNb2RlbCgpOiBBY2Nlc3NNYW5hZ2VtZW50UmVxdWVzdFJldmlld01vY2tNb2RlbCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMb2NhdGlvblJlZkFwaVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0RW52aXJvbm1lbnQoKSB7XG4gICAgaWYgKHRoaXMuZ2V0QWN0aXZpdHlVcmwoKT8uaW5jbHVkZXMoJy5hYXQuJykpXG4gICAgICByZXR1cm4gJ2FhdCc7XG4gICAgZWxzZSBpZiAodGhpcy5nZXRBY3Rpdml0eVVybCgpPy5pbmNsdWRlcygnLnByZXZpZXcuJykpXG4gICAgICByZXR1cm4gJ3ByZXZpZXcnO1xuICAgIGVsc2UgaWYgKHRoaXMuZ2V0QWN0aXZpdHlVcmwoKT8uaW5jbHVkZXMoJy5kZW1vLicpKVxuICAgICAgcmV0dXJuICdkZW1vJztcbiAgICBlbHNlIGlmICh0aGlzLmdldEFjdGl2aXR5VXJsKCk/LmluY2x1ZGVzKCcuaXRoYy4nKSlcbiAgICAgIHJldHVybiAnaXRoYyc7XG4gICAgcmV0dXJuICdwcm9kJztcbiAgfVxuXG5cbiAgcHVibGljIGFic3RyYWN0IGdldFJlZnVuZHNVcmwoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0Tm90aWZpY2F0aW9uVXJsKCk6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGdldFBheW1lbnRSZXR1cm5VcmwoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0Q2F0ZWdvcmllc0FuZERvY3VtZW50c1VybCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREb2N1bWVudERhdGFVcmwoKTogc3RyaW5nO1xuICBwdWJsaWMgZ2V0Q2FtUm9sZUFzc2lnbm1lbnRzQXBpVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRDYXNlRmxhZ3NSZWZkYXRhQXBpVXJsKCk6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGdldFJEQ29tbW9uRGF0YUFwaVVybCgpOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRDYXNlRGF0YVN0b3JlQXBpVXJsKCk6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGdldEV2ZW50c1RvSGlkZSgpOiBzdHJpbmdbXTtcbiAgcHVibGljIGFic3RyYWN0IGdldEVuYWJsZUNhc2VGaWxlVmlld1ZlcnNpb24xXzEoKTogYm9vbGVhbjtcbn1cbmV4cG9ydCBjbGFzcyBDYXNlRWRpdG9yQ29uZmlnIHtcbiAgcHVibGljIGFwaV91cmw6IHN0cmluZztcbiAgcHVibGljIGNhc2VfZGF0YV91cmw6IHN0cmluZztcbiAgcHVibGljIGRvY3VtZW50X21hbmFnZW1lbnRfdXJsOiBzdHJpbmc7XG4gIHB1YmxpYyBkb2N1bWVudF9tYW5hZ2VtZW50X3VybF92Mjogc3RyaW5nO1xuICBwdWJsaWMgaHJzX3VybDogc3RyaW5nO1xuICBwdWJsaWMgZG9jdW1lbnRfbWFuYWdlbWVudF9zZWN1cmVfZW5hYmxlZDogYm9vbGVhbjtcbiAgcHVibGljIGRvY3VtZW50U2VjdXJlTW9kZUNhc2VUeXBlRXhjbHVzaW9uczogc3RyaW5nO1xuICBwdWJsaWMgbWNfY2RhbV9leGNsdXNpb25fbGlzdDogc3RyaW5nO1xuICBwdWJsaWMgbG9naW5fdXJsOiBzdHJpbmc7XG4gIHB1YmxpYyBvYXV0aDJfY2xpZW50X2lkOiBzdHJpbmc7XG4gIHB1YmxpYyBwb3N0Y29kZV9sb29rdXBfdXJsOiBzdHJpbmc7XG4gIHB1YmxpYyByZW1vdGVfZG9jdW1lbnRfbWFuYWdlbWVudF91cmw6IHN0cmluZztcbiAgcHVibGljIHJlbW90ZV9ocnNfdXJsOiBzdHJpbmc7XG4gIHB1YmxpYyBhbm5vdGF0aW9uX2FwaV91cmw6IHN0cmluZztcbiAgcHVibGljIHBheW1lbnRzX3VybDogc3RyaW5nO1xuICBwdWJsaWMgcGF5X2J1bGtfc2Nhbl91cmw6IHN0cmluZztcbiAgcHVibGljIGFjdGl2aXR5X2JhdGNoX2NvbGxlY3Rpb25fZGVsYXlfbXM6IG51bWJlcjtcbiAgcHVibGljIGFjdGl2aXR5X25leHRfcG9sbF9yZXF1ZXN0X21zOiBudW1iZXI7XG4gIHB1YmxpYyBhY3Rpdml0eV9yZXRyeTogbnVtYmVyO1xuICBwdWJsaWMgdGltZW91dHNfY2FzZV9yZXRyaWV2YWw6IG51bWJlcltdO1xuICBwdWJsaWMgdGltZW91dHNfY2FzZV9yZXRyaWV2YWxfYXJ0aWZpY2lhbF9kZWxheTogbnVtYmVyO1xuICBwdWJsaWMgYWN0aXZpdHlfdXJsOiBzdHJpbmc7XG4gIHB1YmxpYyBhY3Rpdml0eV9tYXhfcmVxdWVzdF9wZXJfYmF0Y2g6IG51bWJlcjtcbiAgcHVibGljIHByaW50X3NlcnZpY2VfdXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHJlbW90ZV9wcmludF9zZXJ2aWNlX3VybCBtYXJrZWQgYXMgb3B0aW9uYWwgc2luY2UgZGVwcmVjYXRpb24sIGFoZWFkIG9mIHJlbW92YWwgaW4gbmV4dCBtYWpvciByZWxlYXNlXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBwdWJsaWMgcmVtb3RlX3ByaW50X3NlcnZpY2VfdXJsPzogc3RyaW5nO1xuICBwdWJsaWMgcGFnaW5hdGlvbl9wYWdlX3NpemU6IG51bWJlcjtcbiAgcHVibGljIHByZF91cmw6IHN0cmluZztcbiAgcHVibGljIGNhY2hlX3RpbWVfb3V0OiBudW1iZXI7XG4gIHB1YmxpYyB3b3JrX2FsbG9jYXRpb25fYXBpX3VybDogc3RyaW5nO1xuICBwdWJsaWMgdXNlcl9pbmZvX2FwaV91cmw6IHN0cmluZztcbiAgcHVibGljIHdhX3NlcnZpY2VfY29uZmlnPzogYW55O1xuICBwdWJsaWMgYWNjZXNzX21hbmFnZW1lbnRfbW9kZT86IGJvb2xlYW47XG4gIHB1YmxpYyBhY2Nlc3NfbWFuYWdlbWVudF9iYXNpY192aWV3X21vY2s/OiB7XG4gICAgYWN0aXZlPzogYm9vbGVhbixcbiAgICBiYXNpY0ZpZWxkcz86IHtcbiAgICAgIGNhc2VOYW1lSG1jdHNJbnRlcm5hbD86IHN0cmluZyxcbiAgICAgIGNhc2VNYW5hZ2VtZW50TG9jYXRpb24/OiB7XG4gICAgICAgIGJhc2VMb2NhdGlvbj86IG51bWJlclxuICAgICAgfVxuICAgIH0sXG4gICAgYWNjZXNzUHJvY2Vzcz86IHN0cmluZ1xuICB9O1xuXG4gIHB1YmxpYyBhY2Nlc3NfbWFuYWdlbWVudF9yZXF1ZXN0X3Jldmlld19tb2NrPzoge1xuICAgIGFjdGl2ZT86IGJvb2xlYW47XG4gICAgZGV0YWlscz86IHtcbiAgICAgIGNhc2VOYW1lOiBzdHJpbmc7XG4gICAgICBjYXNlUmVmZXJlbmNlOiBzdHJpbmc7XG4gICAgICBkYXRlU3VibWl0dGVkOiBzdHJpbmc7XG4gICAgICByZXF1ZXN0RnJvbTogc3RyaW5nO1xuICAgICAgcmVhc29uRm9yQ2FzZUFjY2Vzczogc3RyaW5nO1xuICAgIH07XG4gICAgYWNjZXNzUHJvY2Vzcz86IHN0cmluZztcbiAgfTtcblxuICBwdWJsaWMgbG9jYXRpb25fcmVmX2FwaV91cmw/OiBzdHJpbmc7XG4gIHB1YmxpYyBjYW1fcm9sZV9hc3NpZ25tZW50c19hcGlfdXJsPzogc3RyaW5nO1xuICBwdWJsaWMgcmVmdW5kc191cmw6IHN0cmluZztcbiAgcHVibGljIG5vdGlmaWNhdGlvbl91cmw6IHN0cmluZztcbiAgcHVibGljIHBheW1lbnRfcmV0dXJuX3VybDogc3RyaW5nO1xuICBwdWJsaWMgY2F0ZWdvcmllc19hbmRfZG9jdW1lbnRzX3VybDogc3RyaW5nO1xuICBwdWJsaWMgZG9jdW1lbnRfZGF0YV91cmw6IHN0cmluZztcbiAgcHVibGljIGNhc2VfZmxhZ3NfcmVmZGF0YV9hcGlfdXJsOiBzdHJpbmc7XG4gIHB1YmxpYyByZF9jb21tb25fZGF0YV9hcGlfdXJsOiBzdHJpbmc7XG4gIHB1YmxpYyBjYXNlX2RhdGFfc3RvcmVfYXBpX3VybDogc3RyaW5nO1xuICBwdWJsaWMgZW5hYmxlX2Nhc2VfZmlsZV92aWV3X3ZlcnNpb25fMV8xOiBib29sZWFuO1xuICBwdWJsaWMgaWNwX2VuYWJsZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBpY3BfanVyaXNkaWN0aW9uczogc3RyaW5nW107XG4gIHB1YmxpYyBldmVudHNfdG9faGlkZTogc3RyaW5nW107XG4gIHB1YmxpYyBlbmFibGVfc2VydmljZV9zcGVjaWZpY19tdWx0aV9mb2xsb3d1cHM6IHN0cmluZ1tdO1xufVxuIl19
@@ -101,20 +101,40 @@ export class DateInputComponent {
101
101
  writeValue(obj) {
102
102
  if (obj) {
103
103
  this.rawValue = this.removeMilliseconds(obj);
104
- // needs to handle also partial dates, e.g. -05-2016 (missing day)
105
- const [datePart, timePart] = this.rawValue.split('T');
106
- const dateValues = datePart.split('-');
107
- this.year = this.displayYear = dateValues[0] || '';
108
- this.month = this.displayMonth = dateValues[1] || '';
109
- this.day = this.displayDay = dateValues[2] || '';
110
- if (timePart) {
111
- const timeParts = timePart.split(':');
112
- this.hour = this.displayHour = timeParts[0] || '';
113
- this.minute = this.displayMinute = timeParts[1] || '';
114
- this.second = this.displaySecond = timeParts[2] || '';
115
- }
104
+ this.getLocalDateTimeString(this.rawValue);
116
105
  }
117
106
  }
107
+ getLocalDateTimeString(dateInput) {
108
+ const date = new Date(dateInput);
109
+ if (isNaN(date.getTime())) {
110
+ // Not a valid date
111
+ this.year = this.displayYear = '';
112
+ this.month = this.displayMonth = '';
113
+ this.day = this.displayDay = '';
114
+ this.hour = this.displayHour = '';
115
+ this.minute = this.displayMinute = '';
116
+ this.second = this.displaySecond = '';
117
+ return;
118
+ }
119
+ const localDate = this.getOffsetDate(date);
120
+ this.year = this.displayYear = String(localDate.getFullYear());
121
+ this.month = this.displayMonth = this.padZero(localDate.getMonth() + 1);
122
+ this.day = this.displayDay = this.padZero(localDate.getDate());
123
+ if (dateInput.includes('T')) {
124
+ this.hour = this.displayHour = this.padZero(localDate.getHours());
125
+ this.minute = this.displayMinute = this.padZero(localDate.getMinutes());
126
+ this.second = this.displaySecond = this.padZero(localDate.getSeconds());
127
+ }
128
+ else {
129
+ this.hour = this.displayHour = '';
130
+ this.minute = this.displayMinute = '';
131
+ this.second = this.displaySecond = '';
132
+ }
133
+ }
134
+ getOffsetDate(date) {
135
+ const localOffset = -date.getTimezoneOffset() / 60;
136
+ return new Date(date.getTime() + localOffset * 3600 * 1000);
137
+ }
118
138
  validate(control) {
119
139
  if (this.mandatory && !this.viewValue()) {
120
140
  return {
@@ -142,42 +162,42 @@ export class DateInputComponent {
142
162
  dayChange(value) {
143
163
  // get value from input
144
164
  this.day = value;
145
- this.rawValue = this.viewValue();
165
+ this.rawValue = this.isDateFormat(this.viewValue()) && this.viewValue().includes('T') ? this.convertToUTC(this.viewValue()) : this.viewValue();
146
166
  // update the form
147
167
  this.propagateChange(this.rawValue);
148
168
  }
149
169
  monthChange(value) {
150
170
  // get value from input
151
171
  this.month = value;
152
- this.rawValue = this.viewValue();
172
+ this.rawValue = this.isDateFormat(this.viewValue()) && this.viewValue().includes('T') ? this.convertToUTC(this.viewValue()) : this.viewValue();
153
173
  // update the form
154
174
  this.propagateChange(this.rawValue);
155
175
  }
156
176
  yearChange(value) {
157
177
  // get value from input
158
178
  this.year = value;
159
- this.rawValue = this.viewValue();
179
+ this.rawValue = this.isDateFormat(this.viewValue()) && this.viewValue().includes('T') ? this.convertToUTC(this.viewValue()) : this.viewValue();
160
180
  // update the form
161
181
  this.propagateChange(this.rawValue);
162
182
  }
163
183
  hourChange(value) {
164
184
  // get value from input
165
185
  this.hour = value;
166
- this.rawValue = this.viewValue();
186
+ this.rawValue = this.isDateFormat(this.viewValue()) ? this.convertToUTC(this.viewValue()) : this.viewValue();
167
187
  // update the form
168
188
  this.propagateChange(this.rawValue);
169
189
  }
170
190
  minuteChange(value) {
171
191
  // get value from input
172
192
  this.minute = value;
173
- this.rawValue = this.viewValue();
193
+ this.rawValue = this.isDateFormat(this.viewValue()) ? this.convertToUTC(this.viewValue()) : this.viewValue();
174
194
  // update the form
175
195
  this.propagateChange(this.rawValue);
176
196
  }
177
197
  secondChange(value) {
178
198
  // get value from input
179
199
  this.second = value;
180
- this.rawValue = this.viewValue();
200
+ this.rawValue = this.isDateFormat(this.viewValue()) ? this.convertToUTC(this.viewValue()) : this.viewValue();
181
201
  // update the form
182
202
  this.propagateChange(this.rawValue);
183
203
  }
@@ -212,6 +232,23 @@ export class DateInputComponent {
212
232
  secondId() {
213
233
  return this.id + '-second';
214
234
  }
235
+ // convert the dates to UTC before sending to the backend
236
+ convertToUTC(input) {
237
+ if (!input)
238
+ return null;
239
+ const date = new Date(input);
240
+ const year = date.getUTCFullYear();
241
+ const month = this.padZero(date.getUTCMonth() + 1);
242
+ const day = this.padZero(date.getUTCDate());
243
+ const hour = this.padZero(date.getUTCHours());
244
+ const minute = this.padZero(date.getUTCMinutes());
245
+ const second = this.padZero(date.getUTCSeconds());
246
+ const ms = date.getUTCMilliseconds().toString().padStart(3, '0');
247
+ return `${year}-${month}-${day}T${hour}:${minute}:${second}.${ms}`;
248
+ }
249
+ padZero(value) {
250
+ return value.toString().padStart(2, '0');
251
+ }
215
252
  viewValue() {
216
253
  if (this.day || this.month || this.year || this.hour || this.minute || this.second) {
217
254
  const date = [
@@ -344,4 +381,4 @@ export class DateInputComponent {
344
381
  type: Input
345
382
  }] }); })();
346
383
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DateInputComponent, { className: "DateInputComponent", filePath: "lib/components/form/date-input/date-input.component.ts", lineNumber: 20 }); })();
347
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUF5QyxXQUFXLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUErQixNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0lDb0QvSSxBQURGLCtCQUEyRCxjQUNJO0lBQUEsWUFBeUI7O0lBQUEsaUJBQU87SUFDN0Ysb0NBWXFEO0lBRDlDLEFBREEsQUFEQSxzTkFBUyxxQ0FBMkIsS0FBQyx5TUFDNUIscUNBQTJCLEtBQUMsaUtBQzVCLG1CQUFZLEtBQUM7SUFFL0IsQUFiRSxpQkFZcUQsRUFDakQ7OztJQWRxQixjQUFtQzs7SUFBQyxjQUF5QjtJQUF6QixrREFBeUI7SUFHL0UsZUFBZTtJQVVmLEFBSkEsQUFMQSxBQURBLG9DQUFlLHlCQUNFLDZCQUtJLHlEQUl3Qjs7Ozs7SUFJcEQsQUFERiwrQkFBNkQsY0FDSTtJQUFBLFlBQTJCOztJQUFBLGlCQUFPO0lBQ2pHLG9DQVlxRDtJQUQ5QyxBQURBLEFBREEsd05BQVMseUNBQStCLEtBQUMsMk1BQ2hDLHlDQUErQixLQUFDLGlLQUNoQyxtQkFBWSxLQUFDO0lBRS9CLEFBYkUsaUJBWXFELEVBQ2pEOzs7SUFkcUIsY0FBcUM7O0lBQUMsY0FBMkI7SUFBM0Isb0RBQTJCO0lBR25GLGVB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QyxRQUFRLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQWE7UUFDOUIsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWpDLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QyxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQWE7UUFDN0IsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBRWxCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWpDLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQWE7UUFDN0IsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBRWxCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWpDLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sWUFBWSxDQUFDLEtBQWE7UUFDL0IsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBRXBCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWpDLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QyxDQUFDO0lBRU0sWUFBWSxDQUFDLEtBQWE7UUFDL0IsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBRXBCLElBQUksQ0FBQyxRQUFRLEdB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aEQsa0JBQWtCO2NBaEI5QixTQUFTOzJCQUNFLGdCQUFnQixhQUVmO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDO3dCQUNqRCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtvQkFDRDt3QkFDRSxPQUFPLEVBQUUsYUFBYTt3QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUM7d0JBQ2pELEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGO2dCQUlNLEVBQUU7a0JBRFIsS0FBSztZQUlDLFNBQVM7a0JBRGYsS0FBSztZQUlDLFVBQVU7a0JBRGhCLEtBQUs7WUFJQyxXQUFXO2tCQURqQixLQUFLO1lBSUMsU0FBUztrQkFEZixLQUFLOztrRkFiSyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N1dC1kYXRlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtaW5wdXQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZUlucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZUlucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYW5kYXRvcnk6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGlzRGF0ZVRpbWU6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXNJbnZhbGlkOiBib29sZWFuO1xuXG4gIHB1YmxpYyBpc1RvdWNoZWQgPSBmYWxzZTtcbiAgcHVibGljIGRpc3BsYXlEYXk6IHN0cmluZyA9IG51bGw7XG4gIHB1YmxpYyBkaXNwbGF5TW9udGg6IHN0cmluZyA9IG51bGw7XG4gIHB1YmxpYyBkaXNwbGF5WWVhcjogc3RyaW5nID0gbnVsbDtcblxuICBwdWJsaWMgZGlzcGxheUhvdXI6IHN0cmluZyA9IG51bGw7XG4gIHB1YmxpYyBkaXNwbGF5TWludXRlOiBzdHJpbmcgPSBudWxsO1xuICBwdWJsaWMgZGlzcGxheVNlY29uZDogc3RyaW5nID0gbnVsbDtcbiAgLy8gV29ya3Mgd2l0aFxuICAvLyAyMDE4LTA0LTA5VDA4OjAyOjI3LjU0MlxuICAvLyAyMDE4LTA0LTA5VDA4OjAyOjI3LjU0MlpcbiAgLy8gMjAxOC0wNC0wOVQwODowMjoyNy41NDIrMDE6MDBcbiAgcHJpdmF0ZSByZWFkb25seSBEQVRFX0ZPUk1BVCA9XG4gICAgL14oMTl8MjApXFxkezJ9LT8oXFxkXFxkKS0/KFxcZFxcZCkoPzpUKFxcZFxcZCkoPzo6PyhcXGRcXGQpKD86Oj8oXFxkXFxkKSg/OlxcLihcXGQrKSk/KT8pPyhafChbKy1dKShcXGRcXGQpOj8oXFxkXFxkKSk/fFopPyQvO1xuICAvLyAgICB5ZWFyIC0gbW9udGggLSAgZGF5ICAgICBUICAgSEggICAgIDogICBNTSAgICAgIDogIFNTICAgICAgIC4wMDAgICAgICAgIFogb3IgKyAgICAgMDEgOiAgIDAwXG4gIHByaXZhdGUgcHJvcGFnYXRlQ2hhbmdlOiAoXzogYW55KSA9PiB7fTtcbiAgcHJpdmF0ZSByYXdWYWx1ZSA9ICcnO1xuICBwcml2YXRlIGRheTogc3RyaW5nO1xuICBwcml2YXRlIG1vbnRoOiBzdHJpbmc7XG4gIHByaXZhdGUgeWVhcjogc3RyaW5nO1xuICBwcml2YXRlIGhvdXI6IHN0cmluZztcbiAgcHJpdmF0ZSBtaW51dGU6IHN0cmluZztcbiAgcHJpdmF0ZSBzZWNvbmQ6IHN0cmluZztcblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMubWFuZGF0b3J5ICYmIHRoaXMuaXNEYXRlVGltZSkge1xuICAgICAgdGhpcy5kaXNwbGF5SG91ciA9ICcwMCc7XG4gICAgICB0aGlzLmRpc3BsYXlNaW51dGUgPSAnMDAnO1xuICAgICAgdGhpcy5kaXNwbGF5U2Vjb25kID0gJzAwJztcbiAgICAgIHRoaXMuaG91ciA9ICcwMCc7XG4gICAgICB0aGlzLm1pbnV0ZSA9ICcwMCc7XG4gICAgICB0aGlzLnNlY29uZCA9ICcwMCc7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUob2JqOiBzdHJpbmcpOiB2b2lkIHsgLy8gMjAxOC0wNC0wOVQwODowMjoyNy41NDJcbiAgICBpZiAob2JqKSB7XG4gICAgICB0aGlzLnJhd1ZhbHVlID0gdGhpcy5yZW1vdmVNaWxsaXNlY29uZHMob2JqKTtcbiAgICAgIC8vIG5lZWRzIHRvIGhhbmRsZSBhbHNvIHBhcnRpYWwgZGF0ZXMsIGUuZy4gLTA1LTIwMTYgKG1pc3NpbmcgZGF5KVxuICAgICAgY29uc3QgW2RhdGVQYXJ0LCB0aW1lUGFydF0gPSB0aGlzLnJhd1ZhbHVlLnNwbGl0KCdUJyk7XG4gICAgICBjb25zdCBkYXRlVmFsdWVzID0gZGF0ZVBhcnQuc3BsaXQoJy0nKTtcbiAgICAgIHRoaXMueWVhciA9IHRoaXMuZGlzcGxheVllYXIgPSBkYXRlVmFsdWVzWzBdIHx8ICcnO1xuICAgICAgdGhpcy5tb250aCA9IHRoaXMuZGlzcGxheU1vbnRoID0gZGF0ZVZhbHVlc1sxXSB8fCAnJztcbiAgICAgIHRoaXMuZGF5ID0gdGhpcy5kaXNwbGF5RGF5ID0gZGF0ZVZhbHVlc1syXSB8fCAnJztcbiAgICAgIGlmICh0aW1lUGFydCkge1xuICAgICAgICBjb25zdCB0aW1lUGFydHMgPSB0aW1lUGFydC5zcGxpdCgnOicpO1xuICAgICAgICB0aGlzLmhvdXIgPSB0aGlzLmRpc3BsYXlIb3VyID0gdGltZVBhcnRzWzBdIHx8ICcnO1xuICAgICAgICB0aGlzLm1pbnV0ZSA9IHRoaXMuZGlzcGxheU1pbnV0ZSA9IHRpbWVQYXJ0c1sxXSB8fCAnJztcbiAgICAgICAgdGhpcy5zZWNvbmQgPSB0aGlzLmRpc3BsYXlTZWNvbmQgPSB0aW1lUGFydHNbMl0gfHwgJyc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMge1xuICAgIGlmICh0aGlzLm1hbmRhdG9yeSAmJiAhdGhpcy52aWV3VmFsdWUoKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVxdWlyZWQ6ICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJ1xuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKGNvbnRyb2wudmFsdWUgJiYgIXRoaXMuaXNEYXRlRm9ybWF0KHRoaXMuZ2V0VmFsdWVGb3JWYWxpZGF0aW9uKGNvbnRyb2wpKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGF0dGVybjogJ0RhdGUgaXMgbm90IHZhbGlkJ1xuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAvLyBEbyBub3RoaW5nLlxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudmFsaWRhdGUgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyA9PiB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZGF5Q2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAvLyBnZXQgdmFsdWUgZnJvbSBpbnB1dFxuICAgIHRoaXMuZGF5ID0gdmFsdWU7XG5cbiAgICB0aGlzLnJhd1ZhbHVlID0gdGhpcy52aWV3VmFsdWUoKTtcblxuICAgIC8vIHVwZGF0ZSB0aGUgZm9ybVxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMucmF3VmFsdWUpO1xuICB9XG5cbiAgcHVibGljIG1vbnRoQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAvLyBnZXQgdmFsdWUgZnJvbSBpbnB1dFxuICAgIHRoaXMubW9udGggPSB2YWx1ZTtcblxuICAgIHRoaXMucmF3VmFsdWUgPSB0aGlzLnZpZXdWYWx1ZSgpO1xuXG4gICAgLy8gdXBkYXRlIHRoZSBmb3JtXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5yYXdWYWx1ZSk7XG5cbiAgfVxuXG4gIHB1YmxpYyB5ZWFyQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAvLyBnZXQgdmFsdWUgZnJvbSBpbnB1dFxuICAgIHRoaXMueWVhciA9IHZhbHVlO1xuXG4gICAgdGhpcy5yYXdWYWx1ZSA9IHRoaXMudmlld1ZhbHVlKCk7XG5cbiAgICAvLyB1cGRhdGUgdGhlIGZvcm1cbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnJhd1ZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBob3VyQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAvLyBnZXQgdmFsdWUgZnJvbSBpbnB1dFxuICAgIHRoaXMuaG91ciA9IHZhbHVlO1xuXG4gICAgdGhpcy5yYXdWYWx1ZSA9IHRoaXMudmlld1ZhbHVlKCk7XG5cbiAgICAvLyB1cGRhdGUgdGhlIGZvcm1cbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnJhd1ZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBtaW51dGVDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgIC8vIGdldCB2YWx1ZSBmcm9tIGlucHV0XG4gICAgdGhpcy5taW51dGUgPSB2YWx1ZTtcblxuICAgIHRoaXMucmF3VmFsdWUgPSB0aGlzLnZpZXdWYWx1ZSgpO1xuXG4gICAgLy8gdXBkYXRlIHRoZSBmb3JtXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5yYXdWYWx1ZSk7XG5cbiAgfVxuXG4gIHB1YmxpYyBzZWNvbmRDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgIC8vIGdldCB2YWx1ZSBmcm9tIGlucHV0XG4gICAgdGhpcy5zZWNvbmQgPSB2YWx1ZTtcblxuICAgIHRoaXMucmF3VmFsdWUgPSB0aGlzLnZpZXdWYWx1ZSgpO1xuXG4gICAgLy8gdXBkYXRlIHRoZSBmb3JtXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5yYXdWYWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgaW5wdXRGb2N1cygpIHtcbiAgICB0aGlzLmlzVG91Y2hlZCA9IGZhbHNlO1xuICAgIHRoaXMudG91Y2goKTtcbiAgfVxuXG4gIHB1YmxpYyB0b3VjaCgpIHtcbiAgICBpZiAodGhpcy5pc1RvdWNoZWQpIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5yYXdWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVW50b3VjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRheUlkKCkge1xuICAgIHJldHVybiB0aGlzLmlkICsgJy1kYXknO1xuICB9XG5cbiAgcHVibGljIG1vbnRoSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaWQgKyAnLW1vbnRoJztcbiAgfVxuXG4gIHB1YmxpYyB5ZWFySWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaWQgKyAnLXllYXInO1xuICB9XG5cbiAgcHVibGljIGhvdXJJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pZCArICctaG91cic7XG4gIH1cblxuICBwdWJsaWMgbWludXRlSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaWQgKyAnLW1pbnV0ZSc7XG4gIH1cblxuICBwdWJsaWMgc2Vjb25kSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaWQgKyAnLXNlY29uZCc7XG4gIH1cblxuICBwcml2YXRlIHZpZXdWYWx1ZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmRheSB8fCB0aGlzLm1vbnRoIHx8IHRoaXMueWVhciB8fCB0aGlzLmhvdXIgfHwgdGhpcy5taW51dGUgfHwgdGhpcy5zZWNvbmQpIHtcbiAgICAgIGNvbnN0IGRhdGUgPSBbXG4gICAgICAgIHRoaXMueWVhciA/IHRoaXMueWVhciA6ICcnLFxuICAgICAgICB0aGlzLm1vbnRoID8gdGhpcy5wYWQodGhpcy5tb250aCkgOiAnJyxcbiAgICAgICAgdGhpcy5kYXkgPyB0aGlzLnBhZCh0aGlzLmRheSkgOiAnJ1xuICAgICAgXS5qb2luKCctJyk7XG4gICAgICBpZiAodGhpcy5pc0RhdGVUaW1lKSB7XG4gICAgICAgIGNvbnN0IHRpbWUgPSBbXG4gICAgICAgICAgdGhpcy5ob3VyID8gdGhpcy5wYWQodGhpcy5ob3VyKSA6ICcnLFxuICAgICAgICAgIHRoaXMubWludXRlID8gdGhpcy5wYWQodGhpcy5taW51dGUpIDogJycsXG4gICAgICAgICAgdGhpcy5zZWNvbmQgPyB0aGlzLnBhZCh0aGlzLnNlY29uZCkgOiAnJ1xuICAgICAgICBdLmpvaW4oJzonKTtcbiAgICAgICAgcmV0dXJuIGAke2RhdGV9VCR7dGltZX0uMDAwYDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBkYXRlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgaXNEYXRlRm9ybWF0KHZhbDogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuREFURV9GT1JNQVQudGVzdCh2YWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYWQobnVtOiBhbnksIHBhZE51bSA9IDIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbCA9IG51bSAhPT0gdW5kZWZpbmVkID8gbnVtLnRvU3RyaW5nKCkgOiAnJztcbiAgICByZXR1cm4gdmFsLmxlbmd0aCA+PSBwYWROdW0gPyB2YWwgOiBuZXcgQXJyYXkocGFkTnVtIC0gdmFsLmxlbmd0aCArIDEpLmpvaW4oJzAnKSArIHZhbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmFsdWVGb3JWYWxpZGF0aW9uKGNvbnRyb2w6IGFueSkge1xuICAgIGlmICh0aGlzLmlzRGF0ZVRpbWUpIHtcbiAgICAgIHJldHVybiBjb250cm9sLnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY29udHJvbC52YWx1ZS5yZXBsYWNlKC9aLiovLCAnVDAwOjAwOjAwWicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlTWlsbGlzZWNvbmRzKGRhdGVUaW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRlVGltZS5yZXBsYWNlKC9cXC4uKi8sICcnKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZGF0ZVwiPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBmb3JtLWdyb3VwLWRheVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbFwiIFthdHRyLmlkXT1cIidkYXktbGFiZWwtJytkYXlJZCgpXCI+e3snRGF5JyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgIDxpbnB1dCAjZGF5SW5wdXRcbiAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICBbaWRdPVwiZGF5SWQoKVwiXG4gICAgICAgICAgIFtuYW1lXT1cImRheUlkKClcIlxuICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgIHBhdHRlcm49XCJbMC05XSpcIlxuICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIidkYXktbGFiZWwtJytkYXlJZCgpXCJcbiAgICAgICAgICAgW3ZhbHVlXT1cImRpc3BsYXlEYXlcIlxuICAgICAgICAgICAoY2hhbmdlKT1cImRheUNoYW5nZShkYXlJbnB1dC52YWx1ZSlcIlxuICAgICAgICAgICAoa2V5dXApPVwiZGF5Q2hhbmdlKGRheUlucHV0LnZhbHVlKVwiXG4gICAgICAgICAgIChmb2N1cyk9XCJpbnB1dEZvY3VzKClcIlxuICAgICAgICAgICBbbmdDbGFzc109XCJ7J2dvdnVrLWlucHV0LS1lcnJvcic6IGlzSW52YWxpZH1cIj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgZm9ybS1ncm91cC1tb250aFwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbFwiIFthdHRyLmlkXT1cIidtb250aC1sYWJlbC0nKyBtb250aElkKClcIj57eydNb250aCcgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICA8aW5wdXQgI21vbnRoSW5wdXRcbiAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICBbaWRdPVwibW9udGhJZCgpXCJcbiAgICAgICAgICAgW25hbWVdPVwibW9udGhJZCgpXCJcbiAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICBwYXR0ZXJuPVwiWzAtOV0qXCJcbiAgICAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInbW9udGgtbGFiZWwtJysgbW9udGhJZCgpXCJcbiAgICAgICAgICAgW3ZhbHVlXT1cImRpc3BsYXlNb250aFwiXG4gICAgICAgICAgIChjaGFuZ2UpPVwibW9udGhDaGFuZ2UobW9udGhJbnB1dC52YWx1ZSlcIlxuICAgICAgICAgICAoa2V5dXApPVwibW9udGhDaGFuZ2UobW9udGhJbnB1dC52YWx1ZSlcIlxuICAgICAgICAgICAoZm9jdXMpPVwiaW5wdXRGb2N1cygpXCJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwieydnb3Z1ay1pbnB1dC0tZXJyb3InOiBpc0ludmFsaWR9XCI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGZvcm0tZ3JvdXAteWVhclwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbFwiIFthdHRyLmlkXT1cIid5ZWFyLWxhYmVsLScrIHllYXJJZCgpXCI+e3snWWVhcicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICA8aW5wdXQgI3llYXJJbnB1dFxuICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgIFtpZF09XCJ5ZWFySWQoKVwiXG4gICAgICAgICAgIFtuYW1lXT1cInllYXJJZCgpXCJcbiAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICBwYXR0ZXJuPVwiWzAtOV0qXCJcbiAgICAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIneWVhci1sYWJlbC0nKyB5ZWFySWQoKVwiXG4gICAgICAgICAgIFt2YWx1ZV09XCJkaXNwbGF5WWVhclwiXG4gICAgICAgICAgIChjaGFuZ2UpPVwieWVhckNoYW5nZSh5ZWFySW5wdXQudmFsdWUpXCJcbiAgICAgICAgICAgKGtleXVwKT1cInllYXJDaGFuZ2UoeWVhcklucHV0LnZhbHVlKVwiXG4gICAgICAgICAgIChmb2N1cyk9XCJpbnB1dEZvY3VzKClcIlxuICAgICAgICAgICBbbmdDbGFzc109XCJ7J2dvdnVrLWlucHV0LS1lcnJvcic6IGlzSW52YWxpZH1cIj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgZm9ybS1ncm91cC1ob3VyXCIgKm5nSWY9XCJpc0RhdGVUaW1lXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsXCIgW2F0dHIuaWRdPVwiJ2hvdXItbGFiZWwtJysgaG91cklkKClcIj57eydIb3VyJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgIDxpbnB1dCAjaG91cklucHV0XG4gICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgW2lkXT1cImhvdXJJZCgpXCJcbiAgICAgICAgICAgW25hbWVdPVwiaG91cklkKClcIlxuICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgIHBhdHRlcm49XCJbMC05XSpcIlxuICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIidob3VyLWxhYmVsLScrIGhvdXJJZCgpXCJcbiAgICAgICAgICAgW3ZhbHVlXT1cImRpc3BsYXlIb3VyXCJcbiAgICAgICAgICAgKGlucHV0KT1cImhvdXJDaGFuZ2UoaG91cklucHV0LnZhbHVlKVwiXG4gICAgICAgICAgIChrZXl1cCk9XCJob3VyQ2hhbmdlKGhvdXJJbnB1dC52YWx1ZSlcIlxuICAgICAgICAgICAoZm9jdXMpPVwiaW5wdXRGb2N1cygpXCJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwieydnb3Z1ay1pbnB1dC0tZXJyb3InOiBpc0ludmFsaWR9XCI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGZvcm0tZ3JvdXAtbWludXRlXCIgKm5nSWY9XCJpc0RhdGVUaW1lXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsXCIgW2F0dHIuaWRdPVwiJ21pbnV0ZS1sYWJlbC0nKyBob3VySWQoKVwiPnt7J01pbnV0ZScgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICA8aW5wdXQgI21pbnV0ZUlucHV0XG4gICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgW2lkXT1cIm1pbnV0ZUlkKClcIlxuICAgICAgICAgICBbbmFtZV09XCJtaW51dGVJZCgpXCJcbiAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICBwYXR0ZXJuPVwiWzAtOV0qXCJcbiAgICAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInbWludXRlLWxhYmVsLScrIG1pbnV0ZUlkKClcIlxuICAgICAgICAgICBbdmFsdWVdPVwiZGlzcGxheU1pbnV0ZVwiXG4gICAgICAgICAgIChpbnB1dCk9XCJtaW51dGVDaGFuZ2UobWludXRlSW5wdXQudmFsdWUpXCJcbiAgICAgICAgICAgKGtleXVwKT1cIm1pbnV0ZUNoYW5nZShtaW51dGVJbnB1dC52YWx1ZSlcIlxuICAgICAgICAgICAoZm9jdXMpPVwiaW5wdXRGb2N1cygpXCJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwieydnb3Z1ay1pbnB1dC0tZXJyb3InOiBpc0ludmFsaWR9XCI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGZvcm0tZ3JvdXAtc2Vjb25kXCIgKm5nSWY9XCJpc0RhdGVUaW1lXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsXCIgW2F0dHIuaWRdPVwiJ3NlY29uZC1sYWJlbC0nKyBzZWNvbmRJZCgpXCI+e3snU2Vjb25kJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgIDxpbnB1dCAjc2Vjb25kSW5wdXRcbiAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICBbaWRdPVwic2Vjb25kSWQoKVwiXG4gICAgICAgICAgIFtuYW1lXT1cInNlY29uZElkKClcIlxuICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgIHBhdHRlcm49XCJbMC05XSpcIlxuICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIidzZWNvbmQtbGFiZWwtJysgc2Vjb25kSWQoKVwiXG4gICAgICAgICAgIFt2YWx1ZV09XCJkaXNwbGF5U2Vjb25kXCJcbiAgICAgICAgICAgKGlucHV0KT1cInNlY29uZENoYW5nZShzZWNvbmRJbnB1dC52YWx1ZSlcIlxuICAgICAgICAgICAoa2V5dXApPVwic2Vjb25kQ2hhbmdlKHNlY29uZElucHV0LnZhbHVlKVwiXG4gICAgICAgICAgIChmb2N1cyk9XCJpbnB1dEZvY3VzKClcIlxuICAgICAgICAgICBbbmdDbGFzc109XCJ7J2dvdnVrLWlucHV0LS1lcnJvcic6IGlzSW52YWxpZH1cIj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
384
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUF5QyxXQUFXLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUErQixNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0lDb0QvSSxBQURGLCtCQUEyRCxjQUNJO0lBQUEsWUFBeUI7O0lBQUEsaUJBQU87SUFDN0Ysb0NBWXFEO0lBRDlDLEFBREEsQUFEQSxzTkFBUyxxQ0FBMkIsS0FBQyx5TUFDNUIscUNBQTJCLEtBQUMsaUtBQzVCLG1CQUFZLEtBQUM7SUFFL0IsQUFiRSxpQkFZcUQsRUFDakQ7OztJQWRxQixjQUFtQzs7SUFBQyxjQUF5QjtJQUF6QixrREFBeUI7SUFHL0UsZUFBZTtJQVVmLEFBSkEsQUFMQSxBQURBLG9DQUFlLHlCQUNFLDZCQUtJLHlEQUl3Qjs7Ozs7SUFJcEQsQUFERiwrQkFBNkQsY0FDSTtJQUFBLFlBQTJCOztJQUFBLGlCQUFPO0lBQ2pHLG9DQVlxRDtJQUQ5QyxBQURBLEFBREEsd05BQVMseUNBQStCLEtBQUMsMk1BQ2hDLHlDQUErQixLQUFDLGlLQUNoQyxtQkFBWSxLQUFDO0lBRS9CLEFBYkUsaUJBWXFELEVBQ2pEOzs7SUFkcUIsY0FBcUM7O0lBQUMsY0FBMkI7SUFBM0Isb0RBQTJCO0lBR25GLGVBQWlCO0lBVWpCLEFBSkEsQUFMQSxBQURBLHNDQUFpQiwyQkFDRSwrQkFLSSx5REFJc0I7Ozs7O0lBSXBELEFBREYsK0JBQTZELGNBQ007SUFBQSxZQUEyQjs7SUFBQSxpQkFBTztJQUNuRyxvQ0FZcUQ7SUFEOUMsQUFEQSxBQURBLDBOQUFTLDBDQUErQixLQUFDLDZNQUNoQywwQ0FBK0IsS0FBQyxrS0FDaEMsbUJBQVksS0FBQztJQUUvQixBQWJFLGlCQVlxRCxFQUNqRDs7O0lBZHFCLGNBQXVDOztJQUFDLGNBQTJCO0lBQTNCLG9EQUEyQjtJQUdyRixlQUFpQjtJQVVqQixBQUpBLEFBTEEsQUFEQSxzQ0FBaUIsMkJBQ0UsK0JBS0kseURBSXNCOzs7QURqRnhELE1BQU0sT0FBTyxrQkFBa0I7SUFFdEIsRUFBRSxDQUFTO0lBR1gsU0FBUyxDQUFVO0lBR25CLFVBQVUsQ0FBVTtJQUdwQixXQUFXLENBQWM7SUFHekIsU0FBUyxDQUFVO0lBRW5CLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsVUFBVSxHQUFXLElBQUksQ0FBQztJQUMxQixZQUFZLEdBQVcsSUFBSSxDQUFDO0lBQzVCLFdBQVcsR0FBVyxJQUFJLENBQUM7SUFFM0IsV0FBVyxHQUFXLElBQUksQ0FBQztJQUMzQixhQUFhLEdBQVcsSUFBSSxDQUFDO0lBQzdCLGFBQWEsR0FBVyxJQUFJLENBQUM7SUFDcEMsYUFBYTtJQUNiLDBCQUEwQjtJQUMxQiwyQkFBMkI7SUFDM0IsZ0NBQWdDO0lBQ2YsV0FBVyxHQUMxQiw2R0FBNkcsQ0FBQztJQUNoSCxpR0FBaUc7SUFDekYsZUFBZSxDQUFpQjtJQUNoQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ2QsR0FBRyxDQUFTO0lBQ1osS0FBSyxDQUFTO0lBQ2QsSUFBSSxDQUFTO0lBQ2IsSUFBSSxDQUFTO0lBQ2IsTUFBTSxDQUFTO0lBQ2YsTUFBTSxDQUFTO0lBRWhCLFFBQVE7UUFDYixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRU0sVUFBVSxDQUFDLEdBQVc7UUFDM0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxTQUFpQjtRQUM5QyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzFCLG1CQUFtQjtZQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztZQUN0QyxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFL0QsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDMUUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVPLGFBQWEsQ0FBQyxJQUFVO1FBQzlCLE1BQU0sV0FBVyxHQUFHLENBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ3BELE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLFdBQVcsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVNLFFBQVEsQ0FBQyxPQUF3QjtRQUN0QyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUN4QyxPQUFPO2dCQUNMLFFBQVEsRUFBRSx3QkFBd0I7YUFDbkMsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDN0UsT0FBTztnQkFDTCxPQUFPLEVBQUUsbUJBQW1CO2FBQzdCLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEVBQU87UUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEVBQU87UUFDOUIsY0FBYztJQUNoQixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsT0FBd0IsRUFBb0IsRUFBRTtZQUM3RCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDLENBQUM7SUFDSixDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQWE7UUFDNUIsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBRWpCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFL0ksa0JBQWtCO1FBQ2xCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxXQUFXLENBQUMsS0FBYTtRQUM5Qix1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUUvSSxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFdEMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFhO1FBQzdCLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUVsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRS9JLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQWE7UUFDN0IsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBRWxCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRTdHLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sWUFBWSxDQUFDLEtBQWE7UUFDL0IsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBRXBCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRTdHLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QyxDQUFDO0lBRU0sWUFBWSxDQUFDLEtBQWE7UUFDL0IsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBRXBCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRTdHLGtCQUFrQjtR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RSxtQkFBbUIsQ0FBQzt3QkFDakQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLGFBQWE7d0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDO3dCQUNqRCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjtnQkFJTSxFQUFFO2tCQURSLEtBQUs7WUFJQyxTQUFTO2tCQURmLEtBQUs7WUFJQyxVQUFVO2tCQURoQixLQUFLO1lBSUMsV0FBVztrQkFEakIsS0FBSztZQUlDLFNBQVM7a0JBRGYsS0FBSzs7a0ZBYkssa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdXQtZGF0ZS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLWlucHV0Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVJbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVJbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBwdWJsaWMgaWQ6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWFuZGF0b3J5OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpc0RhdGVUaW1lOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGlzSW52YWxpZDogYm9vbGVhbjtcblxuICBwdWJsaWMgaXNUb3VjaGVkID0gZmFsc2U7XG4gIHB1YmxpYyBkaXNwbGF5RGF5OiBzdHJpbmcgPSBudWxsO1xuICBwdWJsaWMgZGlzcGxheU1vbnRoOiBzdHJpbmcgPSBudWxsO1xuICBwdWJsaWMgZGlzcGxheVllYXI6IHN0cmluZyA9IG51bGw7XG5cbiAgcHVibGljIGRpc3BsYXlIb3VyOiBzdHJpbmcgPSBudWxsO1xuICBwdWJsaWMgZGlzcGxheU1pbnV0ZTogc3RyaW5nID0gbnVsbDtcbiAgcHVibGljIGRpc3BsYXlTZWNvbmQ6IHN0cmluZyA9IG51bGw7XG4gIC8vIFdvcmtzIHdpdGhcbiAgLy8gMjAxOC0wNC0wOVQwODowMjoyNy41NDJcbiAgLy8gMjAxOC0wNC0wOVQwODowMjoyNy41NDJaXG4gIC8vIDIwMTgtMDQtMDlUMDg6MDI6MjcuNTQyKzAxOjAwXG4gIHByaXZhdGUgcmVhZG9ubHkgREFURV9GT1JNQVQgPVxuICAgIC9eKDE5fDIwKVxcZHsyfS0/KFxcZFxcZCktPyhcXGRcXGQpKD86VChcXGRcXGQpKD86Oj8oXFxkXFxkKSg/Ojo/KFxcZFxcZCkoPzpcXC4oXFxkKykpPyk/KT8oWnwoWystXSkoXFxkXFxkKTo/KFxcZFxcZCkpP3xaKT8kLztcbiAgLy8gICAgeWVhciAtIG1vbnRoIC0gIGRheSAgICAgVCAgIEhIICAgICA6ICAgTU0gICAgICA6ICBTUyAgICAgICAuMDAwICAgICAgICBaIG9yICsgICAgIDAxIDogICAwMFxuICBwcml2YXRlIHByb3BhZ2F0ZUNoYW5nZTogKF86IGFueSkgPT4ge307XG4gIHByaXZhdGUgcmF3VmFsdWUgPSAnJztcbiAgcHJpdmF0ZSBkYXk6IHN0cmluZztcbiAgcHJpdmF0ZSBtb250aDogc3RyaW5nO1xuICBwcml2YXRlIHllYXI6IHN0cmluZztcbiAgcHJpdmF0ZSBob3VyOiBzdHJpbmc7XG4gIHByaXZhdGUgbWludXRlOiBzdHJpbmc7XG4gIHByaXZhdGUgc2Vjb25kOiBzdHJpbmc7XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLm1hbmRhdG9yeSAmJiB0aGlzLmlzRGF0ZVRpbWUpIHtcbiAgICAgIHRoaXMuZGlzcGxheUhvdXIgPSAnMDAnO1xuICAgICAgdGhpcy5kaXNwbGF5TWludXRlID0gJzAwJztcbiAgICAgIHRoaXMuZGlzcGxheVNlY29uZCA9ICcwMCc7XG4gICAgICB0aGlzLmhvdXIgPSAnMDAnO1xuICAgICAgdGhpcy5taW51dGUgPSAnMDAnO1xuICAgICAgdGhpcy5zZWNvbmQgPSAnMDAnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKG9iajogc3RyaW5nKTogdm9pZCB7IC8vIDIwMTgtMDQtMDlUMDg6MDI6MjcuNTQyXG4gICAgaWYgKG9iaikge1xuICAgICAgdGhpcy5yYXdWYWx1ZSA9IHRoaXMucmVtb3ZlTWlsbGlzZWNvbmRzKG9iaik7XG4gICAgICB0aGlzLmdldExvY2FsRGF0ZVRpbWVTdHJpbmcodGhpcy5yYXdWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRMb2NhbERhdGVUaW1lU3RyaW5nKGRhdGVJbnB1dDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGRhdGVJbnB1dCk7XG4gICAgaWYgKGlzTmFOKGRhdGUuZ2V0VGltZSgpKSkge1xuICAgICAgLy8gTm90IGEgdmFsaWQgZGF0ZVxuICAgICAgdGhpcy55ZWFyID0gdGhpcy5kaXNwbGF5WWVhciA9ICcnO1xuICAgICAgdGhpcy5tb250aCA9IHRoaXMuZGlzcGxheU1vbnRoID0gJyc7XG4gICAgICB0aGlzLmRheSA9IHRoaXMuZGlzcGxheURheSA9ICcnO1xuICAgICAgdGhpcy5ob3VyID0gdGhpcy5kaXNwbGF5SG91ciA9ICcnO1xuICAgICAgdGhpcy5taW51dGUgPSB0aGlzLmRpc3BsYXlNaW51dGUgPSAnJztcbiAgICAgIHRoaXMuc2Vjb25kID0gdGhpcy5kaXNwbGF5U2Vjb25kID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbG9jYWxEYXRlID0gdGhpcy5nZXRPZmZzZXREYXRlKGRhdGUpO1xuICAgIHRoaXMueWVhciA9IHRoaXMuZGlzcGxheVllYXIgPSBTdHJpbmcobG9jYWxEYXRlLmdldEZ1bGxZZWFyKCkpO1xuICAgIHRoaXMubW9udGggPSB0aGlzLmRpc3BsYXlNb250aCA9IHRoaXMucGFkWmVybyhsb2NhbERhdGUuZ2V0TW9udGgoKSArIDEpO1xuICAgIHRoaXMuZGF5ID0gdGhpcy5kaXNwbGF5RGF5ID0gdGhpcy5wYWRaZXJvKGxvY2FsRGF0ZS5nZXREYXRlKCkpO1xuXG4gICAgaWYgKGRhdGVJbnB1dC5pbmNsdWRlcygnVCcpKSB7XG4gICAgICB0aGlzLmhvdXIgPSB0aGlzLmRpc3BsYXlIb3VyID0gdGhpcy5wYWRaZXJvKGxvY2FsRGF0ZS5nZXRIb3VycygpKTtcbiAgICAgIHRoaXMubWludXRlID0gdGhpcy5kaXNwbGF5TWludXRlID0gdGhpcy5wYWRaZXJvKGxvY2FsRGF0ZS5nZXRNaW51dGVzKCkpO1xuICAgICAgdGhpcy5zZWNvbmQgPSB0aGlzLmRpc3BsYXlTZWNvbmQgPSB0aGlzLnBhZFplcm8obG9jYWxEYXRlLmdldFNlY29uZHMoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaG91ciA9IHRoaXMuZGlzcGxheUhvdXIgPSAnJztcbiAgICAgIHRoaXMubWludXRlID0gdGhpcy5kaXNwbGF5TWludXRlID0gJyc7XG4gICAgICB0aGlzLnNlY29uZCA9IHRoaXMuZGlzcGxheVNlY29uZCA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0T2Zmc2V0RGF0ZShkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgY29uc3QgbG9jYWxPZmZzZXQgPSAtIGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAvIDYwO1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSArIGxvY2FsT2Zmc2V0ICogMzYwMCAqIDEwMDApO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMge1xuICAgIGlmICh0aGlzLm1hbmRhdG9yeSAmJiAhdGhpcy52aWV3VmFsdWUoKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVxdWlyZWQ6ICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJ1xuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKGNvbnRyb2wudmFsdWUgJiYgIXRoaXMuaXNEYXRlRm9ybWF0KHRoaXMuZ2V0VmFsdWVGb3JWYWxpZGF0aW9uKGNvbnRyb2wpKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGF0dGVybjogJ0RhdGUgaXMgbm90IHZhbGlkJ1xuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAvLyBEbyBub3RoaW5nLlxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudmFsaWRhdGUgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyA9PiB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZGF5Q2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAvLyBnZXQgdmFsdWUgZnJvbSBpbnB1dFxuICAgIHRoaXMuZGF5ID0gdmFsdWU7XG5cbiAgICB0aGlzLnJhd1ZhbHVlID0gdGhpcy5pc0RhdGVGb3JtYXQodGhpcy52aWV3VmFsdWUoKSkgJiYgdGhpcy52aWV3VmFsdWUoKS5pbmNsdWRlcygnVCcpID8gdGhpcy5jb252ZXJ0VG9VVEModGhpcy52aWV3VmFsdWUoKSkgOiB0aGlzLnZpZXdWYWx1ZSgpO1xuXG4gICAgLy8gdXBkYXRlIHRoZSBmb3JtXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5yYXdWYWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgbW9udGhDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgIC8vIGdldCB2YWx1ZSBmcm9tIGlucHV0XG4gICAgdGhpcy5tb250aCA9IHZhbHVlO1xuXG4gICAgdGhpcy5yYXdWYWx1ZSA9IHRoaXMuaXNEYXRlRm9ybWF0KHRoaXMudmlld1ZhbHVlKCkpICYmIHRoaXMudmlld1ZhbHVlKCkuaW5jbHVkZXMoJ1QnKSA/IHRoaXMuY29udmVydFRvVVRDKHRoaXMudmlld1ZhbHVlKCkpIDogdGhpcy52aWV3VmFsdWUoKTtcblxuICAgIC8vIHVwZGF0ZSB0aGUgZm9ybVxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMucmF3VmFsdWUpO1xuXG4gIH1cblxuICBwdWJsaWMgeWVhckNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgLy8gZ2V0IHZhbHVlIGZyb20gaW5wdXRcbiAgICB0aGlzLnllYXIgPSB2YWx1ZTtcblxuICAgIHRoaXMucmF3VmFsdWUgPSB0aGlzLmlzRGF0ZUZvcm1hdCh0aGlzLnZpZXdWYWx1ZSgpKSAmJiB0aGlzLnZpZXdWYWx1ZSgpLmluY2x1ZGVzKCdUJykgPyB0aGlzLmNvbnZlcnRUb1VUQyh0aGlzLnZpZXdWYWx1ZSgpKSA6IHRoaXMudmlld1ZhbHVlKCk7XG5cbiAgICAvLyB1cGRhdGUgdGhlIGZvcm1cbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnJhd1ZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBob3VyQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAvLyBnZXQgdmFsdWUgZnJvbSBpbnB1dFxuICAgIHRoaXMuaG91ciA9IHZhbHVlO1xuXG4gICAgdGhpcy5yYXdWYWx1ZSA9IHRoaXMuaXNEYXRlRm9ybWF0KHRoaXMudmlld1ZhbHVlKCkpID8gdGhpcy5jb252ZXJ0VG9VVEModGhpcy52aWV3VmFsdWUoKSkgOiB0aGlzLnZpZXdWYWx1ZSgpO1xuXG4gICAgLy8gdXBkYXRlIHRoZSBmb3JtXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5yYXdWYWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgbWludXRlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAvLyBnZXQgdmFsdWUgZnJvbSBpbnB1dFxuICAgIHRoaXMubWludXRlID0gdmFsdWU7XG5cbiAgICB0aGlzLnJhd1ZhbHVlID0gdGhpcy5pc0RhdGVGb3JtYXQodGhpcy52aWV3VmFsdWUoKSkgPyB0aGlzLmNvbnZlcnRUb1VUQyh0aGlzLnZpZXdWYWx1ZSgpKSA6IHRoaXMudmlld1ZhbHVlKCk7XG5cbiAgICAvLyB1cGRhdGUgdGhlIGZvcm1cbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnJhd1ZhbHVlKTtcblxuICB9XG5cbiAgcHVibGljIHNlY29uZENoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgLy8gZ2V0IHZhbHVlIGZyb20gaW5wdXRcbiAgICB0aGlzLnNlY29uZCA9IHZhbHVlO1xuXG4gICAgdGhpcy5yYXdWYWx1ZSA9IHRoaXMuaXNEYXRlRm9ybWF0KHRoaXMudmlld1ZhbHVlKCkpID8gdGhpcy5jb252ZXJ0VG9VVEModGhpcy52aWV3VmFsdWUoKSkgOiB0aGlzLnZpZXdWYWx1ZSgpO1xuXG4gICAgLy8gdXBkYXRlIHRoZSBmb3JtXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5yYXdWYWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgaW5wdXRGb2N1cygpIHtcbiAgICB0aGlzLmlzVG91Y2hlZCA9IGZhbHNlO1xuICAgIHRoaXMudG91Y2goKTtcbiAgfVxuXG4gIHB1YmxpYyB0b3VjaCgpIHtcbiAgICBpZiAodGhpcy5pc1RvdWNoZWQpIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5yYXdWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVW50b3VjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRheUlkKCkge1xuICAgIHJldHVybiB0aGlzLmlkICsgJy1kYXknO1xuICB9XG5cbiAgcHVibGljIG1vbnRoSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaWQgKyAnLW1vbnRoJztcbiAgfVxuXG4gIHB1YmxpYyB5ZWFySWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaWQgKyAnLXllYXInO1xuICB9XG5cbiAgcHVibGljIGhvdXJJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pZCArICctaG91cic7XG4gIH1cblxuICBwdWJsaWMgbWludXRlSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaWQgKyAnLW1pbnV0ZSc7XG4gIH1cblxuICBwdWJsaWMgc2Vjb25kSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaWQgKyAnLXNlY29uZCc7XG4gIH1cblxuICAvLyBjb252ZXJ0IHRoZSBkYXRlcyB0byBVVEMgYmVmb3JlIHNlbmRpbmcgdG8gdGhlIGJhY2tlbmRcbiAgcHJpdmF0ZSBjb252ZXJ0VG9VVEMoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghaW5wdXQpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGlucHV0KTtcblxuICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7XG4gICAgY29uc3QgbW9udGggPSB0aGlzLnBhZFplcm8oZGF0ZS5nZXRVVENNb250aCgpICsgMSk7XG4gICAgY29uc3QgZGF5ID0gdGhpcy5wYWRaZXJvKGRhdGUuZ2V0VVRDRGF0ZSgpKTtcbiAgICBjb25zdCBob3VyID0gdGhpcy5wYWRaZXJvKGRhdGUuZ2V0VVRDSG91cnMoKSk7XG4gICAgY29uc3QgbWludXRlID0gdGhpcy5wYWRaZXJvKGRhdGUuZ2V0VVRDTWludXRlcygpKTtcbiAgICBjb25zdCBzZWNvbmQgPSB0aGlzLnBhZFplcm8oZGF0ZS5nZXRVVENTZWNvbmRzKCkpO1xuICAgIGNvbnN0IG1zID0gZGF0ZS5nZXRVVENNaWxsaXNlY29uZHMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDMsICcwJyk7XG5cbiAgICByZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9VCR7aG91cn06JHttaW51dGV9OiR7c2Vjb25kfS4ke21zfWA7XG4gIH1cblxuICBwcml2YXRlIHBhZFplcm8odmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcbiAgfVxuXG4gIHByaXZhdGUgdmlld1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZGF5IHx8IHRoaXMubW9udGggfHwgdGhpcy55ZWFyIHx8IHRoaXMuaG91ciB8fCB0aGlzLm1pbnV0ZSB8fCB0aGlzLnNlY29uZCkge1xuICAgICAgY29uc3QgZGF0ZSA9IFtcbiAgICAgICAgdGhpcy55ZWFyID8gdGhpcy55ZWFyIDogJycsXG4gICAgICAgIHRoaXMubW9udGggPyB0aGlzLnBhZCh0aGlzLm1vbnRoKSA6ICcnLFxuICAgICAgICB0aGlzLmRheSA/IHRoaXMucGFkKHRoaXMuZGF5KSA6ICcnXG4gICAgICBdLmpvaW4oJy0nKTtcbiAgICAgIGlmICh0aGlzLmlzRGF0ZVRpbWUpIHtcbiAgICAgICAgY29uc3QgdGltZSA9IFtcbiAgICAgICAgICB0aGlzLmhvdXIgPyB0aGlzLnBhZCh0aGlzLmhvdXIpIDogJycsXG4gICAgICAgICAgdGhpcy5taW51dGUgPyB0aGlzLnBhZCh0aGlzLm1pbnV0ZSkgOiAnJyxcbiAgICAgICAgICB0aGlzLnNlY29uZCA/IHRoaXMucGFkKHRoaXMuc2Vjb25kKSA6ICcnXG4gICAgICAgIF0uam9pbignOicpO1xuICAgICAgICByZXR1cm4gYCR7ZGF0ZX1UJHt0aW1lfS4wMDBgO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0RhdGVGb3JtYXQodmFsOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5EQVRFX0ZPUk1BVC50ZXN0KHZhbCk7XG4gIH1cblxuICBwcml2YXRlIHBhZChudW06IGFueSwgcGFkTnVtID0gMik6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsID0gbnVtICE9PSB1bmRlZmluZWQgPyBudW0udG9TdHJpbmcoKSA6ICcnO1xuICAgIHJldHVybiB2YWwubGVuZ3RoID49IHBhZE51bSA/IHZhbCA6IG5ldyBBcnJheShwYWROdW0gLSB2YWwubGVuZ3RoICsgMSkuam9pbignMCcpICsgdmFsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYWx1ZUZvclZhbGlkYXRpb24oY29udHJvbDogYW55KSB7XG4gICAgaWYgKHRoaXMuaXNEYXRlVGltZSkge1xuICAgICAgcmV0dXJuIGNvbnRyb2wudmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjb250cm9sLnZhbHVlLnJlcGxhY2UoL1ouKi8sICdUMDA6MDA6MDBaJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVNaWxsaXNlY29uZHMoZGF0ZVRpbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRhdGVUaW1lLnJlcGxhY2UoL1xcLi4qLywgJycpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1kYXRlXCI+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGZvcm0tZ3JvdXAtZGF5XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsXCIgW2F0dHIuaWRdPVwiJ2RheS1sYWJlbC0nK2RheUlkKClcIj57eydEYXknIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gICAgPGlucHV0ICNkYXlJbnB1dFxuICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgIFtpZF09XCJkYXlJZCgpXCJcbiAgICAgICAgICAgW25hbWVdPVwiZGF5SWQoKVwiXG4gICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgcGF0dGVybj1cIlswLTldKlwiXG4gICAgICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ2RheS1sYWJlbC0nK2RheUlkKClcIlxuICAgICAgICAgICBbdmFsdWVdPVwiZGlzcGxheURheVwiXG4gICAgICAgICAgIChjaGFuZ2UpPVwiZGF5Q2hhbmdlKGRheUlucHV0LnZhbHVlKVwiXG4gICAgICAgICAgIChrZXl1cCk9XCJkYXlDaGFuZ2UoZGF5SW5wdXQudmFsdWUpXCJcbiAgICAgICAgICAgKGZvY3VzKT1cImlucHV0Rm9jdXMoKVwiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZ292dWstaW5wdXQtLWVycm9yJzogaXNJbnZhbGlkfVwiPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBmb3JtLWdyb3VwLW1vbnRoXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsXCIgW2F0dHIuaWRdPVwiJ21vbnRoLWxhYmVsLScrIG1vbnRoSWQoKVwiPnt7J01vbnRoJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgIDxpbnB1dCAjbW9udGhJbnB1dFxuICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgIFtpZF09XCJtb250aElkKClcIlxuICAgICAgICAgICBbbmFtZV09XCJtb250aElkKClcIlxuICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgIHBhdHRlcm49XCJbMC05XSpcIlxuICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIidtb250aC1sYWJlbC0nKyBtb250aElkKClcIlxuICAgICAgICAgICBbdmFsdWVdPVwiZGlzcGxheU1vbnRoXCJcbiAgICAgICAgICAgKGNoYW5nZSk9XCJtb250aENoYW5nZShtb250aElucHV0LnZhbHVlKVwiXG4gICAgICAgICAgIChrZXl1cCk9XCJtb250aENoYW5nZShtb250aElucHV0LnZhbHVlKVwiXG4gICAgICAgICAgIChmb2N1cyk9XCJpbnB1dEZvY3VzKClcIlxuICAgICAgICAgICBbbmdDbGFzc109XCJ7J2dvdnVrLWlucHV0LS1lcnJvcic6IGlzSW52YWxpZH1cIj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgZm9ybS1ncm91cC15ZWFyXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsXCIgW2F0dHIuaWRdPVwiJ3llYXItbGFiZWwtJysgeWVhcklkKClcIj57eydZZWFyJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgIDxpbnB1dCAjeWVhcklucHV0XG4gICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgW2lkXT1cInllYXJJZCgpXCJcbiAgICAgICAgICAgW25hbWVdPVwieWVhcklkKClcIlxuICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgIHBhdHRlcm49XCJbMC05XSpcIlxuICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIid5ZWFyLWxhYmVsLScrIHllYXJJZCgpXCJcbiAgICAgICAgICAgW3ZhbHVlXT1cImRpc3BsYXlZZWFyXCJcbiAgICAgICAgICAgKGNoYW5nZSk9XCJ5ZWFyQ2hhbmdlKHllYXJJbnB1dC52YWx1ZSlcIlxuICAgICAgICAgICAoa2V5dXApPVwieWVhckNoYW5nZSh5ZWFySW5wdXQudmFsdWUpXCJcbiAgICAgICAgICAgKGZvY3VzKT1cImlucHV0Rm9jdXMoKVwiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZ292dWstaW5wdXQtLWVycm9yJzogaXNJbnZhbGlkfVwiPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBmb3JtLWdyb3VwLWhvdXJcIiAqbmdJZj1cImlzRGF0ZVRpbWVcIj5cbiAgICA8c3BhbiBjbGFzcz1cImZvcm0tbGFiZWxcIiBbYXR0ci5pZF09XCInaG91ci1sYWJlbC0nKyBob3VySWQoKVwiPnt7J0hvdXInIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gICAgPGlucHV0ICNob3VySW5wdXRcbiAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICBbaWRdPVwiaG91cklkKClcIlxuICAgICAgICAgICBbbmFtZV09XCJob3VySWQoKVwiXG4gICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgcGF0dGVybj1cIlswLTldKlwiXG4gICAgICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ2hvdXItbGFiZWwtJysgaG91cklkKClcIlxuICAgICAgICAgICBbdmFsdWVdPVwiZGlzcGxheUhvdXJcIlxuICAgICAgICAgICAoaW5wdXQpPVwiaG91ckNoYW5nZShob3VySW5wdXQudmFsdWUpXCJcbiAgICAgICAgICAgKGtleXVwKT1cImhvdXJDaGFuZ2UoaG91cklucHV0LnZhbHVlKVwiXG4gICAgICAgICAgIChmb2N1cyk9XCJpbnB1dEZvY3VzKClcIlxuICAgICAgICAgICBbbmdDbGFzc109XCJ7J2dvdnVrLWlucHV0LS1lcnJvcic6IGlzSW52YWxpZH1cIj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgZm9ybS1ncm91cC1taW51dGVcIiAqbmdJZj1cImlzRGF0ZVRpbWVcIj5cbiAgICA8c3BhbiBjbGFzcz1cImZvcm0tbGFiZWxcIiBbYXR0ci5pZF09XCInbWludXRlLWxhYmVsLScrIGhvdXJJZCgpXCI+e3snTWludXRlJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgIDxpbnB1dCAjbWludXRlSW5wdXRcbiAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICBbaWRdPVwibWludXRlSWQoKVwiXG4gICAgICAgICAgIFtuYW1lXT1cIm1pbnV0ZUlkKClcIlxuICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgIHBhdHRlcm49XCJbMC05XSpcIlxuICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIidtaW51dGUtbGFiZWwtJysgbWludXRlSWQoKVwiXG4gICAgICAgICAgIFt2YWx1ZV09XCJkaXNwbGF5TWludXRlXCJcbiAgICAgICAgICAgKGlucHV0KT1cIm1pbnV0ZUNoYW5nZShtaW51dGVJbnB1dC52YWx1ZSlcIlxuICAgICAgICAgICAoa2V5dXApPVwibWludXRlQ2hhbmdlKG1pbnV0ZUlucHV0LnZhbHVlKVwiXG4gICAgICAgICAgIChmb2N1cyk9XCJpbnB1dEZvY3VzKClcIlxuICAgICAgICAgICBbbmdDbGFzc109XCJ7J2dvdnVrLWlucHV0LS1lcnJvcic6IGlzSW52YWxpZH1cIj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgZm9ybS1ncm91cC1zZWNvbmRcIiAqbmdJZj1cImlzRGF0ZVRpbWVcIj5cbiAgICA8c3BhbiBjbGFzcz1cImZvcm0tbGFiZWxcIiBbYXR0ci5pZF09XCInc2Vjb25kLWxhYmVsLScrIHNlY29uZElkKClcIj57eydTZWNvbmQnIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gICAgPGlucHV0ICNzZWNvbmRJbnB1dFxuICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgIFtpZF09XCJzZWNvbmRJZCgpXCJcbiAgICAgICAgICAgW25hbWVdPVwic2Vjb25kSWQoKVwiXG4gICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgcGF0dGVybj1cIlswLTldKlwiXG4gICAgICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ3NlY29uZC1sYWJlbC0nKyBzZWNvbmRJZCgpXCJcbiAgICAgICAgICAgW3ZhbHVlXT1cImRpc3BsYXlTZWNvbmRcIlxuICAgICAgICAgICAoaW5wdXQpPVwic2Vjb25kQ2hhbmdlKHNlY29uZElucHV0LnZhbHVlKVwiXG4gICAgICAgICAgIChrZXl1cCk9XCJzZWNvbmRDaGFuZ2Uoc2Vjb25kSW5wdXQudmFsdWUpXCJcbiAgICAgICAgICAgKGZvY3VzKT1cImlucHV0Rm9jdXMoKVwiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZ292dWstaW5wdXQtLWVycm9yJzogaXNJbnZhbGlkfVwiPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19