@dev-tcloud/tcloud-ui 3.0.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/README.md +2 -1
  2. package/esm2022/lib/_directives/align/align.directive.mjs +4 -4
  3. package/esm2022/lib/_directives/currency/currency.directive.mjs +4 -4
  4. package/esm2022/lib/_directives/directives.module.mjs +5 -5
  5. package/esm2022/lib/_directives/el-copy/el-copy.directive.mjs +4 -4
  6. package/esm2022/lib/_directives/hover-parent/hover-parent.directive.mjs +4 -4
  7. package/esm2022/lib/_directives/tooltip/tooltip.directive.mjs +4 -4
  8. package/esm2022/lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-body/tcloud-ui-accordion-body.component.mjs +4 -4
  9. package/esm2022/lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-title/tcloud-ui-accordion-title.component.mjs +4 -4
  10. package/esm2022/lib/_modules/tcloud-ui-accordion/services/tcloud-ui-accordion.service.mjs +4 -4
  11. package/esm2022/lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.component.mjs +4 -4
  12. package/esm2022/lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.module.mjs +5 -5
  13. package/esm2022/lib/_modules/tcloud-ui-choice-issues/tcloud-ui-choice-issues.component.mjs +4 -4
  14. package/esm2022/lib/_modules/tcloud-ui-choice-issues/tcloud-ui-choice-issues.module.mjs +5 -5
  15. package/esm2022/lib/_modules/tcloud-ui-data-list/services/data-list.service.mjs +4 -4
  16. package/esm2022/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list-option/tcloud-ui-data-list-option.component.mjs +4 -4
  17. package/esm2022/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.component.mjs +4 -4
  18. package/esm2022/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.module.mjs +5 -5
  19. package/esm2022/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component.mjs +4 -4
  20. package/esm2022/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.module.mjs +5 -5
  21. package/esm2022/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.mjs +4 -4
  22. package/esm2022/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.module.mjs +5 -5
  23. package/esm2022/lib/_modules/tcloud-ui-filters/components/range-date/range-date.component.mjs +4 -4
  24. package/esm2022/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component.mjs +4 -4
  25. package/esm2022/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.module.mjs +5 -5
  26. package/esm2022/lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.component.mjs +4 -4
  27. package/esm2022/lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.module.mjs +5 -5
  28. package/esm2022/lib/_modules/tcloud-ui-input-search/tcloud-ui-input-search.component.mjs +4 -4
  29. package/esm2022/lib/_modules/tcloud-ui-input-search/tcloud-ui-input-search.module.mjs +5 -5
  30. package/esm2022/lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.component.mjs +4 -4
  31. package/esm2022/lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.module.mjs +5 -5
  32. package/esm2022/lib/_modules/tcloud-ui-line-step-circle/tcloud-ui-line-step-circle.component.mjs +4 -4
  33. package/esm2022/lib/_modules/tcloud-ui-line-step-circle/tcloud-ui-line-step-circle.module.mjs +5 -5
  34. package/esm2022/lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.component.mjs +4 -4
  35. package/esm2022/lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.module.mjs +5 -5
  36. package/esm2022/lib/_modules/tcloud-ui-linha-logo/tcloud-ui-linha-logo.component.mjs +4 -4
  37. package/esm2022/lib/_modules/tcloud-ui-linha-logo/tcloud-ui-linha-logo.module.mjs +5 -5
  38. package/esm2022/lib/_modules/tcloud-ui-loading/components/tcloud-ui-cubes/tcloud-ui-cubes.component.mjs +4 -4
  39. package/esm2022/lib/_modules/tcloud-ui-loading/tcloud-ui-loading.component.mjs +4 -4
  40. package/esm2022/lib/_modules/tcloud-ui-loading/tcloud-ui-loading.module.mjs +5 -5
  41. package/esm2022/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-body/tcloud-ui-modal-body.component.mjs +4 -4
  42. package/esm2022/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-footer/tcloud-ui-modal-footer.component.mjs +4 -4
  43. package/esm2022/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-header/tcloud-ui-modal-header.component.mjs +4 -4
  44. package/esm2022/lib/_modules/tcloud-ui-modal/services/tcloud-modal.service.mjs +4 -4
  45. package/esm2022/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.component.mjs +4 -4
  46. package/esm2022/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.module.mjs +5 -5
  47. package/esm2022/lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.component.mjs +4 -4
  48. package/esm2022/lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.module.mjs +5 -5
  49. package/esm2022/lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.component.mjs +4 -4
  50. package/esm2022/lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.module.mjs +5 -5
  51. package/esm2022/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.component.mjs +4 -4
  52. package/esm2022/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.module.mjs +5 -5
  53. package/esm2022/lib/_modules/tcloud-ui-not-found/tcloud-ui-not-found.component.mjs +4 -4
  54. package/esm2022/lib/_modules/tcloud-ui-not-found/tcloud-ui-not-found.module.mjs +5 -5
  55. package/esm2022/lib/_modules/tcloud-ui-number-step/tcloud-ui-number-step.component.mjs +4 -4
  56. package/esm2022/lib/_modules/tcloud-ui-number-step/tcloud-ui-number-step.module.mjs +5 -5
  57. package/esm2022/lib/_modules/tcloud-ui-progress-bar/tcloud-ui-progress-bar.component.mjs +4 -4
  58. package/esm2022/lib/_modules/tcloud-ui-progress-bar/tcloud-ui-progress-bar.module.mjs +5 -5
  59. package/esm2022/lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.component.mjs +4 -4
  60. package/esm2022/lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.module.mjs +5 -5
  61. package/esm2022/lib/_modules/tcloud-ui-scroll-box/tcloud-ui-scroll-box.component.mjs +4 -4
  62. package/esm2022/lib/_modules/tcloud-ui-scroll-box/tcloud-ui-scroll-box.module.mjs +5 -5
  63. package/esm2022/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-content/tcloud-ui-tab-content.component.mjs +4 -4
  64. package/esm2022/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-head/tcloud-ui-tab-head.component.mjs +4 -4
  65. package/esm2022/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-subtitle/tcloud-ui-tab-subtitle.component.mjs +4 -4
  66. package/esm2022/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-title/tcloud-ui-tab-title.component.mjs +4 -4
  67. package/esm2022/lib/_modules/tcloud-ui-tab-menu/services/tab-menu.service.mjs +4 -4
  68. package/esm2022/lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.component.mjs +4 -4
  69. package/esm2022/lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.module.mjs +5 -5
  70. package/esm2022/lib/_modules/tcloud-ui-table/tcloud-ui-table.component.mjs +4 -4
  71. package/esm2022/lib/_modules/tcloud-ui-table/tcloud-ui-table.module.mjs +5 -5
  72. package/esm2022/lib/_modules/tcloud-ui-welcome/tcloud-ui-welcome.component.mjs +4 -4
  73. package/esm2022/lib/_modules/tcloud-ui-welcome/tcloud-ui-welcome.module.mjs +5 -5
  74. package/esm2022/lib/_pipes/array-to-text.mjs +4 -4
  75. package/esm2022/lib/_pipes/bytes.mjs +4 -4
  76. package/esm2022/lib/_pipes/cnpj.mjs +4 -4
  77. package/esm2022/lib/_pipes/cpf.mjs +4 -4
  78. package/esm2022/lib/_pipes/datebr.mjs +4 -4
  79. package/esm2022/lib/_pipes/monthname.mjs +4 -4
  80. package/esm2022/lib/_pipes/respective.mjs +4 -4
  81. package/esm2022/lib/_pipes/statusinfo.mjs +4 -4
  82. package/esm2022/lib/_pipes/tcloud-pipes.module.mjs +5 -5
  83. package/esm2022/lib/_services/loading-transitions.service.mjs +4 -4
  84. package/esm2022/lib/_services/search-in-object.service.mjs +4 -4
  85. package/esm2022/lib/tcloud-ui.module.mjs +5 -5
  86. package/fesm2022/dev-tcloud-tcloud-ui.mjs +280 -280
  87. package/fesm2022/dev-tcloud-tcloud-ui.mjs.map +1 -1
  88. package/package.json +3 -3
@@ -393,10 +393,10 @@ export class TCloudUiDatepickerComponent {
393
393
  registerOnTouched(fn) {
394
394
  this.onTouchedCallback = fn;
395
395
  }
396
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TCloudUiDatepickerComponent, deps: [{ token: i1.DateBRPipe }], target: i0.ɵɵFactoryTarget.Component }); }
397
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: TCloudUiDatepickerComponent, selector: "tcloud-ui-datepicker", inputs: { multiple: "multiple", maxNumberOfDates: "maxNumberOfDates", daysOfWeekDisabled: "daysOfWeekDisabled", minDate: "minDate", maxDate: "maxDate", datesDisabled: "datesDisabled", modeInput: "modeInput", useBorder: "useBorder", childInputDateTime: "childInputDateTime", startViewInMinDate: "startViewInMinDate", startViewInMaxDate: "startViewInMaxDate", disabled: "disabled", ngModel: "ngModel", code: "code" }, outputs: { onChange: "onChange", ngModelChange: "ngModelChange", onCheckDate: "onCheckDate" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "input_datepicker", first: true, predicate: ["input_datepicker"], descendants: true }], ngImport: i0, template: "<!-- Input mode -->\r\n<ng-container *ngIf=\"modeInput\">\r\n\r\n <div class=\"tcloud-ui-datepicker input-tc-datepicker\" [class.no-border]=\"!useBorder\" [class.child-input-date-time]=\"childInputDateTime\" >\r\n <table class=\"table-box-input\">\r\n <tr>\r\n <td class=\"td-icon\">\r\n <div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div>\r\n </td>\r\n <td class=\"td-date\">\r\n <input #input_datepicker type=\"text\" name=\"{{ID}}\" id=\"{{ID}}\" class=\"form-control\" [title]=\"innerValue\" >\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n</ng-container>\r\n\r\n<!-- Inline mode -->\r\n<ng-container *ngIf=\"!modeInput\"> \r\n <div class=\"tcloud-ui-datepicker tcloud-ui-datepicker-second\" #input_datepicker id=\"{{ID}}\" pattern=\"/^\\d{2}\\/\\d{2}\\/\\d{4}$/\" [title]=\"innerValue\"></div>\r\n</ng-container>\r\n\r\n<!-- EX de uso \r\n <tc-datepicker \r\n [multiple]=\"false\"\r\n [daysOfWeekDisabled]=\"[0,6]\"\r\n [minDate]=\"'18/11/2021'\"\r\n [maxDate]=\"'18/12/2023'\"\r\n [datesDisabled]=\"['12/10/2022','25/12/2022']\"\r\n [modeInput]=\"false\"\r\n (onChange)=\"($event)\"\r\n (onCheckDate)=\"onCheckDate($event)\"\r\n [(ngModel)]=\"dateValue\" >\r\n </tc-datepicker>\r\n \r\n // multiple = false\r\n // dateValue - string - pode ser: 12/12/2022 \r\n\r\n // multiple = true\r\n // dateValue - string - pode ser: 11/12/2022,12/12/2022 ... \r\n\r\n <pre>data: {{ dateValue }}</pre>\r\n-->\r\n", styles: [".input_datepicker{width:100%;max-width:290px}.input-tc-datepicker{background-color:#fff;border:1px solid var(--tc-gray-300);border-radius:3px;height:40px}.input-tc-datepicker.no-border{border:none!important}.input-tc-datepicker .table-box-input{width:100%}.input-tc-datepicker .table-box-input .td-icon{width:14px}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon{text-align:center;cursor:pointer}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon i{position:relative;left:1px;opacity:.5}.input-tc-datepicker .table-box-input .td-date{min-width:30px;width:101px input;width-width:100%}.input-tc-datepicker .table-box-input input{border:none;margin-top:2px;font-size:13px!important}.child-input-date-time{height:28px!important}\n", ".datepicker{display:none}.datepicker.active{display:block}.datepicker-dropdown{left:0;padding-top:4px;position:absolute;top:0;z-index:20}.datepicker-dropdown.datepicker-orient-top{padding-bottom:4px;padding-top:0}.datepicker-picker{background-color:#fff;border-radius:4px;display:inline-block}.datepicker-dropdown .datepicker-picker{box-shadow:0 2px 3px #0a0a0a1a,0 0 0 1px #0a0a0a1a}.datepicker-picker span{-webkit-touch-callout:none;border:0;border-radius:4px;cursor:default;display:block;flex:1;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker-main{padding:2px}.datepicker-footer{background-color:#f5f5f5;box-shadow:inset 0 1px 1px #0a0a0a1a}.datepicker-controls,.datepicker-grid,.datepicker-view,.datepicker-view .days-of-week{display:flex}.datepicker-grid{flex-wrap:wrap}.datepicker-view .days .datepicker-cell,.datepicker-view .dow{flex-basis:14.2857142857%}.datepicker-view.datepicker-grid .datepicker-cell{flex-basis:25%}.datepicker-cell,.datepicker-view .week{height:2.25rem;line-height:2.25rem}.datepicker-title{background-color:#f5f5f5;box-shadow:inset 0 -1px 1px #0a0a0a1a;font-weight:700;padding:.375rem .75rem;text-align:center}.datepicker-header .datepicker-controls{padding:2px 2px 0}.datepicker-controls .button{align-items:center;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;box-shadow:none;color:#363636;cursor:pointer;display:inline-flex;font-size:1rem;height:2.25em;justify-content:center;line-height:1.5;margin:0;padding:calc(.375em - 1px) .75em;position:relative;text-align:center;vertical-align:top;white-space:nowrap}.datepicker-controls .button:active,.datepicker-controls .button:focus{outline:none}.datepicker-controls .button:hover{border-color:#b5b5b5;color:#363636}.datepicker-controls .button:focus{border-color:#3273dc;color:#363636}.datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #3273dc40}.datepicker-controls .button:active{border-color:#4a4a4a;color:#363636}.datepicker-controls .button[disabled]{cursor:not-allowed}.datepicker-header .datepicker-controls .button{border-color:transparent;font-weight:700}.datepicker-header .datepicker-controls .button:hover{background-color:#f9f9f9}.datepicker-header .datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #ffffff40}.datepicker-header .datepicker-controls .button:active{background-color:#f2f2f2}.datepicker-header .datepicker-controls .button[disabled]{box-shadow:none}.datepicker-footer .datepicker-controls .button{border-radius:2px;font-size:.75rem;margin:calc(.375rem - 1px) .375rem;width:100%}.datepicker-controls .view-switch{flex:auto}.datepicker-controls .next-btn,.datepicker-controls .prev-btn{padding-left:.375rem;padding-right:.375rem;width:2.25rem}.datepicker-controls .next-btn.disabled,.datepicker-controls .prev-btn.disabled{visibility:hidden}.datepicker-view .dow{font-size:.875rem;font-weight:700;height:1.5rem;line-height:1.5rem}.datepicker-view .week{color:#b5b5b5;font-size:.75rem;width:2.25rem}@media (max-width:22.5rem){.datepicker-view .week{width:1.96875rem}}.datepicker-grid{width:15.75rem}@media (max-width:22.5rem){.calendar-weeks+.days .datepicker-grid{width:13.78125rem}}.datepicker-cell:not(.disabled):hover{background-color:#f9f9f9;cursor:pointer}.datepicker-cell.focused:not(.selected){background-color:#e8e8e8}.datepicker-cell.selected,.datepicker-cell.selected:hover{background-color:#3273dc;color:#fff;font-weight:600}.datepicker-cell.disabled{color:#dbdbdb}.datepicker-cell.next:not(.disabled),.datepicker-cell.prev:not(.disabled){color:#7a7a7a}.datepicker-cell.next.selected,.datepicker-cell.prev.selected{color:#e6e6e6}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today){background-color:#f5f5f5;border-radius:0}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today):not(.disabled):hover{background-color:#eee}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today).focused{background-color:#e8e8e8}.datepicker-cell.today:not(.selected){background-color:#00d1b2}.datepicker-cell.today:not(.selected):not(.disabled){color:#fff}.datepicker-cell.today.focused:not(.selected){background-color:#00c4a7}.datepicker-cell.range-end:not(.selected),.datepicker-cell.range-start:not(.selected){background-color:#b5b5b5;color:#fff}.datepicker-cell.range-end.focused:not(.selected),.datepicker-cell.range-start.focused:not(.selected){background-color:#afafaf}.datepicker-cell.range-start{border-radius:4px 0 0 4px}.datepicker-cell.range-end{border-radius:0 4px 4px 0}.datepicker-cell.range{background-color:#dbdbdb;border-radius:0}.datepicker-cell.range:not(.disabled):not(.focused):not(.today):hover{background-color:#d5d5d5}.datepicker-cell.range.disabled{color:#c2c2c2}.datepicker-cell.range.focused{background-color:#cfcfcf}.datepicker-view.datepicker-grid .datepicker-cell{height:4.5rem;line-height:4.5rem}.datepicker-input.in-edit{border-color:#2366d1}.datepicker-input.in-edit:active,.datepicker-input.in-edit:focus{box-shadow:0 0 .25em .25em #2366d133}\n", ".tcloud-ui-datepicker .datepicker-cell.focused:not(.selected){background-color:inherit!important}.tcloud-ui-datepicker .datepicker-cell.highlighted:not(.selected){background-color:#f5f5f5!important}.datepicker-picker{border:1px solid #ccc;padding:10px 15px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
396
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TCloudUiDatepickerComponent, deps: [{ token: i1.DateBRPipe }], target: i0.ɵɵFactoryTarget.Component }); }
397
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: TCloudUiDatepickerComponent, selector: "tcloud-ui-datepicker", inputs: { multiple: "multiple", maxNumberOfDates: "maxNumberOfDates", daysOfWeekDisabled: "daysOfWeekDisabled", minDate: "minDate", maxDate: "maxDate", datesDisabled: "datesDisabled", modeInput: "modeInput", useBorder: "useBorder", childInputDateTime: "childInputDateTime", startViewInMinDate: "startViewInMinDate", startViewInMaxDate: "startViewInMaxDate", disabled: "disabled", ngModel: "ngModel", code: "code" }, outputs: { onChange: "onChange", ngModelChange: "ngModelChange", onCheckDate: "onCheckDate" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "input_datepicker", first: true, predicate: ["input_datepicker"], descendants: true }], ngImport: i0, template: "<!-- Input mode -->\r\n<ng-container *ngIf=\"modeInput\">\r\n\r\n <div class=\"tcloud-ui-datepicker input-tc-datepicker\" [class.no-border]=\"!useBorder\" [class.child-input-date-time]=\"childInputDateTime\" >\r\n <table class=\"table-box-input\">\r\n <tr>\r\n <td class=\"td-icon\">\r\n <div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div>\r\n </td>\r\n <td class=\"td-date\">\r\n <input #input_datepicker type=\"text\" name=\"{{ID}}\" id=\"{{ID}}\" class=\"form-control\" [title]=\"innerValue\" >\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n</ng-container>\r\n\r\n<!-- Inline mode -->\r\n<ng-container *ngIf=\"!modeInput\"> \r\n <div class=\"tcloud-ui-datepicker tcloud-ui-datepicker-second\" #input_datepicker id=\"{{ID}}\" pattern=\"/^\\d{2}\\/\\d{2}\\/\\d{4}$/\" [title]=\"innerValue\"></div>\r\n</ng-container>\r\n\r\n<!-- EX de uso \r\n <tc-datepicker \r\n [multiple]=\"false\"\r\n [daysOfWeekDisabled]=\"[0,6]\"\r\n [minDate]=\"'18/11/2021'\"\r\n [maxDate]=\"'18/12/2023'\"\r\n [datesDisabled]=\"['12/10/2022','25/12/2022']\"\r\n [modeInput]=\"false\"\r\n (onChange)=\"($event)\"\r\n (onCheckDate)=\"onCheckDate($event)\"\r\n [(ngModel)]=\"dateValue\" >\r\n </tc-datepicker>\r\n \r\n // multiple = false\r\n // dateValue - string - pode ser: 12/12/2022 \r\n\r\n // multiple = true\r\n // dateValue - string - pode ser: 11/12/2022,12/12/2022 ... \r\n\r\n <pre>data: {{ dateValue }}</pre>\r\n-->\r\n", styles: [".input_datepicker{width:100%;max-width:290px}.input-tc-datepicker{background-color:#fff;border:1px solid var(--tc-gray-300);border-radius:3px;height:40px}.input-tc-datepicker.no-border{border:none!important}.input-tc-datepicker .table-box-input{width:100%}.input-tc-datepicker .table-box-input .td-icon{width:14px}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon{text-align:center;cursor:pointer}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon i{position:relative;left:1px;opacity:.5}.input-tc-datepicker .table-box-input .td-date{min-width:30px;width:101px input;width-width:100%}.input-tc-datepicker .table-box-input input{border:none;margin-top:2px;font-size:13px!important}.child-input-date-time{height:28px!important}\n", ".datepicker{display:none}.datepicker.active{display:block}.datepicker-dropdown{left:0;padding-top:4px;position:absolute;top:0;z-index:20}.datepicker-dropdown.datepicker-orient-top{padding-bottom:4px;padding-top:0}.datepicker-picker{background-color:#fff;border-radius:4px;display:inline-block}.datepicker-dropdown .datepicker-picker{box-shadow:0 2px 3px #0a0a0a1a,0 0 0 1px #0a0a0a1a}.datepicker-picker span{-webkit-touch-callout:none;border:0;border-radius:4px;cursor:default;display:block;flex:1;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker-main{padding:2px}.datepicker-footer{background-color:#f5f5f5;box-shadow:inset 0 1px 1px #0a0a0a1a}.datepicker-controls,.datepicker-grid,.datepicker-view,.datepicker-view .days-of-week{display:flex}.datepicker-grid{flex-wrap:wrap}.datepicker-view .days .datepicker-cell,.datepicker-view .dow{flex-basis:14.2857142857%}.datepicker-view.datepicker-grid .datepicker-cell{flex-basis:25%}.datepicker-cell,.datepicker-view .week{height:2.25rem;line-height:2.25rem}.datepicker-title{background-color:#f5f5f5;box-shadow:inset 0 -1px 1px #0a0a0a1a;font-weight:700;padding:.375rem .75rem;text-align:center}.datepicker-header .datepicker-controls{padding:2px 2px 0}.datepicker-controls .button{align-items:center;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;box-shadow:none;color:#363636;cursor:pointer;display:inline-flex;font-size:1rem;height:2.25em;justify-content:center;line-height:1.5;margin:0;padding:calc(.375em - 1px) .75em;position:relative;text-align:center;vertical-align:top;white-space:nowrap}.datepicker-controls .button:active,.datepicker-controls .button:focus{outline:none}.datepicker-controls .button:hover{border-color:#b5b5b5;color:#363636}.datepicker-controls .button:focus{border-color:#3273dc;color:#363636}.datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #3273dc40}.datepicker-controls .button:active{border-color:#4a4a4a;color:#363636}.datepicker-controls .button[disabled]{cursor:not-allowed}.datepicker-header .datepicker-controls .button{border-color:transparent;font-weight:700}.datepicker-header .datepicker-controls .button:hover{background-color:#f9f9f9}.datepicker-header .datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #ffffff40}.datepicker-header .datepicker-controls .button:active{background-color:#f2f2f2}.datepicker-header .datepicker-controls .button[disabled]{box-shadow:none}.datepicker-footer .datepicker-controls .button{border-radius:2px;font-size:.75rem;margin:calc(.375rem - 1px) .375rem;width:100%}.datepicker-controls .view-switch{flex:auto}.datepicker-controls .next-btn,.datepicker-controls .prev-btn{padding-left:.375rem;padding-right:.375rem;width:2.25rem}.datepicker-controls .next-btn.disabled,.datepicker-controls .prev-btn.disabled{visibility:hidden}.datepicker-view .dow{font-size:.875rem;font-weight:700;height:1.5rem;line-height:1.5rem}.datepicker-view .week{color:#b5b5b5;font-size:.75rem;width:2.25rem}@media (max-width:22.5rem){.datepicker-view .week{width:1.96875rem}}.datepicker-grid{width:15.75rem}@media (max-width:22.5rem){.calendar-weeks+.days .datepicker-grid{width:13.78125rem}}.datepicker-cell:not(.disabled):hover{background-color:#f9f9f9;cursor:pointer}.datepicker-cell.focused:not(.selected){background-color:#e8e8e8}.datepicker-cell.selected,.datepicker-cell.selected:hover{background-color:#3273dc;color:#fff;font-weight:600}.datepicker-cell.disabled{color:#dbdbdb}.datepicker-cell.next:not(.disabled),.datepicker-cell.prev:not(.disabled){color:#7a7a7a}.datepicker-cell.next.selected,.datepicker-cell.prev.selected{color:#e6e6e6}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today){background-color:#f5f5f5;border-radius:0}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today):not(.disabled):hover{background-color:#eee}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today).focused{background-color:#e8e8e8}.datepicker-cell.today:not(.selected){background-color:#00d1b2}.datepicker-cell.today:not(.selected):not(.disabled){color:#fff}.datepicker-cell.today.focused:not(.selected){background-color:#00c4a7}.datepicker-cell.range-end:not(.selected),.datepicker-cell.range-start:not(.selected){background-color:#b5b5b5;color:#fff}.datepicker-cell.range-end.focused:not(.selected),.datepicker-cell.range-start.focused:not(.selected){background-color:#afafaf}.datepicker-cell.range-start{border-radius:4px 0 0 4px}.datepicker-cell.range-end{border-radius:0 4px 4px 0}.datepicker-cell.range{background-color:#dbdbdb;border-radius:0}.datepicker-cell.range:not(.disabled):not(.focused):not(.today):hover{background-color:#d5d5d5}.datepicker-cell.range.disabled{color:#c2c2c2}.datepicker-cell.range.focused{background-color:#cfcfcf}.datepicker-view.datepicker-grid .datepicker-cell{height:4.5rem;line-height:4.5rem}.datepicker-input.in-edit{border-color:#2366d1}.datepicker-input.in-edit:active,.datepicker-input.in-edit:focus{box-shadow:0 0 .25em .25em #2366d133}\n", ".tcloud-ui-datepicker .datepicker-cell.focused:not(.selected){background-color:inherit!important}.tcloud-ui-datepicker .datepicker-cell.highlighted:not(.selected){background-color:#f5f5f5!important}.datepicker-picker{border:1px solid #ccc;padding:10px 15px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
398
398
  }
399
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TCloudUiDatepickerComponent, decorators: [{
399
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TCloudUiDatepickerComponent, decorators: [{
400
400
  type: Component,
401
401
  args: [{ selector: 'tcloud-ui-datepicker', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None, template: "<!-- Input mode -->\r\n<ng-container *ngIf=\"modeInput\">\r\n\r\n <div class=\"tcloud-ui-datepicker input-tc-datepicker\" [class.no-border]=\"!useBorder\" [class.child-input-date-time]=\"childInputDateTime\" >\r\n <table class=\"table-box-input\">\r\n <tr>\r\n <td class=\"td-icon\">\r\n <div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div>\r\n </td>\r\n <td class=\"td-date\">\r\n <input #input_datepicker type=\"text\" name=\"{{ID}}\" id=\"{{ID}}\" class=\"form-control\" [title]=\"innerValue\" >\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n</ng-container>\r\n\r\n<!-- Inline mode -->\r\n<ng-container *ngIf=\"!modeInput\"> \r\n <div class=\"tcloud-ui-datepicker tcloud-ui-datepicker-second\" #input_datepicker id=\"{{ID}}\" pattern=\"/^\\d{2}\\/\\d{2}\\/\\d{4}$/\" [title]=\"innerValue\"></div>\r\n</ng-container>\r\n\r\n<!-- EX de uso \r\n <tc-datepicker \r\n [multiple]=\"false\"\r\n [daysOfWeekDisabled]=\"[0,6]\"\r\n [minDate]=\"'18/11/2021'\"\r\n [maxDate]=\"'18/12/2023'\"\r\n [datesDisabled]=\"['12/10/2022','25/12/2022']\"\r\n [modeInput]=\"false\"\r\n (onChange)=\"($event)\"\r\n (onCheckDate)=\"onCheckDate($event)\"\r\n [(ngModel)]=\"dateValue\" >\r\n </tc-datepicker>\r\n \r\n // multiple = false\r\n // dateValue - string - pode ser: 12/12/2022 \r\n\r\n // multiple = true\r\n // dateValue - string - pode ser: 11/12/2022,12/12/2022 ... \r\n\r\n <pre>data: {{ dateValue }}</pre>\r\n-->\r\n", styles: [".input_datepicker{width:100%;max-width:290px}.input-tc-datepicker{background-color:#fff;border:1px solid var(--tc-gray-300);border-radius:3px;height:40px}.input-tc-datepicker.no-border{border:none!important}.input-tc-datepicker .table-box-input{width:100%}.input-tc-datepicker .table-box-input .td-icon{width:14px}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon{text-align:center;cursor:pointer}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon i{position:relative;left:1px;opacity:.5}.input-tc-datepicker .table-box-input .td-date{min-width:30px;width:101px input;width-width:100%}.input-tc-datepicker .table-box-input input{border:none;margin-top:2px;font-size:13px!important}.child-input-date-time{height:28px!important}\n", ".datepicker{display:none}.datepicker.active{display:block}.datepicker-dropdown{left:0;padding-top:4px;position:absolute;top:0;z-index:20}.datepicker-dropdown.datepicker-orient-top{padding-bottom:4px;padding-top:0}.datepicker-picker{background-color:#fff;border-radius:4px;display:inline-block}.datepicker-dropdown .datepicker-picker{box-shadow:0 2px 3px #0a0a0a1a,0 0 0 1px #0a0a0a1a}.datepicker-picker span{-webkit-touch-callout:none;border:0;border-radius:4px;cursor:default;display:block;flex:1;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker-main{padding:2px}.datepicker-footer{background-color:#f5f5f5;box-shadow:inset 0 1px 1px #0a0a0a1a}.datepicker-controls,.datepicker-grid,.datepicker-view,.datepicker-view .days-of-week{display:flex}.datepicker-grid{flex-wrap:wrap}.datepicker-view .days .datepicker-cell,.datepicker-view .dow{flex-basis:14.2857142857%}.datepicker-view.datepicker-grid .datepicker-cell{flex-basis:25%}.datepicker-cell,.datepicker-view .week{height:2.25rem;line-height:2.25rem}.datepicker-title{background-color:#f5f5f5;box-shadow:inset 0 -1px 1px #0a0a0a1a;font-weight:700;padding:.375rem .75rem;text-align:center}.datepicker-header .datepicker-controls{padding:2px 2px 0}.datepicker-controls .button{align-items:center;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;box-shadow:none;color:#363636;cursor:pointer;display:inline-flex;font-size:1rem;height:2.25em;justify-content:center;line-height:1.5;margin:0;padding:calc(.375em - 1px) .75em;position:relative;text-align:center;vertical-align:top;white-space:nowrap}.datepicker-controls .button:active,.datepicker-controls .button:focus{outline:none}.datepicker-controls .button:hover{border-color:#b5b5b5;color:#363636}.datepicker-controls .button:focus{border-color:#3273dc;color:#363636}.datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #3273dc40}.datepicker-controls .button:active{border-color:#4a4a4a;color:#363636}.datepicker-controls .button[disabled]{cursor:not-allowed}.datepicker-header .datepicker-controls .button{border-color:transparent;font-weight:700}.datepicker-header .datepicker-controls .button:hover{background-color:#f9f9f9}.datepicker-header .datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #ffffff40}.datepicker-header .datepicker-controls .button:active{background-color:#f2f2f2}.datepicker-header .datepicker-controls .button[disabled]{box-shadow:none}.datepicker-footer .datepicker-controls .button{border-radius:2px;font-size:.75rem;margin:calc(.375rem - 1px) .375rem;width:100%}.datepicker-controls .view-switch{flex:auto}.datepicker-controls .next-btn,.datepicker-controls .prev-btn{padding-left:.375rem;padding-right:.375rem;width:2.25rem}.datepicker-controls .next-btn.disabled,.datepicker-controls .prev-btn.disabled{visibility:hidden}.datepicker-view .dow{font-size:.875rem;font-weight:700;height:1.5rem;line-height:1.5rem}.datepicker-view .week{color:#b5b5b5;font-size:.75rem;width:2.25rem}@media (max-width:22.5rem){.datepicker-view .week{width:1.96875rem}}.datepicker-grid{width:15.75rem}@media (max-width:22.5rem){.calendar-weeks+.days .datepicker-grid{width:13.78125rem}}.datepicker-cell:not(.disabled):hover{background-color:#f9f9f9;cursor:pointer}.datepicker-cell.focused:not(.selected){background-color:#e8e8e8}.datepicker-cell.selected,.datepicker-cell.selected:hover{background-color:#3273dc;color:#fff;font-weight:600}.datepicker-cell.disabled{color:#dbdbdb}.datepicker-cell.next:not(.disabled),.datepicker-cell.prev:not(.disabled){color:#7a7a7a}.datepicker-cell.next.selected,.datepicker-cell.prev.selected{color:#e6e6e6}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today){background-color:#f5f5f5;border-radius:0}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today):not(.disabled):hover{background-color:#eee}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today).focused{background-color:#e8e8e8}.datepicker-cell.today:not(.selected){background-color:#00d1b2}.datepicker-cell.today:not(.selected):not(.disabled){color:#fff}.datepicker-cell.today.focused:not(.selected){background-color:#00c4a7}.datepicker-cell.range-end:not(.selected),.datepicker-cell.range-start:not(.selected){background-color:#b5b5b5;color:#fff}.datepicker-cell.range-end.focused:not(.selected),.datepicker-cell.range-start.focused:not(.selected){background-color:#afafaf}.datepicker-cell.range-start{border-radius:4px 0 0 4px}.datepicker-cell.range-end{border-radius:0 4px 4px 0}.datepicker-cell.range{background-color:#dbdbdb;border-radius:0}.datepicker-cell.range:not(.disabled):not(.focused):not(.today):hover{background-color:#d5d5d5}.datepicker-cell.range.disabled{color:#c2c2c2}.datepicker-cell.range.focused{background-color:#cfcfcf}.datepicker-view.datepicker-grid .datepicker-cell{height:4.5rem;line-height:4.5rem}.datepicker-input.in-edit{border-color:#2366d1}.datepicker-input.in-edit:active,.datepicker-input.in-edit:focus{box-shadow:0 0 .25em .25em #2366d133}\n", ".tcloud-ui-datepicker .datepicker-cell.focused:not(.selected){background-color:inherit!important}.tcloud-ui-datepicker .datepicker-cell.highlighted:not(.selected){background-color:#f5f5f5!important}.datepicker-picker{border:1px solid #ccc;padding:10px 15px}\n"] }]
402
402
  }], ctorParameters: () => [{ type: i1.DateBRPipe }], propDecorators: { multiple: [{
@@ -437,4 +437,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
437
437
  }], code: [{
438
438
  type: Input
439
439
  }] } });
440
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWMsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTW5ELElBQUksV0FBVyxHQUFHO0lBQ2hCLElBQUksRUFBRTtRQUNKLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQztRQUM1RSxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUM7UUFDNUQsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1FBQ25ELE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFF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QkFPTSxPQUFPO3NCQUFuQixLQUFLO2dCQWFJLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkFFeUMsZ0JBQWdCO3NCQUEvRCxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFFckMsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRGF0ZUJSUGlwZSB9IGZyb20gJy4uLy4uL19waXBlcyc7XHJcblxyXG4vLyBodHRwczovL215bXRoLmdpdGh1Yi5pby92YW5pbGxhanMtZGF0ZXBpY2tlci8jL1xyXG5kZWNsYXJlIHZhciBEYXRlcGlja2VyOiBhbnk7XHJcblxyXG52YXIgdHJhbnNsYXRpb24gPSB7XHJcbiAgcHRCUjoge1xyXG4gICAgZGF5czogW1wiRG9taW5nb1wiLCBcIlNlZ3VuZGFcIiwgXCJUZXLDp2FcIiwgXCJRdWFydGFcIiwgXCJRdWludGFcIiwgXCJTZXh0YVwiLCBcIlPDoWJhZG9cIl0sXHJcbiAgICBkYXlzU2hvcnQ6IFtcIkRvbVwiLCBcIlNlZ1wiLCBcIlRlclwiLCBcIlF1YVwiLCBcIlF1aVwiLCBcIlNleFwiLCBcIlPDoWJcIl0sXHJcbiAgICBkYXlzTWluOiBbXCJEb1wiLCBcIlNlXCIsIFwiVGVcIiwgXCJRdVwiLCBcIlF1XCIsIFwiU2VcIiwgXCJTYVwiXSxcclxuICAgIG1vbnRoczogW1wiSmFuZWlyb1wiLCBcIkZldmVyZWlyb1wiLCBcIk1hcsOnb1wiLCBcIkFicmlsXCIsIFwiTWFpb1wiLCBcIkp1bmhvXCIsIFwiSnVsaG9cIiwgXCJBZ29zdG9cIiwgXCJTZXRlbWJyb1wiLCBcIk91dHVicm9cIiwgXCJOb3ZlbWJyb1wiLCBcIkRlemVtYnJvXCJdLFxyXG4gICAgbW9udGhzU2hvcnQ6IFtcIkphblwiLCBcIkZldlwiLCBcIk1hclwiLCBcIkFiclwiLCBcIk1haVwiLCBcIkp1blwiLCBcIkp1bFwiLCBcIkFnb1wiLCBcIlNldFwiLCBcIk91dFwiLCBcIk5vdlwiLCBcIkRlelwiXSxcclxuICAgIHRvZGF5OiBcIkhvamVcIixcclxuICAgIGNsZWFyOiBcIkxpbXBhclwiLFxyXG4gICAgdGl0bGVGb3JtYXQ6IFwiTU0geVwiLFxyXG4gICAgZm9ybWF0OiBcImRkL21tL3l5eXlcIixcclxuICAgIHdlZWtTdGFydDogMFxyXG4gIH1cclxufTtcclxuXHJcbmNvbnN0IENVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XHJcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVENsb3VkVWlEYXRlcGlja2VyQ29tcG9uZW50KSxcclxuICBtdWx0aTogdHJ1ZVxyXG59O1xyXG5cclxuY29uc3Qgbm9vcCA9ICgpID0+IHtcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGNsb3VkLXVpLWRhdGVwaWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90Y2xvdWQtdWktZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbXHJcbiAgICAnLi90Y2xvdWQtdWktZGF0ZXBpY2tlci5jb21wb25lbnQuc2NzcycsXHJcbiAgICAnLi9kYXRlcGlja2VyL2Nzcy9kYXRlcGlja2VyLm1pbi5jc3MnLFxyXG4gICAgJy4vZGF0ZXBpY2tlci9jc3Mvc3R5bGUuY3NzJyxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW0NVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaURhdGVwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAvLyBtdWx0aXBsZSBwZXJtaXRlIHNlbGVjaW9uYXIgbXVsdGlwbGFzIGRhdGFzXHJcbiAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gbWF4TnVtYmVyT2ZEYXRlcyAtIE1heGltdW0gbnVtYmVyIG9mIGRhdGVzIHVzZXJzIGNhbiBzZWxlY3QuIE5vIGxpbWl0IGlzIGFwcGxpZWQgaWYgMCBpcyBzZXQuXHJcbiAgLy8gRGVwZW5kZSBkZTogbXVsdGlwbGUgY29tbyB0cnVlXHJcbiAgQElucHV0KCkgbWF4TnVtYmVyT2ZEYXRlczogbnVtYmVyID0gMDtcclxuXHJcbiAgLy8gZGF5c09mV2Vla0Rpc2FibGVkIC0gRGlhcyBkYSBzZW1hbmEgZGVzYWJpbGlkYXRvcyA9IDAgcGFyYSBzYWJhZG8gYXTDqSA2IHBhcmEgZG9taW5nb1xyXG4gIEBJbnB1dCgpIGRheXNPZldlZWtEaXNhYmxlZDogbnVtYmVyW10gPSBbXTtcclxuXHJcbiAgLy8gbWluRGF0ZSAtIERhdGEgbWluaW1hIHBhcmEgZXhpYmljYW8gZG8gY2FsZW5kYXJpbyAtIGV4OiAwMS8wMS8yMDIwXHJcbiAgQElucHV0KCkgbWluRGF0ZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8vIG1heERhdGUgLSBEYXRhIG1heGltYSBwYXJhIGV4aWJpY2FvIGRvIGNhbGVuZGFyaW8gLSBleDogMzEvMTIvMjAyMFxyXG4gIEBJbnB1dCgpIG1heERhdGU6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvLyBkYXRlc0Rpc2FibGVkIC0gRGF0YXMgZGVzYWJpbGl0YWRhcyAtIEV4OiBbJzEyLzEwLzIwMjAnLCcyNS8xMi8yMDIwJ11cclxuICBASW5wdXQoKSBkYXRlc0Rpc2FibGVkOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAvLyBtb2RlSW5wdXQgLSBFeGliZSB1bSBpbnB1dCBwYXJhIHF1YW5kbyBjbGljYXIgYWJyaXIgbyBjYWxlbmRhcmlvXHJcbiAgQElucHV0KCkgbW9kZUlucHV0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHVzZUJvcmRlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIGNoaWxkSW5wdXREYXRlVGltZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBzdGFydFZpZXdJbk1pbkRhdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc3RhcnRWaWV3SW5NYXhEYXRlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIG9uQ2hhbmdlIC0gRGlzcGFyYSBhIGRhdGEgc2VsZWNpb25hZGFcclxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueXx1bmRlZmluZWQ+KCk7XHJcblxyXG4gIGRlZmF1bHRfaW5uZXJWYWx1ZTogYW55IHwgdW5kZWZpbmVkO1xyXG4gIGRlZmF1bHRfaW5uZXJWYWx1ZV9jb252ZXJ0aWRhOiBhbnkgfCB1bmRlZmluZWQ7XHJcbiAgZGVmYXVsdF9xdGRfaW5uZXJWYWx1ZTogbnVtYmVyID0gMDtcclxuICBkYXRlX2NoYW5nZWQ6IGFueSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQElucHV0KCkgc2V0IG5nTW9kZWwodjogYW55KXtcclxuXHJcbiAgICBpZiggdiAmJiB2ICE9PSB0aGlzLmlubmVyVmFsdWUgKXtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjsgLy90aGlzLnRvU2V0TWFzayh2KTsgXHJcbiAgICAgIHRoaXMuZGVmYXVsdF9pbm5lclZhbHVlID0gdjtcclxuICAgICAgdGhpcy5kZWZhdWx0X2lubmVyVmFsdWVfY29udmVydGlkYSA9IHRoaXMuY29udmVydERhdGVzKHYpO1xyXG4gICAgICBpZiggdGhpcy5tdWx0aXBsZSApe1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdF9xdGRfaW5uZXJWYWx1ZSA9ICh2KS5sZW5ndGg7XHJcbiAgICAgIH0gICAgICBcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHYpO1xyXG4gICAgfSBcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBuZ01vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnl8dW5kZWZpbmVkPigpO1xyXG5cclxuICBAT3V0cHV0KCkgb25DaGVja0RhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRfZGF0ZXBpY2tlcicsIHtzdGF0aWM6IGZhbHNlfSkgaW5wdXRfZGF0ZXBpY2tlcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBkYXRlcGlja2VyOiBhbnkgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgY29kZTogc3RyaW5nID0gJ3RjbG91ZC11aS1kYXRlcGlja2VyJztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9EYXRlQlJQaXBlOiBEYXRlQlJQaXBlXHJcbiAgKSB7IH1cclxuXHJcbiAgSUQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuSUQgPSB0aGlzLmdlbmVyYXRlSUQoKTtcclxuICAgIERhdGVwaWNrZXIubG9jYWxlcy5wdEJSID0gdHJhbnNsYXRpb24ucHRCUjsgICAgXHJcbiAgICB0aGlzLnN0YXJ0X2RhdGVwaWNrZXIoKTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlSUQoKTogc3RyaW5ne1xyXG4gICAgcmV0dXJuIGB0Y2xvdWQtdWktZGF0ZXBpY2tlci0ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpKX1gO1xyXG4gIH1cclxuXHJcbiAgdG9TZXRNYXNrKHY6IHN0cmluZyl7XHJcbiAgICByZXR1cm4gdGhpcy5fRGF0ZUJSUGlwZS50cmFuc2Zvcm0odik7XHJcbiAgfVxyXG5cclxuICBwYXJzZURhdGVMb2NhbChkYXRlU3RyaW5nOiBhbnksIF9zcGxpdD86IHN0cmluZyl7XHJcbiAgICBpZiggIV9zcGxpdCApeyBfc3BsaXQgPSAnLSc7IH1cclxuICAgIGNvbnN0IFtkYXkgLCBtb250aCwgeWVhcl0gPSBkYXRlU3RyaW5nLnNwbGl0KF9zcGxpdCk7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXkpOyAvLyBTdWJ0cmFpIDEgcG9ycXVlIG9zIG1lc2VzIHPDo28gaW5kZXhhZG9zIGEgcGFydGlyIGRlIDBcclxuICB9XHJcblxyXG4gIGZvcm1hdERhdGVMb2NhbChkYXRlOiBhbnkpe1xyXG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7IC8vIEFkaWNpb25hIDEgcG9ycXVlIG9zIG1lc2VzIHPDo28gaW5kZXhhZG9zIGEgcGFydGlyIGRlIDBcclxuICAgIGNvbnN0IGRheSA9IFN0cmluZyhkYXRlLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIHJldHVybiBgJHtkYXl9LyR7bW9udGh9LyR7IHllYXJ9YDtcclxuICB9XHJcblxyXG4gIGdldF9vcHRpb25zKCl7XHJcbiAgICAvLyBGdW7Dp8OjbyBwYXJhIGZvcm1hdGFyIHVtYSBkYXRhIG5vIGZ1c28gaG9yw6FyaW8gbG9jYWxcclxuICAgIGNvbnN0IGZvcm1hdERhdGVMb2NhbCA9IChkYXRlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgY29uc3QgbW9udGggPSBTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgICAgY29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgICByZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBGdW7Dp8OjbyBwYXJhIGFuYWxpc2FyIHVtYSBkYXRhIG5vIGZ1c28gaG9yw6FyaW8gbG9jYWxcclxuICAgIGNvbnN0IHBhcnNlRGF0ZUxvY2FsID0gKGRhdGVTdHJpbmc6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBbeWVhciwgbW9udGgsIGRheV0gPSBkYXRlU3RyaW5nLnNwbGl0KCctJyk7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IG9wdGlvbnMgPSB7XHJcbiAgICAgIG5leHRBcnJvdzogYDxpIGNsYXNzPVwiZmFzIGZhLWNhcmV0LXJpZ2h0XCI+PC9pPmAsXHJcbiAgICAgIHByZXZBcnJvdzogYDxpIGNsYXNzPVwiZmFzIGZhLWNhcmV0LWxlZnRcIj48L2k+YCxcclxuICAgICAgZm9ybWF0OiAnZGQvbW0veXl5eScsICAgICAgXHJcbiAgICAgIGRheXNPZldlZWtIaWdobGlnaHRlZDogWzAsNl0sXHJcbiAgICAgIGxhbmd1YWdlOiAncHRCUicsXHJcbiAgICAgIGZvcm1hdHRlcjoge1xyXG4gICAgICAgIGRhdGU6IGZvcm1hdERhdGVMb2NhbCxcclxuICAgICAgfSxcclxuICAgICAgcGFyc2VyOiB7XHJcbiAgICAgICAgZGF0ZTogcGFyc2VEYXRlTG9jYWwsXHJcbiAgICAgIH0gICAgIFxyXG4gICAgfSBhcyBhbnk7XHJcblxyXG4gICAgaWYoICh0aGlzLmRheXNPZldlZWtEaXNhYmxlZCkubGVuZ3RoID4gMCApe1xyXG4gICAgICBvcHRpb25zWydkYXlzT2ZXZWVrRGlzYWJsZWQnXSA9IHRoaXMuZGF5c09mV2Vla0Rpc2FibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCAodGhpcy5kYXRlc0Rpc2FibGVkKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIG9wdGlvbnNbJ2RhdGVzRGlzYWJsZWQnXSA9IHRoaXMuZGF0ZXNEaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBpZiggdGhpcy5taW5EYXRlICE9PSAnJyApe1xyXG4gICAgICBvcHRpb25zWydtaW5EYXRlJ10gPSB0aGlzLm1pbkRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIHRoaXMubWF4RGF0ZSAhPT0gJycgKXtcclxuICAgICAgb3B0aW9uc1snbWF4RGF0ZSddID0gdGhpcy5tYXhEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCB0aGlzLm11bHRpcGxlICl7ICBcclxuICAgICAgb3B0aW9uc1snbXVsdGlwbGUnXSA9IHRydWU7ICBcclxuICAgICAgb3B0aW9uc1snYXV0b2hpZGUnXSA9IGZhbHNlOyBcclxuICAgICAgb3B0aW9uc1snbWF4TnVtYmVyT2ZEYXRlcyddID0gdGhpcy5tYXhOdW1iZXJPZkRhdGVzO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIGNsZWFyRGF0ZSgpe1xyXG4gICAgaWYoIHRoaXMuZGF0ZXBpY2tlciApeyB0aGlzLmRhdGVwaWNrZXIuc2V0RGF0ZSh7Y2xlYXI6IHRydWV9KTsgfVxyXG4gIH1cclxuXHJcbiAgc3RhcnRfZGF0ZXBpY2tlcigpe1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7ICAgICBcclxuICAgICAgY29uc3QgaW5wdXRfZGF0ZXBpY2tlciA9IDxhbnk+IHRoaXMuaW5wdXRfZGF0ZXBpY2tlcj8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgaWYoIGlucHV0X2RhdGVwaWNrZXIgKXtcclxuICAgICAgICBpbnB1dF9kYXRlcGlja2VyLnNldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInLCdERC9NTS9ZWVlZJyk7XHJcblxyXG4gICAgICAgIGlmKCAhdGhpcy51c2VCb3JkZXIgKXtcclxuICAgICAgICAgIGlucHV0X2RhdGVwaWNrZXIuc2V0QXR0cmlidXRlKCdzdHlsZScsJ2JvcmRlcjpub25lOyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1heC13aWR0aDogMTA1cHg7IHBhZGRpbmc6IDA7Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlciA9IG5ldyBEYXRlcGlja2VyKCBpbnB1dF9kYXRlcGlja2VyLCB0aGlzLmdldF9vcHRpb25zKCkgKTsgICAgICAgIFxyXG4gICAgICAgIGlmKCB0aGlzLmlubmVyVmFsdWUgJiYgdGhpcy5pbm5lclZhbHVlICE9PSAnJyApe1xyXG4gICAgICAgICAgdGhpcy50b1NldERlZmF1bHREYXRlKHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpbnB1dF9kYXRlcGlja2VyLmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHYgPSAoaW5wdXRfZGF0ZXBpY2tlclsndmFsdWUnXSkgPyBpbnB1dF9kYXRlcGlja2VyWyd2YWx1ZSddIDogJyc7XHJcbiAgICAgICAgICBpbnB1dF9kYXRlcGlja2VyWyd2YWx1ZSddID0gdGhpcy50b1NldE1hc2sodik7XHJcbiAgICAgICAgICBpZiggKGlucHV0X2RhdGVwaWNrZXJbJ3ZhbHVlJ10pLmxlbmd0aCA+PSAxMCApe1xyXG4gICAgICAgICAgICBjb25zdCB2ID0gKGlucHV0X2RhdGVwaWNrZXJbJ3ZhbHVlJ10pLnN1YnN0cmluZygwLCAxMCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcnRfZGF0ZSA9ICh2KS5zcGxpdCgnLycpO1xyXG4gICAgICAgICAgICBpZiggKHBhcnRfZGF0ZSkubGVuZ3RoID09PSAzICl7XHJcblxyXG4gICAgICAgICAgICAgIGxldCBkaWEgPSBwYXJ0X2RhdGVbMF07XHJcbiAgICAgICAgICAgICAgbGV0IG1lcyA9IHBhcnRfZGF0ZVsxXTtcclxuICAgICAgICAgICAgICBsZXQgYW5vID0gcGFydF9kYXRlWzJdO1xyXG5cclxuICAgICAgICAgICAgICBtZXMgPSAoKyhtZXMpIDwgMTAgKSA/IGAwJHsrbWVzfWAgOiBtZXM7ICBcclxuICAgICAgICAgICAgICBkaWEgPSAoKyhkaWEpIDwgMTAgKSA/IGAwJHsrZGlhfWAgOiBkaWE7XHJcblxyXG4gICAgICAgICAgICAgIGNvbnN0IGR0ID0gbmV3IERhdGUoYW5vKyctJyttZXMrJy0nK2RpYSk7XHJcbiAgICAgICAgICAgICAgaWYoIGR0ICl7XHJcbiAgICAgICAgICAgICAgICBpbnB1dF9kYXRlcGlja2VyPy5jaGFuZ2VEYXRlO1xyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5JRCk/LmJsdXIoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgXHJcbiAgICAgICAgaW5wdXRfZGF0ZXBpY2tlci5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2VEYXRlJywgKGV2ZW50OiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgICBpZiggZXZlbnQ/LmRldGFpbD8uZGF0ZSApe1xyXG5cclxuICAgICAgICAgICAgbGV0IHF0ZCA9IChldmVudC5kZXRhaWwuZGF0ZSkubGVuZ3RoOyAgXHJcblxyXG4gICAgICAgICAgICBpZiggdGhpcy5kaXNhYmxlZCApe1xyXG5cclxuICAgICAgICAgICAgICBpZiggIXRoaXMubXVsdGlwbGUgKXtcclxuICAgICAgICAgICAgICAgIGxldCBkdCA9IHRoaXMuZm9ybWF0RGF0ZUxvY2FsKGV2ZW50LmRldGFpbD8uZGF0ZSk7XHJcbiAgICAgICAgICAgICAgICBpZiggdGhpcy5kZWZhdWx0X2lubmVyVmFsdWUgJiYgdGhpcy5kZWZhdWx0X2lubmVyVmFsdWVbMF0gJiYgKCBgJHt0aGlzLmRlZmF1bHRfaW5uZXJWYWx1ZVswXX1gICE9PSBgJHtkdH1gICkgKXtcclxuICAgICAgICAgICAgICAgICAgcXRkID0gMVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlci5zZXREYXRlKCB0aGlzLmRlZmF1bHRfaW5uZXJWYWx1ZV9jb252ZXJ0aWRhLCB7Y2xlYXI6IHRydWUsIHJlbmRlcjogdHJ1ZX0pO1xyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIGlmKCBxdGQgPiB0aGlzLmRlZmF1bHRfcXRkX2lubmVyVmFsdWUgKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZV9jaGFuZ2VkID0gZXZlbnQ/LmRldGFpbC52aWV3RGF0ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlci5zZXRGb2N1c2VkRGF0ZSggdGhpcy5kYXRlX2NoYW5nZWQsIHtyZXNldFZpZXc6IGZhbHNlfSApO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMub25DaGVja0RhdGUuZW1pdCh7XHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmZvcm1hdERhdGVMb2NhbCh0aGlzLmRhdGVfY2hhbmdlZCksIFxyXG4gICAgICAgICAgICAgICAgICBkYXRlOiB0aGlzLmRhdGVfY2hhbmdlZCwgXHJcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9ZWxzZXtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiggdGhpcy5tdWx0aXBsZSApe1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBzbyA9IHRoaXMuZmluZERpZmZlcmVuY2VzKCB0aGlzLmRlZmF1bHRfaW5uZXJWYWx1ZSwgdGhpcy5mb3JtYXRBcnJheURhdGVzKGV2ZW50LmRldGFpbC5kYXRlKSApO1xyXG4gICAgICAgICAgICAgICAgICBpZiggc28gJiYgKHNvKS5sZW5ndGggPiAwICl7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZV9jaGFuZ2VkID0gdGhpcy5wYXJzZURhdGVMb2NhbChzb1swXSwgJy8nKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uQ2hlY2tEYXRlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWUgOnNvWzBdLCBcclxuICAgICAgICAgICAgICAgICAgICAgIGRhdGU6IHRoaXMuZGF0ZV9jaGFuZ2VkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyLnNldEZvY3VzZWREYXRlKCB0aGlzLmRhdGVfY2hhbmdlZCwge3Jlc2V0VmlldzogZmFsc2V9ICk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9ZWxzZXtcclxuXHJcblxyXG4gICAgICAgICAgICAgIHRoaXMudG9TZWxlY3RlZERhdGUoIGV2ZW50LmRldGFpbCApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfSAgICAgIFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgdG9TZXREZWZhdWx0RGF0ZShkYXRlOiBzdHJpbmcgfCBzdHJpbmdbXSl7XHJcbiAgICBcclxuICAgIGlmKCBkYXRlID09PSB1bmRlZmluZWQgfHwgZGF0ZSA9PT0gbnVsbCB8fCBkYXRlID09PSAnJyApe1xyXG4gICAgICB0aGlzLmNsZWFyRGF0ZSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGRhdGVzID0gW10gYXMgc3RyaW5nW107XHJcblxyXG4gICAgaWYoIGRhdGUgJiYgdHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnICl7XHJcbiAgICAgIGlmKCAoZGF0ZSkuaW5jbHVkZXMoJywnKSApe1xyXG4gICAgICAgIGNvbnN0IGRhdGVzID0gKGRhdGUpLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgZGF0ZSA9IGRhdGVzO1xyXG4gICAgICAgIGlmKCAhdGhpcy5tdWx0aXBsZSApe1xyXG4gICAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gZGF0ZSA9IGRhdGVzWzBdO1xyXG4gICAgICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTsgXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmKCBkYXRlICYmIHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJyApe1xyXG4gICAgICAoZGF0ZXMpLnB1c2goIGRhdGUgKTsgXHJcbiAgICB9ZWxzZXtcclxuICAgICAgZGF0ZXMgPSA8QXJyYXk8c3RyaW5nPj4gZGF0ZTtcclxuICAgIH1cclxuICAgIGlmKCB0aGlzLmRhdGVwaWNrZXIgKXtcclxuXHJcbiAgICAgIGlmKCBkYXRlcyAmJiBkYXRlcy5sZW5ndGggPiAwICYmIHRoaXMubXVsdGlwbGUgKXtcclxuICAgICAgICBpZiggdGhpcy5zdGFydFZpZXdJbk1pbkRhdGUgKXsgICAgICAgICAgXHJcbiAgICAgICAgICBkYXRlcyA9IHRoaXMuc29ydERhdGVzRGVzY2VuZGluZyhkYXRlcyk7ICAgICAgICAgIFxyXG4gICAgICAgIH1lbHNlIGlmKHRoaXMuc3RhcnRWaWV3SW5NYXhEYXRlKXtcclxuICAgICAgICAgIGRhdGVzID0gdGhpcy5zb3J0RGF0ZXNBc2NlbmRpbmcoZGF0ZXMpOyBcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kYXRlcGlja2VyLnNldERhdGUoZGF0ZXMpOyAgICAgIFxyXG4gICAgfSBcclxuICB9XHJcblxyXG4gIGNvbnZlcnREYXRlcyhhcnJheURlRGF0YXM6IGFueVtdKSB7XHJcbiAgICBjb25zdCBmb3JtYXREYXRlID0gKGRhdGVTdHJpbmc6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBbZGF5LCBtb250aCwgeWVhcl0gPSBkYXRlU3RyaW5nLnNwbGl0KCcvJyk7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7IFxyXG4gICAgfVxyXG4gICAgaWYoIGFycmF5RGVEYXRhcyAmJiBBcnJheS5pc0FycmF5KGFycmF5RGVEYXRhcykgKXtcclxuICAgICAgY29uc3QgZGF0YXNPcmRlbmFkYXMgPSBhcnJheURlRGF0YXMubWFwKChkYXRhOiBhbnkpID0+ICh7IG9yaWdpbmFsOiBkYXRhLCBjb252ZXJ0aWRhOiBmb3JtYXREYXRlKGRhdGEpIH0pKTtcclxuICAgICAgcmV0dXJuIGRhdGFzT3JkZW5hZGFzLm1hcChpdGVtID0+IGl0ZW0uY29udmVydGlkYSk7IFxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHJldHVybiBbYXJyYXlEZURhdGFzXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNvcnREYXRlc0Rlc2NlbmRpbmcoYXJyYXlEZURhdGFzOiBhbnlbXSkge1xyXG4gICAgY29uc3QgZm9ybWF0RGF0ZSA9IChkYXRlU3RyaW5nOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgW2RheSwgbW9udGgsIHllYXJdID0gZGF0ZVN0cmluZy5zcGxpdCgnLycpO1xyXG4gICAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXkpOyBcclxuICAgIH1cclxuICAgIGNvbnN0IGRhdGFzT3JkZW5hZGFzID0gYXJyYXlEZURhdGFzLm1hcCgoZGF0YTogYW55KSA9PiAoeyBvcmlnaW5hbDogZGF0YSwgY29udmVydGlkYTogZm9ybWF0RGF0ZShkYXRhKSB9KSkuc29ydCgoYTphbnksIGI6IGFueSkgPT4gYi5jb252ZXJ0aWRhIC0gYS5jb252ZXJ0aWRhKTtcclxuICAgIGNvbnN0IGRhdGFzT3JkZW5hZGFzRm9ybWF0YWRhcyA9IGRhdGFzT3JkZW5hZGFzLm1hcChpdGVtID0+IGl0ZW0ub3JpZ2luYWwpOyBcclxuICAgIHJldHVybiBkYXRhc09yZGVuYWRhc0Zvcm1hdGFkYXM7XHJcbiAgfVxyXG4gIFxyXG4gIHNvcnREYXRlc0FzY2VuZGluZyhhcnJheURlRGF0YXM6IGFueVtdKSB7XHJcbiAgICBjb25zdCBmb3JtYXREYXRlID0gKGRhdGVTdHJpbmc6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBbZGF5LCBtb250aCwgeWVhcl0gPSBkYXRlU3RyaW5nLnNwbGl0KCcvJyk7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7IFxyXG4gICAgfVxyXG4gICAgY29uc3QgZGF0YXNPcmRlbmFkYXMgPSBhcnJheURlRGF0YXMubWFwKChkYXRhOiBhbnkpID0+ICh7IG9yaWdpbmFsOiBkYXRhLCBjb252ZXJ0aWRhOiBmb3JtYXREYXRlKGRhdGEpIH0pKS5zb3J0KChhOmFueSwgYjogYW55KSA9PiBhLmNvbnZlcnRpZGEgLSBiLmNvbnZlcnRpZGEpO1xyXG4gICAgY29uc3QgZGF0YXNPcmRlbmFkYXNGb3JtYXRhZGFzID0gZGF0YXNPcmRlbmFkYXMubWFwKGl0ZW0gPT4gaXRlbS5vcmlnaW5hbCk7XHJcbiAgICByZXR1cm4gZGF0YXNPcmRlbmFkYXNGb3JtYXRhZGFzO1xyXG4gIH1cclxuXHJcbiAgdG9TZWxlY3RlZERhdGUoZGV0YWlsOiBhbnkpeyAgICBcclxuICAgIGlmKCBkZXRhaWwuZGF0ZXBpY2tlci5kYXRlcyAmJiAoZGV0YWlsLmRhdGVwaWNrZXIuZGF0ZXMpLmxlbmd0aCA+IDAgKXtcclxuICAgICAgaWYoIHRoaXMubXVsdGlwbGUgKXtcclxuICAgICAgICBsZXQgZGF0ZXMgPSBbXTtcclxuICAgICAgICBmb3IoIGxldCBpID0gMDsgaSA8IChkZXRhaWwuZGF0ZXBpY2tlci5kYXRlcykubGVuZ3RoOyBpKysgKXtcclxuICAgICAgICAgIGNvbnN0IHRpbWVTdGFtcCA9IDxudW1iZXI+IGRldGFpbC5kYXRlcGlja2VyLmRhdGVzW2ldO1xyXG4gICAgICAgICAgKGRhdGVzKS5wdXNoKCB0aGlzLmZvcm1hdF9kYXRlKCB0aW1lU3RhbXAgKSApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSBkYXRlcztcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTsgICAgICAgIFxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBjb25zdCB0aW1lU3RhbXAgPSA8bnVtYmVyPiBkZXRhaWwuZGF0ZXBpY2tlci5kYXRlc1swXTtcclxuICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5mb3JtYXRfZGF0ZSggdGltZVN0YW1wICk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KGRhdGUpO1xyXG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IGRhdGU7XHJcbiAgICAgIH0gICAgICBcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmNsZWFyRGF0ZSgpO1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTtcclxuICAgIH0gXHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5pbm5lclZhbHVlO1xyXG4gICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTsgXHJcbiAgfVxyXG5cclxuICBmb3JtYXRfZGF0ZSh0aW1lU3RhbXA6IG51bWJlcil7XHJcbiAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKHRpbWVTdGFtcCk7XHJcblxyXG4gICAgbGV0IGRpYSA9IGAke2RhdGUuZ2V0RGF0ZSgpfWA7XHJcbiAgICBsZXQgbWVzID0gYCR7ZGF0ZS5nZXRNb250aCgpKzF9YDtcclxuICAgIGxldCBhbm8gPSBgJHtkYXRlLmdldEZ1bGxZZWFyKCl9YDtcclxuXHJcbiAgICBkaWEgPSAoKyhkaWEpIDwgMTAgKSA/IGAwJHsrZGlhfWAgOiBkaWE7XHJcbiAgICBtZXMgPSAoKyhtZXMpIDwgMTAgKSA/IGAwJHsrbWVzfWAgOiBtZXM7IFxyXG5cclxuICAgIGNvbnN0IGRhdGVGb3JtYXQgPSBgJHtkaWF9LyR7bWVzfS8ke2Fub31gO1xyXG4gICAgcmV0dXJuIGRhdGVGb3JtYXQ7XHJcbiAgfVxyXG5cclxuICB0b0NsaWNrSW4oaWQ6IHN0cmluZyl7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpIGFzIGFueTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4geyAgICAgIFxyXG4gICAgICBlbGVtZW50Py5kYXRlcGlja2VyPy5zaG93KCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgZmluZERpZmZlcmVuY2VzKGFycmF5MTogYW55LCBhcnJheTI6IGFueSkge1xyXG4gICAgY29uc3QgY29uanVudG9Db211bSA9IG5ldyBTZXQoWy4uLmFycmF5MSwgLi4uYXJyYXkyXSk7XHJcbiAgICByZXR1cm4gQXJyYXkuZnJvbShjb25qdW50b0NvbXVtKS5maWx0ZXIoaXRlbSA9PiAhKGFycmF5MS5pbmNsdWRlcyhpdGVtKSAmJiBhcnJheTIuaW5jbHVkZXMoaXRlbSkpKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgZm9ybWF0QXJyYXlEYXRlcyhhcnJheV9kYXRlczogYW55KXtcclxuICAgIGxldCBmb3JtYXRlZHMgPSBbXTtcclxuICAgIGlmKCBhcnJheV9kYXRlcyAmJiAoYXJyYXlfZGF0ZXMpLmxlbmd0aCA+IDAgKXtcclxuICAgICAgY29uc3QgZm9ybWF0RGF0ZUxvY2FsID0gKGRhdGU6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgICAgY29uc3QgbW9udGggPSBTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTsgLy8gQWRpY2lvbmEgMSBwb3JxdWUgb3MgbWVzZXMgc8OjbyBpbmRleGFkb3MgYSBwYXJ0aXIgZGUgMFxyXG4gICAgICAgIGNvbnN0IGRheSA9IFN0cmluZyhkYXRlLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgICAgICByZXR1cm4gYCR7ZGF5fS8ke21vbnRofS8ke3llYXJ9YDtcclxuICAgICAgfVxyXG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8IChhcnJheV9kYXRlcykubGVuZ3RoOyBpKysgKXtcclxuICAgICAgICBjb25zdCBkdCA9IGFycmF5X2RhdGVzW2ldO1xyXG4gICAgICAgIChmb3JtYXRlZHMpLnB1c2goIGZvcm1hdERhdGVMb2NhbChkdCkgKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybWF0ZWRzO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgaW5uZXJWYWx1ZTogYW55IHwgdW5kZWZpbmVkO1xyXG4gIC8vUGxhY2Vob2xkZXJzIGZvciB0aGUgY2FsbGJhY2tzIHdoaWNoIGFyZSBsYXRlciBwcm92aWRlc2RcclxuICAvL2J5IHRoZSBDb250cm9sIFZhbHVlIEFjY2Vzc29yXHJcbiAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XHJcbiAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcclxuXHJcbiAgLy9nZXQgYWNjZXNzb3JcclxuICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcclxuICB9O1xyXG5cclxuICAvL3NldCBhY2Nlc3NvciBpbmNsdWRpbmcgY2FsbCB0aGUgb25jaGFuZ2UgY2FsbGJhY2tcclxuICBzZXQgdmFsdWUodjogYW55KSB7XHJcblxyXG4gICAgaWYgKHYgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2OyAvLyB0aGlzLnRvU2V0TWFzayh2KTsgICAgICBcclxuICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHYpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgLy8gdGhpcy5pbm5lclZhbHVlID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL1NldCB0b3VjaGVkIG9uIGJsdXJcclxuICBvbkJsdXIoKSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy50b1NldERlZmF1bHREYXRlKHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS0gSW5wdXQgbW9kZSAtLT5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGVJbnB1dFwiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwidGNsb3VkLXVpLWRhdGVwaWNrZXIgaW5wdXQtdGMtZGF0ZXBpY2tlclwiIFtjbGFzcy5uby1ib3JkZXJdPVwiIXVzZUJvcmRlclwiIFtjbGFzcy5jaGlsZC1pbnB1dC1kYXRlLXRpbWVdPVwiY2hpbGRJbnB1dERhdGVUaW1lXCIgPlxyXG4gICAgPHRhYmxlIGNsYXNzPVwidGFibGUtYm94LWlucHV0XCI+XHJcbiAgICAgIDx0cj5cclxuICAgICAgICA8dGQgY2xhc3M9XCJ0ZC1pY29uXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsaW1pdGVyLXRpbWUtaWNvblwiIChjbGljayk9XCJ0b0NsaWNrSW4oSUQpXCIgPjxpIGNsYXNzPVwiZmFzIGZhLWNhbGVuZGFyLWFsdFwiPjwvaT48L2Rpdj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICAgIDx0ZCBjbGFzcz1cInRkLWRhdGVcIj5cclxuICAgICAgICAgIDxpbnB1dCAjaW5wdXRfZGF0ZXBpY2tlciB0eXBlPVwidGV4dFwiIG5hbWU9XCJ7e0lEfX1cIiBpZD1cInt7SUR9fVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW3RpdGxlXT1cImlubmVyVmFsdWVcIiA+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC90cj5cclxuICAgIDwvdGFibGU+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPCEtLSBJbmxpbmUgbW9kZSAtLT5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtb2RlSW5wdXRcIj4gIFxyXG4gIDxkaXYgY2xhc3M9XCJ0Y2xvdWQtdWktZGF0ZXBpY2tlciB0Y2xvdWQtdWktZGF0ZXBpY2tlci1zZWNvbmRcIiAjaW5wdXRfZGF0ZXBpY2tlciBpZD1cInt7SUR9fVwiIHBhdHRlcm49XCIvXlxcZHsyfVxcL1xcZHsyfVxcL1xcZHs0fSQvXCIgW3RpdGxlXT1cImlubmVyVmFsdWVcIj48L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48IS0tIEVYIGRlIHVzbyBcclxuICA8dGMtZGF0ZXBpY2tlciBcclxuICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXHJcbiAgICBbZGF5c09mV2Vla0Rpc2FibGVkXT1cIlswLDZdXCJcclxuICAgIFttaW5EYXRlXT1cIicxOC8xMS8yMDIxJ1wiXHJcbiAgICBbbWF4RGF0ZV09XCInMTgvMTIvMjAyMydcIlxyXG4gICAgW2RhdGVzRGlzYWJsZWRdPVwiWycxMi8xMC8yMDIyJywnMjUvMTIvMjAyMiddXCJcclxuICAgIFttb2RlSW5wdXRdPVwiZmFsc2VcIlxyXG4gICAgKG9uQ2hhbmdlKT1cIigkZXZlbnQpXCJcclxuICAgIChvbkNoZWNrRGF0ZSk9XCJvbkNoZWNrRGF0ZSgkZXZlbnQpXCJcclxuICAgIFsobmdNb2RlbCldPVwiZGF0ZVZhbHVlXCIgPlxyXG4gIDwvdGMtZGF0ZXBpY2tlcj5cclxuICBcclxuICAvLyBtdWx0aXBsZSA9IGZhbHNlXHJcbiAgLy8gZGF0ZVZhbHVlIC0gc3RyaW5nIC0gcG9kZSBzZXI6IDEyLzEyLzIwMjIgXHJcblxyXG4gIC8vIG11bHRpcGxlID0gdHJ1ZVxyXG4gIC8vIGRhdGVWYWx1ZSAtIHN0cmluZyAtIHBvZGUgc2VyOiAxMS8xMi8yMDIyLDEyLzEyLzIwMjIgLi4uIFxyXG5cclxuICA8cHJlPmRhdGE6IHt7IGRhdGVWYWx1ZSB9fTwvcHJlPlxyXG4tLT5cclxuIl19
440
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWMsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTW5ELElBQUksV0FBVyxHQUFHO0lBQ2hCLElBQUksRUFBRTtRQUNKLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQztRQUM1RSxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUM7UUFDNUQsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1FBQ25ELE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFF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QkFPTSxPQUFPO3NCQUFuQixLQUFLO2dCQWFJLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkFFeUMsZ0JBQWdCO3NCQUEvRCxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFFckMsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRGF0ZUJSUGlwZSB9IGZyb20gJy4uLy4uL19waXBlcyc7XHJcblxyXG4vLyBodHRwczovL215bXRoLmdpdGh1Yi5pby92YW5pbGxhanMtZGF0ZXBpY2tlci8jL1xyXG5kZWNsYXJlIHZhciBEYXRlcGlja2VyOiBhbnk7XHJcblxyXG52YXIgdHJhbnNsYXRpb24gPSB7XHJcbiAgcHRCUjoge1xyXG4gICAgZGF5czogW1wiRG9taW5nb1wiLCBcIlNlZ3VuZGFcIiwgXCJUZXLDp2FcIiwgXCJRdWFydGFcIiwgXCJRdWludGFcIiwgXCJTZXh0YVwiLCBcIlPDoWJhZG9cIl0sXHJcbiAgICBkYXlzU2hvcnQ6IFtcIkRvbVwiLCBcIlNlZ1wiLCBcIlRlclwiLCBcIlF1YVwiLCBcIlF1aVwiLCBcIlNleFwiLCBcIlPDoWJcIl0sXHJcbiAgICBkYXlzTWluOiBbXCJEb1wiLCBcIlNlXCIsIFwiVGVcIiwgXCJRdVwiLCBcIlF1XCIsIFwiU2VcIiwgXCJTYVwiXSxcclxuICAgIG1vbnRoczogW1wiSmFuZWlyb1wiLCBcIkZldmVyZWlyb1wiLCBcIk1hcsOnb1wiLCBcIkFicmlsXCIsIFwiTWFpb1wiLCBcIkp1bmhvXCIsIFwiSnVsaG9cIiwgXCJBZ29zdG9cIiwgXCJTZXRlbWJyb1wiLCBcIk91dHVicm9cIiwgXCJOb3ZlbWJyb1wiLCBcIkRlemVtYnJvXCJdLFxyXG4gICAgbW9udGhzU2hvcnQ6IFtcIkphblwiLCBcIkZldlwiLCBcIk1hclwiLCBcIkFiclwiLCBcIk1haVwiLCBcIkp1blwiLCBcIkp1bFwiLCBcIkFnb1wiLCBcIlNldFwiLCBcIk91dFwiLCBcIk5vdlwiLCBcIkRlelwiXSxcclxuICAgIHRvZGF5OiBcIkhvamVcIixcclxuICAgIGNsZWFyOiBcIkxpbXBhclwiLFxyXG4gICAgdGl0bGVGb3JtYXQ6IFwiTU0geVwiLFxyXG4gICAgZm9ybWF0OiBcImRkL21tL3l5eXlcIixcclxuICAgIHdlZWtTdGFydDogMFxyXG4gIH1cclxufTtcclxuXHJcbmNvbnN0IENVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XHJcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVENsb3VkVWlEYXRlcGlja2VyQ29tcG9uZW50KSxcclxuICBtdWx0aTogdHJ1ZVxyXG59O1xyXG5cclxuY29uc3Qgbm9vcCA9ICgpID0+IHtcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGNsb3VkLXVpLWRhdGVwaWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90Y2xvdWQtdWktZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbXHJcbiAgICAnLi90Y2xvdWQtdWktZGF0ZXBpY2tlci5jb21wb25lbnQuc2NzcycsXHJcbiAgICAnLi9kYXRlcGlja2VyL2Nzcy9kYXRlcGlja2VyLm1pbi5jc3MnLFxyXG4gICAgJy4vZGF0ZXBpY2tlci9jc3Mvc3R5bGUuY3NzJyxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW0NVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaURhdGVwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAvLyBtdWx0aXBsZSBwZXJtaXRlIHNlbGVjaW9uYXIgbXVsdGlwbGFzIGRhdGFzXHJcbiAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gbWF4TnVtYmVyT2ZEYXRlcyAtIE1heGltdW0gbnVtYmVyIG9mIGRhdGVzIHVzZXJzIGNhbiBzZWxlY3QuIE5vIGxpbWl0IGlzIGFwcGxpZWQgaWYgMCBpcyBzZXQuXHJcbiAgLy8gRGVwZW5kZSBkZTogbXVsdGlwbGUgY29tbyB0cnVlXHJcbiAgQElucHV0KCkgbWF4TnVtYmVyT2ZEYXRlczogbnVtYmVyID0gMDtcclxuXHJcbiAgLy8gZGF5c09mV2Vla0Rpc2FibGVkIC0gRGlhcyBkYSBzZW1hbmEgZGVzYWJpbGlkYXRvcyA9IDAgcGFyYSBzYWJhZG8gYXTDqSA2IHBhcmEgZG9taW5nb1xyXG4gIEBJbnB1dCgpIGRheXNPZldlZWtEaXNhYmxlZDogbnVtYmVyW10gPSBbXTtcclxuXHJcbiAgLy8gbWluRGF0ZSAtIERhdGEgbWluaW1hIHBhcmEgZXhpYmljYW8gZG8gY2FsZW5kYXJpbyAtIGV4OiAwMS8wMS8yMDIwXHJcbiAgQElucHV0KCkgbWluRGF0ZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8vIG1heERhdGUgLSBEYXRhIG1heGltYSBwYXJhIGV4aWJpY2FvIGRvIGNhbGVuZGFyaW8gLSBleDogMzEvMTIvMjAyMFxyXG4gIEBJbnB1dCgpIG1heERhdGU6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvLyBkYXRlc0Rpc2FibGVkIC0gRGF0YXMgZGVzYWJpbGl0YWRhcyAtIEV4OiBbJzEyLzEwLzIwMjAnLCcyNS8xMi8yMDIwJ11cclxuICBASW5wdXQoKSBkYXRlc0Rpc2FibGVkOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAvLyBtb2RlSW5wdXQgLSBFeGliZSB1bSBpbnB1dCBwYXJhIHF1YW5kbyBjbGljYXIgYWJyaXIgbyBjYWxlbmRhcmlvXHJcbiAgQElucHV0KCkgbW9kZUlucHV0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHVzZUJvcmRlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIGNoaWxkSW5wdXREYXRlVGltZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBzdGFydFZpZXdJbk1pbkRhdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc3RhcnRWaWV3SW5NYXhEYXRlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIG9uQ2hhbmdlIC0gRGlzcGFyYSBhIGRhdGEgc2VsZWNpb25hZGFcclxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueXx1bmRlZmluZWQ+KCk7XHJcblxyXG4gIGRlZmF1bHRfaW5uZXJWYWx1ZTogYW55IHwgdW5kZWZpbmVkO1xyXG4gIGRlZmF1bHRfaW5uZXJWYWx1ZV9jb252ZXJ0aWRhOiBhbnkgfCB1bmRlZmluZWQ7XHJcbiAgZGVmYXVsdF9xdGRfaW5uZXJWYWx1ZTogbnVtYmVyID0gMDtcclxuICBkYXRlX2NoYW5nZWQ6IGFueSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQElucHV0KCkgc2V0IG5nTW9kZWwodjogYW55KXtcclxuXHJcbiAgICBpZiggdiAmJiB2ICE9PSB0aGlzLmlubmVyVmFsdWUgKXtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjsgLy90aGlzLnRvU2V0TWFzayh2KTsgXHJcbiAgICAgIHRoaXMuZGVmYXVsdF9pbm5lclZhbHVlID0gdjtcclxuICAgICAgdGhpcy5kZWZhdWx0X2lubmVyVmFsdWVfY29udmVydGlkYSA9IHRoaXMuY29udmVydERhdGVzKHYpO1xyXG4gICAgICBpZiggdGhpcy5tdWx0aXBsZSApe1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdF9xdGRfaW5uZXJWYWx1ZSA9ICh2KS5sZW5ndGg7XHJcbiAgICAgIH0gICAgICBcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHYpO1xyXG4gICAgfSBcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBuZ01vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnl8dW5kZWZpbmVkPigpO1xyXG5cclxuICBAT3V0cHV0KCkgb25DaGVja0RhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRfZGF0ZXBpY2tlcicsIHtzdGF0aWM6IGZhbHNlfSkgaW5wdXRfZGF0ZXBpY2tlcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBkYXRlcGlja2VyOiBhbnkgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgY29kZTogc3RyaW5nID0gJ3RjbG91ZC11aS1kYXRlcGlja2VyJztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9EYXRlQlJQaXBlOiBEYXRlQlJQaXBlXHJcbiAgKSB7IH1cclxuXHJcbiAgSUQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuSUQgPSB0aGlzLmdlbmVyYXRlSUQoKTtcclxuICAgIERhdGVwaWNrZXIubG9jYWxlcy5wdEJSID0gdHJhbnNsYXRpb24ucHRCUjsgICAgXHJcbiAgICB0aGlzLnN0YXJ0X2RhdGVwaWNrZXIoKTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlSUQoKTogc3RyaW5ne1xyXG4gICAgcmV0dXJuIGB0Y2xvdWQtdWktZGF0ZXBpY2tlci0ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpKX1gO1xyXG4gIH1cclxuXHJcbiAgdG9TZXRNYXNrKHY6IHN0cmluZyl7XHJcbiAgICByZXR1cm4gdGhpcy5fRGF0ZUJSUGlwZS50cmFuc2Zvcm0odik7XHJcbiAgfVxyXG5cclxuICBwYXJzZURhdGVMb2NhbChkYXRlU3RyaW5nOiBhbnksIF9zcGxpdD86IHN0cmluZyl7XHJcbiAgICBpZiggIV9zcGxpdCApeyBfc3BsaXQgPSAnLSc7IH1cclxuICAgIGNvbnN0IFtkYXkgLCBtb250aCwgeWVhcl0gPSBkYXRlU3RyaW5nLnNwbGl0KF9zcGxpdCk7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXkpOyAvLyBTdWJ0cmFpIDEgcG9ycXVlIG9zIG1lc2VzIHPDo28gaW5kZXhhZG9zIGEgcGFydGlyIGRlIDBcclxuICB9XHJcblxyXG4gIGZvcm1hdERhdGVMb2NhbChkYXRlOiBhbnkpe1xyXG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7IC8vIEFkaWNpb25hIDEgcG9ycXVlIG9zIG1lc2VzIHPDo28gaW5kZXhhZG9zIGEgcGFydGlyIGRlIDBcclxuICAgIGNvbnN0IGRheSA9IFN0cmluZyhkYXRlLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIHJldHVybiBgJHtkYXl9LyR7bW9udGh9LyR7IHllYXJ9YDtcclxuICB9XHJcblxyXG4gIGdldF9vcHRpb25zKCl7XHJcbiAgICAvLyBGdW7Dp8OjbyBwYXJhIGZvcm1hdGFyIHVtYSBkYXRhIG5vIGZ1c28gaG9yw6FyaW8gbG9jYWxcclxuICAgIGNvbnN0IGZvcm1hdERhdGVMb2NhbCA9IChkYXRlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgY29uc3QgbW9udGggPSBTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgICAgY29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgICByZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBGdW7Dp8OjbyBwYXJhIGFuYWxpc2FyIHVtYSBkYXRhIG5vIGZ1c28gaG9yw6FyaW8gbG9jYWxcclxuICAgIGNvbnN0IHBhcnNlRGF0ZUxvY2FsID0gKGRhdGVTdHJpbmc6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBbeWVhciwgbW9udGgsIGRheV0gPSBkYXRlU3RyaW5nLnNwbGl0KCctJyk7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IG9wdGlvbnMgPSB7XHJcbiAgICAgIG5leHRBcnJvdzogYDxpIGNsYXNzPVwiZmFzIGZhLWNhcmV0LXJpZ2h0XCI+PC9pPmAsXHJcbiAgICAgIHByZXZBcnJvdzogYDxpIGNsYXNzPVwiZmFzIGZhLWNhcmV0LWxlZnRcIj48L2k+YCxcclxuICAgICAgZm9ybWF0OiAnZGQvbW0veXl5eScsICAgICAgXHJcbiAgICAgIGRheXNPZldlZWtIaWdobGlnaHRlZDogWzAsNl0sXHJcbiAgICAgIGxhbmd1YWdlOiAncHRCUicsXHJcbiAgICAgIGZvcm1hdHRlcjoge1xyXG4gICAgICAgIGRhdGU6IGZvcm1hdERhdGVMb2NhbCxcclxuICAgICAgfSxcclxuICAgICAgcGFyc2VyOiB7XHJcbiAgICAgICAgZGF0ZTogcGFyc2VEYXRlTG9jYWwsXHJcbiAgICAgIH0gICAgIFxyXG4gICAgfSBhcyBhbnk7XHJcblxyXG4gICAgaWYoICh0aGlzLmRheXNPZldlZWtEaXNhYmxlZCkubGVuZ3RoID4gMCApe1xyXG4gICAgICBvcHRpb25zWydkYXlzT2ZXZWVrRGlzYWJsZWQnXSA9IHRoaXMuZGF5c09mV2Vla0Rpc2FibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCAodGhpcy5kYXRlc0Rpc2FibGVkKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIG9wdGlvbnNbJ2RhdGVzRGlzYWJsZWQnXSA9IHRoaXMuZGF0ZXNEaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBpZiggdGhpcy5taW5EYXRlICE9PSAnJyApe1xyXG4gICAgICBvcHRpb25zWydtaW5EYXRlJ10gPSB0aGlzLm1pbkRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIHRoaXMubWF4RGF0ZSAhPT0gJycgKXtcclxuICAgICAgb3B0aW9uc1snbWF4RGF0ZSddID0gdGhpcy5tYXhEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCB0aGlzLm11bHRpcGxlICl7ICBcclxuICAgICAgb3B0aW9uc1snbXVsdGlwbGUnXSA9IHRydWU7ICBcclxuICAgICAgb3B0aW9uc1snYXV0b2hpZGUnXSA9IGZhbHNlOyBcclxuICAgICAgb3B0aW9uc1snbWF4TnVtYmVyT2ZEYXRlcyddID0gdGhpcy5tYXhOdW1iZXJPZkRhdGVzO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIGNsZWFyRGF0ZSgpe1xyXG4gICAgaWYoIHRoaXMuZGF0ZXBpY2tlciApeyB0aGlzLmRhdGVwaWNrZXIuc2V0RGF0ZSh7Y2xlYXI6IHRydWV9KTsgfVxyXG4gIH1cclxuXHJcbiAgc3RhcnRfZGF0ZXBpY2tlcigpe1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7ICAgICBcclxuICAgICAgY29uc3QgaW5wdXRfZGF0ZXBpY2tlciA9IDxhbnk+IHRoaXMuaW5wdXRfZGF0ZXBpY2tlcj8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgaWYoIGlucHV0X2RhdGVwaWNrZXIgKXtcclxuICAgICAgICBpbnB1dF9kYXRlcGlja2VyLnNldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInLCdERC9NTS9ZWVlZJyk7XHJcblxyXG4gICAgICAgIGlmKCAhdGhpcy51c2VCb3JkZXIgKXtcclxuICAgICAgICAgIGlucHV0X2RhdGVwaWNrZXIuc2V0QXR0cmlidXRlKCdzdHlsZScsJ2JvcmRlcjpub25lOyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1heC13aWR0aDogMTA1cHg7IHBhZGRpbmc6IDA7Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlciA9IG5ldyBEYXRlcGlja2VyKCBpbnB1dF9kYXRlcGlja2VyLCB0aGlzLmdldF9vcHRpb25zKCkgKTsgICAgICAgIFxyXG4gICAgICAgIGlmKCB0aGlzLmlubmVyVmFsdWUgJiYgdGhpcy5pbm5lclZhbHVlICE9PSAnJyApe1xyXG4gICAgICAgICAgdGhpcy50b1NldERlZmF1bHREYXRlKHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpbnB1dF9kYXRlcGlja2VyLmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHYgPSAoaW5wdXRfZGF0ZXBpY2tlclsndmFsdWUnXSkgPyBpbnB1dF9kYXRlcGlja2VyWyd2YWx1ZSddIDogJyc7XHJcbiAgICAgICAgICBpbnB1dF9kYXRlcGlja2VyWyd2YWx1ZSddID0gdGhpcy50b1NldE1hc2sodik7XHJcbiAgICAgICAgICBpZiggKGlucHV0X2RhdGVwaWNrZXJbJ3ZhbHVlJ10pLmxlbmd0aCA+PSAxMCApe1xyXG4gICAgICAgICAgICBjb25zdCB2ID0gKGlucHV0X2RhdGVwaWNrZXJbJ3ZhbHVlJ10pLnN1YnN0cmluZygwLCAxMCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcnRfZGF0ZSA9ICh2KS5zcGxpdCgnLycpO1xyXG4gICAgICAgICAgICBpZiggKHBhcnRfZGF0ZSkubGVuZ3RoID09PSAzICl7XHJcblxyXG4gICAgICAgICAgICAgIGxldCBkaWEgPSBwYXJ0X2RhdGVbMF07XHJcbiAgICAgICAgICAgICAgbGV0IG1lcyA9IHBhcnRfZGF0ZVsxXTtcclxuICAgICAgICAgICAgICBsZXQgYW5vID0gcGFydF9kYXRlWzJdO1xyXG5cclxuICAgICAgICAgICAgICBtZXMgPSAoKyhtZXMpIDwgMTAgKSA/IGAwJHsrbWVzfWAgOiBtZXM7ICBcclxuICAgICAgICAgICAgICBkaWEgPSAoKyhkaWEpIDwgMTAgKSA/IGAwJHsrZGlhfWAgOiBkaWE7XHJcblxyXG4gICAgICAgICAgICAgIGNvbnN0IGR0ID0gbmV3IERhdGUoYW5vKyctJyttZXMrJy0nK2RpYSk7XHJcbiAgICAgICAgICAgICAgaWYoIGR0ICl7XHJcbiAgICAgICAgICAgICAgICBpbnB1dF9kYXRlcGlja2VyPy5jaGFuZ2VEYXRlO1xyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5JRCk/LmJsdXIoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgXHJcbiAgICAgICAgaW5wdXRfZGF0ZXBpY2tlci5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2VEYXRlJywgKGV2ZW50OiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgICBpZiggZXZlbnQ/LmRldGFpbD8uZGF0ZSApe1xyXG5cclxuICAgICAgICAgICAgbGV0IHF0ZCA9IChldmVudC5kZXRhaWwuZGF0ZSkubGVuZ3RoOyAgXHJcblxyXG4gICAgICAgICAgICBpZiggdGhpcy5kaXNhYmxlZCApe1xyXG5cclxuICAgICAgICAgICAgICBpZiggIXRoaXMubXVsdGlwbGUgKXtcclxuICAgICAgICAgICAgICAgIGxldCBkdCA9IHRoaXMuZm9ybWF0RGF0ZUxvY2FsKGV2ZW50LmRldGFpbD8uZGF0ZSk7XHJcbiAgICAgICAgICAgICAgICBpZiggdGhpcy5kZWZhdWx0X2lubmVyVmFsdWUgJiYgdGhpcy5kZWZhdWx0X2lubmVyVmFsdWVbMF0gJiYgKCBgJHt0aGlzLmRlZmF1bHRfaW5uZXJWYWx1ZVswXX1gICE9PSBgJHtkdH1gICkgKXtcclxuICAgICAgICAgICAgICAgICAgcXRkID0gMVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlci5zZXREYXRlKCB0aGlzLmRlZmF1bHRfaW5uZXJWYWx1ZV9jb252ZXJ0aWRhLCB7Y2xlYXI6IHRydWUsIHJlbmRlcjogdHJ1ZX0pO1xyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIGlmKCBxdGQgPiB0aGlzLmRlZmF1bHRfcXRkX2lubmVyVmFsdWUgKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZV9jaGFuZ2VkID0gZXZlbnQ/LmRldGFpbC52aWV3RGF0ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlci5zZXRGb2N1c2VkRGF0ZSggdGhpcy5kYXRlX2NoYW5nZWQsIHtyZXNldFZpZXc6IGZhbHNlfSApO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMub25DaGVja0RhdGUuZW1pdCh7XHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmZvcm1hdERhdGVMb2NhbCh0aGlzLmRhdGVfY2hhbmdlZCksIFxyXG4gICAgICAgICAgICAgICAgICBkYXRlOiB0aGlzLmRhdGVfY2hhbmdlZCwgXHJcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9ZWxzZXtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiggdGhpcy5tdWx0aXBsZSApe1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBzbyA9IHRoaXMuZmluZERpZmZlcmVuY2VzKCB0aGlzLmRlZmF1bHRfaW5uZXJWYWx1ZSwgdGhpcy5mb3JtYXRBcnJheURhdGVzKGV2ZW50LmRldGFpbC5kYXRlKSApO1xyXG4gICAgICAgICAgICAgICAgICBpZiggc28gJiYgKHNvKS5sZW5ndGggPiAwICl7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZV9jaGFuZ2VkID0gdGhpcy5wYXJzZURhdGVMb2NhbChzb1swXSwgJy8nKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uQ2hlY2tEYXRlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWUgOnNvWzBdLCBcclxuICAgICAgICAgICAgICAgICAgICAgIGRhdGU6IHRoaXMuZGF0ZV9jaGFuZ2VkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyLnNldEZvY3VzZWREYXRlKCB0aGlzLmRhdGVfY2hhbmdlZCwge3Jlc2V0VmlldzogZmFsc2V9ICk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9ZWxzZXtcclxuXHJcblxyXG4gICAgICAgICAgICAgIHRoaXMudG9TZWxlY3RlZERhdGUoIGV2ZW50LmRldGFpbCApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfSAgICAgIFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgdG9TZXREZWZhdWx0RGF0ZShkYXRlOiBzdHJpbmcgfCBzdHJpbmdbXSl7XHJcbiAgICBcclxuICAgIGlmKCBkYXRlID09PSB1bmRlZmluZWQgfHwgZGF0ZSA9PT0gbnVsbCB8fCBkYXRlID09PSAnJyApe1xyXG4gICAgICB0aGlzLmNsZWFyRGF0ZSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGRhdGVzID0gW10gYXMgc3RyaW5nW107XHJcblxyXG4gICAgaWYoIGRhdGUgJiYgdHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnICl7XHJcbiAgICAgIGlmKCAoZGF0ZSkuaW5jbHVkZXMoJywnKSApe1xyXG4gICAgICAgIGNvbnN0IGRhdGVzID0gKGRhdGUpLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgZGF0ZSA9IGRhdGVzO1xyXG4gICAgICAgIGlmKCAhdGhpcy5tdWx0aXBsZSApe1xyXG4gICAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gZGF0ZSA9IGRhdGVzWzBdO1xyXG4gICAgICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTsgXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmKCBkYXRlICYmIHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJyApe1xyXG4gICAgICAoZGF0ZXMpLnB1c2goIGRhdGUgKTsgXHJcbiAgICB9ZWxzZXtcclxuICAgICAgZGF0ZXMgPSA8QXJyYXk8c3RyaW5nPj4gZGF0ZTtcclxuICAgIH1cclxuICAgIGlmKCB0aGlzLmRhdGVwaWNrZXIgKXtcclxuXHJcbiAgICAgIGlmKCBkYXRlcyAmJiBkYXRlcy5sZW5ndGggPiAwICYmIHRoaXMubXVsdGlwbGUgKXtcclxuICAgICAgICBpZiggdGhpcy5zdGFydFZpZXdJbk1pbkRhdGUgKXsgICAgICAgICAgXHJcbiAgICAgICAgICBkYXRlcyA9IHRoaXMuc29ydERhdGVzRGVzY2VuZGluZyhkYXRlcyk7ICAgICAgICAgIFxyXG4gICAgICAgIH1lbHNlIGlmKHRoaXMuc3RhcnRWaWV3SW5NYXhEYXRlKXtcclxuICAgICAgICAgIGRhdGVzID0gdGhpcy5zb3J0RGF0ZXNBc2NlbmRpbmcoZGF0ZXMpOyBcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kYXRlcGlja2VyLnNldERhdGUoZGF0ZXMpOyAgICAgIFxyXG4gICAgfSBcclxuICB9XHJcblxyXG4gIGNvbnZlcnREYXRlcyhhcnJheURlRGF0YXM6IGFueVtdKSB7XHJcbiAgICBjb25zdCBmb3JtYXREYXRlID0gKGRhdGVTdHJpbmc6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBbZGF5LCBtb250aCwgeWVhcl0gPSBkYXRlU3RyaW5nLnNwbGl0KCcvJyk7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7IFxyXG4gICAgfVxyXG4gICAgaWYoIGFycmF5RGVEYXRhcyAmJiBBcnJheS5pc0FycmF5KGFycmF5RGVEYXRhcykgKXtcclxuICAgICAgY29uc3QgZGF0YXNPcmRlbmFkYXMgPSBhcnJheURlRGF0YXMubWFwKChkYXRhOiBhbnkpID0+ICh7IG9yaWdpbmFsOiBkYXRhLCBjb252ZXJ0aWRhOiBmb3JtYXREYXRlKGRhdGEpIH0pKTtcclxuICAgICAgcmV0dXJuIGRhdGFzT3JkZW5hZGFzLm1hcChpdGVtID0+IGl0ZW0uY29udmVydGlkYSk7IFxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHJldHVybiBbYXJyYXlEZURhdGFzXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNvcnREYXRlc0Rlc2NlbmRpbmcoYXJyYXlEZURhdGFzOiBhbnlbXSkge1xyXG4gICAgY29uc3QgZm9ybWF0RGF0ZSA9IChkYXRlU3RyaW5nOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgW2RheSwgbW9udGgsIHllYXJdID0gZGF0ZVN0cmluZy5zcGxpdCgnLycpO1xyXG4gICAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXkpOyBcclxuICAgIH1cclxuICAgIGNvbnN0IGRhdGFzT3JkZW5hZGFzID0gYXJyYXlEZURhdGFzLm1hcCgoZGF0YTogYW55KSA9PiAoeyBvcmlnaW5hbDogZGF0YSwgY29udmVydGlkYTogZm9ybWF0RGF0ZShkYXRhKSB9KSkuc29ydCgoYTphbnksIGI6IGFueSkgPT4gYi5jb252ZXJ0aWRhIC0gYS5jb252ZXJ0aWRhKTtcclxuICAgIGNvbnN0IGRhdGFzT3JkZW5hZGFzRm9ybWF0YWRhcyA9IGRhdGFzT3JkZW5hZGFzLm1hcChpdGVtID0+IGl0ZW0ub3JpZ2luYWwpOyBcclxuICAgIHJldHVybiBkYXRhc09yZGVuYWRhc0Zvcm1hdGFkYXM7XHJcbiAgfVxyXG4gIFxyXG4gIHNvcnREYXRlc0FzY2VuZGluZyhhcnJheURlRGF0YXM6IGFueVtdKSB7XHJcbiAgICBjb25zdCBmb3JtYXREYXRlID0gKGRhdGVTdHJpbmc6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBbZGF5LCBtb250aCwgeWVhcl0gPSBkYXRlU3RyaW5nLnNwbGl0KCcvJyk7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7IFxyXG4gICAgfVxyXG4gICAgY29uc3QgZGF0YXNPcmRlbmFkYXMgPSBhcnJheURlRGF0YXMubWFwKChkYXRhOiBhbnkpID0+ICh7IG9yaWdpbmFsOiBkYXRhLCBjb252ZXJ0aWRhOiBmb3JtYXREYXRlKGRhdGEpIH0pKS5zb3J0KChhOmFueSwgYjogYW55KSA9PiBhLmNvbnZlcnRpZGEgLSBiLmNvbnZlcnRpZGEpO1xyXG4gICAgY29uc3QgZGF0YXNPcmRlbmFkYXNGb3JtYXRhZGFzID0gZGF0YXNPcmRlbmFkYXMubWFwKGl0ZW0gPT4gaXRlbS5vcmlnaW5hbCk7XHJcbiAgICByZXR1cm4gZGF0YXNPcmRlbmFkYXNGb3JtYXRhZGFzO1xyXG4gIH1cclxuXHJcbiAgdG9TZWxlY3RlZERhdGUoZGV0YWlsOiBhbnkpeyAgICBcclxuICAgIGlmKCBkZXRhaWwuZGF0ZXBpY2tlci5kYXRlcyAmJiAoZGV0YWlsLmRhdGVwaWNrZXIuZGF0ZXMpLmxlbmd0aCA+IDAgKXtcclxuICAgICAgaWYoIHRoaXMubXVsdGlwbGUgKXtcclxuICAgICAgICBsZXQgZGF0ZXMgPSBbXTtcclxuICAgICAgICBmb3IoIGxldCBpID0gMDsgaSA8IChkZXRhaWwuZGF0ZXBpY2tlci5kYXRlcykubGVuZ3RoOyBpKysgKXtcclxuICAgICAgICAgIGNvbnN0IHRpbWVTdGFtcCA9IDxudW1iZXI+IGRldGFpbC5kYXRlcGlja2VyLmRhdGVzW2ldO1xyXG4gICAgICAgICAgKGRhdGVzKS5wdXNoKCB0aGlzLmZvcm1hdF9kYXRlKCB0aW1lU3RhbXAgKSApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSBkYXRlcztcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTsgICAgICAgIFxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBjb25zdCB0aW1lU3RhbXAgPSA8bnVtYmVyPiBkZXRhaWwuZGF0ZXBpY2tlci5kYXRlc1swXTtcclxuICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5mb3JtYXRfZGF0ZSggdGltZVN0YW1wICk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KGRhdGUpO1xyXG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IGRhdGU7XHJcbiAgICAgIH0gICAgICBcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmNsZWFyRGF0ZSgpO1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTtcclxuICAgIH0gXHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5pbm5lclZhbHVlO1xyXG4gICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTsgXHJcbiAgfVxyXG5cclxuICBmb3JtYXRfZGF0ZSh0aW1lU3RhbXA6IG51bWJlcil7XHJcbiAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKHRpbWVTdGFtcCk7XHJcblxyXG4gICAgbGV0IGRpYSA9IGAke2RhdGUuZ2V0RGF0ZSgpfWA7XHJcbiAgICBsZXQgbWVzID0gYCR7ZGF0ZS5nZXRNb250aCgpKzF9YDtcclxuICAgIGxldCBhbm8gPSBgJHtkYXRlLmdldEZ1bGxZZWFyKCl9YDtcclxuXHJcbiAgICBkaWEgPSAoKyhkaWEpIDwgMTAgKSA/IGAwJHsrZGlhfWAgOiBkaWE7XHJcbiAgICBtZXMgPSAoKyhtZXMpIDwgMTAgKSA/IGAwJHsrbWVzfWAgOiBtZXM7IFxyXG5cclxuICAgIGNvbnN0IGRhdGVGb3JtYXQgPSBgJHtkaWF9LyR7bWVzfS8ke2Fub31gO1xyXG4gICAgcmV0dXJuIGRhdGVGb3JtYXQ7XHJcbiAgfVxyXG5cclxuICB0b0NsaWNrSW4oaWQ6IHN0cmluZyl7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpIGFzIGFueTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4geyAgICAgIFxyXG4gICAgICBlbGVtZW50Py5kYXRlcGlja2VyPy5zaG93KCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgZmluZERpZmZlcmVuY2VzKGFycmF5MTogYW55LCBhcnJheTI6IGFueSkge1xyXG4gICAgY29uc3QgY29uanVudG9Db211bSA9IG5ldyBTZXQoWy4uLmFycmF5MSwgLi4uYXJyYXkyXSk7XHJcbiAgICByZXR1cm4gQXJyYXkuZnJvbShjb25qdW50b0NvbXVtKS5maWx0ZXIoaXRlbSA9PiAhKGFycmF5MS5pbmNsdWRlcyhpdGVtKSAmJiBhcnJheTIuaW5jbHVkZXMoaXRlbSkpKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgZm9ybWF0QXJyYXlEYXRlcyhhcnJheV9kYXRlczogYW55KXtcclxuICAgIGxldCBmb3JtYXRlZHMgPSBbXTtcclxuICAgIGlmKCBhcnJheV9kYXRlcyAmJiAoYXJyYXlfZGF0ZXMpLmxlbmd0aCA+IDAgKXtcclxuICAgICAgY29uc3QgZm9ybWF0RGF0ZUxvY2FsID0gKGRhdGU6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgICAgY29uc3QgbW9udGggPSBTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTsgLy8gQWRpY2lvbmEgMSBwb3JxdWUgb3MgbWVzZXMgc8OjbyBpbmRleGFkb3MgYSBwYXJ0aXIgZGUgMFxyXG4gICAgICAgIGNvbnN0IGRheSA9IFN0cmluZyhkYXRlLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgICAgICByZXR1cm4gYCR7ZGF5fS8ke21vbnRofS8ke3llYXJ9YDtcclxuICAgICAgfVxyXG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8IChhcnJheV9kYXRlcykubGVuZ3RoOyBpKysgKXtcclxuICAgICAgICBjb25zdCBkdCA9IGFycmF5X2RhdGVzW2ldO1xyXG4gICAgICAgIChmb3JtYXRlZHMpLnB1c2goIGZvcm1hdERhdGVMb2NhbChkdCkgKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybWF0ZWRzO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgaW5uZXJWYWx1ZTogYW55IHwgdW5kZWZpbmVkO1xyXG4gIC8vUGxhY2Vob2xkZXJzIGZvciB0aGUgY2FsbGJhY2tzIHdoaWNoIGFyZSBsYXRlciBwcm92aWRlc2RcclxuICAvL2J5IHRoZSBDb250cm9sIFZhbHVlIEFjY2Vzc29yXHJcbiAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XHJcbiAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcclxuXHJcbiAgLy9nZXQgYWNjZXNzb3JcclxuICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcclxuICB9O1xyXG5cclxuICAvL3NldCBhY2Nlc3NvciBpbmNsdWRpbmcgY2FsbCB0aGUgb25jaGFuZ2UgY2FsbGJhY2tcclxuICBzZXQgdmFsdWUodjogYW55KSB7XHJcblxyXG4gICAgaWYgKHYgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2OyAvLyB0aGlzLnRvU2V0TWFzayh2KTsgICAgICBcclxuICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHYpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgLy8gdGhpcy5pbm5lclZhbHVlID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL1NldCB0b3VjaGVkIG9uIGJsdXJcclxuICBvbkJsdXIoKSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy50b1NldERlZmF1bHREYXRlKHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS0gSW5wdXQgbW9kZSAtLT5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGVJbnB1dFwiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwidGNsb3VkLXVpLWRhdGVwaWNrZXIgaW5wdXQtdGMtZGF0ZXBpY2tlclwiIFtjbGFzcy5uby1ib3JkZXJdPVwiIXVzZUJvcmRlclwiIFtjbGFzcy5jaGlsZC1pbnB1dC1kYXRlLXRpbWVdPVwiY2hpbGRJbnB1dERhdGVUaW1lXCIgPlxyXG4gICAgPHRhYmxlIGNsYXNzPVwidGFibGUtYm94LWlucHV0XCI+XHJcbiAgICAgIDx0cj5cclxuICAgICAgICA8dGQgY2xhc3M9XCJ0ZC1pY29uXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsaW1pdGVyLXRpbWUtaWNvblwiIChjbGljayk9XCJ0b0NsaWNrSW4oSUQpXCIgPjxpIGNsYXNzPVwiZmFzIGZhLWNhbGVuZGFyLWFsdFwiPjwvaT48L2Rpdj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICAgIDx0ZCBjbGFzcz1cInRkLWRhdGVcIj5cclxuICAgICAgICAgIDxpbnB1dCAjaW5wdXRfZGF0ZXBpY2tlciB0eXBlPVwidGV4dFwiIG5hbWU9XCJ7e0lEfX1cIiBpZD1cInt7SUR9fVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW3RpdGxlXT1cImlubmVyVmFsdWVcIiA+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC90cj5cclxuICAgIDwvdGFibGU+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPCEtLSBJbmxpbmUgbW9kZSAtLT5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtb2RlSW5wdXRcIj4gIFxyXG4gIDxkaXYgY2xhc3M9XCJ0Y2xvdWQtdWktZGF0ZXBpY2tlciB0Y2xvdWQtdWktZGF0ZXBpY2tlci1zZWNvbmRcIiAjaW5wdXRfZGF0ZXBpY2tlciBpZD1cInt7SUR9fVwiIHBhdHRlcm49XCIvXlxcZHsyfVxcL1xcZHsyfVxcL1xcZHs0fSQvXCIgW3RpdGxlXT1cImlubmVyVmFsdWVcIj48L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48IS0tIEVYIGRlIHVzbyBcclxuICA8dGMtZGF0ZXBpY2tlciBcclxuICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXHJcbiAgICBbZGF5c09mV2Vla0Rpc2FibGVkXT1cIlswLDZdXCJcclxuICAgIFttaW5EYXRlXT1cIicxOC8xMS8yMDIxJ1wiXHJcbiAgICBbbWF4RGF0ZV09XCInMTgvMTIvMjAyMydcIlxyXG4gICAgW2RhdGVzRGlzYWJsZWRdPVwiWycxMi8xMC8yMDIyJywnMjUvMTIvMjAyMiddXCJcclxuICAgIFttb2RlSW5wdXRdPVwiZmFsc2VcIlxyXG4gICAgKG9uQ2hhbmdlKT1cIigkZXZlbnQpXCJcclxuICAgIChvbkNoZWNrRGF0ZSk9XCJvbkNoZWNrRGF0ZSgkZXZlbnQpXCJcclxuICAgIFsobmdNb2RlbCldPVwiZGF0ZVZhbHVlXCIgPlxyXG4gIDwvdGMtZGF0ZXBpY2tlcj5cclxuICBcclxuICAvLyBtdWx0aXBsZSA9IGZhbHNlXHJcbiAgLy8gZGF0ZVZhbHVlIC0gc3RyaW5nIC0gcG9kZSBzZXI6IDEyLzEyLzIwMjIgXHJcblxyXG4gIC8vIG11bHRpcGxlID0gdHJ1ZVxyXG4gIC8vIGRhdGVWYWx1ZSAtIHN0cmluZyAtIHBvZGUgc2VyOiAxMS8xMi8yMDIyLDEyLzEyLzIwMjIgLi4uIFxyXG5cclxuICA8cHJlPmRhdGE6IHt7IGRhdGVWYWx1ZSB9fTwvcHJlPlxyXG4tLT5cclxuIl19
@@ -4,15 +4,15 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
4
  import { TCloudUiDatepickerComponent } from './tcloud-ui-datepicker.component';
5
5
  import * as i0 from "@angular/core";
6
6
  export class TCloudUiDatepickerModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TCloudUiDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: TCloudUiDatepickerModule, declarations: [TCloudUiDatepickerComponent], imports: [CommonModule,
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TCloudUiDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: TCloudUiDatepickerModule, declarations: [TCloudUiDatepickerComponent], imports: [CommonModule,
9
9
  FormsModule,
10
10
  ReactiveFormsModule], exports: [TCloudUiDatepickerComponent] }); }
11
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TCloudUiDatepickerModule, imports: [CommonModule,
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TCloudUiDatepickerModule, imports: [CommonModule,
12
12
  FormsModule,
13
13
  ReactiveFormsModule] }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TCloudUiDatepickerModule, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TCloudUiDatepickerModule, decorators: [{
16
16
  type: NgModule,
17
17
  args: [{
18
18
  declarations: [
@@ -29,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
29
29
  schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA]
30
30
  }]
31
31
  }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFrQi9FLE1BQU0sT0FBTyx3QkFBd0I7K0dBQXhCLHdCQUF3QjtnSEFBeEIsd0JBQXdCLGlCQVpqQywyQkFBMkIsYUFNM0IsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUIsYUFMbkIsMkJBQTJCO2dIQVNsQix3QkFBd0IsWUFOakMsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7OzRGQUlWLHdCQUF3QjtrQkFkcEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFLENBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUM7aUJBQ3JEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRDbG91ZFVpRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50JztcclxuXHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRDbG91ZFVpRGF0ZXBpY2tlckNvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgVENsb3VkVWlEYXRlcGlja2VyQ29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcclxuICBdLFxyXG4gIHNjaGVtYXM6IFsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpRGF0ZXBpY2tlck1vZHVsZSB7IH1cclxuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFrQi9FLE1BQU0sT0FBTyx3QkFBd0I7OEdBQXhCLHdCQUF3QjsrR0FBeEIsd0JBQXdCLGlCQVpqQywyQkFBMkIsYUFNM0IsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUIsYUFMbkIsMkJBQTJCOytHQVNsQix3QkFBd0IsWUFOakMsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7OzJGQUlWLHdCQUF3QjtrQkFkcEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFLENBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUM7aUJBQ3JEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRDbG91ZFVpRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50JztcclxuXHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRDbG91ZFVpRGF0ZXBpY2tlckNvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgVENsb3VkVWlEYXRlcGlja2VyQ29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcclxuICBdLFxyXG4gIHNjaGVtYXM6IFsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpRGF0ZXBpY2tlck1vZHVsZSB7IH1cclxuIl19
@@ -293,10 +293,10 @@ export class TCloudUiDatepickerTimeComponent {
293
293
  registerOnTouched(fn) {
294
294
  this.onTouchedCallback = fn;
295
295
  }
296
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TCloudUiDatepickerTimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
297
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: TCloudUiDatepickerTimeComponent, selector: "tcloud-ui-datepicker-time", inputs: { ngModel: "ngModel", minDate: "minDate", maxDate: "maxDate", useOptionsDateTime: "useOptionsDateTime" }, outputs: { ngModelChange: "ngModelChange", onChange: "onChange", eventChange: "eventChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "datepickertime", first: true, predicate: ["_datepickertime"], descendants: true }], ngImport: i0, template: "<div class=\"tcloud-ui-datepicker-time\">\r\n <input type=\"hidden\" value=\"{{ innerValue }}\" #_datepickertime >\r\n <form #_formulario=\"ngForm\">\r\n <div class=\"input-control-time\">\r\n <div class=\"form-control-time\">\r\n\r\n <table style=\"width: 100%;\">\r\n <tr>\r\n <td>\r\n\r\n <div class=\"input-options-date\">\r\n <table class=\"form-time\">\r\n <tr>\r\n <!-- <td class=\"area-icon\"><div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div></td> -->\r\n <td class=\"area-input-date\">\r\n <ng-container *ngIf=\"show_date_picker\">\r\n <tcloud-ui-datepicker [minDate]=\"minDate\" [maxDate]=\"maxDate\" #_tclouddatepickertime [childInputDateTime]=\"true\" [modeInput]=\"true\" name=\"date\" [useBorder]=\"false\" [(ngModel)]=\"DD_MM_YYYY\" (onChange)=\"toSetDate($event)\" ></tcloud-ui-datepicker>\r\n </ng-container>\r\n </td>\r\n \r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\"></div></td>\r\n <td class=\"area-input-hour\">\r\n <!--<input type=\"text\" placeholder=\"HH\" (keyup)=\"toSetTime()\" [(ngModel)]=\"HH\" maxlength=\"2\" name=\"hh\" pattern=\"[0][0-9]|[1][0-9]|2[0-3]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"HH\" name=\"hh\">\r\n <ng-container *ngFor=\"let hh of option_HH\">\r\n <option [ngValue]=\"hh\">{{ hh }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\">:</div></td>\r\n <td class=\"area-input-minute\">\r\n <!--<input type=\"text\" placeholder=\"MM\" (keyup)=\"toSetTime()\" [(ngModel)]=\"MM\" maxlength=\"2\" name=\"mm\" pattern=\"[012345][0-9]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"MM\" name=\"mm\">\r\n <ng-container *ngFor=\"let mm of option_MM\">\r\n <option [value]=\"mm\">{{ mm }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-clean\"></td>\r\n </tr>\r\n </table>\r\n\r\n <div class=\"description-options-date\" *ngIf=\"value_options_date_time !== ''\">\r\n <strong>{{ description_options_date_time }}</strong>\r\n\r\n <!-- <div class=\"area-action-date-time-selected\">\r\n <button class=\"btn-icon\" type=\"button\" (click)=\"closedTimeDescription()\" >\r\n <i class=\"fas fa-times\"></i>\r\n </button> \r\n </div> -->\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n </td>\r\n <td *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0\" style=\"width: 20px\">\r\n <button type=\"button\" class=\"icon-short-time\" (click)=\"open_options_date_time = !open_options_date_time\" [title]=\"description_options_date_time\" >\r\n <i *ngIf=\"!open_options_date_time\" class=\"fas fa-caret-down\"></i>\r\n <i *ngIf=\"open_options_date_time\" class=\"fas fa-caret-up\"></i>\r\n </button>\r\n\r\n <ng-container *ngIf=\"value_options_date_time !== ''\">\r\n <button class=\"btn-icon-close\" type=\"button\" (click)=\"closedTimeDescription()\" >\r\n <i class=\"fas fa-times\"></i>\r\n </button> \r\n </ng-container>\r\n\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0 && open_options_date_time\">\r\n <td colspan=\"2\">\r\n <tcloud-ui-data-list \r\n name=\"value_options_date_time\"\r\n [showInput]=\"false\" \r\n [search]=\"false\" \r\n [open]=\"true\" \r\n [listItems]=\"options_date_time\" \r\n (onClosed)=\"onClosedOptionsDateTime()\"\r\n [ngModel]=\"value_options_date_time\"\r\n (ngModelChange)=\"onChangeOptionsDateTime($event)\"\r\n >\r\n </tcloud-ui-data-list>\r\n\r\n \r\n\r\n\r\n \r\n </td>\r\n </tr>\r\n </table>\r\n\r\n \r\n </div>\r\n </div>\r\n </form>\r\n</div>", styles: ["@charset \"UTF-8\";.input-control-time{background-color:#fff;border:1px solid #ccc;border-radius:3px;width:100%;height:40px}.form-control-time{max-width:220px;border:none}.form-control-time input{text-align:center}.form-time{width:100%}.form-time td:first-child{overflow:hidden}.delimiter-time{width:100%;text-align:center}.delimiter-time-icon{border:none;height:35px;width:10px;padding:4px;font-size:17px;text-align:center;opacity:.6}.area-icon{width:25px}.area-input-date{width:100px}.area-delimiter{width:2px;text-align:center}.area-input-hour,.area-input-minute{text-align:center;width:28px}.area-input-hour input,.area-input-minute input{height:35px;width:28px;text-align:center;color:#999;font-weight:600;font-style:italic}.area-input-hour input:focus,.area-input-minute input:focus{outline:none}.area-clean{width:12px}input,.datepicker-input{border:none!important}.select-time-date{border:none;background-color:transparent;width:40px;height:35px;padding:0;text-align:center;font-size:13px;color:#777;position:relative;top:-2px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.select-time-date:focus{box-shadow:0 0;border:0 none;outline:0}.btn-icon-close{border:none;background-color:#fff;cursor:pointer;padding:0;color:#aaa;width:17px;position:relative;top:-20px;z-index:1}.btn-icon-close:hover{color:#c43a3a!important}.icon-short-time{border:none;background:none;cursor:pointer;font-size:15px;color:#8a8a8a}.input-options-date{position:relative}.input-options-date .description-options-date{position:absolute;left:0;top:0;padding:5px 10px;background-color:#fff;width:100%;height:34px;overflow:hidden}.input-options-date .description-options-date strong{font-size:14px;font-weight:400;padding-left:5px}.input-options-date .area-action-date-time-selected{width:20px;display:block;float:right;text-align:right;position:relative;top:-2px;left:30px;z-index:1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.TCloudUiDatepickerComponent, selector: "tcloud-ui-datepicker", inputs: ["multiple", "maxNumberOfDates", "daysOfWeekDisabled", "minDate", "maxDate", "datesDisabled", "modeInput", "useBorder", "childInputDateTime", "startViewInMinDate", "startViewInMaxDate", "disabled", "ngModel", "code"], outputs: ["onChange", "ngModelChange", "onCheckDate"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.TCloudUiDataListComponent, selector: "tcloud-ui-data-list", inputs: ["placeholder", "disabled", "loading", "showInput", "search", "listItems", "open", "border", "ngModel"], outputs: ["onInputChange", "onChange", "onOpened", "onClosed", "ngModelChange"] }] }); }
296
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TCloudUiDatepickerTimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
297
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: TCloudUiDatepickerTimeComponent, selector: "tcloud-ui-datepicker-time", inputs: { ngModel: "ngModel", minDate: "minDate", maxDate: "maxDate", useOptionsDateTime: "useOptionsDateTime" }, outputs: { ngModelChange: "ngModelChange", onChange: "onChange", eventChange: "eventChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "datepickertime", first: true, predicate: ["_datepickertime"], descendants: true }], ngImport: i0, template: "<div class=\"tcloud-ui-datepicker-time\">\r\n <input type=\"hidden\" value=\"{{ innerValue }}\" #_datepickertime >\r\n <form #_formulario=\"ngForm\">\r\n <div class=\"input-control-time\">\r\n <div class=\"form-control-time\">\r\n\r\n <table style=\"width: 100%;\">\r\n <tr>\r\n <td>\r\n\r\n <div class=\"input-options-date\">\r\n <table class=\"form-time\">\r\n <tr>\r\n <!-- <td class=\"area-icon\"><div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div></td> -->\r\n <td class=\"area-input-date\">\r\n <ng-container *ngIf=\"show_date_picker\">\r\n <tcloud-ui-datepicker [minDate]=\"minDate\" [maxDate]=\"maxDate\" #_tclouddatepickertime [childInputDateTime]=\"true\" [modeInput]=\"true\" name=\"date\" [useBorder]=\"false\" [(ngModel)]=\"DD_MM_YYYY\" (onChange)=\"toSetDate($event)\" ></tcloud-ui-datepicker>\r\n </ng-container>\r\n </td>\r\n \r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\"></div></td>\r\n <td class=\"area-input-hour\">\r\n <!--<input type=\"text\" placeholder=\"HH\" (keyup)=\"toSetTime()\" [(ngModel)]=\"HH\" maxlength=\"2\" name=\"hh\" pattern=\"[0][0-9]|[1][0-9]|2[0-3]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"HH\" name=\"hh\">\r\n <ng-container *ngFor=\"let hh of option_HH\">\r\n <option [ngValue]=\"hh\">{{ hh }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\">:</div></td>\r\n <td class=\"area-input-minute\">\r\n <!--<input type=\"text\" placeholder=\"MM\" (keyup)=\"toSetTime()\" [(ngModel)]=\"MM\" maxlength=\"2\" name=\"mm\" pattern=\"[012345][0-9]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"MM\" name=\"mm\">\r\n <ng-container *ngFor=\"let mm of option_MM\">\r\n <option [value]=\"mm\">{{ mm }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-clean\"></td>\r\n </tr>\r\n </table>\r\n\r\n <div class=\"description-options-date\" *ngIf=\"value_options_date_time !== ''\">\r\n <strong>{{ description_options_date_time }}</strong>\r\n\r\n <!-- <div class=\"area-action-date-time-selected\">\r\n <button class=\"btn-icon\" type=\"button\" (click)=\"closedTimeDescription()\" >\r\n <i class=\"fas fa-times\"></i>\r\n </button> \r\n </div> -->\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n </td>\r\n <td *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0\" style=\"width: 20px\">\r\n <button type=\"button\" class=\"icon-short-time\" (click)=\"open_options_date_time = !open_options_date_time\" [title]=\"description_options_date_time\" >\r\n <i *ngIf=\"!open_options_date_time\" class=\"fas fa-caret-down\"></i>\r\n <i *ngIf=\"open_options_date_time\" class=\"fas fa-caret-up\"></i>\r\n </button>\r\n\r\n <ng-container *ngIf=\"value_options_date_time !== ''\">\r\n <button class=\"btn-icon-close\" type=\"button\" (click)=\"closedTimeDescription()\" >\r\n <i class=\"fas fa-times\"></i>\r\n </button> \r\n </ng-container>\r\n\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0 && open_options_date_time\">\r\n <td colspan=\"2\">\r\n <tcloud-ui-data-list \r\n name=\"value_options_date_time\"\r\n [showInput]=\"false\" \r\n [search]=\"false\" \r\n [open]=\"true\" \r\n [listItems]=\"options_date_time\" \r\n (onClosed)=\"onClosedOptionsDateTime()\"\r\n [ngModel]=\"value_options_date_time\"\r\n (ngModelChange)=\"onChangeOptionsDateTime($event)\"\r\n >\r\n </tcloud-ui-data-list>\r\n\r\n \r\n\r\n\r\n \r\n </td>\r\n </tr>\r\n </table>\r\n\r\n \r\n </div>\r\n </div>\r\n </form>\r\n</div>", styles: ["@charset \"UTF-8\";.input-control-time{background-color:#fff;border:1px solid #ccc;border-radius:3px;width:100%;height:40px}.form-control-time{max-width:220px;border:none}.form-control-time input{text-align:center}.form-time{width:100%}.form-time td:first-child{overflow:hidden}.delimiter-time{width:100%;text-align:center}.delimiter-time-icon{border:none;height:35px;width:10px;padding:4px;font-size:17px;text-align:center;opacity:.6}.area-icon{width:25px}.area-input-date{width:100px}.area-delimiter{width:2px;text-align:center}.area-input-hour,.area-input-minute{text-align:center;width:28px}.area-input-hour input,.area-input-minute input{height:35px;width:28px;text-align:center;color:#999;font-weight:600;font-style:italic}.area-input-hour input:focus,.area-input-minute input:focus{outline:none}.area-clean{width:12px}input,.datepicker-input{border:none!important}.select-time-date{border:none;background-color:transparent;width:40px;height:35px;padding:0;text-align:center;font-size:13px;color:#777;position:relative;top:-2px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.select-time-date:focus{box-shadow:0 0;border:0 none;outline:0}.btn-icon-close{border:none;background-color:#fff;cursor:pointer;padding:0;color:#aaa;width:17px;position:relative;top:-20px;z-index:1}.btn-icon-close:hover{color:#c43a3a!important}.icon-short-time{border:none;background:none;cursor:pointer;font-size:15px;color:#8a8a8a}.input-options-date{position:relative}.input-options-date .description-options-date{position:absolute;left:0;top:0;padding:5px 10px;background-color:#fff;width:100%;height:34px;overflow:hidden}.input-options-date .description-options-date strong{font-size:14px;font-weight:400;padding-left:5px}.input-options-date .area-action-date-time-selected{width:20px;display:block;float:right;text-align:right;position:relative;top:-2px;left:30px;z-index:1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.TCloudUiDatepickerComponent, selector: "tcloud-ui-datepicker", inputs: ["multiple", "maxNumberOfDates", "daysOfWeekDisabled", "minDate", "maxDate", "datesDisabled", "modeInput", "useBorder", "childInputDateTime", "startViewInMinDate", "startViewInMaxDate", "disabled", "ngModel", "code"], outputs: ["onChange", "ngModelChange", "onCheckDate"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.TCloudUiDataListComponent, selector: "tcloud-ui-data-list", inputs: ["placeholder", "disabled", "loading", "showInput", "search", "listItems", "open", "border", "ngModel"], outputs: ["onInputChange", "onChange", "onOpened", "onClosed", "ngModelChange"] }] }); }
298
298
  }
299
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TCloudUiDatepickerTimeComponent, decorators: [{
299
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TCloudUiDatepickerTimeComponent, decorators: [{
300
300
  type: Component,
301
301
  args: [{ selector: 'tcloud-ui-datepicker-time', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], template: "<div class=\"tcloud-ui-datepicker-time\">\r\n <input type=\"hidden\" value=\"{{ innerValue }}\" #_datepickertime >\r\n <form #_formulario=\"ngForm\">\r\n <div class=\"input-control-time\">\r\n <div class=\"form-control-time\">\r\n\r\n <table style=\"width: 100%;\">\r\n <tr>\r\n <td>\r\n\r\n <div class=\"input-options-date\">\r\n <table class=\"form-time\">\r\n <tr>\r\n <!-- <td class=\"area-icon\"><div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div></td> -->\r\n <td class=\"area-input-date\">\r\n <ng-container *ngIf=\"show_date_picker\">\r\n <tcloud-ui-datepicker [minDate]=\"minDate\" [maxDate]=\"maxDate\" #_tclouddatepickertime [childInputDateTime]=\"true\" [modeInput]=\"true\" name=\"date\" [useBorder]=\"false\" [(ngModel)]=\"DD_MM_YYYY\" (onChange)=\"toSetDate($event)\" ></tcloud-ui-datepicker>\r\n </ng-container>\r\n </td>\r\n \r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\"></div></td>\r\n <td class=\"area-input-hour\">\r\n <!--<input type=\"text\" placeholder=\"HH\" (keyup)=\"toSetTime()\" [(ngModel)]=\"HH\" maxlength=\"2\" name=\"hh\" pattern=\"[0][0-9]|[1][0-9]|2[0-3]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"HH\" name=\"hh\">\r\n <ng-container *ngFor=\"let hh of option_HH\">\r\n <option [ngValue]=\"hh\">{{ hh }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\">:</div></td>\r\n <td class=\"area-input-minute\">\r\n <!--<input type=\"text\" placeholder=\"MM\" (keyup)=\"toSetTime()\" [(ngModel)]=\"MM\" maxlength=\"2\" name=\"mm\" pattern=\"[012345][0-9]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"MM\" name=\"mm\">\r\n <ng-container *ngFor=\"let mm of option_MM\">\r\n <option [value]=\"mm\">{{ mm }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-clean\"></td>\r\n </tr>\r\n </table>\r\n\r\n <div class=\"description-options-date\" *ngIf=\"value_options_date_time !== ''\">\r\n <strong>{{ description_options_date_time }}</strong>\r\n\r\n <!-- <div class=\"area-action-date-time-selected\">\r\n <button class=\"btn-icon\" type=\"button\" (click)=\"closedTimeDescription()\" >\r\n <i class=\"fas fa-times\"></i>\r\n </button> \r\n </div> -->\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n </td>\r\n <td *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0\" style=\"width: 20px\">\r\n <button type=\"button\" class=\"icon-short-time\" (click)=\"open_options_date_time = !open_options_date_time\" [title]=\"description_options_date_time\" >\r\n <i *ngIf=\"!open_options_date_time\" class=\"fas fa-caret-down\"></i>\r\n <i *ngIf=\"open_options_date_time\" class=\"fas fa-caret-up\"></i>\r\n </button>\r\n\r\n <ng-container *ngIf=\"value_options_date_time !== ''\">\r\n <button class=\"btn-icon-close\" type=\"button\" (click)=\"closedTimeDescription()\" >\r\n <i class=\"fas fa-times\"></i>\r\n </button> \r\n </ng-container>\r\n\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0 && open_options_date_time\">\r\n <td colspan=\"2\">\r\n <tcloud-ui-data-list \r\n name=\"value_options_date_time\"\r\n [showInput]=\"false\" \r\n [search]=\"false\" \r\n [open]=\"true\" \r\n [listItems]=\"options_date_time\" \r\n (onClosed)=\"onClosedOptionsDateTime()\"\r\n [ngModel]=\"value_options_date_time\"\r\n (ngModelChange)=\"onChangeOptionsDateTime($event)\"\r\n >\r\n </tcloud-ui-data-list>\r\n\r\n \r\n\r\n\r\n \r\n </td>\r\n </tr>\r\n </table>\r\n\r\n \r\n </div>\r\n </div>\r\n </form>\r\n</div>", styles: ["@charset \"UTF-8\";.input-control-time{background-color:#fff;border:1px solid #ccc;border-radius:3px;width:100%;height:40px}.form-control-time{max-width:220px;border:none}.form-control-time input{text-align:center}.form-time{width:100%}.form-time td:first-child{overflow:hidden}.delimiter-time{width:100%;text-align:center}.delimiter-time-icon{border:none;height:35px;width:10px;padding:4px;font-size:17px;text-align:center;opacity:.6}.area-icon{width:25px}.area-input-date{width:100px}.area-delimiter{width:2px;text-align:center}.area-input-hour,.area-input-minute{text-align:center;width:28px}.area-input-hour input,.area-input-minute input{height:35px;width:28px;text-align:center;color:#999;font-weight:600;font-style:italic}.area-input-hour input:focus,.area-input-minute input:focus{outline:none}.area-clean{width:12px}input,.datepicker-input{border:none!important}.select-time-date{border:none;background-color:transparent;width:40px;height:35px;padding:0;text-align:center;font-size:13px;color:#777;position:relative;top:-2px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.select-time-date:focus{box-shadow:0 0;border:0 none;outline:0}.btn-icon-close{border:none;background-color:#fff;cursor:pointer;padding:0;color:#aaa;width:17px;position:relative;top:-20px;z-index:1}.btn-icon-close:hover{color:#c43a3a!important}.icon-short-time{border:none;background:none;cursor:pointer;font-size:15px;color:#8a8a8a}.input-options-date{position:relative}.input-options-date .description-options-date{position:absolute;left:0;top:0;padding:5px 10px;background-color:#fff;width:100%;height:34px;overflow:hidden}.input-options-date .description-options-date strong{font-size:14px;font-weight:400;padding-left:5px}.input-options-date .area-action-date-time-selected{width:20px;display:block;float:right;text-align:right;position:relative;top:-2px;left:30px;z-index:1}\n"] }]
302
302
  }], propDecorators: { ngModel: [{
@@ -317,4 +317,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
317
317
  type: ViewChild,
318
318
  args: ['_datepickertime', { static: false }]
319
319
  }] } });
320
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBR25ELE1BQU0sbUNBQW1DLEdBQVE7SUFDL0MsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLCtCQUErQixDQUFDO0lBQzlELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtBQUNsQixDQUFDLENBQUM7QUFRRixNQUFNLE9BQU8sK0JBQStCO0lBTjVDO1FBUUUscUJBQWdCLEdBQVksSUFBSSxDQUFDO1FBUXZCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNwQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFaEQscUVBQXFFO1FBQzVELFlBQU8sR0FBVyxFQUFFLENBQUM7UUFFOUIscUVBQXFFO1FBQzVELFlBQU8s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UTtzQkFBakIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUdFLE9BQU87c0JBQWYsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQVd5QyxjQUFjO3NCQUE1RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgT25Jbml0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSVNlbGVjdE9wdGlvbnMgfSBmcm9tICcuLi90Y2xvdWQtdWktZGF0YS1saXN0L3RjbG91ZC11aS1kYXRhLWxpc3QnO1xyXG5cclxuY29uc3QgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUQ2xvdWRVaURhdGVwaWNrZXJUaW1lQ29tcG9uZW50KSxcclxuICBtdWx0aTogdHJ1ZVxyXG59O1xyXG5cclxuY29uc3Qgbm9vcCA9ICgpID0+IHtcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpRGF0ZXBpY2tlclRpbWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBzaG93X2RhdGVfcGlja2VyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHJpdmF0ZSBfbmdNb2RlbDogYW55IHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHNldCBuZ01vZGVsKHY6IGFueSl7XHJcbiAgICBpZiggdiAmJiB2ICE9PSB0aGlzLmlubmVyVmFsdWUgKXtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjsgXHJcbiAgICB9IFxyXG4gIH1cclxuICBAT3V0cHV0KCkgbmdNb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuXHJcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG4gIEBPdXRwdXQoKSBldmVudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAvLyBtaW5EYXRlIC0gRGF0YSBtaW5pbWEgcGFyYSBleGliaWNhbyBkbyBjYWxlbmRhcmlvIC0gZXg6IDAxLzAxLzIwMjBcclxuICBASW5wdXQoKSBtaW5EYXRlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLy8gbWF4RGF0ZSAtIERhdGEgbWF4aW1hIHBhcmEgZXhpYmljYW8gZG8gY2FsZW5kYXJpbyAtIGV4OiAzMS8xMi8yMDIwXHJcbiAgQElucHV0KCkgbWF4RGF0ZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIHVzZU9wdGlvbnNEYXRlVGltZSA9IGZhbHNlO1xyXG5cclxuICBERF9NTV9ZWVlZOiBzdHJpbmcgPSAnJztcclxuICBISDogc3RyaW5nID0gJzAwJztcclxuICBNTTogc3RyaW5nID0gJzAwJztcclxuXHJcbiAgSUQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBvcHRpb25fSEg6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xyXG4gIG9wdGlvbl9NTTogc3RyaW5nW10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ19kYXRlcGlja2VydGltZScsIHtzdGF0aWM6IGZhbHNlfSkgZGF0ZXBpY2tlcnRpbWU6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkO1xyXG5cclxuICBvcHRpb25zX2RhdGVfdGltZSA6IElTZWxlY3RPcHRpb25zW10gPSBbXTtcclxuICBvcGVuX29wdGlvbnNfZGF0ZV90aW1lOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGxhc3Rfb3B0aW9uc19kYXRlX3RpbWU6IGFueTtcclxuICBkZXNjcmlwdGlvbl9vcHRpb25zX2RhdGVfdGltZTogYW55ID0gJyc7XHJcbiAgdmFsdWVfb3B0aW9uc19kYXRlX3RpbWU6IGFueSA9ICcnO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcblxyXG4gICAgdGhpcy5zZXRPcHRpb25zRGF0ZVRpbWUoKTtcclxuXHJcbiAgICB0aGlzLklEID0gdGhpcy5nZW5lcmF0ZUlEKCk7XHJcbiAgICB0aGlzLm9wdGlvbl9ISCA9IHRoaXMuZ2V0TGlzdFRJTUUoMjMpO1xyXG4gICAgdGhpcy5vcHRpb25fTU0gPSB0aGlzLmdldExpc3RUSU1FKDU5KTtcclxuICB9XHJcblxyXG4gIHNldE9wdGlvbnNEYXRlVGltZSgpe1xyXG4gICAgdGhpcy5vcHRpb25zX2RhdGVfdGltZSA9IFtcclxuICAgICAge3ZhbHVlOic3LWRheXMnLCBkZXNjcmlwdGlvbjogJzcgZGlhcyd9LFxyXG4gICAgICB7dmFsdWU6JzE1LWRheXMnLCBkZXNjcmlwdGlvbjogJzE1IGRpYXMnfSxcclxuICAgICAge3ZhbHVlOiczMC1kYXlzJywgZGVzY3JpcHRpb246ICczMCBkaWFzJ30sXHJcbiAgICAgIHt2YWx1ZTonY3VycmVudC1tb250aCcsIGRlc2NyaXB0aW9uOiAnTcOqcyBhdHVhbCBhdMOpIGFnb3JhJ30sXHJcbiAgICAgIHt2YWx1ZTonY3VycmVudC15ZWFyJywgZGVzY3JpcHRpb246ICdBbm8gYXR1YWwgYXTDqSBhZ29yYSd9XHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUlEKCk6IHN0cmluZ3tcclxuICAgIHJldHVybiBgdGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS0ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpKX1gO1xyXG4gIH1cclxuXHJcbiAgZ2V0TGlzdFRJTUUodjogbnVtYmVyKXtcclxuICAgIGxldCBtbSA9IFtdO1xyXG4gICAgZm9yKGxldCBpID0gMDsgaSA8PSB2OyBpKysgKXtcclxuICAgICAgaWYoIGkgPCAxMCApe1xyXG4gICAgICAgIChtbSkucHVzaChgMCR7aX1gKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgKG1tKS5wdXNoKGAke2l9YCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtbTtcclxuICB9XHJcblxyXG4gIHRvU2V0RGF0ZShkYXRlOiBzdHJpbmcpeyAgICBcclxuICAgIHRoaXMuc2V0X2RhdGVfYnlfZGF0ZXBpY2tlcihkYXRlKTtcclxuICB9XHJcblxyXG4gIHRvU2V0VGltZSgpe1xyXG4gICAgaWYoIHRoaXMuRERfTU1fWVlZWSAmJiAoKHRoaXMuRERfTU1fWVlZWSkudHJpbSgpKS5sZW5ndGggPT09IDEwKXtcclxuICAgICAgY29uc3QgZGF0ZSA9ICh0aGlzLkREX01NX1lZWVkpLnJlcGxhY2UoLy0vZywgJy8nKTtcclxuICAgICAgbGV0IGRhdGVfcGFydCA9IChkYXRlKS5zcGxpdCgnLycpO1xyXG4gICAgICBsZXQgZGQgPSBkYXRlX3BhcnRbMF07XHJcbiAgICAgIGxldCBtbSA9IGRhdGVfcGFydFsxXTtcclxuICAgICAgbGV0IHl5ID0gZGF0ZV9wYXJ0WzJdO1xyXG4gICAgICBjb25zdCBkYXRldGltZSA9IG5ldyBEYXRlKGAke3l5fS0ke21tfS0ke2RkfWApO1xyXG4gICAgICBpZiggdGhpcy5jaGVja0lzRGF0ZShkYXRldGltZSkgKXtcclxuICAgICAgICB0aGlzLnNldF9kYXRlX2J5X2RhdGVwaWNrZXIoZGF0ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldF9kYXRlX2J5X2RhdGVwaWNrZXIoZGF0ZTogc3RyaW5nKXtcclxuXHJcbiAgICBpZiggZGF0ZSApe1xyXG4gICAgICBkYXRlID0gKGRhdGUpLnJlcGxhY2UoLy0vZywgJy8nKTtcclxuICAgICAgbGV0IGRhdGVfcGFydCA9IChkYXRlKS5zcGxpdCgnLycpO1xyXG4gICAgICBsZXQgZGlhID0gZGF0ZV9wYXJ0WzBdO1xyXG4gICAgICBsZXQgbWVzID0gZGF0ZV9wYXJ0WzFdO1xyXG4gICAgICBsZXQgYW5vID0gZGF0ZV9wYXJ0WzJdO1xyXG5cclxuICAgICAgbGV0IGhoID0gdGhpcy5ISDtcclxuICAgICAgaWYoICFoaCApe1xyXG4gICAgICAgIGhoID0gJzAwJztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgaWYoICggKyhoaCkgPj0gMCAmJiArKGhoKSA8IDI0ICkgKXtcclxuICAgICAgICAgIGhoID0gKCsoaGgpIDwgMTAgKSA/IGAwJHsrKGhoKX1gIDogYCR7KyhoaCl9YDtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGhoID0gJzAwJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBtbSA9IHRoaXMuTU07XHJcbiAgICAgIGlmKCAhbW0gKXtcclxuICAgICAgICBtbSA9ICcwMCc7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGlmKCAoICsobW0pID49IDAgJiYgKyhtbSkgPCA2MCApICl7XHJcbiAgICAgICAgICBtbSA9ICgrKG1tKSA8IDEwICkgPyBgMCR7KyhtbSl9YCA6IGAkeysobW0pfWA7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBtbSA9ICcwMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiggaGggPT09ICcwMCcgKXsgdGhpcy5ISCA9IGhoOyB9XHJcbiAgICAgIGlmKCBtbSA9PT0gJzAwJyApeyB0aGlzLk1NID0gbW07IH1cclxuXHJcbiAgICAgIGNvbnN0IG5vdGF0aW9uID0gJzAwJztcclxuXHJcbiAgICAgIGNvbnN0IHN0cl9kYXRlID0gYCR7YW5vfS0ke21lc30tJHtkaWF9VCR7aGh9OiR7bW19OiR7bm90YXRpb259YDtcclxuICAgICAgY29uc3QgZGF0ZXRpbWUgPSBuZXcgRGF0ZSggc3RyX2RhdGUgKTtcclxuICAgICAgXHJcbiAgICAgIGlmKCB0aGlzLmNoZWNrSXNEYXRlKGRhdGV0aW1lKSApe1xyXG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IGRhdGV0aW1lO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKCd0aGlzLmRhdGVwaWNrZXJ0aW1lPy5uYXRpdmVFbGVtZW50JywgdGhpcy5kYXRlcGlja2VydGltZT8ubmF0aXZlRWxlbWVudCk7XHJcblxyXG4gICAgICAvLyBpZih0aGlzLmRhdGVwaWNrZXJ0aW1lICYmIHRoaXMuZGF0ZXBpY2tlcnRpbWUubmF0aXZlRWxlbWVudCl7XHJcbiAgICAgIC8vICAgY29uc3QgZWxlbSA9IDxhbnk+IHRoaXMuZGF0ZXBpY2tlcnRpbWUubmF0aXZlRWxlbWVudDtcclxuICAgICAgLy8gICBlbGVtLnZhbHVlID0gdGhpcy5pbm5lclZhbHVlO1xyXG4gICAgICAvLyB9XHJcblxyXG4gICAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCggdGhpcy5pbm5lclZhbHVlICk7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCggdGhpcy5pbm5lclZhbHVlICk7XHJcbiAgICAgIHRoaXMuZXZlbnRDaGFuZ2UuZW1pdCggdGhpcy5kYXRlcGlja2VydGltZT8ubmF0aXZlRWxlbWVudCApO1xyXG5cclxuICAgIH1lbHNle1xyXG5cclxuICAgICAgdGhpcy5kZXNjcmlwdGlvbl9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gICAgICB0aGlzLnZhbHVlX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcblxyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KCB0aGlzLmlubmVyVmFsdWUgKTtcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KCB0aGlzLmlubmVyVmFsdWUgKTtcclxuICAgICAgdGhpcy5ldmVudENoYW5nZS5lbWl0KCB0aGlzLmRhdGVwaWNrZXJ0aW1lPy5uYXRpdmVFbGVtZW50ICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGAke3RoaXMubGFzdF9vcHRpb25zX2RhdGVfdGltZX1gICE9PSBgJHt0aGlzLmlubmVyVmFsdWV9YCApe1xyXG4gICAgICAvLyB0aGlzLmRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcbiAgICAgIC8vIHRoaXMudmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAvLyBEaXN0cmlidWlyIG9zIHZhbG9yZXMgZGEgZGF0YSBwb3IgcGVkYcOnb3M6IGRhdGEgLSBob3JhIC0gbWluXHJcbiAgdG9fZGF0ZV9oaF9tbShkOiBEYXRlKXtcclxuICAgIGxldCBkaWEgPSBgJHsoZCkuZ2V0RGF0ZSgpfWA7XHJcbiAgICBkaWEgPSAoKyhkaWEpIDwgMTAgKSA/IGAwJHsrZGlhfWAgOiBkaWE7XHJcbiAgICBsZXQgbWVzID0gYCR7KGQpLmdldE1vbnRoKCkrMX1gO1xyXG4gICAgbWVzID0gKCsobWVzKSA8IDEwICkgPyBgMCR7K21lc31gIDogbWVzOyAgXHJcblxyXG4gICAgbGV0IGFubyA9IGAkeyhkKS5nZXRGdWxsWWVhcigpfWA7XHJcbiAgICBsZXQgaGggID0gYCR7KGQpLmdldEhvdXJzKCl9YDtcclxuICAgIGxldCBtbSAgPSBgJHsoZCkuZ2V0TWludXRlcygpfWA7XHJcblxyXG4gICAgaWYoIGhoICYmICggKyhoaCkgPCAwIHx8ICsoaGgpID4gMjMgKSApeyBoaCA9ICcwMCc7IH1cclxuICAgIGhoID0gKGhoKSA/ICggKCsoaGgpIDwgMTAgKSA/IGAwJHtoaH1gIDogaGggKSA6ICcwMCc7XHJcblxyXG4gICAgaWYoIG1tICYmICggKyhtbSkgPCAwIHx8ICsobW0pID4gNTkgKSApeyBtbSA9ICcwMCc7IH1cclxuICAgIG1tID0gKG1tKSA/ICggKCsobW0pIDwgMTAgKSA/IGAwJHttbX1gIDogbW0gKSA6ICcwMCc7XHJcblxyXG4gICAgdGhpcy5NTSA9IG1tO1xyXG4gICAgdGhpcy5ISCA9IGhoO1xyXG5cclxuICAgIHRoaXMuRERfTU1fWVlZWSA9IGAke2RpYX0vJHttZXN9LyR7YW5vfWA7XHJcbiAgfVxyXG5cclxuICBjaGVja0lzRGF0ZShkOiBhbnkpOiBib29sZWFue1xyXG5cclxuICAgIGlmKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKSA9PT0gXCJbb2JqZWN0IERhdGVdXCIpIHtcclxuICAgICAgaWYoaXNOYU4oZCkpIHsgcmV0dXJuIGZhbHNlOyB9IGVsc2UgeyByZXR1cm4gdHJ1ZTsgfVxyXG4gICAgfSBcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICBjbGVhbigpe1xyXG4gICAgdGhpcy5ERF9NTV9ZWVlZID0gJyc7XHJcbiAgICB0aGlzLkhIID0gJzAwJztcclxuICAgIHRoaXMuTU0gPSAnMDAnO1xyXG4gICAgdGhpcy5kZXNjcmlwdGlvbl9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gICAgdGhpcy52YWx1ZV9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgdG9DbGlja0luKGlkOiBzdHJpbmcpe1xyXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpPy5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgb25DbG9zZWRPcHRpb25zRGF0ZVRpbWUoKXtcclxuICAgIHRoaXMub3Blbl9vcHRpb25zX2RhdGVfdGltZSA9IGZhbHNlXHJcbiAgfVxyXG5cclxuICBcclxuICBvbkNoYW5nZU9wdGlvbnNEYXRlVGltZShldmVudDogYW55KXtcclxuICAgIC8vIHRoaXMuZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICAgIC8vIHRoaXMudmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICAgIHRoaXMuc2hvd19kYXRlX3BpY2tlciA9IGZhbHNlO1xyXG5cclxuICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgbGV0IGZpbHRlcl9kYXRlOiBhbnkgPSB1bmRlZmluZWQ7XHJcbiAgICBpZiggZXZlbnQgPT09ICc3LWRheXMnICl7XHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUoIChuZXcgRGF0ZShub3cpKS5zZXREYXRlKCBub3cuZ2V0RGF0ZSgpIC0gNyApICk7ICBcclxuICAgICAgZmlsdGVyX2RhdGUgPSBuZXcgRGF0ZSggKGZpbHRlcl9kYXRlKS5zZXRTZWNvbmRzKDApICk7ICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGV2ZW50ID09PSAnMTUtZGF5cycgKXtcclxuICAgICAgZmlsdGVyX2RhdGUgPSBuZXcgRGF0ZSggKG5ldyBEYXRlKG5vdykpLnNldERhdGUoIG5vdy5nZXREYXRlKCkgLSAxNSApICk7XHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUoIChmaWx0ZXJfZGF0ZSkuc2V0U2Vjb25kcygwKSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBldmVudCA9PT0gJzMwLWRheXMnICl7XHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUoIChuZXcgRGF0ZShub3cpKS5zZXREYXRlKCBub3cuZ2V0RGF0ZSgpIC0gMzAgKSApO1xyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKCAoZmlsdGVyX2RhdGUpLnNldFNlY29uZHMoMCkgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZXZlbnQgPT09ICdjdXJyZW50LW1vbnRoJyApe1xyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKG5vdy5nZXRGdWxsWWVhcigpLCBub3cuZ2V0TW9udGgoKSwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGV2ZW50ID09PSAnY3VycmVudC15ZWFyJyApe1xyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKG5vdy5nZXRGdWxsWWVhcigpLCAwLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBpZihmaWx0ZXJfZGF0ZSl7ICAgICAgXHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IGZpbHRlcl9kYXRlO1xyXG4gICAgICBpZiggdGhpcy5jaGVja0lzRGF0ZShmaWx0ZXJfZGF0ZSkgKXsgICAgICAgICAgICAgIFxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50b19kYXRlX2hoX21tKGZpbHRlcl9kYXRlKTtcclxuICAgICAgICAgIHRoaXMudG9TZXREYXRlKHRoaXMuRERfTU1fWVlZWSk7ICBcclxuICAgICAgICAgIHRoaXMuc2hvd19kYXRlX3BpY2tlciA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlX29wdGlvbnNfZGF0ZV90aW1lID0gZXZlbnQ7XHJcbiAgICAgICAgICB0aGlzLmxhc3Rfb3B0aW9uc19kYXRlX3RpbWUgPSBmaWx0ZXJfZGF0ZSBhcyBhbnk7XHJcbiAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lID0gdGhpcy5nZXRfZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUoZXZlbnQpO1xyXG4gICAgICAgIH0pOyAgICAgICBcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG5cclxuICBnZXRfZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUodmFsdWU6IHN0cmluZyl7XHJcbiAgICBpZiggdGhpcy5vcHRpb25zX2RhdGVfdGltZSAmJiAodGhpcy5vcHRpb25zX2RhdGVfdGltZSkubGVuZ3RoID4gMCApe1xyXG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLm9wdGlvbnNfZGF0ZV90aW1lKS5sZW5ndGg7IGkrKyApe1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLm9wdGlvbnNfZGF0ZV90aW1lW2ldO1xyXG4gICAgICAgIGlmKCBpdGVtLnZhbHVlID09PSB2YWx1ZSApe1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW0uZGVzY3JpcHRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2xvc2VkVGltZURlc2NyaXB0aW9uKCl7XHJcbiAgICB0aGlzLnZhbHVlX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcbiAgICB0aGlzLmRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7IFxyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICBcclxuICBpbm5lclZhbHVlOiBhbnkgfCB1bmRlZmluZWQ7XHJcbiAgLy9QbGFjZWhvbGRlcnMgZm9yIHRoZSBjYWxsYmFja3Mgd2hpY2ggYXJlIGxhdGVyIHByb3ZpZGVzZFxyXG4gIC8vYnkgdGhlIENvbnRyb2wgVmFsdWUgQWNjZXNzb3JcclxuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcclxuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xyXG5cclxuICAvL2dldCBhY2Nlc3NvclxyXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgICByZXR1cm4gdGhpcy5pbm5lclZhbHVlO1xyXG4gIH07XHJcblxyXG4gIC8vc2V0IGFjY2Vzc29yIGluY2x1ZGluZyBjYWxsIHRoZSBvbmNoYW5nZSBjYWxsYmFja1xyXG4gIHNldCB2YWx1ZSh2OiBhbnkpIHtcclxuICAgIGlmICh2ICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjsgICAgICBcclxuICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9TZXQgdG91Y2hlZCBvbiBibHVyXHJcbiAgb25CbHVyKCkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgdmFsdWUgPSBuZXcgRGF0ZSggYCR7dmFsdWV9YCApO1xyXG4gICAgICB9IGNhdGNoIChlcnJvcikge31cclxuXHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICBpZiggdGhpcy5jaGVja0lzRGF0ZSh2YWx1ZSkgKXtcclxuICAgICAgICB0aGlzLnRvX2RhdGVfaGhfbW0odmFsdWUpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmNsZWFuKClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRjbG91ZC11aS1kYXRlcGlja2VyLXRpbWVcIj5cclxuICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIHZhbHVlPVwie3sgaW5uZXJWYWx1ZSB9fVwiICNfZGF0ZXBpY2tlcnRpbWUgPlxyXG4gIDxmb3JtICNfZm9ybXVsYXJpbz1cIm5nRm9ybVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRyb2wtdGltZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sLXRpbWVcIj5cclxuXHJcbiAgICAgICAgPHRhYmxlIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcbiAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgIDx0ZD5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LW9wdGlvbnMtZGF0ZVwiPlxyXG4gICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cImZvcm0tdGltZVwiPlxyXG4gICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIDx0ZCBjbGFzcz1cImFyZWEtaWNvblwiPjxkaXYgY2xhc3M9XCJkZWxpbWl0ZXItdGltZS1pY29uXCIgKGNsaWNrKT1cInRvQ2xpY2tJbihJRClcIiA+PGkgY2xhc3M9XCJmYXMgZmEtY2FsZW5kYXItYWx0XCI+PC9pPjwvZGl2PjwvdGQ+IC0tPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWlucHV0LWRhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd19kYXRlX3BpY2tlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRjbG91ZC11aS1kYXRlcGlja2VyIFttaW5EYXRlXT1cIm1pbkRhdGVcIiBbbWF4RGF0ZV09XCJtYXhEYXRlXCIgI190Y2xvdWRkYXRlcGlja2VydGltZSBbY2hpbGRJbnB1dERhdGVUaW1lXT1cInRydWVcIiBbbW9kZUlucHV0XT1cInRydWVcIiBuYW1lPVwiZGF0ZVwiIFt1c2VCb3JkZXJdPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cIkREX01NX1lZWVlcIiAob25DaGFuZ2UpPVwidG9TZXREYXRlKCRldmVudClcIiA+PC90Y2xvdWQtdWktZGF0ZXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtZGVsaW1pdGVyXCI+PGRpdiBjbGFzcz1cImRlbGltaXRlci10aW1lXCI+PC9kaXY+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1pbnB1dC1ob3VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLTxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiSEhcIiAoa2V5dXApPVwidG9TZXRUaW1lKClcIiBbKG5nTW9kZWwpXT1cIkhIXCIgbWF4bGVuZ3RoPVwiMlwiIG5hbWU9XCJoaFwiIHBhdHRlcm49XCJbMF1bMC05XXxbMV1bMC05XXwyWzAtM11cIj4tLT5cclxuICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwic2VsZWN0LXRpbWUtZGF0ZVwiIChjaGFuZ2UpPVwidG9TZXRUaW1lKClcIiBbKG5nTW9kZWwpXT1cIkhIXCIgbmFtZT1cImhoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBoaCBvZiBvcHRpb25fSEhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJoaFwiPnt7IGhoIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1kZWxpbWl0ZXJcIj48ZGl2IGNsYXNzPVwiZGVsaW1pdGVyLXRpbWVcIj46PC9kaXY+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1pbnB1dC1taW51dGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJNTVwiIChrZXl1cCk9XCJ0b1NldFRpbWUoKVwiIFsobmdNb2RlbCldPVwiTU1cIiBtYXhsZW5ndGg9XCIyXCIgbmFtZT1cIm1tXCIgcGF0dGVybj1cIlswMTIzNDVdWzAtOV1cIj4tLT5cclxuICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwic2VsZWN0LXRpbWUtZGF0ZVwiIChjaGFuZ2UpPVwidG9TZXRUaW1lKClcIiBbKG5nTW9kZWwpXT1cIk1NXCIgbmFtZT1cIm1tXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtbSBvZiBvcHRpb25fTU1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwibW1cIj57eyBtbSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtY2xlYW5cIj48L3RkPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICA8L3RhYmxlPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb24tb3B0aW9ucy1kYXRlXCIgKm5nSWY9XCJ2YWx1ZV9vcHRpb25zX2RhdGVfdGltZSAhPT0gJydcIj5cclxuICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUgfX08L3N0cm9uZz5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImFyZWEtYWN0aW9uLWRhdGUtdGltZS1zZWxlY3RlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4taWNvblwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xvc2VkVGltZURlc2NyaXB0aW9uKClcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwidXNlT3B0aW9uc0RhdGVUaW1lICYmIG9wdGlvbnNfZGF0ZV90aW1lICYmIChvcHRpb25zX2RhdGVfdGltZSkubGVuZ3RoID4gMFwiIHN0eWxlPVwid2lkdGg6IDIwcHhcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImljb24tc2hvcnQtdGltZVwiIChjbGljayk9XCJvcGVuX29wdGlvbnNfZGF0ZV90aW1lID0gIW9wZW5fb3B0aW9uc19kYXRlX3RpbWVcIiBbdGl0bGVdPVwiZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWVcIiA+XHJcbiAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFvcGVuX29wdGlvbnNfZGF0ZV90aW1lXCIgY2xhc3M9XCJmYXMgZmEtY2FyZXQtZG93blwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwib3Blbl9vcHRpb25zX2RhdGVfdGltZVwiIGNsYXNzPVwiZmFzIGZhLWNhcmV0LXVwXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgIT09ICcnXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWljb24tY2xvc2VcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlZFRpbWVEZXNjcmlwdGlvbigpXCIgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPiBcclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPHRyICpuZ0lmPVwidXNlT3B0aW9uc0RhdGVUaW1lICYmIG9wdGlvbnNfZGF0ZV90aW1lICYmIChvcHRpb25zX2RhdGVfdGltZSkubGVuZ3RoID4gMCAmJiBvcGVuX29wdGlvbnNfZGF0ZV90aW1lXCI+XHJcbiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiMlwiPlxyXG4gICAgICAgICAgICAgICAgPHRjbG91ZC11aS1kYXRhLWxpc3QgXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJ2YWx1ZV9vcHRpb25zX2RhdGVfdGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtzaG93SW5wdXRdPVwiZmFsc2VcIiBcclxuICAgICAgICAgICAgICAgICAgW3NlYXJjaF09XCJmYWxzZVwiIFxyXG4gICAgICAgICAgICAgICAgICBbb3Blbl09XCJ0cnVlXCIgXHJcbiAgICAgICAgICAgICAgICAgIFtsaXN0SXRlbXNdPVwib3B0aW9uc19kYXRlX3RpbWVcIiBcclxuICAgICAgICAgICAgICAgICAgKG9uQ2xvc2VkKT1cIm9uQ2xvc2VkT3B0aW9uc0RhdGVUaW1lKClcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZV9vcHRpb25zX2RhdGVfdGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlT3B0aW9uc0RhdGVUaW1lKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8L3RjbG91ZC11aS1kYXRhLWxpc3Q+XHJcblxyXG4gICAgICAgICAgICAgICAgXHJcblxyXG5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90YWJsZT5cclxuXHJcbiAgICAgICAgXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9mb3JtPlxyXG48L2Rpdj4iXX0=
320
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBR25ELE1BQU0sbUNBQW1DLEdBQVE7SUFDL0MsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLCtCQUErQixDQUFDO0lBQzlELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtBQUNsQixDQUFDLENBQUM7QUFRRixNQUFNLE9BQU8sK0JBQStCO0lBTjVDO1FBUUUscUJBQWdCLEdBQVksSUFBSSxDQUFDO1FBUXZCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNwQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFaEQscUVBQXFFO1FBQzVELFlBQU8sR0FBVyxFQUFFLENBQUM7UUFFOUIscUVBQXFFO1FBQzVELFlBQU8s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UTtzQkFBakIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUdFLE9BQU87c0JBQWYsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQVd5QyxjQUFjO3NCQUE1RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgT25Jbml0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSVNlbGVjdE9wdGlvbnMgfSBmcm9tICcuLi90Y2xvdWQtdWktZGF0YS1saXN0L3RjbG91ZC11aS1kYXRhLWxpc3QnO1xyXG5cclxuY29uc3QgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUQ2xvdWRVaURhdGVwaWNrZXJUaW1lQ29tcG9uZW50KSxcclxuICBtdWx0aTogdHJ1ZVxyXG59O1xyXG5cclxuY29uc3Qgbm9vcCA9ICgpID0+IHtcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpRGF0ZXBpY2tlclRpbWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBzaG93X2RhdGVfcGlja2VyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHJpdmF0ZSBfbmdNb2RlbDogYW55IHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHNldCBuZ01vZGVsKHY6IGFueSl7XHJcbiAgICBpZiggdiAmJiB2ICE9PSB0aGlzLmlubmVyVmFsdWUgKXtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjsgXHJcbiAgICB9IFxyXG4gIH1cclxuICBAT3V0cHV0KCkgbmdNb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuXHJcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG4gIEBPdXRwdXQoKSBldmVudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAvLyBtaW5EYXRlIC0gRGF0YSBtaW5pbWEgcGFyYSBleGliaWNhbyBkbyBjYWxlbmRhcmlvIC0gZXg6IDAxLzAxLzIwMjBcclxuICBASW5wdXQoKSBtaW5EYXRlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLy8gbWF4RGF0ZSAtIERhdGEgbWF4aW1hIHBhcmEgZXhpYmljYW8gZG8gY2FsZW5kYXJpbyAtIGV4OiAzMS8xMi8yMDIwXHJcbiAgQElucHV0KCkgbWF4RGF0ZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIHVzZU9wdGlvbnNEYXRlVGltZSA9IGZhbHNlO1xyXG5cclxuICBERF9NTV9ZWVlZOiBzdHJpbmcgPSAnJztcclxuICBISDogc3RyaW5nID0gJzAwJztcclxuICBNTTogc3RyaW5nID0gJzAwJztcclxuXHJcbiAgSUQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBvcHRpb25fSEg6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xyXG4gIG9wdGlvbl9NTTogc3RyaW5nW10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ19kYXRlcGlja2VydGltZScsIHtzdGF0aWM6IGZhbHNlfSkgZGF0ZXBpY2tlcnRpbWU6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkO1xyXG5cclxuICBvcHRpb25zX2RhdGVfdGltZSA6IElTZWxlY3RPcHRpb25zW10gPSBbXTtcclxuICBvcGVuX29wdGlvbnNfZGF0ZV90aW1lOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGxhc3Rfb3B0aW9uc19kYXRlX3RpbWU6IGFueTtcclxuICBkZXNjcmlwdGlvbl9vcHRpb25zX2RhdGVfdGltZTogYW55ID0gJyc7XHJcbiAgdmFsdWVfb3B0aW9uc19kYXRlX3RpbWU6IGFueSA9ICcnO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcblxyXG4gICAgdGhpcy5zZXRPcHRpb25zRGF0ZVRpbWUoKTtcclxuXHJcbiAgICB0aGlzLklEID0gdGhpcy5nZW5lcmF0ZUlEKCk7XHJcbiAgICB0aGlzLm9wdGlvbl9ISCA9IHRoaXMuZ2V0TGlzdFRJTUUoMjMpO1xyXG4gICAgdGhpcy5vcHRpb25fTU0gPSB0aGlzLmdldExpc3RUSU1FKDU5KTtcclxuICB9XHJcblxyXG4gIHNldE9wdGlvbnNEYXRlVGltZSgpe1xyXG4gICAgdGhpcy5vcHRpb25zX2RhdGVfdGltZSA9IFtcclxuICAgICAge3ZhbHVlOic3LWRheXMnLCBkZXNjcmlwdGlvbjogJzcgZGlhcyd9LFxyXG4gICAgICB7dmFsdWU6JzE1LWRheXMnLCBkZXNjcmlwdGlvbjogJzE1IGRpYXMnfSxcclxuICAgICAge3ZhbHVlOiczMC1kYXlzJywgZGVzY3JpcHRpb246ICczMCBkaWFzJ30sXHJcbiAgICAgIHt2YWx1ZTonY3VycmVudC1tb250aCcsIGRlc2NyaXB0aW9uOiAnTcOqcyBhdHVhbCBhdMOpIGFnb3JhJ30sXHJcbiAgICAgIHt2YWx1ZTonY3VycmVudC15ZWFyJywgZGVzY3JpcHRpb246ICdBbm8gYXR1YWwgYXTDqSBhZ29yYSd9XHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUlEKCk6IHN0cmluZ3tcclxuICAgIHJldHVybiBgdGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS0ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpKX1gO1xyXG4gIH1cclxuXHJcbiAgZ2V0TGlzdFRJTUUodjogbnVtYmVyKXtcclxuICAgIGxldCBtbSA9IFtdO1xyXG4gICAgZm9yKGxldCBpID0gMDsgaSA8PSB2OyBpKysgKXtcclxuICAgICAgaWYoIGkgPCAxMCApe1xyXG4gICAgICAgIChtbSkucHVzaChgMCR7aX1gKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgKG1tKS5wdXNoKGAke2l9YCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtbTtcclxuICB9XHJcblxyXG4gIHRvU2V0RGF0ZShkYXRlOiBzdHJpbmcpeyAgICBcclxuICAgIHRoaXMuc2V0X2RhdGVfYnlfZGF0ZXBpY2tlcihkYXRlKTtcclxuICB9XHJcblxyXG4gIHRvU2V0VGltZSgpe1xyXG4gICAgaWYoIHRoaXMuRERfTU1fWVlZWSAmJiAoKHRoaXMuRERfTU1fWVlZWSkudHJpbSgpKS5sZW5ndGggPT09IDEwKXtcclxuICAgICAgY29uc3QgZGF0ZSA9ICh0aGlzLkREX01NX1lZWVkpLnJlcGxhY2UoLy0vZywgJy8nKTtcclxuICAgICAgbGV0IGRhdGVfcGFydCA9IChkYXRlKS5zcGxpdCgnLycpO1xyXG4gICAgICBsZXQgZGQgPSBkYXRlX3BhcnRbMF07XHJcbiAgICAgIGxldCBtbSA9IGRhdGVfcGFydFsxXTtcclxuICAgICAgbGV0IHl5ID0gZGF0ZV9wYXJ0WzJdO1xyXG4gICAgICBjb25zdCBkYXRldGltZSA9IG5ldyBEYXRlKGAke3l5fS0ke21tfS0ke2RkfWApO1xyXG4gICAgICBpZiggdGhpcy5jaGVja0lzRGF0ZShkYXRldGltZSkgKXtcclxuICAgICAgICB0aGlzLnNldF9kYXRlX2J5X2RhdGVwaWNrZXIoZGF0ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldF9kYXRlX2J5X2RhdGVwaWNrZXIoZGF0ZTogc3RyaW5nKXtcclxuXHJcbiAgICBpZiggZGF0ZSApe1xyXG4gICAgICBkYXRlID0gKGRhdGUpLnJlcGxhY2UoLy0vZywgJy8nKTtcclxuICAgICAgbGV0IGRhdGVfcGFydCA9IChkYXRlKS5zcGxpdCgnLycpO1xyXG4gICAgICBsZXQgZGlhID0gZGF0ZV9wYXJ0WzBdO1xyXG4gICAgICBsZXQgbWVzID0gZGF0ZV9wYXJ0WzFdO1xyXG4gICAgICBsZXQgYW5vID0gZGF0ZV9wYXJ0WzJdO1xyXG5cclxuICAgICAgbGV0IGhoID0gdGhpcy5ISDtcclxuICAgICAgaWYoICFoaCApe1xyXG4gICAgICAgIGhoID0gJzAwJztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgaWYoICggKyhoaCkgPj0gMCAmJiArKGhoKSA8IDI0ICkgKXtcclxuICAgICAgICAgIGhoID0gKCsoaGgpIDwgMTAgKSA/IGAwJHsrKGhoKX1gIDogYCR7KyhoaCl9YDtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGhoID0gJzAwJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBtbSA9IHRoaXMuTU07XHJcbiAgICAgIGlmKCAhbW0gKXtcclxuICAgICAgICBtbSA9ICcwMCc7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGlmKCAoICsobW0pID49IDAgJiYgKyhtbSkgPCA2MCApICl7XHJcbiAgICAgICAgICBtbSA9ICgrKG1tKSA8IDEwICkgPyBgMCR7KyhtbSl9YCA6IGAkeysobW0pfWA7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBtbSA9ICcwMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiggaGggPT09ICcwMCcgKXsgdGhpcy5ISCA9IGhoOyB9XHJcbiAgICAgIGlmKCBtbSA9PT0gJzAwJyApeyB0aGlzLk1NID0gbW07IH1cclxuXHJcbiAgICAgIGNvbnN0IG5vdGF0aW9uID0gJzAwJztcclxuXHJcbiAgICAgIGNvbnN0IHN0cl9kYXRlID0gYCR7YW5vfS0ke21lc30tJHtkaWF9VCR7aGh9OiR7bW19OiR7bm90YXRpb259YDtcclxuICAgICAgY29uc3QgZGF0ZXRpbWUgPSBuZXcgRGF0ZSggc3RyX2RhdGUgKTtcclxuICAgICAgXHJcbiAgICAgIGlmKCB0aGlzLmNoZWNrSXNEYXRlKGRhdGV0aW1lKSApe1xyXG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IGRhdGV0aW1lO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKCd0aGlzLmRhdGVwaWNrZXJ0aW1lPy5uYXRpdmVFbGVtZW50JywgdGhpcy5kYXRlcGlja2VydGltZT8ubmF0aXZlRWxlbWVudCk7XHJcblxyXG4gICAgICAvLyBpZih0aGlzLmRhdGVwaWNrZXJ0aW1lICYmIHRoaXMuZGF0ZXBpY2tlcnRpbWUubmF0aXZlRWxlbWVudCl7XHJcbiAgICAgIC8vICAgY29uc3QgZWxlbSA9IDxhbnk+IHRoaXMuZGF0ZXBpY2tlcnRpbWUubmF0aXZlRWxlbWVudDtcclxuICAgICAgLy8gICBlbGVtLnZhbHVlID0gdGhpcy5pbm5lclZhbHVlO1xyXG4gICAgICAvLyB9XHJcblxyXG4gICAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCggdGhpcy5pbm5lclZhbHVlICk7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCggdGhpcy5pbm5lclZhbHVlICk7XHJcbiAgICAgIHRoaXMuZXZlbnRDaGFuZ2UuZW1pdCggdGhpcy5kYXRlcGlja2VydGltZT8ubmF0aXZlRWxlbWVudCApO1xyXG5cclxuICAgIH1lbHNle1xyXG5cclxuICAgICAgdGhpcy5kZXNjcmlwdGlvbl9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gICAgICB0aGlzLnZhbHVlX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcblxyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KCB0aGlzLmlubmVyVmFsdWUgKTtcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KCB0aGlzLmlubmVyVmFsdWUgKTtcclxuICAgICAgdGhpcy5ldmVudENoYW5nZS5lbWl0KCB0aGlzLmRhdGVwaWNrZXJ0aW1lPy5uYXRpdmVFbGVtZW50ICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGAke3RoaXMubGFzdF9vcHRpb25zX2RhdGVfdGltZX1gICE9PSBgJHt0aGlzLmlubmVyVmFsdWV9YCApe1xyXG4gICAgICAvLyB0aGlzLmRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcbiAgICAgIC8vIHRoaXMudmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAvLyBEaXN0cmlidWlyIG9zIHZhbG9yZXMgZGEgZGF0YSBwb3IgcGVkYcOnb3M6IGRhdGEgLSBob3JhIC0gbWluXHJcbiAgdG9fZGF0ZV9oaF9tbShkOiBEYXRlKXtcclxuICAgIGxldCBkaWEgPSBgJHsoZCkuZ2V0RGF0ZSgpfWA7XHJcbiAgICBkaWEgPSAoKyhkaWEpIDwgMTAgKSA/IGAwJHsrZGlhfWAgOiBkaWE7XHJcbiAgICBsZXQgbWVzID0gYCR7KGQpLmdldE1vbnRoKCkrMX1gO1xyXG4gICAgbWVzID0gKCsobWVzKSA8IDEwICkgPyBgMCR7K21lc31gIDogbWVzOyAgXHJcblxyXG4gICAgbGV0IGFubyA9IGAkeyhkKS5nZXRGdWxsWWVhcigpfWA7XHJcbiAgICBsZXQgaGggID0gYCR7KGQpLmdldEhvdXJzKCl9YDtcclxuICAgIGxldCBtbSAgPSBgJHsoZCkuZ2V0TWludXRlcygpfWA7XHJcblxyXG4gICAgaWYoIGhoICYmICggKyhoaCkgPCAwIHx8ICsoaGgpID4gMjMgKSApeyBoaCA9ICcwMCc7IH1cclxuICAgIGhoID0gKGhoKSA/ICggKCsoaGgpIDwgMTAgKSA/IGAwJHtoaH1gIDogaGggKSA6ICcwMCc7XHJcblxyXG4gICAgaWYoIG1tICYmICggKyhtbSkgPCAwIHx8ICsobW0pID4gNTkgKSApeyBtbSA9ICcwMCc7IH1cclxuICAgIG1tID0gKG1tKSA/ICggKCsobW0pIDwgMTAgKSA/IGAwJHttbX1gIDogbW0gKSA6ICcwMCc7XHJcblxyXG4gICAgdGhpcy5NTSA9IG1tO1xyXG4gICAgdGhpcy5ISCA9IGhoO1xyXG5cclxuICAgIHRoaXMuRERfTU1fWVlZWSA9IGAke2RpYX0vJHttZXN9LyR7YW5vfWA7XHJcbiAgfVxyXG5cclxuICBjaGVja0lzRGF0ZShkOiBhbnkpOiBib29sZWFue1xyXG5cclxuICAgIGlmKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKSA9PT0gXCJbb2JqZWN0IERhdGVdXCIpIHtcclxuICAgICAgaWYoaXNOYU4oZCkpIHsgcmV0dXJuIGZhbHNlOyB9IGVsc2UgeyByZXR1cm4gdHJ1ZTsgfVxyXG4gICAgfSBcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICBjbGVhbigpe1xyXG4gICAgdGhpcy5ERF9NTV9ZWVlZID0gJyc7XHJcbiAgICB0aGlzLkhIID0gJzAwJztcclxuICAgIHRoaXMuTU0gPSAnMDAnO1xyXG4gICAgdGhpcy5kZXNjcmlwdGlvbl9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gICAgdGhpcy52YWx1ZV9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgdG9DbGlja0luKGlkOiBzdHJpbmcpe1xyXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpPy5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgb25DbG9zZWRPcHRpb25zRGF0ZVRpbWUoKXtcclxuICAgIHRoaXMub3Blbl9vcHRpb25zX2RhdGVfdGltZSA9IGZhbHNlXHJcbiAgfVxyXG5cclxuICBcclxuICBvbkNoYW5nZU9wdGlvbnNEYXRlVGltZShldmVudDogYW55KXtcclxuICAgIC8vIHRoaXMuZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICAgIC8vIHRoaXMudmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICAgIHRoaXMuc2hvd19kYXRlX3BpY2tlciA9IGZhbHNlO1xyXG5cclxuICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgbGV0IGZpbHRlcl9kYXRlOiBhbnkgPSB1bmRlZmluZWQ7XHJcbiAgICBpZiggZXZlbnQgPT09ICc3LWRheXMnICl7XHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUoIChuZXcgRGF0ZShub3cpKS5zZXREYXRlKCBub3cuZ2V0RGF0ZSgpIC0gNyApICk7ICBcclxuICAgICAgZmlsdGVyX2RhdGUgPSBuZXcgRGF0ZSggKGZpbHRlcl9kYXRlKS5zZXRTZWNvbmRzKDApICk7ICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGV2ZW50ID09PSAnMTUtZGF5cycgKXtcclxuICAgICAgZmlsdGVyX2RhdGUgPSBuZXcgRGF0ZSggKG5ldyBEYXRlKG5vdykpLnNldERhdGUoIG5vdy5nZXREYXRlKCkgLSAxNSApICk7XHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUoIChmaWx0ZXJfZGF0ZSkuc2V0U2Vjb25kcygwKSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBldmVudCA9PT0gJzMwLWRheXMnICl7XHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUoIChuZXcgRGF0ZShub3cpKS5zZXREYXRlKCBub3cuZ2V0RGF0ZSgpIC0gMzAgKSApO1xyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKCAoZmlsdGVyX2RhdGUpLnNldFNlY29uZHMoMCkgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZXZlbnQgPT09ICdjdXJyZW50LW1vbnRoJyApe1xyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKG5vdy5nZXRGdWxsWWVhcigpLCBub3cuZ2V0TW9udGgoKSwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGV2ZW50ID09PSAnY3VycmVudC15ZWFyJyApe1xyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKG5vdy5nZXRGdWxsWWVhcigpLCAwLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBpZihmaWx0ZXJfZGF0ZSl7ICAgICAgXHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IGZpbHRlcl9kYXRlO1xyXG4gICAgICBpZiggdGhpcy5jaGVja0lzRGF0ZShmaWx0ZXJfZGF0ZSkgKXsgICAgICAgICAgICAgIFxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50b19kYXRlX2hoX21tKGZpbHRlcl9kYXRlKTtcclxuICAgICAgICAgIHRoaXMudG9TZXREYXRlKHRoaXMuRERfTU1fWVlZWSk7ICBcclxuICAgICAgICAgIHRoaXMuc2hvd19kYXRlX3BpY2tlciA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlX29wdGlvbnNfZGF0ZV90aW1lID0gZXZlbnQ7XHJcbiAgICAgICAgICB0aGlzLmxhc3Rfb3B0aW9uc19kYXRlX3RpbWUgPSBmaWx0ZXJfZGF0ZSBhcyBhbnk7XHJcbiAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lID0gdGhpcy5nZXRfZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUoZXZlbnQpO1xyXG4gICAgICAgIH0pOyAgICAgICBcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG5cclxuICBnZXRfZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUodmFsdWU6IHN0cmluZyl7XHJcbiAgICBpZiggdGhpcy5vcHRpb25zX2RhdGVfdGltZSAmJiAodGhpcy5vcHRpb25zX2RhdGVfdGltZSkubGVuZ3RoID4gMCApe1xyXG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLm9wdGlvbnNfZGF0ZV90aW1lKS5sZW5ndGg7IGkrKyApe1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLm9wdGlvbnNfZGF0ZV90aW1lW2ldO1xyXG4gICAgICAgIGlmKCBpdGVtLnZhbHVlID09PSB2YWx1ZSApe1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW0uZGVzY3JpcHRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2xvc2VkVGltZURlc2NyaXB0aW9uKCl7XHJcbiAgICB0aGlzLnZhbHVlX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcbiAgICB0aGlzLmRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7IFxyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICBcclxuICBpbm5lclZhbHVlOiBhbnkgfCB1bmRlZmluZWQ7XHJcbiAgLy9QbGFjZWhvbGRlcnMgZm9yIHRoZSBjYWxsYmFja3Mgd2hpY2ggYXJlIGxhdGVyIHByb3ZpZGVzZFxyXG4gIC8vYnkgdGhlIENvbnRyb2wgVmFsdWUgQWNjZXNzb3JcclxuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcclxuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xyXG5cclxuICAvL2dldCBhY2Nlc3NvclxyXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgICByZXR1cm4gdGhpcy5pbm5lclZhbHVlO1xyXG4gIH07XHJcblxyXG4gIC8vc2V0IGFjY2Vzc29yIGluY2x1ZGluZyBjYWxsIHRoZSBvbmNoYW5nZSBjYWxsYmFja1xyXG4gIHNldCB2YWx1ZSh2OiBhbnkpIHtcclxuICAgIGlmICh2ICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjsgICAgICBcclxuICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9TZXQgdG91Y2hlZCBvbiBibHVyXHJcbiAgb25CbHVyKCkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgdmFsdWUgPSBuZXcgRGF0ZSggYCR7dmFsdWV9YCApO1xyXG4gICAgICB9IGNhdGNoIChlcnJvcikge31cclxuXHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICBpZiggdGhpcy5jaGVja0lzRGF0ZSh2YWx1ZSkgKXtcclxuICAgICAgICB0aGlzLnRvX2RhdGVfaGhfbW0odmFsdWUpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmNsZWFuKClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRjbG91ZC11aS1kYXRlcGlja2VyLXRpbWVcIj5cclxuICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIHZhbHVlPVwie3sgaW5uZXJWYWx1ZSB9fVwiICNfZGF0ZXBpY2tlcnRpbWUgPlxyXG4gIDxmb3JtICNfZm9ybXVsYXJpbz1cIm5nRm9ybVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRyb2wtdGltZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sLXRpbWVcIj5cclxuXHJcbiAgICAgICAgPHRhYmxlIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcbiAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgIDx0ZD5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LW9wdGlvbnMtZGF0ZVwiPlxyXG4gICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cImZvcm0tdGltZVwiPlxyXG4gICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIDx0ZCBjbGFzcz1cImFyZWEtaWNvblwiPjxkaXYgY2xhc3M9XCJkZWxpbWl0ZXItdGltZS1pY29uXCIgKGNsaWNrKT1cInRvQ2xpY2tJbihJRClcIiA+PGkgY2xhc3M9XCJmYXMgZmEtY2FsZW5kYXItYWx0XCI+PC9pPjwvZGl2PjwvdGQ+IC0tPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWlucHV0LWRhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd19kYXRlX3BpY2tlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRjbG91ZC11aS1kYXRlcGlja2VyIFttaW5EYXRlXT1cIm1pbkRhdGVcIiBbbWF4RGF0ZV09XCJtYXhEYXRlXCIgI190Y2xvdWRkYXRlcGlja2VydGltZSBbY2hpbGRJbnB1dERhdGVUaW1lXT1cInRydWVcIiBbbW9kZUlucHV0XT1cInRydWVcIiBuYW1lPVwiZGF0ZVwiIFt1c2VCb3JkZXJdPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cIkREX01NX1lZWVlcIiAob25DaGFuZ2UpPVwidG9TZXREYXRlKCRldmVudClcIiA+PC90Y2xvdWQtdWktZGF0ZXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtZGVsaW1pdGVyXCI+PGRpdiBjbGFzcz1cImRlbGltaXRlci10aW1lXCI+PC9kaXY+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1pbnB1dC1ob3VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLTxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiSEhcIiAoa2V5dXApPVwidG9TZXRUaW1lKClcIiBbKG5nTW9kZWwpXT1cIkhIXCIgbWF4bGVuZ3RoPVwiMlwiIG5hbWU9XCJoaFwiIHBhdHRlcm49XCJbMF1bMC05XXxbMV1bMC05XXwyWzAtM11cIj4tLT5cclxuICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwic2VsZWN0LXRpbWUtZGF0ZVwiIChjaGFuZ2UpPVwidG9TZXRUaW1lKClcIiBbKG5nTW9kZWwpXT1cIkhIXCIgbmFtZT1cImhoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBoaCBvZiBvcHRpb25fSEhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJoaFwiPnt7IGhoIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1kZWxpbWl0ZXJcIj48ZGl2IGNsYXNzPVwiZGVsaW1pdGVyLXRpbWVcIj46PC9kaXY+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXJlYS1pbnB1dC1taW51dGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJNTVwiIChrZXl1cCk9XCJ0b1NldFRpbWUoKVwiIFsobmdNb2RlbCldPVwiTU1cIiBtYXhsZW5ndGg9XCIyXCIgbmFtZT1cIm1tXCIgcGF0dGVybj1cIlswMTIzNDVdWzAtOV1cIj4tLT5cclxuICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwic2VsZWN0LXRpbWUtZGF0ZVwiIChjaGFuZ2UpPVwidG9TZXRUaW1lKClcIiBbKG5nTW9kZWwpXT1cIk1NXCIgbmFtZT1cIm1tXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtbSBvZiBvcHRpb25fTU1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwibW1cIj57eyBtbSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtY2xlYW5cIj48L3RkPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICA8L3RhYmxlPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb24tb3B0aW9ucy1kYXRlXCIgKm5nSWY9XCJ2YWx1ZV9vcHRpb25zX2RhdGVfdGltZSAhPT0gJydcIj5cclxuICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUgfX08L3N0cm9uZz5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImFyZWEtYWN0aW9uLWRhdGUtdGltZS1zZWxlY3RlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4taWNvblwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xvc2VkVGltZURlc2NyaXB0aW9uKClcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwidXNlT3B0aW9uc0RhdGVUaW1lICYmIG9wdGlvbnNfZGF0ZV90aW1lICYmIChvcHRpb25zX2RhdGVfdGltZSkubGVuZ3RoID4gMFwiIHN0eWxlPVwid2lkdGg6IDIwcHhcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImljb24tc2hvcnQtdGltZVwiIChjbGljayk9XCJvcGVuX29wdGlvbnNfZGF0ZV90aW1lID0gIW9wZW5fb3B0aW9uc19kYXRlX3RpbWVcIiBbdGl0bGVdPVwiZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWVcIiA+XHJcbiAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFvcGVuX29wdGlvbnNfZGF0ZV90aW1lXCIgY2xhc3M9XCJmYXMgZmEtY2FyZXQtZG93blwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwib3Blbl9vcHRpb25zX2RhdGVfdGltZVwiIGNsYXNzPVwiZmFzIGZhLWNhcmV0LXVwXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgIT09ICcnXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWljb24tY2xvc2VcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlZFRpbWVEZXNjcmlwdGlvbigpXCIgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPiBcclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPHRyICpuZ0lmPVwidXNlT3B0aW9uc0RhdGVUaW1lICYmIG9wdGlvbnNfZGF0ZV90aW1lICYmIChvcHRpb25zX2RhdGVfdGltZSkubGVuZ3RoID4gMCAmJiBvcGVuX29wdGlvbnNfZGF0ZV90aW1lXCI+XHJcbiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiMlwiPlxyXG4gICAgICAgICAgICAgICAgPHRjbG91ZC11aS1kYXRhLWxpc3QgXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJ2YWx1ZV9vcHRpb25zX2RhdGVfdGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtzaG93SW5wdXRdPVwiZmFsc2VcIiBcclxuICAgICAgICAgICAgICAgICAgW3NlYXJjaF09XCJmYWxzZVwiIFxyXG4gICAgICAgICAgICAgICAgICBbb3Blbl09XCJ0cnVlXCIgXHJcbiAgICAgICAgICAgICAgICAgIFtsaXN0SXRlbXNdPVwib3B0aW9uc19kYXRlX3RpbWVcIiBcclxuICAgICAgICAgICAgICAgICAgKG9uQ2xvc2VkKT1cIm9uQ2xvc2VkT3B0aW9uc0RhdGVUaW1lKClcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZV9vcHRpb25zX2RhdGVfdGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlT3B0aW9uc0RhdGVUaW1lKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8L3RjbG91ZC11aS1kYXRhLWxpc3Q+XHJcblxyXG4gICAgICAgICAgICAgICAgXHJcblxyXG5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90YWJsZT5cclxuXHJcbiAgICAgICAgXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9mb3JtPlxyXG48L2Rpdj4iXX0=