@bizdoc/core 2.3.17 → 2.3.20

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 (227) hide show
  1. package/esm2022/lib/admin/admin-menu.component.mjs +9 -10
  2. package/esm2022/lib/admin/architecture/cube-axes-filter.component.mjs +11 -11
  3. package/esm2022/lib/admin/architecture/designer-element.component.mjs +4 -4
  4. package/esm2022/lib/admin/architecture/designer-privileges.component.mjs +15 -16
  5. package/esm2022/lib/admin/architecture/designer.component.mjs +16 -15
  6. package/esm2022/lib/admin/architecture/elements/analysis-view.component.mjs +13 -14
  7. package/esm2022/lib/admin/architecture/elements/analysis-widget.component.mjs +11 -12
  8. package/esm2022/lib/admin/architecture/elements/anomaly-rule.component.mjs +4 -5
  9. package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +10 -11
  10. package/esm2022/lib/admin/architecture/elements/box-form.component.mjs +11 -12
  11. package/esm2022/lib/admin/architecture/elements/configuration-datasource.component.mjs +13 -14
  12. package/esm2022/lib/admin/architecture/elements/cube-index-utility.component.mjs +9 -10
  13. package/esm2022/lib/admin/architecture/elements/cube-view.component.mjs +11 -12
  14. package/esm2022/lib/admin/architecture/elements/cube.component.mjs +23 -24
  15. package/esm2022/lib/admin/architecture/elements/document-state-widget.component.mjs +11 -12
  16. package/esm2022/lib/admin/architecture/elements/documents-report.component.mjs +10 -11
  17. package/esm2022/lib/admin/architecture/elements/documents-widget.component.mjs +10 -11
  18. package/esm2022/lib/admin/architecture/elements/explore-view.component.mjs +10 -11
  19. package/esm2022/lib/admin/architecture/elements/folder.component.mjs +16 -17
  20. package/esm2022/lib/admin/architecture/elements/form-invite.dialog.mjs +17 -18
  21. package/esm2022/lib/admin/architecture/elements/form.component.mjs +22 -23
  22. package/esm2022/lib/admin/architecture/elements/guide.component.mjs +16 -17
  23. package/esm2022/lib/admin/architecture/elements/job.component.mjs +12 -13
  24. package/esm2022/lib/admin/architecture/elements/matrix-view.component.mjs +9 -10
  25. package/esm2022/lib/admin/architecture/elements/parallel-view.component.mjs +12 -13
  26. package/esm2022/lib/admin/architecture/elements/performance-report.component.mjs +10 -11
  27. package/esm2022/lib/admin/architecture/elements/performance-widget.component.mjs +10 -11
  28. package/esm2022/lib/admin/architecture/elements/pivot-view.component.mjs +10 -11
  29. package/esm2022/lib/admin/architecture/elements/report.component.mjs +10 -11
  30. package/esm2022/lib/admin/architecture/elements/return-to-role-action.component.mjs +8 -9
  31. package/esm2022/lib/admin/architecture/elements/role.component.mjs +13 -14
  32. package/esm2022/lib/admin/architecture/elements/sum-view.component.mjs +10 -11
  33. package/esm2022/lib/admin/architecture/elements/tasks-report.component.mjs +13 -13
  34. package/esm2022/lib/admin/architecture/elements/type.component.mjs +18 -19
  35. package/esm2022/lib/admin/architecture/elements/usage-report.component.mjs +11 -12
  36. package/esm2022/lib/admin/architecture/elements/widget.component.mjs +10 -11
  37. package/esm2022/lib/admin/architecture/icon-picker.component.mjs +7 -8
  38. package/esm2022/lib/admin/core/color-picker.input.mjs +5 -6
  39. package/esm2022/lib/admin/core/localized-string.component.mjs +10 -11
  40. package/esm2022/lib/admin/diff/configuration-diff.component.mjs +11 -11
  41. package/esm2022/lib/admin/document-trace/document-trace.component.mjs +18 -18
  42. package/esm2022/lib/admin/document-trace/reassign.dialog.mjs +12 -12
  43. package/esm2022/lib/admin/document-trace/trace-element.component.mjs +13 -12
  44. package/esm2022/lib/admin/form/designer/box-designer.component.mjs +24 -60
  45. package/esm2022/lib/admin/form/designer/declarations.mjs +1 -1
  46. package/esm2022/lib/admin/form/designer/design-control.component.mjs +41 -0
  47. package/esm2022/lib/admin/form/designer/properties.component.mjs +11 -12
  48. package/esm2022/lib/admin/form/designer/section.component.mjs +11 -12
  49. package/esm2022/lib/admin/form/workflow/node.component.mjs +9 -10
  50. package/esm2022/lib/admin/form/workflow/role-node.component.mjs +15 -16
  51. package/esm2022/lib/admin/form/workflow/workflow.component.mjs +3 -3
  52. package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +13 -13
  53. package/esm2022/lib/admin/patterns/patterns.component.mjs +19 -19
  54. package/esm2022/lib/admin/permissions/permissions.component.mjs +14 -15
  55. package/esm2022/lib/admin/positions/positions-popup.component.mjs +11 -11
  56. package/esm2022/lib/admin/positions/positions.component.mjs +23 -24
  57. package/esm2022/lib/admin/profiler/outofoffice.component.mjs +13 -13
  58. package/esm2022/lib/admin/profiler/profiler.component.mjs +15 -15
  59. package/esm2022/lib/browse/browse-items.component.mjs +3 -3
  60. package/esm2022/lib/browse/browse.mobile.component.mjs +15 -16
  61. package/esm2022/lib/browse/browse.pane.component.mjs +14 -15
  62. package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +14 -15
  63. package/esm2022/lib/browse/filter/filter.component.mjs +13 -13
  64. package/esm2022/lib/browse/folders-menu.component.mjs +10 -11
  65. package/esm2022/lib/chat/chat.mobile.component.mjs +5 -6
  66. package/esm2022/lib/chat/contacts.component.mjs +16 -16
  67. package/esm2022/lib/chat/conversation.component.mjs +13 -14
  68. package/esm2022/lib/compose/action/action-picker.component.mjs +9 -10
  69. package/esm2022/lib/compose/action/action.dialog.mjs +8 -9
  70. package/esm2022/lib/compose/action/action.pane.dialog.exp.mjs +6 -7
  71. package/esm2022/lib/compose/action/assign-action.component.mjs +12 -12
  72. package/esm2022/lib/compose/action/moveto-action.component.mjs +11 -11
  73. package/esm2022/lib/compose/action/return-action.component.mjs +9 -9
  74. package/esm2022/lib/compose/attachments/attachments.component.mjs +11 -12
  75. package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +8 -9
  76. package/esm2022/lib/compose/box/box.component.mjs +7 -8
  77. package/esm2022/lib/compose/comments/comment.component.mjs +14 -15
  78. package/esm2022/lib/compose/comments/comments.component.mjs +8 -9
  79. package/esm2022/lib/compose/comments/edits.component.mjs +5 -5
  80. package/esm2022/lib/compose/comments/quick-comment.component.exp.mjs +5 -6
  81. package/esm2022/lib/compose/comments/votes.component.mjs +8 -8
  82. package/esm2022/lib/compose/compose.mobile.component.mjs +16 -17
  83. package/esm2022/lib/compose/compose.pane.component.mjs +15 -16
  84. package/esm2022/lib/compose/copy/copy.dialog.mjs +11 -11
  85. package/esm2022/lib/compose/events/events.component.mjs +7 -8
  86. package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +7 -8
  87. package/esm2022/lib/compose/form.component.mjs +5 -5
  88. package/esm2022/lib/compose/new-menu.component.mjs +8 -9
  89. package/esm2022/lib/compose/tag/tags.component.mjs +10 -10
  90. package/esm2022/lib/compose/trace/people.component.mjs +4 -5
  91. package/esm2022/lib/compose/version-compare/version.pane.component.mjs +10 -11
  92. package/esm2022/lib/core/animations.mjs +8 -4
  93. package/esm2022/lib/core/checkbox.mjs +20 -17
  94. package/esm2022/lib/core/fields/address.field.mjs +35 -26
  95. package/esm2022/lib/core/fields/autocomplete.field.mjs +68 -52
  96. package/esm2022/lib/core/fields/checkbox.field.mjs +9 -10
  97. package/esm2022/lib/core/fields/checklist.designer.mjs +66 -47
  98. package/esm2022/lib/core/fields/checklist.field.mjs +8 -9
  99. package/esm2022/lib/core/fields/date-range.field.mjs +6 -6
  100. package/esm2022/lib/core/fields/date.field.mjs +10 -11
  101. package/esm2022/lib/core/fields/expression.field.mjs +31 -23
  102. package/esm2022/lib/core/fields/file.field.mjs +8 -9
  103. package/esm2022/lib/core/fields/html.field.mjs +9 -10
  104. package/esm2022/lib/core/fields/input.field.mjs +8 -9
  105. package/esm2022/lib/core/fields/numeric.field.mjs +7 -7
  106. package/esm2022/lib/core/fields/options.component.mjs +11 -12
  107. package/esm2022/lib/core/fields/radio-button.designer.mjs +10 -11
  108. package/esm2022/lib/core/fields/radio-button.field.mjs +8 -9
  109. package/esm2022/lib/core/fields/select.designer.mjs +71 -52
  110. package/esm2022/lib/core/fields/select.field.mjs +9 -10
  111. package/esm2022/lib/core/fields/signature.field.mjs +10 -11
  112. package/esm2022/lib/core/fields/switch.field.mjs +8 -9
  113. package/esm2022/lib/core/fields/tags.field.mjs +9 -10
  114. package/esm2022/lib/core/fields/textarea.field.mjs +9 -10
  115. package/esm2022/lib/core/fields/time.field.mjs +9 -10
  116. package/esm2022/lib/core/fields/timespan.field.mjs +33 -26
  117. package/esm2022/lib/core/fields/yesno.designer.mjs +70 -55
  118. package/esm2022/lib/core/fields/yesno.field.mjs +8 -9
  119. package/esm2022/lib/core/guide/guide.component.mjs +7 -8
  120. package/esm2022/lib/core/guide/help-tip.component.mjs +21 -18
  121. package/esm2022/lib/core/identity/identity.component.mjs +5 -6
  122. package/esm2022/lib/core/inputs/address.input.mjs +24 -21
  123. package/esm2022/lib/core/inputs/auto-complete.input.mjs +42 -26
  124. package/esm2022/lib/core/inputs/combination-picker-body.mjs +12 -13
  125. package/esm2022/lib/core/inputs/combination-picker.mjs +8 -5
  126. package/esm2022/lib/core/inputs/combination-pool.mjs +7 -8
  127. package/esm2022/lib/core/inputs/file.input.mjs +11 -12
  128. package/esm2022/lib/core/inputs/select.input.mjs +39 -23
  129. package/esm2022/lib/core/inputs/time-picker.mjs +6 -7
  130. package/esm2022/lib/core/mailbox.service.mjs +1 -1
  131. package/esm2022/lib/core/models.mjs +1 -1
  132. package/esm2022/lib/core/none.component.mjs +19 -22
  133. package/esm2022/lib/core/pipes/translate.pipe.mjs +2 -1
  134. package/esm2022/lib/core/slots/slots.component.mjs +13 -14
  135. package/esm2022/lib/core/tagging/documents.component.mjs +7 -7
  136. package/esm2022/lib/core/tagging/edit-input.component.mjs +12 -13
  137. package/esm2022/lib/core/tagging/users.component.mjs +7 -7
  138. package/esm2022/lib/core/translations.mjs +2 -2
  139. package/esm2022/lib/cube/cube-menu.component.mjs +8 -9
  140. package/esm2022/lib/cube/explore/explore-items.component.mjs +8 -8
  141. package/esm2022/lib/cube/filter/filter-tags.component.exp.mjs +6 -7
  142. package/esm2022/lib/cube/filter/filter.component.mjs +11 -11
  143. package/esm2022/lib/cube/grid/spreadsheet.component.mjs +1 -2
  144. package/esm2022/lib/cube/matrix/matrix.mobile.component.mjs +12 -12
  145. package/esm2022/lib/cube/matrix/matrix.pane.component.mjs +12 -12
  146. package/esm2022/lib/cube/matrix/popup.component.mjs +10 -10
  147. package/esm2022/lib/cube/matrix/table.component.mjs +3 -4
  148. package/esm2022/lib/cube/parallel/parallel.component.mjs +4 -5
  149. package/esm2022/lib/cube/sum/sum.component.mjs +3 -3
  150. package/esm2022/lib/cube/view.mobile.component.mjs +16 -17
  151. package/esm2022/lib/cube/view.pane.component.mjs +12 -13
  152. package/esm2022/lib/dashboard/dashboard.component.mjs +12 -13
  153. package/esm2022/lib/dashboard/recents/recents.widget.mjs +11 -12
  154. package/esm2022/lib/dashboard/score/activity.widget.mjs +4 -5
  155. package/esm2022/lib/dashboard/score/peers-performance.widget.mjs +5 -5
  156. package/esm2022/lib/dashboard/score/pending-results.widget.mjs +11 -12
  157. package/esm2022/lib/dashboard/score/personal-score.widget.mjs +3 -2
  158. package/esm2022/lib/designer.module.mjs +6 -5
  159. package/esm2022/lib/home/about/about.dialog.mjs +7 -8
  160. package/esm2022/lib/home/home.desktop.component.mjs +17 -18
  161. package/esm2022/lib/home/home.mobile.component.mjs +16 -17
  162. package/esm2022/lib/home/notifications/notifications.component.mjs +3 -3
  163. package/esm2022/lib/home/options/options.component.mjs +11 -11
  164. package/esm2022/lib/home/outofoffice/outofoffice.component.mjs +8 -9
  165. package/esm2022/lib/home/tools.component.mjs +13 -13
  166. package/esm2022/lib/impersonate/impersonate.component.mjs +10 -10
  167. package/esm2022/lib/modules/gantt.module.mjs +4 -2
  168. package/esm2022/lib/modules/grid.module.mjs +3 -3
  169. package/esm2022/lib/notifications/notifications-table.component.mjs +3 -3
  170. package/esm2022/lib/notifications/types/commented.notification.mjs +19 -12
  171. package/esm2022/lib/notifications/types/escalated.notification.mjs +6 -6
  172. package/esm2022/lib/notifications/types/liked.notification.mjs +19 -12
  173. package/esm2022/lib/notifications/types/tagged.notification.mjs +9 -9
  174. package/esm2022/lib/notifications/types/text.notification.mjs +6 -3
  175. package/esm2022/lib/options/options.component.mjs +52 -28
  176. package/esm2022/lib/options/options.service.mjs +26 -6
  177. package/esm2022/lib/reports/cube/table-documents.component.mjs +10 -10
  178. package/esm2022/lib/reports/report.mobile.component.mjs +12 -13
  179. package/esm2022/lib/reports/report.pane.component.mjs +10 -11
  180. package/esm2022/lib/reports/reports-menu.component.mjs +7 -8
  181. package/esm2022/lib/reports/substitution/substitution.component.mjs +10 -11
  182. package/esm2022/lib/reports/table/table-view.component.mjs +5 -6
  183. package/esm2022/lib/search/path.component.mjs +17 -18
  184. package/esm2022/lib/shared.module.mjs +4 -2
  185. package/esm2022/lib/system.module.mjs +5 -5
  186. package/esm2022/lib/views/cube/chart.component.mjs +6 -7
  187. package/esm2022/lib/views/cube/explore.component.mjs +10 -10
  188. package/esm2022/lib/views/cube/matrix.component.mjs +11 -11
  189. package/esm2022/lib/views/cube/parallel.component.mjs +4 -5
  190. package/esm2022/lib/views/cube/pivot.component.mjs +4 -5
  191. package/esm2022/lib/views/cube/sum.component.mjs +12 -10
  192. package/esm2022/lib/views/cube/view.component.mjs +11 -12
  193. package/esm2022/lib/views/timeline/timeline.component.exp.mjs +191 -192
  194. package/esm2022/lib/views/views.component.mjs +4 -5
  195. package/esm2022/public-api.mjs +3 -1
  196. package/fesm2022/bizdoc-core.mjs +3714 -3502
  197. package/fesm2022/bizdoc-core.mjs.map +1 -1
  198. package/lib/admin/architecture/elements/analysis-view.component.d.ts +2 -2
  199. package/lib/admin/architecture/elements/cube-view.component.d.ts +2 -2
  200. package/lib/admin/architecture/elements/form.component.d.ts +5 -5
  201. package/lib/admin/architecture/elements/matrix-view.component.d.ts +17 -9
  202. package/lib/admin/architecture/elements/parallel-view.component.d.ts +5 -5
  203. package/lib/admin/architecture/elements/tasks-report.component.d.ts +3 -2
  204. package/lib/admin/form/designer/box-designer.component.d.ts +26 -23
  205. package/lib/admin/form/designer/declarations.d.ts +2 -2
  206. package/lib/admin/form/designer/design-control.component.d.ts +19 -0
  207. package/lib/admin/form/designer/section.component.d.ts +3 -3
  208. package/lib/compose/attachments/attachments.component.d.ts +2 -2
  209. package/lib/core/animations.d.ts +2 -1
  210. package/lib/core/inputs/combination-picker.d.ts +1 -0
  211. package/lib/core/mailbox.service.d.ts +4 -3
  212. package/lib/core/models.d.ts +1 -1
  213. package/lib/core/pipes/translate.pipe.d.ts +1 -0
  214. package/lib/cube/matrix/table.component.d.ts +2 -2
  215. package/lib/dashboard/score/peers-performance.widget.d.ts +1 -1
  216. package/lib/designer.module.d.ts +27 -26
  217. package/lib/notifications/types/escalated.notification.d.ts +1 -1
  218. package/lib/notifications/types/tagged.notification.d.ts +1 -1
  219. package/lib/notifications/types/text.notification.d.ts +1 -1
  220. package/lib/options/options.component.d.ts +6 -4
  221. package/lib/options/options.service.d.ts +7 -2
  222. package/lib/shared.module.d.ts +1 -1
  223. package/lib/system.module.d.ts +25 -25
  224. package/lib/views/cube/sum.component.d.ts +1 -0
  225. package/lib/views/timeline/timeline.component.exp.d.ts +2 -2
  226. package/package.json +1 -1
  227. package/public-api.d.ts +2 -0
@@ -8,10 +8,9 @@ import { isDate } from "../../core/functions";
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@angular/cdk/a11y";
10
10
  import * as i2 from "@angular/forms";
11
- import * as i3 from "@angular/common";
12
- import * as i4 from "@angular/material/autocomplete";
13
- import * as i5 from "@angular/material/core";
14
- import * as i6 from "@angular/material/input";
11
+ import * as i3 from "@angular/material/autocomplete";
12
+ import * as i4 from "@angular/material/core";
13
+ import * as i5 from "@angular/material/input";
15
14
  const TIME_FORMAT = /\d{1,2}:\d{1,2}/, DATE_FORMAT = /\d{4}-\d\d-\d\dT\d\d:\d{2}/;
16
15
  function generateValues() {
17
16
  const times = [];
@@ -169,7 +168,7 @@ export class TimePicker {
169
168
  this._destroy.complete();
170
169
  }
171
170
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: TimePicker, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
172
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: TimePicker, selector: "mat-time-picker", inputs: { dateControlName: "dateControlName", placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, host: { properties: { "class.floating": "shouldLabelFloat", "id": "id", "attr.aria-describedby": "describedBy" } }, providers: [{ provide: MatFormFieldControl, useExisting: TimePicker }], ngImport: i0, template: "<input matInput type=\"text\" [matAutocomplete]=\"auto\" [formControl]=\"control\" [placeholder]=\"placeholder\">\r\n<mat-autocomplete #auto>\r\n <mat-option *ngFor=\"let o of options\" [value]=\"o\">{{o}}</mat-option>\r\n</mat-autocomplete>\r\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
171
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: TimePicker, selector: "mat-time-picker", inputs: { dateControlName: "dateControlName", placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, host: { properties: { "class.floating": "shouldLabelFloat", "id": "id", "attr.aria-describedby": "describedBy" } }, providers: [{ provide: MatFormFieldControl, useExisting: TimePicker }], ngImport: i0, template: "<input matInput type=\"text\" [matAutocomplete]=\"auto\" [formControl]=\"control\" [placeholder]=\"placeholder\">\n<mat-autocomplete #auto>\n @for (o of options; track o) {\n <mat-option [value]=\"o\">{{o}}</mat-option>\n }\n</mat-autocomplete>\n", dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
173
172
  }
174
173
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: TimePicker, decorators: [{
175
174
  type: Component,
@@ -177,7 +176,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
177
176
  '[class.floating]': 'shouldLabelFloat',
178
177
  '[id]': 'id',
179
178
  '[attr.aria-describedby]': 'describedBy'
180
- }, template: "<input matInput type=\"text\" [matAutocomplete]=\"auto\" [formControl]=\"control\" [placeholder]=\"placeholder\">\r\n<mat-autocomplete #auto>\r\n <mat-option *ngFor=\"let o of options\" [value]=\"o\">{{o}}</mat-option>\r\n</mat-autocomplete>\r\n" }]
179
+ }, template: "<input matInput type=\"text\" [matAutocomplete]=\"auto\" [formControl]=\"control\" [placeholder]=\"placeholder\">\n<mat-autocomplete #auto>\n @for (o of options; track o) {\n <mat-option [value]=\"o\">{{o}}</mat-option>\n }\n</mat-autocomplete>\n" }]
181
180
  }], ctorParameters: () => [{ type: i1.FocusMonitor }, { type: i0.ElementRef }, { type: i2.NgControl, decorators: [{
182
181
  type: Optional
183
182
  }, {
@@ -193,4 +192,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
193
192
  }], value: [{
194
193
  type: Input
195
194
  }] } });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvaW5wdXRzL3RpbWUtcGlja2VyLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2lucHV0cy90aW1lLXBpY2tlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxXQUFXLEVBQW1DLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztBQUU5QyxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsRUFBRSxXQUFXLEdBQUcsNEJBQTRCLENBQUM7QUFFbEYsU0FBUyxjQUFjO0lBQ3JCLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDVixPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ2QsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3hCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixDQUFDO1FB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LEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsQ0FBQywwQkM1QnhFLHdQQUlBOzsyRkQrQmEsVUFBVTtrQkFWdEIsU0FBUzsrQkFDRSxpQkFBaUIsYUFFaEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLFlBQVksRUFBRSxDQUFDLFFBQ2hFO3dCQUNKLGtCQUFrQixFQUFFLGtCQUFrQjt3QkFDdEMsTUFBTSxFQUFFLElBQUk7d0JBQ1oseUJBQXlCLEVBQUUsYUFBYTtxQkFDekM7OzBCQTJFRSxRQUFROzswQkFBSSxJQUFJO3lDQXJEbkIsZUFBZTtzQkFEZCxLQUFLO2dCQUdGLFdBQVc7c0JBRGQsS0FBSztnQkFTRixRQUFRO3NCQURYLEtBQUs7Z0JBU0YsUUFBUTtzQkFEWCxLQUFLO2dCQVlGLEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIElucHV0LCBPcHRpb25hbCwgU2VsZiwgRWxlbWVudFJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xyXG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2ExMXlcIjtcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9jb2VyY2lvblwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IGlzRGF0ZSB9IGZyb20gXCIuLi8uLi9jb3JlL2Z1bmN0aW9uc1wiO1xyXG5cclxuY29uc3QgVElNRV9GT1JNQVQgPSAvXFxkezEsMn06XFxkezEsMn0vLCBEQVRFX0ZPUk1BVCA9IC9cXGR7NH0tXFxkXFxkLVxcZFxcZFRcXGRcXGQ6XFxkezJ9LztcclxuXHJcbmZ1bmN0aW9uIGdlbmVyYXRlVmFsdWVzKCk6IHN0cmluZ1tdIHtcclxuICBjb25zdCB0aW1lcyA9IFtdO1xyXG4gIGxldCBoID0gMDtcclxuICB3aGlsZSAoaCA8IDI0KSB7XHJcbiAgICBsZXQgbSA9IDA7XHJcbiAgICB3aGlsZSAobSA8IDYwKSB7XHJcbiAgICAgIHRpbWVzLnB1c2goYCR7aH06JHttfWApO1xyXG4gICAgICBtICs9IDE1O1xyXG4gICAgfVxyXG4gICAgaCsrO1xyXG4gIH1cclxuICByZXR1cm4gdGltZXM7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWF0LXRpbWUtcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJ3RpbWUtcGlja2VyLmh0bWwnLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IFRpbWVQaWNrZXIgfV0sXHJcbiAgaG9zdDoge1xyXG4gICAgJ1tjbGFzcy5mbG9hdGluZ10nOiAnc2hvdWxkTGFiZWxGbG9hdCcsXHJcbiAgICAnW2lkXSc6ICdpZCcsXHJcbiAgICAnW2F0dHIuYXJpYS1kZXNjcmliZWRieV0nOiAnZGVzY3JpYmVkQnknXHJcbiAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGltZVBpY2tlciBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBNYXRGb3JtRmllbGRDb250cm9sPHN0cmluZz4sIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG4gIHJlYWRvbmx5IGNvbnRyb2xUeXBlID0gJ3RpbWUtcGlja2VyJztcclxuICByZWFkb25seSBpZCA9IGB0aW1lLXBpY2tlci0ke1RpbWVQaWNrZXIubmV4dElkKyt9YDtcclxuICBmb2N1c2VkID0gZmFsc2U7XHJcbiAgZXJyb3JTdGF0ZSA9IGZhbHNlO1xyXG4gIGRlc2NyaWJlZEJ5ID0gJyc7XHJcbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcbiAgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xyXG4gIHByaXZhdGUgX2RhdGVDb250cm9sOiBGb3JtQ29udHJvbDtcclxuXHJcbiAgZ2V0IGVtcHR5KCkge1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmNvbnRyb2wudmFsdWU7XHJcblxyXG4gICAgcmV0dXJuICF2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBzaG91bGRMYWJlbEZsb2F0KCkgeyByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVtcHR5OyB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGF0ZUNvbnRyb2xOYW1lOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyOyB9XHJcbiAgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gdmFsdWU7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7IH1cclxuICBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9kaXNhYmxlZDsgfVxyXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPyB0aGlzLmNvbnRyb2wuZGlzYWJsZSgpIDogdGhpcy5jb250cm9sLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xyXG4gIHJlYWRvbmx5IGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2wobnVsbCk7XHJcbiAgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICByZWFkb25seSBvcHRpb25zID0gZ2VuZXJhdGVWYWx1ZXMoKTtcclxuICBASW5wdXQoKVxyXG4gIGdldCB2YWx1ZSgpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jb250cm9sLnZhbHVlO1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuICBzZXQgdmFsdWUodmFsOiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICB0aGlzLl9zZXRWYWx1ZSh2YWwsIHRydWUpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9zZXRWYWx1ZSh2YWw6IERhdGUgfCBzdHJpbmcsIGVtaXRFdmVudDogYm9vbGVhbikge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICBpZiAoaXNEYXRlKHZhbCkgfHwgREFURV9GT1JNQVQudGVzdCh2YWwgYXMgc3RyaW5nKSkge1xyXG4gICAgICAgIHZhbCA9IG5ldyBEYXRlKHZhbCk7XHJcbiAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHZhbC5nZXRIb3VycygpICsgJzonICsgdmFsLmdldE1pbnV0ZXMoKSwgeyBlbWl0RXZlbnQgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShUSU1FX0ZPUk1BVC5leGVjKHZhbCBhcyBzdHJpbmcpWzBdLCB7IGVtaXRFdmVudCB9KTtcclxuICAgIH0gZWxzZVxyXG4gICAgICB0aGlzLmNvbnRyb2wucmVzZXQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXHJcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sKSB7XHJcblxyXG4gICAgX2ZvY3VzTW9uaXRvci5tb25pdG9yKF9lbGVtZW50UmVmLCB0cnVlKS5zdWJzY3JpYmUob3JpZ2luID0+IHtcclxuICAgICAgaWYgKHRoaXMuZm9jdXNlZCAmJiAhb3JpZ2luKSB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZvY3VzZWQgPSAhIW9yaWdpbjtcclxuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oJyAnKTtcclxuICB9XHJcblxyXG4gIG9uQ29udGFpbmVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICgoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLnRhZ05hbWUgIT09ICdJTlBVVCcpXHJcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbDogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2V0VmFsdWUodmFsLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICAgIHRoaXMuZXJyb3JTdGF0ZSA9ICF0aGlzLl92YWxpZGF0ZSh2KTtcclxuICAgICAgICBpZiAodiAmJiAhdGhpcy5lcnJvclN0YXRlICYmIHRoaXMuZGF0ZUNvbnRyb2xOYW1lKSB7XHJcbiAgICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5fZGF0ZUNvbnRyb2wudmFsdWU7XHJcbiAgICAgICAgICBkYXRlICYmIHRoaXMuX2FwcGVuZFRpbWUoZGF0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgaWYgKHRoaXMuZGF0ZUNvbnRyb2xOYW1lKSB7XHJcbiAgICAgIHRoaXMuX2RhdGVDb250cm9sID0gdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5wYXJlbnQuY29udHJvbHNbdGhpcy5kYXRlQ29udHJvbE5hbWVdO1xyXG4gICAgICBpZiAoIXRoaXMuX2RhdGVDb250cm9sKSB0aHJvdyBgJHt0aGlzLmNvbnRyb2xUeXBlfSBkYXRlQ29udHJvbE5hbWUgJHt0aGlzLmRhdGVDb250cm9sTmFtZX1gO1xyXG5cclxuICAgICAgdGhpcy5fZGF0ZUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgICBzdWJzY3JpYmUoKHY6IERhdGUpID0+IHtcclxuICAgICAgICAgIHYgJiYgdGhpcy52YWx1ZSAmJiB0aGlzLl9hcHBlbmRUaW1lKHYpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9hcHBlbmRUaW1lKHZhbDogRGF0ZSkge1xyXG4gICAgaWYgKCFpc0RhdGUodmFsKSkgdmFsID0gbmV3IERhdGUodmFsKTtcclxuICAgIGNvbnN0IHBhcnRzID0gdGhpcy52YWx1ZS5zcGxpdCgnOicpO1xyXG4gICAgdmFsLnNldEhvdXJzKHBhcnNlSW50KHBhcnRzWzBdKSwgcGFyc2VJbnQocGFydHNbMV0pKTtcclxuICAgIHRoaXMuX2RhdGVDb250cm9sLnNldFZhbHVlKHZhbC50b0lTT1N0cmluZygpLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3ZhbGlkYXRlKHZhbDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXZhbCkgcmV0dXJuICF0aGlzLl9yZXF1aXJlZDtcclxuICAgIGNvbnN0IHBhcnRzID0gdmFsLnNwbGl0KCc6Jyk7XHJcbiAgICBpZiAocGFydHMubGVuZ3RoID4gMilcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoIS9cXGR7MSwyfS8udGVzdChwYXJ0c1tpXSkpXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICBjb25zdCBwYXJ0ID0gcGFyc2VJbnQocGFydHNbaV0pO1xyXG4gICAgICBpZiAoaXNOYU4ocGFydCkpXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICBlbHNlIGlmIChpID09PSAwICYmIChwYXJ0IDwgMCB8fCBwYXJ0ID4gMjMpKVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgZWxzZSBpZiAoaSA9PT0gMSAmJiAocGFydCA8IDAgfHwgcGFydCA+IDU5KSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZik7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCIgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIj5cclxuPG1hdC1hdXRvY29tcGxldGUgI2F1dG8+XHJcbiAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG8gb2Ygb3B0aW9uc1wiIFt2YWx1ZV09XCJvXCI+e3tvfX08L21hdC1vcHRpb24+XHJcbjwvbWF0LWF1dG9jb21wbGV0ZT5cclxuIl19
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvaW5wdXRzL3RpbWUtcGlja2VyLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2lucHV0cy90aW1lLXBpY2tlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxXQUFXLEVBQW1DLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7O0FBRTlDLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixFQUFFLFdBQVcsR0FBRyw0QkFBNEIsQ0FBQztBQUVsRixTQUFTLGNBQWM7SUFDckIsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNWLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDZCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLENBQUM7UUFD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RUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDLDBCQzVCeEUsNlBBTUE7OzJGRDZCYSxVQUFVO2tCQVZ0QixTQUFTOytCQUNFLGlCQUFpQixhQUVoQixDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsWUFBWSxFQUFFLENBQUMsUUFDaEU7d0JBQ0osa0JBQWtCLEVBQUUsa0JBQWtCO3dCQUN0QyxNQUFNLEVBQUUsSUFBSTt3QkFDWix5QkFBeUIsRUFBRSxhQUFhO3FCQUN6Qzs7MEJBMkVFLFFBQVE7OzBCQUFJLElBQUk7eUNBckRuQixlQUFlO3NCQURkLEtBQUs7Z0JBR0YsV0FBVztzQkFEZCxLQUFLO2dCQVNGLFFBQVE7c0JBRFgsS0FBSztnQkFTRixRQUFRO3NCQURYLEtBQUs7Z0JBWUYsS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgSW5wdXQsIE9wdGlvbmFsLCBTZWxmLCBFbGVtZW50UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XHJcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gXCJAYW5ndWxhci9jZGsvYTExeVwiO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2NvZXJjaW9uXCI7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgaXNEYXRlIH0gZnJvbSBcIi4uLy4uL2NvcmUvZnVuY3Rpb25zXCI7XHJcblxyXG5jb25zdCBUSU1FX0ZPUk1BVCA9IC9cXGR7MSwyfTpcXGR7MSwyfS8sIERBVEVfRk9STUFUID0gL1xcZHs0fS1cXGRcXGQtXFxkXFxkVFxcZFxcZDpcXGR7Mn0vO1xyXG5cclxuZnVuY3Rpb24gZ2VuZXJhdGVWYWx1ZXMoKTogc3RyaW5nW10ge1xyXG4gIGNvbnN0IHRpbWVzID0gW107XHJcbiAgbGV0IGggPSAwO1xyXG4gIHdoaWxlIChoIDwgMjQpIHtcclxuICAgIGxldCBtID0gMDtcclxuICAgIHdoaWxlIChtIDwgNjApIHtcclxuICAgICAgdGltZXMucHVzaChgJHtofToke219YCk7XHJcbiAgICAgIG0gKz0gMTU7XHJcbiAgICB9XHJcbiAgICBoKys7XHJcbiAgfVxyXG4gIHJldHVybiB0aW1lcztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtdGltZS1waWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAndGltZS1waWNrZXIuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogVGltZVBpY2tlciB9XSxcclxuICBob3N0OiB7XHJcbiAgICAnW2NsYXNzLmZsb2F0aW5nXSc6ICdzaG91bGRMYWJlbEZsb2F0JyxcclxuICAgICdbaWRdJzogJ2lkJyxcclxuICAgICdbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSc6ICdkZXNjcmliZWRCeSdcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUaW1lUGlja2VyIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE1hdEZvcm1GaWVsZENvbnRyb2w8c3RyaW5nPiwgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XHJcbiAgcmVhZG9ubHkgY29udHJvbFR5cGUgPSAndGltZS1waWNrZXInO1xyXG4gIHJlYWRvbmx5IGlkID0gYHRpbWUtcGlja2VyLSR7VGltZVBpY2tlci5uZXh0SWQrK31gO1xyXG4gIGZvY3VzZWQgPSBmYWxzZTtcclxuICBlcnJvclN0YXRlID0gZmFsc2U7XHJcbiAgZGVzY3JpYmVkQnkgPSAnJztcclxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuICBvblRvdWNoZWQgPSAoKSA9PiB7IH07XHJcbiAgcHJpdmF0ZSBfZGF0ZUNvbnRyb2w6IEZvcm1Db250cm9sO1xyXG5cclxuICBnZXQgZW1wdHkoKSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuY29udHJvbC52YWx1ZTtcclxuXHJcbiAgICByZXR1cm4gIXZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3VsZExhYmVsRmxvYXQoKSB7IHJldHVybiB0aGlzLmZvY3VzZWQgfHwgIXRoaXMuZW1wdHk7IH1cclxuXHJcbiAgQElucHV0KClcclxuICBkYXRlQ29udHJvbE5hbWU6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7IH1cclxuICBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSB2YWx1ZTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9yZXF1aXJlZDsgfVxyXG4gIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkOyB9XHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA/IHRoaXMuY29udHJvbC5kaXNhYmxlKCkgOiB0aGlzLmNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XHJcbiAgcmVhZG9ubHkgY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChudWxsKTtcclxuICByZWFkb25seSBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHJlYWRvbmx5IG9wdGlvbnMgPSBnZW5lcmF0ZVZhbHVlcygpO1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmNvbnRyb2wudmFsdWU7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG4gIHNldCB2YWx1ZSh2YWw6IHN0cmluZyB8IG51bGwpIHtcclxuICAgIHRoaXMuX3NldFZhbHVlKHZhbCwgdHJ1ZSk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3NldFZhbHVlKHZhbDogRGF0ZSB8IHN0cmluZywgZW1pdEV2ZW50OiBib29sZWFuKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIGlmIChpc0RhdGUodmFsKSB8fCBEQVRFX0ZPUk1BVC50ZXN0KHZhbCBhcyBzdHJpbmcpKSB7XHJcbiAgICAgICAgdmFsID0gbmV3IERhdGUodmFsKTtcclxuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsLmdldEhvdXJzKCkgKyAnOicgKyB2YWwuZ2V0TWludXRlcygpLCB7IGVtaXRFdmVudCB9KTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKFRJTUVfRk9STUFULmV4ZWModmFsIGFzIHN0cmluZylbMF0sIHsgZW1pdEV2ZW50IH0pO1xyXG4gICAgfSBlbHNlXHJcbiAgICAgIHRoaXMuY29udHJvbC5yZXNldCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9mb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcclxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wpIHtcclxuXHJcbiAgICBfZm9jdXNNb25pdG9yLm1vbml0b3IoX2VsZW1lbnRSZWYsIHRydWUpLnN1YnNjcmliZShvcmlnaW4gPT4ge1xyXG4gICAgICBpZiAodGhpcy5mb2N1c2VkICYmICFvcmlnaW4pIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xyXG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pIHtcclxuICAgIHRoaXMuZGVzY3JpYmVkQnkgPSBpZHMuam9pbignICcpO1xyXG4gIH1cclxuXHJcbiAgb25Db250YWluZXJDbGljayhldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgaWYgKChldmVudC50YXJnZXQgYXMgRWxlbWVudCkudGFnTmFtZSAhPT0gJ0lOUFVUJylcclxuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykuZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZXRWYWx1ZSh2YWwsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUodiA9PiB7XHJcbiAgICAgICAgdGhpcy5lcnJvclN0YXRlID0gIXRoaXMuX3ZhbGlkYXRlKHYpO1xyXG4gICAgICAgIGlmICh2ICYmICF0aGlzLmVycm9yU3RhdGUgJiYgdGhpcy5kYXRlQ29udHJvbE5hbWUpIHtcclxuICAgICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLl9kYXRlQ29udHJvbC52YWx1ZTtcclxuICAgICAgICAgIGRhdGUgJiYgdGhpcy5fYXBwZW5kVGltZShkYXRlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgICAgfSk7XHJcbiAgICBpZiAodGhpcy5kYXRlQ29udHJvbE5hbWUpIHtcclxuICAgICAgdGhpcy5fZGF0ZUNvbnRyb2wgPSB0aGlzLm5nQ29udHJvbC5jb250cm9sLnBhcmVudC5jb250cm9sc1t0aGlzLmRhdGVDb250cm9sTmFtZV07XHJcbiAgICAgIGlmICghdGhpcy5fZGF0ZUNvbnRyb2wpIHRocm93IGAke3RoaXMuY29udHJvbFR5cGV9IGRhdGVDb250cm9sTmFtZSAke3RoaXMuZGF0ZUNvbnRyb2xOYW1lfWA7XHJcblxyXG4gICAgICB0aGlzLl9kYXRlQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICAgIHN1YnNjcmliZSgodjogRGF0ZSkgPT4ge1xyXG4gICAgICAgICAgdiAmJiB0aGlzLnZhbHVlICYmIHRoaXMuX2FwcGVuZFRpbWUodik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX2FwcGVuZFRpbWUodmFsOiBEYXRlKSB7XHJcbiAgICBpZiAoIWlzRGF0ZSh2YWwpKSB2YWwgPSBuZXcgRGF0ZSh2YWwpO1xyXG4gICAgY29uc3QgcGFydHMgPSB0aGlzLnZhbHVlLnNwbGl0KCc6Jyk7XHJcbiAgICB2YWwuc2V0SG91cnMocGFyc2VJbnQocGFydHNbMF0pLCBwYXJzZUludChwYXJ0c1sxXSkpO1xyXG4gICAgdGhpcy5fZGF0ZUNvbnRyb2wuc2V0VmFsdWUodmFsLnRvSVNPU3RyaW5nKCksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdmFsaWRhdGUodmFsOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGlmICghdmFsKSByZXR1cm4gIXRoaXMuX3JlcXVpcmVkO1xyXG4gICAgY29uc3QgcGFydHMgPSB2YWwuc3BsaXQoJzonKTtcclxuICAgIGlmIChwYXJ0cy5sZW5ndGggPiAyKVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICghL1xcZHsxLDJ9Ly50ZXN0KHBhcnRzW2ldKSlcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGNvbnN0IHBhcnQgPSBwYXJzZUludChwYXJ0c1tpXSk7XHJcbiAgICAgIGlmIChpc05hTihwYXJ0KSlcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGVsc2UgaWYgKGkgPT09IDAgJiYgKHBhcnQgPCAwIHx8IHBhcnQgPiAyMykpXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICBlbHNlIGlmIChpID09PSAxICYmIChwYXJ0IDwgMCB8fCBwYXJ0ID4gNTkpKSByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcclxuICAgIHRoaXMuX2ZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLl9lbGVtZW50UmVmKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIiBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiPlxuPG1hdC1hdXRvY29tcGxldGUgI2F1dG8+XG4gIEBmb3IgKG8gb2Ygb3B0aW9uczsgdHJhY2sgbykge1xuICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJvXCI+e3tvfX08L21hdC1vcHRpb24+XG4gIH1cbjwvbWF0LWF1dG9jb21wbGV0ZT5cbiJdfQ==
@@ -436,4 +436,4 @@ export function reportProgress(attachment) {
436
436
  }
437
437
  export class PositionError {
438
438
  }
439
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbGJveC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL21haWxib3guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQXlCLGFBQWEsRUFBcUIsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTFILE9BQU8sRUFBRSxVQUFVLEVBQW1CLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBR3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7QUFJL0MsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUFxQixPQUFPLENBQUMsQ0FBQztBQVM5RSxNQUFNLE9BQU8sY0FBYztJQU16QixZQUFvQixRQUF3QixFQUNsQyxLQUF5QixFQUNqQyxTQUFxQixFQUNiLEtBQWlCO1FBSFAsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDbEMsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFFekIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQVJWLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBdUIsQ0FBQztRQUM5QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUNsRCxNQUFNO1FBQ1UsWUFBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkMsWUFBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUF3WHZEOztXQUVHO1FBQ0ssVUFBSyxHQUFHLEdBQU0sRUFBRSxDQUFDLENBQUMsT0FBc0MsRUFBRSxFQUFFO1lBQ2xF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Q0FBZ0M7QUFDaEMsOEJBQThCO0FBQzlCLHNCQUFzQjtBQUN0QixzQkFBc0I7QUFDdEIsUUFBUTtBQUNSLEtBQUs7QUFDTCxHQUFHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFNdEIsWUFBWSxPQUFPLElBQUksQ0FBQztDQUN6QjtBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsVUFBMkI7SUFDeEQsT0FBTyxDQUFDLE1BQThCLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ2xFLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDZixJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsZUFBZTtnQkFDZix1Q0FBdUM7Z0JBQ3ZDLGlDQUFpQztnQkFDakMsZ0JBQWdCO2dCQUNoQixzQ0FBc0M7Z0JBQ3RDLG9DQUFvQztnQkFDcEMsT0FBTztnQkFDUCw2Q0FBNkM7Z0JBQzdDLDJDQUEyQztnQkFDM0MsNkJBQTZCO2dCQUM3QiwyQ0FBMkM7Z0JBQzNDLDBCQUEwQjtnQkFDMUIsS0FBSztnQkFDTCxRQUFRO2dCQUNSLDZEQUE2RDtnQkFDN0QsdUJBQXVCO2dCQUN2QixpQ0FBaUM7Z0JBQ2pDLHlCQUF5QjtnQkFDekIsa0NBQWtDO2dCQUNsQyxPQUFPO2dCQUNQLFdBQVc7Z0JBQ1gsR0FBRztnQkFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoQixPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFckIsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ2hDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUNELE1BQU0sT0FBTyxhQUFhO0NBTXpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50LCBIdHRwRXZlbnRUeXBlLCBIdHRwUHJvZ3Jlc3NFdmVudCwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZhYmxlSW5wdXQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFwLCBzd2l0Y2hNYXAsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1lbnQsIFVzZXJJbmZvLCBSZWNpcGllbnRNb2RlbCwgQXR0YWNobWVudCwgU2NoZWR1bGVkRXZlbnQsIEhlYWRlck1vZGVsLCBEb2N1bWVudE1vZGVsLCBWb3RlLCBDb21tZW50VmVyc2lvbiwgQ2hhaW4gfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IGNsZWFudXAsIGlzQXJyYXkgfSBmcm9tICcuL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IEh1YlNlcnZpY2UgfSBmcm9tICcuL2h1Yi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25JbXBsIH0gZnJvbSAnLi9hdXRoZW50aWNhdGlvbic7XHJcblxyXG5leHBvcnQgY29uc3QgRE9DVU1FTlRfTU9ERUwgPSBuZXcgSW5qZWN0aW9uVG9rZW48RG9jdW1lbnRNb2RlbDxhbnk+PignbW9kZWwnKTtcclxuXHJcbmV4cG9ydCB0eXBlIEZpbHRlclR5cGUgPSAncmVjZW50JyB8ICd1bnJlYWQnIHwgJ2ZsYWdnZWQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VFdmVudDxUPiB7XHJcbiAgbW9kZWw6IFJlY2lwaWVudE1vZGVsPFQ+O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgTWFpbGJveFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZSQgPSBuZXcgU3ViamVjdDxSZWNpcGllbnRNb2RlbDxhbnk+PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlbGV0ZSQgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XHJcbiAgLyoqICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGNoYW5nZWQgPSB0aGlzLl9jaGFuZ2UkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHB1YmxpYyByZWFkb25seSBkZWxldGVkID0gdGhpcy5fZGVsZXRlJC5hc09ic2VydmFibGUoKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2F1dGg6IEF1dGhlbnRpY2F0aW9uSW1wbCxcclxuICAgIG1lc3NhZ2luZzogSHViU2VydmljZSxcclxuICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQpIHtcclxuICAgIG1lc3NhZ2luZy5uZXckLlxyXG4gICAgICBzdWJzY3JpYmUobSA9PiB7XHJcbiAgICAgICAgaWYgKG0udXNlcklkICE9PSBfc2Vzc2lvbi5wcm9maWxlLnVzZXJJZCkgcmV0dXJuO1xyXG4gICAgICAgIF9zZXNzaW9uLnByb2ZpbGUuaW5ib3hDb3VudCsrO1xyXG4gICAgICAgIGNvbnN0IGZvbGRlciA9IF9zZXNzaW9uLnByb2ZpbGUuZm9sZGVycy5maW5kKGYgPT4gZi5uYW1lID09PSBtLm1vZGVsLmZvbGRlcklkKTtcclxuICAgICAgICBmb2xkZXIuY291bnQrKztcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGZvcm1hdERvd25sb2FkVXJsKGRvY3VtZW50SWQ6IG51bWJlciwgZmlsZUlkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IHVybCA9IGAvYXBpL2F0dGFjaG1lbnRzLyR7ZG9jdW1lbnRJZH0vJHtmaWxlSWR9YDtcclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy5fYXV0aC5nZXRBY2Nlc3NUb2tlbigpO1xyXG4gICAgaWYgKHRva2VuKVxyXG4gICAgICB1cmwgKz1cclxuICAgICAgICBgP2FjY2Vzc190b2tlbj0ke3Rva2VufWA7XHJcbiAgICByZXR1cm4gdXJsO1xyXG4gIH1cclxuICBkb3dubG9hZChkb2N1bWVudElkOiBudW1iZXIsIGZpbGVJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vbmV3IE9ic2VydmFibGU8YW55PihvYnNlcnZlID0+IHtcclxuICAgIC8vICBvYnNlcnZlLm5leHQoe30pO1xyXG4gICAgLy8gIHJldHVybiB7XHJcbiAgICAvLyAgICB1bnN1YnNjcmliZSgpIHsgfVxyXG4gICAgLy8gIH1cclxuICAgIC8vfSk7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQoYC9hcGkvYXR0YWNobWVudHMvJHtkb2N1bWVudElkfS8ke2ZpbGVJZH1gLCB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyxcclxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW1vdmVhdHRhY2htZW50KHJlY2lwaWVudElkOiBudW1iZXIsIGZpbGVJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmRlbGV0ZShgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfS8ke2ZpbGVJZH1gKTtcclxuICB9XHJcbiAgcmVhZChpZDogbnVtYmVyLCByZWFkOiBib29sZWFuLCBmb2xkZXJJZD86IHN0cmluZywgcmVjZWl2ZWQ/OiBEYXRlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dChgL2FwaS9tYWlsYm94L3JlYWQvJHtpZH1gLCB1bmRlZmluZWQsIHsgcGFyYW1zOiB7IHJlYWQgfSBhcyBhbnkgfSkucGlwZSh0YXAoKCkgPT5cclxuICAgICAgZm9sZGVySWQgJiYgdGhpcy5fdXBkYXRldW5yZWFkY291bnRlcihyZWNlaXZlZCwgZm9sZGVySWQsIHJlYWQgPyAxIDogLTEpXHJcbiAgICApKTtcclxuICB9XHJcbiAgY29tbWVudHMoaWQ6IG51bWJlciwgYmVmb3JlOiBEYXRlKTogT2JzZXJ2YWJsZTxDb21tZW50W10+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxDb21tZW50W10+KGAvYXBpL2NvbW1lbnRzLyR7aWR9YCwgeyBwYXJhbXM6IHsgYmVmb3JlOiBuZXcgRGF0ZShiZWZvcmUpLnRvSlNPTigpIH0gfSk7XHJcbiAgfVxyXG4gIHRhZ3MoaWQ6IG51bWJlciwgdGFnczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL21haWxib3gvdGFnLyR7aWR9YCwgeyB0YWdzIH0pLnBpcGUodGFwKCgpID0+IHtcclxuICAgICAgdGhpcy5fY2hhbmdlJC5uZXh0KHsgaWQsIHRhZ3MgfSBhcyBhbnkpO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZG9jdW1lbnRJZFxyXG4gICAqIEBwYXJhbSBzdGF0ZUlkXHJcbiAgICogQHBhcmFtIHVzZXJJZCBzdWJzdGl0dXRlXHJcbiAgICovXHJcbiAgY2hhbmdlU3RhdGUoZG9jdW1lbnRJZDogbnVtYmVyLCBzdGF0ZUlkOiBzdHJpbmcsIHVzZXJJZD86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9jaGFuZ2VzdGF0ZS8ke2RvY3VtZW50SWR9YCwgeyBzdGF0ZUlkLCB1c2VySWQgfSk7XHJcbiAgfVxyXG4gIG1vdmUoaWQ6IG51bWJlciwgZm9sZGVySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9tb3ZlLyR7aWR9P2ZvbGRlcklkPSR7Zm9sZGVySWR9YCwge30pLnBpcGUodGFwKCgpID0+IHtcclxuICAgICAgdGhpcy5fY2hhbmdlJC5uZXh0KHtcclxuICAgICAgICBpZCxcclxuICAgICAgICBmb2xkZXJJZFxyXG4gICAgICB9IGFzIGFueSk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG4gIGNoZWNrT3V0KHJlY2lwaWVudElkOiBudW1iZXIsIHZlcnNpb246IG51bWJlciwgYXR0YWNobWVudElkOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDxBdHRhY2htZW50PihgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfS8ke2F0dGFjaG1lbnRJZH0vY2hlY2tvdXRgLCBudWxsLCB7IHBhcmFtczogeyB2ZXJzaW9uIH0gfSk7XHJcbiAgfVxyXG4gIGNoZWNrSW4ocmVjaXBpZW50SWQ6IG51bWJlciwgdmVyc2lvbjogbnVtYmVyLCBhdHRhY2htZW50SWQ6IG51bWJlciwgZmlsZTogRmlsZSk6IE9ic2VydmFibGU8QXR0YWNobWVudD4ge1xyXG4gICAgY29uc3QgZmQgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGZkLmFwcGVuZChmaWxlLm5hbWUsIGZpbGUpO1xyXG4gICAgY29uc3QgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KCdQVVQnLFxyXG4gICAgICBgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfS8ke2F0dGFjaG1lbnRJZH0vY2hlY2tpbj92ZXJzaW9uPSR7dmVyc2lvbn1gLCBmZCwge1xyXG4gICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgLy9jb25zdCBpbml0aWFsU3RhdGU6IFVwbG9hZEV2ZW50ID0geyBzdGF0ZTogJ1BFTkRJTkcnLCBwcm9ncmVzczogMCB9XHJcbiAgICAvL2NvbnN0IGNhbGN1bGF0ZVN0YXRlID0gKFxyXG4gICAgLy8gIHVwbG9hZDogVXBsb2FkRXZlbnQsXHJcbiAgICAvLyAgZXZlbnQ6IEh0dHBFdmVudDx1bmtub3duPlxyXG4gICAgLy8pOiBVcGxvYWRFdmVudCA9PiB7XHJcbiAgICAvLyAgLy8gaW1wbGVtZW50YXRpb25cclxuICAgIC8vfVxyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGFueT4ob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIHRoaXMuX2h0dHAucmVxdWVzdChyZXEpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogZXZlbnQgPT4ge1xyXG4gICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkge1xyXG4gICAgICAgICAgICAvLyAgb2JzZXJ2ZS5uZXh0KG5ldyBVcGxvYWRFdmVudChcclxuICAgICAgICAgICAgLy8gICAgZmlsZS5uYW1lLFxyXG4gICAgICAgICAgICAvLyAgICAoZXZlbnQgYXMgUHJvZ3Jlc3NFdmVudCkubG9hZGVkLFxyXG4gICAgICAgICAgICAvLyAgICAoZXZlbnQgYXMgUHJvZ3Jlc3NFdmVudCkudG90YWxcclxuICAgICAgICAgICAgLy8gICkpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAgICAgICBjb25zdCByZXMgPSBldmVudCBhcyBIdHRwUmVzcG9uc2U8YW55PjtcclxuICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gcmVzLmJvZHkgYXMgQXR0YWNobWVudDtcclxuICAgICAgICAgICAgICBvYnNlcnZlLm5leHQobW9kZWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICBvYnNlcnZlLmVycm9yKHsgc3RhdHVzOiByZXMuc3RhdHVzLCBlcnJvcjogcmVzLmJvZHkgfSk7XHJcbiAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBlcnJvcjogZSA9PiB7XHJcbiAgICAgICAgICBvYnNlcnZlLmVycm9yKGUpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgdW5zdWJzY3JpYmUoKSB7XHJcbiAgICAgICAgICAvL3JlcS5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICB1cGxvYWQocmVjaXBpZW50SWQ6IG51bWJlciwgZm9ybUlkOiBzdHJpbmcsIHZlcnNpb246IG51bWJlciwgZmlsZTogRmlsZSwgb3B0aW9ucz86IHsgaXNQcml2YXRlPzogYm9vbGVhbiB9KTogT2JzZXJ2YWJsZTxBdHRhY2htZW50PjtcclxuICB1cGxvYWQocmVjaXBpZW50SWQ6IG51bWJlciwgZm9ybUlkOiBzdHJpbmcsIHZlcnNpb246IG51bWJlciwgZmlsZXM6IEZpbGVbXSwgb3B0aW9ucz86IHsgaXNQcml2YXRlPzogYm9vbGVhbiB9KTogT2JzZXJ2YWJsZTxBdHRhY2htZW50W10+O1xyXG4gIHVwbG9hZChyZWNpcGllbnRJZDogbnVtYmVyLCBmb3JtSWQ6IHN0cmluZywgdmVyc2lvbjogbnVtYmVyLCBmaWxlczogRmlsZSB8IEZpbGVbXSwgb3B0aW9ucz86IHsgaXNQcml2YXRlPzogYm9vbGVhbiB9KTogT2JzZXJ2YWJsZTxBdHRhY2htZW50IHwgQXR0YWNobWVudFtdPiB7XHJcbiAgICBjb25zdCBmZCA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgaWYgKGlzQXJyYXkoZmlsZXMpKSBmaWxlcy5mb3JFYWNoKGYgPT5cclxuICAgICAgZmQuYXBwZW5kKGYubmFtZSwgZikpO1xyXG4gICAgZWxzZSBmZC5hcHBlbmQoZmlsZXMubmFtZSwgZmlsZXMpO1xyXG4gICAgLy9jb25zdCBieXRlc1BlckNodW5rID0gMjAgKiAxMDI0ICogMTAyNDtcclxuICAgIC8vIGFxdWlyZSB0aGUgbG9jYXRpb24gcHJpb3IgdG8gc2VuZGluZyB0aGUgcmVxdWVzdFxyXG4gICAgcmV0dXJuIHRoaXMuX2dlb0xvY2F0aW9uKGZvcm1JZCkucGlwZShzd2l0Y2hNYXAocGFyYW1zID0+XHJcbiAgICAgIG5ldyBPYnNlcnZhYmxlPGFueT4ob2JzZXJ2ZSA9PiB7XHJcbiAgICAgICAgbGV0IHVybCA9IGAvYXBpL2F0dGFjaG1lbnRzLyR7cmVjaXBpZW50SWR9P3ZlcnNpb249JHt2ZXJzaW9ufWA7XHJcbiAgICAgICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKHAgPT4gdXJsICs9IGAmJHtwfT0ke3BhcmFtc1twXX1gKTtcclxuICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgaWYgKG9wdGlvbnMuaXNQcml2YXRlKSB1cmwgKz0gJyZpc3ByaXZhdGU9dHJ1ZSdcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KCdQT1NUJywgdXJsLCBmZCwge1xyXG4gICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5faHR0cC5yZXF1ZXN0KHJlcSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkge1xyXG4gICAgICAgICAgICAgIC8vIFRoaXMgaXMgYW4gdXBsb2FkIHByb2dyZXNzIGV2ZW50LiBDb21wdXRlIGFuZCBzaG93IHRoZSAlIGRvbmU6XHJcbiAgICAgICAgICAgICAgLy9jb25zdCBwZXJjZW50RG9uZSA9IE1hdGgucm91bmQoMTAwICogZXZlbnQubG9hZGVkIC8gZXZlbnQudG90YWwpO1xyXG4gICAgICAgICAgICAgIC8vY29uc29sZS5sb2coYEZpbGUgaXMgJHtwZXJjZW50RG9uZX0lIHVwbG9hZGVkLmApO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcmVzID0gZXZlbnQgYXMgSHR0cFJlc3BvbnNlPGFueT47XHJcbiAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbW9kZWwgPSByZXMuYm9keSBhcyBBdHRhY2htZW50W107XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlLm5leHQoaXNBcnJheShmaWxlcykgPyBtb2RlbCA6IG1vZGVsWzBdKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZS5lcnJvcih7IHN0YXR1czogcmVzLnN0YXR1cywgZXJyb3I6IHJlcy5ib2R5IH0pO1xyXG4gICAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSwgZXJyb3I6IGUgPT4ge1xyXG4gICAgICAgICAgICBvYnNlcnZlLmVycm9yKGUpO1xyXG4gICAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIHVuc3Vic2NyaWJlKCkge1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSkpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogcmV0cmlldmUgc2VuZGVyc1xyXG4gICAqIEBwYXJhbSBuYW1lXHJcbiAgICovXHJcbiAgc2VuZGVycyhuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXJJbmZvW10+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxVc2VySW5mb1tdPignL2FwaS9tYWlsYm94L3NlbmRlcnMvJywge1xyXG4gICAgICBwYXJhbXM6IHtcclxuICAgICAgICBuYW1lXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBmbGFnKGlkOiBudW1iZXIsIGZsYWc6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL21haWxib3gvZmxhZy8ke2lkfT9mbGFnPSR7ZmxhZ31gLCBudWxsKS5waXBlKHRhcCgoKSA9PiB0aGlzLl9jaGFuZ2UkLm5leHQoeyBpZCwgZmxhZyB9IGFzIGFueSkpKTtcclxuICB9XHJcbiAgdmlld2VkY29tbWVudHMoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8eyB0aW1lOiBEYXRlIH0+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDx7IHRpbWU6IERhdGUgfT4oYC9hcGkvY29tbWVudHMvdmlld2VkLyR7aWR9YCwge30sIHsgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfSB9KS5waXBlKHRhcCgoZTogeyB0aW1lOiBEYXRlIH0pID0+IHRoaXMuX2NoYW5nZSQubmV4dCh7IGlkLCB2aWV3ZWQ6IGUudGltZSB9IGFzIGFueSkpKTtcclxuICB9XHJcbiAgdHlwaW5nKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL2NvbW1lbnRzL3R5cGluZy8ke2lkfWAsIHt9LCB7IGhlYWRlcnM6IHsgJ25vLXByb2dyZXNzJzogJ3RydWUnIH0gfSk7XHJcbiAgfVxyXG4gIGVkaXRpbmcoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9lZGl0aW5nLyR7aWR9YCwge30sIHsgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfSB9KTtcclxuICB9XHJcbiAgY29weShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxhbnk+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0PFJlY2lwaWVudE1vZGVsPGFueT4+KGAvYXBpL21haWxib3gvY29weS8ke2lkfWAsIHt9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkIGRvY3VtZW50IGlkXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBjb21tZW50KGlkOiBudW1iZXIsIG9wdGlvbnM6IHtcclxuICAgIHRleHQ/OiBzdHJpbmcsXHJcbiAgICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH0sXHJcbiAgICBpbWFnZT86IHN0cmluZyxcclxuICAgIHBhcmVudElkPzogbnVtYmVyXHJcbiAgfSk6IE9ic2VydmFibGU8Q29tbWVudD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdDxDb21tZW50PihgL2FwaS9jb21tZW50cy8ke2lkfWAsIG9wdGlvbnMpO1xyXG4gIH1cclxuICBjb21tZW50dXBkYXRlKGlkOiBudW1iZXIsIGNvbW1lbnRJZDogbnVtYmVyLCBvcHRpb25zOiB7XHJcbiAgICB0ZXh0Pzogc3RyaW5nLFxyXG4gICAgaW1hZ2U/OiBzdHJpbmcsXHJcbiAgICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH1cclxuICB9KTogT2JzZXJ2YWJsZTxDb21tZW50PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8Q29tbWVudD4oYC9hcGkvY29tbWVudHMvZWRpdC8ke2lkfS8ke2NvbW1lbnRJZH1gLCBvcHRpb25zKTtcclxuICB9XHJcbiAgaW5mbzxUID0gYW55Pihkb2N1bWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPERvY3VtZW50TW9kZWw8VD4+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxEb2N1bWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsYm94L2luZm8vJHtkb2N1bWVudElkfWApO1xyXG4gIH1cclxuICB0aW1lbGluZShkb2N1bWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPENoYWluPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8Q2hhaW4+KGAvYXBpL21haWxib3gvdGltZWxpbmUvJHtkb2N1bWVudElkfWApO1xyXG4gIH1cclxuICB2b3RlKGlkOiBudW1iZXIsIGNvbW1lbnRJZDogbnVtYmVyLCB2YWx1ZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnBvc3QoYC9hcGkvY29tbWVudHMvdm90ZS8ke2lkfS8ke2NvbW1lbnRJZH1gLCB7fSwgeyBwYXJhbXM6IHsgdmFsdWU6IHZhbHVlLnRvU3RyaW5nKCkgfSB9KTtcclxuICB9XHJcbiAgdm90ZXMoaWQ6IG51bWJlciwgY29tbWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFZvdGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFZvdGVbXT4oYC9hcGkvY29tbWVudHMvdm90ZXMvJHtpZH0vJHtjb21tZW50SWR9YCk7XHJcbiAgfVxyXG4gIGVkaXRzKGlkOiBudW1iZXIsIGNvbW1lbnRJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxDb21tZW50VmVyc2lvbltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8Q29tbWVudFZlcnNpb25bXT4oYC9hcGkvY29tbWVudHMvZWRpdHMvJHtpZH0vJHtjb21tZW50SWR9YCk7XHJcbiAgfVxyXG4gIGZpbmRBbGwoZmlsdGVyOiB7IHR5cGU/OiBGaWx0ZXJUeXBlOyBjb250YWlucz86IHN0cmluZzsgc3RhdGU/OiBzdHJpbmc7IGZvcm0/OiBzdHJpbmc7IGZvbGRlcklkPzogc3RyaW5nOyBzZW5kZXJJZD86IHN0cmluZzsgfSxcclxuICAgIG9wdGlvbnM/OiB7IHNraXA/OiBudW1iZXI7IHRha2U/OiBudW1iZXI7IG9yZGVyQnk/OiAndmFsdWUnIHwgJ3ZpZXdlZCcgfCAnZGF0ZScgfSk6IE9ic2VydmFibGU8SGVhZGVyTW9kZWxbXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zOiBhbnkgPSB7IC4uLmZpbHRlciwgLi4ub3B0aW9ucyB9O1xyXG4gICAgY2xlYW51cChwYXJhbXMpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PEhlYWRlck1vZGVsW10+KCcvYXBpL21haWwnLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfd3JhcDxUPihmb3JtOiBzdHJpbmcsIHByb2plY3Q6ICh2YWx1ZTogQ29vcmRzLCBpbmRleDogbnVtYmVyKSA9PiBPYnNlcnZhYmxlSW5wdXQ8UmVjaXBpZW50TW9kZWw8VD4+KSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybSkucGlwZShzd2l0Y2hNYXAocHJvamVjdCksIHRhcChtID0+IHtcclxuICAgICAgKG0gYXMgSXRlbUV4dHJhKS5sb2FkZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9jaGFuZ2UkLm5leHQobSk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG4gIGNyZWF0ZTxUID0gYW55Pihmb3JtOiBzdHJpbmcsIG1vZGVsPzogVCk6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8VD4+IHtcclxuICAgIC8vICByZXR1cm4gdGhpcy5fd3JhcChmb3JtLCBwID0+XHJcbiAgICAvLyAgICB0aGlzLl9odHRwLnBvc3Q8UmVjaXBpZW50TW9kZWw8VD4+KCcvYXBpL21haWwnLCBtb2RlbCwge1xyXG4gICAgLy8gICAgICBwYXJhbXM6IHtcclxuICAgIC8vICAgICAgICBmb3JtLFxyXG4gICAgLy8gICAgICAgIC4uLnBcclxuICAgIC8vICAgICAgfVxyXG4gICAgLy8gICAgfSkpXHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybSkucGlwZShzd2l0Y2hNYXAocCA9PlxyXG4gICAgICB0aGlzLl9odHRwLnBvc3Q8UmVjaXBpZW50TW9kZWw8VD4+KCcvYXBpL21haWwnLCBtb2RlbCwge1xyXG4gICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgZm9ybSxcclxuICAgICAgICAgIC4uLnBcclxuICAgICAgICB9XHJcbiAgICAgIH0pKSwgdGhpcy5fc3luYzxUPigpKTtcclxuICB9XHJcbiAgZ2V0PFQgPSBhbnk+KGlkOiBudW1iZXIsIHJlYWQ/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxUPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFJlY2lwaWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsLyR7aWR9YCkucGlwZShcclxuICAgICAgdGFwKChtOiBSZWNpcGllbnRNb2RlbCkgPT5cclxuICAgICAgICByZWFkID09PSBmYWxzZSAmJiBtLnJlYWQgPT09IHRydWUgJiZcclxuICAgICAgICB0aGlzLl91cGRhdGV1bnJlYWRjb3VudGVyKG0ucmVjZWl2ZWQsIG0uZm9sZGVySWQsIC0xKVxyXG4gICAgICApKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdXBkYXRldW5yZWFkY291bnRlcihkYXRlOiBEYXRlLCBmb2xkZXJJZDogc3RyaW5nLCB2YWw6IG51bWJlcikge1xyXG4gICAgaWYgKFxyXG4gICAgICAvLyBkYXRlIGlzIGFib3ZlIHdhdGVybWFya1xyXG4gICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUub3B0aW9ucy5pbmJveFZpZXcgJiZcclxuICAgICAgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLm9wdGlvbnMuaW5ib3hWaWV3IDwgZGF0ZVxyXG4gICAgKVxyXG4gICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuaW5ib3hDb3VudCArPSB2YWw7XHJcbiAgICAvLyBkZWNyZWFzZVxyXG4gICAgY29uc3QgZm9sZGVyID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmZvbGRlcnMuXHJcbiAgICAgIGZpbmQoZiA9PiBmLm5hbWUgPT09IGZvbGRlcklkKTtcclxuICAgIGZvbGRlci5jb3VudCA9IE1hdGgubWF4KDAsIGZvbGRlci5jb3VudCArIHZhbCk7XHJcbiAgfVxyXG5cclxuICBzYXZlPFQgPSBhbnk+KGlkOiBudW1iZXIsIGZvcm06IHN0cmluZywgdmVyc2lvbjogbnVtYmVyLCBtb2RlbDoge30sIGZpbGVzPzogRmlsZVtdIHwgRmlsZUxpc3QpOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPFQ+PiB7XHJcbiAgICAvL2NvbnN0IGZkID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAvL2NvbnN0IG1vZGVsQmxvYiA9IG5ldyBCbG9iKFtKU09OLnN0cmluZ2lmeShtb2RlbCldLCB7XHJcbiAgICAvLyAgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgLy99KTtcclxuICAgIC8vZmQuYXBwZW5kKCdmb3JtLWRhdGEnLCBtb2RlbEJsb2IpO1xyXG4gICAgLy9pZiAoZmlsZXMpIHtcclxuICAgIC8vICBpZiAoaXNBcnJheShmaWxlcykpIGZpbGVzLmZvckVhY2goZiA9PlxyXG4gICAgLy8gICAgZmQuYXBwZW5kKGYubmFtZSwgZikpO1xyXG4gICAgLy8gIGVsc2UgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgLy8gICAgbGV0IGZpbGUgPSBmaWxlcy5pdGVtKGkpO1xyXG4gICAgLy8gICAgZmQuYXBwZW5kKGZpbGUubmFtZSwgZmlsZSk7XHJcbiAgICAvLyAgfVxyXG4gICAgLy99XHJcbiAgICAvLyAgcmV0dXJuIHRoaXMuX3dpdGhHZW9Mb2NhdGlvbihmb3JtKS5waXBlKHN3aXRjaE1hcChwYXJhbXMgPT4ge1xyXG4gICAgLy8gICAgbGV0IHVybCA9IGAvYXBpL21haWwvJHtpZH0/dmVyc2lvbj0ke3ZlcnNpb259YDtcclxuICAgIC8vICAgIE9iamVjdC5rZXlzKHBhcmFtcykuZm9yRWFjaChwID0+IHVybCArPSBgJiR7cH09JHtwYXJhbXNbcF19YCk7XHJcbiAgICAvLyAgICBjb25zdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoJ1BVVCcsIHVybCwgZmQsIHtcclxuICAgIC8vICAgIH0pO1xyXG4gICAgLy8gICAgcmV0dXJuIHRoaXMuX2h0dHAucmVxdWVzdChyZXEpLnBpcGUobWFwKGV2ZW50ID0+IHtcclxuICAgIC8vICAgICAgY29uc3QgcmVzID0gZXZlbnQgYXMgSHR0cFJlc3BvbnNlPGFueT47XHJcbiAgICAvLyAgICAgIGlmIChyZXMuc3RhdHVzID09PSAyMDApIHtcclxuICAgIC8vICAgICAgICBjb25zdCBtb2RlbCA9IHJlcy5ib2R5IGFzIFJlY2lwaWVudE1vZGVsPGFueT47XHJcbiAgICAvLyAgICAgICAgcmV0dXJuIG1vZGVsO1xyXG4gICAgLy8gICAgICB9XHJcbiAgICAvLyAgICAgIGVsc2VcclxuICAgIC8vICAgICAgICByZXR1cm4gdGhyb3dFcnJvcih7IHN0YXR1czogcmVzLnN0YXR1cywgZXJyb3I6IHJlcy5ib2R5IH0pO1xyXG4gICAgLy8gICAgfSkpXHJcbiAgICAvLyAgfSksIHRoaXMuX25vdGlmeTxUPigpKTtcclxuICAgIHJldHVybiB0aGlzLl9nZW9Mb2NhdGlvbihmb3JtKS5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAocGFyYW1zID0+IHRoaXMuX2h0dHAucHV0PFJlY2lwaWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsLyR7aWR9P3ZlcnNpb249JHt2ZXJzaW9ufWAsIG1vZGVsLCB7IHBhcmFtcyB9KSksXHJcbiAgICAgIHRoaXMuX3N5bmM8VD4oKSk7XHJcbiAgfVxyXG4gIGRlbGV0ZShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmRlbGV0ZShgL2FwaS9tYWlsLyR7aWR9YCkucGlwZSh0YXAoKCkgPT5cclxuICAgICAgdGhpcy5fZGVsZXRlJC5uZXh0KGlkKSkpO1xyXG4gIH1cclxuICByZW1vdmVjb21tZW50KGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZGVsZXRlKGAvYXBpL2NvbW1lbnRzLyR7aWR9YCk7XHJcbiAgfVxyXG4gIHBvc3Q8VCA9IGFueT4oZm9ybTogc3RyaW5nLCBtb2RlbD86IGFueSk6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8VD4+IHtcclxuICAgIHJldHVybiB0aGlzLl93cmFwKGZvcm0sIHAgPT5cclxuICAgICAgdGhpcy5faHR0cC5wb3N0PFJlY2lwaWVudE1vZGVsPGFueT4+KCcvYXBpL21haWwnLCBtb2RlbCwge1xyXG4gICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgZ286IHRydWUsXHJcbiAgICAgICAgICBmb3JtLFxyXG4gICAgICAgICAgLi4ucFxyXG4gICAgICAgIH1cclxuICAgICAgfSkpO1xyXG4gIH1cclxuICBzdWJtaXQ8VCA9IGFueT4oaWQ6IG51bWJlciwgdmVyc2lvbjogbnVtYmVyLCBmb3JtOiBzdHJpbmcsIG1vZGVsPzogYW55KTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxUPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2dlb0xvY2F0aW9uKGZvcm0pLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcChwYXJhbXMgPT5cclxuICAgICAgICB0aGlzLl9odHRwLnB1dDxSZWNpcGllbnRNb2RlbDxUPj4oYC9hcGkvbWFpbC8ke2lkfT92ZXJzaW9uPSR7dmVyc2lvbn0mZ289dHJ1ZWAsIG1vZGVsLCB7IHBhcmFtcyB9KSksXHJcbiAgICAgIHRoaXMuX3N5bmM8VD4oKSk7XHJcbiAgfVxyXG4gIHNlbmQ8VCA9IGFueT4oaWQ6IG51bWJlciwgdmVyc2lvbjogbnVtYmVyLCBmb3JtOiBzdHJpbmcsIG1vZGVsOiBhbnksIGFjdGlvbjogc3RyaW5nLCBhY3Rpb25BcmdzOiB7fSwgcmVhZD86IGJvb2xlYW4sIGZvbGRlcklkPzogc3RyaW5nLCByZWNlaXZlZD86IERhdGUpOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPFQ+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybSkucGlwZShcclxuICAgICAgc3dpdGNoTWFwKHBhcmFtcyA9PlxyXG4gICAgICAgIHRoaXMuX2h0dHAucHV0PFJlY2lwaWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsLyR7aWR9P3ZlcnNpb249JHt2ZXJzaW9ufSZhY3Rpb249JHthY3Rpb259YCwgbW9kZWwsIHsgcGFyYW1zOiB7IC4uLnBhcmFtcywgLi4uYWN0aW9uQXJncyB9IH0pKSxcclxuICAgICAgdGFwKCgpID0+XHJcbiAgICAgICAgcmVhZCA9PT0gZmFsc2UgJiYgdGhpcy5fdXBkYXRldW5yZWFkY291bnRlcihyZWNlaXZlZCwgZm9sZGVySWQsIC0xKVxyXG4gICAgICApLFxyXG4gICAgICB0aGlzLl9zeW5jPFQ+KCkpO1xyXG4gIH1cclxuICBldmVudHMoc3RhcnRpbmc6IERhdGUsIGVuZGluZz86IERhdGUsIGNvbnRhaW5zPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxTY2hlZHVsZWRFdmVudFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8U2NoZWR1bGVkRXZlbnRbXT4oYC9hcGkvZXZlbnRzYCwge1xyXG4gICAgICBwYXJhbXM6IHtcclxuICAgICAgICBzdGFydGluZzogc3RhcnRpbmcudG9KU09OKCksXHJcbiAgICAgICAgZW5kaW5nOiBlbmRpbmcudG9KU09OKCksXHJcbiAgICAgICAgY29udGFpbnM6IGNvbnRhaW5zIHx8ICcnXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBjaGFuZ2VFdmVudChpZDogbnVtYmVyLCBvcHRpb25zOiB7IHN0YXJ0aW5nOiBEYXRlOyBlbmRpbmc/OiBEYXRlOyBjb21wbGV0ZT86IGJvb2xlYW4gfSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvZXZlbnRzLyR7aWR9YCwgb3B0aW9ucyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldCBnZW8gbG9jYXRpb24sIGRlcGVuZGluZyBvbiBmb3JtIHNldHRpbmdzXHJcbiAgICogQHBhcmFtIGZvcm1cclxuICAgKi9cclxuICBwcml2YXRlIF9nZW9Mb2NhdGlvbihmb3JtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgbG5nPzogc3RyaW5nOyBsYXQ/OiBzdHJpbmcgfT4ge1xyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb3Jtcy5maW5kKGYgPT4gZi5uYW1lID09PSBmb3JtKTtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xyXG4gICAgICBzd2l0Y2ggKGNvbmZpZ3VyYXRpb24ucG9zaXRpb24pIHtcclxuICAgICAgICBjYXNlICdSZXF1aXJlJzpcclxuICAgICAgICBjYXNlICdBc2snOlxyXG4gICAgICAgICAgbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihyID0+IHtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KHtcclxuICAgICAgICAgICAgICBsbmc6IHIuY29vcmRzLmxvbmdpdHVkZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgIGxhdDogci5jb29yZHMubGF0aXR1ZGUudG9TdHJpbmcoKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfSwgZSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjb25maWd1cmF0aW9uLnBvc2l0aW9uID09PSAnQXNrJylcclxuICAgICAgICAgICAgICBvYnNlcnZlLm5leHQoe30pO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5lcnJvcihlKTtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KHt9KTtcclxuICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEtlZXAgZmxhZ3MgaW4gc3luYy5cclxuICAgKi9cclxuICBwcml2YXRlIF9zeW5jID0gPFQ+KCkgPT4gKG9ic2VydmU6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8VD4+KSA9PiB7XHJcbiAgICByZXR1cm4gb2JzZXJ2ZS5waXBlKHRhcChtID0+IHtcclxuICAgICAgKG0gYXMgSXRlbUV4dHJhKS5sb2FkZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9jaGFuZ2UkLm5leHQobSk7XHJcbiAgICB9KSk7XHJcbiAgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1FeHRyYSB7XHJcbiAgbG9hZGluZz86IGJvb2xlYW47XHJcbiAgbG9hZGVkPzogYm9vbGVhbjtcclxuICB3b3JraW5nPzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEF0dGFjaG1lbnRFeHRyYSBleHRlbmRzIEF0dGFjaG1lbnQge1xyXG4gIHVybDogU2FmZVVybDtcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGZpbGVFeHQ6IHN0cmluZztcclxuICBpc0ltYWdlOiBib29sZWFuO1xyXG4gIHByb2dyZXNzPzogbnVtYmVyO1xyXG4gIHZpZXdlZD86IERhdGU7XHJcbiAgZmFpbGVkPzogYm9vbGVhbjtcclxufVxyXG5mdW5jdGlvbiBpc0h0dHBSZXNwb25zZTxUPihldmVudDogSHR0cEV2ZW50PFQ+KTogZXZlbnQgaXMgSHR0cFJlc3BvbnNlPFQ+IHtcclxuICByZXR1cm4gZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZVxyXG59XHJcblxyXG5mdW5jdGlvbiBpc0h0dHBQcm9ncmVzc0V2ZW50KFxyXG4gIGV2ZW50OiBIdHRwRXZlbnQ8dW5rbm93bj5cclxuKTogZXZlbnQgaXMgSHR0cFByb2dyZXNzRXZlbnQge1xyXG4gIHJldHVybiAoXHJcbiAgICBldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLkRvd25sb2FkUHJvZ3Jlc3MgfHxcclxuICAgIGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3NcclxuICApXHJcbn1cclxuLy9mdW5jdGlvbiBjYWxjdWxhdGVTdGF0ZSh1cGxvYWQ6IFVwbG9hZEV2ZW50LCBldmVudDogSHR0cEV2ZW50PHVua25vd24+KSB7XHJcbi8vICBpZiAoaXNIdHRwUHJvZ3Jlc3NFdmVudChldmVudCkpIHtcclxuLy8gICAgcmV0dXJuIG5ldyBVcGxvYWRFdmVudCh7XHJcbi8vICAgICAgcHJvZ3Jlc3M6IGV2ZW50LnRvdGFsXHJcbi8vICAgICAgICA/IE1hdGgucm91bmQoKDEwMCAqIGV2ZW50LmxvYWRlZCkgLyBldmVudC50b3RhbClcclxuLy8gICAgICAgIDogdXBsb2FkLnByb2dyZXNzLFxyXG4vLyAgICAgIHN0YXRlOiAncHJvZ3Jlc3MnLFxyXG4vLyAgICB9KTtcclxuLy8gIH1cclxuLy8gIGlmIChpc0h0dHBSZXNwb25zZShldmVudCkpIHtcclxuLy8gICAgcmV0dXJuIG5ldyBVcGxvYWRFdmVudCh7XHJcbi8vICAgICAgcHJvZ3Jlc3M6IDEwMCxcclxuLy8gICAgICBzdGF0ZTogJ2RvbmUnLFxyXG4vLyAgICB9KVxyXG4vLyAgfVxyXG4vL31cclxuZXhwb3J0IGNsYXNzIFVwbG9hZEV2ZW50IHtcclxuICByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xyXG4gIHByb2dyZXNzOiBudW1iZXI7XHJcbiAgLy8gYnl0ZXNcclxuICB0b3RhbDogbnVtYmVyO1xyXG4gIHN0YXRlOiAncGVuZGluZycgfCAncHJvZ3Jlc3MnIHwgJ2RvbmUnO1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVwb3J0UHJvZ3Jlc3MoYXR0YWNobWVudDogQXR0YWNobWVudEV4dHJhKSB7XHJcbiAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8QXR0YWNobWVudD4pID0+IG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgc291cmNlLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHIgPT4ge1xyXG4gICAgICAgIC8vVE9ETyBwcm9ncmVzc1xyXG4gICAgICAgIC8vaWYgKGV2ZW50IGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkge1xyXG4gICAgICAgIC8vICBvYnNlcnZlLm5leHQobmV3IFVwbG9hZEV2ZW50KFxyXG4gICAgICAgIC8vICAgIGZpbGUubmFtZSxcclxuICAgICAgICAvLyAgICAoZXZlbnQgYXMgUHJvZ3Jlc3NFdmVudCkubG9hZGVkLFxyXG4gICAgICAgIC8vICAgIChldmVudCBhcyBQcm9ncmVzc0V2ZW50KS50b3RhbFxyXG4gICAgICAgIC8vICApKTtcclxuICAgICAgICAvL30gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcclxuICAgICAgICAvLyAgY29uc3QgcmVzID0gZXZlbnQgYXMgSHR0cFJlc3BvbnNlPGFueT47XHJcbiAgICAgICAgLy8gIGlmIChyZXMuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAvLyAgICBjb25zdCBtb2RlbCA9IHJlcy5ib2R5IGFzIEF0dGFjaG1lbnQ7XHJcbiAgICAgICAgLy8gICAgb2JzZXJ2ZS5uZXh0KG1vZGVsKTtcclxuICAgICAgICAvLyAgfVxyXG4gICAgICAgIC8vICBlbHNlXHJcbiAgICAgICAgLy8gICAgb2JzZXJ2ZS5lcnJvcih7IHN0YXR1czogcmVzLnN0YXR1cywgZXJyb3I6IHJlcy5ib2R5IH0pO1xyXG4gICAgICAgIC8vICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgLy9pZiAoYSBpbnN0YW5jZW9mIFVwbG9hZEV2ZW50KSB7XHJcbiAgICAgICAgLy8gIE9iamVjdC5hc3NpZ24oaXRlbSwge1xyXG4gICAgICAgIC8vICAgIHByb2dyZXNzOiBhLmxvYWRlZCAvIGEudG90YWxcclxuICAgICAgICAvLyAgfSk7XHJcbiAgICAgICAgLy8gIHJldHVybjtcclxuICAgICAgICAvL31cclxuICAgICAgICBvYnNlcnZlLm5leHQocik7XHJcbiAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG5cclxuICAgICAgfSwgZXJyb3I6IGUgPT4gb2JzZXJ2ZS5lcnJvcihlKVxyXG4gICAgfSk7XHJcbiAgfSk7XHJcbn1cclxuZXhwb3J0IGNsYXNzIFBvc2l0aW9uRXJyb3Ige1xyXG4gIHJlYWRvbmx5IGNvZGU6IG51bWJlcjtcclxuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgUEVSTUlTU0lPTl9ERU5JRUQ6IG51bWJlcjtcclxuICByZWFkb25seSBQT1NJVElPTl9VTkFWQUlMQUJMRTogbnVtYmVyO1xyXG4gIHJlYWRvbmx5IFRJTUVPVVQ6IG51bWJlcjtcclxufVxyXG5pbnRlcmZhY2UgQ29vcmRzIHsgbG5nPzogc3RyaW5nOyBsYXQ/OiBzdHJpbmcgfSBcclxuIl19
439
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbGJveC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL21haWxib3guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQXlCLGFBQWEsRUFBcUIsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTFILE9BQU8sRUFBRSxVQUFVLEVBQW1CLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBR3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7QUFJL0MsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUFxQixPQUFPLENBQUMsQ0FBQztBQVM5RSxNQUFNLE9BQU8sY0FBYztJQU16QixZQUFvQixRQUF3QixFQUNsQyxLQUF5QixFQUNqQyxTQUFxQixFQUNiLEtBQWlCO1FBSFAsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDbEMsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFFekIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQVJWLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBdUIsQ0FBQztRQUM5QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUNsRCxNQUFNO1FBQ1UsWUFBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkMsWUFBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUF3WHZEOztXQUVHO1FBQ0ssVUFBSyxHQUFHLEdBQU0sRUFBRSxDQUFDLENBQUMsT0FBc0MsRUFBRSxFQUFFO1lBQ2xF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Q0FBZ0M7QUFDaEMsOEJBQThCO0FBQzlCLHNCQUFzQjtBQUN0QixzQkFBc0I7QUFDdEIsUUFBUTtBQUNSLEtBQUs7QUFDTCxHQUFHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFNdEIsWUFBWSxPQUFPLElBQUksQ0FBQztDQUN6QjtBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsVUFBMkI7SUFDeEQsT0FBTyxDQUFDLE1BQThCLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ2xFLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDZixJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsZUFBZTtnQkFDZix1Q0FBdUM7Z0JBQ3ZDLGlDQUFpQztnQkFDakMsZ0JBQWdCO2dCQUNoQixzQ0FBc0M7Z0JBQ3RDLG9DQUFvQztnQkFDcEMsT0FBTztnQkFDUCw2Q0FBNkM7Z0JBQzdDLDJDQUEyQztnQkFDM0MsNkJBQTZCO2dCQUM3QiwyQ0FBMkM7Z0JBQzNDLDBCQUEwQjtnQkFDMUIsS0FBSztnQkFDTCxRQUFRO2dCQUNSLDZEQUE2RDtnQkFDN0QsdUJBQXVCO2dCQUN2QixpQ0FBaUM7Z0JBQ2pDLHlCQUF5QjtnQkFDekIsa0NBQWtDO2dCQUNsQyxPQUFPO2dCQUNQLFdBQVc7Z0JBQ1gsR0FBRztnQkFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoQixPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFckIsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ2hDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUNELE1BQU0sT0FBTyxhQUFhO0NBTXpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50LCBIdHRwRXZlbnRUeXBlLCBIdHRwUHJvZ3Jlc3NFdmVudCwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZhYmxlSW5wdXQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFwLCBzd2l0Y2hNYXAsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1lbnQsIFVzZXJJbmZvLCBSZWNpcGllbnRNb2RlbCwgQXR0YWNobWVudCwgU2NoZWR1bGVkRXZlbnQsIEhlYWRlck1vZGVsLCBEb2N1bWVudE1vZGVsLCBWb3RlLCBDb21tZW50VmVyc2lvbiwgQ2hhaW4gfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IGNsZWFudXAsIGlzQXJyYXkgfSBmcm9tICcuL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IEh1YlNlcnZpY2UgfSBmcm9tICcuL2h1Yi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25JbXBsIH0gZnJvbSAnLi9hdXRoZW50aWNhdGlvbic7XHJcblxyXG5leHBvcnQgY29uc3QgRE9DVU1FTlRfTU9ERUwgPSBuZXcgSW5qZWN0aW9uVG9rZW48RG9jdW1lbnRNb2RlbDxhbnk+PignbW9kZWwnKTtcclxuXHJcbmV4cG9ydCB0eXBlIEZpbHRlclR5cGUgPSAncmVjZW50JyB8ICd1bnJlYWQnIHwgJ2ZsYWdnZWQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VFdmVudDxUPiB7XHJcbiAgbW9kZWw6IFJlY2lwaWVudE1vZGVsPFQ+O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgTWFpbGJveFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZSQgPSBuZXcgU3ViamVjdDxSZWNpcGllbnRNb2RlbDxhbnk+PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlbGV0ZSQgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XHJcbiAgLyoqICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGNoYW5nZWQgPSB0aGlzLl9jaGFuZ2UkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHB1YmxpYyByZWFkb25seSBkZWxldGVkID0gdGhpcy5fZGVsZXRlJC5hc09ic2VydmFibGUoKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2F1dGg6IEF1dGhlbnRpY2F0aW9uSW1wbCxcclxuICAgIG1lc3NhZ2luZzogSHViU2VydmljZSxcclxuICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQpIHtcclxuICAgIG1lc3NhZ2luZy5uZXckLlxyXG4gICAgICBzdWJzY3JpYmUobSA9PiB7XHJcbiAgICAgICAgaWYgKG0udXNlcklkICE9PSBfc2Vzc2lvbi5wcm9maWxlLnVzZXJJZCkgcmV0dXJuO1xyXG4gICAgICAgIF9zZXNzaW9uLnByb2ZpbGUuaW5ib3hDb3VudCsrO1xyXG4gICAgICAgIGNvbnN0IGZvbGRlciA9IF9zZXNzaW9uLnByb2ZpbGUuZm9sZGVycy5maW5kKGYgPT4gZi5uYW1lID09PSBtLm1vZGVsLmZvbGRlcklkKTtcclxuICAgICAgICBmb2xkZXIuY291bnQrKztcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGZvcm1hdERvd25sb2FkVXJsKGRvY3VtZW50SWQ6IG51bWJlciwgZmlsZUlkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IHVybCA9IGAvYXBpL2F0dGFjaG1lbnRzLyR7ZG9jdW1lbnRJZH0vJHtmaWxlSWR9YDtcclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy5fYXV0aC5nZXRBY2Nlc3NUb2tlbigpO1xyXG4gICAgaWYgKHRva2VuKVxyXG4gICAgICB1cmwgKz1cclxuICAgICAgICBgP2FjY2Vzc190b2tlbj0ke3Rva2VufWA7XHJcbiAgICByZXR1cm4gdXJsO1xyXG4gIH1cclxuICBkb3dubG9hZChkb2N1bWVudElkOiBudW1iZXIsIGZpbGVJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vbmV3IE9ic2VydmFibGU8YW55PihvYnNlcnZlID0+IHtcclxuICAgIC8vICBvYnNlcnZlLm5leHQoe30pO1xyXG4gICAgLy8gIHJldHVybiB7XHJcbiAgICAvLyAgICB1bnN1YnNjcmliZSgpIHsgfVxyXG4gICAgLy8gIH1cclxuICAgIC8vfSk7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQoYC9hcGkvYXR0YWNobWVudHMvJHtkb2N1bWVudElkfS8ke2ZpbGVJZH1gLCB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyxcclxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW1vdmVhdHRhY2htZW50KHJlY2lwaWVudElkOiBudW1iZXIsIGZpbGVJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmRlbGV0ZShgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfS8ke2ZpbGVJZH1gKTtcclxuICB9XHJcbiAgcmVhZChpZDogbnVtYmVyLCByZWFkOiBib29sZWFuLCBmb2xkZXJJZD86IHN0cmluZywgcmVjZWl2ZWQ/OiBEYXRlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dChgL2FwaS9tYWlsYm94L3JlYWQvJHtpZH1gLCB1bmRlZmluZWQsIHsgcGFyYW1zOiB7IHJlYWQgfSBhcyBhbnkgfSkucGlwZSh0YXAoKCkgPT5cclxuICAgICAgZm9sZGVySWQgJiYgdGhpcy5fdXBkYXRldW5yZWFkY291bnRlcihyZWNlaXZlZCwgZm9sZGVySWQsIHJlYWQgPyAxIDogLTEpXHJcbiAgICApKTtcclxuICB9XHJcbiAgY29tbWVudHMoaWQ6IG51bWJlciwgYmVmb3JlOiBEYXRlKTogT2JzZXJ2YWJsZTxDb21tZW50W10+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxDb21tZW50W10+KGAvYXBpL2NvbW1lbnRzLyR7aWR9YCwgeyBwYXJhbXM6IHsgYmVmb3JlOiBuZXcgRGF0ZShiZWZvcmUpLnRvSlNPTigpIH0gfSk7XHJcbiAgfVxyXG4gIHRhZ3MoaWQ6IG51bWJlciwgdGFnczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL21haWxib3gvdGFnLyR7aWR9YCwgeyB0YWdzIH0pLnBpcGUodGFwKCgpID0+IHtcclxuICAgICAgdGhpcy5fY2hhbmdlJC5uZXh0KHsgaWQsIHRhZ3MgfSBhcyBhbnkpO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZG9jdW1lbnRJZFxyXG4gICAqIEBwYXJhbSBzdGF0ZUlkXHJcbiAgICogQHBhcmFtIHVzZXJJZCBzdWJzdGl0dXRlXHJcbiAgICovXHJcbiAgY2hhbmdlU3RhdGUoZG9jdW1lbnRJZDogbnVtYmVyLCBzdGF0ZUlkOiBzdHJpbmcsIHVzZXJJZD86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9jaGFuZ2VzdGF0ZS8ke2RvY3VtZW50SWR9YCwgeyBzdGF0ZUlkLCB1c2VySWQgfSk7XHJcbiAgfVxyXG4gIG1vdmUoaWQ6IG51bWJlciwgZm9sZGVySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9tb3ZlLyR7aWR9P2ZvbGRlcklkPSR7Zm9sZGVySWR9YCwge30pLnBpcGUodGFwKCgpID0+IHtcclxuICAgICAgdGhpcy5fY2hhbmdlJC5uZXh0KHtcclxuICAgICAgICBpZCxcclxuICAgICAgICBmb2xkZXJJZFxyXG4gICAgICB9IGFzIGFueSk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG4gIGNoZWNrT3V0KHJlY2lwaWVudElkOiBudW1iZXIsIHZlcnNpb246IG51bWJlciwgYXR0YWNobWVudElkOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDxBdHRhY2htZW50PihgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfS8ke2F0dGFjaG1lbnRJZH0vY2hlY2tvdXRgLCBudWxsLCB7IHBhcmFtczogeyB2ZXJzaW9uIH0gfSk7XHJcbiAgfVxyXG4gIGNoZWNrSW4ocmVjaXBpZW50SWQ6IG51bWJlciwgdmVyc2lvbjogbnVtYmVyLCBhdHRhY2htZW50SWQ6IG51bWJlciwgZmlsZTogRmlsZSk6IE9ic2VydmFibGU8QXR0YWNobWVudD4ge1xyXG4gICAgY29uc3QgZmQgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGZkLmFwcGVuZChmaWxlLm5hbWUsIGZpbGUpO1xyXG4gICAgY29uc3QgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KCdQVVQnLFxyXG4gICAgICBgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfS8ke2F0dGFjaG1lbnRJZH0vY2hlY2tpbj92ZXJzaW9uPSR7dmVyc2lvbn1gLCBmZCwge1xyXG4gICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgLy9jb25zdCBpbml0aWFsU3RhdGU6IFVwbG9hZEV2ZW50ID0geyBzdGF0ZTogJ1BFTkRJTkcnLCBwcm9ncmVzczogMCB9XHJcbiAgICAvL2NvbnN0IGNhbGN1bGF0ZVN0YXRlID0gKFxyXG4gICAgLy8gIHVwbG9hZDogVXBsb2FkRXZlbnQsXHJcbiAgICAvLyAgZXZlbnQ6IEh0dHBFdmVudDx1bmtub3duPlxyXG4gICAgLy8pOiBVcGxvYWRFdmVudCA9PiB7XHJcbiAgICAvLyAgLy8gaW1wbGVtZW50YXRpb25cclxuICAgIC8vfVxyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGFueT4ob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIHRoaXMuX2h0dHAucmVxdWVzdChyZXEpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogZXZlbnQgPT4ge1xyXG4gICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkge1xyXG4gICAgICAgICAgICAvLyAgb2JzZXJ2ZS5uZXh0KG5ldyBVcGxvYWRFdmVudChcclxuICAgICAgICAgICAgLy8gICAgZmlsZS5uYW1lLFxyXG4gICAgICAgICAgICAvLyAgICAoZXZlbnQgYXMgUHJvZ3Jlc3NFdmVudCkubG9hZGVkLFxyXG4gICAgICAgICAgICAvLyAgICAoZXZlbnQgYXMgUHJvZ3Jlc3NFdmVudCkudG90YWxcclxuICAgICAgICAgICAgLy8gICkpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAgICAgICBjb25zdCByZXMgPSBldmVudCBhcyBIdHRwUmVzcG9uc2U8YW55PjtcclxuICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gcmVzLmJvZHkgYXMgQXR0YWNobWVudDtcclxuICAgICAgICAgICAgICBvYnNlcnZlLm5leHQobW9kZWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICBvYnNlcnZlLmVycm9yKHsgc3RhdHVzOiByZXMuc3RhdHVzLCBlcnJvcjogcmVzLmJvZHkgfSk7XHJcbiAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBlcnJvcjogZSA9PiB7XHJcbiAgICAgICAgICBvYnNlcnZlLmVycm9yKGUpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgdW5zdWJzY3JpYmUoKSB7XHJcbiAgICAgICAgICAvL3JlcS5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICB1cGxvYWQocmVjaXBpZW50SWQ6IG51bWJlciwgZm9ybUlkOiBzdHJpbmcsIHZlcnNpb246IG51bWJlciwgZmlsZTogRmlsZSwgb3B0aW9ucz86IHsgaXNQcml2YXRlPzogYm9vbGVhbiB9KTogT2JzZXJ2YWJsZTxBdHRhY2htZW50PjtcclxuICB1cGxvYWQocmVjaXBpZW50SWQ6IG51bWJlciwgZm9ybUlkOiBzdHJpbmcsIHZlcnNpb246IG51bWJlciwgZmlsZXM6IEZpbGVbXSwgb3B0aW9ucz86IHsgaXNQcml2YXRlPzogYm9vbGVhbiB9KTogT2JzZXJ2YWJsZTxBdHRhY2htZW50W10+O1xyXG4gIHVwbG9hZChyZWNpcGllbnRJZDogbnVtYmVyLCBmb3JtSWQ6IHN0cmluZywgdmVyc2lvbjogbnVtYmVyLCBmaWxlczogRmlsZSB8IEZpbGVbXSwgb3B0aW9ucz86IHsgaXNQcml2YXRlPzogYm9vbGVhbiB9KTogT2JzZXJ2YWJsZTxBdHRhY2htZW50IHwgQXR0YWNobWVudFtdPiB7XHJcbiAgICBjb25zdCBmZCA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgaWYgKGlzQXJyYXkoZmlsZXMpKSBmaWxlcy5mb3JFYWNoKGYgPT5cclxuICAgICAgZmQuYXBwZW5kKGYubmFtZSwgZikpO1xyXG4gICAgZWxzZSBmZC5hcHBlbmQoZmlsZXMubmFtZSwgZmlsZXMpO1xyXG4gICAgLy9jb25zdCBieXRlc1BlckNodW5rID0gMjAgKiAxMDI0ICogMTAyNDtcclxuICAgIC8vIGFxdWlyZSB0aGUgbG9jYXRpb24gcHJpb3IgdG8gc2VuZGluZyB0aGUgcmVxdWVzdFxyXG4gICAgcmV0dXJuIHRoaXMuX2dlb0xvY2F0aW9uKGZvcm1JZCkucGlwZShzd2l0Y2hNYXAocGFyYW1zID0+XHJcbiAgICAgIG5ldyBPYnNlcnZhYmxlPGFueT4ob2JzZXJ2ZSA9PiB7XHJcbiAgICAgICAgbGV0IHVybCA9IGAvYXBpL2F0dGFjaG1lbnRzLyR7cmVjaXBpZW50SWR9P3ZlcnNpb249JHt2ZXJzaW9ufWA7XHJcbiAgICAgICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKHAgPT4gdXJsICs9IGAmJHtwfT0ke3BhcmFtc1twXX1gKTtcclxuICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgaWYgKG9wdGlvbnMuaXNQcml2YXRlKSB1cmwgKz0gJyZpc3ByaXZhdGU9dHJ1ZSdcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KCdQT1NUJywgdXJsLCBmZCwge1xyXG4gICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5faHR0cC5yZXF1ZXN0KHJlcSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkge1xyXG4gICAgICAgICAgICAgIC8vIFRoaXMgaXMgYW4gdXBsb2FkIHByb2dyZXNzIGV2ZW50LiBDb21wdXRlIGFuZCBzaG93IHRoZSAlIGRvbmU6XHJcbiAgICAgICAgICAgICAgLy9jb25zdCBwZXJjZW50RG9uZSA9IE1hdGgucm91bmQoMTAwICogZXZlbnQubG9hZGVkIC8gZXZlbnQudG90YWwpO1xyXG4gICAgICAgICAgICAgIC8vY29uc29sZS5sb2coYEZpbGUgaXMgJHtwZXJjZW50RG9uZX0lIHVwbG9hZGVkLmApO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcmVzID0gZXZlbnQgYXMgSHR0cFJlc3BvbnNlPGFueT47XHJcbiAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbW9kZWwgPSByZXMuYm9keSBhcyBBdHRhY2htZW50W107XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlLm5leHQoaXNBcnJheShmaWxlcykgPyBtb2RlbCA6IG1vZGVsWzBdKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZS5lcnJvcih7IHN0YXR1czogcmVzLnN0YXR1cywgZXJyb3I6IHJlcy5ib2R5IH0pO1xyXG4gICAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSwgZXJyb3I6IGUgPT4ge1xyXG4gICAgICAgICAgICBvYnNlcnZlLmVycm9yKGUpO1xyXG4gICAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIHVuc3Vic2NyaWJlKCkge1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSkpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogcmV0cmlldmUgc2VuZGVyc1xyXG4gICAqIEBwYXJhbSBuYW1lXHJcbiAgICovXHJcbiAgc2VuZGVycyhuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXJJbmZvW10+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxVc2VySW5mb1tdPignL2FwaS9tYWlsYm94L3NlbmRlcnMvJywge1xyXG4gICAgICBwYXJhbXM6IHtcclxuICAgICAgICBuYW1lXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBmbGFnKGlkOiBudW1iZXIsIGZsYWc6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL21haWxib3gvZmxhZy8ke2lkfT9mbGFnPSR7ZmxhZ31gLCBudWxsKS5waXBlKHRhcCgoKSA9PiB0aGlzLl9jaGFuZ2UkLm5leHQoeyBpZCwgZmxhZyB9IGFzIGFueSkpKTtcclxuICB9XHJcbiAgdmlld2VkY29tbWVudHMoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8eyB0aW1lOiBEYXRlIH0+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDx7IHRpbWU6IERhdGUgfT4oYC9hcGkvY29tbWVudHMvdmlld2VkLyR7aWR9YCwge30sIHsgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfSB9KS5waXBlKHRhcCgoZTogeyB0aW1lOiBEYXRlIH0pID0+IHRoaXMuX2NoYW5nZSQubmV4dCh7IGlkLCB2aWV3ZWQ6IGUudGltZSB9IGFzIGFueSkpKTtcclxuICB9XHJcbiAgdHlwaW5nKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL2NvbW1lbnRzL3R5cGluZy8ke2lkfWAsIHt9LCB7IGhlYWRlcnM6IHsgJ25vLXByb2dyZXNzJzogJ3RydWUnIH0gfSk7XHJcbiAgfVxyXG4gIGVkaXRpbmcoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9lZGl0aW5nLyR7aWR9YCwge30sIHsgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfSB9KTtcclxuICB9XHJcbiAgY29weShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxhbnk+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0PFJlY2lwaWVudE1vZGVsPGFueT4+KGAvYXBpL21haWxib3gvY29weS8ke2lkfWAsIHt9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkIGRvY3VtZW50IGlkXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBjb21tZW50KGlkOiBudW1iZXIsIG9wdGlvbnM6IHtcclxuICAgIHRleHQ/OiBzdHJpbmcsXHJcbiAgICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH0sXHJcbiAgICBpbWFnZT86IHN0cmluZyxcclxuICAgIHBhcmVudElkPzogbnVtYmVyXHJcbiAgfSk6IE9ic2VydmFibGU8Q29tbWVudD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdDxDb21tZW50PihgL2FwaS9jb21tZW50cy8ke2lkfWAsIG9wdGlvbnMpO1xyXG4gIH1cclxuICBjb21tZW50dXBkYXRlKGlkOiBudW1iZXIsIGNvbW1lbnRJZDogbnVtYmVyLCBvcHRpb25zOiB7XHJcbiAgICB0ZXh0Pzogc3RyaW5nLFxyXG4gICAgaW1hZ2U/OiBzdHJpbmcsXHJcbiAgICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH1cclxuICB9KTogT2JzZXJ2YWJsZTxDb21tZW50PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8Q29tbWVudD4oYC9hcGkvY29tbWVudHMvZWRpdC8ke2lkfS8ke2NvbW1lbnRJZH1gLCBvcHRpb25zKTtcclxuICB9XHJcbiAgaW5mbzxUID0gYW55Pihkb2N1bWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPERvY3VtZW50TW9kZWw8VD4+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxEb2N1bWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsYm94L2luZm8vJHtkb2N1bWVudElkfWApO1xyXG4gIH1cclxuICB0aW1lbGluZShkb2N1bWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPENoYWluPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8Q2hhaW4+KGAvYXBpL21haWxib3gvdGltZWxpbmUvJHtkb2N1bWVudElkfWApO1xyXG4gIH1cclxuICB2b3RlKGlkOiBudW1iZXIsIGNvbW1lbnRJZDogbnVtYmVyLCB2YWx1ZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnBvc3QoYC9hcGkvY29tbWVudHMvdm90ZS8ke2lkfS8ke2NvbW1lbnRJZH1gLCB7fSwgeyBwYXJhbXM6IHsgdmFsdWU6IHZhbHVlLnRvU3RyaW5nKCkgfSB9KTtcclxuICB9XHJcbiAgdm90ZXMoaWQ6IG51bWJlciwgY29tbWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFZvdGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFZvdGVbXT4oYC9hcGkvY29tbWVudHMvdm90ZXMvJHtpZH0vJHtjb21tZW50SWR9YCk7XHJcbiAgfVxyXG4gIGVkaXRzKGlkOiBudW1iZXIsIGNvbW1lbnRJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxDb21tZW50VmVyc2lvbltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8Q29tbWVudFZlcnNpb25bXT4oYC9hcGkvY29tbWVudHMvZWRpdHMvJHtpZH0vJHtjb21tZW50SWR9YCk7XHJcbiAgfVxyXG4gIGZpbmRBbGwoZmlsdGVyOiB7IHR5cGU/OiBGaWx0ZXJUeXBlOyBjb250YWlucz86IHN0cmluZzsgc3RhdGU/OiBzdHJpbmc7IGZvcm0/OiBzdHJpbmc7IGZvbGRlcklkPzogc3RyaW5nOyBzZW5kZXJJZD86IHN0cmluZzsgfSxcclxuICAgIG9wdGlvbnM/OiB7IHNraXA/OiBudW1iZXI7IHRha2U/OiBudW1iZXI7IG9yZGVyQnk/OiAndmFsdWUnIHwgJ3ZpZXdlZCcgfCAnZGF0ZScgfSk6IE9ic2VydmFibGU8SGVhZGVyTW9kZWxbXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zOiBhbnkgPSB7IC4uLmZpbHRlciwgLi4ub3B0aW9ucyB9O1xyXG4gICAgY2xlYW51cChwYXJhbXMpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PEhlYWRlck1vZGVsW10+KCcvYXBpL21haWwnLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfd3JhcDxUPihmb3JtOiBzdHJpbmcsIHByb2plY3Q6ICh2YWx1ZTogQ29vcmRzLCBpbmRleDogbnVtYmVyKSA9PiBPYnNlcnZhYmxlSW5wdXQ8UmVjaXBpZW50TW9kZWw8VD4+KSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybSkucGlwZShzd2l0Y2hNYXAocHJvamVjdCksIHRhcChtID0+IHtcclxuICAgICAgKG0gYXMgSXRlbUV4dHJhKS5sb2FkZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9jaGFuZ2UkLm5leHQobSk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG4gIGNyZWF0ZTxUID0gYW55Pihmb3JtOiBzdHJpbmcsIG1vZGVsPzogVCk6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8VD4+IHtcclxuICAgIC8vICByZXR1cm4gdGhpcy5fd3JhcChmb3JtLCBwID0+XHJcbiAgICAvLyAgICB0aGlzLl9odHRwLnBvc3Q8UmVjaXBpZW50TW9kZWw8VD4+KCcvYXBpL21haWwnLCBtb2RlbCwge1xyXG4gICAgLy8gICAgICBwYXJhbXM6IHtcclxuICAgIC8vICAgICAgICBmb3JtLFxyXG4gICAgLy8gICAgICAgIC4uLnBcclxuICAgIC8vICAgICAgfVxyXG4gICAgLy8gICAgfSkpXHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybSkucGlwZShzd2l0Y2hNYXAocCA9PlxyXG4gICAgICB0aGlzLl9odHRwLnBvc3Q8UmVjaXBpZW50TW9kZWw8VD4+KCcvYXBpL21haWwnLCBtb2RlbCwge1xyXG4gICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgZm9ybSxcclxuICAgICAgICAgIC4uLnBcclxuICAgICAgICB9XHJcbiAgICAgIH0pKSwgdGhpcy5fc3luYzxUPigpKTtcclxuICB9XHJcbiAgZ2V0PFQgPSBhbnk+KGlkOiBudW1iZXIsIHJlYWQ/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxUPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFJlY2lwaWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsLyR7aWR9YCkucGlwZShcclxuICAgICAgdGFwKChtOiBSZWNpcGllbnRNb2RlbCkgPT5cclxuICAgICAgICByZWFkID09PSBmYWxzZSAmJiBtLnJlYWQgPT09IHRydWUgJiZcclxuICAgICAgICB0aGlzLl91cGRhdGV1bnJlYWRjb3VudGVyKG0ucmVjZWl2ZWQsIG0uZm9sZGVySWQsIC0xKVxyXG4gICAgICApKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdXBkYXRldW5yZWFkY291bnRlcihkYXRlOiBEYXRlLCBmb2xkZXJJZDogc3RyaW5nLCB2YWw6IG51bWJlcikge1xyXG4gICAgaWYgKFxyXG4gICAgICAvLyBkYXRlIGlzIGFib3ZlIHdhdGVybWFya1xyXG4gICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUub3B0aW9ucy5pbmJveFZpZXcgJiZcclxuICAgICAgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLm9wdGlvbnMuaW5ib3hWaWV3IDwgZGF0ZVxyXG4gICAgKVxyXG4gICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuaW5ib3hDb3VudCArPSB2YWw7XHJcbiAgICAvLyBkZWNyZWFzZVxyXG4gICAgY29uc3QgZm9sZGVyID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmZvbGRlcnMuXHJcbiAgICAgIGZpbmQoZiA9PiBmLm5hbWUgPT09IGZvbGRlcklkKTtcclxuICAgIGZvbGRlci5jb3VudCA9IE1hdGgubWF4KDAsIGZvbGRlci5jb3VudCArIHZhbCk7XHJcbiAgfVxyXG5cclxuICBzYXZlPFQgPSBhbnk+KGlkOiBudW1iZXIsIGZvcm06IHN0cmluZywgdmVyc2lvbjogbnVtYmVyLCBtb2RlbDoge30sIGZpbGVzPzogRmlsZVtdIHwgRmlsZUxpc3QpOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPFQ+PiB7XHJcbiAgICAvL2NvbnN0IGZkID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAvL2NvbnN0IG1vZGVsQmxvYiA9IG5ldyBCbG9iKFtKU09OLnN0cmluZ2lmeShtb2RlbCldLCB7XHJcbiAgICAvLyAgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgLy99KTtcclxuICAgIC8vZmQuYXBwZW5kKCdmb3JtLWRhdGEnLCBtb2RlbEJsb2IpO1xyXG4gICAgLy9pZiAoZmlsZXMpIHtcclxuICAgIC8vICBpZiAoaXNBcnJheShmaWxlcykpIGZpbGVzLmZvckVhY2goZiA9PlxyXG4gICAgLy8gICAgZmQuYXBwZW5kKGYubmFtZSwgZikpO1xyXG4gICAgLy8gIGVsc2UgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgLy8gICAgbGV0IGZpbGUgPSBmaWxlcy5pdGVtKGkpO1xyXG4gICAgLy8gICAgZmQuYXBwZW5kKGZpbGUubmFtZSwgZmlsZSk7XHJcbiAgICAvLyAgfVxyXG4gICAgLy99XHJcbiAgICAvLyAgcmV0dXJuIHRoaXMuX3dpdGhHZW9Mb2NhdGlvbihmb3JtKS5waXBlKHN3aXRjaE1hcChwYXJhbXMgPT4ge1xyXG4gICAgLy8gICAgbGV0IHVybCA9IGAvYXBpL21haWwvJHtpZH0/dmVyc2lvbj0ke3ZlcnNpb259YDtcclxuICAgIC8vICAgIE9iamVjdC5rZXlzKHBhcmFtcykuZm9yRWFjaChwID0+IHVybCArPSBgJiR7cH09JHtwYXJhbXNbcF19YCk7XHJcbiAgICAvLyAgICBjb25zdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoJ1BVVCcsIHVybCwgZmQsIHtcclxuICAgIC8vICAgIH0pO1xyXG4gICAgLy8gICAgcmV0dXJuIHRoaXMuX2h0dHAucmVxdWVzdChyZXEpLnBpcGUobWFwKGV2ZW50ID0+IHtcclxuICAgIC8vICAgICAgY29uc3QgcmVzID0gZXZlbnQgYXMgSHR0cFJlc3BvbnNlPGFueT47XHJcbiAgICAvLyAgICAgIGlmIChyZXMuc3RhdHVzID09PSAyMDApIHtcclxuICAgIC8vICAgICAgICBjb25zdCBtb2RlbCA9IHJlcy5ib2R5IGFzIFJlY2lwaWVudE1vZGVsPGFueT47XHJcbiAgICAvLyAgICAgICAgcmV0dXJuIG1vZGVsO1xyXG4gICAgLy8gICAgICB9XHJcbiAgICAvLyAgICAgIGVsc2VcclxuICAgIC8vICAgICAgICByZXR1cm4gdGhyb3dFcnJvcih7IHN0YXR1czogcmVzLnN0YXR1cywgZXJyb3I6IHJlcy5ib2R5IH0pO1xyXG4gICAgLy8gICAgfSkpXHJcbiAgICAvLyAgfSksIHRoaXMuX25vdGlmeTxUPigpKTtcclxuICAgIHJldHVybiB0aGlzLl9nZW9Mb2NhdGlvbihmb3JtKS5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAocGFyYW1zID0+IHRoaXMuX2h0dHAucHV0PFJlY2lwaWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsLyR7aWR9P3ZlcnNpb249JHt2ZXJzaW9ufWAsIG1vZGVsLCB7IHBhcmFtcyB9KSksXHJcbiAgICAgIHRoaXMuX3N5bmM8VD4oKSk7XHJcbiAgfVxyXG4gIGRlbGV0ZShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmRlbGV0ZShgL2FwaS9tYWlsLyR7aWR9YCkucGlwZSh0YXAoKCkgPT5cclxuICAgICAgdGhpcy5fZGVsZXRlJC5uZXh0KGlkKSkpO1xyXG4gIH1cclxuICByZW1vdmVjb21tZW50KGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZGVsZXRlKGAvYXBpL2NvbW1lbnRzLyR7aWR9YCk7XHJcbiAgfVxyXG4gIHBvc3Q8VCA9IGFueT4oZm9ybTogc3RyaW5nLCBtb2RlbD86IGFueSk6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8VD4+IHtcclxuICAgIHJldHVybiB0aGlzLl93cmFwKGZvcm0sIHAgPT5cclxuICAgICAgdGhpcy5faHR0cC5wb3N0PFJlY2lwaWVudE1vZGVsPGFueT4+KCcvYXBpL21haWwnLCBtb2RlbCwge1xyXG4gICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgZ286IHRydWUsXHJcbiAgICAgICAgICBmb3JtLFxyXG4gICAgICAgICAgLi4ucFxyXG4gICAgICAgIH1cclxuICAgICAgfSkpO1xyXG4gIH1cclxuICBzdWJtaXQ8VCA9IGFueT4oaWQ6IG51bWJlciwgdmVyc2lvbjogbnVtYmVyLCBmb3JtOiBzdHJpbmcsIG1vZGVsPzogYW55KTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxUPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2dlb0xvY2F0aW9uKGZvcm0pLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcChwYXJhbXMgPT5cclxuICAgICAgICB0aGlzLl9odHRwLnB1dDxSZWNpcGllbnRNb2RlbDxUPj4oYC9hcGkvbWFpbC8ke2lkfT92ZXJzaW9uPSR7dmVyc2lvbn0mZ289dHJ1ZWAsIG1vZGVsLCB7IHBhcmFtcyB9KSksXHJcbiAgICAgIHRoaXMuX3N5bmM8VD4oKSk7XHJcbiAgfVxyXG4gIHNlbmQ8VCA9IGFueT4oaWQ6IG51bWJlciwgdmVyc2lvbjogbnVtYmVyLCBmb3JtOiBzdHJpbmcsIG1vZGVsOiBhbnksIGFjdGlvbjogc3RyaW5nLCBhY3Rpb25BcmdzOiB7fSwgcmVhZD86IGJvb2xlYW4sIGZvbGRlcklkPzogc3RyaW5nLCByZWNlaXZlZD86IERhdGUpOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPFQ+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybSkucGlwZShcclxuICAgICAgc3dpdGNoTWFwKHBhcmFtcyA9PlxyXG4gICAgICAgIHRoaXMuX2h0dHAucHV0PFJlY2lwaWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsLyR7aWR9P3ZlcnNpb249JHt2ZXJzaW9ufSZhY3Rpb249JHthY3Rpb259YCwgbW9kZWwsIHsgcGFyYW1zOiB7IC4uLnBhcmFtcywgLi4uYWN0aW9uQXJncyB9IH0pKSxcclxuICAgICAgdGFwKCgpID0+XHJcbiAgICAgICAgcmVhZCA9PT0gZmFsc2UgJiYgdGhpcy5fdXBkYXRldW5yZWFkY291bnRlcihyZWNlaXZlZCwgZm9sZGVySWQsIC0xKVxyXG4gICAgICApLFxyXG4gICAgICB0aGlzLl9zeW5jPFQ+KCkpO1xyXG4gIH1cclxuICBldmVudHMoc3RhcnRpbmc6IERhdGUsIGVuZGluZz86IERhdGUsIGNvbnRhaW5zPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxTY2hlZHVsZWRFdmVudFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8U2NoZWR1bGVkRXZlbnRbXT4oYC9hcGkvZXZlbnRzYCwge1xyXG4gICAgICBwYXJhbXM6IHtcclxuICAgICAgICBzdGFydGluZzogc3RhcnRpbmcudG9KU09OKCksXHJcbiAgICAgICAgZW5kaW5nOiBlbmRpbmcudG9KU09OKCksXHJcbiAgICAgICAgY29udGFpbnM6IGNvbnRhaW5zIHx8ICcnXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBjaGFuZ2VFdmVudChpZDogbnVtYmVyLCBvcHRpb25zOiB7IHN0YXJ0aW5nOiBEYXRlOyBlbmRpbmc/OiBEYXRlOyBjb21wbGV0ZT86IGJvb2xlYW4gfSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvZXZlbnRzLyR7aWR9YCwgb3B0aW9ucyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldCBnZW8gbG9jYXRpb24sIGRlcGVuZGluZyBvbiBmb3JtIHNldHRpbmdzXHJcbiAgICogQHBhcmFtIGZvcm1cclxuICAgKi9cclxuICBwcml2YXRlIF9nZW9Mb2NhdGlvbihmb3JtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgbG5nPzogc3RyaW5nOyBsYXQ/OiBzdHJpbmcgfT4ge1xyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb3Jtcy5maW5kKGYgPT4gZi5uYW1lID09PSBmb3JtKTtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xyXG4gICAgICBzd2l0Y2ggKGNvbmZpZ3VyYXRpb24ucG9zaXRpb24pIHtcclxuICAgICAgICBjYXNlICdSZXF1aXJlJzpcclxuICAgICAgICBjYXNlICdBc2snOlxyXG4gICAgICAgICAgbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihyID0+IHtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KHtcclxuICAgICAgICAgICAgICBsbmc6IHIuY29vcmRzLmxvbmdpdHVkZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgIGxhdDogci5jb29yZHMubGF0aXR1ZGUudG9TdHJpbmcoKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfSwgZSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjb25maWd1cmF0aW9uLnBvc2l0aW9uID09PSAnQXNrJylcclxuICAgICAgICAgICAgICBvYnNlcnZlLm5leHQoe30pO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5lcnJvcihlKTtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KHt9KTtcclxuICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEtlZXAgZmxhZ3MgaW4gc3luYy5cclxuICAgKi9cclxuICBwcml2YXRlIF9zeW5jID0gPFQ+KCkgPT4gKG9ic2VydmU6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8VD4+KSA9PiB7XHJcbiAgICByZXR1cm4gb2JzZXJ2ZS5waXBlKHRhcChtID0+IHtcclxuICAgICAgKG0gYXMgSXRlbUV4dHJhKS5sb2FkZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9jaGFuZ2UkLm5leHQobSk7XHJcbiAgICB9KSk7XHJcbiAgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1FeHRyYSB7XHJcbiAgbG9hZGluZz86IGJvb2xlYW47XHJcbiAgbG9hZGVkPzogYm9vbGVhbjtcclxuICB3b3JraW5nPzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEF0dGFjaG1lbnRFeHRyYSBleHRlbmRzIEF0dGFjaG1lbnQge1xyXG4gIHVybD86IFNhZmVVcmw7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBmaWxlRXh0Pzogc3RyaW5nO1xyXG4gIGlzSW1hZ2U/OiBib29sZWFuO1xyXG4gIHByb2dyZXNzPzogbnVtYmVyO1xyXG4gIHZpZXdlZD86IERhdGU7XHJcbiAgZmFpbGVkPzogYm9vbGVhbjtcclxuICBoYXNQcmV2aWV3PzogYm9vbGVhbjtcclxufVxyXG5mdW5jdGlvbiBpc0h0dHBSZXNwb25zZTxUPihldmVudDogSHR0cEV2ZW50PFQ+KTogZXZlbnQgaXMgSHR0cFJlc3BvbnNlPFQ+IHtcclxuICByZXR1cm4gZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZVxyXG59XHJcblxyXG5mdW5jdGlvbiBpc0h0dHBQcm9ncmVzc0V2ZW50KFxyXG4gIGV2ZW50OiBIdHRwRXZlbnQ8dW5rbm93bj5cclxuKTogZXZlbnQgaXMgSHR0cFByb2dyZXNzRXZlbnQge1xyXG4gIHJldHVybiAoXHJcbiAgICBldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLkRvd25sb2FkUHJvZ3Jlc3MgfHxcclxuICAgIGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3NcclxuICApXHJcbn1cclxuLy9mdW5jdGlvbiBjYWxjdWxhdGVTdGF0ZSh1cGxvYWQ6IFVwbG9hZEV2ZW50LCBldmVudDogSHR0cEV2ZW50PHVua25vd24+KSB7XHJcbi8vICBpZiAoaXNIdHRwUHJvZ3Jlc3NFdmVudChldmVudCkpIHtcclxuLy8gICAgcmV0dXJuIG5ldyBVcGxvYWRFdmVudCh7XHJcbi8vICAgICAgcHJvZ3Jlc3M6IGV2ZW50LnRvdGFsXHJcbi8vICAgICAgICA/IE1hdGgucm91bmQoKDEwMCAqIGV2ZW50LmxvYWRlZCkgLyBldmVudC50b3RhbClcclxuLy8gICAgICAgIDogdXBsb2FkLnByb2dyZXNzLFxyXG4vLyAgICAgIHN0YXRlOiAncHJvZ3Jlc3MnLFxyXG4vLyAgICB9KTtcclxuLy8gIH1cclxuLy8gIGlmIChpc0h0dHBSZXNwb25zZShldmVudCkpIHtcclxuLy8gICAgcmV0dXJuIG5ldyBVcGxvYWRFdmVudCh7XHJcbi8vICAgICAgcHJvZ3Jlc3M6IDEwMCxcclxuLy8gICAgICBzdGF0ZTogJ2RvbmUnLFxyXG4vLyAgICB9KVxyXG4vLyAgfVxyXG4vL31cclxuZXhwb3J0IGNsYXNzIFVwbG9hZEV2ZW50IHtcclxuICByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xyXG4gIHByb2dyZXNzOiBudW1iZXI7XHJcbiAgLy8gYnl0ZXNcclxuICB0b3RhbDogbnVtYmVyO1xyXG4gIHN0YXRlOiAncGVuZGluZycgfCAncHJvZ3Jlc3MnIHwgJ2RvbmUnO1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVwb3J0UHJvZ3Jlc3MoYXR0YWNobWVudDogQXR0YWNobWVudEV4dHJhKSB7XHJcbiAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8QXR0YWNobWVudD4pID0+IG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgc291cmNlLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHIgPT4ge1xyXG4gICAgICAgIC8vVE9ETyBwcm9ncmVzc1xyXG4gICAgICAgIC8vaWYgKGV2ZW50IGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkge1xyXG4gICAgICAgIC8vICBvYnNlcnZlLm5leHQobmV3IFVwbG9hZEV2ZW50KFxyXG4gICAgICAgIC8vICAgIGZpbGUubmFtZSxcclxuICAgICAgICAvLyAgICAoZXZlbnQgYXMgUHJvZ3Jlc3NFdmVudCkubG9hZGVkLFxyXG4gICAgICAgIC8vICAgIChldmVudCBhcyBQcm9ncmVzc0V2ZW50KS50b3RhbFxyXG4gICAgICAgIC8vICApKTtcclxuICAgICAgICAvL30gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcclxuICAgICAgICAvLyAgY29uc3QgcmVzID0gZXZlbnQgYXMgSHR0cFJlc3BvbnNlPGFueT47XHJcbiAgICAgICAgLy8gIGlmIChyZXMuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAvLyAgICBjb25zdCBtb2RlbCA9IHJlcy5ib2R5IGFzIEF0dGFjaG1lbnQ7XHJcbiAgICAgICAgLy8gICAgb2JzZXJ2ZS5uZXh0KG1vZGVsKTtcclxuICAgICAgICAvLyAgfVxyXG4gICAgICAgIC8vICBlbHNlXHJcbiAgICAgICAgLy8gICAgb2JzZXJ2ZS5lcnJvcih7IHN0YXR1czogcmVzLnN0YXR1cywgZXJyb3I6IHJlcy5ib2R5IH0pO1xyXG4gICAgICAgIC8vICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgLy9pZiAoYSBpbnN0YW5jZW9mIFVwbG9hZEV2ZW50KSB7XHJcbiAgICAgICAgLy8gIE9iamVjdC5hc3NpZ24oaXRlbSwge1xyXG4gICAgICAgIC8vICAgIHByb2dyZXNzOiBhLmxvYWRlZCAvIGEudG90YWxcclxuICAgICAgICAvLyAgfSk7XHJcbiAgICAgICAgLy8gIHJldHVybjtcclxuICAgICAgICAvL31cclxuICAgICAgICBvYnNlcnZlLm5leHQocik7XHJcbiAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG5cclxuICAgICAgfSwgZXJyb3I6IGUgPT4gb2JzZXJ2ZS5lcnJvcihlKVxyXG4gICAgfSk7XHJcbiAgfSk7XHJcbn1cclxuZXhwb3J0IGNsYXNzIFBvc2l0aW9uRXJyb3Ige1xyXG4gIHJlYWRvbmx5IGNvZGU6IG51bWJlcjtcclxuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgUEVSTUlTU0lPTl9ERU5JRUQ6IG51bWJlcjtcclxuICByZWFkb25seSBQT1NJVElPTl9VTkFWQUlMQUJMRTogbnVtYmVyO1xyXG4gIHJlYWRvbmx5IFRJTUVPVVQ6IG51bWJlcjtcclxufVxyXG5pbnRlcmZhY2UgQ29vcmRzIHsgbG5nPzogc3RyaW5nOyBsYXQ/OiBzdHJpbmcgfSBcclxuIl19
@@ -21,4 +21,4 @@ export var FieldKind;
21
21
  FieldKind["Url"] = "Url";
22
22
  })(FieldKind || (FieldKind = {}));
23
23
  ;
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUM7QUEwWHhDLE1BQU0sQ0FBTixJQUFZLGNBU1g7QUFURCxXQUFZLGNBQWM7SUFDeEIsdUNBQXFCLENBQUE7SUFDckIsNkJBQVcsQ0FBQTtJQUNYLDZCQUFXLENBQUE7SUFDWCx5Q0FBdUIsQ0FBQTtJQUN2Qix5Q0FBdUIsQ0FBQTtJQUN2QixxQ0FBbUIsQ0FBQTtJQUNuQixpQ0FBZSxDQUFBO0lBQ2YsaUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVFcsY0FBYyxLQUFkLGNBQWMsUUFTekI7QUFDRCxNQUFNLENBQU4sSUFBWSxTQVFYO0FBUkQsV0FBWSxTQUFTO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLGtDQUFxQixDQUFBO0lBQ3JCLDBDQUE2QixDQUFBO0lBQzdCLDBCQUFhLENBQUE7SUFDYixrQ0FBcUIsQ0FBQTtJQUNyQix3Q0FBMkIsQ0FBQTtJQUMzQix3QkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQVJXLFNBQVMsS0FBVCxTQUFTLFFBUXBCO0FBb0ZBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlTW9kZWwsIENvbm5lY3Rvck1vZGVsLCBTaGFwZU1vZGVsLCBGbG93U2hhcGVNb2RlbCwgQmFzaWNTaGFwZU1vZGVsLCBJbWFnZU1vZGVsLCBQYXRoTW9kZWwsIFRleHRNb2RlbCwgQnBtblNoYXBlTW9kZWwsIE5hdGl2ZU1vZGVsIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWRpYWdyYW1zXCI7XHJcblxyXG5leHBvcnQgY29uc3QgSU5CT1ggPSAnaWInLCBEUkFGVCA9ICdkZic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlck1vZGVsPFQgPSBhbnk+IHtcclxuICBwYXJlbnRJZD86IG51bWJlcjtcclxuICBkcmFmdD86IGJvb2xlYW47XHJcbiAgaXNzdWVkPzogRGF0ZTtcclxuICBkb2N1bWVudElkOiBudW1iZXI7XHJcbiAgc3Vic3RpdHV0ZUlkPzogc3RyaW5nO1xyXG4gIG93bmVySWQ6IHN0cmluZztcclxuICBhY3Rpb24/OiBzdHJpbmc7XHJcbiAgb3duZXJCeUlkPzogc3RyaW5nO1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgdmVyc2lvbjogbnVtYmVyO1xyXG4gIGZvcm1JZDogc3RyaW5nO1xyXG4gIG51bWJlcj86IHN0cmluZztcclxuICBzdWJqZWN0Pzogc3RyaW5nO1xyXG4gIHZhbHVlPzogbnVtYmVyO1xyXG4gIHJlY2VpdmVkOiBEYXRlO1xyXG4gIHJlcGxpZWQ/OiBEYXRlO1xyXG4gIGZvbGRlcklkOiBzdHJpbmc7XHJcbiAgcmVhZDogYm9vbGVhbjtcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIHNlbmRlcklkPzogc3RyaW5nO1xyXG4gIHN0YXRlSWQ6IHN0cmluZztcclxuICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XHJcbiAgZmxhZz86IGJvb2xlYW47XHJcbiAgc3VtbWFyeT86IHN0cmluZztcclxuICBwZW5kaW5nPzogYm9vbGVhbjtcclxuICBtb2RlbD86IFQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudE1vZGVsPFQgPSBhbnk+IHtcclxuICBkcmFmdD86IGJvb2xlYW47XHJcbiAgZXh0cmE/OiBhbnk7XHJcbiAgbnVtYmVyPzogc3RyaW5nO1xyXG4gIHN1YmplY3Q/OiBzdHJpbmc7XHJcbiAgc3VtbWFyeT86IHN0cmluZztcclxuICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBudW1iZXI7XHJcbiAgb3duZXJJZDogc3RyaW5nO1xyXG4gIG93bmVyQnlJZD86IHN0cmluZztcclxuICBkb2N1bWVudElkOiBudW1iZXI7XHJcbiAgdmVyc2lvbjogbnVtYmVyO1xyXG4gIGZvcm1JZDogc3RyaW5nO1xyXG4gIHN0YXRlSWQ6IHN0cmluZztcclxuICBjb21wbGV0ZWQ/OiBib29sZWFuO1xyXG4gIG1vZGVsPzogVDtcclxuICB2aWV3ZWQ/OiBEYXRlO1xyXG4gIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50W107XHJcbiAgY29tbWVudHM6IENvbW1lbnRbXTtcclxuICB1bnJlYWRDb21tZW50czogbnVtYmVyO1xyXG4gIGlzc3VlZD86IERhdGU7XHJcbiAgd29ya2Zsb3c/OiBXb3JrZmxvd0luZm87XHJcbiAgcmVjaXBpZW50czogUmVjaXBpZW50W107XHJcbiAgY3ViZXM6IEN1YmVFbnRyeVtdO1xyXG4gIGV2ZW50czogU2NoZWR1bGVkRXZlbnRbXTtcclxuICBsb2NhdGlvbnM6IE1hcFBpbltdO1xyXG4gIGxvZzogTG9nW107XHJcbiAgcnVsZXM/OiB7IFtuYW1lOiBzdHJpbmddOiBib29sZWFuIH07XHJcbiAgcGFyZW50PzogQ2hhaW47XHJcbiAgY2hpbGRyZW4/OiBDaGFpbltdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhaW4ge1xyXG4gIGNvbXBsZXRlZDogYm9vbGVhbjtcclxuICBpZDogbnVtYmVyO1xyXG4gIGZvcm1JZDogc3RyaW5nO1xyXG4gIG51bWJlcj86IHN0cmluZztcclxuICBzdWJqZWN0Pzogc3RyaW5nO1xyXG4gIHN0YXRlSWQ6IHN0cmluZztcclxuICB2YWx1ZT86IG51bWJlcjtcclxuICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XHJcbiAgcGFyZW50PzogQ2hhaW47XHJcbiAgY2hpbGRyZW4/OiBDaGFpbltdO1xyXG4gIHJlY2lwaWVudHM/OiBSZWNpcGllbnRbXTtcclxuICBldmVudHM/OiBTY2hlZHVsZWRFdmVudFtdO1xyXG4gIGxvZzogTG9nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd0luZm8ge1xyXG4gIG5vZGVzOiBOb2RlSW5mb1tdO1xyXG4gIGNvbm5lY3RvcnM6IENvbm5lY3RvckluZm9bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFJlY2lwaWVudE1vZGVsPFQgPSBhbnk+IGV4dGVuZHMgSGVhZGVyTW9kZWw8VD4sIERvY3VtZW50TW9kZWw8VD4ge1xyXG4gIGV4dHJhPzogYW55O1xyXG4gIGFjdGlvbnM/OiBzdHJpbmdbXTtcclxuICBmeWk6IGJvb2xlYW47XHJcbiAgb3JpZ2luSWQ/OiBudW1iZXI7XHJcbiAgZXNjYWxhdGVkPzogYm9vbGVhbjtcclxuICB0YWdzPzogc3RyaW5nW107XHJcbiAgYnlJZD86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3RvckluZm8ge1xyXG4gIC8vIHJlY2lwaWVudCBpZFxyXG4gIG9yaWdpbklkPzogbnVtYmVyO1xyXG4gIGVzdGltYXRlOiBib29sZWFuO1xyXG4gIHRpbWU/OiBEYXRlO1xyXG4gIHNvdXJjZUlkOiBzdHJpbmc7XHJcbiAgdGFyZ2V0SWQ6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVJbmZvIHtcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIG9yaWdpbklkPzogbnVtYmVyO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgLyoqIG5vZGUgKi9cclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgdGltZT86IERhdGU7XHJcbiAgZXN0aW1hdGU6IGJvb2xlYW47XHJcbiAgLyoqIHNlY29uZHMgKi9cclxuICBzdGFuZGFyZFRpbWU/OiBudW1iZXI7XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBMb2cge1xyXG4gIHJlY2lwaWVudElkPzogbnVtYmVyO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgb3JpZ2luSWQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBtb2RlbD86IHt9O1xyXG4gIHR5cGU6IExvZ1R5cGU7XHJcbiAgbm9kZUlkPzogc3RyaW5nO1xyXG4gIG5vdGU/OiBzdHJpbmc7XHJcbiAgc3RhdGU/OiBzdHJpbmc7XHJcbiAgYWN0aW9uPzogc3RyaW5nO1xyXG4gIGVzY2FsYXRlZD86IGJvb2xlYW47XHJcbiAgc291cmNlSWQ/OiBzdHJpbmc7XHJcbiAgdGFyZ2V0SWQ/OiBzdHJpbmc7XHJcbiAgZHVyYXRpb24/OiBudW1iZXI7XHJcbiAgZXN0aW1hdGU/OiBib29sZWFuO1xyXG4gIGZpbGVJZD86IG51bWJlcjtcclxuICBlcnJvcj86IHN0cmluZztcclxufVxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIExvZ1R5cGUgPSAnU3VibWl0JyB8ICdEb3dubG9hZCcgfCAnU3RhdGVDaGFuZ2UnIHwgJ0FjdGlvblRha2VuJyB8ICdDaGVja0luJyB8ICdDaGVja091dCcgfFxyXG4gICdNb2RlbENoYW5nZScgfCAnTm9kZScgfCAnVmlydHVhbE5vZGUnIHwgJ05vZGVKdW1wJyB8ICdDb25uZWN0b3InIHwgJ1ZpcnR1YWxDb25uZWN0b3InIHwgJ0VzY2FsYXRpb24nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZWNpcGllbnQge1xyXG4gIG9yaWdpbklkPzogbnVtYmVyO1xyXG4gIHN1YnN0aXR1dGVJZD86IHN0cmluZztcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIG5vZGVJZD86IHN0cmluZztcclxuICB1c2VySWQ6IHN0cmluZztcclxuICBwZW5kaW5nOiBib29sZWFuO1xyXG4gIGZvbGRlcklkOiBzdHJpbmc7XHJcbiAgcm9sZT86IHN0cmluZztcclxuICByZWNlaXZlZDogRGF0ZTtcclxuICByZXBsaWVkPzogRGF0ZTtcclxuICBlc3RpbWF0ZT86IGJvb2xlYW47XHJcbiAgYWN0aW9uPzogc3RyaW5nO1xyXG4gIGZ5aT86IGJvb2xlYW47XHJcbiAgaWQ6IG51bWJlcjtcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIGVzY2FsYXRlZD86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZWRFdmVudCB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBkb2N1bWVudElkOiBudW1iZXI7XHJcbiAgc3RhcnRpbmc6IERhdGU7XHJcbiAgZW5kaW5nPzogRGF0ZTtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBsb2NhdGlvbj86IExhdExuZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE1hcFBpbiB7XHJcbiAgbG9jYXRpb246IExhdExuZztcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTGF0TG5nID0gbnVtYmVyW107XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVFbnRyeSB7XHJcbiAgY3ViZTogc3RyaW5nO1xyXG4gIGF4ZXM6IHN0cmluZ1tdO1xyXG4gIHZhbHVlOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXR0YWNobWVudCB7XHJcbiAgaWQ/OiBudW1iZXI7XHJcbiAgZmlsZU5hbWU6IHN0cmluZztcclxuICBjb250ZW50VHlwZTogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBkZWxldGVkPzogYm9vbGVhbjtcclxuICBjaGVja2VkT3V0PzogYm9vbGVhbjtcclxuICBwcml2YXRlPzogYm9vbGVhbjtcclxuICBob2xkaW5nSWQ/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb21tZW50IHtcclxuICBpZDogbnVtYmVyO1xyXG4gIC8qKiBiYXNlNjQgKi9cclxuICBpbWFnZT86IHN0cmluZztcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIHRpbWU6IERhdGU7XHJcbiAgcGFyZW50SWQ/OiBudW1iZXI7XHJcbiAgdm90ZWQ/OiBudW1iZXI7XHJcbiAgdm90ZXM/OiBudW1iZXI7XHJcbiAgZWRpdGVkPzogRGF0ZTtcclxuICBkZWxldGVkPzogYm9vbGVhbjtcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIHJlc291cmNlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFZvdGUge1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICB2b3RlZD86IG51bWJlcjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbW1lbnRWZXJzaW9uIHtcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIHRpbWU6IERhdGU7XHJcbiAgaW1hZ2U/OiBzdHJpbmc7XHJcbiAgdGV4dD86IHN0cmluZztcclxuICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb24ge1xyXG4gIG51bWJlcj86IHN0cmluZztcclxuICBtdXRlZD86IGJvb2xlYW47XHJcbiAgZGVsZXRlZD86IGJvb2xlYW47XHJcbiAgaWQ6IG51bWJlcjtcclxuICB0eXBlOiBOb3RpZmljYXRpb25UeXBlO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgcmVhZD86IGJvb2xlYW47XHJcbiAgc2VudDogRGF0ZTtcclxuICByZWNpcGllbnRJZD86IG51bWJlcjtcclxuICBkb2N1bWVudElkPzogbnVtYmVyO1xyXG4gIGZvcm1JZD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBOb3RpZmljYXRpb25UeXBlID1cclxuICAnQ29tbWVudGVkJyB8XHJcbiAgJ0N1YmVBbm9tYWx5JyB8XHJcbiAgJ0VzY2FsYXRlZCcgfFxyXG4gICdMaWtlZCcgfFxyXG4gICdTdGF0ZUNoYW5nZWQnIHxcclxuICAnTnVkZ2UnIHxcclxuICAnSW52aXRlJyB8XHJcbiAgJ1RleHRNZXNzYWdlJyB8XHJcbiAgJ1VwY29taW5nRXZlbnQnIHxcclxuICAnSm9iUHJvZ3Jlc3MnIHxcclxuICAnVGFnZ2VkJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGUge1xyXG4gIHNoYXBlPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHBhc3Q/OiBzdHJpbmc7XHJcbiAgZnV0dXJlPzogc3RyaW5nO1xyXG4gIGNvbG9yPzogc3RyaW5nO1xyXG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxufVxyXG5leHBvcnQgdHlwZSBHZW5kZXIgPSAnTWFsZScgfFxyXG4gICdGZW1hbGUnIHwgbnVsbDtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVmlldyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IGFueTtcclxuICBndWlkZT86IHN0cmluZztcclxuICBjdWJlczogc3RyaW5nW107XHJcbiAgZm9ybXM6IHN0cmluZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGUge1xyXG4gIGhvbGlkYXlzOiBhbnk7XHJcbiAgdXRpbGl0aWVzOiBVdGlsaXR5W107XHJcbiAgZ3VpZGVzPzogR3VpZGVbXTtcclxuICB2aWV3czogVmlld1tdO1xyXG4gIHBob3RvPzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgYnlOYW1lPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBpbXBlcnNvbmF0aW5nPzogc3RyaW5nO1xyXG4gIGF2YWlsYWJsZT86IEF2YWlsYWJpbGl0eVN0YXRlO1xyXG4gIGdlbmRlcj86IEdlbmRlcjtcclxuICBieUdlbmRlcj86IEdlbmRlcjtcclxuICBzeXN0ZW06IGJvb2xlYW47XHJcbiAgZm9ybXM6IEZvcm1bXTtcclxuICBhY3Rpb25zOiBBY3Rpb25bXTtcclxuICBzdGF0ZXM6IFN0YXRlW107XHJcbiAgZm9sZGVyczogRm9sZGVyW107XHJcbiAgcmVwb3J0czogUmVwb3J0W107XHJcbiAgdHlwZXM6IFR5cGVbXTtcclxuICBjdWJlczogQ3ViZVtdO1xyXG4gIG5vZGVzOiBGbG93Tm9kZVtdO1xyXG4gIGNvbnRyb2xzOiBDb250cm9sW107XHJcbiAgcm9sZXM6IFJvbGVbXTtcclxuICBzb3VyY2VzOiBTb3VyY2VbXTtcclxuICB3aWRnZXRzOiBXaWRnZXRbXTtcclxuICBvcHRpb25zOiBPcHRpb25zO1xyXG4gIGluYm94OiBIZWFkZXJNb2RlbFtdO1xyXG4gIGluYm94Q291bnQ/OiBudW1iZXI7XHJcbiAgbm90aWZpY2F0aW9uczogTm90aWZpY2F0aW9uW107XHJcbiAgbm90aWZpY2F0aW9uc0NvdW50PzogbnVtYmVyO1xyXG4gIHJlY2VudHM/OiBIZWFkZXJNb2RlbFtdO1xyXG4gIGNvbnRhY3RzOiBDb250YWN0W107XHJcbiAgY29udmVyc2F0aW9uc0NvdW50OiBudW1iZXI7XHJcbiAgbGljZW5zZT86IExpY2Vuc2U7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTb3VyY2Uge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHRlbXBsYXRlOiBzdHJpbmc7XHJcbiAgZWxlbWVudFRlbXBsYXRlOiBzdHJpbmc7XHJcbiAga2V5czogRmllbGRJbmZvW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBUeXBlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBjb2x1bW5zPzogRmllbGRJbmZvW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBSb2xlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBkYXRhVHlwZTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVXRpbGl0eSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBndWlkZT86IHN0cmluZztcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxuICBvcHRpb25zOiBhbnk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb250YWN0IHtcclxuICB2aXNpdGVkPzogRGF0ZTtcclxuICB3YXRlcm1hcms/OiBEYXRlO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgdGV4dD86IHN0cmluZztcclxuICB0aW1lOiBEYXRlO1xyXG4gIGFjY2VwdGVkOiBib29sZWFuO1xyXG4gIGltYWdlPzogc3RyaW5nO1xyXG4gIGNvdW50OiBudW1iZXI7XHJcbiAgZm9yZ290dGVuPzogYm9vbGVhbjtcclxuICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDaGF0IHtcclxuICBkYXRlOiBEYXRlO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGNvbnRhY3RJZDogc3RyaW5nO1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICAvKiogYmFzZTY0ICovXHJcbiAgaW1hZ2U/OiBzdHJpbmc7XHJcbiAgcmVzb3VyY2U/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJvbCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRlbXBsYXRlOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBGaWVsZEluZm8ge1xyXG4gIGNvbnRyb2xUeXBlOiBzdHJpbmc7XHJcbiAgZGVmYXVsdFZhbHVlPzogYW55O1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBsYWJlbD86IHN0cmluZztcclxuICBraW5kPzogRmllbGRLaW5kO1xyXG4gIHZhbGlkYXRpb25zPzogeyBbdHlwZTogc3RyaW5nXTogc3RyaW5nIH07XHJcbiAgY29udHJvbHM/OiBGaWVsZEluZm9bXTtcclxuICBtYXg/OiBudW1iZXI7XHJcbiAgbWluPzogbnVtYmVyO1xyXG4gIG1heExlbmd0aD86IG51bWJlcjtcclxuICBtaW5MZW5ndGg/OiBudW1iZXI7XHJcbiAgZGF0YVR5cGU/OiBzdHJpbmc7XHJcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xyXG4gIHBhdHRlcm4/OiBzdHJpbmc7XHJcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIGZsYWdzPzogc3RyaW5nW107XHJcbiAgaGludD86IHN0cmluZztcclxuICBvcHRpb25zPzogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0aW9uIHtcclxuICB0eXBlOiBWYWxpZGF0aW9uVHlwZTtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgbWluPzogbnVtYmVyO1xyXG4gIG1heD86IG51bWJlcjtcclxuICBtaW5MZW5ndGg/OiBudW1iZXI7XHJcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG4gIGV4cHJlc3Npb24/OiBhbnk7XHJcbn1cclxuZXhwb3J0IGVudW0gVmFsaWRhdGlvblR5cGUge1xyXG4gIFJlcXVpcmVkID0gJ1JlcXVpcmVkJyxcclxuICBNaW4gPSAnTWluJyxcclxuICBNYXggPSAnTWF4JyxcclxuICBNaW5MZW5ndGggPSAnTWluTGVuZ3RoJyxcclxuICBNYXhMZW5ndGggPSAnTWF4TGVuZ3RoJyxcclxuICBQYXR0ZXJuID0gJ1BhdHRlcm4nLFxyXG4gIFJhbmdlID0gJ1JhbmdlJyxcclxuICBFbWFpbCA9ICdFbWFpbCdcclxufVxyXG5leHBvcnQgZW51bSBGaWVsZEtpbmQge1xyXG4gIE51bWJlciA9ICdOdW1iZXInLFxyXG4gIEN1cnJlbmN5ID0gJ0N1cnJlbmN5JyxcclxuICBFbWFpbEFkZHJlc3MgPSAnRW1haWxBZGRyZXNzJyxcclxuICBUZXh0ID0gJ1RleHQnLFxyXG4gIFBhc3N3b3JkID0gJ1Bhc3N3b3JkJyxcclxuICBQaG9uZU51bWJlciA9ICdQaG9uZU51bWJlcicsXHJcbiAgVXJsID0gJ1VybCcsXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBXaWRnZXQge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBndWlkZT86IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxuICB0ZW1wbGF0ZTogc3RyaW5nO1xyXG4gIGNvbHM/OiBudW1iZXI7XHJcbiAgcm93cz86IG51bWJlcjtcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxuICBhcmd1bWVudHNUZW1wbGF0ZT86IHN0cmluZztcclxuICBvcHRpb25zOiBhbnk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBMaWNlbnNlIHtcclxuICBtb2RlOiBMaWNlbnNlTW9kZTtcclxuICBleHBpcmF0aW9uPzogRGF0ZTtcclxuICBjb21wYW55TmFtZTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZUZpbHRlciB7XHJcbiAgY3ViZT86IHN0cmluZztcclxuICBheGVzOiBzdHJpbmdbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZvbGRlciB7XHJcbiAgZmlsdGVycz86IEN1YmVGaWx0ZXI7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGdyb3VwPzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBjb3VudD86IG51bWJlcjtcclxuICBjb2x1bW5zPzogRm9sZGVyQ29sdW1uW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBGb2xkZXJDb2x1bW4ge1xyXG4gIG5hbWU6IHN0cmluZyB8ICdudW1iZXInIHwgJ3N1YmplY3QnIHwgJ3ZhbHVlJyB8ICdvd25lcicgfCAnc2VuZGVyJyB8ICdyZWNlaXZlZCcgfCAncmVjZWl2ZWRBZ28nIHwgJ3JlcGxpZWQnIHwgJ3N0YXRlJyB8ICdpc3N1ZWQnIHwgJ2lzc3VlZEFnbyc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB0eXBlPzogJ0Jvb2xlYW4nIHwgJ0RhdGUnIHwgJ0RlY2ltYWwnIHwgJ1N0cmluZyc7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIExpY2Vuc2VNb2RlID1cclxuICAnRXZhbHVhdGlvbicgfFxyXG4gICdWYWxpZCcgfFxyXG4gICdHcmFjZScgfFxyXG4gICdJbnZhbGlkJyB8XHJcbiAgJ0xpbWl0JyB8XHJcbiAgJ0V4cGlyZWQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb24ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHZlcmI/OiBzdHJpbmc7XHJcbiAgeW91Pzogc3RyaW5nO1xyXG4gIHlvdU1hbGU/OiBzdHJpbmc7XHJcbiAgeW91RmVtYWxlPzogc3RyaW5nO1xyXG4gIHBhc3Q/OiBzdHJpbmc7XHJcbiAgcGFzdE1hbGU/OiBzdHJpbmc7XHJcbiAgcGFzdEZlbWFsZT86IHN0cmluZztcclxuICBhZGplY3RpdmU/OiBzdHJpbmc7XHJcbiAgbG9nZ2FibGU/OiBib29sZWFuO1xyXG4gIGFkamVjdGl2ZVBsdXJhbD86IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIGFyZ3VtZW50cz86IEZpZWxkSW5mb1tdO1xyXG4gIG11bHRpcGxlPzogYm9vbGVhbjtcclxuICBncm91cD86IG51bWJlcjtcclxuICBzaGFwZT86IHN0cmluZztcclxuICBjb2xvcj86IHN0cmluZztcclxuICBvcHRpb25zPzogYW55O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9ucyB7XHJcbiAgZ3JhbnRBY2Nlc3M/OiBHcmFudFNldHRpbmdzO1xyXG4gIG91dE9mT2ZmaWNlPzogT3V0T2ZPZmZpY2VTZXR0aW5ncztcclxuICBub3RpZmljYXRpb25zPzogTm90aWZpY2F0aW9uc1NldHRpbmdzO1xyXG4gIGVtYWlscz86IEVtYWlsU2V0dGluZ3M7XHJcbiAgZ3VpZGVzPzogc3RyaW5nW107XHJcbiAgaW5ib3hWaWV3PzogRGF0ZTtcclxuICBub3RpZmljYXRpb25zVmlldz86IERhdGU7XHJcbiAgdGFncz86IHN0cmluZ1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgR3JhbnRTZXR0aW5ncyB7XHJcbiAgYWN0aXZlOiBib29sZWFuO1xyXG4gIHVzZXJzPzogc3RyaW5nW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGltZW50aW9ucyB7XHJcbiAgd2lkdGg6IG51bWJlcjtcclxuICBoZWlnaHQ6IG51bWJlcjtcclxufTtcclxuXHJcbmV4cG9ydFxyXG4gIGludGVyZmFjZSBSZXBvcnQge1xyXG4gIG9wdGlvbnM/OiBhbnk7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBndWlkZT86IHN0cmluZztcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBmaWVsZHM/OiBGaWVsZEluZm9bXTtcclxuICBpdGVtVGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgY29sdW1uczogRmllbGRJbmZvW107XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgYXJndW1lbnRzVGVtcGxhdGU/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBGb3JtIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgZ3JvdXA/OiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IGFueTtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGNyZWF0YWJsZTogYm9vbGVhbjtcclxuICBpY29uOiBzdHJpbmc7XHJcbiAgcG9zaXRpb24/OiBQb3NpdGlvblBvbGljeTtcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBmaWVsZHM/OiBGaWVsZEluZm9bXTtcclxuICB3b3JrZmxvdz86IFdvcmtmbG93O1xyXG4gIGd1aWRlPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCB0eXBlIFBvc2l0aW9uUG9saWN5ID0gJ1JlcXVpcmUnIHwgJ0FzaycgfCAnTm9uZSc7XHJcbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3cge1xyXG4gIHZlcnNpb246IG51bWJlcjtcclxuICBjb25uZWN0b3JzOiBDb25uZWN0b3JNb2RlbFtdO1xyXG4gIG5vZGVzOiBOb2RlTW9kZWxbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJJbmZvIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICByb2xlPzogc3RyaW5nO1xyXG4gIGdlbmRlcj86IEdlbmRlcjtcclxuICBwaWN0dXJlVXJsPzogc3RyaW5nO1xyXG4gIG5pY2s/OiBzdHJpbmc7XHJcbiAgcGhvbmVOdW1iZXI/OiBzdHJpbmc7XHJcbiAgZW1haWw/OiBzdHJpbmc7XHJcbiAgbGFzdEFjdGl2ZT86IERhdGU7XHJcbiAgbW9kZT86IEF2YWlsYWJpbGl0eVN0YXRlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEd1aWRlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgbW9kZT86ICdNZW51JyB8ICdFYWdlcicgfCAnUHJpdmF0ZSc7XHJcbiAgc3RlcHM6IEd1aWRlU3RlcFtdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgR3VpZGVTdGVwIHtcclxuICBleGVjdXRlPzogYm9vbGVhbjtcclxuICBzZWxlY3Rvcj86IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxuICBjb250ZW50OiBzdHJpbmc7XHJcbiAgbmF2aWdhdGU/OiBzdHJpbmc7XHJcbiAgcG9zaXRpb24/OiAnQWJvdmUnIHwgJ0VuZCcgfCAnU3RhcnQnIHwgJ0JlbG93JztcclxufVxyXG4vL2VudW0gR3VpZGVTdGVwUG9saWN5IHsgfVxyXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dOb2RlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBzdHlsZT86IHN0cmluZztcclxuICBwYWxldHRlPzogc3RyaW5nO1xyXG4gIHNoYXBlOiBTaGFwZU1vZGVsIHwgRmxvd1NoYXBlTW9kZWwgfCBCYXNpY1NoYXBlTW9kZWwgfCBJbWFnZU1vZGVsIHwgUGF0aE1vZGVsIHwgVGV4dE1vZGVsIHwgQnBtblNoYXBlTW9kZWwgfCBOYXRpdmVNb2RlbDtcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxufVxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIEF2YWlsYWJpbGl0eVN0YXRlID1cclxuICAnT2ZmbGluZScgfFxyXG4gICdPbmxpbmUnIHxcclxuICAnT3V0T2ZPZmZpY2UnIHxcclxuICAnVmFjYXRpb24nIHwgJ1dvcmtpbmdIb21lJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICB5QXhpcz86IFlBeGlzO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIGN1cnJlbmN5Q29kZT86IHN0cmluZztcclxuICB2aWV3czogQ3ViZVZpZXdbXTtcclxuICBheGVzOiBDdWJlQXhpc1tdO1xyXG4gIGluZGljZXM/OiBDdWJlSW5kZXhbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFlBeGlzIHtcclxuICB0aXRsZT86IHN0cmluZztcclxuICB0eXBlPzogJ0NvdW50JyB8ICdOdW1iZXInIHwgJ0N1cnJlbmN5JztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVJbmRleCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGFjY3VtdWxhdGU/OiBib29sZWFuO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlQXhpcyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGF0YVR5cGU6IHN0cmluZztcclxuICBjb21iaW5hdGlvbj86IGJvb2xlYW47XHJcbiAgc2VsZWN0aW9uTW9kZT86ICdTaW5nbGUnIHwgJ1BhdHRlcm4nIHwgJ011bHRpcGxlJyB8ICdTZWFyY2gnIHwgJ05vbmUnO1xyXG4gIGRlc2NlbmRlbnRPZj86IHN0cmluZztcclxufVxyXG5leHBvcnQgdHlwZSBBeGlzU2VsZWN0aW9uTW9kZSA9XHJcbiAgJ05vbmUnIHxcclxuICAnU2luZ2xlJyB8XHJcbiAgJ011bHRpcGxlJyB8XHJcbiAgJ1NlYXJjaCcgfFxyXG4gICdQYXR0ZXJuJztcclxuXHJcbmV4cG9ydCB0eXBlIEF4aXNWYWx1ZSA9IHN0cmluZyB8IG51bWJlciB8IEFycmF5PHN0cmluZyB8IG51bWJlcj47XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVJhbmdlIHtcclxuICBmcm9tOiBEYXRlO1xyXG4gIHRvOiBEYXRlO1xyXG59XHJcbmV4cG9ydCB0eXBlIExvY2FsaXplZFN0cmluZyA9IHsgW2N1bHR1cmU6IHN0cmluZ106IHN0cmluZyB9IHwgc3RyaW5nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBeGVzTWFwIHtcclxuICBbYXhpczogc3RyaW5nXTogQXhpc1ZhbHVlO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZVZpZXcge1xyXG4gIHhBeGlzOiBzdHJpbmdbXTtcclxuICBzZXJpZXM/OiBzdHJpbmdbXTtcclxuICBmaWx0ZXJzPzogQXhlc01hcDtcclxuICBpbmRpY2VzPzogc3RyaW5nW107XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBndWlkZT86IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB0eXBlOiBWaWV3VHlwZTtcclxuICBjaGFydFR5cGU/OiBDaGFydFR5cGU7XHJcbiAgaW5kaWNlc0NoYXJ0VHlwZT86IENoYXJ0VHlwZTtcclxufVxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIFZpZXdUeXBlID0gJ1NwcmVhZHNoZWV0JyB8XHJcbiAgJ0NoYXJ0JyB8ICdQaXZvdCcgfCAnR3JpZCc7XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgQ2hhcnRUeXBlID1cclxuICAnUGllJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIGxpbmUgc2VyaWVzLiAqL1xyXG4gICdMaW5lJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIENvbHVtbiBzZXJpZXMuICovXHJcbiAgJ0NvbHVtbicgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBBcmVhIHNlcmllcy4gKi9cclxuICAnQXJlYScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBCYXIgc2VyaWVzLiAqL1xyXG4gICdCYXInIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RhY2tpbmdDb2x1bW4gc2VyaWVzLiAqL1xyXG4gICdTdGFja2luZ0NvbHVtbicgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTdGFja2luZ0FyZWEgc2VyaWVzLiAqL1xyXG4gICdTdGFja2luZ0FyZWEnIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RhY2tpbmdMaW5lIHNlcmllcy4gKi9cclxuICAnU3RhY2tpbmdMaW5lJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFN0YWNraW5nQmFyIHNlcmllcy4gKi9cclxuICAnU3RhY2tpbmdCYXInIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RlcGxpbmUgc2VyaWVzLiAqL1xyXG4gICdTdGVwTGluZScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTdGVwYXJlYSBzZXJpZXMuICovXHJcbiAgJ1N0ZXBBcmVhJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFN0ZXBhcmVhIHNlcmllcy4gKi9cclxuICAnU3BsaW5lQXJlYScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTY2F0dGVyIHNlcmllcy4gKi9cclxuICAnU2NhdHRlcicgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTcGxpbmUgc2VyaWVzLiAqL1xyXG4gICdTcGxpbmUnIHxcclxuICAvKiogRGVmaW5lIHRoZSBTdGFja2luZ0NvbHVtbjEwMCBzZXJpZXMgKi9cclxuICAnU3RhY2tpbmdDb2x1bW4xMDAnIHxcclxuICAvKiogRGVmaW5lIHRoZSBTdGFja2luZ0JhcjEwMCBzZXJpZXMgKi9cclxuICAnU3RhY2tpbmdCYXIxMDAnIHxcclxuICAvKiogRGVmaW5lIHRoZSBTdGFja2luZ0xpbmUxMDAgc2VyaWVzICovXHJcbiAgJ1N0YWNraW5nTGluZTEwMCcgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFN0YWNraW5nQXJlYTEwMCBzZXJpZXMgKi9cclxuICAnU3RhY2tpbmdBcmVhMTAwJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgUmFuZ2VDb2x1bW4gU2VyaWVzICovXHJcbiAgJ1JhbmdlQ29sdW1uJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgV2F0ZXJmYWxsIFNlcmllcyAqL1xyXG4gICdXYXRlcmZhbGwnIHxcclxuICAvKiogRGVmaW5lIHRoZSBSYW5nZUFyZWEgU2VyaWVzICovXHJcbiAgJ1JhbmdlQXJlYScgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIEJ1YmJsZSBTZXJpZXMgKi9cclxuICAnQnViYmxlJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgQ2FuZGxlIFNlcmllcyAqL1xyXG4gICdQb2xhcicgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIHJhZGFyIHNlcmllcyAqL1xyXG4gICdSYWRhcicgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFBhcmV0byBzZXJpZXMgKi9cclxuICAnUGFyZXRvJyB8ICdEb3VnaG51dCcgfCAnSGFsZkRvdWdobnV0JyB8XHJcbiAgJ0Z1bm5lbCcgfCAnUHlyYW1pZCcgfFxyXG4gICdTdGFja2luZ1N0ZXBBcmVhJztcclxuZXhwb3J0IGludGVyZmFjZSBPdXRPZk9mZmljZVNldHRpbmdzIHtcclxuICBmcm9tPzogRGF0ZTtcclxuICB0bz86IERhdGU7XHJcbiAgYWN0aXZlOiBib29sZWFuO1xyXG4gIHN1YnN0aXR1ZUlkPzogc3RyaW5nO1xyXG59XHJcbmludGVyZmFjZSBOb3RpZmljYXRpb25zU2V0dGluZ3Mge1xyXG4gIHNvdW5kPzogYm9vbGVhbjtcclxuICBhY3RpdmU/OiBib29sZWFuO1xyXG4gIG15U3RhdGVDaGFuZ2VkPzogYm9vbGVhbjtcclxuICBhbnlTdGF0ZUNoYW5nZWQ/OiBib29sZWFuO1xyXG4gIGFueUNvbW1lbnQ/OiBib29sZWFuO1xyXG4gIG15Q29tbWVudD86IGJvb2xlYW47XHJcbiAgbGlrZWQ/OiBib29sZWFuO1xyXG4gIGN1YmVBbm9tYWx5PzogYm9vbGVhbjtcclxuICB1cGNvbWluZ0V2ZW50cz86IGJvb2xlYW47XHJcbn1cclxuaW50ZXJmYWNlIEVtYWlsU2V0dGluZ3Mge1xyXG4gIGFjdGl2ZT86IGJvb2xlYW47XHJcbiAgbWFpbHM/OiBib29sZWFuO1xyXG4gIGNvbnZlcnNhdGlvbnM/OiBib29sZWFuO1xyXG4gIG5vdGlmaWNhdGlvbnM/OiBib29sZWFuO1xyXG4gIGV2ZW50cz86IGJvb2xlYW47XHJcbn1cclxuIl19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUM7QUEwWHhDLE1BQU0sQ0FBTixJQUFZLGNBU1g7QUFURCxXQUFZLGNBQWM7SUFDeEIsdUNBQXFCLENBQUE7SUFDckIsNkJBQVcsQ0FBQTtJQUNYLDZCQUFXLENBQUE7SUFDWCx5Q0FBdUIsQ0FBQTtJQUN2Qix5Q0FBdUIsQ0FBQTtJQUN2QixxQ0FBbUIsQ0FBQTtJQUNuQixpQ0FBZSxDQUFBO0lBQ2YsaUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVFcsY0FBYyxLQUFkLGNBQWMsUUFTekI7QUFDRCxNQUFNLENBQU4sSUFBWSxTQVFYO0FBUkQsV0FBWSxTQUFTO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLGtDQUFxQixDQUFBO0lBQ3JCLDBDQUE2QixDQUFBO0lBQzdCLDBCQUFhLENBQUE7SUFDYixrQ0FBcUIsQ0FBQTtJQUNyQix3Q0FBMkIsQ0FBQTtJQUMzQix3QkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQVJXLFNBQVMsS0FBVCxTQUFTLFFBUXBCO0FBb0ZBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlTW9kZWwsIENvbm5lY3Rvck1vZGVsLCBTaGFwZU1vZGVsLCBGbG93U2hhcGVNb2RlbCwgQmFzaWNTaGFwZU1vZGVsLCBJbWFnZU1vZGVsLCBQYXRoTW9kZWwsIFRleHRNb2RlbCwgQnBtblNoYXBlTW9kZWwsIE5hdGl2ZU1vZGVsIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWRpYWdyYW1zXCI7XHJcblxyXG5leHBvcnQgY29uc3QgSU5CT1ggPSAnaWInLCBEUkFGVCA9ICdkZic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlck1vZGVsPFQgPSBhbnk+IHtcclxuICBwYXJlbnRJZD86IG51bWJlcjtcclxuICBkcmFmdD86IGJvb2xlYW47XHJcbiAgaXNzdWVkPzogRGF0ZTtcclxuICBkb2N1bWVudElkOiBudW1iZXI7XHJcbiAgc3Vic3RpdHV0ZUlkPzogc3RyaW5nO1xyXG4gIG93bmVySWQ6IHN0cmluZztcclxuICBhY3Rpb24/OiBzdHJpbmc7XHJcbiAgb3duZXJCeUlkPzogc3RyaW5nO1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgdmVyc2lvbjogbnVtYmVyO1xyXG4gIGZvcm1JZDogc3RyaW5nO1xyXG4gIG51bWJlcj86IHN0cmluZztcclxuICBzdWJqZWN0Pzogc3RyaW5nO1xyXG4gIHZhbHVlPzogbnVtYmVyO1xyXG4gIHJlY2VpdmVkOiBEYXRlO1xyXG4gIHJlcGxpZWQ/OiBEYXRlO1xyXG4gIGZvbGRlcklkOiBzdHJpbmc7XHJcbiAgcmVhZDogYm9vbGVhbjtcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIHNlbmRlcklkPzogc3RyaW5nO1xyXG4gIHN0YXRlSWQ6IHN0cmluZztcclxuICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XHJcbiAgZmxhZz86IGJvb2xlYW47XHJcbiAgc3VtbWFyeT86IHN0cmluZztcclxuICBwZW5kaW5nPzogYm9vbGVhbjtcclxuICBtb2RlbD86IFQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudE1vZGVsPFQgPSBhbnk+IHtcclxuICBkcmFmdD86IGJvb2xlYW47XHJcbiAgZXh0cmE/OiBhbnk7XHJcbiAgbnVtYmVyPzogc3RyaW5nO1xyXG4gIHN1YmplY3Q/OiBzdHJpbmc7XHJcbiAgc3VtbWFyeT86IHN0cmluZztcclxuICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBudW1iZXI7XHJcbiAgb3duZXJJZDogc3RyaW5nO1xyXG4gIG93bmVyQnlJZD86IHN0cmluZztcclxuICBkb2N1bWVudElkOiBudW1iZXI7XHJcbiAgdmVyc2lvbjogbnVtYmVyO1xyXG4gIGZvcm1JZDogc3RyaW5nO1xyXG4gIHN0YXRlSWQ6IHN0cmluZztcclxuICBjb21wbGV0ZWQ/OiBib29sZWFuO1xyXG4gIG1vZGVsPzogVDtcclxuICB2aWV3ZWQ/OiBEYXRlO1xyXG4gIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50W107XHJcbiAgY29tbWVudHM6IENvbW1lbnRbXTtcclxuICB1bnJlYWRDb21tZW50czogbnVtYmVyO1xyXG4gIGlzc3VlZD86IERhdGU7XHJcbiAgd29ya2Zsb3c/OiBXb3JrZmxvd0luZm87XHJcbiAgcmVjaXBpZW50czogUmVjaXBpZW50W107XHJcbiAgY3ViZXM6IEN1YmVFbnRyeVtdO1xyXG4gIGV2ZW50czogU2NoZWR1bGVkRXZlbnRbXTtcclxuICBsb2NhdGlvbnM6IE1hcFBpbltdO1xyXG4gIGxvZzogTG9nW107XHJcbiAgcnVsZXM/OiB7IFtuYW1lOiBzdHJpbmddOiBib29sZWFuIH07XHJcbiAgcGFyZW50PzogQ2hhaW47XHJcbiAgY2hpbGRyZW4/OiBDaGFpbltdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhaW4ge1xyXG4gIGNvbXBsZXRlZDogYm9vbGVhbjtcclxuICBpZDogbnVtYmVyO1xyXG4gIGZvcm1JZDogc3RyaW5nO1xyXG4gIG51bWJlcj86IHN0cmluZztcclxuICBzdWJqZWN0Pzogc3RyaW5nO1xyXG4gIHN0YXRlSWQ6IHN0cmluZztcclxuICB2YWx1ZT86IG51bWJlcjtcclxuICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XHJcbiAgcGFyZW50PzogQ2hhaW47XHJcbiAgY2hpbGRyZW4/OiBDaGFpbltdO1xyXG4gIHJlY2lwaWVudHM/OiBSZWNpcGllbnRbXTtcclxuICBldmVudHM/OiBTY2hlZHVsZWRFdmVudFtdO1xyXG4gIGxvZzogTG9nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd0luZm8ge1xyXG4gIG5vZGVzOiBOb2RlSW5mb1tdO1xyXG4gIGNvbm5lY3RvcnM6IENvbm5lY3RvckluZm9bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFJlY2lwaWVudE1vZGVsPFQgPSBhbnk+IGV4dGVuZHMgSGVhZGVyTW9kZWw8VD4sIERvY3VtZW50TW9kZWw8VD4ge1xyXG4gIGV4dHJhPzogYW55O1xyXG4gIGFjdGlvbnM/OiBzdHJpbmdbXTtcclxuICBmeWk6IGJvb2xlYW47XHJcbiAgb3JpZ2luSWQ/OiBudW1iZXI7XHJcbiAgZXNjYWxhdGVkPzogYm9vbGVhbjtcclxuICB0YWdzPzogc3RyaW5nW107XHJcbiAgYnlJZD86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3RvckluZm8ge1xyXG4gIC8vIHJlY2lwaWVudCBpZFxyXG4gIG9yaWdpbklkPzogbnVtYmVyO1xyXG4gIGVzdGltYXRlOiBib29sZWFuO1xyXG4gIHRpbWU/OiBEYXRlO1xyXG4gIHNvdXJjZUlkOiBzdHJpbmc7XHJcbiAgdGFyZ2V0SWQ6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVJbmZvIHtcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIG9yaWdpbklkPzogbnVtYmVyO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgLyoqIG5vZGUgKi9cclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgdGltZT86IERhdGU7XHJcbiAgZXN0aW1hdGU6IGJvb2xlYW47XHJcbiAgLyoqIHNlY29uZHMgKi9cclxuICBzdGFuZGFyZFRpbWU/OiBudW1iZXI7XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBMb2cge1xyXG4gIHJlY2lwaWVudElkPzogbnVtYmVyO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgb3JpZ2luSWQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBtb2RlbD86IHt9O1xyXG4gIHR5cGU6IExvZ1R5cGU7XHJcbiAgbm9kZUlkPzogc3RyaW5nO1xyXG4gIG5vdGU/OiBzdHJpbmc7XHJcbiAgc3RhdGU/OiBzdHJpbmc7XHJcbiAgYWN0aW9uPzogc3RyaW5nO1xyXG4gIGVzY2FsYXRlZD86IGJvb2xlYW47XHJcbiAgc291cmNlSWQ/OiBzdHJpbmc7XHJcbiAgdGFyZ2V0SWQ/OiBzdHJpbmc7XHJcbiAgZHVyYXRpb24/OiBudW1iZXI7XHJcbiAgZXN0aW1hdGU/OiBib29sZWFuO1xyXG4gIGZpbGVJZD86IG51bWJlcjtcclxuICBlcnJvcj86IHN0cmluZztcclxufVxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIExvZ1R5cGUgPSAnU3VibWl0JyB8ICdEb3dubG9hZCcgfCAnU3RhdGVDaGFuZ2UnIHwgJ0FjdGlvblRha2VuJyB8ICdDaGVja0luJyB8ICdDaGVja091dCcgfFxyXG4gICdNb2RlbENoYW5nZScgfCAnTm9kZScgfCAnVmlydHVhbE5vZGUnIHwgJ05vZGVKdW1wJyB8ICdDb25uZWN0b3InIHwgJ1ZpcnR1YWxDb25uZWN0b3InIHwgJ0VzY2FsYXRpb24nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZWNpcGllbnQge1xyXG4gIG9yaWdpbklkPzogbnVtYmVyO1xyXG4gIHN1YnN0aXR1dGVJZD86IHN0cmluZztcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIG5vZGVJZD86IHN0cmluZztcclxuICB1c2VySWQ6IHN0cmluZztcclxuICBwZW5kaW5nOiBib29sZWFuO1xyXG4gIGZvbGRlcklkOiBzdHJpbmc7XHJcbiAgcm9sZT86IHN0cmluZztcclxuICByZWNlaXZlZDogRGF0ZTtcclxuICByZXBsaWVkPzogRGF0ZTtcclxuICBlc3RpbWF0ZT86IGJvb2xlYW47XHJcbiAgYWN0aW9uPzogc3RyaW5nO1xyXG4gIGZ5aT86IGJvb2xlYW47XHJcbiAgaWQ6IG51bWJlcjtcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIGVzY2FsYXRlZD86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZWRFdmVudCB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBkb2N1bWVudElkOiBudW1iZXI7XHJcbiAgc3RhcnRpbmc6IERhdGU7XHJcbiAgZW5kaW5nPzogRGF0ZTtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBsb2NhdGlvbj86IExhdExuZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE1hcFBpbiB7XHJcbiAgbG9jYXRpb246IExhdExuZztcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTGF0TG5nID0gbnVtYmVyW107XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVFbnRyeSB7XHJcbiAgY3ViZTogc3RyaW5nO1xyXG4gIGF4ZXM6IHN0cmluZ1tdO1xyXG4gIHZhbHVlOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXR0YWNobWVudCB7XHJcbiAgaWQ/OiBudW1iZXI7XHJcbiAgZmlsZU5hbWU6IHN0cmluZztcclxuICBjb250ZW50VHlwZTogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBkZWxldGVkPzogYm9vbGVhbjtcclxuICBjaGVja2VkT3V0PzogYm9vbGVhbjtcclxuICBwcml2YXRlPzogYm9vbGVhbjtcclxuICBob2xkaW5nSWQ/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb21tZW50IHtcclxuICBpZDogbnVtYmVyO1xyXG4gIC8qKiBiYXNlNjQgKi9cclxuICBpbWFnZT86IHN0cmluZztcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIHRpbWU6IERhdGU7XHJcbiAgcGFyZW50SWQ/OiBudW1iZXI7XHJcbiAgdm90ZWQ/OiBudW1iZXI7XHJcbiAgdm90ZXM/OiBudW1iZXI7XHJcbiAgZWRpdGVkPzogRGF0ZTtcclxuICBkZWxldGVkPzogYm9vbGVhbjtcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIHJlc291cmNlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFZvdGUge1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICB2b3RlZD86IG51bWJlcjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbW1lbnRWZXJzaW9uIHtcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIHRpbWU6IERhdGU7XHJcbiAgaW1hZ2U/OiBzdHJpbmc7XHJcbiAgdGV4dD86IHN0cmluZztcclxuICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb24ge1xyXG4gIG51bWJlcj86IHN0cmluZztcclxuICBtdXRlZD86IGJvb2xlYW47XHJcbiAgZGVsZXRlZD86IGJvb2xlYW47XHJcbiAgaWQ6IG51bWJlcjtcclxuICB0eXBlOiBOb3RpZmljYXRpb25UeXBlO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgcmVhZD86IGJvb2xlYW47XHJcbiAgc2VudDogRGF0ZTtcclxuICByZWNpcGllbnRJZD86IG51bWJlcjtcclxuICBkb2N1bWVudElkPzogbnVtYmVyO1xyXG4gIGZvcm1JZD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBOb3RpZmljYXRpb25UeXBlID1cclxuICAnQ29tbWVudGVkJyB8XHJcbiAgJ0N1YmVBbm9tYWx5JyB8XHJcbiAgJ0VzY2FsYXRlZCcgfFxyXG4gICdMaWtlZCcgfFxyXG4gICdTdGF0ZUNoYW5nZWQnIHxcclxuICAnTnVkZ2UnIHxcclxuICAnSW52aXRlJyB8XHJcbiAgJ1RleHRNZXNzYWdlJyB8XHJcbiAgJ1VwY29taW5nRXZlbnQnIHxcclxuICAnSm9iUHJvZ3Jlc3MnIHxcclxuICAnVGFnZ2VkJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGUge1xyXG4gIHNoYXBlPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHBhc3Q/OiBzdHJpbmc7XHJcbiAgZnV0dXJlPzogc3RyaW5nO1xyXG4gIGNvbG9yPzogc3RyaW5nO1xyXG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxufVxyXG5leHBvcnQgdHlwZSBHZW5kZXIgPSAnTWFsZScgfFxyXG4gICdGZW1hbGUnIHwgbnVsbDtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVmlldyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IGFueTtcclxuICBndWlkZT86IHN0cmluZztcclxuICBjdWJlczogc3RyaW5nW107XHJcbiAgZm9ybXM6IHN0cmluZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGUge1xyXG4gIGhvbGlkYXlzOiBhbnk7XHJcbiAgdXRpbGl0aWVzOiBVdGlsaXR5W107XHJcbiAgZ3VpZGVzPzogR3VpZGVbXTtcclxuICB2aWV3czogVmlld1tdO1xyXG4gIHBob3RvPzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgYnlOYW1lPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBpbXBlcnNvbmF0aW5nPzogc3RyaW5nO1xyXG4gIGF2YWlsYWJsZT86IEF2YWlsYWJpbGl0eVN0YXRlO1xyXG4gIGdlbmRlcj86IEdlbmRlcjtcclxuICBieUdlbmRlcj86IEdlbmRlcjtcclxuICBzeXN0ZW06IGJvb2xlYW47XHJcbiAgZm9ybXM6IEZvcm1bXTtcclxuICBhY3Rpb25zOiBBY3Rpb25bXTtcclxuICBzdGF0ZXM6IFN0YXRlW107XHJcbiAgZm9sZGVyczogRm9sZGVyW107XHJcbiAgcmVwb3J0czogUmVwb3J0W107XHJcbiAgdHlwZXM6IFR5cGVbXTtcclxuICBjdWJlczogQ3ViZVtdO1xyXG4gIG5vZGVzOiBGbG93Tm9kZVtdO1xyXG4gIGNvbnRyb2xzOiBDb250cm9sW107XHJcbiAgcm9sZXM6IFJvbGVbXTtcclxuICBzb3VyY2VzOiBTb3VyY2VbXTtcclxuICB3aWRnZXRzOiBXaWRnZXRbXTtcclxuICBvcHRpb25zOiBPcHRpb25zO1xyXG4gIGluYm94OiBIZWFkZXJNb2RlbFtdO1xyXG4gIGluYm94Q291bnQ/OiBudW1iZXI7XHJcbiAgbm90aWZpY2F0aW9uczogTm90aWZpY2F0aW9uW107XHJcbiAgbm90aWZpY2F0aW9uc0NvdW50PzogbnVtYmVyO1xyXG4gIHJlY2VudHM/OiBIZWFkZXJNb2RlbFtdO1xyXG4gIGNvbnRhY3RzOiBDb250YWN0W107XHJcbiAgY29udmVyc2F0aW9uc0NvdW50OiBudW1iZXI7XHJcbiAgbGljZW5zZT86IExpY2Vuc2U7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTb3VyY2Uge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHRlbXBsYXRlOiBzdHJpbmc7XHJcbiAgZWxlbWVudFRlbXBsYXRlOiBzdHJpbmc7XHJcbiAga2V5czogRmllbGRJbmZvW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBUeXBlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBjb2x1bW5zPzogRmllbGRJbmZvW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBSb2xlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBkYXRhVHlwZTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVXRpbGl0eSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBndWlkZT86IHN0cmluZztcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxuICBvcHRpb25zOiBhbnk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb250YWN0IHtcclxuICB2aXNpdGVkPzogRGF0ZTtcclxuICB3YXRlcm1hcms/OiBEYXRlO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgdGV4dD86IHN0cmluZztcclxuICB0aW1lOiBEYXRlO1xyXG4gIGFjY2VwdGVkOiBib29sZWFuO1xyXG4gIGltYWdlPzogc3RyaW5nO1xyXG4gIGNvdW50OiBudW1iZXI7XHJcbiAgZm9yZ290dGVuPzogYm9vbGVhbjtcclxuICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDaGF0IHtcclxuICBkYXRlOiBEYXRlO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGNvbnRhY3RJZDogc3RyaW5nO1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICAvKiogYmFzZTY0ICovXHJcbiAgaW1hZ2U/OiBzdHJpbmc7XHJcbiAgcmVzb3VyY2U/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJvbCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRlbXBsYXRlOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBGaWVsZEluZm8ge1xyXG4gIGNvbnRyb2xUeXBlOiBzdHJpbmc7XHJcbiAgZGVmYXVsdFZhbHVlPzogYW55O1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBsYWJlbD86IHN0cmluZztcclxuICBraW5kPzogRmllbGRLaW5kO1xyXG4gIHZhbGlkYXRpb25zPzogeyBbdHlwZTogc3RyaW5nXTogc3RyaW5nIH07XHJcbiAgY29udHJvbHM/OiBGaWVsZEluZm9bXTtcclxuICBtYXg/OiBudW1iZXI7XHJcbiAgbWluPzogbnVtYmVyO1xyXG4gIG1heExlbmd0aD86IG51bWJlcjtcclxuICBtaW5MZW5ndGg/OiBudW1iZXI7XHJcbiAgZGF0YVR5cGU/OiBzdHJpbmc7XHJcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xyXG4gIHBhdHRlcm4/OiBzdHJpbmc7XHJcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIGZsYWdzPzogc3RyaW5nW107XHJcbiAgaGludD86IHN0cmluZztcclxuICBvcHRpb25zPzogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0aW9uIHtcclxuICB0eXBlOiBWYWxpZGF0aW9uVHlwZTtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgbWluPzogbnVtYmVyO1xyXG4gIG1heD86IG51bWJlcjtcclxuICBtaW5MZW5ndGg/OiBudW1iZXI7XHJcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG4gIGV4cHJlc3Npb24/OiBhbnk7XHJcbn1cclxuZXhwb3J0IGVudW0gVmFsaWRhdGlvblR5cGUge1xyXG4gIFJlcXVpcmVkID0gJ1JlcXVpcmVkJyxcclxuICBNaW4gPSAnTWluJyxcclxuICBNYXggPSAnTWF4JyxcclxuICBNaW5MZW5ndGggPSAnTWluTGVuZ3RoJyxcclxuICBNYXhMZW5ndGggPSAnTWF4TGVuZ3RoJyxcclxuICBQYXR0ZXJuID0gJ1BhdHRlcm4nLFxyXG4gIFJhbmdlID0gJ1JhbmdlJyxcclxuICBFbWFpbCA9ICdFbWFpbCdcclxufVxyXG5leHBvcnQgZW51bSBGaWVsZEtpbmQge1xyXG4gIE51bWJlciA9ICdOdW1iZXInLFxyXG4gIEN1cnJlbmN5ID0gJ0N1cnJlbmN5JyxcclxuICBFbWFpbEFkZHJlc3MgPSAnRW1haWxBZGRyZXNzJyxcclxuICBUZXh0ID0gJ1RleHQnLFxyXG4gIFBhc3N3b3JkID0gJ1Bhc3N3b3JkJyxcclxuICBQaG9uZU51bWJlciA9ICdQaG9uZU51bWJlcicsXHJcbiAgVXJsID0gJ1VybCcsXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBXaWRnZXQge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBndWlkZT86IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxuICB0ZW1wbGF0ZTogc3RyaW5nO1xyXG4gIGNvbHM/OiBudW1iZXI7XHJcbiAgcm93cz86IG51bWJlcjtcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxuICBhcmd1bWVudHNUZW1wbGF0ZT86IHN0cmluZztcclxuICBvcHRpb25zOiBhbnk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBMaWNlbnNlIHtcclxuICBtb2RlOiBMaWNlbnNlTW9kZTtcclxuICBleHBpcmF0aW9uPzogRGF0ZTtcclxuICBjb21wYW55TmFtZTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZUZpbHRlciB7XHJcbiAgY3ViZT86IHN0cmluZztcclxuICBheGVzOiBzdHJpbmdbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZvbGRlciB7XHJcbiAgZmlsdGVycz86IEN1YmVGaWx0ZXI7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGdyb3VwPzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBjb3VudD86IG51bWJlcjtcclxuICBjb2x1bW5zPzogRm9sZGVyQ29sdW1uW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBGb2xkZXJDb2x1bW4ge1xyXG4gIG5hbWU6IHN0cmluZyB8ICdudW1iZXInIHwgJ3N1YmplY3QnIHwgJ3ZhbHVlJyB8ICdvd25lcicgfCAnc2VuZGVyJyB8ICdyZWNlaXZlZCcgfCAncmVjZWl2ZWRBZ28nIHwgJ3JlcGxpZWQnIHwgJ3N0YXRlJyB8ICdpc3N1ZWQnIHwgJ2lzc3VlZEFnbyc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB0eXBlPzogJ0Jvb2xlYW4nIHwgJ0RhdGUnIHwgJ0RlY2ltYWwnIHwgJ1N0cmluZyc7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIExpY2Vuc2VNb2RlID1cclxuICAnRXZhbHVhdGlvbicgfFxyXG4gICdWYWxpZCcgfFxyXG4gICdHcmFjZScgfFxyXG4gICdJbnZhbGlkJyB8XHJcbiAgJ0xpbWl0ZWQnIHxcclxuICAnRXhwaXJlZCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbiB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdmVyYj86IHN0cmluZztcclxuICB5b3U/OiBzdHJpbmc7XHJcbiAgeW91TWFsZT86IHN0cmluZztcclxuICB5b3VGZW1hbGU/OiBzdHJpbmc7XHJcbiAgcGFzdD86IHN0cmluZztcclxuICBwYXN0TWFsZT86IHN0cmluZztcclxuICBwYXN0RmVtYWxlPzogc3RyaW5nO1xyXG4gIGFkamVjdGl2ZT86IHN0cmluZztcclxuICBsb2dnYWJsZT86IGJvb2xlYW47XHJcbiAgYWRqZWN0aXZlUGx1cmFsPzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIGdyb3VwPzogbnVtYmVyO1xyXG4gIHNoYXBlPzogc3RyaW5nO1xyXG4gIGNvbG9yPzogc3RyaW5nO1xyXG4gIG9wdGlvbnM/OiBhbnk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcclxuICBncmFudEFjY2Vzcz86IEdyYW50U2V0dGluZ3M7XHJcbiAgb3V0T2ZPZmZpY2U/OiBPdXRPZk9mZmljZVNldHRpbmdzO1xyXG4gIG5vdGlmaWNhdGlvbnM/OiBOb3RpZmljYXRpb25zU2V0dGluZ3M7XHJcbiAgZW1haWxzPzogRW1haWxTZXR0aW5ncztcclxuICBndWlkZXM/OiBzdHJpbmdbXTtcclxuICBpbmJveFZpZXc/OiBEYXRlO1xyXG4gIG5vdGlmaWNhdGlvbnNWaWV3PzogRGF0ZTtcclxuICB0YWdzPzogc3RyaW5nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBHcmFudFNldHRpbmdzIHtcclxuICBhY3RpdmU6IGJvb2xlYW47XHJcbiAgdXNlcnM/OiBzdHJpbmdbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaW1lbnRpb25zIHtcclxuICB3aWR0aDogbnVtYmVyO1xyXG4gIGhlaWdodDogbnVtYmVyO1xyXG59O1xyXG5cclxuZXhwb3J0XHJcbiAgaW50ZXJmYWNlIFJlcG9ydCB7XHJcbiAgb3B0aW9ucz86IGFueTtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGd1aWRlPzogc3RyaW5nO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIGZpZWxkcz86IEZpZWxkSW5mb1tdO1xyXG4gIGl0ZW1UZW1wbGF0ZT86IHN0cmluZztcclxuICBjb2x1bW5zOiBGaWVsZEluZm9bXTtcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxuICBhcmd1bWVudHNUZW1wbGF0ZT86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm0ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuICBncm91cD86IHN0cmluZztcclxuICBvcHRpb25zPzogYW55O1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgY3JlYXRhYmxlOiBib29sZWFuO1xyXG4gIGljb246IHN0cmluZztcclxuICBwb3NpdGlvbj86IFBvc2l0aW9uUG9saWN5O1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIGZpZWxkcz86IEZpZWxkSW5mb1tdO1xyXG4gIHdvcmtmbG93PzogV29ya2Zsb3c7XHJcbiAgZ3VpZGU/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IHR5cGUgUG9zaXRpb25Qb2xpY3kgPSAnUmVxdWlyZScgfCAnQXNrJyB8ICdOb25lJztcclxuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvdyB7XHJcbiAgdmVyc2lvbjogbnVtYmVyO1xyXG4gIGNvbm5lY3RvcnM6IENvbm5lY3Rvck1vZGVsW107XHJcbiAgbm9kZXM6IE5vZGVNb2RlbFtdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNlckluZm8ge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHJvbGU/OiBzdHJpbmc7XHJcbiAgZ2VuZGVyPzogR2VuZGVyO1xyXG4gIHBpY3R1cmVVcmw/OiBzdHJpbmc7XHJcbiAgbmljaz86IHN0cmluZztcclxuICBwaG9uZU51bWJlcj86IHN0cmluZztcclxuICBlbWFpbD86IHN0cmluZztcclxuICBsYXN0QWN0aXZlPzogRGF0ZTtcclxuICBtb2RlPzogQXZhaWxhYmlsaXR5U3RhdGU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR3VpZGUge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxuICBtb2RlPzogJ01lbnUnIHwgJ0VhZ2VyJyB8ICdQcml2YXRlJztcclxuICBzdGVwczogR3VpZGVTdGVwW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBHdWlkZVN0ZXAge1xyXG4gIGV4ZWN1dGU/OiBib29sZWFuO1xyXG4gIHNlbGVjdG9yPzogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGNvbnRlbnQ6IHN0cmluZztcclxuICBuYXZpZ2F0ZT86IHN0cmluZztcclxuICBwb3NpdGlvbj86ICdBYm92ZScgfCAnRW5kJyB8ICdTdGFydCcgfCAnQmVsb3cnO1xyXG59XHJcbi8vZW51bSBHdWlkZVN0ZXBQb2xpY3kgeyB9XHJcbmV4cG9ydCBpbnRlcmZhY2UgRmxvd05vZGUge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHN0eWxlPzogc3RyaW5nO1xyXG4gIHBhbGV0dGU/OiBzdHJpbmc7XHJcbiAgc2hhcGU6IFNoYXBlTW9kZWwgfCBGbG93U2hhcGVNb2RlbCB8IEJhc2ljU2hhcGVNb2RlbCB8IEltYWdlTW9kZWwgfCBQYXRoTW9kZWwgfCBUZXh0TW9kZWwgfCBCcG1uU2hhcGVNb2RlbCB8IE5hdGl2ZU1vZGVsO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIGFyZ3VtZW50cz86IEZpZWxkSW5mb1tdO1xyXG59XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgQXZhaWxhYmlsaXR5U3RhdGUgPVxyXG4gICdPZmZsaW5lJyB8XHJcbiAgJ09ubGluZScgfFxyXG4gICdPdXRPZk9mZmljZScgfFxyXG4gICdWYWNhdGlvbicgfCAnV29ya2luZ0hvbWUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIHlBeGlzPzogWUF4aXM7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgY3VycmVuY3lDb2RlPzogc3RyaW5nO1xyXG4gIHZpZXdzOiBDdWJlVmlld1tdO1xyXG4gIGF4ZXM6IEN1YmVBeGlzW107XHJcbiAgaW5kaWNlcz86IEN1YmVJbmRleFtdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgWUF4aXMge1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHR5cGU/OiAnQ291bnQnIHwgJ051bWJlcicgfCAnQ3VycmVuY3knO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZUluZGV4IHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgYWNjdW11bGF0ZT86IGJvb2xlYW47XHJcbiAgdGl0bGU6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVBeGlzIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBkYXRhVHlwZTogc3RyaW5nO1xyXG4gIGNvbWJpbmF0aW9uPzogYm9vbGVhbjtcclxuICBzZWxlY3Rpb25Nb2RlPzogJ1NpbmdsZScgfCAnUGF0dGVybicgfCAnTXVsdGlwbGUnIHwgJ1NlYXJjaCcgfCAnTm9uZSc7XHJcbiAgZGVzY2VuZGVudE9mPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCB0eXBlIEF4aXNTZWxlY3Rpb25Nb2RlID1cclxuICAnTm9uZScgfFxyXG4gICdTaW5nbGUnIHxcclxuICAnTXVsdGlwbGUnIHxcclxuICAnU2VhcmNoJyB8XHJcbiAgJ1BhdHRlcm4nO1xyXG5cclxuZXhwb3J0IHR5cGUgQXhpc1ZhbHVlID0gc3RyaW5nIHwgbnVtYmVyIHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuZXhwb3J0IGludGVyZmFjZSBEYXRlUmFuZ2Uge1xyXG4gIGZyb206IERhdGU7XHJcbiAgdG86IERhdGU7XHJcbn1cclxuZXhwb3J0IHR5cGUgTG9jYWxpemVkU3RyaW5nID0geyBbY3VsdHVyZTogc3RyaW5nXTogc3RyaW5nIH0gfCBzdHJpbmc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEF4ZXNNYXAge1xyXG4gIFtheGlzOiBzdHJpbmddOiBBeGlzVmFsdWU7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlVmlldyB7XHJcbiAgeEF4aXM6IHN0cmluZ1tdO1xyXG4gIHNlcmllcz86IHN0cmluZ1tdO1xyXG4gIGZpbHRlcnM/OiBBeGVzTWFwO1xyXG4gIGluZGljZXM/OiBzdHJpbmdbXTtcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGd1aWRlPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHR5cGU6IFZpZXdUeXBlO1xyXG4gIGNoYXJ0VHlwZT86IENoYXJ0VHlwZTtcclxuICBpbmRpY2VzQ2hhcnRUeXBlPzogQ2hhcnRUeXBlO1xyXG59XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgVmlld1R5cGUgPSAnU3ByZWFkc2hlZXQnIHxcclxuICAnQ2hhcnQnIHwgJ1Bpdm90JyB8ICdHcmlkJztcclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBDaGFydFR5cGUgPVxyXG4gICdQaWUnIHxcclxuICAvKiogIERlZmluZSB0aGUgbGluZSBzZXJpZXMuICovXHJcbiAgJ0xpbmUnIHxcclxuICAvKiogIERlZmluZSB0aGUgQ29sdW1uIHNlcmllcy4gKi9cclxuICAnQ29sdW1uJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIEFyZWEgc2VyaWVzLiAqL1xyXG4gICdBcmVhJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIEJhciBzZXJpZXMuICovXHJcbiAgJ0JhcicgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTdGFja2luZ0NvbHVtbiBzZXJpZXMuICovXHJcbiAgJ1N0YWNraW5nQ29sdW1uJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFN0YWNraW5nQXJlYSBzZXJpZXMuICovXHJcbiAgJ1N0YWNraW5nQXJlYScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTdGFja2luZ0xpbmUgc2VyaWVzLiAqL1xyXG4gICdTdGFja2luZ0xpbmUnIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RhY2tpbmdCYXIgc2VyaWVzLiAqL1xyXG4gICdTdGFja2luZ0JhcicgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTdGVwbGluZSBzZXJpZXMuICovXHJcbiAgJ1N0ZXBMaW5lJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFN0ZXBhcmVhIHNlcmllcy4gKi9cclxuICAnU3RlcEFyZWEnIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RlcGFyZWEgc2VyaWVzLiAqL1xyXG4gICdTcGxpbmVBcmVhJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFNjYXR0ZXIgc2VyaWVzLiAqL1xyXG4gICdTY2F0dGVyJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFNwbGluZSBzZXJpZXMuICovXHJcbiAgJ1NwbGluZScgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFN0YWNraW5nQ29sdW1uMTAwIHNlcmllcyAqL1xyXG4gICdTdGFja2luZ0NvbHVtbjEwMCcgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFN0YWNraW5nQmFyMTAwIHNlcmllcyAqL1xyXG4gICdTdGFja2luZ0JhcjEwMCcgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFN0YWNraW5nTGluZTEwMCBzZXJpZXMgKi9cclxuICAnU3RhY2tpbmdMaW5lMTAwJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgU3RhY2tpbmdBcmVhMTAwIHNlcmllcyAqL1xyXG4gICdTdGFja2luZ0FyZWExMDAnIHxcclxuICAvKiogRGVmaW5lIHRoZSBSYW5nZUNvbHVtbiBTZXJpZXMgKi9cclxuICAnUmFuZ2VDb2x1bW4nIHxcclxuICAvKiogRGVmaW5lIHRoZSBXYXRlcmZhbGwgU2VyaWVzICovXHJcbiAgJ1dhdGVyZmFsbCcgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFJhbmdlQXJlYSBTZXJpZXMgKi9cclxuICAnUmFuZ2VBcmVhJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgQnViYmxlIFNlcmllcyAqL1xyXG4gICdCdWJibGUnIHxcclxuICAvKiogRGVmaW5lIHRoZSBDYW5kbGUgU2VyaWVzICovXHJcbiAgJ1BvbGFyJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgcmFkYXIgc2VyaWVzICovXHJcbiAgJ1JhZGFyJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgUGFyZXRvIHNlcmllcyAqL1xyXG4gICdQYXJldG8nIHwgJ0RvdWdobnV0JyB8ICdIYWxmRG91Z2hudXQnIHxcclxuICAnRnVubmVsJyB8ICdQeXJhbWlkJyB8XHJcbiAgJ1N0YWNraW5nU3RlcEFyZWEnO1xyXG5leHBvcnQgaW50ZXJmYWNlIE91dE9mT2ZmaWNlU2V0dGluZ3Mge1xyXG4gIGZyb20/OiBEYXRlO1xyXG4gIHRvPzogRGF0ZTtcclxuICBhY3RpdmU6IGJvb2xlYW47XHJcbiAgc3Vic3RpdHVlSWQ/OiBzdHJpbmc7XHJcbn1cclxuaW50ZXJmYWNlIE5vdGlmaWNhdGlvbnNTZXR0aW5ncyB7XHJcbiAgc291bmQ/OiBib29sZWFuO1xyXG4gIGFjdGl2ZT86IGJvb2xlYW47XHJcbiAgbXlTdGF0ZUNoYW5nZWQ/OiBib29sZWFuO1xyXG4gIGFueVN0YXRlQ2hhbmdlZD86IGJvb2xlYW47XHJcbiAgYW55Q29tbWVudD86IGJvb2xlYW47XHJcbiAgbXlDb21tZW50PzogYm9vbGVhbjtcclxuICBsaWtlZD86IGJvb2xlYW47XHJcbiAgY3ViZUFub21hbHk/OiBib29sZWFuO1xyXG4gIHVwY29taW5nRXZlbnRzPzogYm9vbGVhbjtcclxufVxyXG5pbnRlcmZhY2UgRW1haWxTZXR0aW5ncyB7XHJcbiAgYWN0aXZlPzogYm9vbGVhbjtcclxuICBtYWlscz86IGJvb2xlYW47XHJcbiAgY29udmVyc2F0aW9ucz86IGJvb2xlYW47XHJcbiAgbm90aWZpY2F0aW9ucz86IGJvb2xlYW47XHJcbiAgZXZlbnRzPzogYm9vbGVhbjtcclxufVxyXG4iXX0=
@@ -1,35 +1,32 @@
1
- import { animate, style, transition, trigger } from "@angular/animations";
2
1
  import { Component, Input } from "@angular/core";
3
2
  import { isMobile } from "./functions";
3
+ import { noneAnimation } from "./animations";
4
4
  import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "@angular/material/icon";
7
- import * as i3 from "./pipes/translate.pipe";
8
- import * as i4 from "./pipes/sanitize-html.pipe";
9
- const noneAnimation = trigger('none', [
10
- transition(':enter', [
11
- style({ opacity: 0, transform: 'translateX(10px)' }),
12
- animate('400ms ease', style({ opacity: .2, transform: 'translateX(0)' }))
13
- ])
14
- ]);
5
+ import * as i1 from "@angular/material/icon";
6
+ import * as i2 from "./pipes/translate.pipe";
7
+ import * as i3 from "./pipes/sanitize-html.pipe";
15
8
  export class NoneComponent {
16
9
  constructor() {
17
10
  this.isMobile = isMobile();
18
11
  }
19
12
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: NoneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
20
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: NoneComponent, selector: "bizdoc-none", inputs: { title: "title", subtitle: "subtitle", icon: "icon" }, ngImport: i0, template: `<div class="none" @none>
21
- <h4 class="mat-h2">{{title|translate}}</h4>
22
- <mat-icon class="icon">{{icon}}</mat-icon>
23
- <h5 class="mat-body-2" *ngIf='subtitle' [innerHTML]='subtitle|translate|sanitizeHtml'></h5>
24
- </div>`, isInline: true, styles: [".none{align-items:center;display:flex;flex-direction:column;opacity:.2;padding-top:2em;cursor:default}.none .icon{font-size:56px;height:auto;width:auto}.none h5{padding:0 8px}.none h5 ::ng-deep i.material-icons{vertical-align:text-bottom;font-size:initial}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: i4.SanitizeHtmlPipe, name: "sanitizeHtml" }], animations: [noneAnimation] }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: NoneComponent, selector: "bizdoc-none", inputs: { title: "title", subtitle: "subtitle", icon: "icon" }, ngImport: i0, template: `<div class="none" @none>
14
+ <h4 class="mat-h2">{{title|translate}}</h4>
15
+ <mat-icon class="icon">{{icon}}</mat-icon>
16
+ @if (subtitle) {
17
+ <h5 class="mat-body-2" [innerHTML]='subtitle|translate|sanitizeHtml'></h5>
18
+ }
19
+ </div>`, isInline: true, styles: [".none{align-items:center;display:flex;flex-direction:column;opacity:.2;padding-top:2em;cursor:default}.none .icon{font-size:56px;height:auto;width:auto}.none h5{padding:0 8px}.none h5 ::ng-deep i.material-icons{vertical-align:text-bottom;font-size:initial}\n"], dependencies: [{ kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: i3.SanitizeHtmlPipe, name: "sanitizeHtml" }], animations: [noneAnimation] }); }
25
20
  }
26
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: NoneComponent, decorators: [{
27
22
  type: Component,
28
- args: [{ selector: 'bizdoc-none', template: `<div class="none" @none>
29
- <h4 class="mat-h2">{{title|translate}}</h4>
30
- <mat-icon class="icon">{{icon}}</mat-icon>
31
- <h5 class="mat-body-2" *ngIf='subtitle' [innerHTML]='subtitle|translate|sanitizeHtml'></h5>
32
- </div>`, animations: [noneAnimation], styles: [".none{align-items:center;display:flex;flex-direction:column;opacity:.2;padding-top:2em;cursor:default}.none .icon{font-size:56px;height:auto;width:auto}.none h5{padding:0 8px}.none h5 ::ng-deep i.material-icons{vertical-align:text-bottom;font-size:initial}\n"] }]
23
+ args: [{ selector: 'bizdoc-none', template: `<div class="none" @none>
24
+ <h4 class="mat-h2">{{title|translate}}</h4>
25
+ <mat-icon class="icon">{{icon}}</mat-icon>
26
+ @if (subtitle) {
27
+ <h5 class="mat-body-2" [innerHTML]='subtitle|translate|sanitizeHtml'></h5>
28
+ }
29
+ </div>`, animations: [noneAnimation], styles: [".none{align-items:center;display:flex;flex-direction:column;opacity:.2;padding-top:2em;cursor:default}.none .icon{font-size:56px;height:auto;width:auto}.none h5{padding:0 8px}.none h5 ::ng-deep i.material-icons{vertical-align:text-bottom;font-size:initial}\n"] }]
33
30
  }], propDecorators: { title: [{
34
31
  type: Input
35
32
  }], subtitle: [{
@@ -37,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
37
34
  }], icon: [{
38
35
  type: Input
39
36
  }] } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9uZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvbm9uZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7OztBQUV2QyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFO0lBQ3BDLFVBQVUsQ0FBQyxRQUFRLEVBQ2pCO1FBQ0UsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztRQUNwRCxPQUFPLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7S0FDMUUsQ0FBQztDQUFDLENBQUMsQ0FBQztBQVlULE1BQU0sT0FDRSxhQUFhO0lBWHJCO1FBWVcsYUFBUSxHQUFHLFFBQVEsRUFBRSxDQUFDO0tBSWhDOzhHQUxPLGFBQWE7a0dBQWIsYUFBYSxtSEFUVDs7OztPQUlMLHVyQkFFTyxDQUFDLGFBQWEsQ0FBQzs7MkZBR3JCLGFBQWE7a0JBWHBCLFNBQVM7K0JBQ0UsYUFBYSxZQUNiOzs7O09BSUwsY0FFTyxDQUFDLGFBQWEsQ0FBQzs4QkFLbEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgaXNNb2JpbGUgfSBmcm9tIFwiLi9mdW5jdGlvbnNcIjtcclxuXHJcbmNvbnN0IG5vbmVBbmltYXRpb24gPSB0cmlnZ2VyKCdub25lJywgW1xyXG4gIHRyYW5zaXRpb24oJzplbnRlcicsXHJcbiAgICBbXHJcbiAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgxMHB4KScgfSksXHJcbiAgICAgIGFuaW1hdGUoJzQwMG1zIGVhc2UnLCBzdHlsZSh7IG9wYWNpdHk6IC4yLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyB9KSlcclxuICAgIF0pXSk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1ub25lJyxcclxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJub25lXCIgQG5vbmU+XHJcbiAgPGg0IGNsYXNzPVwibWF0LWgyXCI+e3t0aXRsZXx0cmFuc2xhdGV9fTwvaDQ+XHJcbiAgPG1hdC1pY29uIGNsYXNzPVwiaWNvblwiPnt7aWNvbn19PC9tYXQtaWNvbj5cclxuICA8aDUgY2xhc3M9XCJtYXQtYm9keS0yXCIgKm5nSWY9J3N1YnRpdGxlJyBbaW5uZXJIVE1MXT0nc3VidGl0bGV8dHJhbnNsYXRlfHNhbml0aXplSHRtbCc+PC9oNT5cclxuPC9kaXY+YCxcclxuICBzdHlsZVVybHM6IFsnLi9ub25lLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW25vbmVBbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIE5vbmVDb21wb25lbnQge1xyXG4gIHJlYWRvbmx5IGlzTW9iaWxlID0gaXNNb2JpbGUoKTtcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHN1YnRpdGxlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xyXG59XHJcbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9uZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvbm9uZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQWM3QyxNQUFNLE9BQ0UsYUFBYTtJQWJyQjtRQWNXLGFBQVEsR0FBRyxRQUFRLEVBQUUsQ0FBQztLQUloQzs4R0FMTyxhQUFhO2tHQUFiLGFBQWEsbUhBWFQ7Ozs7OztTQU1ILG1sQkFFSyxDQUFDLGFBQWEsQ0FBQzs7MkZBR3JCLGFBQWE7a0JBYnBCLFNBQVM7K0JBQ0UsYUFBYSxZQUNiOzs7Ozs7U0FNSCxjQUVLLENBQUMsYUFBYSxDQUFDOzhCQUtsQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgaXNNb2JpbGUgfSBmcm9tIFwiLi9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgbm9uZUFuaW1hdGlvbiB9IGZyb20gXCIuL2FuaW1hdGlvbnNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLW5vbmUnLFxyXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cIm5vbmVcIiBAbm9uZT5cbiAgICA8aDQgY2xhc3M9XCJtYXQtaDJcIj57e3RpdGxlfHRyYW5zbGF0ZX19PC9oND5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uXCI+e3tpY29ufX08L21hdC1pY29uPlxuICAgIEBpZiAoc3VidGl0bGUpIHtcbiAgICAgIDxoNSBjbGFzcz1cIm1hdC1ib2R5LTJcIiBbaW5uZXJIVE1MXT0nc3VidGl0bGV8dHJhbnNsYXRlfHNhbml0aXplSHRtbCc+PC9oNT5cbiAgICB9XG4gIDwvZGl2PmAsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbm9uZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtub25lQW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnRcclxuICBjbGFzcyBOb25lQ29tcG9uZW50IHtcclxuICByZWFkb25seSBpc01vYmlsZSA9IGlzTW9iaWxlKCk7XHJcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcclxuICBASW5wdXQoKSBzdWJ0aXRsZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGljb246IHN0cmluZztcclxufVxyXG4iXX0=
@@ -39,6 +39,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
39
39
  type: Pipe,
40
40
  args: [{ name: 'l18n' }]
41
41
  }], ctorParameters: () => [{ type: i1.TranslateService }] });
42
+ /** */
42
43
  export class TranslateDirective {
43
44
  constructor(_elementRef, _translate) {
44
45
  this._elementRef = _elementRef;
@@ -54,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
54
55
  type: Directive,
55
56
  args: [{ selector: '[l18n]' }]
56
57
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.TranslateService }] });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvcGlwZXMvdHJhbnNsYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBNkIsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBRzFGLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFNBQVMsQ0FBQyxLQUFVLEVBQUUsR0FBRyxJQUFXO1FBQ2xDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLElBQUksSUFBSSxDQUFDLE1BQU07WUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNyQyxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7UUFDSCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFDRCxZQUFvQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUFJLENBQUM7OEdBVHpDLGFBQWE7NEdBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7O0FBYTNCLE1BQU0sT0FBTyxRQUFRO0lBQ25CLFNBQVMsQ0FBQyxLQUFVLEVBQUUsR0FBRyxJQUFXO1FBQ2xDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLElBQUksSUFBSSxDQUFDLE1BQU07WUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNyQyxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7UUFDSCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFDRCxZQUFvQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUFJLENBQUM7OEdBVHpDLFFBQVE7NEdBQVIsUUFBUTs7MkZBQVIsUUFBUTtrQkFEcEIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7O0FBY3RCLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFBb0IsV0FBb0MsRUFBVSxVQUE0QjtRQUExRSxnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFrQjtJQUFJLENBQUM7SUFDbkcsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzRyxDQUFDOzhHQUpVLGtCQUFrQjtrR0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUQ5QixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5AUGlwZSh7IG5hbWU6ICd0cmFuc2xhdGUnIH0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIC4uLmFyZ3M6IGFueVtdKSB7XHJcbiAgICBsZXQgc3RyID0gdGhpcy50cmFuc2xhdGUuZ2V0KHZhbHVlKTtcclxuICAgIGlmIChhcmdzLmxlbmd0aClcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UoYHske2l9fWAsIGFyZ3NbaV0pO1xyXG4gICAgICB9XHJcbiAgICByZXR1cm4gc3RyO1xyXG4gIH1cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkgeyB9XHJcbn1cclxuQFBpcGUoeyBuYW1lOiAnbDE4bicgfSlcclxuZXhwb3J0IGNsYXNzIEwxOG5QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIC4uLmFyZ3M6IGFueVtdKSB7XHJcbiAgICBsZXQgc3RyID0gdGhpcy50cmFuc2xhdGUuZ2V0KHZhbHVlKTtcclxuICAgIGlmIChhcmdzLmxlbmd0aClcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UoYHske2l9fWAsIGFyZ3NbaV0pO1xyXG4gICAgICB9XHJcbiAgICByZXR1cm4gc3RyO1xyXG4gIH1cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkgeyB9XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1tsMThuXScgfSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5fdHJhbnNsYXRlLmdldCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0KTtcclxuICB9XHJcbn1cclxuIl19
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvcGlwZXMvdHJhbnNsYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBNkIsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBRzFGLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFNBQVMsQ0FBQyxLQUFVLEVBQUUsR0FBRyxJQUFXO1FBQ2xDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLElBQUksSUFBSSxDQUFDLE1BQU07WUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNyQyxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7UUFDSCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFDRCxZQUFvQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUFJLENBQUM7OEdBVHpDLGFBQWE7NEdBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7O0FBYTNCLE1BQU0sT0FBTyxRQUFRO0lBQ25CLFNBQVMsQ0FBQyxLQUFVLEVBQUUsR0FBRyxJQUFXO1FBQ2xDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLElBQUksSUFBSSxDQUFDLE1BQU07WUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNyQyxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7UUFDSCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFDRCxZQUFvQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUFJLENBQUM7OEdBVHpDLFFBQVE7NEdBQVIsUUFBUTs7MkZBQVIsUUFBUTtrQkFEcEIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7O0FBYXRCLE1BQU07QUFFTixNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQW9CLFdBQW9DLEVBQVUsVUFBNEI7UUFBMUUsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7SUFBSSxDQUFDO0lBQ25HLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0csQ0FBQzs4R0FKVSxrQkFBa0I7a0dBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFEOUIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuQFBpcGUoeyBuYW1lOiAndHJhbnNsYXRlJyB9KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybSh2YWx1ZTogYW55LCAuLi5hcmdzOiBhbnlbXSkge1xyXG4gICAgbGV0IHN0ciA9IHRoaXMudHJhbnNsYXRlLmdldCh2YWx1ZSk7XHJcbiAgICBpZiAoYXJncy5sZW5ndGgpXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKGB7JHtpfX1gLCBhcmdzW2ldKTtcclxuICAgICAgfVxyXG4gICAgcmV0dXJuIHN0cjtcclxuICB9XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHsgfVxyXG59XHJcbkBQaXBlKHsgbmFtZTogJ2wxOG4nIH0pXHJcbmV4cG9ydCBjbGFzcyBMMThuUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybSh2YWx1ZTogYW55LCAuLi5hcmdzOiBhbnlbXSkge1xyXG4gICAgbGV0IHN0ciA9IHRoaXMudHJhbnNsYXRlLmdldCh2YWx1ZSk7XHJcbiAgICBpZiAoYXJncy5sZW5ndGgpXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKGB7JHtpfX1gLCBhcmdzW2ldKTtcclxuICAgICAgfVxyXG4gICAgcmV0dXJuIHN0cjtcclxuICB9XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHsgfVxyXG59XHJcblxyXG4vKiogKi9cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2wxOG5dJyB9KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7IH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5pbm5lclRleHQpO1xyXG4gIH1cclxufVxyXG4iXX0=